{"version":3,"file":"index.js","sources":["../node_modules/preact/dist/preact.module.js","../node_modules/preact/hooks/dist/hooks.module.js","../node_modules/preact/compat/dist/compat.module.js","../node_modules/preact-custom-element/dist/preact-custom-element.js","../node_modules/style-inject/dist/style-inject.es.js","../node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","../node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","../node_modules/date-fns/esm/_lib/toInteger/index.js","../node_modules/date-fns/esm/_lib/requiredArgs/index.js","../node_modules/date-fns/esm/toDate/index.js","../node_modules/date-fns/esm/addMilliseconds/index.js","../node_modules/date-fns/esm/_lib/defaultOptions/index.js","../node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","../node_modules/date-fns/esm/compareAsc/index.js","../node_modules/date-fns/esm/constants/index.js","../node_modules/date-fns/esm/isDate/index.js","../node_modules/date-fns/esm/isValid/index.js","../node_modules/date-fns/esm/differenceInCalendarMonths/index.js","../node_modules/date-fns/esm/differenceInMilliseconds/index.js","../node_modules/date-fns/esm/_lib/roundingMethods/index.js","../node_modules/date-fns/esm/endOfDay/index.js","../node_modules/date-fns/esm/endOfMonth/index.js","../node_modules/date-fns/esm/isLastDayOfMonth/index.js","../node_modules/date-fns/esm/differenceInMonths/index.js","../node_modules/date-fns/esm/differenceInSeconds/index.js","../node_modules/date-fns/esm/subMilliseconds/index.js","../node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","../node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","../node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCWeek/index.js","../node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","../node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","../node_modules/date-fns/esm/_lib/format/formatters/index.js","../node_modules/date-fns/esm/_lib/format/longFormatters/index.js","../node_modules/date-fns/esm/_lib/protectedTokens/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","../node_modules/date-fns/esm/locale/en-US/index.js","../node_modules/date-fns/esm/format/index.js","../node_modules/date-fns/esm/_lib/assign/index.js","../node_modules/date-fns/esm/_lib/cloneObject/index.js","../node_modules/date-fns/esm/formatDistance/index.js","../node_modules/date-fns/esm/formatDistanceToNow/index.js","../node_modules/date-fns/esm/parseISO/index.js","../node_modules/date-fns/esm/locale/de/_lib/formatDistance/index.js","../node_modules/preact-markup/dist/preact-markup.module.js","../node_modules/date-fns/esm/locale/de/_lib/formatLong/index.js","../node_modules/date-fns/esm/locale/de/_lib/formatRelative/index.js","../node_modules/date-fns/esm/locale/de/_lib/localize/index.js","../node_modules/date-fns/esm/locale/de/_lib/match/index.js","../node_modules/date-fns/esm/locale/de/index.js","../node_modules/date-fns/esm/locale/fr/_lib/formatDistance/index.js","../node_modules/date-fns/esm/locale/fr/_lib/formatLong/index.js","../node_modules/date-fns/esm/locale/fr/_lib/formatRelative/index.js","../node_modules/date-fns/esm/locale/fr/_lib/localize/index.js","../node_modules/date-fns/esm/locale/fr/_lib/match/index.js","../node_modules/date-fns/esm/locale/fr/index.js","../node_modules/dlv/dist/dlv.js","../node_modules/preact-i18n/dist/preact-i18n.esm.js","../node_modules/algoliasearch/dist/algoliasearch.umd.js","../node_modules/react-instantsearch-hooks/dist/es/version.js","../node_modules/algoliasearch-helper/src/functions/merge.js","../node_modules/algoliasearch-helper/src/functions/defaultsPure.js","../node_modules/algoliasearch-helper/src/functions/intersection.js","../node_modules/algoliasearch-helper/src/functions/find.js","../node_modules/algoliasearch-helper/src/functions/valToNumber.js","../node_modules/algoliasearch-helper/src/functions/omit.js","../node_modules/algoliasearch-helper/src/functions/objectHasKeys.js","../node_modules/algoliasearch-helper/src/utils/isValidUserToken.js","../node_modules/algoliasearch-helper/src/SearchParameters/RefinementList.js","../node_modules/algoliasearch-helper/src/SearchParameters/index.js","../node_modules/algoliasearch-helper/src/functions/orderBy.js","../node_modules/algoliasearch-helper/src/functions/compact.js","../node_modules/algoliasearch-helper/src/functions/findIndex.js","../node_modules/algoliasearch-helper/src/functions/formatSort.js","../node_modules/algoliasearch-helper/src/functions/escapeFacetValue.js","../node_modules/algoliasearch-helper/src/SearchResults/generate-hierarchical-tree.js","../node_modules/algoliasearch-helper/src/SearchResults/index.js","../node_modules/@algolia/events/events.js","../node_modules/algoliasearch-helper/src/functions/inherits.js","../node_modules/algoliasearch-helper/src/DerivedHelper/index.js","../node_modules/algoliasearch-helper/src/requestBuilder.js","../node_modules/algoliasearch-helper/src/version.js","../node_modules/algoliasearch-helper/src/algoliasearch.helper.js","../node_modules/algoliasearch-helper/index.js","../node_modules/instantsearch.js/es/lib/utils/noop.js","../node_modules/instantsearch.js/es/lib/utils/getObjectType.js","../node_modules/instantsearch.js/es/lib/utils/checkRendering.js","../node_modules/instantsearch.js/es/lib/utils/escape-html.js","../node_modules/instantsearch.js/es/lib/utils/isPlainObject.js","../node_modules/instantsearch.js/es/lib/utils/escape-highlight.js","../node_modules/instantsearch.js/es/lib/utils/concatHighlightedParts.js","../node_modules/instantsearch.js/es/lib/utils/isFacetRefined.js","../node_modules/instantsearch.js/es/lib/utils/createSendEventForFacet.js","../node_modules/instantsearch.js/es/lib/utils/serializer.js","../node_modules/instantsearch.js/es/lib/utils/createSendEventForHits.js","../node_modules/instantsearch.js/es/lib/utils/isIndexWidget.js","../node_modules/instantsearch.js/es/lib/utils/setIndexHelperState.js","../node_modules/instantsearch.js/es/lib/utils/defer.js","../node_modules/instantsearch.js/es/lib/utils/documentation.js","../node_modules/instantsearch.js/es/lib/utils/find.js","../node_modules/instantsearch.js/es/lib/utils/findIndex.js","../node_modules/instantsearch.js/es/lib/utils/getHighlightedParts.js","../node_modules/instantsearch.js/es/lib/utils/getHighlightFromSiblings.js","../node_modules/instantsearch.js/es/lib/utils/getPropertyByPath.js","../node_modules/instantsearch.js/es/lib/utils/hits-absolute-position.js","../node_modules/instantsearch.js/es/lib/utils/hits-query-id.js","../node_modules/instantsearch.js/es/lib/utils/isEqual.js","../node_modules/instantsearch.js/es/lib/utils/uniq.js","../node_modules/instantsearch.js/es/lib/utils/mergeSearchParameters.js","../node_modules/instantsearch.js/es/lib/utils/render-args.js","../node_modules/instantsearch.js/es/lib/utils/resolveSearchParameters.js","../node_modules/instantsearch.js/es/lib/utils/reverseHighlightedParts.js","../node_modules/instantsearch.js/es/lib/utils/safelyRunOnBrowser.js","../node_modules/instantsearch.js/es/connectors/configure/connectConfigure.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/react-instantsearch-hooks/dist/es/lib/dequal.js","../node_modules/react-instantsearch-hooks/dist/es/lib/createSearchResults.js","../node_modules/react-instantsearch-hooks/dist/es/lib/getIndexSearchResults.js","../node_modules/react-instantsearch-hooks/dist/es/lib/invariant.js","../node_modules/react-instantsearch-hooks/dist/es/lib/IndexContext.js","../node_modules/react-instantsearch-hooks/dist/es/lib/useIndexContext.js","../node_modules/react-instantsearch-hooks/dist/es/lib/InstantSearchContext.js","../node_modules/react-instantsearch-hooks/dist/es/lib/useInstantSearchContext.js","../node_modules/react-instantsearch-hooks/dist/es/components/InstantSearchServerContext.js","../node_modules/react-instantsearch-hooks/dist/es/lib/useInstantSearchServerContext.js","../node_modules/react-instantsearch-hooks/dist/es/lib/useStableValue.js","../node_modules/react-instantsearch-hooks/dist/es/lib/useIsomorphicLayoutEffect.js","../node_modules/react-instantsearch-hooks/dist/es/lib/useWidget.js","../node_modules/react-instantsearch-hooks/dist/es/hooks/useConnector.js","../node_modules/react-instantsearch-hooks/dist/es/connectors/useConfigure.js","../node_modules/react-instantsearch-hooks/dist/es/components/Configure.js","../node_modules/instantsearch.js/es/widgets/index/index.js","../node_modules/react-instantsearch-hooks/dist/es/lib/useForceUpdate.js","../node_modules/react-instantsearch-hooks/dist/es/lib/InstantSearchSSRContext.js","../node_modules/react-instantsearch-hooks/dist/es/lib/useInstantSearchSSRContext.js","../node_modules/instantsearch.js/es/lib/version.js","../node_modules/instantsearch.js/es/lib/suit.js","../node_modules/instantsearch.js/es/helpers/highlight.js","../node_modules/instantsearch.js/es/helpers/reverseHighlight.js","../node_modules/instantsearch.js/es/helpers/snippet.js","../node_modules/instantsearch.js/es/helpers/reverseSnippet.js","../node_modules/instantsearch.js/es/helpers/insights.js","../node_modules/instantsearch.js/es/lib/formatNumber.js","../node_modules/instantsearch.js/es/lib/createHelpers.js","../node_modules/instantsearch.js/es/lib/stateMappings/simple.js","../node_modules/instantsearch.js/node_modules/qs/lib/formats.js","../node_modules/instantsearch.js/node_modules/qs/lib/utils.js","../node_modules/instantsearch.js/node_modules/qs/lib/stringify.js","../node_modules/instantsearch.js/node_modules/qs/lib/parse.js","../node_modules/instantsearch.js/node_modules/qs/lib/index.js","../node_modules/instantsearch.js/es/lib/routers/history.js","../node_modules/instantsearch.js/es/middlewares/createRouterMiddleware.js","../node_modules/instantsearch.js/es/middlewares/createMetadataMiddleware.js","../node_modules/instantsearch.js/es/lib/InstantSearch.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../node_modules/use-sync-external-store/shim/index.js","../node_modules/react-instantsearch-hooks/dist/es/lib/useInstantSearchApi.js","../node_modules/react-instantsearch-hooks/dist/es/components/InstantSearch.js","../node_modules/instantsearch.js/es/connectors/infinite-hits/connectInfiniteHits.js","../node_modules/react-instantsearch-hooks/dist/es/connectors/useInfiniteHits.js","../node_modules/instantsearch.js/es/connectors/refinement-list/connectRefinementList.js","../node_modules/react-instantsearch-hooks/dist/es/connectors/useRefinementList.js","../node_modules/instantsearch.js/es/connectors/sort-by/connectSortBy.js","../node_modules/react-instantsearch-hooks/dist/es/connectors/useSortBy.js","../node_modules/react-instantsearch-hooks/dist/es/lib/useSearchResults.js","../node_modules/react-instantsearch-hooks/dist/es/lib/useSearchState.js","../node_modules/react-instantsearch-hooks/dist/es/hooks/useInstantSearch.js","../node_modules/@devolutions/icons/react/FilterBold.js","../src/components/devolutions-search/structure/results-header.tsx","../src/components/devolutions-search/structure/state-result.tsx","../node_modules/react-intersection-observer-hook/dist/react-intersection-observer-hook.esm.js","../node_modules/react-infinite-scroll-hook/dist/react-infinite-scroll-hook.esm.js","../node_modules/@devolutions/icons/react/Windows.js","../node_modules/@devolutions/icons/react/Apple.js","../node_modules/@devolutions/icons/react/Android.js","../node_modules/@devolutions/icons/react/Ios.js","../node_modules/@devolutions/icons/react/Linux.js","../node_modules/@devolutions/icons/react/LogoRdm.js","../node_modules/@devolutions/icons/react/LogoPvm.js","../node_modules/@devolutions/icons/react/LogoDps.js","../node_modules/@devolutions/icons/react/LogoHub.js","../node_modules/@devolutions/icons/react/LogoDevolutions.js","../src/components/devolutions-search/shared/logo-mapper.ts","../src/components/devolutions-search/shared/options-panel.tsx","../src/components/devolutions-search/shared/utils.ts","../node_modules/react-highlight-words/dist/main.js","../src/components/devolutions-search/hits/types/documents-hit.tsx","../node_modules/@devolutions/icons/react/Topic.js","../node_modules/@devolutions/icons/react/View.js","../node_modules/@devolutions/icons/react/EntrySampleComment.js","../node_modules/@devolutions/icons/react/EntryOtp.js","../src/components/devolutions-search/hits/types/forum-hit.tsx","../node_modules/@devolutions/icons/react/Book.js","../src/components/devolutions-search/hits/types/blog-hit.tsx","../src/components/devolutions-search/hits/types/docs-hit.tsx","../src/components/devolutions-search/hits/infinite-hits.tsx","../src/components/devolutions-search/category/category.tsx","../src/components/devolutions-search/sortBy/sort-by.tsx","../src/components/devolutions-search/refinementLists/software-refinement-list.tsx","../src/components/devolutions-search/refinementLists/platform-refinement-list.tsx","../src/components/devolutions-search/refinementLists/document-types-refinement-list.tsx","../src/components/devolutions-search/refinementLists/blog-categories-refinement-list.tsx","../src/components/devolutions-search/refinementLists/docs-doc-refinement-list.tsx","../src/components/devolutions-search/category/forum-category.tsx","../src/components/devolutions-search/structure/header-link.tsx","../node_modules/use-debounce/dist/index.module.js","../node_modules/@devolutions/icons/react/Search.js","../node_modules/@devolutions/icons/react/Close.js","../node_modules/@devolutions/icons/react/CloseWindow.js","../src/components/devolutions-search/structure/search-header.tsx","../src/components/devolutions-search/category/docs-category.tsx","../src/components/devolutions-search/category/blog-category.tsx","../src/components/devolutions-search/category/document-category.tsx","../src/components/devolutions-search/hooks/click-outside-hook.tsx","../src/components/devolutions-search/devolutions-search.tsx"],"sourcesContent":["var n,l,u,i,t,o,r,f={},e=[],c=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function s(n,l){for(var u in l)n[u]=l[u];return n}function a(n){var l=n.parentNode;l&&l.removeChild(n)}function h(l,u,i){var t,o,r,f={};for(r in u)\"key\"==r?t=u[r]:\"ref\"==r?o=u[r]:f[r]=u[r];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),\"function\"==typeof l&&null!=l.defaultProps)for(r in l.defaultProps)void 0===f[r]&&(f[r]=l.defaultProps[r]);return v(l,f,t,o,null)}function v(n,i,t,o,r){var f={type:n,props:i,key:t,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==r?++u:r};return null==r&&null!=l.vnode&&l.vnode(f),f}function y(){return{current:null}}function p(n){return n.children}function d(n,l){this.props=n,this.context=l}function _(n,l){if(null==l)return n.__?_(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l0?v(k.type,k.props,k.key,k.ref?k.ref:null,k.__v):k)){if(k.__=u,k.__b=u.__b+1,null===(d=x[h])||d&&k.key==d.key&&k.type===d.type)x[h]=void 0;else for(y=0;y2&&(f.children=arguments.length>3?n.call(arguments,2):i),v(l.type,f,t||l.key,o||l.ref,null)}function B(n,l){var u={__c:l=\"__cC\"+r++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,i;return this.getChildContext||(u=[],(i={})[l]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(b)},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n=e.slice,l={__e:function(n,l,u,i){for(var t,o,r;l=l.__;)if((t=l.__c)&&!t.__)try{if((o=t.constructor)&&null!=o.getDerivedStateFromError&&(t.setState(o.getDerivedStateFromError(n)),r=t.__d),null!=t.componentDidCatch&&(t.componentDidCatch(n,i||{}),r=t.__d),r)return t.__E=t}catch(l){n=l}throw n}},u=0,i=function(n){return null!=n&&void 0===n.constructor},d.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=s({},this.state),\"function\"==typeof n&&(n=n(s({},u),this.props)),n&&s(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),b(this))},d.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),b(this))},d.prototype.render=p,t=[],g.__r=0,r=0;export{d as Component,p as Fragment,q as cloneElement,B as createContext,h as createElement,y as createRef,h,S as hydrate,i as isValidElement,l as options,P as render,x as toChildArray};\n//# sourceMappingURL=preact.module.js.map\n","import{options as n,Fragment as t}from\"preact\";var r,u,i,o,f=0,c=[],e=[],a=n.__b,v=n.__r,l=n.diffed,m=n.__c,d=n.unmount;function p(t,r){n.__h&&n.__h(u,t,f||r),f=0;var i=u.__H||(u.__H={__:[],__h:[]});return t>=i.__.length&&i.__.push({__V:e}),i.__[t]}function y(n){return f=1,h(C,n)}function h(n,t,i){var o=p(r++,2);if(o.t=n,!o.__c&&(o.__=[i?i(t):C(void 0,t),function(n){var t=o.__N?o.__N[0]:o.__[0],r=o.t(t,n);t!==r&&(o.__N=[r,o.__[1]],o.__c.setState({}))}],o.__c=u,!u.u)){u.u=!0;var f=u.shouldComponentUpdate;u.shouldComponentUpdate=function(n,t,r){if(!o.__c.__H)return!0;var u=o.__c.__H.__.filter(function(n){return n.__c});if(u.every(function(n){return!n.__N}))return!f||f.call(this,n,t,r);var i=!1;return u.forEach(function(n){if(n.__N){var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0)}}),!(!i&&o.__c.props===n)&&(!f||f.call(this,n,t,r))}}return o.__N||o.__}function s(t,i){var o=p(r++,3);!n.__s&&B(o.__H,i)&&(o.__=t,o.i=i,u.__H.__h.push(o))}function _(t,i){var o=p(r++,4);!n.__s&&B(o.__H,i)&&(o.__=t,o.i=i,u.__h.push(o))}function A(n){return f=5,T(function(){return{current:n}},[])}function F(n,t,r){f=6,_(function(){return\"function\"==typeof n?(n(t()),function(){return n(null)}):n?(n.current=t(),function(){return n.current=null}):void 0},null==r?r:r.concat(n))}function T(n,t){var u=p(r++,7);return B(u.__H,t)?(u.__V=n(),u.i=t,u.__h=n,u.__V):u.__}function q(n,t){return f=8,T(function(){return n},t)}function x(n){var t=u.context[n.__c],i=p(r++,9);return i.c=n,t?(null==i.__&&(i.__=!0,t.sub(u)),t.props.value):n.__}function P(t,r){n.useDebugValue&&n.useDebugValue(r?r(t):t)}function V(n){var t=p(r++,10),i=y();return t.__=n,u.componentDidCatch||(u.componentDidCatch=function(n,r){t.__&&t.__(n,r),i[1](n)}),[i[0],function(){i[1](void 0)}]}function b(){var n=p(r++,11);return n.__||(n.__=\"P\"+function(n){for(var t=0,r=n.length;r>0;)t=(t<<5)-t+n.charCodeAt(--r)|0;return t}(u.__v.__m)+r),n.__}function g(){for(var t;t=c.shift();)if(t.__P&&t.__H)try{t.__H.__h.forEach(w),t.__H.__h.forEach(z),t.__H.__h=[]}catch(r){t.__H.__h=[],n.__e(r,t.__v)}}n.__b=function(n){\"function\"!=typeof n.type||n.__m||n.type===t?n.__m||(n.__m=n.__&&n.__.__m?n.__.__m:\"\"):n.__m=(n.__&&n.__.__m?n.__.__m:\"\")+(n.__&&n.__.__k?n.__.__k.indexOf(n):0),u=null,a&&a(n)},n.__r=function(n){v&&v(n),r=0;var t=(u=n.__c).__H;t&&(i===u?(t.__h=[],u.__h=[],t.__.forEach(function(n){n.__N&&(n.__=n.__N),n.__V=e,n.__N=n.i=void 0})):(t.__h.forEach(w),t.__h.forEach(z),t.__h=[])),i=u},n.diffed=function(t){l&&l(t);var r=t.__c;r&&r.__H&&(r.__H.__h.length&&(1!==c.push(r)&&o===n.requestAnimationFrame||((o=n.requestAnimationFrame)||k)(g)),r.__H.__.forEach(function(n){n.i&&(n.__H=n.i),n.__V!==e&&(n.__=n.__V),n.i=void 0,n.__V=e})),i=u=null},n.__c=function(t,r){r.some(function(t){try{t.__h.forEach(w),t.__h=t.__h.filter(function(n){return!n.__||z(n)})}catch(u){r.some(function(n){n.__h&&(n.__h=[])}),r=[],n.__e(u,t.__v)}}),m&&m(t,r)},n.unmount=function(t){d&&d(t);var r,u=t.__c;u&&u.__H&&(u.__H.__.forEach(function(n){try{w(n)}catch(n){r=n}}),u.__H=void 0,r&&n.__e(r,u.__v))};var j=\"function\"==typeof requestAnimationFrame;function k(n){var t,r=function(){clearTimeout(u),j&&cancelAnimationFrame(t),setTimeout(n)},u=setTimeout(r,100);j&&(t=requestAnimationFrame(r))}function w(n){var t=u,r=n.__c;\"function\"==typeof r&&(n.__c=void 0,r()),u=t}function z(n){var t=u;n.__c=n.__(),u=t}function B(n,t){return!n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function C(n,t){return\"function\"==typeof t?t(n):t}export{q as useCallback,x as useContext,P as useDebugValue,s as useEffect,V as useErrorBoundary,b as useId,F as useImperativeHandle,_ as useLayoutEffect,T as useMemo,h as useReducer,A as useRef,y as useState};\n//# sourceMappingURL=hooks.module.js.map\n","import{Component as n,createElement as t,options as e,toChildArray as r,Fragment as u,render as o,hydrate as i,createContext as l,createRef as c,cloneElement as f}from\"preact\";export{Component,Fragment,createContext,createElement,createRef}from\"preact\";import{useState as a,useId as s,useReducer as h,useEffect as v,useLayoutEffect as d,useRef as p,useImperativeHandle as m,useMemo as y,useCallback as _,useContext as b,useDebugValue as S}from\"preact/hooks\";export*from\"preact/hooks\";function g(n,t){for(var e in t)n[e]=t[e];return n}function C(n,t){for(var e in n)if(\"__source\"!==e&&!(e in t))return!0;for(var r in t)if(\"__source\"!==r&&n[r]!==t[r])return!0;return!1}function E(n){this.props=n}function w(n,e){function r(n){var t=this.props.ref,r=t==n.ref;return!r&&t&&(t.call?t(null):t.current=null),e?!e(this.props,n)||!r:C(this.props,n)}function u(e){return this.shouldComponentUpdate=r,t(n,e)}return u.displayName=\"Memo(\"+(n.displayName||n.name)+\")\",u.prototype.isReactComponent=!0,u.__f=!0,u}(E.prototype=new n).isPureReactComponent=!0,E.prototype.shouldComponentUpdate=function(n,t){return C(this.props,n)||C(this.state,t)};var R=e.__b;e.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),R&&R(n)};var x=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.forward_ref\")||3911;function N(n){function t(t){var e=g({},t);return delete e.ref,n(e,t.ref||null)}return t.$$typeof=x,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName=\"ForwardRef(\"+(n.displayName||n.name)+\")\",t}var k=function(n,t){return null==n?null:r(r(n).map(t))},A={map:k,forEach:k,count:function(n){return n?r(n).length:0},only:function(n){var t=r(n);if(1!==t.length)throw\"Children.only\";return t[0]},toArray:r},O=e.__e;e.__e=function(n,t,e,r){if(n.then)for(var u,o=t;o=o.__;)if((u=o.__c)&&u.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),u.__c(n,t);O(n,t,e,r)};var T=e.unmount;function I(n,t,e){return n&&(n.__c&&n.__c.__H&&(n.__c.__H.__.forEach(function(n){\"function\"==typeof n.__c&&n.__c()}),n.__c.__H=null),null!=(n=g({},n)).__c&&(n.__c.__P===e&&(n.__c.__P=t),n.__c=null),n.__k=n.__k&&n.__k.map(function(n){return I(n,t,e)})),n}function L(n,t,e){return n&&(n.__v=null,n.__k=n.__k&&n.__k.map(function(n){return L(n,t,e)}),n.__c&&n.__c.__P===t&&(n.__e&&e.insertBefore(n.__e,n.__d),n.__c.__e=!0,n.__c.__P=e)),n}function U(){this.__u=0,this.t=null,this.__b=null}function D(n){var t=n.__.__c;return t&&t.__a&&t.__a(n)}function F(n){var e,r,u;function o(o){if(e||(e=n()).then(function(n){r=n.default||n},function(n){u=n}),u)throw u;if(!r)throw e;return t(r,o)}return o.displayName=\"Lazy\",o.__f=!0,o}function M(){this.u=null,this.o=null}e.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&!0===n.__h&&(n.type=null),T&&T(n)},(U.prototype=new n).__c=function(n,t){var e=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(e);var u=D(r.__v),o=!1,i=function(){o||(o=!0,e.__R=null,u?u(l):l())};e.__R=i;var l=function(){if(!--r.__u){if(r.state.__a){var n=r.state.__a;r.__v.__k[0]=L(n,n.__c.__P,n.__c.__O)}var t;for(r.setState({__a:r.__b=null});t=r.t.pop();)t.forceUpdate()}},c=!0===t.__h;r.__u++||c||r.setState({__a:r.__b=r.__v.__k[0]}),n.then(i,i)},U.prototype.componentWillUnmount=function(){this.t=[]},U.prototype.render=function(n,e){if(this.__b){if(this.__v.__k){var r=document.createElement(\"div\"),o=this.__v.__k[0].__c;this.__v.__k[0]=I(this.__b,r,o.__O=o.__P)}this.__b=null}var i=e.__a&&t(u,null,n.fallback);return i&&(i.__h=null),[t(u,null,e.__a?null:n.children),i]};var V=function(n,t,e){if(++e[1]===e[0]&&n.o.delete(t),n.props.revealOrder&&(\"t\"!==n.props.revealOrder[0]||!n.o.size))for(e=n.u;e;){for(;e.length>3;)e.pop()();if(e[1]>>1,1),e.i.removeChild(n)}}),o(t(W,{context:e.context},n.__v),e.l)):e.l&&e.componentWillUnmount()}function $(n,e){var r=t(P,{__v:n,i:e});return r.containerInfo=e,r}(M.prototype=new n).__a=function(n){var t=this,e=D(t.__v),r=t.o.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),V(t,n,r)):u()};e?e(o):o()}},M.prototype.render=function(n){this.u=null,this.o=new Map;var t=r(n.children);n.revealOrder&&\"b\"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.o.set(t[e],this.u=[1,0,this.u]);return n.children},M.prototype.componentDidUpdate=M.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){V(n,e,t)})};var j=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103,z=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,B=\"undefined\"!=typeof document,H=function(n){return(\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(n)};function Z(n,t,e){return null==t.__k&&(t.textContent=\"\"),o(n,t),\"function\"==typeof e&&e(),n?n.__c:null}function Y(n,t,e){return i(n,t),\"function\"==typeof e&&e(),n?n.__c:null}n.prototype.isReactComponent={},[\"componentWillMount\",\"componentWillReceiveProps\",\"componentWillUpdate\"].forEach(function(t){Object.defineProperty(n.prototype,t,{configurable:!0,get:function(){return this[\"UNSAFE_\"+t]},set:function(n){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:n})}})});var q=e.event;function G(){}function J(){return this.cancelBubble}function K(){return this.defaultPrevented}e.event=function(n){return q&&(n=q(n)),n.persist=G,n.isPropagationStopped=J,n.isDefaultPrevented=K,n.nativeEvent=n};var Q,X={configurable:!0,get:function(){return this.class}},nn=e.vnode;e.vnode=function(n){var t=n.type,e=n.props,u=e;if(\"string\"==typeof t){var o=-1===t.indexOf(\"-\");for(var i in u={},e){var l=e[i];B&&\"children\"===i&&\"noscript\"===t||\"value\"===i&&\"defaultValue\"in e&&null==l||(\"defaultValue\"===i&&\"value\"in e&&null==e.value?i=\"value\":\"download\"===i&&!0===l?l=\"\":/ondoubleclick/i.test(i)?i=\"ondblclick\":/^onchange(textarea|input)/i.test(i+t)&&!H(e.type)?i=\"oninput\":/^onfocus$/i.test(i)?i=\"onfocusin\":/^onblur$/i.test(i)?i=\"onfocusout\":/^on(Ani|Tra|Tou|BeforeInp|Compo)/.test(i)?i=i.toLowerCase():o&&z.test(i)?i=i.replace(/[A-Z0-9]/g,\"-$&\").toLowerCase():null===l&&(l=void 0),/^oninput$/i.test(i)&&(i=i.toLowerCase(),u[i]&&(i=\"oninputCapture\")),u[i]=l)}\"select\"==t&&u.multiple&&Array.isArray(u.value)&&(u.value=r(e.children).forEach(function(n){n.props.selected=-1!=u.value.indexOf(n.props.value)})),\"select\"==t&&null!=u.defaultValue&&(u.value=r(e.children).forEach(function(n){n.props.selected=u.multiple?-1!=u.defaultValue.indexOf(n.props.value):u.defaultValue==n.props.value})),n.props=u,e.class!=e.className&&(X.enumerable=\"className\"in e,null!=e.className&&(u.class=e.className),Object.defineProperty(u,\"className\",X))}n.$$typeof=j,nn&&nn(n)};var tn=e.__r;e.__r=function(n){tn&&tn(n),Q=n.__c};var en={ReactCurrentDispatcher:{current:{readContext:function(n){return Q.__n[n.__c].props.value}}}},rn=\"17.0.2\";function un(n){return t.bind(null,n)}function on(n){return!!n&&n.$$typeof===j}function ln(n){return on(n)?f.apply(null,arguments):n}function cn(n){return!!n.__k&&(o(null,n),!0)}function fn(n){return n&&(n.base||1===n.nodeType&&n)||null}var an=function(n,t){return n(t)},sn=function(n,t){return n(t)},hn=u;function vn(n){n()}function dn(n){return n}function pn(){return[!1,vn]}var mn=d;function yn(n,t){var e=t(),r=a({h:{__:e,v:t}}),u=r[0].h,o=r[1];return d(function(){u.__=e,u.v=t,u.__!==t()&&o({h:u})},[n,e,t]),v(function(){return u.__!==u.v()&&o({h:u}),n(function(){u.__!==u.v()&&o({h:u})})},[n]),e}var _n={useState:a,useId:s,useReducer:h,useEffect:v,useLayoutEffect:d,useInsertionEffect:mn,useTransition:pn,useDeferredValue:dn,useSyncExternalStore:yn,startTransition:vn,useRef:p,useImperativeHandle:m,useMemo:y,useCallback:_,useContext:b,useDebugValue:S,version:\"17.0.2\",Children:A,render:Z,hydrate:Y,unmountComponentAtNode:cn,createPortal:$,createElement:t,createContext:l,createFactory:un,cloneElement:ln,createRef:c,Fragment:u,isValidElement:on,findDOMNode:fn,Component:n,PureComponent:E,memo:w,forwardRef:N,flushSync:sn,unstable_batchedUpdates:an,StrictMode:hn,Suspense:U,SuspenseList:M,lazy:F,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:en};export{A as Children,E as PureComponent,hn as StrictMode,U as Suspense,M as SuspenseList,en as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,ln as cloneElement,un as createFactory,$ as createPortal,_n as default,fn as findDOMNode,sn as flushSync,N as forwardRef,Y as hydrate,on as isValidElement,F as lazy,w as memo,Z as render,vn as startTransition,cn as unmountComponentAtNode,an as unstable_batchedUpdates,dn as useDeferredValue,mn as useInsertionEffect,yn as useSyncExternalStore,pn as useTransition,rn as version};\n//# sourceMappingURL=compat.module.js.map\n","var t=require(\"preact\");function e(){return(e=Object.assign||function(t){for(var e=1;e=0||(o[n]=t[n]);return o}(e,[\"context\",\"children\"]);return t.cloneElement(n,r)}function r(){var r=new CustomEvent(\"_preact\",{detail:{},bubbles:!0,cancelable:!0});this.dispatchEvent(r),this._vdom=t.h(n,e({},this._props,{context:r.detail.context}),function e(n,r){if(3===n.nodeType)return n.data;if(1!==n.nodeType)return null;var i=[],a={},c=0,l=n.attributes,u=n.childNodes;for(c=l.length;c--;)\"slot\"!==l[c].name&&(a[l[c].name]=l[c].value,a[o(l[c].name)]=l[c].value);for(c=u.length;c--;){var h=e(u[c],null),p=u[c].slot;p?a[p]=t.h(s,{name:p},h):i[c]=h}var d=r?t.h(s,null,i):i;return t.h(r||n.nodeName.toLowerCase(),a,d)}(this,this._vdomComponent)),(this.hasAttribute(\"hydrate\")?t.hydrate:t.render)(this._vdom,this._root)}function o(t){return t.replace(/-(\\w)/g,function(t,e){return e?e.toUpperCase():\"\"})}function i(e,n,r){if(this._vdom){var i={};i[e]=r=null==r?void 0:r,i[o(e)]=r,this._vdom=t.cloneElement(this._vdom,i),t.render(this._vdom,this._root)}}function a(){t.render(this._vdom=null,this._root)}function s(n,r){var o=this;return t.h(\"slot\",e({},n,{ref:function(t){t?(o.ref=t,o._listener||(o._listener=function(t){t.stopPropagation(),t.detail.context=r},t.addEventListener(\"_preact\",o._listener))):o.ref.removeEventListener(\"_preact\",o._listener)}}))}module.exports=function(t,e,n,o){function s(){var e=Reflect.construct(HTMLElement,[],s);return e._vdomComponent=t,e._root=o&&o.shadow?e.attachShadow({mode:\"open\"}):e,e}return(s.prototype=Object.create(HTMLElement.prototype)).constructor=s,s.prototype.connectedCallback=r,s.prototype.attributeChangedCallback=i,s.prototype.disconnectedCallback=a,n=n||t.observedAttributes||Object.keys(t.propTypes||{}),s.observedAttributes=n,n.forEach(function(t){Object.defineProperty(s.prototype,t,{get:function(){return this._vdom.props[t]},set:function(e){this._vdom?this.attributeChangedCallback(t,null,e):(this._props||(this._props={}),this._props[t]=e,this.connectedCallback());var n=typeof e;null!=e&&\"string\"!==n&&\"boolean\"!==n&&\"number\"!==n||this.setAttribute(t,e)}})}),customElements.define(e||t.tagName||t.displayName||t.name,s)};\n//# sourceMappingURL=preact-custom-element.js.map\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, options) {\n var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';\n var valuesArray;\n\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n\n var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex; // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n\n return valuesArray[index];\n };\n}","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\n\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n\n return undefined;\n}","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n\n var number = Number(dirtyNumber);\n\n if (isNaN(number)) {\n return number;\n }\n\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\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 requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\n\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\n\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","var defaultOptions = {};\nexport function getDefaultOptions() {\n return defaultOptions;\n}\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name compareAsc\n * @category Common Helpers\n * @summary Compare the two dates and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return 1 if the first date is after the second,\n * -1 if the first date is before the second or 0 if dates are equal.\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Number} the result of the comparison\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989:\n * const result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * const result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * // Wed Feb 11 1987 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Sun Jul 02 1995 00:00:00\n * // ]\n */\n\nexport default function compareAsc(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var diff = dateLeft.getTime() - dateRight.getTime();\n\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1; // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}","/**\n * Days in 1 week.\n *\n * @name daysInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInWeek = 7;\n/**\n * Days in 1 year\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n *\n * @name daysInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var daysInYear = 365.2425;\n/**\n * Maximum allowed time.\n *\n * @name maxTime\n * @constant\n * @type {number}\n * @default\n */\n\nexport var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n/**\n * Milliseconds in 1 minute\n *\n * @name millisecondsInMinute\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInMinute = 60000;\n/**\n * Milliseconds in 1 hour\n *\n * @name millisecondsInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInHour = 3600000;\n/**\n * Milliseconds in 1 second\n *\n * @name millisecondsInSecond\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInSecond = 1000;\n/**\n * Minimum allowed time.\n *\n * @name minTime\n * @constant\n * @type {number}\n * @default\n */\n\nexport var minTime = -maxTime;\n/**\n * Minutes in 1 hour\n *\n * @name minutesInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var minutesInHour = 60;\n/**\n * Months in 1 quarter\n *\n * @name monthsInQuarter\n * @constant\n * @type {number}\n * @default\n */\n\nexport var monthsInQuarter = 3;\n/**\n * Months in 1 year\n *\n * @name monthsInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var monthsInYear = 12;\n/**\n * Quarters in 1 year\n *\n * @name quartersInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var quartersInYear = 4;\n/**\n * Seconds in 1 hour\n *\n * @name secondsInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInHour = 3600;\n/**\n * Seconds in 1 minute\n *\n * @name secondsInMinute\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInMinute = 60;\n/**\n * Seconds in 1 day\n *\n * @name secondsInDay\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInDay = secondsInHour * 24;\n/**\n * Seconds in 1 week\n *\n * @name secondsInWeek\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInWeek = secondsInDay * 7;\n/**\n * Seconds in 1 year\n *\n * @name secondsInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInYear = secondsInDay * daysInYear;\n/**\n * Seconds in 1 month\n *\n * @name secondsInMonth\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInMonth = secondsInYear / 12;\n/**\n * Seconds in 1 quarter\n *\n * @name secondsInQuarter\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInQuarter = secondsInMonth * 3;","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 requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\n\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\n\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInCalendarMonths\n * @category Month Helpers\n * @summary Get the number of calendar months between the given dates.\n *\n * @description\n * Get the number of calendar months between the given dates.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * const result = differenceInCalendarMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 8\n */\n\nexport default function differenceInCalendarMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var yearDiff = dateLeft.getFullYear() - dateRight.getFullYear();\n var monthDiff = dateLeft.getMonth() - dateRight.getMonth();\n return yearDiff * 12 + monthDiff;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name differenceInMilliseconds\n * @category Millisecond Helpers\n * @summary Get the number of milliseconds between the given dates.\n *\n * @description\n * Get the number of milliseconds between the given dates.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of milliseconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many milliseconds are between\n * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?\n * const result = differenceInMilliseconds(\n * new Date(2014, 6, 2, 12, 30, 21, 700),\n * new Date(2014, 6, 2, 12, 30, 20, 600)\n * )\n * //=> 1100\n */\n\nexport default function differenceInMilliseconds(dateLeft, dateRight) {\n requiredArgs(2, arguments);\n return toDate(dateLeft).getTime() - toDate(dateRight).getTime();\n}","var roundingMap = {\n ceil: Math.ceil,\n round: Math.round,\n floor: Math.floor,\n trunc: function trunc(value) {\n return value < 0 ? Math.ceil(value) : Math.floor(value);\n } // Math.trunc is not supported by IE\n\n};\nvar defaultRoundingMethod = 'trunc';\nexport function getRoundingMethod(method) {\n return method ? roundingMap[method] : roundingMap[defaultRoundingMethod];\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfDay\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\n\nexport default function endOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name endOfMonth\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\n\nexport default function endOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear(), month + 1, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport endOfDay from \"../endOfDay/index.js\";\nimport endOfMonth from \"../endOfMonth/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isLastDayOfMonth\n * @category Month Helpers\n * @summary Is the given date the last day of a month?\n *\n * @description\n * Is the given date the last day of a month?\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is the last day of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Is 28 February 2014 the last day of a month?\n * const result = isLastDayOfMonth(new Date(2014, 1, 28))\n * //=> true\n */\n\nexport default function isLastDayOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n return endOfDay(date).getTime() === endOfMonth(date).getTime();\n}","import toDate from \"../toDate/index.js\";\nimport differenceInCalendarMonths from \"../differenceInCalendarMonths/index.js\";\nimport compareAsc from \"../compareAsc/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport isLastDayOfMonth from \"../isLastDayOfMonth/index.js\";\n/**\n * @name differenceInMonths\n * @category Month Helpers\n * @summary Get the number of full months between the given dates.\n *\n * @description\n * Get the number of full months between the given dates using trunc as a default rounding method.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of full months\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full months are between 31 January 2014 and 1 September 2014?\n * const result = differenceInMonths(new Date(2014, 8, 1), new Date(2014, 0, 31))\n * //=> 7\n */\n\nexport default function differenceInMonths(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var sign = compareAsc(dateLeft, dateRight);\n var difference = Math.abs(differenceInCalendarMonths(dateLeft, dateRight));\n var result; // Check for the difference of less than month\n\n if (difference < 1) {\n result = 0;\n } else {\n if (dateLeft.getMonth() === 1 && dateLeft.getDate() > 27) {\n // This will check if the date is end of Feb and assign a higher end of month date\n // to compare it with Jan\n dateLeft.setDate(30);\n }\n\n dateLeft.setMonth(dateLeft.getMonth() - sign * difference); // Math.abs(diff in full months - diff in calendar months) === 1 if last calendar month is not full\n // If so, result must be decreased by 1 in absolute value\n\n var isLastMonthNotFull = compareAsc(dateLeft, dateRight) === -sign; // Check for cases of one full calendar month\n\n if (isLastDayOfMonth(toDate(dirtyDateLeft)) && difference === 1 && compareAsc(dirtyDateLeft, dateRight) === 1) {\n isLastMonthNotFull = false;\n }\n\n result = sign * (difference - Number(isLastMonthNotFull));\n } // Prevent negative zero\n\n\n return result === 0 ? 0 : result;\n}","import differenceInMilliseconds from \"../differenceInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getRoundingMethod } from \"../_lib/roundingMethods/index.js\";\n/**\n * @name differenceInSeconds\n * @category Second Helpers\n * @summary Get the number of seconds between the given dates.\n *\n * @description\n * Get the number of seconds between the given dates.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @param {Object} [options] - an object with options.\n * @param {String} [options.roundingMethod='trunc'] - a rounding method (`ceil`, `floor`, `round` or `trunc`)\n * @returns {Number} the number of seconds\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many seconds are between\n * // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?\n * const result = differenceInSeconds(\n * new Date(2014, 6, 2, 12, 30, 20, 0),\n * new Date(2014, 6, 2, 12, 30, 7, 999)\n * )\n * //=> 12\n */\n\nexport default function differenceInSeconds(dateLeft, dateRight, options) {\n requiredArgs(2, arguments);\n var diff = differenceInMilliseconds(dateLeft, dateRight) / 1000;\n return getRoundingMethod(options === null || options === void 0 ? void 0 : options.roundingMethod)(diff);\n}","import addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\n\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function getUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, options);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = getUTCWeekYear(dirtyDate, options);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, options);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n\n while (output.length < targetLength) {\n output = '0' + output;\n }\n\n return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nvar formatters = {\n // Year\n y: function y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function d(date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n\n case 'aaa':\n return dayPeriodEnumValue;\n\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function h(date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function H(date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function m(date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function s(date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\nvar formatters = {\n // Era\n G: function G(date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function y(date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function Y(date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year\n\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n } // Ordinal number\n\n\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n } // Padding\n\n\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = getUTCISOWeekYear(date); // Padding\n\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function u(date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function Q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function M(date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function L(date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function w(date, token, localize, options) {\n var week = getUTCWeek(date, options);\n\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function I(date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function d(date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function E(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function e(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function c(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function i(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function a(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function b(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function B(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function h(date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function H(date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function K(date, token, localize) {\n var hours = date.getUTCHours() % 12;\n\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function k(date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function m(date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n\n return lightFormatters.m(date, token);\n },\n // Second\n s: function s(date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function S(date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function X(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return 'Z';\n }\n\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function x(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function O(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function z(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function t(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function T(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\n\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n\n if (minutes === 0) {\n return sign + String(hours);\n }\n\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n\n return formatTimezone(offset, dirtyDelimiter);\n}\n\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n\nexport default formatters;","var dateLongFormatter = function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n};\n\nvar timeLongFormatter = function timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n};\n\nvar dateTimeLongFormatter = function dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n var dateTimeFormat;\n\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n};\n\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n }\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\n\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n};\n\nexport default formatDistance;","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\n\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\n\nexport default formatRelative;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n}; // Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\n\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\n\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n\n case 2:\n return number + 'nd';\n\n case 3:\n return number + 'rd';\n }\n }\n\n return number + 'th';\n};\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import isValid from \"../isValid/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n\n var originalDate = toDate(dirtyDate);\n\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n\n\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n\n var firstCharacter = substring[0];\n\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n\n var formatter = formatters[firstCharacter];\n\n if (formatter) {\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n return substring;\n }).join('');\n return result;\n}\n\nfunction cleanEscapedString(input) {\n var matched = input.match(escapedStringRegExp);\n\n if (!matched) {\n return input;\n }\n\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}","export default function assign(target, object) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n\n for (var property in object) {\n if (Object.prototype.hasOwnProperty.call(object, property)) {\n ;\n target[property] = object[property];\n }\n }\n\n return target;\n}","import assign from \"../assign/index.js\";\nexport default function cloneObject(object) {\n return assign({}, object);\n}","import { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport compareAsc from \"../compareAsc/index.js\";\nimport differenceInMonths from \"../differenceInMonths/index.js\";\nimport differenceInSeconds from \"../differenceInSeconds/index.js\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport cloneObject from \"../_lib/cloneObject/index.js\";\nimport assign from \"../_lib/assign/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MINUTES_IN_DAY = 1440;\nvar MINUTES_IN_ALMOST_TWO_DAYS = 2520;\nvar MINUTES_IN_MONTH = 43200;\nvar MINUTES_IN_TWO_MONTHS = 86400;\n/**\n * @name formatDistance\n * @category Common Helpers\n * @summary Return the distance between the given dates in words.\n *\n * @description\n * Return the distance between the given dates in words.\n *\n * | Distance between dates | Result |\n * |-------------------------------------------------------------------|---------------------|\n * | 0 ... 30 secs | less than a minute |\n * | 30 secs ... 1 min 30 secs | 1 minute |\n * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |\n * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |\n * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |\n * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |\n * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |\n * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |\n * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |\n * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |\n * | 1 yr ... 1 yr 3 months | about 1 year |\n * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |\n * | 1 yr 9 months ... 2 yrs | almost 2 years |\n * | N yrs ... N yrs 3 months | about N years |\n * | N yrs 3 months ... N yrs 9 months | over N years |\n * | N yrs 9 months ... N+1 yrs | almost N+1 years |\n *\n * With `options.includeSeconds == true`:\n * | Distance between dates | Result |\n * |------------------------|----------------------|\n * | 0 secs ... 5 secs | less than 5 seconds |\n * | 5 secs ... 10 secs | less than 10 seconds |\n * | 10 secs ... 20 secs | less than 20 seconds |\n * | 20 secs ... 40 secs | half a minute |\n * | 40 secs ... 60 secs | less than a minute |\n * | 60 secs ... 90 secs | 1 minute |\n *\n * @param {Date|Number} date - the date\n * @param {Date|Number} baseDate - the date to compare with\n * @param {Object} [options] - an object with options.\n * @param {Boolean} [options.includeSeconds=false] - distances less than a minute are more detailed\n * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `baseDate` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // What is the distance between 2 July 2014 and 1 January 2015?\n * const result = formatDistance(new Date(2014, 6, 2), new Date(2015, 0, 1))\n * //=> '6 months'\n *\n * @example\n * // What is the distance between 1 January 2015 00:00:15\n * // and 1 January 2015 00:00:00, including seconds?\n * const result = formatDistance(\n * new Date(2015, 0, 1, 0, 0, 15),\n * new Date(2015, 0, 1, 0, 0, 0),\n * { includeSeconds: true }\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, with a suffix?\n * const result = formatDistance(new Date(2015, 0, 1), new Date(2016, 0, 1), {\n * addSuffix: true\n * })\n * //=> 'about 1 year ago'\n *\n * @example\n * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = formatDistance(new Date(2016, 7, 1), new Date(2015, 0, 1), {\n * locale: eoLocale\n * })\n * //=> 'pli ol 1 jaro'\n */\n\nexport default function formatDistance(dirtyDate, dirtyBaseDate, options) {\n var _ref, _options$locale;\n\n requiredArgs(2, arguments);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n\n if (!locale.formatDistance) {\n throw new RangeError('locale must contain formatDistance property');\n }\n\n var comparison = compareAsc(dirtyDate, dirtyBaseDate);\n\n if (isNaN(comparison)) {\n throw new RangeError('Invalid time value');\n }\n\n var localizeOptions = assign(cloneObject(options), {\n addSuffix: Boolean(options === null || options === void 0 ? void 0 : options.addSuffix),\n comparison: comparison\n });\n var dateLeft;\n var dateRight;\n\n if (comparison > 0) {\n dateLeft = toDate(dirtyBaseDate);\n dateRight = toDate(dirtyDate);\n } else {\n dateLeft = toDate(dirtyDate);\n dateRight = toDate(dirtyBaseDate);\n }\n\n var seconds = differenceInSeconds(dateRight, dateLeft);\n var offsetInSeconds = (getTimezoneOffsetInMilliseconds(dateRight) - getTimezoneOffsetInMilliseconds(dateLeft)) / 1000;\n var minutes = Math.round((seconds - offsetInSeconds) / 60);\n var months; // 0 up to 2 mins\n\n if (minutes < 2) {\n if (options !== null && options !== void 0 && options.includeSeconds) {\n if (seconds < 5) {\n return locale.formatDistance('lessThanXSeconds', 5, localizeOptions);\n } else if (seconds < 10) {\n return locale.formatDistance('lessThanXSeconds', 10, localizeOptions);\n } else if (seconds < 20) {\n return locale.formatDistance('lessThanXSeconds', 20, localizeOptions);\n } else if (seconds < 40) {\n return locale.formatDistance('halfAMinute', 0, localizeOptions);\n } else if (seconds < 60) {\n return locale.formatDistance('lessThanXMinutes', 1, localizeOptions);\n } else {\n return locale.formatDistance('xMinutes', 1, localizeOptions);\n }\n } else {\n if (minutes === 0) {\n return locale.formatDistance('lessThanXMinutes', 1, localizeOptions);\n } else {\n return locale.formatDistance('xMinutes', minutes, localizeOptions);\n }\n } // 2 mins up to 0.75 hrs\n\n } else if (minutes < 45) {\n return locale.formatDistance('xMinutes', minutes, localizeOptions); // 0.75 hrs up to 1.5 hrs\n } else if (minutes < 90) {\n return locale.formatDistance('aboutXHours', 1, localizeOptions); // 1.5 hrs up to 24 hrs\n } else if (minutes < MINUTES_IN_DAY) {\n var hours = Math.round(minutes / 60);\n return locale.formatDistance('aboutXHours', hours, localizeOptions); // 1 day up to 1.75 days\n } else if (minutes < MINUTES_IN_ALMOST_TWO_DAYS) {\n return locale.formatDistance('xDays', 1, localizeOptions); // 1.75 days up to 30 days\n } else if (minutes < MINUTES_IN_MONTH) {\n var days = Math.round(minutes / MINUTES_IN_DAY);\n return locale.formatDistance('xDays', days, localizeOptions); // 1 month up to 2 months\n } else if (minutes < MINUTES_IN_TWO_MONTHS) {\n months = Math.round(minutes / MINUTES_IN_MONTH);\n return locale.formatDistance('aboutXMonths', months, localizeOptions);\n }\n\n months = differenceInMonths(dateRight, dateLeft); // 2 months up to 12 months\n\n if (months < 12) {\n var nearestMonth = Math.round(minutes / MINUTES_IN_MONTH);\n return locale.formatDistance('xMonths', nearestMonth, localizeOptions); // 1 year up to max Date\n } else {\n var monthsSinceStartOfYear = months % 12;\n var years = Math.floor(months / 12); // N years up to 1 years 3 months\n\n if (monthsSinceStartOfYear < 3) {\n return locale.formatDistance('aboutXYears', years, localizeOptions); // N years 3 months up to N years 9 months\n } else if (monthsSinceStartOfYear < 9) {\n return locale.formatDistance('overXYears', years, localizeOptions); // N years 9 months up to N year 12 months\n } else {\n return locale.formatDistance('almostXYears', years + 1, localizeOptions);\n }\n }\n}","import distanceInWords from \"../formatDistance/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n\n/**\n * @name formatDistanceToNow\n * @category Common Helpers\n * @summary Return the distance between the given date and now in words.\n * @pure false\n *\n * @description\n * Return the distance between the given date and now in words.\n *\n * | Distance to now | Result |\n * |-------------------------------------------------------------------|---------------------|\n * | 0 ... 30 secs | less than a minute |\n * | 30 secs ... 1 min 30 secs | 1 minute |\n * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |\n * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |\n * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |\n * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |\n * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |\n * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |\n * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |\n * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |\n * | 1 yr ... 1 yr 3 months | about 1 year |\n * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |\n * | 1 yr 9 months ... 2 yrs | almost 2 years |\n * | N yrs ... N yrs 3 months | about N years |\n * | N yrs 3 months ... N yrs 9 months | over N years |\n * | N yrs 9 months ... N+1 yrs | almost N+1 years |\n *\n * With `options.includeSeconds == true`:\n * | Distance to now | Result |\n * |---------------------|----------------------|\n * | 0 secs ... 5 secs | less than 5 seconds |\n * | 5 secs ... 10 secs | less than 10 seconds |\n * | 10 secs ... 20 secs | less than 20 seconds |\n * | 20 secs ... 40 secs | half a minute |\n * | 40 secs ... 60 secs | less than a minute |\n * | 60 secs ... 90 secs | 1 minute |\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * @param {Date|Number} date - the given date\n * @param {Object} [options] - the object with options\n * @param {Boolean} [options.includeSeconds=false] - distances less than a minute are more detailed\n * @param {Boolean} [options.addSuffix=false] - result specifies if now is earlier or later than the passed date\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // If today is 1 January 2015, what is the distance to 2 July 2014?\n * const result = formatDistanceToNow(\n * new Date(2014, 6, 2)\n * )\n * //=> '6 months'\n *\n * @example\n * // If now is 1 January 2015 00:00:00,\n * // what is the distance to 1 January 2015 00:00:15, including seconds?\n * const result = formatDistanceToNow(\n * new Date(2015, 0, 1, 0, 0, 15),\n * {includeSeconds: true}\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 January 2016, with a suffix?\n * const result = formatDistanceToNow(\n * new Date(2016, 0, 1),\n * {addSuffix: true}\n * )\n * //=> 'in about 1 year'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 August 2016 in Esperanto?\n * const eoLocale = require('date-fns/locale/eo')\n * const result = formatDistanceToNow(\n * new Date(2016, 7, 1),\n * {locale: eoLocale}\n * )\n * //=> 'pli ol 1 jaro'\n */\nexport default function formatDistanceToNow(dirtyDate, options) {\n requiredArgs(1, arguments);\n return distanceInWords(dirtyDate, Date.now(), options);\n}","import { millisecondsInHour, millisecondsInMinute } from \"../constants/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name parseISO\n * @category Common Helpers\n * @summary Parse ISO string\n *\n * @description\n * Parse the given string in ISO 8601 format and return an instance of Date.\n *\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If the argument isn't a string, the function cannot parse the string or\n * the values are invalid, it returns Invalid Date.\n *\n * @param {String} argument - the value to convert\n * @param {Object} [options] - an object with options.\n * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * const result = parseISO('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * const result = parseISO('+02014101', { additionalDigits: 1 })\n * //=> Fri Apr 11 2014 00:00:00\n */\n\nexport default function parseISO(argument, options) {\n var _options$additionalDi;\n\n requiredArgs(1, arguments);\n var additionalDigits = toInteger((_options$additionalDi = options === null || options === void 0 ? void 0 : options.additionalDigits) !== null && _options$additionalDi !== void 0 ? _options$additionalDi : 2);\n\n if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {\n throw new RangeError('additionalDigits must be 0, 1 or 2');\n }\n\n if (!(typeof argument === 'string' || Object.prototype.toString.call(argument) === '[object String]')) {\n return new Date(NaN);\n }\n\n var dateStrings = splitDateString(argument);\n var date;\n\n if (dateStrings.date) {\n var parseYearResult = parseYear(dateStrings.date, additionalDigits);\n date = parseDate(parseYearResult.restDateString, parseYearResult.year);\n }\n\n if (!date || isNaN(date.getTime())) {\n return new Date(NaN);\n }\n\n var timestamp = date.getTime();\n var time = 0;\n var offset;\n\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n\n if (isNaN(time)) {\n return new Date(NaN);\n }\n }\n\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone);\n\n if (isNaN(offset)) {\n return new Date(NaN);\n }\n } else {\n var dirtyDate = new Date(timestamp + time); // js parsed string assuming it's in UTC timezone\n // but we need it to be parsed in our timezone\n // so we use utc values to build date in our timezone.\n // Year values from 0 to 99 map to the years 1900 to 1999\n // so set year explicitly with setFullYear.\n\n var result = new Date(0);\n result.setFullYear(dirtyDate.getUTCFullYear(), dirtyDate.getUTCMonth(), dirtyDate.getUTCDate());\n result.setHours(dirtyDate.getUTCHours(), dirtyDate.getUTCMinutes(), dirtyDate.getUTCSeconds(), dirtyDate.getUTCMilliseconds());\n return result;\n }\n\n return new Date(timestamp + time + offset);\n}\nvar patterns = {\n dateTimeDelimiter: /[T ]/,\n timeZoneDelimiter: /[Z ]/i,\n timezone: /([Z+-].*)$/\n};\nvar dateRegex = /^-?(?:(\\d{3})|(\\d{2})(?:-?(\\d{2}))?|W(\\d{2})(?:-?(\\d{1}))?|)$/;\nvar timeRegex = /^(\\d{2}(?:[.,]\\d*)?)(?::?(\\d{2}(?:[.,]\\d*)?))?(?::?(\\d{2}(?:[.,]\\d*)?))?$/;\nvar timezoneRegex = /^([+-])(\\d{2})(?::?(\\d{2}))?$/;\n\nfunction splitDateString(dateString) {\n var dateStrings = {};\n var array = dateString.split(patterns.dateTimeDelimiter);\n var timeString; // The regex match should only return at maximum two array elements.\n // [date], [time], or [date, time].\n\n if (array.length > 2) {\n return dateStrings;\n }\n\n if (/:/.test(array[0])) {\n timeString = array[0];\n } else {\n dateStrings.date = array[0];\n timeString = array[1];\n\n if (patterns.timeZoneDelimiter.test(dateStrings.date)) {\n dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];\n timeString = dateString.substr(dateStrings.date.length, dateString.length);\n }\n }\n\n if (timeString) {\n var token = patterns.timezone.exec(timeString);\n\n if (token) {\n dateStrings.time = timeString.replace(token[1], '');\n dateStrings.timezone = token[1];\n } else {\n dateStrings.time = timeString;\n }\n }\n\n return dateStrings;\n}\n\nfunction parseYear(dateString, additionalDigits) {\n var regex = new RegExp('^(?:(\\\\d{4}|[+-]\\\\d{' + (4 + additionalDigits) + '})|(\\\\d{2}|[+-]\\\\d{' + (2 + additionalDigits) + '})$)');\n var captures = dateString.match(regex); // Invalid ISO-formatted year\n\n if (!captures) return {\n year: NaN,\n restDateString: ''\n };\n var year = captures[1] ? parseInt(captures[1]) : null;\n var century = captures[2] ? parseInt(captures[2]) : null; // either year or century is null, not both\n\n return {\n year: century === null ? year : century * 100,\n restDateString: dateString.slice((captures[1] || captures[2]).length)\n };\n}\n\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) return new Date(NaN);\n var captures = dateString.match(dateRegex); // Invalid ISO-formatted string\n\n if (!captures) return new Date(NaN);\n var isWeekDate = !!captures[4];\n var dayOfYear = parseDateUnit(captures[1]);\n var month = parseDateUnit(captures[2]) - 1;\n var day = parseDateUnit(captures[3]);\n var week = parseDateUnit(captures[4]);\n var dayOfWeek = parseDateUnit(captures[5]) - 1;\n\n if (isWeekDate) {\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN);\n }\n\n return dayOfISOWeekYear(year, week, dayOfWeek);\n } else {\n var date = new Date(0);\n\n if (!validateDate(year, month, day) || !validateDayOfYearDate(year, dayOfYear)) {\n return new Date(NaN);\n }\n\n date.setUTCFullYear(year, month, Math.max(dayOfYear, day));\n return date;\n }\n}\n\nfunction parseDateUnit(value) {\n return value ? parseInt(value) : 1;\n}\n\nfunction parseTime(timeString) {\n var captures = timeString.match(timeRegex);\n if (!captures) return NaN; // Invalid ISO-formatted time\n\n var hours = parseTimeUnit(captures[1]);\n var minutes = parseTimeUnit(captures[2]);\n var seconds = parseTimeUnit(captures[3]);\n\n if (!validateTime(hours, minutes, seconds)) {\n return NaN;\n }\n\n return hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * 1000;\n}\n\nfunction parseTimeUnit(value) {\n return value && parseFloat(value.replace(',', '.')) || 0;\n}\n\nfunction parseTimezone(timezoneString) {\n if (timezoneString === 'Z') return 0;\n var captures = timezoneString.match(timezoneRegex);\n if (!captures) return 0;\n var sign = captures[1] === '+' ? -1 : 1;\n var hours = parseInt(captures[2]);\n var minutes = captures[3] && parseInt(captures[3]) || 0;\n\n if (!validateTimezone(hours, minutes)) {\n return NaN;\n }\n\n return sign * (hours * millisecondsInHour + minutes * millisecondsInMinute);\n}\n\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n var date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n var fourthOfJanuaryDay = date.getUTCDay() || 7;\n var diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n} // Validation functions\n// February is null to handle the leap year (using ||)\n\n\nvar daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\n\nfunction validateDate(year, month, date) {\n return month >= 0 && month <= 11 && date >= 1 && date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28));\n}\n\nfunction validateDayOfYearDate(year, dayOfYear) {\n return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);\n}\n\nfunction validateWeekDate(_year, week, day) {\n return week >= 1 && week <= 53 && day >= 0 && day <= 6;\n}\n\nfunction validateTime(hours, minutes, seconds) {\n if (hours === 24) {\n return minutes === 0 && seconds === 0;\n }\n\n return seconds >= 0 && seconds < 60 && minutes >= 0 && minutes < 60 && hours >= 0 && hours < 25;\n}\n\nfunction validateTimezone(_hours, minutes) {\n return minutes >= 0 && minutes <= 59;\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n standalone: {\n one: 'weniger als 1 Sekunde',\n other: 'weniger als {{count}} Sekunden'\n },\n withPreposition: {\n one: 'weniger als 1 Sekunde',\n other: 'weniger als {{count}} Sekunden'\n }\n },\n xSeconds: {\n standalone: {\n one: '1 Sekunde',\n other: '{{count}} Sekunden'\n },\n withPreposition: {\n one: '1 Sekunde',\n other: '{{count}} Sekunden'\n }\n },\n halfAMinute: {\n standalone: 'halbe Minute',\n withPreposition: 'halben Minute'\n },\n lessThanXMinutes: {\n standalone: {\n one: 'weniger als 1 Minute',\n other: 'weniger als {{count}} Minuten'\n },\n withPreposition: {\n one: 'weniger als 1 Minute',\n other: 'weniger als {{count}} Minuten'\n }\n },\n xMinutes: {\n standalone: {\n one: '1 Minute',\n other: '{{count}} Minuten'\n },\n withPreposition: {\n one: '1 Minute',\n other: '{{count}} Minuten'\n }\n },\n aboutXHours: {\n standalone: {\n one: 'etwa 1 Stunde',\n other: 'etwa {{count}} Stunden'\n },\n withPreposition: {\n one: 'etwa 1 Stunde',\n other: 'etwa {{count}} Stunden'\n }\n },\n xHours: {\n standalone: {\n one: '1 Stunde',\n other: '{{count}} Stunden'\n },\n withPreposition: {\n one: '1 Stunde',\n other: '{{count}} Stunden'\n }\n },\n xDays: {\n standalone: {\n one: '1 Tag',\n other: '{{count}} Tage'\n },\n withPreposition: {\n one: '1 Tag',\n other: '{{count}} Tagen'\n }\n },\n aboutXWeeks: {\n standalone: {\n one: 'etwa 1 Woche',\n other: 'etwa {{count}} Wochen'\n },\n withPreposition: {\n one: 'etwa 1 Woche',\n other: 'etwa {{count}} Wochen'\n }\n },\n xWeeks: {\n standalone: {\n one: '1 Woche',\n other: '{{count}} Wochen'\n },\n withPreposition: {\n one: '1 Woche',\n other: '{{count}} Wochen'\n }\n },\n aboutXMonths: {\n standalone: {\n one: 'etwa 1 Monat',\n other: 'etwa {{count}} Monate'\n },\n withPreposition: {\n one: 'etwa 1 Monat',\n other: 'etwa {{count}} Monaten'\n }\n },\n xMonths: {\n standalone: {\n one: '1 Monat',\n other: '{{count}} Monate'\n },\n withPreposition: {\n one: '1 Monat',\n other: '{{count}} Monaten'\n }\n },\n aboutXYears: {\n standalone: {\n one: 'etwa 1 Jahr',\n other: 'etwa {{count}} Jahre'\n },\n withPreposition: {\n one: 'etwa 1 Jahr',\n other: 'etwa {{count}} Jahren'\n }\n },\n xYears: {\n standalone: {\n one: '1 Jahr',\n other: '{{count}} Jahre'\n },\n withPreposition: {\n one: '1 Jahr',\n other: '{{count}} Jahren'\n }\n },\n overXYears: {\n standalone: {\n one: 'mehr als 1 Jahr',\n other: 'mehr als {{count}} Jahre'\n },\n withPreposition: {\n one: 'mehr als 1 Jahr',\n other: 'mehr als {{count}} Jahren'\n }\n },\n almostXYears: {\n standalone: {\n one: 'fast 1 Jahr',\n other: 'fast {{count}} Jahre'\n },\n withPreposition: {\n one: 'fast 1 Jahr',\n other: 'fast {{count}} Jahren'\n }\n }\n};\n\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = options !== null && options !== void 0 && options.addSuffix ? formatDistanceLocale[token].withPreposition : formatDistanceLocale[token].standalone;\n\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', String(count));\n }\n\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return 'vor ' + result;\n }\n }\n\n return result;\n};\n\nexport default formatDistance;","import{h as r,Component as t}from\"preact\";var e,o={};function n(r,t,e){if(3===r.nodeType){var o=\"textContent\"in r?r.textContent:r.nodeValue||\"\";if(!1!==n.options.trim){var a=0===t||t===e.length-1;if((!(o=o.match(/^[\\s\\n]+$/g)&&\"all\"!==n.options.trim?\" \":o.replace(/(^[\\s\\n]+|[\\s\\n]+$)/g,\"all\"===n.options.trim||a?\"\":\" \"))||\" \"===o)&&e.length>1&&a)return null}return o}if(1!==r.nodeType)return null;var p=String(r.nodeName).toLowerCase();if(\"script\"===p&&!n.options.allowScripts)return null;var l,s,u=n.h(p,function(r){var t=r&&r.length;if(!t)return null;for(var e={},o=0;o\\n\"+r+\"\"):(i=\"xml\",a='\\n'+r+\"\");try{o=(new DOMParser).parseFromString(a,p)}catch(r){n=r}if(o||\"html\"!==t||((o=e||(e=function(){if(document.implementation&&document.implementation.createHTMLDocument)return document.implementation.createHTMLDocument(\"\");var r=document.createElement(\"iframe\");return r.style.cssText=\"position:absolute; left:0; top:-999em; width:1px; height:1px; overflow:hidden;\",r.setAttribute(\"sandbox\",\"allow-forms\"),document.body.appendChild(r),r.contentWindow.document}())).open(),o.write(a),o.close()),o){var l=o.getElementsByTagName(i)[0],s=l.firstChild;return r&&!s&&(l.error=\"Document parse failed.\"),s&&\"parsererror\"===String(s.nodeName).toLowerCase()&&(s.removeChild(s.firstChild),s.removeChild(s.lastChild),l.error=s.textContent||s.nodeValue||n||\"Unknown error\",l.removeChild(s)),l}}(r,t);if(u&&u.error)throw new Error(u.error);var c=u&&u.body||u;l.map=i||p;var m=c&&function(r,t,e,a){return n.visitor=t,n.h=e,n.options=a||o,n(r)}(c,l,a,s);return l.map=null,m&&m.props&&m.props.children||null}(c,u,C,this.map,g)}catch(r){f?f({error:r}):\"undefined\"!=typeof console&&console.error&&console.error(\"preact-markup: \"+r)}if(!1===i)return s||null;var x=w.hasOwnProperty(\"className\")?\"className\":\"class\",b=w[x];return b?b.splice?b.splice(0,0,\"markup\"):\"string\"==typeof b?w[x]+=\" markup\":\"object\"==typeof b&&(b.markup=!0):w[x]=\"markup\",C(\"div\",w,s||null)},i}(t));\n//# sourceMappingURL=preact-markup.module.js.map\n","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\n// DIN 5008: https://de.wikipedia.org/wiki/Datumsformat#DIN_5008\nvar dateFormats = {\n full: 'EEEE, do MMMM y',\n // Montag, 7. Januar 2018\n long: 'do MMMM y',\n // 7. Januar 2018\n medium: 'do MMM y',\n // 7. Jan. 2018\n short: 'dd.MM.y' // 07.01.2018\n\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'um' {{time}}\",\n long: \"{{date}} 'um' {{time}}\",\n medium: '{{date}} {{time}}',\n short: '{{date}} {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'letzten' eeee 'um' p\",\n yesterday: \"'gestern um' p\",\n today: \"'heute um' p\",\n tomorrow: \"'morgen um' p\",\n nextWeek: \"eeee 'um' p\",\n other: 'P'\n};\n\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\n\nexport default formatRelative;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['v.Chr.', 'n.Chr.'],\n abbreviated: ['v.Chr.', 'n.Chr.'],\n wide: ['vor Christus', 'nach Christus']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1. Quartal', '2. Quartal', '3. Quartal', '4. Quartal']\n}; // Note: in German, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\n\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'],\n wide: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']\n}; // https://st.unicode.org/cldr-apps/v#/de/Gregorian/\n\nvar formattingMonthValues = {\n narrow: monthValues.narrow,\n abbreviated: ['Jan.', 'Feb.', 'März', 'Apr.', 'Mai', 'Juni', 'Juli', 'Aug.', 'Sep.', 'Okt.', 'Nov.', 'Dez.'],\n wide: monthValues.wide\n};\nvar dayValues = {\n narrow: ['S', 'M', 'D', 'M', 'D', 'F', 'S'],\n short: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],\n abbreviated: ['So.', 'Mo.', 'Di.', 'Mi.', 'Do.', 'Fr.', 'Sa.'],\n wide: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag']\n}; // https://www.unicode.org/cldr/charts/32/summary/de.html#1881\n\nvar dayPeriodValues = {\n narrow: {\n am: 'vm.',\n pm: 'nm.',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'Morgen',\n afternoon: 'Nachm.',\n evening: 'Abend',\n night: 'Nacht'\n },\n abbreviated: {\n am: 'vorm.',\n pm: 'nachm.',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'Morgen',\n afternoon: 'Nachmittag',\n evening: 'Abend',\n night: 'Nacht'\n },\n wide: {\n am: 'vormittags',\n pm: 'nachmittags',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'Morgen',\n afternoon: 'Nachmittag',\n evening: 'Abend',\n night: 'Nacht'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'vm.',\n pm: 'nm.',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'morgens',\n afternoon: 'nachm.',\n evening: 'abends',\n night: 'nachts'\n },\n abbreviated: {\n am: 'vorm.',\n pm: 'nachm.',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'morgens',\n afternoon: 'nachmittags',\n evening: 'abends',\n night: 'nachts'\n },\n wide: {\n am: 'vormittags',\n pm: 'nachmittags',\n midnight: 'Mitternacht',\n noon: 'Mittag',\n morning: 'morgens',\n afternoon: 'nachmittags',\n evening: 'abends',\n night: 'nachts'\n }\n};\n\nvar ordinalNumber = function ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n return number + '.';\n};\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n formattingValues: formattingMonthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(\\.)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(v\\.? ?Chr\\.?|n\\.? ?Chr\\.?)/i,\n abbreviated: /^(v\\.? ?Chr\\.?|n\\.? ?Chr\\.?)/i,\n wide: /^(vor Christus|vor unserer Zeitrechnung|nach Christus|unserer Zeitrechnung)/i\n};\nvar parseEraPatterns = {\n any: [/^v/i, /^n/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](\\.)? Quartal/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(j[aä]n|feb|mär[z]?|apr|mai|jun[i]?|jul[i]?|aug|sep|okt|nov|dez)\\.?/i,\n wide: /^(januar|februar|märz|april|mai|juni|juli|august|september|oktober|november|dezember)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^j[aä]/i, /^f/i, /^mär/i, /^ap/i, /^mai/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smdmf]/i,\n short: /^(so|mo|di|mi|do|fr|sa)/i,\n abbreviated: /^(son?|mon?|die?|mit?|don?|fre?|sam?)\\.?/i,\n wide: /^(sonntag|montag|dienstag|mittwoch|donnerstag|freitag|samstag)/i\n};\nvar parseDayPatterns = {\n any: [/^so/i, /^mo/i, /^di/i, /^mi/i, /^do/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(vm\\.?|nm\\.?|Mitternacht|Mittag|morgens|nachm\\.?|abends|nachts)/i,\n abbreviated: /^(vorm\\.?|nachm\\.?|Mitternacht|Mittag|morgens|nachm\\.?|abends|nachts)/i,\n wide: /^(vormittags|nachmittags|Mitternacht|Mittag|morgens|nachmittags|abends|nachts)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^v/i,\n pm: /^n/i,\n midnight: /^Mitte/i,\n noon: /^Mitta/i,\n morning: /morgens/i,\n afternoon: /nachmittags/i,\n // will never be matched. Afternoon is matched by `pm`\n evening: /abends/i,\n night: /nachts/i // will never be matched. Night is matched by `pm`\n\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary German locale.\n * @language German\n * @iso-639-2 deu\n * @author Thomas Eilmsteiner [@DeMuu]{@link https://github.com/DeMuu}\n * @author Asia [@asia-t]{@link https://github.com/asia-t}\n * @author Van Vuong Ngo [@vanvuongngo]{@link https://github.com/vanvuongngo}\n * @author RomanErnst [@pex]{@link https://github.com/pex}\n * @author Philipp Keck [@Philipp91]{@link https://github.com/Philipp91}\n */\nvar locale = {\n code: 'de',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nexport default locale;","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'moins d’une seconde',\n other: 'moins de {{count}} secondes'\n },\n xSeconds: {\n one: '1 seconde',\n other: '{{count}} secondes'\n },\n halfAMinute: '30 secondes',\n lessThanXMinutes: {\n one: 'moins d’une minute',\n other: 'moins de {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'environ 1 heure',\n other: 'environ {{count}} heures'\n },\n xHours: {\n one: '1 heure',\n other: '{{count}} heures'\n },\n xDays: {\n one: '1 jour',\n other: '{{count}} jours'\n },\n aboutXWeeks: {\n one: 'environ 1 semaine',\n other: 'environ {{count}} semaines'\n },\n xWeeks: {\n one: '1 semaine',\n other: '{{count}} semaines'\n },\n aboutXMonths: {\n one: 'environ 1 mois',\n other: 'environ {{count}} mois'\n },\n xMonths: {\n one: '1 mois',\n other: '{{count}} mois'\n },\n aboutXYears: {\n one: 'environ 1 an',\n other: 'environ {{count}} ans'\n },\n xYears: {\n one: '1 an',\n other: '{{count}} ans'\n },\n overXYears: {\n one: 'plus d’un an',\n other: 'plus de {{count}} ans'\n },\n almostXYears: {\n one: 'presqu’un an',\n other: 'presque {{count}} ans'\n }\n};\n\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var form = formatDistanceLocale[token];\n\n if (typeof form === 'string') {\n result = form;\n } else if (count === 1) {\n result = form.one;\n } else {\n result = form.other.replace('{{count}}', String(count));\n }\n\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'dans ' + result;\n } else {\n return 'il y a ' + result;\n }\n }\n\n return result;\n};\n\nexport default formatDistance;","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE d MMMM y',\n long: 'd MMMM y',\n medium: 'd MMM y',\n short: 'dd/MM/y'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'à' {{time}}\",\n long: \"{{date}} 'à' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"eeee 'dernier à' p\",\n yesterday: \"'hier à' p\",\n today: \"'aujourd’hui à' p\",\n tomorrow: \"'demain à' p'\",\n nextWeek: \"eeee 'prochain à' p\",\n other: 'P'\n};\n\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\n\nexport default formatRelative;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['av. J.-C', 'ap. J.-C'],\n abbreviated: ['av. J.-C', 'ap. J.-C'],\n wide: ['avant Jésus-Christ', 'après Jésus-Christ']\n};\nvar quarterValues = {\n narrow: ['T1', 'T2', 'T3', 'T4'],\n abbreviated: ['1er trim.', '2ème trim.', '3ème trim.', '4ème trim.'],\n wide: ['1er trimestre', '2ème trimestre', '3ème trimestre', '4ème trimestre']\n};\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['janv.', 'févr.', 'mars', 'avr.', 'mai', 'juin', 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'],\n wide: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre']\n};\nvar dayValues = {\n narrow: ['D', 'L', 'M', 'M', 'J', 'V', 'S'],\n short: ['di', 'lu', 'ma', 'me', 'je', 've', 'sa'],\n abbreviated: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'],\n wide: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'AM',\n pm: 'PM',\n midnight: 'minuit',\n noon: 'midi',\n morning: 'mat.',\n afternoon: 'ap.m.',\n evening: 'soir',\n night: 'mat.'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'minuit',\n noon: 'midi',\n morning: 'matin',\n afternoon: 'après-midi',\n evening: 'soir',\n night: 'matin'\n },\n wide: {\n am: 'AM',\n pm: 'PM',\n midnight: 'minuit',\n noon: 'midi',\n morning: 'du matin',\n afternoon: 'de l’après-midi',\n evening: 'du soir',\n night: 'du matin'\n }\n};\n\nvar ordinalNumber = function ordinalNumber(dirtyNumber, options) {\n var number = Number(dirtyNumber);\n var unit = options === null || options === void 0 ? void 0 : options.unit;\n if (number === 0) return '0';\n var feminineUnits = ['year', 'week', 'hour', 'minute', 'second'];\n var suffix;\n\n if (number === 1) {\n suffix = unit && feminineUnits.includes(unit) ? 'ère' : 'er';\n } else {\n suffix = 'ème';\n }\n\n return number + suffix;\n};\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide'\n })\n};\nexport default localize;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(ième|ère|ème|er|e)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(av\\.J\\.C|ap\\.J\\.C|ap\\.J\\.-C)/i,\n abbreviated: /^(av\\.J\\.-C|av\\.J-C|apr\\.J\\.-C|apr\\.J-C|ap\\.J-C)/i,\n wide: /^(avant Jésus-Christ|après Jésus-Christ)/i\n};\nvar parseEraPatterns = {\n any: [/^av/i, /^ap/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^T?[1234]/i,\n abbreviated: /^[1234](er|ème|e)? trim\\.?/i,\n wide: /^[1234](er|ème|e)? trimestre/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(janv|févr|mars|avr|mai|juin|juill|juil|août|sept|oct|nov|déc)\\.?/i,\n wide: /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^av/i, /^ma/i, /^juin/i, /^juil/i, /^ao/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[lmjvsd]/i,\n short: /^(di|lu|ma|me|je|ve|sa)/i,\n abbreviated: /^(dim|lun|mar|mer|jeu|ven|sam)\\.?/i,\n wide: /^(dimanche|lundi|mardi|mercredi|jeudi|vendredi|samedi)/i\n};\nvar parseDayPatterns = {\n narrow: [/^d/i, /^l/i, /^m/i, /^m/i, /^j/i, /^v/i, /^s/i],\n any: [/^di/i, /^lu/i, /^ma/i, /^me/i, /^je/i, /^ve/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|minuit|midi|mat\\.?|ap\\.?m\\.?|soir|nuit)/i,\n any: /^([ap]\\.?\\s?m\\.?|du matin|de l'après[-\\s]midi|du soir|de la nuit)/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^min/i,\n noon: /^mid/i,\n morning: /mat/i,\n afternoon: /ap/i,\n evening: /soir/i,\n night: /nuit/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary French locale.\n * @language French\n * @iso-639-2 fra\n * @author Jean Dupouy [@izeau]{@link https://github.com/izeau}\n * @author François B [@fbonzon]{@link https://github.com/fbonzon}\n */\n\nvar locale = {\n code: 'fr',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 4\n }\n};\nexport default locale;","module.exports=function(t,e,l,n,o){for(e=e.split?e.split(\".\"):e,n=0;n` is a nestable internationalization definition provider.\n *\tIt exposes an Intl scope & definition into the tree,\n *\tmaking them available to descendant components.\n *\n *\t> **Note:** When nested, gives precedence to keys higher up the tree!\n *\t> This means lower-level components can set their defaults by wrapping themselves\n *\t> in an ``, but still remain localizable by their parent components.\n *\n *\t@name IntlProvider\n *\t@param props\n *\t@param {String} [props.scope]\t\t\tNest `definition` under a root key, and set the active scope for the tree (essentially prefixing all `` keys).\n *\t@param {Boolean} [props.mark=false]\t\tIf `true`, all `` elements will be shown with a red/green background indicating whether they have valid Intl keys.\n *\t@param {Object} [props.definition={}]\tMerge the given definition into the current intl definition, giving the *current* definition precedence (i.e., only adding keys, acting as defaults)\n *\n *\t@example\n *\t// generally imported from a JSON file:\n *\tlet definition = {\n *\t\tfoo: 'Le Feux'\n *\t};\n *\n *\t\n *\t\tThe Foo\n *\t\n *\n *\t// This will render the text:\n *\t\"Le Feux\"\n */\n\nfunction IntlProvider(ref) {\n\tvar scope = ref.scope;\n\tvar mark = ref.mark;\n\tvar definition = ref.definition;\n\tvar rest = objectWithoutProperties( ref, [\"scope\", \"mark\", \"definition\"] );\n\tvar props = rest;\n\n\tvar ref$1 = useContext(IntlContext);\n\tvar parentIntl = ref$1.intl;\n\tvar intl = assign({}, parentIntl || {});\n\n\t// set active scope for the tree if given\n\tif (scope) { intl.scope = scope; }\n\n\t// merge definition into current with lower precedence\n\tif (definition) {\n\t\tintl.dictionary = deepAssign(intl.dictionary || {}, definition);\n\t}\n\n\tif (mark || (typeof location!=='undefined' && String(location).match(URL_FLAG))) {\n\t\tintl.mark = true;\n\t}\n\n\treturn (\n\t\th( IntlContext.Provider, { value: { intl: intl } },\n\t\t\tprops.children\n\t\t)\n\t);\n}\n\n/**\n * Higher-order function that creates an `` wrapper component for the given component. It\n * takes two forms depending on how many arguments it's given:\n * It can take a functional form like:\n * intl(ComponentToWrap, options)\n *\n * or it can take an annotation form like:\n * @intl(options)\n * class ComponentToWrap extends Component {}\n *\n *\t@param {Component or Object} args[0] If there are two arguments, the first argument is the Component to wrap in ``. If there is just one argument, this is the options object to pass as `props` to ``. See the definition of the options param below for details.\n *\t@param {Object} options If there are two arguments, the second argument is Passed as `props` to ``\n *\t@param [options.scope]\t\t\tNest `definition` under a root key, and set the active scope for the tree (essentially prefixing all `` keys).\n *\t@param [options.definition={}]\tMerge the given definition into the current intl definition, giving the *current* definition precedence (i.e., only adding keys, acting as defaults)\n */\nfunction intl(Child, options) {\n\tif (arguments.length<2) {\n\t\toptions = Child;\n\t\treturn function (Child) { return intl(Child, options); };\n\t}\n\tfunction IntlProviderWrapper(props) {\n\t\treturn h(\n\t\t\tIntlProvider,\n\t\t\toptions || {},\n\t\t\th(Child, props)\n\t\t);\n\t}\n\n\tIntlProviderWrapper.getWrappedComponent = Child && Child.getWrappedComponent || (function () { return Child; });\n\treturn IntlProviderWrapper;\n}\n\nvar EMPTY = {};\n\n/** Populate {{template.fields}} within a given string.\n *\n *\t@private\n *\t@param {String} template\tThe string containing fields to be resolved\n *\t@param {Object} [fields={}]\tOptionally nested object of fields, referencable from `template`.\n *\t@example\n *\t\ttemplate('foo{{bar}}', { bar:'baz' }) === 'foobaz'\n */\nfunction template(template, fields, scope, dictionary) {\n\treturn template && template.replace(/\\{\\{([\\w.-]+)\\}\\}/g, replacer.bind(null, fields || EMPTY, scope, dictionary));\n}\n\n/** Replacement callback for injecting fields into a String\n *\t@private\n */\nfunction replacer(currentFields, scope, dictionary, s, field) {\n\tvar parts = field.split('.'),\n\t\tv = currentFields;\n\tfor (var i=0; i nodes\n\t\tif (v && v.type === Text) {\n\t\t\treturn translate(v.props.id, scope, dictionary, v.props.fields, v.props.plural, v.props.fallback);\n\t\t}\n\t}\n\t// allow for recursive {{config.xx}} references:\n\tif (typeof v==='string' && v.match(/\\{\\{/)) {\n\t\tv = template(v, currentFields);\n\t}\n\treturn v;\n}\n\n/** Attempts to look up a translated value from a given dictionary.\n * Also supports json templating using the format: {{variable}}\n * Falls back to default text.\n *\n * @param {String} id \t\t\tIntl field name/id (subject to scope)\n * @param {String} [scope='']\t\tScope, which prefixes `id` with `${scope}.`\n * @param {Object} dictionary\t\tA nested object containing translations\n * @param {Object} [fields={}]\t\tTemplate fields for use by translated strings\n * @param {Number} [plural]\t\tIndicates a quantity, used to trigger pluralization\n * @param {String|Array} [fallback]\tText to return if no translation is found\n * @returns {String} translated\n */\nfunction translate(id, scope, dictionary, fields, plural, fallback) {\n\tif (scope) { id = scope + '.' + id; }\n\n\tvar value = dictionary && delve(dictionary, id);\n\n\t// plural forms:\n\t// key: ['plural', 'singular']\n\t// key: { none, one, many }\n\t// key: { zero, one, other }\n\t// key: { singular, plural }\n\tif ((plural || plural===0) && value && typeof value==='object') {\n\t\tif (value.splice) {\n\t\t\tvalue = value[plural] || value[0];\n\t\t}\n\t\telse if (plural===0 && defined(value.none || value.zero)) {\n\t\t\tvalue = value.none || value.zero;\n\t\t}\n\t\telse if (plural===1 && defined(value.one || value.singular)) {\n\t\t\tvalue = value.one || value.singular;\n\t\t}\n\t\telse {\n\t\t\tvalue = value.some || value.many || value.plural || value.other || value;\n\t\t}\n\t}\n\n\treturn value && template(value, fields, scope, dictionary) || fallback || null;\n}\n\n/** Highlight/colorize the i18n'd node if `mark` is set on `intl` in context. If not, just returns `value`\n *\n *\t@private\n *\t@param {String|VNode} value\tThe l10n'd text/vnode to highlight or pass through\n *\t@param {string} id\tThe key used to lookup the value in the intl dictionary\n */\nfunction HighlightI18N(ref) {\n\tvar value = ref.value;\n\tvar id = ref.id;\n\n\tvar ref$1 = useContext(IntlContext);\n\tvar intl = ref$1.intl;\n\n\tif (intl && intl.mark) {\n\t\tvar dictionaryKey = \"dictionary\" + (intl && intl.scope ? (\".\" + (intl.scope)) : '') + \".\" + id;\n\t\treturn (\n\t\t\th( 'mark', {\n\t\t\t\tstyle: {\n\t\t\t\t\tbackground: value\n\t\t\t\t\t\t? delve(intl, dictionaryKey)\n\t\t\t\t\t\t\t? 'rgba(119,231,117,.5)'\n\t\t\t\t\t\t\t: 'rgba(229,226,41,.5)'\n\t\t\t\t\t\t: 'rgba(228,147,51,.5)'\n\t\t\t\t}, title: id },\n\t\t\t\tvalue\n\t\t\t)\n\t\t);\n\t}\n\n\treturn value;\n}\n\n/** `` renders internationalized text.\n *\tIt attempts to look up translated values from a dictionary in context.\n *\n *\tTemplate strings can contain `{{field}}` placeholders,\n *\twhich injects values from the `fields` prop.\n *\n *\tWhen string lookup fails, renders its children as fallback text.\n *\n *\t@param {Object} props props\n *\t@param {String} props.id Key to look up in intl dictionary, within any parent scopes (`$scope1.$scope2.$id`)\n *\t@param {ReactElement} [props.children] Fallback text if no definition is found\n *\t@param {Object} [props.fields={}] Values to inject into template `{{fields}}`. Values in the `fields` object will be coerced to strings, with the exception of `` nodes which will be resolved to their translated value\n *\t@param {Number} [props.plural] Integer \"count\", used to select plural forms\n *\n *\t@example\n *\t// If there is no dictionary in context..\n *\tThe Foo\n *\t// ..produces the text:\n *\t\"The Foo\"\n *\n *\t@example\n *\t// Given a dictionary and some fields..\n *\t\n *\t\tThe Foo\n *\t\n *\t// ..produces the text:\n *\t\"Le Feux BEAR\"\n *\n *\t@example\n *\t// Within a scope, both `id` and the definition are namespaced..\n *\t\n *\t\tThe Foo\n *\t\n *\t// ..produces the text:\n *\t\"Le Feux\"\n */\nfunction Text(ref) {\n\tvar id = ref.id;\n\tvar fallback = ref.children;\n\tvar plural = ref.plural;\n\tvar fields = ref.fields;\n\n\tvar ref$1 = useContext(IntlContext);\n\tvar intl = ref$1.intl;\n\n\tvar value = translate(\n\t\tid,\n\t\tintl && intl.scope,\n\t\tintl && intl.dictionary,\n\t\tfields,\n\t\tplural,\n\t\tfallback\n\t);\n\n\treturn h( HighlightI18N, { id: id, value: value });\n}\n\n/** Translates the property values in an Object, returning a copy.\n *\t**Note:** By default, `String` keys will be treated as Intl ID's.\n *\tPass `true` to return an Object containing *only* translated\n *\tvalues where the prop is a node.\n *\n *\t@private\n *\t@param {Object} props\tAn object with values to translate\n *\t@param {Object} intl\tAn intl context object (eg: `context.intl`)\n *\t@param {Boolean} [onlyTextNodes=false]\tOnly process `` values\n *\t@returns {Object} translatedProps\n */\nfunction translateMapping(props, intl, onlyTextNodes) {\n\tvar out = {};\n\tintl = intl || {};\n\tprops = select(props);\n\tfor (var name in props) {\n\t\tif (props.hasOwnProperty(name) && props[name]) {\n\t\t\tvar def = props[name];\n\n\t\t\t// if onlyTextNodes=true, skip any props that aren't vnodes\n\t\t\tif (!onlyTextNodes && typeof def==='string') {\n\t\t\t\tout[name] = translate(def, intl.scope, intl.dictionary);\n\t\t\t}\n\t\t\telse if (def.type===Text) {\n\t\t\t\t// it's a , just grab its props:\n\t\t\t\tdef = assign({\n\t\t\t\t\t// use children as fallback content\n\t\t\t\t\tfallback: def.props.children\n\t\t\t\t}, def.props);\n\t\t\t\tout[name] = translate(def.id, intl.scope, intl.dictionary, def.fields, def.plural, def.fallback);\n\t\t\t}\n\t\t}\n\t}\n\treturn out;\n}\n\n/** `` is a Compositional Component.\n *\tIt \"renders\" out any `` values in its child's props.\n *\n *\t@name Localizer\n *\t@param {Object} props\n *\t@param {Object} props.children\tChild components with props to localize.\n *\t@param {Object} context\n *\t@param {Object} context.intl\t\t[internal] dictionary and scope info\n *\t@example\n *\t\n *\t\t} />\n *\t\n *\t// produces:\n *\t\n *\n *\t@example\n *\t\n *\t\tOpen Source Software}>\n *\t\t\tOSS\n *\t\t\n *\t\n *\t// produces:\n *\tOSS\n */\nfunction Localizer(ref) {\n\tvar children = ref.children;\n\n\tvar ref$1 = useContext(IntlContext);\n\tvar intl = ref$1.intl;\n\n\treturn children && children.length\n\t\t? children.map(function (child) { return cloneElement(child, translateMapping(child.props, intl, true)); })\n\t\t: children && cloneElement(children, translateMapping(children.props, intl, true));\n}\n\nfunction objectWithoutProperties$1 (obj, exclude) { var target = {}; for (var k in obj) if (Object.prototype.hasOwnProperty.call(obj, k) && exclude.indexOf(k) === -1) target[k] = obj[k]; return target; }\n\n/* eslint-disable react/no-danger */\n\n/** `` is just like {@link Text} but it can also contain html markup in rendered strings. It wraps its contents in a `` tag.\n *\n *\t@param {Object} props\t\t\t\tprops\n *\t@param {String} props.id\t\t\tKey to look up in intl dictionary, within any parent scopes (`$scope1.$scope2.$id`)\n *\t@param {Object} [props.fields={}]\tValues to inject into template `{{fields}}`. Values in the `fields` object will be coerced to strings, with the exception of `` nodes which will be resolved to their translated value\n *\t@param {Number} [props.plural]\t\tInteger \"count\", used to select plural forms\n *\n *\t@example\n *\t// If there is no dictionary in context..\n *\tThe Foo\n *\t// ..produces the vnode:\n *\tThe Foo\n *\n *\t@example\n *\t// Given a dictionary and some fields..\n *\t{{bar}}' }}>\n *\t\tThe Foo\n *\t\n *\t// ..produces the vnode:\n *\tLe Feux BEAR\n *\n *\t@example\n *\t// Within a scope, both `id` and the definition are namespaced..\n *\tFeux' }}>\n *\t\tThe Foo\n *\t\n *\t// ..produces the vnode:\n *\tLe Feux\n *\n *\t@example\n *\t// renders nothing if there is no key match and no fallback\n *\t
\n *\t// ..produces the vnode:\n *\t
\n */\nfunction MarkupText(ref) {\n\tvar id = ref.id;\n\tvar fields = ref.fields;\n\tvar plural = ref.plural;\n\tvar children = ref.children;\n\tvar rest = objectWithoutProperties$1( ref, [\"id\", \"fields\", \"plural\", \"children\"] );\n\tvar props = rest;\n\n\treturn (\n\t\th( Localizer, null,\n\t\t\th( Html, Object.assign({}, { html: h( Text, { id: id, fields: fields, plural: plural, children: children }), id: id }, props))\n\t\t)\n\t);\n}\n\nfunction Html(ref) {\n\tvar html = ref.html;\n\tvar id = ref.id;\n\tvar rest = objectWithoutProperties$1( ref, [\"html\", \"id\"] );\n\tvar props = rest;\n\n\treturn (\n\t\th( HighlightI18N, {\n\t\t\tid: id, value: !html ? html : typeof html === 'string' ? h( Markup, Object.assign({}, { type: \"html\", trim: false }, props, { markup: html })) : h( 'span', null, html ) })\n\t);\n}\n\n/** `@withText()` is a Higher Order Component, often used as a decorator.\n *\n *\tIt wraps a child component and passes it translations\n *\tbased on a mapping to the dictionary & scope in context.\n *\n *\t@param {Object|Function|String} mapping\t\tMaps prop names to intl keys (or `` nodes).\n *\n *\t@example @withText({\n *\t\tplaceholder: 'user.placeholder'\n *\t})\n *\tclass Foo {\n *\t\t// now the `placeholder` prop is our localized String:\n *\t\trender({ placeholder }) {\n *\t\t\treturn \n *\t\t}\n *\t}\n *\n *\t@example @withText({\n *\t\tplaceholder: fallback text\n *\t})\n *\tclass Foo {\n *\t\trender({ placeholder }) {\n *\t\t\treturn \n *\t\t}\n *\t}\n *\n *\t@example @withText('user.placeholder')\n *\tclass Foo {\n *\t\t// for Strings/Arrays, the last path segment becomes the prop name:\n *\t\trender({ placeholder }) {\n *\t\t\treturn \n *\t\t}\n *\t}\n *\n *\t@example Works with functional components, too\n *\tconst Foo = withText('user.placeholder')( props =>\n *\t\t\n *\t)\n *\n * \t@example getWrappedComponent() returns wrapped child Component\n *\tconst Foo = () =>
;\n *\tconst WrappedFoo = withText('user.placeholer')(Foo);\n *\tWrappedFoo.getWrappedComponent() === Foo; // true\n */\nfunction withText(mapping) {\n\treturn function withTextWrapper(Child) {\n\t\tfunction WithTextWrapper(props, context) {\n\t\t\tvar ref = useContext(IntlContext);\n\t\t\tvar intl = ref.intl;\n\n\t\t\tvar map = typeof mapping==='function' ? mapping(props, { intl: intl }) : mapping;\n\t\t\tvar translations = translateMapping(map, intl);\n\t\t\treturn h(Child, assign(assign({}, props), translations));\n\t\t}\n\n\t\tWithTextWrapper.getWrappedComponent = Child && Child.getWrappedComponent || (function () { return Child; });\n\t\treturn WithTextWrapper;\n\t};\n}\n\n/** `useText` is the hook version of {@link withText}\n *\n *\t@param {Object|Function|String} mapping\t\tMaps prop names to intl keys (or `` nodes).\n *\n *\t@example function MyComponent() {\n *\t\tconst { placeholder } = useText({\n *\t\t\tplaceholder: 'user.placeholder'\n *\t\t});\n *\t\treturn \n *\t}\n *\n *\t@example function MyComponent() {\n *\t\tconst { placeholder } = useText({\n *\t\t\tplaceholder: fallback text\n *\t\t});\n *\t\treturn \n *\t}\n *\n *\t@example function MyComponent() {\n *\t\t// for Strings/Arrays, the last path segment becomes the prop name:\n *\t\tconst { placeholder } = useText('user.placeholder');\n *\n *\t\treturn \n *\t}\n */\nfunction useText(mapping) {\n\tvar ref = useContext(IntlContext);\n\tvar intl = ref.intl;\n\n\treturn translateMapping(\n\t\ttypeof mapping==='function' ? mapping({ intl: intl }) : mapping,\n\t\tintl\n\t);\n}\n\nintl.intl = intl;\nintl.IntlContext = IntlContext;\nintl.IntlProvider = IntlProvider;\nintl.Text = Text;\nintl.MarkupText = MarkupText;\nintl.Localizer = Localizer;\nintl.withText = withText;\nintl.useText = useText;\nintl.translate = translate;\n\nexport default intl;\nexport { IntlContext, IntlProvider, Localizer, MarkupText, Text, intl, translate, useText, withText };\n//# sourceMappingURL=preact-i18n.esm.js.map\n","/*! algoliasearch.umd.js | 4.14.2 | © Algolia, inc. | https://github.com/algolia/algoliasearch-client-javascript */\n!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=t||self).algoliasearch=e()}(this,(function(){\"use strict\";function t(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function e(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function r(r){for(var n=1;n=0||(a[r]=t[r]);return a}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(a[r]=t[r])}return a}function a(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if(!(Symbol.iterator in Object(t)||\"[object Arguments]\"===Object.prototype.toString.call(t)))return;var r=[],n=!0,a=!1,o=void 0;try{for(var i,u=t[Symbol.iterator]();!(n=(i=u.next()).done)&&(r.push(i.value),!e||r.length!==e);n=!0);}catch(t){a=!0,o=t}finally{try{n||null==u.return||u.return()}finally{if(a)throw o}}return r}(t,e)||function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}()}function o(t){return function(t){if(Array.isArray(t)){for(var e=0,r=new Array(t.length);e2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return Promise.resolve().then((function(){var r=JSON.stringify(t),n=o()[r];return Promise.all([n||e(),void 0!==n])})).then((function(t){var e=a(t,2),n=e[0],o=e[1];return Promise.all([n,o||r.miss(n)])})).then((function(t){return a(t,1)[0]}))},set:function(t,e){return Promise.resolve().then((function(){var a=o();return a[JSON.stringify(t)]=e,n().setItem(r,JSON.stringify(a)),e}))},delete:function(t){return Promise.resolve().then((function(){var e=o();delete e[JSON.stringify(t)],n().setItem(r,JSON.stringify(e))}))},clear:function(){return Promise.resolve().then((function(){n().removeItem(r)}))}}}function u(t){var e=o(t.caches),r=e.shift();return void 0===r?{get:function(t,e){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}},n=e();return n.then((function(t){return Promise.all([t,r.miss(t)])})).then((function(t){return a(t,1)[0]}))},set:function(t,e){return Promise.resolve(e)},delete:function(t){return Promise.resolve()},clear:function(){return Promise.resolve()}}:{get:function(t,n){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return r.get(t,n,a).catch((function(){return u({caches:e}).get(t,n,a)}))},set:function(t,n){return r.set(t,n).catch((function(){return u({caches:e}).set(t,n)}))},delete:function(t){return r.delete(t).catch((function(){return u({caches:e}).delete(t)}))},clear:function(){return r.clear().catch((function(){return u({caches:e}).clear()}))}}}function s(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{serializable:!0},e={};return{get:function(r,n){var a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}},o=JSON.stringify(r);if(o in e)return Promise.resolve(t.serializable?JSON.parse(e[o]):e[o]);var i=n(),u=a&&a.miss||function(){return Promise.resolve()};return i.then((function(t){return u(t)})).then((function(){return i}))},set:function(r,n){return e[JSON.stringify(r)]=t.serializable?JSON.stringify(n):n,Promise.resolve(n)},delete:function(t){return delete e[JSON.stringify(t)],Promise.resolve()},clear:function(){return e={},Promise.resolve()}}}function c(t,e,r){var n={\"x-algolia-api-key\":r,\"x-algolia-application-id\":e};return{headers:function(){return t===m.WithinHeaders?n:{}},queryParameters:function(){return t===m.WithinQueryParameters?n:{}}}}function f(t){var e=0;return t((function r(){return e++,new Promise((function(n){setTimeout((function(){n(t(r))}),Math.min(100*e,1e3))}))}))}function d(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(t,e){return Promise.resolve()};return Object.assign(t,{wait:function(r){return d(t.then((function(t){return Promise.all([e(t,r),t])})).then((function(t){return t[1]})))}})}function l(t){for(var e=t.length-1;e>0;e--){var r=Math.floor(Math.random()*(e+1)),n=t[e];t[e]=t[r],t[r]=n}return t}function p(t,e){return e?(Object.keys(e).forEach((function(r){t[r]=e[r](t)})),t):t}function h(t){for(var e=arguments.length,r=new Array(e>1?e-1:0),n=1;n0?n:void 0,timeout:r.timeout||e,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}var g={Read:1,Write:2,Any:3},v=1,b=2,P=3;function w(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:v;return r(r({},t),{},{status:e,lastUpdate:Date.now()})}function O(t){return\"string\"==typeof t?{protocol:\"https\",url:t,accept:g.Any}:{protocol:t.protocol||\"https\",url:t.url,accept:t.accept||g.Any}}var I=\"DELETE\",x=\"GET\",j=\"POST\",D=\"PUT\";function q(t,e){return Promise.all(e.map((function(e){return t.get(e,(function(){return Promise.resolve(w(e))}))}))).then((function(t){var r=t.filter((function(t){return function(t){return t.status===v||Date.now()-t.lastUpdate>12e4}(t)})),n=t.filter((function(t){return function(t){return t.status===P&&Date.now()-t.lastUpdate<=12e4}(t)})),a=[].concat(o(r),o(n));return{getTimeout:function(t,e){return(0===n.length&&0===t?1:n.length+3+t)*e},statelessHosts:a.length>0?a.map((function(t){return O(t)})):e}}))}function S(t,e,n,a){var i=[],u=function(t,e){if(t.method===x||void 0===t.data&&void 0===e.data)return;var n=Array.isArray(t.data)?t.data:r(r({},t.data),e.data);return JSON.stringify(n)}(n,a),s=function(t,e){var n=r(r({},t.headers),e.headers),a={};return Object.keys(n).forEach((function(t){var e=n[t];a[t.toLowerCase()]=e})),a}(t,a),c=n.method,f=n.method!==x?{}:r(r({},n.data),a.data),d=r(r(r({\"x-algolia-agent\":t.userAgent.value},t.queryParameters),f),a.queryParameters),l=0,p=function e(r,o){var f=r.pop();if(void 0===f)throw{name:\"RetryError\",message:\"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.\",transporterStackTrace:R(i)};var p={data:u,headers:s,method:c,url:N(f,n.path,d),connectTimeout:o(l,t.timeouts.connect),responseTimeout:o(l,a.timeout)},h=function(t){var e={request:p,response:t,host:f,triesLeft:r.length};return i.push(e),e},m={onSuccess:function(t){return function(t){try{return JSON.parse(t.content)}catch(e){throw function(t,e){return{name:\"DeserializationError\",message:t,response:e}}(e.message,t)}}(t)},onRetry:function(n){var a=h(n);return n.isTimedOut&&l++,Promise.all([t.logger.info(\"Retryable failure\",A(a)),t.hostsCache.set(f,w(f,n.isTimedOut?P:b))]).then((function(){return e(r,o)}))},onFail:function(t){throw h(t),function(t,e){var r=t.content,n=t.status,a=r;try{a=JSON.parse(r).message}catch(t){}return function(t,e,r){return{name:\"ApiError\",message:t,status:e,transporterStackTrace:r}}(a,n,e)}(t,R(i))}};return t.requester.send(p).then((function(t){return function(t,e){return function(t){var e=t.status;return t.isTimedOut||function(t){var e=t.isTimedOut,r=t.status;return!e&&0==~~r}(t)||2!=~~(e/100)&&4!=~~(e/100)}(t)?e.onRetry(t):2==~~(t.status/100)?e.onSuccess(t):e.onFail(t)}(t,m)}))};return q(t.hostsCache,e).then((function(t){return p(o(t.statelessHosts).reverse(),t.getTimeout)}))}function k(t){var e=t.hostsCache,r=t.logger,n=t.requester,o=t.requestsCache,i=t.responsesCache,u=t.timeouts,s=t.userAgent,c=t.hosts,f=t.queryParameters,d={hostsCache:e,logger:r,requester:n,requestsCache:o,responsesCache:i,timeouts:u,userAgent:s,headers:t.headers,queryParameters:f,hosts:c.map((function(t){return O(t)})),read:function(t,e){var r=y(e,d.timeouts.read),n=function(){return S(d,d.hosts.filter((function(t){return 0!=(t.accept&g.Read)})),t,r)};if(!0!==(void 0!==r.cacheable?r.cacheable:t.cacheable))return n();var o={request:t,mappedRequestOptions:r,transporter:{queryParameters:d.queryParameters,headers:d.headers}};return d.responsesCache.get(o,(function(){return d.requestsCache.get(o,(function(){return d.requestsCache.set(o,n()).then((function(t){return Promise.all([d.requestsCache.delete(o),t])}),(function(t){return Promise.all([d.requestsCache.delete(o),Promise.reject(t)])})).then((function(t){var e=a(t,2);e[0];return e[1]}))}))}),{miss:function(t){return d.responsesCache.set(o,t)}})},write:function(t,e){return S(d,d.hosts.filter((function(t){return 0!=(t.accept&g.Write)})),t,y(e,d.timeouts.write))}};return d}function T(t){var e={value:\"Algolia for JavaScript (\".concat(t,\")\"),add:function(t){var r=\"; \".concat(t.segment).concat(void 0!==t.version?\" (\".concat(t.version,\")\"):\"\");return-1===e.value.indexOf(r)&&(e.value=\"\".concat(e.value).concat(r)),e}};return e}function N(t,e,r){var n=E(r),a=\"\".concat(t.protocol,\"://\").concat(t.url,\"/\").concat(\"/\"===e.charAt(0)?e.substr(1):e);return n.length&&(a+=\"?\".concat(n)),a}function E(t){return Object.keys(t).map((function(e){return h(\"%s=%s\",e,(r=t[e],\"[object Object]\"===Object.prototype.toString.call(r)||\"[object Array]\"===Object.prototype.toString.call(r)?JSON.stringify(t[e]):t[e]));var r})).join(\"&\")}function R(t){return t.map((function(t){return A(t)}))}function A(t){var e=t.request.headers[\"x-algolia-api-key\"]?{\"x-algolia-api-key\":\"*****\"}:{};return r(r({},t),{},{request:r(r({},t.request),{},{headers:r(r({},t.request.headers),e)})})}var C=function(t){return function(e,r){return t.transporter.write({method:j,path:\"2/abtests\",data:e},r)}},U=function(t){return function(e,r){return t.transporter.write({method:I,path:h(\"2/abtests/%s\",e)},r)}},z=function(t){return function(e,r){return t.transporter.read({method:x,path:h(\"2/abtests/%s\",e)},r)}},J=function(t){return function(e){return t.transporter.read({method:x,path:\"2/abtests\"},e)}},F=function(t){return function(e,r){return t.transporter.write({method:j,path:h(\"2/abtests/%s/stop\",e)},r)}},H=function(t){return function(e){return t.transporter.read({method:x,path:\"1/strategies/personalization\"},e)}},M=function(t){return function(e,r){return t.transporter.write({method:j,path:\"1/strategies/personalization\",data:e},r)}};function K(t){return function e(r){return t.request(r).then((function(n){if(void 0!==t.batch&&t.batch(n.hits),!t.shouldStop(n))return n.cursor?e({cursor:n.cursor}):e({page:(r.page||0)+1})}))}({})}var W=function(t){return function(e,a){var o=a||{},i=o.queryParameters,u=n(o,[\"queryParameters\"]),s=r({acl:e},void 0!==i?{queryParameters:i}:{});return d(t.transporter.write({method:j,path:\"1/keys\",data:s},u),(function(e,r){return f((function(n){return tt(t)(e.key,r).catch((function(t){if(404!==t.status)throw t;return n()}))}))}))}},B=function(t){return function(e,r,n){var a=y(n);return a.queryParameters[\"X-Algolia-User-ID\"]=e,t.transporter.write({method:j,path:\"1/clusters/mapping\",data:{cluster:r}},a)}},Q=function(t){return function(e,r,n){return t.transporter.write({method:j,path:\"1/clusters/mapping/batch\",data:{users:e,cluster:r}},n)}},G=function(t){return function(e,r){return d(t.transporter.write({method:j,path:h(\"/1/dictionaries/%s/batch\",e),data:{clearExistingDictionaryEntries:!0,requests:{action:\"addEntry\",body:[]}}},r),(function(e,r){return jt(t)(e.taskID,r)}))}},L=function(t){return function(e,r,n){return d(t.transporter.write({method:j,path:h(\"1/indexes/%s/operation\",e),data:{operation:\"copy\",destination:r}},n),(function(r,n){return ut(t)(e,{methods:{waitTask:de}}).waitTask(r.taskID,n)}))}},V=function(t){return function(e,n,a){return L(t)(e,n,r(r({},a),{},{scope:[pe.Rules]}))}},_=function(t){return function(e,n,a){return L(t)(e,n,r(r({},a),{},{scope:[pe.Settings]}))}},X=function(t){return function(e,n,a){return L(t)(e,n,r(r({},a),{},{scope:[pe.Synonyms]}))}},Y=function(t){return function(e,r){return e.method===x?t.transporter.read(e,r):t.transporter.write(e,r)}},Z=function(t){return function(e,r){return d(t.transporter.write({method:I,path:h(\"1/keys/%s\",e)},r),(function(r,n){return f((function(r){return tt(t)(e,n).then(r).catch((function(t){if(404!==t.status)throw t}))}))}))}},$=function(t){return function(e,r,n){var a=r.map((function(t){return{action:\"deleteEntry\",body:{objectID:t}}}));return d(t.transporter.write({method:j,path:h(\"/1/dictionaries/%s/batch\",e),data:{clearExistingDictionaryEntries:!1,requests:a}},n),(function(e,r){return jt(t)(e.taskID,r)}))}},tt=function(t){return function(e,r){return t.transporter.read({method:x,path:h(\"1/keys/%s\",e)},r)}},et=function(t){return function(e,r){return t.transporter.read({method:x,path:h(\"1/task/%s\",e.toString())},r)}},rt=function(t){return function(e){return t.transporter.read({method:x,path:\"/1/dictionaries/*/settings\"},e)}},nt=function(t){return function(e){return t.transporter.read({method:x,path:\"1/logs\"},e)}},at=function(t){return function(e){return t.transporter.read({method:x,path:\"1/clusters/mapping/top\"},e)}},ot=function(t){return function(e,r){return t.transporter.read({method:x,path:h(\"1/clusters/mapping/%s\",e)},r)}},it=function(t){return function(e){var r=e||{},a=r.retrieveMappings,o=n(r,[\"retrieveMappings\"]);return!0===a&&(o.getClusters=!0),t.transporter.read({method:x,path:\"1/clusters/mapping/pending\"},o)}},ut=function(t){return function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={transporter:t.transporter,appId:t.appId,indexName:e};return p(n,r.methods)}},st=function(t){return function(e){return t.transporter.read({method:x,path:\"1/keys\"},e)}},ct=function(t){return function(e){return t.transporter.read({method:x,path:\"1/clusters\"},e)}},ft=function(t){return function(e){return t.transporter.read({method:x,path:\"1/indexes\"},e)}},dt=function(t){return function(e){return t.transporter.read({method:x,path:\"1/clusters/mapping\"},e)}},lt=function(t){return function(e,r,n){return d(t.transporter.write({method:j,path:h(\"1/indexes/%s/operation\",e),data:{operation:\"move\",destination:r}},n),(function(r,n){return ut(t)(e,{methods:{waitTask:de}}).waitTask(r.taskID,n)}))}},pt=function(t){return function(e,r){return d(t.transporter.write({method:j,path:\"1/indexes/*/batch\",data:{requests:e}},r),(function(e,r){return Promise.all(Object.keys(e.taskID).map((function(n){return ut(t)(n,{methods:{waitTask:de}}).waitTask(e.taskID[n],r)})))}))}},ht=function(t){return function(e,r){return t.transporter.read({method:j,path:\"1/indexes/*/objects\",data:{requests:e}},r)}},mt=function(t){return function(e,n){var a=e.map((function(t){return r(r({},t),{},{params:E(t.params||{})})}));return t.transporter.read({method:j,path:\"1/indexes/*/queries\",data:{requests:a},cacheable:!0},n)}},yt=function(t){return function(e,a){return Promise.all(e.map((function(e){var o=e.params,i=o.facetName,u=o.facetQuery,s=n(o,[\"facetName\",\"facetQuery\"]);return ut(t)(e.indexName,{methods:{searchForFacetValues:ue}}).searchForFacetValues(i,u,r(r({},a),s))})))}},gt=function(t){return function(e,r){var n=y(r);return n.queryParameters[\"X-Algolia-User-ID\"]=e,t.transporter.write({method:I,path:\"1/clusters/mapping\"},n)}},vt=function(t){return function(e,r,n){var a=r.map((function(t){return{action:\"addEntry\",body:t}}));return d(t.transporter.write({method:j,path:h(\"/1/dictionaries/%s/batch\",e),data:{clearExistingDictionaryEntries:!0,requests:a}},n),(function(e,r){return jt(t)(e.taskID,r)}))}},bt=function(t){return function(e,r){return d(t.transporter.write({method:j,path:h(\"1/keys/%s/restore\",e)},r),(function(r,n){return f((function(r){return tt(t)(e,n).catch((function(t){if(404!==t.status)throw t;return r()}))}))}))}},Pt=function(t){return function(e,r,n){var a=r.map((function(t){return{action:\"addEntry\",body:t}}));return d(t.transporter.write({method:j,path:h(\"/1/dictionaries/%s/batch\",e),data:{clearExistingDictionaryEntries:!1,requests:a}},n),(function(e,r){return jt(t)(e.taskID,r)}))}},wt=function(t){return function(e,r,n){return t.transporter.read({method:j,path:h(\"/1/dictionaries/%s/search\",e),data:{query:r},cacheable:!0},n)}},Ot=function(t){return function(e,r){return t.transporter.read({method:j,path:\"1/clusters/mapping/search\",data:{query:e}},r)}},It=function(t){return function(e,r){return d(t.transporter.write({method:D,path:\"/1/dictionaries/*/settings\",data:e},r),(function(e,r){return jt(t)(e.taskID,r)}))}},xt=function(t){return function(e,r){var a=Object.assign({},r),o=r||{},i=o.queryParameters,u=n(o,[\"queryParameters\"]),s=i?{queryParameters:i}:{},c=[\"acl\",\"indexes\",\"referers\",\"restrictSources\",\"queryParameters\",\"description\",\"maxQueriesPerIPPerHour\",\"maxHitsPerQuery\"];return d(t.transporter.write({method:D,path:h(\"1/keys/%s\",e),data:s},u),(function(r,n){return f((function(r){return tt(t)(e,n).then((function(t){return function(t){return Object.keys(a).filter((function(t){return-1!==c.indexOf(t)})).every((function(e){return t[e]===a[e]}))}(t)?Promise.resolve():r()}))}))}))}},jt=function(t){return function(e,r){return f((function(n){return et(t)(e,r).then((function(t){return\"published\"!==t.status?n():void 0}))}))}},Dt=function(t){return function(e,r){return d(t.transporter.write({method:j,path:h(\"1/indexes/%s/batch\",t.indexName),data:{requests:e}},r),(function(e,r){return de(t)(e.taskID,r)}))}},qt=function(t){return function(e){return K(r(r({shouldStop:function(t){return void 0===t.cursor}},e),{},{request:function(r){return t.transporter.read({method:j,path:h(\"1/indexes/%s/browse\",t.indexName),data:r},e)}}))}},St=function(t){return function(e){var n=r({hitsPerPage:1e3},e);return K(r(r({shouldStop:function(t){return t.hits.length0&&void 0!==arguments[0]?arguments[0]:0,c=[];for(a=o;a=t.nbPages)throw{name:\"ObjectNotFoundError\",message:\"Object not found.\"};return n()}))}()}},Wt=function(t){return function(e,r){return t.transporter.read({method:x,path:h(\"1/indexes/%s/%s\",t.indexName,e)},r)}},Bt=function(){return function(t,e){for(var r=0,n=Object.entries(t.hits);rr.OPENED&&void 0===n&&(clearTimeout(o),n=a(t.responseTimeout,\"Socket timeout\"))},r.onerror=function(){0===r.status&&(clearTimeout(o),clearTimeout(n),e({content:r.responseText||\"Network request failed\",status:r.status,isTimedOut:!1}))},r.onload=function(){clearTimeout(o),clearTimeout(n),e({content:r.responseText,status:r.status,isTimedOut:!1})},r.send(t.data)}))}},logger:(a=ye,{debug:function(t,e){return he>=a&&console.debug(t,e),Promise.resolve()},info:function(t,e){return me>=a&&console.info(t,e),Promise.resolve()},error:function(t,e){return console.error(t,e),Promise.resolve()}}),responsesCache:s(),requestsCache:s({serializable:!1}),hostsCache:u({caches:[i({key:\"\".concat(\"4.14.2\",\"-\").concat(t)}),s()]}),userAgent:T(\"4.14.2\").add({segment:\"Browser\"})},f=r(r({},o),n),d=function(){return function(t){return function(t){var e=t.region||\"us\",n=c(m.WithinHeaders,t.appId,t.apiKey),a=k(r(r({hosts:[{url:\"personalization.\".concat(e,\".algolia.com\")}]},t),{},{headers:r(r(r({},n.headers()),{\"content-type\":\"application/json\"}),t.headers),queryParameters:r(r({},n.queryParameters()),t.queryParameters)}));return p({appId:t.appId,transporter:a},t.methods)}(r(r(r({},o),t),{},{methods:{getPersonalizationStrategy:H,setPersonalizationStrategy:M}}))}};return function(t){var e=t.appId,n=c(void 0!==t.authMode?t.authMode:m.WithinHeaders,e,t.apiKey),a=k(r(r({hosts:[{url:\"\".concat(e,\"-dsn.algolia.net\"),accept:g.Read},{url:\"\".concat(e,\".algolia.net\"),accept:g.Write}].concat(l([{url:\"\".concat(e,\"-1.algolianet.com\")},{url:\"\".concat(e,\"-2.algolianet.com\")},{url:\"\".concat(e,\"-3.algolianet.com\")}]))},t),{},{headers:r(r(r({},n.headers()),{\"content-type\":\"application/x-www-form-urlencoded\"}),t.headers),queryParameters:r(r({},n.queryParameters()),t.queryParameters)}));return p({transporter:a,appId:e,addAlgoliaAgent:function(t,e){a.userAgent.add({segment:t,version:e})},clearCache:function(){return Promise.all([a.requestsCache.clear(),a.responsesCache.clear()]).then((function(){}))}},t.methods)}(r(r({},f),{},{methods:{search:mt,searchForFacetValues:yt,multipleBatch:pt,multipleGetObjects:ht,multipleQueries:mt,copyIndex:L,copySettings:_,copySynonyms:X,copyRules:V,moveIndex:lt,listIndices:ft,getLogs:nt,listClusters:ct,multipleSearchForFacetValues:yt,getApiKey:tt,addApiKey:W,listApiKeys:st,updateApiKey:xt,deleteApiKey:Z,restoreApiKey:bt,assignUserID:B,assignUserIDs:Q,getUserID:ot,searchUserIDs:Ot,listUserIDs:dt,getTopUserIDs:at,removeUserID:gt,hasPendingMappings:it,clearDictionaryEntries:G,deleteDictionaryEntries:$,getDictionarySettings:rt,getAppTask:et,replaceDictionaryEntries:vt,saveDictionaryEntries:Pt,searchDictionaryEntries:wt,setDictionarySettings:It,waitAppTask:jt,customRequest:Y,initIndex:function(t){return function(e){return ut(t)(e,{methods:{batch:Dt,delete:Ct,findAnswers:Mt,getObject:Wt,getObjects:Qt,saveObject:te,saveObjects:ee,search:ie,searchForFacetValues:ue,waitTask:de,setSettings:fe,getSettings:Lt,partialUpdateObject:_t,partialUpdateObjects:Xt,deleteObject:Ut,deleteObjects:zt,deleteBy:At,clearObjects:Nt,browseObjects:qt,getObjectPosition:Bt,findObject:Kt,exists:Ht,saveSynonym:ae,saveSynonyms:oe,getSynonym:Vt,searchSynonyms:ce,browseSynonyms:kt,deleteSynonym:Ft,clearSynonyms:Rt,replaceAllObjects:Yt,replaceAllSynonyms:$t,searchRules:se,getRule:Gt,deleteRule:Jt,saveRule:re,saveRules:ne,replaceAllRules:Zt,browseRules:St,clearRules:Et}})}},initAnalytics:function(){return function(t){return function(t){var e=t.region||\"us\",n=c(m.WithinHeaders,t.appId,t.apiKey),a=k(r(r({hosts:[{url:\"analytics.\".concat(e,\".algolia.com\")}]},t),{},{headers:r(r(r({},n.headers()),{\"content-type\":\"application/json\"}),t.headers),queryParameters:r(r({},n.queryParameters()),t.queryParameters)}));return p({appId:t.appId,transporter:a},t.methods)}(r(r(r({},o),t),{},{methods:{addABTest:C,getABTest:z,getABTests:J,stopABTest:F,deleteABTest:U}}))}},initPersonalization:d,initRecommendation:function(){return function(t){return f.logger.info(\"The `initRecommendation` method is deprecated. Use `initPersonalization` instead.\"),d()(t)}}}}))}return ge.version=\"4.14.2\",ge}));\n","export default '6.36.0';","'use strict';\n\nfunction clone(value) {\n if (typeof value === 'object' && value !== null) {\n return _merge(Array.isArray(value) ? [] : {}, value);\n }\n return value;\n}\n\nfunction isObjectOrArrayOrFunction(value) {\n return (\n typeof value === 'function' ||\n Array.isArray(value) ||\n Object.prototype.toString.call(value) === '[object Object]'\n );\n}\n\nfunction _merge(target, source) {\n if (target === source) {\n return target;\n }\n\n for (var key in source) {\n if (\n !Object.prototype.hasOwnProperty.call(source, key) ||\n key === '__proto__'\n ) {\n continue;\n }\n\n var sourceVal = source[key];\n var targetVal = target[key];\n\n if (typeof targetVal !== 'undefined' && typeof sourceVal === 'undefined') {\n continue;\n }\n\n if (\n isObjectOrArrayOrFunction(targetVal) &&\n isObjectOrArrayOrFunction(sourceVal)\n ) {\n target[key] = _merge(targetVal, sourceVal);\n } else {\n target[key] = clone(sourceVal);\n }\n }\n return target;\n}\n\n/**\n * This method is like Object.assign, but recursively merges own and inherited\n * enumerable keyed properties of source objects into the destination object.\n *\n * NOTE: this behaves like lodash/merge, but:\n * - does mutate functions if they are a source\n * - treats non-plain objects as plain\n * - does not work for circular objects\n * - treats sparse arrays as sparse\n * - does not convert Array-like objects (Arguments, NodeLists, etc.) to arrays\n *\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n */\n\nfunction merge(target) {\n if (!isObjectOrArrayOrFunction(target)) {\n target = {};\n }\n\n for (var i = 1, l = arguments.length; i < l; i++) {\n var source = arguments[i];\n\n if (isObjectOrArrayOrFunction(source)) {\n _merge(target, source);\n }\n }\n return target;\n}\n\nmodule.exports = merge;\n","'use strict';\n\n// NOTE: this behaves like lodash/defaults, but doesn't mutate the target\n// it also preserve keys order\nmodule.exports = function defaultsPure() {\n var sources = Array.prototype.slice.call(arguments);\n\n return sources.reduceRight(function(acc, source) {\n Object.keys(Object(source)).forEach(function(key) {\n if (source[key] === undefined) {\n return;\n }\n if (acc[key] !== undefined) {\n // remove if already added, so that we can add it in correct order\n delete acc[key];\n }\n acc[key] = source[key];\n });\n return acc;\n }, {});\n};\n","'use strict';\n\nfunction intersection(arr1, arr2) {\n return arr1.filter(function(value, index) {\n return (\n arr2.indexOf(value) > -1 &&\n arr1.indexOf(value) === index /* skips duplicates */\n );\n });\n}\n\nmodule.exports = intersection;\n","'use strict';\n\n// @MAJOR can be replaced by native Array#find when we change support\nmodule.exports = function find(array, comparator) {\n if (!Array.isArray(array)) {\n return undefined;\n }\n\n for (var i = 0; i < array.length; i++) {\n if (comparator(array[i])) {\n return array[i];\n }\n }\n};\n","'use strict';\n\nfunction valToNumber(v) {\n if (typeof v === 'number') {\n return v;\n } else if (typeof v === 'string') {\n return parseFloat(v);\n } else if (Array.isArray(v)) {\n return v.map(valToNumber);\n }\n\n throw new Error('The value should be a number, a parsable string or an array of those.');\n}\n\nmodule.exports = valToNumber;\n","'use strict';\n\n// https://github.com/babel/babel/blob/3aaafae053fa75febb3aa45d45b6f00646e30ba4/packages/babel-helpers/src/helpers.js#L604-L620\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source === null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key;\n var i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;\n","'use strict';\n\nfunction objectHasKeys(obj) {\n return obj && Object.keys(obj).length > 0;\n}\n\nmodule.exports = objectHasKeys;\n","'use strict';\n\nmodule.exports = function isValidUserToken(userToken) {\n if (userToken === null) {\n return false;\n }\n return /^[a-zA-Z0-9_-]{1,64}$/.test(userToken);\n};\n","'use strict';\n\n/**\n * Functions to manipulate refinement lists\n *\n * The RefinementList is not formally defined through a prototype but is based\n * on a specific structure.\n *\n * @module SearchParameters.refinementList\n *\n * @typedef {string[]} SearchParameters.refinementList.Refinements\n * @typedef {Object.} SearchParameters.refinementList.RefinementList\n */\n\nvar defaultsPure = require('../functions/defaultsPure');\nvar omit = require('../functions/omit');\nvar objectHasKeys = require('../functions/objectHasKeys');\n\nvar lib = {\n /**\n * Adds a refinement to a RefinementList\n * @param {RefinementList} refinementList the initial list\n * @param {string} attribute the attribute to refine\n * @param {string} value the value of the refinement, if the value is not a string it will be converted\n * @return {RefinementList} a new and updated refinement list\n */\n addRefinement: function addRefinement(refinementList, attribute, value) {\n if (lib.isRefined(refinementList, attribute, value)) {\n return refinementList;\n }\n\n var valueAsString = '' + value;\n\n var facetRefinement = !refinementList[attribute] ?\n [valueAsString] :\n refinementList[attribute].concat(valueAsString);\n\n var mod = {};\n\n mod[attribute] = facetRefinement;\n\n return defaultsPure({}, mod, refinementList);\n },\n /**\n * Removes refinement(s) for an attribute:\n * - if the value is specified removes the refinement for the value on the attribute\n * - if no value is specified removes all the refinements for this attribute\n * @param {RefinementList} refinementList the initial list\n * @param {string} attribute the attribute to refine\n * @param {string} [value] the value of the refinement\n * @return {RefinementList} a new and updated refinement lst\n */\n removeRefinement: function removeRefinement(refinementList, attribute, value) {\n if (value === undefined) {\n // we use the \"filter\" form of clearRefinement, since it leaves empty values as-is\n // the form with a string will remove the attribute completely\n return lib.clearRefinement(refinementList, function(v, f) {\n return attribute === f;\n });\n }\n\n var valueAsString = '' + value;\n\n return lib.clearRefinement(refinementList, function(v, f) {\n return attribute === f && valueAsString === v;\n });\n },\n /**\n * Toggles the refinement value for an attribute.\n * @param {RefinementList} refinementList the initial list\n * @param {string} attribute the attribute to refine\n * @param {string} value the value of the refinement\n * @return {RefinementList} a new and updated list\n */\n toggleRefinement: function toggleRefinement(refinementList, attribute, value) {\n if (value === undefined) throw new Error('toggleRefinement should be used with a value');\n\n if (lib.isRefined(refinementList, attribute, value)) {\n return lib.removeRefinement(refinementList, attribute, value);\n }\n\n return lib.addRefinement(refinementList, attribute, value);\n },\n /**\n * Clear all or parts of a RefinementList. Depending on the arguments, three\n * kinds of behavior can happen:\n * - if no attribute is provided: clears the whole list\n * - if an attribute is provided as a string: clears the list for the specific attribute\n * - if an attribute is provided as a function: discards the elements for which the function returns true\n * @param {RefinementList} refinementList the initial list\n * @param {string} [attribute] the attribute or function to discard\n * @param {string} [refinementType] optional parameter to give more context to the attribute function\n * @return {RefinementList} a new and updated refinement list\n */\n clearRefinement: function clearRefinement(refinementList, attribute, refinementType) {\n if (attribute === undefined) {\n if (!objectHasKeys(refinementList)) {\n return refinementList;\n }\n return {};\n } else if (typeof attribute === 'string') {\n return omit(refinementList, [attribute]);\n } else if (typeof attribute === 'function') {\n var hasChanged = false;\n\n var newRefinementList = Object.keys(refinementList).reduce(function(memo, key) {\n var values = refinementList[key] || [];\n var facetList = values.filter(function(value) {\n return !attribute(value, key, refinementType);\n });\n\n if (facetList.length !== values.length) {\n hasChanged = true;\n }\n memo[key] = facetList;\n\n return memo;\n }, {});\n\n if (hasChanged) return newRefinementList;\n return refinementList;\n }\n },\n /**\n * Test if the refinement value is used for the attribute. If no refinement value\n * is provided, test if the refinementList contains any refinement for the\n * given attribute.\n * @param {RefinementList} refinementList the list of refinement\n * @param {string} attribute name of the attribute\n * @param {string} [refinementValue] value of the filter/refinement\n * @return {boolean}\n */\n isRefined: function isRefined(refinementList, attribute, refinementValue) {\n var containsRefinements = !!refinementList[attribute] &&\n refinementList[attribute].length > 0;\n\n if (refinementValue === undefined || !containsRefinements) {\n return containsRefinements;\n }\n\n var refinementValueAsString = '' + refinementValue;\n\n return refinementList[attribute].indexOf(refinementValueAsString) !== -1;\n }\n};\n\nmodule.exports = lib;\n","'use strict';\n\nvar merge = require('../functions/merge');\nvar defaultsPure = require('../functions/defaultsPure');\nvar intersection = require('../functions/intersection');\nvar find = require('../functions/find');\nvar valToNumber = require('../functions/valToNumber');\nvar omit = require('../functions/omit');\nvar objectHasKeys = require('../functions/objectHasKeys');\nvar isValidUserToken = require('../utils/isValidUserToken');\n\nvar RefinementList = require('./RefinementList');\n\n/**\n * isEqual, but only for numeric refinement values, possible values:\n * - 5\n * - [5]\n * - [[5]]\n * - [[5,5],[4]]\n */\nfunction isEqualNumericRefinement(a, b) {\n if (Array.isArray(a) && Array.isArray(b)) {\n return (\n a.length === b.length &&\n a.every(function(el, i) {\n return isEqualNumericRefinement(b[i], el);\n })\n );\n }\n return a === b;\n}\n\n/**\n * like _.find but using deep equality to be able to use it\n * to find arrays.\n * @private\n * @param {any[]} array array to search into (elements are base or array of base)\n * @param {any} searchedValue the value we're looking for (base or array of base)\n * @return {any} the searched value or undefined\n */\nfunction findArray(array, searchedValue) {\n return find(array, function(currentValue) {\n return isEqualNumericRefinement(currentValue, searchedValue);\n });\n}\n\n/**\n * The facet list is the structure used to store the list of values used to\n * filter a single attribute.\n * @typedef {string[]} SearchParameters.FacetList\n */\n\n/**\n * Structure to store numeric filters with the operator as the key. The supported operators\n * are `=`, `>`, `<`, `>=`, `<=` and `!=`.\n * @typedef {Object.>} SearchParameters.OperatorList\n */\n\n/**\n * SearchParameters is the data structure that contains all the information\n * usable for making a search to Algolia API. It doesn't do the search itself,\n * nor does it contains logic about the parameters.\n * It is an immutable object, therefore it has been created in a way that each\n * changes does not change the object itself but returns a copy with the\n * modification.\n * This object should probably not be instantiated outside of the helper. It will\n * be provided when needed. This object is documented for reference as you'll\n * get it from events generated by the {@link AlgoliaSearchHelper}.\n * If need be, instantiate the Helper from the factory function {@link SearchParameters.make}\n * @constructor\n * @classdesc contains all the parameters of a search\n * @param {object|SearchParameters} newParameters existing parameters or partial object\n * for the properties of a new SearchParameters\n * @see SearchParameters.make\n * @example SearchParameters of the first query in\n * the instant search demo\n{\n \"query\": \"\",\n \"disjunctiveFacets\": [\n \"customerReviewCount\",\n \"category\",\n \"salePrice_range\",\n \"manufacturer\"\n ],\n \"maxValuesPerFacet\": 30,\n \"page\": 0,\n \"hitsPerPage\": 10,\n \"facets\": [\n \"type\",\n \"shipping\"\n ]\n}\n */\nfunction SearchParameters(newParameters) {\n var params = newParameters ? SearchParameters._parseNumbers(newParameters) : {};\n\n if (params.userToken !== undefined && !isValidUserToken(params.userToken)) {\n console.warn('[algoliasearch-helper] The `userToken` parameter is invalid. This can lead to wrong analytics.\\n - Format: [a-zA-Z0-9_-]{1,64}');\n }\n /**\n * This attribute contains the list of all the conjunctive facets\n * used. This list will be added to requested facets in the\n * [facets attribute](https://www.algolia.com/doc/rest-api/search#param-facets) sent to algolia.\n * @member {string[]}\n */\n this.facets = params.facets || [];\n /**\n * This attribute contains the list of all the disjunctive facets\n * used. This list will be added to requested facets in the\n * [facets attribute](https://www.algolia.com/doc/rest-api/search#param-facets) sent to algolia.\n * @member {string[]}\n */\n this.disjunctiveFacets = params.disjunctiveFacets || [];\n /**\n * This attribute contains the list of all the hierarchical facets\n * used. This list will be added to requested facets in the\n * [facets attribute](https://www.algolia.com/doc/rest-api/search#param-facets) sent to algolia.\n * Hierarchical facets are a sub type of disjunctive facets that\n * let you filter faceted attributes hierarchically.\n * @member {string[]|object[]}\n */\n this.hierarchicalFacets = params.hierarchicalFacets || [];\n\n // Refinements\n /**\n * This attribute contains all the filters that need to be\n * applied on the conjunctive facets. Each facet must be properly\n * defined in the `facets` attribute.\n *\n * The key is the name of the facet, and the `FacetList` contains all\n * filters selected for the associated facet name.\n *\n * When querying algolia, the values stored in this attribute will\n * be translated into the `facetFilters` attribute.\n * @member {Object.}\n */\n this.facetsRefinements = params.facetsRefinements || {};\n /**\n * This attribute contains all the filters that need to be\n * excluded from the conjunctive facets. Each facet must be properly\n * defined in the `facets` attribute.\n *\n * The key is the name of the facet, and the `FacetList` contains all\n * filters excluded for the associated facet name.\n *\n * When querying algolia, the values stored in this attribute will\n * be translated into the `facetFilters` attribute.\n * @member {Object.}\n */\n this.facetsExcludes = params.facetsExcludes || {};\n /**\n * This attribute contains all the filters that need to be\n * applied on the disjunctive facets. Each facet must be properly\n * defined in the `disjunctiveFacets` attribute.\n *\n * The key is the name of the facet, and the `FacetList` contains all\n * filters selected for the associated facet name.\n *\n * When querying algolia, the values stored in this attribute will\n * be translated into the `facetFilters` attribute.\n * @member {Object.}\n */\n this.disjunctiveFacetsRefinements = params.disjunctiveFacetsRefinements || {};\n /**\n * This attribute contains all the filters that need to be\n * applied on the numeric attributes.\n *\n * The key is the name of the attribute, and the value is the\n * filters to apply to this attribute.\n *\n * When querying algolia, the values stored in this attribute will\n * be translated into the `numericFilters` attribute.\n * @member {Object.}\n */\n this.numericRefinements = params.numericRefinements || {};\n /**\n * This attribute contains all the tags used to refine the query.\n *\n * When querying algolia, the values stored in this attribute will\n * be translated into the `tagFilters` attribute.\n * @member {string[]}\n */\n this.tagRefinements = params.tagRefinements || [];\n /**\n * This attribute contains all the filters that need to be\n * applied on the hierarchical facets. Each facet must be properly\n * defined in the `hierarchicalFacets` attribute.\n *\n * The key is the name of the facet, and the `FacetList` contains all\n * filters selected for the associated facet name. The FacetList values\n * are structured as a string that contain the values for each level\n * separated by the configured separator.\n *\n * When querying algolia, the values stored in this attribute will\n * be translated into the `facetFilters` attribute.\n * @member {Object.}\n */\n this.hierarchicalFacetsRefinements = params.hierarchicalFacetsRefinements || {};\n\n var self = this;\n Object.keys(params).forEach(function(paramName) {\n var isKeyKnown = SearchParameters.PARAMETERS.indexOf(paramName) !== -1;\n var isValueDefined = params[paramName] !== undefined;\n\n if (!isKeyKnown && isValueDefined) {\n self[paramName] = params[paramName];\n }\n });\n}\n\n/**\n * List all the properties in SearchParameters and therefore all the known Algolia properties\n * This doesn't contain any beta/hidden features.\n * @private\n */\nSearchParameters.PARAMETERS = Object.keys(new SearchParameters());\n\n/**\n * @private\n * @param {object} partialState full or part of a state\n * @return {object} a new object with the number keys as number\n */\nSearchParameters._parseNumbers = function(partialState) {\n // Do not reparse numbers in SearchParameters, they ought to be parsed already\n if (partialState instanceof SearchParameters) return partialState;\n\n var numbers = {};\n\n var numberKeys = [\n 'aroundPrecision',\n 'aroundRadius',\n 'getRankingInfo',\n 'minWordSizefor2Typos',\n 'minWordSizefor1Typo',\n 'page',\n 'maxValuesPerFacet',\n 'distinct',\n 'minimumAroundRadius',\n 'hitsPerPage',\n 'minProximity'\n ];\n\n numberKeys.forEach(function(k) {\n var value = partialState[k];\n if (typeof value === 'string') {\n var parsedValue = parseFloat(value);\n // global isNaN is ok to use here, value is only number or NaN\n numbers[k] = isNaN(parsedValue) ? value : parsedValue;\n }\n });\n\n // there's two formats of insideBoundingBox, we need to parse\n // the one which is an array of float geo rectangles\n if (Array.isArray(partialState.insideBoundingBox)) {\n numbers.insideBoundingBox = partialState.insideBoundingBox.map(function(geoRect) {\n if (Array.isArray(geoRect)) {\n return geoRect.map(function(value) {\n return parseFloat(value);\n });\n }\n return geoRect;\n });\n }\n\n if (partialState.numericRefinements) {\n var numericRefinements = {};\n Object.keys(partialState.numericRefinements).forEach(function(attribute) {\n var operators = partialState.numericRefinements[attribute] || {};\n numericRefinements[attribute] = {};\n Object.keys(operators).forEach(function(operator) {\n var values = operators[operator];\n var parsedValues = values.map(function(v) {\n if (Array.isArray(v)) {\n return v.map(function(vPrime) {\n if (typeof vPrime === 'string') {\n return parseFloat(vPrime);\n }\n return vPrime;\n });\n } else if (typeof v === 'string') {\n return parseFloat(v);\n }\n return v;\n });\n numericRefinements[attribute][operator] = parsedValues;\n });\n });\n numbers.numericRefinements = numericRefinements;\n }\n\n return merge({}, partialState, numbers);\n};\n\n/**\n * Factory for SearchParameters\n * @param {object|SearchParameters} newParameters existing parameters or partial\n * object for the properties of a new SearchParameters\n * @return {SearchParameters} frozen instance of SearchParameters\n */\nSearchParameters.make = function makeSearchParameters(newParameters) {\n var instance = new SearchParameters(newParameters);\n\n var hierarchicalFacets = newParameters.hierarchicalFacets || [];\n hierarchicalFacets.forEach(function(facet) {\n if (facet.rootPath) {\n var currentRefinement = instance.getHierarchicalRefinement(facet.name);\n\n if (currentRefinement.length > 0 && currentRefinement[0].indexOf(facet.rootPath) !== 0) {\n instance = instance.clearRefinements(facet.name);\n }\n\n // get it again in case it has been cleared\n currentRefinement = instance.getHierarchicalRefinement(facet.name);\n if (currentRefinement.length === 0) {\n instance = instance.toggleHierarchicalFacetRefinement(facet.name, facet.rootPath);\n }\n }\n });\n\n return instance;\n};\n\n/**\n * Validates the new parameters based on the previous state\n * @param {SearchParameters} currentState the current state\n * @param {object|SearchParameters} parameters the new parameters to set\n * @return {Error|null} Error if the modification is invalid, null otherwise\n */\nSearchParameters.validate = function(currentState, parameters) {\n var params = parameters || {};\n\n if (currentState.tagFilters && params.tagRefinements && params.tagRefinements.length > 0) {\n return new Error(\n '[Tags] Cannot switch from the managed tag API to the advanced API. It is probably ' +\n 'an error, if it is really what you want, you should first clear the tags with clearTags method.');\n }\n\n if (currentState.tagRefinements.length > 0 && params.tagFilters) {\n return new Error(\n '[Tags] Cannot switch from the advanced tag API to the managed API. It is probably ' +\n 'an error, if it is not, you should first clear the tags with clearTags method.');\n }\n\n if (\n currentState.numericFilters &&\n params.numericRefinements &&\n objectHasKeys(params.numericRefinements)\n ) {\n return new Error(\n \"[Numeric filters] Can't switch from the advanced to the managed API. It\" +\n ' is probably an error, if this is really what you want, you have to first' +\n ' clear the numeric filters.'\n );\n }\n\n if (objectHasKeys(currentState.numericRefinements) && params.numericFilters) {\n return new Error(\n \"[Numeric filters] Can't switch from the managed API to the advanced. It\" +\n ' is probably an error, if this is really what you want, you have to first' +\n ' clear the numeric filters.');\n }\n\n return null;\n};\n\nSearchParameters.prototype = {\n constructor: SearchParameters,\n\n /**\n * Remove all refinements (disjunctive + conjunctive + excludes + numeric filters)\n * @method\n * @param {undefined|string|SearchParameters.clearCallback} [attribute] optional string or function\n * - If not given, means to clear all the filters.\n * - If `string`, means to clear all refinements for the `attribute` named filter.\n * - If `function`, means to clear all the refinements that return truthy values.\n * @return {SearchParameters}\n */\n clearRefinements: function clearRefinements(attribute) {\n var patch = {\n numericRefinements: this._clearNumericRefinements(attribute),\n facetsRefinements: RefinementList.clearRefinement(\n this.facetsRefinements,\n attribute,\n 'conjunctiveFacet'\n ),\n facetsExcludes: RefinementList.clearRefinement(\n this.facetsExcludes,\n attribute,\n 'exclude'\n ),\n disjunctiveFacetsRefinements: RefinementList.clearRefinement(\n this.disjunctiveFacetsRefinements,\n attribute,\n 'disjunctiveFacet'\n ),\n hierarchicalFacetsRefinements: RefinementList.clearRefinement(\n this.hierarchicalFacetsRefinements,\n attribute,\n 'hierarchicalFacet'\n )\n };\n if (\n patch.numericRefinements === this.numericRefinements &&\n patch.facetsRefinements === this.facetsRefinements &&\n patch.facetsExcludes === this.facetsExcludes &&\n patch.disjunctiveFacetsRefinements === this.disjunctiveFacetsRefinements &&\n patch.hierarchicalFacetsRefinements === this.hierarchicalFacetsRefinements\n ) {\n return this;\n }\n return this.setQueryParameters(patch);\n },\n /**\n * Remove all the refined tags from the SearchParameters\n * @method\n * @return {SearchParameters}\n */\n clearTags: function clearTags() {\n if (this.tagFilters === undefined && this.tagRefinements.length === 0) return this;\n\n return this.setQueryParameters({\n tagFilters: undefined,\n tagRefinements: []\n });\n },\n /**\n * Set the index.\n * @method\n * @param {string} index the index name\n * @return {SearchParameters}\n */\n setIndex: function setIndex(index) {\n if (index === this.index) return this;\n\n return this.setQueryParameters({\n index: index\n });\n },\n /**\n * Query setter\n * @method\n * @param {string} newQuery value for the new query\n * @return {SearchParameters}\n */\n setQuery: function setQuery(newQuery) {\n if (newQuery === this.query) return this;\n\n return this.setQueryParameters({\n query: newQuery\n });\n },\n /**\n * Page setter\n * @method\n * @param {number} newPage new page number\n * @return {SearchParameters}\n */\n setPage: function setPage(newPage) {\n if (newPage === this.page) return this;\n\n return this.setQueryParameters({\n page: newPage\n });\n },\n /**\n * Facets setter\n * The facets are the simple facets, used for conjunctive (and) faceting.\n * @method\n * @param {string[]} facets all the attributes of the algolia records used for conjunctive faceting\n * @return {SearchParameters}\n */\n setFacets: function setFacets(facets) {\n return this.setQueryParameters({\n facets: facets\n });\n },\n /**\n * Disjunctive facets setter\n * Change the list of disjunctive (or) facets the helper chan handle.\n * @method\n * @param {string[]} facets all the attributes of the algolia records used for disjunctive faceting\n * @return {SearchParameters}\n */\n setDisjunctiveFacets: function setDisjunctiveFacets(facets) {\n return this.setQueryParameters({\n disjunctiveFacets: facets\n });\n },\n /**\n * HitsPerPage setter\n * Hits per page represents the number of hits retrieved for this query\n * @method\n * @param {number} n number of hits retrieved per page of results\n * @return {SearchParameters}\n */\n setHitsPerPage: function setHitsPerPage(n) {\n if (this.hitsPerPage === n) return this;\n\n return this.setQueryParameters({\n hitsPerPage: n\n });\n },\n /**\n * typoTolerance setter\n * Set the value of typoTolerance\n * @method\n * @param {string} typoTolerance new value of typoTolerance (\"true\", \"false\", \"min\" or \"strict\")\n * @return {SearchParameters}\n */\n setTypoTolerance: function setTypoTolerance(typoTolerance) {\n if (this.typoTolerance === typoTolerance) return this;\n\n return this.setQueryParameters({\n typoTolerance: typoTolerance\n });\n },\n /**\n * Add a numeric filter for a given attribute\n * When value is an array, they are combined with OR\n * When value is a single value, it will combined with AND\n * @method\n * @param {string} attribute attribute to set the filter on\n * @param {string} operator operator of the filter (possible values: =, >, >=, <, <=, !=)\n * @param {number | number[]} value value of the filter\n * @return {SearchParameters}\n * @example\n * // for price = 50 or 40\n * searchparameter.addNumericRefinement('price', '=', [50, 40]);\n * @example\n * // for size = 38 and 40\n * searchparameter.addNumericRefinement('size', '=', 38);\n * searchparameter.addNumericRefinement('size', '=', 40);\n */\n addNumericRefinement: function(attribute, operator, v) {\n var value = valToNumber(v);\n\n if (this.isNumericRefined(attribute, operator, value)) return this;\n\n var mod = merge({}, this.numericRefinements);\n\n mod[attribute] = merge({}, mod[attribute]);\n\n if (mod[attribute][operator]) {\n // Array copy\n mod[attribute][operator] = mod[attribute][operator].slice();\n // Add the element. Concat can't be used here because value can be an array.\n mod[attribute][operator].push(value);\n } else {\n mod[attribute][operator] = [value];\n }\n\n return this.setQueryParameters({\n numericRefinements: mod\n });\n },\n /**\n * Get the list of conjunctive refinements for a single facet\n * @param {string} facetName name of the attribute used for faceting\n * @return {string[]} list of refinements\n */\n getConjunctiveRefinements: function(facetName) {\n if (!this.isConjunctiveFacet(facetName)) {\n return [];\n }\n return this.facetsRefinements[facetName] || [];\n },\n /**\n * Get the list of disjunctive refinements for a single facet\n * @param {string} facetName name of the attribute used for faceting\n * @return {string[]} list of refinements\n */\n getDisjunctiveRefinements: function(facetName) {\n if (!this.isDisjunctiveFacet(facetName)) {\n return [];\n }\n return this.disjunctiveFacetsRefinements[facetName] || [];\n },\n /**\n * Get the list of hierarchical refinements for a single facet\n * @param {string} facetName name of the attribute used for faceting\n * @return {string[]} list of refinements\n */\n getHierarchicalRefinement: function(facetName) {\n // we send an array but we currently do not support multiple\n // hierarchicalRefinements for a hierarchicalFacet\n return this.hierarchicalFacetsRefinements[facetName] || [];\n },\n /**\n * Get the list of exclude refinements for a single facet\n * @param {string} facetName name of the attribute used for faceting\n * @return {string[]} list of refinements\n */\n getExcludeRefinements: function(facetName) {\n if (!this.isConjunctiveFacet(facetName)) {\n return [];\n }\n return this.facetsExcludes[facetName] || [];\n },\n\n /**\n * Remove all the numeric filter for a given (attribute, operator)\n * @method\n * @param {string} attribute attribute to set the filter on\n * @param {string} [operator] operator of the filter (possible values: =, >, >=, <, <=, !=)\n * @param {number} [number] the value to be removed\n * @return {SearchParameters}\n */\n removeNumericRefinement: function(attribute, operator, paramValue) {\n if (paramValue !== undefined) {\n if (!this.isNumericRefined(attribute, operator, paramValue)) {\n return this;\n }\n return this.setQueryParameters({\n numericRefinements: this._clearNumericRefinements(function(value, key) {\n return (\n key === attribute &&\n value.op === operator &&\n isEqualNumericRefinement(value.val, valToNumber(paramValue))\n );\n })\n });\n } else if (operator !== undefined) {\n if (!this.isNumericRefined(attribute, operator)) return this;\n return this.setQueryParameters({\n numericRefinements: this._clearNumericRefinements(function(value, key) {\n return key === attribute && value.op === operator;\n })\n });\n }\n\n if (!this.isNumericRefined(attribute)) return this;\n return this.setQueryParameters({\n numericRefinements: this._clearNumericRefinements(function(value, key) {\n return key === attribute;\n })\n });\n },\n /**\n * Get the list of numeric refinements for a single facet\n * @param {string} facetName name of the attribute used for faceting\n * @return {SearchParameters.OperatorList} list of refinements\n */\n getNumericRefinements: function(facetName) {\n return this.numericRefinements[facetName] || {};\n },\n /**\n * Return the current refinement for the (attribute, operator)\n * @param {string} attribute attribute in the record\n * @param {string} operator operator applied on the refined values\n * @return {Array.} refined values\n */\n getNumericRefinement: function(attribute, operator) {\n return this.numericRefinements[attribute] && this.numericRefinements[attribute][operator];\n },\n /**\n * Clear numeric filters.\n * @method\n * @private\n * @param {string|SearchParameters.clearCallback} [attribute] optional string or function\n * - If not given, means to clear all the filters.\n * - If `string`, means to clear all refinements for the `attribute` named filter.\n * - If `function`, means to clear all the refinements that return truthy values.\n * @return {Object.}\n */\n _clearNumericRefinements: function _clearNumericRefinements(attribute) {\n if (attribute === undefined) {\n if (!objectHasKeys(this.numericRefinements)) {\n return this.numericRefinements;\n }\n return {};\n } else if (typeof attribute === 'string') {\n return omit(this.numericRefinements, [attribute]);\n } else if (typeof attribute === 'function') {\n var hasChanged = false;\n var numericRefinements = this.numericRefinements;\n var newNumericRefinements = Object.keys(numericRefinements).reduce(function(memo, key) {\n var operators = numericRefinements[key];\n var operatorList = {};\n\n operators = operators || {};\n Object.keys(operators).forEach(function(operator) {\n var values = operators[operator] || [];\n var outValues = [];\n values.forEach(function(value) {\n var predicateResult = attribute({val: value, op: operator}, key, 'numeric');\n if (!predicateResult) outValues.push(value);\n });\n if (outValues.length !== values.length) {\n hasChanged = true;\n }\n operatorList[operator] = outValues;\n });\n\n memo[key] = operatorList;\n\n return memo;\n }, {});\n\n if (hasChanged) return newNumericRefinements;\n return this.numericRefinements;\n }\n },\n /**\n * Add a facet to the facets attribute of the helper configuration, if it\n * isn't already present.\n * @method\n * @param {string} facet facet name to add\n * @return {SearchParameters}\n */\n addFacet: function addFacet(facet) {\n if (this.isConjunctiveFacet(facet)) {\n return this;\n }\n\n return this.setQueryParameters({\n facets: this.facets.concat([facet])\n });\n },\n /**\n * Add a disjunctive facet to the disjunctiveFacets attribute of the helper\n * configuration, if it isn't already present.\n * @method\n * @param {string} facet disjunctive facet name to add\n * @return {SearchParameters}\n */\n addDisjunctiveFacet: function addDisjunctiveFacet(facet) {\n if (this.isDisjunctiveFacet(facet)) {\n return this;\n }\n\n return this.setQueryParameters({\n disjunctiveFacets: this.disjunctiveFacets.concat([facet])\n });\n },\n /**\n * Add a hierarchical facet to the hierarchicalFacets attribute of the helper\n * configuration.\n * @method\n * @param {object} hierarchicalFacet hierarchical facet to add\n * @return {SearchParameters}\n * @throws will throw an error if a hierarchical facet with the same name was already declared\n */\n addHierarchicalFacet: function addHierarchicalFacet(hierarchicalFacet) {\n if (this.isHierarchicalFacet(hierarchicalFacet.name)) {\n throw new Error(\n 'Cannot declare two hierarchical facets with the same name: `' + hierarchicalFacet.name + '`');\n }\n\n return this.setQueryParameters({\n hierarchicalFacets: this.hierarchicalFacets.concat([hierarchicalFacet])\n });\n },\n /**\n * Add a refinement on a \"normal\" facet\n * @method\n * @param {string} facet attribute to apply the faceting on\n * @param {string} value value of the attribute (will be converted to string)\n * @return {SearchParameters}\n */\n addFacetRefinement: function addFacetRefinement(facet, value) {\n if (!this.isConjunctiveFacet(facet)) {\n throw new Error(facet + ' is not defined in the facets attribute of the helper configuration');\n }\n if (RefinementList.isRefined(this.facetsRefinements, facet, value)) return this;\n\n return this.setQueryParameters({\n facetsRefinements: RefinementList.addRefinement(this.facetsRefinements, facet, value)\n });\n },\n /**\n * Exclude a value from a \"normal\" facet\n * @method\n * @param {string} facet attribute to apply the exclusion on\n * @param {string} value value of the attribute (will be converted to string)\n * @return {SearchParameters}\n */\n addExcludeRefinement: function addExcludeRefinement(facet, value) {\n if (!this.isConjunctiveFacet(facet)) {\n throw new Error(facet + ' is not defined in the facets attribute of the helper configuration');\n }\n if (RefinementList.isRefined(this.facetsExcludes, facet, value)) return this;\n\n return this.setQueryParameters({\n facetsExcludes: RefinementList.addRefinement(this.facetsExcludes, facet, value)\n });\n },\n /**\n * Adds a refinement on a disjunctive facet.\n * @method\n * @param {string} facet attribute to apply the faceting on\n * @param {string} value value of the attribute (will be converted to string)\n * @return {SearchParameters}\n */\n addDisjunctiveFacetRefinement: function addDisjunctiveFacetRefinement(facet, value) {\n if (!this.isDisjunctiveFacet(facet)) {\n throw new Error(\n facet + ' is not defined in the disjunctiveFacets attribute of the helper configuration');\n }\n\n if (RefinementList.isRefined(this.disjunctiveFacetsRefinements, facet, value)) return this;\n\n return this.setQueryParameters({\n disjunctiveFacetsRefinements: RefinementList.addRefinement(\n this.disjunctiveFacetsRefinements, facet, value)\n });\n },\n /**\n * addTagRefinement adds a tag to the list used to filter the results\n * @param {string} tag tag to be added\n * @return {SearchParameters}\n */\n addTagRefinement: function addTagRefinement(tag) {\n if (this.isTagRefined(tag)) return this;\n\n var modification = {\n tagRefinements: this.tagRefinements.concat(tag)\n };\n\n return this.setQueryParameters(modification);\n },\n /**\n * Remove a facet from the facets attribute of the helper configuration, if it\n * is present.\n * @method\n * @param {string} facet facet name to remove\n * @return {SearchParameters}\n */\n removeFacet: function removeFacet(facet) {\n if (!this.isConjunctiveFacet(facet)) {\n return this;\n }\n\n return this.clearRefinements(facet).setQueryParameters({\n facets: this.facets.filter(function(f) {\n return f !== facet;\n })\n });\n },\n /**\n * Remove a disjunctive facet from the disjunctiveFacets attribute of the\n * helper configuration, if it is present.\n * @method\n * @param {string} facet disjunctive facet name to remove\n * @return {SearchParameters}\n */\n removeDisjunctiveFacet: function removeDisjunctiveFacet(facet) {\n if (!this.isDisjunctiveFacet(facet)) {\n return this;\n }\n\n return this.clearRefinements(facet).setQueryParameters({\n disjunctiveFacets: this.disjunctiveFacets.filter(function(f) {\n return f !== facet;\n })\n });\n },\n /**\n * Remove a hierarchical facet from the hierarchicalFacets attribute of the\n * helper configuration, if it is present.\n * @method\n * @param {string} facet hierarchical facet name to remove\n * @return {SearchParameters}\n */\n removeHierarchicalFacet: function removeHierarchicalFacet(facet) {\n if (!this.isHierarchicalFacet(facet)) {\n return this;\n }\n\n return this.clearRefinements(facet).setQueryParameters({\n hierarchicalFacets: this.hierarchicalFacets.filter(function(f) {\n return f.name !== facet;\n })\n });\n },\n /**\n * Remove a refinement set on facet. If a value is provided, it will clear the\n * refinement for the given value, otherwise it will clear all the refinement\n * values for the faceted attribute.\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {string} [value] value used to filter\n * @return {SearchParameters}\n */\n removeFacetRefinement: function removeFacetRefinement(facet, value) {\n if (!this.isConjunctiveFacet(facet)) {\n throw new Error(facet + ' is not defined in the facets attribute of the helper configuration');\n }\n if (!RefinementList.isRefined(this.facetsRefinements, facet, value)) return this;\n\n return this.setQueryParameters({\n facetsRefinements: RefinementList.removeRefinement(this.facetsRefinements, facet, value)\n });\n },\n /**\n * Remove a negative refinement on a facet\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {string} value value used to filter\n * @return {SearchParameters}\n */\n removeExcludeRefinement: function removeExcludeRefinement(facet, value) {\n if (!this.isConjunctiveFacet(facet)) {\n throw new Error(facet + ' is not defined in the facets attribute of the helper configuration');\n }\n if (!RefinementList.isRefined(this.facetsExcludes, facet, value)) return this;\n\n return this.setQueryParameters({\n facetsExcludes: RefinementList.removeRefinement(this.facetsExcludes, facet, value)\n });\n },\n /**\n * Remove a refinement on a disjunctive facet\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {string} value value used to filter\n * @return {SearchParameters}\n */\n removeDisjunctiveFacetRefinement: function removeDisjunctiveFacetRefinement(facet, value) {\n if (!this.isDisjunctiveFacet(facet)) {\n throw new Error(\n facet + ' is not defined in the disjunctiveFacets attribute of the helper configuration');\n }\n if (!RefinementList.isRefined(this.disjunctiveFacetsRefinements, facet, value)) return this;\n\n return this.setQueryParameters({\n disjunctiveFacetsRefinements: RefinementList.removeRefinement(\n this.disjunctiveFacetsRefinements, facet, value)\n });\n },\n /**\n * Remove a tag from the list of tag refinements\n * @method\n * @param {string} tag the tag to remove\n * @return {SearchParameters}\n */\n removeTagRefinement: function removeTagRefinement(tag) {\n if (!this.isTagRefined(tag)) return this;\n\n var modification = {\n tagRefinements: this.tagRefinements.filter(function(t) {\n return t !== tag;\n })\n };\n\n return this.setQueryParameters(modification);\n },\n /**\n * Generic toggle refinement method to use with facet, disjunctive facets\n * and hierarchical facets\n * @param {string} facet the facet to refine\n * @param {string} value the associated value\n * @return {SearchParameters}\n * @throws will throw an error if the facet is not declared in the settings of the helper\n * @deprecated since version 2.19.0, see {@link SearchParameters#toggleFacetRefinement}\n */\n toggleRefinement: function toggleRefinement(facet, value) {\n return this.toggleFacetRefinement(facet, value);\n },\n /**\n * Generic toggle refinement method to use with facet, disjunctive facets\n * and hierarchical facets\n * @param {string} facet the facet to refine\n * @param {string} value the associated value\n * @return {SearchParameters}\n * @throws will throw an error if the facet is not declared in the settings of the helper\n */\n toggleFacetRefinement: function toggleFacetRefinement(facet, value) {\n if (this.isHierarchicalFacet(facet)) {\n return this.toggleHierarchicalFacetRefinement(facet, value);\n } else if (this.isConjunctiveFacet(facet)) {\n return this.toggleConjunctiveFacetRefinement(facet, value);\n } else if (this.isDisjunctiveFacet(facet)) {\n return this.toggleDisjunctiveFacetRefinement(facet, value);\n }\n\n throw new Error('Cannot refine the undeclared facet ' + facet +\n '; it should be added to the helper options facets, disjunctiveFacets or hierarchicalFacets');\n },\n /**\n * Switch the refinement applied over a facet/value\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {value} value value used for filtering\n * @return {SearchParameters}\n */\n toggleConjunctiveFacetRefinement: function toggleConjunctiveFacetRefinement(facet, value) {\n if (!this.isConjunctiveFacet(facet)) {\n throw new Error(facet + ' is not defined in the facets attribute of the helper configuration');\n }\n\n return this.setQueryParameters({\n facetsRefinements: RefinementList.toggleRefinement(this.facetsRefinements, facet, value)\n });\n },\n /**\n * Switch the refinement applied over a facet/value\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {value} value value used for filtering\n * @return {SearchParameters}\n */\n toggleExcludeFacetRefinement: function toggleExcludeFacetRefinement(facet, value) {\n if (!this.isConjunctiveFacet(facet)) {\n throw new Error(facet + ' is not defined in the facets attribute of the helper configuration');\n }\n\n return this.setQueryParameters({\n facetsExcludes: RefinementList.toggleRefinement(this.facetsExcludes, facet, value)\n });\n },\n /**\n * Switch the refinement applied over a facet/value\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {value} value value used for filtering\n * @return {SearchParameters}\n */\n toggleDisjunctiveFacetRefinement: function toggleDisjunctiveFacetRefinement(facet, value) {\n if (!this.isDisjunctiveFacet(facet)) {\n throw new Error(\n facet + ' is not defined in the disjunctiveFacets attribute of the helper configuration');\n }\n\n return this.setQueryParameters({\n disjunctiveFacetsRefinements: RefinementList.toggleRefinement(\n this.disjunctiveFacetsRefinements, facet, value)\n });\n },\n /**\n * Switch the refinement applied over a facet/value\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {value} value value used for filtering\n * @return {SearchParameters}\n */\n toggleHierarchicalFacetRefinement: function toggleHierarchicalFacetRefinement(facet, value) {\n if (!this.isHierarchicalFacet(facet)) {\n throw new Error(\n facet + ' is not defined in the hierarchicalFacets attribute of the helper configuration');\n }\n\n var separator = this._getHierarchicalFacetSeparator(this.getHierarchicalFacetByName(facet));\n\n var mod = {};\n\n var upOneOrMultipleLevel = this.hierarchicalFacetsRefinements[facet] !== undefined &&\n this.hierarchicalFacetsRefinements[facet].length > 0 && (\n // remove current refinement:\n // refinement was 'beer > IPA', call is toggleRefine('beer > IPA'), refinement should be `beer`\n this.hierarchicalFacetsRefinements[facet][0] === value ||\n // remove a parent refinement of the current refinement:\n // - refinement was 'beer > IPA > Flying dog'\n // - call is toggleRefine('beer > IPA')\n // - refinement should be `beer`\n this.hierarchicalFacetsRefinements[facet][0].indexOf(value + separator) === 0\n );\n\n if (upOneOrMultipleLevel) {\n if (value.indexOf(separator) === -1) {\n // go back to root level\n mod[facet] = [];\n } else {\n mod[facet] = [value.slice(0, value.lastIndexOf(separator))];\n }\n } else {\n mod[facet] = [value];\n }\n\n return this.setQueryParameters({\n hierarchicalFacetsRefinements: defaultsPure({}, mod, this.hierarchicalFacetsRefinements)\n });\n },\n\n /**\n * Adds a refinement on a hierarchical facet.\n * @param {string} facet the facet name\n * @param {string} path the hierarchical facet path\n * @return {SearchParameter} the new state\n * @throws Error if the facet is not defined or if the facet is refined\n */\n addHierarchicalFacetRefinement: function(facet, path) {\n if (this.isHierarchicalFacetRefined(facet)) {\n throw new Error(facet + ' is already refined.');\n }\n if (!this.isHierarchicalFacet(facet)) {\n throw new Error(facet + ' is not defined in the hierarchicalFacets attribute of the helper configuration.');\n }\n var mod = {};\n mod[facet] = [path];\n return this.setQueryParameters({\n hierarchicalFacetsRefinements: defaultsPure({}, mod, this.hierarchicalFacetsRefinements)\n });\n },\n\n /**\n * Removes the refinement set on a hierarchical facet.\n * @param {string} facet the facet name\n * @return {SearchParameter} the new state\n * @throws Error if the facet is not defined or if the facet is not refined\n */\n removeHierarchicalFacetRefinement: function(facet) {\n if (!this.isHierarchicalFacetRefined(facet)) {\n return this;\n }\n var mod = {};\n mod[facet] = [];\n return this.setQueryParameters({\n hierarchicalFacetsRefinements: defaultsPure({}, mod, this.hierarchicalFacetsRefinements)\n });\n },\n /**\n * Switch the tag refinement\n * @method\n * @param {string} tag the tag to remove or add\n * @return {SearchParameters}\n */\n toggleTagRefinement: function toggleTagRefinement(tag) {\n if (this.isTagRefined(tag)) {\n return this.removeTagRefinement(tag);\n }\n\n return this.addTagRefinement(tag);\n },\n /**\n * Test if the facet name is from one of the disjunctive facets\n * @method\n * @param {string} facet facet name to test\n * @return {boolean}\n */\n isDisjunctiveFacet: function(facet) {\n return this.disjunctiveFacets.indexOf(facet) > -1;\n },\n /**\n * Test if the facet name is from one of the hierarchical facets\n * @method\n * @param {string} facetName facet name to test\n * @return {boolean}\n */\n isHierarchicalFacet: function(facetName) {\n return this.getHierarchicalFacetByName(facetName) !== undefined;\n },\n /**\n * Test if the facet name is from one of the conjunctive/normal facets\n * @method\n * @param {string} facet facet name to test\n * @return {boolean}\n */\n isConjunctiveFacet: function(facet) {\n return this.facets.indexOf(facet) > -1;\n },\n /**\n * Returns true if the facet is refined, either for a specific value or in\n * general.\n * @method\n * @param {string} facet name of the attribute for used for faceting\n * @param {string} value, optional value. If passed will test that this value\n * is filtering the given facet.\n * @return {boolean} returns true if refined\n */\n isFacetRefined: function isFacetRefined(facet, value) {\n if (!this.isConjunctiveFacet(facet)) {\n return false;\n }\n return RefinementList.isRefined(this.facetsRefinements, facet, value);\n },\n /**\n * Returns true if the facet contains exclusions or if a specific value is\n * excluded.\n *\n * @method\n * @param {string} facet name of the attribute for used for faceting\n * @param {string} [value] optional value. If passed will test that this value\n * is filtering the given facet.\n * @return {boolean} returns true if refined\n */\n isExcludeRefined: function isExcludeRefined(facet, value) {\n if (!this.isConjunctiveFacet(facet)) {\n return false;\n }\n return RefinementList.isRefined(this.facetsExcludes, facet, value);\n },\n /**\n * Returns true if the facet contains a refinement, or if a value passed is a\n * refinement for the facet.\n * @method\n * @param {string} facet name of the attribute for used for faceting\n * @param {string} value optional, will test if the value is used for refinement\n * if there is one, otherwise will test if the facet contains any refinement\n * @return {boolean}\n */\n isDisjunctiveFacetRefined: function isDisjunctiveFacetRefined(facet, value) {\n if (!this.isDisjunctiveFacet(facet)) {\n return false;\n }\n return RefinementList.isRefined(this.disjunctiveFacetsRefinements, facet, value);\n },\n /**\n * Returns true if the facet contains a refinement, or if a value passed is a\n * refinement for the facet.\n * @method\n * @param {string} facet name of the attribute for used for faceting\n * @param {string} value optional, will test if the value is used for refinement\n * if there is one, otherwise will test if the facet contains any refinement\n * @return {boolean}\n */\n isHierarchicalFacetRefined: function isHierarchicalFacetRefined(facet, value) {\n if (!this.isHierarchicalFacet(facet)) {\n return false;\n }\n\n var refinements = this.getHierarchicalRefinement(facet);\n\n if (!value) {\n return refinements.length > 0;\n }\n\n return refinements.indexOf(value) !== -1;\n },\n /**\n * Test if the triple (attribute, operator, value) is already refined.\n * If only the attribute and the operator are provided, it tests if the\n * contains any refinement value.\n * @method\n * @param {string} attribute attribute for which the refinement is applied\n * @param {string} [operator] operator of the refinement\n * @param {string} [value] value of the refinement\n * @return {boolean} true if it is refined\n */\n isNumericRefined: function isNumericRefined(attribute, operator, value) {\n if (value === undefined && operator === undefined) {\n return !!this.numericRefinements[attribute];\n }\n\n var isOperatorDefined =\n this.numericRefinements[attribute] &&\n this.numericRefinements[attribute][operator] !== undefined;\n\n if (value === undefined || !isOperatorDefined) {\n return isOperatorDefined;\n }\n\n var parsedValue = valToNumber(value);\n var isAttributeValueDefined =\n findArray(this.numericRefinements[attribute][operator], parsedValue) !==\n undefined;\n\n return isOperatorDefined && isAttributeValueDefined;\n },\n /**\n * Returns true if the tag refined, false otherwise\n * @method\n * @param {string} tag the tag to check\n * @return {boolean}\n */\n isTagRefined: function isTagRefined(tag) {\n return this.tagRefinements.indexOf(tag) !== -1;\n },\n /**\n * Returns the list of all disjunctive facets refined\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {value} value value used for filtering\n * @return {string[]}\n */\n getRefinedDisjunctiveFacets: function getRefinedDisjunctiveFacets() {\n var self = this;\n\n // attributes used for numeric filter can also be disjunctive\n var disjunctiveNumericRefinedFacets = intersection(\n Object.keys(this.numericRefinements).filter(function(facet) {\n return Object.keys(self.numericRefinements[facet]).length > 0;\n }),\n this.disjunctiveFacets\n );\n\n return Object.keys(this.disjunctiveFacetsRefinements).filter(function(facet) {\n return self.disjunctiveFacetsRefinements[facet].length > 0;\n })\n .concat(disjunctiveNumericRefinedFacets)\n .concat(this.getRefinedHierarchicalFacets());\n },\n /**\n * Returns the list of all disjunctive facets refined\n * @method\n * @param {string} facet name of the attribute used for faceting\n * @param {value} value value used for filtering\n * @return {string[]}\n */\n getRefinedHierarchicalFacets: function getRefinedHierarchicalFacets() {\n var self = this;\n return intersection(\n // enforce the order between the two arrays,\n // so that refinement name index === hierarchical facet index\n this.hierarchicalFacets.map(function(facet) { return facet.name; }),\n Object.keys(this.hierarchicalFacetsRefinements).filter(function(facet) {\n return self.hierarchicalFacetsRefinements[facet].length > 0;\n })\n );\n },\n /**\n * Returned the list of all disjunctive facets not refined\n * @method\n * @return {string[]}\n */\n getUnrefinedDisjunctiveFacets: function() {\n var refinedFacets = this.getRefinedDisjunctiveFacets();\n\n return this.disjunctiveFacets.filter(function(f) {\n return refinedFacets.indexOf(f) === -1;\n });\n },\n\n managedParameters: [\n 'index',\n\n 'facets',\n 'disjunctiveFacets',\n 'facetsRefinements',\n 'hierarchicalFacets',\n 'facetsExcludes',\n\n 'disjunctiveFacetsRefinements',\n 'numericRefinements',\n 'tagRefinements',\n 'hierarchicalFacetsRefinements'\n ],\n getQueryParams: function getQueryParams() {\n var managedParameters = this.managedParameters;\n\n var queryParams = {};\n\n var self = this;\n Object.keys(this).forEach(function(paramName) {\n var paramValue = self[paramName];\n if (managedParameters.indexOf(paramName) === -1 && paramValue !== undefined) {\n queryParams[paramName] = paramValue;\n }\n });\n\n return queryParams;\n },\n /**\n * Let the user set a specific value for a given parameter. Will return the\n * same instance if the parameter is invalid or if the value is the same as the\n * previous one.\n * @method\n * @param {string} parameter the parameter name\n * @param {any} value the value to be set, must be compliant with the definition\n * of the attribute on the object\n * @return {SearchParameters} the updated state\n */\n setQueryParameter: function setParameter(parameter, value) {\n if (this[parameter] === value) return this;\n\n var modification = {};\n\n modification[parameter] = value;\n\n return this.setQueryParameters(modification);\n },\n /**\n * Let the user set any of the parameters with a plain object.\n * @method\n * @param {object} params all the keys and the values to be updated\n * @return {SearchParameters} a new updated instance\n */\n setQueryParameters: function setQueryParameters(params) {\n if (!params) return this;\n\n var error = SearchParameters.validate(this, params);\n\n if (error) {\n throw error;\n }\n\n var self = this;\n var nextWithNumbers = SearchParameters._parseNumbers(params);\n var previousPlainObject = Object.keys(this).reduce(function(acc, key) {\n acc[key] = self[key];\n return acc;\n }, {});\n\n var nextPlainObject = Object.keys(nextWithNumbers).reduce(\n function(previous, key) {\n var isPreviousValueDefined = previous[key] !== undefined;\n var isNextValueDefined = nextWithNumbers[key] !== undefined;\n\n if (isPreviousValueDefined && !isNextValueDefined) {\n return omit(previous, [key]);\n }\n\n if (isNextValueDefined) {\n previous[key] = nextWithNumbers[key];\n }\n\n return previous;\n },\n previousPlainObject\n );\n\n return new this.constructor(nextPlainObject);\n },\n\n /**\n * Returns a new instance with the page reset. Two scenarios possible:\n * the page is omitted -> return the given instance\n * the page is set -> return a new instance with a page of 0\n * @return {SearchParameters} a new updated instance\n */\n resetPage: function() {\n if (this.page === undefined) {\n return this;\n }\n\n return this.setPage(0);\n },\n\n /**\n * Helper function to get the hierarchicalFacet separator or the default one (`>`)\n * @param {object} hierarchicalFacet\n * @return {string} returns the hierarchicalFacet.separator or `>` as default\n */\n _getHierarchicalFacetSortBy: function(hierarchicalFacet) {\n return hierarchicalFacet.sortBy || ['isRefined:desc', 'name:asc'];\n },\n\n /**\n * Helper function to get the hierarchicalFacet separator or the default one (`>`)\n * @private\n * @param {object} hierarchicalFacet\n * @return {string} returns the hierarchicalFacet.separator or `>` as default\n */\n _getHierarchicalFacetSeparator: function(hierarchicalFacet) {\n return hierarchicalFacet.separator || ' > ';\n },\n\n /**\n * Helper function to get the hierarchicalFacet prefix path or null\n * @private\n * @param {object} hierarchicalFacet\n * @return {string} returns the hierarchicalFacet.rootPath or null as default\n */\n _getHierarchicalRootPath: function(hierarchicalFacet) {\n return hierarchicalFacet.rootPath || null;\n },\n\n /**\n * Helper function to check if we show the parent level of the hierarchicalFacet\n * @private\n * @param {object} hierarchicalFacet\n * @return {string} returns the hierarchicalFacet.showParentLevel or true as default\n */\n _getHierarchicalShowParentLevel: function(hierarchicalFacet) {\n if (typeof hierarchicalFacet.showParentLevel === 'boolean') {\n return hierarchicalFacet.showParentLevel;\n }\n return true;\n },\n\n /**\n * Helper function to get the hierarchicalFacet by it's name\n * @param {string} hierarchicalFacetName\n * @return {object} a hierarchicalFacet\n */\n getHierarchicalFacetByName: function(hierarchicalFacetName) {\n return find(\n this.hierarchicalFacets,\n function(f) {\n return f.name === hierarchicalFacetName;\n }\n );\n },\n\n /**\n * Get the current breadcrumb for a hierarchical facet, as an array\n * @param {string} facetName Hierarchical facet name\n * @return {array.} the path as an array of string\n */\n getHierarchicalFacetBreadcrumb: function(facetName) {\n if (!this.isHierarchicalFacet(facetName)) {\n return [];\n }\n\n var refinement = this.getHierarchicalRefinement(facetName)[0];\n if (!refinement) return [];\n\n var separator = this._getHierarchicalFacetSeparator(\n this.getHierarchicalFacetByName(facetName)\n );\n var path = refinement.split(separator);\n return path.map(function(part) {\n return part.trim();\n });\n },\n\n toString: function() {\n return JSON.stringify(this, null, 2);\n }\n};\n\n/**\n * Callback used for clearRefinement method\n * @callback SearchParameters.clearCallback\n * @param {OperatorList|FacetList} value the value of the filter\n * @param {string} key the current attribute name\n * @param {string} type `numeric`, `disjunctiveFacet`, `conjunctiveFacet`, `hierarchicalFacet` or `exclude`\n * depending on the type of facet\n * @return {boolean} `true` if the element should be removed. `false` otherwise.\n */\nmodule.exports = SearchParameters;\n","'use strict';\n\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined;\n var valIsNull = value === null;\n\n var othIsDefined = other !== undefined;\n var othIsNull = other === null;\n\n if (\n (!othIsNull && value > other) ||\n (valIsNull && othIsDefined) ||\n !valIsDefined\n ) {\n return 1;\n }\n if (\n (!valIsNull && value < other) ||\n (othIsNull && valIsDefined) ||\n !othIsDefined\n ) {\n return -1;\n }\n }\n return 0;\n}\n\n/**\n * @param {Array} collection object with keys in attributes\n * @param {Array} iteratees attributes\n * @param {Array} orders asc | desc\n */\nfunction orderBy(collection, iteratees, orders) {\n if (!Array.isArray(collection)) {\n return [];\n }\n\n if (!Array.isArray(orders)) {\n orders = [];\n }\n\n var result = collection.map(function(value, index) {\n return {\n criteria: iteratees.map(function(iteratee) {\n return value[iteratee];\n }),\n index: index,\n value: value\n };\n });\n\n result.sort(function comparer(object, other) {\n var index = -1;\n\n while (++index < object.criteria.length) {\n var res = compareAscending(object.criteria[index], other.criteria[index]);\n if (res) {\n if (index >= orders.length) {\n return res;\n }\n if (orders[index] === 'desc') {\n return -res;\n }\n return res;\n }\n }\n\n // This 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\n return result.map(function(res) {\n return res.value;\n });\n}\n\nmodule.exports = orderBy;\n","'use strict';\n\nmodule.exports = function compact(array) {\n if (!Array.isArray(array)) {\n return [];\n }\n\n return array.filter(Boolean);\n};\n","'use strict';\n\n// @MAJOR can be replaced by native Array#findIndex when we change support\nmodule.exports = function find(array, comparator) {\n if (!Array.isArray(array)) {\n return -1;\n }\n\n for (var i = 0; i < array.length; i++) {\n if (comparator(array[i])) {\n return i;\n }\n }\n return -1;\n};\n","'use strict';\n\nvar find = require('./find');\n\n/**\n * Transform sort format from user friendly notation to lodash format\n * @param {string[]} sortBy array of predicate of the form \"attribute:order\"\n * @param {string[]} [defaults] array of predicate of the form \"attribute:order\"\n * @return {array.} array containing 2 elements : attributes, orders\n */\nmodule.exports = function formatSort(sortBy, defaults) {\n var defaultInstructions = (defaults || []).map(function(sort) {\n return sort.split(':');\n });\n\n return sortBy.reduce(\n function preparePredicate(out, sort) {\n var sortInstruction = sort.split(':');\n\n var matchingDefault = find(defaultInstructions, function(\n defaultInstruction\n ) {\n return defaultInstruction[0] === sortInstruction[0];\n });\n\n if (sortInstruction.length > 1 || !matchingDefault) {\n out[0].push(sortInstruction[0]);\n out[1].push(sortInstruction[1]);\n return out;\n }\n\n out[0].push(matchingDefault[0]);\n out[1].push(matchingDefault[1]);\n return out;\n },\n [[], []]\n );\n};\n","'use strict';\n\n/**\n * Replaces a leading - with \\-\n * @private\n * @param {any} value the facet value to replace\n * @returns any\n */\nfunction escapeFacetValue(value) {\n if (typeof value !== 'string') return value;\n\n return String(value).replace(/^-/, '\\\\-');\n}\n\n/**\n * Replaces a leading \\- with -\n * @private\n * @param {any} value the escaped facet value\n * @returns any\n */\nfunction unescapeFacetValue(value) {\n if (typeof value !== 'string') return value;\n\n return value.replace(/^\\\\-/, '-');\n}\n\nmodule.exports = {\n escapeFacetValue: escapeFacetValue,\n unescapeFacetValue: unescapeFacetValue\n};\n","'use strict';\n\nmodule.exports = generateTrees;\n\nvar orderBy = require('../functions/orderBy');\nvar find = require('../functions/find');\nvar prepareHierarchicalFacetSortBy = require('../functions/formatSort');\nvar fv = require('../functions/escapeFacetValue');\nvar escapeFacetValue = fv.escapeFacetValue;\nvar unescapeFacetValue = fv.unescapeFacetValue;\n\nfunction generateTrees(state) {\n return function generate(hierarchicalFacetResult, hierarchicalFacetIndex) {\n var hierarchicalFacet = state.hierarchicalFacets[hierarchicalFacetIndex];\n var hierarchicalFacetRefinement =\n (state.hierarchicalFacetsRefinements[hierarchicalFacet.name] &&\n state.hierarchicalFacetsRefinements[hierarchicalFacet.name][0]) ||\n '';\n var hierarchicalSeparator = state._getHierarchicalFacetSeparator(\n hierarchicalFacet\n );\n var hierarchicalRootPath = state._getHierarchicalRootPath(\n hierarchicalFacet\n );\n var hierarchicalShowParentLevel = state._getHierarchicalShowParentLevel(\n hierarchicalFacet\n );\n var sortBy = prepareHierarchicalFacetSortBy(\n state._getHierarchicalFacetSortBy(hierarchicalFacet)\n );\n\n var rootExhaustive = hierarchicalFacetResult.every(function(facetResult) {\n return facetResult.exhaustive;\n });\n\n var generateTreeFn = generateHierarchicalTree(\n sortBy,\n hierarchicalSeparator,\n hierarchicalRootPath,\n hierarchicalShowParentLevel,\n hierarchicalFacetRefinement\n );\n\n var results = hierarchicalFacetResult;\n\n if (hierarchicalRootPath) {\n results = hierarchicalFacetResult.slice(\n hierarchicalRootPath.split(hierarchicalSeparator).length\n );\n }\n\n return results.reduce(generateTreeFn, {\n name: state.hierarchicalFacets[hierarchicalFacetIndex].name,\n count: null, // root level, no count\n isRefined: true, // root level, always refined\n path: null, // root level, no path\n escapedValue: null,\n exhaustive: rootExhaustive,\n data: null\n });\n };\n}\n\nfunction generateHierarchicalTree(\n sortBy,\n hierarchicalSeparator,\n hierarchicalRootPath,\n hierarchicalShowParentLevel,\n currentRefinement\n) {\n return function generateTree(\n hierarchicalTree,\n hierarchicalFacetResult,\n currentHierarchicalLevel\n ) {\n var parent = hierarchicalTree;\n\n if (currentHierarchicalLevel > 0) {\n var level = 0;\n\n parent = hierarchicalTree;\n\n while (level < currentHierarchicalLevel) {\n /**\n * @type {object[]]} hierarchical data\n */\n var data = parent && Array.isArray(parent.data) ? parent.data : [];\n parent = find(data, function(subtree) {\n return subtree.isRefined;\n });\n level++;\n }\n }\n\n // we found a refined parent, let's add current level data under it\n if (parent) {\n // filter values in case an object has multiple categories:\n // {\n // categories: {\n // level0: ['beers', 'bières'],\n // level1: ['beers > IPA', 'bières > Belges']\n // }\n // }\n //\n // If parent refinement is `beers`, then we do not want to have `bières > Belges`\n // showing up\n\n var picked = Object.keys(hierarchicalFacetResult.data)\n .map(function(facetValue) {\n return [facetValue, hierarchicalFacetResult.data[facetValue]];\n })\n .filter(function(tuple) {\n var facetValue = tuple[0];\n return onlyMatchingTree(\n facetValue,\n parent.path || hierarchicalRootPath,\n currentRefinement,\n hierarchicalSeparator,\n hierarchicalRootPath,\n hierarchicalShowParentLevel\n );\n });\n\n parent.data = orderBy(\n picked.map(function(tuple) {\n var facetValue = tuple[0];\n var facetCount = tuple[1];\n\n return format(\n facetCount,\n facetValue,\n hierarchicalSeparator,\n unescapeFacetValue(currentRefinement),\n hierarchicalFacetResult.exhaustive\n );\n }),\n sortBy[0],\n sortBy[1]\n );\n }\n\n return hierarchicalTree;\n };\n}\n\nfunction onlyMatchingTree(\n facetValue,\n parentPath,\n currentRefinement,\n hierarchicalSeparator,\n hierarchicalRootPath,\n hierarchicalShowParentLevel\n) {\n // we want the facetValue is a child of hierarchicalRootPath\n if (\n hierarchicalRootPath &&\n (facetValue.indexOf(hierarchicalRootPath) !== 0 ||\n hierarchicalRootPath === facetValue)\n ) {\n return false;\n }\n\n // we always want root levels (only when there is no prefix path)\n return (\n (!hierarchicalRootPath &&\n facetValue.indexOf(hierarchicalSeparator) === -1) ||\n // if there is a rootPath, being root level mean 1 level under rootPath\n (hierarchicalRootPath &&\n facetValue.split(hierarchicalSeparator).length -\n hierarchicalRootPath.split(hierarchicalSeparator).length ===\n 1) ||\n // if current refinement is a root level and current facetValue is a root level,\n // keep the facetValue\n (facetValue.indexOf(hierarchicalSeparator) === -1 &&\n currentRefinement.indexOf(hierarchicalSeparator) === -1) ||\n // currentRefinement is a child of the facet value\n currentRefinement.indexOf(facetValue) === 0 ||\n // facetValue is a child of the current parent, add it\n (facetValue.indexOf(parentPath + hierarchicalSeparator) === 0 &&\n (hierarchicalShowParentLevel ||\n facetValue.indexOf(currentRefinement) === 0))\n );\n}\n\nfunction format(\n facetCount,\n facetValue,\n hierarchicalSeparator,\n currentRefinement,\n exhaustive\n) {\n var parts = facetValue.split(hierarchicalSeparator);\n return {\n name: parts[parts.length - 1].trim(),\n path: facetValue,\n escapedValue: escapeFacetValue(facetValue),\n count: facetCount,\n isRefined:\n currentRefinement === facetValue ||\n currentRefinement.indexOf(facetValue + hierarchicalSeparator) === 0,\n exhaustive: exhaustive,\n data: null\n };\n}\n","'use strict';\n\nvar merge = require('../functions/merge');\nvar defaultsPure = require('../functions/defaultsPure');\nvar orderBy = require('../functions/orderBy');\nvar compact = require('../functions/compact');\nvar find = require('../functions/find');\nvar findIndex = require('../functions/findIndex');\nvar formatSort = require('../functions/formatSort');\nvar fv = require('../functions/escapeFacetValue');\nvar escapeFacetValue = fv.escapeFacetValue;\nvar unescapeFacetValue = fv.unescapeFacetValue;\n\nvar generateHierarchicalTree = require('./generate-hierarchical-tree');\n\n/**\n * @typedef SearchResults.Facet\n * @type {object}\n * @property {string} name name of the attribute in the record\n * @property {object} data the faceting data: value, number of entries\n * @property {object} stats undefined unless facet_stats is retrieved from algolia\n */\n\n/**\n * @typedef SearchResults.HierarchicalFacet\n * @type {object}\n * @property {string} name name of the current value given the hierarchical level, trimmed.\n * If root node, you get the facet name\n * @property {number} count number of objects matching this hierarchical value\n * @property {string} path the current hierarchical value full path\n * @property {boolean} isRefined `true` if the current value was refined, `false` otherwise\n * @property {HierarchicalFacet[]} data sub values for the current level\n */\n\n/**\n * @typedef SearchResults.FacetValue\n * @type {object}\n * @property {string} name the facet value itself\n * @property {number} count times this facet appears in the results\n * @property {boolean} isRefined is the facet currently selected\n * @property {boolean} isExcluded is the facet currently excluded (only for conjunctive facets)\n */\n\n/**\n * @typedef Refinement\n * @type {object}\n * @property {string} type the type of filter used:\n * `numeric`, `facet`, `exclude`, `disjunctive`, `hierarchical`\n * @property {string} attributeName name of the attribute used for filtering\n * @property {string} name the value of the filter\n * @property {number} numericValue the value as a number. Only for numeric filters.\n * @property {string} operator the operator used. Only for numeric filters.\n * @property {number} count the number of computed hits for this filter. Only on facets.\n * @property {boolean} exhaustive if the count is exhaustive\n */\n\n/**\n * @param {string[]} attributes\n */\nfunction getIndices(attributes) {\n var indices = {};\n\n attributes.forEach(function(val, idx) {\n indices[val] = idx;\n });\n\n return indices;\n}\n\nfunction assignFacetStats(dest, facetStats, key) {\n if (facetStats && facetStats[key]) {\n dest.stats = facetStats[key];\n }\n}\n\n/**\n * @typedef {Object} HierarchicalFacet\n * @property {string} name\n * @property {string[]} attributes\n */\n\n/**\n * @param {HierarchicalFacet[]} hierarchicalFacets\n * @param {string} hierarchicalAttributeName\n */\nfunction findMatchingHierarchicalFacetFromAttributeName(\n hierarchicalFacets,\n hierarchicalAttributeName\n) {\n return find(hierarchicalFacets, function facetKeyMatchesAttribute(\n hierarchicalFacet\n ) {\n var facetNames = hierarchicalFacet.attributes || [];\n return facetNames.indexOf(hierarchicalAttributeName) > -1;\n });\n}\n\n/*eslint-disable */\n/**\n * Constructor for SearchResults\n * @class\n * @classdesc SearchResults contains the results of a query to Algolia using the\n * {@link AlgoliaSearchHelper}.\n * @param {SearchParameters} state state that led to the response\n * @param {array.} results the results from algolia client\n * @example SearchResults of the first query in\n * the instant search demo\n{\n \"hitsPerPage\": 10,\n \"processingTimeMS\": 2,\n \"facets\": [\n {\n \"name\": \"type\",\n \"data\": {\n \"HardGood\": 6627,\n \"BlackTie\": 550,\n \"Music\": 665,\n \"Software\": 131,\n \"Game\": 456,\n \"Movie\": 1571\n },\n \"exhaustive\": false\n },\n {\n \"exhaustive\": false,\n \"data\": {\n \"Free shipping\": 5507\n },\n \"name\": \"shipping\"\n }\n ],\n \"hits\": [\n {\n \"thumbnailImage\": \"http://img.bbystatic.com/BestBuy_US/images/products/1688/1688832_54x108_s.gif\",\n \"_highlightResult\": {\n \"shortDescription\": {\n \"matchLevel\": \"none\",\n \"value\": \"Safeguard your PC, Mac, Android and iOS devices with comprehensive Internet protection\",\n \"matchedWords\": []\n },\n \"category\": {\n \"matchLevel\": \"none\",\n \"value\": \"Computer Security Software\",\n \"matchedWords\": []\n },\n \"manufacturer\": {\n \"matchedWords\": [],\n \"value\": \"Webroot\",\n \"matchLevel\": \"none\"\n },\n \"name\": {\n \"value\": \"Webroot SecureAnywhere Internet Security (3-Device) (1-Year Subscription) - Mac/Windows\",\n \"matchedWords\": [],\n \"matchLevel\": \"none\"\n }\n },\n \"image\": \"http://img.bbystatic.com/BestBuy_US/images/products/1688/1688832_105x210_sc.jpg\",\n \"shipping\": \"Free shipping\",\n \"bestSellingRank\": 4,\n \"shortDescription\": \"Safeguard your PC, Mac, Android and iOS devices with comprehensive Internet protection\",\n \"url\": \"http://www.bestbuy.com/site/webroot-secureanywhere-internet-security-3-devi…d=1219060687969&skuId=1688832&cmp=RMX&ky=2d3GfEmNIzjA0vkzveHdZEBgpPCyMnLTJ\",\n \"name\": \"Webroot SecureAnywhere Internet Security (3-Device) (1-Year Subscription) - Mac/Windows\",\n \"category\": \"Computer Security Software\",\n \"salePrice_range\": \"1 - 50\",\n \"objectID\": \"1688832\",\n \"type\": \"Software\",\n \"customerReviewCount\": 5980,\n \"salePrice\": 49.99,\n \"manufacturer\": \"Webroot\"\n },\n ....\n ],\n \"nbHits\": 10000,\n \"disjunctiveFacets\": [\n {\n \"exhaustive\": false,\n \"data\": {\n \"5\": 183,\n \"12\": 112,\n \"7\": 149,\n ...\n },\n \"name\": \"customerReviewCount\",\n \"stats\": {\n \"max\": 7461,\n \"avg\": 157.939,\n \"min\": 1\n }\n },\n {\n \"data\": {\n \"Printer Ink\": 142,\n \"Wireless Speakers\": 60,\n \"Point & Shoot Cameras\": 48,\n ...\n },\n \"name\": \"category\",\n \"exhaustive\": false\n },\n {\n \"exhaustive\": false,\n \"data\": {\n \"> 5000\": 2,\n \"1 - 50\": 6524,\n \"501 - 2000\": 566,\n \"201 - 500\": 1501,\n \"101 - 200\": 1360,\n \"2001 - 5000\": 47\n },\n \"name\": \"salePrice_range\"\n },\n {\n \"data\": {\n \"Dynex™\": 202,\n \"Insignia™\": 230,\n \"PNY\": 72,\n ...\n },\n \"name\": \"manufacturer\",\n \"exhaustive\": false\n }\n ],\n \"query\": \"\",\n \"nbPages\": 100,\n \"page\": 0,\n \"index\": \"bestbuy\"\n}\n **/\n/*eslint-enable */\nfunction SearchResults(state, results, options) {\n var mainSubResponse = results[0];\n\n this._rawResults = results;\n\n var self = this;\n\n // https://www.algolia.com/doc/api-reference/api-methods/search/#response\n Object.keys(mainSubResponse).forEach(function(key) {\n self[key] = mainSubResponse[key];\n });\n\n // Make every key of the result options reachable from the instance\n Object.keys(options || {}).forEach(function(key) {\n self[key] = options[key];\n });\n\n /**\n * query used to generate the results\n * @name query\n * @member {string}\n * @memberof SearchResults\n * @instance\n */\n /**\n * The query as parsed by the engine given all the rules.\n * @name parsedQuery\n * @member {string}\n * @memberof SearchResults\n * @instance\n */\n /**\n * all the records that match the search parameters. Each record is\n * augmented with a new attribute `_highlightResult`\n * which is an object keyed by attribute and with the following properties:\n * - `value` : the value of the facet highlighted (html)\n * - `matchLevel`: full, partial or none depending on how the query terms match\n * @name hits\n * @member {object[]}\n * @memberof SearchResults\n * @instance\n */\n /**\n * index where the results come from\n * @name index\n * @member {string}\n * @memberof SearchResults\n * @instance\n */\n /**\n * number of hits per page requested\n * @name hitsPerPage\n * @member {number}\n * @memberof SearchResults\n * @instance\n */\n /**\n * total number of hits of this query on the index\n * @name nbHits\n * @member {number}\n * @memberof SearchResults\n * @instance\n */\n /**\n * total number of pages with respect to the number of hits per page and the total number of hits\n * @name nbPages\n * @member {number}\n * @memberof SearchResults\n * @instance\n */\n /**\n * current page\n * @name page\n * @member {number}\n * @memberof SearchResults\n * @instance\n */\n /**\n * The position if the position was guessed by IP.\n * @name aroundLatLng\n * @member {string}\n * @memberof SearchResults\n * @instance\n * @example \"48.8637,2.3615\",\n */\n /**\n * The radius computed by Algolia.\n * @name automaticRadius\n * @member {string}\n * @memberof SearchResults\n * @instance\n * @example \"126792922\",\n */\n /**\n * String identifying the server used to serve this request.\n *\n * getRankingInfo needs to be set to `true` for this to be returned\n *\n * @name serverUsed\n * @member {string}\n * @memberof SearchResults\n * @instance\n * @example \"c7-use-2.algolia.net\",\n */\n /**\n * Boolean that indicates if the computation of the counts did time out.\n * @deprecated\n * @name timeoutCounts\n * @member {boolean}\n * @memberof SearchResults\n * @instance\n */\n /**\n * Boolean that indicates if the computation of the hits did time out.\n * @deprecated\n * @name timeoutHits\n * @member {boolean}\n * @memberof SearchResults\n * @instance\n */\n /**\n * True if the counts of the facets is exhaustive\n * @name exhaustiveFacetsCount\n * @member {boolean}\n * @memberof SearchResults\n * @instance\n */\n /**\n * True if the number of hits is exhaustive\n * @name exhaustiveNbHits\n * @member {boolean}\n * @memberof SearchResults\n * @instance\n */\n /**\n * Contains the userData if they are set by a [query rule](https://www.algolia.com/doc/guides/query-rules/query-rules-overview/).\n * @name userData\n * @member {object[]}\n * @memberof SearchResults\n * @instance\n */\n /**\n * queryID is the unique identifier of the query used to generate the current search results.\n * This value is only available if the `clickAnalytics` search parameter is set to `true`.\n * @name queryID\n * @member {string}\n * @memberof SearchResults\n * @instance\n */\n\n /**\n * sum of the processing time of all the queries\n * @member {number}\n */\n this.processingTimeMS = results.reduce(function(sum, result) {\n return result.processingTimeMS === undefined\n ? sum\n : sum + result.processingTimeMS;\n }, 0);\n\n /**\n * disjunctive facets results\n * @member {SearchResults.Facet[]}\n */\n this.disjunctiveFacets = [];\n /**\n * disjunctive facets results\n * @member {SearchResults.HierarchicalFacet[]}\n */\n this.hierarchicalFacets = state.hierarchicalFacets.map(function initFutureTree() {\n return [];\n });\n /**\n * other facets results\n * @member {SearchResults.Facet[]}\n */\n this.facets = [];\n\n var disjunctiveFacets = state.getRefinedDisjunctiveFacets();\n\n var facetsIndices = getIndices(state.facets);\n var disjunctiveFacetsIndices = getIndices(state.disjunctiveFacets);\n var nextDisjunctiveResult = 1;\n\n // Since we send request only for disjunctive facets that have been refined,\n // we get the facets information from the first, general, response.\n\n var mainFacets = mainSubResponse.facets || {};\n\n Object.keys(mainFacets).forEach(function(facetKey) {\n var facetValueObject = mainFacets[facetKey];\n\n var hierarchicalFacet = findMatchingHierarchicalFacetFromAttributeName(\n state.hierarchicalFacets,\n facetKey\n );\n\n if (hierarchicalFacet) {\n // Place the hierarchicalFacet data at the correct index depending on\n // the attributes order that was defined at the helper initialization\n var facetIndex = hierarchicalFacet.attributes.indexOf(facetKey);\n var idxAttributeName = findIndex(state.hierarchicalFacets, function(f) {\n return f.name === hierarchicalFacet.name;\n });\n self.hierarchicalFacets[idxAttributeName][facetIndex] = {\n attribute: facetKey,\n data: facetValueObject,\n exhaustive: mainSubResponse.exhaustiveFacetsCount\n };\n } else {\n var isFacetDisjunctive = state.disjunctiveFacets.indexOf(facetKey) !== -1;\n var isFacetConjunctive = state.facets.indexOf(facetKey) !== -1;\n var position;\n\n if (isFacetDisjunctive) {\n position = disjunctiveFacetsIndices[facetKey];\n self.disjunctiveFacets[position] = {\n name: facetKey,\n data: facetValueObject,\n exhaustive: mainSubResponse.exhaustiveFacetsCount\n };\n assignFacetStats(self.disjunctiveFacets[position], mainSubResponse.facets_stats, facetKey);\n }\n if (isFacetConjunctive) {\n position = facetsIndices[facetKey];\n self.facets[position] = {\n name: facetKey,\n data: facetValueObject,\n exhaustive: mainSubResponse.exhaustiveFacetsCount\n };\n assignFacetStats(self.facets[position], mainSubResponse.facets_stats, facetKey);\n }\n }\n });\n\n // Make sure we do not keep holes within the hierarchical facets\n this.hierarchicalFacets = compact(this.hierarchicalFacets);\n\n // aggregate the refined disjunctive facets\n disjunctiveFacets.forEach(function(disjunctiveFacet) {\n var result = results[nextDisjunctiveResult];\n var facets = result && result.facets ? result.facets : {};\n var hierarchicalFacet = state.getHierarchicalFacetByName(disjunctiveFacet);\n\n // There should be only item in facets.\n Object.keys(facets).forEach(function(dfacet) {\n var facetResults = facets[dfacet];\n\n var position;\n\n if (hierarchicalFacet) {\n position = findIndex(state.hierarchicalFacets, function(f) {\n return f.name === hierarchicalFacet.name;\n });\n var attributeIndex = findIndex(self.hierarchicalFacets[position], function(f) {\n return f.attribute === dfacet;\n });\n\n // previous refinements and no results so not able to find it\n if (attributeIndex === -1) {\n return;\n }\n\n self.hierarchicalFacets[position][attributeIndex].data = merge(\n {},\n self.hierarchicalFacets[position][attributeIndex].data,\n facetResults\n );\n } else {\n position = disjunctiveFacetsIndices[dfacet];\n\n var dataFromMainRequest = mainSubResponse.facets && mainSubResponse.facets[dfacet] || {};\n\n self.disjunctiveFacets[position] = {\n name: dfacet,\n data: defaultsPure({}, facetResults, dataFromMainRequest),\n exhaustive: result.exhaustiveFacetsCount\n };\n assignFacetStats(self.disjunctiveFacets[position], result.facets_stats, dfacet);\n\n if (state.disjunctiveFacetsRefinements[dfacet]) {\n state.disjunctiveFacetsRefinements[dfacet].forEach(function(refinementValue) {\n // add the disjunctive refinements if it is no more retrieved\n if (!self.disjunctiveFacets[position].data[refinementValue] &&\n state.disjunctiveFacetsRefinements[dfacet].indexOf(unescapeFacetValue(refinementValue)) > -1) {\n self.disjunctiveFacets[position].data[refinementValue] = 0;\n }\n });\n }\n }\n });\n nextDisjunctiveResult++;\n });\n\n // if we have some parent level values for hierarchical facets, merge them\n state.getRefinedHierarchicalFacets().forEach(function(refinedFacet) {\n var hierarchicalFacet = state.getHierarchicalFacetByName(refinedFacet);\n var separator = state._getHierarchicalFacetSeparator(hierarchicalFacet);\n\n var currentRefinement = state.getHierarchicalRefinement(refinedFacet);\n // if we are already at a root refinement (or no refinement at all), there is no\n // root level values request\n if (currentRefinement.length === 0 || currentRefinement[0].split(separator).length < 2) {\n return;\n }\n\n results.slice(nextDisjunctiveResult).forEach(function(result) {\n var facets = result && result.facets\n ? result.facets\n : {};\n\n Object.keys(facets).forEach(function(dfacet) {\n var facetResults = facets[dfacet];\n var position = findIndex(state.hierarchicalFacets, function(f) {\n return f.name === hierarchicalFacet.name;\n });\n var attributeIndex = findIndex(self.hierarchicalFacets[position], function(f) {\n return f.attribute === dfacet;\n });\n\n // previous refinements and no results so not able to find it\n if (attributeIndex === -1) {\n return;\n }\n\n // when we always get root levels, if the hits refinement is `beers > IPA` (count: 5),\n // then the disjunctive values will be `beers` (count: 100),\n // but we do not want to display\n // | beers (100)\n // > IPA (5)\n // We want\n // | beers (5)\n // > IPA (5)\n var defaultData = {};\n\n if (currentRefinement.length > 0) {\n var root = currentRefinement[0].split(separator)[0];\n defaultData[root] = self.hierarchicalFacets[position][attributeIndex].data[root];\n }\n\n self.hierarchicalFacets[position][attributeIndex].data = defaultsPure(\n defaultData,\n facetResults,\n self.hierarchicalFacets[position][attributeIndex].data\n );\n });\n\n nextDisjunctiveResult++;\n });\n });\n\n // add the excludes\n Object.keys(state.facetsExcludes).forEach(function(facetName) {\n var excludes = state.facetsExcludes[facetName];\n var position = facetsIndices[facetName];\n\n self.facets[position] = {\n name: facetName,\n data: mainSubResponse.facets[facetName],\n exhaustive: mainSubResponse.exhaustiveFacetsCount\n };\n excludes.forEach(function(facetValue) {\n self.facets[position] = self.facets[position] || {name: facetName};\n self.facets[position].data = self.facets[position].data || {};\n self.facets[position].data[facetValue] = 0;\n });\n });\n\n /**\n * @type {Array}\n */\n this.hierarchicalFacets = this.hierarchicalFacets.map(generateHierarchicalTree(state));\n\n /**\n * @type {Array}\n */\n this.facets = compact(this.facets);\n /**\n * @type {Array}\n */\n this.disjunctiveFacets = compact(this.disjunctiveFacets);\n\n this._state = state;\n}\n\n/**\n * Get a facet object with its name\n * @deprecated\n * @param {string} name name of the faceted attribute\n * @return {SearchResults.Facet} the facet object\n */\nSearchResults.prototype.getFacetByName = function(name) {\n function predicate(facet) {\n return facet.name === name;\n }\n\n return find(this.facets, predicate) ||\n find(this.disjunctiveFacets, predicate) ||\n find(this.hierarchicalFacets, predicate);\n};\n\n/**\n * Get the facet values of a specified attribute from a SearchResults object.\n * @private\n * @param {SearchResults} results the search results to search in\n * @param {string} attribute name of the faceted attribute to search for\n * @return {array|object} facet values. For the hierarchical facets it is an object.\n */\nfunction extractNormalizedFacetValues(results, attribute) {\n function predicate(facet) {\n return facet.name === attribute;\n }\n\n if (results._state.isConjunctiveFacet(attribute)) {\n var facet = find(results.facets, predicate);\n if (!facet) return [];\n\n return Object.keys(facet.data).map(function(name) {\n var value = escapeFacetValue(name);\n return {\n name: name,\n escapedValue: value,\n count: facet.data[name],\n isRefined: results._state.isFacetRefined(attribute, value),\n isExcluded: results._state.isExcludeRefined(attribute, name)\n };\n });\n } else if (results._state.isDisjunctiveFacet(attribute)) {\n var disjunctiveFacet = find(results.disjunctiveFacets, predicate);\n if (!disjunctiveFacet) return [];\n\n return Object.keys(disjunctiveFacet.data).map(function(name) {\n var value = escapeFacetValue(name);\n return {\n name: name,\n escapedValue: value,\n count: disjunctiveFacet.data[name],\n isRefined: results._state.isDisjunctiveFacetRefined(attribute, value)\n };\n });\n } else if (results._state.isHierarchicalFacet(attribute)) {\n return find(results.hierarchicalFacets, predicate);\n }\n}\n\n/**\n * Sort nodes of a hierarchical or disjunctive facet results\n * @private\n * @param {function} sortFn\n * @param {HierarchicalFacet|Array} node node upon which we want to apply the sort\n * @param {string[]} names attribute names\n * @param {number} [level=0] current index in the names array\n */\nfunction recSort(sortFn, node, names, level) {\n level = level || 0;\n\n if (Array.isArray(node)) {\n return sortFn(node, names[level]);\n }\n\n if (!node.data || node.data.length === 0) {\n return node;\n }\n\n var children = node.data.map(function(childNode) {\n return recSort(sortFn, childNode, names, level + 1);\n });\n var sortedChildren = sortFn(children, names[level]);\n var newNode = defaultsPure({data: sortedChildren}, node);\n return newNode;\n}\n\nSearchResults.DEFAULT_SORT = ['isRefined:desc', 'count:desc', 'name:asc'];\n\nfunction vanillaSortFn(order, data) {\n return data.sort(order);\n}\n\n/**\n * @typedef FacetOrdering\n * @type {Object}\n * @property {string[]} [order]\n * @property {'count' | 'alpha' | 'hidden'} [sortRemainingBy]\n */\n\n/**\n * Sorts facet arrays via their facet ordering\n * @param {Array} facetValues the values\n * @param {FacetOrdering} facetOrdering the ordering\n * @returns {Array}\n */\nfunction sortViaFacetOrdering(facetValues, facetOrdering) {\n var orderedFacets = [];\n var remainingFacets = [];\n\n var order = facetOrdering.order || [];\n /**\n * an object with the keys being the values in order, the values their index:\n * ['one', 'two'] -> { one: 0, two: 1 }\n */\n var reverseOrder = order.reduce(function(acc, name, i) {\n acc[name] = i;\n return acc;\n }, {});\n\n facetValues.forEach(function(item) {\n // hierarchical facets get sorted using their raw name\n var name = item.path || item.name;\n if (reverseOrder[name] !== undefined) {\n orderedFacets[reverseOrder[name]] = item;\n } else {\n remainingFacets.push(item);\n }\n });\n\n orderedFacets = orderedFacets.filter(function(facet) {\n return facet;\n });\n\n var sortRemainingBy = facetOrdering.sortRemainingBy;\n var ordering;\n if (sortRemainingBy === 'hidden') {\n return orderedFacets;\n } else if (sortRemainingBy === 'alpha') {\n ordering = [['path', 'name'], ['asc', 'asc']];\n } else {\n ordering = [['count'], ['desc']];\n }\n\n return orderedFacets.concat(\n orderBy(remainingFacets, ordering[0], ordering[1])\n );\n}\n\n/**\n * @param {SearchResults} results the search results class\n * @param {string} attribute the attribute to retrieve ordering of\n * @returns {FacetOrdering=}\n */\nfunction getFacetOrdering(results, attribute) {\n return (\n results.renderingContent &&\n results.renderingContent.facetOrdering &&\n results.renderingContent.facetOrdering.values &&\n results.renderingContent.facetOrdering.values[attribute]\n );\n}\n\n/**\n * Get a the list of values for a given facet attribute. Those values are sorted\n * refinement first, descending count (bigger value on top), and name ascending\n * (alphabetical order). The sort formula can overridden using either string based\n * predicates or a function.\n *\n * This method will return all the values returned by the Algolia engine plus all\n * the values already refined. This means that it can happen that the\n * `maxValuesPerFacet` [configuration](https://www.algolia.com/doc/rest-api/search#param-maxValuesPerFacet)\n * might not be respected if you have facet values that are already refined.\n * @param {string} attribute attribute name\n * @param {object} opts configuration options.\n * @param {boolean} [opts.facetOrdering]\n * Force the use of facetOrdering from the result if a sortBy is present. If\n * sortBy isn't present, facetOrdering will be used automatically.\n * @param {Array. | function} opts.sortBy\n * When using strings, it consists of\n * the name of the [FacetValue](#SearchResults.FacetValue) or the\n * [HierarchicalFacet](#SearchResults.HierarchicalFacet) attributes with the\n * order (`asc` or `desc`). For example to order the value by count, the\n * argument would be `['count:asc']`.\n *\n * If only the attribute name is specified, the ordering defaults to the one\n * specified in the default value for this attribute.\n *\n * When not specified, the order is\n * ascending. This parameter can also be a function which takes two facet\n * values and should return a number, 0 if equal, 1 if the first argument is\n * bigger or -1 otherwise.\n *\n * The default value for this attribute `['isRefined:desc', 'count:desc', 'name:asc']`\n * @return {FacetValue[]|HierarchicalFacet|undefined} depending on the type of facet of\n * the attribute requested (hierarchical, disjunctive or conjunctive)\n * @example\n * helper.on('result', function(event){\n * //get values ordered only by name ascending using the string predicate\n * event.results.getFacetValues('city', {sortBy: ['name:asc']});\n * //get values ordered only by count ascending using a function\n * event.results.getFacetValues('city', {\n * // this is equivalent to ['count:asc']\n * sortBy: function(a, b) {\n * if (a.count === b.count) return 0;\n * if (a.count > b.count) return 1;\n * if (b.count > a.count) return -1;\n * }\n * });\n * });\n */\nSearchResults.prototype.getFacetValues = function(attribute, opts) {\n var facetValues = extractNormalizedFacetValues(this, attribute);\n if (!facetValues) {\n return undefined;\n }\n\n var options = defaultsPure({}, opts, {\n sortBy: SearchResults.DEFAULT_SORT,\n // if no sortBy is given, attempt to sort based on facetOrdering\n // if it is given, we still allow to sort via facet ordering first\n facetOrdering: !(opts && opts.sortBy)\n });\n\n var results = this;\n var attributes;\n if (Array.isArray(facetValues)) {\n attributes = [attribute];\n } else {\n var config = results._state.getHierarchicalFacetByName(facetValues.name);\n attributes = config.attributes;\n }\n\n return recSort(function(data, facetName) {\n if (options.facetOrdering) {\n var facetOrdering = getFacetOrdering(results, facetName);\n if (Boolean(facetOrdering)) {\n return sortViaFacetOrdering(data, facetOrdering);\n }\n }\n\n if (Array.isArray(options.sortBy)) {\n var order = formatSort(options.sortBy, SearchResults.DEFAULT_SORT);\n return orderBy(data, order[0], order[1]);\n } else if (typeof options.sortBy === 'function') {\n return vanillaSortFn(options.sortBy, data);\n }\n throw new Error(\n 'options.sortBy is optional but if defined it must be ' +\n 'either an array of string (predicates) or a sorting function'\n );\n }, facetValues, attributes);\n};\n\n/**\n * Returns the facet stats if attribute is defined and the facet contains some.\n * Otherwise returns undefined.\n * @param {string} attribute name of the faceted attribute\n * @return {object} The stats of the facet\n */\nSearchResults.prototype.getFacetStats = function(attribute) {\n if (this._state.isConjunctiveFacet(attribute)) {\n return getFacetStatsIfAvailable(this.facets, attribute);\n } else if (this._state.isDisjunctiveFacet(attribute)) {\n return getFacetStatsIfAvailable(this.disjunctiveFacets, attribute);\n }\n\n return undefined;\n};\n\n/**\n * @typedef {Object} FacetListItem\n * @property {string} name\n */\n\n/**\n * @param {FacetListItem[]} facetList (has more items, but enough for here)\n * @param {string} facetName\n */\nfunction getFacetStatsIfAvailable(facetList, facetName) {\n var data = find(facetList, function(facet) {\n return facet.name === facetName;\n });\n return data && data.stats;\n}\n\n/**\n * Returns all refinements for all filters + tags. It also provides\n * additional information: count and exhaustiveness for each filter.\n *\n * See the [refinement type](#Refinement) for an exhaustive view of the available\n * data.\n *\n * Note that for a numeric refinement, results are grouped per operator, this\n * means that it will return responses for operators which are empty.\n *\n * @return {Array.} all the refinements\n */\nSearchResults.prototype.getRefinements = function() {\n var state = this._state;\n var results = this;\n var res = [];\n\n Object.keys(state.facetsRefinements).forEach(function(attributeName) {\n state.facetsRefinements[attributeName].forEach(function(name) {\n res.push(getRefinement(state, 'facet', attributeName, name, results.facets));\n });\n });\n\n Object.keys(state.facetsExcludes).forEach(function(attributeName) {\n state.facetsExcludes[attributeName].forEach(function(name) {\n res.push(getRefinement(state, 'exclude', attributeName, name, results.facets));\n });\n });\n\n Object.keys(state.disjunctiveFacetsRefinements).forEach(function(attributeName) {\n state.disjunctiveFacetsRefinements[attributeName].forEach(function(name) {\n res.push(getRefinement(state, 'disjunctive', attributeName, name, results.disjunctiveFacets));\n });\n });\n\n Object.keys(state.hierarchicalFacetsRefinements).forEach(function(attributeName) {\n state.hierarchicalFacetsRefinements[attributeName].forEach(function(name) {\n res.push(getHierarchicalRefinement(state, attributeName, name, results.hierarchicalFacets));\n });\n });\n\n\n Object.keys(state.numericRefinements).forEach(function(attributeName) {\n var operators = state.numericRefinements[attributeName];\n Object.keys(operators).forEach(function(operator) {\n operators[operator].forEach(function(value) {\n res.push({\n type: 'numeric',\n attributeName: attributeName,\n name: value,\n numericValue: value,\n operator: operator\n });\n });\n });\n });\n\n state.tagRefinements.forEach(function(name) {\n res.push({type: 'tag', attributeName: '_tags', name: name});\n });\n\n return res;\n};\n\n/**\n * @typedef {Object} Facet\n * @property {string} name\n * @property {Object} data\n * @property {boolean} exhaustive\n */\n\n/**\n * @param {*} state\n * @param {*} type\n * @param {string} attributeName\n * @param {*} name\n * @param {Facet[]} resultsFacets\n */\nfunction getRefinement(state, type, attributeName, name, resultsFacets) {\n var facet = find(resultsFacets, function(f) {\n return f.name === attributeName;\n });\n var count = facet && facet.data && facet.data[name] ? facet.data[name] : 0;\n var exhaustive = (facet && facet.exhaustive) || false;\n\n return {\n type: type,\n attributeName: attributeName,\n name: name,\n count: count,\n exhaustive: exhaustive\n };\n}\n\n/**\n * @param {*} state\n * @param {string} attributeName\n * @param {*} name\n * @param {Facet[]} resultsFacets\n */\nfunction getHierarchicalRefinement(state, attributeName, name, resultsFacets) {\n var facetDeclaration = state.getHierarchicalFacetByName(attributeName);\n var separator = state._getHierarchicalFacetSeparator(facetDeclaration);\n var split = name.split(separator);\n var rootFacet = find(resultsFacets, function(facet) {\n return facet.name === attributeName;\n });\n\n var facet = split.reduce(function(intermediateFacet, part) {\n var newFacet =\n intermediateFacet && find(intermediateFacet.data, function(f) {\n return f.name === part;\n });\n return newFacet !== undefined ? newFacet : intermediateFacet;\n }, rootFacet);\n\n var count = (facet && facet.count) || 0;\n var exhaustive = (facet && facet.exhaustive) || false;\n var path = (facet && facet.path) || '';\n\n return {\n type: 'hierarchical',\n attributeName: attributeName,\n name: path,\n count: count,\n exhaustive: exhaustive\n };\n}\n\nmodule.exports = SearchResults;\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\nfunction EventEmitter() {\n this._events = this._events || {};\n this._maxListeners = this._maxListeners || undefined;\n}\nmodule.exports = EventEmitter;\n\n// Backwards-compat with node 0.10.x\n// EventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\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.\nEventEmitter.defaultMaxListeners = 10;\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(n) {\n if (!isNumber(n) || n < 0 || isNaN(n))\n throw TypeError('n must be a positive number');\n this._maxListeners = n;\n return this;\n};\n\nEventEmitter.prototype.emit = function(type) {\n var er, handler, len, args, i, listeners;\n\n if (!this._events)\n this._events = {};\n\n // If there is no 'error' event listener then throw.\n if (type === 'error') {\n if (!this._events.error ||\n (isObject(this._events.error) && !this._events.error.length)) {\n er = arguments[1];\n if (er instanceof Error) {\n throw er; // Unhandled 'error' event\n } else {\n // At least give some kind of context to the user\n var err = new Error('Uncaught, unspecified \"error\" event. (' + er + ')');\n err.context = er;\n throw err;\n }\n }\n }\n\n handler = this._events[type];\n\n if (isUndefined(handler))\n return false;\n\n if (isFunction(handler)) {\n switch (arguments.length) {\n // fast cases\n case 1:\n handler.call(this);\n break;\n case 2:\n handler.call(this, arguments[1]);\n break;\n case 3:\n handler.call(this, arguments[1], arguments[2]);\n break;\n // slower\n default:\n args = Array.prototype.slice.call(arguments, 1);\n handler.apply(this, args);\n }\n } else if (isObject(handler)) {\n args = Array.prototype.slice.call(arguments, 1);\n listeners = handler.slice();\n len = listeners.length;\n for (i = 0; i < len; i++)\n listeners[i].apply(this, args);\n }\n\n return true;\n};\n\nEventEmitter.prototype.addListener = function(type, listener) {\n var m;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events)\n this._events = {};\n\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (this._events.newListener)\n this.emit('newListener', type,\n isFunction(listener.listener) ?\n listener.listener : listener);\n\n if (!this._events[type])\n // Optimize the case of one listener. Don't need the extra array object.\n this._events[type] = listener;\n else if (isObject(this._events[type]))\n // If we've already got an array, just append.\n this._events[type].push(listener);\n else\n // Adding the second element, need to change to array.\n this._events[type] = [this._events[type], listener];\n\n // Check for listener leak\n if (isObject(this._events[type]) && !this._events[type].warned) {\n if (!isUndefined(this._maxListeners)) {\n m = this._maxListeners;\n } else {\n m = EventEmitter.defaultMaxListeners;\n }\n\n if (m && m > 0 && this._events[type].length > m) {\n this._events[type].warned = true;\n console.error('(node) warning: possible EventEmitter memory ' +\n 'leak detected. %d listeners added. ' +\n 'Use emitter.setMaxListeners() to increase limit.',\n this._events[type].length);\n if (typeof console.trace === 'function') {\n // not supported in IE 10\n console.trace();\n }\n }\n }\n\n return this;\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.once = function(type, listener) {\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n var fired = false;\n\n function g() {\n this.removeListener(type, g);\n\n if (!fired) {\n fired = true;\n listener.apply(this, arguments);\n }\n }\n\n g.listener = listener;\n this.on(type, g);\n\n return this;\n};\n\n// emits a 'removeListener' event iff the listener was removed\nEventEmitter.prototype.removeListener = function(type, listener) {\n var list, position, length, i;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events || !this._events[type])\n return this;\n\n list = this._events[type];\n length = list.length;\n position = -1;\n\n if (list === listener ||\n (isFunction(list.listener) && list.listener === listener)) {\n delete this._events[type];\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n\n } else if (isObject(list)) {\n for (i = length; i-- > 0;) {\n if (list[i] === listener ||\n (list[i].listener && list[i].listener === listener)) {\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (list.length === 1) {\n list.length = 0;\n delete this._events[type];\n } else {\n list.splice(position, 1);\n }\n\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n }\n\n return this;\n};\n\nEventEmitter.prototype.removeAllListeners = function(type) {\n var key, listeners;\n\n if (!this._events)\n return this;\n\n // not listening for removeListener, no need to emit\n if (!this._events.removeListener) {\n if (arguments.length === 0)\n this._events = {};\n else if (this._events[type])\n delete this._events[type];\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n for (key in this._events) {\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = {};\n return this;\n }\n\n listeners = this._events[type];\n\n if (isFunction(listeners)) {\n this.removeListener(type, listeners);\n } else if (listeners) {\n // LIFO order\n while (listeners.length)\n this.removeListener(type, listeners[listeners.length - 1]);\n }\n delete this._events[type];\n\n return this;\n};\n\nEventEmitter.prototype.listeners = function(type) {\n var ret;\n if (!this._events || !this._events[type])\n ret = [];\n else if (isFunction(this._events[type]))\n ret = [this._events[type]];\n else\n ret = this._events[type].slice();\n return ret;\n};\n\nEventEmitter.prototype.listenerCount = function(type) {\n if (this._events) {\n var evlistener = this._events[type];\n\n if (isFunction(evlistener))\n return 1;\n else if (evlistener)\n return evlistener.length;\n }\n return 0;\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n return emitter.listenerCount(type);\n};\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\n","'use strict';\n\nfunction inherits(ctor, 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\nmodule.exports = inherits;\n","'use strict';\n\nvar EventEmitter = require('@algolia/events');\nvar inherits = require('../functions/inherits');\n\n/**\n * A DerivedHelper is a way to create sub requests to\n * Algolia from a main helper.\n * @class\n * @classdesc The DerivedHelper provides an event based interface for search callbacks:\n * - search: when a search is triggered using the `search()` method.\n * - result: when the response is retrieved from Algolia and is processed.\n * This event contains a {@link SearchResults} object and the\n * {@link SearchParameters} corresponding to this answer.\n */\nfunction DerivedHelper(mainHelper, fn) {\n this.main = mainHelper;\n this.fn = fn;\n this.lastResults = null;\n}\n\ninherits(DerivedHelper, EventEmitter);\n\n/**\n * Detach this helper from the main helper\n * @return {undefined}\n * @throws Error if the derived helper is already detached\n */\nDerivedHelper.prototype.detach = function() {\n this.removeAllListeners();\n this.main.detachDerivedHelper(this);\n};\n\nDerivedHelper.prototype.getModifiedState = function(parameters) {\n return this.fn(parameters);\n};\n\nmodule.exports = DerivedHelper;\n","'use strict';\n\nvar merge = require('./functions/merge');\n\nfunction sortObject(obj) {\n return Object.keys(obj)\n .sort(function(a, b) {\n return a.localeCompare(b);\n })\n .reduce(function(acc, curr) {\n acc[curr] = obj[curr];\n return acc;\n }, {});\n}\n\nvar requestBuilder = {\n /**\n * Get all the queries to send to the client, those queries can used directly\n * with the Algolia client.\n * @private\n * @return {object[]} The queries\n */\n _getQueries: function getQueries(index, state) {\n var queries = [];\n\n // One query for the hits\n queries.push({\n indexName: index,\n params: requestBuilder._getHitsSearchParams(state)\n });\n\n // One for each disjunctive facets\n state.getRefinedDisjunctiveFacets().forEach(function(refinedFacet) {\n queries.push({\n indexName: index,\n params: requestBuilder._getDisjunctiveFacetSearchParams(state, refinedFacet)\n });\n });\n\n // More to get the parent levels of the hierarchical facets when refined\n state.getRefinedHierarchicalFacets().forEach(function(refinedFacet) {\n var hierarchicalFacet = state.getHierarchicalFacetByName(refinedFacet);\n var currentRefinement = state.getHierarchicalRefinement(refinedFacet);\n var separator = state._getHierarchicalFacetSeparator(hierarchicalFacet);\n\n // If we are deeper than level 0 (starting from `beer > IPA`)\n // we want to get all parent values\n if (currentRefinement.length > 0 && currentRefinement[0].split(separator).length > 1) {\n // We generate a map of the filters we will use for our facet values queries\n var filtersMap = currentRefinement[0].split(separator).slice(0, -1).reduce(\n function createFiltersMap(map, segment, level) {\n return map.concat({\n attribute: hierarchicalFacet.attributes[level],\n value: level === 0\n ? segment\n : [map[map.length - 1].value, segment].join(separator)\n });\n }\n , []);\n\n filtersMap.forEach(function(filter, level) {\n var params = requestBuilder._getDisjunctiveFacetSearchParams(\n state,\n filter.attribute,\n level === 0\n );\n\n // Keep facet filters unrelated to current hierarchical attributes\n function hasHierarchicalFacetFilter(value) {\n return hierarchicalFacet.attributes.some(function(attribute) {\n return attribute === value.split(':')[0];\n });\n }\n\n var filteredFacetFilters = (params.facetFilters || []).reduce(function(acc, facetFilter) {\n if (Array.isArray(facetFilter)) {\n var filtered = facetFilter.filter(function(filterValue) {\n return !hasHierarchicalFacetFilter(filterValue);\n });\n\n if (filtered.length > 0) {\n acc.push(filtered);\n }\n }\n\n if (typeof facetFilter === 'string' && !hasHierarchicalFacetFilter(facetFilter)) {\n acc.push(facetFilter);\n }\n\n return acc;\n }, []);\n\n var parent = filtersMap[level - 1];\n if (level > 0) {\n params.facetFilters = filteredFacetFilters.concat(parent.attribute + ':' + parent.value);\n } else {\n params.facetFilters = filteredFacetFilters.length > 0 ? filteredFacetFilters : undefined;\n }\n\n queries.push({indexName: index, params: params});\n });\n }\n });\n\n return queries;\n },\n\n /**\n * Build search parameters used to fetch hits\n * @private\n * @return {object.}\n */\n _getHitsSearchParams: function(state) {\n var facets = state.facets\n .concat(state.disjunctiveFacets)\n .concat(requestBuilder._getHitsHierarchicalFacetsAttributes(state));\n\n\n var facetFilters = requestBuilder._getFacetFilters(state);\n var numericFilters = requestBuilder._getNumericFilters(state);\n var tagFilters = requestBuilder._getTagFilters(state);\n var additionalParams = {\n facets: facets.indexOf('*') > -1 ? ['*'] : facets,\n tagFilters: tagFilters\n };\n\n if (facetFilters.length > 0) {\n additionalParams.facetFilters = facetFilters;\n }\n\n if (numericFilters.length > 0) {\n additionalParams.numericFilters = numericFilters;\n }\n\n return sortObject(merge({}, state.getQueryParams(), additionalParams));\n },\n\n /**\n * Build search parameters used to fetch a disjunctive facet\n * @private\n * @param {string} facet the associated facet name\n * @param {boolean} hierarchicalRootLevel ?? FIXME\n * @return {object}\n */\n _getDisjunctiveFacetSearchParams: function(state, facet, hierarchicalRootLevel) {\n var facetFilters = requestBuilder._getFacetFilters(state, facet, hierarchicalRootLevel);\n var numericFilters = requestBuilder._getNumericFilters(state, facet);\n var tagFilters = requestBuilder._getTagFilters(state);\n var additionalParams = {\n hitsPerPage: 0,\n page: 0,\n analytics: false,\n clickAnalytics: false\n };\n\n if (tagFilters.length > 0) {\n additionalParams.tagFilters = tagFilters;\n }\n\n var hierarchicalFacet = state.getHierarchicalFacetByName(facet);\n\n if (hierarchicalFacet) {\n additionalParams.facets = requestBuilder._getDisjunctiveHierarchicalFacetAttribute(\n state,\n hierarchicalFacet,\n hierarchicalRootLevel\n );\n } else {\n additionalParams.facets = facet;\n }\n\n if (numericFilters.length > 0) {\n additionalParams.numericFilters = numericFilters;\n }\n\n if (facetFilters.length > 0) {\n additionalParams.facetFilters = facetFilters;\n }\n\n return sortObject(merge({}, state.getQueryParams(), additionalParams));\n },\n\n /**\n * Return the numeric filters in an algolia request fashion\n * @private\n * @param {string} [facetName] the name of the attribute for which the filters should be excluded\n * @return {string[]} the numeric filters in the algolia format\n */\n _getNumericFilters: function(state, facetName) {\n if (state.numericFilters) {\n return state.numericFilters;\n }\n\n var numericFilters = [];\n\n Object.keys(state.numericRefinements).forEach(function(attribute) {\n var operators = state.numericRefinements[attribute] || {};\n Object.keys(operators).forEach(function(operator) {\n var values = operators[operator] || [];\n if (facetName !== attribute) {\n values.forEach(function(value) {\n if (Array.isArray(value)) {\n var vs = value.map(function(v) {\n return attribute + operator + v;\n });\n numericFilters.push(vs);\n } else {\n numericFilters.push(attribute + operator + value);\n }\n });\n }\n });\n });\n\n return numericFilters;\n },\n\n /**\n * Return the tags filters depending\n * @private\n * @return {string}\n */\n _getTagFilters: function(state) {\n if (state.tagFilters) {\n return state.tagFilters;\n }\n\n return state.tagRefinements.join(',');\n },\n\n\n /**\n * Build facetFilters parameter based on current refinements. The array returned\n * contains strings representing the facet filters in the algolia format.\n * @private\n * @param {string} [facet] if set, the current disjunctive facet\n * @return {array.}\n */\n _getFacetFilters: function(state, facet, hierarchicalRootLevel) {\n var facetFilters = [];\n\n var facetsRefinements = state.facetsRefinements || {};\n Object.keys(facetsRefinements).forEach(function(facetName) {\n var facetValues = facetsRefinements[facetName] || [];\n facetValues.forEach(function(facetValue) {\n facetFilters.push(facetName + ':' + facetValue);\n });\n });\n\n var facetsExcludes = state.facetsExcludes || {};\n Object.keys(facetsExcludes).forEach(function(facetName) {\n var facetValues = facetsExcludes[facetName] || [];\n facetValues.forEach(function(facetValue) {\n facetFilters.push(facetName + ':-' + facetValue);\n });\n });\n\n var disjunctiveFacetsRefinements = state.disjunctiveFacetsRefinements || {};\n Object.keys(disjunctiveFacetsRefinements).forEach(function(facetName) {\n var facetValues = disjunctiveFacetsRefinements[facetName] || [];\n if (facetName === facet || !facetValues || facetValues.length === 0) {\n return;\n }\n var orFilters = [];\n\n facetValues.forEach(function(facetValue) {\n orFilters.push(facetName + ':' + facetValue);\n });\n\n facetFilters.push(orFilters);\n });\n\n var hierarchicalFacetsRefinements = state.hierarchicalFacetsRefinements || {};\n Object.keys(hierarchicalFacetsRefinements).forEach(function(facetName) {\n var facetValues = hierarchicalFacetsRefinements[facetName] || [];\n var facetValue = facetValues[0];\n\n if (facetValue === undefined) {\n return;\n }\n\n var hierarchicalFacet = state.getHierarchicalFacetByName(facetName);\n var separator = state._getHierarchicalFacetSeparator(hierarchicalFacet);\n var rootPath = state._getHierarchicalRootPath(hierarchicalFacet);\n var attributeToRefine;\n var attributesIndex;\n\n // we ask for parent facet values only when the `facet` is the current hierarchical facet\n if (facet === facetName) {\n // if we are at the root level already, no need to ask for facet values, we get them from\n // the hits query\n if (facetValue.indexOf(separator) === -1 || (!rootPath && hierarchicalRootLevel === true) ||\n (rootPath && rootPath.split(separator).length === facetValue.split(separator).length)) {\n return;\n }\n\n if (!rootPath) {\n attributesIndex = facetValue.split(separator).length - 2;\n facetValue = facetValue.slice(0, facetValue.lastIndexOf(separator));\n } else {\n attributesIndex = rootPath.split(separator).length - 1;\n facetValue = rootPath;\n }\n\n attributeToRefine = hierarchicalFacet.attributes[attributesIndex];\n } else {\n attributesIndex = facetValue.split(separator).length - 1;\n\n attributeToRefine = hierarchicalFacet.attributes[attributesIndex];\n }\n\n if (attributeToRefine) {\n facetFilters.push([attributeToRefine + ':' + facetValue]);\n }\n });\n\n return facetFilters;\n },\n\n _getHitsHierarchicalFacetsAttributes: function(state) {\n var out = [];\n\n return state.hierarchicalFacets.reduce(\n // ask for as much levels as there's hierarchical refinements\n function getHitsAttributesForHierarchicalFacet(allAttributes, hierarchicalFacet) {\n var hierarchicalRefinement = state.getHierarchicalRefinement(hierarchicalFacet.name)[0];\n\n // if no refinement, ask for root level\n if (!hierarchicalRefinement) {\n allAttributes.push(hierarchicalFacet.attributes[0]);\n return allAttributes;\n }\n\n var separator = state._getHierarchicalFacetSeparator(hierarchicalFacet);\n var level = hierarchicalRefinement.split(separator).length;\n var newAttributes = hierarchicalFacet.attributes.slice(0, level + 1);\n\n return allAttributes.concat(newAttributes);\n }, out);\n },\n\n _getDisjunctiveHierarchicalFacetAttribute: function(state, hierarchicalFacet, rootLevel) {\n var separator = state._getHierarchicalFacetSeparator(hierarchicalFacet);\n if (rootLevel === true) {\n var rootPath = state._getHierarchicalRootPath(hierarchicalFacet);\n var attributeIndex = 0;\n\n if (rootPath) {\n attributeIndex = rootPath.split(separator).length;\n }\n return [hierarchicalFacet.attributes[attributeIndex]];\n }\n\n var hierarchicalRefinement = state.getHierarchicalRefinement(hierarchicalFacet.name)[0] || '';\n // if refinement is 'beers > IPA > Flying dog',\n // then we want `facets: ['beers > IPA']` as disjunctive facet (parent level values)\n\n var parentLevel = hierarchicalRefinement.split(separator).length - 1;\n return hierarchicalFacet.attributes.slice(0, parentLevel + 1);\n },\n\n getSearchForFacetQuery: function(facetName, query, maxFacetHits, state) {\n var stateForSearchForFacetValues = state.isDisjunctiveFacet(facetName) ?\n state.clearRefinements(facetName) :\n state;\n var searchForFacetSearchParameters = {\n facetQuery: query,\n facetName: facetName\n };\n if (typeof maxFacetHits === 'number') {\n searchForFacetSearchParameters.maxFacetHits = maxFacetHits;\n }\n return sortObject(merge(\n {},\n requestBuilder._getHitsSearchParams(stateForSearchForFacetValues),\n searchForFacetSearchParameters\n ));\n }\n};\n\nmodule.exports = requestBuilder;\n","'use strict';\n\nmodule.exports = '3.11.1';\n","'use strict';\n\nvar SearchParameters = require('./SearchParameters');\nvar SearchResults = require('./SearchResults');\nvar DerivedHelper = require('./DerivedHelper');\nvar requestBuilder = require('./requestBuilder');\n\nvar EventEmitter = require('@algolia/events');\nvar inherits = require('./functions/inherits');\nvar objectHasKeys = require('./functions/objectHasKeys');\nvar omit = require('./functions/omit');\nvar merge = require('./functions/merge');\n\nvar version = require('./version');\nvar escapeFacetValue = require('./functions/escapeFacetValue').escapeFacetValue;\n\n/**\n * Event triggered when a parameter is set or updated\n * @event AlgoliaSearchHelper#event:change\n * @property {object} event\n * @property {SearchParameters} event.state the current parameters with the latest changes applied\n * @property {SearchResults} event.results the previous results received from Algolia. `null` before the first request\n * @example\n * helper.on('change', function(event) {\n * console.log('The parameters have changed');\n * });\n */\n\n/**\n * Event triggered when a main search is sent to Algolia\n * @event AlgoliaSearchHelper#event:search\n * @property {object} event\n * @property {SearchParameters} event.state the parameters used for this search\n * @property {SearchResults} event.results the results from the previous search. `null` if it is the first search.\n * @example\n * helper.on('search', function(event) {\n * console.log('Search sent');\n * });\n */\n\n/**\n * Event triggered when a search using `searchForFacetValues` is sent to Algolia\n * @event AlgoliaSearchHelper#event:searchForFacetValues\n * @property {object} event\n * @property {SearchParameters} event.state the parameters used for this search it is the first search.\n * @property {string} event.facet the facet searched into\n * @property {string} event.query the query used to search in the facets\n * @example\n * helper.on('searchForFacetValues', function(event) {\n * console.log('searchForFacetValues sent');\n * });\n */\n\n/**\n * Event triggered when a search using `searchOnce` is sent to Algolia\n * @event AlgoliaSearchHelper#event:searchOnce\n * @property {object} event\n * @property {SearchParameters} event.state the parameters used for this search it is the first search.\n * @example\n * helper.on('searchOnce', function(event) {\n * console.log('searchOnce sent');\n * });\n */\n\n/**\n * Event triggered when the results are retrieved from Algolia\n * @event AlgoliaSearchHelper#event:result\n * @property {object} event\n * @property {SearchResults} event.results the results received from Algolia\n * @property {SearchParameters} event.state the parameters used to query Algolia. Those might be different from the one in the helper instance (for example if the network is unreliable).\n * @example\n * helper.on('result', function(event) {\n * console.log('Search results received');\n * });\n */\n\n/**\n * Event triggered when Algolia sends back an error. For example, if an unknown parameter is\n * used, the error can be caught using this event.\n * @event AlgoliaSearchHelper#event:error\n * @property {object} event\n * @property {Error} event.error the error returned by the Algolia.\n * @example\n * helper.on('error', function(event) {\n * console.log('Houston we got a problem.');\n * });\n */\n\n/**\n * Event triggered when the queue of queries have been depleted (with any result or outdated queries)\n * @event AlgoliaSearchHelper#event:searchQueueEmpty\n * @example\n * helper.on('searchQueueEmpty', function() {\n * console.log('No more search pending');\n * // This is received before the result event if we're not expecting new results\n * });\n *\n * helper.search();\n */\n\n/**\n * Initialize a new AlgoliaSearchHelper\n * @class\n * @classdesc The AlgoliaSearchHelper is a class that ease the management of the\n * search. It provides an event based interface for search callbacks:\n * - change: when the internal search state is changed.\n * This event contains a {@link SearchParameters} object and the\n * {@link SearchResults} of the last result if any.\n * - search: when a search is triggered using the `search()` method.\n * - result: when the response is retrieved from Algolia and is processed.\n * This event contains a {@link SearchResults} object and the\n * {@link SearchParameters} corresponding to this answer.\n * - error: when the response is an error. This event contains the error returned by the server.\n * @param {AlgoliaSearch} client an AlgoliaSearch client\n * @param {string} index the index name to query\n * @param {SearchParameters | object} options an object defining the initial\n * config of the search. It doesn't have to be a {SearchParameters},\n * just an object containing the properties you need from it.\n */\nfunction AlgoliaSearchHelper(client, index, options) {\n if (typeof client.addAlgoliaAgent === 'function') {\n client.addAlgoliaAgent('JS Helper (' + version + ')');\n }\n\n this.setClient(client);\n var opts = options || {};\n opts.index = index;\n this.state = SearchParameters.make(opts);\n this.lastResults = null;\n this._queryId = 0;\n this._lastQueryIdReceived = -1;\n this.derivedHelpers = [];\n this._currentNbQueries = 0;\n}\n\ninherits(AlgoliaSearchHelper, EventEmitter);\n\n/**\n * Start the search with the parameters set in the state. When the\n * method is called, it triggers a `search` event. The results will\n * be available through the `result` event. If an error occurs, an\n * `error` will be fired instead.\n * @return {AlgoliaSearchHelper}\n * @fires search\n * @fires result\n * @fires error\n * @chainable\n */\nAlgoliaSearchHelper.prototype.search = function() {\n this._search({onlyWithDerivedHelpers: false});\n return this;\n};\n\nAlgoliaSearchHelper.prototype.searchOnlyWithDerivedHelpers = function() {\n this._search({onlyWithDerivedHelpers: true});\n return this;\n};\n\n/**\n * Gets the search query parameters that would be sent to the Algolia Client\n * for the hits\n * @return {object} Query Parameters\n */\nAlgoliaSearchHelper.prototype.getQuery = function() {\n var state = this.state;\n return requestBuilder._getHitsSearchParams(state);\n};\n\n/**\n * Start a search using a modified version of the current state. This method does\n * not trigger the helper lifecycle and does not modify the state kept internally\n * by the helper. This second aspect means that the next search call will be the\n * same as a search call before calling searchOnce.\n * @param {object} options can contain all the parameters that can be set to SearchParameters\n * plus the index\n * @param {function} [callback] optional callback executed when the response from the\n * server is back.\n * @return {promise|undefined} if a callback is passed the method returns undefined\n * otherwise it returns a promise containing an object with two keys :\n * - content with a SearchResults\n * - state with the state used for the query as a SearchParameters\n * @example\n * // Changing the number of records returned per page to 1\n * // This example uses the callback API\n * var state = helper.searchOnce({hitsPerPage: 1},\n * function(error, content, state) {\n * // if an error occurred it will be passed in error, otherwise its value is null\n * // content contains the results formatted as a SearchResults\n * // state is the instance of SearchParameters used for this search\n * });\n * @example\n * // Changing the number of records returned per page to 1\n * // This example uses the promise API\n * var state1 = helper.searchOnce({hitsPerPage: 1})\n * .then(promiseHandler);\n *\n * function promiseHandler(res) {\n * // res contains\n * // {\n * // content : SearchResults\n * // state : SearchParameters (the one used for this specific search)\n * // }\n * }\n */\nAlgoliaSearchHelper.prototype.searchOnce = function(options, cb) {\n var tempState = !options ? this.state : this.state.setQueryParameters(options);\n var queries = requestBuilder._getQueries(tempState.index, tempState);\n var self = this;\n\n this._currentNbQueries++;\n\n this.emit('searchOnce', {\n state: tempState\n });\n\n if (cb) {\n this.client\n .search(queries)\n .then(function(content) {\n self._currentNbQueries--;\n if (self._currentNbQueries === 0) {\n self.emit('searchQueueEmpty');\n }\n\n cb(null, new SearchResults(tempState, content.results), tempState);\n })\n .catch(function(err) {\n self._currentNbQueries--;\n if (self._currentNbQueries === 0) {\n self.emit('searchQueueEmpty');\n }\n\n cb(err, null, tempState);\n });\n\n return undefined;\n }\n\n return this.client.search(queries).then(function(content) {\n self._currentNbQueries--;\n if (self._currentNbQueries === 0) self.emit('searchQueueEmpty');\n return {\n content: new SearchResults(tempState, content.results),\n state: tempState,\n _originalResponse: content\n };\n }, function(e) {\n self._currentNbQueries--;\n if (self._currentNbQueries === 0) self.emit('searchQueueEmpty');\n throw e;\n });\n};\n\n /**\n * Start the search for answers with the parameters set in the state.\n * This method returns a promise.\n * @param {Object} options - the options for answers API call\n * @param {string[]} options.attributesForPrediction - Attributes to use for predictions. If empty, `searchableAttributes` is used instead.\n * @param {string[]} options.queryLanguages - The languages in the query. Currently only supports ['en'].\n * @param {number} options.nbHits - Maximum number of answers to retrieve from the Answers Engine. Cannot be greater than 1000.\n *\n * @return {promise} the answer results\n */\nAlgoliaSearchHelper.prototype.findAnswers = function(options) {\n var state = this.state;\n var derivedHelper = this.derivedHelpers[0];\n if (!derivedHelper) {\n return Promise.resolve([]);\n }\n var derivedState = derivedHelper.getModifiedState(state);\n var data = merge(\n {\n attributesForPrediction: options.attributesForPrediction,\n nbHits: options.nbHits\n },\n {\n params: omit(requestBuilder._getHitsSearchParams(derivedState), [\n 'attributesToSnippet',\n 'hitsPerPage',\n 'restrictSearchableAttributes',\n 'snippetEllipsisText' // FIXME remove this line once the engine is fixed.\n ])\n }\n );\n\n var errorMessage = 'search for answers was called, but this client does not have a function client.initIndex(index).findAnswers';\n if (typeof this.client.initIndex !== 'function') {\n throw new Error(errorMessage);\n }\n var index = this.client.initIndex(derivedState.index);\n if (typeof index.findAnswers !== 'function') {\n throw new Error(errorMessage);\n }\n return index.findAnswers(derivedState.query, options.queryLanguages, data);\n};\n\n/**\n * Structure of each result when using\n * [`searchForFacetValues()`](reference.html#AlgoliaSearchHelper#searchForFacetValues)\n * @typedef FacetSearchHit\n * @type {object}\n * @property {string} value the facet value\n * @property {string} highlighted the facet value highlighted with the query string\n * @property {number} count number of occurrence of this facet value\n * @property {boolean} isRefined true if the value is already refined\n */\n\n/**\n * Structure of the data resolved by the\n * [`searchForFacetValues()`](reference.html#AlgoliaSearchHelper#searchForFacetValues)\n * promise.\n * @typedef FacetSearchResult\n * @type {object}\n * @property {FacetSearchHit} facetHits the results for this search for facet values\n * @property {number} processingTimeMS time taken by the query inside the engine\n */\n\n/**\n * Search for facet values based on an query and the name of a faceted attribute. This\n * triggers a search and will return a promise. On top of using the query, it also sends\n * the parameters from the state so that the search is narrowed down to only the possible values.\n *\n * See the description of [FacetSearchResult](reference.html#FacetSearchResult)\n * @param {string} facet the name of the faceted attribute\n * @param {string} query the string query for the search\n * @param {number} [maxFacetHits] the maximum number values returned. Should be > 0 and <= 100\n * @param {object} [userState] the set of custom parameters to use on top of the current state. Setting a property to `undefined` removes\n * it in the generated query.\n * @return {promise.} the results of the search\n */\nAlgoliaSearchHelper.prototype.searchForFacetValues = function(facet, query, maxFacetHits, userState) {\n var clientHasSFFV = typeof this.client.searchForFacetValues === 'function';\n var clientHasInitIndex = typeof this.client.initIndex === 'function';\n if (\n !clientHasSFFV &&\n !clientHasInitIndex &&\n typeof this.client.search !== 'function'\n ) {\n throw new Error(\n 'search for facet values (searchable) was called, but this client does not have a function client.searchForFacetValues or client.initIndex(index).searchForFacetValues'\n );\n }\n\n var state = this.state.setQueryParameters(userState || {});\n var isDisjunctive = state.isDisjunctiveFacet(facet);\n var algoliaQuery = requestBuilder.getSearchForFacetQuery(facet, query, maxFacetHits, state);\n\n this._currentNbQueries++;\n var self = this;\n var searchForFacetValuesPromise;\n // newer algoliasearch ^3.27.1 - ~4.0.0\n if (clientHasSFFV) {\n searchForFacetValuesPromise = this.client.searchForFacetValues([\n {indexName: state.index, params: algoliaQuery}\n ]);\n // algoliasearch < 3.27.1\n } else if (clientHasInitIndex) {\n searchForFacetValuesPromise = this.client\n .initIndex(state.index)\n .searchForFacetValues(algoliaQuery);\n // algoliasearch ~5.0.0\n } else {\n // @MAJOR only use client.search\n delete algoliaQuery.facetName;\n searchForFacetValuesPromise = this.client\n .search([\n {\n type: 'facet',\n facet: facet,\n indexName: state.index,\n params: algoliaQuery\n }\n ])\n .then(function processResponse(response) {\n return response.results[0];\n });\n }\n\n this.emit('searchForFacetValues', {\n state: state,\n facet: facet,\n query: query\n });\n\n return searchForFacetValuesPromise.then(function addIsRefined(content) {\n self._currentNbQueries--;\n if (self._currentNbQueries === 0) self.emit('searchQueueEmpty');\n\n content = Array.isArray(content) ? content[0] : content;\n\n content.facetHits.forEach(function(f) {\n f.escapedValue = escapeFacetValue(f.value);\n f.isRefined = isDisjunctive\n ? state.isDisjunctiveFacetRefined(facet, f.escapedValue)\n : state.isFacetRefined(facet, f.escapedValue);\n });\n\n return content;\n }, function(e) {\n self._currentNbQueries--;\n if (self._currentNbQueries === 0) self.emit('searchQueueEmpty');\n throw e;\n });\n};\n\n/**\n * Sets the text query used for the search.\n *\n * This method resets the current page to 0.\n * @param {string} q the user query\n * @return {AlgoliaSearchHelper}\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.setQuery = function(q) {\n this._change({\n state: this.state.resetPage().setQuery(q),\n isPageReset: true\n });\n\n return this;\n};\n\n/**\n * Remove all the types of refinements except tags. A string can be provided to remove\n * only the refinements of a specific attribute. For more advanced use case, you can\n * provide a function instead. This function should follow the\n * [clearCallback definition](#SearchParameters.clearCallback).\n *\n * This method resets the current page to 0.\n * @param {string} [name] optional name of the facet / attribute on which we want to remove all refinements\n * @return {AlgoliaSearchHelper}\n * @fires change\n * @chainable\n * @example\n * // Removing all the refinements\n * helper.clearRefinements().search();\n * @example\n * // Removing all the filters on a the category attribute.\n * helper.clearRefinements('category').search();\n * @example\n * // Removing only the exclude filters on the category facet.\n * helper.clearRefinements(function(value, attribute, type) {\n * return type === 'exclude' && attribute === 'category';\n * }).search();\n */\nAlgoliaSearchHelper.prototype.clearRefinements = function(name) {\n this._change({\n state: this.state.resetPage().clearRefinements(name),\n isPageReset: true\n });\n\n return this;\n};\n\n/**\n * Remove all the tag filters.\n *\n * This method resets the current page to 0.\n * @return {AlgoliaSearchHelper}\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.clearTags = function() {\n this._change({\n state: this.state.resetPage().clearTags(),\n isPageReset: true\n });\n\n return this;\n};\n\n/**\n * Adds a disjunctive filter to a faceted attribute with the `value` provided. If the\n * filter is already set, it doesn't change the filters.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} value the associated value (will be converted to string)\n * @return {AlgoliaSearchHelper}\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.addDisjunctiveFacetRefinement = function(facet, value) {\n this._change({\n state: this.state.resetPage().addDisjunctiveFacetRefinement(facet, value),\n isPageReset: true\n });\n\n return this;\n};\n\n/**\n * @deprecated since version 2.4.0, see {@link AlgoliaSearchHelper#addDisjunctiveFacetRefinement}\n */\nAlgoliaSearchHelper.prototype.addDisjunctiveRefine = function() {\n return this.addDisjunctiveFacetRefinement.apply(this, arguments);\n};\n\n/**\n * Adds a refinement on a hierarchical facet. It will throw\n * an exception if the facet is not defined or if the facet\n * is already refined.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet name\n * @param {string} path the hierarchical facet path\n * @return {AlgoliaSearchHelper}\n * @throws Error if the facet is not defined or if the facet is refined\n * @chainable\n * @fires change\n */\nAlgoliaSearchHelper.prototype.addHierarchicalFacetRefinement = function(facet, value) {\n this._change({\n state: this.state.resetPage().addHierarchicalFacetRefinement(facet, value),\n isPageReset: true\n });\n\n return this;\n};\n\n/**\n * Adds a an numeric filter to an attribute with the `operator` and `value` provided. If the\n * filter is already set, it doesn't change the filters.\n *\n * This method resets the current page to 0.\n * @param {string} attribute the attribute on which the numeric filter applies\n * @param {string} operator the operator of the filter\n * @param {number} value the value of the filter\n * @return {AlgoliaSearchHelper}\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.addNumericRefinement = function(attribute, operator, value) {\n this._change({\n state: this.state.resetPage().addNumericRefinement(attribute, operator, value),\n isPageReset: true\n });\n\n return this;\n};\n\n/**\n * Adds a filter to a faceted attribute with the `value` provided. If the\n * filter is already set, it doesn't change the filters.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} value the associated value (will be converted to string)\n * @return {AlgoliaSearchHelper}\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.addFacetRefinement = function(facet, value) {\n this._change({\n state: this.state.resetPage().addFacetRefinement(facet, value),\n isPageReset: true\n });\n\n return this;\n};\n\n/**\n * @deprecated since version 2.4.0, see {@link AlgoliaSearchHelper#addFacetRefinement}\n */\nAlgoliaSearchHelper.prototype.addRefine = function() {\n return this.addFacetRefinement.apply(this, arguments);\n};\n\n\n/**\n * Adds a an exclusion filter to a faceted attribute with the `value` provided. If the\n * filter is already set, it doesn't change the filters.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} value the associated value (will be converted to string)\n * @return {AlgoliaSearchHelper}\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.addFacetExclusion = function(facet, value) {\n this._change({\n state: this.state.resetPage().addExcludeRefinement(facet, value),\n isPageReset: true\n });\n\n return this;\n};\n\n/**\n * @deprecated since version 2.4.0, see {@link AlgoliaSearchHelper#addFacetExclusion}\n */\nAlgoliaSearchHelper.prototype.addExclude = function() {\n return this.addFacetExclusion.apply(this, arguments);\n};\n\n/**\n * Adds a tag filter with the `tag` provided. If the\n * filter is already set, it doesn't change the filters.\n *\n * This method resets the current page to 0.\n * @param {string} tag the tag to add to the filter\n * @return {AlgoliaSearchHelper}\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.addTag = function(tag) {\n this._change({\n state: this.state.resetPage().addTagRefinement(tag),\n isPageReset: true\n });\n\n return this;\n};\n\n/**\n * Removes an numeric filter to an attribute with the `operator` and `value` provided. If the\n * filter is not set, it doesn't change the filters.\n *\n * Some parameters are optional, triggering different behavior:\n * - if the value is not provided, then all the numeric value will be removed for the\n * specified attribute/operator couple.\n * - if the operator is not provided either, then all the numeric filter on this attribute\n * will be removed.\n *\n * This method resets the current page to 0.\n * @param {string} attribute the attribute on which the numeric filter applies\n * @param {string} [operator] the operator of the filter\n * @param {number} [value] the value of the filter\n * @return {AlgoliaSearchHelper}\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.removeNumericRefinement = function(attribute, operator, value) {\n this._change({\n state: this.state.resetPage().removeNumericRefinement(attribute, operator, value),\n isPageReset: true\n });\n\n return this;\n};\n\n/**\n * Removes a disjunctive filter to a faceted attribute with the `value` provided. If the\n * filter is not set, it doesn't change the filters.\n *\n * If the value is omitted, then this method will remove all the filters for the\n * attribute.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} [value] the associated value\n * @return {AlgoliaSearchHelper}\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.removeDisjunctiveFacetRefinement = function(facet, value) {\n this._change({\n state: this.state.resetPage().removeDisjunctiveFacetRefinement(facet, value),\n isPageReset: true\n });\n\n return this;\n};\n\n/**\n * @deprecated since version 2.4.0, see {@link AlgoliaSearchHelper#removeDisjunctiveFacetRefinement}\n */\nAlgoliaSearchHelper.prototype.removeDisjunctiveRefine = function() {\n return this.removeDisjunctiveFacetRefinement.apply(this, arguments);\n};\n\n/**\n * Removes the refinement set on a hierarchical facet.\n * @param {string} facet the facet name\n * @return {AlgoliaSearchHelper}\n * @throws Error if the facet is not defined or if the facet is not refined\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.removeHierarchicalFacetRefinement = function(facet) {\n this._change({\n state: this.state.resetPage().removeHierarchicalFacetRefinement(facet),\n isPageReset: true\n });\n\n return this;\n};\n\n/**\n * Removes a filter to a faceted attribute with the `value` provided. If the\n * filter is not set, it doesn't change the filters.\n *\n * If the value is omitted, then this method will remove all the filters for the\n * attribute.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} [value] the associated value\n * @return {AlgoliaSearchHelper}\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.removeFacetRefinement = function(facet, value) {\n this._change({\n state: this.state.resetPage().removeFacetRefinement(facet, value),\n isPageReset: true\n });\n\n return this;\n};\n\n/**\n * @deprecated since version 2.4.0, see {@link AlgoliaSearchHelper#removeFacetRefinement}\n */\nAlgoliaSearchHelper.prototype.removeRefine = function() {\n return this.removeFacetRefinement.apply(this, arguments);\n};\n\n/**\n * Removes an exclusion filter to a faceted attribute with the `value` provided. If the\n * filter is not set, it doesn't change the filters.\n *\n * If the value is omitted, then this method will remove all the filters for the\n * attribute.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} [value] the associated value\n * @return {AlgoliaSearchHelper}\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.removeFacetExclusion = function(facet, value) {\n this._change({\n state: this.state.resetPage().removeExcludeRefinement(facet, value),\n isPageReset: true\n });\n\n return this;\n};\n\n/**\n * @deprecated since version 2.4.0, see {@link AlgoliaSearchHelper#removeFacetExclusion}\n */\nAlgoliaSearchHelper.prototype.removeExclude = function() {\n return this.removeFacetExclusion.apply(this, arguments);\n};\n\n/**\n * Removes a tag filter with the `tag` provided. If the\n * filter is not set, it doesn't change the filters.\n *\n * This method resets the current page to 0.\n * @param {string} tag tag to remove from the filter\n * @return {AlgoliaSearchHelper}\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.removeTag = function(tag) {\n this._change({\n state: this.state.resetPage().removeTagRefinement(tag),\n isPageReset: true\n });\n\n return this;\n};\n\n/**\n * Adds or removes an exclusion filter to a faceted attribute with the `value` provided. If\n * the value is set then it removes it, otherwise it adds the filter.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} value the associated value\n * @return {AlgoliaSearchHelper}\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.toggleFacetExclusion = function(facet, value) {\n this._change({\n state: this.state.resetPage().toggleExcludeFacetRefinement(facet, value),\n isPageReset: true\n });\n\n return this;\n};\n\n/**\n * @deprecated since version 2.4.0, see {@link AlgoliaSearchHelper#toggleFacetExclusion}\n */\nAlgoliaSearchHelper.prototype.toggleExclude = function() {\n return this.toggleFacetExclusion.apply(this, arguments);\n};\n\n/**\n * Adds or removes a filter to a faceted attribute with the `value` provided. If\n * the value is set then it removes it, otherwise it adds the filter.\n *\n * This method can be used for conjunctive, disjunctive and hierarchical filters.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} value the associated value\n * @return {AlgoliaSearchHelper}\n * @throws Error will throw an error if the facet is not declared in the settings of the helper\n * @fires change\n * @chainable\n * @deprecated since version 2.19.0, see {@link AlgoliaSearchHelper#toggleFacetRefinement}\n */\nAlgoliaSearchHelper.prototype.toggleRefinement = function(facet, value) {\n return this.toggleFacetRefinement(facet, value);\n};\n\n/**\n * Adds or removes a filter to a faceted attribute with the `value` provided. If\n * the value is set then it removes it, otherwise it adds the filter.\n *\n * This method can be used for conjunctive, disjunctive and hierarchical filters.\n *\n * This method resets the current page to 0.\n * @param {string} facet the facet to refine\n * @param {string} value the associated value\n * @return {AlgoliaSearchHelper}\n * @throws Error will throw an error if the facet is not declared in the settings of the helper\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.toggleFacetRefinement = function(facet, value) {\n this._change({\n state: this.state.resetPage().toggleFacetRefinement(facet, value),\n isPageReset: true\n });\n\n return this;\n};\n\n/**\n * @deprecated since version 2.4.0, see {@link AlgoliaSearchHelper#toggleFacetRefinement}\n */\nAlgoliaSearchHelper.prototype.toggleRefine = function() {\n return this.toggleFacetRefinement.apply(this, arguments);\n};\n\n/**\n * Adds or removes a tag filter with the `value` provided. If\n * the value is set then it removes it, otherwise it adds the filter.\n *\n * This method resets the current page to 0.\n * @param {string} tag tag to remove or add\n * @return {AlgoliaSearchHelper}\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.toggleTag = function(tag) {\n this._change({\n state: this.state.resetPage().toggleTagRefinement(tag),\n isPageReset: true\n });\n\n return this;\n};\n\n/**\n * Increments the page number by one.\n * @return {AlgoliaSearchHelper}\n * @fires change\n * @chainable\n * @example\n * helper.setPage(0).nextPage().getPage();\n * // returns 1\n */\nAlgoliaSearchHelper.prototype.nextPage = function() {\n var page = this.state.page || 0;\n return this.setPage(page + 1);\n};\n\n/**\n * Decrements the page number by one.\n * @fires change\n * @return {AlgoliaSearchHelper}\n * @chainable\n * @example\n * helper.setPage(1).previousPage().getPage();\n * // returns 0\n */\nAlgoliaSearchHelper.prototype.previousPage = function() {\n var page = this.state.page || 0;\n return this.setPage(page - 1);\n};\n\n/**\n * @private\n */\nfunction setCurrentPage(page) {\n if (page < 0) throw new Error('Page requested below 0.');\n\n this._change({\n state: this.state.setPage(page),\n isPageReset: false\n });\n\n return this;\n}\n\n/**\n * Change the current page\n * @deprecated\n * @param {number} page The page number\n * @return {AlgoliaSearchHelper}\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.setCurrentPage = setCurrentPage;\n\n/**\n * Updates the current page.\n * @function\n * @param {number} page The page number\n * @return {AlgoliaSearchHelper}\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.setPage = setCurrentPage;\n\n/**\n * Updates the name of the index that will be targeted by the query.\n *\n * This method resets the current page to 0.\n * @param {string} name the index name\n * @return {AlgoliaSearchHelper}\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.setIndex = function(name) {\n this._change({\n state: this.state.resetPage().setIndex(name),\n isPageReset: true\n });\n\n return this;\n};\n\n/**\n * Update a parameter of the search. This method reset the page\n *\n * The complete list of parameters is available on the\n * [Algolia website](https://www.algolia.com/doc/rest#query-an-index).\n * The most commonly used parameters have their own [shortcuts](#query-parameters-shortcuts)\n * or benefit from higher-level APIs (all the kind of filters and facets have their own API)\n *\n * This method resets the current page to 0.\n * @param {string} parameter name of the parameter to update\n * @param {any} value new value of the parameter\n * @return {AlgoliaSearchHelper}\n * @fires change\n * @chainable\n * @example\n * helper.setQueryParameter('hitsPerPage', 20).search();\n */\nAlgoliaSearchHelper.prototype.setQueryParameter = function(parameter, value) {\n this._change({\n state: this.state.resetPage().setQueryParameter(parameter, value),\n isPageReset: true\n });\n\n return this;\n};\n\n/**\n * Set the whole state (warning: will erase previous state)\n * @param {SearchParameters} newState the whole new state\n * @return {AlgoliaSearchHelper}\n * @fires change\n * @chainable\n */\nAlgoliaSearchHelper.prototype.setState = function(newState) {\n this._change({\n state: SearchParameters.make(newState),\n isPageReset: false\n });\n\n return this;\n};\n\n/**\n * Override the current state without triggering a change event.\n * Do not use this method unless you know what you are doing. (see the example\n * for a legit use case)\n * @param {SearchParameters} newState the whole new state\n * @return {AlgoliaSearchHelper}\n * @example\n * helper.on('change', function(state){\n * // In this function you might want to find a way to store the state in the url/history\n * updateYourURL(state)\n * })\n * window.onpopstate = function(event){\n * // This is naive though as you should check if the state is really defined etc.\n * helper.overrideStateWithoutTriggeringChangeEvent(event.state).search()\n * }\n * @chainable\n */\nAlgoliaSearchHelper.prototype.overrideStateWithoutTriggeringChangeEvent = function(newState) {\n this.state = new SearchParameters(newState);\n return this;\n};\n\n/**\n * Check if an attribute has any numeric, conjunctive, disjunctive or hierarchical filters.\n * @param {string} attribute the name of the attribute\n * @return {boolean} true if the attribute is filtered by at least one value\n * @example\n * // hasRefinements works with numeric, conjunctive, disjunctive and hierarchical filters\n * helper.hasRefinements('price'); // false\n * helper.addNumericRefinement('price', '>', 100);\n * helper.hasRefinements('price'); // true\n *\n * helper.hasRefinements('color'); // false\n * helper.addFacetRefinement('color', 'blue');\n * helper.hasRefinements('color'); // true\n *\n * helper.hasRefinements('material'); // false\n * helper.addDisjunctiveFacetRefinement('material', 'plastic');\n * helper.hasRefinements('material'); // true\n *\n * helper.hasRefinements('categories'); // false\n * helper.toggleFacetRefinement('categories', 'kitchen > knife');\n * helper.hasRefinements('categories'); // true\n *\n */\nAlgoliaSearchHelper.prototype.hasRefinements = function(attribute) {\n if (objectHasKeys(this.state.getNumericRefinements(attribute))) {\n return true;\n } else if (this.state.isConjunctiveFacet(attribute)) {\n return this.state.isFacetRefined(attribute);\n } else if (this.state.isDisjunctiveFacet(attribute)) {\n return this.state.isDisjunctiveFacetRefined(attribute);\n } else if (this.state.isHierarchicalFacet(attribute)) {\n return this.state.isHierarchicalFacetRefined(attribute);\n }\n\n // there's currently no way to know that the user did call `addNumericRefinement` at some point\n // thus we cannot distinguish if there once was a numeric refinement that was cleared\n // so we will return false in every other situations to be consistent\n // while what we should do here is throw because we did not find the attribute in any type\n // of refinement\n return false;\n};\n\n/**\n * Check if a value is excluded for a specific faceted attribute. If the value\n * is omitted then the function checks if there is any excluding refinements.\n *\n * @param {string} facet name of the attribute for used for faceting\n * @param {string} [value] optional value. If passed will test that this value\n * is filtering the given facet.\n * @return {boolean} true if refined\n * @example\n * helper.isExcludeRefined('color'); // false\n * helper.isExcludeRefined('color', 'blue') // false\n * helper.isExcludeRefined('color', 'red') // false\n *\n * helper.addFacetExclusion('color', 'red');\n *\n * helper.isExcludeRefined('color'); // true\n * helper.isExcludeRefined('color', 'blue') // false\n * helper.isExcludeRefined('color', 'red') // true\n */\nAlgoliaSearchHelper.prototype.isExcluded = function(facet, value) {\n return this.state.isExcludeRefined(facet, value);\n};\n\n/**\n * @deprecated since 2.4.0, see {@link AlgoliaSearchHelper#hasRefinements}\n */\nAlgoliaSearchHelper.prototype.isDisjunctiveRefined = function(facet, value) {\n return this.state.isDisjunctiveFacetRefined(facet, value);\n};\n\n/**\n * Check if the string is a currently filtering tag.\n * @param {string} tag tag to check\n * @return {boolean}\n */\nAlgoliaSearchHelper.prototype.hasTag = function(tag) {\n return this.state.isTagRefined(tag);\n};\n\n/**\n * @deprecated since 2.4.0, see {@link AlgoliaSearchHelper#hasTag}\n */\nAlgoliaSearchHelper.prototype.isTagRefined = function() {\n return this.hasTagRefinements.apply(this, arguments);\n};\n\n\n/**\n * Get the name of the currently used index.\n * @return {string}\n * @example\n * helper.setIndex('highestPrice_products').getIndex();\n * // returns 'highestPrice_products'\n */\nAlgoliaSearchHelper.prototype.getIndex = function() {\n return this.state.index;\n};\n\nfunction getCurrentPage() {\n return this.state.page;\n}\n\n/**\n * Get the currently selected page\n * @deprecated\n * @return {number} the current page\n */\nAlgoliaSearchHelper.prototype.getCurrentPage = getCurrentPage;\n/**\n * Get the currently selected page\n * @function\n * @return {number} the current page\n */\nAlgoliaSearchHelper.prototype.getPage = getCurrentPage;\n\n/**\n * Get all the tags currently set to filters the results.\n *\n * @return {string[]} The list of tags currently set.\n */\nAlgoliaSearchHelper.prototype.getTags = function() {\n return this.state.tagRefinements;\n};\n\n/**\n * Get the list of refinements for a given attribute. This method works with\n * conjunctive, disjunctive, excluding and numerical filters.\n *\n * See also SearchResults#getRefinements\n *\n * @param {string} facetName attribute name used for faceting\n * @return {Array.} All Refinement are objects that contain a value, and\n * a type. Numeric also contains an operator.\n * @example\n * helper.addNumericRefinement('price', '>', 100);\n * helper.getRefinements('price');\n * // [\n * // {\n * // \"value\": [\n * // 100\n * // ],\n * // \"operator\": \">\",\n * // \"type\": \"numeric\"\n * // }\n * // ]\n * @example\n * helper.addFacetRefinement('color', 'blue');\n * helper.addFacetExclusion('color', 'red');\n * helper.getRefinements('color');\n * // [\n * // {\n * // \"value\": \"blue\",\n * // \"type\": \"conjunctive\"\n * // },\n * // {\n * // \"value\": \"red\",\n * // \"type\": \"exclude\"\n * // }\n * // ]\n * @example\n * helper.addDisjunctiveFacetRefinement('material', 'plastic');\n * // [\n * // {\n * // \"value\": \"plastic\",\n * // \"type\": \"disjunctive\"\n * // }\n * // ]\n */\nAlgoliaSearchHelper.prototype.getRefinements = function(facetName) {\n var refinements = [];\n\n if (this.state.isConjunctiveFacet(facetName)) {\n var conjRefinements = this.state.getConjunctiveRefinements(facetName);\n\n conjRefinements.forEach(function(r) {\n refinements.push({\n value: r,\n type: 'conjunctive'\n });\n });\n\n var excludeRefinements = this.state.getExcludeRefinements(facetName);\n\n excludeRefinements.forEach(function(r) {\n refinements.push({\n value: r,\n type: 'exclude'\n });\n });\n } else if (this.state.isDisjunctiveFacet(facetName)) {\n var disjRefinements = this.state.getDisjunctiveRefinements(facetName);\n\n disjRefinements.forEach(function(r) {\n refinements.push({\n value: r,\n type: 'disjunctive'\n });\n });\n }\n\n var numericRefinements = this.state.getNumericRefinements(facetName);\n\n Object.keys(numericRefinements).forEach(function(operator) {\n var value = numericRefinements[operator];\n\n refinements.push({\n value: value,\n operator: operator,\n type: 'numeric'\n });\n });\n\n return refinements;\n};\n\n/**\n * Return the current refinement for the (attribute, operator)\n * @param {string} attribute attribute in the record\n * @param {string} operator operator applied on the refined values\n * @return {Array.} refined values\n */\nAlgoliaSearchHelper.prototype.getNumericRefinement = function(attribute, operator) {\n return this.state.getNumericRefinement(attribute, operator);\n};\n\n/**\n * Get the current breadcrumb for a hierarchical facet, as an array\n * @param {string} facetName Hierarchical facet name\n * @return {array.} the path as an array of string\n */\nAlgoliaSearchHelper.prototype.getHierarchicalFacetBreadcrumb = function(facetName) {\n return this.state.getHierarchicalFacetBreadcrumb(facetName);\n};\n\n// /////////// PRIVATE\n\n/**\n * Perform the underlying queries\n * @private\n * @return {undefined}\n * @fires search\n * @fires result\n * @fires error\n */\nAlgoliaSearchHelper.prototype._search = function(options) {\n var state = this.state;\n var states = [];\n var mainQueries = [];\n\n if (!options.onlyWithDerivedHelpers) {\n mainQueries = requestBuilder._getQueries(state.index, state);\n\n states.push({\n state: state,\n queriesCount: mainQueries.length,\n helper: this\n });\n\n this.emit('search', {\n state: state,\n results: this.lastResults\n });\n }\n\n var derivedQueries = this.derivedHelpers.map(function(derivedHelper) {\n var derivedState = derivedHelper.getModifiedState(state);\n var derivedStateQueries = requestBuilder._getQueries(derivedState.index, derivedState);\n\n states.push({\n state: derivedState,\n queriesCount: derivedStateQueries.length,\n helper: derivedHelper\n });\n\n derivedHelper.emit('search', {\n state: derivedState,\n results: derivedHelper.lastResults\n });\n\n return derivedStateQueries;\n });\n\n var queries = Array.prototype.concat.apply(mainQueries, derivedQueries);\n var queryId = this._queryId++;\n\n this._currentNbQueries++;\n\n try {\n this.client.search(queries)\n .then(this._dispatchAlgoliaResponse.bind(this, states, queryId))\n .catch(this._dispatchAlgoliaError.bind(this, queryId));\n } catch (error) {\n // If we reach this part, we're in an internal error state\n this.emit('error', {\n error: error\n });\n }\n};\n\n/**\n * Transform the responses as sent by the server and transform them into a user\n * usable object that merge the results of all the batch requests. It will dispatch\n * over the different helper + derived helpers (when there are some).\n * @private\n * @param {array.<{SearchParameters, AlgoliaQueries, AlgoliaSearchHelper}>}\n * state state used for to generate the request\n * @param {number} queryId id of the current request\n * @param {object} content content of the response\n * @return {undefined}\n */\nAlgoliaSearchHelper.prototype._dispatchAlgoliaResponse = function(states, queryId, content) {\n // FIXME remove the number of outdated queries discarded instead of just one\n\n if (queryId < this._lastQueryIdReceived) {\n // Outdated answer\n return;\n }\n\n this._currentNbQueries -= (queryId - this._lastQueryIdReceived);\n this._lastQueryIdReceived = queryId;\n\n if (this._currentNbQueries === 0) this.emit('searchQueueEmpty');\n\n var results = content.results.slice();\n\n states.forEach(function(s) {\n var state = s.state;\n var queriesCount = s.queriesCount;\n var helper = s.helper;\n var specificResults = results.splice(0, queriesCount);\n\n var formattedResponse = helper.lastResults = new SearchResults(state, specificResults);\n\n helper.emit('result', {\n results: formattedResponse,\n state: state\n });\n });\n};\n\nAlgoliaSearchHelper.prototype._dispatchAlgoliaError = function(queryId, error) {\n if (queryId < this._lastQueryIdReceived) {\n // Outdated answer\n return;\n }\n\n this._currentNbQueries -= queryId - this._lastQueryIdReceived;\n this._lastQueryIdReceived = queryId;\n\n this.emit('error', {\n error: error\n });\n\n if (this._currentNbQueries === 0) this.emit('searchQueueEmpty');\n};\n\nAlgoliaSearchHelper.prototype.containsRefinement = function(query, facetFilters, numericFilters, tagFilters) {\n return query ||\n facetFilters.length !== 0 ||\n numericFilters.length !== 0 ||\n tagFilters.length !== 0;\n};\n\n/**\n * Test if there are some disjunctive refinements on the facet\n * @private\n * @param {string} facet the attribute to test\n * @return {boolean}\n */\nAlgoliaSearchHelper.prototype._hasDisjunctiveRefinements = function(facet) {\n return this.state.disjunctiveRefinements[facet] &&\n this.state.disjunctiveRefinements[facet].length > 0;\n};\n\nAlgoliaSearchHelper.prototype._change = function(event) {\n var state = event.state;\n var isPageReset = event.isPageReset;\n\n if (state !== this.state) {\n this.state = state;\n\n this.emit('change', {\n state: this.state,\n results: this.lastResults,\n isPageReset: isPageReset\n });\n }\n};\n\n/**\n * Clears the cache of the underlying Algolia client.\n * @return {AlgoliaSearchHelper}\n */\nAlgoliaSearchHelper.prototype.clearCache = function() {\n this.client.clearCache && this.client.clearCache();\n return this;\n};\n\n/**\n * Updates the internal client instance. If the reference of the clients\n * are equal then no update is actually done.\n * @param {AlgoliaSearch} newClient an AlgoliaSearch client\n * @return {AlgoliaSearchHelper}\n */\nAlgoliaSearchHelper.prototype.setClient = function(newClient) {\n if (this.client === newClient) return this;\n\n if (typeof newClient.addAlgoliaAgent === 'function') {\n newClient.addAlgoliaAgent('JS Helper (' + version + ')');\n }\n this.client = newClient;\n\n return this;\n};\n\n/**\n * Gets the instance of the currently used client.\n * @return {AlgoliaSearch}\n */\nAlgoliaSearchHelper.prototype.getClient = function() {\n return this.client;\n};\n\n/**\n * Creates an derived instance of the Helper. A derived helper\n * is a way to request other indices synchronised with the lifecycle\n * of the main Helper. This mechanism uses the multiqueries feature\n * of Algolia to aggregate all the requests in a single network call.\n *\n * This method takes a function that is used to create a new SearchParameter\n * that will be used to create requests to Algolia. Those new requests\n * are created just before the `search` event. The signature of the function\n * is `SearchParameters -> SearchParameters`.\n *\n * This method returns a new DerivedHelper which is an EventEmitter\n * that fires the same `search`, `result` and `error` events. Those\n * events, however, will receive data specific to this DerivedHelper\n * and the SearchParameters that is returned by the call of the\n * parameter function.\n * @param {function} fn SearchParameters -> SearchParameters\n * @return {DerivedHelper}\n */\nAlgoliaSearchHelper.prototype.derive = function(fn) {\n var derivedHelper = new DerivedHelper(this, fn);\n this.derivedHelpers.push(derivedHelper);\n return derivedHelper;\n};\n\n/**\n * This method detaches a derived Helper from the main one. Prefer using the one from the\n * derived helper itself, to remove the event listeners too.\n * @private\n * @return {undefined}\n * @throws Error\n */\nAlgoliaSearchHelper.prototype.detachDerivedHelper = function(derivedHelper) {\n var pos = this.derivedHelpers.indexOf(derivedHelper);\n if (pos === -1) throw new Error('Derived helper already detached');\n this.derivedHelpers.splice(pos, 1);\n};\n\n/**\n * This method returns true if there is currently at least one on-going search.\n * @return {boolean} true if there is a search pending\n */\nAlgoliaSearchHelper.prototype.hasPendingRequests = function() {\n return this._currentNbQueries > 0;\n};\n\n/**\n * @typedef AlgoliaSearchHelper.NumericRefinement\n * @type {object}\n * @property {number[]} value the numbers that are used for filtering this attribute with\n * the operator specified.\n * @property {string} operator the faceting data: value, number of entries\n * @property {string} type will be 'numeric'\n */\n\n/**\n * @typedef AlgoliaSearchHelper.FacetRefinement\n * @type {object}\n * @property {string} value the string use to filter the attribute\n * @property {string} type the type of filter: 'conjunctive', 'disjunctive', 'exclude'\n */\n\nmodule.exports = AlgoliaSearchHelper;\n","'use strict';\n\nvar AlgoliaSearchHelper = require('./src/algoliasearch.helper');\n\nvar SearchParameters = require('./src/SearchParameters');\nvar SearchResults = require('./src/SearchResults');\n\n/**\n * The algoliasearchHelper module is the function that will let its\n * contains everything needed to use the Algoliasearch\n * Helper. It is a also a function that instanciate the helper.\n * To use the helper, you also need the Algolia JS client v3.\n * @example\n * //using the UMD build\n * var client = algoliasearch('latency', '6be0576ff61c053d5f9a3225e2a90f76');\n * var helper = algoliasearchHelper(client, 'bestbuy', {\n * facets: ['shipping'],\n * disjunctiveFacets: ['category']\n * });\n * helper.on('result', function(event) {\n * console.log(event.results);\n * });\n * helper\n * .toggleFacetRefinement('category', 'Movies & TV Shows')\n * .toggleFacetRefinement('shipping', 'Free shipping')\n * .search();\n * @example\n * // The helper is an event emitter using the node API\n * helper.on('result', updateTheResults);\n * helper.once('result', updateTheResults);\n * helper.removeListener('result', updateTheResults);\n * helper.removeAllListeners('result');\n * @module algoliasearchHelper\n * @param {AlgoliaSearch} client an AlgoliaSearch client\n * @param {string} index the name of the index to query\n * @param {SearchParameters|object} opts an object defining the initial config of the search. It doesn't have to be a {SearchParameters}, just an object containing the properties you need from it.\n * @return {AlgoliaSearchHelper}\n */\nfunction algoliasearchHelper(client, index, opts) {\n return new AlgoliaSearchHelper(client, index, opts);\n}\n\n/**\n * The version currently used\n * @member module:algoliasearchHelper.version\n * @type {number}\n */\nalgoliasearchHelper.version = require('./src/version.js');\n\n/**\n * Constructor for the Helper.\n * @member module:algoliasearchHelper.AlgoliaSearchHelper\n * @type {AlgoliaSearchHelper}\n */\nalgoliasearchHelper.AlgoliaSearchHelper = AlgoliaSearchHelper;\n\n/**\n * Constructor for the object containing all the parameters of the search.\n * @member module:algoliasearchHelper.SearchParameters\n * @type {SearchParameters}\n */\nalgoliasearchHelper.SearchParameters = SearchParameters;\n\n/**\n * Constructor for the object containing the results of the search.\n * @member module:algoliasearchHelper.SearchResults\n * @type {SearchResults}\n */\nalgoliasearchHelper.SearchResults = SearchResults;\n\nmodule.exports = algoliasearchHelper;\n","export function noop() {}","export function getObjectType(object) {\n return Object.prototype.toString.call(object).slice(8, -1);\n}","import { getObjectType } from \"./getObjectType.js\";\nexport function checkRendering(rendering, usage) {\n if (rendering === undefined || typeof rendering !== 'function') {\n throw new Error(\"The render function is not valid (received type \".concat(getObjectType(rendering), \").\\n\\n\").concat(usage));\n }\n}","/**\n * This implementation is taken from Lodash implementation.\n * See: https://github.com/lodash/lodash/blob/4.17.11-npm/escape.js\n */\n// Used to map characters to HTML entities.\nvar htmlEntities = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n}; // Used to match HTML entities and HTML characters.\n\nvar regexUnescapedHtml = /[&<>\"']/g;\nvar regexHasUnescapedHtml = RegExp(regexUnescapedHtml.source);\n/**\n * Converts the characters \"&\", \"<\", \">\", '\"', and \"'\" in `string` to their\n * corresponding HTML entities.\n */\n\nexport function escape(value) {\n return value && regexHasUnescapedHtml.test(value) ? value.replace(regexUnescapedHtml, function (character) {\n return htmlEntities[character];\n }) : value;\n}\n/**\n * This implementation is taken from Lodash implementation.\n * See: https://github.com/lodash/lodash/blob/4.17.11-npm/unescape.js\n */\n// Used to map HTML entities to characters.\n\nvar htmlCharacters = {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\"\n}; // Used to match HTML entities and HTML characters.\n\nvar regexEscapedHtml = /&(amp|quot|lt|gt|#39);/g;\nvar regexHasEscapedHtml = RegExp(regexEscapedHtml.source);\n/**\n * Converts the HTML entities \"&\", \"<\", \">\", '\"', and \"'\" in `string` to their\n * characters.\n */\n\nexport function unescape(value) {\n return value && regexHasEscapedHtml.test(value) ? value.replace(regexEscapedHtml, function (character) {\n return htmlCharacters[character];\n }) : value;\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\n/**\n * This implementation is taken from Lodash implementation.\n * See: https://github.com/lodash/lodash/blob/master/isPlainObject.js\n */\nfunction getTag(value) {\n if (value === null) {\n return value === undefined ? '[object Undefined]' : '[object Null]';\n }\n\n return Object.prototype.toString.call(value);\n}\n\nfunction isObjectLike(value) {\n return _typeof(value) === 'object' && value !== null;\n}\n/**\n * Checks if `value` is a plain object.\n *\n * A plain object is an object created by the `Object`\n * constructor or with a `[[Prototype]]` of `null`.\n */\n\n\nexport function isPlainObject(value) {\n if (!isObjectLike(value) || getTag(value) !== '[object Object]') {\n return false;\n }\n\n if (Object.getPrototypeOf(value) === null) {\n return true;\n }\n\n var proto = value;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(value) === proto;\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 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 { escape } from \"./escape-html.js\";\nimport { isPlainObject } from \"./isPlainObject.js\";\nexport var TAG_PLACEHOLDER = {\n highlightPreTag: '__ais-highlight__',\n highlightPostTag: '__/ais-highlight__'\n};\nexport var TAG_REPLACEMENT = {\n highlightPreTag: '',\n highlightPostTag: ''\n};\n\nfunction replaceTagsAndEscape(value) {\n return escape(value).replace(new RegExp(TAG_PLACEHOLDER.highlightPreTag, 'g'), TAG_REPLACEMENT.highlightPreTag).replace(new RegExp(TAG_PLACEHOLDER.highlightPostTag, 'g'), TAG_REPLACEMENT.highlightPostTag);\n}\n\nfunction recursiveEscape(input) {\n if (isPlainObject(input) && typeof input.value !== 'string') {\n return Object.keys(input).reduce(function (acc, key) {\n return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, recursiveEscape(input[key])));\n }, {});\n }\n\n if (Array.isArray(input)) {\n return input.map(recursiveEscape);\n }\n\n return _objectSpread(_objectSpread({}, input), {}, {\n value: replaceTagsAndEscape(input.value)\n });\n}\n\nexport function escapeHits(hits) {\n if (hits.__escaped === undefined) {\n // We don't override the value on hit because it will mutate the raw results\n // instead we make a shallow copy and we assign the escaped values on it.\n hits = hits.map(function (_ref) {\n var hit = _extends({}, _ref);\n\n if (hit._highlightResult) {\n hit._highlightResult = recursiveEscape(hit._highlightResult);\n }\n\n if (hit._snippetResult) {\n hit._snippetResult = recursiveEscape(hit._snippetResult);\n }\n\n return hit;\n });\n hits.__escaped = true;\n }\n\n return hits;\n}\nexport function escapeFacets(facetHits) {\n return facetHits.map(function (h) {\n return _objectSpread(_objectSpread({}, h), {}, {\n highlighted: replaceTagsAndEscape(h.highlighted)\n });\n });\n}","import { TAG_REPLACEMENT } from \"./escape-highlight.js\";\nexport function concatHighlightedParts(parts) {\n var highlightPreTag = TAG_REPLACEMENT.highlightPreTag,\n highlightPostTag = TAG_REPLACEMENT.highlightPostTag;\n return parts.map(function (part) {\n return part.isHighlighted ? highlightPreTag + part.value + highlightPostTag : part.value;\n }).join('');\n}","export function isFacetRefined(helper, facet, value) {\n if (helper.state.isHierarchicalFacet(facet)) {\n return helper.state.isHierarchicalFacetRefined(facet, value);\n } else if (helper.state.isConjunctiveFacet(facet)) {\n return helper.state.isFacetRefined(facet, value);\n } else {\n return helper.state.isDisjunctiveFacetRefined(facet, value);\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 { isFacetRefined } from \"./isFacetRefined.js\";\nexport function createSendEventForFacet(_ref) {\n var instantSearchInstance = _ref.instantSearchInstance,\n helper = _ref.helper,\n attr = _ref.attribute,\n widgetType = _ref.widgetType;\n\n var sendEventForFacet = function sendEventForFacet() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var eventType = args[0],\n facetValue = args[1],\n _args$ = args[2],\n eventName = _args$ === void 0 ? 'Filter Applied' : _args$;\n var attribute = typeof attr === 'string' ? attr : attr(facetValue);\n\n if (args.length === 1 && _typeof(args[0]) === 'object') {\n instantSearchInstance.sendEventToInsights(args[0]);\n } else if (eventType === 'click' && (args.length === 2 || args.length === 3)) {\n if (!isFacetRefined(helper, attribute, facetValue)) {\n // send event only when the facet is being checked \"ON\"\n instantSearchInstance.sendEventToInsights({\n insightsMethod: 'clickedFilters',\n widgetType: widgetType,\n eventType: eventType,\n payload: {\n eventName: eventName,\n index: helper.getIndex(),\n filters: [\"\".concat(attribute, \":\").concat(facetValue)]\n },\n attribute: attribute\n });\n }\n } else if (process.env.NODE_ENV === 'development') {\n throw new Error(\"You need to pass two arguments like:\\n sendEvent('click', facetValue);\\n\\nIf you want to send a custom payload, you can pass one object: sendEvent(customPayload);\\n\");\n }\n };\n\n return sendEventForFacet;\n}","export function serializePayload(payload) {\n return btoa(encodeURIComponent(JSON.stringify(payload)));\n}\nexport function deserializePayload(serialized) {\n return JSON.parse(decodeURIComponent(atob(serialized)));\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 { serializePayload } from \"./serializer.js\";\n\nfunction chunk(arr) {\n var chunkSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 20;\n var chunks = [];\n\n for (var i = 0; i < Math.ceil(arr.length / chunkSize); i++) {\n chunks.push(arr.slice(i * chunkSize, (i + 1) * chunkSize));\n }\n\n return chunks;\n}\n\nvar buildPayloads = function buildPayloads(_ref) {\n var index = _ref.index,\n widgetType = _ref.widgetType,\n methodName = _ref.methodName,\n args = _ref.args,\n isSearchStalled = _ref.isSearchStalled;\n\n // when there's only one argument, that means it's custom\n if (args.length === 1 && _typeof(args[0]) === 'object') {\n return [args[0]];\n }\n\n var eventType = args[0];\n var hits = args[1];\n var eventName = args[2];\n\n if (!hits) {\n if (process.env.NODE_ENV === 'development') {\n throw new Error(\"You need to pass hit or hits as the second argument like:\\n \".concat(methodName, \"(eventType, hit);\\n \"));\n } else {\n return [];\n }\n }\n\n if ((eventType === 'click' || eventType === 'conversion') && !eventName) {\n if (process.env.NODE_ENV === 'development') {\n throw new Error(\"You need to pass eventName as the third argument for 'click' or 'conversion' events like:\\n \".concat(methodName, \"('click', hit, 'Product Purchased');\\n\\n To learn more about event naming: https://www.algolia.com/doc/guides/getting-insights-and-analytics/search-analytics/click-through-and-conversions/in-depth/clicks-conversions-best-practices/\\n \"));\n } else {\n return [];\n }\n }\n\n var hitsArray = Array.isArray(hits) ? removeEscapedFromHits(hits) : [hits];\n\n if (hitsArray.length === 0) {\n return [];\n }\n\n var queryID = hitsArray[0].__queryID;\n var hitsChunks = chunk(hitsArray);\n var objectIDsByChunk = hitsChunks.map(function (batch) {\n return batch.map(function (hit) {\n return hit.objectID;\n });\n });\n var positionsByChunk = hitsChunks.map(function (batch) {\n return batch.map(function (hit) {\n return hit.__position;\n });\n });\n\n if (eventType === 'view') {\n if (isSearchStalled) {\n return [];\n }\n\n return hitsChunks.map(function (batch, i) {\n return {\n insightsMethod: 'viewedObjectIDs',\n widgetType: widgetType,\n eventType: eventType,\n payload: {\n eventName: eventName || 'Hits Viewed',\n index: index,\n objectIDs: objectIDsByChunk[i]\n },\n hits: batch\n };\n });\n } else if (eventType === 'click') {\n return hitsChunks.map(function (batch, i) {\n return {\n insightsMethod: 'clickedObjectIDsAfterSearch',\n widgetType: widgetType,\n eventType: eventType,\n payload: {\n eventName: eventName,\n index: index,\n queryID: queryID,\n objectIDs: objectIDsByChunk[i],\n positions: positionsByChunk[i]\n },\n hits: batch\n };\n });\n } else if (eventType === 'conversion') {\n return hitsChunks.map(function (batch, i) {\n return {\n insightsMethod: 'convertedObjectIDsAfterSearch',\n widgetType: widgetType,\n eventType: eventType,\n payload: {\n eventName: eventName,\n index: index,\n queryID: queryID,\n objectIDs: objectIDsByChunk[i]\n },\n hits: batch\n };\n });\n } else if (process.env.NODE_ENV === 'development') {\n throw new Error(\"eventType(\\\"\".concat(eventType, \"\\\") is not supported.\\n If you want to send a custom payload, you can pass one object: \").concat(methodName, \"(customPayload);\\n \"));\n } else {\n return [];\n }\n};\n\nfunction removeEscapedFromHits(hits) {\n // remove `hits.__escaped` without mutating\n return hits.slice();\n}\n\nexport function createSendEventForHits(_ref2) {\n var instantSearchInstance = _ref2.instantSearchInstance,\n index = _ref2.index,\n widgetType = _ref2.widgetType;\n\n var sendEventForHits = function sendEventForHits() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var payloads = buildPayloads({\n widgetType: widgetType,\n index: index,\n methodName: 'sendEvent',\n args: args,\n isSearchStalled: instantSearchInstance.status === 'stalled'\n });\n payloads.forEach(function (payload) {\n return instantSearchInstance.sendEventToInsights(payload);\n });\n };\n\n return sendEventForHits;\n}\nexport function createBindEventForHits(_ref3) {\n var index = _ref3.index,\n widgetType = _ref3.widgetType;\n\n var bindEventForHits = function bindEventForHits() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var payloads = buildPayloads({\n widgetType: widgetType,\n index: index,\n methodName: 'bindEvent',\n args: args,\n isSearchStalled: false\n });\n return payloads.length ? \"data-insights-event=\".concat(serializePayload(payloads)) : '';\n };\n\n return bindEventForHits;\n}","export function isIndexWidget(widget) {\n return widget.$$type === 'ais.index';\n}","import { isIndexWidget } from \"./isIndexWidget.js\";\nimport { checkIndexUiState } from \"./checkIndexUiState.js\";\nexport function setIndexHelperState(finalUiState, indexWidget) {\n var nextIndexUiState = finalUiState[indexWidget.getIndexId()] || {};\n\n if (process.env.NODE_ENV === 'development') {\n checkIndexUiState({\n index: indexWidget,\n indexUiState: nextIndexUiState\n });\n }\n\n indexWidget.getHelper().setState(indexWidget.getWidgetSearchParameters(indexWidget.getHelper().state, {\n uiState: nextIndexUiState\n }));\n indexWidget.getWidgets().filter(isIndexWidget).forEach(function (widget) {\n return setIndexHelperState(finalUiState, widget);\n });\n}","var nextMicroTask = Promise.resolve();\nexport function defer(callback) {\n var progress = null;\n var cancelled = false;\n\n var fn = function fn() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (progress !== null) {\n return;\n }\n\n progress = nextMicroTask.then(function () {\n progress = null;\n\n if (cancelled) {\n cancelled = false;\n return;\n }\n\n callback.apply(void 0, args);\n });\n };\n\n fn.wait = function () {\n if (progress === null) {\n throw new Error('The deferred function should be called before calling `wait()`');\n }\n\n return progress;\n };\n\n fn.cancel = function () {\n if (progress === null) {\n return;\n }\n\n cancelled = true;\n };\n\n return fn;\n}","export function createDocumentationLink(_ref) {\n var name = _ref.name,\n _ref$connector = _ref.connector,\n connector = _ref$connector === void 0 ? false : _ref$connector;\n return ['https://www.algolia.com/doc/api-reference/widgets/', name, '/js/', connector ? '#connector' : ''].join('');\n}\nexport function createDocumentationMessageGenerator() {\n for (var _len = arguments.length, widgets = new Array(_len), _key = 0; _key < _len; _key++) {\n widgets[_key] = arguments[_key];\n }\n\n var links = widgets.map(function (widget) {\n return createDocumentationLink(widget);\n }).join(', ');\n return function (message) {\n return [message, \"See documentation: \".concat(links)].filter(Boolean).join('\\n\\n');\n };\n}","// We aren't using the native `Array.prototype.find` because the refactor away from Lodash is not\n// published as a major version.\n// Relying on the `find` polyfill on user-land, which before was only required for niche use-cases,\n// was decided as too risky.\n// @MAJOR Replace with the native `Array.prototype.find` method\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find\nexport function find(items, predicate) {\n var value;\n\n for (var i = 0; i < items.length; i++) {\n value = items[i]; // inlined for performance: if (Call(predicate, thisArg, [value, i, list])) {\n\n if (predicate(value, i, items)) {\n return value;\n }\n }\n\n return undefined;\n}","// We aren't using the native `Array.prototype.findIndex` because the refactor away from Lodash is not\n// published as a major version.\n// Relying on the `findIndex` polyfill on user-land, which before was only required for niche use-cases,\n// was decided as too risky.\n// @MAJOR Replace with the native `Array.prototype.findIndex` method\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/findIndex\nexport function findIndex(array, comparator) {\n if (!Array.isArray(array)) {\n return -1;\n }\n\n for (var i = 0; i < array.length; i++) {\n if (comparator(array[i])) {\n return i;\n }\n }\n\n return -1;\n}","import { TAG_REPLACEMENT } from \"./escape-highlight.js\";\nexport function getHighlightedParts(highlightedValue) {\n var highlightPostTag = TAG_REPLACEMENT.highlightPostTag,\n highlightPreTag = TAG_REPLACEMENT.highlightPreTag;\n var splitByPreTag = highlightedValue.split(highlightPreTag);\n var firstValue = splitByPreTag.shift();\n var elements = !firstValue ? [] : [{\n value: firstValue,\n isHighlighted: false\n }];\n splitByPreTag.forEach(function (split) {\n var splitByPostTag = split.split(highlightPostTag);\n elements.push({\n value: splitByPostTag[0],\n isHighlighted: true\n });\n\n if (splitByPostTag[1] !== '') {\n elements.push({\n value: splitByPostTag[1],\n isHighlighted: false\n });\n }\n });\n return elements;\n}","import { unescape } from \"./escape-html.js\";\nvar hasAlphanumeric = new RegExp(/\\w/i);\nexport function getHighlightFromSiblings(parts, i) {\n var _parts, _parts2;\n\n var current = parts[i];\n var isNextHighlighted = ((_parts = parts[i + 1]) === null || _parts === void 0 ? void 0 : _parts.isHighlighted) || true;\n var isPreviousHighlighted = ((_parts2 = parts[i - 1]) === null || _parts2 === void 0 ? void 0 : _parts2.isHighlighted) || true;\n\n if (!hasAlphanumeric.test(unescape(current.value)) && isPreviousHighlighted === isNextHighlighted) {\n return isPreviousHighlighted;\n }\n\n return current.isHighlighted;\n}","export function getPropertyByPath(object, path) {\n var parts = Array.isArray(path) ? path : path.split('.');\n return parts.reduce(function (current, key) {\n return current && current[key];\n }, object);\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\nexport function addAbsolutePosition(hits, page, hitsPerPage) {\n return hits.map(function (hit, idx) {\n return _objectSpread(_objectSpread({}, hit), {}, {\n __position: hitsPerPage * page + idx + 1\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\nexport function addQueryID(hits, queryID) {\n if (!queryID) {\n return hits;\n }\n\n return hits.map(function (hit) {\n return _objectSpread(_objectSpread({}, hit), {}, {\n __queryID: queryID\n });\n });\n}","function isPrimitive(obj) {\n return obj !== Object(obj);\n}\n\nexport function isEqual(first, second) {\n if (first === second) {\n return true;\n }\n\n if (isPrimitive(first) || isPrimitive(second) || typeof first === 'function' || typeof second === 'function') {\n return first === second;\n }\n\n if (Object.keys(first).length !== Object.keys(second).length) {\n return false;\n }\n\n for (var _i = 0, _Object$keys = Object.keys(first); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n\n if (!(key in second)) {\n return false;\n }\n\n if (!isEqual(first[key], second[key])) {\n return false;\n }\n }\n\n return true;\n}","export function uniq(array) {\n return array.filter(function (value, index, self) {\n return self.indexOf(value) === index;\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 _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 { findIndex } from \"./findIndex.js\";\nimport { uniq } from \"./uniq.js\";\n\nvar mergeWithRest = function mergeWithRest(left, right) {\n var facets = right.facets,\n disjunctiveFacets = right.disjunctiveFacets,\n facetsRefinements = right.facetsRefinements,\n facetsExcludes = right.facetsExcludes,\n disjunctiveFacetsRefinements = right.disjunctiveFacetsRefinements,\n numericRefinements = right.numericRefinements,\n tagRefinements = right.tagRefinements,\n hierarchicalFacets = right.hierarchicalFacets,\n hierarchicalFacetsRefinements = right.hierarchicalFacetsRefinements,\n ruleContexts = right.ruleContexts,\n rest = _objectWithoutProperties(right, [\"facets\", \"disjunctiveFacets\", \"facetsRefinements\", \"facetsExcludes\", \"disjunctiveFacetsRefinements\", \"numericRefinements\", \"tagRefinements\", \"hierarchicalFacets\", \"hierarchicalFacetsRefinements\", \"ruleContexts\"]);\n\n return left.setQueryParameters(rest);\n}; // Merge facets\n\n\nvar mergeFacets = function mergeFacets(left, right) {\n return right.facets.reduce(function (_, name) {\n return _.addFacet(name);\n }, left);\n};\n\nvar mergeDisjunctiveFacets = function mergeDisjunctiveFacets(left, right) {\n return right.disjunctiveFacets.reduce(function (_, name) {\n return _.addDisjunctiveFacet(name);\n }, left);\n};\n\nvar mergeHierarchicalFacets = function mergeHierarchicalFacets(left, right) {\n return left.setQueryParameters({\n hierarchicalFacets: right.hierarchicalFacets.reduce(function (facets, facet) {\n var index = findIndex(facets, function (_) {\n return _.name === facet.name;\n });\n\n if (index === -1) {\n return facets.concat(facet);\n }\n\n var nextFacets = facets.slice();\n nextFacets.splice(index, 1, facet);\n return nextFacets;\n }, left.hierarchicalFacets)\n });\n}; // Merge facet refinements\n\n\nvar mergeTagRefinements = function mergeTagRefinements(left, right) {\n return right.tagRefinements.reduce(function (_, value) {\n return _.addTagRefinement(value);\n }, left);\n};\n\nvar mergeFacetRefinements = function mergeFacetRefinements(left, right) {\n return left.setQueryParameters({\n facetsRefinements: _objectSpread(_objectSpread({}, left.facetsRefinements), right.facetsRefinements)\n });\n};\n\nvar mergeFacetsExcludes = function mergeFacetsExcludes(left, right) {\n return left.setQueryParameters({\n facetsExcludes: _objectSpread(_objectSpread({}, left.facetsExcludes), right.facetsExcludes)\n });\n};\n\nvar mergeDisjunctiveFacetsRefinements = function mergeDisjunctiveFacetsRefinements(left, right) {\n return left.setQueryParameters({\n disjunctiveFacetsRefinements: _objectSpread(_objectSpread({}, left.disjunctiveFacetsRefinements), right.disjunctiveFacetsRefinements)\n });\n};\n\nvar mergeNumericRefinements = function mergeNumericRefinements(left, right) {\n return left.setQueryParameters({\n numericRefinements: _objectSpread(_objectSpread({}, left.numericRefinements), right.numericRefinements)\n });\n};\n\nvar mergeHierarchicalFacetsRefinements = function mergeHierarchicalFacetsRefinements(left, right) {\n return left.setQueryParameters({\n hierarchicalFacetsRefinements: _objectSpread(_objectSpread({}, left.hierarchicalFacetsRefinements), right.hierarchicalFacetsRefinements)\n });\n};\n\nvar mergeRuleContexts = function mergeRuleContexts(left, right) {\n var ruleContexts = uniq([].concat(left.ruleContexts).concat(right.ruleContexts).filter(Boolean));\n\n if (ruleContexts.length > 0) {\n return left.setQueryParameters({\n ruleContexts: ruleContexts\n });\n }\n\n return left;\n};\n\nexport var mergeSearchParameters = function mergeSearchParameters() {\n for (var _len = arguments.length, parameters = new Array(_len), _key = 0; _key < _len; _key++) {\n parameters[_key] = arguments[_key];\n }\n\n return parameters.reduce(function (left, right) {\n var hierarchicalFacetsRefinementsMerged = mergeHierarchicalFacetsRefinements(left, right);\n var hierarchicalFacetsMerged = mergeHierarchicalFacets(hierarchicalFacetsRefinementsMerged, right);\n var tagRefinementsMerged = mergeTagRefinements(hierarchicalFacetsMerged, right);\n var numericRefinementsMerged = mergeNumericRefinements(tagRefinementsMerged, right);\n var disjunctiveFacetsRefinementsMerged = mergeDisjunctiveFacetsRefinements(numericRefinementsMerged, right);\n var facetsExcludesMerged = mergeFacetsExcludes(disjunctiveFacetsRefinementsMerged, right);\n var facetRefinementsMerged = mergeFacetRefinements(facetsExcludesMerged, right);\n var disjunctiveFacetsMerged = mergeDisjunctiveFacets(facetRefinementsMerged, right);\n var ruleContextsMerged = mergeRuleContexts(disjunctiveFacetsMerged, right);\n var facetsMerged = mergeFacets(ruleContextsMerged, right);\n return mergeWithRest(facetsMerged, right);\n });\n};","export function createInitArgs(instantSearchInstance, parent, uiState) {\n var helper = parent.getHelper();\n return {\n uiState: uiState,\n helper: helper,\n parent: parent,\n instantSearchInstance: instantSearchInstance,\n state: helper.state,\n renderState: instantSearchInstance.renderState,\n templatesConfig: instantSearchInstance.templatesConfig,\n createURL: parent.createURL,\n scopedResults: [],\n searchMetadata: {\n isSearchStalled: instantSearchInstance.status === 'stalled'\n },\n status: instantSearchInstance.status,\n error: instantSearchInstance.error\n };\n}\nexport function createRenderArgs(instantSearchInstance, parent) {\n var results = parent.getResults();\n return {\n helper: parent.getHelper(),\n parent: parent,\n instantSearchInstance: instantSearchInstance,\n results: results,\n scopedResults: parent.getScopedResults(),\n state: results._state,\n renderState: instantSearchInstance.renderState,\n templatesConfig: instantSearchInstance.templatesConfig,\n createURL: parent.createURL,\n searchMetadata: {\n isSearchStalled: instantSearchInstance.status === 'stalled'\n },\n status: instantSearchInstance.status,\n error: instantSearchInstance.error\n };\n}","export function resolveSearchParameters(current) {\n var parent = current.getParent();\n var states = [current.getHelper().state];\n\n while (parent !== null) {\n states = [parent.getHelper().state].concat(states);\n parent = parent.getParent();\n }\n\n return states;\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\nimport { getHighlightFromSiblings } from \"./getHighlightFromSiblings.js\";\nexport function reverseHighlightedParts(parts) {\n if (!parts.some(function (part) {\n return part.isHighlighted;\n })) {\n return parts.map(function (part) {\n return _objectSpread(_objectSpread({}, part), {}, {\n isHighlighted: false\n });\n });\n }\n\n return parts.map(function (part, i) {\n return _objectSpread(_objectSpread({}, part), {}, {\n isHighlighted: !getHighlightFromSiblings(parts, i)\n });\n });\n}","// eslint-disable-next-line no-restricted-globals\n\n/**\n * Runs code on browser environments safely.\n */\nexport function safelyRunOnBrowser(callback) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n fallback: function fallback() {\n return undefined;\n }\n },\n fallback = _ref.fallback;\n\n // eslint-disable-next-line no-restricted-globals\n if (typeof window === 'undefined') {\n return fallback();\n } // eslint-disable-next-line no-restricted-globals\n\n\n return callback({\n window: window\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\nimport algoliasearchHelper from 'algoliasearch-helper';\nimport { createDocumentationMessageGenerator, isPlainObject, mergeSearchParameters, noop } from \"../../lib/utils/index.js\";\n/**\n * Refine the given search parameters.\n */\n\nvar withUsage = createDocumentationMessageGenerator({\n name: 'configure',\n connector: true\n});\n\nfunction getInitialSearchParameters(state, widgetParams) {\n // We leverage the helper internals to remove the `widgetParams` from\n // the state. The function `setQueryParameters` omits the values that\n // are `undefined` on the next state.\n return state.setQueryParameters(Object.keys(widgetParams.searchParameters).reduce(function (acc, key) {\n return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, undefined));\n }, {}));\n}\n\nvar connectConfigure = function connectConfigure() {\n var renderFn = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : noop;\n var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n return function (widgetParams) {\n if (!widgetParams || !isPlainObject(widgetParams.searchParameters)) {\n throw new Error(withUsage('The `searchParameters` option expects an object.'));\n }\n\n var connectorState = {};\n\n function refine(helper) {\n return function (searchParameters) {\n // Merge new `searchParameters` with the ones set from other widgets\n var actualState = getInitialSearchParameters(helper.state, widgetParams);\n var nextSearchParameters = mergeSearchParameters(actualState, new algoliasearchHelper.SearchParameters(searchParameters)); // Update original `widgetParams.searchParameters` to the new refined one\n\n widgetParams.searchParameters = searchParameters; // Trigger a search with the resolved search parameters\n\n helper.setState(nextSearchParameters).search();\n };\n }\n\n return {\n $$type: 'ais.configure',\n init: function init(initOptions) {\n var instantSearchInstance = initOptions.instantSearchInstance;\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(initOptions)), {}, {\n instantSearchInstance: instantSearchInstance\n }), true);\n },\n render: function render(renderOptions) {\n var instantSearchInstance = renderOptions.instantSearchInstance;\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(renderOptions)), {}, {\n instantSearchInstance: instantSearchInstance\n }), false);\n },\n dispose: function dispose(_ref) {\n var state = _ref.state;\n unmountFn();\n return getInitialSearchParameters(state, widgetParams);\n },\n getRenderState: function getRenderState(renderState, renderOptions) {\n var _renderState$configur;\n\n var widgetRenderState = this.getWidgetRenderState(renderOptions);\n return _objectSpread(_objectSpread({}, renderState), {}, {\n configure: _objectSpread(_objectSpread({}, widgetRenderState), {}, {\n widgetParams: _objectSpread(_objectSpread({}, widgetRenderState.widgetParams), {}, {\n searchParameters: mergeSearchParameters(new algoliasearchHelper.SearchParameters((_renderState$configur = renderState.configure) === null || _renderState$configur === void 0 ? void 0 : _renderState$configur.widgetParams.searchParameters), new algoliasearchHelper.SearchParameters(widgetRenderState.widgetParams.searchParameters)).getQueryParams()\n })\n })\n });\n },\n getWidgetRenderState: function getWidgetRenderState(_ref2) {\n var helper = _ref2.helper;\n\n if (!connectorState.refine) {\n connectorState.refine = refine(helper);\n }\n\n return {\n refine: connectorState.refine,\n widgetParams: widgetParams\n };\n },\n getWidgetSearchParameters: function getWidgetSearchParameters(state, _ref3) {\n var uiState = _ref3.uiState;\n return mergeSearchParameters(state, new algoliasearchHelper.SearchParameters(_objectSpread(_objectSpread({}, uiState.configure), widgetParams.searchParameters)));\n },\n getWidgetUiState: function getWidgetUiState(uiState) {\n return _objectSpread(_objectSpread({}, uiState), {}, {\n configure: _objectSpread(_objectSpread({}, uiState.configure), widgetParams.searchParameters)\n });\n }\n };\n };\n};\n\nexport default connectConfigure;","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","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 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 arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _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}","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 objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\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}","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 _typeof from \"@babel/runtime/helpers/esm/typeof\";\n\n/* eslint-disable complexity */\n\n/*\n * Code taken from dequal/lite v2.0.0\n * https://github.com/lukeed/dequal/blob/9aa73181ac7e081cd330cac67d313632ac04bb02/src/lite.js\n *\n * It adds a 3rd argument `compare(a, b)` that lets execute custom logic to\n * compare values.\n * We use it to skip comparing function references.\n */\nvar has = Object.prototype.hasOwnProperty;\nexport function dequal(foo, bar, compare) {\n // start of custom implementation\n if (compare !== null && compare !== void 0 && compare(foo, bar)) {\n return true;\n } // end of custom implementation\n\n\n var ctor;\n var len;\n if (foo === bar) return true;\n\n if (foo && bar && (ctor = foo.constructor) === bar.constructor) {\n if (ctor === Date) return foo.getTime() === bar.getTime();\n if (ctor === RegExp) return foo.toString() === bar.toString();\n\n if (ctor === Array) {\n if ((len = foo.length) === bar.length) {\n while (len-- && dequal(foo[len], bar[len], compare)) {\n ;\n }\n }\n\n return len === -1;\n }\n\n if (!ctor || _typeof(foo) === 'object') {\n len = 0; // eslint-disable-next-line guard-for-in, no-restricted-syntax\n\n for (ctor in foo) {\n if (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;\n if (!(ctor in bar) || !dequal(foo[ctor], bar[ctor], compare)) return false;\n }\n\n return Object.keys(bar).length === len;\n }\n } // eslint-disable-next-line no-self-compare\n\n\n return foo !== foo && bar !== bar;\n}","import algoliasearchHelper from 'algoliasearch-helper';\nexport function createSearchResults(state) {\n var _state$query, _state$page, _state$hitsPerPage;\n\n return new algoliasearchHelper.SearchResults(state, [{\n query: (_state$query = state.query) !== null && _state$query !== void 0 ? _state$query : '',\n page: (_state$page = state.page) !== null && _state$page !== void 0 ? _state$page : 0,\n hitsPerPage: (_state$hitsPerPage = state.hitsPerPage) !== null && _state$hitsPerPage !== void 0 ? _state$hitsPerPage : 20,\n hits: [],\n nbHits: 0,\n nbPages: 0,\n params: '',\n exhaustiveNbHits: true,\n exhaustiveFacetsCount: true,\n processingTimeMS: 0,\n index: state.index\n }], {\n /** used by connectors to prevent persisting these results */\n __isArtificial: true\n });\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\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\nimport { createSearchResults } from \"./createSearchResults.js\";\nexport function getIndexSearchResults(indexWidget) {\n var helper = indexWidget.getHelper();\n var results = // On SSR, we get the results injected on the Index.\n indexWidget.getResults() || // On the browser, we create fallback results based on the helper state.\n createSearchResults(helper.state);\n var scopedResults = indexWidget.getScopedResults().map(function (scopedResult) {\n var fallbackResults = scopedResult.indexId === indexWidget.getIndexId() ? results : createSearchResults(scopedResult.helper.state);\n return _objectSpread(_objectSpread({}, scopedResult), {}, {\n // We keep `results` from being `null`.\n results: scopedResult.results || fallbackResults\n });\n });\n return {\n results: results,\n scopedResults: scopedResults\n };\n}","/**\n * Throws an error if the condition is not met.\n *\n * The error is exhaustive in development, and becomes generic in production.\n *\n * This is used to make development a better experience to provide guidance as\n * to where the error comes from.\n */\nexport function invariant(condition, message) {\n if (condition) {\n return;\n }\n\n if (!(process.env.NODE_ENV !== 'production')) {\n throw new Error('Invariant failed');\n }\n\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\"[InstantSearch] \".concat(typeof message === 'function' ? message() : message));\n }\n}","import { createContext } from 'react';\nexport var IndexContext = /*#__PURE__*/createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n IndexContext.displayName = 'Index';\n}","import { useContext } from 'react';\nimport { invariant } from \"./invariant.js\";\nimport { IndexContext } from \"./IndexContext.js\";\nexport function useIndexContext() {\n var context = useContext(IndexContext);\n invariant(context !== null, 'The component must be used within .');\n return context;\n}","import { createContext } from 'react';\nexport var InstantSearchContext = /*#__PURE__*/createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n InstantSearchContext.displayName = 'InstantSearch';\n}","import { useContext } from 'react';\nimport { invariant } from \"./invariant.js\";\nimport { InstantSearchContext } from \"./InstantSearchContext.js\";\nexport function useInstantSearchContext() {\n var search = useContext(InstantSearchContext);\n invariant(search !== null, 'Hooks must be used inside the component.\\n\\n' + 'They are not compatible with the `react-instantsearch-core` and `react-instantsearch-dom` packages, so make sure to use the component from `react-instantsearch-hooks`.');\n return search;\n}","import { createContext } from 'react';\nexport var InstantSearchServerContext = /*#__PURE__*/createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n InstantSearchServerContext.displayName = 'InstantSearchServer';\n}","import { useContext } from 'react';\nimport { InstantSearchServerContext } from \"../components/InstantSearchServerContext.js\";\nexport function useInstantSearchServerContext() {\n return useContext(InstantSearchServerContext);\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEffect, useState } from 'react';\nimport { dequal } from \"./dequal.js\";\nexport function useStableValue(value) {\n var _useState = useState(function () {\n return value;\n }),\n _useState2 = _slicedToArray(_useState, 2),\n stableValue = _useState2[0],\n setStableValue = _useState2[1];\n\n useEffect(function () {\n if (!dequal(stableValue, value)) {\n setStableValue(value);\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, [value]);\n return stableValue;\n}","import { useEffect, useLayoutEffect } from 'react';\n/**\n * `useLayoutEffect` that doesn't show a warning when server-side rendering.\n *\n * It uses `useEffect` on the server (no-op), and `useLayoutEffect` on the browser.\n */\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;","import { useEffect, useRef } from 'react';\nimport { dequal } from \"./dequal.js\";\nimport { useInstantSearchContext } from \"./useInstantSearchContext.js\";\nimport { useIsomorphicLayoutEffect } from \"./useIsomorphicLayoutEffect.js\";\nexport function useWidget(_ref) {\n var widget = _ref.widget,\n parentIndex = _ref.parentIndex,\n props = _ref.props,\n shouldSsr = _ref.shouldSsr;\n var prevPropsRef = useRef(props);\n useEffect(function () {\n prevPropsRef.current = props;\n }, [props]);\n var prevWidgetRef = useRef(widget);\n useEffect(function () {\n prevWidgetRef.current = widget;\n }, [widget]);\n var cleanupTimerRef = useRef(null);\n var shouldAddWidgetEarly = shouldSsr && !parentIndex.getWidgets().includes(widget);\n var search = useInstantSearchContext(); // This effect is responsible for adding, removing, and updating the widget.\n // We need to support scenarios where the widget is remounted quickly, like in\n // Strict Mode, so that we don't lose its state, and therefore that we don't\n // break routing.\n\n useIsomorphicLayoutEffect(function () {\n var previousWidget = prevWidgetRef.current;\n\n function cleanup() {\n if (search._preventWidgetCleanup) return;\n parentIndex.removeWidgets([previousWidget]);\n } // Scenario 1: the widget is added for the first time.\n\n\n if (cleanupTimerRef.current === null) {\n if (!shouldAddWidgetEarly) {\n parentIndex.addWidgets([widget]);\n }\n } // Scenario 2: the widget is rerendered or updated.\n else {\n // We cancel the original effect cleanup because it may not be necessary if\n // props haven't changed. (We manually call it if it is below.)\n clearTimeout(cleanupTimerRef.current); // Warning: if an unstable function prop is provided, `dequal` is not able\n // to keep its reference and therefore will consider that props did change.\n // This could unsollicitely remove/add the widget, therefore forget its state,\n // and could be a source of confusion.\n // If users face this issue, we should advise them to provide stable function\n // references.\n\n var arePropsEqual = dequal(props, prevPropsRef.current); // If props did change, then we execute the cleanup function instantly\n // and then add the widget back. This lets us add the widget without\n // waiting for the scheduled cleanup function to finish (that we canceled\n // above).\n\n if (!arePropsEqual) {\n cleanup();\n parentIndex.addWidgets([widget]);\n }\n }\n\n return function () {\n // We don't remove the widget right away, but rather schedule it so that\n // we're able to cancel it in the next effect.\n cleanupTimerRef.current = setTimeout(cleanup);\n };\n }, [parentIndex, widget, shouldAddWidgetEarly, search, props]);\n\n if (shouldAddWidgetEarly) {\n parentIndex.addWidgets([widget]);\n }\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"instantSearchInstance\", \"widgetParams\"],\n _excluded2 = [\"widgetParams\"];\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\nimport { useMemo, useRef, useState } from 'react';\nimport { dequal } from \"../lib/dequal.js\";\nimport { getIndexSearchResults } from \"../lib/getIndexSearchResults.js\";\nimport { useIndexContext } from \"../lib/useIndexContext.js\";\nimport { useInstantSearchContext } from \"../lib/useInstantSearchContext.js\";\nimport { useInstantSearchServerContext } from \"../lib/useInstantSearchServerContext.js\";\nimport { useStableValue } from \"../lib/useStableValue.js\";\nimport { useWidget } from \"../lib/useWidget.js\";\nexport function useConnector(connector) {\n var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var additionalWidgetProperties = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var serverContext = useInstantSearchServerContext();\n var search = useInstantSearchContext();\n var parentIndex = useIndexContext();\n var stableProps = useStableValue(props);\n var stableAdditionalWidgetProperties = useStableValue(additionalWidgetProperties);\n var shouldSetStateRef = useRef(true);\n var previousRenderStateRef = useRef(null);\n var widget = useMemo(function () {\n var createWidget = connector(function (connectorState, isFirstRender) {\n // We skip the `init` widget render because:\n // - We rely on `getWidgetRenderState` to compute the initial state before\n // the InstantSearch.js lifecycle starts.\n // - It prevents UI flashes when updating the widget props.\n if (isFirstRender) {\n shouldSetStateRef.current = true;\n return;\n } // There are situations where InstantSearch.js may render widgets slightly\n // after they're removed by React, and thus try to update the React state\n // on unmounted components. React 16 and 17 consider them as memory leaks\n // and display a warning.\n // This happens in when `attributesToRender` contains a\n // value without an attribute previously mounted. React will unmount the\n // component controlled by that attribute, but InstantSearch.js will stay\n // unaware of this change until the render pass finishes, and therefore\n // notifies of a state change.\n // This ref lets us track this situation and ignore these state updates.\n\n\n if (shouldSetStateRef.current) {\n var instantSearchInstance = connectorState.instantSearchInstance,\n widgetParams = connectorState.widgetParams,\n renderState = _objectWithoutProperties(connectorState, _excluded); // We only update the state when a widget render state param changes,\n // except for functions. We ignore function reference changes to avoid\n // infinite loops. It's safe to omit them because they get updated\n // every time another render param changes.\n\n\n if (!dequal(renderState, previousRenderStateRef.current, function (a, b) {\n return (a === null || a === void 0 ? void 0 : a.constructor) === Function && (b === null || b === void 0 ? void 0 : b.constructor) === Function;\n })) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n setState(renderState);\n previousRenderStateRef.current = renderState;\n }\n }\n }, function () {\n // We'll ignore the next state update until we know for sure that\n // InstantSearch.js re-inits the component.\n shouldSetStateRef.current = false;\n });\n return _objectSpread(_objectSpread({}, createWidget(stableProps)), stableAdditionalWidgetProperties);\n }, [connector, stableProps, stableAdditionalWidgetProperties]);\n\n var _useState = useState(function () {\n if (widget.getWidgetRenderState) {\n var _widget$getWidgetSear;\n\n // The helper exists because we've started InstantSearch.\n var helper = parentIndex.getHelper();\n var uiState = parentIndex.getWidgetUiState({})[parentIndex.getIndexId()];\n helper.state = ((_widget$getWidgetSear = widget.getWidgetSearchParameters) === null || _widget$getWidgetSear === void 0 ? void 0 : _widget$getWidgetSear.call(widget, helper.state, {\n uiState: uiState\n })) || helper.state;\n\n var _getIndexSearchResult = getIndexSearchResults(parentIndex),\n results = _getIndexSearchResult.results,\n scopedResults = _getIndexSearchResult.scopedResults; // We get the widget render state by providing the same parameters as\n // InstantSearch provides to the widget's `render` method.\n // See https://github.com/algolia/instantsearch.js/blob/019cd18d0de6dd320284aa4890541b7fe2198c65/src/widgets/index/index.ts#L604-L617\n\n\n // We get the widget render state by providing the same parameters as\n // InstantSearch provides to the widget's `render` method.\n // See https://github.com/algolia/instantsearch.js/blob/019cd18d0de6dd320284aa4890541b7fe2198c65/src/widgets/index/index.ts#L604-L617\n var _widget$getWidgetRend = widget.getWidgetRenderState({\n helper: helper,\n parent: parentIndex,\n instantSearchInstance: search,\n results: results,\n scopedResults: scopedResults,\n state: helper.state,\n renderState: search.renderState,\n templatesConfig: search.templatesConfig,\n createURL: parentIndex.createURL,\n searchMetadata: {\n isSearchStalled: search.status === 'stalled'\n },\n status: search.status,\n error: search.error\n }),\n widgetParams = _widget$getWidgetRend.widgetParams,\n renderState = _objectWithoutProperties(_widget$getWidgetRend, _excluded2);\n\n return renderState;\n }\n\n return {};\n }),\n _useState2 = _slicedToArray(_useState, 2),\n state = _useState2[0],\n setState = _useState2[1];\n\n useWidget({\n widget: widget,\n parentIndex: parentIndex,\n props: stableProps,\n shouldSsr: Boolean(serverContext)\n });\n return state;\n}","import connectConfigure from \"instantsearch.js/es/connectors/configure/connectConfigure.js\";\nimport { useConnector } from \"../hooks/useConnector.js\";\nexport function useConfigure(props, additionalWidgetProperties) {\n return useConnector(connectConfigure, {\n searchParameters: props\n }, additionalWidgetProperties);\n}","import { useConfigure } from \"../connectors/useConfigure.js\";\nexport function Configure(props) {\n useConfigure(props, {\n $$widgetType: 'ais.configure'\n });\n return null;\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\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 algoliasearchHelper from 'algoliasearch-helper';\nimport { checkIndexUiState, createDocumentationMessageGenerator, resolveSearchParameters, mergeSearchParameters, warning, isIndexWidget, createInitArgs, createRenderArgs } from \"../../lib/utils/index.js\";\nvar withUsage = createDocumentationMessageGenerator({\n name: 'index-widget'\n});\n\n/**\n * This is the same content as helper._change / setState, but allowing for extra\n * UiState to be synchronized.\n * see: https://github.com/algolia/algoliasearch-helper-js/blob/6b835ffd07742f2d6b314022cce6848f5cfecd4a/src/algoliasearch.helper.js#L1311-L1324\n */\nfunction privateHelperSetState(helper, _ref) {\n var state = _ref.state,\n isPageReset = _ref.isPageReset,\n _uiState = _ref._uiState;\n\n if (state !== helper.state) {\n helper.state = state;\n helper.emit('change', {\n state: helper.state,\n results: helper.lastResults,\n isPageReset: isPageReset,\n _uiState: _uiState\n });\n }\n}\n\nfunction getLocalWidgetsUiState(widgets, widgetStateOptions) {\n var initialUiState = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return widgets.reduce(function (uiState, widget) {\n if (isIndexWidget(widget)) {\n return uiState;\n }\n\n if (!widget.getWidgetUiState && !widget.getWidgetState) {\n return uiState;\n }\n\n if (widget.getWidgetUiState) {\n return widget.getWidgetUiState(uiState, widgetStateOptions);\n }\n\n return widget.getWidgetState(uiState, widgetStateOptions);\n }, initialUiState);\n}\n\nfunction getLocalWidgetsSearchParameters(widgets, widgetSearchParametersOptions) {\n var initialSearchParameters = widgetSearchParametersOptions.initialSearchParameters,\n rest = _objectWithoutProperties(widgetSearchParametersOptions, [\"initialSearchParameters\"]);\n\n return widgets.filter(function (widget) {\n return !isIndexWidget(widget);\n }).reduce(function (state, widget) {\n if (!widget.getWidgetSearchParameters) {\n return state;\n }\n\n return widget.getWidgetSearchParameters(state, rest);\n }, initialSearchParameters);\n}\n\nfunction resetPageFromWidgets(widgets) {\n var indexWidgets = widgets.filter(isIndexWidget);\n\n if (indexWidgets.length === 0) {\n return;\n }\n\n indexWidgets.forEach(function (widget) {\n var widgetHelper = widget.getHelper();\n privateHelperSetState(widgetHelper, {\n state: widgetHelper.state.resetPage(),\n isPageReset: true\n });\n resetPageFromWidgets(widget.getWidgets());\n });\n}\n\nfunction resolveScopedResultsFromWidgets(widgets) {\n var indexWidgets = widgets.filter(isIndexWidget);\n return indexWidgets.reduce(function (scopedResults, current) {\n return scopedResults.concat.apply(scopedResults, [{\n indexId: current.getIndexId(),\n results: current.getResults(),\n helper: current.getHelper()\n }].concat(_toConsumableArray(resolveScopedResultsFromWidgets(current.getWidgets()))));\n }, []);\n}\n\nvar index = function index(widgetParams) {\n if (widgetParams === undefined || widgetParams.indexName === undefined) {\n throw new Error(withUsage('The `indexName` option is required.'));\n }\n\n var indexName = widgetParams.indexName,\n _widgetParams$indexId = widgetParams.indexId,\n indexId = _widgetParams$indexId === void 0 ? indexName : _widgetParams$indexId;\n var localWidgets = [];\n var localUiState = {};\n var localInstantSearchInstance = null;\n var localParent = null;\n var helper = null;\n var derivedHelper = null;\n return {\n $$type: 'ais.index',\n $$widgetType: 'ais.index',\n getIndexName: function getIndexName() {\n return indexName;\n },\n getIndexId: function getIndexId() {\n return indexId;\n },\n getHelper: function getHelper() {\n return helper;\n },\n getResults: function getResults() {\n return derivedHelper && derivedHelper.lastResults;\n },\n getScopedResults: function getScopedResults() {\n var widgetParent = this.getParent(); // If the widget is the root, we consider itself as the only sibling.\n\n var widgetSiblings = widgetParent ? widgetParent.getWidgets() : [this];\n return resolveScopedResultsFromWidgets(widgetSiblings);\n },\n getParent: function getParent() {\n return localParent;\n },\n createURL: function createURL(nextState) {\n return localInstantSearchInstance._createURL(_defineProperty({}, indexId, getLocalWidgetsUiState(localWidgets, {\n searchParameters: nextState,\n helper: helper\n })));\n },\n getWidgets: function getWidgets() {\n return localWidgets;\n },\n addWidgets: function addWidgets(widgets) {\n var _this = this;\n\n if (!Array.isArray(widgets)) {\n throw new Error(withUsage('The `addWidgets` method expects an array of widgets.'));\n }\n\n if (widgets.some(function (widget) {\n return typeof widget.init !== 'function' && typeof widget.render !== 'function';\n })) {\n throw new Error(withUsage('The widget definition expects a `render` and/or an `init` method.'));\n }\n\n localWidgets = localWidgets.concat(widgets);\n\n if (localInstantSearchInstance && Boolean(widgets.length)) {\n privateHelperSetState(helper, {\n state: getLocalWidgetsSearchParameters(localWidgets, {\n uiState: localUiState,\n initialSearchParameters: helper.state\n }),\n _uiState: localUiState\n }); // We compute the render state before calling `init` in a separate loop\n // to construct the whole render state object that is then passed to\n // `init`.\n\n widgets.forEach(function (widget) {\n if (widget.getRenderState) {\n var renderState = widget.getRenderState(localInstantSearchInstance.renderState[_this.getIndexId()] || {}, createInitArgs(localInstantSearchInstance, _this, localInstantSearchInstance._initialUiState));\n storeRenderState({\n renderState: renderState,\n instantSearchInstance: localInstantSearchInstance,\n parent: _this\n });\n }\n });\n widgets.forEach(function (widget) {\n if (widget.init) {\n widget.init(createInitArgs(localInstantSearchInstance, _this, localInstantSearchInstance._initialUiState));\n }\n });\n localInstantSearchInstance.scheduleSearch();\n }\n\n return this;\n },\n removeWidgets: function removeWidgets(widgets) {\n var _this2 = this;\n\n if (!Array.isArray(widgets)) {\n throw new Error(withUsage('The `removeWidgets` method expects an array of widgets.'));\n }\n\n if (widgets.some(function (widget) {\n return typeof widget.dispose !== 'function';\n })) {\n throw new Error(withUsage('The widget definition expects a `dispose` method.'));\n }\n\n localWidgets = localWidgets.filter(function (widget) {\n return widgets.indexOf(widget) === -1;\n });\n\n if (localInstantSearchInstance && Boolean(widgets.length)) {\n var nextState = widgets.reduce(function (state, widget) {\n // the `dispose` method exists at this point we already assert it\n var next = widget.dispose({\n helper: helper,\n state: state,\n parent: _this2\n });\n return next || state;\n }, helper.state);\n localUiState = getLocalWidgetsUiState(localWidgets, {\n searchParameters: nextState,\n helper: helper\n });\n helper.setState(getLocalWidgetsSearchParameters(localWidgets, {\n uiState: localUiState,\n initialSearchParameters: nextState\n }));\n\n if (localWidgets.length) {\n localInstantSearchInstance.scheduleSearch();\n }\n }\n\n return this;\n },\n init: function init(_ref2) {\n var _this3 = this,\n _instantSearchInstanc;\n\n var instantSearchInstance = _ref2.instantSearchInstance,\n parent = _ref2.parent,\n uiState = _ref2.uiState;\n\n if (helper !== null) {\n // helper is already initialized, therefore we do not need to set up\n // any listeners\n return;\n }\n\n localInstantSearchInstance = instantSearchInstance;\n localParent = parent;\n localUiState = uiState[indexId] || {}; // The `mainHelper` is already defined at this point. The instance is created\n // inside InstantSearch at the `start` method, which occurs before the `init`\n // step.\n\n var mainHelper = instantSearchInstance.mainHelper;\n var parameters = getLocalWidgetsSearchParameters(localWidgets, {\n uiState: localUiState,\n initialSearchParameters: new algoliasearchHelper.SearchParameters({\n index: indexName\n })\n }); // This Helper is only used for state management we do not care about the\n // `searchClient`. Only the \"main\" Helper created at the `InstantSearch`\n // level is aware of the client.\n\n helper = algoliasearchHelper({}, parameters.index, parameters); // We forward the call to `search` to the \"main\" instance of the Helper\n // which is responsible for managing the queries (it's the only one that is\n // aware of the `searchClient`).\n\n helper.search = function () {\n if (instantSearchInstance.onStateChange) {\n instantSearchInstance.onStateChange({\n uiState: instantSearchInstance.mainIndex.getWidgetUiState({}),\n setUiState: function setUiState(nextState) {\n return instantSearchInstance.setUiState(nextState, false);\n }\n }); // We don't trigger a search when controlled because it becomes the\n // responsibility of `setUiState`.\n\n return mainHelper;\n }\n\n return mainHelper.search();\n };\n\n helper.searchWithoutTriggeringOnStateChange = function () {\n return mainHelper.search();\n }; // We use the same pattern for the `searchForFacetValues`.\n\n\n helper.searchForFacetValues = function (facetName, facetValue, maxFacetHits, userState) {\n var state = helper.state.setQueryParameters(userState);\n return mainHelper.searchForFacetValues(facetName, facetValue, maxFacetHits, state);\n };\n\n derivedHelper = mainHelper.derive(function () {\n return mergeSearchParameters.apply(void 0, _toConsumableArray(resolveSearchParameters(_this3)));\n });\n var indexInitialResults = (_instantSearchInstanc = instantSearchInstance._initialResults) === null || _instantSearchInstanc === void 0 ? void 0 : _instantSearchInstanc[this.getIndexId()];\n\n if (indexInitialResults) {\n // We restore the shape of the results provided to the instance to respect\n // the helper's structure.\n var results = new algoliasearchHelper.SearchResults(new algoliasearchHelper.SearchParameters(indexInitialResults.state), indexInitialResults.results);\n derivedHelper.lastResults = results;\n helper.lastResults = results;\n } // Subscribe to the Helper state changes for the page before widgets\n // are initialized. This behavior mimics the original one of the Helper.\n // It makes sense to replicate it at the `init` step. We have another\n // listener on `change` below, once `init` is done.\n\n\n helper.on('change', function (_ref3) {\n var isPageReset = _ref3.isPageReset;\n\n if (isPageReset) {\n resetPageFromWidgets(localWidgets);\n }\n });\n derivedHelper.on('search', function () {\n // The index does not manage the \"staleness\" of the search. This is the\n // responsibility of the main instance. It does not make sense to manage\n // it at the index level because it's either: all of them or none of them\n // that are stalled. The queries are performed into a single network request.\n instantSearchInstance.scheduleStalledRender();\n\n if (process.env.NODE_ENV === 'development') {\n checkIndexUiState({\n index: _this3,\n indexUiState: localUiState\n });\n }\n });\n derivedHelper.on('result', function (_ref4) {\n var results = _ref4.results;\n // The index does not render the results it schedules a new render\n // to let all the other indices emit their own results. It allows us to\n // run the render process in one pass.\n instantSearchInstance.scheduleRender(); // the derived helper is the one which actually searches, but the helper\n // which is exposed e.g. via instance.helper, doesn't search, and thus\n // does not have access to lastResults, which it used to in pre-federated\n // search behavior.\n\n helper.lastResults = results;\n }); // We compute the render state before calling `init` in a separate loop\n // to construct the whole render state object that is then passed to\n // `init`.\n\n localWidgets.forEach(function (widget) {\n if (widget.getRenderState) {\n var renderState = widget.getRenderState(instantSearchInstance.renderState[_this3.getIndexId()] || {}, createInitArgs(instantSearchInstance, _this3, uiState));\n storeRenderState({\n renderState: renderState,\n instantSearchInstance: instantSearchInstance,\n parent: _this3\n });\n }\n });\n localWidgets.forEach(function (widget) {\n process.env.NODE_ENV === 'development' ? warning( // if it has NO getWidgetState or if it has getWidgetUiState, we don't warn\n // aka we warn if there's _only_ getWidgetState\n !widget.getWidgetState || Boolean(widget.getWidgetUiState), 'The `getWidgetState` method is renamed `getWidgetUiState` and will no longer exist under that name in InstantSearch.js 5.x. Please use `getWidgetUiState` instead.') : void 0;\n\n if (widget.init) {\n widget.init(createInitArgs(instantSearchInstance, _this3, uiState));\n }\n }); // Subscribe to the Helper state changes for the `uiState` once widgets\n // are initialized. Until the first render, state changes are part of the\n // configuration step. This is mainly for backward compatibility with custom\n // widgets. When the subscription happens before the `init` step, the (static)\n // configuration of the widget is pushed in the URL. That's what we want to avoid.\n // https://github.com/algolia/instantsearch.js/pull/994/commits/4a672ae3fd78809e213de0368549ef12e9dc9454\n\n helper.on('change', function (event) {\n var state = event.state;\n var _uiState = event._uiState;\n localUiState = getLocalWidgetsUiState(localWidgets, {\n searchParameters: state,\n helper: helper\n }, _uiState || {}); // We don't trigger an internal change when controlled because it\n // becomes the responsibility of `setUiState`.\n\n if (!instantSearchInstance.onStateChange) {\n instantSearchInstance.onInternalStateChange();\n }\n });\n\n if (indexInitialResults) {\n // If there are initial results, we're not notified of the next results\n // because we don't trigger an initial search. We therefore need to directly\n // schedule a render that will render the results injected on the helper.\n instantSearchInstance.scheduleRender();\n }\n },\n render: function render(_ref5) {\n var _this4 = this;\n\n var instantSearchInstance = _ref5.instantSearchInstance;\n\n if (!this.getResults()) {\n return;\n }\n\n localWidgets.forEach(function (widget) {\n if (widget.getRenderState) {\n var renderState = widget.getRenderState(instantSearchInstance.renderState[_this4.getIndexId()] || {}, createRenderArgs(instantSearchInstance, _this4));\n storeRenderState({\n renderState: renderState,\n instantSearchInstance: instantSearchInstance,\n parent: _this4\n });\n }\n });\n localWidgets.forEach(function (widget) {\n // At this point, all the variables used below are set. Both `helper`\n // and `derivedHelper` have been created at the `init` step. The attribute\n // `lastResults` might be `null` though. It's possible that a stalled render\n // happens before the result e.g with a dynamically added index the request might\n // be delayed. The render is triggered for the complete tree but some parts do\n // not have results yet.\n if (widget.render) {\n widget.render(createRenderArgs(instantSearchInstance, _this4));\n }\n });\n },\n dispose: function dispose() {\n var _this5 = this;\n\n localWidgets.forEach(function (widget) {\n if (widget.dispose) {\n // The dispose function is always called once the instance is started\n // (it's an effect of `removeWidgets`). The index is initialized and\n // the Helper is available. We don't care about the return value of\n // `dispose` because the index is removed. We can't call `removeWidgets`\n // because we want to keep the widgets on the instance, to allow idempotent\n // operations on `add` & `remove`.\n widget.dispose({\n helper: helper,\n state: helper.state,\n parent: _this5\n });\n }\n });\n localInstantSearchInstance = null;\n localParent = null;\n helper.removeAllListeners();\n helper = null;\n derivedHelper.detach();\n derivedHelper = null;\n },\n getWidgetUiState: function getWidgetUiState(uiState) {\n return localWidgets.filter(isIndexWidget).reduce(function (previousUiState, innerIndex) {\n return innerIndex.getWidgetUiState(previousUiState);\n }, _objectSpread(_objectSpread({}, uiState), {}, _defineProperty({}, this.getIndexId(), localUiState)));\n },\n getWidgetState: function getWidgetState(uiState) {\n process.env.NODE_ENV === 'development' ? warning(false, 'The `getWidgetState` method is renamed `getWidgetUiState` and will no longer exist under that name in InstantSearch.js 5.x. Please use `getWidgetUiState` instead.') : void 0;\n return this.getWidgetUiState(uiState);\n },\n getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref6) {\n var uiState = _ref6.uiState;\n return getLocalWidgetsSearchParameters(localWidgets, {\n uiState: uiState,\n initialSearchParameters: searchParameters\n });\n },\n refreshUiState: function refreshUiState() {\n localUiState = getLocalWidgetsUiState(localWidgets, {\n searchParameters: this.getHelper().state,\n helper: this.getHelper()\n }, localUiState);\n }\n };\n};\n\nexport default index;\n\nfunction storeRenderState(_ref7) {\n var renderState = _ref7.renderState,\n instantSearchInstance = _ref7.instantSearchInstance,\n parent = _ref7.parent;\n var parentIndexName = parent ? parent.getIndexId() : instantSearchInstance.mainIndex.getIndexId();\n instantSearchInstance.renderState = _objectSpread(_objectSpread({}, instantSearchInstance.renderState), {}, _defineProperty({}, parentIndexName, _objectSpread(_objectSpread({}, instantSearchInstance.renderState[parentIndexName]), renderState)));\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useReducer } from 'react';\n/**\n * Forces a React update that triggers a rerender.\n * @link https://reactjs.org/docs/hooks-faq.html#is-there-something-like-forceupdate\n */\n\nexport function useForceUpdate() {\n var _useReducer = useReducer(function (x) {\n return x + 1;\n }, 0),\n _useReducer2 = _slicedToArray(_useReducer, 2),\n forceUpdate = _useReducer2[1];\n\n return forceUpdate;\n}","import { createContext } from 'react';\nexport var InstantSearchSSRContext = /*#__PURE__*/createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n InstantSearchSSRContext.displayName = 'InstantSearchSSR';\n}","import { useContext } from 'react';\nimport { InstantSearchSSRContext } from \"./InstantSearchSSRContext.js\";\nexport function useInstantSearchSSRContext() {\n return useContext(InstantSearchSSRContext);\n}","export default '4.47.0';","var NAMESPACE = 'ais';\nexport var component = function component(componentName) {\n return function () {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n descendantName = _ref.descendantName,\n modifierName = _ref.modifierName;\n\n var descendent = descendantName ? \"-\".concat(descendantName) : '';\n var modifier = modifierName ? \"--\".concat(modifierName) : '';\n return \"\".concat(NAMESPACE, \"-\").concat(componentName).concat(descendent).concat(modifier);\n };\n};","import { component } from \"../lib/suit.js\";\nimport { getPropertyByPath, TAG_REPLACEMENT, warning } from \"../lib/utils/index.js\";\nvar suit = component('Highlight');\nexport default function highlight(_ref) {\n var attribute = _ref.attribute,\n _ref$highlightedTagNa = _ref.highlightedTagName,\n highlightedTagName = _ref$highlightedTagNa === void 0 ? 'mark' : _ref$highlightedTagNa,\n hit = _ref.hit,\n _ref$cssClasses = _ref.cssClasses,\n cssClasses = _ref$cssClasses === void 0 ? {} : _ref$cssClasses;\n var highlightAttributeResult = getPropertyByPath(hit._highlightResult, attribute); // @MAJOR fallback to attribute value if highlight is not found\n\n process.env.NODE_ENV === 'development' ? warning(highlightAttributeResult, \"Could not enable highlight for \\\"\".concat(attribute, \"\\\", will display an empty string.\\nPlease check whether this attribute exists and is either searchable or specified in `attributesToHighlight`.\\n\\nSee: https://alg.li/highlighting\\n\")) : void 0;\n\n var _ref2 = highlightAttributeResult || {},\n _ref2$value = _ref2.value,\n attributeValue = _ref2$value === void 0 ? '' : _ref2$value; // cx is not used, since it would be bundled as a dependency for Vue & Angular\n\n\n var className = suit({\n descendantName: 'highlighted'\n }) + (cssClasses.highlighted ? \" \".concat(cssClasses.highlighted) : '');\n return attributeValue.replace(new RegExp(TAG_REPLACEMENT.highlightPreTag, 'g'), \"<\".concat(highlightedTagName, \" class=\\\"\").concat(className, \"\\\">\")).replace(new RegExp(TAG_REPLACEMENT.highlightPostTag, 'g'), \"\"));\n}","import { TAG_REPLACEMENT, getPropertyByPath, getHighlightedParts, reverseHighlightedParts, concatHighlightedParts, warning } from \"../lib/utils/index.js\";\nimport { component } from \"../lib/suit.js\";\nvar suit = component('ReverseHighlight');\nexport default function reverseHighlight(_ref) {\n var attribute = _ref.attribute,\n _ref$highlightedTagNa = _ref.highlightedTagName,\n highlightedTagName = _ref$highlightedTagNa === void 0 ? 'mark' : _ref$highlightedTagNa,\n hit = _ref.hit,\n _ref$cssClasses = _ref.cssClasses,\n cssClasses = _ref$cssClasses === void 0 ? {} : _ref$cssClasses;\n var highlightAttributeResult = getPropertyByPath(hit._highlightResult, attribute); // @MAJOR fallback to attribute value if highlight is not found\n\n process.env.NODE_ENV === 'development' ? warning(highlightAttributeResult, \"Could not enable reverse highlight for \\\"\".concat(attribute, \"\\\", will display an empty string.\\nPlease check whether this attribute exists and is either searchable or specified in `attributesToHighlight`.\\n\\nSee: https://alg.li/highlighting\\n\")) : void 0;\n\n var _ref2 = highlightAttributeResult || {},\n _ref2$value = _ref2.value,\n attributeValue = _ref2$value === void 0 ? '' : _ref2$value; // cx is not used, since it would be bundled as a dependency for Vue & Angular\n\n\n var className = suit({\n descendantName: 'highlighted'\n }) + (cssClasses.highlighted ? \" \".concat(cssClasses.highlighted) : '');\n var reverseHighlightedValue = concatHighlightedParts(reverseHighlightedParts(getHighlightedParts(attributeValue)));\n return reverseHighlightedValue.replace(new RegExp(TAG_REPLACEMENT.highlightPreTag, 'g'), \"<\".concat(highlightedTagName, \" class=\\\"\").concat(className, \"\\\">\")).replace(new RegExp(TAG_REPLACEMENT.highlightPostTag, 'g'), \"\"));\n}","import { component } from \"../lib/suit.js\";\nimport { TAG_REPLACEMENT, getPropertyByPath, warning } from \"../lib/utils/index.js\";\nvar suit = component('Snippet');\nexport default function snippet(_ref) {\n var attribute = _ref.attribute,\n _ref$highlightedTagNa = _ref.highlightedTagName,\n highlightedTagName = _ref$highlightedTagNa === void 0 ? 'mark' : _ref$highlightedTagNa,\n hit = _ref.hit,\n _ref$cssClasses = _ref.cssClasses,\n cssClasses = _ref$cssClasses === void 0 ? {} : _ref$cssClasses;\n var snippetAttributeResult = getPropertyByPath(hit._snippetResult, attribute); // @MAJOR fallback to attribute value if snippet is not found\n\n process.env.NODE_ENV === 'development' ? warning(snippetAttributeResult, \"Could not enable snippet for \\\"\".concat(attribute, \"\\\", will display an empty string.\\nPlease check whether this attribute exists and is specified in `attributesToSnippet`.\\n\\nSee: https://alg.li/highlighting\\n\")) : void 0;\n\n var _ref2 = snippetAttributeResult || {},\n _ref2$value = _ref2.value,\n attributeValue = _ref2$value === void 0 ? '' : _ref2$value; // cx is not used, since it would be bundled as a dependency for Vue & Angular\n\n\n var className = suit({\n descendantName: 'highlighted'\n }) + (cssClasses.highlighted ? \" \".concat(cssClasses.highlighted) : '');\n return attributeValue.replace(new RegExp(TAG_REPLACEMENT.highlightPreTag, 'g'), \"<\".concat(highlightedTagName, \" class=\\\"\").concat(className, \"\\\">\")).replace(new RegExp(TAG_REPLACEMENT.highlightPostTag, 'g'), \"\"));\n}","import { TAG_REPLACEMENT, getPropertyByPath, getHighlightedParts, reverseHighlightedParts, concatHighlightedParts, warning } from \"../lib/utils/index.js\";\nimport { component } from \"../lib/suit.js\";\nvar suit = component('ReverseSnippet');\nexport default function reverseSnippet(_ref) {\n var attribute = _ref.attribute,\n _ref$highlightedTagNa = _ref.highlightedTagName,\n highlightedTagName = _ref$highlightedTagNa === void 0 ? 'mark' : _ref$highlightedTagNa,\n hit = _ref.hit,\n _ref$cssClasses = _ref.cssClasses,\n cssClasses = _ref$cssClasses === void 0 ? {} : _ref$cssClasses;\n var snippetAttributeResult = getPropertyByPath(hit._snippetResult, attribute); // @MAJOR fallback to attribute value if snippet is not found\n\n process.env.NODE_ENV === 'development' ? warning(snippetAttributeResult, \"Could not enable reverse snippet for \\\"\".concat(attribute, \"\\\", will display an empty string.\\nPlease check whether this attribute exists and is specified in `attributesToSnippet`.\\n\\nSee: https://alg.li/highlighting\\n\")) : void 0;\n\n var _ref2 = snippetAttributeResult || {},\n _ref2$value = _ref2.value,\n attributeValue = _ref2$value === void 0 ? '' : _ref2$value; // cx is not used, since it would be bundled as a dependency for Vue & Angular\n\n\n var className = suit({\n descendantName: 'highlighted'\n }) + (cssClasses.highlighted ? \" \".concat(cssClasses.highlighted) : '');\n var reverseHighlightedValue = concatHighlightedParts(reverseHighlightedParts(getHighlightedParts(attributeValue)));\n return reverseHighlightedValue.replace(new RegExp(TAG_REPLACEMENT.highlightPreTag, 'g'), \"<\".concat(highlightedTagName, \" class=\\\"\").concat(className, \"\\\">\")).replace(new RegExp(TAG_REPLACEMENT.highlightPostTag, 'g'), \"\"));\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 { warning, serializePayload, deserializePayload } from \"../lib/utils/index.js\";\nexport function readDataAttributes(domElement) {\n var method = domElement.getAttribute('data-insights-method');\n var serializedPayload = domElement.getAttribute('data-insights-payload');\n\n if (typeof serializedPayload !== 'string') {\n throw new Error('The insights helper expects `data-insights-payload` to be a base64-encoded JSON string.');\n }\n\n try {\n var payload = deserializePayload(serializedPayload);\n return {\n method: method,\n payload: payload\n };\n } catch (error) {\n throw new Error('The insights helper was unable to parse `data-insights-payload`.');\n }\n}\nexport function hasDataAttributes(domElement) {\n return domElement.hasAttribute('data-insights-method');\n}\nexport function writeDataAttributes(_ref) {\n var method = _ref.method,\n payload = _ref.payload;\n\n if (_typeof(payload) !== 'object') {\n throw new Error(\"The insights helper expects the payload to be an object.\");\n }\n\n var serializedPayload;\n\n try {\n serializedPayload = serializePayload(payload);\n } catch (error) {\n throw new Error(\"Could not JSON serialize the payload object.\");\n }\n\n return \"data-insights-method=\\\"\".concat(method, \"\\\" data-insights-payload=\\\"\").concat(serializedPayload, \"\\\"\");\n}\n/**\n * @deprecated This function will be still supported in 4.x releases, but not further. It is replaced by the `insights` middleware. For more information, visit https://www.algolia.com/doc/guides/getting-insights-and-analytics/search-analytics/click-through-and-conversions/how-to/send-click-and-conversion-events-with-instantsearch/js/\n */\n\nexport default function insights(method, payload) {\n process.env.NODE_ENV === 'development' ? warning(false, \"`insights` function has been deprecated. It is still supported in 4.x releases, but not further. It is replaced by the `insights` middleware.\\n\\nFor more information, visit https://www.algolia.com/doc/guides/getting-insights-and-analytics/search-analytics/click-through-and-conversions/how-to/send-click-and-conversion-events-with-instantsearch/js/\") : void 0;\n return writeDataAttributes({\n method: method,\n payload: payload\n });\n}","export function formatNumber(value, numberLocale) {\n return value.toLocaleString(numberLocale);\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\nimport { highlight as _highlight, reverseHighlight as _reverseHighlight, snippet as _snippet, reverseSnippet as _reverseSnippet, insights as _insights } from \"../helpers/index.js\";\nimport { formatNumber as _formatNumber } from \"./formatNumber.js\";\nexport default function hoganHelpers(_ref) {\n var numberLocale = _ref.numberLocale;\n return {\n formatNumber: function formatNumber(value, render) {\n return _formatNumber(Number(render(value)), numberLocale);\n },\n highlight: function highlight(options, render) {\n try {\n var highlightOptions = JSON.parse(options);\n return render(_highlight(_objectSpread(_objectSpread({}, highlightOptions), {}, {\n hit: this\n })));\n } catch (error) {\n throw new Error(\"\\nThe highlight helper expects a JSON object of the format:\\n{ \\\"attribute\\\": \\\"name\\\", \\\"highlightedTagName\\\": \\\"mark\\\" }\");\n }\n },\n reverseHighlight: function reverseHighlight(options, render) {\n try {\n var reverseHighlightOptions = JSON.parse(options);\n return render(_reverseHighlight(_objectSpread(_objectSpread({}, reverseHighlightOptions), {}, {\n hit: this\n })));\n } catch (error) {\n throw new Error(\"\\n The reverseHighlight helper expects a JSON object of the format:\\n { \\\"attribute\\\": \\\"name\\\", \\\"highlightedTagName\\\": \\\"mark\\\" }\");\n }\n },\n snippet: function snippet(options, render) {\n try {\n var snippetOptions = JSON.parse(options);\n return render(_snippet(_objectSpread(_objectSpread({}, snippetOptions), {}, {\n hit: this\n })));\n } catch (error) {\n throw new Error(\"\\nThe snippet helper expects a JSON object of the format:\\n{ \\\"attribute\\\": \\\"name\\\", \\\"highlightedTagName\\\": \\\"mark\\\" }\");\n }\n },\n reverseSnippet: function reverseSnippet(options, render) {\n try {\n var reverseSnippetOptions = JSON.parse(options);\n return render(_reverseSnippet(_objectSpread(_objectSpread({}, reverseSnippetOptions), {}, {\n hit: this\n })));\n } catch (error) {\n throw new Error(\"\\n The reverseSnippet helper expects a JSON object of the format:\\n { \\\"attribute\\\": \\\"name\\\", \\\"highlightedTagName\\\": \\\"mark\\\" }\");\n }\n },\n insights: function insights(options, render) {\n try {\n var _JSON$parse = JSON.parse(options),\n method = _JSON$parse.method,\n payload = _JSON$parse.payload;\n\n return render(_insights(method, _objectSpread({\n objectIDs: [this.objectID]\n }, payload)));\n } catch (error) {\n throw new Error(\"\\nThe insights helper expects a JSON object of the format:\\n{ \\\"method\\\": \\\"method-name\\\", \\\"payload\\\": { \\\"eventName\\\": \\\"name of the event\\\" } }\");\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\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 getIndexStateWithoutConfigure(uiState) {\n var configure = uiState.configure,\n trackedUiState = _objectWithoutProperties(uiState, [\"configure\"]);\n\n return trackedUiState;\n} // technically a URL could contain any key, since users provide it,\n// which is why the input to this function is UiState, not something\n// which excludes \"configure\" as this function does.\n\n\nexport default function simpleStateMapping() {\n return {\n stateToRoute: function stateToRoute(uiState) {\n return Object.keys(uiState).reduce(function (state, indexId) {\n return _objectSpread(_objectSpread({}, state), {}, _defineProperty({}, indexId, getIndexStateWithoutConfigure(uiState[indexId])));\n }, {});\n },\n routeToState: function routeToState() {\n var routeState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return Object.keys(routeState).reduce(function (state, indexId) {\n return _objectSpread(_objectSpread({}, state), {}, _defineProperty({}, indexId, getIndexStateWithoutConfigure(routeState[indexId])));\n }, {});\n }\n };\n}","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar Format = {\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n\nmodule.exports = {\n 'default': Format.RFC3986,\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return String(value);\n }\n },\n RFC1738: Format.RFC1738,\n RFC3986: Format.RFC3986\n};\n","'use strict';\n\nvar formats = require('./formats');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (isArray(target)) {\n target.push(source);\n } else if (target && typeof target === 'object') {\n if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str, decoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n }\n // utf-8\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar encode = function encode(str, defaultEncoder, charset, kind, format) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = str;\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n for (var i = 0; i < string.length; ++i) {\n var c = string.charCodeAt(i);\n\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n ) {\n out += string.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n out = out + hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));\n /* eslint operator-linebreak: [2, \"before\"] */\n out += hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n compactQueue(queue);\n\n return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n return mapped;\n }\n return fn(val);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n maybeMap: maybeMap,\n merge: merge\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar formats = require('./formats');\nvar has = Object.prototype.hasOwnProperty;\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\n\nvar isArray = Array.isArray;\nvar split = String.prototype.split;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encoder: utils.encode,\n encodeValuesOnly: false,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string'\n || typeof v === 'number'\n || typeof v === 'boolean'\n || typeof v === 'symbol'\n || typeof v === 'bigint';\n};\n\nvar stringify = function stringify(\n object,\n prefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset\n) {\n var obj = object;\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = utils.maybeMap(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate(value);\n }\n return value;\n });\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);\n if (generateArrayPrefix === 'comma' && encodeValuesOnly) {\n var valuesArray = split.call(String(obj), ',');\n var valuesJoined = '';\n for (var i = 0; i < valuesArray.length; ++i) {\n valuesJoined += (i === 0 ? '' : ',') + formatter(encoder(valuesArray[i], defaults.encoder, charset, 'value', format));\n }\n return [formatter(keyValue) + '=' + valuesJoined];\n }\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (generateArrayPrefix === 'comma' && isArray(obj)) {\n // we need to join elements in\n objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }];\n } else if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n for (var j = 0; j < objKeys.length; ++j) {\n var key = objKeys[j];\n var value = typeof key === 'object' && typeof key.value !== 'undefined' ? key.value : obj[key];\n\n if (skipNulls && value === null) {\n continue;\n }\n\n var keyPrefix = isArray(obj)\n ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(prefix, key) : prefix\n : prefix + (allowDots ? '.' + key : '[' + key + ']');\n\n pushToArray(values, stringify(\n value,\n keyPrefix,\n generateArrayPrefix,\n strictNullHandling,\n skipNulls,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset\n ));\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n format = opts.format;\n }\n var formatter = formats.formatters[format];\n\n var filter = defaults.filter;\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n format: format,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var arrayFormat;\n if (opts && opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if (opts && 'indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = 'indices';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n pushToArray(keys, stringify(\n obj[key],\n key,\n generateArrayPrefix,\n options.strictNullHandling,\n options.skipNulls,\n options.encode ? options.encoder : null,\n options.filter,\n options.sort,\n options.allowDots,\n options.serializeDate,\n options.format,\n options.formatter,\n options.encodeValuesOnly,\n options.charset\n ));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n allowDots: false,\n allowPrototypes: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function (str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function (val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = {};\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n var i;\n\n var charset = options.charset;\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(\n parseArrayValue(part.slice(pos + 1), options),\n function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n }\n );\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n if (has.call(obj, key)) {\n obj[key] = utils.combine(obj[key], val);\n } else {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var index = parseInt(cleanRoot, 10);\n if (!options.parseArrays && cleanRoot === '') {\n obj = { 0: leaf };\n } else if (\n !isNaN(index)\n && root !== cleanRoot\n && String(index) === cleanRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else if (cleanRoot !== '__proto__') {\n obj[cleanRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n return {\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n return utils.compact(obj);\n};\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\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 _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 qs from 'qs';\nimport { safelyRunOnBrowser } from \"../utils/index.js\";\n\nvar setWindowTitle = function setWindowTitle(title) {\n if (title) {\n // This function is only executed on browsers so we can disable this check.\n // eslint-disable-next-line no-restricted-globals\n window.document.title = title;\n }\n};\n\nvar BrowserHistory = /*#__PURE__*/function () {\n /**\n * Initializes a new storage provider that syncs the search state to the URL\n * using web APIs (`window.location.pushState` and `onpopstate` event).\n */\n function BrowserHistory(_ref) {\n var _this = this;\n\n var windowTitle = _ref.windowTitle,\n _ref$writeDelay = _ref.writeDelay,\n writeDelay = _ref$writeDelay === void 0 ? 400 : _ref$writeDelay,\n createURL = _ref.createURL,\n parseURL = _ref.parseURL,\n getLocation = _ref.getLocation;\n\n _classCallCheck(this, BrowserHistory);\n\n _defineProperty(this, \"windowTitle\", void 0);\n\n _defineProperty(this, \"writeDelay\", void 0);\n\n _defineProperty(this, \"_createURL\", void 0);\n\n _defineProperty(this, \"parseURL\", void 0);\n\n _defineProperty(this, \"getLocation\", void 0);\n\n _defineProperty(this, \"writeTimer\", void 0);\n\n _defineProperty(this, \"inPopState\", false);\n\n _defineProperty(this, \"isDisposed\", false);\n\n _defineProperty(this, \"latestAcknowledgedHistory\", 0);\n\n this.windowTitle = windowTitle;\n this.writeTimer = undefined;\n this.writeDelay = writeDelay;\n this._createURL = createURL;\n this.parseURL = parseURL;\n this.getLocation = getLocation;\n safelyRunOnBrowser(function (_ref2) {\n var window = _ref2.window;\n\n var title = _this.windowTitle && _this.windowTitle(_this.read());\n\n setWindowTitle(title);\n _this.latestAcknowledgedHistory = window.history.length;\n });\n }\n /**\n * Reads the URL and returns a syncable UI search state.\n */\n\n\n _createClass(BrowserHistory, [{\n key: \"read\",\n value: function read() {\n return this.parseURL({\n qsModule: qs,\n location: this.getLocation()\n });\n }\n /**\n * Pushes a search state into the URL.\n */\n\n }, {\n key: \"write\",\n value: function write(routeState) {\n var _this2 = this;\n\n safelyRunOnBrowser(function (_ref3) {\n var window = _ref3.window;\n\n var url = _this2.createURL(routeState);\n\n var title = _this2.windowTitle && _this2.windowTitle(routeState);\n\n if (_this2.writeTimer) {\n clearTimeout(_this2.writeTimer);\n }\n\n _this2.writeTimer = setTimeout(function () {\n setWindowTitle(title);\n\n if (_this2.shouldWrite(url)) {\n window.history.pushState(routeState, title || '', url);\n _this2.latestAcknowledgedHistory = window.history.length;\n }\n\n _this2.inPopState = false;\n _this2.writeTimer = undefined;\n }, _this2.writeDelay);\n });\n }\n /**\n * Sets a callback on the `onpopstate` event of the history API of the current page.\n * It enables the URL sync to keep track of the changes.\n */\n\n }, {\n key: \"onUpdate\",\n value: function onUpdate(callback) {\n var _this3 = this;\n\n this._onPopState = function (event) {\n if (_this3.writeTimer) {\n clearTimeout(_this3.writeTimer);\n _this3.writeTimer = undefined;\n }\n\n _this3.inPopState = true;\n var routeState = event.state; // At initial load, the state is read from the URL without update.\n // Therefore the state object is not available.\n // In this case, we fallback and read the URL.\n\n if (!routeState) {\n callback(_this3.read());\n } else {\n callback(routeState);\n }\n };\n\n safelyRunOnBrowser(function (_ref4) {\n var window = _ref4.window;\n window.addEventListener('popstate', _this3._onPopState);\n });\n }\n /**\n * Creates a complete URL from a given syncable UI state.\n *\n * It always generates the full URL, not a relative one.\n * This allows to handle cases like using a .\n * See: https://github.com/algolia/instantsearch.js/issues/790\n */\n\n }, {\n key: \"createURL\",\n value: function createURL(routeState) {\n return this._createURL({\n qsModule: qs,\n routeState: routeState,\n location: this.getLocation()\n });\n }\n /**\n * Removes the event listener and cleans up the URL.\n */\n\n }, {\n key: \"dispose\",\n value: function dispose() {\n var _this4 = this;\n\n this.isDisposed = true;\n safelyRunOnBrowser(function (_ref5) {\n var window = _ref5.window;\n\n if (_this4._onPopState) {\n window.removeEventListener('popstate', _this4._onPopState);\n }\n });\n\n if (this.writeTimer) {\n clearTimeout(this.writeTimer);\n }\n\n this.write({});\n }\n }, {\n key: \"shouldWrite\",\n value: function shouldWrite(url) {\n var _this5 = this;\n\n return safelyRunOnBrowser(function (_ref6) {\n var window = _ref6.window;\n // We do want to `pushState` if:\n // - the router is not disposed, IS.js needs to update the URL\n // OR\n // - the last write was from InstantSearch.js\n // (unlike a SPA, where it would have last written)\n var lastPushWasByISAfterDispose = !(_this5.isDisposed && _this5.latestAcknowledgedHistory !== window.history.length);\n return (// When the last state change was through popstate, the IS.js state changes,\n // but that should not write the URL.\n !_this5.inPopState && // When the previous pushState after dispose was by IS.js, we want to write the URL.\n lastPushWasByISAfterDispose && // When the URL is the same as the current one, we do not want to write it.\n url !== window.location.href\n );\n });\n }\n }]);\n\n return BrowserHistory;\n}();\n\nexport default function historyRouter() {\n var _ref7 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref7$createURL = _ref7.createURL,\n createURL = _ref7$createURL === void 0 ? function (_ref8) {\n var qsModule = _ref8.qsModule,\n routeState = _ref8.routeState,\n location = _ref8.location;\n var protocol = location.protocol,\n hostname = location.hostname,\n _location$port = location.port,\n port = _location$port === void 0 ? '' : _location$port,\n pathname = location.pathname,\n hash = location.hash;\n var queryString = qsModule.stringify(routeState);\n var portWithPrefix = port === '' ? '' : \":\".concat(port); // IE <= 11 has no proper `location.origin` so we cannot rely on it.\n\n // IE <= 11 has no proper `location.origin` so we cannot rely on it.\n if (!queryString) {\n return \"\".concat(protocol, \"//\").concat(hostname).concat(portWithPrefix).concat(pathname).concat(hash);\n }\n\n return \"\".concat(protocol, \"//\").concat(hostname).concat(portWithPrefix).concat(pathname, \"?\").concat(queryString).concat(hash);\n } : _ref7$createURL,\n _ref7$parseURL = _ref7.parseURL,\n parseURL = _ref7$parseURL === void 0 ? function (_ref9) {\n var qsModule = _ref9.qsModule,\n location = _ref9.location;\n // `qs` by default converts arrays with more than 20 items to an object.\n // We want to avoid this because the data structure manipulated can therefore vary.\n // Setting the limit to `100` seems a good number because the engine's default is 100\n // (it can go up to 1000 but it is very unlikely to select more than 100 items in the UI).\n //\n // Using an `arrayLimit` of `n` allows `n + 1` items.\n //\n // See:\n // - https://github.com/ljharb/qs#parsing-arrays\n // - https://www.algolia.com/doc/api-reference/api-parameters/maxValuesPerFacet/\n return qsModule.parse(location.search.slice(1), {\n arrayLimit: 99\n });\n } : _ref7$parseURL,\n _ref7$writeDelay = _ref7.writeDelay,\n writeDelay = _ref7$writeDelay === void 0 ? 400 : _ref7$writeDelay,\n windowTitle = _ref7.windowTitle,\n _ref7$getLocation = _ref7.getLocation,\n getLocation = _ref7$getLocation === void 0 ? function () {\n return safelyRunOnBrowser(function (_ref10) {\n var window = _ref10.window;\n return window.location;\n }, {\n fallback: function fallback() {\n throw new Error('You need to provide `getLocation` to the `history` router in environments where `window` does not exist.');\n }\n });\n } : _ref7$getLocation;\n\n return new BrowserHistory({\n createURL: createURL,\n parseURL: parseURL,\n writeDelay: writeDelay,\n windowTitle: windowTitle,\n getLocation: getLocation\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\nimport simpleStateMapping from \"../lib/stateMappings/simple.js\";\nimport historyRouter from \"../lib/routers/history.js\";\nimport { isEqual } from \"../lib/utils/index.js\";\nexport var createRouterMiddleware = function createRouterMiddleware() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _props$router = props.router,\n router = _props$router === void 0 ? historyRouter() : _props$router,\n _props$stateMapping = props.stateMapping,\n stateMapping = _props$stateMapping === void 0 ? simpleStateMapping() : _props$stateMapping;\n return function (_ref) {\n var instantSearchInstance = _ref.instantSearchInstance;\n\n function topLevelCreateURL(nextState) {\n var uiState = Object.keys(nextState).reduce(function (acc, indexId) {\n return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, indexId, nextState[indexId]));\n }, instantSearchInstance.mainIndex.getWidgetUiState({}));\n var route = stateMapping.stateToRoute(uiState);\n return router.createURL(route);\n } // casting to UiState here to keep createURL unaware of custom UiState\n // (as long as it's an object, it's ok)\n\n\n instantSearchInstance._createURL = topLevelCreateURL;\n var lastRouteState = undefined;\n var initialUiState = instantSearchInstance._initialUiState;\n return {\n onStateChange: function onStateChange(_ref2) {\n var uiState = _ref2.uiState;\n var routeState = stateMapping.stateToRoute(uiState);\n\n if (lastRouteState === undefined || !isEqual(lastRouteState, routeState)) {\n router.write(routeState);\n lastRouteState = routeState;\n }\n },\n subscribe: function subscribe() {\n instantSearchInstance._initialUiState = _objectSpread(_objectSpread({}, initialUiState), stateMapping.routeToState(router.read()));\n router.onUpdate(function (route) {\n instantSearchInstance.setUiState(stateMapping.routeToState(route));\n });\n },\n started: function started() {},\n unsubscribe: function unsubscribe() {\n router.dispose();\n }\n };\n };\n};","import { createInitArgs, safelyRunOnBrowser } from \"../lib/utils/index.js\";\n\nfunction extractPayload(widgets, instantSearchInstance, payload) {\n var initOptions = createInitArgs(instantSearchInstance, instantSearchInstance.mainIndex, instantSearchInstance._initialUiState);\n widgets.forEach(function (widget) {\n var widgetParams = {};\n\n if (widget.getWidgetRenderState) {\n var renderState = widget.getWidgetRenderState(initOptions);\n\n if (renderState && renderState.widgetParams) {\n // casting, as we just earlier checked widgetParams exists, and thus an object\n widgetParams = renderState.widgetParams;\n }\n } // since we destructure in all widgets, the parameters with defaults are set to \"undefined\"\n\n\n var params = Object.keys(widgetParams).filter(function (key) {\n return widgetParams[key] !== undefined;\n });\n payload.widgets.push({\n type: widget.$$type,\n widgetType: widget.$$widgetType,\n params: params\n });\n\n if (widget.$$type === 'ais.index') {\n extractPayload(widget.getWidgets(), instantSearchInstance, payload);\n }\n });\n}\n\nexport function isMetadataEnabled() {\n return safelyRunOnBrowser(function (_ref) {\n var _window$navigator, _window$navigator$use;\n\n var window = _ref.window;\n return ((_window$navigator = window.navigator) === null || _window$navigator === void 0 ? void 0 : (_window$navigator$use = _window$navigator.userAgent) === null || _window$navigator$use === void 0 ? void 0 : _window$navigator$use.indexOf('Algolia Crawler')) > -1;\n }, {\n fallback: function fallback() {\n return false;\n }\n });\n}\n/**\n * Exposes the metadata of mounted widgets in a custom\n * `` tag. The metadata per widget is:\n * - applied parameters\n * - widget name\n * - connector name\n */\n\nexport function createMetadataMiddleware() {\n return function (_ref2) {\n var instantSearchInstance = _ref2.instantSearchInstance;\n var payload = {\n widgets: []\n };\n var payloadContainer = document.createElement('meta');\n var refNode = document.querySelector('head');\n payloadContainer.name = 'instantsearch:widgets';\n return {\n onStateChange: function onStateChange() {},\n subscribe: function subscribe() {\n // using setTimeout here to delay extraction until widgets have been added in a tick (e.g. Vue)\n setTimeout(function () {\n var client = instantSearchInstance.client;\n payload.ua = client.transporter && client.transporter.userAgent ? client.transporter.userAgent.value : client._ua;\n extractPayload(instantSearchInstance.mainIndex.getWidgets(), instantSearchInstance, payload);\n payloadContainer.content = JSON.stringify(payload);\n refNode.appendChild(payloadContainer);\n }, 0);\n },\n started: function started() {},\n unsubscribe: function unsubscribe() {\n payloadContainer.remove();\n }\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 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 _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 { 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 _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 algoliasearchHelper from 'algoliasearch-helper';\nimport EventEmitter from '@algolia/events';\nimport index from \"../widgets/index/index.js\";\nimport version from \"./version.js\";\nimport createHelpers from \"./createHelpers.js\";\nimport { createDocumentationMessageGenerator, createDocumentationLink, defer, noop, warning, setIndexHelperState } from \"./utils/index.js\";\nimport { createRouterMiddleware } from \"../middlewares/createRouterMiddleware.js\";\nimport { createMetadataMiddleware, isMetadataEnabled } from \"../middlewares/createMetadataMiddleware.js\";\nvar withUsage = createDocumentationMessageGenerator({\n name: 'instantsearch'\n});\n\nfunction defaultCreateURL() {\n return '#';\n} // this purposely breaks typescript's type inference to ensure it's not used\n// as it's used for a default parameter for example\n// source: https://github.com/Microsoft/TypeScript/issues/14829#issuecomment-504042546\n\n\n/**\n * The actual implementation of the InstantSearch. This is\n * created using the `instantsearch` factory function.\n * It emits the 'render' event every time a search is done\n */\nvar InstantSearch = /*#__PURE__*/function (_EventEmitter) {\n _inherits(InstantSearch, _EventEmitter);\n\n var _super = _createSuper(InstantSearch);\n\n function InstantSearch(options) {\n var _this;\n\n _classCallCheck(this, InstantSearch);\n\n _this = _super.call(this);\n\n _defineProperty(_assertThisInitialized(_this), \"client\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"indexName\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"insightsClient\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"onStateChange\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"helper\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"mainHelper\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"mainIndex\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"started\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"templatesConfig\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"renderState\", {});\n\n _defineProperty(_assertThisInitialized(_this), \"_stalledSearchDelay\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_searchStalledTimer\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_initialUiState\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_initialResults\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_createURL\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_searchFunction\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"_mainHelperSearch\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"middleware\", []);\n\n _defineProperty(_assertThisInitialized(_this), \"sendEventToInsights\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"status\", 'idle');\n\n _defineProperty(_assertThisInitialized(_this), \"error\", undefined);\n\n _defineProperty(_assertThisInitialized(_this), \"scheduleSearch\", defer(function () {\n if (_this.started) {\n _this.mainHelper.search();\n }\n }));\n\n _defineProperty(_assertThisInitialized(_this), \"scheduleRender\", defer(function () {\n var shouldResetStatus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n if (!_this.mainHelper.hasPendingRequests()) {\n clearTimeout(_this._searchStalledTimer);\n _this._searchStalledTimer = null;\n\n if (shouldResetStatus) {\n _this.status = 'idle';\n _this.error = undefined;\n }\n }\n\n _this.mainIndex.render({\n instantSearchInstance: _assertThisInitialized(_this)\n });\n\n _this.emit('render');\n }));\n\n _defineProperty(_assertThisInitialized(_this), \"onInternalStateChange\", defer(function () {\n var nextUiState = _this.mainIndex.getWidgetUiState({});\n\n _this.middleware.forEach(function (_ref) {\n var instance = _ref.instance;\n instance.onStateChange({\n uiState: nextUiState\n });\n });\n }));\n\n var _options$indexName = options.indexName,\n indexName = _options$indexName === void 0 ? null : _options$indexName,\n numberLocale = options.numberLocale,\n _options$initialUiSta = options.initialUiState,\n initialUiState = _options$initialUiSta === void 0 ? {} : _options$initialUiSta,\n _options$routing = options.routing,\n routing = _options$routing === void 0 ? null : _options$routing,\n searchFunction = options.searchFunction,\n _options$stalledSearc = options.stalledSearchDelay,\n stalledSearchDelay = _options$stalledSearc === void 0 ? 200 : _options$stalledSearc,\n _options$searchClient = options.searchClient,\n searchClient = _options$searchClient === void 0 ? null : _options$searchClient,\n _options$insightsClie = options.insightsClient,\n insightsClient = _options$insightsClie === void 0 ? null : _options$insightsClie,\n _options$onStateChang = options.onStateChange,\n onStateChange = _options$onStateChang === void 0 ? null : _options$onStateChang;\n\n if (indexName === null) {\n throw new Error(withUsage('The `indexName` option is required.'));\n }\n\n if (searchClient === null) {\n throw new Error(withUsage('The `searchClient` option is required.'));\n }\n\n if (typeof searchClient.search !== 'function') {\n throw new Error(\"The `searchClient` must implement a `search` method.\\n\\nSee: https://www.algolia.com/doc/guides/building-search-ui/going-further/backend-search/in-depth/backend-instantsearch/js/\");\n }\n\n if (typeof searchClient.addAlgoliaAgent === 'function') {\n searchClient.addAlgoliaAgent(\"instantsearch.js (\".concat(version, \")\"));\n }\n\n process.env.NODE_ENV === 'development' ? warning(insightsClient === null, \"`insightsClient` property has been deprecated. It is still supported in 4.x releases, but not further. It is replaced by the `insights` middleware.\\n\\nFor more information, visit https://www.algolia.com/doc/guides/getting-insights-and-analytics/search-analytics/click-through-and-conversions/how-to/send-click-and-conversion-events-with-instantsearch/js/\") : void 0;\n\n if (insightsClient && typeof insightsClient !== 'function') {\n throw new Error(withUsage('The `insightsClient` option should be a function.'));\n }\n\n process.env.NODE_ENV === 'development' ? warning(!options.searchParameters, \"The `searchParameters` option is deprecated and will not be supported in InstantSearch.js 4.x.\\n\\nYou can replace it with the `configure` widget:\\n\\n```\\nsearch.addWidgets([\\n configure(\".concat(JSON.stringify(options.searchParameters, null, 2), \")\\n]);\\n```\\n\\nSee \").concat(createDocumentationLink({\n name: 'configure'\n }))) : void 0;\n _this.client = searchClient;\n _this.insightsClient = insightsClient;\n _this.indexName = indexName;\n _this.helper = null;\n _this.mainHelper = null;\n _this.mainIndex = index({\n indexName: indexName\n });\n _this.onStateChange = onStateChange;\n _this.started = false;\n _this.templatesConfig = {\n helpers: createHelpers({\n numberLocale: numberLocale\n }),\n compileOptions: {}\n };\n _this._stalledSearchDelay = stalledSearchDelay;\n _this._searchStalledTimer = null;\n _this._createURL = defaultCreateURL;\n _this._initialUiState = initialUiState;\n _this._initialResults = null;\n\n if (searchFunction) {\n _this._searchFunction = searchFunction;\n }\n\n _this.sendEventToInsights = noop;\n\n if (routing) {\n var routerOptions = typeof routing === 'boolean' ? undefined : routing;\n\n _this.use(createRouterMiddleware(routerOptions));\n }\n\n if (isMetadataEnabled()) {\n _this.use(createMetadataMiddleware());\n }\n\n return _this;\n }\n /**\n * Hooks a middleware into the InstantSearch lifecycle.\n */\n\n\n _createClass(InstantSearch, [{\n key: \"_isSearchStalled\",\n get:\n /**\n * The status of the search. Can be \"idle\", \"loading\", \"stalled\", or \"error\".\n */\n\n /**\n * The last returned error from the Search API.\n * The error gets cleared when the next valid search response is rendered.\n */\n\n /**\n * @deprecated use `status === 'stalled'` instead\n */\n function get() {\n process.env.NODE_ENV === 'development' ? warning(false, \"`InstantSearch._isSearchStalled` is deprecated and will be removed in InstantSearch.js 5.0.\\n\\nUse `InstantSearch.status === \\\"stalled\\\"` instead.\") : void 0;\n return this.status === 'stalled';\n }\n }, {\n key: \"use\",\n value: function use() {\n var _this2 = this;\n\n for (var _len = arguments.length, middleware = new Array(_len), _key = 0; _key < _len; _key++) {\n middleware[_key] = arguments[_key];\n }\n\n var newMiddlewareList = middleware.map(function (fn) {\n var newMiddleware = _objectSpread({\n subscribe: noop,\n started: noop,\n unsubscribe: noop,\n onStateChange: noop\n }, fn({\n instantSearchInstance: _this2\n }));\n\n _this2.middleware.push({\n creator: fn,\n instance: newMiddleware\n });\n\n return newMiddleware;\n }); // If the instance has already started, we directly subscribe the\n // middleware so they're notified of changes.\n\n if (this.started) {\n newMiddlewareList.forEach(function (m) {\n m.subscribe();\n m.started();\n });\n }\n\n return this;\n }\n /**\n * Removes a middleware from the InstantSearch lifecycle.\n */\n\n }, {\n key: \"unuse\",\n value: function unuse() {\n for (var _len2 = arguments.length, middlewareToUnuse = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n middlewareToUnuse[_key2] = arguments[_key2];\n }\n\n this.middleware.filter(function (m) {\n return middlewareToUnuse.includes(m.creator);\n }).forEach(function (m) {\n return m.instance.unsubscribe();\n });\n this.middleware = this.middleware.filter(function (m) {\n return !middlewareToUnuse.includes(m.creator);\n });\n return this;\n } // @major we shipped with EXPERIMENTAL_use, but have changed that to just `use` now\n\n }, {\n key: \"EXPERIMENTAL_use\",\n value: function EXPERIMENTAL_use() {\n process.env.NODE_ENV === 'development' ? warning(false, 'The middleware API is now considered stable, so we recommend replacing `EXPERIMENTAL_use` with `use` before upgrading to the next major version.') : void 0;\n return this.use.apply(this, arguments);\n }\n /**\n * Adds a widget to the search instance.\n * A widget can be added either before or after InstantSearch has started.\n * @param widget The widget to add to InstantSearch.\n *\n * @deprecated This method will still be supported in 4.x releases, but not further. It is replaced by `addWidgets([widget])`.\n */\n\n }, {\n key: \"addWidget\",\n value: function addWidget(widget) {\n process.env.NODE_ENV === 'development' ? warning(false, 'addWidget will still be supported in 4.x releases, but not further. It is replaced by `addWidgets([widget])`') : void 0;\n return this.addWidgets([widget]);\n }\n /**\n * Adds multiple widgets to the search instance.\n * Widgets can be added either before or after InstantSearch has started.\n * @param widgets The array of widgets to add to InstantSearch.\n */\n\n }, {\n key: \"addWidgets\",\n value: function addWidgets(widgets) {\n if (!Array.isArray(widgets)) {\n throw new Error(withUsage('The `addWidgets` method expects an array of widgets. Please use `addWidget`.'));\n }\n\n if (widgets.some(function (widget) {\n return typeof widget.init !== 'function' && typeof widget.render !== 'function';\n })) {\n throw new Error(withUsage('The widget definition expects a `render` and/or an `init` method.'));\n }\n\n this.mainIndex.addWidgets(widgets);\n return this;\n }\n /**\n * Removes a widget from the search instance.\n * @deprecated This method will still be supported in 4.x releases, but not further. It is replaced by `removeWidgets([widget])`\n * @param widget The widget instance to remove from InstantSearch.\n *\n * The widget must implement a `dispose()` method to clear its state.\n */\n\n }, {\n key: \"removeWidget\",\n value: function removeWidget(widget) {\n process.env.NODE_ENV === 'development' ? warning(false, 'removeWidget will still be supported in 4.x releases, but not further. It is replaced by `removeWidgets([widget])`') : void 0;\n return this.removeWidgets([widget]);\n }\n /**\n * Removes multiple widgets from the search instance.\n * @param widgets Array of widgets instances to remove from InstantSearch.\n *\n * The widgets must implement a `dispose()` method to clear their states.\n */\n\n }, {\n key: \"removeWidgets\",\n value: function removeWidgets(widgets) {\n if (!Array.isArray(widgets)) {\n throw new Error(withUsage('The `removeWidgets` method expects an array of widgets. Please use `removeWidget`.'));\n }\n\n if (widgets.some(function (widget) {\n return typeof widget.dispose !== 'function';\n })) {\n throw new Error(withUsage('The widget definition expects a `dispose` method.'));\n }\n\n this.mainIndex.removeWidgets(widgets);\n return this;\n }\n /**\n * Ends the initialization of InstantSearch.js and triggers the\n * first search. This method should be called after all widgets have been added\n * to the instance of InstantSearch.js. InstantSearch.js also supports adding and removing\n * widgets after the start as an **EXPERIMENTAL** feature.\n */\n\n }, {\n key: \"start\",\n value: function start() {\n var _this3 = this;\n\n if (this.started) {\n throw new Error(withUsage('The `start` method has already been called once.'));\n } // This Helper is used for the queries, we don't care about its state. The\n // states are managed at the `index` level. We use this Helper to create\n // DerivedHelper scoped into the `index` widgets.\n // In Vue InstantSearch' hydrate, a main helper gets set before start, so\n // we need to respect this helper as a way to keep all listeners correct.\n\n\n var mainHelper = this.mainHelper || algoliasearchHelper(this.client, this.indexName);\n\n mainHelper.search = function () {\n _this3.status = 'loading'; // @MAJOR: use scheduleRender here\n // For now, widgets don't expect to be rendered at the start of `loading`,\n // so it would be a breaking change to add an extra render. We don't have\n // these guarantees about the render event, thus emitting it once more\n // isn't a breaking change.\n\n _this3.emit('render'); // This solution allows us to keep the exact same API for the users but\n // under the hood, we have a different implementation. It should be\n // completely transparent for the rest of the codebase. Only this module\n // is impacted.\n\n\n return mainHelper.searchOnlyWithDerivedHelpers();\n };\n\n if (this._searchFunction) {\n // this client isn't used to actually search, but required for the helper\n // to not throw errors\n var fakeClient = {\n search: function search() {\n return new Promise(noop);\n }\n };\n this._mainHelperSearch = mainHelper.search.bind(mainHelper);\n\n mainHelper.search = function () {\n var mainIndexHelper = _this3.mainIndex.getHelper();\n\n var searchFunctionHelper = algoliasearchHelper(fakeClient, mainIndexHelper.state.index, mainIndexHelper.state);\n searchFunctionHelper.once('search', function (_ref2) {\n var state = _ref2.state;\n mainIndexHelper.overrideStateWithoutTriggeringChangeEvent(state);\n\n _this3._mainHelperSearch();\n }); // Forward state changes from `searchFunctionHelper` to `mainIndexHelper`\n\n searchFunctionHelper.on('change', function (_ref3) {\n var state = _ref3.state;\n mainIndexHelper.setState(state);\n });\n\n _this3._searchFunction(searchFunctionHelper);\n\n return mainHelper;\n };\n } // Only the \"main\" Helper emits the `error` event vs the one for `search`\n // and `results` that are also emitted on the derived one.\n\n\n mainHelper.on('error', function (_ref4) {\n var error = _ref4.error;\n\n if (!(error instanceof Error)) {\n // typescript lies here, error is in some cases { name: string, message: string }\n var err = error;\n error = Object.keys(err).reduce(function (acc, key) {\n acc[key] = err[key];\n return acc;\n }, new Error(err.message));\n } // If an error is emitted, it is re-thrown by events. In previous versions\n // we emitted {error}, which is thrown as:\n // \"Uncaught, unspecified \\\"error\\\" event. ([object Object])\"\n // To avoid breaking changes, we make the error available in both\n // `error` and `error.error`\n // @MAJOR emit only error\n\n\n error.error = error;\n _this3.error = error;\n _this3.status = 'error';\n\n _this3.scheduleRender(false); // This needs to execute last because it throws the error.\n\n\n _this3.emit('error', error);\n });\n this.mainHelper = mainHelper;\n this.middleware.forEach(function (_ref5) {\n var instance = _ref5.instance;\n instance.subscribe();\n });\n this.mainIndex.init({\n instantSearchInstance: this,\n parent: null,\n uiState: this._initialUiState\n });\n\n if (this._initialResults) {\n var originalScheduleSearch = this.scheduleSearch; // We don't schedule a first search when initial results are provided\n // because we already have the results to render. This skips the initial\n // network request on the browser on `start`.\n\n this.scheduleSearch = defer(noop); // We also skip the initial network request when widgets are dynamically\n // added in the first tick (that's the case in all the framework-based flavors).\n // When we add a widget to `index`, it calls `scheduleSearch`. We can rely\n // on our `defer` util to restore the original `scheduleSearch` value once\n // widgets are added to hook back to the regular lifecycle.\n\n defer(function () {\n _this3.scheduleSearch = originalScheduleSearch;\n })();\n } // We only schedule a search when widgets have been added before `start()`\n // because there are listeners that can use these results.\n // This is especially useful in framework-based flavors that wait for\n // dynamically-added widgets to trigger a network request. It avoids\n // having to batch this initial network request with the one coming from\n // `addWidgets()`.\n // Later, we could also skip `index()` widgets and widgets that don't read\n // the results, but this is an optimization that has a very low impact for now.\n else if (this.mainIndex.getWidgets().length > 0) {\n this.scheduleSearch();\n } // Keep the previous reference for legacy purpose, some pattern use\n // the direct Helper access `search.helper` (e.g multi-index).\n\n\n this.helper = this.mainIndex.getHelper(); // track we started the search if we add more widgets,\n // to init them directly after add\n\n this.started = true;\n this.middleware.forEach(function (_ref6) {\n var instance = _ref6.instance;\n instance.started();\n });\n }\n /**\n * Removes all widgets without triggering a search afterwards. This is an **EXPERIMENTAL** feature,\n * if you find an issue with it, please\n * [open an issue](https://github.com/algolia/instantsearch.js/issues/new?title=Problem%20with%20dispose).\n * @return {undefined} This method does not return anything\n */\n\n }, {\n key: \"dispose\",\n value: function dispose() {\n this.scheduleSearch.cancel();\n this.scheduleRender.cancel();\n clearTimeout(this._searchStalledTimer);\n this.removeWidgets(this.mainIndex.getWidgets());\n this.mainIndex.dispose(); // You can not start an instance two times, therefore a disposed instance\n // needs to set started as false otherwise this can not be restarted at a\n // later point.\n\n this.started = false; // The helper needs to be reset to perform the next search from a fresh state.\n // If not reset, it would use the state stored before calling `dispose()`.\n\n this.removeAllListeners();\n this.mainHelper.removeAllListeners();\n this.mainHelper = null;\n this.helper = null;\n this.middleware.forEach(function (_ref7) {\n var instance = _ref7.instance;\n instance.unsubscribe();\n });\n }\n }, {\n key: \"scheduleStalledRender\",\n value: function scheduleStalledRender() {\n var _this4 = this;\n\n if (!this._searchStalledTimer) {\n this._searchStalledTimer = setTimeout(function () {\n _this4.status = 'stalled';\n\n _this4.scheduleRender();\n }, this._stalledSearchDelay);\n }\n }\n /**\n * Set the UI state and trigger a search.\n * @param uiState The next UI state or a function computing it from the current state\n * @param callOnStateChange private parameter used to know if the method is called from a state change\n */\n\n }, {\n key: \"setUiState\",\n value: function setUiState(uiState) {\n var _this5 = this;\n\n var callOnStateChange = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (!this.mainHelper) {\n throw new Error(withUsage('The `start` method needs to be called before `setUiState`.'));\n } // We refresh the index UI state to update the local UI state that the\n // main index passes to the function form of `setUiState`.\n\n\n this.mainIndex.refreshUiState();\n var nextUiState = typeof uiState === 'function' ? uiState(this.mainIndex.getWidgetUiState({})) : uiState;\n\n if (this.onStateChange && callOnStateChange) {\n this.onStateChange({\n uiState: nextUiState,\n setUiState: function setUiState(finalUiState) {\n setIndexHelperState(typeof finalUiState === 'function' ? finalUiState(nextUiState) : finalUiState, _this5.mainIndex);\n\n _this5.scheduleSearch();\n\n _this5.onInternalStateChange();\n }\n });\n } else {\n setIndexHelperState(nextUiState, this.mainIndex);\n this.scheduleSearch();\n this.onInternalStateChange();\n }\n }\n }, {\n key: \"getUiState\",\n value: function getUiState() {\n if (this.started) {\n // We refresh the index UI state to make sure changes from `refine` are taken in account\n this.mainIndex.refreshUiState();\n }\n\n return this.mainIndex.getWidgetUiState({});\n }\n }, {\n key: \"createURL\",\n value: function createURL() {\n var nextState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (!this.started) {\n throw new Error(withUsage('The `start` method needs to be called before `createURL`.'));\n }\n\n return this._createURL(nextState);\n }\n }, {\n key: \"refresh\",\n value: function refresh() {\n if (!this.mainHelper) {\n throw new Error(withUsage('The `start` method needs to be called before `refresh`.'));\n }\n\n this.mainHelper.clearCache().search();\n }\n }]);\n\n return InstantSearch;\n}(EventEmitter);\n\nexport default InstantSearch;","/**\n * @license React\n * use-sync-external-store-shim.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 e=require(\"react\");function h(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var k=\"function\"===typeof Object.is?Object.is:h,l=e.useState,m=e.useEffect,n=e.useLayoutEffect,p=e.useDebugValue;function q(a,b){var d=b(),f=l({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];n(function(){c.value=d;c.getSnapshot=b;r(c)&&g({inst:c})},[a,d,b]);m(function(){r(c)&&g({inst:c});return a(function(){r(c)&&g({inst:c})})},[a]);p(d);return d}\nfunction r(a){var b=a.getSnapshot;a=a.value;try{var d=b();return!k(a,d)}catch(f){return!0}}function t(a,b){return b()}var u=\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement?t:q;exports.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:u;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","import InstantSearch from \"instantsearch.js/es/lib/InstantSearch.js\";\nimport { useCallback, useRef, version as ReactVersion } from 'react';\nimport { useSyncExternalStore } from \"use-sync-external-store/shim/index.js\";\nimport { useInstantSearchServerContext } from \"./useInstantSearchServerContext.js\";\nimport { useInstantSearchSSRContext } from \"./useInstantSearchSSRContext.js\";\nimport version from \"../version.js\";\nimport { useForceUpdate } from \"./useForceUpdate.js\";\nvar defaultUserAgents = [\"react (\".concat(ReactVersion, \")\"), \"react-instantsearch (\".concat(version, \")\"), \"react-instantsearch-hooks (\".concat(version, \")\")];\nvar serverUserAgent = \"react-instantsearch-server (\".concat(version, \")\");\nexport function useInstantSearchApi(props) {\n var forceUpdate = useForceUpdate();\n var serverContext = useInstantSearchServerContext();\n var serverState = useInstantSearchSSRContext();\n var initialResults = serverState === null || serverState === void 0 ? void 0 : serverState.initialResults;\n var searchRef = useRef(null);\n var prevPropsRef = useRef(props);\n\n if (searchRef.current === null) {\n // We don't use the `instantsearch()` function because it comes with other\n // top-level APIs that we don't need.\n // See https://github.com/algolia/instantsearch.js/blob/5b529f43d8acc680f85837eaaa41f7fd03a3f833/src/index.es.ts#L63-L86\n var search = new InstantSearch(props);\n\n if (serverContext || initialResults) {\n // InstantSearch.js has a private Initial Results API that lets us inject\n // results on the search instance.\n // On the server, we default the initial results to an empty object so that\n // InstantSearch.js doesn't schedule a search that isn't used, leading to\n // an additional network request. (This is equivalent to monkey-patching\n // `scheduleSearch` to a noop.)\n search._initialResults = initialResults || {};\n }\n\n addAlgoliaAgents(props.searchClient, [].concat(defaultUserAgents, [serverContext && serverUserAgent])); // On the server, we start the search early to compute the search parameters.\n // On SSR, we start the search early to directly catch up with the lifecycle\n // and render.\n\n if (serverContext || initialResults) {\n search.start();\n }\n\n if (serverContext) {\n // We notify `getServerState()` of the InstantSearch internals to retrieve\n // the server state and pass it to the render on SSR.\n serverContext.notifyServer({\n search: search\n });\n }\n\n searchRef.current = search;\n }\n\n {\n var _search = searchRef.current;\n var prevProps = prevPropsRef.current;\n\n if (prevProps.indexName !== props.indexName) {\n _search.helper.setIndex(props.indexName).search();\n\n prevPropsRef.current = props;\n }\n\n if (prevProps.searchClient !== props.searchClient) {\n addAlgoliaAgents(props.searchClient, [].concat(defaultUserAgents, [serverContext && serverUserAgent]));\n\n _search.mainHelper.setClient(props.searchClient).search();\n\n prevPropsRef.current = props;\n }\n\n if (prevProps.onStateChange !== props.onStateChange) {\n _search.onStateChange = props.onStateChange;\n prevPropsRef.current = props;\n }\n\n if (prevProps.searchFunction !== props.searchFunction) {\n // Updating the `searchFunction` to `undefined` is not supported by\n // InstantSearch.js, so it will throw an error.\n // This is a fair behavior until we add an update API in InstantSearch.js.\n _search._searchFunction = props.searchFunction;\n prevPropsRef.current = props;\n }\n\n if (prevProps.stalledSearchDelay !== props.stalledSearchDelay) {\n var _props$stalledSearchD;\n\n // The default `stalledSearchDelay` in InstantSearch.js is 200ms.\n // We need to reset it when it's undefined to get back to the original value.\n _search._stalledSearchDelay = (_props$stalledSearchD = props.stalledSearchDelay) !== null && _props$stalledSearchD !== void 0 ? _props$stalledSearchD : 200;\n prevPropsRef.current = props;\n } // Updating the `routing` prop is not supported because InstantSearch.js\n // doesn't let us change it. This might not be a problem though, because `routing`\n // shouldn't need to be dynamic.\n // If we find scenarios where `routing` needs to change, we can always expose\n // it privately on the InstantSearch instance. Another way would be to\n // manually inject the routing middleware in this library, and not rely\n // on the provided `routing` prop.\n\n }\n var cleanupTimerRef = useRef(null);\n var store = useSyncExternalStore(useCallback(function () {\n var search = searchRef.current; // Scenario 1: the component mounts.\n\n if (cleanupTimerRef.current === null) {\n // On SSR, the instance is already started so we don't start it again.\n if (!search.started) {\n search.start();\n forceUpdate();\n }\n } // Scenario 2: the component updates.\n else {\n // We cancel the previous cleanup function because we don't want to\n // dispose the search during an update.\n clearTimeout(cleanupTimerRef.current);\n search._preventWidgetCleanup = false;\n }\n\n return function () {\n function cleanup() {\n search.dispose();\n } // We clean up only when the component that uses this subscription unmounts,\n // but not when it updates, because it would dispose the instance, which\n // would remove all the widgets and break routing.\n // Executing the cleanup function in a `setTimeout()` lets us cancel it\n // in the next effect.\n // (There might be better ways to do this.)\n\n\n cleanupTimerRef.current = setTimeout(cleanup); // We need to prevent the `useWidget` cleanup function so that widgets\n // are not removed before the instance is disposed, triggering\n // an unwanted search request.\n\n search._preventWidgetCleanup = true;\n };\n }, [forceUpdate]), function () {\n return searchRef.current;\n }, function () {\n return searchRef.current;\n });\n return store;\n}\n\nfunction addAlgoliaAgents(searchClient, userAgents) {\n if (typeof searchClient.addAlgoliaAgent !== 'function') {\n return;\n }\n\n userAgents.filter(Boolean).forEach(function (userAgent) {\n searchClient.addAlgoliaAgent(userAgent);\n });\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"children\"];\nimport React from 'react';\nimport { IndexContext } from \"../lib/IndexContext.js\";\nimport { InstantSearchContext } from \"../lib/InstantSearchContext.js\";\nimport { useInstantSearchApi } from \"../lib/useInstantSearchApi.js\";\nexport function InstantSearch(_ref) {\n var children = _ref.children,\n props = _objectWithoutProperties(_ref, _excluded);\n\n var search = useInstantSearchApi(props);\n\n if (!search.started) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(InstantSearchContext.Provider, {\n value: search\n }, /*#__PURE__*/React.createElement(IndexContext.Provider, {\n value: search.mainIndex\n }, children));\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\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 { escapeHits, TAG_PLACEHOLDER, checkRendering, createDocumentationMessageGenerator, isEqual, addAbsolutePosition, addQueryID, noop, createSendEventForHits, createBindEventForHits } from \"../../lib/utils/index.js\";\nvar withUsage = createDocumentationMessageGenerator({\n name: 'infinite-hits',\n connector: true\n});\n\nfunction getStateWithoutPage(state) {\n var _ref = state || {},\n page = _ref.page,\n rest = _objectWithoutProperties(_ref, [\"page\"]);\n\n return rest;\n}\n\nfunction getInMemoryCache() {\n var cachedHits = null;\n var cachedState = null;\n return {\n read: function read(_ref2) {\n var state = _ref2.state;\n return isEqual(cachedState, getStateWithoutPage(state)) ? cachedHits : null;\n },\n write: function write(_ref3) {\n var state = _ref3.state,\n hits = _ref3.hits;\n cachedState = getStateWithoutPage(state);\n cachedHits = hits;\n }\n };\n}\n\nfunction extractHitsFromCachedHits(cachedHits) {\n return Object.keys(cachedHits).map(Number).sort(function (a, b) {\n return a - b;\n }).reduce(function (acc, page) {\n return acc.concat(cachedHits[page]);\n }, []);\n}\n\nvar connectInfiniteHits = function connectInfiniteHits(renderFn) {\n var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n checkRendering(renderFn, withUsage()); // @TODO: this should be a generic, but a Connector can not yet be generic itself\n\n return function (widgetParams) {\n var _ref4 = widgetParams || {},\n _ref4$escapeHTML = _ref4.escapeHTML,\n escapeHTML = _ref4$escapeHTML === void 0 ? true : _ref4$escapeHTML,\n _ref4$transformItems = _ref4.transformItems,\n transformItems = _ref4$transformItems === void 0 ? function (items) {\n return items;\n } : _ref4$transformItems,\n _ref4$cache = _ref4.cache,\n cache = _ref4$cache === void 0 ? getInMemoryCache() : _ref4$cache;\n\n var showPrevious;\n var showMore;\n var sendEvent;\n var bindEvent;\n\n var getFirstReceivedPage = function getFirstReceivedPage(state, cachedHits) {\n var _state$page = state.page,\n page = _state$page === void 0 ? 0 : _state$page;\n var pages = Object.keys(cachedHits).map(Number);\n\n if (pages.length === 0) {\n return page;\n } else {\n return Math.min.apply(Math, [page].concat(_toConsumableArray(pages)));\n }\n };\n\n var getLastReceivedPage = function getLastReceivedPage(state, cachedHits) {\n var _state$page2 = state.page,\n page = _state$page2 === void 0 ? 0 : _state$page2;\n var pages = Object.keys(cachedHits).map(Number);\n\n if (pages.length === 0) {\n return page;\n } else {\n return Math.max.apply(Math, [page].concat(_toConsumableArray(pages)));\n }\n };\n\n var getShowPrevious = function getShowPrevious(helper) {\n return function () {\n // Using the helper's `overrideStateWithoutTriggeringChangeEvent` method\n // avoid updating the browser URL when the user displays the previous page.\n helper.overrideStateWithoutTriggeringChangeEvent(_objectSpread(_objectSpread({}, helper.state), {}, {\n page: getFirstReceivedPage(helper.state, cache.read({\n state: helper.state\n }) || {}) - 1\n })).searchWithoutTriggeringOnStateChange();\n };\n };\n\n var getShowMore = function getShowMore(helper) {\n return function () {\n helper.setPage(getLastReceivedPage(helper.state, cache.read({\n state: helper.state\n }) || {}) + 1).search();\n };\n };\n\n return {\n $$type: 'ais.infiniteHits',\n init: function init(initOptions) {\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(initOptions)), {}, {\n instantSearchInstance: initOptions.instantSearchInstance\n }), true);\n },\n render: function render(renderOptions) {\n var instantSearchInstance = renderOptions.instantSearchInstance;\n var widgetRenderState = this.getWidgetRenderState(renderOptions);\n renderFn(_objectSpread(_objectSpread({}, widgetRenderState), {}, {\n instantSearchInstance: instantSearchInstance\n }), false);\n sendEvent('view', widgetRenderState.currentPageHits);\n },\n getRenderState: function getRenderState(renderState, renderOptions) {\n return _objectSpread(_objectSpread({}, renderState), {}, {\n infiniteHits: this.getWidgetRenderState(renderOptions)\n });\n },\n getWidgetRenderState: function getWidgetRenderState(_ref5) {\n var results = _ref5.results,\n helper = _ref5.helper,\n state = _ref5.state,\n instantSearchInstance = _ref5.instantSearchInstance;\n var isFirstPage;\n var currentPageHits = [];\n var cachedHits = cache.read({\n state: state\n }) || {};\n\n if (!results) {\n showPrevious = getShowPrevious(helper);\n showMore = getShowMore(helper);\n sendEvent = createSendEventForHits({\n instantSearchInstance: instantSearchInstance,\n index: helper.getIndex(),\n widgetType: this.$$type\n });\n bindEvent = createBindEventForHits({\n index: helper.getIndex(),\n widgetType: this.$$type\n });\n isFirstPage = state.page === undefined || getFirstReceivedPage(state, cachedHits) === 0;\n } else {\n var _state$page3 = state.page,\n _page = _state$page3 === void 0 ? 0 : _state$page3;\n\n if (escapeHTML && results.hits.length > 0) {\n results.hits = escapeHits(results.hits);\n }\n\n var hitsWithAbsolutePosition = addAbsolutePosition(results.hits, results.page, results.hitsPerPage);\n var hitsWithAbsolutePositionAndQueryID = addQueryID(hitsWithAbsolutePosition, results.queryID);\n var transformedHits = transformItems(hitsWithAbsolutePositionAndQueryID, {\n results: results\n });\n\n if (cachedHits[_page] === undefined && !results.__isArtificial) {\n cachedHits[_page] = transformedHits;\n cache.write({\n state: state,\n hits: cachedHits\n });\n }\n\n currentPageHits = transformedHits;\n isFirstPage = getFirstReceivedPage(state, cachedHits) === 0;\n }\n\n var hits = extractHitsFromCachedHits(cachedHits);\n var isLastPage = results ? results.nbPages <= getLastReceivedPage(state, cachedHits) + 1 : true;\n return {\n hits: hits,\n currentPageHits: currentPageHits,\n sendEvent: sendEvent,\n bindEvent: bindEvent,\n results: results,\n showPrevious: showPrevious,\n showMore: showMore,\n isFirstPage: isFirstPage,\n isLastPage: isLastPage,\n widgetParams: widgetParams\n };\n },\n dispose: function dispose(_ref6) {\n var state = _ref6.state;\n unmountFn();\n var stateWithoutPage = state.setQueryParameter('page', undefined);\n\n if (!escapeHTML) {\n return stateWithoutPage;\n }\n\n return stateWithoutPage.setQueryParameters(Object.keys(TAG_PLACEHOLDER).reduce(function (acc, key) {\n return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, undefined));\n }, {}));\n },\n getWidgetUiState: function getWidgetUiState(uiState, _ref7) {\n var searchParameters = _ref7.searchParameters;\n var page = searchParameters.page || 0;\n\n if (!page) {\n // return without adding `page` to uiState\n // because we don't want `page=1` in the URL\n return uiState;\n }\n\n return _objectSpread(_objectSpread({}, uiState), {}, {\n // The page in the UI state is incremented by one\n // to expose the user value (not `0`).\n page: page + 1\n });\n },\n getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref8) {\n var uiState = _ref8.uiState;\n var widgetSearchParameters = searchParameters;\n\n if (escapeHTML) {\n widgetSearchParameters = searchParameters.setQueryParameters(TAG_PLACEHOLDER);\n } // The page in the search parameters is decremented by one\n // to get to the actual parameter value from the UI state.\n\n\n var page = uiState.page ? uiState.page - 1 : 0;\n return widgetSearchParameters.setQueryParameter('page', page);\n }\n };\n };\n};\n\nexport default connectInfiniteHits;","import connectInfiniteHits from \"instantsearch.js/es/connectors/infinite-hits/connectInfiniteHits.js\";\nimport { useConnector } from \"../hooks/useConnector.js\";\nexport function useInfiniteHits(props, additionalWidgetProperties) {\n return useConnector(connectInfiniteHits, props, additionalWidgetProperties);\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 _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 { escapeFacets, TAG_PLACEHOLDER, TAG_REPLACEMENT, checkRendering, createDocumentationMessageGenerator, createSendEventForFacet, noop } from \"../../lib/utils/index.js\";\nvar withUsage = createDocumentationMessageGenerator({\n name: 'refinement-list',\n connector: true\n});\nvar DEFAULT_SORT = ['isRefined', 'count:desc', 'name:asc'];\n\n/**\n * **RefinementList** connector provides the logic to build a custom widget that\n * will let the user filter the results based on the values of a specific facet.\n *\n * **Requirement:** the attribute passed as `attribute` must be present in\n * attributesForFaceting of the searched index.\n *\n * This connector provides:\n * - a `refine()` function to select an item.\n * - a `toggleShowMore()` function to display more or less items\n * - a `searchForItems()` function to search within the items.\n */\nvar connectRefinementList = function connectRefinementList(renderFn) {\n var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n checkRendering(renderFn, withUsage());\n return function (widgetParams) {\n var _ref = widgetParams || {},\n attribute = _ref.attribute,\n _ref$operator = _ref.operator,\n operator = _ref$operator === void 0 ? 'or' : _ref$operator,\n _ref$limit = _ref.limit,\n limit = _ref$limit === void 0 ? 10 : _ref$limit,\n _ref$showMore = _ref.showMore,\n showMore = _ref$showMore === void 0 ? false : _ref$showMore,\n _ref$showMoreLimit = _ref.showMoreLimit,\n showMoreLimit = _ref$showMoreLimit === void 0 ? 20 : _ref$showMoreLimit,\n _ref$sortBy = _ref.sortBy,\n sortBy = _ref$sortBy === void 0 ? DEFAULT_SORT : _ref$sortBy,\n _ref$escapeFacetValue = _ref.escapeFacetValues,\n escapeFacetValues = _ref$escapeFacetValue === void 0 ? true : _ref$escapeFacetValue,\n _ref$transformItems = _ref.transformItems,\n transformItems = _ref$transformItems === void 0 ? function (items) {\n return items;\n } : _ref$transformItems;\n\n if (!attribute) {\n throw new Error(withUsage('The `attribute` option is required.'));\n }\n\n if (!/^(and|or)$/.test(operator)) {\n throw new Error(withUsage(\"The `operator` must one of: `\\\"and\\\"`, `\\\"or\\\"` (got \\\"\".concat(operator, \"\\\").\")));\n }\n\n if (showMore === true && showMoreLimit <= limit) {\n throw new Error(withUsage('`showMoreLimit` should be greater than `limit`.'));\n }\n\n var formatItems = function formatItems(_ref2) {\n var label = _ref2.name,\n value = _ref2.escapedValue,\n item = _objectWithoutProperties(_ref2, [\"name\", \"escapedValue\"]);\n\n return _objectSpread(_objectSpread({}, item), {}, {\n value: value,\n label: label,\n highlighted: label\n });\n };\n\n var lastResultsFromMainSearch;\n var lastItemsFromMainSearch = [];\n var hasExhaustiveItems = true;\n var triggerRefine;\n var sendEvent;\n var isShowingMore = false; // Provide the same function to the `renderFn` so that way the user\n // has to only bind it once when `isFirstRendering` for instance\n\n var toggleShowMore = function toggleShowMore() {};\n\n function cachedToggleShowMore() {\n toggleShowMore();\n }\n\n function createToggleShowMore(renderOptions, widget) {\n return function () {\n isShowingMore = !isShowingMore;\n widget.render(renderOptions);\n };\n }\n\n function getLimit() {\n return isShowingMore ? showMoreLimit : limit;\n }\n\n var searchForFacetValues = function searchForFacetValues() {\n return function () {};\n };\n\n var createSearchForFacetValues = function createSearchForFacetValues(helper, widget) {\n return function (renderOptions) {\n return function (query) {\n var instantSearchInstance = renderOptions.instantSearchInstance,\n searchResults = renderOptions.results;\n\n if (query === '' && lastItemsFromMainSearch) {\n // render with previous data from the helper.\n renderFn(_objectSpread(_objectSpread({}, widget.getWidgetRenderState(_objectSpread(_objectSpread({}, renderOptions), {}, {\n results: lastResultsFromMainSearch\n }))), {}, {\n instantSearchInstance: instantSearchInstance\n }), false);\n } else {\n var tags = {\n highlightPreTag: escapeFacetValues ? TAG_PLACEHOLDER.highlightPreTag : TAG_REPLACEMENT.highlightPreTag,\n highlightPostTag: escapeFacetValues ? TAG_PLACEHOLDER.highlightPostTag : TAG_REPLACEMENT.highlightPostTag\n };\n helper.searchForFacetValues(attribute, query, // We cap the `maxFacetHits` value to 100 because the Algolia API\n // doesn't support a greater number.\n // See https://www.algolia.com/doc/api-reference/api-parameters/maxFacetHits/\n Math.min(getLimit(), 100), tags).then(function (results) {\n var facetValues = escapeFacetValues ? escapeFacets(results.facetHits) : results.facetHits;\n var normalizedFacetValues = transformItems(facetValues.map(function (_ref3) {\n var escapedValue = _ref3.escapedValue,\n value = _ref3.value,\n item = _objectWithoutProperties(_ref3, [\"escapedValue\", \"value\"]);\n\n return _objectSpread(_objectSpread({}, item), {}, {\n value: escapedValue,\n label: value\n });\n }), {\n results: searchResults\n });\n renderFn(_objectSpread(_objectSpread({}, widget.getWidgetRenderState(_objectSpread(_objectSpread({}, renderOptions), {}, {\n results: lastResultsFromMainSearch\n }))), {}, {\n items: normalizedFacetValues,\n canToggleShowMore: false,\n canRefine: true,\n isFromSearch: true,\n instantSearchInstance: instantSearchInstance\n }), false);\n });\n }\n };\n };\n };\n\n return {\n $$type: 'ais.refinementList',\n init: function init(initOptions) {\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(initOptions)), {}, {\n instantSearchInstance: initOptions.instantSearchInstance\n }), true);\n },\n render: function render(renderOptions) {\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(renderOptions)), {}, {\n instantSearchInstance: renderOptions.instantSearchInstance\n }), false);\n },\n getRenderState: function getRenderState(renderState, renderOptions) {\n return _objectSpread(_objectSpread({}, renderState), {}, {\n refinementList: _objectSpread(_objectSpread({}, renderState.refinementList), {}, _defineProperty({}, attribute, this.getWidgetRenderState(renderOptions)))\n });\n },\n getWidgetRenderState: function getWidgetRenderState(renderOptions) {\n var results = renderOptions.results,\n state = renderOptions.state,\n _createURL = renderOptions.createURL,\n instantSearchInstance = renderOptions.instantSearchInstance,\n helper = renderOptions.helper;\n var items = [];\n var facetValues = [];\n\n if (!sendEvent || !triggerRefine || !searchForFacetValues) {\n sendEvent = createSendEventForFacet({\n instantSearchInstance: instantSearchInstance,\n helper: helper,\n attribute: attribute,\n widgetType: this.$$type\n });\n\n triggerRefine = function triggerRefine(facetValue) {\n sendEvent('click', facetValue);\n helper.toggleFacetRefinement(attribute, facetValue).search();\n };\n\n searchForFacetValues = createSearchForFacetValues(helper, this);\n }\n\n if (results) {\n var values = results.getFacetValues(attribute, {\n sortBy: sortBy,\n facetOrdering: sortBy === DEFAULT_SORT\n });\n facetValues = values && Array.isArray(values) ? values : [];\n items = transformItems(facetValues.slice(0, getLimit()).map(formatItems), {\n results: results\n });\n var maxValuesPerFacetConfig = state.maxValuesPerFacet;\n var currentLimit = getLimit(); // If the limit is the max number of facet retrieved it is impossible to know\n // if the facets are exhaustive. The only moment we are sure it is exhaustive\n // is when it is strictly under the number requested unless we know that another\n // widget has requested more values (maxValuesPerFacet > getLimit()).\n // Because this is used for making the search of facets unable or not, it is important\n // to be conservative here.\n\n hasExhaustiveItems = maxValuesPerFacetConfig > currentLimit ? facetValues.length <= currentLimit : facetValues.length < currentLimit;\n lastResultsFromMainSearch = results;\n lastItemsFromMainSearch = items;\n\n if (renderOptions.results) {\n toggleShowMore = createToggleShowMore(renderOptions, this);\n }\n } // Do not mistake searchForFacetValues and searchFacetValues which is the actual search\n // function\n\n\n var searchFacetValues = searchForFacetValues && searchForFacetValues(renderOptions);\n var canShowLess = isShowingMore && lastItemsFromMainSearch.length > limit;\n var canShowMore = showMore && !hasExhaustiveItems;\n var canToggleShowMore = canShowLess || canShowMore;\n return {\n createURL: function createURL(facetValue) {\n return _createURL(state.resetPage().toggleFacetRefinement(attribute, facetValue));\n },\n items: items,\n refine: triggerRefine,\n searchForItems: searchFacetValues,\n isFromSearch: false,\n canRefine: items.length > 0,\n widgetParams: widgetParams,\n isShowingMore: isShowingMore,\n canToggleShowMore: canToggleShowMore,\n toggleShowMore: cachedToggleShowMore,\n sendEvent: sendEvent,\n hasExhaustiveItems: hasExhaustiveItems\n };\n },\n dispose: function dispose(_ref4) {\n var state = _ref4.state;\n unmountFn();\n var withoutMaxValuesPerFacet = state.setQueryParameter('maxValuesPerFacet', undefined);\n\n if (operator === 'and') {\n return withoutMaxValuesPerFacet.removeFacet(attribute);\n }\n\n return withoutMaxValuesPerFacet.removeDisjunctiveFacet(attribute);\n },\n getWidgetUiState: function getWidgetUiState(uiState, _ref5) {\n var searchParameters = _ref5.searchParameters;\n var values = operator === 'or' ? searchParameters.getDisjunctiveRefinements(attribute) : searchParameters.getConjunctiveRefinements(attribute);\n\n if (!values.length) {\n return uiState;\n }\n\n return _objectSpread(_objectSpread({}, uiState), {}, {\n refinementList: _objectSpread(_objectSpread({}, uiState.refinementList), {}, _defineProperty({}, attribute, values))\n });\n },\n getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref6) {\n var uiState = _ref6.uiState;\n var isDisjunctive = operator === 'or';\n var values = uiState.refinementList && uiState.refinementList[attribute];\n var withoutRefinements = searchParameters.clearRefinements(attribute);\n var withFacetConfiguration = isDisjunctive ? withoutRefinements.addDisjunctiveFacet(attribute) : withoutRefinements.addFacet(attribute);\n var currentMaxValuesPerFacet = withFacetConfiguration.maxValuesPerFacet || 0;\n var nextMaxValuesPerFacet = Math.max(currentMaxValuesPerFacet, showMore ? showMoreLimit : limit);\n var withMaxValuesPerFacet = withFacetConfiguration.setQueryParameter('maxValuesPerFacet', nextMaxValuesPerFacet);\n\n if (!values) {\n var key = isDisjunctive ? 'disjunctiveFacetsRefinements' : 'facetsRefinements';\n return withMaxValuesPerFacet.setQueryParameters(_defineProperty({}, key, _objectSpread(_objectSpread({}, withMaxValuesPerFacet[key]), {}, _defineProperty({}, attribute, []))));\n }\n\n return values.reduce(function (parameters, value) {\n return isDisjunctive ? parameters.addDisjunctiveFacetRefinement(attribute, value) : parameters.addFacetRefinement(attribute, value);\n }, withMaxValuesPerFacet);\n }\n };\n };\n};\n\nexport default connectRefinementList;","import connectRefinementList from \"instantsearch.js/es/connectors/refinement-list/connectRefinementList.js\";\nimport { useConnector } from \"../hooks/useConnector.js\";\nexport function useRefinementList(props, additionalWidgetProperties) {\n return useConnector(connectRefinementList, props, additionalWidgetProperties);\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\nimport { checkRendering, createDocumentationMessageGenerator, find, warning, noop } from \"../../lib/utils/index.js\";\nvar withUsage = createDocumentationMessageGenerator({\n name: 'sort-by',\n connector: true\n});\n/**\n * The **SortBy** connector provides the logic to build a custom widget that will display a\n * list of indices. With Algolia, this is most commonly used for changing ranking strategy. This allows\n * a user to change how the hits are being sorted.\n */\n\nvar connectSortBy = function connectSortBy(renderFn) {\n var unmountFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n checkRendering(renderFn, withUsage());\n var connectorState = {};\n return function (widgetParams) {\n var _ref = widgetParams || {},\n items = _ref.items,\n _ref$transformItems = _ref.transformItems,\n transformItems = _ref$transformItems === void 0 ? function (x) {\n return x;\n } : _ref$transformItems;\n\n if (!Array.isArray(items)) {\n throw new Error(withUsage('The `items` option expects an array of objects.'));\n }\n\n return {\n $$type: 'ais.sortBy',\n init: function init(initOptions) {\n var instantSearchInstance = initOptions.instantSearchInstance;\n var widgetRenderState = this.getWidgetRenderState(initOptions);\n var currentIndex = widgetRenderState.currentRefinement;\n var isCurrentIndexInItems = find(items, function (item) {\n return item.value === currentIndex;\n });\n process.env.NODE_ENV === 'development' ? warning(isCurrentIndexInItems !== undefined, \"The index named \\\"\".concat(currentIndex, \"\\\" is not listed in the `items` of `sortBy`.\")) : void 0;\n renderFn(_objectSpread(_objectSpread({}, widgetRenderState), {}, {\n instantSearchInstance: instantSearchInstance\n }), true);\n },\n render: function render(renderOptions) {\n var instantSearchInstance = renderOptions.instantSearchInstance;\n renderFn(_objectSpread(_objectSpread({}, this.getWidgetRenderState(renderOptions)), {}, {\n instantSearchInstance: instantSearchInstance\n }), false);\n },\n dispose: function dispose(_ref2) {\n var state = _ref2.state;\n unmountFn();\n return connectorState.initialIndex ? state.setIndex(connectorState.initialIndex) : state;\n },\n getRenderState: function getRenderState(renderState, renderOptions) {\n return _objectSpread(_objectSpread({}, renderState), {}, {\n sortBy: this.getWidgetRenderState(renderOptions)\n });\n },\n getWidgetRenderState: function getWidgetRenderState(_ref3) {\n var results = _ref3.results,\n helper = _ref3.helper,\n state = _ref3.state,\n parent = _ref3.parent;\n\n if (!connectorState.initialIndex && parent) {\n connectorState.initialIndex = parent.getIndexName();\n }\n\n if (!connectorState.setIndex) {\n connectorState.setIndex = function (indexName) {\n helper.setIndex(indexName).search();\n };\n }\n\n var hasNoResults = results ? results.nbHits === 0 : true;\n return {\n currentRefinement: state.index,\n options: transformItems(items, {\n results: results\n }),\n refine: connectorState.setIndex,\n hasNoResults: hasNoResults,\n canRefine: !hasNoResults && items.length > 0,\n widgetParams: widgetParams\n };\n },\n getWidgetUiState: function getWidgetUiState(uiState, _ref4) {\n var searchParameters = _ref4.searchParameters;\n var currentIndex = searchParameters.index;\n return _objectSpread(_objectSpread({}, uiState), {}, {\n sortBy: currentIndex !== connectorState.initialIndex ? currentIndex : undefined\n });\n },\n getWidgetSearchParameters: function getWidgetSearchParameters(searchParameters, _ref5) {\n var uiState = _ref5.uiState;\n return searchParameters.setQueryParameter('index', uiState.sortBy || connectorState.initialIndex || searchParameters.index);\n }\n };\n };\n};\n\nexport default connectSortBy;","import connectSortBy from \"instantsearch.js/es/connectors/sort-by/connectSortBy.js\";\nimport { useConnector } from \"../hooks/useConnector.js\";\nexport function useSortBy(props, additionalWidgetProperties) {\n return useConnector(connectSortBy, props, additionalWidgetProperties);\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { useEffect, useState } from 'react';\nimport { getIndexSearchResults } from \"./getIndexSearchResults.js\";\nimport { useIndexContext } from \"./useIndexContext.js\";\nimport { useInstantSearchContext } from \"./useInstantSearchContext.js\";\nexport function useSearchResults() {\n var search = useInstantSearchContext();\n var searchIndex = useIndexContext();\n\n var _useState = useState(function () {\n return getIndexSearchResults(searchIndex);\n }),\n _useState2 = _slicedToArray(_useState, 2),\n searchResults = _useState2[0],\n setSearchResults = _useState2[1];\n\n useEffect(function () {\n function handleRender() {\n var results = searchIndex.getResults(); // Results can be `null` when the first search is stalled.\n // In this case, we skip the update.\n // See: https://github.com/algolia/instantsearch.js/blob/20996c7a159988c58e00ff24d2d2dc98af8b980f/src/widgets/index/index.ts#L652-L657\n\n if (results !== null) {\n setSearchResults({\n results: results,\n scopedResults: searchIndex.getScopedResults()\n });\n }\n }\n\n search.addListener('render', handleRender);\n return function () {\n search.removeListener('render', handleRender);\n };\n }, [search, searchIndex]);\n return searchResults;\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\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\nimport { useCallback, useEffect, useState } from 'react';\nimport { useIndexContext } from \"./useIndexContext.js\";\nimport { useInstantSearchContext } from \"./useInstantSearchContext.js\";\nexport function useSearchState() {\n var search = useInstantSearchContext();\n var searchIndex = useIndexContext();\n var indexId = searchIndex.getIndexId();\n\n var _useState = useState(function () {\n return search.getUiState();\n }),\n _useState2 = _slicedToArray(_useState, 2),\n uiState = _useState2[0],\n setLocalUiState = _useState2[1];\n\n var indexUiState = uiState[indexId];\n var setUiState = useCallback(function (nextUiState) {\n search.setUiState(nextUiState);\n }, [search]);\n var setIndexUiState = useCallback(function (nextUiState) {\n setUiState(function (prevUiState) {\n return _objectSpread(_objectSpread({}, prevUiState), {}, _defineProperty({}, indexId, typeof nextUiState === 'function' ? nextUiState(prevUiState[indexId]) : nextUiState));\n });\n }, [setUiState, indexId]);\n useEffect(function () {\n function handleRender() {\n setLocalUiState(search.getUiState());\n }\n\n search.addListener('render', handleRender);\n return function () {\n search.removeListener('render', handleRender);\n };\n }, [search, indexId]);\n return {\n uiState: uiState,\n setUiState: setUiState,\n indexUiState: indexUiState,\n setIndexUiState: setIndexUiState\n };\n}","import { useCallback } from 'react';\nimport { useInstantSearchContext } from \"../lib/useInstantSearchContext.js\";\nimport { useIsomorphicLayoutEffect } from \"../lib/useIsomorphicLayoutEffect.js\";\nimport { useSearchResults } from \"../lib/useSearchResults.js\";\nimport { useSearchState } from \"../lib/useSearchState.js\";\nexport function useInstantSearch() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n catchError = _ref.catchError;\n\n var search = useInstantSearchContext();\n\n var _useSearchState = useSearchState(),\n uiState = _useSearchState.uiState,\n setUiState = _useSearchState.setUiState,\n indexUiState = _useSearchState.indexUiState,\n setIndexUiState = _useSearchState.setIndexUiState;\n\n var _useSearchResults = useSearchResults(),\n results = _useSearchResults.results,\n scopedResults = _useSearchResults.scopedResults;\n\n var use = useCallback(function () {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n search.use.apply(search, middlewares);\n return function () {\n search.unuse.apply(search, middlewares);\n };\n }, [search]);\n var refresh = useCallback(function () {\n search.refresh();\n }, [search]);\n useIsomorphicLayoutEffect(function () {\n if (catchError) {\n var onError = function onError() {};\n\n search.addListener('error', onError);\n return function () {\n return search.removeListener('error', onError);\n };\n }\n\n return function () {};\n }, [search, catchError]);\n return {\n results: results,\n scopedResults: scopedResults,\n uiState: uiState,\n setUiState: setUiState,\n indexUiState: indexUiState,\n setIndexUiState: setIndexUiState,\n use: use,\n refresh: refresh,\n status: search.status,\n error: search.error\n };\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 __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 });\nconst React = __importStar(require(\"react\"));\nconst SvgFilterBold = (props) => (React.createElement(\"svg\", Object.assign({ xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\" }, props),\n React.createElement(\"path\", { d: \"M12,2c-4.971,0 -9,1.343 -9,3l0,3.26c0,0.477 0.171,0.939 0.482,1.302l5.518,6.438l0,5c0,0.552 1.343,1 3,1c1.657,0 3,-0.448 3,-1l0,-5l5.518,-6.438c0.311,-0.363 0.482,-0.824 0.482,-1.302l0,-3.26c0,-1.657 -4.029,-3 -9,-3Zm0,5c-3.866,0 -7,-0.895 -7,-2c0,-1.105 3.134,-2 7,-2c3.866,0 7,0.895 7,2c0,1.105 -3.134,2 -7,2Z\" })));\nexports.default = SvgFilterBold;\n","import * as React from 'preact/compat';\r\nimport {Text,useText} from \"preact-i18n\";\r\nimport {ItemCategory} from '../shared';\r\nimport IconFilterBold from '@devolutions/icons/react/FilterBold';\r\n\r\nexport type ResultsHeaderProps = {\r\n category: ItemCategory;\r\n hasFilters: boolean;\r\n showFilters: boolean;\r\n onToggleFilters: () => void;\r\n}\r\n\r\nconst ResultsHeader: React.FC = (\r\n {\r\n category,\r\n hasFilters,\r\n onToggleFilters,\r\n showFilters\r\n }\r\n) => {\r\n return (\r\n
\r\n \r\n {hasFilters &&\r\n \r\n }\r\n
\r\n );\r\n}\r\n\r\nexport default ResultsHeader;\r\n","import * as React from \"preact/compat\";\r\nimport {useEffect, useState} from \"preact/compat\";\r\nimport {useInstantSearch} from \"react-instantsearch-hooks-web\";\r\n\r\nexport const StateResults: React.FC<{\r\n query: string,\r\n onResultChange: (totalHits: number) => void;\r\n}> = ({query, onResultChange}) => {\r\n const {results} = useInstantSearch();\r\n const [isFirstPass, setIsFirstPass] = useState(true);\r\n\r\n useEffect(() => {\r\n if (isFirstPass) {\r\n setIsFirstPass(false);\r\n } else if (query === results.query) {\r\n onResultChange(results.nbHits);\r\n }\r\n }, [query, results])\r\n\r\n return <>;\r\n};\r\n","import { useRef, useState, useCallback, useEffect } from 'react';\n\nvar DEFAULT_ROOT_MARGIN = '0px';\nvar DEFAULT_THRESHOLD = [0]; // For more info:\n// https://developers.google.com/web/updates/2016/04/intersectionobserver\n// https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n\nfunction useIntersectionObserver(args) {\n var _args$rootMargin, _args$threshold;\n\n var rootMargin = (_args$rootMargin = args == null ? void 0 : args.rootMargin) != null ? _args$rootMargin : DEFAULT_ROOT_MARGIN;\n var threshold = (_args$threshold = args == null ? void 0 : args.threshold) != null ? _args$threshold : DEFAULT_THRESHOLD;\n var nodeRef = useRef(null);\n var rootRef = useRef(null);\n var observerRef = useRef(null);\n\n var _useState = useState(),\n entry = _useState[0],\n setEntry = _useState[1];\n\n var unobserve = useCallback(function () {\n // Disconnect the current observer (if there is one)\n var currentObserver = observerRef.current;\n currentObserver == null ? void 0 : currentObserver.disconnect();\n observerRef.current = null;\n }, []);\n var observe = useCallback(function () {\n var node = nodeRef.current;\n\n if (node) {\n var root = rootRef.current;\n var options = {\n root: root,\n rootMargin: rootMargin,\n threshold: threshold\n }; // Create a observer for current \"node\" with given options.\n\n var observer = new IntersectionObserver(function (_ref) {\n var newEntry = _ref[0];\n setEntry(newEntry);\n }, options);\n observer.observe(node);\n observerRef.current = observer;\n }\n }, [rootMargin, threshold]);\n var initializeObserver = useCallback(function () {\n unobserve();\n observe();\n }, [observe, unobserve]);\n var refCallback = useCallback(function (node) {\n nodeRef.current = node;\n initializeObserver();\n }, [initializeObserver]);\n var rootRefCallback = useCallback(function (rootNode) {\n rootRef.current = rootNode;\n initializeObserver();\n }, [initializeObserver]);\n useEffect(function () {\n // After React 18, StrictMode unmounts and mounts components to be sure\n // if they are resilient effects being mounted and destroyed multiple times.\n // This a behavior to be sure nothing breaks when off-screen components\n // can preserve their state with future React versions.\n // So in StrictMode, React unmounts the component, clean-up of this useEffect gets triggered and\n // we stop observing the node. But we need to start observing after component re-mounts with its preserved state.\n // So to handle this case, we call initializeObserver here.\n // https://reactjs.org/blog/2022/03/08/react-18-upgrade-guide.html#updates-to-strict-mode\n initializeObserver();\n return function () {\n // We disconnect the observer on unmount to prevent memory leaks etc.\n unobserve();\n };\n }, [initializeObserver, unobserve]);\n return [refCallback, {\n entry: entry,\n rootRef: rootRefCallback\n }];\n}\n\nfunction _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}\n\nfunction useTrackVisibility(args) {\n var _result$entry;\n\n var _useIntersectionObser = useIntersectionObserver(args),\n ref = _useIntersectionObser[0],\n result = _useIntersectionObser[1];\n\n var isVisible = Boolean((_result$entry = result.entry) == null ? void 0 : _result$entry.isIntersecting);\n\n var _useState = useState(isVisible),\n wasEverVisible = _useState[0],\n setWasEverVisible = _useState[1];\n\n useEffect(function () {\n if (isVisible) {\n setWasEverVisible(isVisible);\n }\n }, [isVisible]);\n return [ref, _extends({}, result, {\n isVisible: isVisible,\n wasEverVisible: wasEverVisible\n })];\n}\n\nexport { useIntersectionObserver, useTrackVisibility };\n//# sourceMappingURL=react-intersection-observer-hook.esm.js.map\n","import { useEffect } from 'react';\nimport { useTrackVisibility } from 'react-intersection-observer-hook';\n\nvar DEFAULT_DELAY_IN_MS = 100;\n\nfunction useInfiniteScroll(_ref) {\n var loading = _ref.loading,\n hasNextPage = _ref.hasNextPage,\n onLoadMore = _ref.onLoadMore,\n rootMargin = _ref.rootMargin,\n disabled = _ref.disabled,\n _ref$delayInMs = _ref.delayInMs,\n delayInMs = _ref$delayInMs === void 0 ? DEFAULT_DELAY_IN_MS : _ref$delayInMs;\n\n var _useTrackVisibility = useTrackVisibility({\n rootMargin: rootMargin\n }),\n ref = _useTrackVisibility[0],\n _useTrackVisibility$ = _useTrackVisibility[1],\n rootRef = _useTrackVisibility$.rootRef,\n isVisible = _useTrackVisibility$.isVisible;\n\n var shouldLoadMore = !disabled && !loading && isVisible && hasNextPage; // eslint-disable-next-line consistent-return\n\n useEffect(function () {\n if (shouldLoadMore) {\n // When we trigger 'onLoadMore' and new items are added to the list,\n // right before they become rendered on the screen, 'loading' becomes false\n // and 'isVisible' can be true for a brief time, based on the scroll position.\n // So, it triggers 'onLoadMore' just after the first one is finished.\n // We use a small delay here to prevent this kind of situations.\n // It can be configured by hook args.\n var timer = setTimeout(function () {\n onLoadMore();\n }, delayInMs);\n return function () {\n clearTimeout(timer);\n };\n }\n }, [onLoadMore, shouldLoadMore, delayInMs]);\n return [ref, {\n rootRef: rootRef\n }];\n}\n\nexport default useInfiniteScroll;\n//# sourceMappingURL=react-infinite-scroll-hook.esm.js.map\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 __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 });\nconst React = __importStar(require(\"react\"));\nconst SvgWindows = (props) => (React.createElement(\"svg\", Object.assign({ xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\" }, props),\n React.createElement(\"path\", { d: \"M10.998,12.463l-0,8.015l11.002,1.522l0,-9.537l-11.002,0Zm-8.995,0l0.003,6.771l7.992,1.106l0,-7.877l-7.995,-0Zm7.995,-1l0,-7.764l-7.998,1.133l0.003,6.631l7.995,-0Zm12.002,-0l0,-9.463l-11.002,1.558l0,7.905l11.002,-0Z\" })));\nexports.default = SvgWindows;\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 __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 });\nconst React = __importStar(require(\"react\"));\nconst SvgApple = (props) => (React.createElement(\"svg\", Object.assign({ xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\" }, props),\n React.createElement(\"path\", { d: \"M20.357,7.082c-0.846,-1.094 -2.03,-2.082 -3.789,-2.082c-1.252,0 -2.301,1.159 -3.992,1.159c-1.354,0 -1.929,-1.159 -3.418,-1.159c-3.079,0 -6.158,2.801 -6.158,6.428c0,1.916 0.609,4.893 2.03,7.459c1.015,1.881 2.267,3.113 3.654,3.113c1.015,0 2.199,-0.924 3.62,-0.924c1.252,0 2.402,0.924 3.519,0.924c2.707,0 5.177,-3.593 5.177,-5.988c0,-0.137 -0.034,-0.445 -0.034,-0.445c-1.759,-0.957 -2.966,-2.36 -2.966,-4.413c0,-1.642 0.97,-3.079 2.289,-4.037l0.068,-0.035Zm-7.849,-1.334c2.03,-0.616 4.074,-2.162 3.891,-4.824c-0.017,-0.232 -0.102,-0.924 -0.102,-0.924c-2.064,0.582 -3.975,2.191 -3.891,4.756c0.01,0.32 0.102,0.992 0.102,0.992Z\" })));\nexports.default = SvgApple;\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 __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 });\nconst React = __importStar(require(\"react\"));\nconst SvgAndroid = (props) => (React.createElement(\"svg\", Object.assign({ xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\" }, props),\n React.createElement(\"path\", { d: \"M7,19l1,0l0,2.5c0,0.828 0.672,1.5 1.5,1.5c0.828,0 1.5,-0.672 1.5,-1.5l0,-2.5l2,0l0,2.5c0,0.828 0.672,1.5 1.5,1.5c0.828,0 1.5,-0.672 1.5,-1.5l0,-2.5l1,0c0.552,0 1,-0.448 1,-1l0,-9l-12,0l0,9c0,0.552 0.448,1 1,1Zm-3.5,-10c-0.828,0 -1.5,0.672 -1.5,1.5l0,5c0,0.828 0.672,1.5 1.5,1.5c0.828,0 1.5,-0.672 1.5,-1.5l0,-5c0,-0.828 -0.672,-1.5 -1.5,-1.5Zm17,0c-0.828,0 -1.5,0.672 -1.5,1.5l0,5c0,0.828 0.672,1.5 1.5,1.5c0.828,0 1.5,-0.672 1.5,-1.5l0,-5c0,-0.828 -0.672,-1.5 -1.5,-1.5Zm-5.222,-5.185l0.613,-1.066c0.138,-0.239 0.055,-0.545 -0.184,-0.683c-0.239,-0.138 -0.545,-0.055 -0.683,0.184l-0.663,1.153c-0.724,-0.259 -1.522,-0.403 -2.361,-0.403c-0.852,0 -1.662,0.15 -2.396,0.417l-0.67,-1.166c-0.138,-0.24 -0.444,-0.322 -0.683,-0.184c-0.24,0.137 -0.322,0.443 -0.184,0.682l0.622,1.083c-1.62,0.895 -2.689,2.427 -2.689,4.168l12,0c0,-1.753 -1.084,-3.292 -2.722,-4.185Zm-5.766,2.185c-0.277,0 -0.501,-0.224 -0.501,-0.5c0,-0.276 0.225,-0.5 0.502,-0.5c0.277,0 0.502,0.224 0.502,0.5c-0.001,0.276 -0.226,0.5 -0.503,0.5Zm5.018,0c-0.277,0 -0.502,-0.224 -0.502,-0.5c0,-0.276 0.225,-0.5 0.502,-0.5c0.277,0 0.502,0.224 0.502,0.5c0,0.276 -0.225,0.5 -0.502,0.5Z\" })));\nexports.default = SvgAndroid;\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 __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 });\nconst React = __importStar(require(\"react\"));\nconst SvgIos = (props) => (React.createElement(\"svg\", Object.assign({ xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\" }, props),\n React.createElement(\"path\", { d: \"M10,5.75c-3.245,0 -5.875,2.798 -5.875,6.25c0,3.452 2.63,6.25 5.875,6.25c3.245,0 5.875,-2.798 5.875,-6.25c0,-3.452 -2.63,-6.25 -5.875,-6.25Zm8.718,3.449c0,-0.935 0.748,-1.449 1.808,-1.449c0.714,0 1.347,0.327 1.688,0.797c0.414,-0.511 0.909,-1.123 1.274,-1.576c-0.725,-0.743 -1.776,-1.221 -2.961,-1.221c-2.184,0 -3.955,1.592 -3.955,3.555c0,2.828 2.641,3.451 3.537,3.729c1.023,0.318 1.626,0.782 1.626,1.544c0,1.008 -0.93,1.671 -2.083,1.671c-0.896,0 -1.655,-0.497 -1.952,-1.19c-0.451,0.477 -1.015,1.073 -1.43,1.514c0.736,1.011 1.976,1.676 3.382,1.676c2.259,0 4.091,-1.714 4.091,-3.827c0,-1.653 -1.12,-2.974 -2.689,-3.472c0.001,0.001 -2.336,-0.648 -2.336,-1.751Zm-15.718,8.801l-2,0l-0,-8l2,0l-0,8Zm7,-1.75c-2.137,0 -3.875,-1.906 -3.875,-4.25c-0,-2.343 1.738,-4.25 3.875,-4.25c2.137,0 3.875,1.907 3.875,4.25c-0,2.344 -1.738,4.25 -3.875,4.25Zm-8,-10.25c-0.69,0 -1.25,0.56 -1.25,1.25c-0,0.69 0.56,1.25 1.25,1.25c0.69,0 1.25,-0.56 1.25,-1.25c-0,-0.69 -0.56,-1.25 -1.25,-1.25Z\" })));\nexports.default = SvgIos;\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 __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 });\nconst React = __importStar(require(\"react\"));\nconst SvgLinux = (props) => (React.createElement(\"svg\", Object.assign({ xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\" }, props),\n React.createElement(\"path\", { d: \"M13.593,1.21c0.816,0.321 1.317,0.95 1.651,1.731c0.338,0.792 0.451,1.625 0.497,2.474c0.03,0.551 0.054,1.102 0.104,1.651c0.061,0.663 0.368,1.225 0.757,1.758c0.841,1.151 1.667,2.313 2.362,3.558c0.29,0.52 0.563,1.055 0.657,1.646c0.114,0.72 0.074,1.441 -0.114,2.149c-0.038,0.143 -0.029,0.248 0.077,0.361c0.275,0.293 0.403,0.653 0.395,1.047c-0.013,0.678 0.387,1.042 0.95,1.312c0.174,0.084 0.363,0.203 0.465,0.358c0.223,0.338 0.083,0.81 -0.299,1.039c-0.552,0.332 -1.12,0.638 -1.68,0.957c-0.506,0.287 -1.006,0.587 -1.468,0.94c-0.22,0.168 -0.415,0.374 -0.649,0.522c-0.244,0.154 -0.526,0.252 -0.814,0.279c-0.696,0.067 -1.262,-0.279 -1.581,-0.885c-0.024,-0.045 -0.103,-0.075 -0.162,-0.087c-0.959,-0.194 -1.925,-0.312 -2.904,-0.212c-0.649,0.067 -1.296,0.159 -1.943,0.245c-0.064,0.009 -0.151,0.041 -0.179,0.09c-0.38,0.648 -0.964,0.806 -1.652,0.645c-0.495,-0.115 -0.987,-0.262 -1.463,-0.439c-0.872,-0.323 -1.766,-0.538 -2.688,-0.671c-0.363,-0.052 -0.722,-0.186 -1.06,-0.334c-0.331,-0.145 -0.412,-0.402 -0.308,-0.75c0.067,-0.225 0.137,-0.449 0.212,-0.672c0.124,-0.371 0.114,-0.738 -0.007,-1.107c-0.031,-0.095 -0.053,-0.192 -0.072,-0.29c-0.089,-0.45 0.101,-0.775 0.546,-0.911c0.249,-0.076 0.506,-0.131 0.758,-0.198c0.497,-0.131 0.864,-0.412 1.103,-0.874c0.091,-0.176 0.263,-0.311 0.39,-0.47c0.037,-0.047 0.077,-0.121 0.065,-0.172c-0.108,-0.477 -0.036,-0.918 0.161,-1.37c0.333,-0.764 0.638,-1.541 0.917,-2.326c0.276,-0.775 0.686,-1.466 1.19,-2.112c0.279,-0.358 0.539,-0.73 0.829,-1.079c0.324,-0.394 0.447,-0.847 0.435,-1.341c-0.019,-0.728 -0.039,-1.456 -0.084,-2.182c-0.051,-0.828 -0.11,-1.653 0.088,-2.471c0.196,-0.809 0.686,-1.365 1.457,-1.701c1.287,-0.562 2.745,-0.233 3.061,-0.108Zm5.562,15.971c-0.04,0.072 -0.068,0.121 -0.094,0.171c-0.368,0.716 -1.1,0.986 -1.793,0.945c-0.459,-0.027 -0.703,-0.25 -0.802,-0.691c-0.04,-0.176 -0.055,-0.359 -0.064,-0.54c-0.005,-0.115 -0.056,-0.141 -0.156,-0.133c-0.178,0.014 -0.261,0.094 -0.255,0.291c0.011,0.399 0.078,0.801 0.045,1.195c-0.059,0.688 -0.169,1.373 -0.274,2.056c-0.063,0.409 -0.139,0.814 0.03,1.214c0.219,0.515 0.63,0.706 1.117,0.483c0.266,-0.122 0.509,-0.298 0.744,-0.474c0.264,-0.198 0.486,-0.455 0.764,-0.629c0.476,-0.297 0.981,-0.547 1.472,-0.819c0.254,-0.14 0.514,-0.272 0.754,-0.432c0.183,-0.122 0.19,-0.245 0.025,-0.389c-0.154,-0.134 -0.329,-0.251 -0.512,-0.341c-0.373,-0.184 -0.602,-0.473 -0.69,-0.866c-0.042,-0.187 -0.051,-0.383 -0.065,-0.575c-0.014,-0.179 -0.08,-0.326 -0.246,-0.466Zm-10.884,5.014c0.385,0.002 0.636,-0.219 0.827,-0.563c0.149,-0.268 0.178,-0.581 0.067,-0.868c-0.093,-0.242 -0.26,-0.458 -0.412,-0.674c-0.219,-0.313 -0.47,-0.605 -0.679,-0.924c-0.403,-0.615 -0.777,-1.248 -1.182,-1.861c-0.191,-0.289 -0.426,-0.552 -0.754,-0.706c-0.205,-0.097 -0.353,-0.064 -0.478,0.125c-0.126,0.191 -0.231,0.395 -0.338,0.598c-0.142,0.27 -0.347,0.454 -0.656,0.52c-0.267,0.057 -0.533,0.117 -0.797,0.188c-0.456,0.122 -0.562,0.261 -0.452,0.707c0.126,0.509 0.047,0.986 -0.121,1.466c-0.194,0.552 -0.094,0.717 0.491,0.824c0.508,0.093 1.028,0.141 1.523,0.279c0.586,0.162 1.148,0.408 1.727,0.6c0.361,0.119 0.733,0.239 1.112,0.283c0.044,0.003 0.084,0.005 0.122,0.006Zm0.825,-2.668c0.301,0.34 0.593,0.678 0.896,1.006c0.044,0.047 0.14,0.068 0.211,0.067c0.629,-0.008 1.258,-0.007 1.886,-0.042c1.217,-0.068 2.167,-0.663 2.974,-1.522c0.141,-0.15 0.212,-0.313 0.214,-0.532c0.005,-0.593 0.052,-1.185 0.066,-1.777c0.009,-0.372 0.291,-0.497 0.586,-0.482c0.111,0.005 0.221,0.017 0.349,0.028c0.051,-0.281 0.111,-0.544 0.145,-0.81c0.127,-1.003 0.015,-1.982 -0.358,-2.924c-0.401,-1.016 -0.799,-2.034 -1.23,-3.038c-0.261,-0.609 -0.585,-1.192 -0.875,-1.789c-0.08,-0.164 -0.194,-0.19 -0.348,-0.12c-0.156,0.071 -0.317,0.135 -0.467,0.216c-0.501,0.268 -1,0.54 -1.497,0.815c-0.387,0.214 -0.768,0.227 -1.143,-0.019c-0.178,-0.116 -0.351,-0.241 -0.515,-0.375c-0.156,-0.129 -0.298,-0.277 -0.459,-0.429c0,0.113 0.004,0.2 -0.001,0.285c-0.038,0.709 -0.302,1.331 -0.726,1.898c-0.122,0.164 -0.231,0.344 -0.31,0.531c-0.155,0.368 -0.278,0.749 -0.426,1.12c-0.163,0.408 -0.31,0.827 -0.518,1.213c-0.409,0.758 -0.638,1.552 -0.609,2.412c0.014,0.428 0.083,0.856 0.403,1.173c0.335,0.331 0.706,0.625 1.061,0.936c0.377,0.329 0.772,0.642 1.128,0.992c0.322,0.318 0.208,0.851 -0.194,1.06c-0.074,0.038 -0.151,0.067 -0.243,0.107Zm2.089,-11.238c0.088,-0.021 0.174,-0.028 0.247,-0.062c0.234,-0.112 0.468,-0.227 0.696,-0.352c0.368,-0.203 0.73,-0.414 1.094,-0.624c0.246,-0.142 0.255,-0.331 0.02,-0.492c-0.082,-0.057 -0.171,-0.109 -0.264,-0.145c-0.414,-0.161 -0.837,-0.302 -1.244,-0.478c-0.362,-0.157 -0.655,-0.053 -0.936,0.168c-0.307,0.241 -0.615,0.479 -0.913,0.73c-0.05,0.041 -0.078,0.147 -0.064,0.213c0.019,0.086 0.071,0.183 0.14,0.237c0.312,0.249 0.632,0.49 0.957,0.722c0.072,0.052 0.178,0.057 0.267,0.083Zm-0.64,-2.46c0.111,-0.065 0.244,-0.139 0.371,-0.221c0.028,-0.018 0.045,-0.066 0.051,-0.103c0.064,-0.372 0.006,-0.724 -0.177,-1.055c-0.262,-0.473 -0.795,-0.573 -1.136,-0.215c-0.447,0.468 -0.49,1.401 -0.088,1.915c0.244,0.312 0.327,0.316 0.591,0.028c0.003,-0.004 0.002,-0.011 0.002,-0.008c-0.086,-0.043 -0.177,-0.073 -0.25,-0.128c-0.255,-0.191 -0.369,-0.74 -0.22,-1.018c0.155,-0.289 0.408,-0.324 0.626,-0.078c0.252,0.259 0.204,0.675 0.23,0.883Zm1.849,0.036c-0.022,-0.143 -0.086,-0.44 0.004,-0.735c0.068,-0.223 0.281,-0.413 0.482,-0.385c0.886,0.12 0.388,1.238 0.3,1.425c0.19,0.128 0.219,0.126 0.399,-0.056c0.467,-0.474 0.525,-1.336 0.125,-1.871c-0.353,-0.472 -0.894,-0.564 -1.372,-0.234c-0.444,0.307 -0.652,1.11 -0.414,1.61c0.021,0.043 0.063,0.088 0.106,0.107c0.114,0.051 0.233,0.088 0.37,0.139Z\" })));\nexports.default = SvgLinux;\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 __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 });\nconst React = __importStar(require(\"react\"));\nconst SvgLogoRdm = (props) => (React.createElement(\"svg\", Object.assign({ xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\" }, props),\n React.createElement(\"path\", { d: \"M22,11l0,-8l-22,0l0,16l11,0l0,2l13,0l0,-10l-2,0Zm-20,6l0,-12l18,0l0,12l-18,0Z\" })));\nexports.default = SvgLogoRdm;\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 __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 });\nconst React = __importStar(require(\"react\"));\nconst SvgLogoPvm = (props) => (React.createElement(\"svg\", Object.assign({ xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\" }, props),\n React.createElement(\"path\", { d: \"M12,1c-1.63,0 -3.172,0.364 -4.563,1l-5.437,0l0,4l0.787,0c-1.126,1.726 -1.787,3.785 -1.787,6c0,2.215 0.661,4.274 1.787,6l-0.787,0l0,4l5.437,0c1.391,0.636 2.933,1 4.563,1c6.075,0 11,-4.925 11,-11c0,-6.075 -4.925,-11 -11,-11Zm0,20c-4.971,0 -9,-4.029 -9,-9c0,-4.971 4.029,-9 9,-9c4.971,0 9,4.029 9,9c0,4.971 -4.029,9 -9,9Zm5.715,-7.132l-1.884,-0.78c0.099,-0.348 0.169,-0.708 0.169,-1.088c0,-0.38 -0.07,-0.74 -0.169,-1.088l1.884,-0.78c0.235,-0.097 0.347,-0.367 0.25,-0.603c-0.097,-0.236 -0.367,-0.347 -0.603,-0.25l-1.884,0.781c-0.362,-0.647 -0.892,-1.177 -1.538,-1.538l0.781,-1.884c0.097,-0.235 -0.014,-0.505 -0.25,-0.603c-0.236,-0.098 -0.505,0.014 -0.603,0.25l-0.78,1.884c-0.348,-0.099 -0.708,-0.169 -1.088,-0.169c-0.38,0 -0.74,0.07 -1.088,0.169l-0.78,-1.884c-0.097,-0.235 -0.367,-0.347 -0.603,-0.25c-0.236,0.097 -0.347,0.367 -0.249,0.603l0.781,1.884c-0.647,0.362 -1.177,0.892 -1.539,1.538l-1.884,-0.78c-0.235,-0.097 -0.505,0.014 -0.603,0.25c-0.098,0.236 0.014,0.505 0.25,0.603l1.884,0.78c-0.099,0.347 -0.169,0.707 -0.169,1.087c0,0.38 0.07,0.74 0.169,1.088l-1.884,0.78c-0.235,0.097 -0.347,0.367 -0.25,0.603c0.097,0.235 0.367,0.347 0.603,0.25l1.884,-0.781c0.362,0.647 0.892,1.177 1.538,1.538l-0.78,1.884c-0.097,0.235 0.014,0.505 0.25,0.603c0.236,0.098 0.505,-0.014 0.603,-0.25l0.78,-1.884c0.347,0.099 0.707,0.169 1.087,0.169c0.38,0 0.74,-0.07 1.088,-0.169l0.78,1.884c0.097,0.235 0.367,0.347 0.603,0.25c0.236,-0.097 0.347,-0.367 0.25,-0.603l-0.781,-1.884c0.647,-0.362 1.177,-0.892 1.538,-1.538l1.884,0.781c0.235,0.097 0.505,-0.014 0.603,-0.25c0.097,-0.236 -0.014,-0.505 -0.25,-0.603Zm-5.715,0.132c-1.105,0 -2,-0.895 -2,-2c0,-1.105 0.895,-2 2,-2c1.105,0 2,0.895 2,2c0,1.105 -0.895,2 -2,2Z\" })));\nexports.default = SvgLogoPvm;\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 __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 });\nconst React = __importStar(require(\"react\"));\nconst SvgLogoDps = (props) => (React.createElement(\"svg\", Object.assign({ xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\" }, props),\n React.createElement(\"path\", { d: \"M12,0.5l-10,2.5l0,5.3c0,0.476 0.027,1.034 0.085,1.507c0.138,1.125 0.46,3.234 1.096,4.99c1.568,4.33 4.492,7.298 8.456,8.585l0.363,0.118l0.363,-0.118c3.964,-1.287 6.888,-4.255 8.456,-8.585c0.626,-1.73 0.949,-3.802 1.09,-4.939c0.06,-0.49 0.091,-1.064 0.091,-1.558l0,-5.3l-10,-2.5Zm8,7.841c0,0.419 -0.027,0.872 -0.077,1.272c-0.125,1.011 -0.419,2.941 -0.984,4.502c-1.315,3.634 -3.711,6.145 -6.938,7.278c-3.228,-1.134 -5.623,-3.645 -6.938,-7.277c-0.229,-0.632 -0.412,-1.322 -0.559,-1.99l7.496,1.874l-0,-2l-7.868,-1.967c-0.023,-0.17 -0.044,-0.329 -0.061,-0.468c-0.046,-0.372 -0.071,-0.806 -0.071,-1.224l-0,-0.341l8,2l-0,-2l-8,-2l-0,-1.45l8,-1.988l8,1.988l0,3.791Z\" })));\nexports.default = SvgLogoDps;\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 __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 });\nconst React = __importStar(require(\"react\"));\nconst SvgLogoHub = (props) => (React.createElement(\"svg\", Object.assign({ xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\" }, props),\n React.createElement(\"path\", { d: \"M18.5,12.5c-0.622,0 -1.199,0.189 -1.678,0.513l-1.059,-0.706c0.143,-0.411 0.237,-0.847 0.237,-1.307c0,-0.377 -0.069,-0.734 -0.166,-1.08c0.215,0.049 0.436,0.08 0.666,0.08c1.657,0 3,-1.343 3,-3c0,-1.657 -1.343,-3 -3,-3c-1.657,0 -3,1.343 -3,3c0,0.105 0.02,0.204 0.031,0.306c-0.472,-0.196 -0.988,-0.306 -1.531,-0.306c-0.364,0 -0.71,0.064 -1.045,0.156l-0.69,-1.208c0.452,-0.526 0.735,-1.201 0.735,-1.948c0,-1.657 -1.343,-3 -3,-3c-1.657,0 -3,1.343 -3,3c0,1.657 1.343,3 3,3c0.182,0 0.359,-0.023 0.532,-0.054l0.681,1.191c-0.747,0.727 -1.213,1.739 -1.213,2.863c0,0.944 0.34,1.8 0.887,2.484l-1.365,1.82c-0.469,-0.194 -0.982,-0.304 -1.522,-0.304c-2.209,0 -4,1.791 -4,4c0,2.209 1.791,4 4,4c2.209,0 4,-1.791 4,-4c0,-0.944 -0.341,-1.8 -0.887,-2.484l1.365,-1.82c0.469,0.194 0.982,0.304 1.522,0.304c1.023,0 1.947,-0.396 2.654,-1.028l0.989,0.659c-0.084,0.277 -0.143,0.565 -0.143,0.87c0,1.657 1.343,3 3,3c1.657,0 3,-1.343 3,-3c0,-1.657 -1.343,-3.001 -3,-3.001Zm-11.5,-8.5c0,-0.552 0.448,-1 1,-1c0.552,0 1,0.448 1,1c0,0.552 -0.448,1 -1,1c-0.552,0 -1,-0.448 -1,-1Zm9.5,2c0.552,0 1,0.448 1,1c0,0.552 -0.448,1 -1,1c-0.552,0 -1,-0.448 -1,-1c0,-0.552 0.448,-1 1,-1Zm-10.5,15c-1.105,0 -2,-0.895 -2,-2c0,-1.105 0.895,-2 2,-2c1.105,0 2,0.895 2,2c0,1.105 -0.895,2 -2,2Zm6,-8c-1.105,0 -2,-0.895 -2,-2c0,-1.105 0.895,-2 2,-2c1.105,0 2,0.895 2,2c0,1.105 -0.895,2 -2,2Zm6.5,3.5c-0.552,0 -1,-0.448 -1,-1c0,-0.552 0.448,-1 1,-1c0.552,0 1,0.448 1,1c0,0.552 -0.448,1 -1,1Z\" })));\nexports.default = SvgLogoHub;\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 __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 });\nconst React = __importStar(require(\"react\"));\nconst SvgLogoDevolutions = (props) => (React.createElement(\"svg\", Object.assign({ xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\" }, props),\n React.createElement(\"path\", { d: \"M19.889,4.342c-2.056,-2.117 -4.808,-3.304 -7.749,-3.341c-2.93,-0.037 -5.698,1.087 -7.802,3.165c-2.152,2.126 -3.338,4.964 -3.338,7.994l0.018,0.513c0,0.481 0.391,0.873 0.873,0.873c0.481,0 0.872,-0.391 0.873,-0.872l0.004,-0.372c0,-4.052 3.444,-8.39 8.57,-8.39c5.35,0 8.662,4.364 8.662,8.408c0,2.108 -0.84,4.041 -2.366,5.444c-1.489,1.37 -3.49,2.124 -5.633,2.124c-1.275,0 -2.534,-0.308 -3.65,-0.891l7.688,-3.539c0.516,-0.238 0.862,-0.737 0.902,-1.304c0.04,-0.567 -0.232,-1.11 -0.715,-1.421l-6.399,-3.428c-0.226,-0.146 -0.495,-0.195 -0.757,-0.138c-0.263,0.057 -0.487,0.213 -0.633,0.438c-0.3,0.466 -0.165,1.089 0.294,1.384l3.444,2.821l-7.504,3.454c-0.581,0.268 -0.936,0.855 -0.904,1.497c0.02,0.387 0.201,0.768 0.511,1.073c2.083,2.053 4.805,3.166 7.716,3.166c0.181,0 0.363,-0.004 0.546,-0.013c5.767,-0.274 10.361,-5.017 10.458,-10.798c0.05,-2.945 -1.054,-5.731 -3.109,-7.847Z\" })));\nexports.default = SvgLogoDevolutions;\n","import {FunctionalComponent, h, VNode} from 'preact';\r\nimport IconWindows from '@devolutions/icons/react/Windows';\r\nimport IconApple from '@devolutions/icons/react/Apple';\r\nimport IconAndroid from '@devolutions/icons/react/Android';\r\nimport IconIos from '@devolutions/icons/react/Ios';\r\nimport IconLinux from '@devolutions/icons/react/Linux';\r\nimport IconLogoRdm from '@devolutions/icons/react/LogoRdm';\r\nimport IconLogoPvm from '@devolutions/icons/react/LogoPvm';\r\nimport IconLogoDps from '@devolutions/icons/react/LogoDps';\r\nimport IconLogoHub from '@devolutions/icons/react/LogoHub';\r\nimport IconLogoDevolutions from '@devolutions/icons/react/LogoDevolutions';\r\n\r\nexport class LogoMapper {\r\n private static readonly map: Map = new Map([\r\n ['windows', IconWindows],\r\n ['macos', IconApple],\r\n ['android', IconAndroid],\r\n ['ios', IconIos],\r\n ['linux', IconLinux],\r\n ['rdm', IconLogoRdm],\r\n ['rdm-mac', IconLogoRdm],\r\n ['pvm', IconLogoPvm],\r\n ['dps', IconLogoDps],\r\n ['hub', IconLogoHub],\r\n ['cloud', IconLogoDevolutions]\r\n ]);\r\n\r\n public static getClassNameFromSoftwareOrPlatform(software: string): VNode {\r\n const icon = this.map.get(software.toLowerCase());\r\n return icon && h(icon, null);\r\n }\r\n}\r\n","import * as React from 'preact/compat';\r\nimport {PropsWithChildren} from 'preact/compat';\r\nimport {Text} from 'preact-i18n';\r\n\r\nexport const OptionsPanel: React.FC> = ({ title, children }) => {\r\n return (\r\n
\r\n
\r\n {children}\r\n
\r\n );\r\n}\r\n","export const truncateItem = (item: any, property: string) => {\r\n if (item[property]) {\r\n item[property] = truncate(item[property], ['500']);\r\n }\r\n\r\n return item;\r\n}\r\n\r\nexport const truncate = (value: string, args: string[]) => {\r\n const limit = args.length > 0 ? parseInt(args[0], 10) : 20;\r\n const trail = args.length > 1 ? args[1] : '...';\r\n return value.length > limit ? value.substring(0, limit) + trail : value;\r\n}\r\n","module.exports =\n/******/ (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/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\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.loaded = 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// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(1);\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _Highlighter = __webpack_require__(2);\n\t\n\tvar _Highlighter2 = _interopRequireDefault(_Highlighter);\n\n\texports['default'] = _Highlighter2['default'];\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\tvar _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\t\n\texports['default'] = Highlighter;\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\t\n\tvar _highlightWordsCore = __webpack_require__(3);\n\t\n\tvar _propTypes = __webpack_require__(4);\n\t\n\tvar _propTypes2 = _interopRequireDefault(_propTypes);\n\t\n\tvar _react = __webpack_require__(14);\n\t\n\tvar _memoizeOne = __webpack_require__(15);\n\t\n\tvar _memoizeOne2 = _interopRequireDefault(_memoizeOne);\n\t\n\tHighlighter.propTypes = {\n\t activeClassName: _propTypes2['default'].string,\n\t activeIndex: _propTypes2['default'].number,\n\t activeStyle: _propTypes2['default'].object,\n\t autoEscape: _propTypes2['default'].bool,\n\t className: _propTypes2['default'].string,\n\t findChunks: _propTypes2['default'].func,\n\t highlightClassName: _propTypes2['default'].oneOfType([_propTypes2['default'].object, _propTypes2['default'].string]),\n\t highlightStyle: _propTypes2['default'].object,\n\t highlightTag: _propTypes2['default'].oneOfType([_propTypes2['default'].node, _propTypes2['default'].func, _propTypes2['default'].string]),\n\t sanitize: _propTypes2['default'].func,\n\t searchWords: _propTypes2['default'].arrayOf(_propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].instanceOf(RegExp)])).isRequired,\n\t textToHighlight: _propTypes2['default'].string.isRequired,\n\t unhighlightTag: _propTypes2['default'].oneOfType([_propTypes2['default'].node, _propTypes2['default'].func, _propTypes2['default'].string]),\n\t unhighlightClassName: _propTypes2['default'].string,\n\t unhighlightStyle: _propTypes2['default'].object\n\t};\n\t\n\t/**\r\n\t * Highlights all occurrences of search terms (searchText) within a string (textToHighlight).\r\n\t * This function returns an array of strings and s (wrapping highlighted words).\r\n\t */\n\t\n\tfunction Highlighter(_ref) {\n\t var _ref$activeClassName = _ref.activeClassName;\n\t var activeClassName = _ref$activeClassName === undefined ? '' : _ref$activeClassName;\n\t var _ref$activeIndex = _ref.activeIndex;\n\t var activeIndex = _ref$activeIndex === undefined ? -1 : _ref$activeIndex;\n\t var activeStyle = _ref.activeStyle;\n\t var autoEscape = _ref.autoEscape;\n\t var _ref$caseSensitive = _ref.caseSensitive;\n\t var caseSensitive = _ref$caseSensitive === undefined ? false : _ref$caseSensitive;\n\t var className = _ref.className;\n\t var findChunks = _ref.findChunks;\n\t var _ref$highlightClassName = _ref.highlightClassName;\n\t var highlightClassName = _ref$highlightClassName === undefined ? '' : _ref$highlightClassName;\n\t var _ref$highlightStyle = _ref.highlightStyle;\n\t var highlightStyle = _ref$highlightStyle === undefined ? {} : _ref$highlightStyle;\n\t var _ref$highlightTag = _ref.highlightTag;\n\t var highlightTag = _ref$highlightTag === undefined ? 'mark' : _ref$highlightTag;\n\t var sanitize = _ref.sanitize;\n\t var searchWords = _ref.searchWords;\n\t var textToHighlight = _ref.textToHighlight;\n\t var _ref$unhighlightTag = _ref.unhighlightTag;\n\t var unhighlightTag = _ref$unhighlightTag === undefined ? 'span' : _ref$unhighlightTag;\n\t var _ref$unhighlightClassName = _ref.unhighlightClassName;\n\t var unhighlightClassName = _ref$unhighlightClassName === undefined ? '' : _ref$unhighlightClassName;\n\t var unhighlightStyle = _ref.unhighlightStyle;\n\t\n\t var rest = _objectWithoutProperties(_ref, ['activeClassName', 'activeIndex', 'activeStyle', 'autoEscape', 'caseSensitive', 'className', 'findChunks', 'highlightClassName', 'highlightStyle', 'highlightTag', 'sanitize', 'searchWords', 'textToHighlight', 'unhighlightTag', 'unhighlightClassName', 'unhighlightStyle']);\n\t\n\t var chunks = (0, _highlightWordsCore.findAll)({\n\t autoEscape: autoEscape,\n\t caseSensitive: caseSensitive,\n\t findChunks: findChunks,\n\t sanitize: sanitize,\n\t searchWords: searchWords,\n\t textToHighlight: textToHighlight\n\t });\n\t var HighlightTag = highlightTag;\n\t var highlightIndex = -1;\n\t var highlightClassNames = '';\n\t var highlightStyles = undefined;\n\t\n\t var lowercaseProps = function lowercaseProps(object) {\n\t var mapped = {};\n\t for (var key in object) {\n\t mapped[key.toLowerCase()] = object[key];\n\t }\n\t return mapped;\n\t };\n\t var memoizedLowercaseProps = (0, _memoizeOne2['default'])(lowercaseProps);\n\t\n\t return (0, _react.createElement)('span', _extends({\n\t className: className\n\t }, rest, {\n\t children: chunks.map(function (chunk, index) {\n\t var text = textToHighlight.substr(chunk.start, chunk.end - chunk.start);\n\t\n\t if (chunk.highlight) {\n\t highlightIndex++;\n\t\n\t var highlightClass = undefined;\n\t if (typeof highlightClassName === 'object') {\n\t if (!caseSensitive) {\n\t highlightClassName = memoizedLowercaseProps(highlightClassName);\n\t highlightClass = highlightClassName[text.toLowerCase()];\n\t } else {\n\t highlightClass = highlightClassName[text];\n\t }\n\t } else {\n\t highlightClass = highlightClassName;\n\t }\n\t\n\t var isActive = highlightIndex === +activeIndex;\n\t\n\t highlightClassNames = highlightClass + ' ' + (isActive ? activeClassName : '');\n\t highlightStyles = isActive === true && activeStyle != null ? Object.assign({}, highlightStyle, activeStyle) : highlightStyle;\n\t\n\t var props = {\n\t children: text,\n\t className: highlightClassNames,\n\t key: index,\n\t style: highlightStyles\n\t };\n\t\n\t // Don't attach arbitrary props to DOM elements; this triggers React DEV warnings (https://fb.me/react-unknown-prop)\n\t // Only pass through the highlightIndex attribute for custom components.\n\t if (typeof HighlightTag !== 'string') {\n\t props.highlightIndex = highlightIndex;\n\t }\n\t\n\t return (0, _react.createElement)(HighlightTag, props);\n\t } else {\n\t return (0, _react.createElement)(unhighlightTag, {\n\t children: text,\n\t className: unhighlightClassName,\n\t key: index,\n\t style: unhighlightStyle\n\t });\n\t }\n\t })\n\t }));\n\t}\n\t\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n\tmodule.exports =\n\t/******/ (function(modules) { // webpackBootstrap\n\t/******/ \t// The module cache\n\t/******/ \tvar installedModules = {};\n\t/******/\n\t/******/ \t// The require function\n\t/******/ \tfunction __webpack_require__(moduleId) {\n\t/******/\n\t/******/ \t\t// Check if module is in cache\n\t/******/ \t\tif(installedModules[moduleId])\n\t/******/ \t\t\treturn installedModules[moduleId].exports;\n\t/******/\n\t/******/ \t\t// Create a new module (and put it into the cache)\n\t/******/ \t\tvar module = installedModules[moduleId] = {\n\t/******/ \t\t\texports: {},\n\t/******/ \t\t\tid: moduleId,\n\t/******/ \t\t\tloaded: false\n\t/******/ \t\t};\n\t/******/\n\t/******/ \t\t// Execute the module function\n\t/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t/******/\n\t/******/ \t\t// Flag the module as loaded\n\t/******/ \t\tmodule.loaded = true;\n\t/******/\n\t/******/ \t\t// Return the exports of the module\n\t/******/ \t\treturn module.exports;\n\t/******/ \t}\n\t/******/\n\t/******/\n\t/******/ \t// expose the modules object (__webpack_modules__)\n\t/******/ \t__webpack_require__.m = modules;\n\t/******/\n\t/******/ \t// expose the module cache\n\t/******/ \t__webpack_require__.c = installedModules;\n\t/******/\n\t/******/ \t// __webpack_public_path__\n\t/******/ \t__webpack_require__.p = \"\";\n\t/******/\n\t/******/ \t// Load entry module and return exports\n\t/******/ \treturn __webpack_require__(0);\n\t/******/ })\n\t/************************************************************************/\n\t/******/ ([\n\t/* 0 */\n\t/***/ (function(module, exports, __webpack_require__) {\n\t\n\t\tmodule.exports = __webpack_require__(1);\n\t\n\t\n\t/***/ }),\n\t/* 1 */\n\t/***/ (function(module, exports, __webpack_require__) {\n\t\n\t\t'use strict';\n\t\t\n\t\tObject.defineProperty(exports, \"__esModule\", {\n\t\t value: true\n\t\t});\n\t\t\n\t\tvar _utils = __webpack_require__(2);\n\t\t\n\t\tObject.defineProperty(exports, 'combineChunks', {\n\t\t enumerable: true,\n\t\t get: function get() {\n\t\t return _utils.combineChunks;\n\t\t }\n\t\t});\n\t\tObject.defineProperty(exports, 'fillInChunks', {\n\t\t enumerable: true,\n\t\t get: function get() {\n\t\t return _utils.fillInChunks;\n\t\t }\n\t\t});\n\t\tObject.defineProperty(exports, 'findAll', {\n\t\t enumerable: true,\n\t\t get: function get() {\n\t\t return _utils.findAll;\n\t\t }\n\t\t});\n\t\tObject.defineProperty(exports, 'findChunks', {\n\t\t enumerable: true,\n\t\t get: function get() {\n\t\t return _utils.findChunks;\n\t\t }\n\t\t});\n\t\n\t/***/ }),\n\t/* 2 */\n\t/***/ (function(module, exports) {\n\t\n\t\t'use strict';\n\t\t\n\t\tObject.defineProperty(exports, \"__esModule\", {\n\t\t value: true\n\t\t});\n\t\t/**\n\t\t * Creates an array of chunk objects representing both higlightable and non highlightable pieces of text that match each search word.\n\t\t * @return Array of \"chunks\" (where a Chunk is { start:number, end:number, highlight:boolean })\n\t\t */\n\t\tvar findAll = exports.findAll = function findAll(_ref) {\n\t\t var autoEscape = _ref.autoEscape,\n\t\t _ref$caseSensitive = _ref.caseSensitive,\n\t\t caseSensitive = _ref$caseSensitive === undefined ? false : _ref$caseSensitive,\n\t\t _ref$findChunks = _ref.findChunks,\n\t\t findChunks = _ref$findChunks === undefined ? defaultFindChunks : _ref$findChunks,\n\t\t sanitize = _ref.sanitize,\n\t\t searchWords = _ref.searchWords,\n\t\t textToHighlight = _ref.textToHighlight;\n\t\t return fillInChunks({\n\t\t chunksToHighlight: combineChunks({\n\t\t chunks: findChunks({\n\t\t autoEscape: autoEscape,\n\t\t caseSensitive: caseSensitive,\n\t\t sanitize: sanitize,\n\t\t searchWords: searchWords,\n\t\t textToHighlight: textToHighlight\n\t\t })\n\t\t }),\n\t\t totalLength: textToHighlight ? textToHighlight.length : 0\n\t\t });\n\t\t};\n\t\t\n\t\t/**\n\t\t * Takes an array of {start:number, end:number} objects and combines chunks that overlap into single chunks.\n\t\t * @return {start:number, end:number}[]\n\t\t */\n\t\tvar combineChunks = exports.combineChunks = function combineChunks(_ref2) {\n\t\t var chunks = _ref2.chunks;\n\t\t\n\t\t chunks = chunks.sort(function (first, second) {\n\t\t return first.start - second.start;\n\t\t }).reduce(function (processedChunks, nextChunk) {\n\t\t // First chunk just goes straight in the array...\n\t\t if (processedChunks.length === 0) {\n\t\t return [nextChunk];\n\t\t } else {\n\t\t // ... subsequent chunks get checked to see if they overlap...\n\t\t var prevChunk = processedChunks.pop();\n\t\t if (nextChunk.start <= prevChunk.end) {\n\t\t // It may be the case that prevChunk completely surrounds nextChunk, so take the\n\t\t // largest of the end indeces.\n\t\t var endIndex = Math.max(prevChunk.end, nextChunk.end);\n\t\t processedChunks.push({ start: prevChunk.start, end: endIndex });\n\t\t } else {\n\t\t processedChunks.push(prevChunk, nextChunk);\n\t\t }\n\t\t return processedChunks;\n\t\t }\n\t\t }, []);\n\t\t\n\t\t return chunks;\n\t\t};\n\t\t\n\t\t/**\n\t\t * Examine text for any matches.\n\t\t * If we find matches, add them to the returned array as a \"chunk\" object ({start:number, end:number}).\n\t\t * @return {start:number, end:number}[]\n\t\t */\n\t\tvar defaultFindChunks = function defaultFindChunks(_ref3) {\n\t\t var autoEscape = _ref3.autoEscape,\n\t\t caseSensitive = _ref3.caseSensitive,\n\t\t _ref3$sanitize = _ref3.sanitize,\n\t\t sanitize = _ref3$sanitize === undefined ? identity : _ref3$sanitize,\n\t\t searchWords = _ref3.searchWords,\n\t\t textToHighlight = _ref3.textToHighlight;\n\t\t\n\t\t textToHighlight = sanitize(textToHighlight);\n\t\t\n\t\t return searchWords.filter(function (searchWord) {\n\t\t return searchWord;\n\t\t }) // Remove empty words\n\t\t .reduce(function (chunks, searchWord) {\n\t\t searchWord = sanitize(searchWord);\n\t\t\n\t\t if (autoEscape) {\n\t\t searchWord = escapeRegExpFn(searchWord);\n\t\t }\n\t\t\n\t\t var regex = new RegExp(searchWord, caseSensitive ? 'g' : 'gi');\n\t\t\n\t\t var match = void 0;\n\t\t while (match = regex.exec(textToHighlight)) {\n\t\t var start = match.index;\n\t\t var end = regex.lastIndex;\n\t\t // We do not return zero-length matches\n\t\t if (end > start) {\n\t\t chunks.push({ start: start, end: end });\n\t\t }\n\t\t\n\t\t // Prevent browsers like Firefox from getting stuck in an infinite loop\n\t\t // See http://www.regexguru.com/2008/04/watch-out-for-zero-length-matches/\n\t\t if (match.index == regex.lastIndex) {\n\t\t regex.lastIndex++;\n\t\t }\n\t\t }\n\t\t\n\t\t return chunks;\n\t\t }, []);\n\t\t};\n\t\t// Allow the findChunks to be overridden in findAll,\n\t\t// but for backwards compatibility we export as the old name\n\t\texports.findChunks = defaultFindChunks;\n\t\t\n\t\t/**\n\t\t * Given a set of chunks to highlight, create an additional set of chunks\n\t\t * to represent the bits of text between the highlighted text.\n\t\t * @param chunksToHighlight {start:number, end:number}[]\n\t\t * @param totalLength number\n\t\t * @return {start:number, end:number, highlight:boolean}[]\n\t\t */\n\t\t\n\t\tvar fillInChunks = exports.fillInChunks = function fillInChunks(_ref4) {\n\t\t var chunksToHighlight = _ref4.chunksToHighlight,\n\t\t totalLength = _ref4.totalLength;\n\t\t\n\t\t var allChunks = [];\n\t\t var append = function append(start, end, highlight) {\n\t\t if (end - start > 0) {\n\t\t allChunks.push({\n\t\t start: start,\n\t\t end: end,\n\t\t highlight: highlight\n\t\t });\n\t\t }\n\t\t };\n\t\t\n\t\t if (chunksToHighlight.length === 0) {\n\t\t append(0, totalLength, false);\n\t\t } else {\n\t\t var lastIndex = 0;\n\t\t chunksToHighlight.forEach(function (chunk) {\n\t\t append(lastIndex, chunk.start, false);\n\t\t append(chunk.start, chunk.end, true);\n\t\t lastIndex = chunk.end;\n\t\t });\n\t\t append(lastIndex, totalLength, false);\n\t\t }\n\t\t return allChunks;\n\t\t};\n\t\t\n\t\tfunction identity(value) {\n\t\t return value;\n\t\t}\n\t\t\n\t\tfunction escapeRegExpFn(str) {\n\t\t return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n\t\t}\n\t\n\t/***/ })\n\t/******/ ]);\n\t//# sourceMappingURL=index.js.map\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(process) {/**\n\t * Copyright (c) 2013-present, Facebook, Inc.\n\t *\n\t * This source code is licensed under the MIT license found in the\n\t * LICENSE file in the root directory of this source tree.\n\t */\n\t\n\tif (process.env.NODE_ENV !== 'production') {\n\t var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n\t Symbol.for &&\n\t Symbol.for('react.element')) ||\n\t 0xeac7;\n\t\n\t var isValidElement = function(object) {\n\t return typeof object === 'object' &&\n\t object !== null &&\n\t object.$$typeof === REACT_ELEMENT_TYPE;\n\t };\n\t\n\t // By explicitly using `prop-types` you are opting into new development behavior.\n\t // http://fb.me/prop-types-in-prod\n\t var throwOnDirectAccess = true;\n\t module.exports = __webpack_require__(6)(isValidElement, throwOnDirectAccess);\n\t} else {\n\t // By explicitly using `prop-types` you are opting into new production behavior.\n\t // http://fb.me/prop-types-in-prod\n\t module.exports = __webpack_require__(13)();\n\t}\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5)))\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports) {\n\n\t// shim for using process in browser\n\tvar process = module.exports = {};\n\t\n\t// cached from whatever global is present so that test runners that stub it\n\t// don't break things. But we need to wrap it in a try catch in case it is\n\t// wrapped in strict mode code which doesn't define any globals. It's inside a\n\t// function because try/catches deoptimize in certain engines.\n\t\n\tvar cachedSetTimeout;\n\tvar cachedClearTimeout;\n\t\n\tfunction defaultSetTimout() {\n\t throw new Error('setTimeout has not been defined');\n\t}\n\tfunction defaultClearTimeout () {\n\t throw new Error('clearTimeout has not been defined');\n\t}\n\t(function () {\n\t try {\n\t if (typeof setTimeout === 'function') {\n\t cachedSetTimeout = setTimeout;\n\t } else {\n\t cachedSetTimeout = defaultSetTimout;\n\t }\n\t } catch (e) {\n\t cachedSetTimeout = defaultSetTimout;\n\t }\n\t try {\n\t if (typeof clearTimeout === 'function') {\n\t cachedClearTimeout = clearTimeout;\n\t } else {\n\t cachedClearTimeout = defaultClearTimeout;\n\t }\n\t } catch (e) {\n\t cachedClearTimeout = defaultClearTimeout;\n\t }\n\t} ())\n\tfunction runTimeout(fun) {\n\t if (cachedSetTimeout === setTimeout) {\n\t //normal enviroments in sane situations\n\t return setTimeout(fun, 0);\n\t }\n\t // if setTimeout wasn't available but was latter defined\n\t if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n\t cachedSetTimeout = setTimeout;\n\t return setTimeout(fun, 0);\n\t }\n\t try {\n\t // when when somebody has screwed with setTimeout but no I.E. maddness\n\t return cachedSetTimeout(fun, 0);\n\t } catch(e){\n\t try {\n\t // 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\t return cachedSetTimeout.call(null, fun, 0);\n\t } catch(e){\n\t // 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\t return cachedSetTimeout.call(this, fun, 0);\n\t }\n\t }\n\t\n\t\n\t}\n\tfunction runClearTimeout(marker) {\n\t if (cachedClearTimeout === clearTimeout) {\n\t //normal enviroments in sane situations\n\t return clearTimeout(marker);\n\t }\n\t // if clearTimeout wasn't available but was latter defined\n\t if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n\t cachedClearTimeout = clearTimeout;\n\t return clearTimeout(marker);\n\t }\n\t try {\n\t // when when somebody has screwed with setTimeout but no I.E. maddness\n\t return cachedClearTimeout(marker);\n\t } catch (e){\n\t try {\n\t // 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\t return cachedClearTimeout.call(null, marker);\n\t } catch (e){\n\t // 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\t // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n\t return cachedClearTimeout.call(this, marker);\n\t }\n\t }\n\t\n\t\n\t\n\t}\n\tvar queue = [];\n\tvar draining = false;\n\tvar currentQueue;\n\tvar queueIndex = -1;\n\t\n\tfunction cleanUpNextTick() {\n\t if (!draining || !currentQueue) {\n\t return;\n\t }\n\t draining = false;\n\t if (currentQueue.length) {\n\t queue = currentQueue.concat(queue);\n\t } else {\n\t queueIndex = -1;\n\t }\n\t if (queue.length) {\n\t drainQueue();\n\t }\n\t}\n\t\n\tfunction drainQueue() {\n\t if (draining) {\n\t return;\n\t }\n\t var timeout = runTimeout(cleanUpNextTick);\n\t draining = true;\n\t\n\t var len = queue.length;\n\t while(len) {\n\t currentQueue = queue;\n\t queue = [];\n\t while (++queueIndex < len) {\n\t if (currentQueue) {\n\t currentQueue[queueIndex].run();\n\t }\n\t }\n\t queueIndex = -1;\n\t len = queue.length;\n\t }\n\t currentQueue = null;\n\t draining = false;\n\t runClearTimeout(timeout);\n\t}\n\t\n\tprocess.nextTick = function (fun) {\n\t var args = new Array(arguments.length - 1);\n\t if (arguments.length > 1) {\n\t for (var i = 1; i < arguments.length; i++) {\n\t args[i - 1] = arguments[i];\n\t }\n\t }\n\t queue.push(new Item(fun, args));\n\t if (queue.length === 1 && !draining) {\n\t runTimeout(drainQueue);\n\t }\n\t};\n\t\n\t// v8 likes predictible objects\n\tfunction Item(fun, array) {\n\t this.fun = fun;\n\t this.array = array;\n\t}\n\tItem.prototype.run = function () {\n\t this.fun.apply(null, this.array);\n\t};\n\tprocess.title = 'browser';\n\tprocess.browser = true;\n\tprocess.env = {};\n\tprocess.argv = [];\n\tprocess.version = ''; // empty string to avoid regexp issues\n\tprocess.versions = {};\n\t\n\tfunction noop() {}\n\t\n\tprocess.on = noop;\n\tprocess.addListener = noop;\n\tprocess.once = noop;\n\tprocess.off = noop;\n\tprocess.removeListener = noop;\n\tprocess.removeAllListeners = noop;\n\tprocess.emit = noop;\n\tprocess.prependListener = noop;\n\tprocess.prependOnceListener = noop;\n\t\n\tprocess.listeners = function (name) { return [] }\n\t\n\tprocess.binding = function (name) {\n\t throw new Error('process.binding is not supported');\n\t};\n\t\n\tprocess.cwd = function () { return '/' };\n\tprocess.chdir = function (dir) {\n\t throw new Error('process.chdir is not supported');\n\t};\n\tprocess.umask = function() { return 0; };\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(process) {/**\n\t * Copyright (c) 2013-present, Facebook, Inc.\n\t *\n\t * This source code is licensed under the MIT license found in the\n\t * LICENSE file in the root directory of this source tree.\n\t */\n\t\n\t'use strict';\n\t\n\tvar emptyFunction = __webpack_require__(7);\n\tvar invariant = __webpack_require__(8);\n\tvar warning = __webpack_require__(9);\n\tvar assign = __webpack_require__(10);\n\t\n\tvar ReactPropTypesSecret = __webpack_require__(11);\n\tvar checkPropTypes = __webpack_require__(12);\n\t\n\tmodule.exports = function(isValidElement, throwOnDirectAccess) {\n\t /* global Symbol */\n\t var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n\t var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\t\n\t /**\n\t * Returns the iterator method function contained on the iterable object.\n\t *\n\t * Be sure to invoke the function with the iterable as context:\n\t *\n\t * var iteratorFn = getIteratorFn(myIterable);\n\t * if (iteratorFn) {\n\t * var iterator = iteratorFn.call(myIterable);\n\t * ...\n\t * }\n\t *\n\t * @param {?object} maybeIterable\n\t * @return {?function}\n\t */\n\t function getIteratorFn(maybeIterable) {\n\t var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n\t if (typeof iteratorFn === 'function') {\n\t return iteratorFn;\n\t }\n\t }\n\t\n\t /**\n\t * Collection of methods that allow declaration and validation of props that are\n\t * supplied to React components. Example usage:\n\t *\n\t * var Props = require('ReactPropTypes');\n\t * var MyArticle = React.createClass({\n\t * propTypes: {\n\t * // An optional string prop named \"description\".\n\t * description: Props.string,\n\t *\n\t * // A required enum prop named \"category\".\n\t * category: Props.oneOf(['News','Photos']).isRequired,\n\t *\n\t * // A prop named \"dialog\" that requires an instance of Dialog.\n\t * dialog: Props.instanceOf(Dialog).isRequired\n\t * },\n\t * render: function() { ... }\n\t * });\n\t *\n\t * A more formal specification of how these methods are used:\n\t *\n\t * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n\t * decl := ReactPropTypes.{type}(.isRequired)?\n\t *\n\t * Each and every declaration produces a function with the same signature. This\n\t * allows the creation of custom validation functions. For example:\n\t *\n\t * var MyLink = React.createClass({\n\t * propTypes: {\n\t * // An optional string or URI prop named \"href\".\n\t * href: function(props, propName, componentName) {\n\t * var propValue = props[propName];\n\t * if (propValue != null && typeof propValue !== 'string' &&\n\t * !(propValue instanceof URI)) {\n\t * return new Error(\n\t * 'Expected a string or an URI for ' + propName + ' in ' +\n\t * componentName\n\t * );\n\t * }\n\t * }\n\t * },\n\t * render: function() {...}\n\t * });\n\t *\n\t * @internal\n\t */\n\t\n\t var ANONYMOUS = '<>';\n\t\n\t // Important!\n\t // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n\t var ReactPropTypes = {\n\t array: createPrimitiveTypeChecker('array'),\n\t bool: createPrimitiveTypeChecker('boolean'),\n\t func: createPrimitiveTypeChecker('function'),\n\t number: createPrimitiveTypeChecker('number'),\n\t object: createPrimitiveTypeChecker('object'),\n\t string: createPrimitiveTypeChecker('string'),\n\t symbol: createPrimitiveTypeChecker('symbol'),\n\t\n\t any: createAnyTypeChecker(),\n\t arrayOf: createArrayOfTypeChecker,\n\t element: createElementTypeChecker(),\n\t instanceOf: createInstanceTypeChecker,\n\t node: createNodeChecker(),\n\t objectOf: createObjectOfTypeChecker,\n\t oneOf: createEnumTypeChecker,\n\t oneOfType: createUnionTypeChecker,\n\t shape: createShapeTypeChecker,\n\t exact: createStrictShapeTypeChecker,\n\t };\n\t\n\t /**\n\t * inlined Object.is polyfill to avoid requiring consumers ship their own\n\t * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n\t */\n\t /*eslint-disable no-self-compare*/\n\t function is(x, y) {\n\t // SameValue algorithm\n\t if (x === y) {\n\t // Steps 1-5, 7-10\n\t // Steps 6.b-6.e: +0 != -0\n\t return x !== 0 || 1 / x === 1 / y;\n\t } else {\n\t // Step 6.a: NaN == NaN\n\t return x !== x && y !== y;\n\t }\n\t }\n\t /*eslint-enable no-self-compare*/\n\t\n\t /**\n\t * We use an Error-like object for backward compatibility as people may call\n\t * PropTypes directly and inspect their output. However, we don't use real\n\t * Errors anymore. We don't inspect their stack anyway, and creating them\n\t * is prohibitively expensive if they are created too often, such as what\n\t * happens in oneOfType() for any type before the one that matched.\n\t */\n\t function PropTypeError(message) {\n\t this.message = message;\n\t this.stack = '';\n\t }\n\t // Make `instanceof Error` still work for returned errors.\n\t PropTypeError.prototype = Error.prototype;\n\t\n\t function createChainableTypeChecker(validate) {\n\t if (process.env.NODE_ENV !== 'production') {\n\t var manualPropTypeCallCache = {};\n\t var manualPropTypeWarningCount = 0;\n\t }\n\t function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n\t componentName = componentName || ANONYMOUS;\n\t propFullName = propFullName || propName;\n\t\n\t if (secret !== ReactPropTypesSecret) {\n\t if (throwOnDirectAccess) {\n\t // New behavior only for users of `prop-types` package\n\t invariant(\n\t false,\n\t 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n\t 'Use `PropTypes.checkPropTypes()` to call them. ' +\n\t 'Read more at http://fb.me/use-check-prop-types'\n\t );\n\t } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n\t // Old behavior for people using React.PropTypes\n\t var cacheKey = componentName + ':' + propName;\n\t if (\n\t !manualPropTypeCallCache[cacheKey] &&\n\t // Avoid spamming the console because they are often not actionable except for lib authors\n\t manualPropTypeWarningCount < 3\n\t ) {\n\t warning(\n\t false,\n\t 'You are manually calling a React.PropTypes validation ' +\n\t 'function for the `%s` prop on `%s`. This is deprecated ' +\n\t 'and will throw in the standalone `prop-types` package. ' +\n\t 'You may be seeing this warning due to a third-party PropTypes ' +\n\t 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n\t propFullName,\n\t componentName\n\t );\n\t manualPropTypeCallCache[cacheKey] = true;\n\t manualPropTypeWarningCount++;\n\t }\n\t }\n\t }\n\t if (props[propName] == null) {\n\t if (isRequired) {\n\t if (props[propName] === null) {\n\t return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n\t }\n\t return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n\t }\n\t return null;\n\t } else {\n\t return validate(props, propName, componentName, location, propFullName);\n\t }\n\t }\n\t\n\t var chainedCheckType = checkType.bind(null, false);\n\t chainedCheckType.isRequired = checkType.bind(null, true);\n\t\n\t return chainedCheckType;\n\t }\n\t\n\t function createPrimitiveTypeChecker(expectedType) {\n\t function validate(props, propName, componentName, location, propFullName, secret) {\n\t var propValue = props[propName];\n\t var propType = getPropType(propValue);\n\t if (propType !== expectedType) {\n\t // `propValue` being instance of, say, date/regexp, pass the 'object'\n\t // check, but we can offer a more precise error message here rather than\n\t // 'of type `object`'.\n\t var preciseType = getPreciseType(propValue);\n\t\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n\t }\n\t return null;\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function createAnyTypeChecker() {\n\t return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n\t }\n\t\n\t function createArrayOfTypeChecker(typeChecker) {\n\t function validate(props, propName, componentName, location, propFullName) {\n\t if (typeof typeChecker !== 'function') {\n\t return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n\t }\n\t var propValue = props[propName];\n\t if (!Array.isArray(propValue)) {\n\t var propType = getPropType(propValue);\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n\t }\n\t for (var i = 0; i < propValue.length; i++) {\n\t var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n\t if (error instanceof Error) {\n\t return error;\n\t }\n\t }\n\t return null;\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function createElementTypeChecker() {\n\t function validate(props, propName, componentName, location, propFullName) {\n\t var propValue = props[propName];\n\t if (!isValidElement(propValue)) {\n\t var propType = getPropType(propValue);\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n\t }\n\t return null;\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function createInstanceTypeChecker(expectedClass) {\n\t function validate(props, propName, componentName, location, propFullName) {\n\t if (!(props[propName] instanceof expectedClass)) {\n\t var expectedClassName = expectedClass.name || ANONYMOUS;\n\t var actualClassName = getClassName(props[propName]);\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n\t }\n\t return null;\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function createEnumTypeChecker(expectedValues) {\n\t if (!Array.isArray(expectedValues)) {\n\t process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n\t return emptyFunction.thatReturnsNull;\n\t }\n\t\n\t function validate(props, propName, componentName, location, propFullName) {\n\t var propValue = props[propName];\n\t for (var i = 0; i < expectedValues.length; i++) {\n\t if (is(propValue, expectedValues[i])) {\n\t return null;\n\t }\n\t }\n\t\n\t var valuesString = JSON.stringify(expectedValues);\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function createObjectOfTypeChecker(typeChecker) {\n\t function validate(props, propName, componentName, location, propFullName) {\n\t if (typeof typeChecker !== 'function') {\n\t return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n\t }\n\t var propValue = props[propName];\n\t var propType = getPropType(propValue);\n\t if (propType !== 'object') {\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n\t }\n\t for (var key in propValue) {\n\t if (propValue.hasOwnProperty(key)) {\n\t var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n\t if (error instanceof Error) {\n\t return error;\n\t }\n\t }\n\t }\n\t return null;\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function createUnionTypeChecker(arrayOfTypeCheckers) {\n\t if (!Array.isArray(arrayOfTypeCheckers)) {\n\t process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n\t return emptyFunction.thatReturnsNull;\n\t }\n\t\n\t for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n\t var checker = arrayOfTypeCheckers[i];\n\t if (typeof checker !== 'function') {\n\t warning(\n\t false,\n\t 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n\t 'received %s at index %s.',\n\t getPostfixForTypeWarning(checker),\n\t i\n\t );\n\t return emptyFunction.thatReturnsNull;\n\t }\n\t }\n\t\n\t function validate(props, propName, componentName, location, propFullName) {\n\t for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n\t var checker = arrayOfTypeCheckers[i];\n\t if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n\t return null;\n\t }\n\t }\n\t\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function createNodeChecker() {\n\t function validate(props, propName, componentName, location, propFullName) {\n\t if (!isNode(props[propName])) {\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n\t }\n\t return null;\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function createShapeTypeChecker(shapeTypes) {\n\t function validate(props, propName, componentName, location, propFullName) {\n\t var propValue = props[propName];\n\t var propType = getPropType(propValue);\n\t if (propType !== 'object') {\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n\t }\n\t for (var key in shapeTypes) {\n\t var checker = shapeTypes[key];\n\t if (!checker) {\n\t continue;\n\t }\n\t var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n\t if (error) {\n\t return error;\n\t }\n\t }\n\t return null;\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function createStrictShapeTypeChecker(shapeTypes) {\n\t function validate(props, propName, componentName, location, propFullName) {\n\t var propValue = props[propName];\n\t var propType = getPropType(propValue);\n\t if (propType !== 'object') {\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n\t }\n\t // We need to check all keys in case some are required but missing from\n\t // props.\n\t var allKeys = assign({}, props[propName], shapeTypes);\n\t for (var key in allKeys) {\n\t var checker = shapeTypes[key];\n\t if (!checker) {\n\t return new PropTypeError(\n\t 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n\t '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n\t '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n\t );\n\t }\n\t var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n\t if (error) {\n\t return error;\n\t }\n\t }\n\t return null;\n\t }\n\t\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function isNode(propValue) {\n\t switch (typeof propValue) {\n\t case 'number':\n\t case 'string':\n\t case 'undefined':\n\t return true;\n\t case 'boolean':\n\t return !propValue;\n\t case 'object':\n\t if (Array.isArray(propValue)) {\n\t return propValue.every(isNode);\n\t }\n\t if (propValue === null || isValidElement(propValue)) {\n\t return true;\n\t }\n\t\n\t var iteratorFn = getIteratorFn(propValue);\n\t if (iteratorFn) {\n\t var iterator = iteratorFn.call(propValue);\n\t var step;\n\t if (iteratorFn !== propValue.entries) {\n\t while (!(step = iterator.next()).done) {\n\t if (!isNode(step.value)) {\n\t return false;\n\t }\n\t }\n\t } else {\n\t // Iterator will provide entry [k,v] tuples rather than values.\n\t while (!(step = iterator.next()).done) {\n\t var entry = step.value;\n\t if (entry) {\n\t if (!isNode(entry[1])) {\n\t return false;\n\t }\n\t }\n\t }\n\t }\n\t } else {\n\t return false;\n\t }\n\t\n\t return true;\n\t default:\n\t return false;\n\t }\n\t }\n\t\n\t function isSymbol(propType, propValue) {\n\t // Native Symbol.\n\t if (propType === 'symbol') {\n\t return true;\n\t }\n\t\n\t // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n\t if (propValue['@@toStringTag'] === 'Symbol') {\n\t return true;\n\t }\n\t\n\t // Fallback for non-spec compliant Symbols which are polyfilled.\n\t if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n\t return true;\n\t }\n\t\n\t return false;\n\t }\n\t\n\t // Equivalent of `typeof` but with special handling for array and regexp.\n\t function getPropType(propValue) {\n\t var propType = typeof propValue;\n\t if (Array.isArray(propValue)) {\n\t return 'array';\n\t }\n\t if (propValue instanceof RegExp) {\n\t // Old webkits (at least until Android 4.0) return 'function' rather than\n\t // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n\t // passes PropTypes.object.\n\t return 'object';\n\t }\n\t if (isSymbol(propType, propValue)) {\n\t return 'symbol';\n\t }\n\t return propType;\n\t }\n\t\n\t // This handles more types than `getPropType`. Only used for error messages.\n\t // See `createPrimitiveTypeChecker`.\n\t function getPreciseType(propValue) {\n\t if (typeof propValue === 'undefined' || propValue === null) {\n\t return '' + propValue;\n\t }\n\t var propType = getPropType(propValue);\n\t if (propType === 'object') {\n\t if (propValue instanceof Date) {\n\t return 'date';\n\t } else if (propValue instanceof RegExp) {\n\t return 'regexp';\n\t }\n\t }\n\t return propType;\n\t }\n\t\n\t // Returns a string that is postfixed to a warning about an invalid type.\n\t // For example, \"undefined\" or \"of type array\"\n\t function getPostfixForTypeWarning(value) {\n\t var type = getPreciseType(value);\n\t switch (type) {\n\t case 'array':\n\t case 'object':\n\t return 'an ' + type;\n\t case 'boolean':\n\t case 'date':\n\t case 'regexp':\n\t return 'a ' + type;\n\t default:\n\t return type;\n\t }\n\t }\n\t\n\t // Returns class name of the object, if any.\n\t function getClassName(propValue) {\n\t if (!propValue.constructor || !propValue.constructor.name) {\n\t return ANONYMOUS;\n\t }\n\t return propValue.constructor.name;\n\t }\n\t\n\t ReactPropTypes.checkPropTypes = checkPropTypes;\n\t ReactPropTypes.PropTypes = ReactPropTypes;\n\t\n\t return ReactPropTypes;\n\t};\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5)))\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\n\t\"use strict\";\n\t\n\t/**\n\t * Copyright (c) 2013-present, Facebook, Inc.\n\t *\n\t * This source code is licensed under the MIT license found in the\n\t * LICENSE file in the root directory of this source tree.\n\t *\n\t * \n\t */\n\t\n\tfunction makeEmptyFunction(arg) {\n\t return function () {\n\t return arg;\n\t };\n\t}\n\t\n\t/**\n\t * This function accepts and discards inputs; it has no side effects. This is\n\t * primarily useful idiomatically for overridable function endpoints which\n\t * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n\t */\n\tvar emptyFunction = function emptyFunction() {};\n\t\n\temptyFunction.thatReturns = makeEmptyFunction;\n\temptyFunction.thatReturnsFalse = makeEmptyFunction(false);\n\temptyFunction.thatReturnsTrue = makeEmptyFunction(true);\n\temptyFunction.thatReturnsNull = makeEmptyFunction(null);\n\temptyFunction.thatReturnsThis = function () {\n\t return this;\n\t};\n\temptyFunction.thatReturnsArgument = function (arg) {\n\t return arg;\n\t};\n\t\n\tmodule.exports = emptyFunction;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(process) {/**\n\t * Copyright (c) 2013-present, Facebook, Inc.\n\t *\n\t * This source code is licensed under the MIT license found in the\n\t * LICENSE file in the root directory of this source tree.\n\t *\n\t */\n\t\n\t'use strict';\n\t\n\t/**\n\t * Use invariant() to assert state which your program assumes to be true.\n\t *\n\t * Provide sprintf-style format (only %s is supported) and arguments\n\t * to provide information about what broke and what you were\n\t * expecting.\n\t *\n\t * The invariant message will be stripped in production, but the invariant\n\t * will remain to ensure logic does not differ in production.\n\t */\n\t\n\tvar validateFormat = function validateFormat(format) {};\n\t\n\tif (process.env.NODE_ENV !== 'production') {\n\t validateFormat = function validateFormat(format) {\n\t if (format === undefined) {\n\t throw new Error('invariant requires an error message argument');\n\t }\n\t };\n\t}\n\t\n\tfunction invariant(condition, format, a, b, c, d, e, f) {\n\t validateFormat(format);\n\t\n\t if (!condition) {\n\t var error;\n\t if (format === undefined) {\n\t error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n\t } else {\n\t var args = [a, b, c, d, e, f];\n\t var argIndex = 0;\n\t error = new Error(format.replace(/%s/g, function () {\n\t return args[argIndex++];\n\t }));\n\t error.name = 'Invariant Violation';\n\t }\n\t\n\t error.framesToPop = 1; // we don't care about invariant's own frame\n\t throw error;\n\t }\n\t}\n\t\n\tmodule.exports = invariant;\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5)))\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(process) {/**\n\t * Copyright (c) 2014-present, Facebook, Inc.\n\t *\n\t * This source code is licensed under the MIT license found in the\n\t * LICENSE file in the root directory of this source tree.\n\t *\n\t */\n\t\n\t'use strict';\n\t\n\tvar emptyFunction = __webpack_require__(7);\n\t\n\t/**\n\t * Similar to invariant but only logs a warning if the condition is not met.\n\t * This can be used to log issues in development environments in critical\n\t * paths. Removing the logging code for production environments will keep the\n\t * same logic and follow the same code paths.\n\t */\n\t\n\tvar warning = emptyFunction;\n\t\n\tif (process.env.NODE_ENV !== 'production') {\n\t var printWarning = function printWarning(format) {\n\t for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n\t args[_key - 1] = arguments[_key];\n\t }\n\t\n\t var argIndex = 0;\n\t var message = 'Warning: ' + format.replace(/%s/g, function () {\n\t return args[argIndex++];\n\t });\n\t if (typeof console !== 'undefined') {\n\t console.error(message);\n\t }\n\t try {\n\t // --- Welcome to debugging React ---\n\t // This error was thrown as a convenience so that you can use this stack\n\t // to find the callsite that caused this warning to fire.\n\t throw new Error(message);\n\t } catch (x) {}\n\t };\n\t\n\t warning = function warning(condition, format) {\n\t if (format === undefined) {\n\t throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n\t }\n\t\n\t if (format.indexOf('Failed Composite propType: ') === 0) {\n\t return; // Ignore CompositeComponent proptype check.\n\t }\n\t\n\t if (!condition) {\n\t for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n\t args[_key2 - 2] = arguments[_key2];\n\t }\n\t\n\t printWarning.apply(undefined, [format].concat(args));\n\t }\n\t };\n\t}\n\t\n\tmodule.exports = warning;\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5)))\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports) {\n\n\t/*\n\tobject-assign\n\t(c) Sindre Sorhus\n\t@license MIT\n\t*/\n\t\n\t'use strict';\n\t/* eslint-disable no-unused-vars */\n\tvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\n\tvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\tvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\t\n\tfunction toObject(val) {\n\t\tif (val === null || val === undefined) {\n\t\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t\t}\n\t\n\t\treturn Object(val);\n\t}\n\t\n\tfunction shouldUseNative() {\n\t\ttry {\n\t\t\tif (!Object.assign) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\t// Detect buggy property enumeration order in older V8 versions.\n\t\n\t\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\t\ttest1[5] = 'de';\n\t\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\t\tvar test2 = {};\n\t\t\tfor (var i = 0; i < 10; i++) {\n\t\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t\t}\n\t\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\t\treturn test2[n];\n\t\t\t});\n\t\t\tif (order2.join('') !== '0123456789') {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\t\tvar test3 = {};\n\t\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\t\ttest3[letter] = letter;\n\t\t\t});\n\t\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\treturn true;\n\t\t} catch (err) {\n\t\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\t\treturn false;\n\t\t}\n\t}\n\t\n\tmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\t\tvar from;\n\t\tvar to = toObject(target);\n\t\tvar symbols;\n\t\n\t\tfor (var s = 1; s < arguments.length; s++) {\n\t\t\tfrom = Object(arguments[s]);\n\t\n\t\t\tfor (var key in from) {\n\t\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\t\tto[key] = from[key];\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tif (getOwnPropertySymbols) {\n\t\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\n\t\treturn to;\n\t};\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * Copyright (c) 2013-present, Facebook, Inc.\n\t *\n\t * This source code is licensed under the MIT license found in the\n\t * LICENSE file in the root directory of this source tree.\n\t */\n\t\n\t'use strict';\n\t\n\tvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\t\n\tmodule.exports = ReactPropTypesSecret;\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(process) {/**\n\t * Copyright (c) 2013-present, Facebook, Inc.\n\t *\n\t * This source code is licensed under the MIT license found in the\n\t * LICENSE file in the root directory of this source tree.\n\t */\n\t\n\t'use strict';\n\t\n\tif (process.env.NODE_ENV !== 'production') {\n\t var invariant = __webpack_require__(8);\n\t var warning = __webpack_require__(9);\n\t var ReactPropTypesSecret = __webpack_require__(11);\n\t var loggedTypeFailures = {};\n\t}\n\t\n\t/**\n\t * Assert that the values match with the type specs.\n\t * Error messages are memorized and will only be shown once.\n\t *\n\t * @param {object} typeSpecs Map of name to a ReactPropType\n\t * @param {object} values Runtime values that need to be type-checked\n\t * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n\t * @param {string} componentName Name of the component for error messages.\n\t * @param {?Function} getStack Returns the component stack.\n\t * @private\n\t */\n\tfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n\t if (process.env.NODE_ENV !== 'production') {\n\t for (var typeSpecName in typeSpecs) {\n\t if (typeSpecs.hasOwnProperty(typeSpecName)) {\n\t var error;\n\t // Prop type validation may throw. In case they do, we don't want to\n\t // fail the render phase where it didn't fail before. So we log it.\n\t // After these have been cleaned up, we'll let them throw.\n\t try {\n\t // This is intentionally an invariant that gets caught. It's the same\n\t // behavior as without this statement except with a better message.\n\t invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'the `prop-types` package, but received `%s`.', componentName || 'React class', location, typeSpecName, typeof typeSpecs[typeSpecName]);\n\t error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n\t } catch (ex) {\n\t error = ex;\n\t }\n\t warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n\t if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n\t // Only monitor this failure once because there tends to be a lot of the\n\t // same error.\n\t loggedTypeFailures[error.message] = true;\n\t\n\t var stack = getStack ? getStack() : '';\n\t\n\t warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n\t }\n\t }\n\t }\n\t }\n\t}\n\t\n\tmodule.exports = checkPropTypes;\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(5)))\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Copyright (c) 2013-present, Facebook, Inc.\n\t *\n\t * This source code is licensed under the MIT license found in the\n\t * LICENSE file in the root directory of this source tree.\n\t */\n\t\n\t'use strict';\n\t\n\tvar emptyFunction = __webpack_require__(7);\n\tvar invariant = __webpack_require__(8);\n\tvar ReactPropTypesSecret = __webpack_require__(11);\n\t\n\tmodule.exports = function() {\n\t function shim(props, propName, componentName, location, propFullName, secret) {\n\t if (secret === ReactPropTypesSecret) {\n\t // It is still safe when called from React.\n\t return;\n\t }\n\t invariant(\n\t false,\n\t 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n\t 'Use PropTypes.checkPropTypes() to call them. ' +\n\t 'Read more at http://fb.me/use-check-prop-types'\n\t );\n\t };\n\t shim.isRequired = shim;\n\t function getShim() {\n\t return shim;\n\t };\n\t // Important!\n\t // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n\t var ReactPropTypes = {\n\t array: shim,\n\t bool: shim,\n\t func: shim,\n\t number: shim,\n\t object: shim,\n\t string: shim,\n\t symbol: shim,\n\t\n\t any: shim,\n\t arrayOf: getShim,\n\t element: shim,\n\t instanceOf: getShim,\n\t node: shim,\n\t objectOf: getShim,\n\t oneOf: getShim,\n\t oneOfType: getShim,\n\t shape: getShim,\n\t exact: getShim\n\t };\n\t\n\t ReactPropTypes.checkPropTypes = emptyFunction;\n\t ReactPropTypes.PropTypes = ReactPropTypes;\n\t\n\t return ReactPropTypes;\n\t};\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = require(\"react\");\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\tvar simpleIsEqual = function simpleIsEqual(a, b) {\n\t return a === b;\n\t};\n\t\n\tfunction index (resultFn) {\n\t var isEqual = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : simpleIsEqual;\n\t\n\t var lastThis = void 0;\n\t var lastArgs = [];\n\t var lastResult = void 0;\n\t var calledOnce = false;\n\t\n\t var isNewArgEqualToLast = function isNewArgEqualToLast(newArg, index) {\n\t return isEqual(newArg, lastArgs[index]);\n\t };\n\t\n\t var result = function result() {\n\t for (var _len = arguments.length, newArgs = Array(_len), _key = 0; _key < _len; _key++) {\n\t newArgs[_key] = arguments[_key];\n\t }\n\t\n\t if (calledOnce && lastThis === this && newArgs.length === lastArgs.length && newArgs.every(isNewArgEqualToLast)) {\n\t return lastResult;\n\t }\n\t\n\t calledOnce = true;\n\t lastThis = this;\n\t lastArgs = newArgs;\n\t lastResult = resultFn.apply(this, newArgs);\n\t return lastResult;\n\t };\n\t\n\t return result;\n\t}\n\t\n\tmodule.exports = index;\n\n\n/***/ })\n/******/ ]);\n//# sourceMappingURL=main.js.map","import * as React from 'preact/compat';\r\nimport {Hit} from 'instantsearch.js/es/types';\r\nimport {LogoMapper} from '../../shared';\r\nimport Highlighter from \"react-highlight-words\";\r\nimport {Text} from 'preact-i18n';\r\n\r\nexport const DocumentsHit: React.FC<{\r\n searchWords: string[],\r\n hit: Hit,\r\n dateLocale: Locale\r\n}> = (\r\n {\r\n searchWords,\r\n hit,\r\n dateLocale\r\n }) => {\r\n\r\n const getPdfUrl = () => {\r\n if (hit.url && hit.url.length > 0) {\r\n return hit.url;\r\n }\r\n\r\n return `https://cdn.devolutions.net/documents/${hit.objectID}.pdf`;\r\n }\r\n\r\n const getImageUrl = () => {\r\n if (hit.imageUrl.length > 0) {\r\n return hit.imageUrl;\r\n }\r\n\r\n return `https://webdevolutions.azureedge.net/images/documents/${hit.objectID}.jpg`;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n { hit.hasImage && \"pdf }\r\n \r\n\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n \r\n
\r\n\r\n {hit.description?.length > 0 &&\r\n
\r\n \r\n
\r\n }\r\n
\r\n
\r\n\r\n
\r\n {hit.products?.map((product: string) => LogoMapper.getClassNameFromSoftwareOrPlatform(product))}\r\n
\r\n
\r\n )\r\n};\r\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 __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 });\nconst React = __importStar(require(\"react\"));\nconst SvgTopic = (props) => (React.createElement(\"svg\", Object.assign({ xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\" }, props),\n React.createElement(\"path\", { d: \"M21.002,2l-18.002,0c-1.105,0 -2,0.895 -2,2l0,14c0,1.105 0.895,2 2,2l2,0l0,2.499c0,0.389 0.424,0.629 0.757,0.429l4.243,-2.928l11,0c1.105,0 2,-0.895 2,-2l0,-14.002c0,-1.104 -0.894,-1.998 -1.998,-1.998Zm-0.002,16l-11.623,0l-2.377,1.64l0,-1.64l-4,0l0,-14l18,0l0,14Z\" })));\nexports.default = SvgTopic;\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 __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 });\nconst React = __importStar(require(\"react\"));\nconst SvgView = (props) => (React.createElement(\"svg\", Object.assign({ xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\" }, props),\n React.createElement(\"path\", { d: \"M12,4.5c-5,0 -9.27,3.11 -11,7.5c1.73,4.39 6,7.5 11,7.5c5,0 9.27,-3.11 11,-7.5c-1.73,-4.39 -6,-7.5 -11,-7.5Zm0,12.5c-2.76,0 -5,-2.24 -5,-5c0,-2.76 2.24,-5 5,-5c2.76,0 5,2.24 5,5c0,2.76 -2.24,5 -5,5Zm0,-8c-1.66,0 -3,1.34 -3,3c0,1.66 1.34,3 3,3c1.66,0 3,-1.34 3,-3c0,-1.66 -1.34,-3 -3,-3Z\" })));\nexports.default = SvgView;\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 __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 });\nconst React = __importStar(require(\"react\"));\nconst SvgEntrySampleComment = (props) => (React.createElement(\"svg\", Object.assign({ xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\" }, props),\n React.createElement(\"path\", { d: \"M20,2l-16,0c-1.657,0 -3,1.343 -3,3l0,11c0,1.657 1.343,3 3,3l1,0l0,4l4.667,-4l10.333,0c1.657,0 3,-1.343 3,-3l0,-11c0,-1.657 -1.343,-3 -3,-3Z\" })));\nexports.default = SvgEntrySampleComment;\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 __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 });\nconst React = __importStar(require(\"react\"));\nconst SvgEntryOtp = (props) => (React.createElement(\"svg\", Object.assign({ xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\" }, props),\n React.createElement(\"path\", { d: \"M21.06,5.768l0.132,-0.132c0.391,-0.391 0.391,-1.024 0,-1.414l-1.414,-1.414c-0.391,-0.391 -1.024,-0.391 -1.414,0l-0.132,0.132c-1.248,-0.861 -2.684,-1.465 -4.232,-1.75l0,-0.19c0,-0.552 -0.448,-1 -1,-1l-2,0c-0.552,0 -1,0.448 -1,1l0,0.19c-5.119,0.942 -9,5.419 -9,10.81c0,6.075 4.925,11 11,11c6.075,0 11,-4.925 11,-11c0,-2.315 -0.719,-4.46 -1.94,-6.232Zm-9.06,15.232c-4.963,0 -9,-4.037 -9,-9c0,-4.963 4.037,-9 9,-9c4.963,0 9,4.037 9,9c0,4.963 -4.037,9 -9,9Zm0,-14c-0.55,0 -1,0.45 -1,1l0,3.586l-1.294,-1.294c-0.389,-0.389 -1.025,-0.389 -1.414,0c-0.389,0.389 -0.389,1.025 0,1.414c0,0 2.99,2.985 2.995,2.99c0.181,0.186 0.433,0.304 0.713,0.304c0.55,0 1,-0.45 1,-1l0,-6c0,-0.55 -0.45,-1 -1,-1Z\" })));\nexports.default = SvgEntryOtp;\n","import * as React from 'preact/compat';\r\nimport {Hit} from 'instantsearch.js/es/types';\r\nimport {format, formatDistanceToNow, parseISO} from 'date-fns';\r\nimport {LogoMapper} from '../../shared';\r\nimport Highlighter from 'react-highlight-words';\r\nimport IconTopic from '@devolutions/icons/react/Topic';\r\nimport IconView from '@devolutions/icons/react/View';\r\nimport IconEntrySampleComment from '@devolutions/icons/react/EntrySampleComment';\r\nimport IconEntryOtp from '@devolutions/icons/react/EntryOtp';\r\n\r\nexport const ForumHit: React.FC<{\r\n searchWords: string[],\r\n hit: Hit,\r\n dateLocale: Locale\r\n}> = (\r\n {\r\n searchWords,\r\n hit,\r\n dateLocale\r\n }) => {\r\n\r\n const formatDate = (date) => {\r\n return format(parseISO(date), \"PPP\", { locale: dateLocale });\r\n }\r\n\r\n const formatDateFromNow = (date) => {\r\n return formatDistanceToNow(parseISO(date), { locale: dateLocale });\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n {hit.section} • {formatDate(hit.published_date)}\r\n
\r\n\r\n
\r\n {hit.software && LogoMapper.getClassNameFromSoftwareOrPlatform(hit.software)}\r\n {hit.platform && LogoMapper.getClassNameFromSoftwareOrPlatform(hit.platform)}\r\n {hit.avatar &&\r\n {hit.username}\r\n}\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n {hit.view_count || '0'}\r\n
\r\n\r\n
\r\n \r\n {hit.replies_count || '0'}\r\n
\r\n\r\n
\r\n \r\n {formatDateFromNow(hit.published_date)}\r\n
\r\n
\r\n
\r\n )\r\n};\r\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 __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 });\nconst React = __importStar(require(\"react\"));\nconst SvgBook = (props) => (React.createElement(\"svg\", Object.assign({ xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\" }, props),\n React.createElement(\"path\", { d: \"M20,2l-13.586,0c-0.265,0 -0.52,0.105 -0.707,0.293l-2.414,2.414c-0.188,0.188 -0.293,0.442 -0.293,0.707l0,15.586c0,0.552 0.448,1 1,1l12,0c0.552,0 1,-0.448 1,-1l0,-15c0,-0.552 -0.448,-1 -1,-1l-10,0l1,-1l11,0c0.552,0 1,0.448 1,1l0,15.2l1.515,-0.909c0.301,-0.18 0.485,-0.506 0.485,-0.857l0,-15.434c0,-0.552 -0.448,-1 -1,-1Z\" })));\nexports.default = SvgBook;\n","import * as React from 'preact/compat';\r\nimport {Hit} from 'instantsearch.js/es/types';\r\nimport {format, formatDistanceToNow, parseISO} from 'date-fns';\r\nimport Highlighter from 'react-highlight-words';\r\nimport IconBook from '@devolutions/icons/react/Book';\r\nimport IconEntryOtp from '@devolutions/icons/react/EntryOtp';\r\n\r\nexport const BlogHit: React.FC<{\r\n searchWords: string[],\r\n hit: Hit,\r\n dateLocale: Locale\r\n}> = (\r\n {\r\n searchWords,\r\n hit,\r\n dateLocale\r\n }) => {\r\n\r\n const formatDate = (date) => {\r\n return format(parseISO(date), \"PPP\", { locale: dateLocale });\r\n }\r\n\r\n const formatDateFromNow = (date) => {\r\n return formatDistanceToNow(parseISO(date), { locale: dateLocale });\r\n }\r\n\r\n return (\r\n
\r\n \r\n \"Blog\r\n \r\n\r\n \r\n \r\n \r\n\r\n
\r\n {hit.categories.join(' | ')} • {formatDate(hit.publishedDate)}\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n {formatDateFromNow(hit.modified)}\r\n
\r\n
\r\n )\r\n};\r\n","import * as React from 'preact/compat';\r\nimport {Hit} from 'instantsearch.js/es/types';\r\nimport Highlighter from 'react-highlight-words';\r\nimport IconOnlineHelp from '@devolutions/icons/react/OnlineHelp';\r\n\r\nexport const DocsHit: React.FC<{\r\n searchWords: string[],\r\n hit: Hit\r\n}> = (\r\n {\r\n searchWords,\r\n hit,\r\n }) => {\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n {hit.doc}/ {hit.url.replace(/^\\/|\\/$/g, '').replace(/\\//g, ' > ')}\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n )\r\n};\r\n","import * as React from 'preact/compat';\r\nimport {Hit, TransformItems} from 'instantsearch.js/es/types';\r\nimport {useInfiniteHits} from 'react-instantsearch-hooks-web';\r\nimport useInfiniteScroll from 'react-infinite-scroll-hook';\r\nimport {ItemCategory} from '../shared';\r\nimport {DocumentsHit} from './types/documents-hit';\r\nimport {ForumHit} from './types/forum-hit';\r\nimport {BlogHit} from './types/blog-hit';\r\nimport {DocsHit} from './types/docs-hit';\r\nimport {useEffect, useState} from 'preact/compat';\r\n\r\nexport const InfiniteHits: React.FC<{\r\n query: string,\r\n category: ItemCategory,\r\n dateLocale: Locale,\r\n transformItems?: TransformItems\r\n}> = (\r\n {\r\n query: queryProp,\r\n category,\r\n dateLocale,\r\n transformItems\r\n }) => {\r\n\r\n const {hits, isLastPage, showMore} = useInfiniteHits({\r\n transformItems,\r\n });\r\n\r\n const [searchWords, setSearchWords] = useState([]);\r\n useEffect(() => {\r\n const q = queryProp.replace(/\\\"/gm, '');\r\n setSearchWords(q.split(' '));\r\n }, [queryProp]);\r\n\r\n const [sentryRef, {rootRef}] = useInfiniteScroll({\r\n loading: false,\r\n hasNextPage: !isLastPage,\r\n onLoadMore: showMore,\r\n disabled: false,\r\n rootMargin: '0px 0px 400px 0px',\r\n });\r\n\r\n const getTemplateByCategory = (category: ItemCategory, hit: Hit, dateLocale: Locale) => {\r\n switch (category) {\r\n case 'forum':\r\n return ;\r\n case 'documents':\r\n return ;\r\n case 'blog':\r\n return ;\r\n case 'docs':\r\n return ;\r\n default:\r\n return new Error('Not Implemented Template');\r\n }\r\n }\r\n\r\n return (\r\n
\r\n {hits.map(hit => getTemplateByCategory(category, hit, dateLocale))}\r\n {(!isLastPage) && (\r\n
\r\n )}\r\n
\r\n\r\n );\r\n};\r\n","import * as React from 'preact/compat';\r\nimport {Configure, InstantSearch} from \"react-instantsearch-hooks-web\";\r\nimport {PropsWithChildren} from \"preact/compat\";\r\nimport {Text} from \"preact-i18n\";\r\nimport {SearchClient} from 'algoliasearch';\r\nimport {ItemCategory} from '../shared';\r\nimport ResultsHeader, {ResultsHeaderProps} from '../structure/results-header';\r\nimport {StateResults} from '../structure/state-result';\r\nimport {InfiniteHits} from '../hits';\r\n\r\ninterface CategoryProps {\r\n category: ItemCategory;\r\n dateLocale: any;\r\n index: string;\r\n query: string;\r\n nbHits: number;\r\n onHitsChange: (total: number) => void;\r\n searchClient: SearchClient;\r\n facetingAfterDistinct: boolean;\r\n isSelected: boolean;\r\n showFilters: boolean;\r\n transformItems: (item: any[]) => any[];\r\n header: Omit;\r\n}\r\n\r\nconst Category: React.FC> = (\r\n {\r\n category,\r\n dateLocale,\r\n index,\r\n query,\r\n nbHits,\r\n onHitsChange,\r\n searchClient,\r\n facetingAfterDistinct,\r\n isSelected,\r\n showFilters,\r\n transformItems,\r\n header,\r\n children,\r\n }\r\n) => {\r\n const onReceivedResults = (nbHits: number) => {\r\n onHitsChange(nbHits);\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n\r\n {nbHits > 0 &&\r\n \r\n }\r\n\r\n {nbHits === 0 && query.length >= 3 && (\r\n
\r\n )}\r\n\r\n {nbHits === 0 && query.length < 3 && (\r\n
\r\n )}\r\n
\r\n {children &&\r\n
\r\n
\r\n {children}\r\n
\r\n
\r\n }\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default Category;\r\n","import * as React from 'preact/compat';\r\nimport {useEffect, useMemo, useState} from 'preact/compat';\r\nimport {useSortBy} from 'react-instantsearch-hooks-web';\r\nimport {useText} from 'preact-i18n';\r\n\r\nexport type SortByProps = {\r\n sortBy: string;\r\n defaultIndex: string;\r\n onSortByChange: (sortBy: string) => void;\r\n}\r\n\r\nexport const SortBy: React.FC = (\r\n {\r\n sortBy,\r\n defaultIndex,\r\n onSortByChange\r\n }) => {\r\n const relevanceText = useText('search.relevance').relevance;\r\n const dateText = useText('search.date').date;\r\n\r\n const sortByMappings = {\r\n 'relevance': defaultIndex,\r\n 'date': `${defaultIndex}_published_date`\r\n }\r\n\r\n const isValidSortBy = sortBy && ['relevance', 'date'].includes(sortBy);\r\n const [selectedValue, setSelectedValue] = useState(isValidSortBy ? sortBy : 'relevance');\r\n useEffect(() => {\r\n setSelectedValue(isValidSortBy ? sortBy : 'relevance');\r\n }, [isValidSortBy, sortBy]);\r\n\r\n useEffect(() => {\r\n refine(sortByMappings[selectedValue]);\r\n }, [selectedValue]);\r\n\r\n const items: any[] = useMemo(() => {\r\n return [\r\n {label: relevanceText, value: 'relevance'},\r\n {label: dateText, value: 'date'},\r\n ];\r\n }, [relevanceText, dateText]);\r\n\r\n const handleChange = (event) => {\r\n setSelectedValue(event.target.value);\r\n onSortByChange(event.target.value);\r\n }\r\n\r\n const {\r\n options,\r\n refine,\r\n } = useSortBy({\r\n items\r\n });\r\n\r\n return (\r\n
\r\n \r\n
\r\n );\r\n}\r\n","import { useRefinementList } from 'react-instantsearch-hooks-web';\r\nimport * as React from 'preact/compat';\r\nimport {Text} from 'preact-i18n';\r\nimport { RefinementListItem } from 'instantsearch.js/es/connectors/refinement-list/connectRefinementList';\r\nimport {LogoMapper} from '../shared/logo-mapper';\r\n\r\nexport const SoftwareRefinementList: React.FC<{ refinementAttribute?: string }> = ({ refinementAttribute }) => {\r\n\r\n const { items, refine } = useRefinementList({\r\n attribute: refinementAttribute || 'software'\r\n });\r\n\r\n const filterItems = (items: RefinementListItem[]) => {\r\n return items.filter(item => !['pvm','wayk'].includes(item.label));\r\n }\r\n\r\n items.sort((x, y) => y.count - x.count);\r\n\r\n return (\r\n <>\r\n
\r\n
    \r\n {filterItems(items).map((item, index)=>{\r\n return (\r\n
  • \r\n \r\n {item.count || '0'}\r\n
  • \r\n )\r\n })}\r\n
\r\n
\r\n \r\n );\r\n}\r\n","import { useRefinementList } from 'react-instantsearch-hooks-web';\r\nimport * as React from 'preact/compat';\r\nimport {Text} from 'preact-i18n';\r\nimport {LogoMapper} from '../shared/logo-mapper';\r\n\r\nexport const PlatformRefinementList: React.FC<{}> = () => {\r\n\r\n const { items, refine } = useRefinementList({\r\n attribute: 'platform'\r\n });\r\n\r\n items.sort((x, y) => y.count - x.count);\r\n\r\n return (\r\n
\r\n
    \r\n {items.map((item, index) => {\r\n return (\r\n
  • \r\n \r\n {item.count || '0'}\r\n
  • \r\n )\r\n })}\r\n
\r\n
\r\n );\r\n}\r\n","import { useRefinementList } from 'react-instantsearch-hooks-web';\r\nimport * as React from 'preact/compat';\r\nimport {Text} from 'preact-i18n';\r\n\r\nexport const DocumentTypesRefinementList: React.FC<{}> = () => {\r\n\r\n const { items, refine } = useRefinementList({\r\n attribute: 'type'\r\n });\r\n\r\n items.sort((x, y) => y.count - x.count);\r\n\r\n return (\r\n
\r\n
    \r\n {items.map((item, index) => {\r\n return (\r\n
  • \r\n \r\n {item.count || '0'}\r\n
  • \r\n )\r\n })}\r\n
\r\n
\r\n );\r\n}\r\n","import { useRefinementList } from 'react-instantsearch-hooks-web';\r\nimport * as React from 'preact/compat';\r\n\r\nexport const BlogCategoriesRefinementList: React.FC<{}> = () => {\r\n\r\n const { items, refine } = useRefinementList({\r\n attribute: 'categories'\r\n });\r\n\r\n items.sort((x, y) => y.count - x.count);\r\n\r\n return (\r\n
\r\n
    \r\n {items.map((item, index) => {\r\n return (\r\n
  • \r\n \r\n {item.count || '0'}\r\n
  • \r\n )\r\n })}\r\n
\r\n
\r\n );\r\n}\r\n","import { useRefinementList } from 'react-instantsearch-hooks-web';\r\nimport * as React from 'preact/compat';\r\n\r\nexport const DocsDocRefinementList: React.FC<{}> = () => {\r\n const { items, refine } = useRefinementList({\r\n attribute: 'doc'\r\n });\r\n\r\n items.sort((x, y) => y.count - x.count);\r\n\r\n return (\r\n
\r\n
    \r\n {items.map((item, index) => {\r\n return (\r\n
  • \r\n \r\n {item.count || '0'}\r\n
  • \r\n )\r\n })}\r\n
\r\n
\r\n );\r\n}\r\n","import * as React from 'preact/compat';\r\nimport Category from \"./category\";\r\nimport {SearchClient} from 'algoliasearch';\r\nimport {ResultsHeaderProps} from '../structure/results-header';\r\nimport {OptionsPanel, truncateItem} from '../shared';\r\nimport {SortBy} from '../sortBy';\r\nimport {PlatformRefinementList, SoftwareRefinementList} from '../refinementLists';\r\nimport {useCallback} from 'preact/compat';\r\n\r\ntype ForumCategoryProps = {\r\n query: string;\r\n searchClient: SearchClient;\r\n isSelected: boolean;\r\n onHitsChange: (hits: number) => void;\r\n nbHits: number;\r\n dateLocale: Locale;\r\n showFilters: boolean;\r\n header: Omit;\r\n sortBy: string;\r\n onSortByChange: (sortBy: string) => void;\r\n}\r\n\r\nconst ForumCategory: React.FC = (\r\n {\r\n query,\r\n searchClient,\r\n isSelected,\r\n onHitsChange,\r\n nbHits,\r\n dateLocale,\r\n showFilters,\r\n header,\r\n sortBy,\r\n onSortByChange,\r\n }\r\n) => {\r\n const transformItems = useCallback((items) => {\r\n return items.map(item => truncateItem(item, 'text'));\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default ForumCategory;\r\n","import * as React from 'preact/compat';\r\nimport {Text} from 'preact-i18n';\r\nimport {ItemCategory} from '../shared';\r\n\r\ntype HeaderLinkProps = {\r\n category: ItemCategory,\r\n isSelected: boolean,\r\n nbHits: number,\r\n onClick: () => void\r\n}\r\n\r\nconst HeaderLink: React.FC = (\r\n {\r\n category,\r\n isSelected,\r\n nbHits,\r\n onClick\r\n }) => {\r\n return (\r\n \r\n {nbHits}\r\n \r\n );\r\n}\r\n\r\nexport default HeaderLink;\r\n","import{useRef as r,useEffect as n,useMemo as t,useCallback as u,useState as e}from\"react\";function c(u,e,c){var i=this,a=r(null),o=r(0),f=r(null),l=r([]),m=r(),v=r(),d=r(u),p=r(!0);n(function(){d.current=u},[u]);var g=!e&&0!==e&&\"undefined\"!=typeof window;if(\"function\"!=typeof u)throw new TypeError(\"Expected a function\");e=+e||0;var w=!!(c=c||{}).leading,s=!(\"trailing\"in c)||!!c.trailing,x=\"maxWait\"in c,y=x?Math.max(+c.maxWait||0,e):null;n(function(){return p.current=!0,function(){p.current=!1}},[]);var h=t(function(){var r=function(r){var n=l.current,t=m.current;return l.current=m.current=null,o.current=r,v.current=d.current.apply(t,n)},n=function(r,n){g&&cancelAnimationFrame(f.current),f.current=g?requestAnimationFrame(r):setTimeout(r,n)},t=function(r){if(!p.current)return!1;var n=r-a.current;return!a.current||n>=e||n<0||x&&r-o.current>=y},u=function(n){return f.current=null,s&&l.current?r(n):(l.current=m.current=null,v.current)},c=function r(){var c=Date.now();if(t(c))return u(c);if(p.current){var i=e-(c-a.current),f=x?Math.min(i,y-(c-o.current)):i;n(r,f)}},h=function(){var u=Date.now(),d=t(u);if(l.current=[].slice.call(arguments),m.current=i,a.current=u,d){if(!f.current&&p.current)return o.current=a.current,n(c,e),w?r(a.current):v.current;if(x)return n(c,e),r(a.current)}return f.current||n(c,e),v.current};return h.cancel=function(){f.current&&(g?cancelAnimationFrame(f.current):clearTimeout(f.current)),o.current=0,l.current=a.current=m.current=f.current=null},h.isPending=function(){return!!f.current},h.flush=function(){return f.current?u(Date.now()):v.current},h},[w,x,e,y,s,g]);return h}function i(r,n){return r===n}function a(r){return\"function\"==typeof r?function(){return r}:r}function o(n,t,o){var f,l,m=o&&o.equalityFn||i,v=(f=e(a(n)),l=f[1],[f[0],u(function(r){return l(a(r))},[])]),d=v[0],p=v[1],g=c(u(function(r){return p(r)},[p]),t,o),w=r(n);return m(w.current,n)||(g(n),w.current=n),[d,g]}function f(r,n,t){var u=void 0===t?{}:t,e=u.leading,i=u.trailing;return c(r,n,{maxWait:n,leading:void 0===e||e,trailing:void 0===i||i})}export{o as useDebounce,c as useDebouncedCallback,f as useThrottledCallback};\n//# sourceMappingURL=index.module.js.map\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 __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 });\nconst React = __importStar(require(\"react\"));\nconst SvgSearch = (props) => (React.createElement(\"svg\", Object.assign({ xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\" }, props),\n React.createElement(\"path\", { d: \"M20.904,18.594l-4.62,-4.62c-0.226,-0.226 -1.095,-0.06 -1.733,0.578c-0.638,0.638 -0.803,1.507 -0.578,1.733l4.62,4.62c0.226,0.226 1.095,0.06 1.733,-0.578c0.638,-0.638 0.804,-1.507 0.578,-1.733Zm-5.198,-9.241c0,3.509 -2.844,6.353 -6.353,6.353c-3.509,-0 -6.353,-2.844 -6.353,-6.353c0,-3.509 2.844,-6.353 6.353,-6.353c3.509,-0 6.353,2.844 6.353,6.353Zm-6.353,-4.62c-2.552,-0 -4.62,2.069 -4.62,4.62c0,2.551 2.069,4.62 4.62,4.62c2.551,-0 4.62,-2.069 4.62,-4.62c0,-2.551 -2.068,-4.62 -4.62,-4.62Z\" })));\nexports.default = SvgSearch;\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 __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 });\nconst React = __importStar(require(\"react\"));\nconst SvgClose = (props) => (React.createElement(\"svg\", Object.assign({ xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\" }, props),\n React.createElement(\"path\", { d: \"M19,6.41l-1.41,-1.41l-5.59,5.59l-5.59,-5.59l-1.41,1.41l5.59,5.59l-5.59,5.59l1.41,1.41l5.59,-5.59l5.59,5.59l1.41,-1.41l-5.59,-5.59l5.59,-5.59Z\" })));\nexports.default = SvgClose;\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 __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 });\nconst React = __importStar(require(\"react\"));\nconst SvgCloseWindow = (props) => (React.createElement(\"svg\", Object.assign({ xmlns: \"http://www.w3.org/2000/svg\", width: 24, height: 24, viewBox: \"0 0 24 24\" }, props),\n React.createElement(\"path\", { d: \"M12,2c-5.523,0 -10,4.477 -10,10c0,5.523 4.477,10 10,10c5.523,0 10,-4.477 10,-10c0,-5.523 -4.477,-10 -10,-10Zm4,12.667l-1.333,1.333l-2.667,-2.667l-2.667,2.667l-1.333,-1.333l2.667,-2.667l-2.667,-2.667l1.333,-1.333l2.667,2.667l2.667,-2.667l1.333,1.333l-2.667,2.667l2.667,2.667Z\" })));\nexports.default = SvgCloseWindow;\n","import * as React from 'preact/compat';\r\nimport HeaderLink from './header-link';\r\nimport {useEffect, useMemo, useRef} from 'preact/compat';\r\nimport {useDebouncedCallback} from 'use-debounce';\r\nimport {ItemCategory} from '../shared';\r\nimport {useText} from 'preact-i18n';\r\nimport IconSearch from '@devolutions/icons/react/Search';\r\nimport IconClose from '@devolutions/icons/react/Close';\r\nimport IconCloseWindow from '@devolutions/icons/react/CloseWindow';\r\n\r\nexport type SearchHeaderProps = {\r\n modalOpened: boolean;\r\n query: string;\r\n nbHits: { [category: string]: number };\r\n selectedCategory: ItemCategory;\r\n onSelectCategory: (category: ItemCategory) => void;\r\n onQueryChange: (query: string) => void;\r\n onClose: () => void;\r\n}\r\n\r\nconst SearchHeader: React.FC = (\r\n {\r\n modalOpened,\r\n query,\r\n nbHits,\r\n selectedCategory,\r\n onSelectCategory,\r\n onQueryChange,\r\n onClose\r\n }\r\n) => {\r\n const searchInput = useRef()\r\n useEffect(() => {\r\n if (searchInput.current && modalOpened) {\r\n searchInput.current.focus()\r\n }\r\n }, [modalOpened])\r\n\r\n const debounced = useDebouncedCallback(\r\n (value) => {\r\n if (onQueryChange) {\r\n onQueryChange(value);\r\n }\r\n },\r\n 750\r\n );\r\n\r\n const placeholder = useMemo(() => {\r\n return useText(`search.input-placeholder.${selectedCategory}`)[selectedCategory];\r\n }, [selectedCategory]);\r\n\r\n const clearQuery = () => {\r\n searchInput.current.value = '';\r\n searchInput.current.focus();\r\n onQueryChange('');\r\n }\r\n\r\n return (\r\n
\r\n \r\n
\r\n
\r\n onSelectCategory('forum')}/>\r\n onSelectCategory('docs')}/>\r\n onSelectCategory('blog')}/>\r\n onSelectCategory('documents')}/>\r\n
\r\n
\r\n \r\n debounced((e.target as any).value)}/>\r\n {query &&\r\n \r\n }\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default SearchHeader;\r\n","import * as React from 'preact/compat';\r\nimport Category from './category';\r\nimport {SearchClient} from 'algoliasearch';\r\nimport {ResultsHeaderProps} from '../structure/results-header';\r\nimport {OptionsPanel, truncateItem} from '../shared';\r\nimport {DocsDocRefinementList} from '../refinementLists';\r\nimport {useCallback, useState} from 'preact/compat';\r\n\r\ntype DocsCategoryProps = {\r\n locale: string;\r\n query: string;\r\n searchClient: SearchClient;\r\n isSelected: boolean;\r\n onHitsChange: (hits: number) => void;\r\n nbHits: number;\r\n dateLocale: Locale;\r\n showFilters: boolean;\r\n header: Omit\r\n}\r\n\r\nconst DocsCategory: React.FC = (\r\n {\r\n locale,\r\n query,\r\n searchClient,\r\n isSelected,\r\n onHitsChange,\r\n nbHits,\r\n dateLocale,\r\n showFilters,\r\n header,\r\n }\r\n) => {\r\n const transformItems = useCallback((items) => {\r\n return items.map(item => truncateItem(item, 'content'));\r\n }, []);\r\n\r\n const [index, setIndex] = useState(`docs-${locale}`);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default DocsCategory;\r\n","import * as React from 'preact/compat';\r\nimport Category from \"./category\";\r\nimport {SearchClient} from 'algoliasearch';\r\nimport {ResultsHeaderProps} from '../structure/results-header';\r\nimport {OptionsPanel, truncateItem} from '../shared';\r\nimport {BlogCategoriesRefinementList} from '../refinementLists';\r\nimport {useCallback, useEffect, useState} from 'preact/compat';\r\n\r\ntype BlogCategoryProps = {\r\n locale: string;\r\n query: string;\r\n searchClient: SearchClient;\r\n isSelected: boolean;\r\n onHitsChange: (hits: number) => void;\r\n nbHits: number;\r\n dateLocale: Locale;\r\n showFilters: boolean;\r\n header: Omit\r\n}\r\n\r\nconst BlogCategory: React.FC = (\r\n {\r\n locale,\r\n query,\r\n searchClient,\r\n isSelected,\r\n onHitsChange,\r\n nbHits,\r\n dateLocale,\r\n showFilters,\r\n header,\r\n }\r\n) => {\r\n const transformItems = useCallback((items) => {\r\n return items.map(item => truncateItem(item, 'text'));\r\n }, []);\r\n\r\n const [index] = useState(`blog-${locale === 'de' ? 'en' : locale}`);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default BlogCategory;\r\n","import * as React from 'preact/compat';\r\nimport Category from \"./category\";\r\nimport {SearchClient} from 'algoliasearch';\r\nimport {ResultsHeaderProps} from '../structure/results-header';\r\nimport {OptionsPanel, truncateItem} from '../shared';\r\nimport {\r\n DocumentTypesRefinementList,\r\n SoftwareRefinementList\r\n} from '../refinementLists';\r\nimport {useCallback, useEffect, useState} from 'preact/compat';\r\n\r\ntype DocumentCategoryProps = {\r\n locale: string;\r\n query: string;\r\n searchClient: SearchClient;\r\n isSelected: boolean;\r\n onHitsChange: (hits: number) => void;\r\n nbHits: number;\r\n dateLocale: Locale;\r\n showFilters: boolean;\r\n header: Omit\r\n}\r\n\r\nconst DocumentCategory: React.FC = (\r\n {\r\n locale,\r\n query,\r\n searchClient,\r\n isSelected,\r\n onHitsChange,\r\n nbHits,\r\n dateLocale,\r\n showFilters,\r\n header,\r\n }\r\n) => {\r\n const transformItems = useCallback((items) => {\r\n return items.map(item => truncateItem(item, 'description'));\r\n }, []);\r\n\r\n const [index, setIndex] = useState(`documents-${locale}`);\r\n useEffect(() => {\r\n setIndex(`documents-${locale}`);\r\n }, [locale]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default DocumentCategory;\r\n","import {useEffect} from 'preact/compat';\r\n\r\nexport const useOnClickOutside = (ref, handler) => {\r\n useEffect(\r\n () => {\r\n const listener = (event) => {\r\n if (!ref.current || event.composedPath().includes(ref.current)) {\r\n return;\r\n }\r\n\r\n handler(event);\r\n };\r\n\r\n document.addEventListener('mousedown', listener);\r\n document.addEventListener('touchstart', listener);\r\n\r\n return () => {\r\n document.removeEventListener('mousedown', listener);\r\n document.removeEventListener('touchstart', listener);\r\n };\r\n },\r\n [ref, handler]\r\n );\r\n}\r\n","import * as React from 'preact/compat';\r\nimport {useEffect, useRef, useState} from 'preact/compat';\r\nimport registerComponent from 'preact-custom-element';\r\n\r\nimport styles from '../../assets/scss/main.scss';\r\nimport {de, enUS, fr} from 'date-fns/locale';\r\nimport {ItemCategory} from './shared';\r\n\r\nimport translationsEN from '../../assets/i18n/en.json';\r\nimport translationsFR from '../../assets/i18n/fr.json';\r\nimport {IntlProvider} from 'preact-i18n';\r\nimport {SupportedLanguage} from './shared/types';\r\nimport algoliasearch from 'algoliasearch';\r\nimport ForumCategory from './category/forum-category';\r\nimport SearchHeader from './structure/search-header';\r\nimport {ResultsHeaderProps} from './structure/results-header';\r\nimport DocsCategory from './category/docs-category';\r\nimport BlogCategory from './category/blog-category';\r\nimport DocumentCategory from './category/document-category';\r\nimport {useOnClickOutside} from './hooks/click-outside-hook';\r\nimport {MultipleQueriesOptions, MultipleQueriesQuery} from '@algolia/client-search';\r\nimport {RequestOptions} from '@algolia/transporter';\r\n\r\nconst algoliaClient = algoliasearch('LNWCTDWZS0', '6e67c0e4bb7746718584f2575a584e33');\r\n\r\nconst searchClient: any = {\r\n search(queries: readonly MultipleQueriesQuery[], requestOptions?: RequestOptions & MultipleQueriesOptions) {\r\n if (queries[0].params.query.length < 3) {\r\n return Promise.resolve({\r\n results: queries.map(() => ({\r\n hits: [],\r\n nbHits: 0,\r\n nbPages: 0,\r\n page: 0,\r\n processingTimeMS: 0\r\n }))\r\n });\r\n }\r\n return algoliaClient.search(queries, requestOptions);\r\n },\r\n};\r\n\r\nexport type DevolutionsSearchProps = {\r\n query?: string;\r\n sortBy?: string;\r\n locale?: string;\r\n selectedCategory?: ItemCategory;\r\n opened?: string;\r\n darkTheme?: string;\r\n}\r\n\r\nexport const DevolutionsSearch: React.FC = (\r\n {\r\n query: queryProp,\r\n sortBy: sortByProp,\r\n locale: localeProp,\r\n selectedCategory: selectedCategoryProp,\r\n opened: openedProp,\r\n darkTheme: darkThemeProp,\r\n }) => {\r\n const ref = useRef();\r\n useOnClickOutside(ref, () => closeDialog());\r\n\r\n const allowedLocales = ['en', 'fr', 'de'];\r\n\r\n const [initialLoading, setInitialLoading] = useState(true);\r\n useEffect(() => {\r\n setTimeout(() => {\r\n setInitialLoading(false);\r\n }, 250);\r\n }, []);\r\n\r\n const parseDarkThemeProp = () => {\r\n try {\r\n return JSON.parse(darkThemeProp);\r\n } catch {\r\n return false;\r\n }\r\n };\r\n\r\n const [darkTheme, setDarkTheme] = useState(parseDarkThemeProp() || false);\r\n useEffect(() => {\r\n setDarkTheme(parseDarkThemeProp());\r\n }, [darkThemeProp]);\r\n\r\n const [sortBy, setSortBy] = useState(sortByProp);\r\n useEffect(() => {\r\n setSortBy(sortByProp);\r\n }, [sortByProp]);\r\n\r\n const parseOpenedProp = () => {\r\n try {\r\n return JSON.parse(openedProp);\r\n } catch {\r\n return false;\r\n }\r\n };\r\n\r\n const [opened, setOpened] = useState(parseOpenedProp() || false);\r\n useEffect(() => {\r\n setOpened(parseOpenedProp());\r\n }, [openedProp]);\r\n\r\n const [query, setQuery] = useState(queryProp || '');\r\n useEffect(() => {\r\n setTimeout(() => {\r\n setQuery(queryProp || '');\r\n }, initialLoading ? 500 : 0);\r\n }, [queryProp]);\r\n\r\n const [selectedCategory, setSelectedCategory] = useState(selectedCategoryProp || 'forum');\r\n useEffect(() => {\r\n setSelectedCategory(selectedCategoryProp || 'forum');\r\n }, [selectedCategoryProp]);\r\n\r\n const [locale, setLocale] = useState(localeProp || 'en');\r\n useEffect(() => {\r\n const trimmedLocale = localeProp ? localeProp.substring(0, 2) : 'en';\r\n const localeOrDefault = (allowedLocales.includes(trimmedLocale) ? trimmedLocale : 'en') as SupportedLanguage;\r\n\r\n setLocale(localeOrDefault);\r\n\r\n if (localeOrDefault === 'fr') {\r\n setTranslations(translationsFR as any);\r\n setDateLocale(fr);\r\n } else if (localeOrDefault === 'de') {\r\n setTranslations(translationsEN as any);\r\n setDateLocale(de);\r\n } else {\r\n setTranslations(translationsEN as any);\r\n setDateLocale(enUS);\r\n }\r\n\r\n }, [localeProp]);\r\n\r\n const [translations, setTranslations] = useState(translationsEN);\r\n const [dateLocale, setDateLocale] = useState(enUS);\r\n const [showFilters, setShowFilters] = useState(true);\r\n const [hits, setHits] = useState<{ [category: string]: number }>({\r\n 'forum': 0,\r\n 'docs': 0,\r\n 'blog': 0,\r\n 'documents': 0\r\n });\r\n\r\n const updateQuery = (query: string) => {\r\n if (!query || query.length < 3) {\r\n updateHits('forum', 0);\r\n updateHits('docs', 0);\r\n updateHits('blog', 0);\r\n updateHits('documents', 0);\r\n }\r\n setQuery(query || '');\r\n\r\n const event = new CustomEvent('devolutions-search:querychanged', {detail: {query}});\r\n document.dispatchEvent(event);\r\n };\r\n\r\n const updateHits = (category: ItemCategory, total: number) => setHits(state => ({\r\n ...state,\r\n [category]: total\r\n }));\r\n\r\n const toggleShowFilters = () => {\r\n setShowFilters(!showFilters);\r\n };\r\n\r\n const closeDialog = () => {\r\n if (!opened) {\r\n return;\r\n }\r\n\r\n setOpened(false);\r\n\r\n const event = new Event('devolutions-search:closed');\r\n document.dispatchEvent(event);\r\n };\r\n\r\n const sortChanged = (sortBy: string) => {\r\n const event = new CustomEvent('devolutions-search:sortbychanged', {detail: {sortBy}});\r\n document.dispatchEvent(event);\r\n };\r\n\r\n const commonHeader: Omit = {\r\n onToggleFilters: () => {\r\n toggleShowFilters();\r\n\r\n },\r\n showFilters: showFilters,\r\n hasFilters: true\r\n };\r\n\r\n return (\r\n \r\n \r\n
\r\n
\r\n \r\n updateHits('forum', nbHits)}\r\n isSelected={selectedCategory === 'forum'}\r\n nbHits={hits['forum']}\r\n showFilters={showFilters}\r\n header={commonHeader}\r\n onSortByChange={sortChanged}\r\n sortBy={sortBy}/>\r\n updateHits('docs', nbHits)}\r\n isSelected={selectedCategory === 'docs'}\r\n nbHits={hits['docs']}\r\n showFilters={showFilters}\r\n header={commonHeader}/>\r\n\r\n updateHits('blog', nbHits)}\r\n isSelected={selectedCategory === 'blog'}\r\n nbHits={hits['blog']}\r\n showFilters={showFilters}\r\n header={commonHeader}/>\r\n\r\n updateHits('documents', nbHits)}\r\n isSelected={selectedCategory === 'documents'}\r\n nbHits={hits['documents']}\r\n showFilters={showFilters}\r\n header={commonHeader}/>\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nregisterComponent(DevolutionsSearch, 'devolutions-search', ['query', 'sort-by', 'locale', 'selected-category', 'opened', 'dark-theme'], {shadow: true});\r\n"],"names":["n","l","u","i","o","f","e","c","s","a","parentNode","removeChild","h","t","r","arguments","length","children","call","defaultProps","v","type","props","key","ref","__k","__","__b","__e","__d","__c","__h","constructor","__v","vnode","y","current","p","d","this","context","_","indexOf","k","base","b","push","g","__r","debounceRendering","setTimeout","sort","some","__P","j","__n","ownerSVGElement","z","w","x","C","Array","isArray","m","A","N","M","appendChild","nextSibling","insertBefore","H","$","setProperty","test","style","cssText","replace","toLowerCase","slice","addEventListener","T","I","removeEventListener","removeAttribute","setAttribute","event","contextType","value","__E","prototype","render","O","sub","state","_sb","__s","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","forEach","componentWillUpdate","componentDidUpdate","getChildContext","getSnapshotBeforeUpdate","L","diffed","localName","nodeType","document","createTextNode","createElementNS","createElement","is","data","childNodes","dangerouslySetInnerHTML","attributes","name","__html","innerHTML","checked","unmount","componentWillUnmount","P","firstChild","S","q","B","Consumer","Provider","splice","getDerivedStateFromError","setState","componentDidCatch","forceUpdate","__H","__V","__N","filter","every","F","concat","useDebugValue","V","charCodeAt","__m","shift","requestAnimationFrame","clearTimeout","cancelAnimationFrame","E","displayName","isReactComponent","__f","isPureReactComponent","R","Symbol","for","$$typeof","map","count","only","toArray","then","U","__u","D","__a","default","__R","__O","pop","fallback","delete","revealOrder","size","W","containerInfo","get","Map","reverse","set","Z","textContent","Y","Object","defineProperty","configurable","writable","G","J","cancelBubble","K","defaultPrevented","persist","isPropagationStopped","isDefaultPrevented","nativeEvent","Q","X","class","nn","tn","multiple","selected","defaultValue","className","enumerable","en","ReactCurrentDispatcher","readContext","rn","un","bind","on","ln","apply","cn","fn","an","sn","hn","vn","dn","pn","mn","yn","_n","useState","useId","useReducer","useEffect","useLayoutEffect","useInsertionEffect","useTransition","useDeferredValue","useSyncExternalStore","startTransition","useRef","useImperativeHandle","useMemo","useCallback","useContext","version","Children","hydrate","unmountComponentAtNode","createPortal","createContext","createFactory","cloneElement","createRef","Fragment","isValidElement","findDOMNode","Component","PureComponent","memo","forwardRef","flushSync","unstable_batchedUpdates","StrictMode","Suspense","SuspenseList","lazy","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","require$$0","assign","hasOwnProperty","keys","CustomEvent","detail","bubbles","cancelable","dispatchEvent","_vdom","_props","slot","nodeName","_vdomComponent","hasAttribute","_root","toUpperCase","_listener","stopPropagation","preactCustomElement","Reflect","construct","HTMLElement","shadow","attachShadow","mode","create","connectedCallback","attributeChangedCallback","disconnectedCallback","observedAttributes","propTypes","customElements","define","tagName","styleInject","css","head","insertAt","getElementsByTagName","styleSheet","buildFormatLongFn","args","options","undefined","width","String","defaultWidth","formats","buildLocalizeFn","dirtyIndex","valuesArray","formattingValues","defaultFormattingWidth","_defaultWidth","_width","values","index","argumentCallback","buildMatchFn","string","matchedString","matchPattern","matchPatterns","defaultMatchWidth","matchResult","match","parsePatterns","defaultParseWidth","findIndex","pattern","findKey","valueCallback","rest","object","predicate","array","buildMatchPatternFn","parseResult","parsePattern","toInteger","dirtyNumber","NaN","number","Number","isNaN","Math","ceil","floor","requiredArgs","required","TypeError","_typeof","obj","iterator","toDate","argument","argStr","toString","Date","getTime","console","warn","Error","stack","addMilliseconds","dirtyDate","dirtyAmount","timestamp","amount","defaultOptions","getDefaultOptions","getTimezoneOffsetInMilliseconds","date","utcDate","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","setUTCFullYear","compareAsc","dirtyDateLeft","dirtyDateRight","dateLeft","dateRight","diff","millisecondsInMinute","millisecondsInHour","isDate","isValid","differenceInCalendarMonths","differenceInMilliseconds","roundingMap","round","trunc","defaultRoundingMethod","getRoundingMethod","method","endOfDay","setHours","endOfMonth","month","setFullYear","isLastDayOfMonth","differenceInMonths","sign","difference","abs","result","setDate","setMonth","isLastMonthNotFull","differenceInSeconds","roundingMethod","subMilliseconds","MILLISECONDS_IN_DAY","getUTCDayOfYear","startOfYearTimestamp","setUTCMonth","setUTCHours","startOfUTCISOWeek","day","getUTCDay","setUTCDate","getUTCDate","getUTCISOWeekYear","year","getUTCFullYear","fourthOfJanuaryOfNextYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","startOfUTCISOWeekYear","fourthOfJanuary","MILLISECONDS_IN_WEEK","getUTCISOWeek","startOfUTCWeek","weekStartsOn","_ref","_ref2","_ref3","_options$weekStartsOn","_options$locale","locale","_options$locale$optio","_defaultOptions$local","_defaultOptions$local2","RangeError","getUTCWeekYear","firstWeekOfThisYear","firstWeekContainsDate","_options$firstWeekCon","firstWeekOfNextYear","startOfUTCWeekYear","firstWeek","getUTCWeek","addLeadingZeros","targetLength","output","formatters","token","signedYear","getUTCMonth","dayPeriodEnumValue","getUTCHours","getUTCMinutes","getUTCSeconds","numberOfDigits","milliseconds","getUTCMilliseconds","pow","dayPeriodEnum","am","pm","midnight","noon","morning","afternoon","evening","night","localize","era","ordinalNumber","unit","lightFormatters","signedWeekYear","weekYear","quarter","week","isoWeek","dayOfYear","dayOfWeek","localDayOfWeek","isoDayOfWeek","dayPeriod","hours","_localize","timezoneOffset","_originalDate","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","originalDate","offset","dirtyDelimiter","absOffset","minutes","delimiter","formatters$1","dateLongFormatter","formatLong","timeLongFormatter","time","dateTimeLongFormatter","dateTimeFormat","datePattern","timePattern","dateTime","longFormatters","longFormatters$1","protectedDayOfYearTokens","protectedWeekYearTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","throwProtectedError","format","input","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","tokenValue","addSuffix","comparison","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","formatRelative","_date","_baseDate","_options","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","dayPeriodValues","formattingDayPeriodValues","rem100","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","parseInt","code","enUS","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","dirtyFormatStr","formatStr","defaultLocale","_ref4","_options$locale2","_options$locale2$opti","_ref5","_ref6","_ref7","_options$locale3","_options$locale3$opti","_defaultOptions$local3","_defaultOptions$local4","formatterOptions","substring","firstCharacter","longFormatter","join","cleanEscapedString","formatter","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","matched","target","property","cloneObject","MINUTES_IN_DAY","MINUTES_IN_ALMOST_TWO_DAYS","MINUTES_IN_MONTH","MINUTES_IN_TWO_MONTHS","dirtyBaseDate","months","years","localizeOptions","Boolean","seconds","offsetInSeconds","includeSeconds","days","nearestMonth","monthsSinceStartOfYear","formatDistanceToNow","distanceInWords","now","parseISO","additionalDigits","_options$additionalDi","dateStrings","splitDateString","parseDate","parseYearResult","parseYear","restDateString","parseTime","timezone","parseTimezone","patterns","dateTimeDelimiter","timeZoneDelimiter","dateRegex","timeRegex","timezoneRegex","dateString","timeString","split","substr","exec","century","regex","RegExp","captures","isWeekDate","parseDateUnit","validateWeekDate","dayOfISOWeekYear","validateDate","validateDayOfYearDate","max","validateTime","parseTimeUnit","parseFloat","timezoneString","validateTimezone","isoWeekYear","daysInMonths","isLeapYearIndex","_year","_hours","standalone","withPreposition","formattingMonthValues","de","form","includes","fr","dlv","nodeValue","trim","allowScripts","allowEvents","Function","visitor","reduce","Markup","__proto__","setReviver","wrap","markup","setComponents","components","reviver","onError","DOMParser","parseFromString","implementation","createHTMLDocument","body","contentWindow","open","write","close","error","lastChild","IntlContext","intl","defined","deepAssign","source","out","select","properties","val","objectWithoutProperties","exclude","URL_FLAG","IntlProvider","scope","mark","definition","dictionary","location","Child","IntlProviderWrapper","getWrappedComponent","EMPTY","template","fields","replacer","currentFields","field","parts","Text","translate","id","plural","delve","none","zero","singular","many","HighlightI18N","dictionaryKey","background","title","translateMapping","onlyTextNodes","def","Localizer","child","objectWithoutProperties$1","MarkupText","Html","html","withText","mapping","WithTextWrapper","translations","useText","getOwnPropertySymbols","getOwnPropertyDescriptor","getOwnPropertyDescriptors","defineProperties","propertyIsEnumerable","next","done","return","from","serializable","miss","Promise","resolve","JSON","stringify","parse","clear","x-algolia-api-key","x-algolia-application-id","headers","WithinHeaders","queryParameters","WithinQueryParameters","min","wait","all","encodeURIComponent","entries","timeout","cacheable","status","lastUpdate","protocol","url","accept","Any","message","transporterStackTrace","request","response","host","triesLeft","charAt","path","connectTimeout","timeouts","connect","responseTimeout","onSuccess","content","onRetry","isTimedOut","logger","info","hostsCache","onFail","requester","send","x-algolia-agent","userAgent","getTimeout","statelessHosts","requestsCache","responsesCache","hosts","read","Read","mappedRequestOptions","transporter","reject","Write","batch","hits","shouldStop","cursor","page","ge","methods","getPersonalizationStrategy","setPersonalizationStrategy","region","appId","apiKey","content-type","XMLHttpRequest","setRequestHeader","abort","onreadystatechange","readyState","OPENED","onerror","responseText","onload","debug","caches","catch","setItem","removeItem","add","segment","localStorage","window","getItem","search","mt","searchForFacetValues","yt","multipleBatch","pt","multipleGetObjects","ht","multipleQueries","copyIndex","copySettings","copySynonyms","copyRules","moveIndex","lt","listIndices","ft","getLogs","nt","listClusters","ct","multipleSearchForFacetValues","getApiKey","tt","addApiKey","listApiKeys","st","updateApiKey","xt","deleteApiKey","restoreApiKey","bt","assignUserID","assignUserIDs","getUserID","ot","searchUserIDs","Ot","listUserIDs","dt","getTopUserIDs","at","removeUserID","gt","hasPendingMappings","it","clearDictionaryEntries","deleteDictionaryEntries","getDictionarySettings","rt","getAppTask","et","replaceDictionaryEntries","vt","saveDictionaryEntries","Pt","searchDictionaryEntries","wt","setDictionarySettings","It","waitAppTask","jt","customRequest","initIndex","ut","Dt","Ct","findAnswers","Mt","getObject","Wt","getObjects","Qt","saveObject","te","saveObjects","ee","ie","ue","waitTask","setSettings","fe","getSettings","Lt","partialUpdateObject","_t","partialUpdateObjects","Xt","deleteObject","Ut","deleteObjects","zt","deleteBy","At","clearObjects","Nt","browseObjects","qt","getObjectPosition","Bt","findObject","Kt","exists","Ht","saveSynonym","ae","saveSynonyms","oe","getSynonym","Vt","searchSynonyms","ce","browseSynonyms","kt","deleteSynonym","Ft","clearSynonyms","Rt","replaceAllObjects","Yt","replaceAllSynonyms","$t","searchRules","se","getRule","Gt","deleteRule","Jt","saveRule","re","saveRules","ne","replaceAllRules","Zt","browseRules","St","clearRules","Et","initAnalytics","addABTest","getABTest","getABTests","stopABTest","deleteABTest","initPersonalization","initRecommendation","authMode","random","addAlgoliaAgent","clearCache","Tt","le","pe","exports","acl","cluster","users","clearExistingDictionaryEntries","requests","action","taskID","operation","destination","Rules","Settings","Synonyms","objectID","retrieveMappings","getClusters","indexName","params","facetName","facetQuery","query","hitsPerPage","_highlightResult","batchSize","taskIDs","objectIDs","forwardToReplicas","DeleteObject","queryLanguages","paginate","position","nbPages","attributesToRetrieve","getVersion","createIfNotExists","PartialUpdateObject","PartialUpdateObjectNoCreate","safe","autoGenerateObjectIDIfNotExist","clearExistingRules","clearExistingSynonyms","AddObject","UpdateObject","replaceExistingSynonyms","DeleteIndex","ClearIndex","version$3","clone","_merge","isObjectOrArrayOrFunction","sourceVal","targetVal","merge","merge_1","defaultsPure","reduceRight","acc","intersection","arr1","arr2","intersection_1","find","comparator","valToNumber","valToNumber_1","_objectWithoutPropertiesLoose","excluded","sourceKeys","omit","objectHasKeys","objectHasKeys_1","isValidUserToken","userToken","require$$1","require$$2","lib","addRefinement","refinementList","attribute","mod","isRefined","valueAsString","facetRefinement","removeRefinement","clearRefinement","toggleRefinement","refinementType","hasChanged","newRefinementList","facetList","refinementValue","containsRefinements","RefinementList","require$$3","require$$5","require$$6","require$$7","isEqualNumericRefinement","el","findArray","searchedValue","currentValue","SearchParameters","newParameters","_parseNumbers","self","facets","disjunctiveFacets","hierarchicalFacets","facetsRefinements","facetsExcludes","disjunctiveFacetsRefinements","numericRefinements","tagRefinements","hierarchicalFacetsRefinements","paramName","isKeyKnown","PARAMETERS","isValueDefined","partialState","numbers","parsedValue","insideBoundingBox","geoRect","operators","operator","parsedValues","vPrime","make","instance","facet","currentRefinement","rootPath","getHierarchicalRefinement","clearRefinements","toggleHierarchicalFacetRefinement","validate","currentState","parameters","tagFilters","numericFilters","patch","_clearNumericRefinements","setQueryParameters","clearTags","setIndex","setQuery","newQuery","setPage","newPage","setFacets","setDisjunctiveFacets","setHitsPerPage","setTypoTolerance","typoTolerance","addNumericRefinement","isNumericRefined","getConjunctiveRefinements","isConjunctiveFacet","getDisjunctiveRefinements","isDisjunctiveFacet","getExcludeRefinements","removeNumericRefinement","paramValue","op","getNumericRefinements","getNumericRefinement","newNumericRefinements","operatorList","outValues","addFacet","addDisjunctiveFacet","addHierarchicalFacet","hierarchicalFacet","isHierarchicalFacet","addFacetRefinement","addExcludeRefinement","addDisjunctiveFacetRefinement","addTagRefinement","tag","isTagRefined","modification","removeFacet","removeDisjunctiveFacet","removeHierarchicalFacet","removeFacetRefinement","removeExcludeRefinement","removeDisjunctiveFacetRefinement","removeTagRefinement","toggleFacetRefinement","toggleConjunctiveFacetRefinement","toggleDisjunctiveFacetRefinement","toggleExcludeFacetRefinement","separator","_getHierarchicalFacetSeparator","getHierarchicalFacetByName","lastIndexOf","addHierarchicalFacetRefinement","isHierarchicalFacetRefined","removeHierarchicalFacetRefinement","toggleTagRefinement","isFacetRefined","isExcludeRefined","isDisjunctiveFacetRefined","refinements","isOperatorDefined","isAttributeValueDefined","getRefinedDisjunctiveFacets","disjunctiveNumericRefinedFacets","getRefinedHierarchicalFacets","getUnrefinedDisjunctiveFacets","refinedFacets","managedParameters","getQueryParams","queryParams","setQueryParameter","parameter","nextWithNumbers","previousPlainObject","nextPlainObject","previous","isPreviousValueDefined","isNextValueDefined","resetPage","_getHierarchicalFacetSortBy","sortBy","_getHierarchicalRootPath","_getHierarchicalShowParentLevel","showParentLevel","hierarchicalFacetName","getHierarchicalFacetBreadcrumb","refinement","part","SearchParameters_1","compareAscending","valIsDefined","valIsNull","othIsDefined","othIsNull","orderBy","collection","iteratees","orders","criteria","iteratee","res","orderBy_1","compact","formatSort","defaults","defaultInstructions","sortInstruction","matchingDefault","defaultInstruction","escapeFacetValue","unescapeFacetValue","escapeFacetValue_1","generateHierarchicalTree_1","generateTrees","prepareHierarchicalFacetSortBy","fv","hierarchicalFacetResult","hierarchicalFacetIndex","hierarchicalFacetRefinement","hierarchicalSeparator","hierarchicalRootPath","hierarchicalShowParentLevel","rootExhaustive","facetResult","exhaustive","generateTreeFn","generateHierarchicalTree","results","escapedValue","hierarchicalTree","currentHierarchicalLevel","picked","parent","level","subtree","facetValue","tuple","onlyMatchingTree","parentPath","facetCount","require$$4","require$$8","getIndices","indices","idx","assignFacetStats","dest","facetStats","stats","findMatchingHierarchicalFacetFromAttributeName","hierarchicalAttributeName","SearchResults","mainSubResponse","_rawResults","processingTimeMS","sum","facetsIndices","disjunctiveFacetsIndices","nextDisjunctiveResult","mainFacets","facetKey","isFacetDisjunctive","isFacetConjunctive","facetValueObject","facetIndex","idxAttributeName","exhaustiveFacetsCount","facets_stats","disjunctiveFacet","dfacet","dataFromMainRequest","facetResults","attributeIndex","refinedFacet","defaultData","root","excludes","_state","extractNormalizedFacetValues","isExcluded","recSort","sortFn","node","names","sortedChildren","childNode","vanillaSortFn","order","sortViaFacetOrdering","facetValues","facetOrdering","orderedFacets","remainingFacets","reverseOrder","sortRemainingBy","item","ordering","getFacetOrdering","renderingContent","getFacetStatsIfAvailable","getRefinement","attributeName","resultsFacets","facetDeclaration","rootFacet","intermediateFacet","newFacet","getFacetByName","DEFAULT_SORT","getFacetValues","opts","getFacetStats","getRefinements","numericValue","SearchResults_1","EventEmitter","_events","_maxListeners","events","isFunction","arg","isNumber","isObject","isUndefined","inherits","ctor","superCtor","defaultMaxListeners","setMaxListeners","emit","handler","len","listeners","err","er","addListener","listener","newListener","warned","trace","once","fired","removeListener","list","removeAllListeners","ret","listenerCount","evlistener","emitter","inherits_1","DerivedHelper","mainHelper","main","lastResults","detach","detachDerivedHelper","getModifiedState","DerivedHelper_1","sortObject","localeCompare","curr","requestBuilder","_getQueries","queries","_getHitsSearchParams","_getDisjunctiveFacetSearchParams","filtersMap","hasHierarchicalFacetFilter","filteredFacetFilters","facetFilters","facetFilter","filtered","filterValue","_getHitsHierarchicalFacetsAttributes","_getFacetFilters","_getNumericFilters","_getTagFilters","additionalParams","hierarchicalRootLevel","analytics","clickAnalytics","_getDisjunctiveHierarchicalFacetAttribute","vs","orFilters","attributesIndex","attributeToRefine","allAttributes","newAttributes","hierarchicalRefinement","rootLevel","parentLevel","getSearchForFacetQuery","maxFacetHits","stateForSearchForFacetValues","searchForFacetSearchParameters","requestBuilder_1","require$$9","require$$10","AlgoliaSearchHelper","client","setClient","_queryId","_lastQueryIdReceived","derivedHelpers","_currentNbQueries","setCurrentPage","_change","isPageReset","getCurrentPage","_search","onlyWithDerivedHelpers","searchOnlyWithDerivedHelpers","getQuery","searchOnce","cb","tempState","_originalResponse","derivedHelper","derivedState","attributesForPrediction","nbHits","errorMessage","userState","isDisjunctive","clientHasSFFV","clientHasInitIndex","algoliaQuery","searchForFacetValuesPromise","facetHits","addDisjunctiveRefine","addRefine","addFacetExclusion","addExclude","addTag","removeDisjunctiveRefine","removeRefine","removeFacetExclusion","removeExclude","removeTag","toggleFacetExclusion","toggleExclude","toggleRefine","toggleTag","nextPage","previousPage","newState","overrideStateWithoutTriggeringChangeEvent","hasRefinements","isDisjunctiveRefined","hasTag","hasTagRefinements","getIndex","getPage","getTags","states","mainQueries","derivedQueries","queriesCount","helper","derivedStateQueries","queryId","_dispatchAlgoliaResponse","_dispatchAlgoliaError","specificResults","formattedResponse","containsRefinement","_hasDisjunctiveRefinements","disjunctiveRefinements","newClient","getClient","derive","pos","hasPendingRequests","algoliasearch_helper","algoliasearchHelper","algoliasearchHelper_1","noop","getObjectType","checkRendering","rendering","usage","htmlEntities","&","<",">","\"","'","regexUnescapedHtml","regexHasUnescapedHtml","escape","character","htmlCharacters","&","<",">",""","'","regexEscapedHtml","regexHasEscapedHtml","unescape","getTag","isObjectLike","isPlainObject","getPrototypeOf","proto","_extends","ownKeys","enumerableOnly","symbols","sym","_objectSpread","_defineProperty","TAG_PLACEHOLDER","highlightPreTag","highlightPostTag","TAG_REPLACEMENT","replaceTagsAndEscape","recursiveEscape","escapeHits","__escaped","hit","_snippetResult","escapeFacets","highlighted","concatHighlightedParts","isHighlighted","createSendEventForFacet","instantSearchInstance","attr","widgetType","_len","_key","eventType","_args$","eventName","sendEventToInsights","insightsMethod","payload","filters","serializePayload","btoa","chunk","arr","chunkSize","chunks","buildPayloads","queryID","hitsChunks","objectIDsByChunk","positionsByChunk","methodName","isSearchStalled","hitsArray","removeEscapedFromHits","__queryID","__position","positions","createSendEventForHits","createBindEventForHits","_len2","_key2","payloads","isIndexWidget","widget","$$type","setIndexHelperState","finalUiState","indexWidget","nextIndexUiState","getIndexId","getHelper","getWidgetSearchParameters","uiState","getWidgets","nextMicroTask","defer","callback","progress","cancelled","cancel","createDocumentationLink","_ref$connector","connector","createDocumentationMessageGenerator","widgets","links","items","getHighlightedParts","highlightedValue","splitByPreTag","firstValue","elements","splitByPostTag","hasAlphanumeric","getHighlightFromSiblings","isNextHighlighted","_parts","isPreviousHighlighted","_parts2","getPropertyByPath","addAbsolutePosition","addQueryID","isPrimitive","isEqual","first","second","_i","_Object$keys","uniq","_objectWithoutProperties","sourceSymbolKeys","mergeWithRest","left","right","ruleContexts","mergeFacets","mergeDisjunctiveFacets","mergeHierarchicalFacets","nextFacets","mergeTagRefinements","mergeFacetRefinements","mergeFacetsExcludes","mergeDisjunctiveFacetsRefinements","mergeNumericRefinements","mergeHierarchicalFacetsRefinements","mergeRuleContexts","mergeSearchParameters","hierarchicalFacetsRefinementsMerged","hierarchicalFacetsMerged","tagRefinementsMerged","numericRefinementsMerged","disjunctiveFacetsRefinementsMerged","facetsExcludesMerged","facetRefinementsMerged","disjunctiveFacetsMerged","ruleContextsMerged","facetsMerged","createInitArgs","renderState","templatesConfig","createURL","scopedResults","searchMetadata","createRenderArgs","getResults","getScopedResults","resolveSearchParameters","getParent","reverseHighlightedParts","safelyRunOnBrowser","withUsage","getInitialSearchParameters","widgetParams","searchParameters","connectConfigure","renderFn","unmountFn","connectorState","init","initOptions","getWidgetRenderState","renderOptions","dispose","getRenderState","widgetRenderState","configure","_renderState$configur","refine","actualState","nextSearchParameters","getWidgetUiState","connectConfigure$1","_arrayWithHoles","_iterableToArrayLimit","_s","_e","_arr","_d","_arrayLikeToArray","_unsupportedIterableToArray","minLen","arrayLikeToArray","_nonIterableRest","_slicedToArray","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","objectWithoutPropertiesLoose","has","dequal","foo","bar","compare","createSearchResults","_state$hitsPerPage","_state$query","_state$page","exhaustiveNbHits","__isArtificial","getIndexSearchResults","scopedResult","fallbackResults","indexId","invariant","condition","IndexContext","useIndexContext","InstantSearchContext","useInstantSearchContext","InstantSearchServerContext","useInstantSearchServerContext","useStableValue","_useState2","stableValue","setStableValue","useIsomorphicLayoutEffect","useWidget","parentIndex","shouldSsr","prevPropsRef","prevWidgetRef","cleanupTimerRef","shouldAddWidgetEarly","previousWidget","cleanup","_preventWidgetCleanup","removeWidgets","addWidgets","_excluded","_excluded2","useConnector","additionalWidgetProperties","serverContext","stableProps","stableAdditionalWidgetProperties","shouldSetStateRef","previousRenderStateRef","isFirstRender","_widget$getWidgetRend","_widget$getWidgetSear","_getIndexSearchResult","useConfigure","Configure","$$widgetType","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","iter","privateHelperSetState","_uiState","getLocalWidgetsUiState","widgetStateOptions","getWidgetState","getLocalWidgetsSearchParameters","widgetSearchParametersOptions","initialSearchParameters","resetPageFromWidgets","indexWidgets","widgetHelper","resolveScopedResultsFromWidgets","_widgetParams$indexId","localWidgets","localUiState","localInstantSearchInstance","localParent","getIndexName","widgetParent","nextState","_createURL","_this","storeRenderState","_initialUiState","scheduleSearch","_this2","_this3","onStateChange","mainIndex","setUiState","searchWithoutTriggeringOnStateChange","indexInitialResults","_instantSearchInstanc","_initialResults","scheduleStalledRender","scheduleRender","onInternalStateChange","_this4","_this5","previousUiState","innerIndex","refreshUiState","index$1","parentIndexName","useForceUpdate","InstantSearchSSRContext","useInstantSearchSSRContext","NAMESPACE","component","componentName","descendantName","modifierName","descendent","modifier","suit","highlight","_ref$highlightedTagNa","highlightedTagName","_ref$cssClasses","cssClasses","_ref2$value","attributeValue","reverseHighlight","snippet","reverseSnippet","writeDataAttributes","serializedPayload","insights","formatNumber","numberLocale","toLocaleString","hoganHelpers","_formatNumber","_highlight","_reverseHighlight","_snippet","_reverseSnippet","_JSON$parse","_insights","getIndexStateWithoutConfigure","simpleStateMapping","stateToRoute","routeToState","routeState","percentTwenties","Format","RFC1738","RFC3986","hexTable","compactQueue","queue","prop","compacted","arrayToObject","plainObjects","allowPrototypes","mergeTarget","targetItem","decode","str","decoder","charset","strWithoutPlus","decodeURIComponent","encode","defaultEncoder","kind","$0","refs","isRegExp","isBuffer","combine","maybeMap","mapped","utils","arrayPrefixGenerators","brackets","prefix","comma","repeat","pushToArray","valueOrArray","toISO","toISOString","defaultFormat","addQueryPrefix","allowDots","charsetSentinel","encoder","encodeValuesOnly","serializeDate","skipNulls","strictNullHandling","isNonNullishPrimitive","generateArrayPrefix","keyValue","valuesJoined","objKeys","keyPrefix","normalizeStringifyOptions","stringify_1","arrayFormat","joined","arrayLimit","depth","ignoreQueryPrefix","interpretNumericEntities","parameterLimit","parseArrays","numberStr","fromCharCode","parseArrayValue","isoSentinel","parseValues","cleanStr","limit","Infinity","skipIndex","bracketEqualsPos","encodedVal","parseObject","chain","valuesParsed","leaf","cleanRoot","0","parseKeys","givenKey","normalizeParseOptions","tempObj","newObj","_classCallCheck","Constructor","_defineProperties","descriptor","_createClass","protoProps","staticProps","setWindowTitle","BrowserHistory","windowTitle","_ref$writeDelay","writeDelay","parseURL","getLocation","writeTimer","latestAcknowledgedHistory","history","qsModule","qs","shouldWrite","pushState","inPopState","_onPopState","isDisposed","lastPushWasByISAfterDispose","href","historyRouter","_ref7$createURL","_ref7$parseURL","_ref7$writeDelay","_ref7$getLocation","_ref8","hostname","_location$port","port","pathname","hash","queryString","portWithPrefix","_ref9","_ref10","createRouterMiddleware","_props$router","router","_props$stateMapping","stateMapping","route","lastRouteState","initialUiState","subscribe","onUpdate","started","unsubscribe","extractPayload","isMetadataEnabled","_window$navigator","navigator","_window$navigator$use","createMetadataMiddleware","payloadContainer","refNode","querySelector","ua","_ua","remove","_inherits","subClass","superClass","_setPrototypeOf","setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","NewTarget","Super","_getPrototypeOf","_possibleConstructorReturn","_assertThisInitialized","ReferenceError","sham","Proxy","defaultCreateURL","InstantSearch","_super","shouldResetStatus","_searchStalledTimer","nextUiState","middleware","_options$indexName","_options$initialUiSta","_options$routing","routing","searchFunction","_options$stalledSearc","stalledSearchDelay","_options$searchClient","searchClient","_options$insightsClie","insightsClient","_options$onStateChang","helpers","createHelpers","compileOptions","_stalledSearchDelay","_searchFunction","use","newMiddlewareList","newMiddleware","creator","middlewareToUnuse","fakeClient","originalScheduleSearch","_mainHelperSearch","mainIndexHelper","searchFunctionHelper","callOnStateChange","InstantSearch$2","inst","getSnapshot","useSyncExternalStoreShim_production_min","defaultUserAgents","ReactVersion","serverUserAgent","useInstantSearchApi","serverState","initialResults","searchRef","addAlgoliaAgents","start","notifyServer","prevProps","_props$stalledSearchD","userAgents","React","getStateWithoutPage","getInMemoryCache","cachedHits","cachedState","extractHitsFromCachedHits","connectInfiniteHits","showPrevious","showMore","sendEvent","bindEvent","_ref4$escapeHTML","escapeHTML","_ref4$transformItems","transformItems","_ref4$cache","cache","getFirstReceivedPage","pages","getLastReceivedPage","_state$page2","currentPageHits","infiniteHits","isFirstPage","_page","_state$page3","hitsWithAbsolutePositionAndQueryID","transformedHits","isLastPage","stateWithoutPage","widgetSearchParameters","connectInfiniteHits$1","useInfiniteHits","connectRefinementList","_ref$operator","_ref$limit","_ref$showMore","_ref$showMoreLimit","showMoreLimit","_ref$sortBy","_ref$escapeFacetValue","escapeFacetValues","_ref$transformItems","formatItems","label","lastResultsFromMainSearch","triggerRefine","lastItemsFromMainSearch","hasExhaustiveItems","isShowingMore","toggleShowMore","cachedToggleShowMore","getLimit","searchFacetValues","tags","searchResults","normalizedFacetValues","canToggleShowMore","canRefine","isFromSearch","maxValuesPerFacetConfig","maxValuesPerFacet","currentLimit","canShowLess","canShowMore","searchForItems","withoutMaxValuesPerFacet","withoutRefinements","withFacetConfiguration","currentMaxValuesPerFacet","nextMaxValuesPerFacet","withMaxValuesPerFacet","connectRefinementList$1","useRefinementList","connectSortBy","currentIndex","initialIndex","hasNoResults","connectSortBy$1","useSortBy","useSearchResults","searchIndex","setSearchResults","handleRender","useSearchState","getUiState","setLocalUiState","indexUiState","setIndexUiState","prevUiState","useInstantSearch","catchError","_useSearchState","_useSearchResults","middlewares","unuse","refresh","__createBinding","k2","__setModuleDefault","__importStar","__esModule","FilterBold","SvgFilterBold","xmlns","height","viewBox","_default","ResultsHeader","category","hasFilters","onToggleFilters","React.createElement","onClick","IconFilterBold","StateResults","onResultChange","isFirstPass","setIsFirstPass","DEFAULT_ROOT_MARGIN","DEFAULT_THRESHOLD","useIntersectionObserver","rootMargin","_args$rootMargin","threshold","_args$threshold","nodeRef","rootRef","observerRef","_useState","entry","setEntry","unobserve","currentObserver","disconnect","observe","observer","IntersectionObserver","newEntry","initializeObserver","refCallback","rootRefCallback","rootNode","useTrackVisibility","_useIntersectionObser","isVisible","_result$entry","isIntersecting","wasEverVisible","setWasEverVisible","DEFAULT_DELAY_IN_MS","useInfiniteScroll","loading","hasNextPage","onLoadMore","disabled","_ref$delayInMs","delayInMs","_useTrackVisibility","_useTrackVisibility$","shouldLoadMore","timer","Windows","SvgWindows","Apple","SvgApple","Android","SvgAndroid","Ios","SvgIos","Linux","SvgLinux","LogoRdm","SvgLogoRdm","LogoPvm","SvgLogoPvm","LogoDps","SvgLogoDps","LogoHub","SvgLogoHub","LogoDevolutions","SvgLogoDevolutions","LogoMapper","getClassNameFromSoftwareOrPlatform","software","icon","IconWindows","IconApple","IconAndroid","IconIos","IconLinux","IconLogoRdm","IconLogoPvm","IconLogoDps","IconLogoHub","IconLogoDevolutions","OptionsPanel","truncateItem","truncate","trail","__webpack_require__","moduleId","module","installedModules","loaded","modules","_Highlighter","_Highlighter2","_interopRequireDefault","Highlighter","_highlightWordsCore","_propTypes2","_react","_memoizeOne2","highlightClassNames","highlightStyles","_ref$activeClassName","activeClassName","_ref$activeIndex","activeIndex","activeStyle","autoEscape","_ref$caseSensitive","caseSensitive","findChunks","_ref$highlightClassName","highlightClassName","_ref$highlightStyle","highlightStyle","_ref$highlightTag","highlightTag","sanitize","searchWords","textToHighlight","_ref$unhighlightTag","unhighlightTag","_ref$unhighlightClassName","unhighlightClassName","unhighlightStyle","findAll","HighlightTag","highlightIndex","memoizedLowercaseProps","text","end","highlightClass","isActive","bool","func","oneOfType","arrayOf","instanceOf","isRequired","_utils","combineChunks","fillInChunks","_ref$findChunks","defaultFindChunks","chunksToHighlight","totalLength","processedChunks","nextChunk","prevChunk","endIndex","_ref3$sanitize","identity","searchWord","lastIndex","append","allChunks","process","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","run","runClearTimeout","marker","Item","nextTick","browser","env","argv","versions","off","prependListener","prependOnceListener","binding","cwd","chdir","dir","umask","emptyFunction","warning","ReactPropTypesSecret","checkPropTypes","throwOnDirectAccess","ITERATOR_SYMBOL","FAUX_ITERATOR_SYMBOL","ANONYMOUS","ReactPropTypes","createPrimitiveTypeChecker","symbol","createChainableTypeChecker","thatReturnsNull","typeChecker","propName","propFullName","PropTypeError","propValue","getPropType","element","expectedClass","expectedClassName","isNode","objectOf","propType","oneOf","expectedValues","valuesString","arrayOfTypeCheckers","checker","getPreciseType","shape","shapeTypes","exact","checkType","secret","chainedCheckType","expectedType","iteratorFn","maybeIterable","step","PropTypes","makeEmptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsThis","thatReturnsArgument","argIndex","framesToPop","propIsEnumerable","test1","getOwnPropertyNames","test2","test3","order2","letter","to","typeSpecs","getStack","shim","getShim","simpleIsEqual","resultFn","isNewArgEqualToLast","newArg","lastArgs","lastThis","lastResult","calledOnce","newArgs","DocumentsHit","getPdfUrl","hasImage","src","imageUrl","alt","description","_a","_b","products","product","Topic","SvgTopic","View","SvgView","EntrySampleComment","SvgEntrySampleComment","EntryOtp","SvgEntryOtp","ForumHit","dateLocale","IconTopic","section","published_date","platform","avatar","username","IconView","view_count","IconEntrySampleComment","replies_count","IconEntryOtp","Book","SvgBook","BlogHit","thumbnail","IconBook","categories","publishedDate","excerpt","modified","DocsHit","doc","InfiniteHits","queryProp","setSearchWords","sentryRef","getTemplateByCategory","Category","onHitsChange","facetingAfterDistinct","isSelected","showFilters","header","advancedSyntax","distinct","attributesToHighlight","SortBy","defaultIndex","onSortByChange","relevanceText","relevance","dateText","sortByMappings","isValidSortBy","selectedValue","setSelectedValue","onChange","option","SoftwareRefinementList","refinementAttribute","React.Fragment","PlatformRefinementList","DocumentTypesRefinementList","BlogCategoriesRefinementList","DocsDocRefinementList","ForumCategory","HeaderLink","leading","trailing","maxWait","isPending","flush","Search","SvgSearch","Close","SvgClose","CloseWindow","SvgCloseWindow","SearchHeader","modalOpened","selectedCategory","onSelectCategory","onQueryChange","onClose","searchInput","debounced","focus","useDebouncedCallback","placeholder","IconClose","IconSearch","spellCheck","IconCloseWindow","DocsCategory","BlogCategory","DocumentCategory","useOnClickOutside","composedPath","algoliaClient","algoliasearch","requestOptions","DevolutionsSearch","sortByProp","localeProp","selectedCategoryProp","opened","openedProp","darkTheme","darkThemeProp","closeDialog","allowedLocales","initialLoading","setInitialLoading","parseDarkThemeProp","setDarkTheme","setSortBy","parseOpenedProp","setOpened","setSelectedCategory","setLocale","setTranslations","trimmedLocale","localeOrDefault","translationsFR","setDateLocale","translationsEN","setShowFilters","setHits","forum","docs","blog","documents","updateHits","total","Event","commonHeader","styles","registerComponent"],"mappings":"AAAA,IAAIA,IAAEC,IAAEC,IAAEC,IAAIC,IAAIC,IAAE,GAAGC,IAAE,GAAGC,IAAE,oEAAoE,SAASC,IAAER,EAAEC,GAAG,IAAI,IAAIC,KAAKD,EAAED,EAAEE,GAAGD,EAAEC,GAAG,OAAOF,CAAC,CAAC,SAASS,IAAET,GAAG,IAAIC,EAAED,EAAEU,WAAWT,GAAGA,EAAEU,YAAYX,CAAC,CAAC,CAAC,SAASY,IAAEX,EAAEC,EAAEC,GAAG,IAAIU,EAAET,EAAEU,EAAET,EAAE,GAAG,IAAIS,KAAKZ,EAAE,OAAOY,EAAED,EAAEX,EAAEY,GAAG,OAAOA,EAAEV,EAAEF,EAAEY,GAAGT,EAAES,GAAGZ,EAAEY,GAAG,GAAoB,EAAjBC,UAAUC,SAAWX,EAAEY,SAA0B,EAAjBF,UAAUC,OAAShB,IAAEkB,KAAKH,UAAU,CAAC,EAAEZ,GAAG,YAAY,OAAOF,GAAG,MAAMA,EAAEkB,aAAa,IAAIL,KAAKb,EAAEkB,aAAa,KAAA,IAASd,EAAES,KAAKT,EAAES,GAAGb,EAAEkB,aAAaL,IAAI,OAAOM,IAAEnB,EAAEI,EAAEQ,EAAET,EAAE,IAAI,CAAC,CAAC,SAASgB,IAAEpB,EAAEG,EAAEU,EAAET,EAAEU,GAAOT,EAAE,CAACgB,KAAKrB,EAAEsB,MAAMnB,EAAEoB,IAAIV,EAAEW,IAAIpB,EAAEqB,IAAI,KAAKC,GAAG,KAAKC,IAAI,EAAEC,IAAI,KAAKC,IAAI,KAAA,EAAOC,IAAI,KAAKC,IAAI,KAAKC,YAAY,KAAA,EAAOC,IAAI,MAAMnB,EAAE,EAAEZ,IAAEY,CAAC,EAAE,OAAO,MAAMA,GAAG,MAAMb,IAAEiC,OAAOjC,IAAEiC,MAAM7B,CAAC,EAAEA,CAAC,CAAC,SAAS8B,MAAI,MAAM,CAACC,QAAQ,IAAI,CAAC,CAAC,SAASC,IAAErC,GAAG,OAAOA,EAAEiB,QAAQ,CAAC,SAASqB,IAAEtC,EAAEC,GAAGsC,KAAKjB,MAAMtB,EAAEuC,KAAKC,QAAQvC,CAAC,CAAC,SAASwC,IAAEzC,EAAEC,GAAG,GAAG,MAAMA,EAAE,OAAOD,EAAE0B,GAAGe,IAAEzC,EAAE0B,GAAG1B,EAAE0B,GAAGD,IAAIiB,QAAQ1C,CAAC,EAAE,CAAC,EAAE,KAAK,IAAI,IAAIE,EAAED,EAAED,EAAEyB,IAAIT,OAAOf,CAAC,GAAG,GAAG,OAAOC,EAAEF,EAAEyB,IAAIxB,KAAK,MAAMC,EAAE0B,IAAI,OAAO1B,EAAE0B,IAAI,MAAM,YAAY,OAAO5B,EAAEqB,KAAKoB,IAAEzC,CAAC,EAAE,IAAI,CAAC,SAAS2C,IAAE3C,GAAG,IAAIC,EAAEC,EAAE,GAAG,OAAOF,EAAEA,EAAE0B,KAAK,MAAM1B,EAAE8B,IAAI,CAAC,IAAI9B,EAAE4B,IAAI5B,EAAE8B,IAAIc,KAAK,KAAK3C,EAAE,EAAEA,EAAED,EAAEyB,IAAIT,OAAOf,CAAC,GAAG,GAAG,OAAOC,EAAEF,EAAEyB,IAAIxB,KAAK,MAAMC,EAAE0B,IAAI,CAAC5B,EAAE4B,IAAI5B,EAAE8B,IAAIc,KAAK1C,EAAE0B,IAAI,KAAK,CAAC,OAAOe,IAAE3C,CAAC,CAAC,CAAC,CAAC,SAAS6C,IAAE7C,IAAKA,EAAE6B,MAAM7B,EAAE6B,IAAI,CAAA,EAAKhB,CAAAA,IAAEiC,KAAK9C,CAAC,IAAI+C,IAAEC,GAAG,KAAI5C,MAAIH,IAAEgD,qBAAsB7C,IAAEH,IAAEgD,oBAAoBC,YAAYH,GAAC,CAAC,CAAC,SAASA,MAAI,IAAI,IAAI/C,EAAE+C,IAAEC,IAAInC,IAAEG,QAAQhB,EAAEa,IAAEsC,KAAK,SAASnD,EAAEC,GAAG,OAAOD,EAAEiC,IAAIN,IAAI1B,EAAEgC,IAAIN,GAAG,CAAC,EAAEd,IAAE,GAAGb,EAAEoD,KAAK,SAASpD,GAAG,IAAME,EAAEC,EAAEU,EAAET,EAAEU,EAAEd,EAAE6B,MAAMzB,GAAGS,GAAGZ,EAAED,GAAGiC,KAAKL,IAAKd,EAAEb,EAAEoD,OAAOnD,EAAE,IAAIC,EAAEK,IAAE,GAAGK,CAAC,GAAGoB,IAAIpB,EAAEoB,IAAI,EAAEqB,IAAExC,EAAED,EAAEV,EAAEF,EAAEsD,IAAI,KAAA,IAASzC,EAAE0C,gBAAgB,MAAM3C,EAAEkB,IAAI,CAAC3B,GAAG,KAAKF,EAAE,MAAME,EAAEqC,IAAE5B,CAAC,EAAET,EAAES,EAAEkB,GAAG,EAAE0B,IAAEvD,EAAEW,CAAC,EAAEA,EAAEe,KAAKxB,IAAGuC,IAAE9B,CAAC,CAAG,CAAC,CAAC,CAAC,SAAS6C,IAAE1D,EAAEC,EAAEC,EAAEC,EAAEU,EAAET,EAAEU,EAAEP,EAAEC,EAAEC,GAAG,IAAIG,EAAEuB,EAAEG,EAAEK,EAAEE,EAAEE,EAAEW,EAAEC,EAAExD,GAAGA,EAAEsB,KAAKnB,IAAEsD,EAAED,EAAE3C,OAAO,IAAId,EAAEuB,IAAI,GAAGb,EAAE,EAAEA,EAAEX,EAAEe,OAAOJ,CAAC,GAAG,GAAG,OAAO+B,EAAEzC,EAAEuB,IAAIb,GAAG,OAAO+B,EAAE1C,EAAEW,KAAK,WAAW,OAAO+B,EAAE,KAAK,UAAU,OAAOA,GAAG,UAAU,OAAOA,GAAG,UAAU,OAAOA,EAAEvB,IAAE,KAAKuB,EAAE,KAAK,KAAKA,CAAC,EAAEkB,MAAMC,QAAQnB,CAAC,EAAEvB,IAAEiB,IAAE,CAACpB,SAAS0B,CAAC,EAAE,KAAK,KAAK,IAAI,EAAQ,EAANA,EAAEhB,IAAMP,IAAEuB,EAAEtB,KAAKsB,EAAErB,MAAMqB,EAAEpB,IAAIoB,EAAEnB,KAAU,KAAKmB,EAAEV,GAAG,EAAEU,GAAG,CAAC,GAAGA,EAAEjB,GAAGxB,EAAEyC,EAAEhB,IAAIzB,EAAEyB,IAAI,EAAE,QAAQW,EAAEqB,EAAE/C,KAAK0B,GAAGK,EAAEpB,KAAKe,EAAEf,KAAKoB,EAAEtB,OAAOiB,EAAEjB,KAAKsC,EAAE/C,GAAG,KAAA,OAAY,IAAIuB,EAAE,EAAEA,EAAEyB,EAAEzB,CAAC,GAAG,CAAC,IAAIG,EAAEqB,EAAExB,KAAKQ,EAAEpB,KAAKe,EAAEf,KAAKoB,EAAEtB,OAAOiB,EAAEjB,KAAK,CAACsC,EAAExB,GAAG,KAAA,EAAO,KAAK,CAACG,EAAE,IAAI,CAACgB,IAAEtD,EAAE2C,EAAEL,EAAEA,GAAGjC,IAAEQ,EAAET,EAAEU,EAAEP,EAAEC,EAAEC,CAAC,EAAEoC,EAAEF,EAAEf,KAAKO,EAAEQ,EAAEnB,MAAMc,EAAEd,KAAKW,IAAIuB,EAAAA,GAAM,GAAIpB,EAAEd,KAAKkC,EAAEZ,KAAKR,EAAEd,IAAI,KAAKmB,CAAC,EAAEe,EAAEZ,KAAKX,EAAEQ,EAAEb,KAAKe,EAAEF,CAAC,GAAG,MAAME,GAAG,MAAME,IAAIA,EAAEF,GAAG,YAAY,OAAOF,EAAEtB,MAAMsB,EAAElB,MAAMa,EAAEb,IAAIkB,EAAEd,IAAIrB,EAAEuD,IAAEpB,EAAEnC,EAAER,CAAC,EAAEQ,EAAEwD,IAAEhE,EAAE2C,EAAEL,EAAEqB,EAAEd,EAAErC,CAAC,EAAE,YAAY,OAAON,EAAEmB,OAAOnB,EAAE2B,IAAIrB,IAAIA,GAAG8B,EAAEV,KAAKpB,GAAGA,EAAEE,YAAYV,IAAIQ,EAAEiC,IAAEH,CAAC,EAAE,CAAC,IAAIpC,EAAE0B,IAAImB,EAAEnC,EAAEgD,EAAEhD,CAAC,IAAI,MAAM+C,EAAE/C,IAAIqD,IAAEN,EAAE/C,GAAG+C,EAAE/C,EAAE,EAAE,GAAG8C,EAAE,IAAI9C,EAAE,EAAEA,EAAE8C,EAAE1C,OAAOJ,CAAC,GAAGsD,IAAER,EAAE9C,GAAG8C,EAAE,EAAE9C,GAAG8C,EAAE,EAAE9C,EAAE,CAAC,CAAC,SAASmD,IAAE/D,EAAEC,EAAEC,GAAG,IAAI,IAAIC,EAAEU,EAAEb,EAAEyB,IAAIrB,EAAE,EAAES,GAAGT,EAAES,EAAEG,OAAOZ,CAAC,IAAID,EAAEU,EAAET,MAAMD,EAAEuB,GAAG1B,EAAEC,EAAE,YAAY,OAAOE,EAAEkB,KAAK0C,IAAE5D,EAAEF,EAAEC,CAAC,EAAE8D,IAAE9D,EAAEC,EAAEA,EAAEU,EAAEV,EAAEyB,IAAI3B,CAAC,GAAG,OAAOA,CAAC,CAAC,SAAS0D,IAAE3D,EAAEC,GAAG,OAAOA,EAAEA,GAAG,GAAG,MAAMD,GAAG,WAAW,OAAOA,IAAI6D,MAAMC,QAAQ9D,CAAC,EAAEA,EAAEoD,KAAK,SAASpD,GAAG2D,IAAE3D,EAAEC,CAAC,CAAC,CAAC,EAAEA,EAAE6C,KAAK9C,CAAC,GAAGC,CAAC,CAAC,SAAS+D,IAAEhE,EAAEC,EAAEC,EAAEC,EAAEU,EAAET,GAAG,IAAIU,EAAET,EAAEC,EAAE,GAAG,KAAA,IAASL,EAAE4B,IAAIf,EAAEb,EAAE4B,IAAI5B,EAAE4B,IAAI,KAAA,OAAY,GAAG,MAAM3B,GAAGW,GAAGT,GAAG,MAAMS,EAAEH,WAAWV,EAAE,GAAG,MAAMI,GAAGA,EAAEM,aAAaV,EAAEA,EAAEmE,YAAYtD,CAAC,EAAEC,EAAE,SAAS,CAAC,IAAIT,EAAED,EAAEE,EAAE,GAAGD,EAAEA,EAAE+D,cAAc9D,EAAEH,EAAEa,OAAOV,GAAG,EAAE,GAAGD,GAAGQ,EAAE,MAAMb,EAAEA,EAAEqE,aAAaxD,EAAET,CAAC,EAAEU,EAAEV,CAAC,CAAC,OAAO,KAAA,IAASU,EAAEA,EAAED,EAAEuD,WAAW,CAAC,SAASR,IAAE5D,EAAEC,EAAEC,EAAEC,EAAEU,GAAS,IAAN,IAAIT,KAAWF,EAAE,aAAaE,GAAG,QAAQA,GAAGA,KAAKH,GAAGqE,IAAEtE,EAAEI,EAAE,KAAKF,EAAEE,GAAGD,CAAC,EAAE,IAAIC,KAAKH,EAAEY,GAAG,YAAY,OAAOZ,EAAEG,IAAI,aAAaA,GAAG,QAAQA,GAAG,UAAUA,GAAG,YAAYA,GAAGF,EAAEE,KAAKH,EAAEG,IAAIkE,IAAEtE,EAAEI,EAAEH,EAAEG,GAAGF,EAAEE,GAAGD,CAAC,CAAC,CAAC,SAASoE,IAAEvE,EAAEC,EAAEC,GAAG,MAAMD,EAAE,GAAGD,EAAEwE,YAAYvE,EAAEC,CAAC,EAAEF,EAAEC,GAAG,MAAMC,EAAE,GAAG,UAAU,OAAOA,GAAGK,IAAEkE,KAAKxE,CAAC,EAAEC,EAAEA,EAAE,IAAI,CAAC,SAASoE,IAAEtE,EAAEC,EAAEC,EAAEC,EAAEU,GAAG,IAAIT,EAAEJ,EAAE,GAAG,UAAUC,EAAE,GAAG,UAAU,OAAOC,EAAEF,EAAE0E,MAAMC,QAAQzE,MAAM,CAAC,GAAG,UAAU,OAAOC,IAAIH,EAAE0E,MAAMC,QAAQxE,EAAE,IAAIA,EAAE,IAAIF,KAAKE,EAAED,GAAGD,KAAKC,GAAGqE,IAAEvE,EAAE0E,MAAMzE,EAAE,EAAE,EAAE,GAAGC,EAAE,IAAID,KAAKC,EAAEC,GAAGD,EAAED,KAAKE,EAAEF,IAAIsE,IAAEvE,EAAE0E,MAAMzE,EAAEC,EAAED,EAAE,CAAC,MAAM,GAAG,MAAMA,EAAE,IAAI,MAAMA,EAAE,GAAGG,EAAEH,KAAKA,EAAEA,EAAE2E,QAAQ,WAAW,EAAE,GAAG3E,GAAEA,EAAE4E,gBAAgB7E,EAAEC,EAAE4E,YAAW,EAAY5E,GAAT6E,MAAM,CAAC,EAAa9E,EAAEC,IAAID,EAAEC,EAAE,KAAID,EAAEC,EAAEA,EAAEG,GAAGF,GAAIC,GAAGH,EAAE+E,iBAAiB9E,EAAEG,EAAE4E,IAAEC,IAAE7E,CAAC,EAAEJ,EAAEkF,oBAAoBjF,EAAEG,EAAE4E,IAAEC,IAAE7E,CAAC,OAAO,GAAG,4BAA4BH,EAAE,CAAC,GAAGY,EAAEZ,EAAEA,EAAE2E,QAAQ,cAAc,GAAG,EAAEA,QAAQ,SAAS,GAAG,OAAO,GAAG,SAAS3E,GAAG,SAASA,GAAG,SAASA,GAAG,aAAaA,GAAG,aAAaA,GAAGA,KAAKD,EAAE,IAAIA,EAAEC,GAAG,MAAMC,EAAE,GAAGA,EAAE,MAAMF,CAAY,CAAV,MAAMA,IAAI,YAAY,OAAOE,IAAI,MAAMA,GAAG,CAAA,IAAKA,GAAG,CAAC,GAAGD,EAAEyC,QAAQ,GAAG,EAAE1C,EAAEmF,gBAAgBlF,CAAC,EAAED,EAAEoF,aAAanF,EAAEC,CAAC,EAAE,CAAC,CAAC,SAAS+E,IAAEjF,GAAGuC,KAAKtC,EAAED,EAAEqB,KAAK,CAAA,GAAIpB,IAAEoF,MAAMpF,IAAEoF,MAAMrF,CAAC,EAAEA,CAAC,CAAC,CAAC,SAASgF,IAAEhF,GAAGuC,KAAKtC,EAAED,EAAEqB,KAAK,CAAA,GAAIpB,IAAEoF,MAAMpF,IAAEoF,MAAMrF,CAAC,EAAEA,CAAC,CAAC,CAAC,SAASsD,IAAEtD,EAAEE,EAAEC,EAAEU,EAAET,EAAEU,EAAET,EAAEC,EAAEC,GAAG,IAAIE,EAAEG,EAAEQ,EAAEe,EAAEM,EAAEE,EAAEE,EAAEE,EAAEgB,EAAEJ,EAAEK,EAAEJ,EAAEW,EAAED,EAAEpE,EAAEmB,KAAK,GAAG,KAAA,IAASnB,EAAE8B,YAAY,OAAO,KAAK,MAAM7B,EAAE4B,MAAMxB,EAAEJ,EAAE4B,IAAIzB,EAAEJ,EAAE0B,IAAIzB,EAAEyB,IAAI1B,EAAE6B,IAAI,KAAKjB,EAAE,CAACR,KAAKG,EAAER,IAAE0B,MAAMlB,EAAEP,CAAC,EAAE,IAAIF,EAAE,GAAG,YAAY,OAAOsE,EAAE,CAACvB,EAAE7C,EAAEoB,MAAMyC,GAAGtD,EAAE6D,EAAEgB,cAAczE,EAAEJ,EAAEqB,KAAK6B,EAAElD,EAAEsD,EAAEA,EAAEzC,MAAMiE,MAAM9E,EAAEiB,GAAGb,EAAEV,EAAE2B,IAAIe,GAAGjC,EAAEV,EAAE4B,IAAI3B,EAAE2B,KAAKJ,GAAGd,EAAE4E,KAAK,cAAclB,GAAGA,EAAEmB,UAAUC,OAAOxF,EAAE4B,IAAIlB,EAAE,IAAI0D,EAAEvB,EAAEY,CAAC,GAAGzD,EAAE4B,IAAIlB,EAAE,IAAI0B,IAAES,EAAEY,CAAC,EAAE/C,EAAEoB,YAAYsC,EAAE1D,EAAE8E,OAAOC,KAAG5B,GAAGA,EAAE6B,IAAIhF,CAAC,EAAEA,EAAEU,MAAMyB,EAAEnC,EAAEiF,QAAQjF,EAAEiF,MAAM,IAAIjF,EAAE4B,QAAQmB,EAAE/C,EAAE2C,IAAI1C,EAAEO,EAAER,EAAEiB,IAAI,CAAA,EAAGjB,EAAEmB,IAAI,GAAGnB,EAAEkF,IAAI,IAAI,MAAMlF,EAAEmF,MAAMnF,EAAEmF,IAAInF,EAAEiF,OAAO,MAAMvB,EAAE0B,2BAA2BpF,EAAEmF,KAAKnF,EAAEiF,QAAQjF,EAAEmF,IAAIvF,IAAE,GAAGI,EAAEmF,GAAG,GAAGvF,IAAEI,EAAEmF,IAAIzB,EAAE0B,yBAAyBjD,EAAEnC,EAAEmF,GAAG,CAAC,GAAG5D,EAAEvB,EAAEU,MAAMmB,EAAE7B,EAAEiF,MAAM,IAAIpF,EAAE,EAAEA,EAAEG,EAAEkF,IAAI9E,OAAOP,CAAC,GAAGG,EAAEmB,IAAIe,KAAKlC,EAAEkF,IAAIrF,EAAE,EAAEG,EAAEkF,IAAI,GAAG,GAAG1E,EAAE,MAAMkD,EAAE0B,0BAA0B,MAAMpF,EAAEqF,oBAAoBrF,EAAEqF,mBAAoB,EAAC,MAAMrF,EAAEsF,mBAAmBtF,EAAEmB,IAAIe,KAAKlC,EAAEsF,iBAAiB,MAAM,CAAC,GAAG,MAAM5B,EAAE0B,0BAA0BjD,IAAIZ,GAAG,MAAMvB,EAAEuF,2BAA2BvF,EAAEuF,0BAA0BpD,EAAEY,CAAC,EAAE,CAAC/C,EAAEgB,KAAK,MAAMhB,EAAEwF,uBAAuB,CAAA,IAAKxF,EAAEwF,sBAAsBrD,EAAEnC,EAAEmF,IAAIpC,CAAC,GAAGzD,EAAE+B,MAAM9B,EAAE8B,IAAI,CAACrB,EAAEU,MAAMyB,EAAEnC,EAAEiF,MAAMjF,EAAEmF,IAAI7F,EAAE+B,MAAM9B,EAAE8B,MAAMrB,EAAEiB,IAAI,CAAA,IAAIjB,EAAEqB,IAAI/B,GAAI0B,IAAIzB,EAAEyB,IAAI1B,EAAEuB,IAAItB,EAAEsB,IAAIvB,EAAEuB,IAAI4E,QAAQ,SAASrG,GAAGA,IAAIA,EAAE0B,GAAGxB,EAAE,CAAC,EAAEU,EAAEmB,IAAIf,QAAQX,EAAEyC,KAAKlC,CAAC,EAAE,MAAMZ,CAAC,CAAC,MAAMY,EAAE0F,qBAAqB1F,EAAE0F,oBAAoBvD,EAAEnC,EAAEmF,IAAIpC,CAAC,EAAE,MAAM/C,EAAE2F,oBAAoB3F,EAAEmB,IAAIe,KAAK,WAAWlC,EAAE2F,mBAAmBpE,EAAEM,EAAEE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG/B,EAAE4B,QAAQmB,EAAE/C,EAAEU,MAAMyB,EAAEnC,EAAEqB,IAAI/B,EAAEU,EAAEyC,IAAIrD,EAAEgE,EAAE/D,IAAE+C,IAAIY,EAAE,EAAE,cAAcU,GAAGA,EAAEmB,UAAUC,OAAO9E,EAAEiF,MAAMjF,EAAEmF,IAAInF,EAAEiB,IAAI,CAAA,EAAGmC,GAAGA,EAAE9D,CAAC,EAAEO,EAAEG,EAAE8E,OAAO9E,EAAEU,MAAMV,EAAEiF,MAAMjF,EAAE4B,OAAO,OAAO,KAAG5B,EAAEiB,IAAI,CAAA,EAAGmC,GAAGA,EAAE9D,CAAC,EAAEO,EAAEG,EAAE8E,OAAO9E,EAAEU,MAAMV,EAAEiF,MAAMjF,EAAE4B,OAAO,EAAE5B,EAAEiF,MAAMjF,EAAEmF,IAAUnF,EAAEiB,KAAK,EAAE+B,EAAE,KAAIhD,EAAEiF,MAAMjF,EAAEmF,IAAI,MAAMnF,EAAE4F,kBAAkB3F,EAAEL,IAAEA,IAAE,GAAGK,CAAC,EAAED,EAAE4F,gBAAe,CAAE,GAAGpF,GAAG,MAAMR,EAAE6F,0BAA0B9D,EAAE/B,EAAE6F,wBAAwBtE,EAAEM,CAAC,GAAG8B,EAAE,MAAM9D,GAAGA,EAAEY,OAAOgB,KAAG,MAAM5B,EAAEc,IAAId,EAAEa,MAAML,SAASR,EAAEiD,IAAE1D,EAAE6D,MAAMC,QAAQS,CAAC,EAAEA,EAAE,CAACA,GAAGrE,EAAEC,EAAEU,EAAET,EAAEU,EAAET,EAAEC,EAAEC,CAAC,EAAEK,EAAEgC,KAAK1C,EAAE0B,IAAI1B,EAAE6B,IAAI,KAAKnB,EAAEmB,IAAIf,QAAQX,EAAEyC,KAAKlC,CAAC,EAAEiC,IAAIjC,EAAE4E,IAAI5E,EAAEc,GAAG,MAAMd,EAAEgB,IAAI,CAAA,CAAE,MAAM,MAAMd,GAAGZ,EAAE+B,MAAM9B,EAAE8B,KAAK/B,EAAEuB,IAAItB,EAAEsB,IAAIvB,EAAE0B,IAAIzB,EAAEyB,KAAK1B,EAAE0B,IAAI8E,IAAEvG,EAAEyB,IAAI1B,EAAEC,EAAEU,EAAET,EAAEU,EAAET,EAAEE,CAAC,GAAGE,EAAER,IAAE0G,SAASlG,EAAEP,CAAC,CAAyF,CAAvF,MAAMF,GAAGE,EAAE+B,IAAI,KAAM1B,CAAAA,GAAG,MAAMO,IAAKZ,EAAE0B,IAAItB,EAAEJ,EAAE6B,IAAI,CAAC,CAACxB,EAAEO,EAAEA,EAAE4B,QAAQpC,CAAC,GAAG,MAAML,IAAE2B,IAAI5B,EAAEE,EAAEC,CAAC,CAAC,CAAC,CAAC,SAASsD,IAAEzD,EAAEE,GAAGD,IAAE6B,KAAK7B,IAAE6B,IAAI5B,EAAEF,CAAC,EAAEA,EAAEoD,KAAK,SAASlD,GAAG,IAAIF,EAAEE,EAAE6B,IAAI7B,EAAE6B,IAAI,GAAG/B,EAAEoD,KAAK,SAASpD,GAAGA,EAAEkB,KAAKhB,CAAC,CAAC,CAAC,CAAyB,CAAvB,MAAMF,GAAGC,IAAE2B,IAAI5B,EAAEE,EAAE+B,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAASyE,IAAEzG,EAAEC,EAAEC,EAAEU,EAAET,EAAEU,EAAER,EAAEC,GAAG,IAAIC,EAAEI,EAAEQ,EAAEe,EAAEhC,EAAEmB,MAAMe,EAAEnC,EAAEoB,MAAMgB,EAAEpC,EAAEmB,KAAKsB,EAAE,EAAE,GAAG,QAAQL,IAAIlC,EAAE,CAAA,GAAI,MAAMU,EAAE,KAAK6B,EAAE7B,EAAEE,OAAO2B,CAAC,GAAG,IAAInC,EAAEM,EAAE6B,KAAK,iBAAiBnC,GAAG,CAAC,CAAC8B,IAAIA,EAAE9B,EAAEoG,YAAYtE,EAAE,IAAI9B,EAAEqG,UAAU,CAAC5G,EAAEO,EAAEM,EAAE6B,GAAG,KAAK,KAAK,CAAC,GAAG,MAAM1C,EAAE,CAAC,GAAG,OAAOqC,EAAE,OAAOwE,SAASC,eAAe1E,CAAC,EAAEpC,EAAEG,EAAE0G,SAASE,gBAAgB,6BAA6B1E,CAAC,EAAEwE,SAASG,cAAc3E,EAAED,EAAE6E,IAAI7E,CAAC,EAAEvB,EAAE,KAAKP,EAAE,CAAA,CAAE,CAAC,GAAG,OAAO+B,EAAEH,IAAIE,GAAG9B,GAAGN,EAAEkH,OAAO9E,IAAIpC,EAAEkH,KAAK9E,OAAO,CAAC,GAAGvB,EAAEA,GAAGd,IAAEkB,KAAKjB,EAAEmH,UAAU,EAAExG,GAAGuB,EAAEhC,EAAEmB,OAAOjB,KAAGgH,wBAAwBjG,EAAEiB,EAAEgF,wBAAwB,CAAC9G,EAAE,CAAC,GAAG,MAAMO,EAAE,IAAIqB,EAAE,GAAGQ,EAAE,EAAEA,EAAE1C,EAAEqH,WAAWtG,OAAO2B,CAAC,GAAGR,EAAElC,EAAEqH,WAAW3E,GAAG4E,MAAMtH,EAAEqH,WAAW3E,GAAG4C,MAAOnE,CAAAA,GAAGR,CAAAA,GAAKQ,IAAIR,GAAGQ,EAAEoG,QAAQ5G,EAAE4G,QAAQpG,EAAEoG,SAASvH,EAAEwH,aAAaxH,EAAEwH,UAAUrG,GAAGA,EAAEoG,QAAQ,GAAI,CAAC,GAAG5D,IAAE3D,EAAEoC,EAAEF,EAAE/B,EAAEG,CAAC,EAAEa,EAAElB,EAAEuB,IAAI,QAAQ,GAAGkB,EAAEzC,EAAEoB,MAAML,SAASyC,IAAEzD,EAAE4D,MAAMC,QAAQnB,CAAC,EAAEA,EAAE,CAACA,GAAGzC,EAAEC,EAAEU,EAAET,GAAG,kBAAkBkC,EAAExB,EAAER,EAAEQ,EAAEA,EAAE,GAAGX,EAAEsB,KAAKgB,IAAEtC,EAAE,CAAC,EAAEI,CAAC,EAAE,MAAMO,EAAE,IAAI6B,EAAE7B,EAAEE,OAAO2B,CAAC,IAAI,MAAM7B,EAAE6B,IAAIlC,IAAEK,EAAE6B,EAAE,EAAEpC,IAAI,UAAU8B,GAAG,KAAA,KAAUM,EAAEN,EAAEkD,SAAS5C,IAAI1C,EAAEsF,OAAO,aAAajD,GAAG,CAACK,GAAG,WAAWL,GAAGK,IAAIR,EAAEoD,QAAQjB,IAAErE,EAAE,QAAQ0C,EAAER,EAAEoD,MAAM,CAAA,CAAE,EAAE,YAAYlD,GAAG,KAAA,KAAUM,EAAEN,EAAEqF,UAAU/E,IAAI1C,EAAEyH,SAASpD,IAAErE,EAAE,UAAU0C,EAAER,EAAEuF,QAAQ,CAAA,CAAE,EAAE,CAAC,OAAOzH,CAAC,CAAC,SAASiE,IAAElE,EAAEE,EAAEC,GAAG,IAAI,YAAY,OAAOH,EAAEA,EAAEE,CAAC,EAAEF,EAAEoC,QAAQlC,CAAqB,CAAnB,MAAMF,GAAGC,IAAE2B,IAAI5B,EAAEG,CAAC,CAAC,CAAC,CAAC,SAAS8D,IAAEjE,EAAEE,EAAEC,GAAG,IAAIU,EAAET,EAAE,GAAGH,IAAE0H,SAAS1H,IAAE0H,QAAQ3H,CAAC,EAAE,EAACa,EAAEb,EAAEwB,MAAOX,EAAEuB,SAASvB,EAAEuB,UAAUpC,EAAE4B,KAAKsC,IAAErD,EAAE,KAAKX,CAAC,EAAG,OAAOW,EAAEb,EAAE8B,KAAK,CAAC,GAAGjB,EAAE+G,qBAAqB,IAAI/G,EAAE+G,qBAAoB,CAAsB,CAAnB,MAAM5H,GAAGC,IAAE2B,IAAI5B,EAAEE,CAAC,CAAC,CAACW,EAAE+B,KAAK/B,EAAEwC,IAAI,KAAKrD,EAAE8B,IAAI,KAAA,CAAM,CAAC,GAAGjB,EAAEb,EAAEyB,IAAI,IAAIrB,EAAE,EAAEA,EAAES,EAAEG,OAAOZ,CAAC,GAAGS,EAAET,IAAI6D,IAAEpD,EAAET,GAAGF,EAAEC,GAAG,YAAY,OAAOH,EAAEqB,IAAI,EAAElB,GAAG,MAAMH,EAAE4B,KAAKnB,IAAET,EAAE4B,GAAG,EAAE5B,EAAE0B,GAAG1B,EAAE4B,IAAI5B,EAAE6B,IAAI,KAAA,CAAM,CAAC,SAAS8D,IAAE3F,EAAEC,EAAEC,GAAG,OAAOqC,KAAKP,YAAYhC,EAAEE,CAAC,CAAC,CAAC,SAAS2H,IAAE3H,EAAEC,EAAEU,GAAG,IAAIT,EAAEU,EAAER,EAAEL,IAAEyB,IAAIzB,IAAEyB,GAAGxB,EAAEC,CAAC,EAAEW,GAAGV,EAAE,YAAY,OAAOS,GAAG,KAAKA,GAAGA,EAAEY,KAAKtB,EAAEsB,IAAInB,EAAE,GAAGgD,IAAEnD,EAAED,GAAG,CAACE,GAAGS,GAAGV,GAAGsB,IAAIb,IAAEyB,IAAE,KAAK,CAACnC,EAAE,EAAEY,GAAGT,IAAEA,IAAE,KAAA,IAASF,EAAEqD,gBAAgB,CAACpD,GAAGS,EAAE,CAACA,GAAGC,CAAAA,GAAOX,EAAE2H,WAAW9H,IAAEkB,KAAKf,EAAEiH,UAAU,EAAE,KAAK9G,EAAE,CAACF,GAAGS,EAAEA,EAAEC,EAAEA,EAAEc,IAAIzB,EAAE2H,WAAW1H,CAAC,EAAEqD,IAAEnD,EAAEJ,CAAC,CAAC,CAAC,SAAS6H,EAAE/H,EAAEC,GAAG4H,IAAE7H,EAAEC,EAAE8H,CAAC,CAAC,CAAC,SAASC,IAAE/H,EAAEC,EAAEC,GAAG,IAAIU,EAAET,EAAEU,EAAET,EAAEG,IAAE,GAAGP,EAAEqB,KAAK,EAAE,IAAIR,KAAKZ,EAAE,OAAOY,EAAED,EAAEX,EAAEY,GAAG,OAAOA,EAAEV,EAAEF,EAAEY,GAAGT,EAAES,GAAGZ,EAAEY,GAAG,OAAwB,EAAjBC,UAAUC,SAAWX,EAAEY,SAA0B,EAAjBF,UAAUC,OAAShB,IAAEkB,KAAKH,UAAU,CAAC,EAAEZ,GAAGiB,IAAEnB,EAAEoB,KAAKhB,EAAEQ,GAAGZ,EAAEsB,IAAInB,GAAGH,EAAEuB,IAAI,IAAI,CAAC,CAAC,SAASyG,IAAEjI,EAAEC,GAAOC,EAAE,CAAC4B,IAAI7B,EAAE,OAAOa,GAAC,GAAGY,GAAG1B,EAAEkI,SAAS,SAASlI,EAAEC,GAAG,OAAOD,EAAEiB,SAAShB,CAAC,CAAC,EAAEkI,SAAS,SAASnI,GAAG,IAAIE,EAAEC,EAAE,OAAOoC,KAAKiE,kBAAkBtG,EAAE,KAAIC,EAAE,IAAIF,GAAGsC,MAAUiE,gBAAgB,WAAW,OAAOrG,CAAC,EAAEoC,KAAK6D,sBAAsB,SAASpG,GAAGuC,KAAKjB,MAAMiE,QAAQvF,EAAEuF,OAAOrF,EAAEkD,KAAKP,GAAC,CAAC,EAAEN,KAAKqD,IAAI,SAAS5F,GAAGE,EAAE4C,KAAK9C,CAAC,EAAE,IAAIC,EAAED,EAAE4H,qBAAqB5H,EAAE4H,qBAAqB,WAAW1H,EAAEkI,OAAOlI,EAAEwC,QAAQ1C,CAAC,EAAE,CAAC,EAAEC,GAAGA,EAAEiB,KAAKlB,CAAC,CAAC,CAAC,GAAGA,EAAEiB,QAAQ,CAAC,EAAE,OAAOf,EAAEiI,SAASzG,GAAGxB,EAAEgI,SAAS5C,YAAYpF,CAAC,CAACF,IAAEM,IAAEwE,MAAM7E,IAAE,CAAC2B,IAAI,SAAS5B,EAAEC,EAAEC,EAAEC,GAAG,IAAI,IAAIU,EAAET,EAAEU,EAAEb,EAAEA,EAAEyB,IAAI,IAAIb,EAAEZ,EAAE6B,MAAM,CAACjB,EAAEa,GAAG,IAAI,IAAItB,EAAES,EAAEmB,cAAc,MAAM5B,EAAEiI,2BAA2BxH,EAAEyH,SAASlI,EAAEiI,yBAAyBrI,CAAC,CAAC,EAAEc,EAAED,EAAEgB,KAAK,MAAMhB,EAAE0H,oBAAoB1H,EAAE0H,kBAAkBvI,EAAEG,GAAG,EAAE,EAAEW,EAAED,EAAEgB,KAAKf,EAAE,OAAOD,EAAE2E,IAAI3E,CAAc,CAAZ,MAAMZ,GAAGD,EAAEC,CAAC,CAAC,MAAMD,CAAC,CAAC,EAAEE,IAAE,EAAEC,IAAE,SAASH,GAAG,OAAO,MAAMA,GAAG,KAAA,IAASA,EAAEgC,WAAW,EAAEM,IAAEmD,UAAU6C,SAAS,SAAStI,EAAEC,GAAG,IAAMC,EAAE,MAAMqC,KAAKwD,KAAKxD,KAAKwD,MAAMxD,KAAKsD,MAAMtD,KAAKwD,IAAIxD,KAAKwD,IAAIvF,IAAE,GAAG+B,KAAKsD,KAAK,GAAyB7F,EAAvB,YAAY,OAAOA,EAAMA,EAAEQ,IAAE,GAAGN,CAAC,EAAEqC,KAAKjB,KAAK,EAAGtB,IAAGQ,IAAEN,EAAEF,CAAC,EAAE,MAAMA,GAAGuC,KAAKN,MAAMhC,GAAGsC,KAAKuD,IAAIhD,KAAK7C,CAAC,EAAE4C,IAAEN,IAAI,EAAE,EAAED,IAAEmD,UAAU+C,YAAY,SAASxI,GAAGuC,KAAKN,MAAMM,KAAKX,IAAI,CAAA,EAAG5B,GAAGuC,KAAKR,IAAIe,KAAK9C,CAAC,EAAE6C,IAAEN,IAAI,EAAE,EAAED,IAAEmD,UAAUC,OAAOrD,QCA9kTvB,IAAEZ,EAAEC,IAAEC,IDA0kTS,IAAE,GAAWC,IAARiC,IAAEC,IAAI,qPCAnlT3C,EAAE,EAAEE,IAAE,GAAGD,IAAE,GAAGG,IAAET,IAAE2B,IAAIP,EAAEpB,IAAEgD,IAAI/C,IAAED,IAAE2G,OAAO5C,EAAE/D,IAAE8B,IAAIQ,EAAEtC,IAAE2H,QAAQ,SAAStF,IAAExB,EAAEC,GAAGd,IAAE+B,KAAK/B,IAAE+B,IAAI7B,EAAEW,EAAER,GAAGS,CAAC,EAAET,EAAE,EAAMF,EAAED,EAAEuI,MAAMvI,EAAEuI,IAAI,CAAC/G,GAAG,GAAGK,IAAI,EAAE,GAAG,OAAOlB,GAAGV,EAAEuB,GAAGV,QAAQb,EAAEuB,GAAGoB,KAAK,CAAC4F,IAAIpI,GAAC,CAAC,EAAEH,EAAEuB,GAAGb,EAAE,CAAC,SAASsB,EAAEnC,GAAG,OAAOK,EAAE,EAAEO,EAAEgD,IAAE5D,CAAC,CAAC,CAAC,SAASY,EAAEZ,EAAEa,EAAEV,GAAG,IAAwLE,EAApLD,EAAEiC,IAAEvB,GAAC,GAAG,CAAC,EAA2hB,OAAthBV,EAAES,EAAEb,EAAGI,EAAE0B,MAAM1B,EAAEsB,GAAG,CAACvB,EAAEA,EAAEU,CAAC,EAAE+C,IAAE,KAAA,EAAO/C,CAAC,EAAE,SAASb,GAAG,IAAIa,GAAET,EAAEuI,KAAavI,EAAEsB,IAAL,GAAWZ,EAAEV,EAAES,EAAEA,EAAEb,CAAC,EAAEa,IAAIC,IAAIV,EAAEuI,IAAI,CAAC7H,EAAEV,EAAEsB,GAAG,IAAItB,EAAE0B,IAAIwG,SAAS,EAAE,EAAE,IAAGlI,EAAE0B,IAAI5B,GAAKA,KAAIA,EAAEA,EAAE,CAAA,EAAOG,EAAEH,EAAEkG,sBAAsBlG,EAAEkG,sBAAsB,SAASpG,EAAEa,EAAEC,GAAG,IAA2BZ,EAAwHC,EAAnJ,MAAIC,CAAAA,EAAE0B,IAAI2G,OAAiBvI,EAAEE,EAAE0B,IAAI2G,IAAI/G,GAAGkH,OAAO,SAAS5I,GAAG,OAAOA,EAAE8B,GAAG,CAAC,GAAO+G,MAAM,SAAS7I,GAAG,MAAM,CAACA,EAAE2I,GAAG,CAAC,IAAmCxI,EAAE,CAAA,EAAUD,EAAEmG,QAAQ,SAASrG,GAAG,IAAca,EAAXb,EAAE2I,MAAS9H,EAAEb,EAAE0B,GAAG,GAAG1B,EAAE0B,GAAG1B,EAAE2I,IAAI3I,EAAE2I,IAAI,KAAA,EAAO9H,IAAIb,EAAE0B,GAAG,MAAKvB,EAAE,CAAA,EAAI,CAAC,EAAE,EAAE,CAACA,GAAGC,EAAE0B,IAAIR,QAAQtB,OAAK,CAACK,GAAGA,EAAEa,KAAKqB,KAAKvC,EAAEa,EAAEC,CAAC,EAAE,GAASV,EAAEuI,KAAKvI,EAAEsB,EAAE,CAAC,SAASlB,IAAEK,EAAEV,GAAG,IAAIC,EAAEiC,IAAEvB,GAAC,GAAG,CAAC,EAAE,CAACd,IAAE+F,KAAKkC,IAAE7H,EAAEqI,IAAItI,CAAC,IAAIC,EAAEsB,GAAGb,EAAET,EAAED,EAAEA,EAAED,EAAEuI,IAAI1G,IAAIe,KAAK1C,CAAC,EAAE,CAAC,SAASqC,EAAE5B,EAAEV,GAAG,IAAIC,EAAEiC,IAAEvB,GAAC,GAAG,CAAC,EAAE,CAACd,IAAE+F,KAAKkC,IAAE7H,EAAEqI,IAAItI,CAAC,IAAIC,EAAEsB,GAAGb,EAAET,EAAED,EAAEA,EAAED,EAAE6B,IAAIe,KAAK1C,CAAC,EAAE,CAAC,SAAS4D,IAAEhE,GAAG,OAAOK,EAAE,EAAE2E,IAAE,WAAW,MAAM,CAAC5C,QAAQpC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS8I,IAAE9I,EAAEa,EAAEC,GAAGT,EAAE,EAAEoC,EAAE,WAAW,MAAM,YAAY,OAAOzC,GAAGA,EAAEa,EAAC,CAAE,EAAE,WAAW,OAAOb,EAAE,IAAI,CAAC,GAAGA,GAAGA,EAAEoC,QAAQvB,EAAG,EAAC,WAAW,OAAOb,EAAEoC,QAAQ,IAAI,GAAG,KAAA,CAAM,EAAE,MAAMtB,EAAEA,EAAEA,EAAEiI,OAAO/I,CAAC,CAAC,CAAC,CAAC,SAASgF,IAAEhF,EAAEa,GAAG,IAAIX,EAAEmC,IAAEvB,GAAC,GAAG,CAAC,EAAE,OAAOmH,IAAE/H,EAAEuI,IAAI5H,CAAC,GAAGX,EAAEwI,IAAI1I,EAAC,EAAGE,EAAEC,EAAEU,EAAEX,EAAE6B,IAAI/B,EAAEE,EAAEwI,KAAKxI,EAAEwB,EAAE,CAAC,SAASsG,IAAEhI,EAAEa,GAAG,OAAOR,EAAE,EAAE2E,IAAE,WAAW,OAAOhF,CAAC,EAAEa,CAAC,CAAC,CAAC,SAAS8C,IAAE3D,GAAG,IAAIa,EAAEX,EAAEsC,QAAQxC,EAAE8B,KAAK3B,EAAEkC,IAAEvB,GAAC,GAAG,CAAC,EAAE,OAAOX,EAAEI,EAAEP,EAAEa,GAAG,MAAMV,EAAEuB,KAAKvB,EAAEuB,GAAG,CAAA,EAAGb,EAAE+E,IAAI1F,CAAC,GAAGW,EAAES,MAAMiE,OAAOvF,EAAE0B,EAAE,CAAC,SAASmG,IAAEhH,EAAEC,GAAGd,IAAEgJ,eAAehJ,IAAEgJ,cAAclI,EAAEA,EAAED,CAAC,EAAEA,CAAC,CAAC,CAAC,SAASoI,IAAEjJ,GAAG,IAAIa,EAAEwB,IAAEvB,GAAC,GAAG,EAAE,EAAEX,EAAEgC,EAAC,EAAG,OAAOtB,EAAEa,GAAG1B,EAAEE,EAAEqI,oBAAoBrI,EAAEqI,kBAAkB,SAASvI,EAAEc,GAAGD,EAAEa,IAAIb,EAAEa,GAAG1B,EAAEc,CAAC,EAAEX,EAAE,GAAGH,CAAC,CAAC,GAAG,CAACG,EAAE,GAAG,WAAWA,EAAE,GAAG,KAAA,CAAM,CAAC,EAAE,CAAC,SAAS0C,IAAI,IAAI7C,EAAEqC,IAAEvB,GAAC,GAAG,EAAE,EAAE,OAAOd,EAAE0B,KAAK1B,EAAE0B,GAAG,IAAI,SAAS1B,GAAG,IAAI,IAAIa,EAAE,EAAEC,EAAEd,EAAEgB,OAAS,EAAFF,GAAKD,GAAGA,GAAG,GAAGA,EAAEb,EAAEkJ,WAAW,EAAEpI,CAAC,EAAE,EAAE,OAAOD,CAAC,EAAEX,EAAE+B,IAAIkH,GAAG,EAAErI,KAAGd,EAAE0B,EAAE,CAAC,SAASqB,MAAI,IAAI,IAAIlC,EAAEA,EAAEN,IAAE6I,MAAO,GAAE,GAAGvI,EAAEwC,KAAKxC,EAAE4H,IAAI,IAAI5H,EAAE4H,IAAI1G,IAAIsE,QAAQ3C,GAAC,EAAE7C,EAAE4H,IAAI1G,IAAIsE,QAAQ5C,GAAC,EAAE5C,EAAE4H,IAAI1G,IAAI,EAAuC,CAApC,MAAMjB,GAAGD,EAAE4H,IAAI1G,IAAI,GAAG/B,IAAE4B,IAAId,EAAED,EAAEoB,GAAG,CAAC,CAAC,CAACjC,IAAE2B,IAAI,SAAS3B,GAAG,YAAY,OAAOA,EAAEqB,MAAMrB,EAAEmJ,KAAKnJ,EAAEqB,OAAOR,IAAEb,EAAEmJ,MAAMnJ,EAAEmJ,IAAInJ,EAAE0B,IAAI1B,EAAE0B,GAAGyH,IAAInJ,EAAE0B,GAAGyH,IAAI,IAAInJ,EAAEmJ,KAAKnJ,EAAE0B,IAAI1B,EAAE0B,GAAGyH,IAAInJ,EAAE0B,GAAGyH,IAAI,KAAKnJ,EAAE0B,IAAI1B,EAAE0B,GAAGD,IAAIzB,EAAE0B,GAAGD,IAAIiB,QAAQ1C,CAAC,EAAE,GAAGE,EAAE,KAAKO,KAAGA,IAAET,CAAC,CAAC,EAAEA,IAAEgD,IAAI,SAAShD,GAAGoB,GAAGA,EAAEpB,CAAC,EAAEc,IAAE,EAAMD,GAAGX,EAAEF,EAAE8B,KAAK2G,IAAI5H,IAAIV,MAAID,GAAGW,EAAEkB,IAAI,GAAG7B,EAAE6B,IAAI,GAAGlB,EAAEa,GAAG2E,QAAQ,SAASrG,GAAGA,EAAE2I,MAAM3I,EAAE0B,GAAG1B,EAAE2I,KAAK3I,EAAE0I,IAAIpI,IAAEN,EAAE2I,IAAI3I,EAAEG,EAAE,KAAA,CAAM,CAAC,IAAIU,EAAEkB,IAAIsE,QAAQ3C,GAAC,EAAE7C,EAAEkB,IAAIsE,QAAQ5C,GAAC,EAAE5C,EAAEkB,IAAI,KAAK5B,IAAED,CAAC,EAAEF,IAAE2G,OAAO,SAAS9F,GAAGZ,KAAGA,IAAEY,CAAC,EAAMC,EAAED,EAAEiB,IAAIhB,GAAGA,EAAE2H,MAAM3H,CAAAA,EAAE2H,IAAI1G,IAAIf,QAAS,IAAIT,IAAEuC,KAAKhC,CAAC,GAAGV,MAAIJ,IAAEqJ,yBAAyBjJ,IAAEJ,IAAEqJ,wBAAwB1G,KAAGI,GAAC,EAAGjC,EAAE2H,IAAI/G,GAAG2E,QAAQ,SAASrG,GAAGA,EAAEG,IAAIH,EAAEyI,IAAIzI,EAAEG,GAAGH,EAAE0I,MAAMpI,MAAIN,EAAE0B,GAAG1B,EAAE0I,KAAK1I,EAAEG,EAAE,KAAA,EAAOH,EAAE0I,IAAIpI,GAAC,CAAC,GAAGH,IAAED,EAAE,IAAI,EAAEF,IAAE8B,IAAI,SAASjB,EAAEC,GAAGA,EAAEsC,KAAK,SAASvC,GAAG,IAAIA,EAAEkB,IAAIsE,QAAQ3C,GAAC,EAAE7C,EAAEkB,IAAIlB,EAAEkB,IAAI6G,OAAO,SAAS5I,GAAG,MAAM,CAACA,EAAE0B,IAAI+B,IAAEzD,CAAC,CAAC,CAAC,CAAqE,CAAnE,MAAME,GAAGY,EAAEsC,KAAK,SAASpD,GAAGA,EAAE+B,MAAM/B,EAAE+B,IAAI,GAAG,CAAC,EAAEjB,EAAE,GAAGd,IAAE4B,IAAI1B,EAAEW,EAAEoB,GAAG,CAAC,CAAC,CAAC,EAAE8B,GAAGA,EAAElD,EAAEC,CAAC,CAAC,EAAEd,IAAE2H,QAAQ,SAAS9G,GAAGyB,GAAGA,EAAEzB,CAAC,EAAE,IAAIC,EAAEZ,EAAEW,EAAEiB,IAAI5B,GAAGA,EAAEuI,MAAMvI,EAAEuI,IAAI/G,GAAG2E,QAAQ,SAASrG,GAAG,IAAI0D,IAAE1D,CAAC,CAAc,CAAZ,MAAMA,GAAGc,EAAEd,CAAC,CAAC,CAAC,EAAEE,EAAEuI,IAAI,KAAA,EAAO3H,IAAGd,IAAE4B,IAAId,EAAEZ,EAAE+B,GAAG,CAAE,EAAE,IAAIqB,IAAE,YAAY,OAAO+F,sBAAsB,SAAS1G,IAAE3C,GAAW,SAAFc,IAAawI,aAAapJ,CAAC,EAAEoD,KAAGiG,qBAAqB1I,CAAC,EAAEqC,WAAWlD,CAAC,CAAC,CAA3E,IAAIa,EAAyEX,EAAEgD,WAAWpC,EAAE,GAAG,EAAEwC,MAAIzC,EAAEwI,sBAAsBvI,CAAC,EAAE,CAAC,SAAS4C,IAAE1D,GAAG,IAAIa,EAAEX,EAAEY,EAAEd,EAAE8B,IAAI,YAAY,OAAOhB,IAAId,EAAE8B,IAAI,KAAA,EAAOhB,EAAC,GAAIZ,EAAEW,CAAC,CAAC,SAAS4C,IAAEzD,GAAG,IAAIa,EAAEX,EAAEF,EAAE8B,IAAI9B,EAAE0B,GAAE,EAAGxB,EAAEW,CAAC,CAAC,SAASoH,IAAEjI,EAAEa,GAAG,MAAM,CAACb,GAAGA,EAAEgB,SAASH,EAAEG,QAAQH,EAAEuC,KAAK,SAASvC,EAAEC,GAAG,OAAOD,IAAIb,EAAEc,EAAE,CAAC,CAAC,CAAC,SAAS8C,IAAE5D,EAAEa,GAAG,MAAM,YAAY,OAAOA,EAAEA,EAAEb,CAAC,EAAEa,CAAC,CCAp7F,SAASkC,EAAE/C,EAAEa,GAAG,IAAI,IAAIP,KAAKO,EAAEb,EAAEM,GAAGO,EAAEP,GAAG,OAAON,CAAC,CAAC,SAAS4D,EAAE5D,EAAEa,GAAG,IAAI,IAAIP,KAAKN,EAAE,GAAG,aAAaM,GAAG,EAAEA,KAAKO,GAAG,MAAM,CAAA,EAAG,IAAI,IAAIC,KAAKD,EAAE,GAAG,aAAaC,GAAGd,EAAEc,KAAKD,EAAEC,GAAG,MAAM,CAAA,EAAG,MAAM,CAAA,CAAE,CAAC,SAAS0I,EAAExJ,GAAGuC,KAAKjB,MAAMtB,CAAC,CAAC,SAAS0D,EAAE1D,EAAEM,GAAG,SAASQ,EAAEd,GAAG,IAAIa,EAAE0B,KAAKjB,MAAME,IAAIV,EAAED,GAAGb,EAAEwB,IAAI,MAAM,CAACV,GAAGD,IAAIA,EAAEK,KAAKL,EAAE,IAAI,EAAEA,EAAEuB,QAAQ,MAAM9B,EAAE,CAACA,EAAEiC,KAAKjB,MAAMtB,CAAC,GAAG,CAACc,EAAE8C,EAAErB,KAAKjB,MAAMtB,CAAC,CAAC,CAAC,SAASE,EAAEI,GAAG,OAAOiC,KAAK6D,sBAAsBtF,EAAED,IAAEb,EAAEM,CAAC,CAAC,CAAC,OAAOJ,EAAEuJ,YAAY,SAASzJ,EAAEyJ,aAAazJ,EAAEuH,MAAM,IAAIrH,EAAEuF,UAAUiE,iBAAiB,CAAA,EAAGxJ,EAAEyJ,IAAI,CAAA,EAAGzJ,CAAC,EAAEsJ,EAAE/D,UAAU,IAAIzF,KAAG4J,qBAAqB,CAAA,EAAGJ,EAAE/D,UAAUW,sBAAsB,SAASpG,EAAEa,GAAG,OAAO+C,EAAErB,KAAKjB,MAAMtB,CAAC,GAAG4D,EAAErB,KAAKsD,MAAMhF,CAAC,CAAC,EAAE,IAAIgJ,EAAEvJ,IAAEqB,IAA6FgC,GAAzFrD,IAAEqB,IAAI,SAAS3B,GAAGA,EAAEqB,MAAMrB,EAAEqB,KAAKsI,KAAK3J,EAAEwB,MAAMxB,EAAEsB,MAAME,IAAIxB,EAAEwB,IAAIxB,EAAEwB,IAAI,MAAMqI,GAAGA,EAAE7J,CAAC,CAAC,EAAQ,aAAa,OAAO8J,QAAQA,OAAOC,KAAKD,OAAOC,IAAI,mBAAmB,GAAG,MAAK,SAAS9F,EAAEjE,GAAG,SAASa,EAAEA,GAAG,IAAIP,EAAEyC,EAAE,GAAGlC,CAAC,EAAE,OAAO,OAAOP,EAAEkB,IAAIxB,EAAEM,EAAEO,EAAEW,KAAK,IAAI,CAAC,CAAC,OAAOX,EAAEmJ,SAASrG,GAAE9C,EAAE6E,OAAO7E,GAAI4E,UAAUiE,iBAAiB7I,EAAE8I,IAAI,CAAA,EAAG9I,EAAE4I,YAAY,eAAezJ,EAAEyJ,aAAazJ,EAAEuH,MAAM,IAAI1G,CAAC,CAAC,IAAI8B,EAAE,SAAS3C,EAAEa,GAAG,OAAO,MAAMb,EAAE,KAAKc,IAAEA,IAAEd,CAAC,EAAEiK,IAAIpJ,CAAC,CAAC,CAAC,EAAEmD,EAAE,CAACiG,IAAItH,EAAE0D,QAAQ1D,EAAEuH,MAAM,SAASlK,GAAG,OAAOA,EAAEc,IAAEd,CAAC,EAAEgB,OAAO,CAAC,EAAEmJ,KAAK,SAASnK,GAAOa,EAAEC,IAAEd,CAAC,EAAE,GAAG,IAAIa,EAAEG,OAAO,KAAK,gBAAgB,OAAOH,EAAE,EAAE,EAAEuJ,QAAQtJ,GAAC,EAAE6E,EAAErF,IAAEsB,IAAyJoD,GAArJ1E,IAAEsB,IAAI,SAAS5B,EAAEa,EAAEP,EAAEQ,GAAG,GAAGd,EAAEqK,KAAK,IAAI,IAAInK,EAAEE,EAAES,EAAET,EAAEA,EAAEsB,IAAI,IAAIxB,EAAEE,EAAE0B,MAAM5B,EAAE4B,IAAI,OAAO,MAAMjB,EAAEe,MAAMf,EAAEe,IAAItB,EAAEsB,IAAIf,EAAEY,IAAInB,EAAEmB,KAAKvB,EAAE4B,IAAI9B,EAAEa,CAAC,EAAE8E,EAAE3F,EAAEa,EAAEP,EAAEQ,CAAC,CAAC,EAAQR,IAAEqH,SAAQ,SAAS1C,EAAEjF,EAAEa,EAAEP,GAAG,OAAON,IAAIA,EAAE8B,KAAK9B,EAAE8B,IAAI2G,MAAMzI,EAAE8B,IAAI2G,IAAI/G,GAAG2E,QAAQ,SAASrG,GAAG,YAAY,OAAOA,EAAE8B,KAAK9B,EAAE8B,IAAK,CAAA,CAAC,EAAE9B,EAAE8B,IAAI2G,IAAI,MAAM,OAAOzI,EAAE+C,EAAE,GAAG/C,CAAC,GAAG8B,MAAM9B,EAAE8B,IAAIuB,MAAM/C,IAAIN,EAAE8B,IAAIuB,IAAIxC,GAAGb,EAAE8B,IAAI,MAAM9B,EAAEyB,IAAIzB,EAAEyB,KAAKzB,EAAEyB,IAAIwI,IAAI,SAASjK,GAAG,OAAOiF,EAAEjF,EAAEa,EAAEP,CAAC,CAAC,CAAC,GAAGN,CAAC,CAAC,SAAS0G,EAAE1G,EAAEa,EAAEP,GAAG,OAAON,IAAIA,EAAEiC,IAAI,KAAKjC,EAAEyB,IAAIzB,EAAEyB,KAAKzB,EAAEyB,IAAIwI,IAAI,SAASjK,GAAG,OAAO0G,EAAE1G,EAAEa,EAAEP,CAAC,CAAC,CAAC,EAAEN,EAAE8B,MAAK9B,EAAE8B,IAAIuB,MAAMxC,IAAIb,EAAE4B,KAAKtB,EAAE+D,aAAarE,EAAE4B,IAAI5B,EAAE6B,GAAG,EAAE7B,EAAE8B,IAAIF,IAAI,CAAA,EAAG5B,EAAE8B,IAAIuB,IAAI/C,GAAIN,CAAC,CAAC,SAASsK,IAAI/H,KAAKgI,IAAI,EAAEhI,KAAK1B,EAAE,KAAK0B,KAAKZ,IAAI,IAAI,CAAC,SAAS6I,EAAExK,GAAG,IAAIa,EAAEb,EAAE0B,GAAGI,IAAI,OAAOjB,GAAGA,EAAE4J,KAAK5J,EAAE4J,IAAIzK,CAAC,CAAC,CAAC,SAAS8I,EAAE9I,GAAG,IAAIM,EAAEQ,EAAEZ,EAAE,SAASE,EAAEA,GAAG,GAAGE,IAAIA,EAAEN,EAAC,GAAIqK,KAAK,SAASrK,GAAGc,EAAEd,EAAE0K,SAAS1K,CAAC,EAAE,SAASA,GAAGE,EAAEF,CAAC,CAAC,EAAEE,EAAE,MAAMA,EAAE,GAAIY,EAAU,OAAOD,IAAEC,EAAEV,CAAC,EAApB,MAAME,CAAe,CAAC,OAAOF,EAAEqJ,YAAY,OAAOrJ,EAAEuJ,IAAI,CAAA,EAAGvJ,CAAC,CAAC,SAAS8D,IAAI3B,KAAKrC,EAAE,KAAKqC,KAAKnC,EAAE,IAAI,CAACE,IAAEqH,QAAQ,SAAS3H,GAAG,IAAIa,EAAEb,EAAE8B,IAAIjB,GAAGA,EAAE8J,KAAK9J,EAAE8J,IAAK,EAAC9J,GAAG,CAAA,IAAKb,EAAE+B,MAAM/B,EAAEqB,KAAK,MAAM2D,GAAGA,EAAEhF,CAAC,CAAC,GAAGsK,EAAE7E,UAAU,IAAIzF,KAAG8B,IAAI,SAAS9B,EAAEa,GAA4E,SAAFV,IAAaC,IAAIA,EAAE,CAAA,EAAGE,EAAEqK,IAAI,KAAKzK,EAAEA,EAAED,CAAC,EAAEA,EAAG,EAAC,CAAnH,IAAIK,EAAEO,EAAEiB,IAAIhB,EAAEyB,KAAyCrC,GAApC,MAAMY,EAAED,IAAIC,EAAED,EAAE,IAAIC,EAAED,EAAEiC,KAAKxC,CAAC,EAAQkK,EAAE1J,EAAEmB,GAAG,GAAE7B,EAAE,CAAA,EAA6DH,GAAZK,EAAEqK,IAAIxK,EAAQ,WAAwB,IAAoBH,EAAwDa,EAAzF,GAAG,CAAC,EAAEC,EAAEyJ,IAAmF,IAA3EzJ,EAAE+E,MAAM4E,MAASzK,EAAEc,EAAE+E,MAAM4E,IAAI3J,EAAEmB,IAAIR,IAAI,GAAGiF,EAAE1G,EAAEA,EAAE8B,IAAIuB,IAAIrD,EAAE8B,IAAI8I,GAAG,GAAY9J,EAAEwH,SAAS,CAACmC,IAAI3J,EAAEa,IAAI,IAAI,CAAC,EAAEd,EAAEC,EAAED,EAAEgK,IAAK,GAAEhK,EAAE2H,YAAa,CAAC,GAAEjI,EAAE,CAAA,IAAKM,EAAEkB,IAAIjB,EAAEyJ,GAAG,IAAIhK,GAAGO,EAAEwH,SAAS,CAACmC,IAAI3J,EAAEa,IAAIb,EAAEmB,IAAIR,IAAI,EAAE,CAAC,EAAEzB,EAAEqK,KAAKlK,EAAEA,CAAC,CAAC,EAAEmK,EAAE7E,UAAUmC,qBAAqB,WAAWrF,KAAK1B,EAAE,EAAE,EAAEyJ,EAAE7E,UAAUC,OAAO,SAAS1F,EAAEM,GAAMiC,KAAKZ,MAAQY,KAAKN,IAAIR,MAASX,EAAEgG,SAASG,cAAc,KAAK,EAAE7G,EAAEmC,KAAKN,IAAIR,IAAI,GAAGK,IAAIS,KAAKN,IAAIR,IAAI,GAAGwD,EAAE1C,KAAKZ,IAAIb,EAAEV,EAAEwK,IAAIxK,EAAEiD,GAAG,GAAEd,KAAKZ,IAAI,MAA3I,IAAkEvB,EAAkFD,EAAEG,EAAEmK,KAAK5J,IAAEX,IAAE,KAAKF,EAAE8K,QAAQ,EAAE,OAAO3K,IAAIA,EAAE4B,IAAI,MAAM,CAAClB,IAAEX,IAAE,KAAKI,EAAEmK,IAAI,KAAKzK,EAAEiB,QAAQ,EAAEd,EAAE,EAAE,IAAI8I,EAAE,SAASjJ,EAAEa,EAAEP,GAAG,GAAG,EAAEA,EAAE,KAAKA,EAAE,IAAIN,EAAEI,EAAE2K,OAAOlK,CAAC,EAAEb,EAAEsB,MAAM0J,cAAc,MAAMhL,EAAEsB,MAAM0J,YAAY,IAAI,CAAChL,EAAEI,EAAE6K,MAAM,IAAI3K,EAAEN,EAAEE,EAAEI,GAAG,CAAC,KAAc,EAATA,EAAEU,QAAUV,EAAEuK,IAAG,EAAI,EAAC,GAAGvK,EAAE,GAAGA,EAAE,GAAG,MAAMN,EAAEE,EAAEI,EAAEA,EAAE,EAAE,CAAC,EAAE,SAAS4K,EAAElL,GAAG,OAAOuC,KAAKiE,gBAAgB,WAAW,OAAOxG,EAAEwC,OAAO,EAAExC,EAAEiB,QAAQ,CAAC,SAAS4G,EAAE7H,GAAG,IAAIM,EAAEiC,KAAKzB,EAAEd,EAAEG,EAAEG,EAAEsH,qBAAqB,WAAWxH,IAAE,KAAKE,EAAEL,CAAC,EAAEK,EAAEL,EAAE,KAAKK,EAAEH,EAAE,IAAI,EAAEG,EAAEH,GAAGG,EAAEH,IAAIW,GAAGR,EAAEsH,uBAAuB5H,EAAEiC,KAAK3B,EAAEL,IAAIK,EAAEH,EAAEW,EAAER,EAAEL,EAAE,CAAC4G,SAAS,EAAEnG,WAAWI,EAAEsG,WAAW,GAAGjD,YAAY,SAASnE,GAAGuC,KAAK6E,WAAWtE,KAAK9C,CAAC,EAAEM,EAAEH,EAAEgE,YAAYnE,CAAC,CAAC,EAAEqE,aAAa,SAASrE,EAAEa,GAAG0B,KAAK6E,WAAWtE,KAAK9C,CAAC,EAAEM,EAAEH,EAAEgE,YAAYnE,CAAC,CAAC,EAAEW,YAAY,SAASX,GAAGuC,KAAK6E,WAAWgB,OAAO7F,KAAK6E,WAAW1E,QAAQ1C,CAAC,IAAI,EAAE,CAAC,EAAEM,EAAEH,EAAEQ,YAAYX,CAAC,CAAC,CAAC,GAAGI,IAAES,IAAEqK,EAAE,CAAC1I,QAAQlC,EAAEkC,OAAO,EAAExC,EAAEiC,GAAG,EAAE3B,EAAEL,CAAC,GAAGK,EAAEL,GAAGK,EAAEsH,qBAAsB,CAAA,CAAC,SAASrD,EAAEvE,EAAEM,GAAOQ,EAAED,IAAEgH,EAAE,CAAC5F,IAAIjC,EAAEG,EAAEG,CAAC,CAAC,EAAE,OAAOQ,EAAEqK,cAAc7K,EAAEQ,CAAC,EAAEoD,EAAEuB,UAAU,IAAIzF,KAAGyK,IAAI,SAASzK,GAAG,IAAIa,EAAE0B,KAAKjC,EAAEkK,EAAE3J,EAAEoB,GAAG,EAAEnB,EAAED,EAAET,EAAEgL,IAAIpL,CAAC,EAAE,OAAOc,EAAE,EAAE,GAAG,SAASZ,GAAS,SAAFE,IAAaS,EAAES,MAAM0J,aAAalK,EAAEgC,KAAK5C,CAAC,EAAE+I,EAAEpI,EAAEb,EAAEc,CAAC,GAAGZ,EAAC,CAAE,CAAEI,EAAEA,EAAEF,CAAC,EAAEA,GAAG,CAAC,EAAE8D,EAAEuB,UAAUC,OAAO,SAAS1F,GAAGuC,KAAKrC,EAAE,KAAKqC,KAAKnC,EAAE,IAAIiL,IAAI,IAAIxK,EAAEC,IAAEd,EAAEiB,QAAQ,EAAEjB,EAAEgL,aAAa,MAAMhL,EAAEgL,YAAY,IAAInK,EAAEyK,UAAU,IAAI,IAAIhL,EAAEO,EAAEG,OAAOV,CAAC,IAAIiC,KAAKnC,EAAEmL,IAAI1K,EAAEP,GAAGiC,KAAKrC,EAAE,CAAC,EAAE,EAAEqC,KAAKrC,EAAE,EAAE,OAAOF,EAAEiB,QAAQ,EAAEiD,EAAEuB,UAAUc,mBAAmBrC,EAAEuB,UAAUS,kBAAkB,WAAW,IAAIlG,EAAEuC,KAAKA,KAAKnC,EAAEiG,QAAQ,SAASxF,EAAEP,GAAG2I,EAAEjJ,EAAEM,EAAEO,CAAC,CAAC,CAAC,CAAC,EAAE,IAAIyC,EAAE,aAAa,OAAOwG,QAAQA,OAAOC,KAAKD,OAAOC,IAAI,eAAe,GAAG,MAAMtG,EAAE,0RAA0RwE,EAAE,aAAa,OAAOnB,SAASxC,EAAE,SAAStE,GAAG,OAAO,aAAa,OAAO8J,QAAQ,UAAU,OAAOA,OAAQ,EAAC,eAAe,eAAerF,KAAKzE,CAAC,CAAC,EAAE,SAASwL,EAAExL,EAAEa,EAAEP,GAAG,OAAO,MAAMO,EAAEY,MAAMZ,EAAE4K,YAAY,IAAIrL,IAAEJ,EAAEa,CAAC,EAAE,YAAY,OAAOP,GAAGA,EAAC,EAAGN,EAAEA,EAAE8B,IAAI,IAAI,CAAC,SAAS4J,EAAE1L,EAAEa,EAAEP,GAAG,OAAOH,EAAEH,EAAEa,CAAC,EAAE,YAAY,OAAOP,GAAGA,EAAG,EAACN,EAAEA,EAAE8B,IAAI,IAAI,CAAC9B,IAAEyF,UAAUiE,iBAAiB,GAAG,CAAC,qBAAqB,4BAA4B,uBAAuBrD,QAAQ,SAASxF,GAAG8K,OAAOC,eAAe5L,IAAEyF,UAAU5E,EAAE,CAACgL,aAAa,CAAA,EAAGT,IAAI,WAAW,OAAO7I,KAAK,UAAU1B,EAAE,EAAE0K,IAAI,SAASvL,GAAG2L,OAAOC,eAAerJ,KAAK1B,EAAE,CAACgL,aAAa,CAAA,EAAGC,SAAS,CAAA,EAAGvG,MAAMvF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAIgI,EAAE1H,IAAE+E,MAAM,SAAS0G,KAAK,SAASC,IAAI,OAAOzJ,KAAK0J,YAAY,CAAC,SAASC,IAAI,OAAO3J,KAAK4J,gBAAgB,CAAC7L,IAAE+E,MAAM,SAASrF,GAAG,OAAWA,EAAJgI,EAAMA,EAAEhI,CAAC,EAAGA,GAAEoM,QAAQL,EAAE/L,EAAEqM,qBAAqBL,EAAEhM,EAAEsM,mBAAmBJ,EAAElM,EAAEuM,YAAYvM,CAAC,EAAE,IAAIwM,EAAEC,EAAE,CAACZ,aAAa,CAAA,EAAGT,IAAI,WAAW,OAAO7I,KAAKmK,KAAK,CAAC,EAAEC,GAAGrM,IAAE4B,MAAkqC0K,IAA5pCtM,IAAE4B,MAAM,SAASlC,GAAG,IAAIa,EAAEb,EAAEqB,KAAKf,EAAEN,EAAEsB,MAAMpB,EAAEI,EAAE,GAAG,UAAU,OAAOO,EAAE,CAAC,IAAkCV,EAA9BC,EAAE,CAAC,IAAIS,EAAE6B,QAAQ,GAAG,EAAexC,EAAE,GAAf,IAAQC,KAAUG,EAAE,CAAC,IAAIL,EAAEK,EAAEH,GAAG8H,GAAG,aAAa9H,GAAG,aAAaU,GAAG,UAAUV,GAAG,iBAAiBG,GAAG,MAAML,IAAI,iBAAiBE,GAAG,UAAUG,GAAG,MAAMA,EAAEiF,MAAMpF,EAAE,QAAQ,aAAaA,GAAG,CAAA,IAAKF,EAAEA,EAAE,GAAG,iBAAiBwE,KAAKtE,CAAC,EAAEA,EAAE,aAAa,6BAA6BsE,KAAKtE,EAAEU,CAAC,GAAG,CAACyD,EAAEhE,EAAEe,IAAI,EAAElB,EAAE,UAAU,aAAasE,KAAKtE,CAAC,EAAEA,EAAE,YAAY,YAAYsE,KAAKtE,CAAC,EAAEA,EAAE,aAAa,mCAAmCsE,KAAKtE,CAAC,EAAEA,EAAEA,EAAE0E,YAAW,EAAGzE,GAAGqD,EAAEgB,KAAKtE,CAAC,EAAEA,EAAEA,EAAEyE,QAAQ,YAAY,KAAK,EAAEC,YAAW,EAAG,OAAO5E,IAAIA,EAAE,KAAA,GAAQ,aAAawE,KAAKtE,CAAC,IAAIA,EAAEA,EAAE0E,cAAc3E,EAAEC,MAAKA,EAAE,kBAAmBD,EAAEC,GAAGF,EAAE,CAAC,UAAUY,GAAGX,EAAE2M,UAAUhJ,MAAMC,QAAQ5D,EAAEqF,KAAK,IAAIrF,EAAEqF,MAAMzE,IAAER,EAAEW,QAAQ,EAAEoF,QAAQ,SAASrG,GAAGA,EAAEsB,MAAMwL,SAAS,CAAC,GAAG5M,EAAEqF,MAAM7C,QAAQ1C,EAAEsB,MAAMiE,KAAK,CAAC,CAAC,GAAG,UAAU1E,GAAG,MAAMX,EAAE6M,eAAe7M,EAAEqF,MAAMzE,IAAER,EAAEW,QAAQ,EAAEoF,QAAQ,SAASrG,GAAGA,EAAEsB,MAAMwL,SAAS5M,EAAE2M,SAAS,CAAC,GAAG3M,EAAE6M,aAAarK,QAAQ1C,EAAEsB,MAAMiE,KAAK,EAAErF,EAAE6M,cAAc/M,EAAEsB,MAAMiE,KAAK,CAAC,GAAGvF,EAAEsB,MAAMpB,EAAEI,EAAEoM,OAAOpM,EAAE0M,YAAYP,EAAEQ,WAAW,cAAc3M,EAAE,MAAMA,EAAE0M,YAAY9M,EAAEwM,MAAMpM,EAAE0M,WAAWrB,OAAOC,eAAe1L,EAAE,YAAYuM,CAAC,EAAE,CAACzM,EAAEgK,SAAS1G,EAAEqJ,IAAIA,GAAG3M,CAAC,CAAC,EAASM,IAAE0C,KAA6CkK,IAAzC5M,IAAE0C,IAAI,SAAShD,GAAG4M,IAAIA,GAAG5M,CAAC,EAAEwM,EAAExM,EAAE8B,GAAG,EAAS,CAACqL,uBAAuB,CAAC/K,QAAQ,CAACgL,YAAY,SAASpN,GAAG,OAAOwM,EAAEjJ,IAAIvD,EAAE8B,KAAKR,MAAMiE,KAAK,CAAC,CAAC,CAAC,GAAE8H,GAAG,SAAS,SAASC,GAAGtN,GAAG,OAAOa,IAAE0M,KAAK,KAAKvN,CAAC,CAAC,CAAC,SAASwN,GAAGxN,GAAG,MAAM,CAAC,CAACA,GAAGA,EAAEgK,WAAW1G,CAAC,CAAC,SAASmK,GAAGzN,GAAG,OAAOwN,GAAGxN,CAAC,EAAEK,IAAEqN,MAAM,KAAK3M,SAAS,EAAEf,CAAC,CAAC,SAAS2N,GAAG3N,GAAG,MAAM,CAAC,CAACA,EAAEyB,MAAMrB,IAAE,KAAKJ,CAAC,EAAE,CAAA,EAAG,CAAC,SAAS4N,GAAG5N,GAAG,OAAOA,IAAIA,EAAE4C,MAAM,IAAI5C,EAAE6G,UAAU7G,IAAI,IAAI,CAAC,IAAI6N,GAAG,SAAS7N,EAAEa,GAAG,OAAOb,EAAEa,CAAC,CAAC,EAAEiN,GAAG,SAAS9N,EAAEa,GAAG,OAAOb,EAAEa,CAAC,CAAC,EAAEkN,GAAG7N,IAAE,SAAS8N,GAAGhO,GAAGA,EAAG,CAAA,CAAC,SAASiO,GAAGjO,GAAG,OAAOA,CAAC,CAAC,SAASkO,KAAK,MAAM,CAAC,CAAA,EAAGF,GAAG,CAAC,IAAIG,GAAG7L,EAAE,SAAS8L,GAAGpO,EAAEa,GAAG,IAAIP,EAAEO,EAAG,EAACC,EAAEL,EAAE,CAACG,EAAE,CAACc,GAAGpB,EAAEc,EAAEP,CAAC,CAAC,CAAC,EAAEX,EAAEY,EAAE,GAAGF,EAAER,EAAEU,EAAE,GAAG,OAAOwB,EAAE,WAAWpC,EAAEwB,GAAGpB,EAAEJ,EAAEkB,EAAEP,EAAEX,EAAEwB,KAAKb,EAAG,GAAET,EAAE,CAACQ,EAAEV,CAAC,CAAC,CAAC,EAAE,CAACF,EAAEM,EAAEO,EAAE,EAAEO,IAAE,WAAW,OAAOlB,EAAEwB,KAAKxB,EAAEkB,KAAKhB,EAAE,CAACQ,EAAEV,CAAC,CAAC,EAAEF,EAAE,WAAWE,EAAEwB,KAAKxB,EAAEkB,EAAG,GAAEhB,EAAE,CAACQ,EAAEV,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAACF,EAAE,EAAEM,CAAC,CAAC,IAAI+N,GAAG,CAACC,SAAS7N,EAAE8N,MAAM/N,EAAEgO,WAAW5N,EAAE6N,UAAUrN,IAAEsN,gBAAgBpM,EAAEqM,mBAAmBR,GAAGS,cAAcV,GAAGW,iBAAiBZ,GAAGa,qBAAqBV,GAAGW,gBAAgBf,GAAGgB,OAAO3M,IAAE4M,oBAAoBlL,IAAEmL,QAAQ/M,IAAEgN,YAAY1M,IAAE2M,WAAWvM,IAAEmG,cAAcjB,IAAEsH,QAAQ,SAASC,SAAStL,EAAE0B,OAAO8F,EAAE+D,QAAQ7D,EAAE8D,uBAAuB7B,GAAG8B,aAAalL,EAAE0C,cAAcpG,IAAE6O,cAAczP,IAAE0P,cAAcrC,GAAGsC,aAAanC,GAAGoC,UAAUtP,IAAEuP,SAAS5P,IAAE6P,eAAevC,GAAGwC,YAAYpC,GAAGqC,UAAUjQ,IAAEkQ,cAAc1G,EAAE2G,KAAKzM,EAAE0M,WAAWnM,EAAEoM,UAAUvC,GAAGwC,wBAAwBzC,GAAG0C,WAAWxC,GAAGyC,SAASlG,EAAEmG,aAAavM,EAAEwM,KAAK5H,EAAE6H,mDAAmDzD,EAAE,i6CCA9/QrM,EAAE+P,aAAkB,SAAStQ,MAAI,OAAOA,IAAEqL,OAAOkF,QAAQ,SAAShQ,GAAG,IAAI,IAAIP,EAAE,EAAEA,EAAES,UAAUC,OAAOV,CAAC,GAAG,CAAC,IAA2BQ,EAAvBd,EAAEe,UAAUT,GAAG,IAAQQ,KAAKd,EAAE2L,OAAOlG,UAAUqL,eAAe5P,KAAKlB,EAAEc,CAAC,IAAID,EAAEC,GAAGd,EAAEc,GAAG,CAAC,OAAOD,CAAC,GAAG6M,MAAMnL,KAAKxB,SAAS,CAAC,CAAC,SAASf,IAAEM,GAAGiC,KAAKiE,gBAAgB,WAAW,OAAOlG,EAAEkC,OAAO,EAAE,IAAIxC,EAAEM,EAAEW,SAASH,EAAE,SAASD,EAAEP,GAAG,GAAG,MAAMO,EAAE,MAAM,GAAiC,IAA9B,IAAIb,EAAII,EAAE,GAAGD,EAAEwL,OAAOoF,KAAKlQ,CAAC,EAAMC,EAAE,EAAEA,EAAEX,EAAEa,OAAOF,CAAC,GAAsB,GAAnBR,EAAEoC,QAAQ1C,EAAEG,EAAEW,EAAE,IAAOV,EAAEJ,GAAGa,EAAEb,IAAI,OAAOI,CAAC,EAAEE,EAAE,CAAC,UAAU,WAAW,EAAE,OAAOO,EAAE+O,aAAa5P,EAAEc,CAAC,CAAC,CAAC,SAASA,IAAI,IAAIA,EAAE,IAAIkQ,YAAY,UAAU,CAACC,OAAO,GAAGC,QAAQ,CAAA,EAAGC,WAAW,CAAA,CAAE,CAAC,EAAE5O,KAAK6O,cAActQ,CAAC,EAAEyB,KAAK8O,MAAMxQ,EAAED,EAAEZ,IAAEM,IAAE,GAAGiC,KAAK+O,OAAO,CAAC9O,QAAQ1B,EAAEmQ,OAAOzO,OAAO,CAAC,EAAE,SAASlC,EAAEN,EAAEc,GAAG,GAAG,IAAId,EAAE6G,SAAS,OAAO7G,EAAEmH,KAAK,GAAG,IAAInH,EAAE6G,SAAS,OAAO,KAAqD,IAAhD,IAAI1G,EAAE,GAAGM,EAAE,GAAGF,EAAE,EAAEN,EAAED,EAAEsH,WAAWpH,EAAEF,EAAEoH,WAAe7G,EAAEN,EAAEe,OAAOT,CAAC,IAAI,SAASN,EAAEM,GAAGgH,OAAO9G,EAAER,EAAEM,GAAGgH,MAAMtH,EAAEM,GAAGgF,MAAM9E,EAAEL,IAAEH,EAAEM,GAAGgH,IAAI,GAAGtH,EAAEM,GAAGgF,OAAO,IAAIhF,EAAEL,EAAEc,OAAOT,CAAC,IAAI,CAAC,IAAIK,EAAEN,EAAEJ,EAAEK,GAAG,IAAI,EAAE8B,EAAEnC,EAAEK,GAAGgR,KAAKlP,EAAE5B,EAAE4B,GAAGxB,EAAED,EAAEJ,EAAE,CAAC+G,KAAKlF,CAAC,EAAEzB,CAAC,EAAET,EAAEI,GAAGK,CAAC,CAAC,IAAI0B,EAAExB,EAAED,EAAED,EAAEJ,EAAE,KAAKL,CAAC,EAAEA,EAAE,OAAOU,EAAED,EAAEE,GAAGd,EAAEwR,SAAS3M,YAAa,EAACpE,EAAE6B,CAAC,CAAC,EAAEC,KAAKA,KAAKkP,cAAc,CAAC,GAAGlP,KAAKmP,aAAa,SAAS,EAAE7Q,EAAE0O,QAAQ1O,EAAE6E,QAAQnD,KAAK8O,MAAM9O,KAAKoP,KAAK,CAAC,CAAC,SAASvR,IAAES,GAAG,OAAOA,EAAE+D,QAAQ,SAAS,SAAS/D,EAAEP,GAAG,OAAOA,EAAEA,EAAEsR,YAAW,EAAG,EAAE,CAAC,CAAC,CAAC,SAASzR,IAAEG,EAAEN,EAAEc,GAAG,IAAmBX,EAAhBoC,KAAK8O,SAAWlR,EAAE,IAAKG,GAAGQ,EAAE,MAAMA,EAAE,KAAA,EAAOA,EAAEX,EAAEC,IAAEE,CAAC,GAAGQ,EAAEyB,KAAK8O,MAAMxQ,EAAE+O,aAAarN,KAAK8O,MAAMlR,CAAC,EAAEU,EAAE6E,OAAOnD,KAAK8O,MAAM9O,KAAKoP,KAAK,EAAE,CAAC,SAASlR,MAAII,EAAE6E,OAAOnD,KAAK8O,MAAM,KAAK9O,KAAKoP,KAAK,CAAC,CAAC,SAASnR,EAAER,EAAEc,GAAG,IAAIV,EAAEmC,KAAK,OAAO1B,EAAED,EAAE,OAAON,IAAE,GAAGN,EAAE,CAACwB,IAAI,SAASX,GAAGA,GAAGT,EAAEoB,IAAIX,EAAET,EAAEyR,YAAYzR,EAAEyR,UAAU,SAAShR,GAAGA,EAAEiR,gBAAe,EAAGjR,EAAEoQ,OAAOzO,QAAQ1B,CAAC,EAAED,EAAEkE,iBAAiB,UAAU3E,EAAEyR,SAAS,IAAIzR,EAAEoB,IAAI0D,oBAAoB,UAAU9E,EAAEyR,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAAE,oBAAe,SAASlR,EAAEP,EAAEN,EAAEI,GAAG,SAASI,IAAI,IAAIF,EAAE0R,QAAQC,UAAUC,YAAY,GAAG1R,CAAC,EAAE,OAAOF,EAAEmR,eAAe5Q,EAAEP,EAAEqR,MAAMvR,GAAGA,EAAE+R,OAAO7R,EAAE8R,aAAa,CAACC,KAAK,MAAM,CAAC,EAAE/R,EAAEA,CAAC,CAAC,QAAOE,EAAEiF,UAAUkG,OAAO2G,OAAOJ,YAAYzM,SAAS,GAAGzD,YAAYxB,GAAIiF,UAAU8M,kBAAkBzR,EAAEN,EAAEiF,UAAU+M,yBAAyBrS,IAAEK,EAAEiF,UAAUgN,qBAAqBhS,IAAET,EAAEA,GAAGa,EAAE6R,oBAAoB/G,OAAOoF,KAAKlQ,EAAE8R,WAAW,EAAE,GAAEnS,EAAEkS,mBAAmB1S,GAAIqG,QAAQ,SAASxF,GAAG8K,OAAOC,eAAepL,EAAEiF,UAAU5E,EAAE,CAACuK,IAAI,WAAW,OAAO7I,KAAK8O,MAAM/P,MAAMT,EAAE,EAAE0K,IAAI,SAASjL,GAAGiC,KAAK8O,MAAM9O,KAAKiQ,yBAAyB3R,EAAE,KAAKP,CAAC,GAAGiC,KAAK+O,SAAS/O,KAAK+O,OAAO,IAAI/O,KAAK+O,OAAOzQ,GAAGP,EAAEiC,KAAKgQ,kBAAiB,GAAI,IAAIvS,EAAE,OAAOM,EAAE,MAAMA,GAAG,UAAWN,GAAG,WAAYA,GAAG,UAAWA,GAAGuC,KAAK6C,aAAavE,EAAEP,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEsS,eAAeC,OAAOvS,GAAGO,EAAEiS,SAASjS,EAAE4I,aAAa5I,EAAE0G,KAAK/G,CAAC,CAAC,ECAj8E,SAASuS,YAAYC,EAAKxR,GAExB,IAIIyR,EACAvO,EALAwO,GADkB1R,EAAT,KAAA,IAARA,EAAuB,GACbA,GAAI0R,SAEdF,GAA2B,aAApB,OAAOlM,WAEfmM,EAAOnM,SAASmM,MAAQnM,SAASqM,qBAAqB,MAAM,EAAE,IAC9DzO,EAAQoC,SAASG,cAAc,OAAO,GACpC5F,KAAO,WAEI,QAAb6R,GACED,EAAKnL,WACPmL,EAAK5O,aAAaK,EAAOuO,EAAKnL,UAAU,EAK1CmL,EAAK9O,YAAYO,CAAK,EAGpBA,EAAM0O,WACR1O,EAAM0O,WAAWzO,QAAUqO,EAE3BtO,EAAMP,YAAY2C,SAASC,eAAeiM,CAAG,CAAC,EAElD,il5CCzBe,SAASK,kBAAkBC,GACxC,OAAO,WACL,IAAIC,EAA6B,EAAnBxS,UAAUC,QAA+BwS,KAAAA,IAAjBzS,UAAU,GAAmBA,UAAU,GAAK,GAE9E0S,EAAQF,EAAQE,MAAQC,OAAOH,EAAQE,KAAK,EAAIH,EAAKK,aAEzD,OADaL,EAAKM,QAAQH,IAAUH,EAAKM,QAAQN,EAAKK,aAE1D,CACA,CCRe,SAASE,gBAAgBP,GACtC,OAAO,SAAUQ,EAAYP,GAOzBQ,EAHc,gBAHFR,MAAAA,GAA0CA,EAAQ/Q,QAAUkR,OAAOH,EAAQ/Q,OAAO,EAAI,eAGpE8Q,EAAKU,kBAC/BL,EAAeL,EAAKW,wBAA0BX,EAAKK,aACnDF,EAAQF,MAAAA,GAA0CA,EAAQE,MAAQC,OAAOH,EAAQE,KAAK,EAAIE,EAChFL,EAAKU,iBAAiBP,IAAUH,EAAKU,iBAAiBL,KAEhEO,EAAgBZ,EAAKK,aAErBQ,EAASZ,MAAAA,GAA0CA,EAAQE,MAAQC,OAAOH,EAAQE,KAAK,EAAIH,EAAKK,aAEtFL,EAAKc,OAAOD,IAAWb,EAAKc,OAAOF,IAZnD,IAQMA,EAOFG,EAAQf,EAAKgB,iBAAmBhB,EAAKgB,iBAAiBR,CAAU,EAAIA,EAExE,OAAOC,EAAYM,EACvB,CACA,CCrBe,SAASE,aAAajB,GACnC,OAAO,SAAUkB,GACf,IASIC,EATAlB,EAA6B,EAAnBxS,UAAUC,QAA+BwS,KAAAA,IAAjBzS,UAAU,GAAmBA,UAAU,GAAK,GAC9E0S,EAAQF,EAAQE,MAChBiB,EAAejB,GAASH,EAAKqB,cAAclB,IAAUH,EAAKqB,cAAcrB,EAAKsB,mBAC7EC,EAAcL,EAAOM,MAAMJ,CAAY,EAE3C,OAAKG,GAIDJ,EAAgBI,EAAY,GAC5BE,EAAgBtB,GAASH,EAAKyB,cAActB,IAAUH,EAAKyB,cAAczB,EAAK0B,mBAC9EzT,EAAMsC,MAAMC,QAAQiR,CAAa,EAAIE,YAAUF,EAAe,SAAUG,GAC1E,OAAOA,EAAQzQ,KAAKgQ,CAAa,CAClC,CAAA,EAAIU,QAAQJ,EAAe,SAAUG,GACpC,OAAOA,EAAQzQ,KAAKgQ,CAAa,CACvC,CAAK,EAEDlP,EAAQ+N,EAAK8B,cAAgB9B,EAAK8B,cAAc7T,CAAG,EAAIA,EAGhD,CACLgE,MAHFA,EAAQgO,EAAQ6B,cAAgB7B,EAAQ6B,cAAc7P,CAAK,EAAIA,EAI7D8P,KAHSb,EAAO1P,MAAM2P,EAAczT,MAAM,CAIhD,GAjBa,IAkBb,CACA,CAEA,SAASmU,QAAQG,EAAQC,GACvB,IAAK,IAAIhU,KAAO+T,EACd,GAAIA,EAAOxE,eAAevP,CAAG,GAAKgU,EAAUD,EAAO/T,EAAI,EACrD,OAAOA,CAKb,CAEA,SAAS0T,YAAUO,EAAOD,GACxB,IAAK,IAAIhU,EAAM,EAAGA,EAAMiU,EAAMxU,OAAQO,CAAG,GACvC,GAAIgU,EAAUC,EAAMjU,EAAI,EACtB,OAAOA,CAKb,CC/Ce,SAASkU,oBAAoBnC,GAC1C,OAAO,SAAUkB,GACf,IAOAjP,EAPIgO,EAA6B,EAAnBxS,UAAUC,QAA+BwS,KAAAA,IAAjBzS,UAAU,GAAmBA,UAAU,GAAK,GAC9E8T,EAAcL,EAAOM,MAAMxB,EAAKoB,YAAY,EAChD,OAAKG,IACDJ,EAAgBI,EAAY,GAC5Ba,EAAclB,EAAOM,MAAMxB,EAAKqC,YAAY,IAE5CpQ,EAAQ+N,EAAK8B,cAAgB9B,EAAK8B,cAAcM,EAAY,EAAE,EAAIA,EAAY,GAG3E,CACLnQ,MAAOA,EAHDgO,EAAQ6B,cAAgB7B,EAAQ6B,cAAc7P,CAAK,EAAIA,EAI7D8P,KAHSb,EAAO1P,MAAM2P,EAAczT,MAAM,CAIhD,GAV6B,IAW7B,CACA,CChBe,SAAS4U,UAAUC,GAChC,OAAoB,OAAhBA,GAAwC,CAAA,IAAhBA,GAAwC,CAAA,IAAhBA,EAC3CC,KAGLC,EAASC,OAAOH,CAAW,EAE3BI,MAAMF,CAAM,EACPA,EAGFA,EAAS,EAAIG,KAAKC,KAAKJ,CAAM,EAAIG,KAAKE,MAAML,CAAM,EAC3D,CCZe,SAASM,aAAaC,EAAUhD,GAC7C,GAAIA,EAAKtS,OAASsV,EAChB,MAAM,IAAIC,UAAUD,EAAW,aAA0B,EAAXA,EAAe,IAAM,IAAM,uBAAyBhD,EAAKtS,OAAS,UAAU,CAE9H,CCJA,SAASwV,UAAQC,GAAmV,OAAtOD,UAArD,YAAlB,OAAO1M,QAAoD,UAA3B,OAAOA,OAAO4M,SAAmC,SAAiBD,GAAO,OAAO,OAAOA,CAAI,EAAuB,SAAiBA,GAAO,OAAOA,GAAyB,YAAlB,OAAO3M,QAAyB2M,EAAIzU,cAAgB8H,QAAU2M,IAAQ3M,OAAOrE,UAAY,SAAW,OAAOgR,CAAI,GAAqBA,CAAG,CAAI,CAkC3W,SAASE,OAAOC,GAC7BP,aAAa,EAAGtV,SAAS,EACzB,IAAI8V,EAASlL,OAAOlG,UAAUqR,SAAS5V,KAAK0V,CAAQ,EAEpD,OAAIA,aAAoBG,MAA8B,WAAtBP,UAAQI,CAAQ,GAA6B,kBAAXC,EAEzD,IAAIE,KAAKH,EAASI,QAAS,CAAA,EACL,UAApB,OAAOJ,GAAoC,oBAAXC,EAClC,IAAIE,KAAKH,CAAQ,GAEC,UAApB,OAAOA,GAAoC,oBAAXC,GAAoD,aAAnB,OAAOI,UAE3EA,QAAQC,KAAK,oNAAoN,EAEjOD,QAAQC,MAAK,IAAIC,OAAQC,KAAK,GAGzB,IAAIL,KAAKjB,GAAG,EAEvB,CC/Be,SAASuB,gBAAgBC,EAAWC,GACjDlB,aAAa,EAAGtV,SAAS,EACzB,IAAIyW,EAAYb,OAAOW,CAAS,EAAEN,QAAO,EACrCS,EAAS7B,UAAU2B,CAAW,EAClC,OAAO,IAAIR,KAAKS,EAAYC,CAAM,CACpC,uBC3BA,IAAIC,eAAiB,GACd,SAASC,oBACd,OAAOD,cACT,CCQe,SAASE,gCAAgCC,GACtD,IAAIC,EAAU,IAAIf,KAAKA,KAAKgB,IAAIF,EAAKG,cAAeH,EAAKI,SAAQ,EAAIJ,EAAKK,UAAWL,EAAKM,SAAQ,EAAIN,EAAKO,WAAY,EAAEP,EAAKQ,aAAcR,EAAKS,gBAAe,CAAE,CAAC,EAEnK,OADAR,EAAQS,eAAeV,EAAKG,YAAa,CAAA,EAClCH,EAAKb,QAAO,EAAKc,EAAQd,QAAO,CACzC,CCoBe,SAASwB,WAAWC,EAAeC,GAChDrC,aAAa,EAAGtV,SAAS,EACzB,IAAI4X,EAAWhC,OAAO8B,CAAa,EAC/BG,EAAYjC,OAAO+B,CAAc,EACjCG,EAAOF,EAAS3B,QAAS,EAAG4B,EAAU5B,QAAO,EAEjD,OAAI6B,EAAO,EACF,CAAC,EACQ,EAAPA,EACF,EAEAA,CAEX,CCNO,IAAIC,qBAAuB,IAUvBC,mBAAqB,KCpDhC,SAASvC,UAAQC,GAAmV,OAAtOD,UAArD,YAAlB,OAAO1M,QAAoD,UAA3B,OAAOA,OAAO4M,SAAmC,SAAiBD,GAAO,OAAO,OAAOA,CAAI,EAAuB,SAAiBA,GAAO,OAAOA,GAAyB,YAAlB,OAAO3M,QAAyB2M,EAAIzU,cAAgB8H,QAAU2M,IAAQ3M,OAAOrE,UAAY,SAAW,OAAOgR,CAAI,GAAqBA,CAAG,CAAI,CAoC3W,SAASuC,OAAOzT,GAE7B,OADA8Q,aAAa,EAAGtV,SAAS,EAClBwE,aAAiBwR,MAA2B,WAAnBP,UAAQjR,CAAK,GAA4D,kBAA1CoG,OAAOlG,UAAUqR,SAAS5V,KAAKqE,CAAK,CACrG,CCJe,SAAS0T,QAAQ3B,GAG9B,IAIIO,EAJJ,OAFAxB,aAAa,EAAGtV,SAAS,EAEzB,EAAKiY,CAAAA,OAAO1B,CAAS,GAA0B,UAArB,OAAOA,IAI7BO,EAAOlB,OAAOW,CAAS,EACnBrB,MAAMD,OAAO6B,CAAI,CAAC,GAC5B,CCpBe,SAASqB,2BAA2BT,EAAeC,GAChErC,aAAa,EAAGtV,SAAS,EACzB,IAAI4X,EAAWhC,OAAO8B,CAAa,EAC/BG,EAAYjC,OAAO+B,CAAc,EAGrC,OAAkB,IAFHC,EAASX,YAAa,EAAGY,EAAUZ,YAAW,IAC7CW,EAASV,SAAU,EAAGW,EAAUX,SAAQ,EAE1D,CCNe,SAASkB,yBAAyBR,EAAUC,GAEzD,OADAvC,aAAa,EAAGtV,SAAS,EAClB4V,OAAOgC,CAAQ,EAAE3B,QAAO,EAAKL,OAAOiC,CAAS,EAAE5B,SACxD,CC5BA,IAAIoC,YAAc,CAChBjD,KAAMD,KAAKC,KACXkD,MAAOnD,KAAKmD,MACZjD,MAAOF,KAAKE,MACZkD,MAAO,SAAe/T,GACpB,OAAOA,EAAQ,EAAI2Q,KAAKC,KAAK5Q,CAAK,EAAI2Q,KAAKE,MAAM7Q,CAAK,CACvD,CAEH,EACIgU,sBAAwB,QACrB,SAASC,kBAAkBC,GAChC,OAAOA,EAASL,YAAYK,GAAUL,YAAYG,sBACpD,CCSe,SAASG,SAASpC,GAC/BjB,aAAa,EAAGtV,SAAS,EACzB,IAAI8W,EAAOlB,OAAOW,CAAS,EAE3B,OADAO,EAAK8B,SAAS,GAAI,GAAI,GAAI,GAAG,EACtB9B,CACT,CCLe,SAAS+B,WAAWtC,GACjCjB,aAAa,EAAGtV,SAAS,EACzB,IAAI8W,EAAOlB,OAAOW,CAAS,EACvBuC,EAAQhC,EAAKI,WAGjB,OAFAJ,EAAKiC,YAAYjC,EAAKG,YAAa,EAAE6B,EAAQ,EAAG,CAAC,EACjDhC,EAAK8B,SAAS,GAAI,GAAI,GAAI,GAAG,EACtB9B,CACT,CCNe,SAASkC,iBAAiBzC,GACvCjB,aAAa,EAAGtV,SAAS,EACzB,IAAI8W,EAAOlB,OAAOW,CAAS,EAC3B,OAAOoC,SAAS7B,CAAI,EAAEb,QAAO,IAAO4C,WAAW/B,CAAI,EAAEb,SACvD,CCFe,SAASgD,mBAAmBvB,EAAeC,GACxDrC,aAAa,EAAGtV,SAAS,EACzB,IAAI4X,EAAWhC,OAAO8B,CAAa,EAC/BG,EAAYjC,OAAO+B,CAAc,EACjCuB,EAAOzB,WAAWG,EAAUC,CAAS,EACrCsB,EAAahE,KAAKiE,IAAIjB,2BAA2BP,EAAUC,CAAS,CAAC,EAIvEwB,EADEF,EAAa,EACN,GAEmB,IAAxBvB,EAASV,YAAyC,GAArBU,EAAST,QAAS,GAGjDS,EAAS0B,QAAQ,EAAE,EAGrB1B,EAAS2B,SAAS3B,EAASV,SAAQ,EAAKgC,EAAOC,CAAU,EAGrDK,EAAqB/B,WAAWG,EAAUC,CAAS,IAAM,CAACqB,EAE1DF,iBAAiBpD,OAAO8B,CAAa,CAAC,GAAoB,IAAfyB,GAA6D,IAAzC1B,WAAWC,EAAeG,CAAS,IACpG2B,EAAqB,CAAA,GAGdN,GAAQC,EAAalE,OAAOuE,CAAkB,IAIzD,OAAkB,IAAXH,EAAe,EAAIA,CAC5B,CC3Be,SAASI,oBAAoB7B,EAAUC,EAAWrF,GAC/D8C,aAAa,EAAGtV,SAAS,EACzB,IAAI8X,EAAOM,yBAAyBR,EAAUC,CAAS,EAAI,IAC3D,OAAOY,kBAAkBjG,MAAAA,EAAyC,KAAA,EAASA,EAAQkH,cAAc,EAAE5B,CAAI,CACzG,CCVe,SAAS6B,gBAAgBpD,EAAWC,GAGjD,OAFAlB,aAAa,EAAGtV,SAAS,EAElBsW,gBAAgBC,EAAW,CADrB1B,UAAU2B,CAAW,CACO,CAC3C,CCxBA,IAAIoD,oBAAsB,MACX,SAASC,gBAAgBtD,GACtCjB,aAAa,EAAGtV,SAAS,EACzB,IAAI8W,EAAOlB,OAAOW,CAAS,EACvBE,EAAYK,EAAKb,UAGjB6D,GAFJhD,EAAKiD,YAAY,EAAG,CAAC,EACrBjD,EAAKkD,YAAY,EAAG,EAAG,EAAG,CAAC,EACAlD,EAAKb,WAEhC,OAAOd,KAAKE,OADKoB,EAAYqD,GACEF,mBAAmB,EAAI,CACxD,CCVe,SAASK,kBAAkB1D,GACxCjB,aAAa,EAAGtV,SAAS,EACzB,IACI8W,EAAOlB,OAAOW,CAAS,EACvB2D,EAAMpD,EAAKqD,YACXrC,GAAQoC,EAHO,EAGc,EAAI,GAAKA,EAHvB,EAMnB,OAFApD,EAAKsD,WAAWtD,EAAKuD,WAAY,EAAGvC,CAAI,EACxChB,EAAKkD,YAAY,EAAG,EAAG,EAAG,CAAC,EACpBlD,CACT,CCRe,SAASwD,kBAAkB/D,GACxCjB,aAAa,EAAGtV,SAAS,EACzB,IAAI8W,EAAOlB,OAAOW,CAAS,EACvBgE,EAAOzD,EAAK0D,iBACZC,EAA4B,IAAIzE,KAAK,CAAC,EAGtC0E,GAFJD,EAA0BjD,eAAe+C,EAAO,EAAG,EAAG,CAAC,EACvDE,EAA0BT,YAAY,EAAG,EAAG,EAAG,CAAC,EAC1BC,kBAAkBQ,CAAyB,GAC7DE,EAA4B,IAAI3E,KAAK,CAAC,EAGtC4E,GAFJD,EAA0BnD,eAAe+C,EAAM,EAAG,CAAC,EACnDI,EAA0BX,YAAY,EAAG,EAAG,EAAG,CAAC,EAC1BC,kBAAkBU,CAAyB,GAEjE,OAAI7D,EAAKb,QAAO,GAAMyE,EAAgBzE,QAAO,EACpCsE,EAAO,EACLzD,EAAKb,QAAS,GAAI2E,EAAgB3E,QAAO,EAC3CsE,EAEAA,EAAO,CAElB,CCpBe,SAASM,sBAAsBtE,GAC5CjB,aAAa,EAAGtV,SAAS,EACzB,IAAIua,EAAOD,kBAAkB/D,CAAS,EAClCuE,EAAkB,IAAI9E,KAAK,CAAC,EAIhC,OAHA8E,EAAgBtD,eAAe+C,EAAM,EAAG,CAAC,EACzCO,EAAgBd,YAAY,EAAG,EAAG,EAAG,CAAC,EAC3BC,kBAAkBa,CAAe,CAE9C,CCPA,IAAIC,uBAAuB,OACZ,SAASC,cAAczE,GACpCjB,aAAa,EAAGtV,SAAS,EACzB,IAAI8W,EAAOlB,OAAOW,CAAS,EACvBuB,EAAOmC,kBAAkBnD,CAAI,EAAEb,QAAS,EAAG4E,sBAAsB/D,CAAI,EAAEb,UAI3E,OAAOd,KAAKmD,MAAMR,EAAOiD,sBAAoB,EAAI,CACnD,CCTe,SAASE,eAAe1E,EAAW/D,GAGhD8C,aAAa,EAAGtV,SAAS,EAFzB,IAUI8W,EAEAgB,EATAnB,EAAiBC,oBACjBsE,EAAerG,UAAU,OAACsG,EAAO,OAACC,EAAQ,OAACC,EAAQ,OAACC,EAAwB9I,MAAAA,EAAyC,KAAA,EAASA,EAAQ0I,cAA6DI,EAAwB9I,MAAAA,GAAkD,OAAC+I,EAAkB/I,EAAQgJ,SAA0D,OAACC,EAAwBF,EAAgB/I,SAAwD,KAAA,EAASiJ,EAAsBP,cAA6CG,EAAQ1E,EAAeuE,cAA6CE,EAAQ,OAACM,EAAwB/E,EAAe6E,SAAgE,OAACG,EAAyBD,EAAsBlJ,SAAyD,KAAA,EAASmJ,EAAuBT,cAA4CC,EAAO,CAAC,EAEp4B,GAAsB,GAAhBD,GAAqBA,GAAgB,EAS3C,OAHIpD,IADAoC,GADApD,EAAOlB,OAAOW,CAAS,GACZ4D,aACGe,EAAe,EAAI,GAAKhB,EAAMgB,EAChDpE,EAAKsD,WAAWtD,EAAKuD,WAAY,EAAGvC,CAAI,EACxChB,EAAKkD,YAAY,EAAG,EAAG,EAAG,CAAC,EACpBlD,EARL,MAAM,IAAI8E,WAAW,kDAAkD,CAS3E,CChBe,SAASC,eAAetF,EAAW/D,GAGhD8C,aAAa,EAAGtV,SAAS,EAFzB,IAeI0a,EACAoB,EAbAhF,EAAOlB,OAAOW,CAAS,EACvBgE,EAAOzD,EAAK0D,iBACZ7D,EAAiBC,oBACjBmF,EAAwBlH,UAAU,OAACsG,EAAO,OAACC,EAAQ,OAACC,EAAQ,OAACW,EAAwBxJ,MAAAA,EAAyC,KAAA,EAASA,EAAQuJ,uBAAsEC,EAAwBxJ,MAAAA,GAAkD,OAAC+I,EAAkB/I,EAAQgJ,SAA0D,OAACC,EAAwBF,EAAgB/I,SAAwD,KAAA,EAASiJ,EAAsBM,uBAAsDV,EAAQ1E,EAAeoF,uBAAsDX,EAAQ,OAACM,EAAwB/E,EAAe6E,SAAgE,OAACG,EAAyBD,EAAsBlJ,SAAyD,KAAA,EAASmJ,EAAuBI,uBAAqDZ,EAAO,CAAC,EAEj7B,GAA+B,GAAzBY,GAA8BA,GAAyB,EAa7D,OATIE,EAAsB,IAAIjG,KAAK,CAAC,GAChBwB,eAAe+C,EAAO,EAAG,EAAGwB,CAAqB,EACrEE,EAAoBjC,YAAY,EAAG,EAAG,EAAG,CAAC,EACtCU,EAAkBO,eAAegB,EAAqBzJ,CAAO,GAC7DsJ,EAAsB,IAAI9F,KAAK,CAAC,GAChBwB,eAAe+C,EAAM,EAAGwB,CAAqB,EACjED,EAAoB9B,YAAY,EAAG,EAAG,EAAG,CAAC,EACtCY,EAAkBK,eAAea,EAAqBtJ,CAAO,EAE7DsE,EAAKb,QAAO,GAAMyE,EAAgBzE,QAAO,EACpCsE,EAAO,EACLzD,EAAKb,QAAS,GAAI2E,EAAgB3E,QAAO,EAC3CsE,EAEAA,EAAO,EAjBd,MAAM,IAAIqB,WAAW,2DAA2D,CAmBpF,CC7Be,SAASM,mBAAmB3F,EAAW/D,GAGpD8C,aAAa,EAAGtV,SAAS,EAFzB,IAGI2W,EAAiBC,oBACjBmF,EAAwBlH,UAAU,OAACsG,EAAO,OAACC,EAAQ,OAACC,EAAQ,OAACW,EAAwBxJ,MAAAA,EAAyC,KAAA,EAASA,EAAQuJ,uBAAsEC,EAAwBxJ,MAAAA,GAAkD,OAAC+I,EAAkB/I,EAAQgJ,SAA0D,OAACC,EAAwBF,EAAgB/I,SAAwD,KAAA,EAASiJ,EAAsBM,uBAAsDV,EAAQ1E,EAAeoF,uBAAsDX,EAAQ,OAACM,EAAwB/E,EAAe6E,SAAgE,OAACG,EAAyBD,EAAsBlJ,SAAyD,KAAA,EAASmJ,EAAuBI,uBAAqDZ,EAAO,CAAC,EAC76BZ,EAAOsB,eAAetF,EAAW/D,CAAO,EACxC2J,EAAY,IAAInG,KAAK,CAAC,EAI1B,OAHAmG,EAAU3E,eAAe+C,EAAM,EAAGwB,CAAqB,EACvDI,EAAUnC,YAAY,EAAG,EAAG,EAAG,CAAC,EACrBiB,eAAekB,EAAW3J,CAAO,CAE9C,CCbA,IAAIuI,qBAAuB,OACZ,SAASqB,WAAW7F,EAAW/D,GAC5C8C,aAAa,EAAGtV,SAAS,EACzB,IAAI8W,EAAOlB,OAAOW,CAAS,EACvBuB,EAAOmD,eAAenE,EAAMtE,CAAO,EAAEyD,UAAYiG,mBAAmBpF,EAAMtE,CAAO,EAAEyD,QAAO,EAI9F,OAAOd,KAAKmD,MAAMR,EAAOiD,oBAAoB,EAAI,CACnD,CCbe,SAASsB,gBAAgBrH,EAAQsH,GAI9C,IAHA,IAAIpD,EAAOlE,EAAS,EAAI,IAAM,GAC1BuH,EAASpH,KAAKiE,IAAIpE,CAAM,EAAEe,SAAQ,EAE/BwG,EAAOtc,OAASqc,GACrBC,EAAS,IAAMA,EAGjB,OAAOrD,EAAOqD,CAChB,CCKA,IAAIC,aAAa,CAEfpb,EAAG,SAAW0V,EAAM2F,GASdC,EAAa5F,EAAK0D,iBAElBD,EAAoB,EAAbmC,EAAiBA,EAAa,EAAIA,EAC7C,OAAOL,gBAA0B,OAAVI,EAAiBlC,EAAO,IAAMA,EAAMkC,EAAMxc,MAAM,CACxE,EAEDkD,EAAG,SAAW2T,EAAM2F,GACd3D,EAAQhC,EAAK6F,cACjB,MAAiB,MAAVF,EAAgB9J,OAAOmG,EAAQ,CAAC,EAAIuD,gBAAgBvD,EAAQ,EAAG,CAAC,CACxE,EAEDvX,EAAG,SAAWuV,EAAM2F,GAClB,OAAOJ,gBAAgBvF,EAAKuD,WAAY,EAAEoC,EAAMxc,MAAM,CACvD,EAEDP,EAAG,SAAWoX,EAAM2F,GAClB,IAAIG,EAAgD,GAA3B9F,EAAK+F,YAAW,EAAK,GAAU,KAAO,KAE/D,OAAQJ,GACN,IAAK,IACL,IAAK,KACH,OAAOG,EAAmB/L,cAE5B,IAAK,MACH,OAAO+L,EAET,IAAK,QACH,OAAOA,EAAmB,GAG5B,QACE,MAA8B,OAAvBA,EAA8B,OAAS,MACjD,CACF,EAED/c,EAAG,SAAWiX,EAAM2F,GAClB,OAAOJ,gBAAgBvF,EAAK+F,YAAa,EAAG,IAAM,GAAIJ,EAAMxc,MAAM,CACnE,EAEDsD,EAAG,SAAWuT,EAAM2F,GAClB,OAAOJ,gBAAgBvF,EAAK+F,YAAa,EAAEJ,EAAMxc,MAAM,CACxD,EAED+C,EAAG,SAAW8T,EAAM2F,GAClB,OAAOJ,gBAAgBvF,EAAKgG,cAAe,EAAEL,EAAMxc,MAAM,CAC1D,EAEDR,EAAG,SAAWqX,EAAM2F,GAClB,OAAOJ,gBAAgBvF,EAAKiG,cAAe,EAAEN,EAAMxc,MAAM,CAC1D,EAED+G,EAAG,SAAW8P,EAAM2F,GAClB,IAAIO,EAAiBP,EAAMxc,OACvBgd,EAAenG,EAAKoG,qBAExB,OAAOb,gBADiBlH,KAAKE,MAAM4H,EAAe9H,KAAKgI,IAAI,GAAIH,EAAiB,CAAC,CAAC,EACxCP,EAAMxc,MAAM,CACvD,CACH,EC3EImd,cAAgB,CAClBC,GAAI,KACJC,GAAI,KACJC,SAAU,WACVC,KAAM,OACNC,QAAS,UACTC,UAAW,YACXC,QAAS,UACTC,MAAO,OACT,EA+CIpB,WAAa,CAEfxR,EAAG,SAAW8L,EAAM2F,EAAOoB,GACzB,IAAIC,EAA8B,EAAxBhH,EAAK0D,eAAgB,EAAO,EAAI,EAE1C,OAAQiC,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAOoB,EAASC,IAAIA,EAAK,CACvBpL,MAAO,aACjB,CAAS,EAGH,IAAK,QACH,OAAOmL,EAASC,IAAIA,EAAK,CACvBpL,MAAO,QACjB,CAAS,EAIH,QACE,OAAOmL,EAASC,IAAIA,EAAK,CACvBpL,MAAO,MACjB,CAAS,CACJ,CACF,EAEDtR,EAAG,SAAW0V,EAAM2F,EAAOoB,GAEzB,IACMnB,EADN,MAAc,OAAVD,GACEC,EAAa5F,EAAK0D,iBAGfqD,EAASE,cADQ,EAAbrB,EAAiBA,EAAa,EAAIA,EACT,CAClCsB,KAAM,MACd,CAAO,GAGIC,aAAgB7c,EAAE0V,EAAM2F,CAAK,CACrC,EAED9R,EAAG,SAAWmM,EAAM2F,EAAOoB,EAAUrL,GAC/B0L,EAAiBrC,eAAe/E,EAAMtE,CAAO,EAE7C2L,EAA4B,EAAjBD,EAAqBA,EAAiB,EAAIA,EAEzD,MAAc,OAAVzB,EAEKJ,gBADY8B,EAAW,IACO,CAAC,EAI1B,OAAV1B,EACKoB,EAASE,cAAcI,EAAU,CACtCH,KAAM,MACd,CAAO,EAII3B,gBAAgB8B,EAAU1B,EAAMxc,MAAM,CAC9C,EAED6I,EAAG,SAAWgO,EAAM2F,GAGlB,OAAOJ,gBAFW/B,kBAAkBxD,CAAI,EAEJ2F,EAAMxc,MAAM,CACjD,EAUDd,EAAG,SAAW2X,EAAM2F,GAElB,OAAOJ,gBADIvF,EAAK0D,iBACaiC,EAAMxc,MAAM,CAC1C,EAEDwL,EAAG,SAAWqL,EAAM2F,EAAOoB,GACzB,IAAIO,EAAUjJ,KAAKC,MAAM0B,EAAK6F,YAAa,EAAG,GAAK,CAAC,EAEpD,OAAQF,GAEN,IAAK,IACH,OAAO9J,OAAOyL,CAAO,EAGvB,IAAK,KACH,OAAO/B,gBAAgB+B,EAAS,CAAC,EAGnC,IAAK,KACH,OAAOP,EAASE,cAAcK,EAAS,CACrCJ,KAAM,SAChB,CAAS,EAGH,IAAK,MACH,OAAOH,EAASO,QAAQA,EAAS,CAC/B1L,MAAO,cACPjR,QAAS,YACnB,CAAS,EAGH,IAAK,QACH,OAAOoc,EAASO,QAAQA,EAAS,CAC/B1L,MAAO,SACPjR,QAAS,YACnB,CAAS,EAIH,QACE,OAAOoc,EAASO,QAAQA,EAAS,CAC/B1L,MAAO,OACPjR,QAAS,YACnB,CAAS,CACJ,CACF,EAEDwF,EAAG,SAAW6P,EAAM2F,EAAOoB,GACzB,IAAIO,EAAUjJ,KAAKC,MAAM0B,EAAK6F,YAAa,EAAG,GAAK,CAAC,EAEpD,OAAQF,GAEN,IAAK,IACH,OAAO9J,OAAOyL,CAAO,EAGvB,IAAK,KACH,OAAO/B,gBAAgB+B,EAAS,CAAC,EAGnC,IAAK,KACH,OAAOP,EAASE,cAAcK,EAAS,CACrCJ,KAAM,SAChB,CAAS,EAGH,IAAK,MACH,OAAOH,EAASO,QAAQA,EAAS,CAC/B1L,MAAO,cACPjR,QAAS,YACnB,CAAS,EAGH,IAAK,QACH,OAAOoc,EAASO,QAAQA,EAAS,CAC/B1L,MAAO,SACPjR,QAAS,YACnB,CAAS,EAIH,QACE,OAAOoc,EAASO,QAAQA,EAAS,CAC/B1L,MAAO,OACPjR,QAAS,YACnB,CAAS,CACJ,CACF,EAED0B,EAAG,SAAW2T,EAAM2F,EAAOoB,GACzB,IAAI/E,EAAQhC,EAAK6F,cAEjB,OAAQF,GACN,IAAK,IACL,IAAK,KACH,OAAOwB,aAAgB9a,EAAE2T,EAAM2F,CAAK,EAGtC,IAAK,KACH,OAAOoB,EAASE,cAAcjF,EAAQ,EAAG,CACvCkF,KAAM,OAChB,CAAS,EAGH,IAAK,MACH,OAAOH,EAAS/E,MAAMA,EAAO,CAC3BpG,MAAO,cACPjR,QAAS,YACnB,CAAS,EAGH,IAAK,QACH,OAAOoc,EAAS/E,MAAMA,EAAO,CAC3BpG,MAAO,SACPjR,QAAS,YACnB,CAAS,EAIH,QACE,OAAOoc,EAAS/E,MAAMA,EAAO,CAC3BpG,MAAO,OACPjR,QAAS,YACnB,CAAS,CACJ,CACF,EAEDkE,EAAG,SAAWmR,EAAM2F,EAAOoB,GACzB,IAAI/E,EAAQhC,EAAK6F,cAEjB,OAAQF,GAEN,IAAK,IACH,OAAO9J,OAAOmG,EAAQ,CAAC,EAGzB,IAAK,KACH,OAAOuD,gBAAgBvD,EAAQ,EAAG,CAAC,EAGrC,IAAK,KACH,OAAO+E,EAASE,cAAcjF,EAAQ,EAAG,CACvCkF,KAAM,OAChB,CAAS,EAGH,IAAK,MACH,OAAOH,EAAS/E,MAAMA,EAAO,CAC3BpG,MAAO,cACPjR,QAAS,YACnB,CAAS,EAGH,IAAK,QACH,OAAOoc,EAAS/E,MAAMA,EAAO,CAC3BpG,MAAO,SACPjR,QAAS,YACnB,CAAS,EAIH,QACE,OAAOoc,EAAS/E,MAAMA,EAAO,CAC3BpG,MAAO,OACPjR,QAAS,YACnB,CAAS,CACJ,CACF,EAEDkB,EAAG,SAAWmU,EAAM2F,EAAOoB,EAAUrL,GAC/B6L,EAAOjC,WAAWtF,EAAMtE,CAAO,EAEnC,MAAc,OAAViK,EACKoB,EAASE,cAAcM,EAAM,CAClCL,KAAM,MACd,CAAO,EAGI3B,gBAAgBgC,EAAM5B,EAAMxc,MAAM,CAC1C,EAEDiE,EAAG,SAAW4S,EAAM2F,EAAOoB,GACrBS,EAAUtD,cAAclE,CAAI,EAEhC,MAAc,OAAV2F,EACKoB,EAASE,cAAcO,EAAS,CACrCN,KAAM,MACd,CAAO,EAGI3B,gBAAgBiC,EAAS7B,EAAMxc,MAAM,CAC7C,EAEDsB,EAAG,SAAWuV,EAAM2F,EAAOoB,GACzB,MAAc,OAAVpB,EACKoB,EAASE,cAAcjH,EAAKuD,WAAU,EAAI,CAC/C2D,KAAM,MACd,CAAO,EAGIC,aAAgB1c,EAAEuV,EAAM2F,CAAK,CACrC,EAEDhT,EAAG,SAAWqN,EAAM2F,EAAOoB,GACrBU,EAAY1E,gBAAgB/C,CAAI,EAEpC,MAAc,OAAV2F,EACKoB,EAASE,cAAcQ,EAAW,CACvCP,KAAM,WACd,CAAO,EAGI3B,gBAAgBkC,EAAW9B,EAAMxc,MAAM,CAC/C,EAEDwI,EAAG,SAAWqO,EAAM2F,EAAOoB,GACzB,IAAIW,EAAY1H,EAAKqD,YAErB,OAAQsC,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAOoB,EAAS3D,IAAIsE,EAAW,CAC7B9L,MAAO,cACPjR,QAAS,YACnB,CAAS,EAGH,IAAK,QACH,OAAOoc,EAAS3D,IAAIsE,EAAW,CAC7B9L,MAAO,SACPjR,QAAS,YACnB,CAAS,EAGH,IAAK,SACH,OAAOoc,EAAS3D,IAAIsE,EAAW,CAC7B9L,MAAO,QACPjR,QAAS,YACnB,CAAS,EAIH,QACE,OAAOoc,EAAS3D,IAAIsE,EAAW,CAC7B9L,MAAO,OACPjR,QAAS,YACnB,CAAS,CACJ,CACF,EAEDlC,EAAG,SAAWuX,EAAM2F,EAAOoB,EAAUrL,GACnC,IAAIgM,EAAY1H,EAAKqD,YACjBsE,GAAkBD,EAAYhM,EAAQ0I,aAAe,GAAK,GAAK,EAEnE,OAAQuB,GAEN,IAAK,IACH,OAAO9J,OAAO8L,CAAc,EAG9B,IAAK,KACH,OAAOpC,gBAAgBoC,EAAgB,CAAC,EAG1C,IAAK,KACH,OAAOZ,EAASE,cAAcU,EAAgB,CAC5CT,KAAM,KAChB,CAAS,EAEH,IAAK,MACH,OAAOH,EAAS3D,IAAIsE,EAAW,CAC7B9L,MAAO,cACPjR,QAAS,YACnB,CAAS,EAGH,IAAK,QACH,OAAOoc,EAAS3D,IAAIsE,EAAW,CAC7B9L,MAAO,SACPjR,QAAS,YACnB,CAAS,EAGH,IAAK,SACH,OAAOoc,EAAS3D,IAAIsE,EAAW,CAC7B9L,MAAO,QACPjR,QAAS,YACnB,CAAS,EAIH,QACE,OAAOoc,EAAS3D,IAAIsE,EAAW,CAC7B9L,MAAO,OACPjR,QAAS,YACnB,CAAS,CACJ,CACF,EAEDjC,EAAG,SAAWsX,EAAM2F,EAAOoB,EAAUrL,GACnC,IAAIgM,EAAY1H,EAAKqD,YACjBsE,GAAkBD,EAAYhM,EAAQ0I,aAAe,GAAK,GAAK,EAEnE,OAAQuB,GAEN,IAAK,IACH,OAAO9J,OAAO8L,CAAc,EAG9B,IAAK,KACH,OAAOpC,gBAAgBoC,EAAgBhC,EAAMxc,MAAM,EAGrD,IAAK,KACH,OAAO4d,EAASE,cAAcU,EAAgB,CAC5CT,KAAM,KAChB,CAAS,EAEH,IAAK,MACH,OAAOH,EAAS3D,IAAIsE,EAAW,CAC7B9L,MAAO,cACPjR,QAAS,YACnB,CAAS,EAGH,IAAK,QACH,OAAOoc,EAAS3D,IAAIsE,EAAW,CAC7B9L,MAAO,SACPjR,QAAS,YACnB,CAAS,EAGH,IAAK,SACH,OAAOoc,EAAS3D,IAAIsE,EAAW,CAC7B9L,MAAO,QACPjR,QAAS,YACnB,CAAS,EAIH,QACE,OAAOoc,EAAS3D,IAAIsE,EAAW,CAC7B9L,MAAO,OACPjR,QAAS,YACnB,CAAS,CACJ,CACF,EAEDrC,EAAG,SAAW0X,EAAM2F,EAAOoB,GACzB,IAAIW,EAAY1H,EAAKqD,YACjBuE,EAA6B,IAAdF,EAAkB,EAAIA,EAEzC,OAAQ/B,GAEN,IAAK,IACH,OAAO9J,OAAO+L,CAAY,EAG5B,IAAK,KACH,OAAOrC,gBAAgBqC,EAAcjC,EAAMxc,MAAM,EAGnD,IAAK,KACH,OAAO4d,EAASE,cAAcW,EAAc,CAC1CV,KAAM,KAChB,CAAS,EAGH,IAAK,MACH,OAAOH,EAAS3D,IAAIsE,EAAW,CAC7B9L,MAAO,cACPjR,QAAS,YACnB,CAAS,EAGH,IAAK,QACH,OAAOoc,EAAS3D,IAAIsE,EAAW,CAC7B9L,MAAO,SACPjR,QAAS,YACnB,CAAS,EAGH,IAAK,SACH,OAAOoc,EAAS3D,IAAIsE,EAAW,CAC7B9L,MAAO,QACPjR,QAAS,YACnB,CAAS,EAIH,QACE,OAAOoc,EAAS3D,IAAIsE,EAAW,CAC7B9L,MAAO,OACPjR,QAAS,YACnB,CAAS,CACJ,CACF,EAED/B,EAAG,SAAWoX,EAAM2F,EAAOoB,GACzB,IACIjB,EAAmC,GAD3B9F,EAAK+F,cACgB,GAAU,KAAO,KAElD,OAAQJ,GACN,IAAK,IACL,IAAK,KACH,OAAOoB,EAASc,UAAU/B,EAAoB,CAC5ClK,MAAO,cACPjR,QAAS,YACnB,CAAS,EAEH,IAAK,MACH,OAAOoc,EAASc,UAAU/B,EAAoB,CAC5ClK,MAAO,cACPjR,QAAS,YACnB,CAAS,EAAEqC,YAAW,EAEhB,IAAK,QACH,OAAO+Z,EAASc,UAAU/B,EAAoB,CAC5ClK,MAAO,SACPjR,QAAS,YACnB,CAAS,EAGH,QACE,OAAOoc,EAASc,UAAU/B,EAAoB,CAC5ClK,MAAO,OACPjR,QAAS,YACnB,CAAS,CACJ,CACF,EAEDK,EAAG,SAAWgV,EAAM2F,EAAOoB,GACzB,IAAIe,EAAQ9H,EAAK+F,cAIfD,EADY,KAAVgC,EACmBxB,cAAcI,KAChB,IAAVoB,EACYxB,cAAcG,SAEA,GAAdqB,EAAQ,GAAU,KAAO,KAGhD,OAAQnC,GACN,IAAK,IACL,IAAK,KACH,OAAOoB,EAASc,UAAU/B,EAAoB,CAC5ClK,MAAO,cACPjR,QAAS,YACnB,CAAS,EAEH,IAAK,MACH,OAAOoc,EAASc,UAAU/B,EAAoB,CAC5ClK,MAAO,cACPjR,QAAS,YACnB,CAAS,EAAEqC,YAAW,EAEhB,IAAK,QACH,OAAO+Z,EAASc,UAAU/B,EAAoB,CAC5ClK,MAAO,SACPjR,QAAS,YACnB,CAAS,EAGH,QACE,OAAOoc,EAASc,UAAU/B,EAAoB,CAC5ClK,MAAO,OACPjR,QAAS,YACnB,CAAS,CACJ,CACF,EAEDyF,EAAG,SAAW4P,EAAM2F,EAAOoB,GACzB,IAAIe,EAAQ9H,EAAK+F,cAIfD,EADW,IAATgC,EACmBxB,cAAcO,QACjB,IAATiB,EACYxB,cAAcM,UACjB,GAATkB,EACYxB,cAAcK,QAEdL,cAAcQ,MAGrC,OAAQnB,GACN,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAOoB,EAASc,UAAU/B,EAAoB,CAC5ClK,MAAO,cACPjR,QAAS,YACnB,CAAS,EAEH,IAAK,QACH,OAAOoc,EAASc,UAAU/B,EAAoB,CAC5ClK,MAAO,SACPjR,QAAS,YACnB,CAAS,EAGH,QACE,OAAOoc,EAASc,UAAU/B,EAAoB,CAC5ClK,MAAO,OACPjR,QAAS,YACnB,CAAS,CACJ,CACF,EAED5B,EAAG,SAAWiX,EAAM2F,EAAOoB,GACzB,IACMe,EADN,MAAc,OAAVnC,GACEmC,EAAQ9H,EAAK+F,YAAW,EAAK,GAE1BgB,EAASE,cADCa,EAAH,IAAVA,EAAqB,GACKA,EAAO,CACnCZ,KAAM,MACd,CAAO,GAGIC,aAAgBpe,EAAEiX,EAAM2F,CAAK,CACrC,EAEDlZ,EAAG,SAAWuT,EAAM2F,EAAOoB,GACzB,MAAc,OAAVpB,EACKoB,EAASE,cAAcjH,EAAK+F,YAAW,EAAI,CAChDmB,KAAM,MACd,CAAO,EAGIC,aAAgB1a,EAAEuT,EAAM2F,CAAK,CACrC,EAEDtR,EAAG,SAAW2L,EAAM2F,EAAOoB,GACrBe,EAAQ9H,EAAK+F,YAAW,EAAK,GAEjC,MAAc,OAAVJ,EACKoB,EAASE,cAAca,EAAO,CACnCZ,KAAM,MACd,CAAO,EAGI3B,gBAAgBuC,EAAOnC,EAAMxc,MAAM,CAC3C,EAED2B,EAAG,SAAWkV,EAAM2F,EAAOoB,GACrBe,EAAQ9H,EAAK+F,cAGjB,OAFc,IAAV+B,IAAaA,EAAQ,IAEX,OAAVnC,EACKoB,EAASE,cAAca,EAAO,CACnCZ,KAAM,MACd,CAAO,EAGI3B,gBAAgBuC,EAAOnC,EAAMxc,MAAM,CAC3C,EAED+C,EAAG,SAAW8T,EAAM2F,EAAOoB,GACzB,MAAc,OAAVpB,EACKoB,EAASE,cAAcjH,EAAKgG,cAAa,EAAI,CAClDkB,KAAM,QACd,CAAO,EAGIC,aAAgBjb,EAAE8T,EAAM2F,CAAK,CACrC,EAEDhd,EAAG,SAAWqX,EAAM2F,EAAOoB,GACzB,MAAc,OAAVpB,EACKoB,EAASE,cAAcjH,EAAKiG,cAAa,EAAI,CAClDiB,KAAM,QACd,CAAO,EAGIC,aAAgBxe,EAAEqX,EAAM2F,CAAK,CACrC,EAEDzV,EAAG,SAAW8P,EAAM2F,GAClB,OAAOwB,aAAgBjX,EAAE8P,EAAM2F,CAAK,CACrC,EAED/Q,EAAG,SAAWoL,EAAM2F,EAAOoC,EAAWrM,GACpC,IACIsM,GADetM,EAAQuM,eAAiBjI,GACVkI,oBAElC,GAAuB,IAAnBF,EACF,MAAO,IAGT,OAAQrC,GAEN,IAAK,IACH,OAAOwC,kCAAkCH,CAAc,EAKzD,IAAK,OACL,IAAK,KAEH,OAAOI,eAAeJ,CAAc,EAQtC,QACE,OAAOI,eAAeJ,EAAgB,GAAG,CAC5C,CACF,EAEDlc,EAAG,SAAWkU,EAAM2F,EAAOoC,EAAWrM,GACpC,IACIsM,GADetM,EAAQuM,eAAiBjI,GACVkI,oBAElC,OAAQvC,GAEN,IAAK,IACH,OAAOwC,kCAAkCH,CAAc,EAKzD,IAAK,OACL,IAAK,KAEH,OAAOI,eAAeJ,CAAc,EAQtC,QACE,OAAOI,eAAeJ,EAAgB,GAAG,CAC5C,CACF,EAEDla,EAAG,SAAWkS,EAAM2F,EAAOoC,EAAWrM,GACpC,IACIsM,GADetM,EAAQuM,eAAiBjI,GACVkI,oBAElC,OAAQvC,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,MAAO,MAAQ0C,oBAAoBL,EAAgB,GAAG,EAIxD,QACE,MAAO,MAAQI,eAAeJ,EAAgB,GAAG,CACpD,CACF,EAEDpc,EAAG,SAAWoU,EAAM2F,EAAOoC,EAAWrM,GACpC,IACIsM,GADetM,EAAQuM,eAAiBjI,GACVkI,oBAElC,OAAQvC,GAEN,IAAK,IACL,IAAK,KACL,IAAK,MACH,MAAO,MAAQ0C,oBAAoBL,EAAgB,GAAG,EAIxD,QACE,MAAO,MAAQI,eAAeJ,EAAgB,GAAG,CACpD,CACF,EAEDhf,EAAG,SAAWgX,EAAM2F,EAAOoC,EAAWrM,GAChC4M,EAAe5M,EAAQuM,eAAiBjI,EAE5C,OAAOuF,gBADSlH,KAAKE,MAAM+J,EAAanJ,QAAO,EAAK,GAAI,EACtBwG,EAAMxc,MAAM,CAC/C,EAEDgE,EAAG,SAAW6S,EAAM2F,EAAOoC,EAAWrM,GAGpC,OAAO6J,iBAFY7J,EAAQuM,eAAiBjI,GACfb,UACKwG,EAAMxc,MAAM,CAC/C,CACH,EAEA,SAASkf,oBAAoBE,EAAQC,GACnC,IAAIpG,EAAgB,EAATmG,EAAa,IAAM,IAC1BE,EAAYpK,KAAKiE,IAAIiG,CAAM,EAC3BT,EAAQzJ,KAAKE,MAAMkK,EAAY,EAAE,EACjCC,EAAUD,EAAY,GAE1B,OAAgB,GAAZC,EACKtG,EAAOvG,OAAOiM,CAAK,GAGxBa,EAAYH,GAAkB,GAC3BpG,EAAOvG,OAAOiM,CAAK,EAAIa,EAAYpD,gBAAgBmD,EAAS,CAAC,EACtE,CAEA,SAASP,kCAAkCI,EAAQC,GACjD,OAAID,EAAS,IAAO,GACE,EAATA,EAAa,IAAM,KAChBhD,gBAAgBlH,KAAKiE,IAAIiG,CAAM,EAAI,GAAI,CAAC,EAGjDH,eAAeG,EAAQC,CAAc,CAC9C,CAEA,SAASJ,eAAeG,EAAQC,GAC9B,IAAIG,EAAYH,GAAkB,GAC9BpG,EAAgB,EAATmG,EAAa,IAAM,IAC1BE,EAAYpK,KAAKiE,IAAIiG,CAAM,EAG/B,OAAOnG,EAFKmD,gBAAgBlH,KAAKE,MAAMkK,EAAY,EAAE,EAAG,CAAC,EAEnCE,EADRpD,gBAAgBkD,EAAY,GAAI,CAAC,CAEjD,CAEA,IAAAG,aAAelD,WCj2BXmD,kBAAoB,SAA2BxL,EAASyL,GAC1D,OAAQzL,GACN,IAAK,IACH,OAAOyL,EAAW9I,KAAK,CACrBpE,MAAO,OACf,CAAO,EAEH,IAAK,KACH,OAAOkN,EAAW9I,KAAK,CACrBpE,MAAO,QACf,CAAO,EAEH,IAAK,MACH,OAAOkN,EAAW9I,KAAK,CACrBpE,MAAO,MACf,CAAO,EAGH,QACE,OAAOkN,EAAW9I,KAAK,CACrBpE,MAAO,MACf,CAAO,CACJ,CACH,EAEImN,kBAAoB,SAA2B1L,EAASyL,GAC1D,OAAQzL,GACN,IAAK,IACH,OAAOyL,EAAWE,KAAK,CACrBpN,MAAO,OACf,CAAO,EAEH,IAAK,KACH,OAAOkN,EAAWE,KAAK,CACrBpN,MAAO,QACf,CAAO,EAEH,IAAK,MACH,OAAOkN,EAAWE,KAAK,CACrBpN,MAAO,MACf,CAAO,EAGH,QACE,OAAOkN,EAAWE,KAAK,CACrBpN,MAAO,MACf,CAAO,CACJ,CACH,EAEIqN,sBAAwB,SAA+B5L,EAASyL,GAClE,IAQII,EARAlM,EAAcK,EAAQJ,MAAM,WAAW,GAAK,GAC5CkM,EAAcnM,EAAY,GAC1BoM,EAAcpM,EAAY,GAE9B,GAAI,CAACoM,EACH,OAAOP,kBAAkBxL,EAASyL,CAAU,EAK9C,OAAQK,GACN,IAAK,IACHD,EAAiBJ,EAAWO,SAAS,CACnCzN,MAAO,OACf,CAAO,EACD,MAEF,IAAK,KACHsN,EAAiBJ,EAAWO,SAAS,CACnCzN,MAAO,QACf,CAAO,EACD,MAEF,IAAK,MACHsN,EAAiBJ,EAAWO,SAAS,CACnCzN,MAAO,MACf,CAAO,EACD,MAGF,QACEsN,EAAiBJ,EAAWO,SAAS,CACnCzN,MAAO,MACf,CAAO,CAEJ,CAED,OAAOsN,EAAenc,QAAQ,WAAY8b,kBAAkBM,EAAaL,CAAU,CAAC,EAAE/b,QAAQ,WAAYgc,kBAAkBK,EAAaN,CAAU,CAAC,CACtJ,EAEIQ,eAAiB,CACnB9e,EAAGue,kBACH/Y,EAAGiZ,qBACL,EACAM,iBAAeD,eC/FXE,yBAA2B,CAAC,IAAK,MACjCC,wBAA0B,CAAC,KAAM,QAC9B,SAASC,0BAA0B/D,GACxC,MAAmD,CAAC,IAA7C6D,yBAAyB3e,QAAQ8a,CAAK,CAC/C,CACO,SAASgE,yBAAyBhE,GACvC,MAAkD,CAAC,IAA5C8D,wBAAwB5e,QAAQ8a,CAAK,CAC9C,CACO,SAASiE,oBAAoBjE,EAAOkE,EAAQC,GACjD,GAAc,SAAVnE,EACF,MAAM,IAAIb,WAAW,qCAAqC5T,OAAO2Y,EAAQ,wCAAwC,EAAE3Y,OAAO4Y,EAAO,gFAAgF,CAAC,EAC7M,GAAc,OAAVnE,EACT,MAAM,IAAIb,WAAW,iCAAiC5T,OAAO2Y,EAAQ,wCAAwC,EAAE3Y,OAAO4Y,EAAO,gFAAgF,CAAC,EACzM,GAAc,MAAVnE,EACT,MAAM,IAAIb,WAAW,+BAA+B5T,OAAO2Y,EAAQ,oDAAoD,EAAE3Y,OAAO4Y,EAAO,gFAAgF,CAAC,EACnN,GAAc,OAAVnE,EACT,MAAM,IAAIb,WAAW,iCAAiC5T,OAAO2Y,EAAQ,oDAAoD,EAAE3Y,OAAO4Y,EAAO,gFAAgF,CAAC,CAE9N,CClBA,IAAIC,uBAAuB,CACzBC,iBAAkB,CAChBC,IAAK,qBACLC,MAAO,6BACR,EACDC,SAAU,CACRF,IAAK,WACLC,MAAO,mBACR,EACDE,YAAa,gBACbC,iBAAkB,CAChBJ,IAAK,qBACLC,MAAO,6BACR,EACDI,SAAU,CACRL,IAAK,WACLC,MAAO,mBACR,EACDK,YAAa,CACXN,IAAK,eACLC,MAAO,uBACR,EACDM,OAAQ,CACNP,IAAK,SACLC,MAAO,iBACR,EACDO,MAAO,CACLR,IAAK,QACLC,MAAO,gBACR,EACDQ,YAAa,CACXT,IAAK,eACLC,MAAO,uBACR,EACDS,OAAQ,CACNV,IAAK,SACLC,MAAO,iBACR,EACDU,aAAc,CACZX,IAAK,gBACLC,MAAO,wBACR,EACDW,QAAS,CACPZ,IAAK,UACLC,MAAO,kBACR,EACDY,YAAa,CACXb,IAAK,eACLC,MAAO,uBACR,EACDa,OAAQ,CACNd,IAAK,SACLC,MAAO,iBACR,EACDc,WAAY,CACVf,IAAK,cACLC,MAAO,sBACR,EACDe,aAAc,CACZhB,IAAK,gBACLC,MAAO,wBACR,CACH,EAEIgB,iBAAiB,SAAwBvF,EAAOtT,EAAOqJ,GAErDyP,EAAapB,uBAAqBpE,GAGpCpD,EADwB,UAAtB,OAAO4I,EACAA,EACU,IAAV9Y,EACA8Y,EAAWlB,IAEXkB,EAAWjB,MAAMnd,QAAQ,YAAasF,EAAM4M,SAAQ,CAAE,EAGjE,OAAIvD,MAAAA,GAA0CA,EAAQ0P,UAChD1P,EAAQ2P,YAAmC,EAArB3P,EAAQ2P,WACzB,MAAQ9I,EAERA,EAAS,OAIbA,CACT,ECpFI+I,cAAc,CAChBC,KAAM,mBACNC,KAAM,aACNC,OAAQ,WACRC,MAAO,YACT,EACIC,cAAc,CAChBJ,KAAM,iBACNC,KAAM,cACNC,OAAQ,YACRC,MAAO,QACT,EACIE,kBAAkB,CACpBL,KAAM,yBACNC,KAAM,yBACNC,OAAQ,qBACRC,MAAO,oBACT,EACI5C,aAAa,CACf9I,KAAMxE,kBAAkB,CACtBO,QAASuP,cACTxP,aAAc,MAClB,CAAG,EACDkN,KAAMxN,kBAAkB,CACtBO,QAAS4P,cACT7P,aAAc,MAClB,CAAG,EACDuN,SAAU7N,kBAAkB,CAC1BO,QAAS6P,kBACT9P,aAAc,MAClB,CAAG,CACH,EChCI+P,uBAAuB,CACzBC,SAAU,qBACVC,UAAW,mBACXC,MAAO,eACPC,SAAU,kBACVC,SAAU,cACVhC,MAAO,GACT,EAEIiC,iBAAiB,SAAwBxG,EAAOyG,EAAOC,EAAWC,GACpE,OAAOT,uBAAqBlG,EAC9B,ECVI4G,YAAY,CACdC,OAAQ,CAAC,IAAK,KACdC,YAAa,CAAC,KAAM,MACpBC,KAAM,CAAC,gBAAiB,cAC1B,EACIC,gBAAgB,CAClBH,OAAQ,CAAC,IAAK,IAAK,IAAK,KACxBC,YAAa,CAAC,KAAM,KAAM,KAAM,MAChCC,KAAM,CAAC,cAAe,cAAe,cAAe,cACtD,EAKIE,cAAc,CAChBJ,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAChEC,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAC3FC,KAAM,CAAC,UAAW,WAAY,QAAS,QAAS,MAAO,OAAQ,OAAQ,SAAU,YAAa,UAAW,WAAY,WACvH,EACIG,YAAY,CACdL,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACvCd,MAAO,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAC5Ce,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACxDC,KAAM,CAAC,SAAU,SAAU,UAAW,YAAa,WAAY,SAAU,WAC3E,EACII,kBAAkB,CACpBN,OAAQ,CACNjG,GAAI,IACJC,GAAI,IACJC,SAAU,KACVC,KAAM,IACNC,QAAS,UACTC,UAAW,YACXC,QAAS,UACTC,MAAO,OACR,EACD2F,YAAa,CACXlG,GAAI,KACJC,GAAI,KACJC,SAAU,WACVC,KAAM,OACNC,QAAS,UACTC,UAAW,YACXC,QAAS,UACTC,MAAO,OACR,EACD4F,KAAM,CACJnG,GAAI,OACJC,GAAI,OACJC,SAAU,WACVC,KAAM,OACNC,QAAS,UACTC,UAAW,YACXC,QAAS,UACTC,MAAO,OACR,CACH,EACIiG,4BAA4B,CAC9BP,OAAQ,CACNjG,GAAI,IACJC,GAAI,IACJC,SAAU,KACVC,KAAM,IACNC,QAAS,iBACTC,UAAW,mBACXC,QAAS,iBACTC,MAAO,UACR,EACD2F,YAAa,CACXlG,GAAI,KACJC,GAAI,KACJC,SAAU,WACVC,KAAM,OACNC,QAAS,iBACTC,UAAW,mBACXC,QAAS,iBACTC,MAAO,UACR,EACD4F,KAAM,CACJnG,GAAI,OACJC,GAAI,OACJC,SAAU,WACVC,KAAM,OACNC,QAAS,iBACTC,UAAW,mBACXC,QAAS,iBACTC,MAAO,UACR,CACH,EAEIG,gBAAgB,SAAuBjJ,EAAasO,GACtD,IAAIpO,EAASC,OAAOH,CAAW,EAO3BgP,EAAS9O,EAAS,IAEtB,GAAa,GAAT8O,GAAeA,EAAS,GAC1B,OAAQA,EAAS,IACf,KAAK,EACH,OAAO9O,EAAS,KAElB,KAAK,EACH,OAAOA,EAAS,KAElB,KAAK,EACH,OAAOA,EAAS,IACnB,CAGH,OAAOA,EAAS,IAClB,EAEI6I,WAAW,CACbE,cAAeA,gBACfD,IAAKhL,gBAAgB,CACnBO,OAAQgQ,YACRzQ,aAAc,MAClB,CAAG,EACDwL,QAAStL,gBAAgB,CACvBO,OAAQoQ,gBACR7Q,aAAc,OACdW,iBAAkB,SAA0B6K,GAC1C,OAAOA,EAAU,CAClB,CACL,CAAG,EACDtF,MAAOhG,gBAAgB,CACrBO,OAAQqQ,cACR9Q,aAAc,MAClB,CAAG,EACDsH,IAAKpH,gBAAgB,CACnBO,OAAQsQ,YACR/Q,aAAc,MAClB,CAAG,EACD+L,UAAW7L,gBAAgB,CACzBO,OAAQuQ,kBACRhR,aAAc,OACdK,iBAAkB4Q,4BAClB3Q,uBAAwB,MAC5B,CAAG,CACH,EC9II6Q,4BAA4B,wBAC5BC,4BAA4B,OAC5BC,mBAAmB,CACrBX,OAAQ,UACRC,YAAa,6DACbC,KAAM,4DACR,EACIU,mBAAmB,CACrBC,IAAK,CAAC,MAAO,UACf,EACIC,uBAAuB,CACzBd,OAAQ,WACRC,YAAa,YACbC,KAAM,gCACR,EACIa,uBAAuB,CACzBF,IAAK,CAAC,KAAM,KAAM,KAAM,KAC1B,EACIG,qBAAqB,CACvBhB,OAAQ,eACRC,YAAa,sDACbC,KAAM,2FACR,EACIe,qBAAqB,CACvBjB,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtFa,IAAK,CAAC,OAAQ,MAAO,QAAS,OAAQ,QAAS,QAAS,QAAS,OAAQ,MAAO,MAAO,MAAO,MAChG,EACIK,mBAAmB,CACrBlB,OAAQ,YACRd,MAAO,2BACPe,YAAa,kCACbC,KAAM,8DACR,EACIiB,mBAAmB,CACrBnB,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACnDa,IAAK,CAAC,OAAQ,MAAO,OAAQ,MAAO,OAAQ,MAAO,OACrD,EACIO,yBAAyB,CAC3BpB,OAAQ,6DACRa,IAAK,gFACP,EACIQ,yBAAyB,CAC3BR,IAAK,CACH9G,GAAI,MACJC,GAAI,MACJC,SAAU,OACVC,KAAM,OACNC,QAAS,WACTC,UAAW,aACXC,QAAS,WACTC,MAAO,QACR,CACH,EACI7J,QAAQ,CACVgK,cAAerJ,oBAAoB,CACjCf,aAAcoQ,4BACdnP,aAAcoP,4BACd3P,cAAe,SAAuB7P,GACpC,OAAOogB,SAASpgB,EAAO,EAAE,CAC1B,CACL,CAAG,EACDsZ,IAAKtK,aAAa,CAChBI,cAAeqQ,mBACfpQ,kBAAmB,OACnBG,cAAekQ,mBACfjQ,kBAAmB,KACvB,CAAG,EACDmK,QAAS5K,aAAa,CACpBI,cAAewQ,uBACfvQ,kBAAmB,OACnBG,cAAeqQ,uBACfpQ,kBAAmB,MACnBI,cAAe,SAAuBf,GACpC,OAAOA,EAAQ,CAChB,CACL,CAAG,EACDwF,MAAOtF,aAAa,CAClBI,cAAe0Q,qBACfzQ,kBAAmB,OACnBG,cAAeuQ,qBACftQ,kBAAmB,KACvB,CAAG,EACDiG,IAAK1G,aAAa,CAChBI,cAAe4Q,mBACf3Q,kBAAmB,OACnBG,cAAeyQ,mBACfxQ,kBAAmB,KACvB,CAAG,EACD0K,UAAWnL,aAAa,CACtBI,cAAe8Q,yBACf7Q,kBAAmB,MACnBG,cAAe2Q,yBACf1Q,kBAAmB,KACvB,CAAG,CACH,ECjFIuH,SAAS,CACXqJ,KAAM,QACN7C,eAAgBA,iBAChBpC,WAAYA,aACZqD,eAAgBA,iBAChBpF,SAAUA,WACV9J,MAAOA,QACPvB,QAAS,CACP0I,aAAc,EAGda,sBAAuB,CACxB,CACH,EACA+I,KAAetJ,SCPXuJ,uBAAyB,wDAGzBC,2BAA6B,oCAC7BC,oBAAsB,eACtBC,kBAAoB,MACpBC,8BAAgC,WAqSrB,SAASxE,SAAOpK,EAAW6O,EAAgB5S,GAGxD8C,aAAa,EAAGtV,SAAS,EAFzB,IAGIqlB,EAAY1S,OAAOyS,CAAc,EACjCzO,EAAiBC,oBACjB4E,EAAS,OAACL,EAAO,OAACI,EAAkB/I,MAAAA,EAAyC,KAAA,EAASA,EAAQgJ,QAAiDD,EAAkB5E,EAAe6E,QAAsCL,EAAOmK,KAC7NvJ,EAAwBlH,UAAU,OAACuG,EAAQ,OAACC,EAAQ,OAACkK,EAAQ,OAACvJ,EAAwBxJ,MAAAA,EAAyC,KAAA,EAASA,EAAQuJ,uBAAsEC,EAAwBxJ,MAAAA,GAAkD,OAACgT,EAAmBhT,EAAQgJ,SAA2D,OAACiK,EAAwBD,EAAiBhT,SAAwD,KAAA,EAASiT,EAAsB1J,uBAAsDwJ,EAAQ5O,EAAeoF,uBAAsDV,EAAQ,OAACK,EAAwB/E,EAAe6E,SAAgE,OAACG,EAAyBD,EAAsBlJ,SAAyD,KAAA,EAASmJ,EAAuBI,uBAAsDX,EAAQ,CAAC,EAEv7B,GAAI,EAA2B,GAAzBW,GAA8BA,GAAyB,GAC3D,MAAM,IAAIH,WAAW,2DAA2D,EAG9EV,EAAerG,UAAU,OAAC6Q,EAAQ,OAACC,EAAQ,OAACC,EAAQ,OAACtK,EAAwB9I,MAAAA,EAAyC,KAAA,EAASA,EAAQ0I,cAA6DI,EAAwB9I,MAAAA,GAAkD,OAACqT,EAAmBrT,EAAQgJ,SAA2D,OAACsK,EAAwBD,EAAiBrT,SAAwD,KAAA,EAASsT,EAAsB5K,cAA6C0K,EAAQjP,EAAeuE,cAA6CyK,EAAQ,OAACI,EAAyBpP,EAAe6E,SAAiE,OAACwK,EAAyBD,EAAuBvT,SAAyD,KAAA,EAASwT,EAAuB9K,cAA6CwK,EAAQ,CAAC,EAE74B,GAAI,EAAkB,GAAhBxK,GAAqBA,GAAgB,GACzC,MAAM,IAAIU,WAAW,kDAAkD,EAGzE,GAAI,CAACJ,EAAOqC,SACV,MAAM,IAAIjC,WAAW,uCAAuC,EAG9D,GAAI,CAACJ,EAAOoE,WACV,MAAM,IAAIhE,WAAW,yCAAyC,EAGhE,IAUI7E,EACAkP,EAXA7G,EAAexJ,OAAOW,CAAS,EAEnC,GAAK2B,QAAQkH,CAAY,EAwDzB,OAhDIrI,EAAU4C,gBAAgByF,EADTvI,gCAAgCuI,CAAY,CACP,EACtD6G,EAAmB,CACrBlK,sBAAuBA,EACvBb,aAAcA,EACdM,OAAQA,EACRuD,cAAeK,CACnB,EACeiG,EAAUtR,MAAMiR,0BAA0B,EAAE9b,IAAI,SAAUgd,GACrE,IAAIC,EAAiBD,EAAU,GAE/B,MAAuB,MAAnBC,GAA6C,MAAnBA,GAErBC,EADahG,iBAAe+F,IACdD,EAAW1K,EAAOoE,UAAU,EAG5CsG,CACX,CAAG,EAAEG,KAAK,EAAE,EAAEtS,MAAMgR,sBAAsB,EAAE7b,IAAI,SAAUgd,GAEtD,GAAkB,OAAdA,EACF,MAAO,IAGT,IAAIC,EAAiBD,EAAU,GAE/B,GAAuB,MAAnBC,EACF,OAAOG,mBAAmBJ,CAAS,EAGrC,IAAIK,EAAY/J,aAAW2J,GAE3B,GAAII,EASF,OARM/T,MAAAA,GAA0CA,EAAQgU,6BAAgC/F,CAAAA,yBAAyByF,CAAS,GACxHxF,oBAAoBwF,EAAWd,EAAgBzS,OAAO4D,CAAS,CAAC,EAG5D/D,MAAAA,GAA0CA,EAAQiU,8BAAiCjG,CAAAA,0BAA0B0F,CAAS,GAC1HxF,oBAAoBwF,EAAWd,EAAgBzS,OAAO4D,CAAS,CAAC,EAG3DgQ,EAAUxP,EAASmP,EAAW1K,EAAOqC,SAAUoI,CAAgB,EAGxE,GAAIE,EAAepS,MAAMoR,6BAA6B,EACpD,MAAM,IAAIvJ,WAAW,iEAAmEuK,EAAiB,GAAG,EAG9G,OAAOD,CACX,CAAG,EAAEG,KAAK,EAAE,EAtDR,MAAM,IAAIzK,WAAW,oBAAoB,CAwD7C,CAEA,SAAS0K,mBAAmB1F,GAC1B,IAAI8F,EAAU9F,EAAM7M,MAAMkR,mBAAmB,EAE7C,OAAKyB,EAIEA,EAAQ,GAAG7iB,QAAQqhB,kBAAmB,GAAG,EAHvCtE,CAIX,CCjae,SAAS9Q,SAAO6W,EAAQpS,GACrC,GAAc,MAAVoS,EACF,MAAM,IAAInR,UAAU,+DAA+D,EAGrF,IAAK,IAAIoR,KAAYrS,EACf3J,OAAOlG,UAAUqL,eAAe5P,KAAKoU,EAAQqS,CAAQ,IAEvDD,EAAOC,GAAYrS,EAAOqS,IAI9B,OAAOD,CACT,CCZe,SAASE,YAAYtS,GAClC,OAAOzE,SAAO,GAAIyE,CAAM,CAC1B,CCOA,IAAIuS,eAAiB,KACjBC,2BAA6B,KAC7BC,iBAAmB,MACnBC,sBAAwB,MAkFb,SAASjF,iBAAezL,EAAW2Q,EAAe1U,GAG/D8C,aAAa,EAAGtV,SAAS,EAFzB,IAGI2W,EAAiBC,oBACjB4E,EAAS,OAACL,EAAO,OAACI,EAAkB/I,MAAAA,EAAyC,KAAA,EAASA,EAAQgJ,QAAiDD,EAAkB5E,EAAe6E,QAAsCL,EAAOmK,KAEjO,GAAI,CAAC9J,EAAOwG,eACV,MAAM,IAAIpG,WAAW,6CAA6C,EAGpE,IAAIuG,EAAa1K,WAAWlB,EAAW2Q,CAAa,EAEpD,GAAIhS,MAAMiN,CAAU,EAClB,MAAM,IAAIvG,WAAW,oBAAoB,EAG3C,IAkBIuL,EAiDEC,EAnEFC,EAAkBvX,SAAO+W,YAAYrU,CAAO,EAAG,CACjD0P,UAAWoF,QAAQ9U,MAAAA,EAAyC,KAAA,EAASA,EAAQ0P,SAAS,EACtFC,WAAYA,CAChB,CAAG,EAMCtK,EAFe,EAAbsK,GACFvK,EAAWhC,OAAOsR,CAAa,EACnBtR,OAAOW,CAAS,IAE5BqB,EAAWhC,OAAOW,CAAS,EACfX,OAAOsR,CAAa,GAG9BK,EAAU9N,oBAAoB5B,EAAWD,CAAQ,EACjD4P,GAAmB3Q,gCAAgCgB,CAAS,EAAIhB,gCAAgCe,CAAQ,GAAK,IAC7G4H,EAAUrK,KAAKmD,OAAOiP,EAAUC,GAAmB,EAAE,EAGzD,OAAIhI,EAAU,EACRhN,MAAAA,GAA0CA,EAAQiV,eAChDF,EAAU,EACL/L,EAAOwG,eAAe,mBAAoB,EAAGqF,CAAe,EAC1DE,EAAU,GACZ/L,EAAOwG,eAAe,mBAAoB,GAAIqF,CAAe,EAC3DE,EAAU,GACZ/L,EAAOwG,eAAe,mBAAoB,GAAIqF,CAAe,EAC3DE,EAAU,GACZ/L,EAAOwG,eAAe,cAAe,EAAGqF,CAAe,EACrDE,EAAU,GACZ/L,EAAOwG,eAAe,mBAAoB,EAAGqF,CAAe,EAE5D7L,EAAOwG,eAAe,WAAY,EAAGqF,CAAe,EAG7C,IAAZ7H,EACKhE,EAAOwG,eAAe,mBAAoB,EAAGqF,CAAe,EAE5D7L,EAAOwG,eAAe,WAAYxC,EAAS6H,CAAe,EAI5D7H,EAAU,GACZhE,EAAOwG,eAAe,WAAYxC,EAAS6H,CAAe,EACxD7H,EAAU,GACZhE,EAAOwG,eAAe,cAAe,EAAGqF,CAAe,EACrD7H,EAAUsH,gBACflI,EAAQzJ,KAAKmD,MAAMkH,EAAU,EAAE,EAC5BhE,EAAOwG,eAAe,cAAepD,EAAOyI,CAAe,GACzD7H,EAAUuH,2BACZvL,EAAOwG,eAAe,QAAS,EAAGqF,CAAe,EAC/C7H,EAAUwH,kBACfU,EAAOvS,KAAKmD,MAAMkH,EAAUsH,cAAc,EACvCtL,EAAOwG,eAAe,QAAS0F,EAAML,CAAe,GAClD7H,EAAUyH,uBACnBE,EAAShS,KAAKmD,MAAMkH,EAAUwH,gBAAgB,EACvCxL,EAAOwG,eAAe,eAAgBmF,EAAQE,CAAe,IAGtEF,EAASlO,mBAAmBpB,EAAWD,CAAQ,GAElC,IACP+P,EAAexS,KAAKmD,MAAMkH,EAAUwH,gBAAgB,EACjDxL,EAAOwG,eAAe,UAAW2F,EAAcN,CAAe,IAEjEO,EAAyBT,EAAS,GAClCC,EAAQjS,KAAKE,MAAM8R,EAAS,EAAE,EAE9BS,EAAyB,EACpBpM,EAAOwG,eAAe,cAAeoF,EAAOC,CAAe,EACzDO,EAAyB,EAC3BpM,EAAOwG,eAAe,aAAcoF,EAAOC,CAAe,EAE1D7L,EAAOwG,eAAe,eAAgBoF,EAAQ,EAAGC,CAAe,EAG7E,CCpGe,SAASQ,oBAAoBtR,EAAW/D,GAErD,OADA8C,aAAa,EAAGtV,SAAS,EAClB8nB,iBAAgBvR,EAAWP,KAAK+R,IAAK,EAAEvV,CAAO,CACvD,CCxDe,SAASwV,SAASnS,EAAUrD,GAGzC8C,aAAa,EAAGtV,SAAS,EAFzB,IA0BI8f,EAkBEvJ,EAzCF0R,EAAmBpT,UAAU,OAACqT,EAAwB1V,MAAAA,EAAyC,KAAA,EAASA,EAAQyV,kBAAiEC,EAAwB,CAAC,EAE9M,GAAyB,IAArBD,GAA+C,IAArBA,GAA+C,IAArBA,EACtD,MAAM,IAAIrM,WAAW,oCAAoC,EAG3D,MAA0B,UAApB,OAAO/F,GAAsE,oBAA7CjL,OAAOlG,UAAUqR,SAAS5V,KAAK0V,CAAQ,GAYzE,EAHFiB,GALEqR,EAAcC,gBAAgBvS,CAAQ,GAG1BiB,KAEPuR,WADHC,EAAkBC,UAAUJ,EAAYrR,KAAMmR,CAAgB,GACjCO,eAAgBF,EAAgB/N,IAAI,EAGlEzD,IAAQ5B,MAAM4B,EAAKb,QAAS,CAAA,IAI7BQ,EAAYK,EAAKb,UACjB6J,EAAO,EAGPqI,EAAYrI,OACdA,EAAO2I,UAAUN,EAAYrI,IAAI,EAE7B5K,MAAM4K,CAAI,IACL,IAAI9J,KAAKjB,GAAG,EAInBoT,EAAYO,UACdrJ,EAASsJ,cAAcR,EAAYO,QAAQ,EAEvCxT,MAAMmK,CAAM,EACP,IAAIrJ,KAAKjB,GAAG,EAehB,IAAIiB,KAAKS,EAAYqJ,EAAOT,CAAM,IAZnC9I,EAAY,IAAIP,KAAKS,EAAYqJ,CAAI,GAMrCzG,EAAS,IAAIrD,KAAK,CAAC,GAChB+C,YAAYxC,EAAUiE,eAAgB,EAAEjE,EAAUoG,cAAepG,EAAU8D,WAAU,CAAE,EAC9FhB,EAAOT,SAASrC,EAAUsG,YAAW,EAAItG,EAAUuG,gBAAiBvG,EAAUwG,cAAe,EAAExG,EAAU2G,mBAAoB,CAAA,EACtH7D,EAIX,CACA,IAAIuP,SAAW,CACbC,kBAAmB,OACnBC,kBAAmB,QACnBJ,SAAU,YACZ,EACIK,UAAY,gEACZC,UAAY,4EACZC,cAAgB,gCAEpB,SAASb,gBAAgBc,GACvB,IAEIC,EAFAhB,EAAc,GACd1T,EAAQyU,EAAWE,MAAMR,SAASC,iBAAiB,EA+BvD,OA3BmB,EAAfpU,EAAMxU,SAIN,IAAIyD,KAAK+Q,EAAM,EAAE,EACnB0U,EAAa1U,EAAM,IAEnB0T,EAAYrR,KAAOrC,EAAM,GACzB0U,EAAa1U,EAAM,GAEfmU,SAASE,kBAAkBplB,KAAKykB,EAAYrR,IAAI,IAClDqR,EAAYrR,KAAOoS,EAAWE,MAAMR,SAASE,iBAAiB,EAAE,GAChEK,EAAaD,EAAWG,OAAOlB,EAAYrR,KAAK7W,OAAQipB,EAAWjpB,MAAM,IAIzEkpB,KACE1M,EAAQmM,SAASF,SAASY,KAAKH,CAAU,IAG3ChB,EAAYrI,KAAOqJ,EAAWtlB,QAAQ4Y,EAAM,GAAI,EAAE,EAClD0L,EAAYO,SAAWjM,EAAM,IAE7B0L,EAAYrI,KAAOqJ,IAIhBhB,CACT,CAEA,SAASI,UAAUW,EAAYjB,GAC7B,IAOI1N,EACAgP,EARAC,EAAQ,IAAIC,OAAO,wBAA0B,EAAIxB,GAAoB,uBAAyB,EAAIA,GAAoB,MAAM,EAC5HyB,EAAWR,EAAWnV,MAAMyV,CAAK,EAErC,OAAKE,GAIDnP,EAAOmP,EAAS,GAAK9E,SAAS8E,EAAS,EAAE,EAAI,KAG1C,CACLnP,KAAkB,QAHhBgP,EAAUG,EAAS,GAAK9E,SAAS8E,EAAS,EAAE,EAAI,MAGzBnP,EAAiB,IAAVgP,EAChCf,eAAgBU,EAAWnlB,OAAO2lB,EAAS,IAAMA,EAAS,IAAIzpB,MAAM,CACxE,GAVwB,CACpBsa,KAAMxF,IACNyT,eAAgB,EACpB,CAQA,CAEA,SAASH,UAAUa,EAAY3O,GAE7B,IAKIgE,EACAzF,EACAoB,EACAmE,EAUEvH,EAlBN,OAAa,OAATyD,IACAmP,EAAWR,EAAWnV,MAAMgV,SAAS,IAGrCY,EAAa,CAAC,CAACD,EAAS,GACxBnL,EAAYqL,cAAcF,EAAS,EAAE,EACrC5Q,EAAQ8Q,cAAcF,EAAS,EAAE,EAAI,EACrCxP,EAAM0P,cAAcF,EAAS,EAAE,EAC/BrL,EAAOuL,cAAcF,EAAS,EAAE,EAChClL,EAAYoL,cAAcF,EAAS,EAAE,EAAI,EAEzCC,EACGE,iBAAiBtP,EAAM8D,EAAMG,CAAS,EAIpCsL,iBAAiBvP,EAAM8D,EAAMG,CAAS,EAHpC,IAAIxI,KAAKjB,GAAG,GAKjB+B,EAAO,IAAId,KAAK,CAAC,EAEhB+T,aAAaxP,EAAMzB,EAAOoB,CAAG,GAAM8P,sBAAsBzP,EAAMgE,CAAS,GAI7EzH,EAAKU,eAAe+C,EAAMzB,EAAO3D,KAAK8U,IAAI1L,EAAWrE,CAAG,CAAC,EAClDpD,GAJE,IAAId,KAAKjB,GAAG,IAlBD,IAAIiB,KAAKjB,GAAG,CAwBpC,CAEA,SAAS6U,cAAcplB,GACrB,OAAOA,EAAQogB,SAASpgB,CAAK,EAAI,CACnC,CAEA,SAASikB,UAAUU,GACjB,IAGIvK,EACAY,EAJAkK,EAAWP,EAAWpV,MAAMiV,SAAS,EACzC,OAAKU,GAMAQ,aAJDtL,EAAQuL,cAAcT,EAAS,EAAE,EACjClK,EAAU2K,cAAcT,EAAS,EAAE,EACnCnC,EAAU4C,cAAcT,EAAS,EAAE,CAEE,EAIlC9K,EAAQ5G,mBAAqBwH,EAAUzH,qBAAiC,IAAVwP,EAV/CxS,GAWxB,CAEA,SAASoV,cAAc3lB,GACrB,OAAOA,GAAS4lB,WAAW5lB,EAAMX,QAAQ,IAAK,GAAG,CAAC,GAAK,CACzD,CAEA,SAAS8kB,cAAc0B,GACrB,IAGInR,EACA0F,EAJJ,MAAuB,MAAnByL,IACAX,EAAWW,EAAetW,MAAMkV,aAAa,IAE7C/P,EAAuB,MAAhBwQ,EAAS,GAAa,CAAC,EAAI,EAIjCY,iBAHD1L,EAAQgG,SAAS8E,EAAS,EAAE,EAC5BlK,EAAUkK,EAAS,IAAM9E,SAAS8E,EAAS,EAAE,GAAK,CAElB,EAI7BxQ,GAAQ0F,EAAQ5G,mBAAqBwH,EAAUzH,sBAH7ChD,KANa,CAUxB,CAEA,SAAS+U,iBAAiBS,EAAalM,EAAMnE,GAC3C,IAAIpD,EAAO,IAAId,KAAK,CAAC,EACrBc,EAAKU,eAAe+S,EAAa,EAAG,CAAC,EAEjCzS,EAAoB,GAAZuG,EAAO,GAASnE,EAAM,GADTpD,EAAKqD,UAAS,GAAM,GAG7C,OADArD,EAAKsD,WAAWtD,EAAKuD,WAAY,EAAGvC,CAAI,EACjChB,CACT,CAIA,IAAI0T,aAAe,CAAC,GAAI,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAElE,SAASC,gBAAgBlQ,GACvB,OAAOA,EAAO,KAAQ,GAAKA,EAAO,GAAM,GAAKA,EAAO,KAAQ,CAC9D,CAEA,SAASwP,aAAaxP,EAAMzB,EAAOhC,GACjC,OAAgB,GAATgC,GAAcA,GAAS,IAAc,GAARhC,GAAaA,IAAS0T,aAAa1R,KAAW2R,gBAAgBlQ,CAAI,EAAI,GAAK,IACjH,CAEA,SAASyP,sBAAsBzP,EAAMgE,GACnC,OAAoB,GAAbA,GAAkBA,IAAckM,gBAAgBlQ,CAAI,EAAI,IAAM,IACvE,CAEA,SAASsP,iBAAiBa,EAAOrM,EAAMnE,GACrC,OAAe,GAARmE,GAAaA,GAAQ,IAAa,GAAPnE,GAAYA,GAAO,CACvD,CAEA,SAASgQ,aAAatL,EAAOY,EAAS+H,GACpC,OAAc,KAAV3I,EACiB,IAAZY,GAA6B,IAAZ+H,EAGR,GAAXA,GAAgBA,EAAU,IAAiB,GAAX/H,GAAgBA,EAAU,IAAe,GAATZ,GAAcA,EAAQ,EAC/F,CAEA,SAAS0L,iBAAiBK,EAAQnL,GAChC,OAAkB,GAAXA,GAAgBA,GAAW,EACpC,CCzQA,ICA8CjgB,EDA1CshB,uBAAuB,CACzBC,iBAAkB,CAChB8J,WAAY,CACV7J,IAAK,wBACLC,MAAO,gCACR,EACD6J,gBAAiB,CACf9J,IAAK,wBACLC,MAAO,gCACR,CACF,EACDC,SAAU,CACR2J,WAAY,CACV7J,IAAK,YACLC,MAAO,oBACR,EACD6J,gBAAiB,CACf9J,IAAK,YACLC,MAAO,oBACR,CACF,EACDE,YAAa,CACX0J,WAAY,eACZC,gBAAiB,eAClB,EACD1J,iBAAkB,CAChByJ,WAAY,CACV7J,IAAK,uBACLC,MAAO,+BACR,EACD6J,gBAAiB,CACf9J,IAAK,uBACLC,MAAO,+BACR,CACF,EACDI,SAAU,CACRwJ,WAAY,CACV7J,IAAK,WACLC,MAAO,mBACR,EACD6J,gBAAiB,CACf9J,IAAK,WACLC,MAAO,mBACR,CACF,EACDK,YAAa,CACXuJ,WAAY,CACV7J,IAAK,gBACLC,MAAO,wBACR,EACD6J,gBAAiB,CACf9J,IAAK,gBACLC,MAAO,wBACR,CACF,EACDM,OAAQ,CACNsJ,WAAY,CACV7J,IAAK,WACLC,MAAO,mBACR,EACD6J,gBAAiB,CACf9J,IAAK,WACLC,MAAO,mBACR,CACF,EACDO,MAAO,CACLqJ,WAAY,CACV7J,IAAK,QACLC,MAAO,gBACR,EACD6J,gBAAiB,CACf9J,IAAK,QACLC,MAAO,iBACR,CACF,EACDQ,YAAa,CACXoJ,WAAY,CACV7J,IAAK,eACLC,MAAO,uBACR,EACD6J,gBAAiB,CACf9J,IAAK,eACLC,MAAO,uBACR,CACF,EACDS,OAAQ,CACNmJ,WAAY,CACV7J,IAAK,UACLC,MAAO,kBACR,EACD6J,gBAAiB,CACf9J,IAAK,UACLC,MAAO,kBACR,CACF,EACDU,aAAc,CACZkJ,WAAY,CACV7J,IAAK,eACLC,MAAO,uBACR,EACD6J,gBAAiB,CACf9J,IAAK,eACLC,MAAO,wBACR,CACF,EACDW,QAAS,CACPiJ,WAAY,CACV7J,IAAK,UACLC,MAAO,kBACR,EACD6J,gBAAiB,CACf9J,IAAK,UACLC,MAAO,mBACR,CACF,EACDY,YAAa,CACXgJ,WAAY,CACV7J,IAAK,cACLC,MAAO,sBACR,EACD6J,gBAAiB,CACf9J,IAAK,cACLC,MAAO,uBACR,CACF,EACDa,OAAQ,CACN+I,WAAY,CACV7J,IAAK,SACLC,MAAO,iBACR,EACD6J,gBAAiB,CACf9J,IAAK,SACLC,MAAO,kBACR,CACF,EACDc,WAAY,CACV8I,WAAY,CACV7J,IAAK,kBACLC,MAAO,0BACR,EACD6J,gBAAiB,CACf9J,IAAK,kBACLC,MAAO,2BACR,CACF,EACDe,aAAc,CACZ6I,WAAY,CACV7J,IAAK,cACLC,MAAO,sBACR,EACD6J,gBAAiB,CACf9J,IAAK,cACLC,MAAO,uBACR,CACF,CACH,EAEIgB,iBAAiB,SAAwBvF,EAAOtT,EAAOqJ,GAErDyP,EAAazP,MAAAA,GAA0CA,EAAQ0P,UAAYrB,uBAAqBpE,GAAOoO,gBAAkBhK,uBAAqBpE,GAAOmO,WAGvJvR,EADwB,UAAtB,OAAO4I,EACAA,EACU,IAAV9Y,EACA8Y,EAAWlB,IAEXkB,EAAWjB,MAAMnd,QAAQ,YAAa8O,OAAOxJ,CAAK,CAAC,EAG9D,OAAIqJ,MAAAA,GAA0CA,EAAQ0P,UAChD1P,EAAQ2P,YAAmC,EAArB3P,EAAQ2P,WACzB,MAAQ9I,EAER,OAASA,EAIbA,CACT,EEhLI+I,cAAc,CAChBC,KAAM,kBAENC,KAAM,YAENC,OAAQ,WAERC,MAAO,SAET,EACIC,cAAc,CAChBJ,KAAM,gBACNC,KAAM,aACNC,OAAQ,WACRC,MAAO,OACT,EACIE,kBAAkB,CACpBL,KAAM,yBACNC,KAAM,yBACNC,OAAQ,oBACRC,MAAO,mBACT,EACI5C,aAAa,CACf9I,KAAMxE,kBAAkB,CACtBO,QAASuP,cACTxP,aAAc,MAClB,CAAG,EACDkN,KAAMxN,kBAAkB,CACtBO,QAAS4P,cACT7P,aAAc,MAClB,CAAG,EACDuN,SAAU7N,kBAAkB,CAC1BO,QAAS6P,kBACT9P,aAAc,MAClB,CAAG,CACH,ECrCI+P,uBAAuB,CACzBC,SAAU,wBACVC,UAAW,iBACXC,MAAO,eACPC,SAAU,gBACVC,SAAU,cACVhC,MAAO,GACT,EAEIiC,iBAAiB,SAAwBxG,EAAOyG,EAAOC,EAAWC,GACpE,OAAOT,uBAAqBlG,EAC9B,ECVI4G,YAAY,CACdC,OAAQ,CAAC,SAAU,UACnBC,YAAa,CAAC,SAAU,UACxBC,KAAM,CAAC,eAAgB,gBACzB,EACIC,gBAAgB,CAClBH,OAAQ,CAAC,IAAK,IAAK,IAAK,KACxBC,YAAa,CAAC,KAAM,KAAM,KAAM,MAChCC,KAAM,CAAC,aAAc,aAAc,aAAc,aACnD,EAKIE,cAAc,CAChBJ,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAChEC,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAC3FC,KAAM,CAAC,SAAU,UAAW,OAAQ,QAAS,MAAO,OAAQ,OAAQ,SAAU,YAAa,UAAW,WAAY,WACpH,EAEIsH,sBAAwB,CAC1BxH,OAAQI,cAAYJ,OACpBC,YAAa,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,MAAO,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,QACrGC,KAAME,cAAYF,IACpB,EACIG,YAAY,CACdL,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACvCd,MAAO,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAC5Ce,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACxDC,KAAM,CAAC,UAAW,SAAU,WAAY,WAAY,aAAc,UAAW,UAC/E,EAEII,kBAAkB,CACpBN,OAAQ,CACNjG,GAAI,MACJC,GAAI,MACJC,SAAU,cACVC,KAAM,SACNC,QAAS,SACTC,UAAW,SACXC,QAAS,QACTC,MAAO,OACR,EACD2F,YAAa,CACXlG,GAAI,QACJC,GAAI,SACJC,SAAU,cACVC,KAAM,SACNC,QAAS,SACTC,UAAW,aACXC,QAAS,QACTC,MAAO,OACR,EACD4F,KAAM,CACJnG,GAAI,aACJC,GAAI,cACJC,SAAU,cACVC,KAAM,SACNC,QAAS,SACTC,UAAW,aACXC,QAAS,QACTC,MAAO,OACR,CACH,EACIiG,0BAA4B,CAC9BP,OAAQ,CACNjG,GAAI,MACJC,GAAI,MACJC,SAAU,cACVC,KAAM,SACNC,QAAS,UACTC,UAAW,SACXC,QAAS,SACTC,MAAO,QACR,EACD2F,YAAa,CACXlG,GAAI,QACJC,GAAI,SACJC,SAAU,cACVC,KAAM,SACNC,QAAS,UACTC,UAAW,cACXC,QAAS,SACTC,MAAO,QACR,EACD4F,KAAM,CACJnG,GAAI,aACJC,GAAI,cACJC,SAAU,cACVC,KAAM,SACNC,QAAS,UACTC,UAAW,cACXC,QAAS,SACTC,MAAO,QACR,CACH,EAEIG,gBAAgB,SAAuBjJ,GAEzC,OADaG,OAAOH,CAAW,EACf,GAClB,EAEI+I,WAAW,CACbE,cAAeA,gBACfD,IAAKhL,gBAAgB,CACnBO,OAAQgQ,YACRzQ,aAAc,MAClB,CAAG,EACDwL,QAAStL,gBAAgB,CACvBO,OAAQoQ,gBACR7Q,aAAc,OACdW,iBAAkB,SAA0B6K,GAC1C,OAAOA,EAAU,CAClB,CACL,CAAG,EACDtF,MAAOhG,gBAAgB,CACrBO,OAAQqQ,cACRzQ,iBAAkB6X,sBAClBlY,aAAc,MAClB,CAAG,EACDsH,IAAKpH,gBAAgB,CACnBO,OAAQsQ,YACR/Q,aAAc,MAClB,CAAG,EACD+L,UAAW7L,gBAAgB,CACzBO,OAAQuQ,kBACRhR,aAAc,OACdK,iBAAkB4Q,0BAClB3Q,uBAAwB,MAC5B,CAAG,CACH,ECjII6Q,4BAA4B,eAC5BC,4BAA4B,OAC5BC,mBAAmB,CACrBX,OAAQ,gCACRC,YAAa,gCACbC,KAAM,8EACR,EACIU,mBAAmB,CACrBC,IAAK,CAAC,MAAO,MACf,EACIC,uBAAuB,CACzBd,OAAQ,WACRC,YAAa,YACbC,KAAM,uBACR,EACIa,uBAAuB,CACzBF,IAAK,CAAC,KAAM,KAAM,KAAM,KAC1B,EACIG,qBAAqB,CACvBhB,OAAQ,eACRC,YAAa,wEACbC,KAAM,wFACR,EACIe,qBAAqB,CACvBjB,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtFa,IAAK,CAAC,UAAW,MAAO,QAAS,OAAQ,QAAS,QAAS,QAAS,OAAQ,MAAO,MAAO,MAAO,MACnG,EACIK,mBAAmB,CACrBlB,OAAQ,YACRd,MAAO,2BACPe,YAAa,4CACbC,KAAM,iEACR,EACIiB,mBAAmB,CACrBN,IAAK,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,MAAO,OACvD,EACIO,yBAAyB,CAC3BpB,OAAQ,oEACRC,YAAa,yEACbC,KAAM,iFACR,EACImB,yBAAyB,CAC3BR,IAAK,CACH9G,GAAI,MACJC,GAAI,MACJC,SAAU,UACVC,KAAM,UACNC,QAAS,WACTC,UAAW,eAEXC,QAAS,UACTC,MAAO,SAER,CACH,EACI7J,QAAQ,CACVgK,cAAerJ,oBAAoB,CACjCf,aAAcoQ,4BACdnP,aAAcoP,4BACd3P,cAAe,SAAuB7P,GACpC,OAAOogB,SAASpgB,CAAK,CACtB,CACL,CAAG,EACDsZ,IAAKtK,aAAa,CAChBI,cAAeqQ,mBACfpQ,kBAAmB,OACnBG,cAAekQ,mBACfjQ,kBAAmB,KACvB,CAAG,EACDmK,QAAS5K,aAAa,CACpBI,cAAewQ,uBACfvQ,kBAAmB,OACnBG,cAAeqQ,uBACfpQ,kBAAmB,MACnBI,cAAe,SAAuBf,GACpC,OAAOA,EAAQ,CAChB,CACL,CAAG,EACDwF,MAAOtF,aAAa,CAClBI,cAAe0Q,qBACfzQ,kBAAmB,OACnBG,cAAeuQ,qBACftQ,kBAAmB,KACvB,CAAG,EACDiG,IAAK1G,aAAa,CAChBI,cAAe4Q,mBACf3Q,kBAAmB,OACnBG,cAAeyQ,mBACfxQ,kBAAmB,KACvB,CAAG,EACD0K,UAAWnL,aAAa,CACtBI,cAAe8Q,yBACf7Q,kBAAmB,OACnBG,cAAe2Q,yBACf1Q,kBAAmB,KACvB,CAAG,CACH,EChFIuH,SAAS,CACXqJ,KAAM,KACN7C,eAAgBA,iBAChBpC,WAAYA,aACZqD,eAAgBA,iBAChBpF,SAAUA,WACV9J,MAAOA,QACPvB,QAAS,CACP0I,aAAc,EAGda,sBAAuB,CACxB,CACH,EACAgP,GAAevP,SChCXqF,qBAAuB,CACzBC,iBAAkB,CAChBC,IAAK,sBACLC,MAAO,6BACR,EACDC,SAAU,CACRF,IAAK,YACLC,MAAO,oBACR,EACDE,YAAa,cACbC,iBAAkB,CAChBJ,IAAK,qBACLC,MAAO,4BACR,EACDI,SAAU,CACRL,IAAK,WACLC,MAAO,mBACR,EACDK,YAAa,CACXN,IAAK,kBACLC,MAAO,0BACR,EACDM,OAAQ,CACNP,IAAK,UACLC,MAAO,kBACR,EACDO,MAAO,CACLR,IAAK,SACLC,MAAO,iBACR,EACDQ,YAAa,CACXT,IAAK,oBACLC,MAAO,4BACR,EACDS,OAAQ,CACNV,IAAK,YACLC,MAAO,oBACR,EACDU,aAAc,CACZX,IAAK,iBACLC,MAAO,wBACR,EACDW,QAAS,CACPZ,IAAK,SACLC,MAAO,gBACR,EACDY,YAAa,CACXb,IAAK,eACLC,MAAO,uBACR,EACDa,OAAQ,CACNd,IAAK,OACLC,MAAO,eACR,EACDc,WAAY,CACVf,IAAK,eACLC,MAAO,uBACR,EACDe,aAAc,CACZhB,IAAK,eACLC,MAAO,uBACR,CACH,EAEIgB,eAAiB,SAAwBvF,EAAOtT,EAAOqJ,GAErDwY,EAAOnK,qBAAqBpE,GAG9BpD,EADkB,UAAhB,OAAO2R,EACAA,EACU,IAAV7hB,EACA6hB,EAAKjK,IAELiK,EAAKhK,MAAMnd,QAAQ,YAAa8O,OAAOxJ,CAAK,CAAC,EAGxD,OAAIqJ,MAAAA,GAA0CA,EAAQ0P,UAChD1P,EAAQ2P,YAAmC,EAArB3P,EAAQ2P,WACzB,QAAU9I,EAEV,UAAYA,EAIhBA,CACT,ECpFI+I,YAAc,CAChBC,KAAM,gBACNC,KAAM,WACNC,OAAQ,UACRC,MAAO,SACT,EACIC,YAAc,CAChBJ,KAAM,gBACNC,KAAM,aACNC,OAAQ,WACRC,MAAO,OACT,EACIE,gBAAkB,CACpBL,KAAM,wBACNC,KAAM,wBACNC,OAAQ,qBACRC,MAAO,oBACT,EACI5C,WAAa,CACf9I,KAAMxE,kBAAkB,CACtBO,QAASuP,YACTxP,aAAc,MAClB,CAAG,EACDkN,KAAMxN,kBAAkB,CACtBO,QAAS4P,YACT7P,aAAc,MAClB,CAAG,EACDuN,SAAU7N,kBAAkB,CAC1BO,QAAS6P,gBACT9P,aAAc,MAClB,CAAG,CACH,EChCI+P,qBAAuB,CACzBC,SAAU,qBACVC,UAAW,aACXC,MAAO,oBACPC,SAAU,gBACVC,SAAU,sBACVhC,MAAO,GACT,EAEIiC,eAAiB,SAAwBxG,EAAOyG,EAAOC,EAAWC,GACpE,OAAOT,qBAAqBlG,EAC9B,ECVI4G,UAAY,CACdC,OAAQ,CAAC,WAAY,YACrBC,YAAa,CAAC,WAAY,YAC1BC,KAAM,CAAC,qBAAsB,qBAC/B,EACIC,cAAgB,CAClBH,OAAQ,CAAC,KAAM,KAAM,KAAM,MAC3BC,YAAa,CAAC,YAAa,aAAc,aAAc,cACvDC,KAAM,CAAC,gBAAiB,iBAAkB,iBAAkB,iBAC9D,EACIE,YAAc,CAChBJ,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAChEC,YAAa,CAAC,QAAS,QAAS,OAAQ,OAAQ,MAAO,OAAQ,QAAS,OAAQ,QAAS,OAAQ,OAAQ,QACzGC,KAAM,CAAC,UAAW,UAAW,OAAQ,QAAS,MAAO,OAAQ,UAAW,OAAQ,YAAa,UAAW,WAAY,WACtH,EACIG,UAAY,CACdL,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACvCd,MAAO,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAC5Ce,YAAa,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,QAC9DC,KAAM,CAAC,WAAY,QAAS,QAAS,WAAY,QAAS,WAAY,SACxE,EACII,gBAAkB,CACpBN,OAAQ,CACNjG,GAAI,KACJC,GAAI,KACJC,SAAU,SACVC,KAAM,OACNC,QAAS,OACTC,UAAW,QACXC,QAAS,OACTC,MAAO,MACR,EACD2F,YAAa,CACXlG,GAAI,KACJC,GAAI,KACJC,SAAU,SACVC,KAAM,OACNC,QAAS,QACTC,UAAW,aACXC,QAAS,OACTC,MAAO,OACR,EACD4F,KAAM,CACJnG,GAAI,KACJC,GAAI,KACJC,SAAU,SACVC,KAAM,OACNC,QAAS,WACTC,UAAW,kBACXC,QAAS,UACTC,MAAO,UACR,CACH,EAEIG,cAAgB,SAAuBjJ,EAAatC,GAClDwC,EAASC,OAAOH,CAAW,EAC3BkJ,EAAOxL,MAAAA,EAAyC,KAAA,EAASA,EAAQwL,KACrE,OAAe,IAAXhJ,EAAqB,IAUlBA,GANQ,IAAXA,EACOgJ,GAJS,CAAC,OAAQ,OAAQ,OAAQ,SAAU,UAItBiN,SAASjN,CAAI,EAAI,MAAQ,KAE/C,MAIb,EAEIH,SAAW,CACbE,cAAeA,cACfD,IAAKhL,gBAAgB,CACnBO,OAAQgQ,UACRzQ,aAAc,MAClB,CAAG,EACDwL,QAAStL,gBAAgB,CACvBO,OAAQoQ,cACR7Q,aAAc,OACdW,iBAAkB,SAA0B6K,GAC1C,OAAOA,EAAU,CAClB,CACL,CAAG,EACDtF,MAAOhG,gBAAgB,CACrBO,OAAQqQ,YACR9Q,aAAc,MAClB,CAAG,EACDsH,IAAKpH,gBAAgB,CACnBO,OAAQsQ,UACR/Q,aAAc,MAClB,CAAG,EACD+L,UAAW7L,gBAAgB,CACzBO,OAAQuQ,gBACRhR,aAAc,MAClB,CAAG,CACH,EC9FImR,0BAA4B,8BAC5BC,0BAA4B,OAC5BC,iBAAmB,CACrBX,OAAQ,kCACRC,YAAa,oDACbC,KAAM,2CACR,EACIU,iBAAmB,CACrBC,IAAK,CAAC,OAAQ,OAChB,EACIC,qBAAuB,CACzBd,OAAQ,aACRC,YAAa,8BACbC,KAAM,+BACR,EACIa,qBAAuB,CACzBF,IAAK,CAAC,KAAM,KAAM,KAAM,KAC1B,EACIG,mBAAqB,CACvBhB,OAAQ,eACRC,YAAa,sEACbC,KAAM,0FACR,EACIe,mBAAqB,CACvBjB,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACtFa,IAAK,CAAC,OAAQ,MAAO,QAAS,OAAQ,OAAQ,SAAU,SAAU,OAAQ,MAAO,MAAO,MAAO,MACjG,EACIK,iBAAmB,CACrBlB,OAAQ,aACRd,MAAO,2BACPe,YAAa,qCACbC,KAAM,yDACR,EACIiB,iBAAmB,CACrBnB,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OACnDa,IAAK,CAAC,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OACxD,EACIO,uBAAyB,CAC3BpB,OAAQ,iDACRa,IAAK,oEACP,EACIQ,uBAAyB,CAC3BR,IAAK,CACH9G,GAAI,MACJC,GAAI,MACJC,SAAU,QACVC,KAAM,QACNC,QAAS,OACTC,UAAW,MACXC,QAAS,QACTC,MAAO,OACR,CACH,EACI7J,MAAQ,CACVgK,cAAerJ,oBAAoB,CACjCf,aAAcoQ,0BACdnP,aAAcoP,0BACd3P,cAAe,SAAuB7P,GACpC,OAAOogB,SAASpgB,CAAK,CACtB,CACL,CAAG,EACDsZ,IAAKtK,aAAa,CAChBI,cAAeqQ,iBACfpQ,kBAAmB,OACnBG,cAAekQ,iBACfjQ,kBAAmB,KACvB,CAAG,EACDmK,QAAS5K,aAAa,CACpBI,cAAewQ,qBACfvQ,kBAAmB,OACnBG,cAAeqQ,qBACfpQ,kBAAmB,MACnBI,cAAe,SAAuBf,GACpC,OAAOA,EAAQ,CAChB,CACL,CAAG,EACDwF,MAAOtF,aAAa,CAClBI,cAAe0Q,mBACfzQ,kBAAmB,OACnBG,cAAeuQ,mBACftQ,kBAAmB,KACvB,CAAG,EACDiG,IAAK1G,aAAa,CAChBI,cAAe4Q,iBACf3Q,kBAAmB,OACnBG,cAAeyQ,iBACfxQ,kBAAmB,KACvB,CAAG,EACD0K,UAAWnL,aAAa,CACtBI,cAAe8Q,uBACf7Q,kBAAmB,MACnBG,cAAe2Q,uBACf1Q,kBAAmB,KACvB,CAAG,CACH,ECjFIuH,OAAS,CACXqJ,KAAM,KACN7C,eAAgBA,eAChBpC,WAAYA,WACZqD,eAAgBA,eAChBpF,SAAUA,SACV9J,MAAOA,MACPvB,QAAS,CACP0I,aAAc,EAGda,sBAAuB,CACxB,CACH,EACAmP,GAAe1P,q8HC7Bf2P,IAAe,SAASrrB,EAAEP,EAAEL,EAAED,EAAEI,GAAG,IAAIE,EAAEA,EAAE6pB,MAAM7pB,EAAE6pB,MAAM,GAAG,EAAE7pB,EAAEN,EAAE,EAAEA,EAAEM,EAAEU,OAAOhB,CAAC,GAAGa,EAAEA,EAAEA,EAAEP,EAAEN,IAAII,EAAE,OAAOS,IAAIT,EAAEH,EAAEY,CAAC,EZAjET,EAAE,GAAG,SAASJ,EAAEc,EAAED,EAAEP,GAAG,GAAG,IAAIQ,EAAE+F,SAAS,CAAC,IAAIzG,EAAE,gBAAgBU,EAAEA,EAAE2K,YAAY3K,EAAEqrB,WAAW,GAAG,GAAG,CAAA,IAAKnsB,EAAEuT,QAAQ6Y,KAAK,CAAK3rB,EAAE,IAAII,GAAGA,IAAIP,EAAEU,OAAO,EAAE,IAAI,EAAEZ,EAAEA,EAAE0U,MAAM,YAAY,GAAG,QAAQ9U,EAAEuT,QAAQ6Y,KAAK,IAAIhsB,EAAEwE,QAAQ,uBAAuB,QAAQ5E,EAAEuT,QAAQ6Y,MAAM3rB,EAAE,GAAG,GAAG,IAAI,MAAML,IAAa,EAATE,EAAEU,QAAUP,EAAE,OAAO,IAAI,CAAC,OAAOL,CAAC,CAAC,OAAG,IAAIU,EAAE+F,WAA+D,YAAtCxE,EAAEqR,OAAO5S,EAAE0Q,QAAQ,EAAE3M,YAAa,IAAmB7E,EAAEuT,QAAQ8Y,eAAiCnsB,EAAEF,EAAEY,EAAEyB,EAAE,SAASvB,GAAG,IAAID,EAAEC,GAAGA,EAAEE,OAAO,GAAG,CAACH,EAAE,OAAO,KAAK,IAAI,IAAIP,EAAE,GAAGF,EAAE,EAAEA,EAAES,EAAET,CAAC,GAAG,CAAC,IAAIK,EAAEK,EAAEV,GAAGD,EAAEM,EAAE8G,KAAKlF,EAAE5B,EAAE8E,MAAM,OAAOpF,EAAE8mB,UAAU,EAAE,CAAC,GAAGjnB,EAAEuT,QAAQ+Y,cAAcjqB,EAAE,IAAIkqB,SAASlqB,CAAC,GAAG/B,EAAEH,GAAGkC,CAAC,CAAC,OAAO/B,CAAC,EAAEQ,EAAEwG,UAAU,GAAG9G,GAAGP,EAAEa,EAAEsG,aAAavD,MAAM4B,UAAUwE,IAAI/I,KAAKjB,EAAED,CAAC,EAAE4I,OAAOzI,CAAC,IAAIK,EAAEQ,OAAOR,EAAE,IAAI,EAASR,EAAEwsB,SAASxsB,EAAEwsB,QAAQtsB,CAAC,EAAEA,GAA/U,IAAgV,CAAC,IAAIO,EAAEN,EAAE,SAASW,GAAG,OAAOA,CAAC,EAAEuB,EAAE,GAAG,SAASpC,EAAEa,GAAG,IAAID,GAAGC,EAAEO,MAAM,IAAIwD,YAAa,EAACvE,EAAEL,EAAEgK,IAAI3J,GAAGA,EAAEwQ,eAAejQ,CAAC,GAAGC,EAAEO,KAAKf,EAAEO,GAAGC,EAAEQ,MAAMqK,OAAOoF,KAAKjQ,EAAEQ,OAAO,EAAE,EAAEmrB,OAAO,SAAS5rB,EAAEP,GAAS,OAAOO,EAAKP,EAAIsE,QAAQ,QAAQ,SAAS9D,EAAED,GAAG,OAAOA,EAAE+Q,aAAa,CAAC,GAAI9Q,EAAEQ,MAAMhB,GAAGO,CAAC,EAAE,EAAE,GAAGC,EAAEO,KAAKR,EAAE+D,QAAQ,cAAc,EAAE,CAAC,CAAC,IAAc8nB,OAAC,SAAS7rB,GAAG,SAASV,IAAIU,EAAE6M,MAAMnL,KAAKxB,SAAS,CAAC,CAAC,OAAOF,IAAIV,EAAEwsB,UAAU9rB,KAAIV,EAAEsF,UAAUkG,OAAO2G,OAAOzR,GAAGA,EAAE4E,SAAS,GAAGzD,YAAY7B,GAAIysB,WAAW,SAAS9rB,GAAGL,EAAEK,CAAC,EAAEX,EAAEsF,UAAUW,sBAAsB,SAAStF,GAAG,IAAID,EAAE0B,KAAKjB,MAAM,OAAOR,EAAE+rB,OAAOhsB,EAAEgsB,MAAM/rB,EAAEO,OAAOR,EAAEQ,MAAMP,EAAEgsB,SAASjsB,EAAEisB,MAAM,EAAE3sB,EAAEsF,UAAUsnB,cAAc,SAASjsB,GAAG,GAAGyB,KAAK0H,IAAI,GAAGnJ,EAAE,IAAI,IAAID,KAAKC,EAAE,CAAA,IAA4BR,EAAzBQ,EAAEgQ,eAAejQ,CAAC,IAAOP,EAAEO,EAAE+D,QAAQ,8CAA8C,WAAW,EAAEC,cAActC,KAAK0H,IAAI3J,GAAGQ,EAAED,GAAE,CAAC,EAAEV,EAAEsF,UAAUC,OAAO,SAAS7E,GAAG,IAAIV,EAAEU,EAAEgsB,KAAK,KAAA,IAAS1sB,IAAIA,EAAE,CAAA,GAAI,IAAIK,EAAEN,EAAEW,EAAEQ,KAAKd,EAAEM,EAAEisB,OAAO/oB,EAAElD,EAAEmsB,WAAW5rB,EAAEP,EAAEosB,QAAQ5sB,EAAEQ,EAAEqsB,QAAQ5qB,EAAEzB,EAAE,iBAAiBD,EAAEC,EAAE,gBAAgBsB,EAAEtB,EAAEurB,KAAK1oB,EAAE,SAAS5C,EAAED,GAAG,IAAiBT,EAAbE,EAAE,GAAG,IAAQF,KAAKU,EAAE6K,OAAOlG,UAAUqL,eAAe5P,KAAKJ,EAAEV,CAAC,GAAG,CAAC,IAAIS,EAAE6B,QAAQtC,CAAC,IAAIE,EAAEF,GAAGU,EAAEV,IAAI,OAAOE,CAAC,EAAEO,EAAE,CAAC,OAAO,OAAO,SAAS,aAAa,UAAU,UAAU,gBAAgB,eAAe,OAAO,EAAE+C,EAAExC,GAAGmB,KAAK0qB,SAAS1qB,KAAKP,YAAYyD,UAAUwnB,SAASxsB,GAAGK,IAA4BiC,GAA1BR,KAAKwqB,cAAchpB,CAAC,EAAQ,CAACsoB,aAAa/pB,EAAEgqB,YAAY1rB,EAAEwrB,KAAKjqB,CAAC,GAAE,IAAI3B,EAAE,SAAaC,EAAEN,EAAEK,GAAG,IAAIN,EAAE,SAASY,EAAED,GAAG,IAAIT,EAAEJ,EAAIG,EAAEkC,EAAE,SAASxB,EAAE,YAAY,kBAAuCJ,EAArB,SAASI,GAAGV,EAAE,OAAS,gCAAgCW,EAAE,mBAAmBX,EAAE,MAAQ,gDAAgDW,EAAE,UAAU,IAAIV,GAAE,IAAK+sB,WAAWC,gBAAgB3sB,EAAE4B,CAAC,CAAc,CAAZ,MAAMvB,GAAGd,EAAEc,CAAC,CAAC,GAAGV,GAAG,SAASS,KAAKT,EAAEE,EAAAA,IAAoBwG,SAASumB,gBAAgBvmB,SAASumB,eAAeC,mBAA0BxmB,SAASumB,eAAeC,mBAAmB,EAAE,IAAMxsB,EAAEgG,SAASG,cAAc,QAAQ,GAAWvC,MAAMC,QAAQ,iFAAiF7D,EAAEsE,aAAa,UAAU,aAAa,EAAE0B,SAASymB,KAAKppB,YAAYrD,CAAC,EAAEA,EAAE0sB,cAAc1mB,YAAc2mB,OAAOrtB,EAAEstB,MAAMjtB,CAAC,EAAEL,EAAEutB,MAAO,GAAEvtB,EAAqD,OAAfI,GAA/BP,EAAEG,EAAE+S,qBAAqBhT,CAAC,EAAE,IAAO2H,WAAkBhH,GAAG,CAACN,IAAIP,EAAE2tB,MAAM,0BAA0BptB,GAAG,gBAAgBkT,OAAOlT,EAAEgR,QAAQ,EAAE3M,YAAW,IAAKrE,EAAEG,YAAYH,EAAEsH,UAAU,EAAEtH,EAAEG,YAAYH,EAAEqtB,SAAS,EAAE5tB,EAAE2tB,MAAMptB,EAAEiL,aAAajL,EAAE2rB,WAAWnsB,GAAG,gBAAgBC,EAAEU,YAAYH,CAAC,GAAGP,CAAE,EAAoNM,EAAEL,CAAjN,EAAE,GAAGA,GAAGA,EAAE0tB,MAAM,MAAM,IAAIzW,MAAMjX,EAAE0tB,KAAK,EAAE,IAAIrtB,EAAEL,GAAGA,EAAEqtB,MAAMrtB,EAAiB6D,GAAf9D,EAAEgK,IAAI9J,GAAGkC,EAAQ9B,IAAYO,EAAuDP,EAAnDD,EAAuDG,EAArDA,EAAuDD,EAA7CR,EAAEwsB,QAAuCvsB,EAA7BD,EAAEY,EAAEN,EAAEN,EAAEuT,QAAQ9S,EAAKT,EAAEc,CAAC,IAAY,OAAOb,EAAEgK,IAAI,KAAKlG,GAAGA,EAAEzC,OAAOyC,EAAEzC,MAAML,UAAU,IAAI,EAAM2C,EAAErB,KAAK0H,IAAIlH,CAAC,CAAwG,CAAtG,MAAMjC,GAAGT,EAAEA,EAAE,CAACutB,MAAM9sB,CAAC,CAAC,EAAE,aAAa,OAAOmW,SAASA,QAAQ2W,OAAO3W,QAAQ2W,MAAM,kBAAkB9sB,CAAC,CAAC,CAAC,MAAG,CAAA,IAAKX,EAASK,GAAG,MAASmD,EAAED,EAAEoN,eAAe,WAAW,EAAE,YAAY,SAAQjO,EAAEa,EAAEC,IAAYd,EAAEuF,OAAOvF,EAAEuF,OAAO,EAAE,EAAE,QAAQ,EAAE,UAAU,OAAOvF,EAAEa,EAAEC,IAAI,UAAU,UAAU,OAAOd,IAAIA,EAAEiqB,OAAO,CAAA,GAAIppB,EAAEC,GAAG,SAASC,EAAE,MAAMF,EAAElD,GAAG,IAAI,EAAC,EAAEL,CAAC,EAAEU,GAAE,EaK7qHitB,YAAcpe,IAAc,CAAEqe,KAAM,EAAI,CAAA,EAK5C,SAASC,QAAQvX,GAChB,OAAOA,MAAAA,CACR,CAMA,SAAS5F,SAAO4F,EAAKnV,GACpB,IAAK,IAAInB,KAAKmB,EACbmV,EAAItW,GAAKmB,EAAMnB,GAEhB,OAAOsW,CACR,CAMA,SAASwX,WAAWvG,EAAQwG,GAC3B,IACS/tB,EADLguB,EAAMtd,SAAO,GAAI6W,CAAM,EAC3B,IAASvnB,KAAK+tB,EACTA,EAAOpd,eAAe3Q,CAAC,IACtBunB,EAAOvnB,IAAM+tB,EAAO/tB,IAAyB,UAAnB,OAAOunB,EAAOvnB,IAAoC,UAAnB,OAAO+tB,EAAO/tB,GAC1EguB,EAAIhuB,GAAK8tB,WAAWvG,EAAOvnB,GAAI+tB,EAAO/tB,EAAE,EAGxCguB,EAAIhuB,GAAKunB,EAAOvnB,IAAM+tB,EAAO/tB,IAIhC,OAAOguB,CACR,CAKA,SAASC,OAAOC,GAKf,GAAI,SAFHA,EADuB,UAApB,OADJA,EAAaA,GAAc,IAEbA,EAAWlE,MAAM,GAAG,EAEpBkE,GAAY,CAEzB,IADA,IAAIvhB,EAAW,GACN3M,EAAE,EAAGA,EAAEkuB,EAAWrtB,OAAQb,CAAC,GAAI,CACvC,IAAImuB,EAAMD,EAAWluB,GAAGisB,KAAI,EACxBkC,IAAOxhB,EAASwhB,EAAInE,MAAM,GAAG,EAAEtf,IAAG,GAAMyjB,EAC5C,CACD,OAAOxhB,CACP,CACD,OAAOuhB,CACR,CAEA,SAASE,wBAAyB9X,EAAK+X,GAAW,IAA0B7rB,EAAtB+kB,EAAS,GAAI,IAAS/kB,KAAK8T,EAAS9K,OAAOlG,UAAUqL,eAAe5P,KAAKuV,EAAK9T,CAAC,GAA4B,CAAC,IAAxB6rB,EAAQ9rB,QAAQC,CAAC,IAAU+kB,EAAO/kB,GAAK8T,EAAI9T,IAAI,OAAO+kB,CAAS,CAGzM,IAAI+G,SAAW,iBA+Bf,SAASC,aAAaltB,GACrB,IAAImtB,EAAQntB,EAAImtB,MACZC,EAAOptB,EAAIotB,KACXC,EAAartB,EAAIqtB,WAEjBvtB,EADOitB,wBAAyB/sB,EAAK,CAAC,QAAS,OAAQ,eAKvDusB,EAAOld,SAAO,GAFNzB,IAAW0e,WAAW,EACXC,MACa,EAAE,EActC,OAXIY,IAASZ,EAAKY,MAAQA,GAGtBE,IACHd,EAAKe,WAAab,WAAWF,EAAKe,YAAc,GAAID,CAAU,IAG3DD,GAA2B,aAAlB,OAAOG,UAA0Brb,OAAOqb,QAAQ,EAAEja,MAAM2Z,QAAQ,KAC5EV,EAAKa,KAAO,CAAA,GAIZhuB,IAAGktB,YAAY3lB,SAAU,CAAE5C,MAAO,CAAEwoB,KAAMA,EAAQ,EACjDzsB,EAAML,QAEN,CACH,CAiBA,SAAS8sB,KAAKiB,EAAOzb,GACpB,OAAIxS,UAAUC,OAAO,GACpBuS,EAAUyb,EACH,SAAUA,GAAS,OAAOjB,KAAKiB,EAAOzb,CAAO,KAUrD0b,EAAoBC,oBAAsBF,GAASA,EAAME,qBAAmB,WAAmB,OAAOF,CAAQ,EACvGC,GATP,SAASA,EAAoB3tB,GAC5B,OAAOV,IACN8tB,aACAnb,GAAW,GACX3S,IAAEouB,EAAO1tB,CAAK,CACjB,CACE,CAIF,CAEA,IAAI6tB,MAAQ,GAUZ,SAASC,SAASA,EAAUC,EAAQV,EAAOG,GAC1C,OAAOM,GAAYA,EAASxqB,QAAQ,qBAAsB0qB,SAAS/hB,KAAK,KAAM8hB,GAAUF,MAAOR,EAAOG,CAAU,CAAC,CAClH,CAKA,SAASQ,SAASC,EAAeZ,EAAOG,EAAYtuB,EAAGgvB,GAGtD,IAFA,IAAIC,EAAQD,EAAMrF,MAAM,GAAG,EAC1B/oB,EAAImuB,EACIpvB,EAAE,EAAGA,EAAEsvB,EAAMzuB,OAAQb,CAAC,GAAI,CAElC,GAAS,OADTiB,EAAIA,EAAEquB,EAAMtvB,KACK,MAAO,GAGxB,GAAIiB,GAAKA,EAAEC,OAASquB,KACnB,OAAOC,UAAUvuB,EAAEE,MAAMsuB,GAAIjB,EAAOG,EAAY1tB,EAAEE,MAAM+tB,OAAQjuB,EAAEE,MAAMuuB,OAAQzuB,EAAEE,MAAMwJ,QAAQ,CAEjG,CAKD,OAFC1J,EADc,UAAX,OAAOA,GAAgBA,EAAE0T,MAAM,MAAM,EACpCsa,SAAShuB,EAAGmuB,CAAa,EAEvBnuB,CACR,CAcA,SAASuuB,UAAUC,EAAIjB,EAAOG,EAAYO,EAAQQ,EAAQ/kB,GACrD6jB,IAASiB,EAAKjB,EAAQ,IAAMiB,GAE5BrqB,EAAQupB,GAAcgB,IAAMhB,EAAYc,CAAE,EAsB9C,OAbErqB,GAFGsqB,GAAmB,IAATA,IAAetqB,GAAwB,UAAf,OAAOA,EACzCA,EAAM6C,OACD7C,EAAMsqB,IAAWtqB,EAAM,GAEd,IAATsqB,GAAc7B,QAAQzoB,EAAMwqB,MAAQxqB,EAAMyqB,IAAI,EAC9CzqB,EAAMwqB,MAAQxqB,EAAMyqB,KAEX,IAATH,GAAc7B,QAAQzoB,EAAMuc,KAAOvc,EAAM0qB,QAAQ,EACjD1qB,EAAMuc,KAAOvc,EAAM0qB,SAGnB1qB,EAAMnC,MAAQmC,EAAM2qB,MAAQ3qB,EAAMsqB,QAAUtqB,EAAMwc,OAASxc,EAI9DA,IAAS6pB,SAAS7pB,EAAO8pB,EAAQV,EAAOG,CAAU,GAAKhkB,GAAY,IAC3E,CAQA,SAASqlB,cAAc3uB,GACtB,IAOK4uB,EAPD7qB,EAAQ/D,EAAI+D,MACZqqB,EAAKpuB,EAAIouB,GAGT7B,EADQ3e,IAAW0e,WAAW,EACjBC,KAEjB,OAAIA,GAAQA,EAAKa,MACZwB,EAAgB,cAAgBrC,GAAQA,EAAKY,MAAS,IAAOZ,EAAU,MAAK,IAAM,IAAM6B,EAE3FhvB,IAAG,OAAQ,CACV8D,MAAO,CACN2rB,WAAY9qB,EACTuqB,IAAM/B,EAAMqC,CAAa,EACxB,uBACA,sBACD,qBACR,EAAOE,MAAOV,CAAI,EACdrqB,CAEA,GAGIA,CACR,CAsCA,SAASmqB,KAAKluB,GACb,IAAIouB,EAAKpuB,EAAIouB,GACT9kB,EAAWtJ,EAAIP,SACf4uB,EAASruB,EAAIquB,OACbR,EAAS7tB,EAAI6tB,OAGbtB,EADQ3e,IAAW0e,WAAW,EACjBC,KAWjB,OAAOntB,IAAGuvB,cAAe,CAAEP,GAAIA,EAAIrqB,MATvBoqB,UACXC,EACA7B,GAAQA,EAAKY,MACbZ,GAAQA,EAAKe,WACbO,EACAQ,EACA/kB,CACF,CAEgD,CAAE,CAClD,CAaA,SAASylB,iBAAiBjvB,EAAOysB,EAAMyC,GACtC,IAGSjpB,EAEHkpB,EALFtC,EAAM,GAGV,IAAS5mB,KAFTwmB,EAAOA,GAAQ,GACfzsB,EAAQ8sB,OAAO9sB,CAAK,EAEfA,EAAMwP,eAAevJ,CAAI,GAAKjG,EAAMiG,KACnCkpB,EAAMnvB,EAAMiG,GAGXipB,GAA8B,UAAb,OAAOC,EAGpBA,EAAIpvB,OAAOquB,OAEnBe,EAAM5f,SAAO,CAEZ/F,SAAU2lB,EAAInvB,MAAML,QACzB,EAAOwvB,EAAInvB,KAAK,EACZ6sB,EAAI5mB,GAAQooB,UAAUc,EAAIb,GAAI7B,EAAKY,MAAOZ,EAAKe,WAAY2B,EAAIpB,OAAQoB,EAAIZ,OAAQY,EAAI3lB,QAAQ,GAR/FqjB,EAAI5mB,GAAQooB,UAAUc,EAAK1C,EAAKY,MAAOZ,EAAKe,UAAU,GAYzD,OAAOX,CACR,CA0BA,SAASuC,UAAUlvB,GAClB,IAAIP,EAAWO,EAAIP,SAGf8sB,EADQ3e,IAAW0e,WAAW,EACjBC,KAEjB,OAAO9sB,GAAYA,EAASD,OACzBC,EAASgJ,IAAI,SAAU0mB,GAAS,OAAO/gB,IAAa+gB,EAAOJ,iBAAiBI,EAAMrvB,MAAOysB,EAAM,CAAA,CAAI,CAAC,CAAE,CAAE,EACxG9sB,GAAY2O,IAAa3O,EAAUsvB,iBAAiBtvB,EAASK,MAAOysB,EAAM,CAAA,CAAI,CAAC,CACnF,CAEA,SAAS6C,0BAA2Bna,EAAK+X,GAAW,IAA0B7rB,EAAtB+kB,EAAS,GAAI,IAAS/kB,KAAK8T,EAAS9K,OAAOlG,UAAUqL,eAAe5P,KAAKuV,EAAK9T,CAAC,GAA4B,CAAC,IAAxB6rB,EAAQ9rB,QAAQC,CAAC,IAAU+kB,EAAO/kB,GAAK8T,EAAI9T,IAAI,OAAO+kB,CAAS,CAuC3M,SAASmJ,WAAWrvB,GACnB,IAAIouB,EAAKpuB,EAAIouB,GACTP,EAAS7tB,EAAI6tB,OACbQ,EAASruB,EAAIquB,OACb5uB,EAAWO,EAAIP,SAEfK,EADOsvB,0BAA2BpvB,EAAK,CAAC,KAAM,SAAU,SAAU,aAGtE,OACCZ,IAAG8vB,UAAW,KACb9vB,IAAGkwB,KAAMnlB,OAAOkF,OAAO,GAAI,CAAEkgB,KAAMnwB,IAAG8uB,KAAM,CAAEE,GAAIA,EAAIP,OAAQA,EAAQQ,OAAQA,EAAQ5uB,SAAUA,EAAU,EAAG2uB,GAAIA,GAAMtuB,CAAK,CAAC,CAE7H,CACH,CAEA,SAASwvB,KAAKtvB,GACb,IAAIuvB,EAAOvvB,EAAIuvB,KACXnB,EAAKpuB,EAAIouB,GACTva,EAAOub,0BAA2BpvB,EAAK,CAAC,OAAQ,OAGpD,OACCZ,IAAGuvB,cAAe,CACjBP,GAAIA,EAAIrqB,MAAQwrB,IAA8B,UAAhB,OAAOA,EAAoBnwB,IAAG8rB,OAAQ/gB,OAAOkF,OAAO,GAAI,CAAExP,KAAM,OAAQ+qB,KAAM,CAAA,CAAO,EAJzG/W,EAIkH,CAAEyX,OAAQiE,EAAM,CAAC,EAAInwB,IAAG,OAAQ,KAAMmwB,CAAM,EAAA,CACxK,CACH,CA8CA,SAASC,SAASC,GACjB,OAAO,SAAyBjC,GAC/B,SAASkC,EAAgB5vB,EAAOkB,GAC/B,IACIurB,EADM3e,IAAW0e,WAAW,EACjBC,KAGXoD,EAAeZ,iBADQ,YAAjB,OAAOU,EAAuBA,EAAQ3vB,EAAO,CAAEysB,KAAMA,EAAM,EAAIkD,EAChClD,CAAI,EAC7C,OAAOntB,IAAEouB,EAAOne,SAAOA,SAAO,GAAIvP,CAAK,EAAG6vB,CAAY,CAAC,CACvD,CAGD,OADAD,EAAgBhC,oBAAsBF,GAASA,EAAME,qBAAmB,WAAmB,OAAOF,CAAQ,EACnGkC,CACT,CACA,CA2BA,SAASE,QAAQH,GAChB,IACIlD,EADM3e,IAAW0e,WAAW,EACjBC,KAEf,OAAOwC,iBACW,YAAjB,OAAOU,EAAuBA,EAAQ,CAAElD,KAAMA,CAAM,CAAA,EAAIkD,EACxDlD,CACF,CACA,EAEAA,KAAKA,KAAOA,MACPD,YAAcA,YACnBC,KAAKW,aAAeA,aACpBX,KAAK2B,KAAOA,KACZ3B,KAAK8C,WAAaA,WAClB9C,KAAK2C,UAAYA,UACjB3C,KAAKiD,SAAWA,SAChBjD,KAAKqD,QAAUA,QACfrD,KAAK4B,UAAYA,wECnjB2S,SAASrvB,EAAEO,EAAEP,GAAG,IAA0DN,EAAtDc,EAAE6K,OAAOoF,KAAKlQ,CAAC,EAAkL,OAA7K8K,OAAO0lB,wBAA2BrxB,EAAE2L,OAAO0lB,sBAAsBxwB,CAAC,EAAEP,IAAIN,EAAEA,EAAE4I,OAAQ,SAAStI,GAAG,OAAOqL,OAAO2lB,yBAAyBzwB,EAAEP,CAAC,EAAE2M,UAAW,IAAInM,EAAEgC,KAAK4K,MAAM5M,EAAEd,CAAC,GAASc,CAAC,CAAC,SAASA,EAAEA,GAAG,IAAI,IAAId,EAAE,EAAEA,EAAEe,UAAUC,OAAOhB,CAAC,GAAG,CAAC,IAAIS,EAAE,MAAMM,UAAUf,GAAGe,UAAUf,GAAG,GAAGA,EAAE,EAAEM,EAAEqL,OAAOlL,CAAC,EAAE,CAAA,CAAE,EAAE4F,QAAS,SAAS/F,GAAvd,IAAWO,EAAIC,EAAJD,EAAidC,EAA7cA,EAAidL,EAAndH,EAAidA,GAArcA,KAAKO,EAAE8K,OAAOC,eAAe/K,EAAEP,EAAE,CAACiF,MAAMzE,EAAEmM,WAAW,CAAA,EAAGpB,aAAa,CAAA,EAAGC,SAAS,CAAA,CAAE,CAAC,EAAEjL,EAAEP,GAAGQ,CAAkX,GAAG6K,OAAO4lB,0BAA0B5lB,OAAO6lB,iBAAiB1wB,EAAE6K,OAAO4lB,0BAA0B9wB,CAAC,CAAC,EAAEH,EAAEqL,OAAOlL,CAAC,CAAC,EAAE4F,QAAO,SAAWxF,GAAG8K,OAAOC,eAAe9K,EAAED,EAAE8K,OAAO2lB,yBAAyB7wB,EAAEI,CAAC,CAAC,CAAE,CAAE,CAAA,CAAC,OAAOC,CAAC,CAAC,SAASd,EAAEa,EAAEP,GAAG,GAAG,MAAMO,EAAE,MAAM,GAAG,IAAIC,EAAIL,EAAE,SAASI,EAAEP,GAAG,GAAG,MAAMO,EAAE,MAAM,GAAiC,IAA9B,IAAIC,EAAIL,EAAE,GAAGL,EAAEuL,OAAOoF,KAAKlQ,CAAC,EAAMb,EAAE,EAAEA,EAAEI,EAAEY,OAAOhB,CAAC,GAAGc,EAAEV,EAAEJ,GAAiB,GAAdM,EAAEoC,QAAQ5B,CAAC,IAAOL,EAAEK,GAAGD,EAAEC,IAAI,OAAOL,CAAC,EAAEI,EAAEP,CAAC,EAAE,GAAGqL,OAAO0lB,sBAA6D,IAAtC,IAAIjxB,EAAEuL,OAAO0lB,sBAAsBxwB,CAAC,EAAMb,EAAE,EAAEA,EAAEI,EAAEY,OAAOhB,CAAC,GAAGc,EAAEV,EAAEJ,GAAiB,GAAdM,EAAEoC,QAAQ5B,CAAC,GAAM6K,OAAOlG,UAAUgsB,qBAAqBvwB,KAAKL,EAAEC,CAAC,IAAIL,EAAEK,GAAGD,EAAEC,IAAI,OAAOL,CAAC,CAAC,SAASA,EAAEI,EAAEP,GAAG,OAAO,SAASO,GAAG,GAAGgD,MAAMC,QAAQjD,CAAC,EAAE,OAAOA,CAAC,EAAEA,CAAC,GAAG,SAASA,EAAEP,GAAG,GAAKwJ,OAAO4M,YAAY/K,OAAO9K,CAAC,GAAG,uBAAuB8K,OAAOlG,UAAUqR,SAAS5V,KAAKL,CAAC,EAA1F,CAAoG,IAAIC,EAAE,GAAGd,EAAE,CAAA,EAAGS,EAAE,CAAA,EAAGL,EAAE,KAAA,EAAO,IAAI,IAAI,IAAID,EAAED,EAAEW,EAAEiJ,OAAO4M,YAAY,EAAE1W,GAAGG,EAAED,EAAEwxB,KAAI,GAAIC,QAAQ7wB,EAAEgC,KAAK3C,EAAEoF,KAAK,EAAE,CAACjF,GAAGQ,EAAEE,SAASV,GAAGN,EAAE,CAAA,GAAsF,CAAjF,MAAMa,GAAGJ,EAAE,CAAA,EAAGL,EAAES,CAAC,CAAC,QAAQ,IAAIb,GAAG,MAAME,EAAE0xB,QAAQ1xB,EAAE0xB,QAA6B,CAApB,QAAQ,GAAGnxB,EAAE,MAAML,CAAC,CAAC,CAAC,OAAOU,CAAnO,CAAoO,EAAED,EAAEP,CAAC,GAAG,WAAW,MAAM,IAAIiW,UAAU,sDAAsD,CAAC,EAAC,CAAE,CAAC,SAASnW,EAAES,GAAG,OAAO,SAASA,GAAG,GAAGgD,MAAMC,QAAQjD,CAAC,EAAE,CAAC,IAAI,IAAIP,EAAE,EAAEQ,EAAE,IAAI+C,MAAMhD,EAAEG,MAAM,EAAEV,EAAEO,EAAEG,OAAOV,CAAC,GAAGQ,EAAER,GAAGO,EAAEP,GAAG,OAAOQ,CAAC,CAAC,EAAED,CAAC,GAAG,SAASA,GAAG,GAAGiJ,OAAO4M,YAAY/K,OAAO9K,CAAC,GAAG,uBAAuB8K,OAAOlG,UAAUqR,SAAS5V,KAAKL,CAAC,EAAE,OAAOgD,MAAMguB,KAAKhxB,CAAC,CAAC,EAAEA,CAAC,GAAG,WAAW,MAAM,IAAI0V,UAAU,iDAAiD,CAAC,EAAC,CAAE,CAAsxD,SAAS/V,EAAT,GAAa,IAAIK,EAAmB,EAAjBE,UAAUC,QAAU,KAAA,IAAvC,EAAA,EAA0E,CAAC8wB,aAAa,CAAA,CAAE,EAAExxB,EAAE,GAAG,MAAM,CAAC8K,IAAI,SAAStK,EAAEd,GAAG,IAAwMG,EAAMD,EAA1MO,EAAmB,EAAjBM,UAAUC,QAAU,KAAA,IAASD,UAAU,GAAGA,UAAU,GAAG,CAACgxB,KAAK,WAAW,OAAOC,QAAQC,QAAO,CAAE,CAAC,EAAE7xB,EAAE8xB,KAAKC,UAAUrxB,CAAC,EAAE,OAAGV,KAAKE,EAAS0xB,QAAQC,QAAQpxB,EAAEixB,aAAaI,KAAKE,MAAM9xB,EAAEF,EAAE,EAAEE,EAAEF,EAAE,GAAMD,EAAEH,EAAG,EAACE,EAAEO,GAAGA,EAAEsxB,MAAM,WAAW,OAAOC,QAAQC,QAAO,CAAE,EAAS9xB,EAAEkK,cAAexJ,GAAG,OAAOX,EAAEW,CAAC,CAAE,CAAA,EAAGwJ,KAAI,WAAa,OAAOlK,CAAE,CAAE,EAAA,EAAEoL,IAAI,SAASzK,EAAEd,GAAG,OAAOM,EAAE4xB,KAAKC,UAAUrxB,CAAC,GAAGD,EAAEixB,aAAaI,KAAKC,UAAUnyB,CAAC,EAAEA,EAAEgyB,QAAQC,QAAQjyB,CAAC,CAAC,EAAE+K,OAAO,SAASlK,GAAG,OAAO,OAAOP,EAAE4xB,KAAKC,UAAUtxB,CAAC,GAAGmxB,QAAQC,QAAS,CAAA,EAAEI,MAAM,WAAW,OAAO/xB,EAAE,GAAG0xB,QAAQC,QAAS,CAAA,CAAC,CAAC,CAAC,SAAS1xB,EAAEM,EAAEP,EAAEQ,GAAG,IAAId,EAAE,CAACsyB,oBAAoBxxB,EAAEyxB,2BAA2BjyB,CAAC,EAAE,MAAM,CAACkyB,QAAQ,WAAW,OAAO3xB,IAAIkD,EAAE0uB,cAAczyB,EAAE,EAAE,EAAE0yB,gBAAgB,WAAW,OAAO7xB,IAAIkD,EAAE4uB,sBAAsB3yB,EAAE,EAAE,CAAC,CAAC,CAAC,SAASK,EAAEQ,GAAG,IAAIP,EAAE,EAAE,OAAOO,WAAYC,IAAI,OAAOR,CAAC,GAAG,IAAI0xB,QAAO,SAAWhyB,GAAGkD,WAAU,WAAalD,EAAEa,EAAEC,CAAC,CAAC,CAAE,EAAEoV,KAAK0c,IAAI,IAAItyB,EAAE,GAAG,CAAC,CAAE,CAAE,CAAC,EAAE,CAAC,SAASgC,EAAEzB,EAAX,GAAc,IAAIP,EAAmB,EAAjBS,UAAUC,QAAU,KAAA,IAAxC,EAAA,EAA2E,SAASH,EAAEP,GAAG,OAAO0xB,QAAQC,QAAS,CAAA,EAAE,OAAOtmB,OAAOkF,OAAOhQ,EAAE,CAACgyB,KAAK,SAAS/xB,GAAG,OAAOwB,EAAEzB,EAAEwJ,KAAI,SAAWxJ,GAAG,OAAOmxB,QAAQc,IAAI,CAACxyB,EAAEO,EAAEC,CAAC,EAAED,EAAE,CAAE,GAAGwJ,cAAexJ,GAAG,OAAOA,EAAE,EAAG,CAAE,CAAA,CAAC,CAAC,CAAC,CAAC,CAAoH,SAASwB,EAAExB,EAAEP,GAAG,OAAOA,GAAGqL,OAAOoF,KAAKzQ,CAAC,EAAE+F,QAAS,SAASvF,GAAGD,EAAEC,GAAGR,EAAEQ,GAAGD,CAAC,CAAE,CAAE,EAAIA,CAAC,CAAC,SAASD,EAAEC,GAAG,IAAI,IAAIP,EAAES,UAAUC,OAAOF,EAAE,IAAI+C,MAAQ,EAAFvD,EAAIA,EAAE,EAAE,CAAC,EAAEN,EAAE,EAAEA,EAAEM,EAAEN,CAAC,GAAGc,EAAEd,EAAE,GAAGe,UAAUf,GAAG,IAAIS,EAAE,EAAE,OAAOI,EAAE+D,QAAQ,MAAO,WAAW,OAAOmuB,mBAAmBjyB,EAAEL,CAAC,GAAG,CAAE,CAAE,CAAA,CAAiD,SAAS0B,EAAEtB,EAAEP,GAAG,IAAIQ,EAAED,GAAG,GAAGb,EAAEc,EAAEqG,MAAM,GAAG,OAAOwE,OAAOoF,KAAKjQ,CAAC,EAAEuF,iBAAkBxF,GAAG,CAAC,IAAI,CAAC,UAAU,UAAU,kBAAkB,OAAO,aAAa6B,QAAQ7B,CAAC,IAAIb,EAAEa,GAAGC,EAAED,GAAI,GAAG,CAACsG,KAA8B,EAAzBwE,OAAOqnB,QAAQhzB,CAAC,EAAEgB,OAAShB,EAAE,KAAA,EAAOizB,QAAQnyB,EAAEmyB,SAAS3yB,EAAEkyB,QAAQ1xB,EAAE0xB,SAAS,GAAGE,gBAAgB5xB,EAAE4xB,iBAAiB,GAAGQ,UAAUpyB,EAAEoyB,SAAS,CAAC,CAA0C,SAASxvB,EAAE7C,EAAX,GAAc,IAAIP,EAAmB,EAAjBS,UAAUC,QAAU,KAAA,IAAxC,EAAA,EAAV,EAAuF,OAAOF,EAAEA,EAAE,GAAGD,CAAC,EAAE,GAAG,CAACsyB,OAAO7yB,EAAE8yB,WAAWrc,KAAK+R,IAAK,CAAA,CAAC,CAAC,CAAC,SAASnjB,EAAE9E,GAAG,MAAM,UAAU,OAAOA,EAAE,CAACwyB,SAAS,QAAQC,IAAIzyB,EAAE0yB,OAAOxwB,EAAEywB,GAAG,EAAE,CAACH,SAASxyB,EAAEwyB,UAAU,QAAQC,IAAIzyB,EAAEyyB,IAAIC,OAAO1yB,EAAE0yB,QAAQxwB,EAAEywB,GAAG,CAAC,CAAoiB,SAASzrB,EAAElH,EAAEP,EAAEN,EAAES,GAA6c,SAAF4B,EAAavB,EAAEV,GAAG,IAAIC,EAAES,EAAE+J,IAAK,EAAC,GAAG,KAAA,IAASxK,EAAE,KAAK,CAACkH,KAAK,aAAaksB,QAAQ,gHAAgHC,sBAAsB7pB,EAAE1J,CAAC,CAAC,EAA8H,SAAFS,EAAWC,GAA0D,OAAnDP,EAAE,CAACqzB,QAAQtxB,EAAEuxB,SAAS/yB,EAAEgzB,KAAKxzB,EAAEyzB,UAAUhzB,EAAEE,MAAM,EAASb,EAAE2C,KAAKxC,CAAC,EAAEA,CAAC,CAAjN,IAAI+B,EAAE,CAAC8E,KAAKjH,EAAEsyB,QAAQhyB,EAAEiZ,OAAOlZ,EAAE+yB,IAAi/E,SAAWzyB,EAAEP,EAAEQ,GAAOd,EAAEwJ,EAAE1I,CAAC,EAAEL,EAAE,GAAGsI,OAAOlI,EAAEwyB,SAAS,KAAK,EAAEtqB,OAAOlI,EAAEyyB,IAAI,GAAG,EAAEvqB,OAAO,MAAMzI,EAAEyzB,OAAO,CAAC,EAAEzzB,EAAE8pB,OAAO,CAAC,EAAE9pB,CAAC,EAAE,OAAON,EAAEgB,SAASP,GAAG,IAAIsI,OAAO/I,CAAC,GAAGS,CAAC,EAAroFJ,EAAEL,EAAEg0B,KAAK1xB,CAAC,EAAE2xB,eAAe7zB,EAAEH,EAAEY,EAAEqzB,SAASC,OAAO,EAAEC,gBAAgBh0B,EAAEH,EAAEQ,EAAEwyB,OAAO,CAAC,EAA2FlvB,EAAE,CAACswB,UAAU,SAASxzB,GAAsB,IAAI,OAAOqxB,KAAKE,MAAMvxB,EAAEyzB,OAAO,CAAqG,CAAnG,MAAMh0B,GAAG,KAA0B,CAACiH,KAAK,uBAAuBksB,QAAuBnzB,EAAEmzB,QAAfG,SAAuB/yB,CAAb,CAAe,CAAK,EAAE0zB,QAAQ,SAASv0B,GAAG,IAAIS,EAAEG,EAAEZ,CAAC,EAAE,OAAOA,EAAEw0B,YAAYv0B,CAAC,GAAG+xB,QAAQc,IAAI,CAACjyB,EAAE4zB,OAAOC,KAAK,oBAAoB1wB,EAAEvD,CAAC,CAAC,EAAEI,EAAE8zB,WAAWppB,IAAIlL,EAAEqD,EAAErD,EAAEL,EAAEw0B,WAAW3sB,EAAEhF,CAAC,CAAC,EAAE,EAAEwH,KAAI,WAAa,OAAO/J,EAAEQ,EAAEV,CAAC,CAAE,CAAE,CAAA,EAAEw0B,OAAO,SAAS/zB,GAAG,MAAMD,EAAEC,CAAC,EAAE,SAASA,EAAEP,GAAG,IAAIQ,EAAED,EAAEyzB,QAAQt0B,EAAEa,EAAEsyB,OAAO1yB,EAAEK,EAAE,IAAIL,EAAEyxB,KAAKE,MAAMtxB,CAAC,EAAE2yB,OAAgB,CAAR,MAAM5yB,IAAI,MAA6B,CAAC0G,KAAK,WAAWksB,QAA6ChzB,EAAnC0yB,OAAqCnzB,EAA5B0zB,sBAA8BpzB,CAAP,CAAS,EAAEO,EAAEgJ,EAAE1J,CAAC,CAAC,CAAC,CAAC,EAAE,OAAOU,EAAEg0B,UAAUC,KAAKzyB,CAAC,EAAEgI,KAAM,SAASxJ,GAAG,OAAkBP,EAAwNyD,EAA9LzD,GAAPO,EAArBA,EAAwNA,GAAxLsyB,OAActyB,EAAE2zB,aAA4Bl0B,EAA4CO,EAAxC2zB,WAAW1zB,EAA6BD,EAAzBsyB,OAAa,CAAC7yB,GAAG,GAAG,CAAC,CAACQ,IAAO,GAAG,CAAC,EAAER,EAAE,MAAM,GAAG,CAAC,EAAEA,EAAE,KAASA,EAAEi0B,QAAQ1zB,CAAC,EAAE,GAAG,CAAC,EAAEA,EAAEsyB,OAAO,KAAK7yB,EAAE+zB,UAAUxzB,CAAC,EAAEP,EAAEs0B,OAAO/zB,CAAC,EAA9N,IAAWP,EAAmBO,EAAuDP,EAAhDA,CAAiM,EAAE,CAAluD,IAA+LN,EAA+BS,EAAluBI,EAAEP,EAAsgBH,EAAE,GAAGD,EAAE,SAASW,EAAEP,GAAG,GAAGO,EAAE4Y,SAAS9V,IAAG,KAAA,IAAS9C,EAAEsG,MAAM,KAAA,IAAS7G,EAAE6G,MAAsE,OAAtDnH,EAAE6D,MAAMC,QAAQjD,EAAEsG,IAAI,EAAEtG,EAAEsG,KAAKrG,EAAEA,EAAE,GAAGD,EAAEsG,IAAI,EAAE7G,EAAE6G,IAAI,EAAS+qB,KAAKC,UAAUnyB,CAAC,CAAC,EAAEA,EAAES,CAAC,EAAED,GAAaF,EAA8HG,EAAvHT,EAAEc,EAAEA,EAAE,GAA+GD,EAA1G2xB,OAAO,EAAElyB,EAAEkyB,OAAO,EAAE/xB,EAAE,GAAUkL,OAAOoF,KAAK/Q,CAAC,EAAEqG,QAAS,SAASxF,GAAG,IAAIP,EAAEN,EAAEa,GAAGJ,EAAEI,EAAEgE,YAAa,GAAEvE,CAAE,GAAGG,GAAQF,EAAEP,EAAEyZ,OAAOpZ,EAAEL,EAAEyZ,SAAS9V,EAAE,GAAG7C,EAAEA,EAAE,GAAGd,EAAEmH,IAAI,EAAE1G,EAAE0G,IAAI,EAAE7E,EAAExB,EAAEA,EAAEA,EAAE,CAACi0B,kBAAkBl0B,EAAEm0B,UAAUzvB,KAAK,EAAE1E,EAAE6xB,eAAe,EAAEryB,CAAC,EAAEI,EAAEiyB,eAAe,EAAEzyB,EAAE,EAA8xC,OAAxuEY,EAAivEA,EAAE8zB,WAAjvEr0B,EAA4vEA,EAAlvE0xB,QAAQc,IAAIxyB,EAAE2J,IAAK,SAAS3J,GAAG,OAAOO,EAAEuK,IAAI9K,aAAc,OAAO0xB,QAAQC,QAAQvuB,EAAEpD,CAAC,CAAC,CAAE,CAAA,CAAG,CAAE,CAAA,EAAE+J,KAAM,SAASxJ,GAAG,IAAIC,EAAED,EAAE+H,gBAAiB/H,GAAG,OAAre,KAAqfA,EAAsDA,GAA1CsyB,QAAoC,KAAxBpc,KAAK+R,IAAG,EAAGjoB,EAAEuyB,UAAoB,CAAA,EAAGpzB,EAAEa,EAAE+H,OAAM,SAAW/H,GAAG,OAAgBA,EAAuDA,GAA3CsyB,SAAStrB,GAAGkP,KAAK+R,IAAK,EAACjoB,EAAEuyB,YAAY,IAAS,CAAE,EAAC3yB,EAAE,GAAGsI,OAAO3I,EAAEU,CAAC,EAAEV,EAAEJ,CAAC,CAAC,EAAE,MAAM,CAACi1B,WAAW,SAASp0B,EAAEP,GAAG,OAAO,IAAIN,EAAEgB,QAAQ,IAAIH,EAAE,EAAEb,EAAEgB,OAAO,EAAEH,GAAGP,CAAC,EAAE40B,eAAwB,EAATz0B,EAAEO,OAASP,EAAEwJ,IAAwBtE,CAAO,EAACrF,CAAC,CAAE,GAAoxD+J,KAAI,SAAWxJ,GAAG,OAAOwB,EAAEjC,EAAES,EAAEq0B,cAAc,EAAE5pB,QAAO,EAAGzK,EAAEo0B,UAAU,CAAE,EAAE,CAAC,SAAStyB,EAAE9B,GAAG,IAAIP,EAAEO,EAAE8zB,WAAW7zB,EAAED,EAAE4zB,OAAOz0B,EAAEa,EAAEg0B,UAAUz0B,EAAES,EAAEs0B,cAAch1B,EAAEU,EAAEu0B,eAAel1B,EAAEW,EAAEqzB,SAAS1zB,EAAEK,EAAEm0B,UAAUz0B,EAAEM,EAAEw0B,MAAMh1B,EAAEQ,EAAE6xB,gBAAgBpwB,EAAE,CAACqyB,WAAWr0B,EAAEm0B,OAAO3zB,EAAE+zB,UAAU70B,EAAEm1B,cAAc/0B,EAAEg1B,eAAej1B,EAAE+zB,SAASh0B,EAAE80B,UAAUx0B,EAAEgyB,QAAQ3xB,EAAE2xB,QAAQE,gBAAgBryB,EAAEg1B,MAAM90B,EAAE0J,IAAwBtE,CAAO,EAAC2vB,KAAK,SAASz0B,EAAEP,GAAgC,SAAFN,IAAa,OAAO+H,EAAEzF,EAAEA,EAAE+yB,MAAMzsB,gBAAiB/H,GAAG,OAAO,IAAIA,EAAE0yB,OAAOxwB,EAAEwyB,KAAM,CAAE,EAAC10B,EAAEC,CAAC,CAAC,CAAlH,IAA0LV,EAAtLU,EAAEqB,EAAE7B,EAAEgC,EAAE4xB,SAASoB,IAAI,EAA2F,MAAG,CAAA,KAAM,KAAA,IAASx0B,EAAEoyB,UAAUpyB,EAAYD,GAAVqyB,UAA8BlzB,EAAG,GAAKI,EAAE,CAACuzB,QAAQ9yB,EAAE20B,qBAAqB10B,EAAE20B,YAAY,CAAC/C,gBAAgBpwB,EAAEowB,gBAAgBF,QAAQlwB,EAAEkwB,OAAO,CAAC,EAASlwB,EAAE8yB,eAAehqB,IAAIhL,aAAc,OAAOkC,EAAE6yB,cAAc/pB,IAAIhL,EAAC,WAAa,OAAOkC,EAAE6yB,cAAc5pB,IAAInL,EAAEJ,GAAG,EAAEqK,KAAI,SAAWxJ,GAAG,OAAOmxB,QAAQc,IAAI,CAACxwB,EAAE6yB,cAAcpqB,OAAO3K,CAAC,EAAES,EAAE,CAAE,WAAYA,GAAG,OAAOmxB,QAAQc,IAAI,CAACxwB,EAAE6yB,cAAcpqB,OAAO3K,CAAC,EAAE4xB,QAAQ0D,OAAO70B,CAAC,EAAE,CAAE,CAAA,EAAGwJ,KAAI,SAAWxJ,GAAOP,EAAEG,EAAEI,EAAE,CAAC,EAAO,OAALP,EAAE,GAAUA,EAAE,EAAG,CAAE,CAAC,EAAG,EAAE,CAACyxB,KAAK,SAASlxB,GAAG,OAAOyB,EAAE8yB,eAAe7pB,IAAInL,EAAES,CAAC,CAAC,CAAC,CAAC,EAAC,EAAE6sB,MAAM,SAAS7sB,EAAEP,GAAG,OAAOyH,EAAEzF,EAAEA,EAAE+yB,MAAMzsB,OAAQ,SAAS/H,GAAG,OAAO,IAAIA,EAAE0yB,OAAOxwB,EAAE4yB,MAAO,CAAE,EAAC90B,EAAEsB,EAAE7B,EAAEgC,EAAE4xB,SAASxG,KAAK,CAAC,CAAC,CAAC,EAAE,OAAOprB,CAAC,CAAyZ,SAASkH,EAAE3I,GAAG,OAAO8K,OAAOoF,KAAKlQ,CAAC,EAAEoJ,IAAK,SAAS3J,GAAG,OAAOM,EAAE,QAAQN,GAAGQ,EAAED,EAAEP,GAAG,oBAAoBqL,OAAOlG,UAAUqR,SAAS5V,KAAKJ,CAAC,GAAG,mBAAmB6K,OAAOlG,UAAUqR,SAAS5V,KAAKJ,CAAC,EAAEoxB,KAAKC,UAAUtxB,EAAEP,EAAE,EAAEO,EAAEP,GAAE,EAAG,IAAIQ,CAAE,CAAE,EAACsmB,KAAK,GAAG,CAAC,CAAC,SAASvd,EAAEhJ,GAAG,OAAOA,EAAEoJ,IAAwBjG,CAAK,CAAE,CAAC,SAASA,EAAEnD,GAAG,IAAIP,EAAEO,EAAE8yB,QAAQnB,QAAQ,qBAAqB,CAACF,oBAAoB,OAAO,EAAE,GAAG,OAAOxxB,EAAEA,EAAE,GAAGD,CAAC,EAAE,GAAG,CAAC8yB,QAAQ7yB,EAAEA,EAAE,GAAGD,EAAE8yB,OAAO,EAAE,GAAG,CAACnB,QAAQ1xB,EAAEA,EAAE,GAAGD,EAAE8yB,QAAQnB,OAAO,EAAElyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAwuB,SAAS4L,EAAErL,GAAG,OAAO,SAASP,EAAEQ,GAAG,OAAOD,EAAE8yB,QAAQ7yB,CAAC,EAAEuJ,KAAI,SAAWrK,GAAG,GAAG,KAAA,IAASa,EAAE+0B,OAAO/0B,EAAE+0B,MAAM51B,EAAE61B,IAAI,EAAE,CAACh1B,EAAEi1B,WAAW91B,CAAC,EAAE,OAAOA,EAAE+1B,OAAOz1B,EAAE,CAACy1B,OAAO/1B,EAAE+1B,MAAM,CAAC,EAAEz1B,EAAE,CAAC01B,MAAMl1B,EAAEk1B,MAAM,GAAG,CAAC,CAAC,CAAE,EAAE,EAAE,EAAE,CAAC,CAA8vgB,SAASC,EAAGp1B,EAAEP,EAAEN,GAA4tC,SAAFsC,IAAa,OAAO,SAASzB,GAAG,OAAgBA,EAA4UC,EAAEA,EAAEA,EAAE,GAAGV,CAAC,EAAES,CAAC,EAAE,GAAG,CAACq1B,QAAQ,CAACC,2BAA2B7xB,EAAE8xB,2BAA2BlyB,CAAC,CAAC,CAAC,EAA5Z5D,EAAEO,EAAEw1B,QAAQ,KAAKr2B,EAAEO,EAAEwD,EAAE0uB,cAAc5xB,EAAEy1B,MAAMz1B,EAAE01B,MAAM,EAAE91B,EAAEkC,EAAE7B,EAAEA,EAAE,CAACu0B,MAAM,CAAC,CAAC/B,IAAI,mBAAmBvqB,OAAOzI,EAAE,cAAc,CAAC,EAAE,EAAEO,CAAC,EAAE,GAAG,CAAC2xB,QAAQ1xB,EAAEA,EAAEA,EAAE,GAAGd,EAAEwyB,QAAS,CAAA,EAAE,CAACgE,eAAe,kBAAkB,CAAC,EAAE31B,EAAE2xB,OAAO,EAAEE,gBAAgB5xB,EAAEA,EAAE,GAAGd,EAAE0yB,iBAAiB,EAAE7xB,EAAE6xB,eAAe,CAAC,CAAC,CAAC,EAASrwB,EAAE,CAACi0B,MAAMz1B,EAAEy1B,MAAMb,YAAYh1B,CAAC,EAAEI,EAAEq1B,OAAO,EAAlV,IAAgB51B,EAAiBN,CAA6Y,CAAC,CAA7qD,IAA3hkBM,EAAriPO,EAAOP,EAAEQ,EAAs02BL,EAAzwDL,EAAE,CAACk2B,MAAMz1B,EAAE01B,OAAOj2B,EAAE4zB,SAAS,CAACC,QAAQ,EAAEmB,KAAK,EAAE5H,MAAM,EAAE,EAAEmH,UAAU,CAACC,KAAK,SAASj0B,GAAG,OAAO,IAAImxB,QAAO,SAAW1xB,GAAG,IAAIQ,EAAE,IAAI21B,eAAe31B,EAAE2sB,KAAK5sB,EAAE4Y,OAAO5Y,EAAEyyB,IAAI,CAAA,CAAE,EAAE3nB,OAAOoF,KAAKlQ,EAAE2xB,OAAO,EAAEnsB,iBAAkB/F,GAAG,OAAOQ,EAAE41B,iBAAiBp2B,EAAEO,EAAE2xB,QAAQlyB,EAAE,CAAE,CAAE,EAAS,SAAFG,EAAWI,EAAEb,GAAG,OAAOkD,WAAY,WAAWpC,EAAE61B,MAAO,EAACr2B,EAAE,CAAC6yB,OAAO,EAAEmB,QAAQt0B,EAAEw0B,WAAW,CAAA,CAAE,CAAC,CAAE,EAAE,IAAI3zB,CAAC,CAAC,CAA5G,IAAIb,EAA0GI,EAAEK,EAAEI,EAAEozB,eAAe,oBAAoB,EAAEnzB,EAAE81B,mBAAmB,WAAW91B,EAAE+1B,WAAW/1B,EAAEg2B,QAAQ,KAAA,IAAS92B,IAAIsJ,aAAalJ,CAAC,EAAEJ,EAAES,EAAEI,EAAEuzB,gBAAgB,gBAAgB,EAAE,EAAEtzB,EAAEi2B,QAAQ,WAAW,IAAIj2B,EAAEqyB,SAAS7pB,aAAalJ,CAAC,EAAEkJ,aAAatJ,CAAC,EAAEM,EAAE,CAACg0B,QAAQxzB,EAAEk2B,cAAc,yBAAyB7D,OAAOryB,EAAEqyB,OAAOqB,WAAW,CAAA,CAAE,CAAC,EAAE,EAAE1zB,EAAEm2B,OAAO,WAAW3tB,aAAalJ,CAAC,EAAEkJ,aAAatJ,CAAC,EAAEM,EAAE,CAACg0B,QAAQxzB,EAAEk2B,aAAa7D,OAAOryB,EAAEqyB,OAAOqB,WAAW,CAAA,CAAE,CAAC,CAAC,EAAE1zB,EAAEg0B,KAAKj0B,EAAEsG,IAAI,CAAE,CAAE,CAAA,CAAC,EAAEstB,OAAa,CAACyC,MAAM,SAASr2B,EAAEP,GAAG,OAAiC0xB,QAAQC,QAAS,CAAA,EAAEyC,KAAK,SAAS7zB,EAAEP,GAAG,OAAgC0xB,QAAQC,QAAS,CAAA,EAAErE,MAAM,SAAS/sB,EAAEP,GAAG,OAAO2W,QAAQ2W,MAAM/sB,EAAEP,CAAC,EAAE0xB,QAAQC,QAAS,CAAA,CAAC,EAAGmD,eAAe50B,IAAI20B,cAAc30B,EAAE,CAACsxB,aAAa,CAAA,CAAE,CAAC,EAAE6C,WAAlwzB,SAASz0B,EAAEW,GAAG,IAAIP,EAAEF,EAAES,EAAEs2B,MAAM,EAAEr2B,EAAER,EAAE8I,MAAO,EAAC,OAAO,KAAA,IAAStI,EAAE,CAACsK,IAAI,SAASvK,EAAEP,GAAG,IAAIQ,EAAmB,EAAjBC,UAAUC,QAAU,KAAA,IAASD,UAAU,GAAGA,UAAU,GAAG,CAACgxB,KAAK,WAAW,OAAOC,QAAQC,SAAS,CAAC,EAAQ,OAAJ3xB,EAAG,EAAU+J,KAAM,SAASxJ,GAAG,OAAOmxB,QAAQc,IAAI,CAACjyB,EAAEC,EAAEixB,KAAKlxB,CAAC,EAAE,CAAE,CAAA,EAAGwJ,KAAI,SAAWxJ,GAAG,OAAOJ,EAAEI,EAAE,CAAC,EAAE,EAAG,EAAE,EAAE0K,IAAI,SAAS1K,EAAEP,GAAG,OAAO0xB,QAAQC,QAAQ3xB,CAAC,CAAC,EAAEyK,OAAO,SAASlK,GAAG,OAAOmxB,QAAQC,QAAO,CAAE,EAAEI,MAAM,WAAW,OAAOL,QAAQC,QAAS,CAAA,CAAC,EAAE,CAAC7mB,IAAI,SAASvK,EAAEb,GAAG,IAAIS,EAAmB,EAAjBM,UAAUC,QAAU,KAAA,IAASD,UAAU,GAAGA,UAAU,GAAG,CAACgxB,KAAK,WAAW,OAAOC,QAAQC,QAAO,CAAE,CAAC,EAAE,OAAOnxB,EAAEsK,IAAIvK,EAAEb,EAAES,CAAC,EAAE22B,MAAO,WAAW,OAAOl3B,EAAE,CAACi3B,OAAO72B,CAAC,CAAC,EAAE8K,IAAIvK,EAAEb,EAAES,CAAC,CAAE,CAAE,CAAA,EAAE8K,IAAI,SAAS1K,EAAEb,GAAG,OAAOc,EAAEyK,IAAI1K,EAAEb,CAAC,EAAEo3B,MAAK,WAAa,OAAOl3B,EAAE,CAACi3B,OAAO72B,CAAC,CAAC,EAAEiL,IAAI1K,EAAEb,CAAC,CAAE,CAAE,CAAA,EAAE+K,OAAO,SAASlK,GAAG,OAAOC,EAAEiK,OAAOlK,CAAC,EAAEu2B,MAAO,WAAW,OAAOl3B,EAAE,CAACi3B,OAAO72B,CAAC,CAAC,EAAEyK,OAAOlK,CAAC,CAAE,CAAE,CAAA,EAAEwxB,MAAM,WAAW,OAAOvxB,EAAEuxB,MAAK,EAAG+E,MAAK,WAAa,OAAOl3B,EAAE,CAACi3B,OAAO72B,CAAC,CAAC,EAAE+xB,MAAO,CAAC,EAAE,CAAC,CAAC,EAAo5xB,CAAC8E,OAAO,EAArq1Bt2B,EAAwq1B,CAACU,IAAI,GAAGwH,OAAO,SAAS,GAAG,EAAEA,OAAOlI,CAAC,CAAC,EAArs1BC,EAAE,2BAA2BiI,OAAOlI,EAAEU,GAAG,EAAyI,CAAC6J,IAAI,SAASvK,EAAEP,GAAG,IAAIQ,EAAmB,EAAjBC,UAAUC,QAAU,KAAA,IAASD,UAAU,GAAGA,UAAU,GAAG,CAACgxB,KAAK,WAAW,OAAOC,QAAQC,QAAS,CAAA,CAAC,EAAE,OAAOD,QAAQC,QAAO,EAAG5nB,KAAI,WAAa,IAAIvJ,EAAEoxB,KAAKC,UAAUtxB,CAAC,EAAEb,EAAEI,IAAIU,GAAG,OAAOkxB,QAAQc,IAAI,CAAC9yB,GAAGM,EAAC,EAAG,KAAA,IAASN,EAAE,CAAE,CAAA,EAAGqK,KAAM,SAASxJ,GAAG,IAAIP,EAAEG,EAAEI,EAAE,CAAC,EAAEb,EAAEM,EAAE,GAAGF,EAAEE,EAAE,GAAG,OAAO0xB,QAAQc,IAAI,CAAC9yB,EAAEI,GAAGU,EAAEixB,KAAK/xB,CAAC,EAAE,CAAE,CAAA,EAAGqK,cAAexJ,GAAG,OAAOJ,EAAEI,EAAE,CAAC,EAAE,EAAG,CAAE,CAAA,EAAE0K,IAAI,SAAS1K,EAAEP,GAAG,OAAO0xB,QAAQC,QAAS,EAAC5nB,KAAM,WAAW,IAAI5J,EAAEL,EAAC,EAAG,OAAOK,EAAEyxB,KAAKC,UAAUtxB,CAAC,GAAGP,EAAEN,IAAIq3B,QAAQv2B,EAAEoxB,KAAKC,UAAU1xB,CAAC,CAAC,EAAEH,CAAE,CAAE,CAAA,EAAEyK,OAAO,SAASlK,GAAG,OAAOmxB,QAAQC,QAAO,EAAG5nB,KAAI,WAAa,IAAI/J,EAAEF,EAAC,EAAG,OAAOE,EAAE4xB,KAAKC,UAAUtxB,CAAC,GAAGb,EAAG,EAACq3B,QAAQv2B,EAAEoxB,KAAKC,UAAU7xB,CAAC,CAAC,CAAE,EAAE,EAAE+xB,MAAM,WAAW,OAAOL,QAAQC,QAAO,EAAG5nB,KAAI,WAAarK,EAAG,EAACs3B,WAAWx2B,CAAC,CAAE,EAAE,CAAC,GAAq0zBN,EAAG,EAAC,CAAC,EAAEw0B,WAAnrmB10B,EAAE,CAACiF,MAAM,2BAA2BwD,OAA2pmB,SAAlpmB,GAAG,EAAEwuB,IAAI,SAAS12B,GAAOC,EAAE,KAAKiI,OAAOlI,EAAE22B,OAAO,EAAEzuB,OAAO,KAAA,IAASlI,EAAEwO,QAAQ,KAAKtG,OAAOlI,EAAEwO,QAAQ,GAAG,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI/O,EAAEiF,MAAM7C,QAAQ5B,CAAC,IAAIR,EAAEiF,MAAM,GAAGwD,OAAOzI,EAAEiF,KAAK,EAAEwD,OAAOjI,CAAC,GAAGR,CAAC,CAAC,GAAy+lBi3B,IAAI,CAACC,QAAQ,SAAS,CAAC,CAAC,EAAEn3B,EAAES,EAAEA,EAAE,GAAGV,CAAC,EAAEJ,CAAC,EAA/t1B,SAAFA,IAAa,OAAoBM,EAAb,KAAA,IAASA,EAAMO,EAAE42B,cAAcC,OAAOD,aAAcn3B,CAAC,CAAI,SAAFF,IAAa,OAAO8xB,KAAKE,MAAMpyB,IAAI23B,QAAQ72B,CAAC,GAAG,IAAI,CAAC,CAA4j2B,OAAgBD,EAAutBC,EAAEA,EAAE,GAAGT,CAAC,EAAE,GAAG,CAAC61B,QAAQ,CAAC0B,OAAOC,EAAGC,qBAAqBC,EAAGC,cAAcC,GAAGC,mBAAmBC,GAAGC,gBAAgBP,EAAGQ,UAAU3xB,EAAE4xB,aAAa71B,GAAE81B,aAAa9rB,GAAE+rB,UAAUvvB,GAAEwvB,UAAUC,GAAGC,YAAYC,GAAGC,QAAQC,GAAGC,aAAaC,GAAGC,6BAA6BlB,EAAGmB,UAAUC,EAAGC,UAAUluB,EAAEmuB,YAAYC,GAAGC,aAAaC,GAAGC,aAAajuB,GAAEkuB,cAAcC,GAAGC,aAAa3xB,GAAE4xB,cAAcrtB,GAAEstB,UAAUC,GAAGC,cAAcC,GAAGC,YAAYC,GAAGC,cAAcC,GAAGC,aAAaC,GAAGC,mBAAmBC,GAAGC,uBAAuB3uB,GAAE4uB,wBAAwBp2B,GAAEq2B,sBAAsBC,GAAGC,WAAWC,EAAGC,yBAAyBC,GAAGC,sBAAsBC,GAAGC,wBAAwBC,GAAGC,sBAAsBC,GAAGC,YAAYC,EAAGC,cAAchwB,GAAEiwB,UAAU,SAAS96B,GAAG,OAAO,SAASP,GAAG,OAAOs7B,EAAG/6B,CAAC,EAAEP,EAAE,CAAC41B,QAAQ,CAACN,MAAMiG,EAAG9wB,OAAO+wB,GAAGC,YAAYC,GAAGC,UAAUC,GAAGC,WAAWC,GAAGC,WAAWC,GAAGC,YAAYC,EAAG5E,OAAO6E,GAAG3E,qBAAqB4E,GAAGC,SAAS7Q,EAAG8Q,YAAYC,GAAGC,YAAYC,GAAGC,oBAAoBC,GAAGC,qBAAqBC,GAAGC,aAAaC,GAAGC,cAAcC,EAAGC,SAASC,GAAGC,aAAaC,GAAGC,cAAcC,GAAGC,kBAAkBC,GAAGC,WAAWC,GAAGC,OAAOC,GAAGC,YAAYC,GAAGC,aAAaC,EAAGC,WAAWC,GAAGC,eAAeC,GAAGC,eAAeC,GAAGC,cAAcC,GAAGC,cAAcC,GAAGC,kBAAkBC,GAAGC,mBAAmBC,GAAGC,YAAYC,GAAGC,QAAQC,GAAGC,WAAWC,GAAGC,SAASC,GAAGC,UAAUC,EAAGC,gBAAgBC,GAAGC,YAAYC,GAAGC,WAAWC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAEC,cAAc,WAAW,OAAO,SAASz/B,GAAG,OAAgBA,EAAsUC,EAAEA,EAAEA,EAAE,GAAGV,CAAC,EAAES,CAAC,EAAE,GAAG,CAACq1B,QAAQ,CAACqK,UAAU38B,EAAE48B,UAAU/8B,EAAEg9B,WAAWz0B,EAAE00B,WAAW53B,EAAE63B,aAAar2B,CAAC,CAAC,CAAC,EAA7ZhK,EAAEO,EAAEw1B,QAAQ,KAAKr2B,EAAEO,EAAEwD,EAAE0uB,cAAc5xB,EAAEy1B,MAAMz1B,EAAE01B,MAAM,EAAE91B,EAAEkC,EAAE7B,EAAEA,EAAE,CAACu0B,MAAM,CAAC,CAAC/B,IAAI,aAAavqB,OAAOzI,EAAE,cAAc,CAAC,EAAE,EAAEO,CAAC,EAAE,GAAG,CAAC2xB,QAAQ1xB,EAAEA,EAAEA,EAAE,GAAGd,EAAEwyB,QAAS,CAAA,EAAE,CAACgE,eAAe,kBAAkB,CAAC,EAAE31B,EAAE2xB,OAAO,EAAEE,gBAAgB5xB,EAAEA,EAAE,GAAGd,EAAE0yB,gBAAiB,CAAA,EAAE7xB,EAAE6xB,eAAe,CAAC,CAAC,CAAC,EAASrwB,EAAE,CAACi0B,MAAMz1B,EAAEy1B,MAAMb,YAAYh1B,CAAC,EAAEI,EAAEq1B,OAAO,EAA5U,IAAgB51B,EAAiBN,CAA8Y,CAAC,EAAE4gC,oBAAoBt+B,EAAEu+B,mBAAmB,WAAW,OAAO,SAAShgC,GAAG,OAAOR,EAAEo0B,OAAOC,KAAK,mFAAmF,EAAEpyB,EAAC,EAAGzB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAntFP,EAAEO,EAAEy1B,MAAMt2B,EAAEO,EAAE,KAAA,IAASM,EAAEigC,SAASjgC,EAAEigC,SAAS/8B,EAAE0uB,cAAcnyB,EAAEO,EAAE01B,MAAM,EAA0al0B,EAAE,CAACozB,YAA3ah1B,EAAEkC,EAAE7B,EAAEA,EAAE,CAACu0B,MAAM,CAAC,CAAC/B,IAAI,GAAGvqB,OAAOzI,EAAE,kBAAkB,EAAEizB,OAAOxwB,EAAEwyB,IAAI,EAAE,CAACjC,IAAI,GAAGvqB,OAAOzI,EAAE,cAAc,EAAEizB,OAAOxwB,EAAE4yB,KAAK,GAAG5sB,OAAh8wB,SAAWlI,GAAG,IAAI,IAAIP,EAAEO,EAAEG,OAAO,EAAI,EAAFV,EAAIA,CAAC,GAAG,CAAC,IAAIQ,EAAEoV,KAAKE,MAAMF,KAAK6qB,OAAM,GAAIzgC,EAAE,EAAE,EAAEN,EAAEa,EAAEP,GAAGO,EAAEP,GAAGO,EAAEC,GAAGD,EAAEC,GAAGd,CAAC,CAAC,OAAOa,CAAC,EAAu1wB,CAAC,CAACyyB,IAAI,GAAGvqB,OAAOzI,EAAE,mBAAmB,CAAC,EAAE,CAACgzB,IAAI,GAAGvqB,OAAOzI,EAAE,mBAAmB,CAAC,EAAE,CAACgzB,IAAI,GAAGvqB,OAAOzI,EAAE,mBAAmB,CAAC,EAAE,CAAC,CAAC,EAAEO,CAAC,EAAE,GAAG,CAAC2xB,QAAQ1xB,EAAEA,EAAEA,EAAE,GAAGd,EAAEwyB,SAAS,EAAE,CAACgE,eAAe,mCAAmC,CAAC,EAAE31B,EAAE2xB,OAAO,EAAEE,gBAAgB5xB,EAAEA,EAAE,GAAGd,EAAE0yB,gBAAiB,CAAA,EAAE7xB,EAAE6xB,eAAe,CAAC,CAAC,CAAC,EAA0B4D,MAAMh2B,EAAE0gC,gBAAgB,SAASngC,EAAEP,GAAGG,EAAEu0B,UAAUuC,IAAI,CAACC,QAAQ32B,EAAEwO,QAAQ/O,CAAC,CAAC,CAAC,EAAE2gC,WAAW,WAAW,OAAOjP,QAAQc,IAAI,CAACryB,EAAE00B,cAAc9C,MAAO,EAAC5xB,EAAE20B,eAAe/C,MAAK,EAAG,EAAEhoB,KAAM,YAAc,CAAA,CAAC,EAAExJ,EAAEq1B,OAAO,CAAwgE,CAA/hgC,IAAm8KnyB,EAAiXhB,EAA6BF,EAAIgF,EAAwR5C,EAAWtB,EAAQL,EAASkH,EAAo0I5G,EAAsG0G,EAAuG7G,EAAsGuI,EAA4FlD,EAA4GxE,EAA+GJ,EAAiUgH,EAA2UjD,GAA+KuE,GAAyIT,GAA8OrF,EAA0OuC,GAAyFxG,GAA4FgK,GAA4Ff,GAA0GF,GAA2NjH,GAAiS40B,EAAoG4B,EAA+GF,GAA8G/B,GAA0FuB,GAA0GN,GAAgHU,GAAqMmB,EAAkLtC,GAA0FN,GAA8FJ,GAA6FuB,GAAsGzB,GAA2OT,GAA4QE,GAA2HN,EAAkNE,EAAmQwC,GAA6JU,GAAoRtB,GAAuOwB,GAAoRE,GAAkJpB,GAA8HsB,GAAqK/B,GAAmkBiC,EAA8II,EAAuLgC,GAA4NsC,GAAuTtB,GAAuTqC,EAA4iBvD,GAAmK0C,GAAsRpB,GAAyRxB,GAAoL3B,GAA6JuB,GAAwJE,EAAuHoC,GAAuRZ,GAA0RZ,GAA0InC,GAA2KiC,GAAgb/B,GAAsH6B,GAAqK3B,GAAmSqD,GAA4H1C,GAA4I0B,GAA+HxB,GAAgLE,GAAmLgC,GAA8iCc,GAA4FZ,GAA+F/C,GAAgLE,EAA6rBqD,GAA0DE,EAAuX1B,GAA0DE,EAAgc9B,GAAmJC,GAAsK6C,GAA6IZ,GAAgJ9B,GAA4R/Q,EAA8QqV,EAA+NC,oBAAr92BC,SAAi3Kt9B,EAAE,CAAC4uB,sBAAsB,EAAEF,cAAc,CAAC,EAAuU1vB,EAAE,CAACwyB,KAAK,EAAEI,MAAM,EAAEnC,IAAI,CAAC,EAAkSvuB,EAAE,SAAStB,EAAE,MAAML,EAAE,OAAOkH,EAAE,MAAk0I5G,EAAE,SAAS/C,GAAG,OAAO,SAASP,EAAEQ,GAAG,OAAOD,EAAE40B,YAAY/H,MAAM,CAACjU,OAAOnW,EAAE0wB,KAAK,YAAY7sB,KAAK7G,CAAC,EAAEQ,CAAC,CAAC,CAAC,EAAEwJ,EAAE,SAASzJ,GAAG,OAAO,SAASP,EAAEQ,GAAG,OAAOD,EAAE40B,YAAY/H,MAAM,CAACjU,OAAOxU,EAAE+uB,KAAKpzB,EAAE,eAAeN,CAAC,CAAC,EAAEQ,CAAC,CAAC,CAAC,EAAE2C,EAAE,SAAS5C,GAAG,OAAO,SAASP,EAAEQ,GAAG,OAAOD,EAAE40B,YAAYH,KAAK,CAAC7b,OAAO9V,EAAEqwB,KAAKpzB,EAAE,eAAeN,CAAC,CAAC,EAAEQ,CAAC,CAAC,CAAC,EAAEkL,EAAE,SAASnL,GAAG,OAAO,SAASP,GAAG,OAAOO,EAAE40B,YAAYH,KAAK,CAAC7b,OAAO9V,EAAEqwB,KAAK,WAAW,EAAE1zB,CAAC,CAAC,CAAC,EAAEwI,EAAE,SAASjI,GAAG,OAAO,SAASP,EAAEQ,GAAG,OAAOD,EAAE40B,YAAY/H,MAAM,CAACjU,OAAOnW,EAAE0wB,KAAKpzB,EAAE,oBAAoBN,CAAC,CAAC,EAAEQ,CAAC,CAAC,CAAC,EAAEwD,EAAE,SAASzD,GAAG,OAAO,SAASP,GAAG,OAAOO,EAAE40B,YAAYH,KAAK,CAAC7b,OAAO9V,EAAEqwB,KAAK,8BAA8B,EAAE1zB,CAAC,CAAC,CAAC,EAAE4D,EAAE,SAASrD,GAAG,OAAO,SAASP,EAAEQ,GAAG,OAAOD,EAAE40B,YAAY/H,MAAM,CAACjU,OAAOnW,EAAE0wB,KAAK,+BAA+B7sB,KAAK7G,CAAC,EAAEQ,CAAC,CAAC,CAAC,EAA0MoK,EAAE,SAASrK,GAAG,OAAO,SAASP,EAAEG,GAAG,IAAIL,EAAEK,GAAG,GAAGN,EAAEC,EAAEsyB,gBAAgBxyB,EAAEF,EAAEI,EAAE,CAAC,kBAAkB,EAAEI,EAAEM,EAAE,CAACwgC,IAAIhhC,CAAC,EAAE,KAAA,IAASH,EAAE,CAACuyB,gBAAgBvyB,CAAC,EAAE,EAAE,EAAE,OAAOmC,EAAEzB,EAAE40B,YAAY/H,MAAM,CAACjU,OAAOnW,EAAE0wB,KAAK,SAAS7sB,KAAK3G,CAAC,EAAEN,CAAC,EAAC,SAAWI,EAAEQ,GAAG,OAAOT,EAAG,SAASL,GAAG,OAAOm5B,EAAGt4B,CAAC,EAAEP,EAAEiB,IAAIT,CAAC,EAAEs2B,MAAK,SAAWv2B,GAAG,GAAG,MAAMA,EAAEsyB,OAAO,MAAMtyB,EAAE,OAAOb,EAAG,CAAC,EAAG,CAAA,CAAG,CAAE,CAAA,CAAC,EAAEiI,GAAE,SAASpH,GAAG,OAAO,SAASP,EAAEQ,EAAEd,GAAOS,EAAE0B,EAAEnC,CAAC,EAAE,OAAOS,EAAEiyB,gBAAgB,qBAAqBpyB,EAAEO,EAAE40B,YAAY/H,MAAM,CAACjU,OAAOnW,EAAE0wB,KAAK,qBAAqB7sB,KAAK,CAACo6B,QAAQzgC,CAAC,CAAC,EAAEL,CAAC,CAAC,CAAC,EAAE+L,GAAE,SAAS3L,GAAG,OAAO,SAASP,EAAEQ,EAAEd,GAAG,OAAOa,EAAE40B,YAAY/H,MAAM,CAACjU,OAAOnW,EAAE0wB,KAAK,2BAA2B7sB,KAAK,CAACq6B,MAAMlhC,EAAEihC,QAAQzgC,CAAC,CAAC,EAAEd,CAAC,CAAC,CAAC,EAAE+L,GAAE,SAASlL,GAAG,OAAO,SAASP,EAAEQ,GAAG,OAAOwB,EAAEzB,EAAE40B,YAAY/H,MAAM,CAACjU,OAAOnW,EAAE0wB,KAAKpzB,EAAE,2BAA2BN,CAAC,EAAE6G,KAAK,CAACs6B,+BAA+B,CAAA,EAAGC,SAAS,CAACC,OAAO,WAAWpU,KAAK,EAAE,CAAC,CAAC,EAAEzsB,CAAC,EAAC,SAAWR,EAAEQ,GAAG,OAAO26B,EAAG56B,CAAC,EAAEP,EAAEshC,OAAO9gC,CAAC,CAAE,CAAE,CAAA,CAAC,EAAE4F,EAAE,SAAS7F,GAAG,OAAO,SAASP,EAAEQ,EAAEd,GAAG,OAAOsC,EAAEzB,EAAE40B,YAAY/H,MAAM,CAACjU,OAAOnW,EAAE0wB,KAAKpzB,EAAE,yBAAyBN,CAAC,EAAE6G,KAAK,CAAC06B,UAAU,OAAOC,YAAYhhC,CAAC,CAAC,EAAEd,CAAC,WAAYc,EAAEd,GAAG,OAAO47B,EAAG/6B,CAAC,EAAEP,EAAE,CAAC41B,QAAQ,CAACyG,SAAS7Q,CAAE,CAAC,CAAC,EAAE6Q,SAAS77B,EAAE8gC,OAAO5hC,CAAC,CAAE,CAAA,CAAE,CAAC,EAAEiJ,GAAE,SAASpI,GAAG,OAAO,SAASP,EAAEN,EAAES,GAAG,OAAOiG,EAAE7F,CAAC,EAAEP,EAAEN,EAAEc,EAAEA,EAAE,GAAGL,CAAC,EAAE,GAAG,CAACkuB,MAAM,CAACyS,EAAGW,MAAM,CAAC,CAAC,CAAC,CAAC,EAAEt/B,GAAE,SAAS5B,GAAG,OAAO,SAASP,EAAEN,EAAES,GAAG,OAAOiG,EAAE7F,CAAC,EAAEP,EAAEN,EAAEc,EAAEA,EAAE,GAAGL,CAAC,EAAE,GAAG,CAACkuB,MAAM,CAACyS,EAAGY,SAAS,CAAC,CAAC,CAAC,CAAC,EAAEv1B,GAAE,SAAS5L,GAAG,OAAO,SAASP,EAAEN,EAAES,GAAG,OAAOiG,EAAE7F,CAAC,EAAEP,EAAEN,EAAEc,EAAEA,EAAE,GAAGL,CAAC,EAAE,GAAG,CAACkuB,MAAM,CAACyS,EAAGa,SAAS,CAAC,CAAC,CAAC,CAAC,EAAEv2B,GAAE,SAAS7K,GAAG,OAAO,SAASP,EAAEQ,GAAG,OAAOR,EAAEmZ,SAAS9V,EAAE9C,EAAE40B,YAAYH,KAAKh1B,EAAEQ,CAAC,EAAED,EAAE40B,YAAY/H,MAAMptB,EAAEQ,CAAC,CAAC,CAAC,EAAE0K,GAAE,SAAS3K,GAAG,OAAO,SAASP,EAAEQ,GAAG,OAAOwB,EAAEzB,EAAE40B,YAAY/H,MAAM,CAACjU,OAAOxU,EAAE+uB,KAAKpzB,EAAE,YAAYN,CAAC,CAAC,EAAEQ,CAAC,EAAG,SAASA,EAAEd,GAAG,OAAOK,EAAG,SAASS,GAAG,OAAOq4B,EAAGt4B,CAAC,EAAEP,EAAEN,CAAC,EAAEqK,KAAKvJ,CAAC,EAAEs2B,MAAO,SAASv2B,GAAG,GAAG,MAAMA,EAAEsyB,OAAO,MAAMtyB,CAAE,CAAE,CAAC,EAAG,CAAA,CAAE,CAAC,EAAE0D,GAAE,SAAS1D,GAAG,OAAO,SAASP,EAAEQ,EAAEd,GAAOS,EAAEK,EAAEmJ,aAAcpJ,GAAG,MAAM,CAAC8gC,OAAO,cAAcpU,KAAK,CAAC2U,SAASrhC,CAAC,CAAC,CAAE,CAAA,EAAG,OAAOyB,EAAEzB,EAAE40B,YAAY/H,MAAM,CAACjU,OAAOnW,EAAE0wB,KAAKpzB,EAAE,2BAA2BN,CAAC,EAAE6G,KAAK,CAACs6B,+BAA+B,CAAA,EAAGC,SAASjhC,CAAC,CAAC,EAAET,CAAC,WAAYM,EAAEQ,GAAG,OAAO26B,EAAG56B,CAAC,EAAEP,EAAEshC,OAAO9gC,CAAC,CAAE,CAAA,CAAE,CAAC,EAAEq4B,EAAG,SAASt4B,GAAG,OAAO,SAASP,EAAEQ,GAAG,OAAOD,EAAE40B,YAAYH,KAAK,CAAC7b,OAAO9V,EAAEqwB,KAAKpzB,EAAE,YAAYN,CAAC,CAAC,EAAEQ,CAAC,CAAC,CAAC,EAAEi6B,EAAG,SAASl6B,GAAG,OAAO,SAASP,EAAEQ,GAAG,OAAOD,EAAE40B,YAAYH,KAAK,CAAC7b,OAAO9V,EAAEqwB,KAAKpzB,EAAE,YAAYN,EAAEwW,UAAU,CAAC,EAAEhW,CAAC,CAAC,CAAC,EAAE+5B,GAAG,SAASh6B,GAAG,OAAO,SAASP,GAAG,OAAOO,EAAE40B,YAAYH,KAAK,CAAC7b,OAAO9V,EAAEqwB,KAAK,4BAA4B,EAAE1zB,CAAC,CAAC,CAAC,EAAEw4B,GAAG,SAASj4B,GAAG,OAAO,SAASP,GAAG,OAAOO,EAAE40B,YAAYH,KAAK,CAAC7b,OAAO9V,EAAEqwB,KAAK,QAAQ,EAAE1zB,CAAC,CAAC,CAAC,EAAE+5B,GAAG,SAASx5B,GAAG,OAAO,SAASP,GAAG,OAAOO,EAAE40B,YAAYH,KAAK,CAAC7b,OAAO9V,EAAEqwB,KAAK,wBAAwB,EAAE1zB,CAAC,CAAC,CAAC,EAAEy5B,GAAG,SAASl5B,GAAG,OAAO,SAASP,EAAEQ,GAAG,OAAOD,EAAE40B,YAAYH,KAAK,CAAC7b,OAAO9V,EAAEqwB,KAAKpzB,EAAE,wBAAwBN,CAAC,CAAC,EAAEQ,CAAC,CAAC,CAAC,EAAE25B,GAAG,SAAS55B,GAAG,OAAO,SAASP,GAAG,IAAIQ,EAAER,GAAG,GAAGG,EAAEK,EAAEqhC,iBAAiB/hC,EAAEJ,EAAEc,EAAE,CAAC,mBAAmB,EAAE,MAAM,CAAA,IAAKL,IAAIL,EAAEgiC,YAAY,CAAA,GAAIvhC,EAAE40B,YAAYH,KAAK,CAAC7b,OAAO9V,EAAEqwB,KAAK,4BAA4B,EAAE5zB,CAAC,CAAC,CAAC,EAAEw7B,EAAG,SAAS/6B,GAAG,OAAO,SAASP,GAA2H,OAAO+B,EAA7D,CAACozB,YAAY50B,EAAE40B,YAAYa,MAAMz1B,EAAEy1B,MAAM+L,UAAU/hC,CAAC,GAA/F,EAAjBS,UAAUC,QAAU,KAAA,IAASD,UAAU,GAAGA,UAAU,GAAG,IAAwEm1B,OAAO,CAAC,CAAC,EAAEoD,GAAG,SAASz4B,GAAG,OAAO,SAASP,GAAG,OAAOO,EAAE40B,YAAYH,KAAK,CAAC7b,OAAO9V,EAAEqwB,KAAK,QAAQ,EAAE1zB,CAAC,CAAC,CAAC,EAAE04B,GAAG,SAASn4B,GAAG,OAAO,SAASP,GAAG,OAAOO,EAAE40B,YAAYH,KAAK,CAAC7b,OAAO9V,EAAEqwB,KAAK,YAAY,EAAE1zB,CAAC,CAAC,CAAC,EAAEs4B,GAAG,SAAS/3B,GAAG,OAAO,SAASP,GAAG,OAAOO,EAAE40B,YAAYH,KAAK,CAAC7b,OAAO9V,EAAEqwB,KAAK,WAAW,EAAE1zB,CAAC,CAAC,CAAC,EAAE65B,GAAG,SAASt5B,GAAG,OAAO,SAASP,GAAG,OAAOO,EAAE40B,YAAYH,KAAK,CAAC7b,OAAO9V,EAAEqwB,KAAK,oBAAoB,EAAE1zB,CAAC,CAAC,CAAC,EAAEo4B,GAAG,SAAS73B,GAAG,OAAO,SAASP,EAAEQ,EAAEd,GAAG,OAAOsC,EAAEzB,EAAE40B,YAAY/H,MAAM,CAACjU,OAAOnW,EAAE0wB,KAAKpzB,EAAE,yBAAyBN,CAAC,EAAE6G,KAAK,CAAC06B,UAAU,OAAOC,YAAYhhC,CAAC,CAAC,EAAEd,CAAC,EAAG,SAASc,EAAEd,GAAG,OAAO47B,EAAG/6B,CAAC,EAAEP,EAAE,CAAC41B,QAAQ,CAACyG,SAAS7Q,CAAE,CAAC,CAAC,EAAE6Q,SAAS77B,EAAE8gC,OAAO5hC,CAAC,CAAE,EAAE,CAAC,EAAEi4B,GAAG,SAASp3B,GAAG,OAAO,SAASP,EAAEQ,GAAG,OAAOwB,EAAEzB,EAAE40B,YAAY/H,MAAM,CAACjU,OAAOnW,EAAE0wB,KAAK,oBAAoB7sB,KAAK,CAACu6B,SAASphC,CAAC,CAAC,EAAEQ,CAAC,WAAYR,EAAEQ,GAAG,OAAOkxB,QAAQc,IAAInnB,OAAOoF,KAAKzQ,EAAEshC,MAAM,EAAE33B,aAAcjK,GAAG,OAAO47B,EAAG/6B,CAAC,EAAEb,EAAE,CAACk2B,QAAQ,CAACyG,SAAS7Q,CAAE,CAAC,CAAC,EAAE6Q,SAASr8B,EAAEshC,OAAO5hC,GAAGc,CAAC,CAAE,CAAA,CAAE,CAAE,CAAA,CAAE,CAAC,EAAEq3B,GAAG,SAASt3B,GAAG,OAAO,SAASP,EAAEQ,GAAG,OAAOD,EAAE40B,YAAYH,KAAK,CAAC7b,OAAOnW,EAAE0wB,KAAK,sBAAsB7sB,KAAK,CAACu6B,SAASphC,CAAC,CAAC,EAAEQ,CAAC,CAAC,CAAC,EAAE+2B,EAAG,SAASh3B,GAAG,OAAO,SAASP,EAAEN,GAAOS,EAAEH,EAAE2J,IAAK,SAASpJ,GAAG,OAAOC,EAAEA,EAAE,GAAGD,CAAC,EAAE,GAAG,CAACyhC,OAAO94B,EAAE3I,EAAEyhC,QAAQ,EAAE,CAAC,CAAC,CAAE,CAAE,EAAC,OAAOzhC,EAAE40B,YAAYH,KAAK,CAAC7b,OAAOnW,EAAE0wB,KAAK,sBAAsB7sB,KAAK,CAACu6B,SAASjhC,CAAC,EAAEyyB,UAAU,CAAA,CAAE,EAAElzB,CAAC,CAAC,CAAC,EAAE+3B,EAAG,SAASl3B,GAAG,OAAO,SAASP,EAAEG,GAAG,OAAOuxB,QAAQc,IAAIxyB,EAAE2J,IAAK,SAAS3J,GAAG,IAAIF,EAAEE,EAAEgiC,OAAOniC,EAAEC,EAAEmiC,UAAUriC,EAAEE,EAAEoiC,WAAWhiC,EAAER,EAAEI,EAAE,CAAC,YAAY,aAAa,EAAE,OAAOw7B,EAAG/6B,CAAC,EAAEP,EAAE+hC,UAAU,CAACnM,QAAQ,CAAC4B,qBAAqB4E,EAAE,CAAC,CAAC,EAAE5E,qBAAqB33B,EAAED,EAAEY,EAAEA,EAAE,GAAGL,CAAC,EAAED,CAAC,CAAC,CAAE,EAAE,CAAC,CAAC,EAAE+5B,GAAG,SAAS15B,GAAG,OAAO,SAASP,EAAEQ,GAAOd,EAAEmC,EAAErB,CAAC,EAAE,OAAOd,EAAE0yB,gBAAgB,qBAAqBpyB,EAAEO,EAAE40B,YAAY/H,MAAM,CAACjU,OAAOxU,EAAE+uB,KAAK,oBAAoB,EAAEh0B,CAAC,CAAC,CAAC,EAAEi7B,GAAG,SAASp6B,GAAG,OAAO,SAASP,EAAEQ,EAAEd,GAAOS,EAAEK,EAAEmJ,IAAK,SAASpJ,GAAG,MAAM,CAAC8gC,OAAO,WAAWpU,KAAK1sB,CAAC,CAAE,CAAA,EAAG,OAAOyB,EAAEzB,EAAE40B,YAAY/H,MAAM,CAACjU,OAAOnW,EAAE0wB,KAAKpzB,EAAE,2BAA2BN,CAAC,EAAE6G,KAAK,CAACs6B,+BAA+B,CAAA,EAAGC,SAASjhC,CAAC,CAAC,EAAET,CAAC,WAAYM,EAAEQ,GAAG,OAAO26B,EAAG56B,CAAC,EAAEP,EAAEshC,OAAO9gC,CAAC,CAAE,CAAA,CAAE,CAAC,EAAE64B,GAAG,SAAS94B,GAAG,OAAO,SAASP,EAAEQ,GAAG,OAAOwB,EAAEzB,EAAE40B,YAAY/H,MAAM,CAACjU,OAAOnW,EAAE0wB,KAAKpzB,EAAE,oBAAoBN,CAAC,CAAC,EAAEQ,CAAC,WAAYA,EAAEd,GAAG,OAAOK,EAAC,SAAWS,GAAG,OAAOq4B,EAAGt4B,CAAC,EAAEP,EAAEN,CAAC,EAAEo3B,MAAO,SAASv2B,GAAG,GAAG,MAAMA,EAAEsyB,OAAO,MAAMtyB,EAAE,OAAOC,GAAI,CAAA,CAAG,CAAE,CAAC,EAAE,CAAC,EAAEq6B,GAAG,SAASt6B,GAAG,OAAO,SAASP,EAAEQ,EAAEd,GAAOS,EAAEK,EAAEmJ,aAAcpJ,GAAG,MAAM,CAAC8gC,OAAO,WAAWpU,KAAK1sB,CAAC,CAAE,CAAE,EAAC,OAAOyB,EAAEzB,EAAE40B,YAAY/H,MAAM,CAACjU,OAAOnW,EAAE0wB,KAAKpzB,EAAE,2BAA2BN,CAAC,EAAE6G,KAAK,CAACs6B,+BAA+B,CAAA,EAAGC,SAASjhC,CAAC,CAAC,EAAET,CAAC,EAAC,SAAWM,EAAEQ,GAAG,OAAO26B,EAAG56B,CAAC,EAAEP,EAAEshC,OAAO9gC,CAAC,CAAE,CAAE,CAAA,CAAC,EAAEu6B,GAAG,SAASx6B,GAAG,OAAO,SAASP,EAAEQ,EAAEd,GAAG,OAAOa,EAAE40B,YAAYH,KAAK,CAAC7b,OAAOnW,EAAE0wB,KAAKpzB,EAAE,4BAA4BN,CAAC,EAAE6G,KAAK,CAACs7B,MAAM3hC,CAAC,EAAEoyB,UAAU,CAAA,CAAE,EAAElzB,CAAC,CAAC,CAAC,EAAEi6B,GAAG,SAASp5B,GAAG,OAAO,SAASP,EAAEQ,GAAG,OAAOD,EAAE40B,YAAYH,KAAK,CAAC7b,OAAOnW,EAAE0wB,KAAK,4BAA4B7sB,KAAK,CAACs7B,MAAMniC,CAAC,CAAC,EAAEQ,CAAC,CAAC,CAAC,EAAEy6B,GAAG,SAAS16B,GAAG,OAAO,SAASP,EAAEQ,GAAG,OAAOwB,EAAEzB,EAAE40B,YAAY/H,MAAM,CAACjU,OAAOjP,EAAEwpB,KAAK,6BAA6B7sB,KAAK7G,CAAC,EAAEQ,CAAC,EAAG,SAASR,EAAEQ,GAAG,OAAO26B,EAAG56B,CAAC,EAAEP,EAAEshC,OAAO9gC,CAAC,CAAE,CAAA,CAAE,CAAC,EAAE04B,GAAG,SAAS34B,GAAG,OAAO,SAASP,EAAEQ,GAAG,IAAIL,EAAEkL,OAAOkF,OAAO,GAAG/P,CAAC,EAAEV,EAAEU,GAAG,GAAGX,EAAEC,EAAEsyB,gBAAgBxyB,EAAEF,EAAEI,EAAE,CAAC,kBAAkB,EAAEI,EAAEL,EAAE,CAACuyB,gBAAgBvyB,CAAC,EAAE,GAAGI,EAAE,CAAC,MAAM,UAAU,WAAW,kBAAkB,kBAAkB,cAAc,yBAAyB,mBAAmB,OAAO+B,EAAEzB,EAAE40B,YAAY/H,MAAM,CAACjU,OAAOjP,EAAEwpB,KAAKpzB,EAAE,YAAYN,CAAC,EAAE6G,KAAK3G,CAAC,EAAEN,CAAC,EAAG,SAASY,EAAEd,GAAG,OAAOK,EAAG,SAASS,GAAG,OAAOq4B,EAAGt4B,CAAC,EAAEP,EAAEN,CAAC,EAAEqK,KAAI,SAAWxJ,GAAG,OAAgBA,EAAkHA,EAAxG8K,OAAOoF,KAAKtQ,CAAC,EAAEmI,gBAAiB/H,GAAG,MAAM,CAAC,IAAIN,EAAEmC,QAAQ7B,CAAC,CAAE,CAAE,EAACgI,MAAO,SAASvI,GAAG,OAAOO,EAAEP,KAAKG,EAAEH,EAAG,CAAE,EAAK0xB,QAAQC,QAAS,EAACnxB,EAAG,EAAnJ,IAASD,CAA2I,EAAG,CAAA,CAAG,CAAE,CAAA,CAAC,EAAE46B,EAAG,SAAS56B,GAAG,OAAO,SAASP,EAAEQ,GAAG,OAAOT,EAAC,SAAWL,GAAG,OAAO+6B,EAAGl6B,CAAC,EAAEP,EAAEQ,CAAC,EAAEuJ,KAAM,SAASxJ,GAAG,MAAM,cAAcA,EAAEsyB,OAAOnzB,EAAC,EAAG,KAAA,CAAO,CAAE,CAAC,EAAE,CAAC,EAAE67B,EAAG,SAASh7B,GAAG,OAAO,SAASP,EAAEQ,GAAG,OAAOwB,EAAEzB,EAAE40B,YAAY/H,MAAM,CAACjU,OAAOnW,EAAE0wB,KAAKpzB,EAAE,qBAAqBC,EAAEwhC,SAAS,EAAEl7B,KAAK,CAACu6B,SAASphC,CAAC,CAAC,EAAEQ,CAAC,EAAG,SAASR,EAAEQ,GAAG,OAAOgrB,EAAGjrB,CAAC,EAAEP,EAAEshC,OAAO9gC,CAAC,CAAE,CAAA,CAAE,CAAC,EAAE+8B,GAAG,SAASh9B,GAAG,OAAO,SAASP,GAAG,OAAO4L,EAAEpL,EAAEA,EAAE,CAACg1B,WAAW,SAASj1B,GAAG,OAAO,KAAA,IAASA,EAAEk1B,MAAM,CAAC,EAAEz1B,CAAC,EAAE,GAAG,CAACqzB,QAAQ,SAAS7yB,GAAG,OAAOD,EAAE40B,YAAYH,KAAK,CAAC7b,OAAOnW,EAAE0wB,KAAKpzB,EAAE,sBAAsBC,EAAEwhC,SAAS,EAAEl7B,KAAKrG,CAAC,EAAER,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE6/B,GAAG,SAASt/B,GAAG,OAAO,SAASP,GAAG,IAAIN,EAAEc,EAAE,CAAC4hC,YAAY,GAAG,EAAEpiC,CAAC,EAAE,OAAO4L,EAAEpL,EAAEA,EAAE,CAACg1B,WAAW,SAASj1B,GAAG,OAAOA,EAAEg1B,KAAK70B,OAAOhB,EAAE0iC,WAAW,CAAC,EAAE1iC,CAAC,EAAE,GAAG,CAAC2zB,QAAQ,SAASrzB,GAAG,OAAOi/B,GAAG1+B,CAAC,EAAE,GAAGC,EAAEA,EAAE,GAAGd,CAAC,EAAEM,CAAC,CAAC,EAAE+J,cAAexJ,GAAG,OAAOC,EAAEA,EAAE,GAAGD,CAAC,EAAE,GAAG,CAACg1B,KAAKh1B,EAAEg1B,KAAK5rB,aAAcpJ,GAAG,OAAO,OAAOA,EAAE8hC,iBAAiB9hC,CAAE,CAAE,CAAA,CAAC,CAAE,CAAA,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEg+B,GAAG,SAASh+B,GAAG,OAAO,SAASP,GAAG,IAAIN,EAAEc,EAAE,CAAC4hC,YAAY,GAAG,EAAEpiC,CAAC,EAAE,OAAO4L,EAAEpL,EAAEA,EAAE,CAACg1B,WAAW,SAASj1B,GAAG,OAAOA,EAAEg1B,KAAK70B,OAAOhB,EAAE0iC,WAAW,CAAC,EAAE1iC,CAAC,EAAE,GAAG,CAAC2zB,QAAQ,SAASrzB,GAAG,OAAOq+B,GAAG99B,CAAC,EAAE,GAAGC,EAAEA,EAAE,GAAGd,CAAC,EAAEM,CAAC,CAAC,EAAE+J,KAAI,SAAWxJ,GAAG,OAAOC,EAAEA,EAAE,GAAGD,CAAC,EAAE,GAAG,CAACg1B,KAAKh1B,EAAEg1B,KAAK5rB,IAAG,SAAWpJ,GAAG,OAAO,OAAOA,EAAE8hC,iBAAiB9hC,CAAE,EAAE,CAAC,CAAE,CAAE,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC,EAAEqgC,EAAG,SAASrgC,GAAG,OAAO,SAASP,EAAEQ,EAAEL,GAAG,IAAIL,EAAEK,GAAG,GAAGN,EAAEC,EAAEwiC,UAAU1iC,EAAEF,EAAEI,EAAE,CAAC,YAAY,EAAEI,EAAE,CAACqiC,QAAQ,GAAGC,UAAU,EAAE,EAAE,OAAOxgC,EAAE,SAAStC,IAA0E,IAAtE,IAAiEO,EAAE,GAAOE,EAAjD,EAAjBM,UAAUC,QAAU,KAAA,IAASD,UAAU,GAAGA,UAAU,GAAG,EAAeN,EAAEH,EAAEU,SAAST,EAAEuC,KAAKxC,EAAEG,EAAE,EAAEF,EAAES,UAAUb,GAAG,MAAMM,CAAC,IAAI,OAAO,IAAIF,EAAES,OAAOgxB,QAAQC,QAAQzxB,CAAC,EAAEq7B,EAAGh7B,CAAC,EAAEN,EAAE0J,IAAG,SAAWpJ,GAAG,MAAM,CAAC8gC,OAAO7gC,EAAEysB,KAAK1sB,CAAC,CAAE,CAAE,EAACX,CAAC,EAAEmK,KAAI,SAAWxJ,GAAG,OAAOL,EAAEsiC,UAAUtiC,EAAEsiC,UAAU/5B,OAAOlI,EAAEiiC,SAAS,EAAEtiC,EAAEqiC,QAAQ//B,KAAKjC,EAAE+gC,MAAM,EAAM5hC,EAAJS,EAAAA,CAAO,CAAE,EAAE,EAAC,EAAI,SAASH,EAAEQ,GAAG,OAAOkxB,QAAQc,IAAIxyB,EAAEuiC,QAAQ54B,IAAK,SAAS3J,GAAG,OAAOwrB,EAAGjrB,CAAC,EAAEP,EAAEQ,CAAC,CAAE,CAAA,CAAE,CAAE,CAAA,CAAE,CAAC,EAAE68B,GAAG,SAAS98B,GAAG,OAAO,SAASP,GAAG,OAAOgC,EAAEzB,EAAE40B,YAAY/H,MAAM,CAACjU,OAAOnW,EAAE0wB,KAAKpzB,EAAE,qBAAqBC,EAAEwhC,SAAS,CAAC,EAAE/hC,CAAC,EAAC,SAAWA,EAAEQ,GAAG,OAAOgrB,EAAGjrB,CAAC,EAAEP,EAAEshC,OAAO9gC,CAAC,CAAE,CAAE,CAAA,CAAC,EAAEu/B,GAAG,SAASx/B,GAAG,OAAO,SAASP,GAAG,IAAIQ,EAAER,GAAG,GAAGG,EAAEK,EAAEiiC,kBAAkB3iC,EAAE+B,EAAEnC,EAAEc,EAAE,CAAC,oBAAoB,CAAC,EAAE,OAAOL,IAAIL,EAAEsyB,gBAAgBqQ,kBAAkB,GAAGzgC,EAAEzB,EAAE40B,YAAY/H,MAAM,CAACjU,OAAOnW,EAAE0wB,KAAKpzB,EAAE,2BAA2BC,EAAEwhC,SAAS,CAAC,EAAEjiC,CAAC,WAAYE,EAAEQ,GAAG,OAAOgrB,EAAGjrB,CAAC,EAAEP,EAAEshC,OAAO9gC,CAAC,CAAE,CAAE,CAAA,CAAC,EAAEm+B,GAAG,SAASp+B,GAAG,OAAO,SAASP,GAAG,IAAIQ,EAAER,GAAG,GAAGG,EAAEK,EAAEiiC,kBAAkB3iC,EAAE+B,EAAEnC,EAAEc,EAAE,CAAC,oBAAoB,CAAC,EAAE,OAAOL,IAAIL,EAAEsyB,gBAAgBqQ,kBAAkB,GAAGzgC,EAAEzB,EAAE40B,YAAY/H,MAAM,CAACjU,OAAOnW,EAAE0wB,KAAKpzB,EAAE,8BAA8BC,EAAEwhC,SAAS,CAAC,EAAEjiC,CAAC,WAAYE,EAAEQ,GAAG,OAAOgrB,EAAGjrB,CAAC,EAAEP,EAAEshC,OAAO9gC,CAAC,CAAE,CAAA,CAAE,CAAC,EAAE28B,GAAG,SAAS58B,GAAG,OAAO,SAASP,EAAEQ,GAAG,OAAOwB,EAAEzB,EAAE40B,YAAY/H,MAAM,CAACjU,OAAOnW,EAAE0wB,KAAKpzB,EAAE,6BAA6BC,EAAEwhC,SAAS,EAAEl7B,KAAK7G,CAAC,EAAEQ,CAAC,EAAC,SAAWR,EAAEQ,GAAG,OAAOgrB,EAAGjrB,CAAC,EAAEP,EAAEshC,OAAO9gC,CAAC,CAAE,CAAE,CAAA,CAAC,EAAEg7B,GAAG,SAASj7B,GAAG,OAAO,SAASP,GAAG,OAAOgC,EAAEzB,EAAE40B,YAAY/H,MAAM,CAACjU,OAAOxU,EAAE+uB,KAAKpzB,EAAE,eAAeC,EAAEwhC,SAAS,CAAC,EAAE/hC,CAAC,EAAG,SAASA,EAAEQ,GAAG,OAAOgrB,EAAGjrB,CAAC,EAAEP,EAAEshC,OAAO9gC,CAAC,CAAE,EAAE,CAAC,EAAEu8B,GAAG,SAASx8B,GAAG,OAAO,SAASP,EAAEQ,GAAG,OAAOwB,EAAEi7B,EAAG18B,CAAC,EAAE,CAACP,GAAGQ,CAAC,EAAEuJ,KAAI,SAAWxJ,GAAG,MAAM,CAAC+gC,OAAO/gC,EAAEgiC,QAAQ,EAAE,CAAE,CAAE,EAAA,SAAWviC,EAAEQ,GAAG,OAAOgrB,EAAGjrB,CAAC,EAAEP,EAAEshC,OAAO9gC,CAAC,CAAE,CAAE,CAAA,CAAC,EAAEy8B,EAAG,SAAS18B,GAAG,OAAO,SAASP,EAAEQ,GAAOd,EAAEM,EAAE2J,aAAcpJ,GAAG,MAAM,CAACqhC,SAASrhC,CAAC,CAAE,CAAA,EAAG,OAAOqgC,EAAGrgC,CAAC,EAAEb,EAAEmhC,EAAG6B,aAAaliC,CAAC,CAAC,CAAC,EAAE6+B,GAAG,SAAS9+B,GAAG,OAAO,SAASP,EAAEQ,GAAG,IAAIL,EAAEK,GAAG,GAAGV,EAAEK,EAAEsiC,kBAAkB5iC,EAAEgC,EAAEnC,EAAES,EAAE,CAAC,oBAAoB,CAAC,EAAE,OAAOL,IAAID,EAAEuyB,gBAAgBqQ,kBAAkB,GAAGzgC,EAAEzB,EAAE40B,YAAY/H,MAAM,CAACjU,OAAOxU,EAAE+uB,KAAKpzB,EAAE,wBAAwBC,EAAEwhC,UAAU/hC,CAAC,CAAC,EAAEH,CAAC,EAAG,SAASG,EAAEQ,GAAG,OAAOgrB,EAAGjrB,CAAC,EAAEP,EAAEshC,OAAO9gC,CAAC,CAAE,EAAE,CAAC,EAAEi+B,GAAG,SAASl+B,GAAG,OAAO,SAASP,EAAEQ,GAAG,IAAIL,EAAEK,GAAG,GAAGV,EAAEK,EAAEsiC,kBAAkB5iC,EAAEgC,EAAEnC,EAAES,EAAE,CAAC,oBAAoB,CAAC,EAAE,OAAOL,IAAID,EAAEuyB,gBAAgBqQ,kBAAkB,GAAGzgC,EAAEzB,EAAE40B,YAAY/H,MAAM,CAACjU,OAAOxU,EAAE+uB,KAAKpzB,EAAE,2BAA2BC,EAAEwhC,UAAU/hC,CAAC,CAAC,EAAEH,CAAC,WAAYG,EAAEQ,GAAG,OAAOgrB,EAAGjrB,CAAC,EAAEP,EAAEshC,OAAO9gC,CAAC,CAAE,CAAA,CAAE,CAAC,EAAEq9B,GAAG,SAASt9B,GAAG,OAAO,SAASP,GAAG,OAAOy8B,GAAGl8B,CAAC,EAAEP,CAAC,EAAE+J,KAAI,WAAa,MAAM,CAAA,CAAG,GAAG+sB,eAAgBv2B,GAAG,GAAG,MAAMA,EAAEsyB,OAAO,MAAMtyB,EAAE,MAAM,CAAA,CAAG,CAAE,CAAA,CAAC,EAAEm7B,GAAG,SAASn7B,GAAG,OAAO,SAASP,EAAEQ,EAAEd,GAAG,OAAOa,EAAE40B,YAAYH,KAAK,CAAC7b,OAAOnW,EAAE0wB,KAAKpzB,EAAE,0BAA0BC,EAAEwhC,SAAS,EAAEl7B,KAAK,CAACs7B,MAAMniC,EAAE2iC,eAAeniC,CAAC,EAAEoyB,UAAU,CAAA,CAAE,EAAElzB,CAAC,CAAC,CAAC,EAAEi+B,GAAG,SAASp9B,GAAG,OAAO,SAASP,EAAEF,GAAG,IAAID,EAAEC,GAAG,GAAGF,EAAEC,EAAEsiC,MAAMjiC,EAAEL,EAAE+iC,SAAS3iC,EAAEP,EAAEG,EAAE,CAAC,QAAQ,WAAW,EAAEE,EAAE,EAAE,OAAO,SAASL,IAAI,OAAOy8B,GAAG57B,CAAC,EAAEX,GAAG,GAAGY,EAAEA,EAAE,GAAGP,CAAC,EAAE,GAAG,CAACy1B,KAAK31B,CAAC,CAAC,CAAC,EAAEgK,KAAM,SAASxJ,GAAG,IAAI,IAAIC,EAAE,EAAEV,EAAEuL,OAAOqnB,QAAQnyB,EAAEg1B,IAAI,EAAE/0B,EAAEV,EAAEY,OAAOF,CAAC,GAAG,CAAC,IAAIX,EAAEM,EAAEL,EAAEU,GAAG,CAAC,EAAEZ,EAAEC,EAAE,GAAGI,EAAEJ,EAAE,GAAG,GAAGG,EAAEC,CAAC,EAAE,MAAM,CAAC+U,OAAO/U,EAAE4iC,SAASxd,SAASzlB,EAAE,EAAE,EAAE81B,KAAK31B,CAAC,CAAC,CAAC,GAAGA,CAAC,GAAG,CAAA,IAAKG,GAAGH,GAAGQ,EAAEuiC,QAAQ,KAAK,CAAC77B,KAAK,sBAAsBksB,QAAQ,mBAAmB,EAAE,OAAOzzB,EAAG,CAAC,EAAE,EAAC,CAAE,CAAC,EAAEk8B,GAAG,SAASr7B,GAAG,OAAO,SAASP,EAAEQ,GAAG,OAAOD,EAAE40B,YAAYH,KAAK,CAAC7b,OAAO9V,EAAEqwB,KAAKpzB,EAAE,kBAAkBC,EAAEwhC,UAAU/hC,CAAC,CAAC,EAAEQ,CAAC,CAAC,CAAC,EAAEi9B,GAAG,WAAW,OAAO,SAASl9B,EAAEP,GAAG,IAAI,IAAIQ,EAAE,EAAEd,EAAE2L,OAAOqnB,QAAQnyB,EAAEg1B,IAAI,EAAE/0B,EAAEd,EAAEgB,OAAOF,CAAC,GAAG,CAAC,IAAIV,EAAEK,EAAET,EAAEc,GAAG,CAAC,EAAEX,EAAEC,EAAE,GAAG,GAAGA,EAAE,GAAG8hC,WAAW5hC,EAAE,OAAOqlB,SAASxlB,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAEi8B,GAAG,SAASv7B,GAAG,OAAO,SAASP,EAAEG,GAAG,IAAIL,EAAEK,GAAG,GAAGN,EAAEC,EAAEijC,qBAAqBnjC,EAAEF,EAAEI,EAAE,CAAC,uBAAuB,EAAEI,EAAEF,EAAE2J,aAAc3J,GAAG,OAAOQ,EAAE,CAACuhC,UAAUxhC,EAAEwhC,UAAUH,SAAS5hC,CAAC,EAAEH,EAAE,CAACkjC,qBAAqBljC,CAAC,EAAE,EAAE,CAAE,CAAE,EAAC,OAAOU,EAAE40B,YAAYH,KAAK,CAAC7b,OAAOnW,EAAE0wB,KAAK,sBAAsB7sB,KAAK,CAACu6B,SAASlhC,CAAC,CAAC,EAAEN,CAAC,CAAC,CAAC,EAAEu/B,GAAG,SAAS5+B,GAAG,OAAO,SAASP,EAAEQ,GAAG,OAAOD,EAAE40B,YAAYH,KAAK,CAAC7b,OAAO9V,EAAEqwB,KAAKpzB,EAAE,wBAAwBC,EAAEwhC,UAAU/hC,CAAC,CAAC,EAAEQ,CAAC,CAAC,CAAC,EAAEi8B,GAAG,SAASl8B,GAAG,OAAO,SAASP,GAAG,OAAOO,EAAE40B,YAAYH,KAAK,CAAC7b,OAAO9V,EAAEqwB,KAAKpzB,EAAE,wBAAwBC,EAAEwhC,SAAS,EAAEl7B,KAAK,CAACm8B,WAAW,CAAC,CAAC,EAAEhjC,CAAC,CAAC,CAAC,EAAEm+B,GAAG,SAAS59B,GAAG,OAAO,SAASP,EAAEQ,GAAG,OAAOD,EAAE40B,YAAYH,KAAK,CAAC7b,OAAO9V,EAAEqwB,KAAKpzB,EAAE,2BAA2BC,EAAEwhC,UAAU/hC,CAAC,CAAC,EAAEQ,CAAC,CAAC,CAAC,EAAEm8B,GAAG,SAASp8B,GAAG,OAAO,SAASP,EAAEQ,GAAG,OAAOwB,EAAE66B,GAAGt8B,CAAC,EAAE,CAACP,GAAGQ,CAAC,EAAEuJ,KAAI,SAAWxJ,GAAG,MAAM,CAACqhC,SAASrhC,EAAEiiC,UAAU,GAAGlB,OAAO/gC,EAAEgiC,QAAQ,EAAE,CAAE,CAAE,EAAA,SAAWviC,EAAEQ,GAAG,OAAOgrB,EAAGjrB,CAAC,EAAEP,EAAEshC,OAAO9gC,CAAC,CAAE,EAAE,CAAC,EAAEq8B,GAAG,SAASt8B,GAAG,OAAO,SAASP,EAAEQ,GAAG,IAAIL,EAAEK,GAAG,GAAGV,EAAEK,EAAE8iC,kBAAkBpjC,EAAEH,EAAES,EAAE,CAAC,oBAAoB,EAAEP,EAAEE,EAAE+gC,EAAGqC,oBAAoBrC,EAAGsC,4BAA4B,OAAOvC,EAAGrgC,CAAC,EAAEP,EAAEJ,EAAEC,CAAC,CAAC,CAAC,EAAEg/B,GAAG,SAASt+B,GAAG,OAAO,SAASP,EAAEH,GAAwI,SAAFkC,EAAW/B,EAAEQ,EAAEd,EAAES,GAAG,OAAO6B,EAAEzB,EAAE40B,YAAY/H,MAAM,CAACjU,OAAOnW,EAAE0wB,KAAKpzB,EAAE,yBAAyBN,CAAC,EAAE6G,KAAK,CAAC06B,UAAU7hC,EAAE8hC,YAAYhhC,CAAC,CAAC,EAAEL,CAAC,EAAG,SAASH,EAAEQ,GAAG,OAAOgrB,EAAGjrB,CAAC,EAAEP,EAAEshC,OAAO9gC,CAAC,CAAE,CAAA,CAAE,CAAhT,IAAIZ,EAAEC,GAAG,GAAGK,EAAEN,EAAEwjC,KAAKnjC,EAAEL,EAAEyjC,+BAA+BtjC,EAAEH,EAAE0iC,UAAU3iC,EAAED,EAAEE,EAAE,CAAC,OAAO,iCAAiC,YAAY,EAAiL6D,EAAEmS,KAAK6qB,OAAQ,EAACjqB,SAAS,EAAE,EAAEmQ,UAAU,CAAC,EAAE9kB,EAAE,GAAG4G,OAAOlI,EAAEwhC,UAAU,OAAO,EAAEt5B,OAAOhF,CAAC,EAAEhB,EAAEy5B,EAAG,CAAClG,MAAMz1B,EAAEy1B,MAAMb,YAAY50B,EAAE40B,YAAY4M,UAAUlgC,CAAC,CAAC,EAAEf,EAAE,GAAGyB,EAAER,EAAExB,EAAEwhC,UAAUlgC,EAAE,OAAOrB,EAAEA,EAAE,GAAGb,CAAC,EAAE,GAAG,CAAC0uB,MAAM,CAAC,WAAW,WAAW,QAAQ,CAAC,CAAC,EAAE,OAAOvtB,EAAE0B,KAAKD,CAAC,EAAEP,GAAG9B,EAAEqC,EAAEgwB,KAAK5yB,CAAC,EAAE4C,GAAGwH,KAAI,WAAa,IAAIxJ,EAAEkC,EAAEzC,EAAEQ,EAAEA,EAAE,GAAGb,CAAC,EAAE,GAAG,CAAC0jC,+BAA+BpjC,EAAEqiC,UAAUviC,CAAC,CAAC,CAAC,EAAE,OAAOe,EAAE0B,KAAKjC,CAAC,EAAEL,EAAEK,EAAEgyB,KAAK5yB,CAAC,EAAEY,CAAE,GAAGwJ,KAAM,WAAW,IAAI/J,EAAE+B,EAAEF,EAAEtB,EAAEwhC,UAAU,OAAOpiC,CAAC,EAAE,OAAOmB,EAAE0B,KAAKxC,CAAC,EAAEE,EAAEF,EAAEuyB,KAAK5yB,CAAC,EAAEK,CAAE,CAAE,EAAC+J,KAAM,WAAW,OAAO2nB,QAAQc,IAAI1xB,CAAC,CAAE,CAAA,EAAGiJ,KAAI,SAAWxJ,GAAG,IAAIP,EAAEG,EAAEI,EAAE,CAAC,EAAEC,EAAER,EAAE,GAAGN,EAAEM,EAAE,GAAGH,EAAEG,EAAE,GAAG,MAAM,CAACwiC,UAAU9iC,EAAE8iC,UAAUD,QAAQ,CAAC/hC,EAAE8gC,QAAQ74B,OAAO3I,EAAEJ,EAAE6iC,OAAO,EAAE,CAAC1iC,EAAEyhC,OAAO,CAAC,CAAE,CAAE,EAAA,SAAW/gC,EAAEP,GAAG,OAAO0xB,QAAQc,IAAI1xB,EAAE6I,IAAG,SAAWpJ,GAAG,OAAOA,EAAEgyB,KAAKvyB,CAAC,CAAE,EAAE,CAAE,EAAE,CAAC,EAAE2/B,GAAG,SAASp/B,GAAG,OAAO,SAASP,EAAEN,GAAG,OAAO+/B,EAAGl/B,CAAC,EAAEP,EAAEQ,EAAEA,EAAE,GAAGd,CAAC,EAAE,GAAG,CAAC4jC,mBAAmB,CAAA,CAAE,CAAC,CAAC,CAAC,CAAC,EAAEvE,GAAG,SAASx+B,GAAG,OAAO,SAASP,EAAEN,GAAG,OAAOu+B,EAAG19B,CAAC,EAAEP,EAAEQ,EAAEA,EAAE,GAAGd,CAAC,EAAE,GAAG,CAAC6jC,sBAAsB,CAAA,CAAE,CAAC,CAAC,CAAC,CAAC,EAAEvH,GAAG,SAASz7B,GAAG,OAAO,SAASP,EAAEQ,GAAG,OAAOwB,EAAEk6B,EAAG37B,CAAC,EAAE,CAACP,GAAGQ,CAAC,EAAEuJ,cAAexJ,GAAG,MAAM,CAACqhC,SAASrhC,EAAEiiC,UAAU,GAAGlB,OAAO/gC,EAAEgiC,QAAQ,EAAE,CAAE,CAAE,EAAA,SAAWviC,EAAEQ,GAAG,OAAOgrB,EAAGjrB,CAAC,EAAEP,EAAEshC,OAAO9gC,CAAC,CAAE,CAAE,CAAA,CAAC,EAAE07B,EAAG,SAAS37B,GAAG,OAAO,SAASP,EAAEQ,GAAG,IAAIL,EAAEK,GAAG,GAAGV,EAAEK,EAAEkjC,+BAA+BxjC,EAAEH,EAAES,EAAE,CAAC,iCAAiC,EAAEP,EAAEE,EAAE+gC,EAAG2C,UAAU3C,EAAG4C,aAAa,GAAG7jC,IAAIihC,EAAG4C,aAAa,CAAC,IAAIvjC,EAAE,CAAA,EAAGD,EAAE,CAAA,EAAGF,EAAE,KAAA,EAAO,IAAI,IAAI,IAAIJ,EAAEoC,EAAE/B,EAAEwJ,OAAO4M,UAAW,EAAC,EAAElW,GAAGP,EAAEoC,EAAEqvB,QAAQC,MAAMnxB,EAAE,CAAA,EAAI,GAAG,KAAA,IAASP,EAAEsF,MAAM28B,SAAS,OAAO5/B,EAAE0vB,QAAQ0D,OAAO,CAACnuB,KAAK,uBAAuBksB,QAAQ,sOAAsO,CAAC,CAAC,CAAoF,CAAjF,MAAM5yB,GAAGN,EAAE,CAAA,EAAGF,EAAEQ,CAAC,CAAC,QAAQ,IAAIL,GAAG,MAAM6B,EAAEuvB,QAAQvvB,EAAEuvB,OAAQ,CAAqB,CAApB,QAAQ,GAAGrxB,EAAE,MAAMF,CAAC,CAAC,CAAC,CAAC,OAAO6gC,EAAGrgC,CAAC,EAAEP,EAAEJ,EAAEC,CAAC,CAAC,CAAC,EAAE0/B,GAAG,SAASh/B,GAAG,OAAO,SAASP,EAAEQ,GAAG,OAAOi/B,EAAGl/B,CAAC,EAAE,CAACP,GAAGQ,CAAC,CAAC,CAAC,EAAEi/B,EAAG,SAASl/B,GAAG,OAAO,SAASP,EAAEQ,GAAG,IAAIL,EAAEK,GAAG,GAAGV,EAAEK,EAAEsiC,kBAAkB5iC,EAAEM,EAAEmjC,mBAAmB1jC,EAAEiC,EAAEnC,EAAES,EAAE,CAAC,oBAAoB,qBAAqB,CAAC,EAAE,OAAOL,IAAIF,EAAEwyB,gBAAgBqQ,kBAAkB,GAAG5iC,IAAID,EAAEwyB,gBAAgBkR,mBAAmB,GAAGthC,EAAEzB,EAAE40B,YAAY/H,MAAM,CAACjU,OAAOnW,EAAE0wB,KAAKpzB,EAAE,2BAA2BC,EAAEwhC,SAAS,EAAEl7B,KAAK7G,CAAC,EAAEJ,CAAC,WAAYI,EAAEQ,GAAG,OAAOgrB,EAAGjrB,CAAC,EAAEP,EAAEshC,OAAO9gC,CAAC,CAAE,CAAA,CAAE,CAAC,EAAEu9B,GAAG,SAASx9B,GAAG,OAAO,SAASP,EAAEQ,GAAG,OAAOy9B,EAAG19B,CAAC,EAAE,CAACP,GAAGQ,CAAC,CAAC,CAAC,EAAEy9B,EAAG,SAAS19B,GAAG,OAAO,SAASP,EAAEQ,GAAG,IAAIL,EAAEK,GAAG,GAAGV,EAAEK,EAAEsiC,kBAAkB5iC,EAAEM,EAAEojC,sBAAsB3jC,EAAEO,EAAEujC,wBAAwBxjC,EAAE2B,EAAEnC,EAAES,EAAE,CAAC,oBAAoB,wBAAwB,0BAA0B,CAAC,EAAE,OAAOL,IAAII,EAAEkyB,gBAAgBqQ,kBAAkB,IAAI7iC,GAAGC,KAAKK,EAAEkyB,gBAAgBsR,wBAAwB,GAAG1hC,EAAEzB,EAAE40B,YAAY/H,MAAM,CAACjU,OAAOnW,EAAE0wB,KAAKpzB,EAAE,8BAA8BC,EAAEwhC,SAAS,EAAEl7B,KAAK7G,CAAC,EAAEE,CAAC,EAAG,SAASF,EAAEQ,GAAG,OAAOgrB,EAAGjrB,CAAC,EAAEP,EAAEshC,OAAO9gC,CAAC,CAAE,CAAA,CAAE,CAAC,EAAE27B,GAAG,SAAS57B,GAAG,OAAO,SAASP,EAAEQ,GAAG,OAAOD,EAAE40B,YAAYH,KAAK,CAAC7b,OAAOnW,EAAE0wB,KAAKpzB,EAAE,qBAAqBC,EAAEwhC,SAAS,EAAEl7B,KAAK,CAACs7B,MAAMniC,CAAC,EAAE4yB,UAAU,CAAA,CAAE,EAAEpyB,CAAC,CAAC,CAAC,EAAE47B,GAAG,SAAS77B,GAAG,OAAO,SAASP,EAAEQ,EAAEd,GAAG,OAAOa,EAAE40B,YAAYH,KAAK,CAAC7b,OAAOnW,EAAE0wB,KAAKpzB,EAAE,+BAA+BC,EAAEwhC,UAAU/hC,CAAC,EAAE6G,KAAK,CAACq7B,WAAW1hC,CAAC,EAAEoyB,UAAU,CAAA,CAAE,EAAElzB,CAAC,CAAC,CAAC,EAAEu/B,GAAG,SAAS1+B,GAAG,OAAO,SAASP,EAAEQ,GAAG,OAAOD,EAAE40B,YAAYH,KAAK,CAAC7b,OAAOnW,EAAE0wB,KAAKpzB,EAAE,4BAA4BC,EAAEwhC,SAAS,EAAEl7B,KAAK,CAACs7B,MAAMniC,CAAC,CAAC,EAAEQ,CAAC,CAAC,CAAC,EAAE69B,GAAG,SAAS99B,GAAG,OAAO,SAASP,EAAEQ,GAAG,OAAOD,EAAE40B,YAAYH,KAAK,CAAC7b,OAAOnW,EAAE0wB,KAAKpzB,EAAE,+BAA+BC,EAAEwhC,SAAS,EAAEl7B,KAAK,CAACs7B,MAAMniC,CAAC,CAAC,EAAEQ,CAAC,CAAC,CAAC,EAAE+7B,GAAG,SAASh8B,GAAG,OAAO,SAASP,EAAEQ,GAAG,IAAIL,EAAEK,GAAG,GAAGV,EAAEK,EAAEsiC,kBAAkB5iC,EAAEgC,EAAEnC,EAAES,EAAE,CAAC,oBAAoB,CAAC,EAAE,OAAOL,IAAID,EAAEuyB,gBAAgBqQ,kBAAkB,GAAGzgC,EAAEzB,EAAE40B,YAAY/H,MAAM,CAACjU,OAAOjP,EAAEwpB,KAAKpzB,EAAE,wBAAwBC,EAAEwhC,SAAS,EAAEl7B,KAAK7G,CAAC,EAAEH,CAAC,EAAC,SAAWG,EAAEQ,GAAG,OAAOgrB,EAAGjrB,CAAC,EAAEP,EAAEshC,OAAO9gC,CAAC,CAAE,CAAE,CAAA,CAAC,EAAEgrB,EAAG,SAASjrB,GAAG,OAAO,SAASP,EAAEQ,GAAG,OAAOT,EAAG,SAASL,GAAG,OAAgBa,EAA0HA,EAAhH,SAASP,EAAEQ,GAAG,OAAOD,EAAE40B,YAAYH,KAAK,CAAC7b,OAAO9V,EAAEqwB,KAAKpzB,EAAE,uBAAuBC,EAAEwhC,UAAU/hC,EAAEwW,SAAU,CAAA,CAAC,EAAEhW,CAAC,CAAC,EAAMR,EAAEQ,CAAC,EAAEuJ,cAAexJ,GAAG,MAAM,cAAcA,EAAEsyB,OAAOnzB,EAAG,EAAC,KAAA,CAAO,GAArM,IAASa,CAA+L,CAAA,CAAE,CAAC,EAAEsgC,EAAG,CAAC2C,UAAU,YAAYC,aAAa,eAAeP,oBAAoB,sBAAsBC,4BAA4B,8BAA8BT,aAAa,eAAeiB,YAAY,SAASC,WAAW,OAAO,EAAE9C,EAAG,CAACY,SAAS,WAAWC,SAAS,WAAWF,MAAM,OAAO,EAA9g3BzhC,EAA+vLuC,EAAE,EAAEgF,EAAE,EAAgt0BouB,EAAG5mB,QAAQ,SAAS4mB,iCCD5jgCkO,UAAe,SCEf,SAASC,MAAM7+B,GACb,MAAqB,UAAjB,OAAOA,GAAgC,OAAVA,EACxB8+B,OAAOxgC,MAAMC,QAAQyB,CAAK,EAAI,GAAK,GAAIA,CAAK,EAE9CA,CACT,CAEA,SAAS++B,0BAA0B/+B,GACjC,MACmB,YAAjB,OAAOA,GACP1B,MAAMC,QAAQyB,CAAK,GACuB,oBAA1CoG,OAAOlG,UAAUqR,SAAS5V,KAAKqE,CAAK,CAExC,CAEA,SAAS8+B,OAAO3c,EAAQwG,GACtB,GAAIxG,IAAWwG,EAIf,IAAK,IAAI3sB,KAAO2sB,EAAQ,CACtB,IAOIqW,EACAC,EAPD74B,OAAOlG,UAAUqL,eAAe5P,KAAKgtB,EAAQ3sB,CAAG,GACzC,cAARA,IAKEgjC,EAAYrW,EAAO3sB,GAGE,KAAA,KAFrBijC,EAAY9c,EAAOnmB,KAEsC,KAAA,IAAdgjC,IAK7CD,0BAA0BE,CAAS,GACnCF,0BAA0BC,CAAS,EAEnC7c,EAAOnmB,GAAO8iC,OAAOG,EAAWD,CAAS,EAEzC7c,EAAOnmB,GAAO6iC,MAAMG,CAAS,GAEhC,CACD,OAAO7c,CACT,CAkBA,SAAS+c,QAAM/c,GACR4c,0BAA0B5c,CAAM,IACnCA,EAAS,IAGX,IAAK,IAAIvnB,EAAI,EAAGF,EAAIc,UAAUC,OAAQb,EAAIF,EAAGE,CAAC,GAAI,CAChD,IAAI+tB,EAASntB,UAAUZ,GAEnBmkC,0BAA0BpW,CAAM,GAClCmW,OAAO3c,EAAQwG,CAAM,CAExB,CACD,OAAOxG,CACT,CAEA,IAAAgd,QAAiBD,QC5EjBE,eAAiB,WAGf,OAFc9gC,MAAM4B,UAAUX,MAAM5D,KAAKH,SAAS,EAEnC6jC,YAAY,SAASC,EAAK3W,GAWvC,OAVAviB,OAAOoF,KAAKpF,OAAOuiB,CAAM,CAAC,EAAE7nB,QAAQ,SAAS9E,GACvBiS,KAAAA,IAAhB0a,EAAO3sB,KAGMiS,KAAAA,IAAbqxB,EAAItjC,IAEN,OAAOsjC,EAAItjC,GAEbsjC,EAAItjC,GAAO2sB,EAAO3sB,GACxB,CAAK,EACMsjC,CACR,EAAE,EAAE,CACP,EClBA,SAASC,eAAaC,EAAMC,GAC1B,OAAOD,EAAKn8B,OAAO,SAASrD,EAAO8O,GACjC,MACwB,CAAC,EAAvB2wB,EAAKtiC,QAAQ6C,CAAK,GAClBw/B,EAAKriC,QAAQ6C,CAAK,IAAM8O,CAE9B,CAAG,CACH,CAEA,IAAA4wB,eAAiBH,eCRjBI,OAAiB,SAAc1vB,EAAO2vB,GACpC,GAAKthC,MAAMC,QAAQ0R,CAAK,EAIxB,IAAK,IAAIrV,EAAI,EAAGA,EAAIqV,EAAMxU,OAAQb,CAAC,GACjC,GAAIglC,EAAW3vB,EAAMrV,EAAE,EACrB,OAAOqV,EAAMrV,EAGnB,ECXA,SAASilC,cAAYhkC,GACnB,GAAiB,UAAb,OAAOA,EACT,OAAOA,EACF,GAAiB,UAAb,OAAOA,EAChB,OAAO+pB,WAAW/pB,CAAC,EACd,GAAIyC,MAAMC,QAAQ1C,CAAC,EACxB,OAAOA,EAAE6I,IAAIm7B,aAAW,EAG1B,MAAM,IAAIjuB,MAAM,uEAAuE,CACzF,CAEA,IAAAkuB,cAAiBD,cCXjB,SAASE,gCAA8BpX,EAAQqX,GAC7C,GAAe,OAAXrX,EAAiB,MAAO,GAK5B,IAJA,IAEI3sB,EAFAmmB,EAAS,GACT8d,EAAa75B,OAAOoF,KAAKmd,CAAM,EAG9B/tB,EAAI,EAAGA,EAAIqlC,EAAWxkC,OAAQb,CAAC,GAClCoB,EAAMikC,EAAWrlC,GACY,GAAzBolC,EAAS7iC,QAAQnB,CAAG,IACxBmmB,EAAOnmB,GAAO2sB,EAAO3sB,IAEvB,OAAOmmB,CACT,CAEA,IAAA+d,OAAiBH,gCCfjB,SAASI,gBAAcjvB,GACrB,OAAOA,GAAiC,EAA1B9K,OAAOoF,KAAK0F,CAAG,EAAEzV,MACjC,CAEA,IAAA2kC,gBAAiBD,gBCJjBE,mBAAiB,SAA0BC,GACzC,OAAkB,OAAdA,GAGG,wBAAwBphC,KAAKohC,CAAS,CAC/C,ECOIlB,eAAe/zB,eACf60B,OAAOK,OACPJ,gBAAgBK,gBAEhBC,MAAM,CAQRC,cAAe,SAAuBC,EAAgBC,EAAW5gC,GAC/D,IAUI6gC,EAVJ,OAAIJ,MAAIK,UAAUH,EAAgBC,EAAW5gC,CAAK,EACzC2gC,GAGLI,EAAgB,GAAK/gC,EAErBghC,EAAmBL,EAAeC,GAEpCD,EAAeC,GAAWp9B,OAAOu9B,CAAa,EAD9C,CAACA,IAGCF,EAAM,IAEND,GAAaI,EAEV5B,eAAa,GAAIyB,EAAKF,CAAc,EAC5C,EAUDM,iBAAkB,SAA0BN,EAAgBC,EAAW5gC,GACrE,IAQI+gC,EARJ,OAAc9yB,KAAAA,IAAVjO,EAGKygC,MAAIS,gBAAgBP,EAAgB,SAAS9kC,EAAGf,GACrD,OAAO8lC,IAAc9lC,CAC7B,CAAO,GAGCimC,EAAgB,GAAK/gC,EAElBygC,MAAIS,gBAAgBP,EAAgB,SAAS9kC,EAAGf,GACrD,OAAO8lC,IAAc9lC,GAAKimC,IAAkBllC,CAClD,CAAK,EACF,EAQDslC,iBAAkB,SAA0BR,EAAgBC,EAAW5gC,GACrE,GAAciO,KAAAA,IAAVjO,EAAqB,MAAM,IAAI4R,MAAM,8CAA8C,EAEvF,OAAI6uB,MAAIK,UAAUH,EAAgBC,EAAW5gC,CAAK,EACzCygC,MAAIQ,iBAAiBN,EAAgBC,EAAW5gC,CAAK,EAGvDygC,MAAIC,cAAcC,EAAgBC,EAAW5gC,CAAK,CAC1D,EAYDkhC,gBAAiB,SAAyBP,EAAgBC,EAAWQ,GACnE,IAQMC,EAEAC,EAVN,OAAkBrzB,KAAAA,IAAd2yB,EACGT,gBAAcQ,CAAc,EAG1B,GAFEA,EAGqB,UAArB,OAAOC,EACTV,OAAKS,EAAgB,CAACC,EAAU,EACT,YAArB,OAAOA,GACZS,EAAa,CAAA,EAEbC,EAAoBl7B,OAAOoF,KAAKm1B,CAAc,EAAEzZ,OAAO,SAAStc,EAAM5O,GACxE,IAAI6S,EAAS8xB,EAAe3kC,IAAQ,GAChCulC,EAAY1yB,EAAOxL,OAAO,SAASrD,GACrC,MAAO,CAAC4gC,EAAU5gC,EAAOhE,EAAKolC,CAAc,CACtD,CAAS,EAOD,OALIG,EAAU9lC,SAAWoT,EAAOpT,SAC9B4lC,EAAa,CAAA,GAEfz2B,EAAK5O,GAAOulC,EAEL32B,CACR,EAAE,EAAE,EAEDy2B,EAAmBC,EAChBX,GAlBF,KAAA,CAoBR,EAUDG,UAAW,SAAmBH,EAAgBC,EAAWY,GACvD,IAAIC,EAAsB,CAAC,CAACd,EAAeC,IACN,EAAnCD,EAAeC,GAAWnlC,OAE5B,OAAwBwS,KAAAA,IAApBuzB,GAAkCC,EAMgC,CAAC,IAAhEd,EAAeC,GAAWzjC,QAFH,GAAKqkC,CAE6B,EALvDC,CAMV,CACH,EAEAC,iBAAiBjB,MChJbvB,QAAQ7zB,QACR+zB,eAAemB,eACfhB,aPOaA,eONbI,OAAOgC,OACP9B,YLQaA,cKPbK,OAAO0B,OACPzB,gBAAgB0B,gBAChBxB,iBAAmByB,mBAEnBJ,eDuIajB,MC9HjB,SAASsB,yBAAyB7mC,EAAGoC,GACnC,OAAIgB,MAAMC,QAAQrD,CAAC,GAAKoD,MAAMC,QAAQjB,CAAC,EAEnCpC,EAAEO,SAAW6B,EAAE7B,QACfP,EAAEoI,MAAM,SAAS0+B,EAAIpnC,GACnB,OAAOmnC,yBAAyBzkC,EAAE1C,GAAIonC,CAAE,CAChD,CAAO,EAGE9mC,IAAMoC,CACf,CAUA,SAAS2kC,UAAUhyB,EAAOiyB,GACxB,OAAOvC,OAAK1vB,EAAO,SAASkyB,GAC1B,OAAOJ,yBAAyBI,EAAcD,CAAa,CAC/D,CAAG,CACH,CAiDA,SAASE,mBAAiBC,GACxB,IAAItF,EAASsF,EAAgBD,mBAAiBE,cAAcD,CAAa,EAAI,GAyGzEE,GAvGqBt0B,KAAAA,IAArB8uB,EAAOuD,WAA4BD,iBAAiBtD,EAAOuD,SAAS,GACtE5uB,QAAQC,KAAK,iIAAiI,EAQhJ3U,KAAKwlC,OAASzF,EAAOyF,QAAU,GAO/BxlC,KAAKylC,kBAAoB1F,EAAO0F,mBAAqB,GASrDzlC,KAAK0lC,mBAAqB3F,EAAO2F,oBAAsB,GAevD1lC,KAAK2lC,kBAAoB5F,EAAO4F,mBAAqB,GAarD3lC,KAAK4lC,eAAiB7F,EAAO6F,gBAAkB,GAa/C5lC,KAAK6lC,6BAA+B9F,EAAO8F,8BAAgC,GAY3E7lC,KAAK8lC,mBAAqB/F,EAAO+F,oBAAsB,GAQvD9lC,KAAK+lC,eAAiBhG,EAAOgG,gBAAkB,GAe/C/lC,KAAKgmC,8BAAgCjG,EAAOiG,+BAAiC,GAElEhmC,MACXoJ,OAAOoF,KAAKuxB,CAAM,EAAEj8B,QAAQ,SAASmiC,GACnC,IAAIC,EAAgE,CAAC,IAApDd,mBAAiBe,WAAWhmC,QAAQ8lC,CAAS,EAC1DG,EAAuCn1B,KAAAA,IAAtB8uB,EAAOkG,GAExB,CAACC,GAAcE,IACjBb,EAAKU,GAAalG,EAAOkG,GAE/B,CAAG,CACH,CAOAb,mBAAiBe,WAAa/8B,OAAOoF,KAAK,IAAI42B,kBAAkB,EAOhEA,mBAAiBE,cAAgB,SAASe,GAExC,IAEIC,EAuCER,EAzCN,OAAIO,aAAwBjB,mBAAyBiB,GAEjDC,EAAU,GAEG,CACf,kBACA,eACA,iBACA,uBACA,sBACA,OACA,oBACA,WACA,sBACA,cACA,gBAGSxiC,QAAQ,SAAS1D,GAC1B,IAEMmmC,EAFFvjC,EAAQqjC,EAAajmC,GACJ,UAAjB,OAAO4C,IACLujC,EAAc3d,WAAW5lB,CAAK,EAElCsjC,EAAQlmC,GAAKsT,MAAM6yB,CAAW,EAAIvjC,EAAQujC,EAEhD,CAAG,EAIGjlC,MAAMC,QAAQ8kC,EAAaG,iBAAiB,IAC9CF,EAAQE,kBAAoBH,EAAaG,kBAAkB9+B,IAAI,SAAS++B,GACtE,OAAInlC,MAAMC,QAAQklC,CAAO,EAChBA,EAAQ/+B,IAAI,SAAS1E,GAC1B,OAAO4lB,WAAW5lB,CAAK,CACjC,CAAS,EAEIyjC,CACb,CAAK,GAGCJ,EAAaP,qBACXA,EAAqB,GACzB18B,OAAOoF,KAAK63B,EAAaP,kBAAkB,EAAEhiC,QAAQ,SAAS8/B,GAC5D,IAAI8C,EAAYL,EAAaP,mBAAmBlC,IAAc,GAC9DkC,EAAmBlC,GAAa,GAChCx6B,OAAOoF,KAAKk4B,CAAS,EAAE5iC,QAAQ,SAAS6iC,GACtC,IACIC,EADSF,EAAUC,GACGj/B,IAAI,SAAS7I,GACrC,OAAIyC,MAAMC,QAAQ1C,CAAC,EACVA,EAAE6I,IAAI,SAASm/B,GACpB,MAAsB,UAAlB,OAAOA,EACFje,WAAWie,CAAM,EAEnBA,CACrB,CAAa,EACqB,UAAb,OAAOhoC,EACT+pB,WAAW/pB,CAAC,EAEdA,CACjB,CAAS,EACDinC,EAAmBlC,GAAW+C,GAAYC,CAClD,CAAO,CACP,CAAK,EACDN,EAAQR,mBAAqBA,GAGxB5D,QAAM,GAAImE,EAAcC,CAAO,EACxC,EAQAlB,mBAAiB0B,KAAO,SAA8BzB,GACpD,IAAI0B,EAAW,IAAI3B,mBAAiBC,CAAa,EAmBjD,OAjByBA,EAAcK,oBAAsB,IAC1C5hC,QAAQ,SAASkjC,GAClC,IACMC,EADFD,EAAME,UASyB,KADjCD,GAJEF,EAD6B,GAF3BE,EAAoBF,EAASI,0BAA0BH,EAAMhiC,IAAI,GAE/CvG,QAA+D,IAAjDwoC,EAAkB,GAAG9mC,QAAQ6mC,EAAME,QAAQ,EAClEH,EAASK,iBAAiBJ,EAAMhiC,IAAI,EAI7B+hC,GAASI,0BAA0BH,EAAMhiC,IAAI,GAC3CvG,SACpBsoC,EAAWA,EAASM,kCAAkCL,EAAMhiC,KAAMgiC,EAAME,QAAQ,EAGxF,CAAG,EAEMH,CACT,EAQA3B,mBAAiBkC,SAAW,SAASC,EAAcC,GAC7CzH,EAASyH,GAAc,GAE3B,OAAID,EAAaE,YAAc1H,EAAOgG,gBAAiD,EAA/BhG,EAAOgG,eAAetnC,OACrE,IAAImW,MACT,mLACiG,EAG5D,EAArC2yB,EAAaxB,eAAetnC,QAAcshC,EAAO0H,WAC5C,IAAI7yB,MACT,kKACgF,EAIlF2yB,EAAaG,gBACb3H,EAAO+F,oBACP3C,gBAAcpD,EAAO+F,kBAAkB,EAEhC,IAAIlxB,MACT,6KAGN,EAGMuuB,gBAAcoE,EAAazB,kBAAkB,GAAK/F,EAAO2H,eACpD,IAAI9yB,MACT,6KAE6B,EAG1B,IACT,EAEAwwB,mBAAiBliC,UAAY,CAC3BzD,YAAa2lC,mBAWbgC,iBAAkB,SAA0BxD,GACtC+D,EAAQ,CACV7B,mBAAoB9lC,KAAK4nC,yBAAyBhE,CAAS,EAC3D+B,kBAAmBjB,eAAeR,gBAChClkC,KAAK2lC,kBACL/B,EACA,kBACD,EACDgC,eAAgBlB,eAAeR,gBAC7BlkC,KAAK4lC,eACLhC,EACA,SACD,EACDiC,6BAA8BnB,eAAeR,gBAC3ClkC,KAAK6lC,6BACLjC,EACA,kBACD,EACDoC,8BAA+BtB,eAAeR,gBAC5ClkC,KAAKgmC,8BACLpC,EACA,mBACD,CACP,EACI,OACE+D,EAAM7B,qBAAuB9lC,KAAK8lC,oBAClC6B,EAAMhC,oBAAsB3lC,KAAK2lC,mBACjCgC,EAAM/B,iBAAmB5lC,KAAK4lC,gBAC9B+B,EAAM9B,+BAAiC7lC,KAAK6lC,8BAC5C8B,EAAM3B,gCAAkChmC,KAAKgmC,8BAEtChmC,KAEFA,KAAK6nC,mBAAmBF,CAAK,CACrC,EAMDG,UAAW,WACT,OAAwB72B,KAAAA,IAApBjR,KAAKynC,YAA2D,IAA/BznC,KAAK+lC,eAAetnC,OAAqBuB,KAEvEA,KAAK6nC,mBAAmB,CAC7BJ,WAAYx2B,KAAAA,EACZ80B,eAAgB,EACtB,CAAK,CACF,EAODgC,SAAU,SAAkBj2B,GAC1B,OAAIA,IAAU9R,KAAK8R,MAAc9R,KAE1BA,KAAK6nC,mBAAmB,CAC7B/1B,MAAOA,CACb,CAAK,CACF,EAODk2B,SAAU,SAAkBC,GAC1B,OAAIA,IAAajoC,KAAKkgC,MAAclgC,KAE7BA,KAAK6nC,mBAAmB,CAC7B3H,MAAO+H,CACb,CAAK,CACF,EAODC,QAAS,SAAiBC,GACxB,OAAIA,IAAYnoC,KAAKyzB,KAAazzB,KAE3BA,KAAK6nC,mBAAmB,CAC7BpU,KAAM0U,CACZ,CAAK,CACF,EAQDC,UAAW,SAAmB5C,GAC5B,OAAOxlC,KAAK6nC,mBAAmB,CAC7BrC,OAAQA,CACd,CAAK,CACF,EAQD6C,qBAAsB,SAA8B7C,GAClD,OAAOxlC,KAAK6nC,mBAAmB,CAC7BpC,kBAAmBD,CACzB,CAAK,CACF,EAQD8C,eAAgB,SAAwB7qC,GACtC,OAAIuC,KAAKmgC,cAAgB1iC,EAAUuC,KAE5BA,KAAK6nC,mBAAmB,CAC7B1H,YAAa1iC,CACnB,CAAK,CACF,EAQD8qC,iBAAkB,SAA0BC,GAC1C,OAAIxoC,KAAKwoC,gBAAkBA,EAAsBxoC,KAE1CA,KAAK6nC,mBAAmB,CAC7BW,cAAeA,CACrB,CAAK,CACF,EAkBDC,qBAAsB,SAAS7E,EAAW+C,EAAU9nC,GAClD,IAIIglC,EAJA7gC,EAAQ6/B,YAAYhkC,CAAC,EAEzB,OAAImB,KAAK0oC,iBAAiB9E,EAAW+C,EAAU3jC,CAAK,EAAUhD,OAE1D6jC,EAAM3B,QAAM,GAAIliC,KAAK8lC,kBAAkB,GAEvClC,GAAa1B,QAAM,GAAI2B,EAAID,EAAU,EAErCC,EAAID,GAAW+C,IAEjB9C,EAAID,GAAW+C,GAAY9C,EAAID,GAAW+C,GAAUpkC,QAEpDshC,EAAID,GAAW+C,GAAUpmC,KAAKyC,CAAK,GAEnC6gC,EAAID,GAAW+C,GAAY,CAAC3jC,GAGvBhD,KAAK6nC,mBAAmB,CAC7B/B,mBAAoBjC,CAC1B,CAAK,EACF,EAMD8E,0BAA2B,SAAS3I,GAClC,OAAKhgC,KAAK4oC,mBAAmB5I,CAAS,GAG/BhgC,KAAK2lC,kBAAkB3F,IAFrB,EAGV,EAMD6I,0BAA2B,SAAS7I,GAClC,OAAKhgC,KAAK8oC,mBAAmB9I,CAAS,GAG/BhgC,KAAK6lC,6BAA6B7F,IAFhC,EAGV,EAMDmH,0BAA2B,SAASnH,GAGlC,OAAOhgC,KAAKgmC,8BAA8BhG,IAAc,EACzD,EAMD+I,sBAAuB,SAAS/I,GAC9B,OAAKhgC,KAAK4oC,mBAAmB5I,CAAS,GAG/BhgC,KAAK4lC,eAAe5F,IAFlB,EAGV,EAUDgJ,wBAAyB,SAASpF,EAAW+C,EAAUsC,GACrD,OAAmBh4B,KAAAA,IAAfg4B,EACGjpC,KAAK0oC,iBAAiB9E,EAAW+C,EAAUsC,CAAU,EAGnDjpC,KAAK6nC,mBAAmB,CAC7B/B,mBAAoB9lC,KAAK4nC,yBAAyB,SAAS5kC,EAAOhE,GAChE,OACEA,IAAQ4kC,GACR5gC,EAAMkmC,KAAOvC,GACb5B,yBAAyB/hC,EAAM+oB,IAAK8W,YAAYoG,CAAU,CAAC,CAEvE,CAAS,CACT,CAAO,EAVQjpC,KAWaiR,KAAAA,IAAb01B,EACJ3mC,KAAK0oC,iBAAiB9E,EAAW+C,CAAQ,EACvC3mC,KAAK6nC,mBAAmB,CAC7B/B,mBAAoB9lC,KAAK4nC,yBAAyB,SAAS5kC,EAAOhE,GAChE,OAAOA,IAAQ4kC,GAAa5gC,EAAMkmC,KAAOvC,CACnD,CAAS,CACT,CAAO,EALuD3mC,KAQrDA,KAAK0oC,iBAAiB9E,CAAS,EAC7B5jC,KAAK6nC,mBAAmB,CAC7B/B,mBAAoB9lC,KAAK4nC,yBAAyB,SAAS5kC,EAAOhE,GAChE,OAAOA,IAAQ4kC,CACvB,CAAO,CACP,CAAK,EAL6C5jC,IAM/C,EAMDmpC,sBAAuB,SAASnJ,GAC9B,OAAOhgC,KAAK8lC,mBAAmB9F,IAAc,EAC9C,EAODoJ,qBAAsB,SAASxF,EAAW+C,GACxC,OAAO3mC,KAAK8lC,mBAAmBlC,IAAc5jC,KAAK8lC,mBAAmBlC,GAAW+C,EACjF,EAWDiB,yBAA0B,SAAkChE,GAC1D,IAQMS,EACAyB,EACAuD,EAVN,OAAkBp4B,KAAAA,IAAd2yB,EACGT,gBAAcnjC,KAAK8lC,kBAAkB,EAGnC,GAFE9lC,KAAK8lC,mBAGgB,UAArB,OAAOlC,EACTV,OAAKljC,KAAK8lC,mBAAoB,CAAClC,EAAU,EAClB,YAArB,OAAOA,GACZS,EAAa,CAAA,EACbyB,EAAqB9lC,KAAK8lC,mBAC1BuD,EAAwBjgC,OAAOoF,KAAKs3B,CAAkB,EAAE5b,OAAO,SAAStc,EAAM5O,GAChF,IAAI0nC,EAAYZ,EAAmB9mC,GAC/BsqC,EAAe,GAEnB5C,EAAYA,GAAa,GAgBzB,OAfAt9B,OAAOoF,KAAKk4B,CAAS,EAAE5iC,QAAQ,SAAS6iC,GACtC,IAAI90B,EAAS60B,EAAUC,IAAa,GAChC4C,EAAY,GAChB13B,EAAO/N,QAAQ,SAASd,GACA4gC,EAAU,CAAC7X,IAAK/oB,EAAOkmC,GAAIvC,CAAQ,EAAG3nC,EAAK,SAAS,GACpDuqC,EAAUhpC,KAAKyC,CAAK,CACtD,CAAW,EACGumC,EAAU9qC,SAAWoT,EAAOpT,SAC9B4lC,EAAa,CAAA,GAEfiF,EAAa3C,GAAY4C,CACnC,CAAS,EAED37B,EAAK5O,GAAOsqC,EAEL17B,CACR,EAAE,EAAE,EAEDy2B,EAAmBgF,EAChBrpC,KAAK8lC,oBA3BP,KAAA,CA6BR,EAQD0D,SAAU,SAAkBxC,GAC1B,OAAIhnC,KAAK4oC,mBAAmB5B,CAAK,EACxBhnC,KAGFA,KAAK6nC,mBAAmB,CAC7BrC,OAAQxlC,KAAKwlC,OAAOh/B,OAAO,CAACwgC,EAAM,CACxC,CAAK,CACF,EAQDyC,oBAAqB,SAA6BzC,GAChD,OAAIhnC,KAAK8oC,mBAAmB9B,CAAK,EACxBhnC,KAGFA,KAAK6nC,mBAAmB,CAC7BpC,kBAAmBzlC,KAAKylC,kBAAkBj/B,OAAO,CAACwgC,EAAM,CAC9D,CAAK,CACF,EASD0C,qBAAsB,SAA8BC,GAClD,GAAI3pC,KAAK4pC,oBAAoBD,EAAkB3kC,IAAI,EACjD,MAAM,IAAI4P,MACR,+DAAiE+0B,EAAkB3kC,KAAO,GAAG,EAGjG,OAAOhF,KAAK6nC,mBAAmB,CAC7BnC,mBAAoB1lC,KAAK0lC,mBAAmBl/B,OAAO,CAACmjC,EAAkB,CAC5E,CAAK,CACF,EAQDE,mBAAoB,SAA4B7C,EAAOhkC,GACrD,GAAKhD,KAAK4oC,mBAAmB5B,CAAK,EAGlC,OAAItC,eAAeZ,UAAU9jC,KAAK2lC,kBAAmBqB,EAAOhkC,CAAK,EAAUhD,KAEpEA,KAAK6nC,mBAAmB,CAC7BlC,kBAAmBjB,eAAehB,cAAc1jC,KAAK2lC,kBAAmBqB,EAAOhkC,CAAK,CAC1F,CAAK,EANC,MAAM,IAAI4R,MAAMoyB,EAAQ,qEAAqE,CAOhG,EAQD8C,qBAAsB,SAA8B9C,EAAOhkC,GACzD,GAAKhD,KAAK4oC,mBAAmB5B,CAAK,EAGlC,OAAItC,eAAeZ,UAAU9jC,KAAK4lC,eAAgBoB,EAAOhkC,CAAK,EAAUhD,KAEjEA,KAAK6nC,mBAAmB,CAC7BjC,eAAgBlB,eAAehB,cAAc1jC,KAAK4lC,eAAgBoB,EAAOhkC,CAAK,CACpF,CAAK,EANC,MAAM,IAAI4R,MAAMoyB,EAAQ,qEAAqE,CAOhG,EAQD+C,8BAA+B,SAAuC/C,EAAOhkC,GAC3E,GAAKhD,KAAK8oC,mBAAmB9B,CAAK,EAKlC,OAAItC,eAAeZ,UAAU9jC,KAAK6lC,6BAA8BmB,EAAOhkC,CAAK,EAAUhD,KAE/EA,KAAK6nC,mBAAmB,CAC7BhC,6BAA8BnB,eAAehB,cAC3C1jC,KAAK6lC,6BAA8BmB,EAAOhkC,CAAK,CACvD,CAAK,EATC,MAAM,IAAI4R,MACRoyB,EAAQ,gFAAgF,CAS7F,EAMDgD,iBAAkB,SAA0BC,GAC1C,OAAIjqC,KAAKkqC,aAAaD,CAAG,EAAUjqC,MAE/BmqC,EAAe,CACjBpE,eAAgB/lC,KAAK+lC,eAAev/B,OAAOyjC,CAAG,CACpD,EAEWjqC,KAAK6nC,mBAAmBsC,CAAY,EAC5C,EAQDC,YAAa,SAAqBpD,GAChC,OAAKhnC,KAAK4oC,mBAAmB5B,CAAK,EAI3BhnC,KAAKonC,iBAAiBJ,CAAK,EAAEa,mBAAmB,CACrDrC,OAAQxlC,KAAKwlC,OAAOn/B,OAAO,SAASvI,GAClC,OAAOA,IAAMkpC,CACrB,CAAO,CACP,CAAK,EAPQhnC,IAQV,EAQDqqC,uBAAwB,SAAgCrD,GACtD,OAAKhnC,KAAK8oC,mBAAmB9B,CAAK,EAI3BhnC,KAAKonC,iBAAiBJ,CAAK,EAAEa,mBAAmB,CACrDpC,kBAAmBzlC,KAAKylC,kBAAkBp/B,OAAO,SAASvI,GACxD,OAAOA,IAAMkpC,CACrB,CAAO,CACP,CAAK,EAPQhnC,IAQV,EAQDsqC,wBAAyB,SAAiCtD,GACxD,OAAKhnC,KAAK4pC,oBAAoB5C,CAAK,EAI5BhnC,KAAKonC,iBAAiBJ,CAAK,EAAEa,mBAAmB,CACrDnC,mBAAoB1lC,KAAK0lC,mBAAmBr/B,OAAO,SAASvI,GAC1D,OAAOA,EAAEkH,OAASgiC,CAC1B,CAAO,CACP,CAAK,EAPQhnC,IAQV,EAUDuqC,sBAAuB,SAA+BvD,EAAOhkC,GAC3D,GAAKhD,KAAK4oC,mBAAmB5B,CAAK,EAGlC,OAAKtC,eAAeZ,UAAU9jC,KAAK2lC,kBAAmBqB,EAAOhkC,CAAK,EAE3DhD,KAAK6nC,mBAAmB,CAC7BlC,kBAAmBjB,eAAeT,iBAAiBjkC,KAAK2lC,kBAAmBqB,EAAOhkC,CAAK,CAC7F,CAAK,EAJ2EhD,KAF1E,MAAM,IAAI4U,MAAMoyB,EAAQ,qEAAqE,CAOhG,EAQDwD,wBAAyB,SAAiCxD,EAAOhkC,GAC/D,GAAKhD,KAAK4oC,mBAAmB5B,CAAK,EAGlC,OAAKtC,eAAeZ,UAAU9jC,KAAK4lC,eAAgBoB,EAAOhkC,CAAK,EAExDhD,KAAK6nC,mBAAmB,CAC7BjC,eAAgBlB,eAAeT,iBAAiBjkC,KAAK4lC,eAAgBoB,EAAOhkC,CAAK,CACvF,CAAK,EAJwEhD,KAFvE,MAAM,IAAI4U,MAAMoyB,EAAQ,qEAAqE,CAOhG,EAQDyD,iCAAkC,SAA0CzD,EAAOhkC,GACjF,GAAKhD,KAAK8oC,mBAAmB9B,CAAK,EAIlC,OAAKtC,eAAeZ,UAAU9jC,KAAK6lC,6BAA8BmB,EAAOhkC,CAAK,EAEtEhD,KAAK6nC,mBAAmB,CAC7BhC,6BAA8BnB,eAAeT,iBAC3CjkC,KAAK6lC,6BAA8BmB,EAAOhkC,CAAK,CACvD,CAAK,EALsFhD,KAHrF,MAAM,IAAI4U,MACRoyB,EAAQ,gFAAgF,CAQ7F,EAOD0D,oBAAqB,SAA6BT,GAChD,IAEIE,EAFJ,OAAKnqC,KAAKkqC,aAAaD,CAAG,GAEtBE,EAAe,CACjBpE,eAAgB/lC,KAAK+lC,eAAe1/B,OAAO,SAAS/H,GAClD,OAAOA,IAAM2rC,CACrB,CAAO,CACP,EAEWjqC,KAAK6nC,mBAAmBsC,CAAY,GARPnqC,IASrC,EAUDmkC,iBAAkB,SAA0B6C,EAAOhkC,GACjD,OAAOhD,KAAK2qC,sBAAsB3D,EAAOhkC,CAAK,CAC/C,EASD2nC,sBAAuB,SAA+B3D,EAAOhkC,GAC3D,GAAIhD,KAAK4pC,oBAAoB5C,CAAK,EAChC,OAAOhnC,KAAKqnC,kCAAkCL,EAAOhkC,CAAK,EACrD,GAAIhD,KAAK4oC,mBAAmB5B,CAAK,EACtC,OAAOhnC,KAAK4qC,iCAAiC5D,EAAOhkC,CAAK,EACpD,GAAIhD,KAAK8oC,mBAAmB9B,CAAK,EACtC,OAAOhnC,KAAK6qC,iCAAiC7D,EAAOhkC,CAAK,EAG3D,MAAM,IAAI4R,MAAM,sCAAwCoyB,EACtD,4FAA4F,CAC/F,EAQD4D,iCAAkC,SAA0C5D,EAAOhkC,GACjF,GAAKhD,KAAK4oC,mBAAmB5B,CAAK,EAIlC,OAAOhnC,KAAK6nC,mBAAmB,CAC7BlC,kBAAmBjB,eAAeP,iBAAiBnkC,KAAK2lC,kBAAmBqB,EAAOhkC,CAAK,CAC7F,CAAK,EALC,MAAM,IAAI4R,MAAMoyB,EAAQ,qEAAqE,CAMhG,EAQD8D,6BAA8B,SAAsC9D,EAAOhkC,GACzE,GAAKhD,KAAK4oC,mBAAmB5B,CAAK,EAIlC,OAAOhnC,KAAK6nC,mBAAmB,CAC7BjC,eAAgBlB,eAAeP,iBAAiBnkC,KAAK4lC,eAAgBoB,EAAOhkC,CAAK,CACvF,CAAK,EALC,MAAM,IAAI4R,MAAMoyB,EAAQ,qEAAqE,CAMhG,EAQD6D,iCAAkC,SAA0C7D,EAAOhkC,GACjF,GAAKhD,KAAK8oC,mBAAmB9B,CAAK,EAKlC,OAAOhnC,KAAK6nC,mBAAmB,CAC7BhC,6BAA8BnB,eAAeP,iBAC3CnkC,KAAK6lC,6BAA8BmB,EAAOhkC,CAAK,CACvD,CAAK,EAPC,MAAM,IAAI4R,MACRoyB,EAAQ,gFAAgF,CAO7F,EAQDK,kCAAmC,SAA2CL,EAAOhkC,GACnF,IAKI+nC,EAEAlH,EAPJ,GAAK7jC,KAAK4pC,oBAAoB5C,CAAK,EAgCnC,OA3BI+D,EAAY/qC,KAAKgrC,+BAA+BhrC,KAAKirC,2BAA2BjE,CAAK,CAAC,EAEtFnD,EAAM,GAE+D5yB,KAAAA,IAA9CjR,KAAKgmC,8BAA8BgB,IACT,EAAnDhnC,KAAKgmC,8BAA8BgB,GAAOvoC,SAG1CuB,KAAKgmC,8BAA8BgB,GAAO,KAAOhkC,GAK2B,IAA5EhD,KAAKgmC,8BAA8BgB,GAAO,GAAG7mC,QAAQ6C,EAAQ+nC,CAAS,GAIrC,CAAC,IAA9B/nC,EAAM7C,QAAQ4qC,CAAS,EAEzBlH,EAAImD,GAAS,GAEbnD,EAAImD,GAAS,CAAChkC,EAAMT,MAAM,EAAGS,EAAMkoC,YAAYH,CAAS,CAAC,GAG3DlH,EAAImD,GAAS,CAAChkC,GAGThD,KAAK6nC,mBAAmB,CAC7B7B,8BAA+B5D,eAAa,GAAIyB,EAAK7jC,KAAKgmC,6BAA6B,CAC7F,CAAK,EAjCC,MAAM,IAAIpxB,MACRoyB,EAAQ,iFAAiF,CAiC9F,EASDmE,+BAAgC,SAASnE,EAAOvV,GAC9C,GAAIzxB,KAAKorC,2BAA2BpE,CAAK,EACvC,MAAM,IAAIpyB,MAAMoyB,EAAQ,sBAAsB,EAEhD,IAGInD,EAHJ,GAAK7jC,KAAK4pC,oBAAoB5C,CAAK,EAKnC,OAFInD,EAAM,IACNmD,GAAS,CAACvV,GACPzxB,KAAK6nC,mBAAmB,CAC7B7B,8BAA+B5D,eAAa,GAAIyB,EAAK7jC,KAAKgmC,6BAA6B,CAC7F,CAAK,EANC,MAAM,IAAIpxB,MAAMoyB,EAAQ,kFAAkF,CAO7G,EAQDqE,kCAAmC,SAASrE,GAC1C,IAGInD,EAHJ,OAAK7jC,KAAKorC,2BAA2BpE,CAAK,IAGtCnD,EAAM,IACNmD,GAAS,GACNhnC,KAAK6nC,mBAAmB,CAC7B7B,8BAA+B5D,eAAa,GAAIyB,EAAK7jC,KAAKgmC,6BAA6B,CAC7F,CAAK,GANQhmC,IAOV,EAODsrC,oBAAqB,SAA6BrB,GAChD,OAAIjqC,KAAKkqC,aAAaD,CAAG,EAChBjqC,KAAK0qC,oBAAoBT,CAAG,EAG9BjqC,KAAKgqC,iBAAiBC,CAAG,CACjC,EAODnB,mBAAoB,SAAS9B,GAC3B,MAA+C,CAAC,EAAzChnC,KAAKylC,kBAAkBtlC,QAAQ6mC,CAAK,CAC5C,EAOD4C,oBAAqB,SAAS5J,GAC5B,OAAsD/uB,KAAAA,IAA/CjR,KAAKirC,2BAA2BjL,CAAS,CACjD,EAOD4I,mBAAoB,SAAS5B,GAC3B,MAAoC,CAAC,EAA9BhnC,KAAKwlC,OAAOrlC,QAAQ6mC,CAAK,CACjC,EAUDuE,eAAgB,SAAwBvE,EAAOhkC,GAC7C,MAAKhD,CAAAA,CAAAA,KAAK4oC,mBAAmB5B,CAAK,GAG3BtC,eAAeZ,UAAU9jC,KAAK2lC,kBAAmBqB,EAAOhkC,CAAK,CACrE,EAWDwoC,iBAAkB,SAA0BxE,EAAOhkC,GACjD,MAAKhD,CAAAA,CAAAA,KAAK4oC,mBAAmB5B,CAAK,GAG3BtC,eAAeZ,UAAU9jC,KAAK4lC,eAAgBoB,EAAOhkC,CAAK,CAClE,EAUDyoC,0BAA2B,SAAmCzE,EAAOhkC,GACnE,MAAKhD,CAAAA,CAAAA,KAAK8oC,mBAAmB9B,CAAK,GAG3BtC,eAAeZ,UAAU9jC,KAAK6lC,6BAA8BmB,EAAOhkC,CAAK,CAChF,EAUDooC,2BAA4B,SAAoCpE,EAAOhkC,GACrE,MAAKhD,CAAAA,CAAAA,KAAK4pC,oBAAoB5C,CAAK,IAI/B0E,EAAc1rC,KAAKmnC,0BAA0BH,CAAK,EAEjDhkC,EAIiC,CAAC,IAAhC0oC,EAAYvrC,QAAQ6C,CAAK,EAHF,EAArB0oC,EAAYjtC,OAItB,EAWDiqC,iBAAkB,SAA0B9E,EAAW+C,EAAU3jC,GAC/D,IAII2oC,EAJJ,OAAc16B,KAAAA,IAAVjO,GAAoCiO,KAAAA,IAAb01B,EAClB,CAAC,CAAC3mC,KAAK8lC,mBAAmBlC,IAG/B+H,EACF3rC,KAAK8lC,mBAAmBlC,IACyB3yB,KAAAA,IAAjDjR,KAAK8lC,mBAAmBlC,GAAW+C,GAEvB11B,KAAAA,IAAVjO,GAAwB2oC,GAIxBpF,EAAc1D,YAAY7/B,CAAK,EAC/B4oC,EAEF36B,KAAAA,IADAg0B,UAAUjlC,KAAK8lC,mBAAmBlC,GAAW+C,GAAWJ,CAAW,EAG9DoF,GAAqBC,GARnBD,EASV,EAODzB,aAAc,SAAsBD,GAClC,MAA4C,CAAC,IAAtCjqC,KAAK+lC,eAAe5lC,QAAQ8pC,CAAG,CACvC,EAQD4B,4BAA6B,WAC3B,IAAItG,EAAOvlC,KAGP8rC,EAAkCvJ,aACpCn5B,OAAOoF,KAAKxO,KAAK8lC,kBAAkB,EAAEz/B,OAAO,SAAS2gC,GACnD,OAA4D,EAArD59B,OAAOoF,KAAK+2B,EAAKO,mBAAmBkB,EAAM,EAAEvoC,MAC3D,CAAO,EACDuB,KAAKylC,iBACX,EAEI,OAAOr8B,OAAOoF,KAAKxO,KAAK6lC,4BAA4B,EAAEx/B,OAAO,SAAS2gC,GACpE,OAAyD,EAAlDzB,EAAKM,6BAA6BmB,GAAOvoC,MACtD,CAAK,EACE+H,OAAOslC,CAA+B,EACtCtlC,OAAOxG,KAAK+rC,6BAA4B,CAAE,CAC9C,EAQDA,6BAA8B,WAC5B,IAAIxG,EAAOvlC,KACX,OAAOuiC,aAGLviC,KAAK0lC,mBAAmBh+B,IAAI,SAASs/B,GAAS,OAAOA,EAAMhiC,KAAO,EAClEoE,OAAOoF,KAAKxO,KAAKgmC,6BAA6B,EAAE3/B,OAAO,SAAS2gC,GAC9D,OAA0D,EAAnDzB,EAAKS,8BAA8BgB,GAAOvoC,MACzD,CAAO,CACP,CACG,EAMDutC,8BAA+B,WAC7B,IAAIC,EAAgBjsC,KAAK6rC,8BAEzB,OAAO7rC,KAAKylC,kBAAkBp/B,OAAO,SAASvI,GAC5C,MAAoC,CAAC,IAA9BmuC,EAAc9rC,QAAQrC,CAAC,CACpC,CAAK,CACF,EAEDouC,kBAAmB,CACjB,QAEA,SACA,oBACA,oBACA,qBACA,iBAEA,+BACA,qBACA,iBACA,iCAEFC,eAAgB,WACd,IAAID,EAAoBlsC,KAAKksC,kBAEzBE,EAAc,GAEd7G,EAAOvlC,KAQX,OAPAoJ,OAAOoF,KAAKxO,IAAI,EAAE8D,QAAQ,SAASmiC,GACjC,IAAIgD,EAAa1D,EAAKU,GACuB,CAAC,IAA1CiG,EAAkB/rC,QAAQ8lC,CAAS,GAA2Bh1B,KAAAA,IAAfg4B,IACjDmD,EAAYnG,GAAagD,EAEjC,CAAK,EAEMmD,CACR,EAWDC,kBAAmB,SAAsBC,EAAWtpC,GAClD,IAEImnC,EAFJ,OAAInqC,KAAKssC,KAAetpC,EAAchD,OAElCmqC,EAAe,IAENmC,GAAatpC,EAEnBhD,KAAK6nC,mBAAmBsC,CAAY,EAC5C,EAODtC,mBAAoB,SAA4B9H,GAC9C,GAAI,CAACA,EAAQ,OAAO//B,KAEpB,IAAIqrB,EAAQ+Z,mBAAiBkC,SAAStnC,KAAM+/B,CAAM,EAElD,GAAI1U,EACF,MAAMA,EAGR,IAAIka,EAAOvlC,KACPusC,EAAkBnH,mBAAiBE,cAAcvF,CAAM,EACvDyM,EAAsBpjC,OAAOoF,KAAKxO,IAAI,EAAEkqB,OAAO,SAASoY,EAAKtjC,GAE/D,OADAsjC,EAAItjC,GAAOumC,EAAKvmC,GACTsjC,CACR,EAAE,EAAE,EAEDmK,EAAkBrjC,OAAOoF,KAAK+9B,CAAe,EAAEriB,OACjD,SAASwiB,EAAU1tC,GACjB,IAAI2tC,EAA2C17B,KAAAA,IAAlBy7B,EAAS1tC,GAClC4tC,EAA8C37B,KAAAA,IAAzBs7B,EAAgBvtC,GAEzC,OAAI2tC,GAA0B,CAACC,EACtB1J,OAAKwJ,EAAU,CAAC1tC,EAAI,GAGzB4tC,IACFF,EAAS1tC,GAAOutC,EAAgBvtC,IAG3B0tC,EACR,EACDF,CACN,EAEI,OAAO,IAAIxsC,KAAKP,YAAYgtC,CAAe,CAC5C,EAQDI,UAAW,WACT,OAAkB57B,KAAAA,IAAdjR,KAAKyzB,KACAzzB,KAGFA,KAAKkoC,QAAQ,CAAC,CACtB,EAOD4E,4BAA6B,SAASnD,GACpC,OAAOA,EAAkBoD,QAAU,CAAC,iBAAkB,WACvD,EAQD/B,+BAAgC,SAASrB,GACvC,OAAOA,EAAkBoB,WAAa,KACvC,EAQDiC,yBAA0B,SAASrD,GACjC,OAAOA,EAAkBzC,UAAY,IACtC,EAQD+F,gCAAiC,SAAStD,GACxC,MAAiD,WAA7C,OAAOA,EAAkBuD,iBACpBvD,EAAkBuD,eAG5B,EAODjC,2BAA4B,SAASkC,GACnC,OAAOxK,OACL3iC,KAAK0lC,mBACL,SAAS5nC,GACP,OAAOA,EAAEkH,OAASmoC,CACnB,CACP,CACG,EAODC,+BAAgC,SAASpN,GACvC,IAIIqN,EAJJ,OAAKrtC,KAAK4pC,oBAAoB5J,CAAS,IAInCqN,EAAartC,KAAKmnC,0BAA0BnH,CAAS,EAAE,KAGvD+K,EAAY/qC,KAAKgrC,+BACnBhrC,KAAKirC,2BAA2BjL,CAAS,CAC/C,EACeqN,EAAWzlB,MAAMmjB,CAAS,EACzBrjC,IAAI,SAAS4lC,GACvB,OAAOA,EAAKzjB,MAClB,CAAK,GAZQ,EAaV,EAEDtV,SAAU,WACR,OAAOob,KAAKC,UAAU5vB,KAAM,KAAM,CAAC,CACpC,CACH,EAWA,IAAAutC,mBAAiBnI,mBCn+CjB,SAASoI,iBAAiBxqC,EAAOwc,GAC/B,GAAIxc,IAAUwc,EAAO,CACnB,IAAIiuB,EAAyBx8B,KAAAA,IAAVjO,EACf0qC,EAAsB,OAAV1qC,EAEZ2qC,EAAyB18B,KAAAA,IAAVuO,EACfouB,EAAsB,OAAVpuB,EAEhB,GACG,CAACouB,GAAqBpuB,EAARxc,GACd0qC,GAAaC,GACd,CAACF,EAED,OAAO,EAET,GACG,CAACC,GAAa1qC,EAAQwc,GACtBouB,GAAaH,GACd,CAACE,EAED,MAAO,CAAC,CAEX,CACD,OAAO,CACT,CAOA,SAASE,UAAQC,EAAYC,EAAWC,GACtC,GAAI,CAAC1sC,MAAMC,QAAQusC,CAAU,EAC3B,MAAO,GAGJxsC,MAAMC,QAAQysC,CAAM,IACvBA,EAAS,IAGPn2B,EAASi2B,EAAWpmC,IAAI,SAAS1E,EAAO8O,GAC1C,MAAO,CACLm8B,SAAUF,EAAUrmC,IAAI,SAASwmC,GAC/B,OAAOlrC,EAAMkrC,EACrB,CAAO,EACDp8B,MAAOA,EACP9O,MAAOA,CACb,CACA,CAAG,EAuBD,OArBA6U,EAAOjX,KAAK,SAAkBmS,EAAQyM,GAGpC,IAFA,IAAI1N,EAAQ,CAAC,EAEN,EAAEA,EAAQiB,EAAOk7B,SAASxvC,QAAQ,CACvC,IAAI0vC,EAAMX,iBAAiBz6B,EAAOk7B,SAASn8B,GAAQ0N,EAAMyuB,SAASn8B,EAAM,EACxE,GAAIq8B,EACF,MAAIr8B,EAAAA,GAASk8B,EAAOvvC,SAGE,SAAlBuvC,EAAOl8B,GACF,CAACq8B,EAEHA,CAEV,CAID,OAAOp7B,EAAOjB,MAAQ0N,EAAM1N,KAChC,CAAG,EAEM+F,EAAOnQ,IAAI,SAASymC,GACzB,OAAOA,EAAInrC,KACf,CAAG,CACH,CAEA,IAAAorC,UAAiBP,UC5EjBQ,UAAiB,SAAiBp7B,GAChC,OAAK3R,MAAMC,QAAQ0R,CAAK,EAIjBA,EAAM5M,OAAOyf,OAAO,EAHlB,EAIX,ECLApT,YAAiB,SAAcO,EAAO2vB,GACpC,GAAKthC,MAAMC,QAAQ0R,CAAK,EAIxB,IAAK,IAAIrV,EAAI,EAAGA,EAAIqV,EAAMxU,OAAQb,CAAC,GACjC,GAAIglC,EAAW3vB,EAAMrV,EAAE,EACrB,OAAOA,EAGX,MAAO,CAAC,CACV,ECZI+kC,OAAOt0B,OAQXigC,aAAiB,SAAoBvB,EAAQwB,GAC3C,IAAIC,GAAuBD,GAAY,IAAI7mC,IAAI,SAAS9G,GACtD,OAAOA,EAAKgnB,MAAM,GAAG,CACzB,CAAG,EAED,OAAOmlB,EAAO7iB,OACZ,SAA0B0B,EAAKhrB,GAC7B,IAAI6tC,EAAkB7tC,EAAKgnB,MAAM,GAAG,EAEhC8mB,EAAkB/L,OAAK6L,EAAqB,SAC9CG,GAEA,OAAOA,EAAmB,KAAOF,EAAgB,EACzD,CAAO,EAUD,OAR6B,EAAzBA,EAAgBhwC,QAAc,CAACiwC,GACjC9iB,EAAI,GAAGrrB,KAAKkuC,EAAgB,EAAE,EAC9B7iB,EAAI,GAAGrrB,KAAKkuC,EAAgB,EAAE,IAIhC7iB,EAAI,GAAGrrB,KAAKmuC,EAAgB,EAAE,EAC9B9iB,EAAI,GAAGrrB,KAAKmuC,EAAgB,EAAE,GACvB9iB,CACR,EACD,CAAC,GAAI,GACT,CACA,EC7BA,SAASgjB,mBAAiB5rC,GACxB,MAAqB,UAAjB,OAAOA,EAA2BA,EAE/BmO,OAAOnO,CAAK,EAAEX,QAAQ,KAAM,KAAK,CAC1C,CAQA,SAASwsC,qBAAmB7rC,GAC1B,MAAqB,UAAjB,OAAOA,EAA2BA,EAE/BA,EAAMX,QAAQ,OAAQ,GAAG,CAClC,CAEA,IAAAysC,mBAAiB,CACfF,iBAAkBA,mBAClBC,mBAAoBA,oBACtB,EC3BAE,2BAAiBC,cAEbnB,UAAUx/B,UACVs0B,OAAOY,OACP0L,+BAAiCzL,aACjC0L,KAAKvK,mBACLiK,mBAAmBM,KAAGN,iBACtBC,qBAAqBK,KAAGL,mBAE5B,SAASG,cAAc1rC,GACrB,OAAO,SAAkB6rC,EAAyBC,GAChD,IAAIzF,EAAoBrmC,EAAMoiC,mBAAmB0J,GAC7CC,EACD/rC,EAAM0iC,8BAA8B2D,EAAkB3kC,OACrD1B,EAAM0iC,8BAA8B2D,EAAkB3kC,MAAM,IAC9D,GACEsqC,EAAwBhsC,EAAM0nC,+BAChCrB,CACN,EACQ4F,EAAuBjsC,EAAM0pC,yBAC/BrD,CACN,EACQ6F,EAA8BlsC,EAAM2pC,gCACtCtD,CACN,EACQoD,EAASkC,+BACX3rC,EAAMwpC,4BAA4BnD,CAAiB,CACzD,EAEQ8F,EAAiBN,EAAwB7oC,MAAM,SAASopC,GAC1D,OAAOA,EAAYC,UACzB,CAAK,EAEGC,EAAiBC,2BACnB9C,EACAuC,EACAC,EACAC,EACAH,CACN,EAEQS,EAAUX,EAQd,OALEW,EADEP,EACQJ,EAAwB5sC,MAChCgtC,EAAqB3nB,MAAM0nB,CAAqB,EAAE7wC,MAC1D,EAGWqxC,GAAQ5lB,OAAO0lB,EAAgB,CACpC5qC,KAAM1B,EAAMoiC,mBAAmB0J,GAAwBpqC,KACvD2C,MAAO,KACPm8B,UAAW,CAAA,EACXrS,KAAM,KACNse,aAAc,KACdJ,WAAYF,EACZ7qC,KAAM,IACZ,CAAK,CACL,CACA,CAEA,SAASirC,2BACP9C,EACAuC,EACAC,EACAC,EACAvI,GAEA,OAAO,SACL+I,EACAb,EACAc,GAEA,IAgCMC,EAhCFC,EAASH,EAEb,GAA+B,EAA3BC,EAA8B,CAChC,IAAIG,EAAQ,EAIZ,IAFAD,EAASH,EAEFI,EAAQH,GAA0B,CAIvC,IAAIrrC,EAAOurC,GAAU7uC,MAAMC,QAAQ4uC,EAAOvrC,IAAI,EAAIurC,EAAOvrC,KAAO,GAChEurC,EAASxN,OAAK/9B,EAAM,SAASyrC,GAC3B,OAAOA,EAAQvM,SACzB,CAAS,EACDsM,CAAK,EACN,CACF,CAiDD,OA9CID,IAYED,EAAS9mC,OAAOoF,KAAK2gC,EAAwBvqC,IAAI,EAClD8C,IAAI,SAAS4oC,GACZ,MAAO,CAACA,EAAYnB,EAAwBvqC,KAAK0rC,GAC3D,CAAS,EACAjqC,OAAO,SAASkqC,GAEf,OAAOC,iBADUD,EAAM,GAGrBJ,EAAO1e,MAAQ8d,EACftI,EACAqI,EACAC,EACAC,CACZ,CACA,CAAS,EAEHW,EAAOvrC,KAAOipC,UACZqC,EAAOxoC,IAAI,SAAS6oC,GAClB,IAAID,EAAaC,EAAM,GAGvB,OAAOpxB,OAFUoxB,EAAM,GAIrBD,EACAhB,EACAT,qBAAmB5H,CAAiB,EACpCkI,EAAwBQ,UACpC,CACA,CAAS,EACD5C,EAAO,GACPA,EAAO,EACf,GAGWiD,CACX,CACA,CAEA,SAASQ,iBACPF,EACAG,EACAxJ,EACAqI,EACAC,EACAC,GAGA,OACED,CAAAA,GAC8C,IAA7Ce,EAAWnwC,QAAQovC,CAAoB,GACtCA,IAAyBe,KAO1B,CAACf,GAC8C,CAAC,IAA/Ce,EAAWnwC,QAAQmvC,CAAqB,GAEzCC,GACCe,EAAW1oB,MAAM0nB,CAAqB,EAAE7wC,OACtC8wC,EAAqB3nB,MAAM0nB,CAAqB,EAAE7wC,QAClD,GAG2C,CAAC,IAA/C6xC,EAAWnwC,QAAQmvC,CAAqB,GACc,CAAC,IAAtDrI,EAAkB9mC,QAAQmvC,CAAqB,GAEP,IAA1CrI,EAAkB9mC,QAAQmwC,CAAU,GAEwB,IAA3DA,EAAWnwC,QAAQswC,EAAanB,CAAqB,IACnDE,GAC2C,IAA1Cc,EAAWnwC,QAAQ8mC,CAAiB,GAE5C,CAEA,SAAS9nB,OACPuxB,EACAJ,EACAhB,EACArI,EACA0I,GAEA,IAAIziB,EAAQojB,EAAW1oB,MAAM0nB,CAAqB,EAClD,MAAO,CACLtqC,KAAMkoB,EAAMA,EAAMzuB,OAAS,GAAGorB,KAAM,EACpC4H,KAAM6e,EACNP,aAAcnB,mBAAiB0B,CAAU,EACzC3oC,MAAO+oC,EACP5M,UACEmD,IAAsBqJ,GAC4C,IAAlErJ,EAAkB9mC,QAAQmwC,EAAahB,CAAqB,EAC9DK,WAAYA,EACZ/qC,KAAM,IACV,CACA,CCzMA,IAAIs9B,QAAQ7zB,QACR+zB,aAAemB,eACfsK,QAAUrK,UACV6K,UAAU1J,UACVhC,OAAOgO,OACPj+B,YAAYkyB,YACZ0J,WAAazJ,aACbqK,GAAKpK,mBACL8J,mBAAmBM,GAAGN,iBACtBC,mBAAqBK,GAAGL,mBAExBgB,yBAA2Be,2BA8C/B,SAASC,WAAW9rC,GAClB,IAAI+rC,EAAU,GAMd,OAJA/rC,EAAWjB,QAAQ,SAASioB,EAAKglB,GAC/BD,EAAQ/kB,GAAOglB,CACnB,CAAG,EAEMD,CACT,CAEA,SAASE,iBAAiBC,EAAMC,EAAYlyC,GACtCkyC,GAAcA,EAAWlyC,KAC3BiyC,EAAKE,MAAQD,EAAWlyC,GAE5B,CAYA,SAASoyC,+CACP1L,EACA2L,GAEA,OAAO1O,OAAK+C,EAAoB,SAC9BiE,GAGA,MAAuD,CAAC,GADvCA,EAAkB5kC,YAAc,IAC/B5E,QAAQkxC,CAAyB,CACvD,CAAG,CACH,CAsIA,SAASC,gBAAchuC,EAAOwsC,EAAS9+B,GACrC,IAAIugC,EAAkBzB,EAAQ,GAI1BvK,GAFJvlC,KAAKwxC,YAAc1B,EAER9vC,MA6KPylC,GA1KJr8B,OAAOoF,KAAK+iC,CAAe,EAAEztC,QAAQ,SAAS9E,GAC5CumC,EAAKvmC,GAAOuyC,EAAgBvyC,EAChC,CAAG,EAGDoK,OAAOoF,KAAKwC,GAAW,EAAE,EAAElN,QAAQ,SAAS9E,GAC1CumC,EAAKvmC,GAAOgS,EAAQhS,EACxB,CAAG,EA2IDgB,KAAKyxC,iBAAmB3B,EAAQ5lB,OAAO,SAASwnB,EAAK75B,GACnD,OAAmC5G,KAAAA,IAA5B4G,EAAO45B,iBACVC,EACAA,EAAM75B,EAAO45B,gBAClB,EAAE,CAAC,EAMJzxC,KAAKylC,kBAAoB,GAKzBzlC,KAAK0lC,mBAAqBpiC,EAAMoiC,mBAAmBh+B,IAAI,WACrD,MAAO,EACX,CAAG,EAKD1H,KAAKwlC,OAAS,GAEUliC,EAAMuoC,+BAE1B8F,EAAgBd,WAAWvtC,EAAMkiC,MAAM,EACvCoM,EAA2Bf,WAAWvtC,EAAMmiC,iBAAiB,EAC7DoM,EAAwB,EAKxBC,EAAaP,EAAgB/L,QAAU,GAE3Cp8B,OAAOoF,KAAKsjC,CAAU,EAAEhuC,QAAQ,SAASiuC,GACvC,IAoBMC,EACAC,EACArR,EAtBFsR,EAAmBJ,EAAWC,GAE9BpI,EAAoByH,+CACtB9tC,EAAMoiC,mBACNqM,CACN,EAEQpI,GAGEwI,EAAaxI,EAAkB5kC,WAAW5E,QAAQ4xC,CAAQ,EAC1DK,EAAmB1/B,YAAUpP,EAAMoiC,mBAAoB,SAAS5nC,GAClE,OAAOA,EAAEkH,OAAS2kC,EAAkB3kC,IAC5C,CAAO,EACDugC,EAAKG,mBAAmB0M,GAAkBD,GAAc,CACtDvO,UAAWmO,EACXntC,KAAMstC,EACNvC,WAAY4B,EAAgBc,qBACpC,IAEUL,EAAmE,CAAC,IAA/C1uC,EAAMmiC,kBAAkBtlC,QAAQ4xC,CAAQ,EAC7DE,EAAwD,CAAC,IAApC3uC,EAAMkiC,OAAOrlC,QAAQ4xC,CAAQ,EAGlDC,IACFpR,EAAWgR,EAAyBG,GACpCxM,EAAKE,kBAAkB7E,GAAY,CACjC57B,KAAM+sC,EACNntC,KAAMstC,EACNvC,WAAY4B,EAAgBc,qBACtC,EACQrB,iBAAiBzL,EAAKE,kBAAkB7E,GAAW2Q,EAAgBe,aAAcP,CAAQ,GAEvFE,IACFrR,EAAW+Q,EAAcI,GACzBxM,EAAKC,OAAO5E,GAAY,CACtB57B,KAAM+sC,EACNntC,KAAMstC,EACNvC,WAAY4B,EAAgBc,qBACtC,EACQrB,iBAAiBzL,EAAKC,OAAO5E,GAAW2Q,EAAgBe,aAAcP,CAAQ,GAGtF,CAAG,EAGD/xC,KAAK0lC,mBAAqB2I,UAAQruC,KAAK0lC,kBAAkB,EAGzDD,EAAkB3hC,QAAQ,SAASyuC,GACjC,IAAI16B,EAASi4B,EAAQ+B,GACjBrM,EAAS3tB,GAAUA,EAAO2tB,OAAS3tB,EAAO2tB,OAAS,GACnDmE,EAAoBrmC,EAAM2nC,2BAA2BsH,CAAgB,EAGzEnpC,OAAOoF,KAAKg3B,CAAM,EAAE1hC,QAAQ,SAAS0uC,GACnC,IAKE5R,EAoBI6R,EAzBFC,EAAelN,EAAOgN,GAItB7I,GACF/I,EAAWluB,YAAUpP,EAAMoiC,mBAAoB,SAAS5nC,GACtD,OAAOA,EAAEkH,OAAS2kC,EAAkB3kC,IAC9C,CAAS,EAMsB,CAAC,KALpB2tC,EAAiBjgC,YAAU6yB,EAAKG,mBAAmB9E,GAAW,SAAS9iC,GACzE,OAAOA,EAAE8lC,YAAc4O,CACjC,CAAS,KAODjN,EAAKG,mBAAmB9E,GAAU+R,GAAgB/tC,KAAOs9B,QACvD,GACAqD,EAAKG,mBAAmB9E,GAAU+R,GAAgB/tC,KAClD8tC,CACV,KAEQ9R,EAAWgR,EAAyBY,GAEhCC,EAAsBlB,EAAgB/L,QAAU+L,EAAgB/L,OAAOgN,IAAW,GAEtFjN,EAAKE,kBAAkB7E,GAAY,CACjC57B,KAAMwtC,EACN5tC,KAAMw9B,aAAa,GAAIsQ,EAAcD,CAAmB,EACxD9C,WAAY93B,EAAOw6B,qBAC7B,EACQrB,iBAAiBzL,EAAKE,kBAAkB7E,GAAW/oB,EAAOy6B,aAAcE,CAAM,EAE1ElvC,EAAMuiC,6BAA6B2M,IACrClvC,EAAMuiC,6BAA6B2M,GAAQ1uC,QAAQ,SAAS0gC,GAEtD,CAACe,EAAKE,kBAAkB7E,GAAUh8B,KAAK4/B,IACiD,CAAC,EAA3FlhC,EAAMuiC,6BAA6B2M,GAAQryC,QAAQ0uC,mBAAmBrK,CAAe,CAAC,IACtFe,EAAKE,kBAAkB7E,GAAUh8B,KAAK4/B,GAAmB,EAEvE,CAAW,EAGX,CAAK,EACDqN,CAAqB,EACzB,CAAG,EAGDvuC,EAAMyoC,6BAA4B,EAAGjoC,QAAQ,SAAS8uC,GACpD,IAAIjJ,EAAoBrmC,EAAM2nC,2BAA2B2H,CAAY,EACjE7H,EAAYznC,EAAM0nC,+BAA+BrB,CAAiB,EAElE1C,EAAoB3jC,EAAM6jC,0BAA0ByL,CAAY,EAGnC,IAA7B3L,EAAkBxoC,QAAgBwoC,EAAkB,GAAGrf,MAAMmjB,CAAS,EAAEtsC,OAAS,GAIrFqxC,EAAQvtC,MAAMsvC,CAAqB,EAAE/tC,QAAQ,SAAS+T,GACpD,IAAI2tB,EAAS3tB,GAAUA,EAAO2tB,OAC1B3tB,EAAO2tB,OACP,GAEJp8B,OAAOoF,KAAKg3B,CAAM,EAAE1hC,QAAQ,SAAS0uC,GACnC,IAqBIK,EAGEC,EAxBFJ,EAAelN,EAAOgN,GACtB5R,EAAWluB,YAAUpP,EAAMoiC,mBAAoB,SAAS5nC,GAC1D,OAAOA,EAAEkH,OAAS2kC,EAAkB3kC,IAC9C,CAAS,EACG2tC,EAAiBjgC,YAAU6yB,EAAKG,mBAAmB9E,GAAW,SAAS9iC,GACzE,OAAOA,EAAE8lC,YAAc4O,CACjC,CAAS,EAGsB,CAAC,IAApBG,IAYAE,EAAc,GAEa,EAA3B5L,EAAkBxoC,SAEpBo0C,EADIC,EAAO7L,EAAkB,GAAGrf,MAAMmjB,CAAS,EAAE,IAC7BxF,EAAKG,mBAAmB9E,GAAU+R,GAAgB/tC,KAAKkuC,IAG7EvN,EAAKG,mBAAmB9E,GAAU+R,GAAgB/tC,KAAOw9B,aACvDyQ,EACAH,EACAnN,EAAKG,mBAAmB9E,GAAU+R,GAAgB/tC,IAC5D,EACA,CAAO,EAEDitC,CAAqB,EAC3B,CAAK,CACL,CAAG,EAGDzoC,OAAOoF,KAAKlL,EAAMsiC,cAAc,EAAE9hC,QAAQ,SAASk8B,GACjD,IAAI+S,EAAWzvC,EAAMsiC,eAAe5F,GAChCY,EAAW+Q,EAAc3R,GAE7BuF,EAAKC,OAAO5E,GAAY,CACtB57B,KAAMg7B,EACNp7B,KAAM2sC,EAAgB/L,OAAOxF,GAC7B2P,WAAY4B,EAAgBc,qBAClC,EACIU,EAASjvC,QAAQ,SAASwsC,GACxB/K,EAAKC,OAAO5E,GAAY2E,EAAKC,OAAO5E,IAAa,CAAC57B,KAAMg7B,CAAS,EACjEuF,EAAKC,OAAO5E,GAAUh8B,KAAO2gC,EAAKC,OAAO5E,GAAUh8B,MAAQ,GAC3D2gC,EAAKC,OAAO5E,GAAUh8B,KAAK0rC,GAAc,CAC/C,CAAK,CACL,CAAG,EAKDtwC,KAAK0lC,mBAAqB1lC,KAAK0lC,mBAAmBh+B,IAAImoC,yBAAyBvsC,CAAK,CAAC,EAKrFtD,KAAKwlC,OAAS6I,UAAQruC,KAAKwlC,MAAM,EAIjCxlC,KAAKylC,kBAAoB4I,UAAQruC,KAAKylC,iBAAiB,EAEvDzlC,KAAKgzC,OAAS1vC,CAChB,CAyBA,SAAS2vC,6BAA6BnD,EAASlM,GAC7C,SAAS5wB,EAAUg0B,GACjB,OAAOA,EAAMhiC,OAAS4+B,CACvB,CAED,IACMoD,EAcAuL,EAfN,OAAIzC,EAAQkD,OAAOpK,mBAAmBhF,CAAS,GACzCoD,EAAQrE,OAAKmN,EAAQtK,OAAQxyB,CAAS,GAGnC5J,OAAOoF,KAAKw4B,EAAMpiC,IAAI,EAAE8C,IAAI,SAAS1C,GAC1C,IAAIhC,EAAQ4rC,mBAAiB5pC,CAAI,EACjC,MAAO,CACLA,KAAMA,EACN+qC,aAAc/sC,EACd2E,MAAOq/B,EAAMpiC,KAAKI,GAClB8+B,UAAWgM,EAAQkD,OAAOzH,eAAe3H,EAAW5gC,CAAK,EACzDkwC,WAAYpD,EAAQkD,OAAOxH,iBAAiB5H,EAAW5+B,CAAI,CACnE,CACA,CAAK,EAXkB,GAYV8qC,EAAQkD,OAAOlK,mBAAmBlF,CAAS,GAChD2O,EAAmB5P,OAAKmN,EAAQrK,kBAAmBzyB,CAAS,GAGzD5J,OAAOoF,KAAK+jC,EAAiB3tC,IAAI,EAAE8C,IAAI,SAAS1C,GACrD,IAAIhC,EAAQ4rC,mBAAiB5pC,CAAI,EACjC,MAAO,CACLA,KAAMA,EACN+qC,aAAc/sC,EACd2E,MAAO4qC,EAAiB3tC,KAAKI,GAC7B8+B,UAAWgM,EAAQkD,OAAOvH,0BAA0B7H,EAAW5gC,CAAK,CAC5E,CACA,CAAK,EAV6B,GAWrB8sC,EAAQkD,OAAOpJ,oBAAoBhG,CAAS,EAC9CjB,OAAKmN,EAAQpK,mBAAoB1yB,CAAS,EAD5C,KAAA,CAGT,CAUA,SAASmgC,QAAQC,EAAQC,EAAMC,EAAOlD,GAGpC,IAWImD,EAXJ,OAFAnD,EAAQA,GAAS,EAEb9uC,MAAMC,QAAQ8xC,CAAI,EACbD,EAAOC,EAAMC,EAAMlD,EAAM,EAG7BiD,EAAKzuC,MAA6B,IAArByuC,EAAKzuC,KAAKnG,QAIxBC,EAAW20C,EAAKzuC,KAAK8C,IAAI,SAAS8rC,GACpC,OAAOL,QAAQC,EAAQI,EAAWF,EAAOlD,EAAQ,CAAC,CACtD,CAAG,EACGmD,EAAiBH,EAAO10C,EAAU40C,EAAMlD,EAAM,EACpChO,aAAa,CAACx9B,KAAM2uC,CAAc,EAAGF,CAAI,GAP9CA,CASX,CAIA,SAASI,cAAcC,EAAO9uC,GAC5B,OAAOA,EAAKhE,KAAK8yC,CAAK,CACxB,CAeA,SAASC,qBAAqBC,EAAaC,GACzC,IAAIC,EAAgB,GAChBC,EAAkB,GAOlBC,GALQH,EAAcH,OAAS,IAKVxpB,OAAO,SAASoY,EAAKt9B,EAAMpH,GAElD,OADA0kC,EAAIt9B,GAAQpH,EACL0kC,CACR,EAAE,EAAE,EAgBD2R,GAdJL,EAAY9vC,QAAQ,SAASowC,GAE3B,IAAIlvC,EAAOkvC,EAAKziB,MAAQyiB,EAAKlvC,KACFiM,KAAAA,IAAvB+iC,EAAahvC,GACf8uC,EAAcE,EAAahvC,IAASkvC,EAEpCH,EAAgBxzC,KAAK2zC,CAAI,CAE/B,CAAG,EAEDJ,EAAgBA,EAAcztC,OAAO,SAAS2gC,GAC5C,OAAOA,CACX,CAAG,EAEqB6M,EAAcI,iBAEpC,MAAwB,WAApBA,EACKH,EAOFA,EAActtC,OACnBqnC,QAAQkG,GANRI,EAD6B,UAApBF,EACE,CAAC,CAAC,OAAQ,QAAS,CAAC,MAAO,QAE3B,CAAC,CAAC,SAAU,CAAC,UAIU,GAAIE,EAAS,EAAE,CACrD,CACA,CAOA,SAASC,iBAAiBtE,EAASlM,GACjC,OACEkM,EAAQuE,kBACRvE,EAAQuE,iBAAiBR,eACzB/D,EAAQuE,iBAAiBR,cAAchiC,QACvCi+B,EAAQuE,iBAAiBR,cAAchiC,OAAO+xB,EAElD,CAsHA,SAAS0Q,yBAAyB/P,EAAWvE,GACvCp7B,EAAO+9B,OAAK4B,EAAW,SAASyC,GAClC,OAAOA,EAAMhiC,OAASg7B,CAC1B,CAAG,EACD,OAAOp7B,GAAQA,EAAKusC,KACtB,CAgFA,SAASoD,cAAcjxC,EAAOxE,EAAM01C,EAAexvC,EAAMyvC,GACvD,IAAIzN,EAAQrE,OAAK8R,EAAe,SAAS32C,GACvC,OAAOA,EAAEkH,OAASwvC,CACtB,CAAG,EACG7sC,EAAQq/B,GAASA,EAAMpiC,MAAQoiC,EAAMpiC,KAAKI,GAAQgiC,EAAMpiC,KAAKI,GAAQ,EACrE2qC,EAAc3I,GAASA,EAAM2I,YAAe,CAAA,EAEhD,MAAO,CACL7wC,KAAMA,EACN01C,cAAeA,EACfxvC,KAAMA,EACN2C,MAAOA,EACPgoC,WAAYA,CAChB,CACA,CAQA,SAASxI,0BAA0B7jC,EAAOkxC,EAAexvC,EAAMyvC,GAC7D,IAAIC,EAAmBpxC,EAAM2nC,2BAA2BuJ,CAAa,EACjEzJ,EAAYznC,EAAM0nC,+BAA+B0J,CAAgB,EACjE9sB,EAAQ5iB,EAAK4iB,MAAMmjB,CAAS,EAC5B4J,EAAYhS,OAAK8R,EAAe,SAASzN,GAC3C,OAAOA,EAAMhiC,OAASwvC,CAC1B,CAAG,EAEGxN,EAAQpf,EAAMsC,OAAO,SAAS0qB,EAAmBtH,GACnD,IAAIuH,EACFD,GAAqBjS,OAAKiS,EAAkBhwC,KAAM,SAAS9G,GACzD,OAAOA,EAAEkH,OAASsoC,CAC1B,CAAO,EACH,OAAoBr8B,KAAAA,IAAb4jC,EAAyBA,EAAWD,CAC5C,EAAED,CAAS,EAERhtC,EAASq/B,GAASA,EAAMr/B,OAAU,EAClCgoC,EAAc3I,GAASA,EAAM2I,YAAe,CAAA,EAC5Cle,EAAQuV,GAASA,EAAMvV,MAAS,GAEpC,MAAO,CACL3yB,KAAM,eACN01C,cAAeA,EACfxvC,KAAMysB,EACN9pB,MAAOA,EACPgoC,WAAYA,CAChB,CACA,CAvZA2B,gBAAcpuC,UAAU4xC,eAAiB,SAAS9vC,GAChD,SAASgO,EAAUg0B,GACjB,OAAOA,EAAMhiC,OAASA,CACvB,CAED,OAAO29B,OAAK3iC,KAAKwlC,OAAQxyB,CAAS,GAChC2vB,OAAK3iC,KAAKylC,kBAAmBzyB,CAAS,GACtC2vB,OAAK3iC,KAAK0lC,mBAAoB1yB,CAAS,CAC3C,EAyEAs+B,gBAAcyD,aAAe,CAAC,iBAAkB,aAAc,YA4H9DzD,gBAAcpuC,UAAU8xC,eAAiB,SAASpR,EAAWqR,GAC3D,IAKIjkC,EAOA8+B,EAZA8D,EAAcX,6BAA6BjzC,KAAM4jC,CAAS,EAC9D,GAAKgQ,EAoBL,OAhBI5iC,EAAUoxB,aAAa,GAAI6S,EAAM,CACnClI,OAAQuE,gBAAcyD,aAGtBlB,cAAe,EAAEoB,GAAQA,EAAKlI,OAClC,CAAG,EAEG+C,EAAU9vC,KASPmzC,QAAQ,SAASvuC,EAAMo7B,GAC5B,GAAIhvB,EAAQ6iC,cAAe,CACrBA,EAAgBO,iBAAiBtE,EAAS9P,CAAS,EACvD,GAAIla,QAAQ+tB,CAAa,EACvB,OAAOF,qBAAqB/uC,EAAMivC,CAAa,CAElD,CAED,GAAIvyC,MAAMC,QAAQyP,EAAQ+7B,MAAM,EAE9B,OADI2G,EAAQpF,WAAWt9B,EAAQ+7B,OAAQuE,gBAAcyD,YAAY,EAC1DlH,QAAQjpC,EAAM8uC,EAAM,GAAIA,EAAM,EAAE,EAClC,GAA8B,YAA1B,OAAO1iC,EAAQ+7B,OACxB,OAAO0G,cAAcziC,EAAQ+7B,OAAQnoC,CAAI,EAE3C,MAAM,IAAIgQ,MACR,mHAEN,CACA,EAAKg/B,EAzBCtyC,MAAMC,QAAQqyC,CAAW,EACd,CAAChQ,GAEDkM,EAAQkD,OAAO/H,2BAA2B2I,EAAY5uC,IAAI,EACnDD,UAqBI,CAC5B,EAQAusC,gBAAcpuC,UAAUgyC,cAAgB,SAAStR,GAC/C,OAAI5jC,KAAKgzC,OAAOpK,mBAAmBhF,CAAS,EACnC0Q,yBAAyBt0C,KAAKwlC,OAAQ5B,CAAS,EAC7C5jC,KAAKgzC,OAAOlK,mBAAmBlF,CAAS,EAC1C0Q,yBAAyBt0C,KAAKylC,kBAAmB7B,CAAS,EAD5D,KAAA,CAKT,EA8BA0N,gBAAcpuC,UAAUiyC,eAAiB,WACvC,IAAI7xC,EAAQtD,KAAKgzC,OACblD,EAAU9vC,KACVmuC,EAAM,GA8CV,OA5CA/kC,OAAOoF,KAAKlL,EAAMqiC,iBAAiB,EAAE7hC,QAAQ,SAAS0wC,GACpDlxC,EAAMqiC,kBAAkB6O,GAAe1wC,QAAQ,SAASkB,GACtDmpC,EAAI5tC,KAAKg0C,cAAcjxC,EAAO,QAASkxC,EAAexvC,EAAM8qC,EAAQtK,MAAM,CAAC,CACjF,CAAK,CACL,CAAG,EAEDp8B,OAAOoF,KAAKlL,EAAMsiC,cAAc,EAAE9hC,QAAQ,SAAS0wC,GACjDlxC,EAAMsiC,eAAe4O,GAAe1wC,QAAQ,SAASkB,GACnDmpC,EAAI5tC,KAAKg0C,cAAcjxC,EAAO,UAAWkxC,EAAexvC,EAAM8qC,EAAQtK,MAAM,CAAC,CACnF,CAAK,CACL,CAAG,EAEDp8B,OAAOoF,KAAKlL,EAAMuiC,4BAA4B,EAAE/hC,QAAQ,SAAS0wC,GAC/DlxC,EAAMuiC,6BAA6B2O,GAAe1wC,QAAQ,SAASkB,GACjEmpC,EAAI5tC,KAAKg0C,cAAcjxC,EAAO,cAAekxC,EAAexvC,EAAM8qC,EAAQrK,iBAAiB,CAAC,CAClG,CAAK,CACL,CAAG,EAEDr8B,OAAOoF,KAAKlL,EAAM0iC,6BAA6B,EAAEliC,QAAQ,SAAS0wC,GAChElxC,EAAM0iC,8BAA8BwO,GAAe1wC,QAAQ,SAASkB,GAClEmpC,EAAI5tC,KAAK4mC,0BAA0B7jC,EAAOkxC,EAAexvC,EAAM8qC,EAAQpK,kBAAkB,CAAC,CAChG,CAAK,CACL,CAAG,EAGDt8B,OAAOoF,KAAKlL,EAAMwiC,kBAAkB,EAAEhiC,QAAQ,SAAS0wC,GACrD,IAAI9N,EAAYpjC,EAAMwiC,mBAAmB0O,GACzCprC,OAAOoF,KAAKk4B,CAAS,EAAE5iC,QAAQ,SAAS6iC,GACtCD,EAAUC,GAAU7iC,QAAQ,SAASd,GACnCmrC,EAAI5tC,KAAK,CACPzB,KAAM,UACN01C,cAAeA,EACfxvC,KAAMhC,EACNoyC,aAAcpyC,EACd2jC,SAAUA,CACpB,CAAS,CACT,CAAO,CACP,CAAK,CACL,CAAG,EAEDrjC,EAAMyiC,eAAejiC,QAAQ,SAASkB,GACpCmpC,EAAI5tC,KAAK,CAACzB,KAAM,MAAO01C,cAAe,QAASxvC,KAAMA,CAAI,CAAC,CAC9D,CAAG,EAEMmpC,CACT,EAmEA,IAAAkH,gBAAiB/D,gBCh/BjB,SAASgE,iBACPt1C,KAAKu1C,QAAUv1C,KAAKu1C,SAAW,GAC/Bv1C,KAAKw1C,cAAgBx1C,KAAKw1C,eAAiBvkC,KAAAA,CAC7C,KACAwkC,OAAiBH,eAsQjB,SAASI,WAAWC,GAClB,MAAsB,YAAf,OAAOA,CAChB,CAEA,SAASC,SAASD,GAChB,MAAsB,UAAf,OAAOA,CAChB,CAEA,SAASE,SAASF,GAChB,MAAsB,UAAf,OAAOA,GAA4B,OAARA,CACpC,CAEA,SAASG,YAAYH,GACnB,OAAe,KAAA,IAARA,CACT,CC3SA,SAASI,WAASC,EAAMC,GACtBD,EAAK9yC,UAAYkG,OAAO2G,OAAOkmC,EAAU/yC,UAAW,CAClDzD,YAAa,CACXuD,MAAOgzC,EACPtrC,WAAY,CAAA,EACZnB,SAAU,CAAA,EACVD,aAAc,CAAA,CACf,CACL,CAAG,CACH,CDmBAgsC,eAAapyC,UAAUqyC,QAAUtkC,KAAAA,EACjCqkC,eAAapyC,UAAUsyC,cAAgBvkC,KAAAA,EAIvCqkC,eAAaY,oBAAsB,GAInCZ,eAAapyC,UAAUizC,gBAAkB,SAAS14C,GAChD,GAAI,CAACm4C,SAASn4C,CAAC,GAAKA,EAAI,GAAKiW,MAAMjW,CAAC,EAClC,MAAMuW,UAAU,6BAA6B,EAE/C,OADAhU,KAAKw1C,cAAgB/3C,EACduC,IACT,EAEAs1C,eAAapyC,UAAUkzC,KAAO,SAASt3C,GACrC,IAAQu3C,EAASC,EAAKvlC,EAAMnT,EAAG24C,EAcrBC,EALNC,EAHJ,IAJKz2C,KAAKu1C,UACRv1C,KAAKu1C,QAAU,IAGJ,UAATz2C,KACE,CAACkB,KAAKu1C,QAAQlqB,OACbwqB,SAAS71C,KAAKu1C,QAAQlqB,KAAK,GAAK,CAACrrB,KAAKu1C,QAAQlqB,MAAM5sB,QAEvD,MAAIg4C,EADCj4C,UAAU,cACGoW,MACV6hC,IAGFD,EAAM,IAAI5hC,MAAM,yCAA2C6hC,EAAK,GAAG,GACnEx2C,QAAUw2C,EACRD,GAOZ,GAAIV,YAFJO,EAAUr2C,KAAKu1C,QAAQz2C,EAEA,EACrB,MAAO,CAAA,EAET,GAAI42C,WAAWW,CAAO,EACpB,OAAQ73C,UAAUC,QAEhB,KAAK,EACH43C,EAAQ13C,KAAKqB,IAAI,EACjB,MACF,KAAK,EACHq2C,EAAQ13C,KAAKqB,KAAMxB,UAAU,EAAE,EAC/B,MACF,KAAK,EACH63C,EAAQ13C,KAAKqB,KAAMxB,UAAU,GAAIA,UAAU,EAAE,EAC7C,MAEF,QACEuS,EAAOzP,MAAM4B,UAAUX,MAAM5D,KAAKH,UAAW,CAAC,EAC9C63C,EAAQlrC,MAAMnL,KAAM+Q,CAAI,CAC3B,MACI,GAAI8kC,SAASQ,CAAO,EAIzB,IAHAtlC,EAAOzP,MAAM4B,UAAUX,MAAM5D,KAAKH,UAAW,CAAC,EAE9C83C,GADAC,EAAYF,EAAQ9zC,SACJ9D,OACXb,EAAI,EAAGA,EAAI04C,EAAK14C,CAAC,GACpB24C,EAAU34C,GAAGuN,MAAMnL,KAAM+Q,CAAI,EAGjC,MAAO,CAAA,CACT,EAEAukC,eAAapyC,UAAUwzC,YAAc,SAAS53C,EAAM63C,GAGlD,GAAKjB,WAAWiB,CAAQ,EA4CxB,OAzCK32C,KAAKu1C,UACRv1C,KAAKu1C,QAAU,IAIbv1C,KAAKu1C,QAAQqB,aACf52C,KAAKo2C,KAAK,cAAet3C,EACf42C,WAAWiB,EAASA,QAAQ,EAC5BA,EAASA,SAAWA,CAAQ,EAEnC32C,KAAKu1C,QAAQz2C,GAGT+2C,SAAS71C,KAAKu1C,QAAQz2C,EAAK,EAElCkB,KAAKu1C,QAAQz2C,GAAMyB,KAAKo2C,CAAQ,EAGhC32C,KAAKu1C,QAAQz2C,GAAQ,CAACkB,KAAKu1C,QAAQz2C,GAAO63C,GAN1C32C,KAAKu1C,QAAQz2C,GAAQ63C,EASnBd,SAAS71C,KAAKu1C,QAAQz2C,EAAK,GAAK,CAACkB,KAAKu1C,QAAQz2C,GAAM+3C,SAIpDr1C,EAHGs0C,YAAY91C,KAAKw1C,aAAa,EAG7BF,eAAaY,oBAFbl2C,KAAKw1C,gBAKE,EAAJh0C,GAASxB,KAAKu1C,QAAQz2C,GAAML,OAAS+C,IAC5CxB,KAAKu1C,QAAQz2C,GAAM+3C,OAAS,CAAA,EAC5BniC,QAAQ2W,MAAM,mIAGArrB,KAAKu1C,QAAQz2C,GAAML,MAAM,EACV,YAAzB,OAAOiW,QAAQoiC,QAEjBpiC,QAAQoiC,MAAK,EAKZ92C,KA3CL,MAAMgU,UAAU,6BAA6B,CA4CjD,EAEAshC,eAAapyC,UAAU+H,GAAKqqC,eAAapyC,UAAUwzC,YAEnDpB,eAAapyC,UAAU6zC,KAAO,SAASj4C,EAAM63C,GAC3C,IAGIK,EAHJ,GAAKtB,WAAWiB,CAAQ,EAiBxB,OAdIK,EAAQ,CAAA,EAWZx2C,EAAEm2C,SAAWA,EACb32C,KAAKiL,GAAGnM,EAAM0B,CAAC,EAERR,KAhBL,MAAMgU,UAAU,6BAA6B,EAI/C,SAASxT,IACPR,KAAKi3C,eAAen4C,EAAM0B,CAAC,EAEtBw2C,IACHA,EAAQ,CAAA,EACRL,EAASxrC,MAAMnL,KAAMxB,SAAS,EAEjC,CAMH,EAGA82C,eAAapyC,UAAU+zC,eAAiB,SAASn4C,EAAM63C,GACrD,IAAIO,EAAMtW,EAAUniC,EAAQb,EAE5B,GAAI,CAAC83C,WAAWiB,CAAQ,EACtB,MAAM3iC,UAAU,6BAA6B,EAE/C,GAAKhU,KAAKu1C,SAAYv1C,KAAKu1C,QAAQz2C,GAOnC,GAHAL,GADAy4C,EAAOl3C,KAAKu1C,QAAQz2C,IACNL,OACdmiC,EAAW,CAAC,EAERsW,IAASP,GACRjB,WAAWwB,EAAKP,QAAQ,GAAKO,EAAKP,WAAaA,EAClD,OAAO32C,KAAKu1C,QAAQz2C,GAChBkB,KAAKu1C,QAAQ0B,gBACfj3C,KAAKo2C,KAAK,iBAAkBt3C,EAAM63C,CAAQ,OAEvC,GAAId,SAASqB,CAAI,EAAG,CACzB,IAAKt5C,EAAIa,EAAc,EAANb,CAAC,IAChB,GAAIs5C,EAAKt5C,KAAO+4C,GACXO,EAAKt5C,GAAG+4C,UAAYO,EAAKt5C,GAAG+4C,WAAaA,EAAW,CACvD/V,EAAWhjC,EACX,KACD,CAGH,GAAIgjC,EAAW,EACb,OAAO5gC,KAEW,IAAhBk3C,EAAKz4C,QACPy4C,EAAKz4C,OAAS,EACd,OAAOuB,KAAKu1C,QAAQz2C,IAEpBo4C,EAAKrxC,OAAO+6B,EAAU,CAAC,EAGrB5gC,KAAKu1C,QAAQ0B,gBACfj3C,KAAKo2C,KAAK,iBAAkBt3C,EAAM63C,CAAQ,CAC7C,CAED,OAAO32C,IACT,EAEAs1C,eAAapyC,UAAUi0C,mBAAqB,SAASr4C,GACnD,IAAIE,EAAKu3C,EAET,GAAKv2C,KAAKu1C,QAIV,GAAKv1C,KAAKu1C,QAAQ0B,eASlB,GAAyB,IAArBz4C,UAAUC,OAAd,CACE,IAAKO,KAAOgB,KAAKu1C,QACH,mBAARv2C,GACJgB,KAAKm3C,mBAAmBn4C,CAAG,EAE7BgB,KAAKm3C,mBAAmB,gBAAgB,EACxCn3C,KAAKu1C,QAAU,EAEhB,KARD,CAYA,GAAIG,WAFJa,EAAYv2C,KAAKu1C,QAAQz2C,EAED,EACtBkB,KAAKi3C,eAAen4C,EAAMy3C,CAAS,OAC9B,GAAIA,EAET,KAAOA,EAAU93C,QACfuB,KAAKi3C,eAAen4C,EAAMy3C,EAAUA,EAAU93C,OAAS,EAAE,EAE7D,OAAOuB,KAAKu1C,QAAQz2C,EAXnB,MAhB0B,IAArBN,UAAUC,OACZuB,KAAKu1C,QAAU,GACRv1C,KAAKu1C,QAAQz2C,IACpB,OAAOkB,KAAKu1C,QAAQz2C,GA0BxB,OAAOkB,IACT,EAEAs1C,eAAapyC,UAAUqzC,UAAY,SAASz3C,GAKxCs4C,EAHGp3C,KAAKu1C,SAAYv1C,KAAKu1C,QAAQz2C,GAE1B42C,WAAW11C,KAAKu1C,QAAQz2C,EAAK,EAC9B,CAACkB,KAAKu1C,QAAQz2C,IAEdkB,KAAKu1C,QAAQz2C,GAAMyD,MAAK,EAJxB,GAKR,OAAO60C,CACT,EAEA9B,eAAapyC,UAAUm0C,cAAgB,SAASv4C,GAC9C,GAAIkB,KAAKu1C,QAAS,CACZ+B,EAAat3C,KAAKu1C,QAAQz2C,GAE9B,GAAI42C,WAAW4B,CAAU,EACvB,OAAO,EACJ,GAAIA,EACP,OAAOA,EAAW74C,MACrB,CACD,OAAO,CACT,EAEA62C,eAAa+B,cAAgB,SAASE,EAASz4C,GAC7C,OAAOy4C,EAAQF,cAAcv4C,CAAI,CACnC,EChRA,IAAA04C,WAAiBzB,WCXbT,eAAejnC,OACf0nC,WAAWxS,WAYf,SAASkU,gBAAcC,EAAYrsC,GACjCrL,KAAK23C,KAAOD,EACZ13C,KAAKqL,GAAKA,EACVrL,KAAK43C,YAAc,IACrB,CAhBerU,WAkBNkU,gBAnBUppC,MAmBiB,EAOpCopC,gBAAcv0C,UAAU20C,OAAS,WAC/B73C,KAAKm3C,mBAAkB,EACvBn3C,KAAK23C,KAAKG,oBAAoB93C,IAAI,CACpC,EAEAy3C,gBAAcv0C,UAAU60C,iBAAmB,SAASvQ,GAClD,OAAOxnC,KAAKqL,GAAGm8B,CAAU,CAC3B,EAEA,IAAAwQ,gBAAiBP,gBCnCbvV,QAAQ7zB,QAEZ,SAAS4pC,WAAW/jC,GAClB,OAAO9K,OAAOoF,KAAK0F,CAAG,EACnBtT,KAAK,SAAS1C,EAAGoC,GAChB,OAAOpC,EAAEg6C,cAAc53C,CAAC,CAC9B,CAAK,EACA4pB,OAAO,SAASoY,EAAK6V,GAEpB,OADA7V,EAAI6V,GAAQjkC,EAAIikC,GACT7V,CACR,EAAE,EAAE,CACT,CAEA,IAAI8V,iBAAiB,CAOnBC,YAAa,SAAoBvmC,EAAOxO,GACtC,IAAIg1C,EAAU,GAiFd,OA9EAA,EAAQ/3C,KAAK,CACXu/B,UAAWhuB,EACXiuB,OAAQqY,iBAAeG,qBAAqBj1C,CAAK,CACvD,CAAK,EAGDA,EAAMuoC,4BAA2B,EAAG/nC,QAAQ,SAAS8uC,GACnD0F,EAAQ/3C,KAAK,CACXu/B,UAAWhuB,EACXiuB,OAAQqY,iBAAeI,iCAAiCl1C,EAAOsvC,CAAY,CACnF,CAAO,CACP,CAAK,EAGDtvC,EAAMyoC,6BAA4B,EAAGjoC,QAAQ,SAAS8uC,GACpD,IAQM6F,EARF9O,EAAoBrmC,EAAM2nC,2BAA2B2H,CAAY,EACjE3L,EAAoB3jC,EAAM6jC,0BAA0ByL,CAAY,EAChE7H,EAAYznC,EAAM0nC,+BAA+BrB,CAAiB,EAIvC,EAA3B1C,EAAkBxoC,QAA6D,EAA/CwoC,EAAkB,GAAGrf,MAAMmjB,CAAS,EAAEtsC,SAEpEg6C,EAAaxR,EAAkB,GAAGrf,MAAMmjB,CAAS,EAAExoC,MAAM,EAAG,CAAC,CAAC,EAAE2nB,OAClE,SAA0BxiB,EAAKutB,EAASmb,GACtC,OAAO1oC,EAAIlB,OAAO,CAChBo9B,UAAW+F,EAAkB5kC,WAAWqrC,GACxCptC,MAAiB,IAAVotC,EACHnb,EACA,CAACvtB,EAAIA,EAAIjJ,OAAS,GAAGuE,MAAOiyB,GAASpQ,KAAKkmB,CAAS,CACrE,CAAa,CACF,EACD,EAAE,GAEOjnC,QAAQ,SAASuC,EAAQ+pC,GAC9BrQ,EAASqY,iBAAeI,iCAC1Bl1C,EACA+C,EAAOu9B,UACG,IAAVwM,CACZ,EAGU,SAASsI,EAA2B11C,GAClC,OAAO2mC,EAAkB5kC,WAAWlE,KAAK,SAAS+iC,GAChD,OAAOA,IAAc5gC,EAAM4kB,MAAM,GAAG,EAAE,EACpD,CAAa,CACF,CAED,IAAI+wB,GAAwB5Y,EAAO6Y,cAAgB,IAAI1uB,OAAO,SAASoY,EAAKuW,GAC1E,IACMC,EAaN,OAdIx3C,MAAMC,QAAQs3C,CAAW,GAKL,GAJlBC,EAAWD,EAAYxyC,OAAO,SAAS0yC,GACzC,MAAO,CAACL,EAA2BK,CAAW,CAC9D,CAAe,GAEYt6C,QACX6jC,EAAI/hC,KAAKu4C,CAAQ,EAIM,UAAvB,OAAOD,GAA6BH,EAA2BG,CAAW,GAC5EvW,EAAI/hC,KAAKs4C,CAAW,EAGfvW,CACR,EAAE,EAAE,EAED6N,EAASsI,EAAWrI,EAAQ,GAE9BrQ,EAAO6Y,aADG,EAARxI,EACoBuI,EAAqBnyC,OAAO2pC,EAAOvM,UAAY,IAAMuM,EAAOntC,KAAK,EAEnC,EAA9B21C,EAAqBl6C,OAAak6C,EAAuB1nC,KAAAA,EAGjFqnC,EAAQ/3C,KAAK,CAACu/B,UAAWhuB,EAAOiuB,OAAQA,CAAM,CAAC,CACzD,CAAS,CAET,CAAK,EAEMuY,CACR,EAODC,qBAAsB,SAASj1C,GAC7B,IAAIkiC,EAASliC,EAAMkiC,OAChBh/B,OAAOlD,EAAMmiC,iBAAiB,EAC9Bj/B,OAAO4xC,iBAAeY,qCAAqC11C,CAAK,CAAC,EAGhEs1C,EAAeR,iBAAea,iBAAiB31C,CAAK,EACpDokC,EAAiB0Q,iBAAec,mBAAmB51C,CAAK,EACxDmkC,EAAa2Q,iBAAee,eAAe71C,CAAK,EAChD81C,EAAmB,CACrB5T,OAA8B,CAAC,EAAvBA,EAAOrlC,QAAQ,GAAG,EAAS,CAAC,KAAOqlC,EAC3CiC,WAAYA,CAClB,EAUI,OAR0B,EAAtBmR,EAAan6C,SACf26C,EAAiBR,aAAeA,GAGN,EAAxBlR,EAAejpC,SACjB26C,EAAiB1R,eAAiBA,GAG7BuQ,WAAW/V,QAAM,GAAI5+B,EAAM6oC,eAAgB,EAAEiN,CAAgB,CAAC,CACtE,EASDZ,iCAAkC,SAASl1C,EAAO0jC,EAAOqS,GACvD,IAAIT,EAAeR,iBAAea,iBAAiB31C,EAAO0jC,EAAOqS,CAAqB,EAClF3R,EAAiB0Q,iBAAec,mBAAmB51C,EAAO0jC,CAAK,EAC/DS,EAAa2Q,iBAAee,eAAe71C,CAAK,EAChD81C,EAAmB,CACrBjZ,YAAa,EACb1M,KAAM,EACN6lB,UAAW,CAAA,EACXC,eAAgB,CAAA,CACtB,EAMQ5P,GAJoB,EAApBlC,EAAWhpC,SACb26C,EAAiB3R,WAAaA,GAGRnkC,EAAM2nC,2BAA2BjE,CAAK,GAoB9D,OAjBEoS,EAAiB5T,OADfmE,EACwByO,iBAAeoB,0CACvCl2C,EACAqmC,EACA0P,CACR,EAEgCrS,EAGA,EAAxBU,EAAejpC,SACjB26C,EAAiB1R,eAAiBA,GAGV,EAAtBkR,EAAan6C,SACf26C,EAAiBR,aAAeA,GAG3BX,WAAW/V,QAAM,GAAI5+B,EAAM6oC,eAAgB,EAAEiN,CAAgB,CAAC,CACtE,EAQDF,mBAAoB,SAAS51C,EAAO08B,GAClC,IAII0H,EAJJ,OAAIpkC,EAAMokC,iBAINA,EAAiB,GAErBt+B,OAAOoF,KAAKlL,EAAMwiC,kBAAkB,EAAEhiC,QAAQ,SAAS8/B,GACrD,IAAI8C,EAAYpjC,EAAMwiC,mBAAmBlC,IAAc,GACvDx6B,OAAOoF,KAAKk4B,CAAS,EAAE5iC,QAAQ,SAAS6iC,GACtC,IAAI90B,EAAS60B,EAAUC,IAAa,GAChC3G,IAAc4D,GAChB/xB,EAAO/N,QAAQ,SAASd,GACtB,IACMy2C,EADFn4C,MAAMC,QAAQyB,CAAK,GACjBy2C,EAAKz2C,EAAM0E,IAAI,SAAS7I,GAC1B,OAAO+kC,EAAY+C,EAAW9nC,CAC9C,CAAe,EACD6oC,EAAennC,KAAKk5C,CAAE,GAEtB/R,EAAennC,KAAKqjC,EAAY+C,EAAW3jC,CAAK,CAE9D,CAAW,CAEX,CAAO,CACP,CAAK,EAEM0kC,EACR,EAODyR,eAAgB,SAAS71C,GACvB,OAAIA,EAAMmkC,YAIHnkC,EAAMyiC,eAAelhB,KAAK,GAAG,CACrC,EAUDo0B,iBAAkB,SAAS31C,EAAO0jC,EAAOqS,GACvC,IAAIT,EAAe,GAEfjT,EAAoBriC,EAAMqiC,mBAAqB,GAQ/CC,GAPJx8B,OAAOoF,KAAKm3B,CAAiB,EAAE7hC,QAAQ,SAASk8B,IAC5B2F,EAAkB3F,IAAc,IACtCl8B,QAAQ,SAASwsC,GAC3BsI,EAAar4C,KAAKy/B,EAAY,IAAMsQ,CAAU,CACtD,CAAO,CACP,CAAK,EAEoBhtC,EAAMsiC,gBAAkB,IAQzCC,GAPJz8B,OAAOoF,KAAKo3B,CAAc,EAAE9hC,QAAQ,SAASk8B,IACzB4F,EAAe5F,IAAc,IACnCl8B,QAAQ,SAASwsC,GAC3BsI,EAAar4C,KAAKy/B,EAAY,KAAOsQ,CAAU,CACvD,CAAO,CACP,CAAK,EAEkChtC,EAAMuiC,8BAAgC,IAerEG,GAdJ58B,OAAOoF,KAAKq3B,CAA4B,EAAE/hC,QAAQ,SAASk8B,GACzD,IAII0Z,EAJA9F,EAAc/N,EAA6B7F,IAAc,GACzDA,IAAcgH,GAAU4M,GAAsC,IAAvBA,EAAYn1C,SAGnDi7C,EAAY,GAEhB9F,EAAY9vC,QAAQ,SAASwsC,GAC3BoJ,EAAUn5C,KAAKy/B,EAAY,IAAMsQ,CAAU,CACnD,CAAO,EAEDsI,EAAar4C,KAAKm5C,CAAS,EACjC,CAAK,EAEmCp2C,EAAM0iC,+BAAiC,IA4C3E,OA3CA58B,OAAOoF,KAAKw3B,CAA6B,EAAEliC,QAAQ,SAASk8B,GAC1D,IACIsQ,GADctK,EAA8BhG,IAAc,IACjC,GAE7B,GAAmB/uB,KAAAA,IAAfq/B,EAAJ,CAIA,IAIIqJ,EAJAhQ,EAAoBrmC,EAAM2nC,2BAA2BjL,CAAS,EAC9D+K,EAAYznC,EAAM0nC,+BAA+BrB,CAAiB,EAClEzC,EAAW5jC,EAAM0pC,yBAAyBrD,CAAiB,EAK/D,GAAI3C,IAAUhH,EAAd,CAGE,GAAsC,CAAC,IAAnCsQ,EAAWnwC,QAAQ4qC,CAAS,GAAa,CAAC7D,GAAsC,CAAA,IAA1BmS,GACvDnS,GAAYA,EAAStf,MAAMmjB,CAAS,EAAEtsC,SAAW6xC,EAAW1oB,MAAMmjB,CAAS,EAAEtsC,OAC9E,OAQA6xC,EALGpJ,GAIHyS,EAAkBzS,EAAStf,MAAMmjB,CAAS,EAAEtsC,OAAS,EACxCyoC,IAJbyS,EAAkBrJ,EAAW1oB,MAAMmjB,CAAS,EAAEtsC,OAAS,EAC1C6xC,EAAW/tC,MAAM,EAAG+tC,EAAWpF,YAAYH,CAAS,CAAC,EAWrE,MAHC4O,EAAkBrJ,EAAW1oB,MAAMmjB,CAAS,EAAEtsC,OAAS,GAEvDm7C,EAAoBjQ,EAAkB5kC,WAAW40C,KAIjDf,EAAar4C,KAAK,CAACq5C,EAAoB,IAAMtJ,EAAW,CAjCzD,CAmCP,CAAK,EAEMsI,CACR,EAEDI,qCAAsC,SAAS11C,GAG7C,OAAOA,EAAMoiC,mBAAmBxb,OAE9B,SAA+C2vB,EAAelQ,GAC5D,IAUImQ,EAVAC,EAAyBz2C,EAAM6jC,0BAA0BwC,EAAkB3kC,IAAI,EAAE,GAGrF,OAAK+0C,GAKDhP,EAAYznC,EAAM0nC,+BAA+BrB,CAAiB,EAClEyG,EAAQ2J,EAAuBnyB,MAAMmjB,CAAS,EAAEtsC,OAChDq7C,EAAgBnQ,EAAkB5kC,WAAWxC,MAAM,EAAG6tC,EAAQ,CAAC,EAE5DyJ,EAAcrzC,OAAOszC,CAAa,IARvCD,EAAct5C,KAAKopC,EAAkB5kC,WAAW,EAAE,EAC3C80C,EAQV,EAlBO,EAkBF,CACT,EAEDL,0CAA2C,SAASl2C,EAAOqmC,EAAmBqQ,GAC5E,IAeIC,EAfAlP,EAAYznC,EAAM0nC,+BAA+BrB,CAAiB,EACtE,MAAkB,CAAA,IAAdqQ,GAEErH,EAAiB,GADjBzL,EAAW5jC,EAAM0pC,yBAAyBrD,CAAiB,KAI7DgJ,EAAiBzL,EAAStf,MAAMmjB,CAAS,EAAEtsC,QAEtC,CAACkrC,EAAkB5kC,WAAW4tC,MAOnCsH,GAJyB32C,EAAM6jC,0BAA0BwC,EAAkB3kC,IAAI,EAAE,IAAM,IAIlD4iB,MAAMmjB,CAAS,EAAEtsC,OAAS,EAC5DkrC,EAAkB5kC,WAAWxC,MAAM,EAAiB,EAAd03C,CAAe,EAC7D,EAEDC,uBAAwB,SAASla,EAAWE,EAAOia,EAAc72C,GAC3D82C,EAA+B92C,EAAMwlC,mBAAmB9I,CAAS,EACnE18B,EAAM8jC,iBAAiBpH,CAAS,EAChC18B,EACE+2C,EAAiC,CACnCpa,WAAYC,EACZF,UAAWA,CACjB,EAII,MAH4B,UAAxB,OAAOma,IACTE,EAA+BF,aAAeA,GAEzClC,WAAW/V,QAChB,GACAkW,iBAAeG,qBAAqB6B,CAA4B,EAChEC,CACN,CAAK,CACF,CACH,EAEAC,iBAAiBlC,iBC1XjBtrC,UAAiB,SCAbs4B,mBAAmB/2B,mBACnBijC,gBAAgB/N,gBAChBkU,cHiCaA,gBGhCbW,eFuXaA,iBErXb9C,aAAe3E,OACfoF,SAAWnR,WACXzB,cAAgB0B,gBAChB3B,KAAO4B,OACP5C,QAAQ0O,QAER9jC,UAAUytC,UACV3L,iBAAmB4L,mBAAwC5L,iBAyG/D,SAAS6L,sBAAoBC,EAAQ5oC,EAAOd,GACJ,YAAlC,OAAO0pC,EAAOjc,iBAChBic,EAAOjc,gBAAgB,cAAgB3xB,UAAU,GAAG,EAGtD9M,KAAK26C,UAAUD,CAAM,EACjBzF,EAAOjkC,GAAW,GACtBikC,EAAKnjC,MAAQA,EACb9R,KAAKsD,MAAQ8hC,mBAAiB0B,KAAKmO,CAAI,EACvCj1C,KAAK43C,YAAc,KACnB53C,KAAK46C,SAAW,EAChB56C,KAAK66C,qBAAuB,CAAC,EAC7B76C,KAAK86C,eAAiB,GACtB96C,KAAK+6C,kBAAoB,CAC3B,CA0vBA,SAASC,eAAevnB,GACtB,GAAIA,EAAO,EAAG,MAAM,IAAI7e,MAAM,yBAAyB,EAOvD,OALA5U,KAAKi7C,QAAQ,CACX33C,MAAOtD,KAAKsD,MAAM4kC,QAAQzU,CAAI,EAC9BynB,YAAa,CAAA,CACjB,CAAG,EAEMl7C,IACT,CA4MA,SAASm7C,iBACP,OAAOn7C,KAAKsD,MAAMmwB,IACpB,CA/8BAsiB,SAAS0E,sBAAqBnF,YAAY,EAa1CmF,sBAAoBv3C,UAAUmyB,OAAS,WAErC,OADAr1B,KAAKo7C,QAAQ,CAACC,uBAAwB,CAAA,CAAK,CAAC,EACrCr7C,IACT,EAEAy6C,sBAAoBv3C,UAAUo4C,6BAA+B,WAE3D,OADAt7C,KAAKo7C,QAAQ,CAACC,uBAAwB,CAAA,CAAI,CAAC,EACpCr7C,IACT,EAOAy6C,sBAAoBv3C,UAAUq4C,SAAW,WACvC,IAAIj4C,EAAQtD,KAAKsD,MACjB,OAAO80C,eAAeG,qBAAqBj1C,CAAK,CAClD,EAsCAm3C,sBAAoBv3C,UAAUs4C,WAAa,SAASxqC,EAASyqC,GAC3D,IAAIC,EAAa1qC,EAAuBhR,KAAKsD,MAAMukC,mBAAmB72B,CAAO,EAAlDhR,KAAKsD,MAC5Bg1C,EAAUF,eAAeC,YAAYqD,EAAU5pC,MAAO4pC,CAAS,EAC/DnW,EAAOvlC,KAQX,GANAA,KAAK+6C,iBAAiB,GAEtB/6C,KAAKo2C,KAAK,aAAc,CACtB9yC,MAAOo4C,CACX,CAAG,EAEGD,CAAAA,EAuBJ,OAAOz7C,KAAK06C,OAAOrlB,OAAOijB,CAAO,EAAExwC,KAAK,SAASiqB,GAG/C,OAFAwT,EAAKwV,iBAAiB,GACS,IAA3BxV,EAAKwV,mBAAyBxV,EAAK6Q,KAAK,kBAAkB,EACvD,CACLrkB,QAAS,IAAIuf,gBAAcoK,EAAW3pB,EAAQ+d,OAAO,EACrDxsC,MAAOo4C,EACPC,kBAAmB5pB,CACzB,CACG,EAAE,SAASh0B,GAGV,MAFAwnC,EAAKwV,iBAAiB,GACS,IAA3BxV,EAAKwV,mBAAyBxV,EAAK6Q,KAAK,kBAAkB,EACxDr4C,CACV,CAAG,EAlCCiC,KAAK06C,OACFrlB,OAAOijB,CAAO,EACdxwC,KAAK,SAASiqB,GACbwT,EAAKwV,iBAAiB,GACS,IAA3BxV,EAAKwV,mBACPxV,EAAK6Q,KAAK,kBAAkB,EAG9BqF,EAAG,KAAM,IAAInK,gBAAcoK,EAAW3pB,EAAQ+d,OAAO,EAAG4L,CAAS,CACzE,CAAO,EACA7mB,MAAM,SAAS2hB,GACdjR,EAAKwV,iBAAiB,GACS,IAA3BxV,EAAKwV,mBACPxV,EAAK6Q,KAAK,kBAAkB,EAG9BqF,EAAGjF,EAAK,KAAMkF,CAAS,CAC/B,CAAO,CAkBP,EAYAjB,sBAAoBv3C,UAAUs2B,YAAc,SAASxoB,GACnD,IAAI1N,EAAQtD,KAAKsD,MACbs4C,EAAgB57C,KAAK86C,eAAe,GACxC,GAAI,CAACc,EACH,OAAOnsB,QAAQC,QAAQ,EAAE,EAE3B,IAAImsB,EAAeD,EAAc7D,iBAAiBz0C,CAAK,EACnDsB,EAAOs9B,QACT,CACE4Z,wBAAyB9qC,EAAQ8qC,wBACjCC,OAAQ/qC,EAAQ+qC,MACjB,EACD,CACEhc,OAAQmD,KAAKkV,eAAeG,qBAAqBsD,CAAY,EAAG,CAC9D,sBACA,cACA,+BACA,sBACD,CACF,CACL,EAEMG,EAAe,8GACnB,GAAqC,YAAjC,OAAOh8C,KAAK06C,OAAOthB,UACrB,MAAM,IAAIxkB,MAAMonC,CAAY,EAE9B,IAAIlqC,EAAQ9R,KAAK06C,OAAOthB,UAAUyiB,EAAa/pC,KAAK,EACpD,GAAiC,YAA7B,OAAOA,EAAM0nB,YACf,MAAM,IAAI5kB,MAAMonC,CAAY,EAE9B,OAAOlqC,EAAM0nB,YAAYqiB,EAAa3b,MAAOlvB,EAAQ0vB,eAAgB97B,CAAI,CAC3E,EAoCA61C,sBAAoBv3C,UAAUqyB,qBAAuB,SAASyR,EAAO9G,EAAOia,EAAc8B,GACxF,IAYI34C,EACA44C,EAIA3W,EAjBA4W,EAA4D,YAA5C,OAAOn8C,KAAK06C,OAAOnlB,qBACnC6mB,EAAsD,YAAjC,OAAOp8C,KAAK06C,OAAOthB,UAC5C,GACG+iB,GACAC,GAC6B,YAA9B,OAAOp8C,KAAK06C,OAAOrlB,OAgDrB,OAzCI/xB,EAAQtD,KAAKsD,MAAMukC,mBAAmBoU,GAAa,EAAE,EACrDC,EAAgB54C,EAAMwlC,mBAAmB9B,CAAK,EAC9CqV,EAAejE,eAAe8B,uBAAuBlT,EAAO9G,EAAOia,EAAc72C,CAAK,EAE1FtD,KAAK+6C,iBAAiB,GAClBxV,EAAOvlC,KAITs8C,EADEH,EAC4Bn8C,KAAK06C,OAAOnlB,qBAAqB,CAC7D,CAACuK,UAAWx8B,EAAMwO,MAAOiuB,OAAQsc,CAAY,EAC9C,EAEQD,EACqBp8C,KAAK06C,OAChCthB,UAAU91B,EAAMwO,KAAK,EACrByjB,qBAAqB8mB,CAAY,GAIpC,OAAOA,EAAarc,UACUhgC,KAAK06C,OAChCrlB,OAAO,CACN,CACEv2B,KAAM,QACNkoC,MAAOA,EACPlH,UAAWx8B,EAAMwO,MACjBiuB,OAAQsc,CACT,EACF,EACAv0C,KAAK,SAAyBupB,GAC7B,OAAOA,EAASye,QAAQ,EAChC,CAAO,GAGL9vC,KAAKo2C,KAAK,uBAAwB,CAChC9yC,MAAOA,EACP0jC,MAAOA,EACP9G,MAAOA,CACX,CAAG,EAEMoc,EAA4Bx0C,KAAK,SAAsBiqB,GAa5D,OAZAwT,EAAKwV,iBAAiB,GACS,IAA3BxV,EAAKwV,mBAAyBxV,EAAK6Q,KAAK,kBAAkB,GAE9DrkB,EAAUzwB,MAAMC,QAAQwwB,CAAO,EAAIA,EAAQ,GAAKA,GAExCwqB,UAAUz4C,QAAQ,SAAShG,GACjCA,EAAEiyC,aAAenB,iBAAiB9wC,EAAEkF,KAAK,EACzClF,EAAEgmC,UAAYoY,EACV54C,EAAMmoC,0BAA0BzE,EAAOlpC,EAAEiyC,YAAY,EACrDzsC,EAAMioC,eAAevE,EAAOlpC,EAAEiyC,YAAY,CACpD,CAAK,EAEMhe,CACR,EAAE,SAASh0B,GAGV,MAFAwnC,EAAKwV,iBAAiB,GACS,IAA3BxV,EAAKwV,mBAAyBxV,EAAK6Q,KAAK,kBAAkB,EACxDr4C,CACV,CAAG,EAhEC,MAAM,IAAI6W,MACR,uKACN,CA+DA,EAWA6lC,sBAAoBv3C,UAAU8kC,SAAW,SAASviC,GAMhD,OALAzF,KAAKi7C,QAAQ,CACX33C,MAAOtD,KAAKsD,MAAMupC,UAAS,EAAG7E,SAASviC,CAAC,EACxCy1C,YAAa,CAAA,CACjB,CAAG,EAEMl7C,IACT,EAyBAy6C,sBAAoBv3C,UAAUkkC,iBAAmB,SAASpiC,GAMxD,OALAhF,KAAKi7C,QAAQ,CACX33C,MAAOtD,KAAKsD,MAAMupC,UAAS,EAAGzF,iBAAiBpiC,CAAI,EACnDk2C,YAAa,CAAA,CACjB,CAAG,EAEMl7C,IACT,EAUAy6C,sBAAoBv3C,UAAU4kC,UAAY,WAMxC,OALA9nC,KAAKi7C,QAAQ,CACX33C,MAAOtD,KAAKsD,MAAMupC,UAAS,EAAG/E,UAAW,EACzCoT,YAAa,CAAA,CACjB,CAAG,EAEMl7C,IACT,EAaAy6C,sBAAoBv3C,UAAU6mC,8BAAgC,SAAS/C,EAAOhkC,GAM5E,OALAhD,KAAKi7C,QAAQ,CACX33C,MAAOtD,KAAKsD,MAAMupC,UAAW,EAAC9C,8BAA8B/C,EAAOhkC,CAAK,EACxEk4C,YAAa,CAAA,CACjB,CAAG,EAEMl7C,IACT,EAKAy6C,sBAAoBv3C,UAAUs5C,qBAAuB,WACnD,OAAOx8C,KAAK+pC,8BAA8B5+B,MAAMnL,KAAMxB,SAAS,CACjE,EAeAi8C,sBAAoBv3C,UAAUioC,+BAAiC,SAASnE,EAAOhkC,GAM7E,OALAhD,KAAKi7C,QAAQ,CACX33C,MAAOtD,KAAKsD,MAAMupC,UAAW,EAAC1B,+BAA+BnE,EAAOhkC,CAAK,EACzEk4C,YAAa,CAAA,CACjB,CAAG,EAEMl7C,IACT,EAcAy6C,sBAAoBv3C,UAAUulC,qBAAuB,SAAS7E,EAAW+C,EAAU3jC,GAMjF,OALAhD,KAAKi7C,QAAQ,CACX33C,MAAOtD,KAAKsD,MAAMupC,UAAS,EAAGpE,qBAAqB7E,EAAW+C,EAAU3jC,CAAK,EAC7Ek4C,YAAa,CAAA,CACjB,CAAG,EAEMl7C,IACT,EAaAy6C,sBAAoBv3C,UAAU2mC,mBAAqB,SAAS7C,EAAOhkC,GAMjE,OALAhD,KAAKi7C,QAAQ,CACX33C,MAAOtD,KAAKsD,MAAMupC,UAAW,EAAChD,mBAAmB7C,EAAOhkC,CAAK,EAC7Dk4C,YAAa,CAAA,CACjB,CAAG,EAEMl7C,IACT,EAKAy6C,sBAAoBv3C,UAAUu5C,UAAY,WACxC,OAAOz8C,KAAK6pC,mBAAmB1+B,MAAMnL,KAAMxB,SAAS,CACtD,EAcAi8C,sBAAoBv3C,UAAUw5C,kBAAoB,SAAS1V,EAAOhkC,GAMhE,OALAhD,KAAKi7C,QAAQ,CACX33C,MAAOtD,KAAKsD,MAAMupC,UAAW,EAAC/C,qBAAqB9C,EAAOhkC,CAAK,EAC/Dk4C,YAAa,CAAA,CACjB,CAAG,EAEMl7C,IACT,EAKAy6C,sBAAoBv3C,UAAUy5C,WAAa,WACzC,OAAO38C,KAAK08C,kBAAkBvxC,MAAMnL,KAAMxB,SAAS,CACrD,EAYAi8C,sBAAoBv3C,UAAU05C,OAAS,SAAS3S,GAM9C,OALAjqC,KAAKi7C,QAAQ,CACX33C,MAAOtD,KAAKsD,MAAMupC,UAAS,EAAG7C,iBAAiBC,CAAG,EAClDiR,YAAa,CAAA,CACjB,CAAG,EAEMl7C,IACT,EAoBAy6C,sBAAoBv3C,UAAU8lC,wBAA0B,SAASpF,EAAW+C,EAAU3jC,GAMpF,OALAhD,KAAKi7C,QAAQ,CACX33C,MAAOtD,KAAKsD,MAAMupC,UAAS,EAAG7D,wBAAwBpF,EAAW+C,EAAU3jC,CAAK,EAChFk4C,YAAa,CAAA,CACjB,CAAG,EAEMl7C,IACT,EAgBAy6C,sBAAoBv3C,UAAUunC,iCAAmC,SAASzD,EAAOhkC,GAM/E,OALAhD,KAAKi7C,QAAQ,CACX33C,MAAOtD,KAAKsD,MAAMupC,UAAW,EAACpC,iCAAiCzD,EAAOhkC,CAAK,EAC3Ek4C,YAAa,CAAA,CACjB,CAAG,EAEMl7C,IACT,EAKAy6C,sBAAoBv3C,UAAU25C,wBAA0B,WACtD,OAAO78C,KAAKyqC,iCAAiCt/B,MAAMnL,KAAMxB,SAAS,CACpE,EAUAi8C,sBAAoBv3C,UAAUmoC,kCAAoC,SAASrE,GAMzE,OALAhnC,KAAKi7C,QAAQ,CACX33C,MAAOtD,KAAKsD,MAAMupC,UAAS,EAAGxB,kCAAkCrE,CAAK,EACrEkU,YAAa,CAAA,CACjB,CAAG,EAEMl7C,IACT,EAgBAy6C,sBAAoBv3C,UAAUqnC,sBAAwB,SAASvD,EAAOhkC,GAMpE,OALAhD,KAAKi7C,QAAQ,CACX33C,MAAOtD,KAAKsD,MAAMupC,UAAW,EAACtC,sBAAsBvD,EAAOhkC,CAAK,EAChEk4C,YAAa,CAAA,CACjB,CAAG,EAEMl7C,IACT,EAKAy6C,sBAAoBv3C,UAAU45C,aAAe,WAC3C,OAAO98C,KAAKuqC,sBAAsBp/B,MAAMnL,KAAMxB,SAAS,CACzD,EAgBAi8C,sBAAoBv3C,UAAU65C,qBAAuB,SAAS/V,EAAOhkC,GAMnE,OALAhD,KAAKi7C,QAAQ,CACX33C,MAAOtD,KAAKsD,MAAMupC,UAAW,EAACrC,wBAAwBxD,EAAOhkC,CAAK,EAClEk4C,YAAa,CAAA,CACjB,CAAG,EAEMl7C,IACT,EAKAy6C,sBAAoBv3C,UAAU85C,cAAgB,WAC5C,OAAOh9C,KAAK+8C,qBAAqB5xC,MAAMnL,KAAMxB,SAAS,CACxD,EAYAi8C,sBAAoBv3C,UAAU+5C,UAAY,SAAShT,GAMjD,OALAjqC,KAAKi7C,QAAQ,CACX33C,MAAOtD,KAAKsD,MAAMupC,UAAS,EAAGnC,oBAAoBT,CAAG,EACrDiR,YAAa,CAAA,CACjB,CAAG,EAEMl7C,IACT,EAaAy6C,sBAAoBv3C,UAAUg6C,qBAAuB,SAASlW,EAAOhkC,GAMnE,OALAhD,KAAKi7C,QAAQ,CACX33C,MAAOtD,KAAKsD,MAAMupC,UAAW,EAAC/B,6BAA6B9D,EAAOhkC,CAAK,EACvEk4C,YAAa,CAAA,CACjB,CAAG,EAEMl7C,IACT,EAKAy6C,sBAAoBv3C,UAAUi6C,cAAgB,WAC5C,OAAOn9C,KAAKk9C,qBAAqB/xC,MAAMnL,KAAMxB,SAAS,CACxD,EAiBAi8C,sBAAoBv3C,UAAUihC,iBAAmB,SAAS6C,EAAOhkC,GAC/D,OAAOhD,KAAK2qC,sBAAsB3D,EAAOhkC,CAAK,CAChD,EAgBAy3C,sBAAoBv3C,UAAUynC,sBAAwB,SAAS3D,EAAOhkC,GAMpE,OALAhD,KAAKi7C,QAAQ,CACX33C,MAAOtD,KAAKsD,MAAMupC,UAAW,EAAClC,sBAAsB3D,EAAOhkC,CAAK,EAChEk4C,YAAa,CAAA,CACjB,CAAG,EAEMl7C,IACT,EAKAy6C,sBAAoBv3C,UAAUk6C,aAAe,WAC3C,OAAOp9C,KAAK2qC,sBAAsBx/B,MAAMnL,KAAMxB,SAAS,CACzD,EAYAi8C,sBAAoBv3C,UAAUm6C,UAAY,SAASpT,GAMjD,OALAjqC,KAAKi7C,QAAQ,CACX33C,MAAOtD,KAAKsD,MAAMupC,UAAS,EAAGvB,oBAAoBrB,CAAG,EACrDiR,YAAa,CAAA,CACjB,CAAG,EAEMl7C,IACT,EAWAy6C,sBAAoBv3C,UAAUo6C,SAAW,WACvC,IAAI7pB,EAAOzzB,KAAKsD,MAAMmwB,MAAQ,EAC9B,OAAOzzB,KAAKkoC,QAAQzU,EAAO,CAAC,CAC9B,EAWAgnB,sBAAoBv3C,UAAUq6C,aAAe,WAC3C,IAAI9pB,EAAOzzB,KAAKsD,MAAMmwB,MAAQ,EAC9B,OAAOzzB,KAAKkoC,QAAQzU,EAAO,CAAC,CAC9B,EAwBAgnB,sBAAoBv3C,UAAU83C,eAAiBA,eAU/CP,sBAAoBv3C,UAAUglC,QAAU8S,eAWxCP,sBAAoBv3C,UAAU6kC,SAAW,SAAS/iC,GAMhD,OALAhF,KAAKi7C,QAAQ,CACX33C,MAAOtD,KAAKsD,MAAMupC,UAAS,EAAG9E,SAAS/iC,CAAI,EAC3Ck2C,YAAa,CAAA,CACjB,CAAG,EAEMl7C,IACT,EAmBAy6C,sBAAoBv3C,UAAUmpC,kBAAoB,SAASC,EAAWtpC,GAMpE,OALAhD,KAAKi7C,QAAQ,CACX33C,MAAOtD,KAAKsD,MAAMupC,UAAW,EAACR,kBAAkBC,EAAWtpC,CAAK,EAChEk4C,YAAa,CAAA,CACjB,CAAG,EAEMl7C,IACT,EASAy6C,sBAAoBv3C,UAAU6C,SAAW,SAASy3C,GAMhD,OALAx9C,KAAKi7C,QAAQ,CACX33C,MAAO8hC,mBAAiB0B,KAAK0W,CAAQ,EACrCtC,YAAa,CAAA,CACjB,CAAG,EAEMl7C,IACT,EAmBAy6C,sBAAoBv3C,UAAUu6C,0CAA4C,SAASD,GAEjF,OADAx9C,KAAKsD,MAAQ,IAAI8hC,mBAAiBoY,CAAQ,EACnCx9C,IACT,EAyBAy6C,sBAAoBv3C,UAAUw6C,eAAiB,SAAS9Z,GACtD,MAAIT,CAAAA,CAAAA,cAAcnjC,KAAKsD,MAAM6lC,sBAAsBvF,CAAS,CAAC,IAElD5jC,KAAKsD,MAAMslC,mBAAmBhF,CAAS,EACzC5jC,KAAKsD,MAAMioC,eAAe3H,CAAS,EACjC5jC,KAAKsD,MAAMwlC,mBAAmBlF,CAAS,EACzC5jC,KAAKsD,MAAMmoC,0BAA0B7H,CAAS,EAC5C5jC,CAAAA,CAAAA,KAAKsD,MAAMsmC,oBAAoBhG,CAAS,GAC1C5jC,KAAKsD,MAAM8nC,2BAA2BxH,CAAS,EAS1D,EAqBA6W,sBAAoBv3C,UAAUgwC,WAAa,SAASlM,EAAOhkC,GACzD,OAAOhD,KAAKsD,MAAMkoC,iBAAiBxE,EAAOhkC,CAAK,CACjD,EAKAy3C,sBAAoBv3C,UAAUy6C,qBAAuB,SAAS3W,EAAOhkC,GACnE,OAAOhD,KAAKsD,MAAMmoC,0BAA0BzE,EAAOhkC,CAAK,CAC1D,EAOAy3C,sBAAoBv3C,UAAU06C,OAAS,SAAS3T,GAC9C,OAAOjqC,KAAKsD,MAAM4mC,aAAaD,CAAG,CACpC,EAKAwQ,sBAAoBv3C,UAAUgnC,aAAe,WAC3C,OAAOlqC,KAAK69C,kBAAkB1yC,MAAMnL,KAAMxB,SAAS,CACrD,EAUAi8C,sBAAoBv3C,UAAU46C,SAAW,WACvC,OAAO99C,KAAKsD,MAAMwO,KACpB,EAWA2oC,sBAAoBv3C,UAAUi4C,eAAiBA,eAM/CV,sBAAoBv3C,UAAU66C,QAAU5C,eAOxCV,sBAAoBv3C,UAAU86C,QAAU,WACtC,OAAOh+C,KAAKsD,MAAMyiC,cACpB,EA8CA0U,sBAAoBv3C,UAAUiyC,eAAiB,SAASnV,GACtD,IAAI0L,EAAc,GA+Bd5F,GA7BA9lC,KAAKsD,MAAMslC,mBAAmB5I,CAAS,GACnBhgC,KAAKsD,MAAMqlC,0BAA0B3I,CAAS,EAEpDl8B,QAAQ,SAASvF,GAC/BmtC,EAAYnrC,KAAK,CACfyC,MAAOzE,EACPO,KAAM,aACd,CAAO,CACP,CAAK,EAEwBkB,KAAKsD,MAAMylC,sBAAsB/I,CAAS,EAEhDl8B,QAAQ,SAASvF,GAClCmtC,EAAYnrC,KAAK,CACfyC,MAAOzE,EACPO,KAAM,SACd,CAAO,CACP,CAAK,GACQkB,KAAKsD,MAAMwlC,mBAAmB9I,CAAS,GAC1BhgC,KAAKsD,MAAMulC,0BAA0B7I,CAAS,EAEpDl8B,QAAQ,SAASvF,GAC/BmtC,EAAYnrC,KAAK,CACfyC,MAAOzE,EACPO,KAAM,aACd,CAAO,CACP,CAAK,EAGsBkB,KAAKsD,MAAM6lC,sBAAsBnJ,CAAS,GAYnE,OAVA52B,OAAOoF,KAAKs3B,CAAkB,EAAEhiC,QAAQ,SAAS6iC,GAC/C,IAAI3jC,EAAQ8iC,EAAmBa,GAE/B+E,EAAYnrC,KAAK,CACfyC,MAAOA,EACP2jC,SAAUA,EACV7nC,KAAM,SACZ,CAAK,CACL,CAAG,EAEM4sC,CACT,EAQA+O,sBAAoBv3C,UAAUkmC,qBAAuB,SAASxF,EAAW+C,GACvE,OAAO3mC,KAAKsD,MAAM8lC,qBAAqBxF,EAAW+C,CAAQ,CAC5D,EAOA8T,sBAAoBv3C,UAAUkqC,+BAAiC,SAASpN,GACtE,OAAOhgC,KAAKsD,MAAM8pC,+BAA+BpN,CAAS,CAC5D,EAYAya,sBAAoBv3C,UAAUk4C,QAAU,SAASpqC,GAC/C,IAAI1N,EAAQtD,KAAKsD,MACb26C,EAAS,GACTC,EAAc,GAiBdC,GAfCntC,EAAQqqC,yBACX6C,EAAc9F,eAAeC,YAAY/0C,EAAMwO,MAAOxO,CAAK,EAE3D26C,EAAO19C,KAAK,CACV+C,MAAOA,EACP86C,aAAcF,EAAYz/C,OAC1B4/C,OAAQr+C,IACd,CAAK,EAEDA,KAAKo2C,KAAK,SAAU,CAClB9yC,MAAOA,EACPwsC,QAAS9vC,KAAK43C,WACpB,CAAK,GAGkB53C,KAAK86C,eAAepzC,IAAI,SAASk0C,GACpD,IAAIC,EAAeD,EAAc7D,iBAAiBz0C,CAAK,EACnDg7C,EAAsBlG,eAAeC,YAAYwD,EAAa/pC,MAAO+pC,CAAY,EAarF,OAXAoC,EAAO19C,KAAK,CACV+C,MAAOu4C,EACPuC,aAAcE,EAAoB7/C,OAClC4/C,OAAQzC,CACd,CAAK,EAEDA,EAAcxF,KAAK,SAAU,CAC3B9yC,MAAOu4C,EACP/L,QAAS8L,EAAchE,WAC7B,CAAK,EAEM0G,CACX,CAAG,GAEGhG,EAAUh3C,MAAM4B,UAAUsD,OAAO2E,MAAM+yC,EAAaC,CAAc,EAClEI,EAAUv+C,KAAK46C,QAAQ,GAE3B56C,KAAK+6C,iBAAiB,GAEtB,IACE/6C,KAAK06C,OAAOrlB,OAAOijB,CAAO,EACvBxwC,KAAK9H,KAAKw+C,yBAAyBxzC,KAAKhL,KAAMi+C,EAAQM,CAAO,CAAC,EAC9D1pB,MAAM70B,KAAKy+C,sBAAsBzzC,KAAKhL,KAAMu+C,CAAO,CAAC,CAMxD,CALC,MAAOlzB,GAEPrrB,KAAKo2C,KAAK,QAAS,CACjB/qB,MAAOA,CACb,CAAK,CACF,CACH,EAaAovB,sBAAoBv3C,UAAUs7C,yBAA2B,SAASP,EAAQM,EAASxsB,GAGjF,IAUI+d,EAVAyO,EAAUv+C,KAAK66C,uBAKnB76C,KAAK+6C,mBAAsBwD,EAAUv+C,KAAK66C,qBAC1C76C,KAAK66C,qBAAuB0D,EAEG,IAA3Bv+C,KAAK+6C,mBAAyB/6C,KAAKo2C,KAAK,kBAAkB,EAE1DtG,EAAU/d,EAAQ+d,QAAQvtC,MAAK,EAEnC07C,EAAOn6C,QAAQ,SAAS7F,GACtB,IAAIqF,EAAQrF,EAAEqF,MACV86C,EAAengD,EAAEmgD,aACjBC,EAASpgD,EAAEogD,OACXK,EAAkB5O,EAAQjqC,OAAO,EAAGu4C,CAAY,EAEhDO,EAAoBN,EAAOzG,YAAc,IAAItG,gBAAchuC,EAAOo7C,CAAe,EAErFL,EAAOjI,KAAK,SAAU,CACpBtG,QAAS6O,EACTr7C,MAAOA,CACb,CAAK,CACL,CAAG,EACH,EAEAm3C,sBAAoBv3C,UAAUu7C,sBAAwB,SAASF,EAASlzB,GAClEkzB,EAAUv+C,KAAK66C,uBAKnB76C,KAAK+6C,mBAAqBwD,EAAUv+C,KAAK66C,qBACzC76C,KAAK66C,qBAAuB0D,EAE5Bv+C,KAAKo2C,KAAK,QAAS,CACjB/qB,MAAOA,CACX,CAAG,EAE8B,IAA3BrrB,KAAK+6C,mBAAyB/6C,KAAKo2C,KAAK,kBAAkB,EAChE,EAEAqE,sBAAoBv3C,UAAU07C,mBAAqB,SAAS1e,EAAO0Y,EAAclR,EAAgBD,GAC/F,OAAOvH,GACmB,IAAxB0Y,EAAan6C,QACa,IAA1BipC,EAAejpC,QACO,IAAtBgpC,EAAWhpC,MACf,EAQAg8C,sBAAoBv3C,UAAU27C,2BAA6B,SAAS7X,GAClE,OAAOhnC,KAAKsD,MAAMw7C,uBAAuB9X,IACW,EAAlDhnC,KAAKsD,MAAMw7C,uBAAuB9X,GAAOvoC,MAC7C,EAEAg8C,sBAAoBv3C,UAAU+3C,QAAU,SAASn4C,GAC/C,IAAIQ,EAAQR,EAAMQ,MACd43C,EAAcp4C,EAAMo4C,YAEpB53C,IAAUtD,KAAKsD,QACjBtD,KAAKsD,MAAQA,EAEbtD,KAAKo2C,KAAK,SAAU,CAClB9yC,MAAOtD,KAAKsD,MACZwsC,QAAS9vC,KAAK43C,YACdsD,YAAaA,CACnB,CAAK,EAEL,EAMAT,sBAAoBv3C,UAAUw7B,WAAa,WAEzC,OADA1+B,KAAK06C,OAAOhc,YAAc1+B,KAAK06C,OAAOhc,WAAU,EACzC1+B,IACT,EAQAy6C,sBAAoBv3C,UAAUy3C,UAAY,SAASoE,GAQjD,OAPI/+C,KAAK06C,SAAWqE,IAEqB,YAArC,OAAOA,EAAUtgB,iBACnBsgB,EAAUtgB,gBAAgB,cAAgB3xB,UAAU,GAAG,EAEzD9M,KAAK06C,OAASqE,GAEP/+C,IACT,EAMAy6C,sBAAoBv3C,UAAU87C,UAAY,WACxC,OAAOh/C,KAAK06C,MACd,EAqBAD,sBAAoBv3C,UAAU+7C,OAAS,SAAS5zC,GAC1CuwC,EAAgB,IAAInE,cAAcz3C,KAAMqL,CAAE,EAE9C,OADArL,KAAK86C,eAAev6C,KAAKq7C,CAAa,EAC/BA,CACT,EASAnB,sBAAoBv3C,UAAU40C,oBAAsB,SAAS8D,GACvDsD,EAAMl/C,KAAK86C,eAAe36C,QAAQy7C,CAAa,EACnD,GAAY,CAAC,IAATsD,EAAY,MAAM,IAAItqC,MAAM,iCAAiC,EACjE5U,KAAK86C,eAAej1C,OAAOq5C,EAAK,CAAC,CACnC,EAMAzE,sBAAoBv3C,UAAUi8C,mBAAqB,WACjD,OAAgC,EAAzBn/C,KAAK+6C,iBACd,EAkBA,IAAAqE,qBAAiB3E,sBCr9CbA,oBDq9CaA,sBCn9CbrV,iBAAmB7B,mBACnB+N,cAAgB9N,gBAiCpB,SAAS6b,oBAAoB3E,EAAQ5oC,EAAOmjC,GAC1C,OAAO,IAAIwF,oBAAoBC,EAAQ5oC,EAAOmjC,CAAI,CACpD,CAOAoK,oBAAoBvyC,QAAU63B,UAO9B0a,oBAAoB5E,oBAAsBA,oBAO1C4E,oBAAoBja,iBAAmBA,iBAOvCia,oBAAoB/N,cAAgBA,cAEpC,IAAAgO,sBAAiBD,oBCtEV,SAASE,QCAT,SAASC,cAAczsC,GAC5B,OAAO3J,OAAOlG,UAAUqR,SAAS5V,KAAKoU,CAAM,EAAExQ,MAAM,EAAG,CAAC,CAAC,CAC3D,CCDO,SAASk9C,eAAeC,EAAWC,GACxC,GAAkB1uC,KAAAA,IAAdyuC,GAAgD,YAArB,OAAOA,EACpC,MAAM,IAAI9qC,MAAM,mDAAmDpO,OAAOg5C,cAAcE,CAAS,EAAG,QAAQ,EAAEl5C,OAAOm5C,CAAK,CAAC,CAE/H,CCAA,IAAIC,aAAe,CACjBC,IAAK,QACLC,IAAK,OACLC,IAAK,OACLC,IAAK,SACLC,IAAK,OACP,EAEIC,mBAAqB,WACrBC,sBAAwBl4B,OAAOi4B,mBAAmBv0B,MAAM,EAMrD,SAASy0B,SAAOp9C,GACrB,OAAOA,GAASm9C,sBAAsBj+C,KAAKc,CAAK,EAAIA,EAAMX,QAAQ69C,mBAAoB,SAAUG,GAC9F,OAAOT,aAAaS,EACrB,CAAA,EAAIr9C,CACP,CAOA,IAAIs9C,eAAiB,CACnBC,QAAS,IACTC,OAAQ,IACRC,OAAQ,IACRC,SAAU,IACVC,QAAS,GACX,EAEIC,iBAAmB,0BACnBC,oBAAsB54B,OAAO24B,iBAAiBj1B,MAAM,EAMjD,SAASm1B,WAAS99C,GACvB,OAAOA,GAAS69C,oBAAoB3+C,KAAKc,CAAK,EAAIA,EAAMX,QAAQu+C,iBAAkB,SAAUP,GAC1F,OAAOC,eAAeD,EACvB,CAAA,EAAIr9C,CACP,CClDA,SAASiR,UAAQC,GAAmV,OAAtOD,UAArD,YAAlB,OAAO1M,QAAoD,UAA3B,OAAOA,OAAO4M,SAAmC,SAAiBD,GAAO,OAAO,OAAOA,CAAI,EAAuB,SAAiBA,GAAO,OAAOA,GAAyB,YAAlB,OAAO3M,QAAyB2M,EAAIzU,cAAgB8H,QAAU2M,IAAQ3M,OAAOrE,UAAY,SAAW,OAAOgR,CAAI,GAAqBA,CAAG,CAAI,CAM1X,SAAS6sC,OAAO/9C,GACd,OAAc,OAAVA,EACeiO,KAAAA,IAAVjO,EAAsB,qBAAuB,gBAG/CoG,OAAOlG,UAAUqR,SAAS5V,KAAKqE,CAAK,CAC7C,CAEA,SAASg+C,aAAah+C,GACpB,MAA0B,WAAnBiR,UAAQjR,CAAK,GAA4B,OAAVA,CACxC,CASO,SAASi+C,cAAcj+C,GAC5B,GAAI,CAACg+C,aAAah+C,CAAK,GAAuB,oBAAlB+9C,OAAO/9C,CAAK,EACtC,MAAO,CAAA,EAGT,GAAqC,OAAjCoG,OAAO83C,eAAel+C,CAAK,EAC7B,MAAO,CAAA,EAKT,IAFA,IAAIm+C,EAAQn+C,EAE4B,OAAjCoG,OAAO83C,eAAeC,CAAK,GAChCA,EAAQ/3C,OAAO83C,eAAeC,CAAK,EAGrC,OAAO/3C,OAAO83C,eAAel+C,CAAK,IAAMm+C,CAC1C,CCzCA,SAASC,aAA2Q,OAA9PA,WAAWh4C,OAAOkF,QAAU,SAAU6W,GAAU,IAAK,IAAIvnB,EAAI,EAAGA,EAAIY,UAAUC,OAAQb,CAAC,GAAI,CAAE,IAAoCoB,EAAhC2sB,EAASntB,UAAUZ,GAAI,IAASoB,KAAO2sB,EAAcviB,OAAOlG,UAAUqL,eAAe5P,KAAKgtB,EAAQ3sB,CAAG,IAAKmmB,EAAOnmB,GAAO2sB,EAAO3sB,GAAW,CAAC,OAAOmmB,IAA2Bha,MAAMnL,KAAMxB,SAAS,CAAI,CAE7T,SAAS6iD,UAAQtuC,EAAQuuC,GAAkB,IAAwEC,EAApE/yC,EAAOpF,OAAOoF,KAAKuE,CAAM,EAA+P,OAAxP3J,OAAO0lB,wBAA6ByyB,EAAUn4C,OAAO0lB,sBAAsB/b,CAAM,EAAOuuC,IAAgBC,EAAUA,EAAQl7C,OAAO,SAAUm7C,GAAO,OAAOp4C,OAAO2lB,yBAAyBhc,EAAQyuC,CAAG,EAAE92C,UAAW,CAAE,GAAG8D,EAAKjO,KAAK4K,MAAMqD,EAAM+yC,CAAO,GAAY/yC,CAAO,CAErV,SAASizC,gBAAct8B,GAAU,IAAK,IAAIvnB,EAAI,EAAGA,EAAIY,UAAUC,OAAQb,CAAC,GAAI,CAAE,IAAI+tB,EAAyB,MAAhBntB,UAAUZ,GAAaY,UAAUZ,GAAK,GAAQA,EAAI,EAAKyjD,UAAQj4C,OAAOuiB,CAAM,EAAG,CAAA,CAAI,EAAE7nB,QAAQ,SAAU9E,GAAO0iD,kBAAgBv8B,EAAQnmB,EAAK2sB,EAAO3sB,EAAI,CAAI,CAAA,EAAcoK,OAAO4lB,0BAA6B5lB,OAAO6lB,iBAAiB9J,EAAQ/b,OAAO4lB,0BAA0BrD,CAAM,CAAC,EAAY01B,UAAQj4C,OAAOuiB,CAAM,CAAC,EAAE7nB,QAAQ,SAAU9E,GAAOoK,OAAOC,eAAe8b,EAAQnmB,EAAKoK,OAAO2lB,yBAAyBpD,EAAQ3sB,CAAG,CAAC,CAAE,CAAE,CAAM,CAAC,OAAOmmB,CAAS,CAEthB,SAASu8B,kBAAgBxtC,EAAKlV,EAAKgE,GAAiK,OAApJhE,KAAOkV,EAAO9K,OAAOC,eAAe6K,EAAKlV,EAAK,CAAEgE,MAAOA,EAAO0H,WAAY,CAAA,EAAMpB,aAAc,CAAA,EAAMC,SAAU,CAAA,CAAM,CAAA,EAAY2K,EAAIlV,GAAOgE,EAAgBkR,CAAM,CAI1M,IAAIytC,gBAAkB,CAC3BC,gBAAiB,oBACjBC,iBAAkB,oBACpB,EACWC,gBAAkB,CAC3BF,gBAAiB,SACjBC,iBAAkB,SACpB,EAEA,SAASE,qBAAqB/+C,GAC5B,OAAOo9C,SAAOp9C,CAAK,EAAEX,QAAQ,IAAI4lB,OAAO05B,gBAAgBC,gBAAiB,GAAG,EAAGE,gBAAgBF,eAAe,EAAEv/C,QAAQ,IAAI4lB,OAAO05B,gBAAgBE,iBAAkB,GAAG,EAAGC,gBAAgBD,gBAAgB,CAC7M,CAEA,SAASG,gBAAgB5iC,GACvB,OAAI6hC,cAAc7hC,CAAK,GAA4B,UAAvB,OAAOA,EAAMpc,MAChCoG,OAAOoF,KAAK4Q,CAAK,EAAE8K,OAAO,SAAUoY,EAAKtjC,GAC9C,OAAOyiD,gBAAcA,gBAAc,GAAInf,CAAG,EAAG,GAAIof,kBAAgB,GAAI1iD,EAAKgjD,gBAAgB5iC,EAAMpgB,EAAI,CAAC,CAAC,CACvG,EAAE,EAAE,EAGHsC,MAAMC,QAAQ6d,CAAK,EACdA,EAAM1X,IAAIs6C,eAAe,EAG3BP,gBAAcA,gBAAc,GAAIriC,CAAK,EAAG,GAAI,CACjDpc,MAAO++C,qBAAqB3iC,EAAMpc,KAAK,CAC3C,CAAG,CACH,CAEO,SAASi/C,WAAW3uB,GAoBzB,OAnBuBriB,KAAAA,IAAnBqiB,EAAK4uB,aAGP5uB,EAAOA,EAAK5rB,IAAI,SAAUiS,GACpBwoC,EAAMf,WAAS,GAAIznC,CAAI,EAU3B,OARIwoC,EAAI/hB,mBACN+hB,EAAI/hB,iBAAmB4hB,gBAAgBG,EAAI/hB,gBAAgB,GAGzD+hB,EAAIC,iBACND,EAAIC,eAAiBJ,gBAAgBG,EAAIC,cAAc,GAGlDD,CACb,CAAK,GACID,UAAY,CAAA,GAGZ5uB,CACT,CACO,SAAS+uB,aAAa9F,GAC3B,OAAOA,EAAU70C,IAAI,SAAUrJ,GAC7B,OAAOojD,gBAAcA,gBAAc,GAAIpjD,CAAC,EAAG,GAAI,CAC7CikD,YAAaP,qBAAqB1jD,EAAEikD,WAAW,CACrD,CAAK,CACL,CAAG,CACH,CClEO,SAASC,uBAAuBr1B,GACrC,IAAI00B,EAAkBE,gBAAgBF,gBAClCC,EAAmBC,gBAAgBD,iBACvC,OAAO30B,EAAMxlB,IAAI,SAAU4lC,GACzB,OAAOA,EAAKkV,cAAgBZ,EAAkBtU,EAAKtqC,MAAQ6+C,EAAmBvU,EAAKtqC,KACvF,CAAG,EAAE6hB,KAAK,EAAE,CACZ,CCPO,SAAS0mB,eAAe8S,EAAQrX,EAAOhkC,GAC5C,OAAIq7C,EAAO/6C,MAAMsmC,oBAAoB5C,CAAK,EACjCqX,EAAO/6C,MAAM8nC,2BAA2BpE,EAAOhkC,CAAK,EAClDq7C,EAAO/6C,MAAMslC,mBAAmB5B,CAAK,EACvCqX,EAAO/6C,MAAMioC,eAAevE,EAAOhkC,CAAK,EAExCq7C,EAAO/6C,MAAMmoC,0BAA0BzE,EAAOhkC,CAAK,CAE9D,CCRA,SAASiR,UAAQC,GAAmV,OAAtOD,UAArD,YAAlB,OAAO1M,QAAoD,UAA3B,OAAOA,OAAO4M,SAAmC,SAAiBD,GAAO,OAAO,OAAOA,CAAI,EAAuB,SAAiBA,GAAO,OAAOA,GAAyB,YAAlB,OAAO3M,QAAyB2M,EAAIzU,cAAgB8H,QAAU2M,IAAQ3M,OAAOrE,UAAY,SAAW,OAAOgR,CAAI,GAAqBA,CAAG,CAAI,CAGnX,SAASuuC,wBAAwB9oC,GACtC,IAAI+oC,EAAwB/oC,EAAK+oC,sBAC7BrE,EAAS1kC,EAAK0kC,OACdsE,EAAOhpC,EAAKiqB,UACZgf,EAAajpC,EAAKipC,WAmCtB,OAjCwB,WACtB,IAAK,IAAIC,EAAOrkD,UAAUC,OAAQsS,EAAO,IAAIzP,MAAMuhD,CAAI,EAAGC,EAAO,EAAGA,EAAOD,EAAMC,CAAI,GACnF/xC,EAAK+xC,GAAQtkD,UAAUskD,GAGzB,IAAIC,EAAYhyC,EAAK,GACjBu/B,EAAav/B,EAAK,GAClBiyC,EAASjyC,EAAK,GACdkyC,EAAuB,KAAA,IAAXD,EAAoB,iBAAmBA,EACnDpf,EAA4B,UAAhB,OAAO+e,EAAoBA,EAAOA,EAAKrS,CAAU,EAE7C,IAAhBv/B,EAAKtS,QAAqC,WAArBwV,UAAQlD,EAAK,EAAE,EACtC2xC,EAAsBQ,oBAAoBnyC,EAAK,EAAE,EAC1B,UAAdgyC,GAA0C,IAAhBhyC,EAAKtS,QAAgC,IAAhBsS,EAAKtS,QACxD8sC,eAAe8S,EAAQza,EAAW0M,CAAU,GAE/CoS,EAAsBQ,oBAAoB,CACxCC,eAAgB,iBAChBP,WAAYA,EACZG,UAAWA,EACXK,QAAS,CACPH,UAAWA,EACXnxC,MAAOusC,EAAOP,SAAU,EACxBuF,QAAS,CAAC,GAAG78C,OAAOo9B,EAAW,GAAG,EAAEp9B,OAAO8pC,CAAU,EACtD,EACD1M,UAAWA,CACrB,CAAS,CAKT,CAGA,CC3CO,SAAS0f,iBAAiBF,GAC/B,OAAOG,KAAK/yB,mBAAmBb,KAAKC,UAAUwzB,CAAO,CAAC,CAAC,CACzD,CCFA,SAASnvC,UAAQC,GAAmV,OAAtOD,UAArD,YAAlB,OAAO1M,QAAoD,UAA3B,OAAOA,OAAO4M,SAAmC,SAAiBD,GAAO,OAAO,OAAOA,CAAI,EAAuB,SAAiBA,GAAO,OAAOA,GAAyB,YAAlB,OAAO3M,QAAyB2M,EAAIzU,cAAgB8H,QAAU2M,IAAQ3M,OAAOrE,UAAY,SAAW,OAAOgR,CAAI,GAAqBA,CAAG,CAAI,CAI1X,SAASsvC,MAAMC,GAIb,IAHA,IAAIC,EAA+B,EAAnBllD,UAAUC,QAA+BwS,KAAAA,IAAjBzS,UAAU,GAAmBA,UAAU,GAAK,GAChFmlD,EAAS,GAEJ/lD,EAAI,EAAGA,EAAI+V,KAAKC,KAAK6vC,EAAIhlD,OAASilD,CAAS,EAAG9lD,CAAC,GACtD+lD,EAAOpjD,KAAKkjD,EAAIlhD,MAAM3E,EAAI8lD,GAAY9lD,EAAI,GAAK8lD,CAAS,CAAC,EAG3D,OAAOC,CACT,CAEA,IAAIC,cAAgB,SAAuBjqC,GACtC,IAWCopC,EAEAE,EAwBAY,EACAC,EACAC,EAKAC,EA5CAlyC,EAAQ6H,EAAK7H,MACb8wC,EAAajpC,EAAKipC,WAElB7xC,GADa4I,EAAKsqC,WACXtqC,EAAK5I,MACZmzC,EAAkBvqC,EAAKuqC,gBAG3B,OAAoB,IAAhBnzC,EAAKtS,QAAqC,WAArBwV,UAAQlD,EAAK,EAAE,EAC/B,CAACA,EAAK,KAGXgyC,EAAYhyC,EAAK,GACjBuiB,EAAOviB,EAAK,GACZkyC,EAAYlyC,EAAK,GAEhBuiB,CAAAA,GAQD,EAAe,UAAdyvB,GAAuC,eAAdA,GAAgCE,IAUrC,KAFrBkB,EAAY7iD,MAAMC,QAAQ+xB,CAAI,EAAI8wB,sBAAsB9wB,CAAI,EAAI,CAACA,IAEvD70B,OAdH,IAkBPolD,EAAUM,EAAU,GAAGE,UACvBP,EAAaN,MAAMW,CAAS,EAC5BJ,EAAmBD,EAAWp8C,IAAI,SAAU2rB,GAC9C,OAAOA,EAAM3rB,IAAI,SAAUy6C,GACzB,OAAOA,EAAIxiB,QACjB,CAAK,CACL,CAAG,EACGqkB,EAAmBF,EAAWp8C,IAAI,SAAU2rB,GAC9C,OAAOA,EAAM3rB,IAAI,SAAUy6C,GACzB,OAAOA,EAAImC,UACjB,CAAK,CACL,CAAG,EAEiB,SAAdvB,EACEmB,EACK,GAGFJ,EAAWp8C,IAAI,SAAU2rB,EAAOz1B,GACrC,MAAO,CACLulD,eAAgB,kBAChBP,WAAYA,EACZG,UAAWA,EACXK,QAAS,CACPH,UAAWA,GAAa,cACxBnxC,MAAOA,EACPyuB,UAAWwjB,EAAiBnmD,EAC7B,EACD01B,KAAMD,CACd,CACA,CAAK,EACsB,UAAd0vB,EACFe,EAAWp8C,IAAI,SAAU2rB,EAAOz1B,GACrC,MAAO,CACLulD,eAAgB,8BAChBP,WAAYA,EACZG,UAAWA,EACXK,QAAS,CACPH,UAAWA,EACXnxC,MAAOA,EACP+xC,QAASA,EACTtjB,UAAWwjB,EAAiBnmD,GAC5B2mD,UAAWP,EAAiBpmD,EAC7B,EACD01B,KAAMD,CACd,CACA,CAAK,EACsB,eAAd0vB,EACFe,EAAWp8C,IAAI,SAAU2rB,EAAOz1B,GACrC,MAAO,CACLulD,eAAgB,gCAChBP,WAAYA,EACZG,UAAWA,EACXK,QAAS,CACPH,UAAWA,EACXnxC,MAAOA,EACP+xC,QAASA,EACTtjB,UAAWwjB,EAAiBnmD,EAC7B,EACD01B,KAAMD,CACd,CACA,CAAK,EAIM,IAEX,EAEA,SAAS+wB,sBAAsB9wB,GAE7B,OAAOA,EAAK/wB,OACd,CAEO,SAASiiD,uBAAuB5qC,GACrC,IAAI8oC,EAAwB9oC,EAAM8oC,sBAC9B5wC,EAAQ8H,EAAM9H,MACd8wC,EAAahpC,EAAMgpC,WAmBvB,OAjBuB,WACrB,IAAK,IAAIC,EAAOrkD,UAAUC,OAAQsS,EAAO,IAAIzP,MAAMuhD,CAAI,EAAGC,EAAO,EAAGA,EAAOD,EAAMC,CAAI,GACnF/xC,EAAK+xC,GAAQtkD,UAAUskD,GAGVc,cAAc,CAC3BhB,WAAYA,EACZ9wC,MAAOA,EACPmyC,WAAY,YACZlzC,KAAMA,EACNmzC,gBAAkD,YAAjCxB,EAAsB9xB,MAC7C,CAAK,EACQ9sB,QAAQ,SAAUs/C,GACzB,OAAOV,EAAsBQ,oBAAoBE,CAAO,CAC9D,CAAK,CACL,CAGA,CACO,SAASqB,uBAAuB5qC,GACrC,IAAI/H,EAAQ+H,EAAM/H,MACd8wC,EAAa/oC,EAAM+oC,WAiBvB,OAfuB,WACrB,IAAK,IAAI8B,EAAQlmD,UAAUC,OAAQsS,EAAO,IAAIzP,MAAMojD,CAAK,EAAGC,EAAQ,EAAGA,EAAQD,EAAOC,CAAK,GACzF5zC,EAAK4zC,GAASnmD,UAAUmmD,GAG1B,IAAIC,EAAWhB,cAAc,CAC3BhB,WAAYA,EACZ9wC,MAAOA,EACPmyC,WAAY,YACZlzC,KAAMA,EACNmzC,gBAAiB,CAAA,CACvB,CAAK,EACD,OAAOU,EAASnmD,OAAS,uBAAuB+H,OAAO88C,iBAAiBsB,CAAQ,CAAC,EAAI,EACzF,CAGA,CC3KO,SAASC,cAAcC,GAC5B,MAAyB,cAAlBA,EAAOC,MAChB,CCAO,SAASC,oBAAoBC,EAAcC,GAChD,IAAIC,EAAmBF,EAAaC,EAAYE,WAAY,IAAK,GASjEF,EAAYG,UAAW,EAACt/C,SAASm/C,EAAYI,0BAA0BJ,EAAYG,UAAW,EAAC/hD,MAAO,CACpGiiD,QAASJ,CACV,CAAA,CAAC,EACFD,EAAYM,WAAU,EAAGn/C,OAAOw+C,aAAa,EAAE/gD,QAAQ,SAAUghD,GAC/D,OAAOE,oBAAoBC,EAAcH,CAAM,CACnD,CAAG,CACH,CClBA,IAAIW,cAAgBh2B,QAAQC,UACrB,SAASg2B,MAAMC,GAIX,SAALt6C,IACF,IAAK,IAAIw3C,EAAOrkD,UAAUC,OAAQsS,EAAO,IAAIzP,MAAMuhD,CAAI,EAAGC,EAAO,EAAGA,EAAOD,EAAMC,CAAI,GACnF/xC,EAAK+xC,GAAQtkD,UAAUskD,GAGR,OAAb8C,IAIJA,EAAWH,cAAc39C,KAAK,WAC5B89C,EAAW,KAEPC,EACFA,EAAY,CAAA,EAIdF,EAASx6C,MAAM,KAAA,EAAQ4F,CAAI,CACjC,CAAK,EACL,CAtBE,IAAI60C,EAAW,KACXC,EAAY,CAAA,EAuChB,OAhBAx6C,EAAGilB,KAAO,WACR,GAAiB,OAAbs1B,EACF,MAAM,IAAIhxC,MAAM,gEAAgE,EAGlF,OAAOgxC,CACX,EAEEv6C,EAAGy6C,OAAS,WACO,OAAbF,IAIJC,EAAY,CAAA,EAChB,EAESx6C,CACT,CC3CO,SAAS06C,wBAAwBpsC,GACtC,IAAI3U,EAAO2U,EAAK3U,KACZghD,EAAiBrsC,EAAKssC,UAE1B,MAAO,CAAC,qDAAsDjhD,EAAM,OADjC,KAAA,IAAnBghD,GAAoCA,EACoC,aAAe,IAAInhC,KAAK,EAAE,CACpH,CACO,SAASqhC,sCACd,IAAK,IAAIrD,EAAOrkD,UAAUC,OAAQ0nD,EAAU,IAAI7kD,MAAMuhD,CAAI,EAAGC,EAAO,EAAGA,EAAOD,EAAMC,CAAI,GACtFqD,EAAQrD,GAAQtkD,UAAUskD,GAG5B,IAAIsD,EAAQD,EAAQz+C,IAAI,SAAUo9C,GAChC,OAAOiB,wBAAwBjB,CAAM,CACzC,CAAG,EAAEjgC,KAAK,IAAI,EACZ,OAAO,SAAUqM,GACf,MAAO,CAACA,EAAS,sBAAsB1qB,OAAO4/C,CAAK,GAAG//C,OAAOyf,OAAO,EAAEjB,KAAK,MAAM,CACrF,CACA,CCXO,SAAS8d,KAAK0jB,EAAOrzC,GAG1B,IAFA,IAAIhQ,EAEKpF,EAAI,EAAGA,EAAIyoD,EAAM5nD,OAAQb,CAAC,GAGjC,GAAIoV,EAFJhQ,EAAQqjD,EAAMzoD,GAEOA,EAAGyoD,CAAK,EAC3B,OAAOrjD,CAKb,CCZO,SAAS0P,UAAUO,EAAO2vB,GAC/B,GAAKthC,MAAMC,QAAQ0R,CAAK,EAIxB,IAAK,IAAIrV,EAAI,EAAGA,EAAIqV,EAAMxU,OAAQb,CAAC,GACjC,GAAIglC,EAAW3vB,EAAMrV,EAAE,EACrB,OAAOA,EAIX,MAAO,CAAC,CACV,CCjBO,SAAS0oD,oBAAoBC,GAClC,IAAI1E,EAAmBC,gBAAgBD,iBACnCD,EAAkBE,gBAAgBF,gBAClC4E,EAAgBD,EAAiB3+B,MAAMg6B,CAAe,EACtD6E,EAAaD,EAAc3/C,QAC3B6/C,EAAYD,EAAkB,CAAC,CACjCzjD,MAAOyjD,EACPjE,cAAe,CAAA,CACnB,GAH+B,GAkB7B,OAdAgE,EAAc1iD,QAAQ,SAAU8jB,GAC1B++B,EAAiB/+B,EAAMA,MAAMi6B,CAAgB,EACjD6E,EAASnmD,KAAK,CACZyC,MAAO2jD,EAAe,GACtBnE,cAAe,CAAA,CACrB,CAAK,EAEyB,KAAtBmE,EAAe,IACjBD,EAASnmD,KAAK,CACZyC,MAAO2jD,EAAe,GACtBnE,cAAe,CAAA,CACvB,CAAO,CAEP,CAAG,EACMkE,CACT,CCxBA,IAAIE,gBAAkB,IAAI3+B,OAAO,KAAK,EAC/B,SAAS4+B,yBAAyB35B,EAAOtvB,GAC9C,IAEIiC,EAAUqtB,EAAMtvB,GAChBkpD,GAAqB,OAACC,EAAS75B,EAAMtvB,EAAI,IAAoC,KAAA,EAASmpD,EAAOvE,gBAAkB,CAAA,EAC/GwE,GAAyB,OAACC,EAAU/5B,EAAMtvB,EAAI,IAAqC,KAAA,EAASqpD,EAAQzE,gBAAkB,CAAA,EAE1H,OAAKoE,gBAAgB1kD,KAAK4+C,WAASjhD,EAAQmD,KAAK,CAAC,GAAKgkD,IAA0BF,EAIzEjnD,EAAQ2iD,cAHNwE,CAIX,CCdO,SAASE,kBAAkBn0C,EAAQ0e,GAExC,OADYnwB,MAAMC,QAAQkwB,CAAI,EAAIA,EAAOA,EAAK7J,MAAM,GAAG,GAC1CsC,OAAO,SAAUrqB,EAASb,GACrC,OAAOa,GAAWA,EAAQb,EAC3B,EAAE+T,CAAM,CACX,CCLA,SAASsuC,UAAQtuC,EAAQuuC,GAAkB,IAAwEC,EAApE/yC,EAAOpF,OAAOoF,KAAKuE,CAAM,EAA+P,OAAxP3J,OAAO0lB,wBAA6ByyB,EAAUn4C,OAAO0lB,sBAAsB/b,CAAM,EAAOuuC,IAAgBC,EAAUA,EAAQl7C,OAAO,SAAUm7C,GAAO,OAAOp4C,OAAO2lB,yBAAyBhc,EAAQyuC,CAAG,EAAE92C,UAAW,CAAE,GAAG8D,EAAKjO,KAAK4K,MAAMqD,EAAM+yC,CAAO,GAAY/yC,CAAO,CAErV,SAASizC,gBAAct8B,GAAU,IAAK,IAAIvnB,EAAI,EAAGA,EAAIY,UAAUC,OAAQb,CAAC,GAAI,CAAE,IAAI+tB,EAAyB,MAAhBntB,UAAUZ,GAAaY,UAAUZ,GAAK,GAAQA,EAAI,EAAKyjD,UAAQj4C,OAAOuiB,CAAM,EAAG,CAAA,CAAI,EAAE7nB,QAAQ,SAAU9E,GAAO0iD,kBAAgBv8B,EAAQnmB,EAAK2sB,EAAO3sB,EAAI,CAAI,CAAA,EAAcoK,OAAO4lB,0BAA6B5lB,OAAO6lB,iBAAiB9J,EAAQ/b,OAAO4lB,0BAA0BrD,CAAM,CAAC,EAAY01B,UAAQj4C,OAAOuiB,CAAM,CAAC,EAAE7nB,QAAQ,SAAU9E,GAAOoK,OAAOC,eAAe8b,EAAQnmB,EAAKoK,OAAO2lB,yBAAyBpD,EAAQ3sB,CAAG,CAAC,CAAE,CAAE,CAAM,CAAC,OAAOmmB,CAAS,CAEthB,SAASu8B,kBAAgBxtC,EAAKlV,EAAKgE,GAAiK,OAApJhE,KAAOkV,EAAO9K,OAAOC,eAAe6K,EAAKlV,EAAK,CAAEgE,MAAOA,EAAO0H,WAAY,CAAA,EAAMpB,aAAc,CAAA,EAAMC,SAAU,CAAA,CAAM,CAAA,EAAY2K,EAAIlV,GAAOgE,EAAgBkR,CAAM,CAE1M,SAASizC,oBAAoB7zB,EAAMG,EAAM0M,GAC9C,OAAO7M,EAAK5rB,IAAI,SAAUy6C,EAAKpR,GAC7B,OAAO0Q,gBAAcA,gBAAc,GAAIU,CAAG,EAAG,GAAI,CAC/CmC,WAAYnkB,EAAc1M,EAAOsd,EAAM,CAC7C,CAAK,CACL,CAAG,CACH,CCZA,SAASsQ,UAAQtuC,EAAQuuC,GAAkB,IAAwEC,EAApE/yC,EAAOpF,OAAOoF,KAAKuE,CAAM,EAA+P,OAAxP3J,OAAO0lB,wBAA6ByyB,EAAUn4C,OAAO0lB,sBAAsB/b,CAAM,EAAOuuC,IAAgBC,EAAUA,EAAQl7C,OAAO,SAAUm7C,GAAO,OAAOp4C,OAAO2lB,yBAAyBhc,EAAQyuC,CAAG,EAAE92C,UAAW,CAAE,GAAG8D,EAAKjO,KAAK4K,MAAMqD,EAAM+yC,CAAO,GAAY/yC,CAAO,CAErV,SAASizC,gBAAct8B,GAAU,IAAK,IAAIvnB,EAAI,EAAGA,EAAIY,UAAUC,OAAQb,CAAC,GAAI,CAAE,IAAI+tB,EAAyB,MAAhBntB,UAAUZ,GAAaY,UAAUZ,GAAK,GAAQA,EAAI,EAAKyjD,UAAQj4C,OAAOuiB,CAAM,EAAG,CAAA,CAAI,EAAE7nB,QAAQ,SAAU9E,GAAO0iD,kBAAgBv8B,EAAQnmB,EAAK2sB,EAAO3sB,EAAI,CAAI,CAAA,EAAcoK,OAAO4lB,0BAA6B5lB,OAAO6lB,iBAAiB9J,EAAQ/b,OAAO4lB,0BAA0BrD,CAAM,CAAC,EAAY01B,UAAQj4C,OAAOuiB,CAAM,CAAC,EAAE7nB,QAAQ,SAAU9E,GAAOoK,OAAOC,eAAe8b,EAAQnmB,EAAKoK,OAAO2lB,yBAAyBpD,EAAQ3sB,CAAG,CAAC,CAAE,CAAE,CAAM,CAAC,OAAOmmB,CAAS,CAEthB,SAASu8B,kBAAgBxtC,EAAKlV,EAAKgE,GAAiK,OAApJhE,KAAOkV,EAAO9K,OAAOC,eAAe6K,EAAKlV,EAAK,CAAEgE,MAAOA,EAAO0H,WAAY,CAAA,EAAMpB,aAAc,CAAA,EAAMC,SAAU,CAAA,CAAM,CAAA,EAAY2K,EAAIlV,GAAOgE,EAAgBkR,CAAM,CAE1M,SAASkzC,WAAW9zB,EAAMuwB,GAC/B,OAAKA,EAIEvwB,EAAK5rB,IAAI,SAAUy6C,GACxB,OAAOV,gBAAcA,gBAAc,GAAIU,CAAG,EAAG,GAAI,CAC/CkC,UAAWR,CACjB,CAAK,CACL,CAAG,EAPQvwB,CAQX,CChBA,SAAS+zB,YAAYnzC,GACnB,OAAOA,IAAQ9K,OAAO8K,CAAG,CAC3B,CAEO,SAASozC,QAAQC,EAAOC,GAC7B,GAAID,IAAUC,EAAd,CAIA,GAAIH,YAAYE,CAAK,GAAKF,YAAYG,CAAM,GAAsB,YAAjB,OAAOD,GAA0C,YAAlB,OAAOC,EACrF,OAAOD,IAAUC,EAGnB,GAAIp+C,OAAOoF,KAAK+4C,CAAK,EAAE9oD,SAAW2K,OAAOoF,KAAKg5C,CAAM,EAAE/oD,OACpD,MAAO,CAAA,EAGT,IAAK,IAAIgpD,EAAK,EAAGC,EAAet+C,OAAOoF,KAAK+4C,CAAK,EAAGE,EAAKC,EAAajpD,OAAQgpD,CAAE,GAAI,CAClF,IAAIzoD,EAAM0oD,EAAaD,GAEvB,GAAI,EAAEzoD,KAAOwoD,GACX,MAAO,CAAA,EAGT,GAAI,CAACF,QAAQC,EAAMvoD,GAAMwoD,EAAOxoD,EAAI,EAClC,MAAO,CAAA,CAEV,CApBA,CAsBD,MAAO,CAAA,CACT,CC9BO,SAAS2oD,KAAK10C,GACnB,OAAOA,EAAM5M,OAAO,SAAUrD,EAAO8O,EAAOyzB,GAC1C,OAAOA,EAAKplC,QAAQ6C,CAAK,IAAM8O,CACnC,CAAG,CACH,CCJA,SAASuvC,UAAQtuC,EAAQuuC,GAAkB,IAAwEC,EAApE/yC,EAAOpF,OAAOoF,KAAKuE,CAAM,EAA+P,OAAxP3J,OAAO0lB,wBAA6ByyB,EAAUn4C,OAAO0lB,sBAAsB/b,CAAM,EAAOuuC,IAAgBC,EAAUA,EAAQl7C,OAAO,SAAUm7C,GAAO,OAAOp4C,OAAO2lB,yBAAyBhc,EAAQyuC,CAAG,EAAE92C,UAAW,CAAE,GAAG8D,EAAKjO,KAAK4K,MAAMqD,EAAM+yC,CAAO,GAAY/yC,CAAO,CAErV,SAASizC,gBAAct8B,GAAU,IAAK,IAAIvnB,EAAI,EAAGA,EAAIY,UAAUC,OAAQb,CAAC,GAAI,CAAE,IAAI+tB,EAAyB,MAAhBntB,UAAUZ,GAAaY,UAAUZ,GAAK,GAAQA,EAAI,EAAKyjD,UAAQj4C,OAAOuiB,CAAM,EAAG,CAAA,CAAI,EAAE7nB,QAAQ,SAAU9E,GAAO0iD,kBAAgBv8B,EAAQnmB,EAAK2sB,EAAO3sB,EAAI,CAAI,CAAA,EAAcoK,OAAO4lB,0BAA6B5lB,OAAO6lB,iBAAiB9J,EAAQ/b,OAAO4lB,0BAA0BrD,CAAM,CAAC,EAAY01B,UAAQj4C,OAAOuiB,CAAM,CAAC,EAAE7nB,QAAQ,SAAU9E,GAAOoK,OAAOC,eAAe8b,EAAQnmB,EAAKoK,OAAO2lB,yBAAyBpD,EAAQ3sB,CAAG,CAAC,CAAE,CAAE,CAAM,CAAC,OAAOmmB,CAAS,CAEthB,SAASu8B,kBAAgBxtC,EAAKlV,EAAKgE,GAAiK,OAApJhE,KAAOkV,EAAO9K,OAAOC,eAAe6K,EAAKlV,EAAK,CAAEgE,MAAOA,EAAO0H,WAAY,CAAA,EAAMpB,aAAc,CAAA,EAAMC,SAAU,CAAA,CAAM,CAAA,EAAY2K,EAAIlV,GAAOgE,EAAgBkR,CAAM,CAEjN,SAAS0zC,2BAAyBj8B,EAAQqX,GAAY,GAAc,MAAVrX,EAAgB,MAAO,GAAI,IAAkE3sB,EAA9DmmB,EAAS4d,gCAA8BpX,EAAQqX,CAAQ,EAAe,GAAI55B,OAAO0lB,sBAAsF,IAA7D,IAAI+4B,EAAmBz+C,OAAO0lB,sBAAsBnD,CAAM,EAAQ/tB,EAAI,EAAGA,EAAIiqD,EAAiBppD,OAAQb,CAAC,GAAMoB,EAAM6oD,EAAiBjqD,GAAiC,GAAzBolC,EAAS7iC,QAAQnB,CAAG,GAAuBoK,OAAOlG,UAAUgsB,qBAAqBvwB,KAAKgtB,EAAQ3sB,CAAG,IAAammB,EAAOnmB,GAAO2sB,EAAO3sB,IAAU,OAAOmmB,CAAS,CAE5e,SAAS4d,gCAA8BpX,EAAQqX,GAAY,GAAc,MAAVrX,EAAgB,MAAO,GAAuE,IAAnE,IAA2D3sB,EAAvDmmB,EAAS,GAAQ8d,EAAa75B,OAAOoF,KAAKmd,CAAM,EAAoB/tB,EAAI,EAAGA,EAAIqlC,EAAWxkC,OAAQb,CAAC,GAAMoB,EAAMikC,EAAWrlC,GAAiC,GAAzBolC,EAAS7iC,QAAQnB,CAAG,IAAkBmmB,EAAOnmB,GAAO2sB,EAAO3sB,IAAQ,OAAOmmB,CAAS,CAKnT,IAAI2iC,cAAgB,SAAuBC,EAAMC,GAClCA,EAAMxiB,OACKwiB,EAAMviB,kBACNuiB,EAAMriB,kBACTqiB,EAAMpiB,eACQoiB,EAAMniB,6BAChBmiB,EAAMliB,mBACVkiB,EAAMjiB,eACFiiB,EAAMtiB,mBACKsiB,EAAMhiB,8BACvBgiB,EAAMC,aACrBn1C,EAAO80C,2BAAyBI,EAAO,CAAC,SAAU,oBAAqB,oBAAqB,iBAAkB,+BAAgC,qBAAsB,iBAAkB,qBAAsB,gCAAiC,eAAe,EAEhQ,OAAOD,EAAKlgB,mBAAmB/0B,CAAI,CACrC,EAGIo1C,YAAc,SAAqBH,EAAMC,GAC3C,OAAOA,EAAMxiB,OAAOtb,OAAO,SAAUhqB,EAAG8E,GACtC,OAAO9E,EAAEspC,SAASxkC,CAAI,CACvB,EAAE+iD,CAAI,CACT,EAEII,uBAAyB,SAAgCJ,EAAMC,GACjE,OAAOA,EAAMviB,kBAAkBvb,OAAO,SAAUhqB,EAAG8E,GACjD,OAAO9E,EAAEupC,oBAAoBzkC,CAAI,CAClC,EAAE+iD,CAAI,CACT,EAEIK,wBAA0B,SAAiCL,EAAMC,GACnE,OAAOD,EAAKlgB,mBAAmB,CAC7BnC,mBAAoBsiB,EAAMtiB,mBAAmBxb,OAAO,SAAUsb,EAAQwB,GACpE,IAAIl1B,EAAQY,UAAU8yB,EAAQ,SAAUtlC,GACtC,OAAOA,EAAE8E,OAASgiC,EAAMhiC,IAChC,CAAO,EAED,MAAc,CAAC,IAAX8M,EACK0zB,EAAOh/B,OAAOwgC,CAAK,IAGxBqhB,EAAa7iB,EAAOjjC,SACbsD,OAAOiM,EAAO,EAAGk1B,CAAK,EAC1BqhB,EACb,EAAON,EAAKriB,kBAAkB,CAC9B,CAAG,CACH,EAGI4iB,oBAAsB,SAA6BP,EAAMC,GAC3D,OAAOA,EAAMjiB,eAAe7b,OAAO,SAAUhqB,EAAG8C,GAC9C,OAAO9C,EAAE8pC,iBAAiBhnC,CAAK,CAChC,EAAE+kD,CAAI,CACT,EAEIQ,sBAAwB,SAA+BR,EAAMC,GAC/D,OAAOD,EAAKlgB,mBAAmB,CAC7BlC,kBAAmB8b,gBAAcA,gBAAc,GAAIsG,EAAKpiB,iBAAiB,EAAGqiB,EAAMriB,iBAAiB,CACvG,CAAG,CACH,EAEI6iB,oBAAsB,SAA6BT,EAAMC,GAC3D,OAAOD,EAAKlgB,mBAAmB,CAC7BjC,eAAgB6b,gBAAcA,gBAAc,GAAIsG,EAAKniB,cAAc,EAAGoiB,EAAMpiB,cAAc,CAC9F,CAAG,CACH,EAEI6iB,kCAAoC,SAA2CV,EAAMC,GACvF,OAAOD,EAAKlgB,mBAAmB,CAC7BhC,6BAA8B4b,gBAAcA,gBAAc,GAAIsG,EAAKliB,4BAA4B,EAAGmiB,EAAMniB,4BAA4B,CACxI,CAAG,CACH,EAEI6iB,wBAA0B,SAAiCX,EAAMC,GACnE,OAAOD,EAAKlgB,mBAAmB,CAC7B/B,mBAAoB2b,gBAAcA,gBAAc,GAAIsG,EAAKjiB,kBAAkB,EAAGkiB,EAAMliB,kBAAkB,CAC1G,CAAG,CACH,EAEI6iB,mCAAqC,SAA4CZ,EAAMC,GACzF,OAAOD,EAAKlgB,mBAAmB,CAC7B7B,8BAA+Byb,gBAAcA,gBAAc,GAAIsG,EAAK/hB,6BAA6B,EAAGgiB,EAAMhiB,6BAA6B,CAC3I,CAAG,CACH,EAEI4iB,kBAAoB,SAA2Bb,EAAMC,GACnDC,EAAeN,KAAK,GAAGnhD,OAAOuhD,EAAKE,YAAY,EAAEzhD,OAAOwhD,EAAMC,YAAY,EAAE5hD,OAAOyf,OAAO,CAAC,EAE/F,OAA0B,EAAtBmiC,EAAaxpD,OACRspD,EAAKlgB,mBAAmB,CAC7BogB,aAAcA,CACpB,CAAK,EAGIF,CACT,EAEWc,sBAAwB,WACjC,IAAK,IAAIhG,EAAOrkD,UAAUC,OAAQ+oC,EAAa,IAAIlmC,MAAMuhD,CAAI,EAAGC,EAAO,EAAGA,EAAOD,EAAMC,CAAI,GACzFtb,EAAWsb,GAAQtkD,UAAUskD,GAG/B,OAAOtb,EAAWtd,OAAO,SAAU69B,EAAMC,GACnCc,EAAsCH,mCAAmCZ,EAAMC,CAAK,EACpFe,EAA2BX,wBAAwBU,EAAqCd,CAAK,EAC7FgB,EAAuBV,oBAAoBS,EAA0Bf,CAAK,EAC1EiB,EAA2BP,wBAAwBM,EAAsBhB,CAAK,EAC9EkB,EAAqCT,kCAAkCQ,EAA0BjB,CAAK,EACtGmB,EAAuBX,oBAAoBU,EAAoClB,CAAK,EACpFoB,EAAyBb,sBAAsBY,EAAsBnB,CAAK,EAC1EqB,EAA0BlB,uBAAuBiB,EAAwBpB,CAAK,EAC9EsB,EAAqBV,kBAAkBS,EAAyBrB,CAAK,EACrEuB,EAAerB,YAAYoB,EAAoBtB,CAAK,EACxD,OAAOF,cAAcyB,EAAcvB,CAAK,CAC5C,CAAG,CACH,EC/HO,SAASwB,eAAe9G,EAAuBvS,EAAQoV,GAC5D,IAAIlH,EAASlO,EAAOkV,YACpB,MAAO,CACLE,QAASA,EACTlH,OAAQA,EACRlO,OAAQA,EACRuS,sBAAuBA,EACvBp/C,MAAO+6C,EAAO/6C,MACdmmD,YAAa/G,EAAsB+G,YACnCC,gBAAiBhH,EAAsBgH,gBACvCC,UAAWxZ,EAAOwZ,UAClBC,cAAe,GACfC,eAAgB,CACd3F,gBAAkD,YAAjCxB,EAAsB9xB,MACxC,EACDA,OAAQ8xB,EAAsB9xB,OAC9BvF,MAAOq3B,EAAsBr3B,KACjC,CACA,CACO,SAASy+B,iBAAiBpH,EAAuBvS,GACtD,IAAIL,EAAUK,EAAO4Z,aACrB,MAAO,CACL1L,OAAQlO,EAAOkV,UAAW,EAC1BlV,OAAQA,EACRuS,sBAAuBA,EACvB5S,QAASA,EACT8Z,cAAezZ,EAAO6Z,iBAAkB,EACxC1mD,MAAOwsC,EAAQkD,OACfyW,YAAa/G,EAAsB+G,YACnCC,gBAAiBhH,EAAsBgH,gBACvCC,UAAWxZ,EAAOwZ,UAClBE,eAAgB,CACd3F,gBAAkD,YAAjCxB,EAAsB9xB,MACxC,EACDA,OAAQ8xB,EAAsB9xB,OAC9BvF,MAAOq3B,EAAsBr3B,KACjC,CACA,CCrCO,SAAS4+B,wBAAwBpqD,GAItC,IAHA,IAAIswC,EAAStwC,EAAQqqD,YACjBjM,EAAS,CAACp+C,EAAQwlD,UAAW,EAAC/hD,OAEhB,OAAX6sC,GACL8N,EAAS,CAAC9N,EAAOkV,UAAS,EAAG/hD,OAAOkD,OAAOy3C,CAAM,EACjD9N,EAASA,EAAO+Z,YAGlB,OAAOjM,CACT,CCVA,SAASoD,UAAQtuC,EAAQuuC,GAAkB,IAAwEC,EAApE/yC,EAAOpF,OAAOoF,KAAKuE,CAAM,EAA+P,OAAxP3J,OAAO0lB,wBAA6ByyB,EAAUn4C,OAAO0lB,sBAAsB/b,CAAM,EAAOuuC,IAAgBC,EAAUA,EAAQl7C,OAAO,SAAUm7C,GAAO,OAAOp4C,OAAO2lB,yBAAyBhc,EAAQyuC,CAAG,EAAE92C,UAAW,CAAE,GAAG8D,EAAKjO,KAAK4K,MAAMqD,EAAM+yC,CAAO,GAAY/yC,CAAO,CAErV,SAASizC,gBAAct8B,GAAU,IAAK,IAAIvnB,EAAI,EAAGA,EAAIY,UAAUC,OAAQb,CAAC,GAAI,CAAE,IAAI+tB,EAAyB,MAAhBntB,UAAUZ,GAAaY,UAAUZ,GAAK,GAAQA,EAAI,EAAKyjD,UAAQj4C,OAAOuiB,CAAM,EAAG,CAAA,CAAI,EAAE7nB,QAAQ,SAAU9E,GAAO0iD,kBAAgBv8B,EAAQnmB,EAAK2sB,EAAO3sB,EAAI,CAAI,CAAA,EAAcoK,OAAO4lB,0BAA6B5lB,OAAO6lB,iBAAiB9J,EAAQ/b,OAAO4lB,0BAA0BrD,CAAM,CAAC,EAAY01B,UAAQj4C,OAAOuiB,CAAM,CAAC,EAAE7nB,QAAQ,SAAU9E,GAAOoK,OAAOC,eAAe8b,EAAQnmB,EAAKoK,OAAO2lB,yBAAyBpD,EAAQ3sB,CAAG,CAAC,CAAE,CAAE,CAAM,CAAC,OAAOmmB,CAAS,CAEthB,SAASu8B,kBAAgBxtC,EAAKlV,EAAKgE,GAAiK,OAApJhE,KAAOkV,EAAO9K,OAAOC,eAAe6K,EAAKlV,EAAK,CAAEgE,MAAOA,EAAO0H,WAAY,CAAA,EAAMpB,aAAc,CAAA,EAAMC,SAAU,CAAA,CAAM,CAAA,EAAY2K,EAAIlV,GAAOgE,EAAgBkR,CAAM,CAG1M,SAASi2C,wBAAwBj9B,GACtC,OAAKA,EAAMrsB,KAAK,SAAUysC,GACxB,OAAOA,EAAKkV,aAChB,CAAG,EAQMt1B,EAAMxlB,IAAI,SAAU4lC,EAAM1vC,GAC/B,OAAO6jD,gBAAcA,gBAAc,GAAInU,CAAI,EAAG,GAAI,CAChDkV,cAAe,CAACqE,yBAAyB35B,EAAOtvB,CAAC,CACvD,CAAK,CACL,CAAG,EAXQsvB,EAAMxlB,IAAI,SAAU4lC,GACzB,OAAOmU,gBAAcA,gBAAc,GAAInU,CAAI,EAAG,GAAI,CAChDkV,cAAe,CAAA,CACvB,CAAO,CACP,CAAK,CAQL,CClBO,SAAS4H,mBAAmBzE,GACjC,IAKIp9C,GAL0B,EAAnB/J,UAAUC,QAA+BwS,KAAAA,IAAjBzS,UAAU,GAAmBA,UAAU,GAAK,CAC7E+J,SAAU,YAGX,GACmBA,SAGpB,MAAsB,aAAlB,OAAO4sB,OACF5sB,EAAQ,EAIVo9C,EAAS,CACdxwB,OAAQA,MACZ,CAAG,CACH,CCtBA,SAASksB,UAAQtuC,EAAQuuC,GAAkB,IAAwEC,EAApE/yC,EAAOpF,OAAOoF,KAAKuE,CAAM,EAA+P,OAAxP3J,OAAO0lB,wBAA6ByyB,EAAUn4C,OAAO0lB,sBAAsB/b,CAAM,EAAOuuC,IAAgBC,EAAUA,EAAQl7C,OAAO,SAAUm7C,GAAO,OAAOp4C,OAAO2lB,yBAAyBhc,EAAQyuC,CAAG,EAAE92C,UAAW,CAAE,GAAG8D,EAAKjO,KAAK4K,MAAMqD,EAAM+yC,CAAO,GAAY/yC,CAAO,CAErV,SAASizC,gBAAct8B,GAAU,IAAK,IAAIvnB,EAAI,EAAGA,EAAIY,UAAUC,OAAQb,CAAC,GAAI,CAAE,IAAI+tB,EAAyB,MAAhBntB,UAAUZ,GAAaY,UAAUZ,GAAK,GAAQA,EAAI,EAAKyjD,UAAQj4C,OAAOuiB,CAAM,EAAG,CAAA,CAAI,EAAE7nB,QAAQ,SAAU9E,GAAO0iD,kBAAgBv8B,EAAQnmB,EAAK2sB,EAAO3sB,EAAI,CAAI,CAAA,EAAcoK,OAAO4lB,0BAA6B5lB,OAAO6lB,iBAAiB9J,EAAQ/b,OAAO4lB,0BAA0BrD,CAAM,CAAC,EAAY01B,UAAQj4C,OAAOuiB,CAAM,CAAC,EAAE7nB,QAAQ,SAAU9E,GAAOoK,OAAOC,eAAe8b,EAAQnmB,EAAKoK,OAAO2lB,yBAAyBpD,EAAQ3sB,CAAG,CAAC,CAAE,CAAE,CAAM,CAAC,OAAOmmB,CAAS,CAEthB,SAASu8B,kBAAgBxtC,EAAKlV,EAAKgE,GAAiK,OAApJhE,KAAOkV,EAAO9K,OAAOC,eAAe6K,EAAKlV,EAAK,CAAEgE,MAAOA,EAAO0H,WAAY,CAAA,EAAMpB,aAAc,CAAA,EAAMC,SAAU,CAAA,CAAM,CAAA,EAAY2K,EAAIlV,GAAOgE,EAAgBkR,CAAM,CAQjN,IAAIm2C,YAAYnE,oCAAoC,CAClDlhD,KAAM,YACNihD,UAAW,CAAA,CACb,CAAC,EAED,SAASqE,2BAA2BhnD,EAAOinD,GAIzC,OAAOjnD,EAAMukC,mBAAmBz+B,OAAOoF,KAAK+7C,EAAaC,gBAAgB,EAAEtgC,OAAO,SAAUoY,EAAKtjC,GAC/F,OAAOyiD,gBAAcA,gBAAc,GAAInf,CAAG,EAAG,GAAIof,kBAAgB,GAAI1iD,EAAKiS,KAAAA,CAAS,CAAC,CACxF,EAAK,EAAE,CAAC,CACR,CAEA,IAAIw5C,iBAAmB,WACrB,IAAIC,EAA8B,EAAnBlsD,UAAUC,QAA+BwS,KAAAA,IAAjBzS,UAAU,GAAmBA,UAAU,GAAK+gD,KAC/EoL,EAA+B,EAAnBnsD,UAAUC,QAA+BwS,KAAAA,IAAjBzS,UAAU,GAAmBA,UAAU,GAAK+gD,KACpF,OAAO,SAAUgL,GACf,IAIIK,EAJJ,GAAKL,GAAiBtJ,cAAcsJ,EAAaC,gBAAgB,EAkBjE,OAdII,EAAiB,GAcd,CACL7F,OAAQ,gBACR8F,KAAM,SAAcC,GAClB,IAAIpI,EAAwBoI,EAAYpI,sBACxCgI,EAASjJ,gBAAcA,gBAAc,GAAIzhD,KAAK+qD,qBAAqBD,CAAW,CAAC,EAAG,GAAI,CACpFpI,sBAAuBA,CACjC,CAAS,EAAG,CAAA,CAAI,CACT,EACDv/C,OAAQ,SAAgB6nD,GACtB,IAAItI,EAAwBsI,EAActI,sBAC1CgI,EAASjJ,gBAAcA,gBAAc,GAAIzhD,KAAK+qD,qBAAqBC,CAAa,CAAC,EAAG,GAAI,CACtFtI,sBAAuBA,CACjC,CAAS,EAAG,CAAA,CAAK,CACV,EACDuI,QAAS,SAAiBtxC,GACpBrW,EAAQqW,EAAKrW,MAEjB,OADAqnD,IACOL,2BAA2BhnD,EAAOinD,CAAY,CACtD,EACDW,eAAgB,SAAwBzB,EAAauB,GAG/CG,EAAoBnrD,KAAK+qD,qBAAqBC,CAAa,EAC/D,OAAOvJ,gBAAcA,gBAAc,GAAIgI,CAAW,EAAG,GAAI,CACvD2B,UAAW3J,gBAAcA,gBAAc,GAAI0J,CAAiB,EAAG,GAAI,CACjEZ,aAAc9I,gBAAcA,gBAAc,GAAI0J,EAAkBZ,YAAY,EAAG,GAAI,CACjFC,iBAAkB3B,sBAAsB,IAAIxJ,sBAAoBja,iBAAiB,OAACimB,EAAwB5B,EAAY2B,WAA0D,KAAA,EAASC,EAAsBd,aAAaC,gBAAgB,EAAG,IAAInL,sBAAoBja,iBAAiB+lB,EAAkBZ,aAAaC,gBAAgB,CAAC,EAAEre,eAAgB,CACxW,CAAa,CACb,CAAW,CACX,CAAS,CACF,EACD4e,qBAAsB,SAA8BnxC,GAClD,IA5CYykC,EA4CRA,EAASzkC,EAAMykC,OAMnB,OAJKuM,EAAeU,SAClBV,EAAeU,QA/CLjN,EA+CqBA,EA9C5B,SAAUmM,GAEf,IAAIe,EAAcjB,2BAA2BjM,EAAO/6C,MAAOinD,CAAY,EACnEiB,EAAuB3C,sBAAsB0C,EAAa,IAAIlM,sBAAoBja,iBAAiBolB,CAAgB,CAAC,EAExHD,EAAaC,iBAAmBA,EAEhCnM,EAAOt4C,SAASylD,CAAoB,EAAEn2B,OAAM,CACpD,IAyCe,CACLi2B,OAAQV,EAAeU,OACvBf,aAAcA,CACxB,CACO,EACDjF,0BAA2B,SAAmChiD,EAAOuW,GAC/D0rC,EAAU1rC,EAAM0rC,QACpB,OAAOsD,sBAAsBvlD,EAAO,IAAI+7C,sBAAoBja,iBAAiBqc,gBAAcA,gBAAc,GAAI8D,EAAQ6F,SAAS,EAAGb,EAAaC,gBAAgB,CAAC,CAAC,CACjK,EACDiB,iBAAkB,SAA0BlG,GAC1C,OAAO9D,gBAAcA,gBAAc,GAAI8D,CAAO,EAAG,GAAI,CACnD6F,UAAW3J,gBAAcA,gBAAc,GAAI8D,EAAQ6F,SAAS,EAAGb,EAAaC,gBAAgB,CACtG,CAAS,CACF,CACP,EArEM,MAAM,IAAI51C,MAAMy1C,YAAU,kDAAkD,CAAC,CAsEnF,CACA,EAEAqB,mBAAejB,iBCxGA,SAASkB,gBAAgBlI,GACtC,GAAIniD,MAAMC,QAAQkiD,CAAG,EAAG,OAAOA,CACjC,CCFe,SAASmI,sBAAsBnI,EAAK7lD,GACjD,IAAI6pD,EAAY,MAAPhE,EAAc,KAAyB,aAAlB,OAAOl8C,QAA0Bk8C,EAAIl8C,OAAO4M,WAAasvC,EAAI,cAE3F,GAAU,MAANgE,EAAJ,CACA,IAIIoE,EAAIC,EAJJC,EAAO,GACPjgD,EAAK,CAAA,EACLkgD,EAAK,CAAA,EAIT,IACE,IAAKvE,EAAKA,EAAG9oD,KAAK8kD,CAAG,EAAG,EAAE33C,GAAM+/C,EAAKpE,EAAGt4B,KAAM,GAAEC,QAC9C28B,EAAKxrD,KAAKsrD,EAAG7oD,KAAK,EAEdpF,CAAAA,GAAKmuD,EAAKttD,SAAWb,GAH4BkO,EAAK,CAAA,GAc7D,CATC,MAAO0qC,GACPwV,EAAK,CAAA,EACLF,EAAKtV,CACT,CAAY,QACR,IACO1qC,GAAsB,MAAhB27C,EAAW,QAAWA,EAAW,QAG7C,CAFS,QACR,GAAIuE,EAAI,MAAMF,CACf,CACF,CAED,OAAOC,CAxBgB,CAyBzB,CC5Be,SAASE,oBAAkBxI,EAAKnN,IAClC,MAAPA,GAAeA,EAAMmN,EAAIhlD,UAAQ63C,EAAMmN,EAAIhlD,QAE/C,IAAK,IAAIb,EAAI,EAAG6kC,EAAO,IAAInhC,MAAMg1C,CAAG,EAAG14C,EAAI04C,EAAK14C,CAAC,GAC/C6kC,EAAK7kC,GAAK6lD,EAAI7lD,GAGhB,OAAO6kC,CACT,CCPe,SAASypB,8BAA4BruD,EAAGsuD,GACrD,IAEI1uD,EAFJ,GAAKI,EACL,MAAiB,UAAb,OAAOA,EAAuBuuD,oBAAiBvuD,EAAGsuD,CAAM,EAGlD,SAD2B1uD,EAA3B,YADNA,EAAI2L,OAAOlG,UAAUqR,SAAS5V,KAAKd,CAAC,EAAE0E,MAAM,EAAG,CAAC,CAAC,IAC/B1E,EAAE4B,YAAiB5B,EAAE4B,YAAYuF,KACnDvH,IAAqB,QAANA,EAAoB6D,MAAMguB,KAAKzxB,CAAC,EACzC,cAANJ,GAAqB,2CAA2CyE,KAAKzE,CAAC,EAAU2uD,oBAAiBvuD,EAAGsuD,CAAM,EAA9G,KAAA,CACF,CCRe,SAASE,mBACtB,MAAM,IAAIr4C,UAAU,2IAA2I,CACjK,CCEe,SAASs4C,eAAe7I,EAAK7lD,GAC1C,OAAO2uD,gBAAe9I,CAAG,GAAK+I,sBAAqB/I,EAAK7lD,CAAC,GAAK6uD,8BAA2BhJ,EAAK7lD,CAAC,GAAK8uD,iBAAe,CACrH,CCNe,SAAShL,kBAAgBxtC,EAAKlV,EAAKgE,GAYhD,OAXIhE,KAAOkV,EACT9K,OAAOC,eAAe6K,EAAKlV,EAAK,CAC9BgE,MAAOA,EACP0H,WAAY,CAAA,EACZpB,aAAc,CAAA,EACdC,SAAU,CAAA,CAChB,CAAK,EAED2K,EAAIlV,GAAOgE,EAGNkR,CACT,CCbe,SAAS6uB,gCAA8BpX,EAAQqX,GAC5D,GAAc,MAAVrX,EAAgB,MAAO,GAK3B,IAJA,IAEI3sB,EAFAmmB,EAAS,GACT8d,EAAa75B,OAAOoF,KAAKmd,CAAM,EAG9B/tB,EAAI,EAAGA,EAAIqlC,EAAWxkC,OAAQb,CAAC,GAClCoB,EAAMikC,EAAWrlC,GACY,GAAzBolC,EAAS7iC,QAAQnB,CAAG,IACxBmmB,EAAOnmB,GAAO2sB,EAAO3sB,IAGvB,OAAOmmB,CACT,CCZe,SAASyiC,2BAAyBj8B,EAAQqX,GACvD,GAAc,MAAVrX,EAAgB,MAAO,GAC3B,IACI3sB,EADAmmB,EAASwnC,gCAA6BhhC,EAAQqX,CAAQ,EAG1D,GAAI55B,OAAO0lB,sBAGT,IAFA,IAAI+4B,EAAmBz+C,OAAO0lB,sBAAsBnD,CAAM,EAErD/tB,EAAI,EAAGA,EAAIiqD,EAAiBppD,OAAQb,CAAC,GACxCoB,EAAM6oD,EAAiBjqD,GACM,GAAzBolC,EAAS7iC,QAAQnB,CAAG,GACnBoK,OAAOlG,UAAUgsB,qBAAqBvwB,KAAKgtB,EAAQ3sB,CAAG,IAC3DmmB,EAAOnmB,GAAO2sB,EAAO3sB,IAIzB,OAAOmmB,CACT,CClBe,SAASlR,UAAQC,GAG9B,OAAOD,UAAU,YAAc,OAAO1M,QAAU,UAAY,OAAOA,OAAO4M,SAAW,SAAUD,GAC7F,OAAO,OAAOA,CACf,EAAG,SAAUA,GACZ,OAAOA,GAAO,YAAc,OAAO3M,QAAU2M,EAAIzU,cAAgB8H,QAAU2M,IAAQ3M,OAAOrE,UAAY,SAAW,OAAOgR,CAC5H,GAAaA,CAAG,CAChB,CCIA,IAAI04C,MAAMxjD,OAAOlG,UAAUqL,eACpB,SAASs+C,OAAOC,EAAKC,EAAKC,GAE/B,GAAIA,MAAAA,GAA0CA,EAAQF,EAAKC,CAAG,EAC5D,MAAO,CAAA,EAIT,IAAI/W,EACAM,EACJ,GAAIwW,IAAQC,EAAK,MAAO,CAAA,EAExB,GAAID,GAAOC,IAAQ/W,EAAO8W,EAAIrtD,eAAiBstD,EAAIttD,YAAa,CAC9D,GAAIu2C,IAASxhC,KAAM,OAAOs4C,EAAIr4C,YAAcs4C,EAAIt4C,UAChD,GAAIuhC,IAAS/tB,OAAQ,OAAO6kC,EAAIv4C,aAAew4C,EAAIx4C,WAEnD,GAAIyhC,IAAS10C,MAAO,CAClB,IAAKg1C,EAAMwW,EAAIruD,UAAYsuD,EAAItuD,OAC7B,KAAO63C,CAAG,IAAMuW,OAAOC,EAAIxW,GAAMyW,EAAIzW,GAAM0W,CAAO,IAKpD,MAAe,CAAC,IAAT1W,CACR,CAED,GAAI,CAACN,GAAyB,WAAjB/hC,UAAQ64C,CAAG,EAAgB,CAGtC,IAAK9W,KAFLM,EAAM,EAEOwW,EAAK,CAChB,GAAIF,MAAIjuD,KAAKmuD,EAAK9W,CAAI,GAAK,EAAEM,GAAO,CAACsW,MAAIjuD,KAAKouD,EAAK/W,CAAI,EAAG,MAAO,CAAA,EACjE,GAAI,EAAEA,KAAQ+W,GAASF,OAAOC,EAAI9W,GAAO+W,EAAI/W,GAAOgX,CAAO,GAAG,MAAO,CAAA,CACtE,CAED,OAAO5jD,OAAOoF,KAAKu+C,CAAG,EAAEtuD,SAAW63C,CACpC,CACF,CAGD,OAAOwW,GAAQA,GAAOC,GAAQA,CAChC,CCnDO,SAASE,oBAAoB3pD,GAClC,IAA+B4pD,EAE/B,OAAO,IAAI7N,sBAAoB/N,cAAchuC,EAAO,CAAC,CACnD48B,MAAO,OAACitB,EAAe7pD,EAAM48B,OAA6CitB,EAAe,GACzF15B,KAAM,OAAC25B,EAAc9pD,EAAMmwB,MAA2C25B,EAAc,EACpFjtB,YAAa,OAAC+sB,EAAqB5pD,EAAM68B,aAAyD+sB,EAAqB,GACvH55B,KAAM,GACNyoB,OAAQ,EACRlb,QAAS,EACTd,OAAQ,GACRstB,iBAAkB,CAAA,EAClBhb,sBAAuB,CAAA,EACvBZ,iBAAkB,EAClB3/B,MAAOxO,EAAMwO,KACjB,GAAM,CAEFw7C,eAAgB,CAAA,CACpB,CAAG,CACH,CClBA,SAASjM,UAAQtuC,EAAQuuC,GAAkB,IAAwEC,EAApE/yC,EAAOpF,OAAOoF,KAAKuE,CAAM,EAA+P,OAAxP3J,OAAO0lB,wBAA6ByyB,EAAUn4C,OAAO0lB,sBAAsB/b,CAAM,EAAGuuC,IAAmBC,EAAUA,EAAQl7C,OAAO,SAAUm7C,GAAO,OAAOp4C,OAAO2lB,yBAAyBhc,EAAQyuC,CAAG,EAAE92C,UAAW,CAAE,GAAI8D,EAAKjO,KAAK4K,MAAMqD,EAAM+yC,CAAO,GAAY/yC,CAAO,CAErV,SAASizC,gBAAct8B,GAAU,IAAK,IAAIvnB,EAAI,EAAGA,EAAIY,UAAUC,OAAQb,CAAC,GAAI,CAAE,IAAI+tB,EAAS,MAAQntB,UAAUZ,GAAKY,UAAUZ,GAAK,GAAIA,EAAI,EAAIyjD,UAAQj4C,OAAOuiB,CAAM,EAAG,CAAA,CAAE,EAAE7nB,QAAQ,SAAU9E,GAAO0iD,kBAAgBv8B,EAAQnmB,EAAK2sB,EAAO3sB,EAAI,CAAI,CAAA,EAAIoK,OAAO4lB,0BAA4B5lB,OAAO6lB,iBAAiB9J,EAAQ/b,OAAO4lB,0BAA0BrD,CAAM,CAAC,EAAI01B,UAAQj4C,OAAOuiB,CAAM,CAAC,EAAE7nB,QAAQ,SAAU9E,GAAOoK,OAAOC,eAAe8b,EAAQnmB,EAAKoK,OAAO2lB,yBAAyBpD,EAAQ3sB,CAAG,CAAC,CAAE,CAAE,CAAI,CAAC,OAAOmmB,CAAS,CAGnf,SAASooC,sBAAsBrI,GACpC,IAAI7G,EAAS6G,EAAYG,YACrBvV,EACJoV,EAAY6E,WAAY,GACxBkD,oBAAoB5O,EAAO/6C,KAAK,EAC5BsmD,EAAgB1E,EAAY8E,iBAAkB,EAACtiD,IAAI,SAAU8lD,GAC/D,IAAIC,EAAkBD,EAAaE,UAAYxI,EAAYE,WAAU,EAAKtV,EAAUmd,oBAAoBO,EAAanP,OAAO/6C,KAAK,EACjI,OAAOm+C,gBAAcA,gBAAc,GAAI+L,CAAY,EAAG,GAAI,CAExD1d,QAAS0d,EAAa1d,SAAW2d,CACvC,CAAK,CACL,CAAG,EACD,MAAO,CACL3d,QAASA,EACT8Z,cAAeA,CACnB,CACA,CCfO,SAAS+D,UAAUC,EAAW18B,GACnC,GAAI08B,CAAAA,EAKF,MAAM,IAAIh5C,MAAM,kBAAkB,CAMtC,CCnBO,IAAIi5C,aAA4B1gD,IAAc,IAAI,ECElD,SAAS2gD,kBACd,IAAI7tD,EAAU4M,IAAWghD,YAAY,EAErC,OADAF,UAAsB,OAAZ1tD,CAA8E,EACjFA,CACT,CCNO,IAAI8tD,qBAAoC5gD,IAAc,IAAI,ECE1D,SAAS6gD,0BACd,IAAI34B,EAASxoB,IAAWkhD,oBAAoB,EAE5C,OADAJ,UAAqB,OAAXt4B,CAA2Q,EAC9QA,CACT,CCNO,IAAI44B,2BAA0C9gD,IAAc,IAAI,ECChE,SAAS+gD,gCACd,OAAOrhD,IAAWohD,0BAA0B,CAC9C,CCDO,SAASE,eAAenrD,GAC7B,IAGIorD,EAAa9B,eAHDvgD,EAAS,WACvB,OAAO/I,CACX,CAAG,EAC0C,CAAC,EACxCqrD,EAAcD,EAAW,GACzBE,EAAiBF,EAAW,GAQhC,OANAliD,IAAU,WACH2gD,OAAOwB,EAAarrD,CAAK,GAC5BsrD,EAAetrD,CAAK,CAG1B,EAAK,CAACA,EAAM,EACHqrD,CACT,CCXO,IAAIE,0BAA8C,aAAlB,OAAOp5B,OAAyBhpB,EAAkBD,ICHlF,SAASsiD,UAAU70C,GACxB,IAAImrC,EAASnrC,EAAKmrC,OACd2J,EAAc90C,EAAK80C,YACnB1vD,EAAQ4a,EAAK5a,MACb2vD,EAAY/0C,EAAK+0C,UACjBC,EAAeliD,IAAO1N,CAAK,EAI3B6vD,GAHJ1iD,IAAU,WACRyiD,EAAa9uD,QAAUd,CAC3B,EAAK,CAACA,EAAM,EACU0N,IAAOq4C,CAAM,GAI7B+J,GAHJ3iD,IAAU,WACR0iD,EAAc/uD,QAAUilD,CAC5B,EAAK,CAACA,EAAO,EACWr4C,IAAO,IAAI,GAC7BqiD,EAAuBJ,GAAa,CAACD,EAAYjJ,aAAa/7B,SAASq7B,CAAM,EAC7EzvB,EAAS24B,0BAKbO,0BAA0B,WACxB,IAAIQ,EAAiBH,EAAc/uD,QAEnC,SAASmvD,IACH35B,EAAO45B,uBACXR,EAAYS,cAAc,CAACH,EAAe,CAC3C,CA6BD,OA1BgC,OAA5BF,EAAgBhvD,QACbivD,GACHL,EAAYU,WAAW,CAACrK,EAAO,GAMjC/9C,aAAa8nD,EAAgBhvD,OAAO,EAOhBgtD,OAAO9tD,EAAO4vD,EAAa9uD,OAAO,IAMpDmvD,IACAP,EAAYU,WAAW,CAACrK,EAAO,IAI5B,WAGL+J,EAAgBhvD,QAAUc,WAAWquD,CAAO,CAClD,CACA,EAAK,CAACP,EAAa3J,EAAQgK,EAAsBz5B,EAAQt2B,EAAM,EAEzD+vD,GACFL,EAAYU,WAAW,CAACrK,EAAO,CAEnC,CClEA,IAAIsK,YAAY,CAAC,wBAAyB,gBACtCC,WAAa,CAAC,gBAElB,SAAShO,UAAQtuC,EAAQuuC,GAAkB,IAAwEC,EAApE/yC,EAAOpF,OAAOoF,KAAKuE,CAAM,EAA+P,OAAxP3J,OAAO0lB,wBAA6ByyB,EAAUn4C,OAAO0lB,sBAAsB/b,CAAM,EAAGuuC,IAAmBC,EAAUA,EAAQl7C,OAAO,SAAUm7C,GAAO,OAAOp4C,OAAO2lB,yBAAyBhc,EAAQyuC,CAAG,EAAE92C,UAAW,CAAE,GAAI8D,EAAKjO,KAAK4K,MAAMqD,EAAM+yC,CAAO,GAAY/yC,CAAO,CAErV,SAASizC,gBAAct8B,GAAU,IAAK,IAAIvnB,EAAI,EAAGA,EAAIY,UAAUC,OAAQb,CAAC,GAAI,CAAE,IAAI+tB,EAAS,MAAQntB,UAAUZ,GAAKY,UAAUZ,GAAK,GAAIA,EAAI,EAAIyjD,UAAQj4C,OAAOuiB,CAAM,EAAG,CAAA,CAAE,EAAE7nB,QAAQ,SAAU9E,GAAO0iD,kBAAgBv8B,EAAQnmB,EAAK2sB,EAAO3sB,EAAI,CAAI,CAAA,EAAIoK,OAAO4lB,0BAA4B5lB,OAAO6lB,iBAAiB9J,EAAQ/b,OAAO4lB,0BAA0BrD,CAAM,CAAC,EAAI01B,UAAQj4C,OAAOuiB,CAAM,CAAC,EAAE7nB,QAAQ,SAAU9E,GAAOoK,OAAOC,eAAe8b,EAAQnmB,EAAKoK,OAAO2lB,yBAAyBpD,EAAQ3sB,CAAG,CAAC,CAAE,CAAE,CAAI,CAAC,OAAOmmB,CAAS,CAUnf,SAASmqC,aAAarJ,GAC3B,IAAIlnD,EAA2B,EAAnBP,UAAUC,QAA+BwS,KAAAA,IAAjBzS,UAAU,GAAmBA,UAAU,GAAK,GAC5E+wD,EAAgD,EAAnB/wD,UAAUC,QAA+BwS,KAAAA,IAAjBzS,UAAU,GAAmBA,UAAU,GAAK,GACjGgxD,EAAgBtB,gCAChB74B,EAAS24B,0BACTS,EAAcX,kBACd2B,EAActB,eAAepvD,CAAK,EAClC2wD,EAAmCvB,eAAeoB,CAA0B,EAC5EI,EAAoBljD,IAAO,CAAA,CAAI,EAC/BmjD,EAAyBnjD,IAAO,IAAI,EACpCq4C,EAASn4C,IAAQ,WA2CnB,OAAO80C,gBAAcA,gBAAc,GA1ChBwE,EAAU,SAAU2E,EAAgBiF,GAKjDA,EACFF,EAAkB9vD,QAAU,CAAA,EAc1B8vD,EAAkB9vD,UACQ+qD,EAAelI,sBACxBkI,EAAeL,aAO7BsC,OANDpD,EAAc7B,2BAAyBgD,EAAgBwE,WAAS,EAM3CQ,EAAuB/vD,QAAS,SAAU3B,EAAGoC,GACpE,OAAQpC,MAAAA,EAA6B,KAAA,EAASA,EAAEuB,eAAiBuqB,WAAa1pB,MAAAA,EAA6B,KAAA,EAASA,EAAEb,eAAiBuqB,QACjJ,CAAS,IAECjkB,EAAS0jD,CAAW,EACpBmG,EAAuB/vD,QAAU4pD,GAG3C,EAAO,WAGDkG,EAAkB9vD,QAAU,CAAA,CAClC,CAAK,EACmD4vD,CAAW,CAAC,EAAGC,CAAgC,CACpG,EAAE,CAACzJ,EAAWwJ,EAAaC,EAAiC,EA+CzDtB,EAAa9B,eA7CDvgD,EAAS,WACvB,IAIMsyC,EAQAuL,EAQAkG,EApBN,OAAIhL,EAAOiG,sBAIL1M,EAASoQ,EAAYpJ,YACrBE,EAAUkJ,EAAYhD,iBAAiB,EAAE,EAAEgD,EAAYrJ,WAAU,GACrE/G,EAAO/6C,OAAS,OAACysD,EAAwBjL,EAAOQ,2BAA0E,KAAA,EAASyK,EAAsBpxD,KAAKmmD,EAAQzG,EAAO/6C,MAAO,CAClLiiD,QAASA,CACjB,CAAO,IAAMlH,EAAO/6C,MAGVwsC,GADAkgB,EAAwBzC,sBAAsBkB,CAAW,GACzB3e,QAChC8Z,EAAgBoG,EAAsBpG,eAQtCkG,EAAwBhL,EAAOiG,qBAAqB,CACtD1M,OAAQA,EACRlO,OAAQse,EACR/L,sBAAuBrtB,EACvBya,QAASA,EACT8Z,cAAeA,EACftmD,MAAO+6C,EAAO/6C,MACdmmD,YAAap0B,EAAOo0B,YACpBC,gBAAiBr0B,EAAOq0B,gBACxBC,UAAW8E,EAAY9E,UACvBE,eAAgB,CACd3F,gBAAmC,YAAlB7uB,EAAOzE,MACzB,EACDA,OAAQyE,EAAOzE,OACfvF,MAAOgK,EAAOhK,KACtB,CAAO,GACwCk/B,aACvB3C,2BAAyBkI,EAAuBT,UAAU,GAKvE,EACX,CAAG,EAC0C,CAAC,EACxC/rD,EAAQ8qD,EAAW,GACnBroD,EAAWqoD,EAAW,GAQ1B,OANAI,UAAU,CACR1J,OAAQA,EACR2J,YAAaA,EACb1vD,MAAO0wD,EACPf,UAAW5oC,QAAQ0pC,CAAa,CACpC,CAAG,EACMlsD,CACT,CChIO,SAAS2sD,aAAalxD,EAAOwwD,GAClC,OAAOD,aAAa7E,mBAAkB,CACpCD,iBAAkBzrD,CACnB,EAAEwwD,CAA0B,CAC/B,CCLO,SAASW,UAAUnxD,GAIxB,OAHAkxD,aAAalxD,EAAO,CAClBoxD,aAAc,eAClB,CAAG,EACM,IACT,CCNA,SAAS9O,UAAQtuC,EAAQuuC,GAAkB,IAAwEC,EAApE/yC,EAAOpF,OAAOoF,KAAKuE,CAAM,EAA+P,OAAxP3J,OAAO0lB,wBAA6ByyB,EAAUn4C,OAAO0lB,sBAAsB/b,CAAM,EAAOuuC,IAAgBC,EAAUA,EAAQl7C,OAAO,SAAUm7C,GAAO,OAAOp4C,OAAO2lB,yBAAyBhc,EAAQyuC,CAAG,EAAE92C,UAAW,CAAE,GAAG8D,EAAKjO,KAAK4K,MAAMqD,EAAM+yC,CAAO,GAAY/yC,CAAO,CAErV,SAASizC,gBAAct8B,GAAU,IAAK,IAAIvnB,EAAI,EAAGA,EAAIY,UAAUC,OAAQb,CAAC,GAAI,CAAE,IAAI+tB,EAAyB,MAAhBntB,UAAUZ,GAAaY,UAAUZ,GAAK,GAAQA,EAAI,EAAKyjD,UAAQj4C,OAAOuiB,CAAM,EAAG,CAAA,CAAI,EAAE7nB,QAAQ,SAAU9E,GAAO0iD,kBAAgBv8B,EAAQnmB,EAAK2sB,EAAO3sB,EAAI,CAAI,CAAA,EAAcoK,OAAO4lB,0BAA6B5lB,OAAO6lB,iBAAiB9J,EAAQ/b,OAAO4lB,0BAA0BrD,CAAM,CAAC,EAAY01B,UAAQj4C,OAAOuiB,CAAM,CAAC,EAAE7nB,QAAQ,SAAU9E,GAAOoK,OAAOC,eAAe8b,EAAQnmB,EAAKoK,OAAO2lB,yBAAyBpD,EAAQ3sB,CAAG,CAAC,CAAE,CAAE,CAAM,CAAC,OAAOmmB,CAAS,CAEthB,SAASu8B,kBAAgBxtC,EAAKlV,EAAKgE,GAAiK,OAApJhE,KAAOkV,EAAO9K,OAAOC,eAAe6K,EAAKlV,EAAK,CAAEgE,MAAOA,EAAO0H,WAAY,CAAA,EAAMpB,aAAc,CAAA,EAAMC,SAAU,CAAA,CAAM,CAAA,EAAY2K,EAAIlV,GAAOgE,EAAgBkR,CAAM,CAEjN,SAASk8C,qBAAmB3M,GAAO,OAAO4M,qBAAmB5M,CAAG,GAAK6M,mBAAiB7M,CAAG,GAAKyI,8BAA4BzI,CAAG,GAAK8M,qBAAoB,CAAG,CAEzJ,SAASA,uBAAuB,MAAM,IAAIv8C,UAAU,sIAAsI,CAAI,CAE9L,SAASk4C,8BAA4BruD,EAAGsuD,GAAU,IAAoF1uD,EAApF,GAAKI,EAAW,MAAiB,UAAb,OAAOA,EAAuBouD,oBAAkBpuD,EAAGsuD,CAAM,EAAkI,SAAlC1uD,EAA3B,YAA9DA,EAAI2L,OAAOlG,UAAUqR,SAAS5V,KAAKd,CAAC,EAAE0E,MAAM,EAAG,CAAC,CAAC,IAAyB1E,EAAE4B,YAAiB5B,EAAE4B,YAAYuF,KAAUvH,IAAqB,QAANA,EAAoB6D,MAAMguB,KAAKzxB,CAAC,EAAa,cAANJ,GAAqB,2CAA2CyE,KAAKzE,CAAC,EAAUwuD,oBAAkBpuD,EAAGsuD,CAAM,EAA/G,KAAA,CAAmH,CAEha,SAASmE,mBAAiBE,GAAQ,GAAsB,aAAlB,OAAOjpD,QAA0BA,OAAO4M,YAAY/K,OAAOonD,CAAI,EAAG,OAAOlvD,MAAMguB,KAAKkhC,CAAI,CAAI,CAElI,SAASH,qBAAmB5M,GAAO,GAAIniD,MAAMC,QAAQkiD,CAAG,EAAG,OAAOwI,oBAAkBxI,CAAG,CAAI,CAE3F,SAASwI,oBAAkBxI,EAAKnN,IAAkB,MAAPA,GAAeA,EAAMmN,EAAIhlD,UAAQ63C,EAAMmN,EAAIhlD,QAAQ,IAAK,IAAIb,EAAI,EAAG6kC,EAAO,IAAInhC,MAAMg1C,CAAG,EAAG14C,EAAI04C,EAAK14C,CAAC,GAAM6kC,EAAK7kC,GAAK6lD,EAAI7lD,GAAM,OAAO6kC,CAAO,CAEvL,SAASmlB,2BAAyBj8B,EAAQqX,GAAY,GAAc,MAAVrX,EAAgB,MAAO,GAAI,IAAkE3sB,EAA9DmmB,EAAS4d,gCAA8BpX,EAAQqX,CAAQ,EAAe,GAAI55B,OAAO0lB,sBAAsF,IAA7D,IAAI+4B,EAAmBz+C,OAAO0lB,sBAAsBnD,CAAM,EAAQ/tB,EAAI,EAAGA,EAAIiqD,EAAiBppD,OAAQb,CAAC,GAAMoB,EAAM6oD,EAAiBjqD,GAAiC,GAAzBolC,EAAS7iC,QAAQnB,CAAG,GAAuBoK,OAAOlG,UAAUgsB,qBAAqBvwB,KAAKgtB,EAAQ3sB,CAAG,IAAammB,EAAOnmB,GAAO2sB,EAAO3sB,IAAU,OAAOmmB,CAAS,CAE5e,SAAS4d,gCAA8BpX,EAAQqX,GAAY,GAAc,MAAVrX,EAAgB,MAAO,GAAuE,IAAnE,IAA2D3sB,EAAvDmmB,EAAS,GAAQ8d,EAAa75B,OAAOoF,KAAKmd,CAAM,EAAoB/tB,EAAI,EAAGA,EAAIqlC,EAAWxkC,OAAQb,CAAC,GAAMoB,EAAMikC,EAAWrlC,GAAiC,GAAzBolC,EAAS7iC,QAAQnB,CAAG,IAAkBmmB,EAAOnmB,GAAO2sB,EAAO3sB,IAAQ,OAAOmmB,CAAS,CAInT,IAAIklC,YAAYnE,oCAAoC,CAClDlhD,KAAM,cACR,CAAC,EAOD,SAASyrD,sBAAsBpS,EAAQ1kC,GACrC,IAAIrW,EAAQqW,EAAKrW,MACb43C,EAAcvhC,EAAKuhC,YACnBwV,EAAW/2C,EAAK+2C,SAEhBptD,IAAU+6C,EAAO/6C,QACnB+6C,EAAO/6C,MAAQA,EACf+6C,EAAOjI,KAAK,SAAU,CACpB9yC,MAAO+6C,EAAO/6C,MACdwsC,QAASuO,EAAOzG,YAChBsD,YAAaA,EACbwV,SAAUA,CAChB,CAAK,EAEL,CAEA,SAASC,uBAAuBxK,EAASyK,GAEvC,OAAOzK,EAAQj8B,OAAO,SAAUq7B,EAAST,GACvC,MAAID,CAAAA,cAAcC,CAAM,IAInBA,EAAO2G,kBAAqB3G,EAAO+L,gBAIpC/L,EAAO2G,iBACF3G,EAAO2G,iBAAiBlG,EAASqL,CAAkB,EAGrD9L,EAAO+L,eAAetL,EAASqL,CAAkB,EAP/CrL,CAQV,EAfuC,EAAnB/mD,UAAUC,QAA+BwS,KAAAA,IAAjBzS,UAAU,GAAmBA,UAAU,GAAK,EAexE,CACnB,CAEA,SAASsyD,gCAAgC3K,EAAS4K,GAChD,IAAIC,EAA0BD,EAA8BC,wBACxDl+C,EAAO80C,2BAAyBmJ,EAA+B,CAAC,0BAA0B,EAE9F,OAAO5K,EAAQ9/C,OAAO,SAAUy+C,GAC9B,MAAO,CAACD,cAAcC,CAAM,CAC7B,CAAA,EAAE56B,OAAO,SAAU5mB,EAAOwhD,GACzB,OAAKA,EAAOQ,0BAILR,EAAOQ,0BAA0BhiD,EAAOwP,CAAI,EAH1CxP,CAIV,EAAE0tD,CAAuB,CAC5B,CAEA,SAASC,qBAAqB9K,GACxB+K,EAAe/K,EAAQ9/C,OAAOw+C,aAAa,EAEnB,IAAxBqM,EAAazyD,QAIjByyD,EAAaptD,QAAQ,SAAUghD,GAC7B,IAAIqM,EAAerM,EAAOO,YAC1BoL,sBAAsBU,EAAc,CAClC7tD,MAAO6tD,EAAa7tD,MAAMupC,UAAW,EACrCqO,YAAa,CAAA,CACnB,CAAK,EACD+V,qBAAqBnM,EAAOU,WAAU,CAAE,CAC5C,CAAG,CACH,CAEA,SAAS4L,gCAAgCjL,GAEvC,OADmBA,EAAQ9/C,OAAOw+C,aAAa,EAC3B36B,OAAO,SAAU0/B,EAAe/pD,GAClD,OAAO+pD,EAAcpjD,OAAO2E,MAAMy+C,EAAe,CAAC,CAChD8D,QAAS7tD,EAAQulD,WAAY,EAC7BtV,QAASjwC,EAAQkqD,WAAY,EAC7B1L,OAAQx+C,EAAQwlD,UAAW,CACjC,GAAO7+C,OAAO4pD,qBAAmBgB,gCAAgCvxD,EAAQ2lD,WAAY,CAAA,CAAC,CAAC,CAAC,CACrF,EAAE,EAAE,CACP,CAEA,IAAI1zC,MAAQ,SAAey4C,GACzB,GAAqBt5C,KAAAA,IAAjBs5C,GAAyDt5C,KAAAA,IAA3Bs5C,EAAazqB,UAC7C,MAAM,IAAIlrB,MAAMy1C,YAAU,qCAAqC,CAAC,EAGlE,IAAIvqB,EAAYyqB,EAAazqB,UACzBuxB,EAAwB9G,EAAamD,QACrCA,EAAoC,KAAA,IAA1B2D,EAAmCvxB,EAAYuxB,EACzDC,EAAe,GACfC,EAAe,GACfC,EAA6B,KAC7BC,EAAc,KACdpT,EAAS,KACTzC,EAAgB,KACpB,MAAO,CACLmJ,OAAQ,YACRoL,aAAc,YACduB,aAAc,WACZ,OAAO5xB,CACR,EACDslB,WAAY,WACV,OAAOsI,CACR,EACDrI,UAAW,WACT,OAAOhH,CACR,EACD0L,WAAY,WACV,OAAOnO,GAAiBA,EAAchE,WACvC,EACDoS,iBAAkB,WAChB,IAAI2H,EAAe3xD,KAAKkqD,YAGxB,OAAOkH,gCADcO,EAAeA,EAAanM,WAAY,EAAG,CAACxlD,KACZ,CACtD,EACDkqD,UAAW,WACT,OAAOuH,CACR,EACD9H,UAAW,SAAmBiI,GAC5B,OAAOJ,EAA2BK,WAAWnQ,kBAAgB,GAAIgM,EAASiD,uBAAuBW,EAAc,CAC7G9G,iBAAkBoH,EAClBvT,OAAQA,CACT,CAAA,CAAC,CAAC,CACJ,EACDmH,WAAY,WACV,OAAO8L,CACR,EACDnC,WAAY,SAAoBhJ,GAC9B,IAAI2L,EAAQ9xD,KAEZ,GAAI,CAACsB,MAAMC,QAAQ4kD,CAAO,EACxB,MAAM,IAAIvxC,MAAMy1C,YAAU,sDAAsD,CAAC,EAGnF,GAAIlE,EAAQtlD,KAAK,SAAUikD,GACzB,MAA8B,YAAvB,OAAOA,EAAO+F,MAAgD,YAAzB,OAAO/F,EAAO3hD,MAClE,CAAO,EACC,MAAM,IAAIyR,MAAMy1C,YAAU,mEAAmE,CAAC,EAkChG,OA/BAiH,EAAeA,EAAa9qD,OAAO2/C,CAAO,EAEtCqL,GAA8B1rC,QAAQqgC,EAAQ1nD,MAAM,IACtDgyD,sBAAsBpS,EAAQ,CAC5B/6C,MAAOwtD,gCAAgCQ,EAAc,CACnD/L,QAASgM,EACTP,wBAAyB3S,EAAO/6C,KAC5C,CAAW,EACDotD,SAAUa,CACpB,CAAS,EAIDpL,EAAQriD,QAAQ,SAAUghD,GACpBA,EAAOoG,gBAET6G,iBAAiB,CACftI,YAFgB3E,EAAOoG,eAAesG,EAA2B/H,YAAYqI,EAAM1M,WAAU,IAAO,GAAIoE,eAAegI,EAA4BM,EAAON,EAA2BQ,eAAe,CAAC,EAGrMtP,sBAAuB8O,EACvBrhB,OAAQ2hB,CACtB,CAAa,CAEb,CAAS,EACD3L,EAAQriD,QAAQ,SAAUghD,GACpBA,EAAO+F,MACT/F,EAAO+F,KAAKrB,eAAegI,EAA4BM,EAAON,EAA2BQ,eAAe,CAAC,CAErH,CAAS,EACDR,EAA2BS,eAAc,GAGpCjyD,IACR,EACDkvD,cAAe,SAAuB/I,GACpC,IAiBMyL,EAjBFM,EAASlyD,KAEb,GAAI,CAACsB,MAAMC,QAAQ4kD,CAAO,EACxB,MAAM,IAAIvxC,MAAMy1C,YAAU,yDAAyD,CAAC,EAGtF,GAAIlE,EAAQtlD,KAAK,SAAUikD,GACzB,MAAiC,YAA1B,OAAOA,EAAOmG,OAC7B,CAAO,EACC,MAAM,IAAIr2C,MAAMy1C,YAAU,mDAAmD,CAAC,EA+BhF,OA5BAiH,EAAeA,EAAajrD,OAAO,SAAUy+C,GAC3C,MAAmC,CAAC,IAA7BqB,EAAQhmD,QAAQ2kD,CAAM,CACrC,CAAO,EAEG0M,GAA8B1rC,QAAQqgC,EAAQ1nD,MAAM,IAClDmzD,EAAYzL,EAAQj8B,OAAO,SAAU5mB,EAAOwhD,GAO9C,OALWA,EAAOmG,QAAQ,CACxB5M,OAAQA,EACR/6C,MAAOA,EACP6sC,OAAQ+hB,CACpB,CAAW,GACc5uD,CACzB,EAAW+6C,EAAO/6C,KAAK,EACfiuD,EAAeZ,uBAAuBW,EAAc,CAClD9G,iBAAkBoH,EAClBvT,OAAQA,CAClB,CAAS,EACDA,EAAOt4C,SAAS+qD,gCAAgCQ,EAAc,CAC5D/L,QAASgM,EACTP,wBAAyBY,CAC1B,CAAA,CAAC,EAEEN,EAAa7yD,SACf+yD,EAA2BS,eAAc,EAItCjyD,IACR,EACD6qD,KAAM,SAAcjxC,GAClB,IAmBI89B,EAnBAya,EAASnyD,KAGT0iD,EAAwB9oC,EAAM8oC,sBAC9BvS,EAASv2B,EAAMu2B,OACfoV,EAAU3rC,EAAM2rC,QAEL,OAAXlH,IAMJmT,EAA6B9O,EAC7B+O,EAActhB,EACdohB,EAAehM,EAAQmI,IAAY,GAI/BhW,EAAagL,EAAsBhL,WACnClQ,EAAaspB,gCAAgCQ,EAAc,CAC7D/L,QAASgM,EACTP,wBAAyB,IAAI3R,sBAAoBja,iBAAiB,CAChEtzB,MAAOguB,CACjB,CAAS,CACT,CAAO,GAIDue,EAASgB,sBAAoB,GAAI7X,EAAW11B,MAAO01B,CAAU,GAItDnS,OAAS,WACd,OAAIqtB,EAAsB0P,eACxB1P,EAAsB0P,cAAc,CAClC7M,QAAS7C,EAAsB2P,UAAU5G,iBAAiB,EAAE,EAC5D6G,WAAY,SAAoBV,GAC9B,OAAOlP,EAAsB4P,WAAWV,EAAW,CAAA,CAAK,CACzD,CACb,CAAW,EAGMla,GAGFA,EAAWriB,QAC1B,EAEMgpB,EAAOkU,qCAAuC,WAC5C,OAAO7a,EAAWriB,QAC1B,EAGMgpB,EAAO9oB,qBAAuB,SAAUyK,EAAWsQ,EAAY6J,EAAc8B,GACvE34C,EAAQ+6C,EAAO/6C,MAAMukC,mBAAmBoU,CAAS,EACrD,OAAOvE,EAAWniB,qBAAqByK,EAAWsQ,EAAY6J,EAAc72C,CAAK,CACzF,EAEMs4C,EAAgBlE,EAAWuH,OAAO,WAChC,OAAO4J,sBAAsB19C,MAAM,KAAA,EAAQilD,qBAAmBnG,wBAAwBkI,CAAM,CAAC,CAAC,CACtG,CAAO,GACGK,EAAsB,OAACC,EAAwB/P,EAAsBgQ,iBAAgE,KAAA,EAASD,EAAsBzyD,KAAKolD,WAAY,MAKnLtV,EAAU,IAAIuP,sBAAoB/N,cAAc,IAAI+N,sBAAoBja,iBAAiBotB,EAAoBlvD,KAAK,EAAGkvD,EAAoB1iB,OAAO,EACpJ8L,EAAchE,YAAc9H,EAC5BuO,EAAOzG,YAAc9H,GAOvBuO,EAAOpzC,GAAG,SAAU,SAAU4O,GACVA,EAAMqhC,aAGtB+V,qBAAqBK,CAAY,CAE3C,CAAO,EACD1V,EAAc3wC,GAAG,SAAU,WAKzBy3C,EAAsBiQ,sBAAqB,CAQnD,CAAO,EACD/W,EAAc3wC,GAAG,SAAU,SAAU8Y,GAC/B+rB,EAAU/rB,EAAM+rB,QAIpB4S,EAAsBkQ,eAAc,EAKpCvU,EAAOzG,YAAc9H,CAC7B,CAAO,EAIDwhB,EAAaxtD,QAAQ,SAAUghD,GACzBA,EAAOoG,gBAET6G,iBAAiB,CACftI,YAFgB3E,EAAOoG,eAAexI,EAAsB+G,YAAY0I,EAAO/M,WAAY,IAAK,GAAIoE,eAAe9G,EAAuByP,EAAQ5M,CAAO,CAAC,EAG1J7C,sBAAuBA,EACvBvS,OAAQgiB,CACpB,CAAW,CAEX,CAAO,EACDb,EAAaxtD,QAAQ,SAAUghD,GAKzBA,EAAO+F,MACT/F,EAAO+F,KAAKrB,eAAe9G,EAAuByP,EAAQ5M,CAAO,CAAC,CAE5E,CAAO,EAODlH,EAAOpzC,GAAG,SAAU,SAAUnI,GAC5B,IAAIQ,EAAQR,EAAMQ,MACdotD,EAAW5tD,EAAM4tD,SACrBa,EAAeZ,uBAAuBW,EAAc,CAClD9G,iBAAkBlnD,EAClB+6C,OAAQA,CAClB,EAAWqS,GAAY,EAAE,EAGZhO,EAAsB0P,eACzB1P,EAAsBmQ,sBAAqB,CAErD,CAAO,EAEGL,IAIF9P,EAAsBkQ,eAAc,CAEvC,EACDzvD,OAAQ,SAAgB+gB,GACtB,IAAI4uC,EAAS9yD,KAET0iD,EAAwBx+B,EAAMw+B,sBAE7B1iD,KAAK+pD,eAIVuH,EAAaxtD,QAAQ,SAAUghD,GACzBA,EAAOoG,gBAET6G,iBAAiB,CACftI,YAFgB3E,EAAOoG,eAAexI,EAAsB+G,YAAYqJ,EAAO1N,WAAY,IAAK,GAAI0E,iBAAiBpH,EAAuBoQ,CAAM,CAAC,EAGnJpQ,sBAAuBA,EACvBvS,OAAQ2iB,CACpB,CAAW,CAEX,CAAO,EACDxB,EAAaxtD,QAAQ,SAAUghD,GAOzBA,EAAO3hD,QACT2hD,EAAO3hD,OAAO2mD,iBAAiBpH,EAAuBoQ,CAAM,CAAC,CAEvE,CAAO,EACF,EACD7H,QAAS,WACP,IAAI8H,EAAS/yD,KAEbsxD,EAAaxtD,QAAQ,SAAUghD,GACzBA,EAAOmG,SAOTnG,EAAOmG,QAAQ,CACb5M,OAAQA,EACR/6C,MAAO+6C,EAAO/6C,MACd6sC,OAAQ4iB,CACpB,CAAW,CAEX,CAAO,EAEDtB,EADAD,EAA6B,KAE7BnT,EAAOlH,mBAAkB,EACzBkH,EAAS,KACTzC,EAAc/D,OAAM,EACpB+D,EAAgB,IACjB,EACD6P,iBAAkB,SAA0BlG,GAC1C,OAAO+L,EAAajrD,OAAOw+C,aAAa,EAAE36B,OAAO,SAAU8oC,EAAiBC,GAC1E,OAAOA,EAAWxH,iBAAiBuH,CAAe,CACnD,EAAEvR,gBAAcA,gBAAc,GAAI8D,CAAO,EAAG,GAAI7D,kBAAgB,GAAI1hD,KAAKolD,WAAY,EAAEmM,CAAY,CAAC,CAAC,CACvG,EACDV,eAAgB,SAAwBtL,GAEtC,OAAOvlD,KAAKyrD,iBAAiBlG,CAAO,CACrC,EACDD,0BAA2B,SAAmCkF,EAAkBrmC,GAC1EohC,EAAUphC,EAAMohC,QACpB,OAAOuL,gCAAgCQ,EAAc,CACnD/L,QAASA,EACTyL,wBAAyBxG,CACjC,CAAO,CACF,EACD0I,eAAgB,WACd3B,EAAeZ,uBAAuBW,EAAc,CAClD9G,iBAAkBxqD,KAAKqlD,UAAS,EAAG/hD,MACnC+6C,OAAQr+C,KAAKqlD,UAAW,CACzB,EAAEkM,CAAY,CAChB,CACL,CACA,EAEA4B,QAAerhD,MAEf,SAASigD,iBAAiB3tC,GACxB,IAAIqlC,EAAcrlC,EAAMqlC,YACpB/G,EAAwBt+B,EAAMs+B,sBAC9BvS,EAAS/rB,EAAM+rB,OACfijB,GAAkBjjB,GAA+BuS,EAAsB2P,WAArCjN,WAAY,EAClD1C,EAAsB+G,YAAchI,gBAAcA,gBAAc,GAAIiB,EAAsB+G,WAAW,EAAG,GAAI/H,kBAAgB,GAAI0R,EAAiB3R,gBAAcA,gBAAc,GAAIiB,EAAsB+G,YAAY2J,EAAgB,EAAG3J,CAAW,CAAC,CAAC,CACrP,CCxeO,SAAS4J,iBAOd,OAHmB/G,eAHDrgD,EAAW,SAAU7K,GACrC,OAAOA,EAAI,CACZ,EAAE,CAAC,EAC2C,CAAC,EACjB,EAGjC,CCdO,IAAIkyD,wBAAuCnmD,IAAc,IAAI,ECC7D,SAASomD,6BACd,OAAO1mD,IAAWymD,uBAAuB,CAC3C,CCJA,IAAAxmD,QAAe,SCAX0mD,UAAY,MACLC,UAAY,SAAmBC,GACxC,OAAO,WACL,IAAI/5C,EAA0B,EAAnBnb,UAAUC,QAA+BwS,KAAAA,IAAjBzS,UAAU,GAAmBA,UAAU,GAAK,GAC3Em1D,EAAiBh6C,EAAKg6C,eACtBC,EAAej6C,EAAKi6C,aAEpBC,EAAaF,EAAiB,IAAIntD,OAAOmtD,CAAc,EAAI,GAC3DG,EAAWF,EAAe,KAAKptD,OAAOotD,CAAY,EAAI,GAC1D,MAAO,GAAGptD,OAAOgtD,UAAW,GAAG,EAAEhtD,OAAOktD,CAAa,EAAEltD,OAAOqtD,CAAU,EAAErtD,OAAOstD,CAAQ,CAC7F,CACA,ECTIC,OAAON,UAAU,WAAW,EACjB,SAASO,UAAUr6C,GAChC,IAAIiqB,EAAYjqB,EAAKiqB,UACjBqwB,EAAwBt6C,EAAKu6C,mBAC7BA,EAA+C,KAAA,IAA1BD,EAAmC,OAASA,EACjE9R,EAAMxoC,EAAKwoC,IACXgS,EAAkBx6C,EAAKy6C,WACvBA,EAAiC,KAAA,IAApBD,EAA6B,GAAKA,EAM/CE,GAL2BnN,kBAAkB/E,EAAI/hB,iBAAkBwD,CAAS,GAIxC,IAChB5gC,MACpBsxD,EAAiC,KAAA,IAAhBD,EAAyB,GAAKA,EAG/C5pD,EAAYspD,OAAK,CACnBJ,eAAgB,aACpB,CAAG,GAAKS,EAAW9R,YAAc,IAAI97C,OAAO4tD,EAAW9R,WAAW,EAAI,IACpE,OAAOgS,EAAejyD,QAAQ,IAAI4lB,OAAO65B,gBAAgBF,gBAAiB,GAAG,EAAG,IAAIp7C,OAAO0tD,EAAoB,UAAW,EAAE1tD,OAAOiE,EAAW,IAAK,CAAC,EAAEpI,QAAQ,IAAI4lB,OAAO65B,gBAAgBD,iBAAkB,GAAG,EAAG,KAAKr7C,OAAO0tD,EAAoB,GAAG,CAAC,CACvP,CCrBA,IAAIH,OAAON,UAAU,kBAAkB,EACxB,SAASc,iBAAiB56C,GACvC,IAAIiqB,EAAYjqB,EAAKiqB,UACjBqwB,EAAwBt6C,EAAKu6C,mBAC7BA,EAA+C,KAAA,IAA1BD,EAAmC,OAASA,EACjE9R,EAAMxoC,EAAKwoC,IACXgS,EAAkBx6C,EAAKy6C,WACvBA,EAAiC,KAAA,IAApBD,EAA6B,GAAKA,EAM/CE,GAL2BnN,kBAAkB/E,EAAI/hB,iBAAkBwD,CAAS,GAIxC,IAChB5gC,MACpBsxD,EAAiC,KAAA,IAAhBD,EAAyB,GAAKA,EAG/C5pD,EAAYspD,OAAK,CACnBJ,eAAgB,aACpB,CAAG,GAAKS,EAAW9R,YAAc,IAAI97C,OAAO4tD,EAAW9R,WAAW,EAAI,IAEpE,OAD8BC,uBAAuB4H,wBAAwB7D,oBAAoBgO,CAAc,CAAC,CAAC,EAClFjyD,QAAQ,IAAI4lB,OAAO65B,gBAAgBF,gBAAiB,GAAG,EAAG,IAAIp7C,OAAO0tD,EAAoB,UAAW,EAAE1tD,OAAOiE,EAAW,IAAK,CAAC,EAAEpI,QAAQ,IAAI4lB,OAAO65B,gBAAgBD,iBAAkB,GAAG,EAAG,KAAKr7C,OAAO0tD,EAAoB,GAAG,CAAC,CAChQ,CCtBA,IAAIH,OAAON,UAAU,SAAS,EACf,SAASe,QAAQ76C,GAC9B,IAAIiqB,EAAYjqB,EAAKiqB,UACjBqwB,EAAwBt6C,EAAKu6C,mBAC7BA,EAA+C,KAAA,IAA1BD,EAAmC,OAASA,EACjE9R,EAAMxoC,EAAKwoC,IACXgS,EAAkBx6C,EAAKy6C,WACvBA,EAAiC,KAAA,IAApBD,EAA6B,GAAKA,EAM/CE,GALyBnN,kBAAkB/E,EAAIC,eAAgBxe,CAAS,GAItC,IACd5gC,MACpBsxD,EAAiC,KAAA,IAAhBD,EAAyB,GAAKA,EAG/C5pD,EAAYspD,OAAK,CACnBJ,eAAgB,aACpB,CAAG,GAAKS,EAAW9R,YAAc,IAAI97C,OAAO4tD,EAAW9R,WAAW,EAAI,IACpE,OAAOgS,EAAejyD,QAAQ,IAAI4lB,OAAO65B,gBAAgBF,gBAAiB,GAAG,EAAG,IAAIp7C,OAAO0tD,EAAoB,UAAW,EAAE1tD,OAAOiE,EAAW,IAAK,CAAC,EAAEpI,QAAQ,IAAI4lB,OAAO65B,gBAAgBD,iBAAkB,GAAG,EAAG,KAAKr7C,OAAO0tD,EAAoB,GAAG,CAAC,CACvP,CCrBA,IAAIH,KAAON,UAAU,gBAAgB,EACtB,SAASgB,eAAe96C,GACrC,IAAIiqB,EAAYjqB,EAAKiqB,UACjBqwB,EAAwBt6C,EAAKu6C,mBAC7BA,EAA+C,KAAA,IAA1BD,EAAmC,OAASA,EACjE9R,EAAMxoC,EAAKwoC,IACXgS,EAAkBx6C,EAAKy6C,WACvBA,EAAiC,KAAA,IAApBD,EAA6B,GAAKA,EAM/CE,GALyBnN,kBAAkB/E,EAAIC,eAAgBxe,CAAS,GAItC,IACd5gC,MACpBsxD,EAAiC,KAAA,IAAhBD,EAAyB,GAAKA,EAG/C5pD,EAAYspD,KAAK,CACnBJ,eAAgB,aACpB,CAAG,GAAKS,EAAW9R,YAAc,IAAI97C,OAAO4tD,EAAW9R,WAAW,EAAI,IAEpE,OAD8BC,uBAAuB4H,wBAAwB7D,oBAAoBgO,CAAc,CAAC,CAAC,EAClFjyD,QAAQ,IAAI4lB,OAAO65B,gBAAgBF,gBAAiB,GAAG,EAAG,IAAIp7C,OAAO0tD,EAAoB,UAAW,EAAE1tD,OAAOiE,EAAW,IAAK,CAAC,EAAEpI,QAAQ,IAAI4lB,OAAO65B,gBAAgBD,iBAAkB,GAAG,EAAG,KAAKr7C,OAAO0tD,EAAoB,GAAG,CAAC,CAChQ,CCxBA,SAASjgD,UAAQC,GAAmV,OAAtOD,UAArD,YAAlB,OAAO1M,QAAoD,UAA3B,OAAOA,OAAO4M,SAAmC,SAAiBD,GAAO,OAAO,OAAOA,CAAI,EAAuB,SAAiBA,GAAO,OAAOA,GAAyB,YAAlB,OAAO3M,QAAyB2M,EAAIzU,cAAgB8H,QAAU2M,IAAQ3M,OAAOrE,UAAY,SAAW,OAAOgR,CAAI,GAAqBA,CAAG,CAAI,CAwBnX,SAASwgD,oBAAoB/6C,GAClC,IAOIg7C,EAPAz9C,EAASyC,EAAKzC,OACdksC,EAAUzpC,EAAKypC,QAEnB,GAAyB,WAArBnvC,UAAQmvC,CAAO,EACjB,MAAM,IAAIxuC,MAAM,0DAA0D,EAK5E,IACE+/C,EAAoBrR,iBAAiBF,CAAO,CAG7C,CAFC,MAAO/3B,GACP,MAAM,IAAIzW,MAAM,8CAA8C,CAC/D,CAED,MAAO,yBAA0BpO,OAAO0Q,EAAQ,2BAA6B,EAAE1Q,OAAOmuD,EAAmB,GAAI,CAC/G,CAKe,SAASC,SAAS19C,EAAQksC,GAEvC,OAAOsR,oBAAoB,CACzBx9C,OAAQA,EACRksC,QAASA,CACb,CAAG,CACH,CCpDO,SAASyR,aAAa7xD,EAAO8xD,GAClC,OAAO9xD,EAAM+xD,eAAeD,CAAY,CAC1C,CCFA,SAASzT,UAAQtuC,EAAQuuC,GAAkB,IAAwEC,EAApE/yC,EAAOpF,OAAOoF,KAAKuE,CAAM,EAA+P,OAAxP3J,OAAO0lB,wBAA6ByyB,EAAUn4C,OAAO0lB,sBAAsB/b,CAAM,EAAOuuC,IAAgBC,EAAUA,EAAQl7C,OAAO,SAAUm7C,GAAO,OAAOp4C,OAAO2lB,yBAAyBhc,EAAQyuC,CAAG,EAAE92C,UAAW,CAAE,GAAG8D,EAAKjO,KAAK4K,MAAMqD,EAAM+yC,CAAO,GAAY/yC,CAAO,CAErV,SAASizC,gBAAct8B,GAAU,IAAK,IAAIvnB,EAAI,EAAGA,EAAIY,UAAUC,OAAQb,CAAC,GAAI,CAAE,IAAI+tB,EAAyB,MAAhBntB,UAAUZ,GAAaY,UAAUZ,GAAK,GAAQA,EAAI,EAAKyjD,UAAQj4C,OAAOuiB,CAAM,EAAG,CAAA,CAAI,EAAE7nB,QAAQ,SAAU9E,GAAO0iD,kBAAgBv8B,EAAQnmB,EAAK2sB,EAAO3sB,EAAI,CAAI,CAAA,EAAcoK,OAAO4lB,0BAA6B5lB,OAAO6lB,iBAAiB9J,EAAQ/b,OAAO4lB,0BAA0BrD,CAAM,CAAC,EAAY01B,UAAQj4C,OAAOuiB,CAAM,CAAC,EAAE7nB,QAAQ,SAAU9E,GAAOoK,OAAOC,eAAe8b,EAAQnmB,EAAKoK,OAAO2lB,yBAAyBpD,EAAQ3sB,CAAG,CAAC,CAAE,CAAE,CAAM,CAAC,OAAOmmB,CAAS,CAEthB,SAASu8B,kBAAgBxtC,EAAKlV,EAAKgE,GAAiK,OAApJhE,KAAOkV,EAAO9K,OAAOC,eAAe6K,EAAKlV,EAAK,CAAEgE,MAAOA,EAAO0H,WAAY,CAAA,EAAMpB,aAAc,CAAA,EAAMC,SAAU,CAAA,CAAM,CAAA,EAAY2K,EAAIlV,GAAOgE,EAAgBkR,CAAM,CAIlM,SAAS8gD,aAAar7C,GACnC,IAAIm7C,EAAen7C,EAAKm7C,aACxB,MAAO,CACLD,aAAc,SAAsB7xD,EAAOG,GACzC,OAAO8xD,aAAcxhD,OAAOtQ,EAAOH,CAAK,CAAC,EAAG8xD,CAAY,CACzD,EACDd,UAAW,SAAmBhjD,EAAS7N,GACrC,IAEE,OAAOA,EAAO+xD,UAAWzT,gBAAcA,gBAAc,GAD9B9xB,KAAKE,MAAM7e,CAAO,CACgC,EAAG,GAAI,CAC9EmxC,IAAKniD,IACN,CAAA,CAAC,CAAC,CAGJ,CAFC,MAAOqrB,GACP,MAAM,IAAIzW,MAAM,oHAA4H,CAC7I,CACF,EACD2/C,iBAAkB,SAA0BvjD,EAAS7N,GACnD,IAEE,OAAOA,EAAOgyD,iBAAkB1T,gBAAcA,gBAAc,GAD9B9xB,KAAKE,MAAM7e,CAAO,CACuC,EAAG,GAAI,CAC5FmxC,IAAKniD,IACN,CAAA,CAAC,CAAC,CAGJ,CAFC,MAAOqrB,GACP,MAAM,IAAIzW,MAAM,+HAAuI,CACxJ,CACF,EACD4/C,QAAS,SAAiBxjD,EAAS7N,GACjC,IAEE,OAAOA,EAAOiyD,QAAS3T,gBAAcA,gBAAc,GAD9B9xB,KAAKE,MAAM7e,CAAO,CAC8B,EAAG,GAAI,CAC1EmxC,IAAKniD,IACN,CAAA,CAAC,CAAC,CAGJ,CAFC,MAAOqrB,GACP,MAAM,IAAIzW,MAAM,kHAA0H,CAC3I,CACF,EACD6/C,eAAgB,SAAwBzjD,EAAS7N,GAC/C,IAEE,OAAOA,EAAOkyD,eAAgB5T,gBAAcA,gBAAc,GAD9B9xB,KAAKE,MAAM7e,CAAO,CACqC,EAAG,GAAI,CACxFmxC,IAAKniD,IACN,CAAA,CAAC,CAAC,CAGJ,CAFC,MAAOqrB,GACP,MAAM,IAAIzW,MAAM,6HAAqI,CACtJ,CACF,EACDggD,SAAU,SAAkB5jD,EAAS7N,GACnC,IACE,IAAImyD,EAAc3lC,KAAKE,MAAM7e,CAAO,EAChCkG,EAASo+C,EAAYp+C,OACrBksC,EAAUkS,EAAYlS,QAE1B,OAAOjgD,EAAOoyD,SAAUr+C,EAAQuqC,gBAAc,CAC5ClhB,UAAW,CAACvgC,KAAK2/B,SAC3B,EAAWyjB,CAAO,CAAC,CAAC,CAGb,CAFC,MAAO/3B,GACP,MAAM,IAAIzW,MAAM,0IAAoJ,CACrK,CACF,CACL,CACA,CCpEA,SAASysC,UAAQtuC,EAAQuuC,GAAkB,IAAwEC,EAApE/yC,EAAOpF,OAAOoF,KAAKuE,CAAM,EAA+P,OAAxP3J,OAAO0lB,wBAA6ByyB,EAAUn4C,OAAO0lB,sBAAsB/b,CAAM,EAAOuuC,IAAgBC,EAAUA,EAAQl7C,OAAO,SAAUm7C,GAAO,OAAOp4C,OAAO2lB,yBAAyBhc,EAAQyuC,CAAG,EAAE92C,UAAW,CAAE,GAAG8D,EAAKjO,KAAK4K,MAAMqD,EAAM+yC,CAAO,GAAY/yC,CAAO,CAErV,SAASizC,gBAAct8B,GAAU,IAAK,IAAIvnB,EAAI,EAAGA,EAAIY,UAAUC,OAAQb,CAAC,GAAI,CAAE,IAAI+tB,EAAyB,MAAhBntB,UAAUZ,GAAaY,UAAUZ,GAAK,GAAQA,EAAI,EAAKyjD,UAAQj4C,OAAOuiB,CAAM,EAAG,CAAA,CAAI,EAAE7nB,QAAQ,SAAU9E,GAAO0iD,kBAAgBv8B,EAAQnmB,EAAK2sB,EAAO3sB,EAAI,CAAI,CAAA,EAAcoK,OAAO4lB,0BAA6B5lB,OAAO6lB,iBAAiB9J,EAAQ/b,OAAO4lB,0BAA0BrD,CAAM,CAAC,EAAY01B,UAAQj4C,OAAOuiB,CAAM,CAAC,EAAE7nB,QAAQ,SAAU9E,GAAOoK,OAAOC,eAAe8b,EAAQnmB,EAAKoK,OAAO2lB,yBAAyBpD,EAAQ3sB,CAAG,CAAC,CAAE,CAAE,CAAM,CAAC,OAAOmmB,CAAS,CAEthB,SAASu8B,kBAAgBxtC,EAAKlV,EAAKgE,GAAiK,OAApJhE,KAAOkV,EAAO9K,OAAOC,eAAe6K,EAAKlV,EAAK,CAAEgE,MAAOA,EAAO0H,WAAY,CAAA,EAAMpB,aAAc,CAAA,EAAMC,SAAU,CAAA,CAAM,CAAA,EAAY2K,EAAIlV,GAAOgE,EAAgBkR,CAAM,CAEjN,SAAS0zC,2BAAyBj8B,EAAQqX,GAAY,GAAc,MAAVrX,EAAgB,MAAO,GAAI,IAAkE3sB,EAA9DmmB,EAAS4d,gCAA8BpX,EAAQqX,CAAQ,EAAe,GAAI55B,OAAO0lB,sBAAsF,IAA7D,IAAI+4B,EAAmBz+C,OAAO0lB,sBAAsBnD,CAAM,EAAQ/tB,EAAI,EAAGA,EAAIiqD,EAAiBppD,OAAQb,CAAC,GAAMoB,EAAM6oD,EAAiBjqD,GAAiC,GAAzBolC,EAAS7iC,QAAQnB,CAAG,GAAuBoK,OAAOlG,UAAUgsB,qBAAqBvwB,KAAKgtB,EAAQ3sB,CAAG,IAAammB,EAAOnmB,GAAO2sB,EAAO3sB,IAAU,OAAOmmB,CAAS,CAE5e,SAAS4d,gCAA8BpX,EAAQqX,GAAY,GAAc,MAAVrX,EAAgB,MAAO,GAAuE,IAAnE,IAA2D3sB,EAAvDmmB,EAAS,GAAQ8d,EAAa75B,OAAOoF,KAAKmd,CAAM,EAAoB/tB,EAAI,EAAGA,EAAIqlC,EAAWxkC,OAAQb,CAAC,GAAMoB,EAAMikC,EAAWrlC,GAAiC,GAAzBolC,EAAS7iC,QAAQnB,CAAG,IAAkBmmB,EAAOnmB,GAAO2sB,EAAO3sB,IAAQ,OAAOmmB,CAAS,CAEnT,SAASqwC,8BAA8BjQ,GAIrC,OAHgBA,EAAQ6F,UACHxD,2BAAyBrC,EAAS,CAAC,YAAY,CAGtE,CAKe,SAASkQ,qBACtB,MAAO,CACLC,aAAc,SAAsBnQ,GAClC,OAAOn8C,OAAOoF,KAAK+2C,CAAO,EAAEr7B,OAAO,SAAU5mB,EAAOoqD,GAClD,OAAOjM,gBAAcA,gBAAc,GAAIn+C,CAAK,EAAG,GAAIo+C,kBAAgB,GAAIgM,EAAS8H,8BAA8BjQ,EAAQmI,EAAQ,CAAC,CAAC,CACjI,EAAE,EAAE,CACN,EACDiI,aAAc,WACZ,IAAIC,EAAgC,EAAnBp3D,UAAUC,QAA+BwS,KAAAA,IAAjBzS,UAAU,GAAmBA,UAAU,GAAK,GACrF,OAAO4K,OAAOoF,KAAKonD,CAAU,EAAE1rC,OAAO,SAAU5mB,EAAOoqD,GACrD,OAAOjM,gBAAcA,gBAAc,GAAIn+C,CAAK,EAAG,GAAIo+C,kBAAgB,GAAIgM,EAAS8H,8BAA8BI,EAAWlI,EAAQ,CAAC,CAAC,CACpI,EAAE,EAAE,CACN,CACL,CACA,CChCA,IAAIrrD,QAAU8O,OAAOjO,UAAUb,QAC3BwzD,gBAAkB,OAElBC,OAAS,CACTC,QAAS,UACTC,QAAS,SACb,EAEA3kD,UAAiB,CACblJ,QAAW2tD,OAAOE,QAClBh7C,WAAY,CACR+6C,QAAS,SAAU/yD,GACf,OAAOX,QAAQ1D,KAAKqE,EAAO6yD,gBAAiB,GAAG,CAClD,EACDG,QAAS,SAAUhzD,GACf,OAAOmO,OAAOnO,CAAK,CACtB,CACJ,EACD+yD,QAASD,OAAOC,QAChBC,QAASF,OAAOE,OACpB,ECpBI3kD,UAAUhD,UAEVu+C,MAAMxjD,OAAOlG,UAAUqL,eACvBhN,UAAUD,MAAMC,QAEhB00D,SAAY,WAEZ,IADA,IAAIhjD,EAAQ,GACHrV,EAAI,EAAGA,EAAI,IAAK,EAAEA,EACvBqV,EAAM1S,KAAK,MAAQ3C,EAAI,GAAK,IAAM,IAAMA,EAAE2W,SAAS,EAAE,GAAGlF,YAAa,CAAA,EAGzE,OAAO4D,CACX,EAAG,EAECijD,aAAe,SAAsBC,GACrC,KAAsB,EAAfA,EAAM13D,QAAY,CACrB,IAAIy1C,EAAOiiB,EAAM7tD,MACb4L,EAAMggC,EAAKhgC,IAAIggC,EAAKkiB,MAExB,GAAI70D,UAAQ2S,CAAG,EAAG,CAGd,IAFA,IAAImiD,EAAY,GAEPt1D,EAAI,EAAGA,EAAImT,EAAIzV,OAAQ,EAAEsC,EACR,KAAA,IAAXmT,EAAInT,IACXs1D,EAAU91D,KAAK2T,EAAInT,EAAE,EAI7BmzC,EAAKhgC,IAAIggC,EAAKkiB,MAAQC,CACzB,CACJ,CACL,EAEIC,cAAgB,SAAuB3qC,EAAQ3a,GAE/C,IADA,IAAIkD,EAAMlD,GAAWA,EAAQulD,aAAentD,OAAO2G,OAAO,IAAI,EAAI,GACzDnS,EAAI,EAAGA,EAAI+tB,EAAOltB,OAAQ,EAAEb,EACR,KAAA,IAAd+tB,EAAO/tB,KACdsW,EAAItW,GAAK+tB,EAAO/tB,IAIxB,OAAOsW,CACX,EAEIguB,MAAQ,SAASA,EAAM/c,EAAQwG,EAAQ3a,GAEvC,GAAI,CAAC2a,EACD,OAAOxG,EAGX,GAAsB,UAAlB,OAAOwG,EAAqB,CAC5B,GAAIpqB,UAAQ4jB,CAAM,EACdA,EAAO5kB,KAAKorB,CAAM,MACf,CAAA,GAAIxG,CAAAA,GAA4B,UAAlB,OAAOA,EAKxB,MAAO,CAACA,EAAQwG,IAJX3a,IAAYA,EAAQulD,cAAgBvlD,EAAQwlD,kBAAqB,CAAC5J,MAAIjuD,KAAKyK,OAAOlG,UAAWyoB,CAAM,KACpGxG,EAAOwG,GAAU,CAAA,EAIxB,CAED,OAAOxG,CACV,CAED,IAIIsxC,EAJJ,OAAKtxC,GAA4B,UAAlB,OAAOA,GAKlB5jB,UADAk1D,EAActxC,CACA,GAAK,CAAC5jB,UAAQoqB,CAAM,IAClC8qC,EAAcH,cAAcnxC,EAAQnU,CAAO,GAG3CzP,UAAQ4jB,CAAM,GAAK5jB,UAAQoqB,CAAM,GACjCA,EAAO7nB,QAAQ,SAAUowC,EAAMt2C,GAC3B,IACQ84D,EADJ9J,MAAIjuD,KAAKwmB,EAAQvnB,CAAC,GACd84D,EAAavxC,EAAOvnB,KACgB,UAAtB,OAAO84D,GAA2BxiB,GAAwB,UAAhB,OAAOA,EAC/D/uB,EAAOvnB,GAAKskC,EAAMw0B,EAAYxiB,EAAMljC,CAAO,EAE3CmU,EAAO5kB,KAAK2zC,CAAI,EAGpB/uB,EAAOvnB,GAAKs2C,CAE5B,CAAS,EACM/uB,GAGJ/b,OAAOoF,KAAKmd,CAAM,EAAEzB,OAAO,SAAUoY,EAAKtjC,GAC7C,IAAIgE,EAAQ2oB,EAAO3sB,GAOnB,OALI4tD,MAAIjuD,KAAK2jC,EAAKtjC,CAAG,EACjBsjC,EAAItjC,GAAOkjC,EAAMI,EAAItjC,GAAMgE,EAAOgO,CAAO,EAEzCsxB,EAAItjC,GAAOgE,EAERs/B,CACV,EAAEm0B,CAAW,GAjCH,CAACtxC,GAAQ3e,OAAOmlB,CAAM,CAkCrC,EAEIrd,OAAS,SAA4B6W,EAAQwG,GAC7C,OAAOviB,OAAOoF,KAAKmd,CAAM,EAAEzB,OAAO,SAAUoY,EAAKtjC,GAE7C,OADAsjC,EAAItjC,GAAO2sB,EAAO3sB,GACXsjC,CACV,EAAEnd,CAAM,CACb,EAEIwxC,OAAS,SAAUC,EAAKC,EAASC,GAC7BC,EAAiBH,EAAIv0D,QAAQ,MAAO,GAAG,EAC3C,GAAgB,eAAZy0D,EAEA,OAAOC,EAAe10D,QAAQ,iBAAkBy+C,QAAQ,EAG5D,IACI,OAAOkW,mBAAmBD,CAAc,CAG3C,CAFC,MAAOh5D,GACL,OAAOg5D,CACV,CACL,EAEIE,OAAS,SAAgBL,EAAKM,EAAgBJ,EAASK,EAAMh4C,GAG7D,GAAmB,IAAfy3C,EAAIn4D,OACJ,OAAOm4D,EAGX,IAAI3kD,EAAS2kD,EAOb,GANmB,UAAf,OAAOA,EACP3kD,EAAS1K,OAAOrE,UAAUqR,SAAS5V,KAAKi4D,CAAG,EACrB,UAAf,OAAOA,IACd3kD,EAASd,OAAOylD,CAAG,GAGP,eAAZE,EACA,OAAO1W,OAAOnuC,CAAM,EAAE5P,QAAQ,kBAAmB,SAAU+0D,GACvD,MAAO,SAAWh0C,SAASg0C,EAAG70D,MAAM,CAAC,EAAG,EAAE,EAAI,KAC1D,CAAS,EAIL,IADA,IAAIqpB,EAAM,GACDhuB,EAAI,EAAGA,EAAIqU,EAAOxT,OAAQ,EAAEb,EAAG,CACpC,IAAII,EAAIiU,EAAOtL,WAAW/I,CAAC,EAGjB,KAANI,GACS,KAANA,GACM,KAANA,GACM,MAANA,GACM,IAALA,GAAaA,GAAK,IACb,IAALA,GAAaA,GAAK,IACb,IAALA,GAAaA,GAAK,KAClBmhB,IAAW9N,UAAQ0kD,UAAkB,KAAN/3D,GAAoB,KAANA,GAEjD4tB,GAAO3Z,EAAOuf,OAAO5zB,CAAC,EAItBI,EAAI,IACJ4tB,GAAYqqC,SAASj4D,GAIrBA,EAAI,KACJ4tB,GAAaqqC,SAAS,IAAQj4D,GAAK,GAAMi4D,SAAS,IAAY,GAAJj4D,GAI1DA,EAAI,OAAe,OAALA,EACd4tB,GAAaqqC,SAAS,IAAQj4D,GAAK,IAAOi4D,SAAS,IAASj4D,GAAK,EAAK,IAASi4D,SAAS,IAAY,GAAJj4D,IAIpGJ,GAAK,EACLI,EAAI,QAAiB,KAAJA,IAAc,GAA8B,KAAvBiU,EAAOtL,WAAW/I,CAAC,GAEzDguB,GAAOqqC,SAAS,IAAQj4D,GAAK,IACvBi4D,SAAS,IAASj4D,GAAK,GAAM,IAC7Bi4D,SAAS,IAASj4D,GAAK,EAAK,IAC5Bi4D,SAAS,IAAY,GAAJj4D,GAC1B,CAED,OAAO4tB,CACX,EAEIyiB,QAAU,SAAiBrrC,GAI3B,IAHA,IAAImzD,EAAQ,CAAC,CAAEjiD,IAAK,CAAErW,EAAGmF,GAASozD,KAAM,GAAG,GACvCiB,EAAO,GAEFz5D,EAAI,EAAGA,EAAIu4D,EAAM13D,OAAQ,EAAEb,EAKhC,IAJA,IAAIs2C,EAAOiiB,EAAMv4D,GACbsW,EAAMggC,EAAKhgC,IAAIggC,EAAKkiB,MAEpB5nD,EAAOpF,OAAOoF,KAAK0F,CAAG,EACjBnT,EAAI,EAAGA,EAAIyN,EAAK/P,OAAQ,EAAEsC,EAAG,CAClC,IAAI/B,EAAMwP,EAAKzN,GACXgrB,EAAM7X,EAAIlV,GACK,UAAf,OAAO+sB,GAA4B,OAARA,GAAsC,CAAC,IAAvBsrC,EAAKl3D,QAAQ4rB,CAAG,IAC3DoqC,EAAM51D,KAAK,CAAE2T,IAAKA,EAAKkiD,KAAMp3D,CAAG,CAAE,EAClCq4D,EAAK92D,KAAKwrB,CAAG,EAEpB,CAKL,OAFAmqC,aAAaC,CAAK,EAEXnzD,CACX,EAEIs0D,SAAW,SAAkBpjD,GAC7B,MAA+C,oBAAxC9K,OAAOlG,UAAUqR,SAAS5V,KAAKuV,CAAG,CAC7C,EAEIqjD,SAAW,SAAkBrjD,GAC7B,MAAA,EAAKA,CAAAA,GAAsB,UAAf,OAAOA,GAIX,EAAEA,EAAIzU,aAAeyU,EAAIzU,YAAY83D,UAAYrjD,EAAIzU,YAAY83D,SAASrjD,CAAG,GACzF,EAEIsjD,QAAU,SAAiBt5D,EAAGoC,GAC9B,MAAO,GAAGkG,OAAOtI,EAAGoC,CAAC,CACzB,EAEIm3D,SAAW,SAAkB1rC,EAAK1gB,GAClC,GAAI9J,UAAQwqB,CAAG,EAAG,CAEd,IADA,IAAI2rC,EAAS,GACJ95D,EAAI,EAAGA,EAAImuB,EAAIttB,OAAQb,GAAK,EACjC85D,EAAOn3D,KAAK8K,EAAG0gB,EAAInuB,EAAE,CAAC,EAE1B,OAAO85D,CACV,CACD,OAAOrsD,EAAG0gB,CAAG,CACjB,EAEA4rC,QAAiB,CACbrB,cAAeA,cACfhoD,OAAQA,OACRkpD,QAASA,QACTnpB,QAASA,QACTsoB,OAAQA,OACRM,OAAQA,OACRM,SAAUA,SACVD,SAAUA,SACVG,SAAUA,SACVv1B,MAAOA,KACX,ECzPIy1B,QAAQtpD,QACRgD,UAAUkyB,UACVqpB,MAAMxjD,OAAOlG,UAAUqL,eAEvBqpD,sBAAwB,CACxBC,SAAU,SAAkBC,GACxB,OAAOA,EAAS,IACnB,EACDC,MAAO,QACPjnB,QAAS,SAAiBgnB,EAAQ94D,GAC9B,OAAO84D,EAAS,IAAM94D,EAAM,GAC/B,EACDg5D,OAAQ,SAAgBF,GACpB,OAAOA,CACV,CACL,EAEIv2D,UAAUD,MAAMC,QAChBqmB,MAAQzW,OAAOjO,UAAU0kB,MACzBrnB,KAAOe,MAAM4B,UAAU3C,KACvB03D,YAAc,SAAUxU,EAAKyU,GAC7B33D,KAAK4K,MAAMs4C,EAAKliD,UAAQ22D,CAAY,EAAIA,EAAe,CAACA,EAAa,CACzE,EAEIC,MAAQ3jD,KAAKtR,UAAUk1D,YAEvBC,cAAgBhnD,UAAiB,QACjCk9B,WAAW,CACX+pB,eAAgB,CAAA,EAChBC,UAAW,CAAA,EACXzB,QAAS,QACT0B,gBAAiB,CAAA,EACjBv6C,UAAW,IACXg5C,OAAQ,CAAA,EACRwB,QAASd,QAAMV,OACfyB,iBAAkB,CAAA,EAClBv5C,OAAQk5C,cACRtzC,UAAW1T,UAAQ2J,WAAWq9C,eAE9BvnB,QAAS,CAAA,EACT6nB,cAAe,SAAuBrjD,GAClC,OAAO6iD,MAAMx5D,KAAK2W,CAAI,CACzB,EACDsjD,UAAW,CAAA,EACXC,mBAAoB,CAAA,CACxB,EAEIC,sBAAwB,SAA+Bj6D,GACvD,MAAoB,UAAb,OAAOA,GACM,UAAb,OAAOA,GACM,WAAb,OAAOA,GACM,UAAb,OAAOA,GACM,UAAb,OAAOA,CAClB,EAEI+wB,YAAY,SAASA,EACrB7c,EACA+kD,EACAiB,EACAF,EACAD,EACAH,EACApyD,EACAzF,EACA23D,EACAI,EACAx5C,EACA4F,EACA2zC,EACA5B,GAEA,IAAI5iD,EAAMnB,EAcV,GAbsB,YAAlB,OAAO1M,EACP6N,EAAM7N,EAAOyxD,EAAQ5jD,CAAG,EACjBA,aAAeM,KACtBN,EAAMykD,EAAczkD,CAAG,EACQ,UAAxB6kD,GAAmCx3D,UAAQ2S,CAAG,IACrDA,EAAMyjD,QAAMF,SAASvjD,EAAK,SAAUlR,GAChC,OAAIA,aAAiBwR,KACVmkD,EAAc31D,CAAK,EAEvBA,CACnB,CAAS,GAGO,OAARkR,EAAc,CACd,GAAI2kD,EACA,OAAOJ,GAAW,CAACC,EAAmBD,EAAQX,EAAQvpB,WAASkqB,QAAS3B,EAAS,MAAO33C,CAAM,EAAI24C,EAGtG5jD,EAAM,EACT,CAED,GAAI4kD,sBAAsB5kD,CAAG,GAAKyjD,QAAMJ,SAASrjD,CAAG,EAAG,CACnD,GAAIukD,EAAS,CACLO,EAAWN,EAAmBZ,EAASW,EAAQX,EAAQvpB,WAASkqB,QAAS3B,EAAS,MAAO33C,CAAM,EACnG,GAA4B,UAAxB45C,GAAmCL,EAAkB,CAGrD,IAFA,IAAIlnD,EAAcoW,MAAMjpB,KAAKwS,OAAO+C,CAAG,EAAG,GAAG,EACzC+kD,EAAe,GACVr7D,EAAI,EAAGA,EAAI4T,EAAY/S,OAAQ,EAAEb,EACtCq7D,IAAuB,IAANr7D,EAAU,GAAK,KAAOmnB,EAAU0zC,EAAQjnD,EAAY5T,GAAI2wC,WAASkqB,QAAS3B,EAAS,QAAS33C,CAAM,CAAC,EAExH,MAAO,CAAC4F,EAAUi0C,CAAQ,EAAI,IAAMC,EACvC,CACD,MAAO,CAACl0C,EAAUi0C,CAAQ,EAAI,IAAMj0C,EAAU0zC,EAAQvkD,EAAKq6B,WAASkqB,QAAS3B,EAAS,QAAS33C,CAAM,CAAC,EACzG,CACD,MAAO,CAAC4F,EAAU+yC,CAAM,EAAI,IAAM/yC,EAAU5T,OAAO+C,CAAG,CAAC,EAC1D,CAED,IAcIglD,EAdArnD,EAAS,GAEb,GAAmB,KAAA,IAARqC,EAAX,CAOIglD,EAFwB,UAAxBH,GAAmCx3D,UAAQ2S,CAAG,EAEpC,CAAC,CAAElR,MAAoB,EAAbkR,EAAIzV,OAAayV,EAAI2Q,KAAK,GAAG,GAAK,KAAO,KAAA,CAAgB,GACtEtjB,UAAQ8E,CAAM,EACXA,GAENmI,EAAOpF,OAAOoF,KAAK0F,CAAG,EAChBtT,EAAO4N,EAAK5N,KAAKA,CAAI,EAAI4N,GAGvC,IAAK,IAAIzN,EAAI,EAAGA,EAAIm4D,EAAQz6D,OAAQ,EAAEsC,EAAG,CACrC,IAAI/B,EAAMk6D,EAAQn4D,GACdiC,EAAuB,UAAf,OAAOhE,GAAyC,KAAA,IAAdA,EAAIgE,MAAwBhE,EAAIgE,MAAQkR,EAAIlV,GAEtF45D,GAAuB,OAAV51D,IAIbm2D,EAAY53D,UAAQ2S,CAAG,EACU,YAA/B,OAAO6kD,EAAqCA,EAAoBjB,EAAQ94D,CAAG,EAAI84D,EAC/EA,GAAUS,EAAY,IAAMv5D,EAAM,IAAMA,EAAM,KAEpDi5D,YAAYpmD,EAAQ+d,EAChB5sB,EACAm2D,EACAJ,EACAF,EACAD,EACAH,EACApyD,EACAzF,EACA23D,EACAI,EACAx5C,EACA4F,EACA2zC,EACA5B,CACZ,CAAS,EACJ,CAzCA,CA2CD,OAAOjlD,CACX,EAEIunD,0BAA4B,SAAmCnkB,GAC/D,GAAI,CAACA,EACD,OAAO1G,WAGX,GAAqB,OAAjB0G,EAAKwjB,SAA4C,KAAA,IAAjBxjB,EAAKwjB,SAAmD,YAAxB,OAAOxjB,EAAKwjB,QAC5E,MAAM,IAAIzkD,UAAU,+BAA+B,EAGvD,IAAI8iD,EAAU7hB,EAAK6hB,SAAWvoB,WAASuoB,QACvC,GAA4B,KAAA,IAAjB7hB,EAAK6hB,SAA4C,UAAjB7hB,EAAK6hB,SAAwC,eAAjB7hB,EAAK6hB,QACxE,MAAM,IAAI9iD,UAAU,mEAAmE,EAG3F,IAAImL,EAAS9N,UAAiB,QAC9B,GAA2B,KAAA,IAAhB4jC,EAAK91B,OAAwB,CACpC,GAAI,CAACytC,MAAIjuD,KAAK0S,UAAQ2J,WAAYi6B,EAAK91B,MAAM,EACzC,MAAM,IAAInL,UAAU,iCAAiC,EAEzDmL,EAAS81B,EAAK91B,MACjB,CACD,IAAI4F,EAAY1T,UAAQ2J,WAAWmE,GAE/B9Y,EAASkoC,WAASloC,OAKtB,MAJ2B,YAAvB,OAAO4uC,EAAK5uC,QAAyB9E,CAAAA,UAAQ0zC,EAAK5uC,MAAM,IACxDA,EAAS4uC,EAAK5uC,QAGX,CACHiyD,gBAA+C,WAA/B,OAAOrjB,EAAKqjB,eAA+BrjB,EAAsB1G,YAAjB+pB,eAChEC,UAAqC,KAAA,IAAnBtjB,EAAKsjB,UAA4BhqB,WAASgqB,UAAY,CAAC,CAACtjB,EAAKsjB,UAC/EzB,QAASA,EACT0B,iBAAiD,WAAhC,OAAOvjB,EAAKujB,gBAAgCvjB,EAAuB1G,YAAlBiqB,gBAClEv6C,WAAqC,KAAA,IAAnBg3B,EAAKh3B,UAA4BswB,WAAqB0G,GAAZh3B,UAC5Dg5C,QAA+B,WAAvB,OAAOhiB,EAAKgiB,OAAuBhiB,EAAc1G,YAAT0oB,OAChDwB,SAAiC,YAAxB,OAAOxjB,EAAKwjB,QAAyBxjB,EAAe1G,YAAVkqB,QACnDC,kBAAmD,WAAjC,OAAOzjB,EAAKyjB,iBAAiCzjB,EAAwB1G,YAAnBmqB,iBACpEryD,OAAQA,EACR8Y,OAAQA,EACR4F,UAAWA,EACX4zC,eAA6C,YAA9B,OAAO1jB,EAAK0jB,cAA+B1jB,EAAqB1G,YAAhBoqB,cAC/DC,WAAqC,WAA1B,OAAO3jB,EAAK2jB,UAA0B3jB,EAAiB1G,YAAZqqB,UACtDh4D,KAA2B,YAArB,OAAOq0C,EAAKr0C,KAAsBq0C,EAAKr0C,KAAO,KACpDi4D,oBAAuD,WAAnC,OAAO5jB,EAAK4jB,mBAAmC5jB,EAA0B1G,YAArBsqB,kBAChF,CACA,EAEAQ,YAAiB,SAAUtmD,EAAQkiC,GAC/B,IAAI/gC,EAAMnB,EACN/B,EAAUooD,0BAA0BnkB,CAAI,EAaxCzmC,GAR0B,YAA1B,OAAOwC,EAAQ3K,OAEf6N,GADA7N,EAAS2K,EAAQ3K,QACJ,GAAI6N,CAAG,EACb3S,UAAQyP,EAAQ3K,MAAM,IAE7B6yD,EADSloD,EAAQ3K,QAIV,IAEX,GAAmB,UAAf,OAAO6N,GAA4B,OAARA,EAC3B,MAAO,GAYX,IAPIolD,EADArkB,GAAQA,EAAKqkB,eAAe1B,sBACd3iB,EAAKqkB,YACZrkB,EAAAA,GAAQ,YAAaA,IACdA,EAAKnE,QAEL,UAF2B,SAKzCioB,EAAsBnB,sBAAsB0B,GAE3CJ,EAAAA,GACS9vD,OAAOoF,KAAK0F,CAAG,EAGzBlD,EAAQpQ,MACRs4D,EAAQt4D,KAAKoQ,EAAQpQ,IAAI,EAG7B,IAAK,IAAIhD,EAAI,EAAGA,EAAIs7D,EAAQz6D,OAAQ,EAAEb,EAAG,CACrC,IAAIoB,EAAMk6D,EAAQt7D,GAEdoT,EAAQ4nD,WAA0B,OAAb1kD,EAAIlV,IAG7Bi5D,YAAYzpD,EAAMohB,YACd1b,EAAIlV,GACJA,EACA+5D,EACA/nD,EAAQ6nD,mBACR7nD,EAAQ4nD,UACR5nD,EAAQimD,OAASjmD,EAAQynD,QAAU,KACnCznD,EAAQ3K,OACR2K,EAAQpQ,KACRoQ,EAAQunD,UACRvnD,EAAQ2nD,cACR3nD,EAAQmO,OACRnO,EAAQ+T,UACR/T,EAAQ0nD,iBACR1nD,EAAQ8lD,OACpB,CAAS,CACJ,CAEGyC,EAAS/qD,EAAKqW,KAAK7T,EAAQiN,SAAS,EACpC65C,EAAoC,CAAA,IAA3B9mD,EAAQsnD,eAA0B,IAAM,GAYrD,OAVItnD,EAAQwnD,kBACgB,eAApBxnD,EAAQ8lD,QAERgB,GAAU,uBAGVA,GAAU,mBAIK,EAAhByB,EAAO96D,OAAaq5D,EAASyB,EAAS,EACjD,EC5RI5B,MAAQtpD,QAERu+C,IAAMxjD,OAAOlG,UAAUqL,eACvBhN,QAAUD,MAAMC,QAEhBgtC,SAAW,CACXgqB,UAAW,CAAA,EACX/B,gBAAiB,CAAA,EACjBgD,WAAY,GACZ1C,QAAS,QACT0B,gBAAiB,CAAA,EACjBT,MAAO,CAAA,EACPlB,QAASc,MAAMhB,OACf14C,UAAW,IACXw7C,MAAO,EACPC,kBAAmB,CAAA,EACnBC,yBAA0B,CAAA,EAC1BC,eAAgB,IAChBC,YAAa,CAAA,EACbtD,aAAc,CAAA,EACdsC,mBAAoB,CAAA,CACxB,EAEIc,yBAA2B,SAAU/C,GACrC,OAAOA,EAAIv0D,QAAQ,YAAa,SAAU+0D,EAAI0C,GAC1C,OAAO3oD,OAAO4oD,aAAa32C,SAAS02C,EAAW,EAAE,CAAC,CAC1D,CAAK,CACL,EAEIE,gBAAkB,SAAUjuC,EAAK/a,GACjC,OAAI+a,GAAsB,UAAf,OAAOA,GAAoB/a,EAAQ+mD,OAA4B,CAAC,EAApBhsC,EAAI5rB,QAAQ,GAAG,EAC3D4rB,EAAInE,MAAM,GAAG,EAGjBmE,CACX,EAOIkuC,YAAc,sBAGdzB,gBAAkB,iBAElB0B,YAAc,SAAgCtD,EAAK5lD,GACnD,IAKIpT,EAqBI0vC,EAKAtuC,EAGA+sB,EAlCJ7X,EAAM,GACNimD,EAAWnpD,EAAQ0oD,kBAAoB9C,EAAIv0D,QAAQ,MAAO,EAAE,EAAIu0D,EAChEwD,EAAQppD,EAAQ4oD,iBAAmBS,EAAAA,EAAWppD,KAAAA,EAAYD,EAAQ4oD,eAClE1sC,EAAQitC,EAASvyC,MAAM5W,EAAQiN,UAAWm8C,CAAK,EAC/CE,EAAY,CAAC,EAGbxD,EAAU9lD,EAAQ8lD,QACtB,GAAI9lD,EAAQwnD,gBACR,IAAK56D,EAAI,EAAGA,EAAIsvB,EAAMzuB,OAAQ,EAAEb,EACM,IAA9BsvB,EAAMtvB,GAAGuC,QAAQ,OAAO,IACpB+sB,EAAMtvB,KAAO46D,gBACb1B,EAAU,QACH5pC,EAAMtvB,KAAOq8D,cACpBnD,EAAU,cAEdwD,EAAY18D,EACZA,EAAIsvB,EAAMzuB,QAKtB,IAAKb,EAAI,EAAGA,EAAIsvB,EAAMzuB,OAAQ,EAAEb,EACxBA,IAAM08D,KAWNvuC,EAFQ,CAAC,KAHTmzB,EAA2B,CAAC,KAD5Bqb,GAFAjtB,EAAOpgB,EAAMtvB,IAEWuC,QAAQ,IAAI,GACJmtC,EAAKntC,QAAQ,GAAG,EAAIo6D,EAAmB,IAIvEv7D,EAAMgS,EAAQ6lD,QAAQvpB,EAAMiB,SAASsoB,QAASC,EAAS,KAAK,EACtD9lD,EAAQ6nD,mBAAqB,KAAO,KAE1C75D,EAAMgS,EAAQ6lD,QAAQvpB,EAAK/qC,MAAM,EAAG28C,CAAG,EAAG3Q,SAASsoB,QAASC,EAAS,KAAK,EACpEa,MAAMF,SACRuC,gBAAgB1sB,EAAK/qC,MAAM28C,EAAM,CAAC,EAAGluC,CAAO,EAC5C,SAAUwpD,GACN,OAAOxpD,EAAQ6lD,QAAQ2D,EAAYjsB,SAASsoB,QAASC,EAAS,OAAO,CACxE,CACjB,KAGmB9lD,EAAQ2oD,0BAAwC,eAAZ7C,IAC3C/qC,EAAM4tC,yBAAyB5tC,CAAG,GAGZ,CAAC,EAAvBuhB,EAAKntC,QAAQ,KAAK,IAClB4rB,EAAMxqB,QAAQwqB,CAAG,EAAI,CAACA,GAAOA,GAG7B6gC,IAAIjuD,KAAKuV,EAAKlV,CAAG,EACjBkV,EAAIlV,GAAO24D,MAAMH,QAAQtjD,EAAIlV,GAAM+sB,CAAG,EAEtC7X,EAAIlV,GAAO+sB,GAInB,OAAO7X,CACX,EAEIumD,YAAc,SAAUC,EAAO3uC,EAAK/a,EAAS2pD,GAG7C,IAFA,IAAIC,EAAOD,EAAe5uC,EAAMiuC,gBAAgBjuC,EAAK/a,CAAO,EAEnDpT,EAAI88D,EAAMj8D,OAAS,EAAQ,GAALb,EAAQ,EAAEA,EAAG,CACxC,IAMIsW,EACI2mD,EACA/oD,EAPJghC,EAAO4nB,EAAM98D,GAEJ,OAATk1C,GAAiB9hC,EAAQ6oD,YACzB3lD,EAAM,GAAG1N,OAAOo0D,CAAI,GAEpB1mD,EAAMlD,EAAQulD,aAAentD,OAAO2G,OAAO,IAAI,EAAI,GAC/C8qD,EAA+B,MAAnB/nB,EAAKthB,OAAO,CAAC,GAA8C,MAAjCshB,EAAKthB,OAAOshB,EAAKr0C,OAAS,CAAC,EAAYq0C,EAAKvwC,MAAM,EAAG,CAAC,CAAC,EAAIuwC,EACjGhhC,EAAQsR,SAASy3C,EAAW,EAAE,EAC7B7pD,EAAQ6oD,aAA6B,KAAdgB,EAGxB,CAACnnD,MAAM5B,CAAK,GACTghC,IAAS+nB,GACT1pD,OAAOW,CAAK,IAAM+oD,GACT,GAAT/oD,GACCd,EAAQ6oD,aAAe/nD,GAASd,EAAQwoD,YAE5CtlD,EAAM,IACFpC,GAAS8oD,EACQ,cAAdC,IACP3mD,EAAI2mD,GAAaD,GAXjB1mD,EAAM,CAAE4mD,EAAGF,IAenBA,EAAO1mD,CACV,CAED,OAAO0mD,CACX,EAEIG,UAAY,SAA8BC,EAAUjvC,EAAK/a,EAAS2pD,GAClE,GAAKK,EAAL,CAKA,IAAIh8D,EAAMgS,EAAQunD,UAAYyC,EAAS34D,QAAQ,cAAe,MAAM,EAAI24D,EAKpE5sC,EAAQ,gBAIR6G,EAA0B,EAAhBjkB,EAAQyoD,OALP,eAK6B3xC,KAAK9oB,CAAG,EAChDmxC,EAASlb,EAAUj2B,EAAIuD,MAAM,EAAG0yB,EAAQnjB,KAAK,EAAI9S,EAIjDwP,EAAO,GACX,GAAI2hC,EAAQ,CAER,GAAI,CAACn/B,EAAQulD,cAAgB3J,IAAIjuD,KAAKyK,OAAOlG,UAAWitC,CAAM,GACtD,CAACn/B,EAAQwlD,gBACT,OAIRhoD,EAAKjO,KAAK4vC,CAAM,CACnB,CAKD,IADA,IAAIvyC,EAAI,EACe,EAAhBoT,EAAQyoD,OAA6C,QAA/BxkC,EAAU7G,EAAMtG,KAAK9oB,CAAG,IAAepB,EAAIoT,EAAQyoD,OAAO,CAEnF,GADA77D,GAAK,EACD,CAACoT,EAAQulD,cAAgB3J,IAAIjuD,KAAKyK,OAAOlG,UAAW+xB,EAAQ,GAAG1yB,MAAM,EAAG,CAAC,CAAC,CAAC,GACvE,CAACyO,EAAQwlD,gBACT,OAGRhoD,EAAKjO,KAAK00B,EAAQ,EAAE,CACvB,CAQD,OAJIA,GACAzmB,EAAKjO,KAAK,IAAMvB,EAAIuD,MAAM0yB,EAAQnjB,KAAK,EAAI,GAAG,EAG3C2oD,YAAYjsD,EAAMud,EAAK/a,EAAS2pD,CAAY,CAhDlD,CAiDL,EAEIM,sBAAwB,SAA+BhmB,GACvD,GAAI,CAACA,EACD,OAAO1G,SAGX,GAAqB,OAAjB0G,EAAK4hB,SAAqC5lD,KAAAA,IAAjBgkC,EAAK4hB,SAAiD,YAAxB,OAAO5hB,EAAK4hB,QACnE,MAAM,IAAI7iD,UAAU,+BAA+B,EAGvD,GAA4B,KAAA,IAAjBihC,EAAK6hB,SAA4C,UAAjB7hB,EAAK6hB,SAAwC,eAAjB7hB,EAAK6hB,QACxE,MAAM,IAAI9iD,UAAU,mEAAmE,EAE3F,IAAI8iD,GAAkC,KAAA,IAAjB7hB,EAAK6hB,QAA0BvoB,SAAmB0G,GAAV6hB,QAE7D,MAAO,CACHyB,UAAqC,KAAA,IAAnBtjB,EAAKsjB,UAA4BhqB,SAASgqB,UAAY,CAAC,CAACtjB,EAAKsjB,UAC/E/B,iBAAiD,WAAhC,OAAOvhB,EAAKuhB,gBAAgCvhB,EAAuB1G,UAAlBioB,gBAClEgD,YAAuC,UAA3B,OAAOvkB,EAAKukB,WAA0BvkB,EAAkB1G,UAAbirB,WACvD1C,QAASA,EACT0B,iBAAiD,WAAhC,OAAOvjB,EAAKujB,gBAAgCvjB,EAAuB1G,UAAlBiqB,gBAClET,OAA6B,WAAtB,OAAO9iB,EAAK8iB,MAAsB9iB,EAAa1G,UAARwpB,MAC9ClB,SAAiC,YAAxB,OAAO5hB,EAAK4hB,QAAyB5hB,EAAe1G,UAAVsoB,QACnD54C,WAAqC,UAA1B,OAAOg3B,EAAKh3B,WAA0B05C,MAAML,SAASriB,EAAKh3B,SAAS,EAAIg3B,EAAiB1G,UAAZtwB,UAEvFw7C,MAA8B,UAAtB,OAAOxkB,EAAKwkB,OAAqC,CAAA,IAAfxkB,EAAKwkB,MAAmB,CAACxkB,EAAKwkB,MAAQlrB,SAASkrB,MACzFC,kBAA8C,CAAA,IAA3BzkB,EAAKykB,kBACxBC,0BAAmE,WAAzC,OAAO1kB,EAAK0kB,yBAAyC1kB,EAAgC1G,UAA3BorB,yBACpFC,gBAA+C,UAA/B,OAAO3kB,EAAK2kB,eAA8B3kB,EAAsB1G,UAAjBqrB,eAC/DC,YAAkC,CAAA,IAArB5kB,EAAK4kB,YAClBtD,cAA2C,WAA7B,OAAOthB,EAAKshB,aAA6BthB,EAAoB1G,UAAfgoB,aAC5DsC,oBAAuD,WAAnC,OAAO5jB,EAAK4jB,mBAAmC5jB,EAA0B1G,UAArBsqB,kBAChF,CACA,EAEAhpC,QAAiB,SAAU+mC,EAAK3hB,GAC5B,IAAIjkC,EAAUiqD,sBAAsBhmB,CAAI,EAExC,GAAY,KAAR2hB,GAAAA,MAAcA,EACd,OAAO5lD,EAAQulD,aAAentD,OAAO2G,OAAO,IAAI,EAAI,GASxD,IANA,IAAImrD,EAAyB,UAAf,OAAOtE,EAAmBsD,YAAYtD,EAAK5lD,CAAO,EAAI4lD,EAChE1iD,EAAMlD,EAAQulD,aAAentD,OAAO2G,OAAO,IAAI,EAAI,GAInDvB,EAAOpF,OAAOoF,KAAK0sD,CAAO,EACrBt9D,EAAI,EAAGA,EAAI4Q,EAAK/P,OAAQ,EAAEb,EAC/B,IAAIoB,EAAMwP,EAAK5Q,GACXu9D,EAASJ,UAAU/7D,EAAKk8D,EAAQl8D,GAAMgS,EAAwB,UAAf,OAAO4lD,CAAgB,EAC1E1iD,EAAMyjD,MAAMz1B,MAAMhuB,EAAKinD,EAAQnqD,CAAO,EAG1C,OAAO2mD,MAAMtpB,QAAQn6B,CAAG,CAC5B,EC9PI0b,UAAYvhB,YACZwhB,MAAQ0T,QACRlyB,QAAUmyB,UAEdC,IAAiB,CACbpyB,QAHUmyB,UAIV3T,MALQ0T,QAMR3T,UAPYvhB,WAQhB,ECVA,SAAS+sD,kBAAgBr0B,EAAUs0B,GAAe,GAAI,EAAEt0B,aAAoBs0B,GAAgB,MAAM,IAAIrnD,UAAU,mCAAmC,CAAM,CAEzJ,SAASsnD,oBAAkBn2C,EAAQpmB,GAAS,IAAK,IAAInB,EAAI,EAAGA,EAAImB,EAAMN,OAAQb,CAAC,GAAI,CAAE,IAAI29D,EAAax8D,EAAMnB,GAAI29D,EAAW7wD,WAAa6wD,EAAW7wD,YAAc,CAAA,EAAO6wD,EAAWjyD,aAAe,CAAA,EAAU,UAAWiyD,IAAYA,EAAWhyD,SAAW,CAAA,GAAMH,OAAOC,eAAe8b,EAAQo2C,EAAWv8D,IAAKu8D,CAAU,EAAM,CAE7T,SAASC,eAAaH,EAAaI,EAAYC,GAAmJ,OAAhID,GAAYH,oBAAkBD,EAAYn4D,UAAWu4D,CAAU,EAAOC,GAAaJ,oBAAkBD,EAAaK,CAAW,EAAUL,CAAc,CAEvN,SAAS3Z,kBAAgBxtC,EAAKlV,EAAKgE,GAAiK,OAApJhE,KAAOkV,EAAO9K,OAAOC,eAAe6K,EAAKlV,EAAK,CAAEgE,MAAOA,EAAO0H,WAAY,CAAA,EAAMpB,aAAc,CAAA,EAAMC,SAAU,CAAA,CAAM,CAAA,EAAY2K,EAAIlV,GAAOgE,EAAgBkR,CAAM,CAKjN,IAAIynD,eAAiB,SAAwB5tC,GACvCA,IAGFoH,OAAO5wB,SAASwpB,MAAQA,EAE5B,EAEI6tC,eAA8B,WAKhC,SAASA,EAAejiD,GACtB,IAAIm4C,EAAQ9xD,KAER67D,EAAcliD,EAAKkiD,YACnBC,EAAkBniD,EAAKoiD,WACvBA,EAAiC,KAAA,IAApBD,EAA6B,IAAMA,EAChDnS,EAAYhwC,EAAKgwC,UACjBqS,EAAWriD,EAAKqiD,SAChBC,EAActiD,EAAKsiD,YAEvBb,kBAAgBp7D,KAAM47D,CAAc,EAEpCla,kBAAgB1hD,KAAM,cAAe,KAAA,CAAM,EAE3C0hD,kBAAgB1hD,KAAM,aAAc,KAAA,CAAM,EAE1C0hD,kBAAgB1hD,KAAM,aAAc,KAAA,CAAM,EAE1C0hD,kBAAgB1hD,KAAM,WAAY,KAAA,CAAM,EAExC0hD,kBAAgB1hD,KAAM,cAAe,KAAA,CAAM,EAE3C0hD,kBAAgB1hD,KAAM,aAAc,KAAA,CAAM,EAE1C0hD,kBAAgB1hD,KAAM,aAAc,CAAA,CAAK,EAEzC0hD,kBAAgB1hD,KAAM,aAAc,CAAA,CAAK,EAEzC0hD,kBAAgB1hD,KAAM,4BAA6B,CAAC,EAEpDA,KAAK67D,YAAcA,EACnB77D,KAAKk8D,WAAajrD,KAAAA,EAClBjR,KAAK+7D,WAAaA,EAClB/7D,KAAK6xD,WAAalI,EAClB3pD,KAAKg8D,SAAWA,EAChBh8D,KAAKi8D,YAAcA,EACnB7R,mBAAmB,SAAUxwC,GAC3B,IAAIub,EAASvb,EAAMub,OAEfpH,EAAQ+jC,EAAM+J,aAAe/J,EAAM+J,YAAY/J,EAAM/+B,KAAI,CAAE,EAE/D4oC,eAAe5tC,CAAK,EACpB+jC,EAAMqK,0BAA4BhnC,EAAOinC,QAAQ39D,MACvD,CAAK,CACF,CAgJD,OA1IA+8D,eAAaI,EAAgB,CAAC,CAC5B58D,IAAK,OACLgE,MAAO,WACL,OAAOhD,KAAKg8D,SAAS,CACnBK,SAAUC,IACV9vC,SAAUxsB,KAAKi8D,YAAa,CACpC,CAAO,CACF,CAKL,EAAK,CACDj9D,IAAK,QACLgE,MAAO,SAAe4yD,GACpB,IAAI1D,EAASlyD,KAEboqD,mBAAmB,SAAUvwC,GAC3B,IAAIsb,EAAStb,EAAMsb,OAEfpE,EAAMmhC,EAAOvI,UAAUiM,CAAU,EAEjC7nC,EAAQmkC,EAAO2J,aAAe3J,EAAO2J,YAAYjG,CAAU,EAE3D1D,EAAOgK,YACTn1D,aAAamrD,EAAOgK,UAAU,EAGhChK,EAAOgK,WAAav7D,WAAW,WAC7Bg7D,eAAe5tC,CAAK,EAEhBmkC,EAAOqK,YAAYxrC,CAAG,IACxBoE,EAAOinC,QAAQI,UAAU5G,EAAY7nC,GAAS,GAAIgD,CAAG,EACrDmhC,EAAOiK,0BAA4BhnC,EAAOinC,QAAQ39D,QAGpDyzD,EAAOuK,WAAa,CAAA,EACpBvK,EAAOgK,WAAajrD,KAAAA,CAC9B,EAAWihD,EAAO6J,UAAU,CAC5B,CAAO,CACF,CAML,EAAK,CACD/8D,IAAK,WACLgE,MAAO,SAAkB2iD,GACvB,IAAIwM,EAASnyD,KAEbA,KAAK08D,YAAc,SAAU55D,GACvBqvD,EAAO+J,aACTn1D,aAAaorD,EAAO+J,UAAU,EAC9B/J,EAAO+J,WAAajrD,KAAAA,GAGtBkhD,EAAOsK,WAAa,CAAA,EAChB7G,EAAa9yD,EAAMQ,MAOrBqiD,EAHGiQ,GACMzD,EAAOp/B,KAAI,CAED,CAE7B,EAEMq3B,mBAAmB,SAAUrmC,GACdA,EAAMoR,OACZ3yB,iBAAiB,WAAY2vD,EAAOuK,WAAW,CAC9D,CAAO,CACF,CASL,EAAK,CACD19D,IAAK,YACLgE,MAAO,SAAmB4yD,GACxB,OAAO51D,KAAK6xD,WAAW,CACrBwK,SAAUC,IACV1G,WAAYA,EACZppC,SAAUxsB,KAAKi8D,YAAa,CACpC,CAAO,CACF,CAKL,EAAK,CACDj9D,IAAK,UACLgE,MAAO,WACL,IAAI8vD,EAAS9yD,KAEbA,KAAK28D,WAAa,CAAA,EAClBvS,mBAAmB,SAAUlmC,GACvBiR,EAASjR,EAAMiR,OAEf29B,EAAO4J,aACTvnC,EAAOxyB,oBAAoB,WAAYmwD,EAAO4J,WAAW,CAEnE,CAAO,EAEG18D,KAAKk8D,YACPn1D,aAAa/G,KAAKk8D,UAAU,EAG9Bl8D,KAAKmrB,MAAM,EAAE,CACd,CACL,EAAK,CACDnsB,IAAK,cACLgE,MAAO,SAAqB+tB,GAC1B,IAAIgiC,EAAS/yD,KAEb,OAAOoqD,mBAAmB,SAAUjmC,GAClC,IAAIgR,EAAShR,EAAMgR,OAMfynC,EAA8B,EAAE7J,EAAO4J,YAAc5J,EAAOoJ,4BAA8BhnC,EAAOinC,QAAQ39D,QAC7G,MAEE,CAACs0D,EAAO0J,YACRG,GACA7rC,IAAQoE,EAAO3I,SAASqwC,IAElC,CAAO,CACF,CACF,EAAC,EAEKjB,CACT,IAEe,SAASkB,gBACtB,IAAI14C,EAA2B,EAAnB5lB,UAAUC,QAA+BwS,KAAAA,IAAjBzS,UAAU,GAAmBA,UAAU,GAAK,GAC5Eu+D,EAAkB34C,EAAMulC,UAqBxBqT,EAAiB54C,EAAM43C,SAkBvBiB,EAAmB74C,EAAM23C,WAEzBF,EAAcz3C,EAAMy3C,YACpBqB,EAAoB94C,EAAM63C,YAY9B,OAAO,IAAIL,eAAe,CACxBjS,UAtDkC,KAAA,IAApBoT,EAA6B,SAAUI,GACrD,IAAId,EAAWc,EAAMd,SACjBzG,EAAauH,EAAMvH,WACnBppC,EAAW2wC,EAAM3wC,SACjBsE,EAAWtE,EAASsE,SACpBssC,EAAW5wC,EAAS4wC,SACpBC,EAAiB7wC,EAAS8wC,KAC1BA,EAA0B,KAAA,IAAnBD,EAA4B,GAAKA,EACxCE,EAAW/wC,EAAS+wC,SACpBC,EAAOhxC,EAASgxC,KAChBC,EAAcpB,EAASzsC,UAAUgmC,CAAU,EAC3C8H,EAA0B,KAATJ,EAAc,GAAK,IAAI92D,OAAO82D,CAAI,EAGvD,OAAKG,EAIE,GAAGj3D,OAAOsqB,EAAU,IAAI,EAAEtqB,OAAO42D,CAAQ,EAAE52D,OAAOk3D,CAAc,EAAEl3D,OAAO+2D,EAAU,GAAG,EAAE/2D,OAAOi3D,CAAW,EAHxG,GAAGj3D,OAAOsqB,EAAU,IAAI,EAAEtqB,OAAO42D,CAAQ,EAAE52D,OAAOk3D,CAAc,EAAEl3D,OAAO+2D,CAAQ,GAGyB/2D,OAAOg3D,CAAI,CAClI,EAAMT,EAoCFf,SAlCgC,KAAA,IAAnBgB,EAA4B,SAAUW,GACnD,IAAItB,EAAWsB,EAAMtB,SACjB7vC,EAAWmxC,EAAMnxC,SAWrB,OAAO6vC,EAASxsC,MAAMrD,EAAS6I,OAAO9yB,MAAM,CAAC,EAAG,CAC9Ci3D,WAAY,EAClB,CAAK,CACL,EAAMwD,EAmBFjB,WAjBoC,KAAA,IAArBkB,EAA8B,IAAMA,EAkBnDpB,YAAaA,EACbI,YAhBsC,KAAA,IAAtBiB,EAA+B,WAC/C,OAAO9S,mBAAmB,SAAUwT,GAElC,OADaA,EAAOzoC,OACN3I,QACpB,EAAO,CACDjkB,SAAU,WACR,MAAM,IAAIqM,MAAM,0GAA0G,CAC3H,CACP,CAAK,CACF,EAAGsoD,CAQN,CAAG,CACH,CCtRA,SAAS7b,UAAQtuC,EAAQuuC,GAAkB,IAAwEC,EAApE/yC,EAAOpF,OAAOoF,KAAKuE,CAAM,EAA+P,OAAxP3J,OAAO0lB,wBAA6ByyB,EAAUn4C,OAAO0lB,sBAAsB/b,CAAM,EAAOuuC,IAAgBC,EAAUA,EAAQl7C,OAAO,SAAUm7C,GAAO,OAAOp4C,OAAO2lB,yBAAyBhc,EAAQyuC,CAAG,EAAE92C,UAAW,CAAE,GAAG8D,EAAKjO,KAAK4K,MAAMqD,EAAM+yC,CAAO,GAAY/yC,CAAO,CAErV,SAASizC,gBAAct8B,GAAU,IAAK,IAAIvnB,EAAI,EAAGA,EAAIY,UAAUC,OAAQb,CAAC,GAAI,CAAE,IAAI+tB,EAAyB,MAAhBntB,UAAUZ,GAAaY,UAAUZ,GAAK,GAAQA,EAAI,EAAKyjD,UAAQj4C,OAAOuiB,CAAM,EAAG,CAAA,CAAI,EAAE7nB,QAAQ,SAAU9E,GAAO0iD,kBAAgBv8B,EAAQnmB,EAAK2sB,EAAO3sB,EAAI,CAAI,CAAA,EAAcoK,OAAO4lB,0BAA6B5lB,OAAO6lB,iBAAiB9J,EAAQ/b,OAAO4lB,0BAA0BrD,CAAM,CAAC,EAAY01B,UAAQj4C,OAAOuiB,CAAM,CAAC,EAAE7nB,QAAQ,SAAU9E,GAAOoK,OAAOC,eAAe8b,EAAQnmB,EAAKoK,OAAO2lB,yBAAyBpD,EAAQ3sB,CAAG,CAAC,CAAE,CAAE,CAAM,CAAC,OAAOmmB,CAAS,CAEthB,SAASu8B,kBAAgBxtC,EAAKlV,EAAKgE,GAAiK,OAApJhE,KAAOkV,EAAO9K,OAAOC,eAAe6K,EAAKlV,EAAK,CAAEgE,MAAOA,EAAO0H,WAAY,CAAA,EAAMpB,aAAc,CAAA,EAAMC,SAAU,CAAA,CAAM,CAAA,EAAY2K,EAAIlV,GAAOgE,EAAgBkR,CAAM,CAK1M,IAAI2pD,uBAAyB,WAClC,IAAI9+D,EAA2B,EAAnBP,UAAUC,QAA+BwS,KAAAA,IAAjBzS,UAAU,GAAmBA,UAAU,GAAK,GAC5Es/D,EAAgB/+D,EAAMg/D,OACtBA,EAA2B,KAAA,IAAlBD,EAA2BhB,cAAe,EAAGgB,EACtDE,EAAsBj/D,EAAMk/D,aAC5BA,EAAuC,KAAA,IAAxBD,EAAiCvI,mBAAkB,EAAKuI,EAC3E,OAAO,SAAUrkD,GACf,IAAI+oC,EAAwB/oC,EAAK+oC,sBAYjCA,EAAsBmP,WAVtB,SAA2BD,GACzB,IAAIrM,EAAUn8C,OAAOoF,KAAKojD,CAAS,EAAE1nC,OAAO,SAAUoY,EAAKorB,GACzD,OAAOjM,gBAAcA,gBAAc,GAAInf,CAAG,EAAG,GAAIof,kBAAgB,GAAIgM,EAASkE,EAAUlE,EAAQ,CAAC,CAClG,EAAEhL,EAAsB2P,UAAU5G,iBAAiB,EAAE,CAAC,EACnDyS,EAAQD,EAAavI,aAAanQ,CAAO,EAC7C,OAAOwY,EAAOpU,UAAUuU,CAAK,CAC9B,EAKD,IAAIC,EAAiBltD,KAAAA,EACjBmtD,EAAiB1b,EAAsBsP,gBAC3C,MAAO,CACLI,cAAe,SAAuBx4C,GAChC2rC,EAAU3rC,EAAM2rC,QAChBqQ,EAAaqI,EAAavI,aAAanQ,CAAO,EAE3Bt0C,KAAAA,IAAnBktD,GAAiC7W,QAAQ6W,EAAgBvI,CAAU,IACrEmI,EAAO5yC,MAAMyqC,CAAU,EACvBuI,EAAiBvI,EAEpB,EACDyI,UAAW,WACT3b,EAAsBsP,gBAAkBvQ,gBAAcA,gBAAc,GAAI2c,CAAc,EAAGH,EAAatI,aAAaoI,EAAOhrC,KAAI,CAAE,CAAC,EACjIgrC,EAAOO,SAAS,SAAUJ,GACxBxb,EAAsB4P,WAAW2L,EAAatI,aAAauI,CAAK,CAAC,CAC3E,CAAS,CACF,EACDK,QAAS,aACTC,YAAa,WACXT,EAAO9S,QAAO,CACf,CACP,CACA,CACA,ECnDA,SAASwT,eAAetY,EAASzD,EAAuBU,GACtD,IAAI0H,EAActB,eAAe9G,EAAuBA,EAAsB2P,UAAW3P,EAAsBsP,eAAe,EAC9H7L,EAAQriD,QAAQ,SAAUghD,GACxB,IAAIyF,EAAe,GAYfxqB,GAVA+kB,EAAOiG,uBACLtB,EAAc3E,EAAOiG,qBAAqBD,CAAW,IAEtCrB,EAAYc,eAE7BA,EAAed,EAAYc,cAKlBnhD,OAAOoF,KAAK+7C,CAAY,EAAElkD,OAAO,SAAUrH,GACtD,OAA6BiS,KAAAA,IAAtBs5C,EAAavrD,EAC1B,CAAK,GACDokD,EAAQ+C,QAAQ5lD,KAAK,CACnBzB,KAAMgmD,EAAOC,OACbnC,WAAYkC,EAAOqL,aACnBpwB,OAAQA,CACd,CAAK,EAEqB,cAAlB+kB,EAAOC,QACT0Z,eAAe3Z,EAAOU,WAAY,EAAE9C,EAAuBU,CAAO,CAExE,CAAG,CACH,CAEO,SAASsb,oBACd,OAAOtU,mBAAmB,SAAUzwC,GAIlC,MAAqQ,CAAC,GAA9P,OAACglD,EADIhlD,EAAKwb,OACkBypC,YAA+D,OAACC,EAAwBF,EAAkBlsC,WAA0D,KAAA,EAASosC,EAAsB1+D,QAAQ,iBAAiB,EACpQ,EAAK,CACDoI,SAAU,WACR,MAAO,CAAA,CACR,CACL,CAAG,CACH,CASO,SAASu2D,2BACd,OAAO,SAAUllD,GACf,IAAI8oC,EAAwB9oC,EAAM8oC,sBAC9BU,EAAU,CACZ+C,QAAS,EACf,EACQ4Y,EAAmBx6D,SAASG,cAAc,MAAM,EAChDs6D,EAAUz6D,SAAS06D,cAAc,MAAM,EAE3C,OADAF,EAAiB/5D,KAAO,wBACjB,CACLotD,cAAe,aACfiM,UAAW,WAET19D,WAAW,WACT,IAAI+5C,EAASgI,EAAsBhI,OACnC0I,EAAQ8b,GAAKxkB,EAAOxnB,aAAewnB,EAAOxnB,YAAYT,UAAYioB,EAAOxnB,YAAYT,UAAUzvB,MAAQ03C,EAAOykB,IAC9GV,eAAe/b,EAAsB2P,UAAU7M,WAAU,EAAI9C,EAAuBU,CAAO,EAC3F2b,EAAiBhtC,QAAUpC,KAAKC,UAAUwzB,CAAO,EACjD4b,EAAQp9D,YAAYm9D,CAAgB,CACrC,EAAE,CAAC,CACL,EACDR,QAAS,aACTC,YAAa,WACXO,EAAiBK,OAAM,CACxB,CACP,CACA,CACA,CC/EA,SAASnrD,QAAQC,GAAmV,OAAtOD,QAArD,YAAlB,OAAO1M,QAAoD,UAA3B,OAAOA,OAAO4M,SAAmC,SAAiBD,GAAO,OAAO,OAAOA,CAAI,EAAuB,SAAiBA,GAAO,OAAOA,GAAyB,YAAlB,OAAO3M,QAAyB2M,EAAIzU,cAAgB8H,QAAU2M,IAAQ3M,OAAOrE,UAAY,SAAW,OAAOgR,CAAI,GAAqBA,CAAG,CAAI,CAE1X,SAASmtC,UAAQtuC,EAAQuuC,GAAkB,IAAwEC,EAApE/yC,EAAOpF,OAAOoF,KAAKuE,CAAM,EAA+P,OAAxP3J,OAAO0lB,wBAA6ByyB,EAAUn4C,OAAO0lB,sBAAsB/b,CAAM,EAAOuuC,IAAgBC,EAAUA,EAAQl7C,OAAO,SAAUm7C,GAAO,OAAOp4C,OAAO2lB,yBAAyBhc,EAAQyuC,CAAG,EAAE92C,UAAW,CAAE,GAAG8D,EAAKjO,KAAK4K,MAAMqD,EAAM+yC,CAAO,GAAY/yC,CAAO,CAErV,SAASizC,gBAAct8B,GAAU,IAAK,IAAIvnB,EAAI,EAAGA,EAAIY,UAAUC,OAAQb,CAAC,GAAI,CAAE,IAAI+tB,EAAyB,MAAhBntB,UAAUZ,GAAaY,UAAUZ,GAAK,GAAQA,EAAI,EAAKyjD,UAAQj4C,OAAOuiB,CAAM,EAAG,CAAA,CAAI,EAAE7nB,QAAQ,SAAU9E,GAAO0iD,kBAAgBv8B,EAAQnmB,EAAK2sB,EAAO3sB,EAAI,CAAI,CAAA,EAAcoK,OAAO4lB,0BAA6B5lB,OAAO6lB,iBAAiB9J,EAAQ/b,OAAO4lB,0BAA0BrD,CAAM,CAAC,EAAY01B,UAAQj4C,OAAOuiB,CAAM,CAAC,EAAE7nB,QAAQ,SAAU9E,GAAOoK,OAAOC,eAAe8b,EAAQnmB,EAAKoK,OAAO2lB,yBAAyBpD,EAAQ3sB,CAAG,CAAC,CAAE,CAAE,CAAM,CAAC,OAAOmmB,CAAS,CAEthB,SAASi2C,gBAAgBr0B,EAAUs0B,GAAe,GAAI,EAAEt0B,aAAoBs0B,GAAgB,MAAM,IAAIrnD,UAAU,mCAAmC,CAAM,CAEzJ,SAASsnD,kBAAkBn2C,EAAQpmB,GAAS,IAAK,IAAInB,EAAI,EAAGA,EAAImB,EAAMN,OAAQb,CAAC,GAAI,CAAE,IAAI29D,EAAax8D,EAAMnB,GAAI29D,EAAW7wD,WAAa6wD,EAAW7wD,YAAc,CAAA,EAAO6wD,EAAWjyD,aAAe,CAAA,EAAU,UAAWiyD,IAAYA,EAAWhyD,SAAW,CAAA,GAAMH,OAAOC,eAAe8b,EAAQo2C,EAAWv8D,IAAKu8D,CAAU,EAAM,CAE7T,SAASC,aAAaH,EAAaI,EAAYC,GAAmJ,OAAhID,GAAYH,kBAAkBD,EAAYn4D,UAAWu4D,CAAU,EAAOC,GAAaJ,kBAAkBD,EAAaK,CAAW,EAAUL,CAAc,CAEvN,SAASgE,UAAUC,EAAUC,GAAc,GAA0B,YAAtB,OAAOA,GAA4C,OAAfA,EAAuB,MAAM,IAAIvrD,UAAU,oDAAoD,EAAKsrD,EAASp8D,UAAYkG,OAAO2G,OAAOwvD,GAAcA,EAAWr8D,UAAW,CAAEzD,YAAa,CAAEuD,MAAOs8D,EAAU/1D,SAAU,CAAA,EAAMD,aAAc,CAAA,CAAM,CAAA,CAAE,EAAOi2D,GAAYC,gBAAgBF,EAAUC,CAAU,CAAI,CAEjY,SAASC,gBAAgB3hE,EAAGiC,GAA+G,OAA1G0/D,gBAAkBp2D,OAAOq2D,gBAAkB,SAAyB5hE,EAAGiC,GAAsB,OAAjBjC,EAAEusB,UAAYtqB,EAAUjC,CAAE,GAA2BA,EAAGiC,CAAC,CAAI,CAE1K,SAAS4/D,aAAaC,GAAW,IAAIC,EAA4BC,0BAAyB,EAAI,OAAO,WAAkC,IAAmFC,EAA/EC,EAAQC,gBAAgBL,CAAO,EAA0M,OAAOM,2BAA2BjgE,KAA7N4/D,GAAiCE,EAAYE,gBAAgBhgE,IAAI,EAAEP,YAAsBgQ,QAAQC,UAAUqwD,EAAOvhE,UAAWshE,CAAS,GAAqBC,EAAM50D,MAAMnL,KAAMxB,SAAS,CAAmD,CAAE,CAAK,CAEza,SAASyhE,2BAA2B16B,EAAM5mC,GAAQ,MAAIA,CAAAA,GAA2B,WAAlBsV,QAAQtV,CAAI,GAAkC,YAAhB,OAAOA,EAA8CuhE,uBAAuB36B,CAAI,EAA1C5mC,CAA8C,CAEjL,SAASuhE,uBAAuB36B,GAAQ,GAAa,KAAA,IAATA,EAAmB,MAAM,IAAI46B,eAAe,2DAA2D,EAAK,OAAO56B,CAAO,CAEtK,SAASs6B,4BAA8B,GAAuB,aAAnB,OAAOpwD,SAA2B,CAACA,QAAQC,UAAW,MAAO,CAAA,EAAO,GAAID,QAAQC,UAAU0wD,KAAM,MAAO,CAAA,EAAO,GAAqB,YAAjB,OAAOC,MAAsB,MAAO,CAAA,EAAM,IAAiF,OAA3E7rD,KAAKtR,UAAUqR,SAAS5V,KAAK8Q,QAAQC,UAAU8E,KAAM,GAAI,YAAc,CAAC,EAAU,CAAA,EAAQ,MAAOzW,GAAK,MAAO,CAAA,EAAU,CAEpU,SAASiiE,gBAAgBniE,GAAwJ,OAAnJmiE,gBAAkB52D,OAAOq2D,eAAiBr2D,OAAO83C,eAAiB,SAAyBrjD,GAAK,OAAOA,EAAEusB,WAAahhB,OAAO83C,eAAerjD,CAAC,CAAI,GAAyBA,CAAC,CAAI,CAE7M,SAAS6jD,kBAAgBxtC,EAAKlV,EAAKgE,GAAiK,OAApJhE,KAAOkV,EAAO9K,OAAOC,eAAe6K,EAAKlV,EAAK,CAAEgE,MAAOA,EAAO0H,WAAY,CAAA,EAAMpB,aAAc,CAAA,EAAMC,SAAU,CAAA,CAAM,CAAA,EAAY2K,EAAIlV,GAAOgE,EAAgBkR,CAAM,CAUjN,IAAIm2C,YAAYnE,oCAAoC,CAClDlhD,KAAM,eACR,CAAC,EAED,SAASs7D,mBACP,MAAO,GACT,CAUA,uDAAIC,gBAA6B,WAC/BlB,UAAUkB,EAqlBVjrB,MArlBsC,EAEtC,IAAIkrB,EAASd,aAAaa,CAAa,EAEvC,SAASA,EAAcvvD,GAGrBoqD,gBAAgBp7D,KAAMugE,CAAa,EAInC7e,kBAAgBwe,uBAFhBpO,EAAQ0O,EAAO7hE,KAAKqB,IAAI,CAEoB,EAAG,SAAU,KAAA,CAAM,EAE/D0hD,kBAAgBwe,uBAAuBpO,CAAK,EAAG,YAAa,KAAA,CAAM,EAElEpQ,kBAAgBwe,uBAAuBpO,CAAK,EAAG,iBAAkB,KAAA,CAAM,EAEvEpQ,kBAAgBwe,uBAAuBpO,CAAK,EAAG,gBAAiB,IAAI,EAEpEpQ,kBAAgBwe,uBAAuBpO,CAAK,EAAG,SAAU,KAAA,CAAM,EAE/DpQ,kBAAgBwe,uBAAuBpO,CAAK,EAAG,aAAc,KAAA,CAAM,EAEnEpQ,kBAAgBwe,uBAAuBpO,CAAK,EAAG,YAAa,KAAA,CAAM,EAElEpQ,kBAAgBwe,uBAAuBpO,CAAK,EAAG,UAAW,KAAA,CAAM,EAEhEpQ,kBAAgBwe,uBAAuBpO,CAAK,EAAG,kBAAmB,KAAA,CAAM,EAExEpQ,kBAAgBwe,uBAAuBpO,CAAK,EAAG,cAAe,EAAE,EAEhEpQ,kBAAgBwe,uBAAuBpO,CAAK,EAAG,sBAAuB,KAAA,CAAM,EAE5EpQ,kBAAgBwe,uBAAuBpO,CAAK,EAAG,sBAAuB,KAAA,CAAM,EAE5EpQ,kBAAgBwe,uBAAuBpO,CAAK,EAAG,kBAAmB,KAAA,CAAM,EAExEpQ,kBAAgBwe,uBAAuBpO,CAAK,EAAG,kBAAmB,KAAA,CAAM,EAExEpQ,kBAAgBwe,uBAAuBpO,CAAK,EAAG,aAAc,KAAA,CAAM,EAEnEpQ,kBAAgBwe,uBAAuBpO,CAAK,EAAG,kBAAmB,KAAA,CAAM,EAExEpQ,kBAAgBwe,uBAAuBpO,CAAK,EAAG,oBAAqB,KAAA,CAAM,EAE1EpQ,kBAAgBwe,uBAAuBpO,CAAK,EAAG,aAAc,EAAE,EAE/DpQ,kBAAgBwe,uBAAuBpO,CAAK,EAAG,sBAAuB,KAAA,CAAM,EAE5EpQ,kBAAgBwe,uBAAuBpO,CAAK,EAAG,SAAU,MAAM,EAE/DpQ,kBAAgBwe,uBAAuBpO,CAAK,EAAG,QAAS7gD,KAAAA,CAAS,EAEjEywC,kBAAgBwe,uBAAuBpO,CAAK,EAAG,iBAAkBpM,MAAM,WACjEoM,EAAMyM,SACRzM,EAAMpa,WAAWriB,QAEpB,CAAA,CAAC,EAEFqsB,kBAAgBwe,uBAAuBpO,CAAK,EAAG,iBAAkBpM,MAAM,WACrE,IAAI+a,EAAoBjiE,EAAmB,EAAnBA,UAAUC,QAA+BwS,KAAAA,IAAjBzS,UAAU,KAAmBA,UAAU,GAElFszD,EAAMpa,WAAWyH,uBACpBp4C,aAAa+qD,EAAM4O,mBAAmB,EACtC5O,EAAM4O,oBAAsB,KAExBD,IACF3O,EAAMlhC,OAAS,OACfkhC,EAAMzmC,MAAQpa,KAAAA,IAIlB6gD,EAAMO,UAAUlvD,OAAO,CACrBu/C,sBAAuBwd,uBAAuBpO,CAAK,CAC3D,CAAO,EAEDA,EAAM1b,KAAK,QAAQ,CACpB,CAAA,CAAC,EAEFsL,kBAAgBwe,uBAAuBpO,CAAK,EAAG,wBAAyBpM,MAAM,WAC5E,IAAIib,EAAc7O,EAAMO,UAAU5G,iBAAiB,EAAE,EAErDqG,EAAM8O,WAAW98D,QAAQ,SAAU6V,GAClBA,EAAKotB,SACXqrB,cAAc,CACrB7M,QAASob,CACnB,CAAS,CACT,CAAO,CACF,CAAA,CAAC,EAnFF,IAAI7O,EAqFA+O,EAAqB7vD,EAAQ8uB,UAC7BA,EAAmC,KAAA,IAAvB+gC,EAAgC,KAAOA,EACnD/L,EAAe9jD,EAAQ8jD,aACvBgM,EAAwB9vD,EAAQotD,eAChCA,EAA2C,KAAA,IAA1B0C,EAAmC,GAAKA,EACzDC,EAAmB/vD,EAAQgwD,QAC3BA,EAA+B,KAAA,IAArBD,EAA8B,KAAOA,EAC/CE,EAAiBjwD,EAAQiwD,eACzBC,EAAwBlwD,EAAQmwD,mBAChCA,EAA+C,KAAA,IAA1BD,EAAmC,IAAMA,EAC9DE,EAAwBpwD,EAAQqwD,aAChCA,EAAyC,KAAA,IAA1BD,EAAmC,KAAOA,EACzDE,EAAwBtwD,EAAQuwD,eAChCA,EAA2C,KAAA,IAA1BD,EAAmC,KAAOA,EAC3DE,EAAwBxwD,EAAQohD,cAChCA,EAA0C,KAAA,IAA1BoP,EAAmC,KAAOA,EAE9D,GAAkB,OAAd1hC,EACF,MAAM,IAAIlrB,MAAMy1C,YAAU,qCAAqC,CAAC,EAGlE,GAAqB,OAAjBgX,EACF,MAAM,IAAIzsD,MAAMy1C,YAAU,wCAAwC,CAAC,EAGrE,GAAmC,YAA/B,OAAOgX,EAAahsC,OACtB,MAAM,IAAIzgB,MAAM,oLAAoL,EAStM,GAN4C,YAAxC,OAAOysD,EAAa5iC,iBACtB4iC,EAAa5iC,gBAAgB,qBAAqBj4B,OAAOsG,QAAS,GAAG,CAAC,EAKpEy0D,GAA4C,YAA1B,OAAOA,EAC3B,MAAM,IAAI3sD,MAAMy1C,YAAU,mDAAmD,CAAC,EA4ChF,OAtCAyH,EAAMpX,OAAS2mB,EACfvP,EAAMyP,eAAiBA,EACvBzP,EAAMhyB,UAAYA,EAClBgyB,EAAMzT,OAAS,KACfyT,EAAMpa,WAAa,KACnBoa,EAAMO,UAAYvgD,QAAM,CACtBguB,UAAWA,CACjB,CAAK,EACDgyB,EAAMM,cAAgBA,EACtBN,EAAMyM,QAAU,CAAA,EAChBzM,EAAMpI,gBAAkB,CACtB+X,QAASC,aAAc,CACrB5M,aAAcA,CACtB,CAAO,EACD6M,eAAgB,EACtB,EACI7P,EAAM8P,oBAAsBT,EAC5BrP,EAAM4O,oBAAsB,KAC5B5O,EAAMD,WAAayO,iBACnBxO,EAAME,gBAAkBoM,EACxBtM,EAAMY,gBAAkB,KAEpBuO,IACFnP,EAAM+P,gBAAkBZ,GAG1BnP,EAAM5O,oBAAsB3D,KAExByhB,GAGFlP,EAAMgQ,IAAIjE,uBAF6B,WAAnB,OAAOmD,EAAwB/vD,KAAAA,EAAY+vD,CAEjB,CAAC,EAG7CtC,kBAAiB,GACnB5M,EAAMgQ,IAAIhD,yBAAwB,CAAE,EAG/BhN,CACR,CAyaD,OAnaA0J,aAAa+E,EAAe,CAAC,CAC3BvhE,IAAK,mBACL6J,IAaA,WAEE,MAAuB,YAAhB7I,KAAK4wB,MACb,CACL,EAAK,CACD5xB,IAAK,MACLgE,MAAO,WAGL,IAFA,IAAIkvD,EAASlyD,KAEJ6iD,EAAOrkD,UAAUC,OAAQmiE,EAAa,IAAIt/D,MAAMuhD,CAAI,EAAGC,EAAO,EAAGA,EAAOD,EAAMC,CAAI,GACzF8d,EAAW9d,GAAQtkD,UAAUskD,GAG/B,IAAIif,EAAoBnB,EAAWl5D,IAAI,SAAU2D,GAC/C,IAAI22D,EAAgBvgB,gBAAc,CAChC4c,UAAW9e,KACXgf,QAAShf,KACTif,YAAajf,KACb6S,cAAe7S,IAChB,EAAEl0C,EAAG,CACJq3C,sBAAuBwP,CACxB,CAAA,CAAC,EAOF,OALAA,EAAO0O,WAAWrgE,KAAK,CACrB0hE,QAAS52D,EACT07B,SAAUi7B,CACpB,CAAS,EAEMA,CACf,CAAO,EAUD,OAPIhiE,KAAKu+D,SACPwD,EAAkBj+D,QAAQ,SAAUtC,GAClCA,EAAE68D,UAAS,EACX78D,EAAE+8D,QAAO,CACnB,CAAS,EAGIv+D,IACR,CAKL,EAAK,CACDhB,IAAK,QACLgE,MAAO,WACL,IAAK,IAAI0hD,EAAQlmD,UAAUC,OAAQyjE,EAAoB,IAAI5gE,MAAMojD,CAAK,EAAGC,EAAQ,EAAGA,EAAQD,EAAOC,CAAK,GACtGud,EAAkBvd,GAASnmD,UAAUmmD,GAWvC,OARA3kD,KAAK4gE,WAAWv6D,OAAO,SAAU7E,GAC/B,OAAO0gE,EAAkBz4C,SAASjoB,EAAEygE,OAAO,CACnD,CAAO,EAAEn+D,QAAQ,SAAUtC,GACnB,OAAOA,EAAEulC,SAASy3B,aAC1B,CAAO,EACDx+D,KAAK4gE,WAAa5gE,KAAK4gE,WAAWv6D,OAAO,SAAU7E,GACjD,MAAO,CAAC0gE,EAAkBz4C,SAASjoB,EAAEygE,OAAO,CACpD,CAAO,EACMjiE,IACR,CAEL,EAAK,CACDhB,IAAK,mBACLgE,MAAO,WAEL,OAAOhD,KAAK8hE,IAAI32D,MAAMnL,KAAMxB,SAAS,CACtC,CASL,EAAK,CACDQ,IAAK,YACLgE,MAAO,SAAmB8hD,GAExB,OAAO9kD,KAAKmvD,WAAW,CAACrK,EAAO,CAChC,CAOL,EAAK,CACD9lD,IAAK,aACLgE,MAAO,SAAoBmjD,GACzB,GAAI,CAAC7kD,MAAMC,QAAQ4kD,CAAO,EACxB,MAAM,IAAIvxC,MAAMy1C,YAAU,8EAA8E,CAAC,EAG3G,GAAIlE,EAAQtlD,KAAK,SAAUikD,GACzB,MAA8B,YAAvB,OAAOA,EAAO+F,MAAgD,YAAzB,OAAO/F,EAAO3hD,MAClE,CAAO,EACC,MAAM,IAAIyR,MAAMy1C,YAAU,mEAAmE,CAAC,EAIhG,OADArqD,KAAKqyD,UAAUlD,WAAWhJ,CAAO,EAC1BnmD,IACR,CASL,EAAK,CACDhB,IAAK,eACLgE,MAAO,SAAsB8hD,GAE3B,OAAO9kD,KAAKkvD,cAAc,CAACpK,EAAO,CACnC,CAQL,EAAK,CACD9lD,IAAK,gBACLgE,MAAO,SAAuBmjD,GAC5B,GAAI,CAAC7kD,MAAMC,QAAQ4kD,CAAO,EACxB,MAAM,IAAIvxC,MAAMy1C,YAAU,oFAAoF,CAAC,EAGjH,GAAIlE,EAAQtlD,KAAK,SAAUikD,GACzB,MAAiC,YAA1B,OAAOA,EAAOmG,OAC7B,CAAO,EACC,MAAM,IAAIr2C,MAAMy1C,YAAU,mDAAmD,CAAC,EAIhF,OADArqD,KAAKqyD,UAAUnD,cAAc/I,CAAO,EAC7BnmD,IACR,CAQL,EAAK,CACDhB,IAAK,QACLgE,MAAO,WACL,IAAImvD,EAASnyD,KAEb,GAAIA,KAAKu+D,QACP,MAAM,IAAI3pD,MAAMy1C,YAAU,kDAAkD,CAAC,EAQ/E,IAqBM8X,EAsEAC,EA3FF1qB,EAAa13C,KAAK03C,YAAc2H,sBAAoBr/C,KAAK06C,OAAQ16C,KAAK8/B,SAAS,EAEnF4X,EAAWriB,OAAS,WAalB,OAZA88B,EAAOvhC,OAAS,UAMhBuhC,EAAO/b,KAAK,QAAQ,EAMbsB,EAAW4D,8BAC1B,EAEUt7C,KAAK6hE,kBAGHM,EAAa,CACf9sC,OAAQ,WACN,OAAO,IAAI5F,QAAQ8vB,IAAI,CACxB,CACX,EACQv/C,KAAKqiE,kBAAoB3qB,EAAWriB,OAAOrqB,KAAK0sC,CAAU,EAE1DA,EAAWriB,OAAS,WAClB,IAAIitC,EAAkBnQ,EAAOE,UAAUhN,UAAS,EAE5Ckd,EAAuBljB,sBAAoB8iB,EAAYG,EAAgBh/D,MAAMwO,MAAOwwD,EAAgBh/D,KAAK,EAe7G,OAdAi/D,EAAqBxrB,KAAK,SAAU,SAAUn9B,GACxCtW,EAAQsW,EAAMtW,MAClBg/D,EAAgB7kB,0CAA0Cn6C,CAAK,EAE/D6uD,EAAOkQ,kBAAiB,CACpC,CAAW,EAEDE,EAAqBt3D,GAAG,SAAU,SAAU4O,GACtCvW,EAAQuW,EAAMvW,MAClBg/D,EAAgBv8D,SAASzC,CAAK,CAC1C,CAAW,EAED6uD,EAAO0P,gBAAgBU,CAAoB,EAEpC7qB,CACjB,GAKMA,EAAWzsC,GAAG,QAAS,SAAU8Y,GAC/B,IAIMyyB,EAJFnrB,EAAQtH,EAAMsH,MAEZA,aAAiBzW,QAEjB4hC,EAAMnrB,EACVA,EAAQjiB,OAAOoF,KAAKgoC,CAAG,EAAEtsB,OAAO,SAAUoY,EAAKtjC,GAE7C,OADAsjC,EAAItjC,GAAOw3C,EAAIx3C,GACRsjC,CACR,EAAE,IAAI1tB,MAAM4hC,EAAItlB,OAAO,CAAC,GAS3B7F,EAAMA,MAAQA,EACd8mC,EAAO9mC,MAAQA,EACf8mC,EAAOvhC,OAAS,QAEhBuhC,EAAOS,eAAe,CAAA,CAAK,EAG3BT,EAAO/b,KAAK,QAAS/qB,CAAK,CAClC,CAAO,EACDrrB,KAAK03C,WAAaA,EAClB13C,KAAK4gE,WAAW98D,QAAQ,SAAUogB,GACjBA,EAAM6iB,SACZs3B,UAAS,CAC1B,CAAO,EACDr+D,KAAKqyD,UAAUxH,KAAK,CAClBnI,sBAAuB1iD,KACvBmwC,OAAQ,KACRoV,QAASvlD,KAAKgyD,eACtB,CAAO,EAEGhyD,KAAK0yD,iBACH0P,EAAyBpiE,KAAKiyD,eAIlCjyD,KAAKiyD,eAAiBvM,MAAMnG,IAAI,EAMhCmG,MAAM,WACJyM,EAAOF,eAAiBmQ,CACzB,CAAA,KAS2C,EAArCpiE,KAAKqyD,UAAU7M,WAAU,EAAG/mD,QACjCuB,KAAKiyD,eAAc,EAKvBjyD,KAAKq+C,OAASr+C,KAAKqyD,UAAUhN,UAAS,EAGtCrlD,KAAKu+D,QAAU,CAAA,EACfv+D,KAAK4gE,WAAW98D,QAAQ,SAAUqgB,GACjBA,EAAM4iB,SACZw3B,QAAO,CACxB,CAAO,CACF,CAQL,EAAK,CACDv/D,IAAK,UACLgE,MAAO,WACLhD,KAAKiyD,eAAenM,SACpB9lD,KAAK4yD,eAAe9M,SACpB/+C,aAAa/G,KAAK0gE,mBAAmB,EACrC1gE,KAAKkvD,cAAclvD,KAAKqyD,UAAU7M,WAAY,CAAA,EAC9CxlD,KAAKqyD,UAAUpH,UAIfjrD,KAAKu+D,QAAU,CAAA,EAGfv+D,KAAKm3C,mBAAkB,EACvBn3C,KAAK03C,WAAWP,qBAChBn3C,KAAK03C,WAAa,KAClB13C,KAAKq+C,OAAS,KACdr+C,KAAK4gE,WAAW98D,QAAQ,SAAUsgB,GACjBA,EAAM2iB,SACZy3B,YAAW,CAC5B,CAAO,CACF,CACL,EAAK,CACDx/D,IAAK,wBACLgE,MAAO,WACL,IAAI8vD,EAAS9yD,KAERA,KAAK0gE,sBACR1gE,KAAK0gE,oBAAsB//D,WAAW,WACpCmyD,EAAOliC,OAAS,UAEhBkiC,EAAOF,eAAc,CAC/B,EAAW5yD,KAAK4hE,mBAAmB,EAE9B,CAOL,EAAK,CACD5iE,IAAK,aACLgE,MAAO,SAAoBuiD,GACzB,IAAIwN,EAAS/yD,KAETwiE,EAAoBhkE,EAAmB,EAAnBA,UAAUC,QAA+BwS,KAAAA,IAAjBzS,UAAU,KAAmBA,UAAU,GAEvF,GAAI,CAACwB,KAAK03C,WACR,MAAM,IAAI9iC,MAAMy1C,YAAU,4DAA4D,CAAC,EAKzFrqD,KAAKqyD,UAAUa,iBACf,IAAIyN,EAAiC,YAAnB,OAAOpb,EAAyBA,EAAQvlD,KAAKqyD,UAAU5G,iBAAiB,EAAE,CAAC,EAAIlG,EAE7FvlD,KAAKoyD,eAAiBoQ,EACxBxiE,KAAKoyD,cAAc,CACjB7M,QAASob,EACTrO,WAAY,SAAoBrN,GAC9BD,oBAA4C,YAAxB,OAAOC,EAA8BA,EAAa0b,CAAW,EAAI1b,EAAc8N,EAAOV,SAAS,EAEnHU,EAAOd,eAAc,EAErBc,EAAOF,sBAAqB,CAC7B,CACX,CAAS,GAED7N,oBAAoB2b,EAAa3gE,KAAKqyD,SAAS,EAC/CryD,KAAKiyD,eAAc,EACnBjyD,KAAK6yD,sBAAqB,EAE7B,CACL,EAAK,CACD7zD,IAAK,aACLgE,MAAO,WAML,OALIhD,KAAKu+D,SAEPv+D,KAAKqyD,UAAUa,iBAGVlzD,KAAKqyD,UAAU5G,iBAAiB,EAAE,CAC1C,CACL,EAAK,CACDzsD,IAAK,YACLgE,MAAO,WAGL,GAAKhD,KAAKu+D,QAIV,OAAOv+D,KAAK6xD,WANuB,EAAnBrzD,UAAUC,QAA+BwS,KAAAA,IAAjBzS,UAAU,GAAmBA,UAAU,GAAK,EAMpD,EAH9B,MAAM,IAAIoW,MAAMy1C,YAAU,2DAA2D,CAAC,CAIzF,CACL,EAAK,CACDrrD,IAAK,UACLgE,MAAO,WACL,GAAI,CAAChD,KAAK03C,WACR,MAAM,IAAI9iC,MAAMy1C,YAAU,yDAAyD,CAAC,EAGtFrqD,KAAK03C,WAAWhZ,WAAY,EAACrJ,OAAM,CACpC,CACF,EAAC,EAEKkrC,CACT,EAAc,EAEdkC,gBAAelC,2LCnoBwFngE,EAA4C1C,EAAa8D,EAAc/D,EAAoBqC,EACxEnC,mHADnByC,EAAE,YAAa,OAAOgJ,OAAOzE,GAAGyE,OAAOzE,GAA1G,SAAWzG,EAAEoC,GAAG,OAAOpC,IAAIoC,IAAI,IAAIpC,GAAG,EAAEA,GAAI,EAAEoC,IAAIpC,GAAIA,GAAGoC,GAAIA,CAAC,EAAiD5C,EAAhI2Q,WAAoItC,SAASvK,EAA7I6M,WAAiJnC,UAAUzO,EAA3J4Q,WAA+JlC,gBAAgBrM,EAA/KuO,WAAmL5H,cAC5E9I,EAAE,aAAc,OAAOw3B,QAAQ,KAAA,IAAqBA,OAAO5wB,UAAU,KAAA,IAAqB4wB,OAAO5wB,SAASG,cAAzI,SAAWxG,EAAEoC,GAAG,OAAOA,EAAC,CAAE,EAD+F,SAAWpC,EAAEoC,GAAG,IAAIP,EAAEO,EAAC,EAAGxC,EAAEJ,EAAE,CAACglE,KAAK,CAAC1/D,MAAMjD,EAAE4iE,YAAYriE,CAAC,CAAC,CAAC,EAAEtC,EAAEF,EAAE,GAAG4kE,KAAKliE,EAAE1C,EAAE,GAAwJ,OAArJL,EAAE,WAAWO,EAAEgF,MAAMjD,EAAE/B,EAAE2kE,YAAYriE,EAAE/B,EAAEP,CAAC,GAAGwC,EAAE,CAACkiE,KAAK1kE,CAAC,CAAC,CAAC,EAAE,CAACE,EAAE6B,EAAEO,EAAE,EAAEkB,EAAE,WAA6B,OAAlBjD,EAAEP,CAAC,GAAGwC,EAAE,CAACkiE,KAAK1kE,CAAC,CAAC,EAASE,EAAE,WAAWK,EAAEP,CAAC,GAAGwC,EAAE,CAACkiE,KAAK1kE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAACE,EAAE,EAAE4B,EAAEC,CAAC,EAASA,CAAC,EAC5M6iE,wCAA4Br2D,qBAAC,KAAA,IADhQ8B,WAC2Q9B,qBAD3Q8B,WACkS9B,qBAAqB5O,2CAA1U,SAASY,EAAEL,GAAG,IAAIoC,EAAEpC,EAAEykE,YAAYzkE,EAAEA,EAAE8E,MAAM,IAAI,IAAIjD,EAAEO,EAAG,EAAC,MAAM,CAACF,EAAElC,EAAE6B,CAAC,CAAmB,CAAjB,MAAMjC,GAAG,OAAM,CAAE,CAAC,OCPxFghC,QAAiBzwB,iDCInB,IAAIw0D,kBAAoB,CAAC,UAAUr8D,OAAOs8D,GAAc,GAAG,EAAG,wBAAwBt8D,OAAOsG,UAAS,GAAG,EAAG,8BAA8BtG,OAAOsG,UAAS,GAAG,GACzJi2D,gBAAkB,+BAA+Bv8D,OAAOsG,UAAS,GAAG,EACjE,SAASk2D,oBAAoBjkE,GAClC,IAAIkH,EAAcotD,iBACd7D,EAAgBtB,gCAChB+U,EAAc1P,6BACd2P,EAAiBD,MAAAA,EAAiD,KAAA,EAASA,EAAYC,eACvFC,EAAY12D,IAAO,IAAI,EACvBkiD,EAAeliD,IAAO1N,CAAK,EAsCzBq8C,GApCoB,OAAtB+nB,EAAUtjE,UAIRw1B,EAAS,IAAIkrC,gBAAcxhE,CAAK,GAEhCywD,GAAiB0T,KAOnB7tC,EAAOq9B,gBAAkBwQ,GAAkB,IAG7CE,iBAAiBrkE,EAAMsiE,aAAc,GAAG76D,OAAOq8D,kBAAmB,CAACrT,GAAiBuT,gBAAgB,CAAC,GAIjGvT,GAAiB0T,IACnB7tC,EAAOguC,MAAK,EAGV7T,GAGFA,EAAc8T,aAAa,CACzBjuC,OAAQA,CAChB,CAAO,EAGH8tC,EAAUtjE,QAAUw1B,GAIN8tC,EAAUtjE,SACpB0jE,EAAY5U,EAAa9uD,QA6C3BgvD,GA3CE0U,EAAUzjC,YAAc/gC,EAAM+gC,YAChCsb,EAAQiD,OAAOtW,SAAShpC,EAAM+gC,SAAS,EAAEzK,SAEzCs5B,EAAa9uD,QAAUd,GAGrBwkE,EAAUlC,eAAiBtiE,EAAMsiE,eACnC+B,iBAAiBrkE,EAAMsiE,aAAc,GAAG76D,OAAOq8D,kBAAmB,CAACrT,GAAiBuT,gBAAgB,CAAC,EAErG3nB,EAAQ1D,WAAWiD,UAAU57C,EAAMsiE,YAAY,EAAEhsC,SAEjDs5B,EAAa9uD,QAAUd,GAGrBwkE,EAAUnR,gBAAkBrzD,EAAMqzD,gBACpChX,EAAQgX,cAAgBrzD,EAAMqzD,cAC9BzD,EAAa9uD,QAAUd,GAGrBwkE,EAAUtC,iBAAmBliE,EAAMkiE,iBAIrC7lB,EAAQymB,gBAAkB9iE,EAAMkiE,eAChCtS,EAAa9uD,QAAUd,GAGrBwkE,EAAUpC,qBAAuBpiE,EAAMoiE,qBAKzC/lB,EAAQwmB,oBAAsB,OAAC4B,EAAwBzkE,EAAMoiE,oBAAmEqC,EAAwB,IACxJ7U,EAAa9uD,QAAUd,GAUL0N,IAAO,IAAI,GAwCjC,OAvCYF,kCAAqBK,IAAY,WAC3C,IAAIyoB,EAAS8tC,EAAUtjE,QAgBvB,OAdgC,OAA5BgvD,EAAgBhvD,QAEbw1B,EAAOkpC,UACVlpC,EAAOguC,MAAK,EACZp9D,MAMFc,aAAa8nD,EAAgBhvD,OAAO,EACpCw1B,EAAO45B,sBAAwB,CAAA,GAG1B,WAWLJ,EAAgBhvD,QAAUc,WAV1B,WACE00B,EAAO41B,QAAO,CACf,CAQ2C,EAI5C51B,EAAO45B,sBAAwB,CAAA,CACrC,CACA,EAAK,CAAChpD,EAAY,EAAG,WACjB,OAAOk9D,EAAUtjE,OACrB,EAAK,WACD,OAAOsjE,EAAUtjE,OACrB,CAAG,CAEH,CAEA,SAASujE,iBAAiB/B,EAAcoC,GACM,YAAxC,OAAOpC,EAAa5iC,iBAIxBglC,EAAWp9D,OAAOyf,OAAO,EAAEhiB,QAAQ,SAAU2uB,GAC3C4uC,EAAa5iC,gBAAgBhM,CAAS,CAC1C,CAAG,CACH,CCrJA,IAAI28B,UAAY,CAAC,YAKV,SAASmR,cAAc5mD,GAC5B,IAAIjb,EAAWib,EAAKjb,SAGhB22B,EAAS2tC,oBAFDpb,2BAAyBjuC,EAAMy1C,SAAS,CAEd,EAEtC,OAAK/5B,EAAOkpC,QAIQmF,GAAMh/D,cAAcqpD,qBAAqBnoD,SAAU,CACrE5C,MAAOqyB,CACR,EAAequC,GAAMh/D,cAAcmpD,aAAajoD,SAAU,CACzD5C,MAAOqyB,EAAOg9B,SAClB,EAAK3zD,CAAQ,CAAC,EAPH,IAQX,CCrBA,SAAS2iD,UAAQtuC,EAAQuuC,GAAkB,IAAwEC,EAApE/yC,EAAOpF,OAAOoF,KAAKuE,CAAM,EAA+P,OAAxP3J,OAAO0lB,wBAA6ByyB,EAAUn4C,OAAO0lB,sBAAsB/b,CAAM,EAAOuuC,IAAgBC,EAAUA,EAAQl7C,OAAO,SAAUm7C,GAAO,OAAOp4C,OAAO2lB,yBAAyBhc,EAAQyuC,CAAG,EAAE92C,UAAW,CAAE,GAAG8D,EAAKjO,KAAK4K,MAAMqD,EAAM+yC,CAAO,GAAY/yC,CAAO,CAErV,SAASizC,gBAAct8B,GAAU,IAAK,IAAIvnB,EAAI,EAAGA,EAAIY,UAAUC,OAAQb,CAAC,GAAI,CAAE,IAAI+tB,EAAyB,MAAhBntB,UAAUZ,GAAaY,UAAUZ,GAAK,GAAQA,EAAI,EAAKyjD,UAAQj4C,OAAOuiB,CAAM,EAAG,CAAA,CAAI,EAAE7nB,QAAQ,SAAU9E,GAAO0iD,kBAAgBv8B,EAAQnmB,EAAK2sB,EAAO3sB,EAAI,CAAI,CAAA,EAAcoK,OAAO4lB,0BAA6B5lB,OAAO6lB,iBAAiB9J,EAAQ/b,OAAO4lB,0BAA0BrD,CAAM,CAAC,EAAY01B,UAAQj4C,OAAOuiB,CAAM,CAAC,EAAE7nB,QAAQ,SAAU9E,GAAOoK,OAAOC,eAAe8b,EAAQnmB,EAAKoK,OAAO2lB,yBAAyBpD,EAAQ3sB,CAAG,CAAC,CAAE,CAAE,CAAM,CAAC,OAAOmmB,CAAS,CAEthB,SAASu8B,kBAAgBxtC,EAAKlV,EAAKgE,GAAiK,OAApJhE,KAAOkV,EAAO9K,OAAOC,eAAe6K,EAAKlV,EAAK,CAAEgE,MAAOA,EAAO0H,WAAY,CAAA,EAAMpB,aAAc,CAAA,EAAMC,SAAU,CAAA,CAAM,CAAA,EAAY2K,EAAIlV,GAAOgE,EAAgBkR,CAAM,CAEjN,SAASk8C,mBAAmB3M,GAAO,OAAO4M,mBAAmB5M,CAAG,GAAK6M,iBAAiB7M,CAAG,GAAKyI,4BAA4BzI,CAAG,GAAK8M,mBAAoB,CAAG,CAEzJ,SAASA,qBAAuB,MAAM,IAAIv8C,UAAU,sIAAsI,CAAI,CAE9L,SAASk4C,4BAA4BruD,EAAGsuD,GAAU,IAAoF1uD,EAApF,GAAKI,EAAW,MAAiB,UAAb,OAAOA,EAAuBouD,kBAAkBpuD,EAAGsuD,CAAM,EAAkI,SAAlC1uD,EAA3B,YAA9DA,EAAI2L,OAAOlG,UAAUqR,SAAS5V,KAAKd,CAAC,EAAE0E,MAAM,EAAG,CAAC,CAAC,IAAyB1E,EAAE4B,YAAiB5B,EAAE4B,YAAYuF,KAAUvH,IAAqB,QAANA,EAAoB6D,MAAMguB,KAAKzxB,CAAC,EAAa,cAANJ,GAAqB,2CAA2CyE,KAAKzE,CAAC,EAAUwuD,kBAAkBpuD,EAAGsuD,CAAM,EAA/G,KAAA,CAAmH,CAEha,SAASmE,iBAAiBE,GAAQ,GAAsB,aAAlB,OAAOjpD,QAA0BA,OAAO4M,YAAY/K,OAAOonD,CAAI,EAAG,OAAOlvD,MAAMguB,KAAKkhC,CAAI,CAAI,CAElI,SAASH,mBAAmB5M,GAAO,GAAIniD,MAAMC,QAAQkiD,CAAG,EAAG,OAAOwI,kBAAkBxI,CAAG,CAAI,CAE3F,SAASwI,kBAAkBxI,EAAKnN,IAAkB,MAAPA,GAAeA,EAAMmN,EAAIhlD,UAAQ63C,EAAMmN,EAAIhlD,QAAQ,IAAK,IAAIb,EAAI,EAAG6kC,EAAO,IAAInhC,MAAMg1C,CAAG,EAAG14C,EAAI04C,EAAK14C,CAAC,GAAM6kC,EAAK7kC,GAAK6lD,EAAI7lD,GAAM,OAAO6kC,CAAO,CAEvL,SAASmlB,2BAAyBj8B,EAAQqX,GAAY,GAAc,MAAVrX,EAAgB,MAAO,GAAI,IAAkE3sB,EAA9DmmB,EAAS4d,gCAA8BpX,EAAQqX,CAAQ,EAAe,GAAI55B,OAAO0lB,sBAAsF,IAA7D,IAAI+4B,EAAmBz+C,OAAO0lB,sBAAsBnD,CAAM,EAAQ/tB,EAAI,EAAGA,EAAIiqD,EAAiBppD,OAAQb,CAAC,GAAMoB,EAAM6oD,EAAiBjqD,GAAiC,GAAzBolC,EAAS7iC,QAAQnB,CAAG,GAAuBoK,OAAOlG,UAAUgsB,qBAAqBvwB,KAAKgtB,EAAQ3sB,CAAG,IAAammB,EAAOnmB,GAAO2sB,EAAO3sB,IAAU,OAAOmmB,CAAS,CAE5e,SAAS4d,gCAA8BpX,EAAQqX,GAAY,GAAc,MAAVrX,EAAgB,MAAO,GAAuE,IAAnE,IAA2D3sB,EAAvDmmB,EAAS,GAAQ8d,EAAa75B,OAAOoF,KAAKmd,CAAM,EAAoB/tB,EAAI,EAAGA,EAAIqlC,EAAWxkC,OAAQb,CAAC,GAAMoB,EAAMikC,EAAWrlC,GAAiC,GAAzBolC,EAAS7iC,QAAQnB,CAAG,IAAkBmmB,EAAOnmB,GAAO2sB,EAAO3sB,IAAQ,OAAOmmB,CAAS,CAGnT,IAAIklC,YAAYnE,oCAAoC,CAClDlhD,KAAM,gBACNihD,UAAW,CAAA,CACb,CAAC,EAED,SAAS0d,oBAAoBrgE,GACvBqW,EAAOrW,GAAS,GAIpB,OAHWqW,EAAK8Z,KACLm0B,2BAAyBjuC,EAAM,CAAC,OAAO,CAGpD,CAEA,SAASiqD,mBACP,IAAIC,EAAa,KACbC,EAAc,KAClB,MAAO,CACL/wC,KAAM,SAAcnZ,GACdtW,EAAQsW,EAAMtW,MAClB,OAAOgkD,QAAQwc,EAAaH,oBAAoBrgE,CAAK,CAAC,EAAIugE,EAAa,IACxE,EACD14C,MAAO,SAAetR,GACpB,IAAIvW,EAAQuW,EAAMvW,MACdgwB,EAAOzZ,EAAMyZ,KACjBwwC,EAAcH,oBAAoBrgE,CAAK,EACvCugE,EAAavwC,CACd,CACL,CACA,CAEA,SAASywC,0BAA0BF,GACjC,OAAOz6D,OAAOoF,KAAKq1D,CAAU,EAAEn8D,IAAI+L,MAAM,EAAE7S,KAAK,SAAU1C,EAAGoC,GAC3D,OAAOpC,EAAIoC,CACZ,CAAA,EAAE4pB,OAAO,SAAUoY,EAAK7O,GACvB,OAAO6O,EAAI97B,OAAOq9D,EAAWpwC,EAAK,CACnC,EAAE,EAAE,CACP,CAEA,IAAIuwC,oBAAsB,SAA6BtZ,GACrD,IAAIC,EAA+B,EAAnBnsD,UAAUC,QAA+BwS,KAAAA,IAAjBzS,UAAU,GAAmBA,UAAU,GAAK+gD,KAGpF,OAFAE,eAAeiL,EAAUL,YAAS,CAAE,EAE7B,SAAUE,GACf,IAUI0Z,EACAC,EACAC,EACAC,EAbArgD,EAAQwmC,GAAgB,GACxB8Z,EAAmBtgD,EAAMugD,WACzBA,EAAkC,KAAA,IAArBD,GAAqCA,EAClDE,EAAuBxgD,EAAMygD,eAC7BA,EAA0C,KAAA,IAAzBD,EAAkC,SAAUle,GAC/D,OAAOA,CACb,EAAQke,EACAE,EAAc1gD,EAAM2gD,MACpBA,EAAwB,KAAA,IAAhBD,EAAyBb,iBAAgB,EAAKa,EAOtDE,EAAuB,SAA8BrhE,EAAOugE,GAC1DzW,EAAc9pD,EAAMmwB,KACpBA,EAAuB,KAAA,IAAhB25B,EAAyB,EAAIA,EACpCwX,EAAQx7D,OAAOoF,KAAKq1D,CAAU,EAAEn8D,IAAI+L,MAAM,EAE9C,OAAqB,IAAjBmxD,EAAMnmE,OACDg1B,EAEA9f,KAAK0c,IAAIllB,MAAMwI,KAAM,CAAC8f,GAAMjtB,OAAO4pD,mBAAmBwU,CAAK,CAAC,CAAC,CAE5E,EAEQC,EAAsB,SAA6BvhE,EAAOugE,GACxDiB,EAAexhE,EAAMmwB,KACrBA,EAAwB,KAAA,IAAjBqxC,EAA0B,EAAIA,EACrCF,EAAQx7D,OAAOoF,KAAKq1D,CAAU,EAAEn8D,IAAI+L,MAAM,EAE9C,OAAqB,IAAjBmxD,EAAMnmE,OACDg1B,EAEA9f,KAAK8U,IAAItd,MAAMwI,KAAM,CAAC8f,GAAMjtB,OAAO4pD,mBAAmBwU,CAAK,CAAC,CAAC,CAE5E,EAsBI,MAAO,CACL7f,OAAQ,mBACR8F,KAAM,SAAcC,GAClBJ,EAASjJ,gBAAcA,gBAAc,GAAIzhD,KAAK+qD,qBAAqBD,CAAW,CAAC,EAAG,GAAI,CACpFpI,sBAAuBoI,EAAYpI,qBAC7C,CAAS,EAAG,CAAA,CAAI,CACT,EACDv/C,OAAQ,SAAgB6nD,GACtB,IAAItI,EAAwBsI,EAActI,sBACtCyI,EAAoBnrD,KAAK+qD,qBAAqBC,CAAa,EAC/DN,EAASjJ,gBAAcA,gBAAc,GAAI0J,CAAiB,EAAG,GAAI,CAC/DzI,sBAAuBA,CACjC,CAAS,EAAG,CAAA,CAAK,EACTyhB,EAAU,OAAQhZ,EAAkB4Z,eAAe,CACpD,EACD7Z,eAAgB,SAAwBzB,EAAauB,GACnD,OAAOvJ,gBAAcA,gBAAc,GAAIgI,CAAW,EAAG,GAAI,CACvDub,aAAchlE,KAAK+qD,qBAAqBC,CAAa,CAC/D,CAAS,CACF,EACDD,qBAAsB,SAA8B7mC,GAClD,IA7BmCm6B,EAZQA,EAyCvCvO,EAAU5rB,EAAM4rB,QAChBuO,EAASn6B,EAAMm6B,OACf/6C,EAAQ4gB,EAAM5gB,MACdo/C,EAAwBx+B,EAAMw+B,sBAE9BqiB,EAAkB,GAClBlB,EAAaa,EAAM3xC,KAAK,CAC1BzvB,MAAOA,CACR,CAAA,GAAK,GAsCJ2hE,EApCGn1B,GAeCo1B,EAAyB,KAAA,KADzBC,EAAe7hE,EAAMmwB,MACa,EAAI0xC,EAEtCb,GAAoC,EAAtBx0B,EAAQxc,KAAK70B,SAC7BqxC,EAAQxc,KAAO2uB,WAAWnS,EAAQxc,IAAI,GAIpC8xC,EAAqChe,WADVD,oBAAoBrX,EAAQxc,KAAMwc,EAAQrc,KAAMqc,EAAQ3P,WAAW,EACpB2P,EAAQ+T,OAAO,EACzFwhB,EAAkBb,EAAeY,EAAoC,CACvEt1B,QAASA,CACrB,CAAW,EAEyB7+B,KAAAA,IAAtB4yD,EAAWqB,IAAyBp1B,EAAQwd,iBAC9CuW,EAAWqB,GAASG,EACpBX,EAAMv5C,MAAM,CACV7nB,MAAOA,EACPgwB,KAAMuwC,CACpB,CAAa,GAGHkB,EAAkBM,EACwC,IAA5CV,EAAqBrhE,EAAOugE,CAAU,IAnCpDI,EAnDG,WAGL5lB,EAAOZ,0CAA0CgE,gBAAcA,gBAAc,GAAIpD,EAAO/6C,KAAK,EAAG,GAAI,CAClGmwB,KAAMkxC,EAAqBtmB,EAAO/6C,MAAOohE,EAAM3xC,KAAK,CAClDzvB,MAAO+6C,EAAO/6C,KAC1B,CAAW,GAAK,EAAE,EAAI,CACtB,CAAS,CAAC,EAAEivD,sCACZ,EA4CU2R,EAxCG,WACL7lB,EAAOnW,QAAQ28B,EAAoBxmB,EAAO/6C,MAAOohE,EAAM3xC,KAAK,CAC1DzvB,MAAO+6C,EAAO/6C,KACf,CAAA,GAAK,EAAE,EAAI,CAAC,EAAE+xB,OAAM,CAC7B,EAqCU8uC,EAAY3f,uBAAuB,CACjC9B,sBAAuBA,EACvB5wC,OA5C+BusC,EAZQA,EAoDVA,GAIfP,SAAU,EACxB8E,WAAY5iD,KAAK+kD,MAC7B,CAAW,EACDqf,EAAY3f,uBAAuB,CACjC3yC,MAAOusC,EAAOP,SAAU,EACxB8E,WAAY5iD,KAAK+kD,MAC7B,CAAW,EAC4B9zC,KAAAA,IAAf3N,EAAMmwB,MAAkE,IAA5CkxC,EAAqBrhE,EAAOugE,CAAU,GA2B9EvwC,EAAOywC,0BAA0BF,CAAU,EAC3CyB,EAAax1B,CAAAA,GAAUA,EAAQjP,SAAWgkC,EAAoBvhE,EAAOugE,CAAU,EAAI,EACvF,MAAO,CACLvwC,KAAMA,EACNyxC,gBAAiBA,EACjBZ,UAAWA,EACXC,UAAWA,EACXt0B,QAASA,EACTm0B,aAAcA,EACdC,SAAUA,EACVe,YAAaA,EACbK,WAAYA,EACZ/a,aAAcA,CACxB,CACO,EACDU,QAAS,SAAiB9mC,GACpB7gB,EAAQ6gB,EAAM7gB,MAClBqnD,IACI4a,EAAmBjiE,EAAM+oC,kBAAkB,OAAQp7B,KAAAA,CAAS,EAEhE,OAAKqzD,EAIEiB,EAAiB19B,mBAAmBz+B,OAAOoF,KAAKmzC,eAAe,EAAEz3B,OAAO,SAAUoY,EAAKtjC,GAC5F,OAAOyiD,gBAAcA,gBAAc,GAAInf,CAAG,EAAG,GAAIof,kBAAgB,GAAI1iD,EAAKiS,KAAAA,CAAS,CAAC,CAC9F,EAAW,EAAE,CAAC,EALGs0D,CAMV,EACD9Z,iBAAkB,SAA0BlG,EAASnhC,GAE/CqP,EADmBrP,EAAMomC,iBACD/2B,MAAQ,EAEpC,OAAKA,EAMEguB,gBAAcA,gBAAc,GAAI8D,CAAO,EAAG,GAAI,CAGnD9xB,KAAMA,EAAO,CACvB,CAAS,EAPQ8xB,CAQV,EACDD,0BAA2B,SAAmCkF,EAAkB2S,GAC9E,IAAI5X,EAAU4X,EAAM5X,QAChBigB,EAAyBhb,EAQzB/2B,GANA6wC,IACFkB,EAAyBhb,EAAiB3iB,mBAAmB8Z,eAAe,GAKnE4D,EAAQ9xB,KAAO8xB,EAAQ9xB,KAAO,EAAI,GAC7C,OAAO+xC,EAAuBn5B,kBAAkB,OAAQ5Y,CAAI,CAC7D,CACP,CACA,CACA,EAEAgyC,sBAAezB,oBC9PR,SAAS0B,gBAAgB3mE,EAAOwwD,GACrC,OAAOD,aAAa0U,sBAAqBjlE,EAAOwwD,CAA0B,CAC5E,CCJA,SAASlO,UAAQtuC,EAAQuuC,GAAkB,IAAwEC,EAApE/yC,EAAOpF,OAAOoF,KAAKuE,CAAM,EAA+P,OAAxP3J,OAAO0lB,wBAA6ByyB,EAAUn4C,OAAO0lB,sBAAsB/b,CAAM,EAAOuuC,IAAgBC,EAAUA,EAAQl7C,OAAO,SAAUm7C,GAAO,OAAOp4C,OAAO2lB,yBAAyBhc,EAAQyuC,CAAG,EAAE92C,UAAW,CAAE,GAAG8D,EAAKjO,KAAK4K,MAAMqD,EAAM+yC,CAAO,GAAY/yC,CAAO,CAErV,SAASizC,gBAAct8B,GAAU,IAAK,IAAIvnB,EAAI,EAAGA,EAAIY,UAAUC,OAAQb,CAAC,GAAI,CAAE,IAAI+tB,EAAyB,MAAhBntB,UAAUZ,GAAaY,UAAUZ,GAAK,GAAQA,EAAI,EAAKyjD,UAAQj4C,OAAOuiB,CAAM,EAAG,CAAA,CAAI,EAAE7nB,QAAQ,SAAU9E,GAAO0iD,kBAAgBv8B,EAAQnmB,EAAK2sB,EAAO3sB,EAAI,CAAI,CAAA,EAAcoK,OAAO4lB,0BAA6B5lB,OAAO6lB,iBAAiB9J,EAAQ/b,OAAO4lB,0BAA0BrD,CAAM,CAAC,EAAY01B,UAAQj4C,OAAOuiB,CAAM,CAAC,EAAE7nB,QAAQ,SAAU9E,GAAOoK,OAAOC,eAAe8b,EAAQnmB,EAAKoK,OAAO2lB,yBAAyBpD,EAAQ3sB,CAAG,CAAC,CAAE,CAAE,CAAM,CAAC,OAAOmmB,CAAS,CAEthB,SAASu8B,kBAAgBxtC,EAAKlV,EAAKgE,GAAiK,OAApJhE,KAAOkV,EAAO9K,OAAOC,eAAe6K,EAAKlV,EAAK,CAAEgE,MAAOA,EAAO0H,WAAY,CAAA,EAAMpB,aAAc,CAAA,EAAMC,SAAU,CAAA,CAAM,CAAA,EAAY2K,EAAIlV,GAAOgE,EAAgBkR,CAAM,CAEjN,SAAS0zC,yBAAyBj8B,EAAQqX,GAAY,GAAc,MAAVrX,EAAgB,MAAO,GAAI,IAAkE3sB,EAA9DmmB,EAAS4d,8BAA8BpX,EAAQqX,CAAQ,EAAe,GAAI55B,OAAO0lB,sBAAsF,IAA7D,IAAI+4B,EAAmBz+C,OAAO0lB,sBAAsBnD,CAAM,EAAQ/tB,EAAI,EAAGA,EAAIiqD,EAAiBppD,OAAQb,CAAC,GAAMoB,EAAM6oD,EAAiBjqD,GAAiC,GAAzBolC,EAAS7iC,QAAQnB,CAAG,GAAuBoK,OAAOlG,UAAUgsB,qBAAqBvwB,KAAKgtB,EAAQ3sB,CAAG,IAAammB,EAAOnmB,GAAO2sB,EAAO3sB,IAAU,OAAOmmB,CAAS,CAE5e,SAAS4d,8BAA8BpX,EAAQqX,GAAY,GAAc,MAAVrX,EAAgB,MAAO,GAAuE,IAAnE,IAA2D3sB,EAAvDmmB,EAAS,GAAQ8d,EAAa75B,OAAOoF,KAAKmd,CAAM,EAAoB/tB,EAAI,EAAGA,EAAIqlC,EAAWxkC,OAAQb,CAAC,GAAMoB,EAAMikC,EAAWrlC,GAAiC,GAAzBolC,EAAS7iC,QAAQnB,CAAG,IAAkBmmB,EAAOnmB,GAAO2sB,EAAO3sB,IAAQ,OAAOmmB,CAAS,CAGnT,IAAIklC,YAAYnE,oCAAoC,CAClDlhD,KAAM,kBACNihD,UAAW,CAAA,CACb,CAAC,EACGlR,aAAe,CAAC,YAAa,aAAc,YAc3C4wB,sBAAwB,SAA+Bjb,GACzD,IAAIC,EAA+B,EAAnBnsD,UAAUC,QAA+BwS,KAAAA,IAAjBzS,UAAU,GAAmBA,UAAU,GAAK+gD,KAEpF,OADAE,eAAeiL,EAAUL,YAAS,CAAE,EAC7B,SAAUE,GACf,IAAI5wC,EAAO4wC,GAAgB,GACvB3mB,EAAYjqB,EAAKiqB,UACjBgiC,EAAgBjsD,EAAKgtB,SACrBA,EAA6B,KAAA,IAAlBi/B,EAA2B,KAAOA,EAC7CC,EAAalsD,EAAKygD,MAClBA,EAAuB,KAAA,IAAfyL,EAAwB,GAAKA,EACrCC,EAAgBnsD,EAAKuqD,SACrBA,EAA6B,KAAA,IAAlB4B,GAAmCA,EAC9CC,EAAqBpsD,EAAKqsD,cAC1BA,EAAuC,KAAA,IAAvBD,EAAgC,GAAKA,EACrDE,EAActsD,EAAKozB,OACnBA,EAAyB,KAAA,IAAhBk5B,EAAyBlxB,aAAekxB,EACjDC,EAAwBvsD,EAAKwsD,kBAC7BA,EAA8C,KAAA,IAA1BD,GAA0CA,EAC9DE,EAAsBzsD,EAAK6qD,eAC3BA,EAAyC,KAAA,IAAxB4B,EAAiC,SAAU/f,GAC9D,OAAOA,CACR,EAAG+f,EAEJ,GAAI,CAACxiC,EACH,MAAM,IAAIhvB,MAAMy1C,YAAU,qCAAqC,CAAC,EAGlE,GAAI,CAAC,aAAanoD,KAAKykC,CAAQ,EAC7B,MAAM,IAAI/xB,MAAMy1C,YAAU,qDAA0D7jD,OAAOmgC,EAAU,KAAM,CAAC,CAAC,EAG/G,GAAiB,CAAA,IAAbu9B,GAAqB8B,GAAiB5L,EACxC,MAAM,IAAIxlD,MAAMy1C,YAAU,iDAAiD,CAAC,EAG5D,SAAdgc,EAAmCzsD,GACrC,IAAI0sD,EAAQ1sD,EAAM5U,KACdhC,EAAQ4W,EAAMm2B,aAGlB,OAAO0R,gBAAcA,gBAAc,GAFxBmG,yBAAyBhuC,EAAO,CAAC,OAAQ,eAAe,CAExB,EAAG,GAAI,CAChD5W,MAAOA,EACPsjE,MAAOA,EACPhkB,YAAagkB,CACrB,CAAO,CACP,CAVI,IAYIC,EAGAC,EACArC,EAHAsC,EAA0B,GAC1BC,EAAqB,CAAA,EAGrBC,EAAgB,CAAA,EAGhBC,EAAiB,aAErB,SAASC,IACPD,GACD,CASD,SAASE,IACP,OAAOH,EAAgBX,EAAgB5L,CACxC,CAED,IAAI7kC,EAAuB,WACzB,OAAO,YACb,EAoDI,MAAO,CACLwvB,OAAQ,qBACR8F,KAAM,SAAcC,GAClBJ,EAASjJ,gBAAcA,gBAAc,GAAIzhD,KAAK+qD,qBAAqBD,CAAW,CAAC,EAAG,GAAI,CACpFpI,sBAAuBoI,EAAYpI,qBAC7C,CAAS,EAAG,CAAA,CAAI,CACT,EACDv/C,OAAQ,SAAgB6nD,GACtBN,EAASjJ,gBAAcA,gBAAc,GAAIzhD,KAAK+qD,qBAAqBC,CAAa,CAAC,EAAG,GAAI,CACtFtI,sBAAuBsI,EAActI,qBAC/C,CAAS,EAAG,CAAA,CAAK,CACV,EACDwI,eAAgB,SAAwBzB,EAAauB,GACnD,OAAOvJ,gBAAcA,gBAAc,GAAIgI,CAAW,EAAG,GAAI,CACvD9lB,eAAgB8d,gBAAcA,gBAAc,GAAIgI,EAAY9lB,cAAc,EAAG,GAAI+d,kBAAgB,GAAI9d,EAAW5jC,KAAK+qD,qBAAqBC,CAAa,CAAC,CAAC,CACnK,CAAS,CACF,EACDD,qBAAsB,SAA8BC,GAClD,IApEiE3M,EAAQyG,EAf/CkG,EAAelG,EAmFrChV,EAAUkb,EAAclb,QACxBxsC,EAAQ0nD,EAAc1nD,MACtBuuD,EAAa7G,EAAcrB,UAC3BjH,EAAwBsI,EAActI,sBACtCrE,EAAS2M,EAAc3M,OACvBgI,EAAQ,GACRzS,EAAc,GA8CdmzB,GA5CC5C,GAAcqC,GAAkBjxC,IACnC4uC,EAAY1hB,wBAAwB,CAClCC,sBAAuBA,EACvBrE,OAAQA,EACRza,UAAWA,EACXgf,WAAY5iD,KAAK+kD,MAC7B,CAAW,EAEDyhB,EAAgB,SAAuBl2B,GACrC6zB,EAAU,QAAS7zB,CAAU,EAC7B+N,EAAO1T,sBAAsB/G,EAAW0M,CAAU,EAAEjb,OAAM,CACtE,EAvFyEgpB,EAyFbA,EAzFqByG,EAyFb9kD,KAA1Du1B,EAxFG,SAAUy1B,GACf,OAAO,SAAU9qB,GACf,IAWM8mC,EAXFtkB,EAAwBsI,EAActI,sBACtCukB,EAAgBjc,EAAclb,QAEpB,KAAV5P,GAAgBumC,EAElB/b,EAASjJ,gBAAcA,gBAAc,GAAIqD,EAAOiG,qBAAqBtJ,gBAAcA,gBAAc,GAAIuJ,CAAa,EAAG,GAAI,CACvHlb,QAASy2B,CACvB,CAAa,CAAC,CAAC,EAAG,GAAI,CACR7jB,sBAAuBA,CACrC,CAAa,EAAG,CAAA,CAAK,GAELskB,EAAO,CACTplB,iBAAiBukB,EAAoBxkB,gBAAkCG,iBAAlBF,gBACrDC,kBAAkBskB,EAAoBxkB,gBAAmCG,iBAAnBD,gBACpE,EACYxD,EAAO9oB,qBAAqBqO,EAAW1D,EAGvCvsB,KAAK0c,IAAIy2C,IAAY,GAAG,EAAGE,CAAI,EAAEl/D,KAAK,SAAUgoC,GAC1C8D,EAAcuyB,EAAoB9jB,aAAavS,EAAQyM,SAAS,EAAIzM,EAAQyM,UAC5E2qB,EAAwB1C,EAAe5wB,EAAYlsC,IAAI,SAAUmS,GACnE,IAAIk2B,EAAel2B,EAAMk2B,aACrB/sC,EAAQ6W,EAAM7W,MAGlB,OAAOy+C,gBAAcA,gBAAc,GAFxBmG,yBAAyB/tC,EAAO,CAAC,eAAgB,QAAQ,CAEzB,EAAG,GAAI,CAChD7W,MAAO+sC,EACPu2B,MAAOtjE,CACzB,CAAiB,CACjB,CAAe,EAAG,CACF8sC,QAASm3B,CACzB,CAAe,EACDvc,EAASjJ,gBAAcA,gBAAc,GAAIqD,EAAOiG,qBAAqBtJ,gBAAcA,gBAAc,GAAIuJ,CAAa,EAAG,GAAI,CACvHlb,QAASy2B,CACzB,CAAe,CAAC,CAAC,EAAG,GAAI,CACRlgB,MAAO6gB,EACPC,kBAAmB,CAAA,EACnBC,UAAW,CAAA,EACXC,aAAc,CAAA,EACd3kB,sBAAuBA,CACvC,CAAe,EAAG,CAAA,CAAK,CACvB,CAAa,EAEb,CACA,GA6CY5S,IAKF8D,GAJI/hC,EAASi+B,EAAQkF,eAAepR,EAAW,CAC7CmJ,OAAQA,EACR8G,cAAe9G,IAAWgI,YACtC,CAAW,IACuBzzC,MAAMC,QAAQsQ,CAAM,EAAIA,EAAS,GACzDw0C,EAAQme,EAAe5wB,EAAYrxC,MAAM,EAAGukE,GAAU,EAAEp/D,IAAI2+D,CAAW,EAAG,CACxEv2B,QAASA,CACrB,CAAW,EACGw3B,EAA0BhkE,EAAMikE,kBAChCC,EAAeV,IAOnBJ,EAA+Cc,EAA1BF,EAAyC1zB,EAAYn1C,QAAU+oE,EAAe5zB,EAAYn1C,OAAS+oE,EACxHjB,EAA4Bz2B,EAC5B22B,EAA0BpgB,EAEtB2E,EAAclb,WAhIMkb,EAiIgBA,EAjIDlG,EAiIgB9kD,KAArD4mE,EAhIC,WACLD,EAAgB,CAACA,EACjB7hB,EAAO3hD,OAAO6nD,CAAa,CACnC,GAmIgCz1B,GAAwBA,EAAqBy1B,CAAa,GAC9Eyc,EAAcd,GAAiBF,EAAwBhoE,OAAS27D,EAChEsN,EAAcxD,GAAY,CAACwC,EAE/B,MAAO,CACL/c,UAAW,SAAmBrZ,GAC5B,OAAOuhB,EAAWvuD,EAAMupC,UAAS,EAAGlC,sBAAsB/G,EAAW0M,CAAU,CAAC,CACjF,EACD+V,MAAOA,EACPiF,OAAQkb,EACRmB,eAAgBZ,EAChBM,aAAc,CAAA,EACdD,UAA0B,EAAf/gB,EAAM5nD,OACjB8rD,aAAcA,EACdoc,cAAeA,EACfQ,kBAZsBM,GAAeC,EAarCd,eAAgBC,EAChB1C,UAAWA,EACXuC,mBAAoBA,CAC9B,CACO,EACDzb,QAAS,SAAiBlnC,GACpBzgB,EAAQygB,EAAMzgB,MAClBqnD,IACIid,EAA2BtkE,EAAM+oC,kBAAkB,oBAAqBp7B,KAAAA,CAAS,EAErF,MAAiB,QAAb01B,EACKihC,EAAyBx9B,YAAYxG,CAAS,EAGhDgkC,EAAyBv9B,uBAAuBzG,CAAS,CACjE,EACD6nB,iBAAkB,SAA0BlG,EAASrhC,GAC/CsmC,EAAmBtmC,EAAMsmC,iBACzB34C,EAAsB,OAAb80B,EAAoB6jB,EAAiB3hB,0BAA0BjF,CAAS,EAAI4mB,EAAiB7hB,0BAA0B/E,CAAS,EAE7I,OAAK/xB,EAAOpT,OAILgjD,gBAAcA,gBAAc,GAAI8D,CAAO,EAAG,GAAI,CACnD5hB,eAAgB8d,gBAAcA,gBAAc,GAAI8D,EAAQ5hB,cAAc,EAAG,GAAI+d,kBAAgB,GAAI9d,EAAW/xB,CAAM,CAAC,CAC7H,CAAS,EALQ0zC,CAMV,EACDD,0BAA2B,SAAmCkF,EAAkBrmC,GAC9E,IAAIohC,EAAUphC,EAAMohC,QAChBrJ,EAA6B,OAAbvV,EAChB90B,EAAS0zC,EAAQ5hB,gBAAkB4hB,EAAQ5hB,eAAeC,GAC1DikC,EAAqBrd,EAAiBpjB,iBAAiBxD,CAAS,EAChEkkC,EAAyB5rB,EAAgB2rB,EAAmBp+B,oBAAoB7F,CAAS,EAAIikC,EAAmBr+B,SAAS5F,CAAS,EAClImkC,EAA2BD,EAAuBP,mBAAqB,EACvES,EAAwBr0D,KAAK8U,IAAIs/C,EAA0B7D,EAAW8B,EAAgB5L,CAAK,EAC3F6N,EAAwBH,EAAuBz7B,kBAAkB,oBAAqB27B,CAAqB,EAE/G,OAAKn2D,EAKEA,EAAOqY,OAAO,SAAUsd,EAAYxkC,GACzC,OAAOk5C,EAAgB1U,EAAWuC,8BAA8BnG,EAAW5gC,CAAK,EAAIwkC,EAAWqC,mBAAmBjG,EAAW5gC,CAAK,CACnI,EAAEilE,CAAqB,EALfA,EAAsBpgC,mBAAmB6Z,kBAAgB,GAD5D1iD,EAAMk9C,EAAgB,+BAAiC,oBACcuF,gBAAcA,gBAAc,GAAIwmB,EAAsBjpE,EAAI,EAAG,GAAI0iD,kBAAgB,GAAI9d,EAAW,EAAE,CAAC,CAAC,CAAC,CAMjL,CACP,CACA,CACA,EAEAskC,wBAAevC,sBClSR,SAASwC,kBAAkBppE,EAAOwwD,GACvC,OAAOD,aAAaqW,wBAAuB5mE,EAAOwwD,CAA0B,CAC9E,CCJA,SAASlO,UAAQtuC,EAAQuuC,GAAkB,IAAwEC,EAApE/yC,EAAOpF,OAAOoF,KAAKuE,CAAM,EAA+P,OAAxP3J,OAAO0lB,wBAA6ByyB,EAAUn4C,OAAO0lB,sBAAsB/b,CAAM,EAAOuuC,IAAgBC,EAAUA,EAAQl7C,OAAO,SAAUm7C,GAAO,OAAOp4C,OAAO2lB,yBAAyBhc,EAAQyuC,CAAG,EAAE92C,UAAW,CAAE,GAAG8D,EAAKjO,KAAK4K,MAAMqD,EAAM+yC,CAAO,GAAY/yC,CAAO,CAErV,SAASizC,gBAAct8B,GAAU,IAAK,IAAIvnB,EAAI,EAAGA,EAAIY,UAAUC,OAAQb,CAAC,GAAI,CAAE,IAAI+tB,EAAyB,MAAhBntB,UAAUZ,GAAaY,UAAUZ,GAAK,GAAQA,EAAI,EAAKyjD,UAAQj4C,OAAOuiB,CAAM,EAAG,CAAA,CAAI,EAAE7nB,QAAQ,SAAU9E,GAAO0iD,gBAAgBv8B,EAAQnmB,EAAK2sB,EAAO3sB,EAAI,CAAI,CAAA,EAAcoK,OAAO4lB,0BAA6B5lB,OAAO6lB,iBAAiB9J,EAAQ/b,OAAO4lB,0BAA0BrD,CAAM,CAAC,EAAY01B,UAAQj4C,OAAOuiB,CAAM,CAAC,EAAE7nB,QAAQ,SAAU9E,GAAOoK,OAAOC,eAAe8b,EAAQnmB,EAAKoK,OAAO2lB,yBAAyBpD,EAAQ3sB,CAAG,CAAC,CAAE,CAAE,CAAM,CAAC,OAAOmmB,CAAS,CAEthB,SAASu8B,gBAAgBxtC,EAAKlV,EAAKgE,GAAiK,OAApJhE,KAAOkV,EAAO9K,OAAOC,eAAe6K,EAAKlV,EAAK,CAAEgE,MAAOA,EAAO0H,WAAY,CAAA,EAAMpB,aAAc,CAAA,EAAMC,SAAU,CAAA,CAAM,CAAA,EAAY2K,EAAIlV,GAAOgE,EAAgBkR,CAAM,CAGjN,IAAIm2C,UAAYnE,oCAAoC,CAClDlhD,KAAM,UACNihD,UAAW,CAAA,CACb,CAAC,EAOGmiB,cAAgB,SAAuB1d,GACzC,IAAIC,EAA+B,EAAnBnsD,UAAUC,QAA+BwS,KAAAA,IAAjBzS,UAAU,GAAmBA,UAAU,GAAK+gD,KAEhFqL,GADJnL,eAAeiL,EAAUL,UAAS,CAAE,EACf,IACrB,OAAO,SAAUE,GACf,IAAI5wC,EAAO4wC,GAAgB,GACvBlE,EAAQ1sC,EAAK0sC,MACb+f,EAAsBzsD,EAAK6qD,eAC3BA,EAAyC,KAAA,IAAxB4B,EAAiC,SAAUhlE,GAC9D,OAAOA,CACR,EAAGglE,EAEJ,GAAK9kE,MAAMC,QAAQ8kD,CAAK,EAIxB,MAAO,CACLtB,OAAQ,aACR8F,KAAM,SAAcC,GAClB,IAAIpI,EAAwBoI,EAAYpI,sBACpCyI,EAAoBnrD,KAAK+qD,qBAAqBD,CAAW,EACzDud,EAAeld,EAAkBlkB,kBACTtE,KAAK0jB,EAAO,SAAUnS,GAChD,OAAOA,EAAKlxC,QAAUqlE,CAChC,CAAS,EAED3d,EAASjJ,gBAAcA,gBAAc,GAAI0J,CAAiB,EAAG,GAAI,CAC/DzI,sBAAuBA,CACjC,CAAS,EAAG,CAAA,CAAI,CACT,EACDv/C,OAAQ,SAAgB6nD,GACtB,IAAItI,EAAwBsI,EAActI,sBAC1CgI,EAASjJ,gBAAcA,gBAAc,GAAIzhD,KAAK+qD,qBAAqBC,CAAa,CAAC,EAAG,GAAI,CACtFtI,sBAAuBA,CACjC,CAAS,EAAG,CAAA,CAAK,CACV,EACDuI,QAAS,SAAiBrxC,GACpBtW,EAAQsW,EAAMtW,MAElB,OADAqnD,IACOC,EAAe0d,aAAehlE,EAAMykC,SAAS6iB,EAAe0d,YAAY,EAAIhlE,CACpF,EACD4nD,eAAgB,SAAwBzB,EAAauB,GACnD,OAAOvJ,gBAAcA,gBAAc,GAAIgI,CAAW,EAAG,GAAI,CACvD1c,OAAQ/sC,KAAK+qD,qBAAqBC,CAAa,CACzD,CAAS,CACF,EACDD,qBAAsB,SAA8BlxC,GAClD,IAAIi2B,EAAUj2B,EAAMi2B,QAChBuO,EAASxkC,EAAMwkC,OACf/6C,EAAQuW,EAAMvW,MACd6sC,EAASt2B,EAAMs2B,OAYfo4B,GAVA,CAAC3d,EAAe0d,cAAgBn4B,IAClCya,EAAe0d,aAAen4B,EAAOuhB,gBAGlC9G,EAAe7iB,WAClB6iB,EAAe7iB,SAAW,SAAUjI,GAClCue,EAAOtW,SAASjI,CAAS,EAAEzK,OAAM,CAC7C,GAG2Bya,CAAAA,GAA6B,IAAnBA,EAAQiM,QACrC,MAAO,CACL9U,kBAAmB3jC,EAAMwO,MACzBd,QAASwzD,EAAene,EAAO,CAC7BvW,QAASA,CACrB,CAAW,EACDwb,OAAQV,EAAe7iB,SACvBwgC,aAAcA,EACdnB,UAAW,CAACmB,GAA+B,EAAfliB,EAAM5nD,OAClC8rD,aAAcA,CACxB,CACO,EACDkB,iBAAkB,SAA0BlG,EAASxhC,GAE/CskD,EADmBtkD,EAAMymC,iBACO14C,MACpC,OAAO2vC,gBAAcA,gBAAc,GAAI8D,CAAO,EAAG,GAAI,CACnDxY,OAAQs7B,IAAiBzd,EAAe0d,aAAeD,EAAep3D,KAAAA,CAChF,CAAS,CACF,EACDq0C,0BAA2B,SAAmCkF,EAAkBtmC,GAC1EqhC,EAAUrhC,EAAMqhC,QACpB,OAAOiF,EAAiBne,kBAAkB,QAASkZ,EAAQxY,QAAU6d,EAAe0d,cAAgB9d,EAAiB14C,KAAK,CAC3H,CACP,EAxEM,MAAM,IAAI8C,MAAMy1C,UAAU,iDAAiD,CAAC,CAyElF,CACA,EAEAme,gBAAeJ,cCxGR,SAASK,UAAU1pE,EAAOwwD,GAC/B,OAAOD,aAAa8Y,gBAAerpE,EAAOwwD,CAA0B,CACtE,CCCO,SAASmZ,mBACd,IAAIrzC,EAAS24B,0BACT2a,EAAc7a,kBAKdM,EAAa9B,eAHDvgD,EAAS,WACvB,OAAOwhD,sBAAsBob,CAAW,CAC5C,CAAG,EAC0C,CAAC,EACxC1B,EAAgB7Y,EAAW,GAC3Bwa,EAAmBxa,EAAW,GAqBlC,OAnBAliD,IAAU,WACR,SAAS28D,IACP,IAAI/4B,EAAU64B,EAAY5e,aAIV,OAAZja,GACF84B,EAAiB,CACf94B,QAASA,EACT8Z,cAAe+e,EAAY3e,iBAAkB,CACvD,CAAS,CAEJ,CAGD,OADA30B,EAAOqhB,YAAY,SAAUmyB,CAAY,EAClC,WACLxzC,EAAO4hB,eAAe,SAAU4xB,CAAY,CAClD,CACA,EAAK,CAACxzC,EAAQszC,EAAY,EACjB1B,CACT,CCjCA,SAAS5lB,QAAQtuC,EAAQuuC,GAAkB,IAAwEC,EAApE/yC,EAAOpF,OAAOoF,KAAKuE,CAAM,EAA+P,OAAxP3J,OAAO0lB,wBAA6ByyB,EAAUn4C,OAAO0lB,sBAAsB/b,CAAM,EAAGuuC,IAAmBC,EAAUA,EAAQl7C,OAAO,SAAUm7C,GAAO,OAAOp4C,OAAO2lB,yBAAyBhc,EAAQyuC,CAAG,EAAE92C,UAAW,CAAE,GAAI8D,EAAKjO,KAAK4K,MAAMqD,EAAM+yC,CAAO,GAAY/yC,CAAO,CAErV,SAASizC,cAAct8B,GAAU,IAAK,IAAIvnB,EAAI,EAAGA,EAAIY,UAAUC,OAAQb,CAAC,GAAI,CAAE,IAAI+tB,EAAS,MAAQntB,UAAUZ,GAAKY,UAAUZ,GAAK,GAAIA,EAAI,EAAIyjD,QAAQj4C,OAAOuiB,CAAM,EAAG,CAAA,CAAE,EAAE7nB,QAAQ,SAAU9E,GAAO0iD,kBAAgBv8B,EAAQnmB,EAAK2sB,EAAO3sB,EAAI,CAAI,CAAA,EAAIoK,OAAO4lB,0BAA4B5lB,OAAO6lB,iBAAiB9J,EAAQ/b,OAAO4lB,0BAA0BrD,CAAM,CAAC,EAAI01B,QAAQj4C,OAAOuiB,CAAM,CAAC,EAAE7nB,QAAQ,SAAU9E,GAAOoK,OAAOC,eAAe8b,EAAQnmB,EAAKoK,OAAO2lB,yBAAyBpD,EAAQ3sB,CAAG,CAAC,CAAE,CAAE,CAAI,CAAC,OAAOmmB,CAAS,CAKnf,SAAS2jD,iBACd,IAAIzzC,EAAS24B,0BAETN,EADcI,kBACQ1I,aAKtBgJ,EAAa9B,eAHDvgD,EAAS,WACvB,OAAOspB,EAAO0zC,YAClB,CAAG,EAC0C,CAAC,EACxCxjB,EAAU6I,EAAW,GACrB4a,EAAkB5a,EAAW,GAE7B6a,EAAe1jB,EAAQmI,GACvB4E,EAAa1lD,IAAY,SAAU+zD,GACrCtrC,EAAOi9B,WAAWqO,CAAW,CACjC,EAAK,CAACtrC,EAAO,EACP6zC,EAAkBt8D,IAAY,SAAU+zD,GAC1CrO,EAAW,SAAU6W,GACnB,OAAO1nB,cAAcA,cAAc,GAAI0nB,CAAW,EAAG,GAAIznB,kBAAgB,GAAIgM,EAAgC,YAAvB,OAAOiT,EAA6BA,EAAYwI,EAAYzb,EAAQ,EAAIiT,CAAW,CAAC,CAChL,CAAK,CACL,EAAK,CAACrO,EAAY5E,EAAQ,EAWxB,OAVAxhD,IAAU,WACR,SAAS28D,IACPG,EAAgB3zC,EAAO0zC,WAAU,CAAE,CACpC,CAGD,OADA1zC,EAAOqhB,YAAY,SAAUmyB,CAAY,EAClC,WACLxzC,EAAO4hB,eAAe,SAAU4xB,CAAY,CAClD,CACA,EAAK,CAACxzC,EAAQq4B,EAAQ,EACb,CACLnI,QAASA,EACT+M,WAAYA,EACZ2W,aAAcA,EACdC,gBAAiBA,CACrB,CACA,CC1CO,SAASE,mBACd,IACIC,GAD0B,EAAnB7qE,UAAUC,QAA+BwS,KAAAA,IAAjBzS,UAAU,GAAmBA,UAAU,GAAK,IACzD6qE,WAElBh0C,EAAS24B,0BAETsb,EAAkBR,eAAgB,EAClCvjB,EAAU+jB,EAAgB/jB,QAC1B+M,EAAagX,EAAgBhX,WAC7B2W,EAAeK,EAAgBL,aAC/BC,EAAkBI,EAAgBJ,gBAElCK,EAAoBb,iBAAkB,EACtC54B,EAAUy5B,EAAkBz5B,QAC5B8Z,EAAgB2f,EAAkB3f,cAElCkY,EAAMl1D,IAAY,WACpB,IAAK,IAAIi2C,EAAOrkD,UAAUC,OAAQ+qE,EAAc,IAAIloE,MAAMuhD,CAAI,EAAGC,EAAO,EAAGA,EAAOD,EAAMC,CAAI,GAC1F0mB,EAAY1mB,GAAQtkD,UAAUskD,GAIhC,OADAztB,EAAOysC,IAAI32D,MAAMkqB,EAAQm0C,CAAW,EAC7B,WACLn0C,EAAOo0C,MAAMt+D,MAAMkqB,EAAQm0C,CAAW,CAC5C,CACA,EAAK,CAACn0C,EAAO,EACPq0C,EAAU98D,IAAY,WACxByoB,EAAOq0C,QAAO,CAClB,EAAK,CAACr0C,EAAO,EAaX,OAZAk5B,0BAA0B,WACxB,IACM5jC,EADN,OAAI0+C,GAGFh0C,EAAOqhB,YAAY,QAFf/rB,EAAU,YAEqB,EAC5B,WACL,OAAO0K,EAAO4hB,eAAe,QAAStsB,CAAO,CACrD,GAGW,YACX,EAAK,CAAC0K,EAAQg0C,EAAW,EAChB,CACLv5B,QAASA,EACT8Z,cAAeA,EACfrE,QAASA,EACT+M,WAAYA,EACZ2W,aAAcA,EACdC,gBAAiBA,EACjBpH,IAAKA,EACL4H,QAASA,EACT94C,OAAQyE,EAAOzE,OACfvF,MAAOgK,EAAOhK,KAClB,CACA,mBCzDIs+C,kBAAmB3pE,gBAAQA,eAAK2pE,kBAAqBvgE,OAAO2G,OAAM,SAAalS,EAAG2D,EAAGpB,EAAGwpE,GAC7E34D,KAAAA,IAAP24D,IAAkBA,EAAKxpE,GAC3BgJ,OAAOC,eAAexL,EAAG+rE,EAAI,CAAEl/D,WAAY,CAAA,EAAM7B,IAAK,WAAa,OAAOrH,EAAEpB,EAAG,CAAI,CAAA,CACtF,EAAA,SAAcvC,EAAG2D,EAAGpB,EAAGwpE,GAEpB/rE,EADsB+rE,EAAX34D,KAAAA,IAAP24D,EAAuBxpE,EACzBwpE,GAAMpoE,EAAEpB,EACb,GACGypE,qBAAsB7pE,gBAAQA,eAAK6pE,qBAAwBzgE,OAAO2G,OAAM,SAAalS,EAAGgB,GACxFuK,OAAOC,eAAexL,EAAG,UAAW,CAAE6M,WAAY,CAAA,EAAM1H,MAAOnE,CAAC,CAAE,CACrE,EAAI,SAAShB,EAAGgB,GACbhB,EAAW,QAAIgB,CACnB,GACIirE,eAAgB9pE,gBAAQA,eAAK8pE,cAAiB,SAAUjmC,GACxD,GAAIA,GAAOA,EAAIkmC,WAAY,OAAOlmC,EAClC,IAAIhsB,EAAS,GACb,GAAW,MAAPgsB,EAAa,IAAK,IAAIzjC,KAAKyjC,EAAe,YAANzjC,GAAmBgJ,OAAOlG,UAAUqL,eAAe5P,KAAKklC,EAAKzjC,CAAC,GAAGupE,kBAAgB9xD,EAAQgsB,EAAKzjC,CAAC,EAEvI,OADAypE,qBAAmBhyD,EAAQgsB,CAAG,EACvBhsB,CACX,EACAzO,OAAOC,eAAe2gE,WAAS,aAAc,CAAEhnE,MAAO,CAAA,CAAI,CAAE,EAC5D,MAAM0gE,QAAQoG,eAAaz7D,UAAgB,EACrC47D,cAAgB,GAAYvG,QAAMh/D,cAAc,MAAO0E,OAAOkF,OAAO,CAAE47D,MAAO,6BAA8Bh5D,MAAO,GAAIi5D,OAAQ,GAAIC,QAAS,WAAa,EAAErrE,CAAK,EAClK2kE,QAAMh/D,cAAc,OAAQ,CAAE3E,EAAG,yTAAyT,CAAE,CAAE,EAClW,IAAAsqE,WAAAL,WAAA7hE,QAAkB8hE,cCZlB,MAAMK,cAA8C,CAAA,CAE5CC,SAAAA,EACAC,WAAAA,EACAC,gBAAAA,CAEH,IAGGC,IAAA,MAAA,CAAKjgE,UAAU,uBAAuB,EAClCigE,IAAA,OAAA,KAAMA,IAACv9C,MAAKE,aAAck9C,aAAoB,EAAS,EACtDC,GACGE,IAAA,SAAA,CAAQjgE,UAAU,uBAAuBsjB,MAAOc,QAAQ,0BAA0B,EAAE,qBAAsB87C,QAASF,CAAe,EAC9HC,IAACE,WAAc,IAAA,CAAE,CAGvB,ECxBDC,aAGR,CAAA,CAAE3qC,MAAAA,EAAO4qC,eAAAA,CAAe,KACzB,MAAOh7B,EAAWs5B,mBAAXt5B,WACD,CAACi7B,EAAaC,GAAkBj/D,EAAS,CAAA,CAAI,EAUnD,OARAG,IAAU,KACF6+D,EACAC,EAAe,CAAA,CAAK,EACb9qC,IAAU4P,EAAQ5P,OACzB4qC,EAAeh7B,EAAQiM,MAAM,CAErC,EAAG,CAAC7b,EAAO4P,EAAQ,EAEZ46B,aACX,EClBA,IAAIO,oBAAsB,MACtBC,kBAAoB,CAAC,GAIzB,SAASC,wBAAwBp6D,GAC/B,IAEIq6D,EAA6E,OAA/DC,EAA2B,MAARt6D,EAAe,KAAA,EAASA,EAAKq6D,YAAsBC,EAAmBJ,oBACvGK,EAA0E,OAA7DC,EAA0B,MAARx6D,EAAe,KAAA,EAASA,EAAKu6D,WAAqBC,EAAkBL,kBACnGM,EAAU/+D,IAAO,IAAI,EACrBg/D,EAAUh/D,IAAO,IAAI,EACrBi/D,EAAcj/D,IAAO,IAAI,EAEzBk/D,EAAY5/D,EAAU,EACtB6/D,EAAQD,EAAU,GAClBE,EAAWF,EAAU,GAErBG,EAAYl/D,IAAY,WAE1B,IAAIm/D,EAAkBL,EAAY7rE,QACf,MAAnBksE,GAAmCA,EAAgBC,WAAU,EAC7DN,EAAY7rE,QAAU,IACvB,EAAE,EAAE,EACDosE,EAAUr/D,IAAY,WACxB,IAUMs/D,EAVF74B,EAAOm4B,EAAQ3rE,QAEfwzC,IACEP,EAAO24B,EAAQ5rE,SAOfqsE,EAAW,IAAIC,qBAAqB,SAAUxyD,GAC5CyyD,EAAWzyD,EAAK,GACpBkyD,EAASO,CAAQ,CAClB,EATa,CACZt5B,KAAMA,EACNs4B,WAAYA,EACZE,UAAWA,CACnB,CAKgB,GACDW,QAAQ54B,CAAI,EACrBq4B,EAAY7rE,QAAUqsE,EAE5B,EAAK,CAACd,EAAYE,EAAU,EACtBe,EAAqBz/D,IAAY,WACnCk/D,IACAG,GACJ,EAAK,CAACA,EAASH,EAAU,EACnBQ,EAAc1/D,IAAY,SAAUymC,GACtCm4B,EAAQ3rE,QAAUwzC,EAClBg5B,GACJ,EAAK,CAACA,EAAmB,EACnBE,EAAkB3/D,IAAY,SAAU4/D,GAC1Cf,EAAQ5rE,QAAU2sE,EAClBH,GACJ,EAAK,CAACA,EAAmB,EAgBvB,OAfAngE,IAAU,WAUR,OADAmgE,IACO,WAELP,GACN,CACA,EAAK,CAACO,EAAoBP,EAAU,EAC3B,CAACQ,EAAa,CACnBV,MAAOA,EACPH,QAASc,CACb,EACA,CAEA,SAASnrB,WAeP,OAdAA,SAAWh4C,OAAOkF,QAAU,SAAU6W,GACpC,IAAK,IAAIvnB,EAAI,EAAGA,EAAIY,UAAUC,OAAQb,CAAC,GAAI,CACzC,IAESoB,EAFL2sB,EAASntB,UAAUZ,GAEvB,IAASoB,KAAO2sB,EACVviB,OAAOlG,UAAUqL,eAAe5P,KAAKgtB,EAAQ3sB,CAAG,IAClDmmB,EAAOnmB,GAAO2sB,EAAO3sB,GAG1B,CAED,OAAOmmB,CACX,GAEkBha,MAAMnL,KAAMxB,SAAS,CACvC,CAEA,SAASiuE,mBAAmB17D,GAC1B,IAEI27D,EAAwBvB,wBAAwBp6D,CAAI,EACpD9R,EAAMytE,EAAsB,GAC5B70D,EAAS60D,EAAsB,GAE/BC,EAAY7mD,QAA0C,OAAjC8mD,EAAgB/0D,EAAO+zD,OAAiB,KAAA,EAASgB,EAAcC,cAAc,EAElGlB,EAAY5/D,EAAS4gE,CAAS,EAC9BG,EAAiBnB,EAAU,GAC3BoB,EAAoBpB,EAAU,GAOlC,OALAz/D,IAAU,WACJygE,GACFI,EAAkBJ,CAAS,CAEjC,EAAK,CAACA,EAAU,EACP,CAAC1tE,EAAKmiD,SAAS,GAAIvpC,EAAQ,CAChC80D,UAAWA,EACXG,eAAgBA,CACjB,CAAA,EACH,CCnHA,IAAIE,oBAAsB,IAE1B,SAASC,kBAAkBtzD,GACzB,IAAIuzD,EAAUvzD,EAAKuzD,QACfC,EAAcxzD,EAAKwzD,YACnBC,EAAazzD,EAAKyzD,WAClBhC,EAAazxD,EAAKyxD,WAClBiC,EAAW1zD,EAAK0zD,SAChBC,EAAiB3zD,EAAK4zD,UACtBA,EAA+B,KAAA,IAAnBD,EAA4BN,oBAAsBM,EAE9DE,EAAsBf,mBAAmB,CAC3CrB,WAAYA,CAChB,CAAG,EACGnsE,EAAMuuE,EAAoB,GAC1BC,EAAuBD,EAAoB,GAC3C/B,EAAUgC,EAAqBhC,QAC/BkB,EAAYc,EAAqBd,UAEjCe,EAAiB,CAACL,GAAY,CAACH,GAAWP,GAAaQ,EAkB3D,OAhBAjhE,IAAU,WACR,IAOMyhE,EAPN,GAAID,EAUF,OAHIC,EAAQhtE,WAAW,WACrBysE,GACD,EAAEG,CAAS,EACL,WACLxmE,aAAa4mE,CAAK,CAC1B,CAEG,EAAE,CAACP,EAAYM,EAAgBH,EAAU,EACnC,CAACtuE,EAAK,CACXwsE,QAASA,CACb,EACA,gBC1CI9B,kBAAmB3pE,gBAAQA,eAAK2pE,kBAAqBvgE,OAAO2G,OAAM,SAAalS,EAAG2D,EAAGpB,EAAGwpE,GAC7E34D,KAAAA,IAAP24D,IAAkBA,EAAKxpE,GAC3BgJ,OAAOC,eAAexL,EAAG+rE,EAAI,CAAEl/D,WAAY,CAAA,EAAM7B,IAAK,WAAa,OAAOrH,EAAEpB,EAAG,CAAI,CAAA,CACtF,EAAA,SAAcvC,EAAG2D,EAAGpB,EAAGwpE,GAEpB/rE,EADsB+rE,EAAX34D,KAAAA,IAAP24D,EAAuBxpE,EACzBwpE,GAAMpoE,EAAEpB,EACb,GACGypE,qBAAsB7pE,gBAAQA,eAAK6pE,qBAAwBzgE,OAAO2G,OAAM,SAAalS,EAAGgB,GACxFuK,OAAOC,eAAexL,EAAG,UAAW,CAAE6M,WAAY,CAAA,EAAM1H,MAAOnE,CAAC,CAAE,CACrE,EAAI,SAAShB,EAAGgB,GACbhB,EAAW,QAAIgB,CACnB,GACIirE,eAAgB9pE,gBAAQA,eAAK8pE,cAAiB,SAAUjmC,GACxD,GAAIA,GAAOA,EAAIkmC,WAAY,OAAOlmC,EAClC,IAAIhsB,EAAS,GACb,GAAW,MAAPgsB,EAAa,IAAK,IAAIzjC,KAAKyjC,EAAe,YAANzjC,GAAmBgJ,OAAOlG,UAAUqL,eAAe5P,KAAKklC,EAAKzjC,CAAC,GAAGupE,kBAAgB9xD,EAAQgsB,EAAKzjC,CAAC,EAEvI,OADAypE,qBAAmBhyD,EAAQgsB,CAAG,EACvBhsB,CACX,EACAzO,OAAOC,eAAeukE,QAAS,aAAc,CAAE5qE,MAAO,CAAA,CAAI,CAAE,EAC5D,MAAM0gE,QAAQoG,eAAaz7D,UAAgB,EACrCw/D,WAAa,GAAYnK,QAAMh/D,cAAc,MAAO0E,OAAOkF,OAAO,CAAE47D,MAAO,6BAA8Bh5D,MAAO,GAAIi5D,OAAQ,GAAIC,QAAS,WAAa,EAAErrE,CAAK,EAC/J2kE,QAAMh/D,cAAc,OAAQ,CAAE3E,EAAG,wNAAwN,CAAE,CAAE,EACjQ,IAAAsqE,WAAAuD,QAAAzlE,QAAkB0lE,oBCvBdlE,kBAAmB3pE,gBAAQA,eAAK2pE,kBAAqBvgE,OAAO2G,OAAM,SAAalS,EAAG2D,EAAGpB,EAAGwpE,GAC7E34D,KAAAA,IAAP24D,IAAkBA,EAAKxpE,GAC3BgJ,OAAOC,eAAexL,EAAG+rE,EAAI,CAAEl/D,WAAY,CAAA,EAAM7B,IAAK,WAAa,OAAOrH,EAAEpB,EAAG,CAAI,CAAA,CACtF,EAAA,SAAcvC,EAAG2D,EAAGpB,EAAGwpE,GAEpB/rE,EADsB+rE,EAAX34D,KAAAA,IAAP24D,EAAuBxpE,EACzBwpE,GAAMpoE,EAAEpB,EACb,GACGypE,qBAAsB7pE,gBAAQA,eAAK6pE,qBAAwBzgE,OAAO2G,OAAM,SAAalS,EAAGgB,GACxFuK,OAAOC,eAAexL,EAAG,UAAW,CAAE6M,WAAY,CAAA,EAAM1H,MAAOnE,CAAC,CAAE,CACrE,EAAI,SAAShB,EAAGgB,GACbhB,EAAW,QAAIgB,CACnB,GACIirE,eAAgB9pE,gBAAQA,eAAK8pE,cAAiB,SAAUjmC,GACxD,GAAIA,GAAOA,EAAIkmC,WAAY,OAAOlmC,EAClC,IAAIhsB,EAAS,GACb,GAAW,MAAPgsB,EAAa,IAAK,IAAIzjC,KAAKyjC,EAAe,YAANzjC,GAAmBgJ,OAAOlG,UAAUqL,eAAe5P,KAAKklC,EAAKzjC,CAAC,GAAGupE,kBAAgB9xD,EAAQgsB,EAAKzjC,CAAC,EAEvI,OADAypE,qBAAmBhyD,EAAQgsB,CAAG,EACvBhsB,CACX,EACAzO,OAAOC,eAAeykE,MAAS,aAAc,CAAE9qE,MAAO,CAAA,CAAI,CAAE,EAC5D,MAAM0gE,QAAQoG,eAAaz7D,UAAgB,EACrC0/D,SAAW,GAAYrK,QAAMh/D,cAAc,MAAO0E,OAAOkF,OAAO,CAAE47D,MAAO,6BAA8Bh5D,MAAO,GAAIi5D,OAAQ,GAAIC,QAAS,WAAa,EAAErrE,CAAK,EAC7J2kE,QAAMh/D,cAAc,OAAQ,CAAE3E,EAAG,+mBAA+mB,CAAE,CAAE,EACxpB,IAAAsqE,WAAAyD,MAAA3lE,QAAkB4lE,oBCvBdpE,kBAAmB3pE,gBAAQA,eAAK2pE,kBAAqBvgE,OAAO2G,OAAM,SAAalS,EAAG2D,EAAGpB,EAAGwpE,GAC7E34D,KAAAA,IAAP24D,IAAkBA,EAAKxpE,GAC3BgJ,OAAOC,eAAexL,EAAG+rE,EAAI,CAAEl/D,WAAY,CAAA,EAAM7B,IAAK,WAAa,OAAOrH,EAAEpB,EAAG,CAAI,CAAA,CACtF,EAAA,SAAcvC,EAAG2D,EAAGpB,EAAGwpE,GAEpB/rE,EADsB+rE,EAAX34D,KAAAA,IAAP24D,EAAuBxpE,EACzBwpE,GAAMpoE,EAAEpB,EACb,GACGypE,qBAAsB7pE,gBAAQA,eAAK6pE,qBAAwBzgE,OAAO2G,OAAM,SAAalS,EAAGgB,GACxFuK,OAAOC,eAAexL,EAAG,UAAW,CAAE6M,WAAY,CAAA,EAAM1H,MAAOnE,CAAC,CAAE,CACrE,EAAI,SAAShB,EAAGgB,GACbhB,EAAW,QAAIgB,CACnB,GACIirE,eAAgB9pE,gBAAQA,eAAK8pE,cAAiB,SAAUjmC,GACxD,GAAIA,GAAOA,EAAIkmC,WAAY,OAAOlmC,EAClC,IAAIhsB,EAAS,GACb,GAAW,MAAPgsB,EAAa,IAAK,IAAIzjC,KAAKyjC,EAAe,YAANzjC,GAAmBgJ,OAAOlG,UAAUqL,eAAe5P,KAAKklC,EAAKzjC,CAAC,GAAGupE,kBAAgB9xD,EAAQgsB,EAAKzjC,CAAC,EAEvI,OADAypE,qBAAmBhyD,EAAQgsB,CAAG,EACvBhsB,CACX,EACAzO,OAAOC,eAAe2kE,QAAS,aAAc,CAAEhrE,MAAO,CAAA,CAAI,CAAE,EAC5D,MAAM0gE,QAAQoG,eAAaz7D,UAAgB,EACrC4/D,WAAa,GAAYvK,QAAMh/D,cAAc,MAAO0E,OAAOkF,OAAO,CAAE47D,MAAO,6BAA8Bh5D,MAAO,GAAIi5D,OAAQ,GAAIC,QAAS,WAAa,EAAErrE,CAAK,EAC/J2kE,QAAMh/D,cAAc,OAAQ,CAAE3E,EAAG,+mCAA+mC,CAAE,CAAE,EACxpC,IAAAsqE,WAAA2D,QAAA7lE,QAAkB8lE,kBCvBdtE,kBAAmB3pE,gBAAQA,eAAK2pE,kBAAqBvgE,OAAO2G,OAAM,SAAalS,EAAG2D,EAAGpB,EAAGwpE,GAC7E34D,KAAAA,IAAP24D,IAAkBA,EAAKxpE,GAC3BgJ,OAAOC,eAAexL,EAAG+rE,EAAI,CAAEl/D,WAAY,CAAA,EAAM7B,IAAK,WAAa,OAAOrH,EAAEpB,EAAG,CAAI,CAAA,CACtF,EAAA,SAAcvC,EAAG2D,EAAGpB,EAAGwpE,GAEpB/rE,EADsB+rE,EAAX34D,KAAAA,IAAP24D,EAAuBxpE,EACzBwpE,GAAMpoE,EAAEpB,EACb,GACGypE,qBAAsB7pE,gBAAQA,eAAK6pE,qBAAwBzgE,OAAO2G,OAAM,SAAalS,EAAGgB,GACxFuK,OAAOC,eAAexL,EAAG,UAAW,CAAE6M,WAAY,CAAA,EAAM1H,MAAOnE,CAAC,CAAE,CACrE,EAAI,SAAShB,EAAGgB,GACbhB,EAAW,QAAIgB,CACnB,GACIirE,eAAgB9pE,gBAAQA,eAAK8pE,cAAiB,SAAUjmC,GACxD,GAAIA,GAAOA,EAAIkmC,WAAY,OAAOlmC,EAClC,IAAIhsB,EAAS,GACb,GAAW,MAAPgsB,EAAa,IAAK,IAAIzjC,KAAKyjC,EAAe,YAANzjC,GAAmBgJ,OAAOlG,UAAUqL,eAAe5P,KAAKklC,EAAKzjC,CAAC,GAAGupE,kBAAgB9xD,EAAQgsB,EAAKzjC,CAAC,EAEvI,OADAypE,qBAAmBhyD,EAAQgsB,CAAG,EACvBhsB,CACX,EACAzO,OAAOC,eAAe6kE,IAAS,aAAc,CAAElrE,MAAO,CAAA,CAAI,CAAE,EAC5D,MAAM0gE,QAAQoG,eAAaz7D,UAAgB,EACrC8/D,OAAS,GAAYzK,QAAMh/D,cAAc,MAAO0E,OAAOkF,OAAO,CAAE47D,MAAO,6BAA8Bh5D,MAAO,GAAIi5D,OAAQ,GAAIC,QAAS,WAAa,EAAErrE,CAAK,EAC3J2kE,QAAMh/D,cAAc,OAAQ,CAAE3E,EAAG,u8BAAu8B,CAAE,CAAE,EACh/B,IAAAsqE,WAAA6D,IAAA/lE,QAAkBgmE,gBCvBdxE,kBAAmB3pE,gBAAQA,eAAK2pE,kBAAqBvgE,OAAO2G,OAAM,SAAalS,EAAG2D,EAAGpB,EAAGwpE,GAC7E34D,KAAAA,IAAP24D,IAAkBA,EAAKxpE,GAC3BgJ,OAAOC,eAAexL,EAAG+rE,EAAI,CAAEl/D,WAAY,CAAA,EAAM7B,IAAK,WAAa,OAAOrH,EAAEpB,EAAG,CAAI,CAAA,CACtF,EAAA,SAAcvC,EAAG2D,EAAGpB,EAAGwpE,GAEpB/rE,EADsB+rE,EAAX34D,KAAAA,IAAP24D,EAAuBxpE,EACzBwpE,GAAMpoE,EAAEpB,EACb,GACGypE,qBAAsB7pE,gBAAQA,eAAK6pE,qBAAwBzgE,OAAO2G,OAAM,SAAalS,EAAGgB,GACxFuK,OAAOC,eAAexL,EAAG,UAAW,CAAE6M,WAAY,CAAA,EAAM1H,MAAOnE,CAAC,CAAE,CACrE,EAAI,SAAShB,EAAGgB,GACbhB,EAAW,QAAIgB,CACnB,GACIirE,eAAgB9pE,gBAAQA,eAAK8pE,cAAiB,SAAUjmC,GACxD,GAAIA,GAAOA,EAAIkmC,WAAY,OAAOlmC,EAClC,IAAIhsB,EAAS,GACb,GAAW,MAAPgsB,EAAa,IAAK,IAAIzjC,KAAKyjC,EAAe,YAANzjC,GAAmBgJ,OAAOlG,UAAUqL,eAAe5P,KAAKklC,EAAKzjC,CAAC,GAAGupE,kBAAgB9xD,EAAQgsB,EAAKzjC,CAAC,EAEvI,OADAypE,qBAAmBhyD,EAAQgsB,CAAG,EACvBhsB,CACX,EACAzO,OAAOC,eAAe+kE,MAAS,aAAc,CAAEprE,MAAO,CAAA,CAAI,CAAE,EAC5D,MAAM0gE,QAAQoG,eAAaz7D,UAAgB,EACrCggE,SAAW,GAAY3K,QAAMh/D,cAAc,MAAO0E,OAAOkF,OAAO,CAAE47D,MAAO,6BAA8Bh5D,MAAO,GAAIi5D,OAAQ,GAAIC,QAAS,WAAa,EAAErrE,CAAK,EAC7J2kE,QAAMh/D,cAAc,OAAQ,CAAE3E,EAAG,y2KAAy2K,CAAE,CAAE,EACl5K,IAAAsqE,WAAA+D,MAAAjmE,QAAkBkmE,oBCvBd1E,kBAAmB3pE,gBAAQA,eAAK2pE,kBAAqBvgE,OAAO2G,OAAM,SAAalS,EAAG2D,EAAGpB,EAAGwpE,GAC7E34D,KAAAA,IAAP24D,IAAkBA,EAAKxpE,GAC3BgJ,OAAOC,eAAexL,EAAG+rE,EAAI,CAAEl/D,WAAY,CAAA,EAAM7B,IAAK,WAAa,OAAOrH,EAAEpB,EAAG,CAAI,CAAA,CACtF,EAAA,SAAcvC,EAAG2D,EAAGpB,EAAGwpE,GAEpB/rE,EADsB+rE,EAAX34D,KAAAA,IAAP24D,EAAuBxpE,EACzBwpE,GAAMpoE,EAAEpB,EACb,GACGypE,qBAAsB7pE,gBAAQA,eAAK6pE,qBAAwBzgE,OAAO2G,OAAM,SAAalS,EAAGgB,GACxFuK,OAAOC,eAAexL,EAAG,UAAW,CAAE6M,WAAY,CAAA,EAAM1H,MAAOnE,CAAC,CAAE,CACrE,EAAI,SAAShB,EAAGgB,GACbhB,EAAW,QAAIgB,CACnB,GACIirE,eAAgB9pE,gBAAQA,eAAK8pE,cAAiB,SAAUjmC,GACxD,GAAIA,GAAOA,EAAIkmC,WAAY,OAAOlmC,EAClC,IAAIhsB,EAAS,GACb,GAAW,MAAPgsB,EAAa,IAAK,IAAIzjC,KAAKyjC,EAAe,YAANzjC,GAAmBgJ,OAAOlG,UAAUqL,eAAe5P,KAAKklC,EAAKzjC,CAAC,GAAGupE,kBAAgB9xD,EAAQgsB,EAAKzjC,CAAC,EAEvI,OADAypE,qBAAmBhyD,EAAQgsB,CAAG,EACvBhsB,CACX,EACAzO,OAAOC,eAAeilE,QAAS,aAAc,CAAEtrE,MAAO,CAAA,CAAI,CAAE,EAC5D,MAAM0gE,QAAQoG,eAAaz7D,UAAgB,EACrCkgE,WAAa,GAAY7K,QAAMh/D,cAAc,MAAO0E,OAAOkF,OAAO,CAAE47D,MAAO,6BAA8Bh5D,MAAO,GAAIi5D,OAAQ,GAAIC,QAAS,WAAa,EAAErrE,CAAK,EAC/J2kE,QAAMh/D,cAAc,OAAQ,CAAE3E,EAAG,+EAA+E,CAAE,CAAE,EACxH,IAAAsqE,WAAAiE,QAAAnmE,QAAkBomE,sBCvBd5E,kBAAmB3pE,gBAAQA,eAAK2pE,kBAAqBvgE,OAAO2G,OAAM,SAAalS,EAAG2D,EAAGpB,EAAGwpE,GAC7E34D,KAAAA,IAAP24D,IAAkBA,EAAKxpE,GAC3BgJ,OAAOC,eAAexL,EAAG+rE,EAAI,CAAEl/D,WAAY,CAAA,EAAM7B,IAAK,WAAa,OAAOrH,EAAEpB,EAAG,CAAI,CAAA,CACtF,EAAA,SAAcvC,EAAG2D,EAAGpB,EAAGwpE,GAEpB/rE,EADsB+rE,EAAX34D,KAAAA,IAAP24D,EAAuBxpE,EACzBwpE,GAAMpoE,EAAEpB,EACb,GACGypE,qBAAsB7pE,gBAAQA,eAAK6pE,qBAAwBzgE,OAAO2G,OAAM,SAAalS,EAAGgB,GACxFuK,OAAOC,eAAexL,EAAG,UAAW,CAAE6M,WAAY,CAAA,EAAM1H,MAAOnE,CAAC,CAAE,CACrE,EAAI,SAAShB,EAAGgB,GACbhB,EAAW,QAAIgB,CACnB,GACIirE,eAAgB9pE,gBAAQA,eAAK8pE,cAAiB,SAAUjmC,GACxD,GAAIA,GAAOA,EAAIkmC,WAAY,OAAOlmC,EAClC,IAAIhsB,EAAS,GACb,GAAW,MAAPgsB,EAAa,IAAK,IAAIzjC,KAAKyjC,EAAe,YAANzjC,GAAmBgJ,OAAOlG,UAAUqL,eAAe5P,KAAKklC,EAAKzjC,CAAC,GAAGupE,kBAAgB9xD,EAAQgsB,EAAKzjC,CAAC,EAEvI,OADAypE,qBAAmBhyD,EAAQgsB,CAAG,EACvBhsB,CACX,EACAzO,OAAOC,eAAemlE,QAAS,aAAc,CAAExrE,MAAO,CAAA,CAAI,CAAE,EAC5D,MAAM0gE,QAAQoG,eAAaz7D,UAAgB,EACrCogE,WAAa,GAAY/K,QAAMh/D,cAAc,MAAO0E,OAAOkF,OAAO,CAAE47D,MAAO,6BAA8Bh5D,MAAO,GAAIi5D,OAAQ,GAAIC,QAAS,WAAa,EAAErrE,CAAK,EAC/J2kE,QAAMh/D,cAAc,OAAQ,CAAE3E,EAAG,mpDAAmpD,CAAE,CAAE,EAC5rD,IAAAsqE,WAAAmE,QAAArmE,QAAkBsmE,sBCvBd9E,kBAAmB3pE,gBAAQA,eAAK2pE,kBAAqBvgE,OAAO2G,OAAM,SAAalS,EAAG2D,EAAGpB,EAAGwpE,GAC7E34D,KAAAA,IAAP24D,IAAkBA,EAAKxpE,GAC3BgJ,OAAOC,eAAexL,EAAG+rE,EAAI,CAAEl/D,WAAY,CAAA,EAAM7B,IAAK,WAAa,OAAOrH,EAAEpB,EAAG,CAAI,CAAA,CACtF,EAAA,SAAcvC,EAAG2D,EAAGpB,EAAGwpE,GAEpB/rE,EADsB+rE,EAAX34D,KAAAA,IAAP24D,EAAuBxpE,EACzBwpE,GAAMpoE,EAAEpB,EACb,GACGypE,qBAAsB7pE,gBAAQA,eAAK6pE,qBAAwBzgE,OAAO2G,OAAM,SAAalS,EAAGgB,GACxFuK,OAAOC,eAAexL,EAAG,UAAW,CAAE6M,WAAY,CAAA,EAAM1H,MAAOnE,CAAC,CAAE,CACrE,EAAI,SAAShB,EAAGgB,GACbhB,EAAW,QAAIgB,CACnB,GACIirE,eAAgB9pE,gBAAQA,eAAK8pE,cAAiB,SAAUjmC,GACxD,GAAIA,GAAOA,EAAIkmC,WAAY,OAAOlmC,EAClC,IAAIhsB,EAAS,GACb,GAAW,MAAPgsB,EAAa,IAAK,IAAIzjC,KAAKyjC,EAAe,YAANzjC,GAAmBgJ,OAAOlG,UAAUqL,eAAe5P,KAAKklC,EAAKzjC,CAAC,GAAGupE,kBAAgB9xD,EAAQgsB,EAAKzjC,CAAC,EAEvI,OADAypE,qBAAmBhyD,EAAQgsB,CAAG,EACvBhsB,CACX,EACAzO,OAAOC,eAAeqlE,QAAS,aAAc,CAAE1rE,MAAO,CAAA,CAAI,CAAE,EAC5D,MAAM0gE,QAAQoG,eAAaz7D,UAAgB,EACrCsgE,WAAa,GAAYjL,QAAMh/D,cAAc,MAAO0E,OAAOkF,OAAO,CAAE47D,MAAO,6BAA8Bh5D,MAAO,GAAIi5D,OAAQ,GAAIC,QAAS,WAAa,EAAErrE,CAAK,EAC/J2kE,QAAMh/D,cAAc,OAAQ,CAAE3E,EAAG,kpBAAkpB,CAAE,CAAE,EAC3rB,IAAAsqE,WAAAqE,QAAAvmE,QAAkBwmE,sBCvBdhF,kBAAmB3pE,gBAAQA,eAAK2pE,kBAAqBvgE,OAAO2G,OAAM,SAAalS,EAAG2D,EAAGpB,EAAGwpE,GAC7E34D,KAAAA,IAAP24D,IAAkBA,EAAKxpE,GAC3BgJ,OAAOC,eAAexL,EAAG+rE,EAAI,CAAEl/D,WAAY,CAAA,EAAM7B,IAAK,WAAa,OAAOrH,EAAEpB,EAAG,CAAI,CAAA,CACtF,EAAA,SAAcvC,EAAG2D,EAAGpB,EAAGwpE,GAEpB/rE,EADsB+rE,EAAX34D,KAAAA,IAAP24D,EAAuBxpE,EACzBwpE,GAAMpoE,EAAEpB,EACb,GACGypE,qBAAsB7pE,gBAAQA,eAAK6pE,qBAAwBzgE,OAAO2G,OAAM,SAAalS,EAAGgB,GACxFuK,OAAOC,eAAexL,EAAG,UAAW,CAAE6M,WAAY,CAAA,EAAM1H,MAAOnE,CAAC,CAAE,CACrE,EAAI,SAAShB,EAAGgB,GACbhB,EAAW,QAAIgB,CACnB,GACIirE,eAAgB9pE,gBAAQA,eAAK8pE,cAAiB,SAAUjmC,GACxD,GAAIA,GAAOA,EAAIkmC,WAAY,OAAOlmC,EAClC,IAAIhsB,EAAS,GACb,GAAW,MAAPgsB,EAAa,IAAK,IAAIzjC,KAAKyjC,EAAe,YAANzjC,GAAmBgJ,OAAOlG,UAAUqL,eAAe5P,KAAKklC,EAAKzjC,CAAC,GAAGupE,kBAAgB9xD,EAAQgsB,EAAKzjC,CAAC,EAEvI,OADAypE,qBAAmBhyD,EAAQgsB,CAAG,EACvBhsB,CACX,EACAzO,OAAOC,eAAeulE,QAAS,aAAc,CAAE5rE,MAAO,CAAA,CAAI,CAAE,EAC5D,MAAM0gE,QAAQoG,eAAaz7D,UAAgB,EACrCwgE,WAAa,GAAYnL,QAAMh/D,cAAc,MAAO0E,OAAOkF,OAAO,CAAE47D,MAAO,6BAA8Bh5D,MAAO,GAAIi5D,OAAQ,GAAIC,QAAS,WAAa,EAAErrE,CAAK,EAC/J2kE,QAAMh/D,cAAc,OAAQ,CAAE3E,EAAG,65CAA65C,CAAE,CAAE,EACt8C,IAAAsqE,WAAAuE,QAAAzmE,QAAkB0mE,8BCvBdlF,kBAAmB3pE,gBAAQA,eAAK2pE,kBAAqBvgE,OAAO2G,OAAM,SAAalS,EAAG2D,EAAGpB,EAAGwpE,GAC7E34D,KAAAA,IAAP24D,IAAkBA,EAAKxpE,GAC3BgJ,OAAOC,eAAexL,EAAG+rE,EAAI,CAAEl/D,WAAY,CAAA,EAAM7B,IAAK,WAAa,OAAOrH,EAAEpB,EAAG,CAAI,CAAA,CACtF,EAAA,SAAcvC,EAAG2D,EAAGpB,EAAGwpE,GAEpB/rE,EADsB+rE,EAAX34D,KAAAA,IAAP24D,EAAuBxpE,EACzBwpE,GAAMpoE,EAAEpB,EACb,GACGypE,qBAAsB7pE,gBAAQA,eAAK6pE,qBAAwBzgE,OAAO2G,OAAM,SAAalS,EAAGgB,GACxFuK,OAAOC,eAAexL,EAAG,UAAW,CAAE6M,WAAY,CAAA,EAAM1H,MAAOnE,CAAC,CAAE,CACrE,EAAI,SAAShB,EAAGgB,GACbhB,EAAW,QAAIgB,CACnB,GACIirE,eAAgB9pE,gBAAQA,eAAK8pE,cAAiB,SAAUjmC,GACxD,GAAIA,GAAOA,EAAIkmC,WAAY,OAAOlmC,EAClC,IAAIhsB,EAAS,GACb,GAAW,MAAPgsB,EAAa,IAAK,IAAIzjC,KAAKyjC,EAAe,YAANzjC,GAAmBgJ,OAAOlG,UAAUqL,eAAe5P,KAAKklC,EAAKzjC,CAAC,GAAGupE,kBAAgB9xD,EAAQgsB,EAAKzjC,CAAC,EAEvI,OADAypE,qBAAmBhyD,EAAQgsB,CAAG,EACvBhsB,CACX,EACAzO,OAAOC,eAAeylE,gBAAS,aAAc,CAAE9rE,MAAO,CAAA,CAAI,CAAE,EAC5D,MAAM0gE,QAAQoG,eAAaz7D,UAAgB,EACrC0gE,mBAAqB,GAAYrL,QAAMh/D,cAAc,MAAO0E,OAAOkF,OAAO,CAAE47D,MAAO,6BAA8Bh5D,MAAO,GAAIi5D,OAAQ,GAAIC,QAAS,WAAa,EAAErrE,CAAK,EACvK2kE,QAAMh/D,cAAc,OAAQ,CAAE3E,EAAG,q2BAAq2B,CAAE,CAAE,EAC94B,IAAAsqE,WAAAyE,gBAAA3mE,QAAkB4mE,yBCZLC,WAeFC,0CAA0CC,GACvCC,EAAOnvE,KAAK0H,IAAImB,IAAIqmE,EAAS5sE,YAAW,CAAE,EAChD,OAAO6sE,GAAQ9wE,IAAE8wE,EAAM,IAAI,CAC9B,EAjBuBH,WAAGtnE,IAAqC,IAAIoB,IAAiC,CACjG,CAAC,UAAWsmE,YACZ,CAAC,QAASC,YACV,CAAC,UAAWC,YACZ,CAAC,MAAOC,YACR,CAAC,QAASC,YACV,CAAC,MAAOC,YACR,CAAC,UAAWA,YACZ,CAAC,MAAOC,YACR,CAAC,MAAOC,YACR,CAAC,MAAOC,YACR,CAAC,QAASC,YACb,ECrBE,MAAMC,aAA6D,CAAA,CAAG/hD,MAAAA,EAAOrvB,SAAAA,CAAU,IAEtFgsE,IAAA,MAAA,CAAKvgE,MAAM,eAAe,EACtBugE,IAAK,MAAA,CAAAjgE,UAAU,sBAAsB,EAACigE,IAACv9C,KAAK,CAAAE,GAAIU,GAAc,EAC7DrvB,CACC,ECTDqxE,aAAe,CAAC77B,EAAW9uB,KAChC8uB,EAAK9uB,KACL8uB,EAAK9uB,GAAY4qD,SAAS97B,EAAK9uB,GAAW,CAAC,MAAM,GAG9C8uB,GAGE87B,SAAW,CAAChtE,EAAe+N,KACpC,IAAMqpD,EAAsB,EAAdrpD,EAAKtS,OAAa2kB,SAASrS,EAAK,GAAI,EAAE,EAAI,GAClDk/D,EAAsB,EAAdl/D,EAAKtS,OAAasS,EAAK,GAAK,MAC1C,OAAO/N,EAAMvE,OAAS27D,EAAQp3D,EAAM0hB,UAAU,EAAG01C,CAAK,EAAI6V,EAAQjtE,CACtE,iDCNU,SAASktE,EAAoBC,GAG5B,IAIIC,EAJJ,OAAGC,EAAiBF,KAIhBC,EAASC,EAAiBF,GAAY,CACzCrxC,QAAS,GACTzR,GAAI8iD,EACJG,OAAQ,CAAA,CACpB,EAGWC,EAAQJ,GAAUxxE,KAAKyxE,EAAOtxC,QAASsxC,EAAQA,EAAOtxC,QAASoxC,CAAmB,EAGlFE,EAAOE,OAAS,CAAA,EAGTF,IAhB4BtxC,OAiBnC,CA1BF,IAAUyxC,EAELF,OAHdvxC,SACmByxC,EA0CT,CAEV,SAAgBH,EAAQtxC,EAASoxC,GAEhCE,EAAOtxC,QAAUoxC,EAAoB,CAAC,CAGhC,EAEP,SAAgBE,EAAQtxC,EAASoxC,GAIhC9mE,OAAOC,eAAey1B,EAAS,aAAc,CAC3C97B,MAAO,CAAA,CACV,CAAE,EAID,IAAIwtE,EAAeN,EAAoB,CAAC,EAEpCO,GAJ4Bv8D,EAIWs8D,IAJUt8D,EAAI61D,WAAa71D,EAAM,CAAE/L,QAAW+L,CAAK,EAM9F4qB,EAAiB,QAAI2xC,EAAuB,QAC5CL,EAAOtxC,QAAUA,EAAiB,OAE5B,EAEP,SAAgBsxC,EAAQtxC,EAASoxC,GAIhC9mE,OAAOC,eAAey1B,EAAS,aAAc,CAC3C97B,MAAO,CAAA,CACV,CAAE,EAED,IAAIo+C,EAAWh4C,OAAOkF,QAAU,SAAU6W,GAAU,IAAK,IAAIvnB,EAAI,EAAGA,EAAIY,UAAUC,OAAQb,CAAC,GAAI,CAAE,IAAoCoB,EAAhC2sB,EAASntB,UAAUZ,GAAI,IAASoB,KAAO2sB,EAAcviB,OAAOlG,UAAUqL,eAAe5P,KAAKgtB,EAAQ3sB,CAAG,IAAKmmB,EAAOnmB,GAAO2sB,EAAO3sB,IAAY,OAAOmmB,GAIvP,SAASurD,EAAuBx8D,GAAO,OAAOA,GAAOA,EAAI61D,WAAa71D,EAAM,CAAE/L,QAAW+L,CAAK,CAAG,CAFjG4qB,EAAiB,QAAI6xC,EAMrB,IAAIC,EAAsBV,EAAoB,CAAC,EAI3CW,EAAcH,EAFDR,EAAoB,CAAC,CAEa,EAE/CY,EAASZ,EAAoB,EAAE,EAI/Ba,EAAeL,EAFDR,EAAoB,EAAE,CAEa,EAyBrD,SAASS,EAAYh3D,GACnB,IAqCIq3D,EACAC,EAtCAC,EAAuBv3D,EAAKw3D,gBAC5BA,EAA2ClgE,KAAAA,IAAzBigE,EAAqC,GAAKA,EAC5DE,EAAmBz3D,EAAK03D,YACxBA,EAAmCpgE,KAAAA,IAArBmgE,EAAiC,CAAC,EAAIA,EACpDE,EAAc33D,EAAK23D,YACnBC,EAAa53D,EAAK43D,WAClBC,EAAqB73D,EAAK83D,cAC1BA,EAAuCxgE,KAAAA,IAAvBugE,GAA2CA,EAC3D/mE,EAAYkP,EAAKlP,UACjBinE,EAAa/3D,EAAK+3D,WAClBC,EAA0Bh4D,EAAKi4D,mBAC/BA,EAAiD3gE,KAAAA,IAA5B0gE,EAAwC,GAAKA,EAClEE,EAAsBl4D,EAAKm4D,eAC3BA,EAAyC7gE,KAAAA,IAAxB4gE,EAAoC,GAAKA,EAC1DE,EAAoBp4D,EAAKq4D,aACzBA,EAAqC/gE,KAAAA,IAAtB8gE,EAAkC,OAASA,EAC1DE,EAAWt4D,EAAKs4D,SAChBC,EAAcv4D,EAAKu4D,YACnBC,EAAkBx4D,EAAKw4D,gBACvBC,EAAsBz4D,EAAK04D,eAC3BA,EAAyCphE,KAAAA,IAAxBmhE,EAAoC,OAASA,EAC9DE,EAA4B34D,EAAK44D,qBACjCA,EAAqDthE,KAAAA,IAA9BqhE,EAA0C,GAAKA,EACtEE,EAAmB74D,EAAK64D,iBAExB1/D,EA/DN,SAAkCoB,EAAK1F,GAAQ,IAA0B5Q,EAAtBunB,EAAS,GAAI,IAASvnB,KAAKsW,EAA8B,GAAnB1F,EAAKrO,QAAQvC,CAAC,GAAuBwL,OAAOlG,UAAUqL,eAAe5P,KAAKuV,EAAKtW,CAAC,IAAaunB,EAAOvnB,GAAKsW,EAAItW,IAAM,OAAOunB,CAAS,EA+DtLxL,EAAM,CAAC,kBAAmB,cAAe,cAAe,aAAc,gBAAiB,YAAa,aAAc,qBAAsB,iBAAkB,eAAgB,WAAY,cAAe,kBAAmB,iBAAkB,uBAAwB,mBAAmB,EAErTgqC,GAAS,EAAIitB,EAAoB6B,SAAS,CAC5ClB,WAAYA,EACZE,cAAeA,EACfC,WAAYA,EACZO,SAAUA,EACVC,YAAaA,EACbC,gBAAiBA,CACtB,CAAI,EACGO,EAAeV,EACfW,EAAiB,CAAC,EAWlBC,GAAyB,EAAI7B,EAAsB,SAPlC,SAAwBh+D,GAC3C,IACS/T,EADL04D,EAAS,GACb,IAAS14D,KAAO+T,EACd2kD,EAAO14D,EAAIsD,YAAW,GAAMyQ,EAAO/T,GAErC,OAAO04D,CACZ,CAC2E,EAExE,OAAO,EAAIoZ,EAAOpsE,eAAe,OAAQ08C,EAAS,CAChD32C,UAAWA,CACZ,EAAEqI,EAAM,CACPpU,SAAUilD,EAAOj8C,IAAI,SAAU87C,EAAO1xC,GACpC,IAAI+gE,EAAOV,EAAgBtqD,OAAO27B,EAAM6f,MAAO7f,EAAMsvB,IAAMtvB,EAAM6f,KAAK,EAEtE,OAAI7f,EAAMwQ,WACR2e,CAAc,GAEVI,EAAiB9hE,KAAAA,EAMjB8hE,EAL8B,UAA9B,OAAOnB,EACJH,EAIcG,EAAmBiB,IAHpCjB,EAAqBgB,EAAuBhB,CAAkB,GAC1BiB,EAAKvwE,YAAa,GAKvCsvE,EAKnBZ,EAAsB+B,EAAiB,MAFnCC,EAAWL,IAAmB,CAACtB,GAEsBF,EAAkB,IAC3EF,EAA+B,CAAA,GAAb+B,GAAoC,MAAf1B,EAAsBloE,OAAOkF,OAAO,GAAIwjE,EAAgBR,CAAW,EAAIQ,EAE1G/yE,EAAQ,CACVL,SAAUm0E,EACVpoE,UAAWumE,EACXhyE,IAAK8S,EACL3P,MAAO8uE,CAClB,EAIqC,UAAxB,OAAOyB,IACT3zE,EAAM4zE,eAAiBA,IAGlB,EAAI7B,EAAOpsE,eAAeguE,EAAc3zE,CAAK,IAE7C,EAAI+xE,EAAOpsE,eAAe2tE,EAAgB,CAC/C3zE,SAAUm0E,EACVpoE,UAAW8nE,EACXvzE,IAAK8S,EACL3P,MAAOqwE,CAClB,CAAU,CAEV,CAAM,CACF,CAAA,CAAC,CACH,CA3HD7B,EAAYvgE,UAAY,CACtB+gE,gBAAiBN,EAAqB,QAAE5+D,OACxCo/D,YAAaR,EAAqB,QAAEr9D,OACpC89D,YAAaT,EAAqB,QAAE99D,OACpCw+D,WAAYV,EAAqB,QAAEoC,KACnCxoE,UAAWomE,EAAqB,QAAE5+D,OAClCy/D,WAAYb,EAAqB,QAAEqC,KACnCtB,mBAAoBf,EAAqB,QAAEsC,UAAU,CAACtC,EAAqB,QAAE99D,OAAQ89D,EAAqB,QAAE5+D,OAAO,EACnH6/D,eAAgBjB,EAAqB,QAAE99D,OACvCi/D,aAAcnB,EAAqB,QAAEsC,UAAU,CAACtC,EAAqB,QAAEx9B,KAAMw9B,EAAqB,QAAEqC,KAAMrC,EAAqB,QAAE5+D,OAAO,EACxIggE,SAAUpB,EAAqB,QAAEqC,KACjChB,YAAarB,EAAqB,QAAEuC,QAAQvC,EAAqB,QAAEsC,UAAU,CAACtC,EAAqB,QAAE5+D,OAAQ4+D,EAAqB,QAAEwC,WAAWprD,MAAM,EAAE,CAAC,EAAEqrD,WAC1JnB,gBAAiBtB,EAAqB,QAAE5+D,OAAOqhE,WAC/CjB,eAAgBxB,EAAqB,QAAEsC,UAAU,CAACtC,EAAqB,QAAEx9B,KAAMw9B,EAAqB,QAAEqC,KAAMrC,EAAqB,QAAE5+D,OAAO,EAC1IsgE,qBAAsB1B,EAAqB,QAAE5+D,OAC7CugE,iBAAkB3B,EAAqB,QAAE99D,MAC5C,EA6GCq9D,EAAOtxC,QAAUA,EAAiB,OAE5B,EAEP,SAAgBsxC,EAAQtxC,GAQb,SAASoxC,EAAoBC,GAG5B,IAIIC,EAJJ,OAAGC,EAAiBF,KAIhBC,EAASC,EAAiBF,GAAY,CACzCrxC,QAAS,GACTzR,GAAI8iD,EACJG,OAAQ,CAAA,CACrB,EAGYC,EAAQJ,GAAUxxE,KAAKyxE,EAAOtxC,QAASsxC,EAAQA,EAAOtxC,QAASoxC,CAAmB,EAGlFE,EAAOE,OAAS,CAAA,EAGTF,IAhB4BtxC,OAiBnC,CA1BF,IAAUyxC,EAELF,EAHdD,EAAOtxC,SACYyxC,EA0CT,CAEX,SAAiBH,EAAQtxC,EAASoxC,GAEhCE,EAAOtxC,QAAUoxC,EAAoB,CAAC,CAGhC,EAER,SAAiBE,EAAQtxC,EAASoxC,GAIhC9mE,OAAOC,eAAey1B,EAAS,aAAc,CAC3C97B,MAAO,CAAA,CACX,CAAG,EAED,IAAIuwE,EAASrD,EAAoB,CAAC,EAElC9mE,OAAOC,eAAey1B,EAAS,gBAAiB,CAC9Cp0B,WAAY,CAAA,EACZ7B,IAAK,WACH,OAAO0qE,EAAOC,aACf,CACL,CAAG,EACDpqE,OAAOC,eAAey1B,EAAS,eAAgB,CAC7Cp0B,WAAY,CAAA,EACZ7B,IAAK,WACH,OAAO0qE,EAAOE,YACf,CACL,CAAG,EACDrqE,OAAOC,eAAey1B,EAAS,UAAW,CACxCp0B,WAAY,CAAA,EACZ7B,IAAK,WACH,OAAO0qE,EAAOd,OACf,CACL,CAAG,EACDrpE,OAAOC,eAAey1B,EAAS,aAAc,CAC3Cp0B,WAAY,CAAA,EACZ7B,IAAK,WACH,OAAO0qE,EAAO7B,UACf,CACL,CAAG,CAEK,EAER,SAAiBtB,EAAQtxC,GAIvB11B,OAAOC,eAAey1B,EAAS,aAAc,CAC3C97B,MAAO,CAAA,CACX,CAAG,EAKa87B,EAAQ2zC,QAAU,SAAiB94D,GAC/C,IAAI43D,EAAa53D,EAAK43D,WAClBC,EAAqB73D,EAAK83D,cAE1BiC,EAAkB/5D,EAAK+3D,WACvBA,EAAiCzgE,KAAAA,IAApByiE,EAAgCC,EAAoBD,EACjEzB,EAAWt4D,EAAKs4D,SAChBC,EAAcv4D,EAAKu4D,YACnBC,EAAkBx4D,EAAKw4D,gBAC3B,OAAOsB,EAAa,CAClBG,kBAAmBJ,EAAc,CAC/B7vB,OAAQ+tB,EAAW,CACjBH,WAAYA,EACZE,cAVqCxgE,KAAAA,IAAvBugE,GAA2CA,EAWzDS,SAAUA,EACVC,YAAaA,EACbC,gBAAiBA,CAC3B,CAAS,CACT,CAAO,EACD0B,YAAa1B,EAAkBA,EAAgB1zE,OAAS,CAC9D,CAAK,CACD,EAMF,IAAI+0E,EAAgB10C,EAAQ00C,cAAgB,SAAuB55D,GAwBjE,OAvBaA,EAAM+pC,OAEH/iD,KAAK,SAAU2mD,EAAOC,GACpC,OAAOD,EAAM8b,MAAQ7b,EAAO6b,KAC7B,CAAA,EAAEn5C,OAAO,SAAU4pD,EAAiBC,GAEnC,IAIMC,EAIEC,EARR,OAA+B,IAA3BH,EAAgBr1E,OACX,CAACs1E,IAGJC,EAAYF,EAAgBxrE,MAC5ByrE,EAAU1Q,OAAS2Q,EAAUlB,KAG3BmB,EAAWtgE,KAAK8U,IAAIurD,EAAUlB,IAAKiB,EAAUjB,GAAG,EACpDgB,EAAgBvzE,KAAK,CAAE8iE,MAAO2Q,EAAU3Q,MAAOyP,IAAKmB,CAAQ,CAAE,GAE9DH,EAAgBvzE,KAAKyzE,EAAWD,CAAS,EAEpCD,EAEV,EAAE,EAAE,CAGT,EAOMH,EAAoB,SAA2B95D,GACjD,IAAI03D,EAAa13D,EAAM03D,WACnBE,EAAgB53D,EAAM43D,cACtByC,EAAiBr6D,EAAMo4D,SACvBA,EAA8BhhE,KAAAA,IAAnBijE,EAA+BC,EAAWD,EACrDhC,EAAcr4D,EAAMq4D,YACpBC,EAAkBt4D,EAAMs4D,gBAE5BA,EAAkBF,EAASE,CAAe,EAE1C,OAAOD,EAAY7rE,OAAO,SAAU+tE,GAClC,OAAOA,CACb,CAAK,EACAlqD,OAAO,SAAUy5B,EAAQywB,GACxBA,EAAanC,EAASmC,CAAU,EAE5B7C,IACF6C,EAA4BA,EAsErB/xE,QAAQ,sCAAuC,MAAM,GAhE9D,IAHA,IAEIkQ,EAFAyV,EAAQ,IAAIC,OAAOmsD,EAAY3C,EAAgB,IAAM,IAAI,EAGtDl/D,EAAQyV,EAAMF,KAAKqqD,CAAe,GAAG,CAC1C,IAAI9O,EAAQ9wD,EAAMT,MACdghE,EAAM9qD,EAAMqsD,UAENhR,EAANyP,GACFnvB,EAAOpjD,KAAK,CAAE8iE,MAAOA,EAAOyP,IAAKA,CAAG,CAAE,EAKpCvgE,EAAMT,OAASkW,EAAMqsD,WACvBrsD,EAAMqsD,SAAS,EAElB,CAED,OAAO1wB,CACR,EAAE,EAAE,CACT,EAaM8vB,GAVJ30C,EAAQ4yC,WAAaiC,EAUF70C,EAAQ20C,aAAe,SAAsB1vD,GAKjD,SAATuwD,EAAyBjR,EAAOyP,EAAK9e,GACrB,EAAd8e,EAAMzP,GACRkR,EAAUh0E,KAAK,CACb8iE,MAAOA,EACPyP,IAAKA,EACL9e,UAAWA,CACrB,CAAS,CAET,CAZI,IAiBMqgB,EAjBFT,EAAoB7vD,EAAM6vD,kBAC1BC,EAAc9vD,EAAM8vD,YAEpBU,EAAY,GAsBhB,OAXiC,IAA7BX,EAAkBn1E,OACpB61E,EAAO,EAAGT,EAAa,CAAA,CAAK,GAExBQ,EAAY,EAChBT,EAAkB9vE,QAAQ,SAAU0/C,GAClC8wB,EAAOD,EAAW7wB,EAAM6f,MAAO,CAAA,CAAK,EACpCiR,EAAO9wB,EAAM6f,MAAO7f,EAAMsvB,IAAK,CAAA,CAAI,EACnCuB,EAAY7wB,EAAMsvB,GAC1B,CAAO,EACDwB,EAAOD,EAAWR,EAAa,CAAA,CAAK,GAE/BU,CACX,GAEE,SAASJ,EAASnxE,GAChB,OAAOA,CACR,CAMK,GAtPOqtE,EAAmB,GA4BvBH,EAAoB1uE,EAAI+uE,EAGxBL,EAAoBlyE,EAAIqyE,EAGxBH,EAAoBpwE,EAAI,GAGjBowE,EAAoB,CAAC,EAqNhC,EAEP,SAAgBE,EAAQtxC,EAASoxC,GAEL,CAAC,SAASsE,GA0BnCpE,EAAOtxC,QAAUoxC,EAAoB,EAAE,EAAC,CAGd,EAACvxE,KAAKmgC,EAASoxC,EAAoB,CAAC,CAAE,CAE5D,EAEP,SAAgBE,EAAQtxC,GAGvB,IAOI21C,EACAC,EARAF,EAAUpE,EAAOtxC,QAAU,GAU/B,SAAS61C,IACL,MAAM,IAAI//D,MAAM,iCAAiC,CACpD,CACD,SAASggE,IACL,MAAM,IAAIhgE,MAAM,mCAAmC,CACtD,CAEG,IAEQ6/D,EADsB,YAAtB,OAAO9zE,WACYA,WAEAg0E,CAI1B,CAFC,MAAO52E,GACL02E,EAAmBE,CACtB,CACD,IAEQD,EADwB,YAAxB,OAAO3tE,aACcA,aAEA6tE,CAI5B,CAFC,MAAO72E,GACL22E,EAAqBE,CACxB,CAEL,SAASC,EAAWC,GAChB,GAAIL,IAAqB9zE,WAErB,OAAOA,WAAWm0E,EAAK,CAAC,EAG5B,IAAKL,IAAqBE,GAAoB,CAACF,IAAqB9zE,WAEhE,OADA8zE,EAAmB9zE,YACDm0E,EAAK,CAAC,EAE5B,IAEI,OAAOL,EAAiBK,EAAK,CAAC,CASjC,CARC,MAAM/2E,GACJ,IAEI,OAAO02E,EAAiB91E,KAAK,KAAMm2E,EAAK,CAAC,CAI5C,CAHC,MAAM/2E,GAEJ,OAAO02E,EAAiB91E,KAAKqB,KAAM80E,EAAK,CAAC,CAC5C,CACJ,CAGJ,CA4BD,IAEIC,EAFA5e,EAAQ,GACR6e,EAAW,CAAA,EAEXC,EAAa,CAAC,EAElB,SAASC,IACAF,GAAaD,IAGlBC,EAAW,CAAA,EACPD,EAAat2E,OACb03D,EAAQ4e,EAAavuE,OAAO2vD,CAAK,EAEjC8e,EAAa,CAAC,EAEd9e,EAAM13D,SACN02E,GAEP,CAED,SAASA,IACL,GAAIH,CAAAA,EAAJ,CAOA,IAJA,IAAItkD,EAAUmkD,EAAWK,CAAe,EAGpC5+B,GAFJ0+B,EAAW,CAAA,EAED7e,EAAM13D,QACV63C,GAAK,CAGP,IAFAy+B,EAAe5e,EACfA,EAAQ,GACD,EAAE8e,EAAa3+B,GACdy+B,GACAA,EAAaE,GAAYG,MAGjCH,EAAa,CAAC,EACd3+B,EAAM6f,EAAM13D,MACf,CACDs2E,EAAe,KACfC,EAAW,CAAA,EACXK,CApEJ,SAAyBC,GACrB,GAAIZ,IAAuB3tE,aAEvB,OAAOA,aAAauuE,CAAM,EAG9B,IAAKZ,IAAuBE,GAAuB,CAACF,IAAuB3tE,aAEvE,OADA2tE,EAAqB3tE,cACDuuE,CAAM,EAE9B,IAEWZ,EAAmBY,CAAM,CAUnC,CATC,MAAOv3E,GACL,IAEI,OAAO22E,EAAmB/1E,KAAK,KAAM22E,CAAM,CAK9C,CAJC,MAAOv3E,GAGL,OAAO22E,EAAmB/1E,KAAKqB,KAAMs1E,CAAM,CAC9C,CACJ,CAIJ,EA0CmB5kD,CAAO,CAlBtB,CAmBJ,CAgBD,SAAS6kD,EAAKT,EAAK7hE,GACfjT,KAAK80E,IAAMA,EACX90E,KAAKiT,MAAQA,CAChB,CAWD,SAASssC,KA5BTi1B,EAAQgB,SAAW,SAAUV,GACzB,IAAI/jE,EAAO,IAAIzP,MAAM9C,UAAUC,OAAS,CAAC,EACzC,GAAuB,EAAnBD,UAAUC,OACV,IAAK,IAAIb,EAAI,EAAGA,EAAIY,UAAUC,OAAQb,CAAC,GACnCmT,EAAKnT,EAAI,GAAKY,UAAUZ,GAGhCu4D,EAAM51D,KAAK,IAAIg1E,EAAKT,EAAK/jE,CAAI,CAAC,EACT,IAAjBolD,EAAM13D,QAAiBu2E,GACvBH,EAAWM,CAAU,CAE9B,EAOCI,EAAKryE,UAAUkyE,IAAM,WACjBp1E,KAAK80E,IAAI3pE,MAAM,KAAMnL,KAAKiT,KAAK,CACpC,EACCuhE,EAAQzmD,MAAQ,UAChBymD,EAAQiB,QAAU,CAAA,EAClBjB,EAAQkB,IAAM,GACdlB,EAAQmB,KAAO,GACfnB,EAAQ1nE,QAAU,GAClB0nE,EAAQoB,SAAW,GAInBpB,EAAQvpE,GAAKs0C,EACbi1B,EAAQ99B,YAAc6I,EACtBi1B,EAAQz9B,KAAOwI,EACfi1B,EAAQqB,IAAMt2B,EACdi1B,EAAQv9B,eAAiBsI,EACzBi1B,EAAQr9B,mBAAqBoI,EAC7Bi1B,EAAQp+B,KAAOmJ,EACfi1B,EAAQsB,gBAAkBv2B,EAC1Bi1B,EAAQuB,oBAAsBx2B,EAE9Bi1B,EAAQj+B,UAAY,SAAUvxC,GAAQ,MAAO,EAAI,EAEjDwvE,EAAQwB,QAAU,SAAUhxE,GACxB,MAAM,IAAI4P,MAAM,kCAAkC,CACvD,EAEC4/D,EAAQyB,IAAM,WAAc,MAAO,GAAG,EACtCzB,EAAQ0B,MAAQ,SAAUC,GACtB,MAAM,IAAIvhE,MAAM,gCAAgC,CACrD,EACC4/D,EAAQ4B,MAAQ,WAAa,OAAO,CAAE,CAGhC,EAEP,SAAgBhG,EAAQtxC,EAASoxC,GAEL,CAAC,SAASsE,GASrC,IAAI6B,EAAgBnG,EAAoB,CAAC,EACrCviB,EAAYuiB,EAAoB,CAAC,EACjCoG,EAAUpG,EAAoB,CAAC,EAC/B5hE,EAAS4hE,EAAoB,EAAE,EAE/BqG,EAAuBrG,EAAoB,EAAE,EAC7CsG,EAAiBtG,EAAoB,EAAE,EAE3CE,EAAOtxC,QAAU,SAAStxB,EAAgBipE,GAExC,IAAIC,EAAoC,YAAlB,OAAOnvE,QAAyBA,OAAO4M,SACzDwiE,EAAuB,aAsE3B,IAAIC,EAAY,gBAIZC,EAAiB,CACnB5jE,MAAO6jE,EAA2B,OAAO,EACzC7D,KAAM6D,EAA2B,SAAS,EAC1C5D,KAAM4D,EAA2B,UAAU,EAC3CtjE,OAAQsjE,EAA2B,QAAQ,EAC3C/jE,OAAQ+jE,EAA2B,QAAQ,EAC3C7kE,OAAQ6kE,EAA2B,QAAQ,EAC3CC,OAAQD,EAA2B,QAAQ,EAE3Cn0D,IA0HOq0D,EAA2BX,EAAcY,eAAe,EAzH/D7D,QA4HF,SAAkC8D,GAkBhC,OAAOF,EAjBP,SAAkBj4E,EAAOo4E,EAAUzjB,EAAelnC,EAAU4qD,GAC1D,GAA2B,YAAvB,OAAOF,EACT,OAAO,IAAIG,EAAc,aAAeD,EAAe,mBAAqB1jB,EAAgB,iDAAiD,EAE/I,IAAI4jB,EAAYv4E,EAAMo4E,GACtB,GAAI,CAAC71E,MAAMC,QAAQ+1E,CAAS,EAE1B,OAAO,IAAID,EAAc,WAAa7qD,EAAW,KAAO4qD,EAA+B,cADxEG,EAAYD,CAAS,EACoE,kBAAoB5jB,EAAgB,uBAAwB,EAEtK,IAAK,IAAI91D,EAAI,EAAGA,EAAI05E,EAAU74E,OAAQb,CAAC,GAAI,CACzC,IAAIytB,EAAQ6rD,EAAYI,EAAW15E,EAAG81D,EAAelnC,EAAU4qD,EAAe,IAAMx5E,EAAI,IAAK24E,CAAoB,EACjH,GAAIlrD,aAAiBzW,MACnB,OAAOyW,CAEV,CACD,OAAO,IACR,CACyC,CAC3C,EA9ICmsD,QAyJOR,EARP,SAAkBj4E,EAAOo4E,EAAUzjB,EAAelnC,EAAU4qD,GAE1D,OADIE,EAAYv4E,EAAMo4E,GACjB3pE,EAAe8pE,CAAS,EAItB,KAFE,IAAID,EAAc,WAAa7qD,EAAW,KAAO4qD,EAA+B,cADxEG,EAAYD,CAAS,EACoE,kBAAoB5jB,EAAgB,oCAAqC,CAGpL,CACyC,EAxJ1C2f,WA2JF,SAAmCoE,GASjC,OAAOT,EARP,SAAkBj4E,EAAOo4E,EAAUzjB,EAAelnC,EAAU4qD,GAC1D,IACMM,EADN,OAAM34E,EAAMo4E,aAAqBM,EAK1B,MAJDC,EAAoBD,EAAczyE,MAAQ4xE,EAEvC,IAAIS,EAAc,WAAa7qD,EAAW,KAAO4qD,EAA+B,gBAwQvEE,EAzQmBv4E,EAAMo4E,IA0Q9B13E,aAAgB63E,EAAU73E,YAAYuF,KAG9CsyE,EAAU73E,YAAYuF,KAFpB4xE,GA1Q0G,kBAAoBljB,EAAmC,4BAAkBgkB,EAAoB,IAAK,EAGpN,CACyC,CAC3C,EApKCrkC,KAyPO2jC,EANP,SAAkBj4E,EAAOo4E,EAAUzjB,EAAelnC,EAAU4qD,GAC1D,OAAKO,EAAO54E,EAAMo4E,EAAS,EAGpB,KAFE,IAAIE,EAAc,WAAa7qD,EAAW,KAAO4qD,EAAmC,kBAAM1jB,EAAgB,0BAA2B,CAG/I,CACyC,EAxP1CkkB,SAyLF,SAAmCV,GAoBjC,OAAOF,EAnBP,SAAkBj4E,EAAOo4E,EAAUzjB,EAAelnC,EAAU4qD,GAC1D,GAA2B,YAAvB,OAAOF,EACT,OAAO,IAAIG,EAAc,aAAeD,EAAe,mBAAqB1jB,EAAgB,kDAAkD,EAEhJ,IAKS10D,EALLs4E,EAAYv4E,EAAMo4E,GAEtB,GAAiB,YAAbU,EADWN,EAAYD,CAAS,GAElC,OAAO,IAAID,EAAc,WAAa7qD,EAAW,KAAO4qD,EAA+B,cAAMS,EAAW,kBAAoBnkB,EAAgB,wBAAyB,EAEvK,IAAS10D,KAAOs4E,EACd,GAAIA,EAAU/oE,eAAevP,CAAG,EAAG,CACjC,IAAIqsB,EAAQ6rD,EAAYI,EAAWt4E,EAAK00D,EAAelnC,EAAU4qD,EAAe,IAAMp4E,EAAKu3E,CAAoB,EAC/G,GAAIlrD,aAAiBzW,MACnB,OAAOyW,CAEV,CAEH,OAAO,IACR,CACyC,CAC3C,EA7MCysD,MAoKF,SAA+BC,GAC7B,OAAKz2E,MAAMC,QAAQw2E,CAAc,EAgB1Bf,EAXP,SAAkBj4E,EAAOo4E,EAAUzjB,EAAelnC,EAAU4qD,GAE1D,IADA,IAAIE,EAAYv4E,EAAMo4E,GACbv5E,EAAI,EAAGA,EAAIm6E,EAAet5E,OAAQb,CAAC,GAC1C,GAlKN,SAAYwD,EAAGxB,GAEb,OAAIwB,IAAMxB,EAGK,IAANwB,GAAW,EAAIA,GAAM,EAAIxB,EAGzBwB,GAAMA,GAAKxB,GAAMA,CAE3B,EAwJY03E,EAAWS,EAAen6E,EAAE,EACjC,OAAO,KAIPo6E,EAAeroD,KAAKC,UAAUmoD,CAAc,EAChD,OAAO,IAAIV,EAAc,WAAa7qD,EAAW,KAAO4qD,EAAe,eAAiBE,EAAoB,kBAAkB5jB,EAAgB,sBAAwBskB,EAAe,GAAI,CAC1L,CACyC,EAdjC3B,EAAcY,eAexB,EArLC9D,UA8MF,SAAgC8E,GAC9B,GAAI,CAAC32E,MAAMC,QAAQ02E,CAAmB,EAEpC,OAAO5B,EAAcY,gBAGvB,IAAK,IAAIr5E,EAAI,EAAGA,EAAIq6E,EAAoBx5E,OAAQb,CAAC,GAAI,CACnD,IAAIs6E,EAAUD,EAAoBr6E,GAClC,GAAuB,YAAnB,OAAOs6E,EAQT,OAPA5B,EACE,CAAA,EACA,6GA2LR,SAAkCtzE,GAChC,IAAIlE,EAAOq5E,EAAen1E,CAAK,EAC/B,OAAQlE,GACN,IAAK,QACL,IAAK,SACH,MAAO,MAAQA,EACjB,IAAK,UACL,IAAK,OACL,IAAK,SACH,MAAO,KAAOA,EAChB,QACE,OAAOA,CACV,CACF,EAtMgCo5E,CAAO,EAChCt6E,CACX,EACgBy4E,EAAcY,eAExB,CAYD,OAAOD,EAVP,SAAkBj4E,EAAOo4E,EAAUzjB,EAAelnC,EAAU4qD,GAC1D,IAAK,IAAIx5E,EAAI,EAAGA,EAAIq6E,EAAoBx5E,OAAQb,CAAC,GAE/C,GAA6F,OAAzFs6E,EADUD,EAAoBr6E,IACtBmB,EAAOo4E,EAAUzjB,EAAelnC,EAAU4qD,EAAcb,CAAoB,EACtF,OAAO,KAIX,OAAO,IAAIc,EAAc,WAAa7qD,EAAW,KAAO4qD,EAAmC,kBAAM1jB,EAAgB,IAAK,CACvH,CACyC,CAC3C,EA5OC0kB,MAwPF,SAAgCC,GAmB9B,OAAOrB,EAlBP,SAAkBj4E,EAAOo4E,EAAUzjB,EAAelnC,EAAU4qD,GAC1D,IAKSp4E,EALLs4E,EAAYv4E,EAAMo4E,GAEtB,GAAiB,YAAbU,EADWN,EAAYD,CAAS,GAElC,OAAO,IAAID,EAAc,WAAa7qD,EAAW,KAAO4qD,EAAe,cAAgBS,EAAmB,kBAAkBnkB,EAAgB,uBAAwB,EAEtK,IAAS10D,KAAOq5E,EAAY,CAC1B,IAAIH,EAAUG,EAAWr5E,GACzB,GAAKk5E,EAAL,CAGI7sD,EAAQ6sD,EAAQZ,EAAWt4E,EAAK00D,EAAelnC,EAAU4qD,EAAe,IAAMp4E,EAAKu3E,CAAoB,EAC3G,GAAIlrD,EACF,OAAOA,CAHR,CAKF,CACD,OAAO,IACR,CACyC,CAC3C,EA3QCitD,MA6QF,SAAsCD,GA2BpC,OAAOrB,EA1BP,SAAkBj4E,EAAOo4E,EAAUzjB,EAAelnC,EAAU4qD,GAC1D,IAQSp4E,EARLs4E,EAAYv4E,EAAMo4E,GAClBU,EAAWN,EAAYD,CAAS,EACpC,GAAiB,WAAbO,EACF,OAAO,IAAIR,EAAc,WAAa7qD,EAAW,KAAO4qD,EAAe,cAAgBS,EAAmB,kBAAkBnkB,EAAgB,uBAAwB,EAKtK,IAAS10D,KADKsP,EAAO,GAAIvP,EAAMo4E,GAAWkB,CAAU,EAC3B,CACvB,IAAIH,EAAUG,EAAWr5E,GACzB,GAAI,CAACk5E,EACH,OAAO,IAAIb,EACT,WAAa7qD,EAAW,KAAO4qD,EAAe,UAAYp4E,EAAM,kBAAoB00D,EACpF,mBAAmB/jC,KAAKC,UAAU7wB,EAAMo4E,GAAW,KAAM,IAAI,EAC7D,iBAAoBxnD,KAAKC,UAAUxmB,OAAOoF,KAAK6pE,CAAU,EAAG,KAAM,IAAI,CACnF,EAEahtD,EAAQ6sD,EAAQZ,EAAWt4E,EAAK00D,EAAelnC,EAAU4qD,EAAe,IAAMp4E,EAAKu3E,CAAoB,EAC3G,GAAIlrD,EACF,OAAOA,CAEV,CACD,OAAO,IACR,CAEyC,CAC3C,CAxSJ,EA2BG,SAASgsD,EAAcnmD,GACrBlxB,KAAKkxB,QAAUA,EACflxB,KAAK6U,MAAQ,EACd,CAID,SAASmiE,EAA2B1vC,GAKlC,SAASixC,EAAUjF,EAAYv0E,EAAOo4E,EAAUzjB,EAAelnC,EAAU4qD,EAAcoB,GAoCrF,OAnCA9kB,EAAgBA,GAAiBkjB,EACjCQ,EAAeA,GAAgBD,EAE3BqB,IAAWjC,GACTE,GAEF9oB,EACE,CAAA,EACA,mLAGb,EAwB8B,MAAnB5uD,EAAMo4E,GACJ7D,EACsB,OAApBv0E,EAAMo4E,GACD,IAAIE,EAAc,OAAS7qD,EAAW,KAAO4qD,EAA6C,+BAAS1jB,EAAgB,6BAA8B,EAEnJ,IAAI2jB,EAAc,OAAS7qD,EAAW,KAAO4qD,EAAgD,+BAAM1jB,EAAgB,kCAAmC,EAExJ,KAEApsB,EAASvoC,EAAOo4E,EAAUzjB,EAAelnC,EAAU4qD,CAAY,CAEzE,CAED,IAAIqB,EAAmBF,EAAUvtE,KAAK,KAAM,CAAA,CAAK,EAGjD,OAFAytE,EAAiBnF,WAAaiF,EAAUvtE,KAAK,KAAM,CAAA,CAAI,EAEhDytE,CACR,CAED,SAAS3B,EAA2B4B,GAclC,OAAO1B,EAbP,SAAkBj4E,EAAOo4E,EAAUzjB,EAAelnC,EAAU4qD,EAAcoB,GAGxE,OADejB,EADXD,EAAYv4E,EAAMo4E,EACc,IACnBuB,EAMR,IAAIrB,EAAc,WAAa7qD,EAAW,KAAO4qD,EAA+B,cAFrEe,EAAeb,CAAS,EAEiE,kBAAoB5jB,EAAmC,gBAAMglB,EAAe,IAAK,EAEvL,IACR,CACyC,CAC3C,CA6LD,SAASf,EAAOL,GACd,OAAQ,OAAOA,GACb,IAAK,SACL,IAAK,SACL,IAAK,YACH,MAAO,CAAA,EACT,IAAK,UACH,MAAO,CAACA,EACV,IAAK,SACH,GAAIh2E,MAAMC,QAAQ+1E,CAAS,EACzB,OAAOA,EAAUhxE,MAAMqxE,CAAM,EAE/B,GAAkB,OAAdL,GAAsB9pE,CAAAA,EAAe8pE,CAAS,EAAlD,CAIA,IAAIqB,EAvYV,SAAuBC,GAErB,GAA0B,YAAtB,OADAD,EAAaC,IAAkBlC,GAAmBkC,EAAclC,IAAoBkC,EAAcjC,KAEpG,OAAOgC,CAEV,EAkYoCrB,CAAS,EACxC,GAAIqB,CAAAA,EAqBF,MAAO,CAAA,EApBP,IACIE,EADA1kE,EAAWwkE,EAAWh6E,KAAK24E,CAAS,EAExC,GAAIqB,IAAerB,EAAU7mD,SAC3B,KAAO,EAAEooD,EAAO1kE,EAASgb,KAAI,GAAIC,MAC/B,GAAI,CAACuoD,EAAOkB,EAAK71E,KAAK,EACpB,MAAO,CAAA,CAEV,MAGD,KAAO,EAAE61E,EAAO1kE,EAASgb,KAAI,GAAIC,MAAM,CACrC,IAAIw8C,EAAQiN,EAAK71E,MACjB,GAAI4oE,GACE,CAAC+L,EAAO/L,EAAM,EAAE,EAClB,MAAO,CAAA,CAGZ,CArBJ,CA2BD,MAAO,CAAA,EACT,QACE,MAAO,CAAA,CACV,CACF,CAsBD,SAAS2L,EAAYD,GACnB,IAAIO,EAAW,OAAOP,EACtB,OAAIh2E,MAAMC,QAAQ+1E,CAAS,EAClB,QAELA,aAAqBrvD,OAIhB,UA7BiBqvD,EA+BHA,EA7BN,WA6BJO,GAxBsB,WAA/BP,EAAU,kBAKQ,YAAlB,OAAO/vE,QAAyB+vE,aAAqB/vE,OAoBhD,SAEFswE,EACR,CAID,SAASM,EAAeb,GACtB,GAAI,MAAOA,EACT,MAAO,GAAKA,EAEd,IAAIO,EAAWN,EAAYD,CAAS,EACpC,GAAiB,WAAbO,EAAuB,CACzB,GAAIP,aAAqB9iE,KACvB,MAAO,OACF,GAAI8iE,aAAqBrvD,OAC9B,MAAO,QAEV,CACD,OAAO4vD,CACR,CA8BD,OA3YAR,EAAcn0E,UAAY0R,MAAM1R,UAwYhC2zE,EAAeL,eAAiBA,EAChCK,EAAeiC,UAAYjC,CAG9B,CAE6B,EAACl4E,KAAKmgC,EAASoxC,EAAoB,CAAC,CAAE,CAE5D,EAEP,SAAgBE,EAAQtxC,GAavB,SAASi6C,EAAkBpjC,GACzB,OAAO,WACL,OAAOA,CACZ,CACE,CAOmB,SAAhB0gC,KAEJA,EAAc2C,YAAcD,EAC5B1C,EAAc4C,iBAAmBF,EAAkB,CAAA,CAAK,EACxD1C,EAAc6C,gBAAkBH,EAAkB,CAAA,CAAI,EACtD1C,EAAcY,gBAAkB8B,EAAkB,IAAI,EACtD1C,EAAc8C,gBAAkB,WAC9B,OAAOn5E,IACV,EACCq2E,EAAc+C,oBAAsB,SAAUzjC,GAC5C,OAAOA,CACV,EAECy6B,EAAOtxC,QAAUu3C,CAEX,EAEP,SAAgBjG,EAAQtxC,EAASoxC,GAEL,CAAC,SAASsE,GAoDrCpE,EAAOtxC,QArBP,SAAmB8uB,EAAWzuC,EAAQjhB,EAAGoC,EAAGtC,EAAG+B,EAAGhC,EAAGD,GAGnD,IAKQiT,EACAsoE,EACJhuD,EAPJ,GAAI,CAACuiC,EAcH,MAZe38C,KAAAA,IAAXkO,EACFkM,EAAQ,IAAIzW,MAAM,+HAAoI,GAElJ7D,EAAO,CAAC7S,EAAGoC,EAAGtC,EAAG+B,EAAGhC,EAAGD,GACvBu7E,EAAW,GAIfhuD,EAHQ,IAAIzW,MAAMuK,EAAO9c,QAAQ,MAAO,WACtC,OAAO0O,EAAKsoE,CAAQ,GACrB,CAAA,CAAC,GACIr0E,KAAO,uBAGfqmB,EAAMiuD,YAAc,EACdjuD,CAET,CAG2B,EAAC1sB,KAAKmgC,EAASoxC,EAAoB,CAAC,CAAE,CAE5D,EAEP,SAAgBE,EAAQtxC,EAASoxC,GAEL,CAAC,SAASsE,GAUrC,IAAI6B,EAAgBnG,EAAoB,CAAC,EAmDzCE,EAAOtxC,QA1COu3C,CA2Cc,EAAC13E,KAAKmgC,EAASoxC,EAAoB,CAAC,CAAE,CAE5D,EAEP,SAAgBE,EAAQtxC,GAUvB,IAAIhQ,EAAwB1lB,OAAO0lB,sBAC/BvgB,EAAiBnF,OAAOlG,UAAUqL,eAClCgrE,EAAmBnwE,OAAOlG,UAAUgsB,qBAsDxCkhD,EAAOtxC,QA5CP,WACC,IACC,GAAK11B,OAAOkF,OAAZ,CAOA,IAAIkrE,EAAQ,IAAIroE,OAAO,KAAK,EAE5B,GADAqoE,EAAM,GAAK,KACkC,MAAzCpwE,OAAOqwE,oBAAoBD,CAAK,EAAE,GAAtC,CAMA,IADA,IAAIE,EAAQ,GACH97E,EAAI,EAAGA,EAAI,GAAIA,CAAC,GACxB87E,EAAM,IAAMvoE,OAAO4oD,aAAan8D,CAAC,GAAKA,EAEvC,IAQI+7E,EARAC,EAASxwE,OAAOqwE,oBAAoBC,CAAK,EAAEhyE,IAAI,SAAUjK,GAC5D,OAAOi8E,EAAMj8E,EACjB,CAAI,EACD,GAAwB,eAApBm8E,EAAO/0D,KAAK,EAAE,EASlB,OAJI80D,EAAQ,GACZ,uBAAuB/xD,MAAM,EAAE,EAAE9jB,QAAQ,SAAU+1E,GAClDF,EAAME,GAAUA,CACpB,CAAI,EAEC,yBADEzwE,OAAOoF,KAAKpF,OAAOkF,OAAO,GAAIqrE,CAAK,CAAC,EAAE90D,KAAK,EAAE,EAK1C,EALP,KAAA,CAnBC,CATA,CAqCD,CAHC,MAAO2xB,IAIT,EAEiC,EAAGptC,OAAOkF,OAAS,SAAU6W,EAAQwG,GAKtE,IAJA,IAAI2D,EACAwqD,EAtDL,SAAkB/tD,GACjB,GAAIA,MAAAA,EACH,MAAM,IAAI/X,UAAU,uDAAuD,EAG5E,OAAO5K,OAAO2iB,CAAG,CACjB,EAgDkB5G,CAAM,EAGflnB,EAAI,EAAGA,EAAIO,UAAUC,OAAQR,CAAC,GAAI,CAG1C,IAAK,IAAIe,KAFTswB,EAAOlmB,OAAO5K,UAAUP,EAAE,EAGrBsQ,EAAe5P,KAAK2wB,EAAMtwB,CAAG,IAChC86E,EAAG96E,GAAOswB,EAAKtwB,IAIjB,GAAI8vB,EAEH,IAAK,IADLyyB,EAAUzyB,EAAsBQ,CAAI,EAC3B1xB,EAAI,EAAGA,EAAI2jD,EAAQ9iD,OAAQb,CAAC,GAChC27E,EAAiB56E,KAAK2wB,EAAMiyB,EAAQ3jD,EAAE,IACzCk8E,EAAGv4B,EAAQ3jD,IAAM0xB,EAAKiyB,EAAQ3jD,IAIjC,CAED,OAAOk8E,CACT,CAGO,EAEP,SAAgB1J,EAAQtxC,GAavBsxC,EAAOtxC,QAFoB,8CAKrB,EAEP,SAAgBsxC,EAAQtxC,EAASoxC,GAEL,CAAC,SAASsE,GA0DrCpE,EAAOtxC,QA/BP,SAAwBi7C,EAAWloE,EAAQ2a,EAAUknC,EAAesmB,IAiCxC,EAACr7E,KAAKmgC,EAASoxC,EAAoB,CAAC,CAAE,CAE5D,EAEP,SAAgBE,EAAQtxC,EAASoxC,GAWhC,IAAImG,EAAgBnG,EAAoB,CAAC,EACrCviB,EAAYuiB,EAAoB,CAAC,EACjCqG,EAAuBrG,EAAoB,EAAE,EAEjDE,EAAOtxC,QAAU,WACf,SAASm7C,EAAKl7E,EAAOo4E,EAAUzjB,EAAelnC,EAAU4qD,EAAcoB,GAChEA,IAAWjC,GAIf5oB,EACE,CAAA,EACA,iLAGP,CACA,CAEG,SAASusB,IACP,OAAOD,CAEZ,CAEG,IAAIpD,EAAiB,CACnB5jE,MAPFgnE,EAAK3G,WAAa2G,EAQhBhH,KAAMgH,EACN/G,KAAM+G,EACNzmE,OAAQymE,EACRlnE,OAAQknE,EACRhoE,OAAQgoE,EACRlD,OAAQkD,EAERt3D,IAAKs3D,EACL7G,QAAS8G,EACT1C,QAASyC,EACT5G,WAAY6G,EACZ7mC,KAAM4mC,EACNrC,SAAUsC,EACVpC,MAAOoC,EACP/G,UAAW+G,EACX9B,MAAO8B,EACP5B,MAAO4B,CACZ,EAKG,OAHArD,EAAeL,eAAiBH,EAChCQ,EAAeiC,UAAYjC,CAG9B,CAGO,EAEP,SAAgBzG,EAAQtxC,GAEvBsxC,EAAOtxC,QAAUzwB,UAEX,EAEP,SAAgB+hE,EAAQtxC,GAIH,SAAhBq7C,EAAuCj8E,EAAGoC,GAC5C,OAAOpC,IAAMoC,CAChB,CAiCC8vE,EAAOtxC,QA/BP,SAAgBs7C,GAQY,SAAtBC,EAAmDC,EAAQxoE,GAC7D,OAAOw1C,EAAQgzB,EAAQC,EAASzoE,EAAM,CAC3C,CATG,IAAIw1C,EAA6B,EAAnB9oD,UAAUC,QAA+BwS,KAAAA,IAAjBzS,UAAU,GAAmBA,UAAU,GAAK27E,EAE9EK,EAAW,KAAA,EACXD,EAAW,GACXE,EAAa,KAAA,EACbC,EAAa,CAAA,EAsBjB,OAhBa,WACX,IAAK,IAAI73B,EAAOrkD,UAAUC,OAAQk8E,EAAUr5E,MAAMuhD,CAAI,EAAGC,EAAO,EAAGA,EAAOD,EAAMC,CAAI,GAClF63B,EAAQ73B,GAAQtkD,UAAUskD,GAW5B,OARI43B,GAAcF,IAAax6E,MAAQ26E,EAAQl8E,SAAW87E,EAAS97E,QAAUk8E,EAAQr0E,MAAM+zE,CAAmB,IAI9GK,EAAa,CAAA,EACbF,EAAWx6E,KACXu6E,EAAWI,EACXF,EAAaL,EAASjvE,MAAMnL,KAAM26E,CAAO,GAClCF,CACZ,CAGE,CAKK,GAprDOpK,EAAmB,GA4BvBH,EAAoB1uE,EAAI+uE,EAGxBL,EAAoBlyE,EAAIqyE,EAGxBH,EAAoBpwE,EAAI,GAGjBowE,EAAoB,CAAC,6CClC/B,MAAM0K,aAIR,CAAA,CAEG1I,YAAAA,EACA/vB,IAAAA,CAEH,SAEK04B,EAAY,IACV14B,EAAIpxB,KAAwB,EAAjBoxB,EAAIpxB,IAAItyB,OACZ0jD,EAAIpxB,6CAGiCoxB,EAAIxiB,eAWxD,OACI+qC,IAAA,MAAA,CAAKvgE,MAAM,cAAc,EACrBugE,IAAK,MAAA,CAAAvgE,MAAM,mBAAmB,EAC1BugE,IAAG,IAAA,CAAAvgE,MAAM,kBAAkBgb,OAAO,SAAS03C,KAAMge,GAAW,EACtD14B,EAAI24B,UAAYpQ,IAAK,MAAA,CAAAqQ,IAXT,EAAtB54B,EAAI64B,SAASv8E,OACN0jD,EAAI64B,kEAGiD74B,EAAIxiB,eAObs7C,IAAI,WAAW,CAAA,CAAG,EAGjEvQ,IAAK,MAAA,CAAAvgE,MAAM,mBAAmB,EAC1BugE,IAAG,IAAA,CAAAvlD,OAAO,SAAS03C,KAAMge,EAAS,EAAI1wE,MAAM,iBAAiB,EACzDugE,IAACiG,aACGiB,mBAAmB,4BACnBM,YAAaA,EACbX,WAAY,CAAA,EACZY,gBAAiBhwB,EAAIp0B,OACvB,EAGN28C,IAAK,MAAA,CAAAvgE,MAAM,gBAAgB,EACvBugE,IAACv9C,KAAK,CAAAE,8BAA+B80B,EAAIrjD,OAAO,CAAA,CAAS,EAGlC,GAA1B,SAAAqjD,EAAI+4B,aAAa,KAAA,EAAAC,EAAA18E,SACdisE,IAAK,MAAA,CAAAvgE,MAAM,uBAAuB,EAC9BugE,IAACiG,aACGiB,mBAAmB,4BACnBM,YAAaA,EACbX,WAAY,CAAA,EACZY,gBAAiBhwB,EAAI+4B,WAAW,CAAA,CAClC,CACA,CAER,EAGVxQ,IAAK,MAAA,CAAAvgE,MAAM,iBAAiB,EACvB,OAAAixE,EAAAj5B,EAAIk5B,UAAQ,KAAA,EAAAD,EAAE1zE,IAAI,GAAqBsnE,WAAWC,mCAAmCqM,CAAO,CAAC,CAAC,CAEjG,CAEd,eCvEI3R,kBAAmB3pE,gBAAQA,eAAK2pE,kBAAqBvgE,OAAO2G,OAAM,SAAalS,EAAG2D,EAAGpB,EAAGwpE,GAC7E34D,KAAAA,IAAP24D,IAAkBA,EAAKxpE,GAC3BgJ,OAAOC,eAAexL,EAAG+rE,EAAI,CAAEl/D,WAAY,CAAA,EAAM7B,IAAK,WAAa,OAAOrH,EAAEpB,EAAG,CAAI,CAAA,CACtF,EAAA,SAAcvC,EAAG2D,EAAGpB,EAAGwpE,GAEpB/rE,EADsB+rE,EAAX34D,KAAAA,IAAP24D,EAAuBxpE,EACzBwpE,GAAMpoE,EAAEpB,EACb,GACGypE,qBAAsB7pE,gBAAQA,eAAK6pE,qBAAwBzgE,OAAO2G,OAAM,SAAalS,EAAGgB,GACxFuK,OAAOC,eAAexL,EAAG,UAAW,CAAE6M,WAAY,CAAA,EAAM1H,MAAOnE,CAAC,CAAE,CACrE,EAAI,SAAShB,EAAGgB,GACbhB,EAAW,QAAIgB,CACnB,GACIirE,eAAgB9pE,gBAAQA,eAAK8pE,cAAiB,SAAUjmC,GACxD,GAAIA,GAAOA,EAAIkmC,WAAY,OAAOlmC,EAClC,IAAIhsB,EAAS,GACb,GAAW,MAAPgsB,EAAa,IAAK,IAAIzjC,KAAKyjC,EAAe,YAANzjC,GAAmBgJ,OAAOlG,UAAUqL,eAAe5P,KAAKklC,EAAKzjC,CAAC,GAAGupE,kBAAgB9xD,EAAQgsB,EAAKzjC,CAAC,EAEvI,OADAypE,qBAAmBhyD,EAAQgsB,CAAG,EACvBhsB,CACX,EACAzO,OAAOC,eAAekyE,MAAS,aAAc,CAAEv4E,MAAO,CAAA,CAAI,CAAE,EAC5D,MAAM0gE,QAAQoG,eAAaz7D,UAAgB,EACrCmtE,SAAW,GAAY9X,QAAMh/D,cAAc,MAAO0E,OAAOkF,OAAO,CAAE47D,MAAO,6BAA8Bh5D,MAAO,GAAIi5D,OAAQ,GAAIC,QAAS,WAAa,EAAErrE,CAAK,EAC7J2kE,QAAMh/D,cAAc,OAAQ,CAAE3E,EAAG,uQAAuQ,CAAE,CAAE,EAChT,IAAAsqE,WAAAkR,MAAApzE,QAAkBqzE,iBCvBd7R,kBAAmB3pE,gBAAQA,eAAK2pE,kBAAqBvgE,OAAO2G,OAAM,SAAalS,EAAG2D,EAAGpB,EAAGwpE,GAC7E34D,KAAAA,IAAP24D,IAAkBA,EAAKxpE,GAC3BgJ,OAAOC,eAAexL,EAAG+rE,EAAI,CAAEl/D,WAAY,CAAA,EAAM7B,IAAK,WAAa,OAAOrH,EAAEpB,EAAG,CAAI,CAAA,CACtF,EAAA,SAAcvC,EAAG2D,EAAGpB,EAAGwpE,GAEpB/rE,EADsB+rE,EAAX34D,KAAAA,IAAP24D,EAAuBxpE,EACzBwpE,GAAMpoE,EAAEpB,EACb,GACGypE,qBAAsB7pE,gBAAQA,eAAK6pE,qBAAwBzgE,OAAO2G,OAAM,SAAalS,EAAGgB,GACxFuK,OAAOC,eAAexL,EAAG,UAAW,CAAE6M,WAAY,CAAA,EAAM1H,MAAOnE,CAAC,CAAE,CACrE,EAAI,SAAShB,EAAGgB,GACbhB,EAAW,QAAIgB,CACnB,GACIirE,eAAgB9pE,gBAAQA,eAAK8pE,cAAiB,SAAUjmC,GACxD,GAAIA,GAAOA,EAAIkmC,WAAY,OAAOlmC,EAClC,IAAIhsB,EAAS,GACb,GAAW,MAAPgsB,EAAa,IAAK,IAAIzjC,KAAKyjC,EAAe,YAANzjC,GAAmBgJ,OAAOlG,UAAUqL,eAAe5P,KAAKklC,EAAKzjC,CAAC,GAAGupE,kBAAgB9xD,EAAQgsB,EAAKzjC,CAAC,EAEvI,OADAypE,qBAAmBhyD,EAAQgsB,CAAG,EACvBhsB,CACX,EACAzO,OAAOC,eAAeoyE,KAAS,aAAc,CAAEz4E,MAAO,CAAA,CAAI,CAAE,EAC5D,MAAM0gE,QAAQoG,eAAaz7D,UAAgB,EACrCqtE,QAAU,GAAYhY,QAAMh/D,cAAc,MAAO0E,OAAOkF,OAAO,CAAE47D,MAAO,6BAA8Bh5D,MAAO,GAAIi5D,OAAQ,GAAIC,QAAS,WAAa,EAAErrE,CAAK,EAC5J2kE,QAAMh/D,cAAc,OAAQ,CAAE3E,EAAG,+RAA+R,CAAE,CAAE,EACxU,IAAAsqE,WAAAoR,KAAAtzE,QAAkBuzE,8BCvBd/R,kBAAmB3pE,gBAAQA,eAAK2pE,kBAAqBvgE,OAAO2G,OAAM,SAAalS,EAAG2D,EAAGpB,EAAGwpE,GAC7E34D,KAAAA,IAAP24D,IAAkBA,EAAKxpE,GAC3BgJ,OAAOC,eAAexL,EAAG+rE,EAAI,CAAEl/D,WAAY,CAAA,EAAM7B,IAAK,WAAa,OAAOrH,EAAEpB,EAAG,CAAI,CAAA,CACtF,EAAA,SAAcvC,EAAG2D,EAAGpB,EAAGwpE,GAEpB/rE,EADsB+rE,EAAX34D,KAAAA,IAAP24D,EAAuBxpE,EACzBwpE,GAAMpoE,EAAEpB,EACb,GACGypE,qBAAsB7pE,gBAAQA,eAAK6pE,qBAAwBzgE,OAAO2G,OAAM,SAAalS,EAAGgB,GACxFuK,OAAOC,eAAexL,EAAG,UAAW,CAAE6M,WAAY,CAAA,EAAM1H,MAAOnE,CAAC,CAAE,CACrE,EAAI,SAAShB,EAAGgB,GACbhB,EAAW,QAAIgB,CACnB,GACIirE,eAAgB9pE,gBAAQA,eAAK8pE,cAAiB,SAAUjmC,GACxD,GAAIA,GAAOA,EAAIkmC,WAAY,OAAOlmC,EAClC,IAAIhsB,EAAS,GACb,GAAW,MAAPgsB,EAAa,IAAK,IAAIzjC,KAAKyjC,EAAe,YAANzjC,GAAmBgJ,OAAOlG,UAAUqL,eAAe5P,KAAKklC,EAAKzjC,CAAC,GAAGupE,kBAAgB9xD,EAAQgsB,EAAKzjC,CAAC,EAEvI,OADAypE,qBAAmBhyD,EAAQgsB,CAAG,EACvBhsB,CACX,EACAzO,OAAOC,eAAesyE,mBAAS,aAAc,CAAE34E,MAAO,CAAA,CAAI,CAAE,EAC5D,MAAM0gE,QAAQoG,eAAaz7D,UAAgB,EACrCutE,sBAAwB,GAAYlY,QAAMh/D,cAAc,MAAO0E,OAAOkF,OAAO,CAAE47D,MAAO,6BAA8Bh5D,MAAO,GAAIi5D,OAAQ,GAAIC,QAAS,WAAa,EAAErrE,CAAK,EAC1K2kE,QAAMh/D,cAAc,OAAQ,CAAE3E,EAAG,6IAA6I,CAAE,CAAE,EACtL,IAAAsqE,WAAAsR,mBAAAxzE,QAAkByzE,kCCvBdjS,kBAAmB3pE,gBAAQA,eAAK2pE,kBAAqBvgE,OAAO2G,OAAM,SAAalS,EAAG2D,EAAGpB,EAAGwpE,GAC7E34D,KAAAA,IAAP24D,IAAkBA,EAAKxpE,GAC3BgJ,OAAOC,eAAexL,EAAG+rE,EAAI,CAAEl/D,WAAY,CAAA,EAAM7B,IAAK,WAAa,OAAOrH,EAAEpB,EAAG,CAAI,CAAA,CACtF,EAAA,SAAcvC,EAAG2D,EAAGpB,EAAGwpE,GAEpB/rE,EADsB+rE,EAAX34D,KAAAA,IAAP24D,EAAuBxpE,EACzBwpE,GAAMpoE,EAAEpB,EACb,GACGypE,qBAAsB7pE,gBAAQA,eAAK6pE,qBAAwBzgE,OAAO2G,OAAM,SAAalS,EAAGgB,GACxFuK,OAAOC,eAAexL,EAAG,UAAW,CAAE6M,WAAY,CAAA,EAAM1H,MAAOnE,CAAC,CAAE,CACrE,EAAI,SAAShB,EAAGgB,GACbhB,EAAW,QAAIgB,CACnB,GACIirE,eAAgB9pE,gBAAQA,eAAK8pE,cAAiB,SAAUjmC,GACxD,GAAIA,GAAOA,EAAIkmC,WAAY,OAAOlmC,EAClC,IAAIhsB,EAAS,GACb,GAAW,MAAPgsB,EAAa,IAAK,IAAIzjC,KAAKyjC,EAAe,YAANzjC,GAAmBgJ,OAAOlG,UAAUqL,eAAe5P,KAAKklC,EAAKzjC,CAAC,GAAGupE,kBAAgB9xD,EAAQgsB,EAAKzjC,CAAC,EAEvI,OADAypE,qBAAmBhyD,EAAQgsB,CAAG,EACvBhsB,CACX,EACAzO,OAAOC,eAAewyE,SAAS,aAAc,CAAE74E,MAAO,CAAA,CAAI,CAAE,EAC5D,MAAM0gE,QAAQoG,eAAaz7D,UAAgB,EACrCytE,YAAc,GAAYpY,QAAMh/D,cAAc,MAAO0E,OAAOkF,OAAO,CAAE47D,MAAO,6BAA8Bh5D,MAAO,GAAIi5D,OAAQ,GAAIC,QAAS,WAAa,EAAErrE,CAAK,EAChK2kE,QAAMh/D,cAAc,OAAQ,CAAE3E,EAAG,6qBAA6qB,CAAE,CAAE,EACttB,IAAAsqE,WAAAwR,SAAA1zE,QAAkB2zE,YCdX,MAAMC,SAIR,CAAA,CAEG7J,YAAAA,EACA/vB,IAAAA,EACA65B,WAAAA,CACH,KAUD,OACItR,IAAA,MAAA,CAAKjgE,UAAU,WAAW,EACtBigE,IAAA,IAAA,CAAGvlD,OAAO,SAAS03C,KAAM1a,EAAIpxB,IAAKtmB,UAAU,oBAAoB,EAC5DigE,IAACiG,aACGiB,mBAAmB,4BACnBM,YAAaA,EACbX,WAAY,CAAA,EACZY,gBAAiBhwB,EAAIp0B,OACvB,EAGN28C,IAAK,MAAA,CAAAjgE,UAAU,0BAA0B,EACrCigE,IAACuR,WAAW,IAAA,MAAE95B,EAAI+5B,cAnBnB/8D,SAAOqH,SAmBmC27B,EAAIg6B,cAnB1B,EAAG,MAAO,CAAEniE,OAAQgiE,CAAU,CAAE,CAmBS,EAGhEtR,IAAK,MAAA,CAAAjgE,UAAU,gBAAgB,EAC1B03C,EAAI+sB,UAAYF,WAAWC,mCAAmC9sB,EAAI+sB,QAAQ,EAC1E/sB,EAAIi6B,UAAYpN,WAAWC,mCAAmC9sB,EAAIi6B,QAAQ,EAC1Ej6B,EAAIk6B,QACD3R,IAAA,MAAA,CAAKjgE,UAAU,4BAA4BsjB,MAAOo0B,EAAIm6B,SAAUrB,IAAK94B,EAAIm6B,SACpEvB,IAAK54B,EAAIk6B,OAAQnrE,MAAM,KAAKi5D,OAAO,IAAI,EAAE,EAGtDO,IAAK,MAAA,CAAAvgE,MAAM,gBAAgB,EACvBugE,IAACiG,aACGiB,mBAAmB,4BACnBM,YAAaA,EACbX,WAAY,CAAA,EACZY,gBAAiBhwB,EAAI0wB,MACvB,EAGNnI,IAAK,MAAA,CAAAjgE,UAAU,eAAe,EAC1BigE,IAAK,MAAA,CAAAjgE,UAAU,aAAa,EACxBigE,IAAC6R,WAAU,IAAA,EACX7R,IAAA,OAAA,KAAOvoB,EAAIq6B,YAAc,GAAG,CAAQ,EAGxC9R,IAAK,MAAA,CAAAjgE,UAAU,aAAa,EACxBigE,IAAC+R,WAAwB,IAAA,EACzB/R,IAAA,OAAA,KAAOvoB,EAAIu6B,eAAiB,GAAG,CAAQ,EAG3ChS,IAAK,MAAA,CAAAjgE,UAAU,aAAa,EACxBigE,IAACiS,WAAc,IAAA,EACfjS,IAAO,OAAA,KAhDZrkD,oBAAoBG,SAgDU27B,EAAIg6B,cAhDD,EAAG,CAAEniE,OAAQgiE,CAAU,CAAE,CAgDT,CAAQ,CAClD,CAER,CAEd,cC9EIrS,kBAAmB3pE,gBAAQA,eAAK2pE,kBAAqBvgE,OAAO2G,OAAM,SAAalS,EAAG2D,EAAGpB,EAAGwpE,GAC7E34D,KAAAA,IAAP24D,IAAkBA,EAAKxpE,GAC3BgJ,OAAOC,eAAexL,EAAG+rE,EAAI,CAAEl/D,WAAY,CAAA,EAAM7B,IAAK,WAAa,OAAOrH,EAAEpB,EAAG,CAAI,CAAA,CACtF,EAAA,SAAcvC,EAAG2D,EAAGpB,EAAGwpE,GAEpB/rE,EADsB+rE,EAAX34D,KAAAA,IAAP24D,EAAuBxpE,EACzBwpE,GAAMpoE,EAAEpB,EACb,GACGypE,qBAAsB7pE,gBAAQA,eAAK6pE,qBAAwBzgE,OAAO2G,OAAM,SAAalS,EAAGgB,GACxFuK,OAAOC,eAAexL,EAAG,UAAW,CAAE6M,WAAY,CAAA,EAAM1H,MAAOnE,CAAC,CAAE,CACrE,EAAI,SAAShB,EAAGgB,GACbhB,EAAW,QAAIgB,CACnB,GACIirE,eAAgB9pE,gBAAQA,eAAK8pE,cAAiB,SAAUjmC,GACxD,GAAIA,GAAOA,EAAIkmC,WAAY,OAAOlmC,EAClC,IAAIhsB,EAAS,GACb,GAAW,MAAPgsB,EAAa,IAAK,IAAIzjC,KAAKyjC,EAAe,YAANzjC,GAAmBgJ,OAAOlG,UAAUqL,eAAe5P,KAAKklC,EAAKzjC,CAAC,GAAGupE,kBAAgB9xD,EAAQgsB,EAAKzjC,CAAC,EAEvI,OADAypE,qBAAmBhyD,EAAQgsB,CAAG,EACvBhsB,CACX,EACAzO,OAAOC,eAAeuzE,KAAS,aAAc,CAAE55E,MAAO,CAAA,CAAI,CAAE,EAC5D,MAAM0gE,QAAQoG,eAAaz7D,UAAgB,EACrCwuE,QAAU,GAAYnZ,QAAMh/D,cAAc,MAAO0E,OAAOkF,OAAO,CAAE47D,MAAO,6BAA8Bh5D,MAAO,GAAIi5D,OAAQ,GAAIC,QAAS,WAAa,EAAErrE,CAAK,EAC5J2kE,QAAMh/D,cAAc,OAAQ,CAAE3E,EAAG,gUAAgU,CAAE,CAAE,EACzW,IAAAsqE,WAAAuS,KAAAz0E,QAAkB00E,QCjBX,MAAMC,QAIR,CAAA,CAEG5K,YAAAA,EACA/vB,IAAAA,EACA65B,WAAAA,CACH,KAUD,OACItR,IAAA,MAAA,CAAKvgE,MAAM,UAAU,EACjBugE,IAAA,IAAA,CAAGvlD,OAAO,SAAS03C,KAAM1a,EAAIpxB,IAAKtmB,UAAU,cAAc,EACtDigE,IAAA,MAAA,CAAKqQ,IAAK54B,EAAI46B,WAAa,6DAA8D9B,IAAI,YAAY,CAAA,CAAG,EAGhHvQ,IAAA,IAAA,CAAGvlD,OAAO,SAAS03C,KAAM1a,EAAIpxB,IAAKtmB,UAAU,mBAAmB,EAC3DigE,IAACiG,aACGiB,mBAAmB,4BACnBM,YAAaA,EACbX,WAAY,CAAA,EACZY,gBAAiBhwB,EAAIp0B,OACvB,EAGN28C,IAAK,MAAA,CAAAjgE,UAAU,yBAAyB,EACpCigE,IAACsS,WAAU,IAAA,MAAE76B,EAAI86B,WAAWp4D,KAAK,KAAK,QAvBvC1F,SAAOqH,SAuBiD27B,EAAI+6B,aAvBxC,EAAG,MAAO,CAAEljE,OAAQgiE,CAAU,CAAE,CAuBsB,EAG7EtR,IAAK,MAAA,CAAAvgE,MAAM,eAAe,EACtBugE,IAACiG,aACGiB,mBAAmB,4BACnBM,YAAaA,EACbX,WAAY,CAAA,EACZY,gBAAiBhwB,EAAIg7B,SACvB,EAGNzS,IAAK,MAAA,CAAAjgE,UAAU,qBAAqB,EAChCigE,IAACiS,WAAc,IAAA,EACfjS,IAAO,OAAA,KAjCRrkD,oBAAoBG,SAiCM27B,EAAIi7B,QAjCG,EAAG,CAAEpjE,OAAQgiE,CAAU,CAAE,CAiCnB,CAAQ,CAEhD,CAEd,ECvDaqB,QAGR,CAAA,CAEGnL,YAAAA,EACA/vB,IAAAA,CACH,IAGGuoB,IAAA,MAAA,CAAKjgE,UAAU,UAAU,EACrBigE,IAAA,IAAA,CAAGvlD,OAAO,SAAS03C,KAAM1a,EAAIpxB,IAAKtmB,UAAU,mBAAmB,EAC3DigE,IAACiG,aACGiB,mBAAmB,4BACnBM,YAAaA,EACbX,WAAY,CAAA,EACZY,gBAAiBhwB,EAAIp0B,OACvB,EAGN28C,IAAK,MAAA,CAAAjgE,UAAU,yBAAyB,EACpCigE,IAAK,MAAA,CAAAqQ,IAAK54B,EAAIgtB,KAAM8L,IAAK94B,EAAIm7B,IAAM,MAAEn7B,EAAIpxB,IAAI1uB,QAAQ,WAAY,EAAE,EAAEA,QAAQ,MAAO,KAAK,CAAC,EAG9FqoE,IAAK,MAAA,CAAAjgE,UAAU,eAAe,EAC1BigE,IAACiG,aACGiB,mBAAmB,4BACnBM,YAAaA,EACbX,WAAY,CAAA,EACZY,gBAAiBhwB,EAAIpwB,OACvB,CAAA,CAAA,CAEJ,EC1BDwrD,aAKR,CAAA,CAEGr9C,MAAOs9C,EACPjT,SAAAA,EACAyR,WAAAA,EACAxX,eAAAA,CACH,KAED,GAAM,CAAClxC,KAAAA,EAAMgyC,WAAAA,EAAYpB,SAAAA,CAAQ,EAAIwB,gBAAgB,CACjDlB,eAAAA,CACH,CAAA,EAED,KAAM,CAAC0N,EAAauL,GAAkB1xE,EAAmB,EAAE,EAC3DG,IAAU,KACN,IAAMzG,EAAI+3E,EAAUn7E,QAAQ,OAAQ,EAAE,EACtCo7E,EAAeh4E,EAAEmiB,MAAM,GAAG,CAAC,CAC/B,EAAG,CAAC41D,EAAU,EAEd,GAAM,CAACE,EAAW,CAACjS,QAAAA,CAAQ,GAAIwB,kBAAkB,CAC7CC,QAAS,CAAA,EACTC,YAAa,CAAC7H,EACd8H,WAAYlJ,EACZmJ,SAAU,CAAA,EACVjC,WAAY,mBACf,CAAA,EAiBD,OACKV,WAAKvgE,MAAM,OAAOlL,IAAKwsE,CAAO,EAC1Bn4C,EAAK5rB,IAAIy6C,IAAOw7B,IAjB8Bx7B,EAiBEA,EAjBQ65B,EAiBHA,EAhB1D,OAgB2CzR,GAfvC,IAAK,QACD,OAAOG,IAACqR,SAAS,CAAA/8E,IAAKmjD,EAAIxiB,SAAUuyC,YAAaA,EAAa/vB,IAAKA,EAAK65B,WAAYA,CAAU,CAAA,EAClG,IAAK,YACD,OAAOtR,IAACkQ,aAAa,CAAA57E,IAAKmjD,EAAIxiB,SAAUuyC,YAAaA,EAAa/vB,IAAKA,EAAK65B,WAAYA,CAAU,CAAA,EACtG,IAAK,OACD,OAAOtR,IAACoS,QAAQ,CAAA99E,IAAKmjD,EAAIxiB,SAAUuyC,YAAaA,EAAa/vB,IAAKA,EAAK65B,WAAYA,CAAU,CAAA,EACjG,IAAK,OACD,OAAOtR,IAAC2S,QAAO,CAACr+E,IAAKmjD,EAAIxiB,SAAUuyC,YAAaA,EAAa/vB,IAAKA,IACtE,QACI,OAAO,IAAIvtC,MAAM,0BAA0B,CAClD,CAKmE,CAAC,EAChE,CAAE0wD,GACCoF,WAAKvgE,MAAM,cAAclL,IAAKy+E,EAAiB,CAEhD,CAGf,ECzCME,SAAuD,CAAA,CAErDrT,SAAAA,EACAyR,WAAAA,EACAlqE,MAAAA,EACAouB,MAAAA,EACA6b,OAAAA,EACA8hC,aAAAA,EACAxc,aAAAA,EACAyc,sBAAAA,EACAC,WAAAA,EACAC,YAAAA,EACAxZ,eAAAA,EACAyZ,OAAAA,EACAv/E,SAAAA,CACH,KAMD,OACIgsE,IAACnK,cAAc,CAAAzgC,UAAWhuB,EAAOuvD,aAAcA,CAAY,EACtDqJ,IAACxa,UAAU,CAAA/vB,YAAa,IACdD,MAAOA,EACPg+C,eAAgB,CAAA,EAChBC,SAAU,CAAA,EACVC,sBAAuB,GACvB3qD,KAAM,EACNmuB,gBAAiB,oBACjBC,iBAAkB,qBAClBi8B,sBAAuBA,EAAmC,EACrEpT,IAACG,cAAa3qC,MAAOA,EACP4qC,eAhBI,IACtB+S,EAAa9hC,CAAM,CACvB,EAc0D,EAClD2uB,IAAA,MAAA,CAAKjgE,UAAW,oBAAmBszE,EAAa,2BAA6B,GAAI,EAC7ErT,IAAK,MAAA,CAAAvgE,MAAM,gBAAgB,EACvBugE,IAACJ,cAAclhE,OAAAkF,OAAA,CAAAi8D,SAAUA,CAAQ,EACd0T,CAAM,CAAG,EAElB,EAATliC,GACG2uB,IAAC6S,aAAa,CAAAhT,SAAUA,EACVyR,WAAYA,EACZ97C,MAAOA,EACPskC,eAAgBA,CAAc,CAAG,EAGvC,IAAXzoB,GAAgC,GAAhB7b,EAAMzhC,QACnBisE,IAAK,MAAA,CAAAjgE,UAAU,yBAAyB,EAACigE,IAACv9C,KAAI,CAACE,GAAG,8BAA8BP,OAAQ,CAAEoT,MAAAA,EAAO,CAAA,CAAe,EAGxG,IAAX6b,GAAgB7b,EAAMzhC,OAAS,GAC5BisE,IAAK,MAAA,CAAAjgE,UAAU,yBAAyB,EAACigE,IAACv9C,MAAKE,GAAG,4BAAoC,CAAA,CAAM,CAC/F,EAEJ3uB,GACGgsE,IAAA,MAAA,CAAKjgE,UAAW,sCAAsCuzE,EAA4D,GAA9C,4CAAkD,EAClHtT,IAAK,MAAA,CAAAvgE,MAAM,wBAAwB,EAC9BzL,CAAQ,CACP,CACJ,CAGF,CAExB,EC9Ea2/E,OAAgC,CAAA,CAErCtxC,OAAAA,EACAuxC,aAAAA,EACAC,eAAAA,CACH,KACD,MAAMC,EAAgB3vD,QAAQ,kBAAkB,EAAE4vD,UAC5CC,EAAW7vD,QAAQ,aAAa,EAAEvZ,KAElCqpE,EAAiB,CACnBF,UAAaH,EACbhpE,KAAWgpE,EAAH,mBAGNM,EAAgB7xC,GAAU,CAAC,YAAa,QAAQtjB,SAASsjB,CAAM,EAC/D,CAAC8xC,EAAeC,GAAoB/yE,EAAS6yE,EAAgB7xC,EAAS,WAAW,EACvF7gC,IAAU,KACN4yE,EAAiBF,EAAgB7xC,EAAS,WAAW,CACzD,EAAG,CAAC6xC,EAAe7xC,EAAO,EAE1B7gC,IAAU,KACNo/C,EAAOqzB,EAAeE,EAAc,CACxC,EAAG,CAACA,EAAc,EAclB,KAAM,CACF7tE,QAAAA,EACAs6C,OAAAA,CACH,EAAGmd,UAAU,CACVpiB,MAhBiB15C,IAAQ,IAClB,CACH,CAAC25D,MAAOkY,EAAex7E,MAAO,WAAY,EAC1C,CAACsjE,MAAOoY,EAAU17E,MAAO,MAAO,GAErC,CAACw7E,EAAeE,EAAS,CAY3B,CAAA,EAED,OACIhU,IAAA,MAAA,CAAKjgE,UAAU,YAAY,EACvBigE,IAAQ,SAAA,CAAAjgE,UAAU,oBAAoBzH,MAAO67E,EAAeE,SAd/C,IACjBD,EAAiBh8E,EAAMqiB,OAAOniB,KAAK,EACnCu7E,EAAez7E,EAAMqiB,OAAOniB,KAAK,CACrC,CAW0F,EAC7EgO,EAAQtJ,IAAIs3E,GACTtU,IAAQ,SAAA,CAAA1rE,IAAKggF,EAAOh8E,MAAOyH,UAAU,oBAC7BzH,MAAOg8E,EAAOh8E,KAAK,EAAGg8E,EAAO1Y,KAAK,CAAU,CACvD,CAEH,CAEd,EC1Da2Y,uBAAqE,CAAA,CAAGC,oBAAAA,CAAqB,KAEtG,KAAM,CAAE74B,MAAAA,EAAOiF,OAAAA,CAAQ,EAAG6c,kBAAkB,CACxCvkC,UAAWs7C,GAAuB,UACrC,CAAA,EAQD,OAFA74B,EAAMzlD,KAAK,CAACQ,EAAGxB,IAAMA,EAAE+H,MAAQvG,EAAEuG,KAAK,EAGlC+iE,IAAAyU,IAAA,KACIzU,IAAK,MAAA,CAAAvgE,MAAM,oBAAoB,EAC3BugE,IAAA,KAAA,CAAIvgE,MAAM,yBACL,EAAYk8C,EATZhgD,OAAO6tC,GAAQ,CAAC,CAAC,MAAM,QAAQzqB,SAASyqB,EAAKoyB,KAAK,CAAC,EAShC5+D,IAAI,CAACwsC,EAAMpiC,IAEvB44D,IAAA,KAAA,CAAI1rE,IAAK8S,CAAK,EACd44D,IAAA,QAAA,KACIA,IAAA,QAAA,CAAO5rE,KAAK,WAAWigF,SAAU,IAAMzzB,EAAOpX,EAAKlxC,KAAK,EAAI,EAC3DgsE,WAAWC,mCAAmC/6B,EAAKlxC,KAAK,EACzD0nE,IAAA,OAAA,KAAMA,IAACv9C,KAAI,CAACE,GAAI,mBAAqB6mB,EAAKoyB,MAAMhkE,aAAa,CAAA,CAAS,CAAO,EAE7EooE,IAAM,OAAA,CAAAvgE,MAAM,eAAe,EAACugE,IAAA,OAAA,CAAMvgE,MAAM,UAAU,EAAE+pC,EAAKvsC,OAAS,GAAG,CAAQ,CAC5E,CAEZ,CAAC,CACD,CAEV,CAEX,ECjCay3E,uBAAuC,KAEhD,KAAM,CAAE/4B,MAAAA,EAAOiF,OAAAA,CAAQ,EAAG6c,kBAAkB,CACxCvkC,UAAW,UACd,CAAA,EAID,OAFAyiB,EAAMzlD,KAAK,CAACQ,EAAGxB,IAAMA,EAAE+H,MAAQvG,EAAEuG,KAAK,EAGlC+iE,IAAA,MAAA,CAAKvgE,MAAM,oBAAoB,EAC3BugE,IAAA,KAAA,CAAIvgE,MAAM,yBAAyB,EAC9Bk8C,EAAM3+C,IAAI,CAACwsC,EAAMpiC,IAEV44D,IAAA,KAAA,CAAI1rE,IAAK8S,CAAK,EACV44D,IAAA,QAAA,KACIA,IAAA,QAAA,CAAO5rE,KAAK,WAAWigF,SAAU,IAAMzzB,EAAOpX,EAAKlxC,KAAK,EAAI,EAC3DgsE,WAAWC,mCAAmC/6B,EAAKlxC,KAAK,EACzD0nE,IAAA,OAAA,KAAMA,IAACv9C,KAAI,CAACE,GAAI,mBAAqB6mB,EAAKoyB,MAAMhkE,aAAa,CAAA,CAAS,CAAO,EAEjFooE,IAAM,OAAA,CAAAvgE,MAAM,eAAe,EAACugE,IAAA,OAAA,CAAMvgE,MAAM,UAAU,EAAE+pC,EAAKvsC,OAAS,GAAG,CAAQ,CAC5E,CAEZ,CAAC,CAEJ,CAEd,EC3Ba03E,4BAA4C,KAErD,KAAM,CAAEh5B,MAAAA,EAAOiF,OAAAA,CAAQ,EAAG6c,kBAAkB,CACxCvkC,UAAW,MACd,CAAA,EAID,OAFAyiB,EAAMzlD,KAAK,CAACQ,EAAGxB,IAAMA,EAAE+H,MAAQvG,EAAEuG,KAAK,EAGlC+iE,IAAA,MAAA,CAAKvgE,MAAM,oBAAoB,EAC3BugE,IAAA,KAAA,CAAIvgE,MAAM,yBAAyB,EAC9Bk8C,EAAM3+C,IAAI,CAACwsC,EAAMpiC,IAEV44D,IAAA,KAAA,CAAI1rE,IAAK8S,CAAK,EACV44D,IAAA,QAAA,KACIA,IAAA,QAAA,CAAO5rE,KAAK,WAAWigF,SAAU,IAAMzzB,EAAOpX,EAAKlxC,KAAK,EAAI,EAC5D0nE,IAAA,OAAA,KAAMA,IAACv9C,KAAI,CAACE,GAAI,0BAA4B6mB,EAAKoyB,MAAMhkE,aAAa,CAAA,CAAS,CAAO,EAExFooE,IAAM,OAAA,CAAAvgE,MAAM,eAAe,EAACugE,IAAA,OAAA,CAAMvgE,MAAM,UAAU,EAAE+pC,EAAKvsC,OAAS,GAAG,CAAQ,CAC5E,CAEZ,CAAC,CAEJ,CAEd,EC1Ba23E,6BAA6C,KAEtD,KAAM,CAAEj5B,MAAAA,EAAOiF,OAAAA,CAAQ,EAAG6c,kBAAkB,CACxCvkC,UAAW,YACd,CAAA,EAID,OAFAyiB,EAAMzlD,KAAK,CAACQ,EAAGxB,IAAMA,EAAE+H,MAAQvG,EAAEuG,KAAK,EAGlC+iE,IAAA,MAAA,CAAKvgE,MAAM,oBAAoB,EAC3BugE,IAAA,KAAA,CAAIvgE,MAAM,yBAAyB,EAC9Bk8C,EAAM3+C,IAAI,CAACwsC,EAAMpiC,IAEV44D,IAAA,KAAA,CAAI1rE,IAAK8S,CAAK,EACV44D,IAAA,QAAA,KACIA,IAAA,QAAA,CAAO5rE,KAAK,WAAWigF,SAAU,IAAMzzB,EAAOpX,EAAKlxC,KAAK,EAAI,EAC5D0nE,IAAA,OAAA,KAAOx2B,EAAKoyB,KAAK,CAAQ,EAE7BoE,IAAM,OAAA,CAAAvgE,MAAM,eAAe,EAACugE,IAAA,OAAA,CAAMvgE,MAAM,UAAU,EAAE+pC,EAAKvsC,OAAS,GAAG,CAAQ,CAC5E,CAEZ,CAAC,CAEJ,CAEd,ECzBa43E,sBAAsC,KAC/C,KAAM,CAAEl5B,MAAAA,EAAOiF,OAAAA,CAAQ,EAAG6c,kBAAkB,CACxCvkC,UAAW,KACd,CAAA,EAID,OAFAyiB,EAAMzlD,KAAK,CAACQ,EAAGxB,IAAMA,EAAE+H,MAAQvG,EAAEuG,KAAK,EAGlC+iE,IAAA,MAAA,CAAKvgE,MAAM,oBAAoB,EAC3BugE,IAAA,KAAA,CAAIvgE,MAAM,yBAAyB,EAC9Bk8C,EAAM3+C,IAAI,CAACwsC,EAAMpiC,IAEV44D,IAAA,KAAA,CAAI1rE,IAAK8S,CAAK,EACV44D,IAAA,QAAA,KACIA,IAAA,QAAA,CAAO5rE,KAAK,WAAWigF,SAAU,IAAMzzB,EAAOpX,EAAKlxC,KAAK,EAAI,EAC5D0nE,IAAA,OAAA,KAAOx2B,EAAKoyB,KAAK,CAAQ,EAE7BoE,IAAM,OAAA,CAAAvgE,MAAM,eAAe,EAACugE,IAAA,OAAA,CAAMvgE,MAAM,UAAU,EAAE+pC,EAAKvsC,OAAS,GAAG,CAAQ,CAC5E,CAEZ,CAAC,CAEJ,CAEd,ECLM63E,cAA8C,CAAA,CAE5Ct/C,MAAAA,EACAmhC,aAAAA,EACA0c,WAAAA,EACAF,aAAAA,EACA9hC,OAAAA,EACAigC,WAAAA,EACAgC,YAAAA,EACAC,OAAAA,EACAlxC,OAAAA,EACAwxC,eAAAA,CACH,KAED,IAAM/Z,EAAiB53D,IAAY,GACxBy5C,EAAM3+C,IAAIwsC,GAAQ67B,aAAa77B,EAAM,MAAM,CAAC,EACpD,EAAE,EAEL,OACIw2B,IAACkT,SAAQ,CAACrT,SAAS,QACTuT,sBAAuB,CAAA,EACvBhsE,MAAM,QACNouB,MAAOA,EACPmhC,aAAcA,EACd0c,WAAYA,EACZ/B,WAAYA,EACZiC,OAAQA,EACRD,YAAaA,EACbxZ,eAAgBA,EAChBzoB,OAAQA,EACR8hC,aAAcA,CAAY,EAChCnT,IAACoF,aAAY,CAAC/hD,MAAO,gBAAgB,EACjC28C,IAAC2T,OAAM,CAACtxC,OAAQA,EAAQuxC,aAAa,QAAQC,eAAgBA,CAAc,EAAG,EAGlF7T,IAACoF,aAAY,CAAC/hD,MAAO,2BAA2B,EAC5C28C,IAACuU,4BAAwB,EAG7BvU,IAACoF,aAAY,CAAC/hD,MAAO,2BAA2B,EAC5C28C,IAAC0U,uBAAsB,IAAA,CAAE,CAEtB,CAEnB,ECvDMK,WAAwC,CAAA,CAEtClV,SAAAA,EACAwT,WAAAA,EACAhiC,OAAAA,EACA4uB,QAAAA,CACH,IAEGD,IAAG,IAAA,CAAAjgE,UAAWszE,GAAc,SAAUpT,QAASA,CAAO,EAClDD,IAACv9C,KAAK,CAAAE,GAAI,yBAAyBk9C,EAAmB,MAACG,IAAA,OAAA,KAAO3uB,CAAM,CACpE,ECrB8E,SAAS/9C,EAAEL,EAAEI,EAAEC,GAAG,IAAIJ,EAAEoC,KAAK9B,EAAEK,IAAE,IAAI,EAAEV,EAAEU,IAAE,CAAC,EAAET,EAAES,IAAE,IAAI,EAAEb,EAAEa,IAAE,EAAE,EAAEiD,EAAEjD,IAAC,EAAGM,EAAEN,IAAC,EAAGwB,EAAExB,IAAEZ,CAAC,EAAEmC,EAAEvB,IAAE,CAAA,CAAE,EAAqCiC,GAAnC/C,IAAE,WAAWsC,EAAEF,QAAQlC,CAAC,EAAE,CAACA,EAAE,EAAQ,CAACI,GAAG,IAAIA,GAAG,aAAa,OAAOo3B,QAAO,GAAG,YAAY,OAAOx3B,EAAE,MAAM,IAAIqW,UAAU,qBAAqB,EAAEjW,EAAE,CAACA,GAAG,EAAE,IAAIoD,EAAE,CAAC,EAAEnD,EAAEA,GAAG,IAAI0hF,QAAQzhF,EAAE,EAAE,aAAaD,GAAK,CAACA,EAAE2hF,UAASv+E,EAAE,YAAYpD,EAAE4B,EAAEwB,EAAEuS,KAAK8U,IAAI,CAACzqB,EAAE4hF,SAAS,EAAE7hF,CAAC,EAAE,KAAmpC,OAA9oCN,IAAE,WAAW,OAAOqC,EAAED,QAAQ,CAAA,EAAG,WAAWC,EAAED,QAAQ,CAAA,CAAE,CAAC,EAAE,EAAE,EAAQvB,IAAE,WAAuV,SAAFX,EAAWF,GAAG,OAAOK,EAAE+B,QAAQ,KAAK5B,GAAGP,EAAEmC,QAAQtB,EAAEd,CAAC,GAAGC,EAAEmC,QAAQ2B,EAAE3B,QAAQ,KAAKhB,EAAEgB,QAAQ,CAAuI,SAAFxB,IAAa,IAAIV,EAAE6W,KAAK+R,MAAMxmB,EAAEzB,EAAEX,CAAC,EAAE,GAAGD,EAAEmC,QAAQ,GAAG0C,MAAM5D,KAAKH,SAAS,EAAEgD,EAAE3B,QAAQjC,EAAEM,EAAE2B,QAAQlC,EAAEoC,EAAE,CAAC,GAAG,CAACjC,EAAE+B,SAASC,EAAED,QAAQ,OAAOhC,EAAEgC,QAAQ3B,EAAE2B,QAAQpC,EAAEO,EAAED,CAAC,EAAEoD,EAAE5C,EAAEL,EAAE2B,OAAO,EAAEhB,EAAEgB,QAAQ,GAAGuB,EAAE,OAAO3D,EAAEO,EAAED,CAAC,EAAEQ,EAAEL,EAAE2B,OAAO,CAAC,CAAC,OAAO/B,EAAE+B,SAASpC,EAAEO,EAAED,CAAC,EAAEc,EAAEgB,OAAO,CAAryB,IAAItB,EAAE,SAASA,GAAG,IAAId,EAAEC,EAAEmC,QAAQvB,EAAEkD,EAAE3B,QAAQ,OAAOnC,EAAEmC,QAAQ2B,EAAE3B,QAAQ,KAAKhC,EAAEgC,QAAQtB,EAAEM,EAAEgB,QAAQE,EAAEF,QAAQsL,MAAM7M,EAAEb,CAAC,CAAC,EAAEA,EAAE,SAASc,EAAEd,GAAG+C,GAAGwG,qBAAqBlJ,EAAE+B,OAAO,EAAE/B,EAAE+B,QAAQW,EAAEsG,sBAAsBvI,CAAC,EAAEoC,WAAWpC,EAAEd,CAAC,CAAC,EAAEa,EAAE,SAASC,GAAG,IAA2Bd,EAA3B,MAAIqC,CAAAA,CAAAA,EAAED,UAAqBpC,EAAEc,EAAEL,EAAE2B,QAAc,CAAC3B,EAAE2B,SAAY9B,GAAHN,GAAMA,EAAE,GAAG2D,GAAG7C,EAAEV,EAAEgC,SAASD,EAAC,EAA8F5B,EAAE,SAASO,IAAI,IAAuDX,EAAnDI,EAAEwW,KAAK+R,MAAM,GAAGjoB,EAAEN,CAAC,EAAE,OAAOL,EAAEK,CAAC,EAAK8B,EAAED,UAAajC,EAAEG,GAAGC,EAAEE,EAAE2B,SAAS/B,EAAEsD,EAAEuS,KAAK0c,IAAIzyB,EAAEgC,GAAG5B,EAAEH,EAAEgC,QAAQ,EAAEjC,EAAEH,EAAEc,EAAET,CAAC,EAAE,EAAgQ,OAAOO,EAAEynD,OAAO,WAAWhoD,EAAE+B,UAAUW,EAAEwG,qBAAgCD,cAAXjJ,EAAE+B,OAAO,EAA2BhC,EAAEgC,QAAQ,EAAEnC,EAAEmC,QAAQ3B,EAAE2B,QAAQ2B,EAAE3B,QAAQ/B,EAAE+B,QAAQ,IAAI,EAAExB,EAAEwhF,UAAU,WAAW,MAAM,CAAC,CAAC/hF,EAAE+B,OAAO,EAAExB,EAAEyhF,MAAM,WAAW,OAAOhiF,EAAE+B,QAAQlC,EAAE6W,KAAK+R,IAAG,CAAE,EAAE1nB,EAAEgB,OAAO,EAAExB,CAAC,EAAE,CAAC8C,EAAEC,EAAErD,EAAE6B,EAAE3B,EAAEuC,EAAE,CAAU,eCC5kDmpE,kBAAmB3pE,gBAAQA,eAAK2pE,kBAAqBvgE,OAAO2G,OAAM,SAAalS,EAAG2D,EAAGpB,EAAGwpE,GAC7E34D,KAAAA,IAAP24D,IAAkBA,EAAKxpE,GAC3BgJ,OAAOC,eAAexL,EAAG+rE,EAAI,CAAEl/D,WAAY,CAAA,EAAM7B,IAAK,WAAa,OAAOrH,EAAEpB,EAAG,CAAI,CAAA,CACtF,EAAA,SAAcvC,EAAG2D,EAAGpB,EAAGwpE,GAEpB/rE,EADsB+rE,EAAX34D,KAAAA,IAAP24D,EAAuBxpE,EACzBwpE,GAAMpoE,EAAEpB,EACb,GACGypE,qBAAsB7pE,gBAAQA,eAAK6pE,qBAAwBzgE,OAAO2G,OAAM,SAAalS,EAAGgB,GACxFuK,OAAOC,eAAexL,EAAG,UAAW,CAAE6M,WAAY,CAAA,EAAM1H,MAAOnE,CAAC,CAAE,CACrE,EAAI,SAAShB,EAAGgB,GACbhB,EAAW,QAAIgB,CACnB,GACIirE,eAAgB9pE,gBAAQA,eAAK8pE,cAAiB,SAAUjmC,GACxD,GAAIA,GAAOA,EAAIkmC,WAAY,OAAOlmC,EAClC,IAAIhsB,EAAS,GACb,GAAW,MAAPgsB,EAAa,IAAK,IAAIzjC,KAAKyjC,EAAe,YAANzjC,GAAmBgJ,OAAOlG,UAAUqL,eAAe5P,KAAKklC,EAAKzjC,CAAC,GAAGupE,kBAAgB9xD,EAAQgsB,EAAKzjC,CAAC,EAEvI,OADAypE,qBAAmBhyD,EAAQgsB,CAAG,EACvBhsB,CACX,EACAzO,OAAOC,eAAe02E,OAAS,aAAc,CAAE/8E,MAAO,CAAA,CAAI,CAAE,EAC5D,MAAM0gE,QAAQoG,eAAaz7D,UAAgB,EACrC2xE,UAAY,GAAYtc,QAAMh/D,cAAc,MAAO0E,OAAOkF,OAAO,CAAE47D,MAAO,6BAA8Bh5D,MAAO,GAAIi5D,OAAQ,GAAIC,QAAS,WAAa,EAAErrE,CAAK,EAC9J2kE,QAAMh/D,cAAc,OAAQ,CAAE3E,EAAG,0eAA0e,CAAE,CAAE,EACnhB,IAAAsqE,WAAA0V,OAAA53E,QAAkB63E,mBCvBdrW,kBAAmB3pE,gBAAQA,eAAK2pE,kBAAqBvgE,OAAO2G,OAAM,SAAalS,EAAG2D,EAAGpB,EAAGwpE,GAC7E34D,KAAAA,IAAP24D,IAAkBA,EAAKxpE,GAC3BgJ,OAAOC,eAAexL,EAAG+rE,EAAI,CAAEl/D,WAAY,CAAA,EAAM7B,IAAK,WAAa,OAAOrH,EAAEpB,EAAG,CAAI,CAAA,CACtF,EAAA,SAAcvC,EAAG2D,EAAGpB,EAAGwpE,GAEpB/rE,EADsB+rE,EAAX34D,KAAAA,IAAP24D,EAAuBxpE,EACzBwpE,GAAMpoE,EAAEpB,EACb,GACGypE,qBAAsB7pE,gBAAQA,eAAK6pE,qBAAwBzgE,OAAO2G,OAAM,SAAalS,EAAGgB,GACxFuK,OAAOC,eAAexL,EAAG,UAAW,CAAE6M,WAAY,CAAA,EAAM1H,MAAOnE,CAAC,CAAE,CACrE,EAAI,SAAShB,EAAGgB,GACbhB,EAAW,QAAIgB,CACnB,GACIirE,eAAgB9pE,gBAAQA,eAAK8pE,cAAiB,SAAUjmC,GACxD,GAAIA,GAAOA,EAAIkmC,WAAY,OAAOlmC,EAClC,IAAIhsB,EAAS,GACb,GAAW,MAAPgsB,EAAa,IAAK,IAAIzjC,KAAKyjC,EAAe,YAANzjC,GAAmBgJ,OAAOlG,UAAUqL,eAAe5P,KAAKklC,EAAKzjC,CAAC,GAAGupE,kBAAgB9xD,EAAQgsB,EAAKzjC,CAAC,EAEvI,OADAypE,qBAAmBhyD,EAAQgsB,CAAG,EACvBhsB,CACX,EACAzO,OAAOC,eAAe42E,MAAS,aAAc,CAAEj9E,MAAO,CAAA,CAAI,CAAE,EAC5D,MAAM0gE,QAAQoG,eAAaz7D,UAAgB,EACrC6xE,SAAW,GAAYxc,QAAMh/D,cAAc,MAAO0E,OAAOkF,OAAO,CAAE47D,MAAO,6BAA8Bh5D,MAAO,GAAIi5D,OAAQ,GAAIC,QAAS,WAAa,EAAErrE,CAAK,EAC7J2kE,QAAMh/D,cAAc,OAAQ,CAAE3E,EAAG,+IAA+I,CAAE,CAAE,EACxL,IAAAsqE,WAAA4V,MAAA93E,QAAkB+3E,wBCvBdvW,gBAAmB3pE,gBAAQA,eAAK2pE,kBAAqBvgE,OAAO2G,OAAM,SAAalS,EAAG2D,EAAGpB,EAAGwpE,GAC7E34D,KAAAA,IAAP24D,IAAkBA,EAAKxpE,GAC3BgJ,OAAOC,eAAexL,EAAG+rE,EAAI,CAAEl/D,WAAY,CAAA,EAAM7B,IAAK,WAAa,OAAOrH,EAAEpB,EAAG,CAAI,CAAA,CACtF,EAAA,SAAcvC,EAAG2D,EAAGpB,EAAGwpE,GAEpB/rE,EADsB+rE,EAAX34D,KAAAA,IAAP24D,EAAuBxpE,EACzBwpE,GAAMpoE,EAAEpB,EACb,GACGypE,mBAAsB7pE,gBAAQA,eAAK6pE,qBAAwBzgE,OAAO2G,OAAM,SAAalS,EAAGgB,GACxFuK,OAAOC,eAAexL,EAAG,UAAW,CAAE6M,WAAY,CAAA,EAAM1H,MAAOnE,CAAC,CAAE,CACrE,EAAI,SAAShB,EAAGgB,GACbhB,EAAW,QAAIgB,CACnB,GACIirE,aAAgB9pE,gBAAQA,eAAK8pE,cAAiB,SAAUjmC,GACxD,GAAIA,GAAOA,EAAIkmC,WAAY,OAAOlmC,EAClC,IAAIhsB,EAAS,GACb,GAAW,MAAPgsB,EAAa,IAAK,IAAIzjC,KAAKyjC,EAAe,YAANzjC,GAAmBgJ,OAAOlG,UAAUqL,eAAe5P,KAAKklC,EAAKzjC,CAAC,GAAGupE,gBAAgB9xD,EAAQgsB,EAAKzjC,CAAC,EAEvI,OADAypE,mBAAmBhyD,EAAQgsB,CAAG,EACvBhsB,CACX,EACAzO,OAAOC,eAAe82E,YAAS,aAAc,CAAEn9E,MAAO,CAAA,CAAI,CAAE,EAC5D,MAAM0gE,MAAQoG,aAAaz7D,UAAgB,EACrC+xE,eAAiB,GAAY1c,MAAMh/D,cAAc,MAAO0E,OAAOkF,OAAO,CAAE47D,MAAO,6BAA8Bh5D,MAAO,GAAIi5D,OAAQ,GAAIC,QAAS,WAAa,EAAErrE,CAAK,EACnK2kE,MAAMh/D,cAAc,OAAQ,CAAE3E,EAAG,oRAAoR,CAAE,CAAE,EAC7T,IAAAsqE,SAAA8V,YAAAh4E,QAAkBi4E,eCJlB,MAAMC,aAA4C,CAAA,CAE1CC,YAAAA,EACApgD,MAAAA,EACA6b,OAAAA,EACAwkC,iBAAAA,EACAC,iBAAAA,EACAC,cAAAA,EACAC,QAAAA,CACH,KAED,MAAMC,EAAcl0E,MAOdm0E,GANN10E,IAAU,KACFy0E,EAAY9gF,SAAWygF,GACvBK,EAAY9gF,QAAQghF,OAE5B,EAAG,CAACP,EAAY,EAEEQ,EACd,IACQL,GACAA,EAAcz9E,CAAK,CAE1B,EACD,GAAG,GAGP,IAAM+9E,EAAcp0E,IAAQ,IACjBkiB,QAAQ,4BAA4B0xD,CAAkB,EAAEA,GAChE,CAACA,EAAiB,EAQrB,OACI7V,IAAA,MAAA,CAAKjgE,UAAU,eAAe,EAC1BigE,IAAA,SAAA,CAAQjgE,UAAU,sBAAsBkgE,QAAS+V,CAAO,EACpDhW,IAACsW,gBAAW,EAEhBtW,IAAK,MAAA,CAAAjgE,UAAU,uBAAuB,EAClCigE,IAAK,MAAA,CAAAjgE,UAAU,SAAS,EACpBigE,IAAC+U,WAAU,CAAClV,SAAS,QAAQxuB,OAAQA,EAAc,MAAGgiC,WAAiC,UAArBwC,EAA8B5V,QAAS,IAAM6V,EAAiB,OAAO,EAAI,EAC3I9V,IAAC+U,WAAU,CAAClV,SAAS,OAAOxuB,OAAQA,EAAa,KAAGgiC,WAAiC,SAArBwC,EAA6B5V,QAAS,IAAM6V,EAAiB,MAAM,EAAI,EACvI9V,IAAC+U,WAAU,CAAClV,SAAS,OAAOxuB,OAAQA,EAAa,KAAGgiC,WAAiC,SAArBwC,EAA6B5V,QAAS,IAAM6V,EAAiB,MAAM,EAAI,EACvI9V,IAAC+U,WAAU,CAAClV,SAAS,YAAYxuB,OAAQA,EAAkB,UAAGgiC,WAAiC,cAArBwC,EAAkC5V,QAAS,IAAM6V,EAAiB,WAAW,CAAC,EAAG,EAE/J9V,IAAK,MAAA,CAAAjgE,UAAU,kBAAkB,EAC7BigE,IAACuW,WAAY,IAAA,EACbvW,IAAA,QAAA,CAAOzrE,IAAK0hF,EAAa7hF,KAAK,OAAO0L,aAAc01B,EAAOghD,WAAY,CAAA,EAAOH,YAAaA,EACnFhC,SAAU,GAAO6B,EAAW7iF,EAAEonB,OAAeniB,KAAK,EAAI,EAC5Dk9B,GACGwqC,IAAA,SAAA,CAAQC,QAvBT,KACfgW,EAAY9gF,QAAQmD,MAAQ,GAC5B29E,EAAY9gF,QAAQghF,QACpBJ,EAAc,EAAE,CACpB,EAmBiDh2E,UAAU,4BAA4B,EAC/DigE,IAACyW,SAAiB,IAAA,CAAA,CACb,CAEX,CAER,CAEd,EC9DMC,aAA4C,CAAA,CAE1CpnE,OAAAA,EACAkmB,MAAAA,EACAmhC,aAAAA,EACA0c,WAAAA,EACAF,aAAAA,EACA9hC,OAAAA,EACAigC,WAAAA,EACAgC,YAAAA,EACAC,OAAAA,CACH,KAED,IAAMzZ,EAAiB53D,IAAY,GACxBy5C,EAAM3+C,IAAIwsC,GAAQ67B,aAAa77B,EAAM,SAAS,CAAC,EACvD,EAAE,EAEC,CAACpiC,EAAD,GAAoB/F,EAAS,QAAQiO,CAAQ,EAEnD,OACI0wD,IAACkT,SAAQ,CAACrT,SAAS,OACTuT,sBAAuB,CAAA,EACvBhsE,MAAOA,EACPouB,MAAOA,EACPmhC,aAAcA,EACd0c,WAAYA,EACZ/B,WAAYA,EACZiC,OAAQA,EACRD,YAAaA,EACbxZ,eAAgBA,EAChBzoB,OAAQA,EACR8hC,aAAcA,CAAY,EAChCnT,IAACoF,aAAY,CAAC/hD,MAAO,uBAAuB,EACxC28C,IAAC6U,sBAAqB,IAAA,CAAE,CAErB,CAEnB,ECrCM8B,aAA4C,CAAA,CAE1CrnE,OAAAA,EACAkmB,MAAAA,EACAmhC,aAAAA,EACA0c,WAAAA,EACAF,aAAAA,EACA9hC,OAAAA,EACAigC,WAAAA,EACAgC,YAAAA,EACAC,OAAAA,CACH,KAED,IAAMzZ,EAAiB53D,IAAY,GACxBy5C,EAAM3+C,IAAIwsC,GAAQ67B,aAAa77B,EAAM,MAAM,CAAC,EACpD,EAAE,EAEC,CAACpiC,GAAS/F,EAAS,SAAmB,OAAXiO,EAAkB,KAAOA,EAAQ,EAElE,OACI0wD,IAACkT,SAAQ,CAACrT,SAAS,OACTuT,sBAAuB,CAAA,EACvBhsE,MAAOA,EACPouB,MAAOA,EACPmhC,aAAcA,EACd0c,WAAYA,EACZ/B,WAAYA,EACZiC,OAAQA,EACRD,YAAaA,EACbxZ,eAAgBA,EAChBzoB,OAAQA,EACR8hC,aAAcA,CAAY,EAChCnT,IAACoF,aAAY,CAAC/hD,MAAO,6BAA6B,EAC9C28C,IAAC4U,6BAA4B,IAAA,CAAE,CAE5B,CAEnB,EClCMgC,iBAAoD,CAAA,CAElDtnE,OAAAA,EACAkmB,MAAAA,EACAmhC,aAAAA,EACA0c,WAAAA,EACAF,aAAAA,EACA9hC,OAAAA,EACAigC,WAAAA,EACAgC,YAAAA,EACAC,OAAAA,CACH,KAED,IAAMzZ,EAAiB53D,IAAY,GACxBy5C,EAAM3+C,IAAIwsC,GAAQ67B,aAAa77B,EAAM,aAAa,CAAC,EAC3D,EAAE,EAEL,KAAM,CAACpiC,EAAOi2B,GAAYh8B,EAAS,aAAaiO,CAAQ,EAKxD,OAJA9N,IAAU,KACN67B,EAAS,aAAa/tB,CAAQ,CAClC,EAAG,CAACA,EAAO,EAGP0wD,IAACkT,SAAQ,CAACrT,SAAS,YACTuT,sBAAuB,CAAA,EACvBhsE,MAAOA,EACPouB,MAAOA,EACPmhC,aAAcA,EACd0c,WAAYA,EACZ/B,WAAYA,EACZiC,OAAQA,EACRD,YAAaA,EACbxZ,eAAgBA,EAChBzoB,OAAQA,EACR8hC,aAAcA,CAAY,EAChCnT,IAACoF,aAAY,CAAC/hD,MAAO,2BAA2B,EAC5C28C,IAACuU,uBAAuB,CAAAC,oBAAqB,YAAa,EAG9DxU,IAACoF,aAAY,CAAC/hD,MAAO,kCAAkC,EACnD28C,IAAC2U,4BAA2B,IAAA,CAAE,CAE3B,CAEnB,ECjEakC,kBAAoB,CAACtiF,EAAKo3C,KACnCnqC,IACI,KACI,MAAMyqC,EAAW,IACR13C,EAAIY,SAAWiD,CAAAA,EAAM0+E,aAAY,EAAG/3D,SAASxqB,EAAIY,OAAO,GAI7Dw2C,EAAQvzC,CAAK,CACjB,EAKA,OAHAyB,SAAS/B,iBAAiB,YAAam0C,CAAQ,EAC/CpyC,SAAS/B,iBAAiB,aAAcm0C,CAAQ,EAEzC,KACHpyC,SAAS5B,oBAAoB,YAAag0C,CAAQ,EAClDpyC,SAAS5B,oBAAoB,aAAcg0C,CAAQ,CACvD,CACJ,EACA,CAAC13C,EAAKo3C,EAAQ,CAEtB,ECAMorC,cAAgBC,cAAc,aAAc,kCAAkC,EAE9ErgB,aAAoB,CACtBhsC,OAAOijB,EAA0CqpC,GAC7C,OAAIrpC,EAAQ,GAAGvY,OAAOG,MAAMzhC,OAAS,EAC1BgxB,QAAQC,QAAQ,CACnBogB,QAASwI,EAAQ5wC,IAAI,KAAO,CACxB4rB,KAAM,GACNyoB,OAAQ,EACRlb,QAAS,EACTpN,KAAM,EACNge,iBAAkB,CACrB,EAAC,CACL,CAAA,EAEEgwC,cAAcpsD,OAAOijB,EAASqpC,CAAc,CACtD,GAYQC,kBAAsD,CAAA,CAE3D1hD,MAAOs9C,EACPzwC,OAAQ80C,EACR7nE,OAAQ8nE,EACRvB,iBAAkBwB,EAClBC,OAAQC,EACRC,UAAWC,CACd,KACD,IAAMljF,EAAMwN,MACZ80E,kBAAkBtiF,EAAK,IAAMmjF,EAAW,CAAE,EAE1C,MAAMC,EAAiB,CAAC,KAAM,KAAM,MAE9B,CAACC,EAAgBC,GAAqBx2E,EAAS,CAAA,CAAI,EAOnDy2E,GANNt2E,IAAU,KACNvL,WAAW,KACP4hF,EAAkB,CAAA,CAAK,CAC1B,EAAE,GAAG,CACT,EAAE,EAAE,EAEsB,KACvB,IACI,OAAO5yD,KAAKE,MAAMsyD,CAAa,CAGlC,CAFC,MAAMhH,GACJ,MAAO,CAAA,CACV,CACL,GAEM,CAAC+G,EAAWO,GAAgB12E,EAAkBy2E,EAAkB,GAAM,CAAA,CAAK,EAK3E,CAACz1C,EAAQ21C,IAJfx2E,IAAU,KACNu2E,EAAaD,EAAkB,CAAE,CACrC,EAAG,CAACL,EAAc,EAEUp2E,EAA6B81E,CAAU,GAK7Dc,GAJNz2E,IAAU,KACNw2E,EAAUb,CAAU,CACxB,EAAG,CAACA,EAAW,EAES,KACpB,IACI,OAAOlyD,KAAKE,MAAMoyD,CAAU,CAG/B,CAFC,MAAM9G,GACJ,MAAO,CAAA,CACV,CACL,GAEM,CAAC6G,EAAQY,GAAa72E,EAAkB42E,EAAe,GAAM,CAAA,CAAK,EAKlE,CAACziD,EAAO8H,IAJd97B,IAAU,KACN02E,EAAUD,EAAe,CAAE,CAC/B,EAAG,CAACV,EAAW,EAEWl2E,EAASyxE,GAAa,EAAE,GAO5C,CAAC+C,EAAkBsC,IANzB32E,IAAU,KACNvL,WAAW,KACPqnC,EAASw1C,GAAa,EAAE,GACzB8E,EAAiB,IAAM,CAAC,CAC/B,EAAG,CAAC9E,EAAU,EAEkCzxE,EAAuBg2E,GAAwB,OAAO,GAKhG,CAAC/nE,EAAQ8oE,IAJf52E,IAAU,KACN22E,EAAoBd,GAAwB,OAAO,CACvD,EAAG,CAACA,EAAqB,EAEGh2E,EAAS+1E,GAAc,IAAI,GAoBjD,CAAClzD,EAAcm0D,IAnBrB72E,IAAU,KACN,IAAM82E,EAAgBlB,EAAaA,EAAWp9D,UAAU,EAAG,CAAC,EAAI,KAC1Du+D,EAAmBZ,EAAe54D,SAASu5D,CAAa,EAAIA,EAAgB,KAElFF,EAAUG,CAAe,EAED,OAApBA,GACAF,EAAgBG,cAAqB,EACrCC,EAAcz5D,EAAE,GACW,OAApBu5D,GACPF,EAAgBK,cAAqB,EACrCD,EAAc55D,EAAE,IAEhBw5D,EAAgBK,cAAqB,EACrCD,EAAc7/D,IAAI,EAG1B,EAAG,CAACw+D,EAAW,EAEyB/1E,EAASq3E,cAAc,GACzD,CAACpH,EAAYmH,GAAiBp3E,EAASuX,IAAI,EAC3C,CAAC06D,EAAaqF,GAAkBt3E,EAAS,CAAA,CAAI,EAC7C,CAACunB,EAAMgwD,GAAWv3E,EAAyC,CAC7Dw3E,MAAS,EACTC,KAAQ,EACRC,KAAQ,EACRC,UAAa,CAChB,CAAA,EAeD,MAAMC,EAAa,CAACpZ,EAAwBqZ,IAAkBN,EAAQhgF,GAC/D8F,OAAAkF,OAAAlF,OAAAkF,OAAA,GAAAhL,CAAK,EACR,EAACinE,GAAWqZ,CAAK,CACnB,CAAA,EAMIxB,EAAc,KAChB,IAMMt/E,EANDk/E,IAILY,EAAU,CAAA,CAAK,EAET9/E,EAAQ,IAAI+gF,MAAM,2BAA2B,EACnDt/E,SAASsK,cAAc/L,CAAK,EAChC,EAEA,IAKMghF,EAAqD,CACvDrZ,gBAAiB,KApBjB4Y,EAAe,CAACrF,CAAW,CAuB1B,EACDA,YAAaA,EACbxT,WAAY,CAAA,GAGhB,OACIE,IAACv+C,aAAa,CAAAG,WAAYsC,CAAY,EAClC87C,IAAA,QAAA,KAAQqZ,QAAM,EACdrZ,IAAA,MAAA,CAAKjgE,UAAW,uBAAsBu3E,EAAS,6BAA+B,GAAI,EAC9EtX,IAAK,MAAA,CAAAzrE,IAAKA,EAAKwL,yBAA2B63E,EAA0C,GAAzB,2BAA+BJ,EAAY,aAAe,GAAI,EACrHxX,IAAC2V,aAAY,CAACC,YAAa0B,EACbjmC,OAAQzoB,EACR4M,MAAOA,EACPugD,cAvDV,KACZ,CAACvgD,GAASA,EAAMzhC,OAAS,KACzBklF,EAAW,QAAS,CAAC,EACrBA,EAAW,OAAQ,CAAC,EACpBA,EAAW,OAAQ,CAAC,EACpBA,EAAW,YAAa,CAAC,GAE7B37C,EAAS9H,GAAS,EAAE,EAEdp9B,EAAQ,IAAI2L,YAAY,kCAAmC,CAACC,OAAQ,CAACwxB,MAAAA,CAAM,CAAA,CAAC,EAClF37B,SAASsK,cAAc/L,CAAK,CAChC,EA6C8B49E,QAAS0B,EACT7B,iBAAkBA,EAClBC,iBAAkBqC,EAAsB,EACtDnY,IAAC8U,cAAc,CAAAt/C,MAAOA,EACPmhC,aAAcA,aACd2a,WAAYA,EACZ6B,aAAc,GAAY8F,EAAW,QAAS5nC,CAAM,EACpDgiC,WAAiC,UAArBwC,EACZxkC,OAAQzoB,EAAY,MACpB0qD,YAAaA,EACbC,OAAQ6F,EACRvF,eAlCX,IACVz7E,EAAQ,IAAI2L,YAAY,mCAAoC,CAACC,OAAQ,CAACq+B,OAAAA,CAAO,CAAA,CAAC,EACpFxoC,SAASsK,cAAc/L,CAAK,CAChC,EAgC+BiqC,OAAQA,CAAM,CAAG,EAChC29B,IAAC0W,aAAa,CAAApnE,OAAQA,EACRkmB,MAAOA,EACPmhC,aAAcA,aACd2a,WAAYA,EACZ6B,aAAc,GAAY8F,EAAW,OAAQ5nC,CAAM,EACnDgiC,WAAiC,SAArBwC,EACZxkC,OAAQzoB,EAAW,KACnB0qD,YAAaA,EACbC,OAAQ6F,CAAY,CAAG,EAErCpZ,IAAC2W,aAAa,CAAArnE,OAAQA,EACRkmB,MAAOA,EACPmhC,aAAcA,aACd2a,WAAYA,EACZ6B,aAAc,GAAY8F,EAAW,OAAQ5nC,CAAM,EACnDgiC,WAAiC,SAArBwC,EACZxkC,OAAQzoB,EAAW,KACnB0qD,YAAaA,EACbC,OAAQ6F,CAAY,CAAG,EAErCpZ,IAAC4W,iBAAiB,CAAAtnE,OAAQA,EACRkmB,MAAOA,EACPmhC,aAAcA,aACd2a,WAAYA,EACZ6B,aAAc,GAAY8F,EAAW,YAAa5nC,CAAM,EACxDgiC,WAAiC,cAArBwC,EACZxkC,OAAQzoB,EAAgB,UACxB0qD,YAAaA,EACbC,OAAQ6F,CAAY,CAAA,CAAG,CACvC,CAEC,CAEvB,EAEAE,oBAAkBpC,kBAAmB,qBAAsB,CAAC,QAAS,UAAW,SAAU,oBAAqB,SAAU,cAAe,CAAChyE,OAAQ,CAAA,CAAI,CAAC"}