{"version":3,"file":"annotorious.umd.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/tiny-emitter/index.js","../src/util/SVG.js","../src/selectors/RectFragment.js","../src/util/Geom2D.js","../src/selectors/EmbeddedSVG.js","../src/selectors/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/clsx/dist/clsx.m.js","../node_modules/react-draggable/build/cjs/utils/shims.js","../node_modules/react-draggable/build/cjs/utils/getPrefix.js","../node_modules/react-draggable/build/cjs/utils/domFns.js","../node_modules/react-draggable/build/cjs/utils/positionFns.js","../node_modules/react-draggable/build/cjs/utils/log.js","../node_modules/react-draggable/build/cjs/DraggableCore.js","../node_modules/react-draggable/build/cjs/Draggable.js","../node_modules/react-draggable/build/cjs/cjs.js","../node_modules/timeago.js/esm/lang/en_US.js","../node_modules/timeago.js/esm/lang/zh_CN.js","../node_modules/timeago.js/esm/register.js","../node_modules/timeago.js/esm/utils/date.js","../node_modules/timeago.js/esm/format.js","../node_modules/timeago.js/esm/utils/dom.js","../node_modules/timeago.js/esm/realtime.js","../node_modules/timeago.js/esm/index.js","../node_modules/timeago-react/esm/timeago-react.js","../node_modules/@recogito/recogito-client-core/src/editor/useClickOutside.js","../node_modules/object-keys/isArguments.js","../node_modules/object-keys/implementation.js","../node_modules/object-keys/index.js","../node_modules/define-properties/index.js","../node_modules/function-bind/implementation.js","../node_modules/function-bind/index.js","../node_modules/has-symbols/shams.js","../node_modules/has-symbols/index.js","../node_modules/has/src/index.js","../node_modules/get-intrinsic/index.js","../node_modules/call-bind/index.js","../node_modules/call-bind/callBound.js","../node_modules/es-abstract/5/CheckObjectCoercible.js","../node_modules/es-abstract/2021/RequireObjectCoercible.js","../node_modules/es-abstract/2021/IsArray.js","../node_modules/es-abstract/2021/Call.js","../__vite-browser-external","../node_modules/object-inspect/index.js","../node_modules/es-abstract/2021/IsPropertyKey.js","../node_modules/es-abstract/5/Type.js","../node_modules/es-abstract/2021/Type.js","../node_modules/es-abstract/2021/Get.js","../node_modules/es-abstract/2021/HasProperty.js","../node_modules/is-callable/index.js","../node_modules/es-abstract/2021/IsCallable.js","../node_modules/es-abstract/helpers/maxSafeInteger.js","../node_modules/es-abstract/5/abs.js","../node_modules/es-abstract/5/floor.js","../node_modules/es-to-primitive/helpers/isPrimitive.js","../node_modules/es-to-primitive/es5.js","../node_modules/es-abstract/5/ToPrimitive.js","../node_modules/es-abstract/5/ToNumber.js","../node_modules/es-abstract/helpers/isNaN.js","../node_modules/es-abstract/helpers/isFinite.js","../node_modules/es-abstract/helpers/sign.js","../node_modules/es-abstract/5/ToInteger.js","../node_modules/es-abstract/helpers/regexTester.js","../node_modules/es-abstract/helpers/isPrimitive.js","../node_modules/has-tostringtag/shams.js","../node_modules/is-date-object/index.js","../node_modules/is-symbol/index.js","../node_modules/es-to-primitive/es2015.js","../node_modules/es-abstract/2021/ToPrimitive.js","../node_modules/es-abstract/2021/ToNumber.js","../node_modules/es-abstract/2021/ToIntegerOrInfinity.js","../node_modules/es-abstract/2021/ToLength.js","../node_modules/es-abstract/2021/LengthOfArrayLike.js","../node_modules/es-abstract/2021/ToObject.js","../node_modules/es-abstract/2021/ToString.js","../node_modules/is-string/index.js","../node_modules/array.prototype.foreach/implementation.js","../node_modules/es-array-method-boxes-properly/index.js","../node_modules/array.prototype.foreach/polyfill.js","../node_modules/array.prototype.foreach/shim.js","../node_modules/array.prototype.foreach/index.js","../node_modules/object.entries/implementation.js","../node_modules/object.entries/polyfill.js","../node_modules/object.entries/shim.js","../node_modules/object.entries/index.js","../node_modules/string.prototype.trim/implementation.js","../node_modules/string.prototype.trim/polyfill.js","../node_modules/string.prototype.trim/shim.js","../node_modules/string.prototype.trim/index.js","../node_modules/node-polyglot/index.js","../node_modules/timeago.js/lib/lang/ar.js","../node_modules/timeago.js/lib/lang/cs.js","../node_modules/timeago.js/lib/lang/de.js","../node_modules/timeago.js/lib/lang/el.js","../node_modules/timeago.js/lib/lang/es.js","../node_modules/timeago.js/lib/lang/fi.js","../node_modules/timeago.js/lib/lang/fr.js","../node_modules/timeago.js/lib/lang/gl.js","../node_modules/timeago.js/lib/lang/hi_IN.js","../node_modules/timeago.js/lib/lang/it.js","../node_modules/timeago.js/lib/lang/ja.js","../node_modules/timeago.js/lib/lang/ko.js","../node_modules/timeago.js/lib/lang/nl.js","../node_modules/timeago.js/lib/lang/pt_BR.js","../node_modules/timeago.js/lib/lang/ru.js","../node_modules/timeago.js/lib/lang/sv.js","../node_modules/timeago.js/lib/lang/th.js","../node_modules/timeago.js/lib/lang/tr.js","../node_modules/timeago.js/lib/lang/zh_CN.js","../node_modules/timeago.js/lib/lang/zh_TW.js","../node_modules/@recogito/recogito-client-core/src/i18n/index.jsx","../node_modules/@recogito/recogito-client-core/src/editor/widgets/comment/DropdownMenu.jsx","../node_modules/autosize/dist/autosize.js","../node_modules/computed-style/dist/computedStyle.commonjs.js","../node_modules/line-height/lib/line-height.js","../node_modules/react-autosize-textarea/lib/TextareaAutosize.js","../node_modules/react-autosize-textarea/lib/index.js","../node_modules/@recogito/recogito-client-core/src/editor/widgets/comment/TextEntryField.jsx","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js","../node_modules/stylis/src/Enum.js","../node_modules/stylis/src/Utility.js","../node_modules/stylis/src/Tokenizer.js","../node_modules/stylis/src/Parser.js","../node_modules/stylis/src/Serializer.js","../node_modules/stylis/src/Middleware.js","../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../node_modules/@emotion/hash/dist/emotion-hash.esm.js","../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","../node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","../node_modules/@emotion/react/dist/emotion-element-c39617d8.browser.esm.js","../node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.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-input-autosize/lib/AutosizeInput.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/react-select/dist/index-4bd03571.esm.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/memoize-one/dist/memoize-one.esm.js","../node_modules/react-select/dist/Select-dbb12e54.esm.js","../node_modules/react-select/dist/stateManager-845a3300.esm.js","../node_modules/react-select/dist/react-select.esm.js","../node_modules/@recogito/recogito-client-core/src/editor/widgets/comment/PurposeSelect.jsx","../node_modules/@recogito/recogito-client-core/src/Icons.jsx","../node_modules/@recogito/recogito-client-core/src/editor/widgets/comment/Comment.jsx","../node_modules/@recogito/recogito-client-core/src/editor/widgets/comment/CommentWidget.jsx","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/dom-helpers/esm/hasClass.js","../node_modules/dom-helpers/esm/addClass.js","../node_modules/dom-helpers/esm/removeClass.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/react-transition-group/esm/CSSTransition.js","../node_modules/@recogito/recogito-client-core/src/editor/widgets/Autocomplete.jsx","../node_modules/@recogito/recogito-client-core/src/editor/widgets/tag/TagWidget.jsx","../node_modules/@recogito/recogito-client-core/src/editor/widgets/WrappedWidget.jsx","../node_modules/@recogito/recogito-client-core/src/editor/widgets/index.jsx","../node_modules/@recogito/recogito-client-core/src/editor/setPosition.js","../node_modules/@recogito/recogito-client-core/src/editor/Editor.jsx","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/regex.js","../node_modules/uuid/dist/esm-browser/validate.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/v4.js","../node_modules/fast-deep-equal/index.js","../node_modules/@recogito/recogito-client-core/src/WebAnnotation.js","../node_modules/@recogito/recogito-client-core/src/Selection.js","../node_modules/@recogito/recogito-client-core/src/Environment.js","../node_modules/@recogito/recogito-client-core/src/utils/index.js","../src/tools/rectangle/RubberbandRect.js","../src/util/Touch.js","../src/tools/Tool.js","../src/tools/EditableShape.js","../src/util/Formatting.js","../src/tools/rectangle/EditableRect.js","../src/tools/rectangle/RubberbandRectTool.js","../src/tools/polygon/PolygonMask.js","../src/tools/polygon/RubberbandPolygon.js","../src/tools/polygon/EditablePolygon.js","../src/tools/polygon/RubberbandPolygonTool.js","../src/tools/ToolsRegistry.js","../src/Crosshair.js","../src/util/ImageSnippet.js","../src/AnnotationLayer.js","../node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js","../src/ImageAnnotator.jsx","../src/index.jsx"],"sourcesContent":["var n,l,u,i,t,r,o,f,e={},c=[],s=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function a(n,l){for(var u in l)n[u]=l[u];return n}function h(n){var l=n.parentNode;l&&l.removeChild(n)}function v(l,u,i){var t,r,o,f={};for(o in u)\"key\"==o?t=u[o]:\"ref\"==o?r=u[o]:f[o]=u[o];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),\"function\"==typeof l&&null!=l.defaultProps)for(o in l.defaultProps)void 0===f[o]&&(f[o]=l.defaultProps[o]);return y(l,f,t,r,null)}function y(n,i,t,r,o){var f={type:n,props:i,key:t,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==o?++u:o};return null==o&&null!=l.vnode&&l.vnode(f),f}function p(){return{current:null}}function d(n){return n.children}function _(n,l){this.props=n,this.context=l}function k(n,l){if(null==l)return n.__?k(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l0?y(_.type,_.props,_.key,null,_.__v):_)){if(_.__=u,_.__b=u.__b+1,null===(p=w[h])||p&&_.key==p.key&&_.type===p.type)w[h]=void 0;else for(v=0;v2&&(f.children=arguments.length>3?n.call(arguments,2):i),y(l.type,f,t||l.key,r||l.ref,null)}function D(n,l){var u={__c:l=\"__cC\"+f++,__: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(m)},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=c.slice,l={__e:function(n,l){for(var u,i,t;l=l.__;)if((u=l.__c)&&!u.__)try{if((i=u.constructor)&&null!=i.getDerivedStateFromError&&(u.setState(i.getDerivedStateFromError(n)),t=u.__d),null!=u.componentDidCatch&&(u.componentDidCatch(n),t=u.__d),t)return u.__E=u}catch(l){n=l}throw n}},u=0,i=function(n){return null!=n&&void 0===n.constructor},_.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=a({},this.state),\"function\"==typeof n&&(n=n(a({},u),this.props)),n&&a(u,n),null!=n&&this.__v&&(l&&this.__h.push(l),m(this))},_.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),m(this))},_.prototype.render=d,t=[],r=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,g.__r=0,f=0;export{S as render,q as hydrate,v as createElement,v as h,d as Fragment,p as createRef,i as isValidElement,_ as Component,B as cloneElement,D as createContext,A as toChildArray,l as options};\n//# sourceMappingURL=preact.module.js.map\n","import{options as n}from\"preact\";var t,u,r,o=0,i=[],c=n.__b,f=n.__r,e=n.diffed,a=n.__c,v=n.unmount;function m(t,r){n.__h&&n.__h(u,t,o||r),o=0;var i=u.__H||(u.__H={__:[],__h:[]});return t>=i.__.length&&i.__.push({}),i.__[t]}function l(n){return o=1,p(w,n)}function p(n,r,o){var i=m(t++,2);return i.t=n,i.__c||(i.__=[o?o(r):w(void 0,r),function(n){var t=i.t(i.__[0],n);i.__[0]!==t&&(i.__=[t,i.__[1]],i.__c.setState({}))}],i.__c=u),i.__}function y(r,o){var i=m(t++,3);!n.__s&&k(i.__H,o)&&(i.__=r,i.__H=o,u.__H.__h.push(i))}function h(r,o){var i=m(t++,4);!n.__s&&k(i.__H,o)&&(i.__=r,i.__H=o,u.__h.push(i))}function s(n){return o=5,d(function(){return{current:n}},[])}function _(n,t,u){o=6,h(function(){\"function\"==typeof n?n(t()):n&&(n.current=t())},null==u?u:u.concat(n))}function d(n,u){var r=m(t++,7);return k(r.__H,u)&&(r.__=n(),r.__H=u,r.__h=n),r.__}function A(n,t){return o=8,d(function(){return n},t)}function F(n){var r=u.context[n.__c],o=m(t++,9);return o.c=n,r?(null==o.__&&(o.__=!0,r.sub(u)),r.props.value):n.__}function T(t,u){n.useDebugValue&&n.useDebugValue(u?u(t):t)}function q(n){var r=m(t++,10),o=l();return r.__=n,u.componentDidCatch||(u.componentDidCatch=function(n){r.__&&r.__(n),o[1](n)}),[o[0],function(){o[1](void 0)}]}function x(){var t;for(i.sort(function(n,t){return n.__v.__b-t.__v.__b});t=i.pop();)if(t.__P)try{t.__H.__h.forEach(g),t.__H.__h.forEach(j),t.__H.__h=[]}catch(u){t.__H.__h=[],n.__e(u,t.__v)}}n.__b=function(n){u=null,c&&c(n)},n.__r=function(n){f&&f(n),t=0;var r=(u=n.__c).__H;r&&(r.__h.forEach(g),r.__h.forEach(j),r.__h=[])},n.diffed=function(t){e&&e(t);var o=t.__c;o&&o.__H&&o.__H.__h.length&&(1!==i.push(o)&&r===n.requestAnimationFrame||((r=n.requestAnimationFrame)||function(n){var t,u=function(){clearTimeout(r),b&&cancelAnimationFrame(t),setTimeout(n)},r=setTimeout(u,100);b&&(t=requestAnimationFrame(u))})(x)),u=null},n.__c=function(t,u){u.some(function(t){try{t.__h.forEach(g),t.__h=t.__h.filter(function(n){return!n.__||j(n)})}catch(r){u.some(function(n){n.__h&&(n.__h=[])}),u=[],n.__e(r,t.__v)}}),a&&a(t,u)},n.unmount=function(t){v&&v(t);var u,r=t.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{g(n)}catch(n){u=n}}),u&&n.__e(u,r.__v))};var b=\"function\"==typeof requestAnimationFrame;function g(n){var t=u,r=n.__c;\"function\"==typeof r&&(n.__c=void 0,r()),u=t}function j(n){var t=u;n.__c=n.__(),u=t}function k(n,t){return!n||n.length!==t.length||t.some(function(t,u){return t!==n[u]})}function w(n,t){return\"function\"==typeof t?t(n):t}export{l as useState,p as useReducer,y as useEffect,h as useLayoutEffect,s as useRef,_ as useImperativeHandle,d as useMemo,A as useCallback,F as useContext,T as useDebugValue,q as useErrorBoundary};\n//# sourceMappingURL=hooks.module.js.map\n","import{useState as n,useReducer as t,useEffect as e,useLayoutEffect as r,useRef as u,useImperativeHandle as o,useMemo as i,useCallback as l,useContext as c,useDebugValue as f}from\"preact/hooks\";export*from\"preact/hooks\";import{Component as a,createElement as s,options as h,toChildArray as d,Fragment as v,render as p,hydrate as m,cloneElement as y,createRef as b,createContext as _}from\"preact\";export{createElement,createContext,createRef,Fragment,Component}from\"preact\";function S(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 g(n,t){function e(n){var e=this.props.ref,r=e==n.ref;return!r&&e&&(e.call?e(null):e.current=null),t?!t(this.props,n)||!r:C(this.props,n)}function r(t){return this.shouldComponentUpdate=e,s(n,t)}return r.displayName=\"Memo(\"+(n.displayName||n.name)+\")\",r.prototype.isReactComponent=!0,r.__f=!0,r}(E.prototype=new a).isPureReactComponent=!0,E.prototype.shouldComponentUpdate=function(n,t){return C(this.props,n)||C(this.state,t)};var w=h.__b;h.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),w&&w(n)};var R=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.forward_ref\")||3911;function x(n){function t(t,e){var r=S({},t);return delete r.ref,n(r,(e=t.ref||e)&&(\"object\"!=typeof e||\"current\"in e)?e:null)}return t.$$typeof=R,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName=\"ForwardRef(\"+(n.displayName||n.name)+\")\",t}var N=function(n,t){return null==n?null:d(d(n).map(t))},k={map:N,forEach:N,count:function(n){return n?d(n).length:0},only:function(n){var t=d(n);if(1!==t.length)throw\"Children.only\";return t[0]},toArray:d},A=h.__e;h.__e=function(n,t,e){if(n.then)for(var r,u=t;u=u.__;)if((r=u.__c)&&r.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),r.__c(n,t);A(n,t,e)};var O=h.unmount;function L(){this.__u=0,this.t=null,this.__b=null}function U(n){var t=n.__.__c;return t&&t.__e&&t.__e(n)}function F(n){var t,e,r;function u(u){if(t||(t=n()).then(function(n){e=n.default||n},function(n){r=n}),r)throw r;if(!e)throw t;return s(e,u)}return u.displayName=\"Lazy\",u.__f=!0,u}function M(){this.u=null,this.o=null}h.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&!0===n.__h&&(n.type=null),O&&O(n)},(L.prototype=new a).__c=function(n,t){var e=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(e);var u=U(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.__e){var n=r.state.__e;r.__v.__k[0]=function n(t,e,r){return t&&(t.__v=null,t.__k=t.__k&&t.__k.map(function(t){return n(t,e,r)}),t.__c&&t.__c.__P===e&&(t.__e&&r.insertBefore(t.__e,t.__d),t.__c.__e=!0,t.__c.__P=r)),t}(n,n.__c.__P,n.__c.__O)}var t;for(r.setState({__e:r.__b=null});t=r.t.pop();)t.forceUpdate()}},c=!0===t.__h;r.__u++||c||r.setState({__e:r.__b=r.__v.__k[0]}),n.then(i,i)},L.prototype.componentWillUnmount=function(){this.t=[]},L.prototype.render=function(n,t){if(this.__b){if(this.__v.__k){var e=document.createElement(\"div\"),r=this.__v.__k[0].__c;this.__v.__k[0]=function n(t,e,r){return t&&(t.__c&&t.__c.__H&&(t.__c.__H.__.forEach(function(n){\"function\"==typeof n.__c&&n.__c()}),t.__c.__H=null),null!=(t=S({},t)).__c&&(t.__c.__P===r&&(t.__c.__P=e),t.__c=null),t.__k=t.__k&&t.__k.map(function(t){return n(t,e,r)})),t}(this.__b,e,r.__O=r.__P)}this.__b=null}var u=t.__e&&s(v,null,n.fallback);return u&&(u.__h=null),[s(v,null,t.__e?null:n.children),u]};var T=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),t.i.removeChild(n)}}),p(s(D,{context:t.context},n.__v),t.l)):t.l&&t.componentWillUnmount()}function W(n,t){return s(I,{__v:n,i:t})}(M.prototype=new a).__e=function(n){var t=this,e=U(t.__v),r=t.o.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),T(t,n,r)):u()};e?e(o):o()}},M.prototype.render=function(n){this.u=null,this.o=new Map;var t=d(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){T(n,e,t)})};var j=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103,P=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,V=\"undefined\"!=typeof document,z=function(n){return(\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol()?/fil|che|rad/i:/fil|che|ra/i).test(n)};function B(n,t,e){return null==t.__k&&(t.textContent=\"\"),p(n,t),\"function\"==typeof e&&e(),n?n.__c:null}function $(n,t,e){return m(n,t),\"function\"==typeof e&&e(),n?n.__c:null}a.prototype.isReactComponent={},[\"componentWillMount\",\"componentWillReceiveProps\",\"componentWillUpdate\"].forEach(function(n){Object.defineProperty(a.prototype,n,{configurable:!0,get:function(){return this[\"UNSAFE_\"+n]},set:function(t){Object.defineProperty(this,n,{configurable:!0,writable:!0,value:t})}})});var H=h.event;function Z(){}function Y(){return this.cancelBubble}function q(){return this.defaultPrevented}h.event=function(n){return H&&(n=H(n)),n.persist=Z,n.isPropagationStopped=Y,n.isDefaultPrevented=q,n.nativeEvent=n};var G,J={configurable:!0,get:function(){return this.class}},K=h.vnode;h.vnode=function(n){var t=n.type,e=n.props,r=e;if(\"string\"==typeof t){var u=-1===t.indexOf(\"-\");for(var o in r={},e){var i=e[o];V&&\"children\"===o&&\"noscript\"===t||\"value\"===o&&\"defaultValue\"in e&&null==i||(\"defaultValue\"===o&&\"value\"in e&&null==e.value?o=\"value\":\"download\"===o&&!0===i?i=\"\":/ondoubleclick/i.test(o)?o=\"ondblclick\":/^onchange(textarea|input)/i.test(o+t)&&!z(e.type)?o=\"oninput\":/^onfocus$/i.test(o)?o=\"onfocusin\":/^onblur$/i.test(o)?o=\"onfocusout\":/^on(Ani|Tra|Tou|BeforeInp)/.test(o)?o=o.toLowerCase():u&&P.test(o)?o=o.replace(/[A-Z0-9]/,\"-$&\").toLowerCase():null===i&&(i=void 0),r[o]=i)}\"select\"==t&&r.multiple&&Array.isArray(r.value)&&(r.value=d(e.children).forEach(function(n){n.props.selected=-1!=r.value.indexOf(n.props.value)})),\"select\"==t&&null!=r.defaultValue&&(r.value=d(e.children).forEach(function(n){n.props.selected=r.multiple?-1!=r.defaultValue.indexOf(n.props.value):r.defaultValue==n.props.value})),n.props=r,e.class!=e.className&&(J.enumerable=\"className\"in e,null!=e.className&&(r.class=e.className),Object.defineProperty(r,\"className\",J))}n.$$typeof=j,K&&K(n)};var Q=h.__r;h.__r=function(n){Q&&Q(n),G=n.__c};var X={ReactCurrentDispatcher:{current:{readContext:function(n){return G.__n[n.__c].props.value}}}},nn=\"17.0.2\";function tn(n){return s.bind(null,n)}function en(n){return!!n&&n.$$typeof===j}function rn(n){return en(n)?y.apply(null,arguments):n}function un(n){return!!n.__k&&(p(null,n),!0)}function on(n){return n&&(n.base||1===n.nodeType&&n)||null}var ln=function(n,t){return n(t)},cn=function(n,t){return n(t)},fn=v;export default{useState:n,useReducer:t,useEffect:e,useLayoutEffect:r,useRef:u,useImperativeHandle:o,useMemo:i,useCallback:l,useContext:c,useDebugValue:f,version:\"17.0.2\",Children:k,render:B,hydrate:$,unmountComponentAtNode:un,createPortal:W,createElement:s,createContext:_,createFactory:tn,cloneElement:rn,createRef:b,Fragment:v,isValidElement:en,findDOMNode:on,Component:a,PureComponent:E,memo:g,forwardRef:x,flushSync:cn,unstable_batchedUpdates:ln,StrictMode:v,Suspense:L,SuspenseList:M,lazy:F,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:X};export{nn as version,k as Children,B as render,$ as hydrate,un as unmountComponentAtNode,W as createPortal,tn as createFactory,rn as cloneElement,en as isValidElement,on as findDOMNode,E as PureComponent,g as memo,x as forwardRef,cn as flushSync,ln as unstable_batchedUpdates,fn as StrictMode,L as Suspense,M as SuspenseList,F as lazy,X as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED};\n//# sourceMappingURL=compat.module.js.map\n","function E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n","export const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n\nconst getClassNames = el => {\n const attr = el.getAttribute('class');\n return attr ? new Set(attr.split(' ')) : new Set();\n}\n\n// IE11 doesn't support adding/removing classes to SVG elements except \n// via .setAttribute\nexport const addClass = (el, className) => {\n const classNames = getClassNames(el);\n classNames.add(className);\n el.setAttribute('class', Array.from(classNames).join(' '));\n}\n\nexport const removeClass = (el, className) => {\n const classNames = getClassNames(el);\n classNames.delete(className);\n\n if (classNames.size === 0)\n el.removeAttribute('class');\n else\n el.setAttribute('class', Array.from(classNames).join(' '));\n}\n\nexport const hasClass = (el, className) =>\n getClassNames(el).has(className);","import { SVG_NAMESPACE, addClass } from '../util/SVG';\n\n/** \n * Parses a W3C Web Annotation FragmentSelector conforming\n * to the Media Fragments spec. Supports (well-formed) xywh=pixel\n * and xywh=percent fragments. \n */\nexport const parseRectFragment = (annotation, image) => {\n const selector = annotation.selector('FragmentSelector');\n\n if (selector?.conformsTo.startsWith('http://www.w3.org/TR/media-frags')) {\n const { value } = selector;\n \n const format = value.includes(':') ? value.substring(value.indexOf('=') + 1, value.indexOf(':')) : 'pixel';\n const coords = value.includes(':') ? value.substring(value.indexOf(':') + 1) : value.substring(value.indexOf('=') + 1);\n\n let [ x, y, w, h ] = coords.split(',').map(parseFloat);\n\n if (format.toLowerCase() === 'percent') {\n x = x * image.naturalWidth / 100;\n y = y * image.naturalHeight / 100;\n w = w * image.naturalWidth / 100;\n h = h * image.naturalHeight / 100;\n }\n\n return { x, y, w, h };\n }\n}\n\n/** \n * Serializes a (x, y, w, h)-tuple as Media Fragment selector\n * using pixel coordinates.\n */\nconst toPixelRectFragment = (x, y, w, h, image) => ({\n source: image?.src,\n selector: {\n type: \"FragmentSelector\",\n conformsTo: \"http://www.w3.org/TR/media-frags/\",\n value: `xywh=pixel:${x},${y},${w},${h}`\n }\n});\n\n/** \n * Serializes a (x, y, w, h)-tuple as Media Fragment selector \n * using percent coordinates.\n */\nconst toPercentRectFragment = (x, y, w, h, image) => {\n const px = x / image.naturalWidth * 100;\n const py = y / image.naturalHeight * 100;\n const pw = w / image.naturalWidth * 100;\n const ph = h / image.naturalHeight * 100;\n\n return {\n source: image.src,\n selector: {\n type: \"FragmentSelector\",\n conformsTo: \"http://www.w3.org/TR/media-frags/\",\n value: `xywh=percent:${px},${py},${pw},${ph}`\n }\n }\n}\n\nexport const toRectFragment = (x, y, w, h, image, fragmentUnit) =>\n fragmentUnit?.toLowerCase() === 'percent' ?\n toPercentRectFragment(x, y, w, h, image) :\n toPixelRectFragment(x, y, w, h, image);\n\n/** Shorthand to apply the given (x, y, w, h) to the SVG shape **/\nconst setXYWH = (shape, x, y, w, h) => {\n shape.setAttribute('x', x);\n shape.setAttribute('y', y);\n shape.setAttribute('width', w);\n shape.setAttribute('height', h);\n}\n\n\nconst setPointXY = (shape, x, y) => {\n shape.setAttribute('cx', x);\n shape.setAttribute('cy', y);\n shape.setAttribute('r', 7); // TODO make configurable\n}\n\nexport const drawRectMask = (imageDimensions, x, y, w, h) => {\n const mask = document.createElementNS(SVG_NAMESPACE, 'path');\n mask.setAttribute('fill-rule', 'evenodd');\n\n const { naturalWidth, naturalHeight } = imageDimensions;\n mask.setAttribute('d', `M0 0 h${naturalWidth} v${naturalHeight} h-${naturalWidth} z M${x} ${y} h${w} v${h} h-${w} z`);\n\n return mask;\n}\n\nexport const setRectMaskSize = (mask, imageDimensions, x, y, w, h) => {\n const { naturalWidth, naturalHeight } = imageDimensions;\n mask.setAttribute('d', `M0 0 h${naturalWidth} v${naturalHeight} h-${naturalWidth} z M${x} ${y} h${w} v${h} h-${w} z`);\n}\n\n/** \n * Draws an SVG rectangle, either from an annotation, or an\n * (x, y, w, h)-tuple.\n */\nexport const drawRect = (arg1, arg2, arg3, arg4) => {\n const { x, y, w, h } = arg1.type === 'Annotation' || arg1.type === 'Selection' ?\n parseRectFragment(arg1, arg2) : { x: arg1, y: arg2, w: arg3, h: arg4 };\n\n const g = document.createElementNS(SVG_NAMESPACE, 'g');\n\n if (w === 0 && h === 0) {\n // Edge case: rect is actually a point\n addClass(g, 'a9s-point');\n addClass(g, 'a9s-non-scaling');\n g.setAttribute('transform-origin', `${x} ${y}`);\n\n const outerPoint = document.createElementNS(SVG_NAMESPACE, 'circle');\n const innerPoint = document.createElementNS(SVG_NAMESPACE, 'circle');\n\n innerPoint.setAttribute('class', 'a9s-inner');\n setPointXY(innerPoint, x, y);\n\n outerPoint.setAttribute('class', 'a9s-outer');\n setPointXY(outerPoint, x, y);\n\n g.appendChild(outerPoint);\n g.appendChild(innerPoint); \n } else {\n const outerRect = document.createElementNS(SVG_NAMESPACE, 'rect');\n const innerRect = document.createElementNS(SVG_NAMESPACE, 'rect');\n\n innerRect.setAttribute('class', 'a9s-inner');\n setXYWH(innerRect, x, y, w, h);\n\n outerRect.setAttribute('class', 'a9s-outer');\n setXYWH(outerRect, x, y, w, h);\n\n g.appendChild(outerRect);\n g.appendChild(innerRect);\n }\n\n return g;\n}\n\n/** Gets the (x, y, w, h)-values from the attributes of the SVG group **/\nexport const getRectSize = g => {\n const outer = g.querySelector('.a9s-outer');\n\n if (outer.nodeName === 'rect') {\n const x = parseFloat(outer.getAttribute('x'));\n const y = parseFloat(outer.getAttribute('y'));\n const w = parseFloat(outer.getAttribute('width'));\n const h = parseFloat(outer.getAttribute('height'));\n\n return { x, y, w, h };\n } else {\n const x = parseFloat(outer.getAttribute('cx'));\n const y = parseFloat(outer.getAttribute('cy'));\n\n return { x, y, w: 0, h: 0 };\n }\n}\n\n/** Applies the (x, y, w, h)-values to the rects in the SVG group **/\nexport const setRectSize = (g, x, y, w, h) => {\n const inner = g.querySelector('.a9s-inner');\n const outer = g.querySelector('.a9s-outer');\n\n if (outer.nodeName === 'rect') {\n setXYWH(inner, x, y, w, h);\n setXYWH(outer, x, y, w, h); \n } else {\n setPointXY(inner, x, y);\n setPointXY(outer, x, y);\n }\n}\n\n/** \n * Shorthand to get the area (rectangle w x h) from the \n * annotation's fragment selector. \n */\nexport const rectArea = (annotation, image) => {\n const { w, h } = parseRectFragment(annotation, image);\n return w * h;\n}\n\n","/**\n * Computes the area of the polygon defined by\n * the given conrner points.\n * @param {Array} points \n * @returns {number} the area\n */\nexport const polygonArea = points => {\n let area = 0;\n let j = points.length - 1;\n\n for (let i=0; i < points.length; i++) {\n area += (points[j][0] + points[i][0]) * (points[j][1] - points[i][1]);\n j = i;\n }\n\n return Math.abs(0.5 * area);\n}\n\n/**\n * Hit test: checks if this point is inside the circle.\n * @param {Array} point the point [x, y]\n * @param {number} cx circle center x\n * @param {number} cy circle center y\n * @param {number} r circle radius\n * @returns {boolean} \n */\nexport const pointInCircle = (point, cx, cy, r) => {\n const dx = point[0] - cx;\n const dy = point[1] - cy;\n\n const d = Math.sqrt(dx * dx + dy * dy);\n return d <= r;\n}\n\n/**\n * Hit test: checks if this point is inside the ellipse.\n * Cf. https://github.com/w8r/point-in-ellipse\n * @param {Array} point the point [x, y] \n * @param {number} cx ellipse center x \n * @param {number} cy ellipse center y\n * @param {number} rx ellipse x radius\n * @param {number} ry ellipse y radius\n * @param {number=} rotation ellipse rotation \n * @returns {boolean}\n */\nexport const pointInEllipse = (point, cx, cy, rx, ry, rotation) => {\n const rot = rotation || 0;\n\n const cos = Math.cos(rot);\n const sin = Math.sin(rot);\n\n const dx = point[0] - cx;\n const dy = point[1] - cy;\n\n const tdx = cos * dx + sin * dy;\n const tdy = sin * dx - cos * dy;\n\n return (tdx * tdx) / (rx * rx) + (tdy * tdy) / (ry * ry) <= 1;\n}\n\n/**\n * Hit test: checks if this point is inside the polygon.\n * @param {Array} xy the point [x, y]\n * @param {Array} points polygon corner points \n * @returns {boolean}\n */\nexport const pointInPolygon = (xy, points) => {\n // Algorithm checks, if xy is in Polygon\n // algorithm based on\n // https://wrf.ecse.rpi.edu/Research/Short_Notes/pnpoly.html/pnpoly.html\n const x = xy[0];\n const y = xy[1];\n \n let inside = false;\n\n for (let i=0, j=points.length-1; i < points.length; j=i++) {\n const xi = points[i][0], yi = points[i][1];\n const xj = points[j][0], yj = points[j][1];\n \n const intersect = ((yi > y) != (yj > y))\n && (x < (xj - xi) * (y - yi) / (yj - yi) + xi);\n \n if (intersect)\n inside = !inside;\n }\n \n return inside;\n}\n\n/**\n * Checks if polygon A is contained fully inside polygon B.\n * @param {Array>} polygonA array of points [x, y] \n * @param {Array>} polygonB array of points [x, y]\n * @returns {boolean}\n */\nexport const polygonInPolygon = (polygonA, polygonB) => {\n for (let point of polygonA) {\n if (!pointInPolygon(point, polygonB)) \n return false\n }\n\n return true;\n}\n\n/** \n * Hit test: checks if this point is inside the line.\n * @param {Array} xy the point [x, y]\n * @param number x1 line start x\n * @param number y1 line start y\n * @param number x2 line end x\n * @param number y2 line end y\n * @param number buffer around the line\n * @returns {boolean}\n */\nexport const pointInLine = (xy, x1, y1, x2, y2, buffer) => {\n const x = xy[0];\n const y = xy[1];\n\n const dx = x2 - x1;\n const dy = y2 - y1;\n const d = Math.sqrt(dx * dx + dy * dy);\n const cross = Math.abs((x - x1) * dy - (y - y1) * dx);\n const dist = cross / d;\n\n return dist <= buffer;\n}\n\n/**\n * A utility helper that parses an SVG path into \n * a list of polygons.\n * @param {SVGElement} path the SVG path\n * @returns {Array>>} list of polygons \n */\nexport const svgPathToPolygons = path => {\n const commands = path.getAttribute('d')\n .split(/(?=M|m|L|l|H|h|V|v|Z|z)/g)\n .map(str => str.trim());\n\n const polygons = [];\n\n let points = [];\n\n for (let cmd of commands) {\n const op = cmd.substring(0, 1);\n\n if (op.toLowerCase() === 'z') {\n polygons.push([...points]);\n points = [];\n } else {\n const xy = cmd.substring(1).split(' ')\n .map(str => parseFloat(str.trim()));\n \n // Uppercase ops are absolute coords -> transform\n const isUppercase = op === op.toUpperCase();\n\n const x = isUppercase ? xy[0] : xy[0] + points[points.length - 1][0];\n const y = isUppercase ? xy[1] : xy[1] + points[points.length - 1][1];\n\n points.push([x, y]);\n }\n }\n\n if (points.length > 0) // Unclosed path - close for area computation\n polygons.push([...points]); \n\n return polygons;\n}","import { SVG_NAMESPACE } from '../util/SVG';\nimport { polygonArea, polygonInPolygon, svgPathToPolygons } from '../util/Geom2D';\n\n/** Helper that forces an un-namespaced node to SVG **/\nconst insertSVGNamespace = originalDoc => {\n // Serialize and parse for the namespace to take effect on every node\n const serializer = new XMLSerializer();\n const str = serializer.serializeToString(originalDoc.documentElement);\n\n // Doesn't seem that there's a clean cross-browser way for this...\n const namespaced = str.replace('', ``);\n\n const parser = new DOMParser();\n const namespacedDoc = parser.parseFromString(namespaced, \"image/svg+xml\");\n return namespacedDoc.documentElement;\n}\n\nconst sanitize = doc => {\n // Cf. https://github.com/mattkrick/sanitize-svg#readme \n // for the basic approach\n const cleanEl = el => {\n Array.from(el.attributes).forEach(attr => {\n if (attr.name.startsWith('on'))\n el.removeAttribute(attr.name)\n });\n }\n\n // Remove script tags\n const scripts = doc.getElementsByTagName('script');\n Array.from(scripts).reverse().forEach(el =>\n el.parentNode.removeChild(el));\n\n // Remove on... attributes\n cleanEl(doc);\n Array.from(doc.querySelectorAll('*')).forEach(cleanEl);\n\n return doc;\n}\n\nexport const svgFragmentToShape = annotation => {\n const selector = annotation.selector('SvgSelector');\n if (selector) {\n const parser = new DOMParser();\n\n // Parse the XML document, assuming SVG\n const { value } = selector;\n const doc = parser.parseFromString(value, \"image/svg+xml\");\n\n // SVG needs a namespace declaration - check if it's set or insert if not\n const isPrefixDeclared = doc.lookupPrefix(SVG_NAMESPACE); // SVG declared via prefix\n const isDefaultNamespaceSVG = doc.lookupNamespaceURI(null); // SVG declared as default namespace\n\n if (isPrefixDeclared || isDefaultNamespaceSVG) {\n return sanitize(doc).firstChild;\n } else {\n return sanitize(insertSVGNamespace(doc)).firstChild;\n }\n }\n}\n\nexport const drawEmbeddedSVG = annotation => {\n const shape = svgFragmentToShape(annotation);\n\n // Because we're nitpicky, we don't just draw the shape,\n // but duplicate it, so we can have inner and an outer lines\n const g = document.createElementNS(SVG_NAMESPACE, 'g');\n\n const inner = shape.cloneNode(true);\n inner.setAttribute('class', 'a9s-inner');\n\n const outer = shape.cloneNode(true);\n outer.setAttribute('class', 'a9s-outer');\n\n g.appendChild(outer);\n g.appendChild(inner);\n\n return g;\n}\n\nexport const toSVGTarget = (shape, image) => {\n const inner = shape.querySelector('.a9s-inner').cloneNode(true);\n inner.removeAttribute('class');\n inner.removeAttribute('xmlns');\n\n let serialized = inner.outerHTML || new XMLSerializer().serializeToString(inner);\n serialized = serialized.replace(` xmlns=\"${SVG_NAMESPACE}\"`, '');\n\n return {\n source: image?.src,\n selector: {\n type: \"SvgSelector\",\n value: `${serialized}`\n }\n }\n}\n\nexport const svgArea = annotation => {\n const shape = svgFragmentToShape(annotation);\n const nodeName = shape.nodeName.toLowerCase();\n\n if (nodeName === 'polygon') \n return svgPolygonArea(shape);\n else if (nodeName === 'circle')\n return svgCircleArea(shape);\n else if (nodeName === 'ellipse')\n return svgEllipseArea(shape);\n else if (nodeName == 'path')\n return svgPathArea(shape);\n else if (nodeName == 'line')\n return 0;\n else\n throw `Unsupported SVG shape type: ${nodeName}`;\n}\n\nconst svgPolygonArea = polygon => {\n const points = polygon.getAttribute('points')\n .trim()\n .split(' ') // Split x/y tuples\n .map(xy => xy.split(',').map(str => parseFloat(str.trim())));\n\n return polygonArea(points)\n}\n\nconst svgCircleArea = circle => {\n const r = circle.getAttribute('r');\n return r * r * Math.PI;\n}\n\nconst svgEllipseArea = ellipse => {\n const rx = ellipse.getAttribute('rx');\n const ry = ellipse.getAttribute('ry');\n return rx * ry * Math.PI;\n}\n\nconst svgPathArea = path => {\n const polygons = svgPathToPolygons(path);\n\n if (polygons.length == 1) {\n return polygonArea(polygons[0]);\n } else {\n // Helper to check if a polygon is a hole\n const isHole = p => polygons.find(other => {\n if (p !== other)\n return polygonInPolygon(p, other); \n })\n\n let area = 0\n\n for (let poly of polygons) {\n if (isHole(poly))\n area -= polygonArea(poly);\n else \n area += polygonArea(poly);\n }\n\n return area;\n }\n}","import { drawRect, rectArea } from './RectFragment';\nimport { drawEmbeddedSVG, svgArea } from './EmbeddedSVG';\n\n// Drawing functions per selector type\nconst drawFn = {\n 'FragmentSelector': drawRect,\n 'SvgSelector': drawEmbeddedSVG\n};\n\n// Area computation functions per selector type\nconst areaFn = {\n 'FragmentSelector': rectArea,\n 'SvgSelector': svgArea\n}\n\n// Helper to get the first selector from an annotation\nconst getFirstSelector = annotation => {\n const firstTarget = annotation.targets[0];\n if (firstTarget)\n return Array.isArray(firstTarget.selector) ? firstTarget.selector[0] : firstTarget.selector;\n}\n\n/** \n * Evaluates the annotation target and picks the right drawing functions. \n * \n * We currently support the following selectors\n * - MediaFragment\n * - SVG (with embedded SVG shape)\n */\nexport const drawShape = (annotation, image) =>\n drawFn[getFirstSelector(annotation).type](annotation, image);\n\nexport const shapeArea = (annotation, image) =>\n areaFn[getFirstSelector(annotation).type](annotation, image);\n\nexport { parseRectFragment } from './RectFragment';\n\nexport * from './EmbeddedSVG';\nexport * from './RectFragment';\n\n\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","function toVal(mix) {\n\tvar k, y, str='';\n\n\tif (typeof mix === 'string' || typeof mix === 'number') {\n\t\tstr += mix;\n\t} else if (typeof mix === 'object') {\n\t\tif (Array.isArray(mix)) {\n\t\t\tfor (k=0; k < mix.length; k++) {\n\t\t\t\tif (mix[k]) {\n\t\t\t\t\tif (y = toVal(mix[k])) {\n\t\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\t\tstr += y;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor (k in mix) {\n\t\t\t\tif (mix[k]) {\n\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\tstr += k;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn str;\n}\n\nexport default function () {\n\tvar i=0, tmp, x, str='';\n\twhile (i < arguments.length) {\n\t\tif (tmp = arguments[i++]) {\n\t\t\tif (x = toVal(tmp)) {\n\t\t\t\tstr && (str += ' ');\n\t\t\t\tstr += x\n\t\t\t}\n\t\t}\n\t}\n\treturn str;\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.findInArray = findInArray;\nexports.isFunction = isFunction;\nexports.isNum = isNum;\nexports.int = int;\nexports.dontSetMe = dontSetMe;\n\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array\n/*: Array | TouchList*/\n, callback\n/*: Function*/\n)\n/*: any*/\n{\n for (var i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nfunction isFunction(func\n/*: any*/\n)\n/*: boolean %checks*/\n{\n // $FlowIgnore[method-unbinding]\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nfunction isNum(num\n/*: any*/\n)\n/*: boolean %checks*/\n{\n return typeof num === 'number' && !isNaN(num);\n}\n\nfunction int(a\n/*: string*/\n)\n/*: number*/\n{\n return parseInt(a, 10);\n}\n\nfunction dontSetMe(props\n/*: Object*/\n, propName\n/*: string*/\n, componentName\n/*: string*/\n)\n/*: ?Error*/\n{\n if (props[propName]) {\n return new Error(\"Invalid prop \".concat(propName, \" passed to \").concat(componentName, \" - do not set this, set it on the child.\"));\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getPrefix = getPrefix;\nexports.browserPrefixToKey = browserPrefixToKey;\nexports.browserPrefixToStyle = browserPrefixToStyle;\nexports.default = void 0;\nvar prefixes = ['Moz', 'Webkit', 'O', 'ms'];\n\nfunction getPrefix()\n/*: string*/\n{\n var _window$document, _window$document$docu;\n\n var prop\n /*: string*/\n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'transform';\n // Ensure we're running in an environment where there is actually a global\n // `window` obj\n if (typeof window === 'undefined') return ''; // If we're in a pseudo-browser server-side environment, this access\n // path may not exist, so bail out if it doesn't.\n\n var style = (_window$document = window.document) === null || _window$document === void 0 ? void 0 : (_window$document$docu = _window$document.documentElement) === null || _window$document$docu === void 0 ? void 0 : _window$document$docu.style;\n if (!style) return '';\n if (prop in style) return '';\n\n for (var i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nfunction browserPrefixToKey(prop\n/*: string*/\n, prefix\n/*: string*/\n)\n/*: string*/\n{\n return prefix ? \"\".concat(prefix).concat(kebabToTitleCase(prop)) : prop;\n}\n\nfunction browserPrefixToStyle(prop\n/*: string*/\n, prefix\n/*: string*/\n)\n/*: string*/\n{\n return prefix ? \"-\".concat(prefix.toLowerCase(), \"-\").concat(prop) : prop;\n}\n\nfunction kebabToTitleCase(str\n/*: string*/\n)\n/*: string*/\n{\n var out = '';\n var shouldCapitalize = true;\n\n for (var i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n\n return out;\n} // Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\n\n\nvar _default = (getPrefix()\n/*: string*/\n);\n\nexports.default = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.matchesSelector = matchesSelector;\nexports.matchesSelectorAndParentsTo = matchesSelectorAndParentsTo;\nexports.addEvent = addEvent;\nexports.removeEvent = removeEvent;\nexports.outerHeight = outerHeight;\nexports.outerWidth = outerWidth;\nexports.innerHeight = innerHeight;\nexports.innerWidth = innerWidth;\nexports.offsetXYFromParent = offsetXYFromParent;\nexports.createCSSTransform = createCSSTransform;\nexports.createSVGTransform = createSVGTransform;\nexports.getTranslation = getTranslation;\nexports.getTouch = getTouch;\nexports.getTouchIdentifier = getTouchIdentifier;\nexports.addUserSelectStyles = addUserSelectStyles;\nexports.removeUserSelectStyles = removeUserSelectStyles;\nexports.addClassName = addClassName;\nexports.removeClassName = removeClassName;\n\nvar _shims = require(\"./shims\");\n\nvar _getPrefix = _interopRequireWildcard(require(\"./getPrefix\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\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\nvar matchesSelectorFunc = '';\n\nfunction matchesSelector(el\n/*: Node*/\n, selector\n/*: string*/\n)\n/*: boolean*/\n{\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = (0, _shims.findInArray)(['matches', 'webkitMatchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector'], function (method) {\n // $FlowIgnore: Doesn't think elements are indexable\n return (0, _shims.isFunction)(el[method]);\n });\n } // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n\n\n if (!(0, _shims.isFunction)(el[matchesSelectorFunc])) return false; // $FlowIgnore: Doesn't think elements are indexable\n\n return el[matchesSelectorFunc](selector);\n} // Works up the tree to the draggable itself attempting to match selector.\n\n\nfunction matchesSelectorAndParentsTo(el\n/*: Node*/\n, selector\n/*: string*/\n, baseNode\n/*: Node*/\n)\n/*: boolean*/\n{\n var node = el;\n\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nfunction addEvent(el\n/*: ?Node*/\n, event\n/*: string*/\n, handler\n/*: Function*/\n, inputOptions\n/*: Object*/\n)\n/*: void*/\n{\n if (!el) return;\n\n var options = _objectSpread({\n capture: true\n }, inputOptions); // $FlowIgnore[method-unbinding]\n\n\n if (el.addEventListener) {\n el.addEventListener(event, handler, options);\n } else if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nfunction removeEvent(el\n/*: ?Node*/\n, event\n/*: string*/\n, handler\n/*: Function*/\n, inputOptions\n/*: Object*/\n)\n/*: void*/\n{\n if (!el) return;\n\n var options = _objectSpread({\n capture: true\n }, inputOptions); // $FlowIgnore[method-unbinding]\n\n\n if (el.removeEventListener) {\n el.removeEventListener(event, handler, options);\n } else if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nfunction outerHeight(node\n/*: HTMLElement*/\n)\n/*: number*/\n{\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n var height = node.clientHeight;\n var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += (0, _shims.int)(computedStyle.borderTopWidth);\n height += (0, _shims.int)(computedStyle.borderBottomWidth);\n return height;\n}\n\nfunction outerWidth(node\n/*: HTMLElement*/\n)\n/*: number*/\n{\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n var width = node.clientWidth;\n var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += (0, _shims.int)(computedStyle.borderLeftWidth);\n width += (0, _shims.int)(computedStyle.borderRightWidth);\n return width;\n}\n\nfunction innerHeight(node\n/*: HTMLElement*/\n)\n/*: number*/\n{\n var height = node.clientHeight;\n var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= (0, _shims.int)(computedStyle.paddingTop);\n height -= (0, _shims.int)(computedStyle.paddingBottom);\n return height;\n}\n\nfunction innerWidth(node\n/*: HTMLElement*/\n)\n/*: number*/\n{\n var width = node.clientWidth;\n var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= (0, _shims.int)(computedStyle.paddingLeft);\n width -= (0, _shims.int)(computedStyle.paddingRight);\n return width;\n}\n/*:: interface EventWithOffset {\n clientX: number, clientY: number\n}*/\n\n\n// Get from offsetParent\nfunction offsetXYFromParent(evt\n/*: EventWithOffset*/\n, offsetParent\n/*: HTMLElement*/\n, scale\n/*: number*/\n)\n/*: ControlPosition*/\n{\n var isBody = offsetParent === offsetParent.ownerDocument.body;\n var offsetParentRect = isBody ? {\n left: 0,\n top: 0\n } : offsetParent.getBoundingClientRect();\n var x = (evt.clientX + offsetParent.scrollLeft - offsetParentRect.left) / scale;\n var y = (evt.clientY + offsetParent.scrollTop - offsetParentRect.top) / scale;\n return {\n x: x,\n y: y\n };\n}\n\nfunction createCSSTransform(controlPos\n/*: ControlPosition*/\n, positionOffset\n/*: PositionOffsetControlPosition*/\n)\n/*: Object*/\n{\n var translation = getTranslation(controlPos, positionOffset, 'px');\n return _defineProperty({}, (0, _getPrefix.browserPrefixToKey)('transform', _getPrefix.default), translation);\n}\n\nfunction createSVGTransform(controlPos\n/*: ControlPosition*/\n, positionOffset\n/*: PositionOffsetControlPosition*/\n)\n/*: string*/\n{\n var translation = getTranslation(controlPos, positionOffset, '');\n return translation;\n}\n\nfunction getTranslation(_ref2, positionOffset\n/*: PositionOffsetControlPosition*/\n, unitSuffix\n/*: string*/\n)\n/*: string*/\n{\n var x = _ref2.x,\n y = _ref2.y;\n var translation = \"translate(\".concat(x).concat(unitSuffix, \",\").concat(y).concat(unitSuffix, \")\");\n\n if (positionOffset) {\n var defaultX = \"\".concat(typeof positionOffset.x === 'string' ? positionOffset.x : positionOffset.x + unitSuffix);\n var defaultY = \"\".concat(typeof positionOffset.y === 'string' ? positionOffset.y : positionOffset.y + unitSuffix);\n translation = \"translate(\".concat(defaultX, \", \").concat(defaultY, \")\") + translation;\n }\n\n return translation;\n}\n\nfunction getTouch(e\n/*: MouseTouchEvent*/\n, identifier\n/*: number*/\n)\n/*: ?{clientX: number, clientY: number}*/\n{\n return e.targetTouches && (0, _shims.findInArray)(e.targetTouches, function (t) {\n return identifier === t.identifier;\n }) || e.changedTouches && (0, _shims.findInArray)(e.changedTouches, function (t) {\n return identifier === t.identifier;\n });\n}\n\nfunction getTouchIdentifier(e\n/*: MouseTouchEvent*/\n)\n/*: ?number*/\n{\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n} // User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n// Note we're passing `document` b/c we could be iframed\n\n\nfunction addUserSelectStyles(doc\n/*: ?Document*/\n) {\n if (!doc) return;\n var styleEl = doc.getElementById('react-draggable-style-el');\n\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {all: inherit;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {all: inherit;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nfunction removeUserSelectStyles(doc\n/*: ?Document*/\n) {\n if (!doc) return;\n\n try {\n if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection'); // $FlowIgnore: IE\n\n if (doc.selection) {\n // $FlowIgnore: IE\n doc.selection.empty();\n } else {\n // Remove selection caused by scroll, unless it's a focused input\n // (we use doc.defaultView in case we're in an iframe)\n var selection = (doc.defaultView || window).getSelection();\n\n if (selection && selection.type !== 'Caret') {\n selection.removeAllRanges();\n }\n }\n } catch (e) {// probably IE\n }\n}\n\nfunction addClassName(el\n/*: HTMLElement*/\n, className\n/*: string*/\n) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(\"(?:^|\\\\s)\".concat(className, \"(?!\\\\S)\")))) {\n el.className += \" \".concat(className);\n }\n }\n}\n\nfunction removeClassName(el\n/*: HTMLElement*/\n, className\n/*: string*/\n) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(\"(?:^|\\\\s)\".concat(className, \"(?!\\\\S)\"), 'g'), '');\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getBoundPosition = getBoundPosition;\nexports.snapToGrid = snapToGrid;\nexports.canDragX = canDragX;\nexports.canDragY = canDragY;\nexports.getControlPosition = getControlPosition;\nexports.createCoreData = createCoreData;\nexports.createDraggableData = createDraggableData;\n\nvar _shims = require(\"./shims\");\n\nvar _domFns = require(\"./domFns\");\n\nfunction getBoundPosition(draggable\n/*: Draggable*/\n, x\n/*: number*/\n, y\n/*: number*/\n)\n/*: [number, number]*/\n{\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y]; // Clone new bounds\n\n var bounds = draggable.props.bounds;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n var node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n var ownerDocument = node.ownerDocument;\n var ownerWindow = ownerDocument.defaultView;\n var boundNode;\n\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n\n if (!(boundNode instanceof ownerWindow.HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n\n var boundNodeEl\n /*: HTMLElement*/\n = boundNode; // for Flow, can't seem to refine correctly\n\n var nodeStyle = ownerWindow.getComputedStyle(node);\n var boundNodeStyle = ownerWindow.getComputedStyle(boundNodeEl); // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n\n bounds = {\n left: -node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingLeft) + (0, _shims.int)(nodeStyle.marginLeft),\n top: -node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingTop) + (0, _shims.int)(nodeStyle.marginTop),\n right: (0, _domFns.innerWidth)(boundNodeEl) - (0, _domFns.outerWidth)(node) - node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingRight) - (0, _shims.int)(nodeStyle.marginRight),\n bottom: (0, _domFns.innerHeight)(boundNodeEl) - (0, _domFns.outerHeight)(node) - node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingBottom) - (0, _shims.int)(nodeStyle.marginBottom)\n };\n } // Keep x and y below right and bottom limits...\n\n\n if ((0, _shims.isNum)(bounds.right)) x = Math.min(x, bounds.right);\n if ((0, _shims.isNum)(bounds.bottom)) y = Math.min(y, bounds.bottom); // But above left and top limits.\n\n if ((0, _shims.isNum)(bounds.left)) x = Math.max(x, bounds.left);\n if ((0, _shims.isNum)(bounds.top)) y = Math.max(y, bounds.top);\n return [x, y];\n}\n\nfunction snapToGrid(grid\n/*: [number, number]*/\n, pendingX\n/*: number*/\n, pendingY\n/*: number*/\n)\n/*: [number, number]*/\n{\n var x = Math.round(pendingX / grid[0]) * grid[0];\n var y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nfunction canDragX(draggable\n/*: Draggable*/\n)\n/*: boolean*/\n{\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nfunction canDragY(draggable\n/*: Draggable*/\n)\n/*: boolean*/\n{\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n} // Get {x, y} positions from event.\n\n\nfunction getControlPosition(e\n/*: MouseTouchEvent*/\n, touchIdentifier\n/*: ?number*/\n, draggableCore\n/*: DraggableCore*/\n)\n/*: ?ControlPosition*/\n{\n var touchObj = typeof touchIdentifier === 'number' ? (0, _domFns.getTouch)(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n\n var node = findDOMNode(draggableCore); // User can provide an offsetParent if desired.\n\n var offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return (0, _domFns.offsetXYFromParent)(touchObj || e, offsetParent, draggableCore.props.scale);\n} // Create an data object exposed by 's events\n\n\nfunction createCoreData(draggable\n/*: DraggableCore*/\n, x\n/*: number*/\n, y\n/*: number*/\n)\n/*: DraggableData*/\n{\n var state = draggable.state;\n var isStart = !(0, _shims.isNum)(state.lastX);\n var node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node: node,\n deltaX: 0,\n deltaY: 0,\n lastX: x,\n lastY: y,\n x: x,\n y: y\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node: node,\n deltaX: x - state.lastX,\n deltaY: y - state.lastY,\n lastX: state.lastX,\n lastY: state.lastY,\n x: x,\n y: y\n };\n }\n} // Create an data exposed by 's events\n\n\nfunction createDraggableData(draggable\n/*: Draggable*/\n, coreData\n/*: DraggableData*/\n)\n/*: DraggableData*/\n{\n var scale = draggable.props.scale;\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX / scale,\n y: draggable.state.y + coreData.deltaY / scale,\n deltaX: coreData.deltaX / scale,\n deltaY: coreData.deltaY / scale,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n} // A lot faster than stringify/parse\n\n\nfunction cloneBounds(bounds\n/*: Bounds*/\n)\n/*: Bounds*/\n{\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable\n/*: Draggable | DraggableCore*/\n)\n/*: HTMLElement*/\n{\n var node = draggable.findDOMNode();\n\n if (!node) {\n throw new Error(': Unmounted during event!');\n } // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n\n\n return node;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = log;\n\n/*eslint no-console:0*/\nfunction log() {\n var _console;\n\n if (undefined) (_console = console).log.apply(_console, arguments);\n}","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _domFns = require(\"./utils/domFns\");\n\nvar _positionFns = require(\"./utils/positionFns\");\n\nvar _shims = require(\"./utils/shims\");\n\nvar _log = _interopRequireDefault(require(\"./utils/log\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _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; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// Simple abstraction for dragging events names.\nvar eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n}; // Default to mouse events.\n\nvar dragEventFor = eventsFor.mouse;\n/*:: type DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};*/\n\n/*:: export type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};*/\n\n/*:: export type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void | false;*/\n\n/*:: export type ControlPosition = {x: number, y: number};*/\n\n/*:: export type PositionOffsetControlPosition = {x: number|string, y: number|string};*/\n\n/*:: export type DraggableCoreDefaultProps = {\n allowAnyClick: boolean,\n disabled: boolean,\n enableUserSelectHack: boolean,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n scale: number,\n};*/\n\n/*:: export type DraggableCoreProps = {\n ...DraggableCoreDefaultProps,\n cancel: string,\n children: ReactElement,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n nodeRef?: ?React.ElementRef,\n};*/\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\nvar DraggableCore = /*#__PURE__*/function (_React$Component) {\n _inherits(DraggableCore, _React$Component);\n\n var _super = _createSuper(DraggableCore);\n\n function DraggableCore() {\n var _this;\n\n _classCallCheck(this, DraggableCore);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN,\n lastY: NaN,\n touchIdentifier: null\n });\n\n _defineProperty(_assertThisInitialized(_this), \"mounted\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"handleDragStart\", function (e) {\n // Make it possible to attach event handlers on top of this one.\n _this.props.onMouseDown(e); // Only accept left-clicks.\n\n\n if (!_this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false; // Get nodes. Be sure to grab relative document (could be iframed)\n\n var thisNode = _this.findDOMNode();\n\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n\n var ownerDocument = thisNode.ownerDocument; // Short circuit if handle or cancel prop was provided and selector doesn't match.\n\n if (_this.props.disabled || !(e.target instanceof ownerDocument.defaultView.Node) || _this.props.handle && !(0, _domFns.matchesSelectorAndParentsTo)(e.target, _this.props.handle, thisNode) || _this.props.cancel && (0, _domFns.matchesSelectorAndParentsTo)(e.target, _this.props.cancel, thisNode)) {\n return;\n } // Prevent scrolling on mobile devices, like ipad/iphone.\n // Important that this is after handle/cancel.\n\n\n if (e.type === 'touchstart') e.preventDefault(); // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n\n var touchIdentifier = (0, _domFns.getTouchIdentifier)(e);\n\n _this.setState({\n touchIdentifier: touchIdentifier\n }); // Get the current drag point from the event. This is used as the offset.\n\n\n var position = (0, _positionFns.getControlPosition)(e, touchIdentifier, _assertThisInitialized(_this));\n if (position == null) return; // not possible but satisfies flow\n\n var x = position.x,\n y = position.y; // Create an event object with all the data parents need to make a decision here.\n\n var coreEvent = (0, _positionFns.createCoreData)(_assertThisInitialized(_this), x, y);\n (0, _log.default)('DraggableCore: handleDragStart: %j', coreEvent); // Call event handler. If it returns explicit false, cancel.\n\n (0, _log.default)('calling', _this.props.onStart);\n\n var shouldUpdate = _this.props.onStart(e, coreEvent);\n\n if (shouldUpdate === false || _this.mounted === false) return; // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n\n if (_this.props.enableUserSelectHack) (0, _domFns.addUserSelectStyles)(ownerDocument); // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n\n _this.setState({\n dragging: true,\n lastX: x,\n lastY: y\n }); // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n\n\n (0, _domFns.addEvent)(ownerDocument, dragEventFor.move, _this.handleDrag);\n (0, _domFns.addEvent)(ownerDocument, dragEventFor.stop, _this.handleDragStop);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleDrag\", function (e) {\n // Get the current drag point from the event. This is used as the offset.\n var position = (0, _positionFns.getControlPosition)(e, _this.state.touchIdentifier, _assertThisInitialized(_this));\n if (position == null) return;\n var x = position.x,\n y = position.y; // Snap to grid if prop has been provided\n\n if (Array.isArray(_this.props.grid)) {\n var deltaX = x - _this.state.lastX,\n deltaY = y - _this.state.lastY;\n\n var _snapToGrid = (0, _positionFns.snapToGrid)(_this.props.grid, deltaX, deltaY);\n\n var _snapToGrid2 = _slicedToArray(_snapToGrid, 2);\n\n deltaX = _snapToGrid2[0];\n deltaY = _snapToGrid2[1];\n if (!deltaX && !deltaY) return; // skip useless drag\n\n x = _this.state.lastX + deltaX, y = _this.state.lastY + deltaY;\n }\n\n var coreEvent = (0, _positionFns.createCoreData)(_assertThisInitialized(_this), x, y);\n (0, _log.default)('DraggableCore: handleDrag: %j', coreEvent); // Call event handler. If it returns explicit false, trigger end.\n\n var shouldUpdate = _this.props.onDrag(e, coreEvent);\n\n if (shouldUpdate === false || _this.mounted === false) {\n try {\n // $FlowIgnore\n _this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n var event = ((document.createEvent('MouseEvents')\n /*: any*/\n )\n /*: MouseTouchEvent*/\n ); // I see why this insanity was deprecated\n // $FlowIgnore\n\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n\n _this.handleDragStop(event);\n }\n\n return;\n }\n\n _this.setState({\n lastX: x,\n lastY: y\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleDragStop\", function (e) {\n if (!_this.state.dragging) return;\n var position = (0, _positionFns.getControlPosition)(e, _this.state.touchIdentifier, _assertThisInitialized(_this));\n if (position == null) return;\n var x = position.x,\n y = position.y;\n var coreEvent = (0, _positionFns.createCoreData)(_assertThisInitialized(_this), x, y); // Call event handler\n\n var shouldContinue = _this.props.onStop(e, coreEvent);\n\n if (shouldContinue === false || _this.mounted === false) return false;\n\n var thisNode = _this.findDOMNode();\n\n if (thisNode) {\n // Remove user-select hack\n if (_this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(thisNode.ownerDocument);\n }\n\n (0, _log.default)('DraggableCore: handleDragStop: %j', coreEvent); // Reset the el.\n\n _this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n if (thisNode) {\n // Remove event handlers\n (0, _log.default)('DraggableCore: Removing handlers');\n (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.move, _this.handleDrag);\n (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.stop, _this.handleDragStop);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseDown\", function (e) {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return _this.handleDragStart(e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseUp\", function (e) {\n dragEventFor = eventsFor.mouse;\n return _this.handleDragStop(e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTouchStart\", function (e) {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n return _this.handleDragStart(e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTouchEnd\", function (e) {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n return _this.handleDragStop(e);\n });\n\n return _this;\n }\n\n _createClass(DraggableCore, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.mounted = true; // Touch handlers must be added with {passive: false} to be cancelable.\n // https://developers.google.com/web/updates/2017/01/scrolling-intervention\n\n var thisNode = this.findDOMNode();\n\n if (thisNode) {\n (0, _domFns.addEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {\n passive: false\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.mounted = false; // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n\n var thisNode = this.findDOMNode();\n\n if (thisNode) {\n var ownerDocument = thisNode.ownerDocument;\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.move, this.handleDrag);\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n (0, _domFns.removeEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {\n passive: false\n });\n if (this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(ownerDocument);\n }\n } // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find\n // the underlying DOM node ourselves. See the README for more information.\n\n }, {\n key: \"findDOMNode\",\n value: function findDOMNode()\n /*: ?HTMLElement*/\n {\n var _this$props$nodeRef$c, _this$props, _this$props$nodeRef;\n\n return (_this$props$nodeRef$c = (_this$props = this.props) === null || _this$props === void 0 ? void 0 : (_this$props$nodeRef = _this$props.nodeRef) === null || _this$props$nodeRef === void 0 ? void 0 : _this$props$nodeRef.current) !== null && _this$props$nodeRef$c !== void 0 ? _this$props$nodeRef$c : _reactDom.default.findDOMNode(this);\n }\n }, {\n key: \"render\",\n value: function render()\n /*: React.Element*/\n {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return /*#__PURE__*/React.cloneElement(React.Children.only(this.props.children), {\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onMouseUp: this.onMouseUp,\n // onTouchStart is added on `componentDidMount` so they can be added with\n // {passive: false}, which allows it to cancel. See\n // https://developers.google.com/web/updates/2017/01/scrolling-intervention\n onTouchEnd: this.onTouchEnd\n });\n }\n }]);\n\n return DraggableCore;\n}(React.Component);\n\nexports.default = DraggableCore;\n\n_defineProperty(DraggableCore, \"displayName\", 'DraggableCore');\n\n_defineProperty(DraggableCore, \"propTypes\", {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: _propTypes.default.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: _propTypes.default.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: _propTypes.default.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function offsetParent(props\n /*: DraggableCoreProps*/\n , propName\n /*: $Keys*/\n ) {\n if (props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: _propTypes.default.arrayOf(_propTypes.default.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n * \n * );\n * }\n * });\n * ```\n */\n handle: _propTypes.default.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: _propTypes.default.string,\n\n /* If running in React Strict mode, ReactDOM.findDOMNode() is deprecated.\n * Unfortunately, in order for to work properly, we need raw access\n * to the underlying DOM node. If you want to avoid the warning, pass a `nodeRef`\n * as in this example:\n *\n * function MyComponent() {\n * const nodeRef = React.useRef(null);\n * return (\n * \n *
Example Target
\n *
\n * );\n * }\n *\n * This can be used for arbitrarily nested components, so long as the ref ends up\n * pointing to the actual child DOM node and not a custom component.\n */\n nodeRef: _propTypes.default.object,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: _propTypes.default.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: _propTypes.default.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: _propTypes.default.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: _propTypes.default.func,\n\n /**\n * `scale`, if set, applies scaling while dragging an element\n */\n scale: _propTypes.default.number,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: _shims.dontSetMe,\n style: _shims.dontSetMe,\n transform: _shims.dontSetMe\n});\n\n_defineProperty(DraggableCore, \"defaultProps\", {\n allowAnyClick: false,\n // by default only accept left click\n disabled: false,\n enableUserSelectHack: true,\n onStart: function onStart() {},\n onDrag: function onDrag() {},\n onStop: function onStop() {},\n onMouseDown: function onMouseDown() {},\n scale: 1\n});","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"DraggableCore\", {\n enumerable: true,\n get: function get() {\n return _DraggableCore.default;\n }\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _clsx2 = _interopRequireDefault(require(\"clsx\"));\n\nvar _domFns = require(\"./utils/domFns\");\n\nvar _positionFns = require(\"./utils/positionFns\");\n\nvar _shims = require(\"./utils/shims\");\n\nvar _DraggableCore = _interopRequireDefault(require(\"./DraggableCore\"));\n\nvar _log = _interopRequireDefault(require(\"./utils/log\"));\n\nvar _excluded = [\"axis\", \"bounds\", \"children\", \"defaultPosition\", \"defaultClassName\", \"defaultClassNameDragging\", \"defaultClassNameDragged\", \"position\", \"positionOffset\", \"scale\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _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; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n//\n// Define \n//\nvar Draggable = /*#__PURE__*/function (_React$Component) {\n _inherits(Draggable, _React$Component);\n\n var _super = _createSuper(Draggable);\n\n function Draggable(props\n /*: DraggableProps*/\n ) {\n var _this;\n\n _classCallCheck(this, Draggable);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"onDragStart\", function (e, coreData) {\n (0, _log.default)('Draggable: onDragStart: %j', coreData); // Short-circuit if user's callback killed it.\n\n var shouldStart = _this.props.onStart(e, (0, _positionFns.createDraggableData)(_assertThisInitialized(_this), coreData)); // Kills start event on core as well, so move handlers are never bound.\n\n\n if (shouldStart === false) return false;\n\n _this.setState({\n dragging: true,\n dragged: true\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDrag\", function (e, coreData) {\n if (!_this.state.dragging) return false;\n (0, _log.default)('Draggable: onDrag: %j', coreData);\n var uiData = (0, _positionFns.createDraggableData)(_assertThisInitialized(_this), coreData);\n var newState\n /*: $Shape*/\n = {\n x: uiData.x,\n y: uiData.y\n }; // Keep within bounds.\n\n if (_this.props.bounds) {\n // Save original x and y.\n var x = newState.x,\n y = newState.y; // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n\n newState.x += _this.state.slackX;\n newState.y += _this.state.slackY; // Get bound position. This will ceil/floor the x and y within the boundaries.\n\n var _getBoundPosition = (0, _positionFns.getBoundPosition)(_assertThisInitialized(_this), newState.x, newState.y),\n _getBoundPosition2 = _slicedToArray(_getBoundPosition, 2),\n newStateX = _getBoundPosition2[0],\n newStateY = _getBoundPosition2[1];\n\n newState.x = newStateX;\n newState.y = newStateY; // Recalculate slack by noting how much was shaved by the boundPosition handler.\n\n newState.slackX = _this.state.slackX + (x - newState.x);\n newState.slackY = _this.state.slackY + (y - newState.y); // Update the event we fire to reflect what really happened after bounds took effect.\n\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - _this.state.x;\n uiData.deltaY = newState.y - _this.state.y;\n } // Short-circuit if user's callback killed it.\n\n\n var shouldUpdate = _this.props.onDrag(e, uiData);\n\n if (shouldUpdate === false) return false;\n\n _this.setState(newState);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDragStop\", function (e, coreData) {\n if (!_this.state.dragging) return false; // Short-circuit if user's callback killed it.\n\n var shouldContinue = _this.props.onStop(e, (0, _positionFns.createDraggableData)(_assertThisInitialized(_this), coreData));\n\n if (shouldContinue === false) return false;\n (0, _log.default)('Draggable: onDragStop: %j', coreData);\n var newState\n /*: $Shape*/\n = {\n dragging: false,\n slackX: 0,\n slackY: 0\n }; // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n\n var controlled = Boolean(_this.props.position);\n\n if (controlled) {\n var _this$props$position = _this.props.position,\n x = _this$props$position.x,\n y = _this$props$position.y;\n newState.x = x;\n newState.y = y;\n }\n\n _this.setState(newState);\n });\n\n _this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n // Whether or not we have been dragged before.\n dragged: false,\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n prevPropsPosition: _objectSpread({}, props.position),\n // Used for compensating for out-of-bounds drags\n slackX: 0,\n slackY: 0,\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n\n if (props.position && !(props.onDrag || props.onStop)) {\n // eslint-disable-next-line no-console\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' + 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' + '`position` of this element.');\n }\n\n return _this;\n }\n\n _createClass(Draggable, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if (typeof window.SVGElement !== 'undefined' && this.findDOMNode() instanceof window.SVGElement) {\n this.setState({\n isElementSVG: true\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.setState({\n dragging: false\n }); // prevents invariant if unmounted while dragging\n } // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find\n // the underlying DOM node ourselves. See the README for more information.\n\n }, {\n key: \"findDOMNode\",\n value: function findDOMNode()\n /*: ?HTMLElement*/\n {\n var _this$props$nodeRef$c, _this$props, _this$props$nodeRef;\n\n return (_this$props$nodeRef$c = (_this$props = this.props) === null || _this$props === void 0 ? void 0 : (_this$props$nodeRef = _this$props.nodeRef) === null || _this$props$nodeRef === void 0 ? void 0 : _this$props$nodeRef.current) !== null && _this$props$nodeRef$c !== void 0 ? _this$props$nodeRef$c : _reactDom.default.findDOMNode(this);\n }\n }, {\n key: \"render\",\n value: function render()\n /*: ReactElement*/\n {\n var _clsx;\n\n var _this$props2 = this.props,\n axis = _this$props2.axis,\n bounds = _this$props2.bounds,\n children = _this$props2.children,\n defaultPosition = _this$props2.defaultPosition,\n defaultClassName = _this$props2.defaultClassName,\n defaultClassNameDragging = _this$props2.defaultClassNameDragging,\n defaultClassNameDragged = _this$props2.defaultClassNameDragged,\n position = _this$props2.position,\n positionOffset = _this$props2.positionOffset,\n scale = _this$props2.scale,\n draggableCoreProps = _objectWithoutProperties(_this$props2, _excluded);\n\n var style = {};\n var svgTransform = null; // If this is controlled, we don't want to move it - unless it's dragging.\n\n var controlled = Boolean(position);\n var draggable = !controlled || this.state.dragging;\n var validPosition = position || defaultPosition;\n var transformOpts = {\n // Set left if horizontal drag is enabled\n x: (0, _positionFns.canDragX)(this) && draggable ? this.state.x : validPosition.x,\n // Set top if vertical drag is enabled\n y: (0, _positionFns.canDragY)(this) && draggable ? this.state.y : validPosition.y\n }; // If this element was SVG, we use the `transform` attribute.\n\n if (this.state.isElementSVG) {\n svgTransform = (0, _domFns.createSVGTransform)(transformOpts, positionOffset);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = (0, _domFns.createCSSTransform)(transformOpts, positionOffset);\n } // Mark with class while dragging\n\n\n var className = (0, _clsx2.default)(children.props.className || '', defaultClassName, (_clsx = {}, _defineProperty(_clsx, defaultClassNameDragging, this.state.dragging), _defineProperty(_clsx, defaultClassNameDragged, this.state.dragged), _clsx)); // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n\n return /*#__PURE__*/React.createElement(_DraggableCore.default, _extends({}, draggableCoreProps, {\n onStart: this.onDragStart,\n onDrag: this.onDrag,\n onStop: this.onDragStop\n }), /*#__PURE__*/React.cloneElement(React.Children.only(children), {\n className: className,\n style: _objectSpread(_objectSpread({}, children.props.style), style),\n transform: svgTransform\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: // React 16.3+\n // Arity (props, state)\n function getDerivedStateFromProps(_ref, _ref2)\n /*: ?$Shape*/\n {\n var position = _ref.position;\n var prevPropsPosition = _ref2.prevPropsPosition;\n\n // Set x/y if a new position is provided in props that is different than the previous.\n if (position && (!prevPropsPosition || position.x !== prevPropsPosition.x || position.y !== prevPropsPosition.y)) {\n (0, _log.default)('Draggable: getDerivedStateFromProps %j', {\n position: position,\n prevPropsPosition: prevPropsPosition\n });\n return {\n x: position.x,\n y: position.y,\n prevPropsPosition: _objectSpread({}, position)\n };\n }\n\n return null;\n }\n }]);\n\n return Draggable;\n}(React.Component);\n\nexports.default = Draggable;\n\n_defineProperty(Draggable, \"displayName\", 'Draggable');\n\n_defineProperty(Draggable, \"propTypes\", _objectSpread(_objectSpread({}, _DraggableCore.default.propTypes), {}, {\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: _propTypes.default.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: _propTypes.default.oneOfType([_propTypes.default.shape({\n left: _propTypes.default.number,\n right: _propTypes.default.number,\n top: _propTypes.default.number,\n bottom: _propTypes.default.number\n }), _propTypes.default.string, _propTypes.default.oneOf([false])]),\n defaultClassName: _propTypes.default.string,\n defaultClassNameDragging: _propTypes.default.string,\n defaultClassNameDragged: _propTypes.default.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: _propTypes.default.shape({\n x: _propTypes.default.number,\n y: _propTypes.default.number\n }),\n positionOffset: _propTypes.default.shape({\n x: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),\n y: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string])\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: _propTypes.default.shape({\n x: _propTypes.default.number,\n y: _propTypes.default.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: _shims.dontSetMe,\n style: _shims.dontSetMe,\n transform: _shims.dontSetMe\n}));\n\n_defineProperty(Draggable, \"defaultProps\", _objectSpread(_objectSpread({}, _DraggableCore.default.defaultProps), {}, {\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {\n x: 0,\n y: 0\n },\n scale: 1\n}));","\"use strict\";\n\nvar _require = require('./Draggable'),\n Draggable = _require.default,\n DraggableCore = _require.DraggableCore; // Previous versions of this lib exported as the root export. As to no-// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\n\n\nmodule.exports = Draggable;\nmodule.exports.default = Draggable;\nmodule.exports.DraggableCore = DraggableCore;","var EN_US = ['second', 'minute', 'hour', 'day', 'week', 'month', 'year'];\nexport default function (diff, idx) {\n if (idx === 0)\n return ['just now', 'right now'];\n var unit = EN_US[Math.floor(idx / 2)];\n if (diff > 1)\n unit += 's';\n return [diff + \" \" + unit + \" ago\", \"in \" + diff + \" \" + unit];\n}\n//# sourceMappingURL=en_US.js.map","var ZH_CN = ['秒', '分钟', '小时', '天', '周', '个月', '年'];\nexport default function (diff, idx) {\n if (idx === 0)\n return ['刚刚', '片刻后'];\n var unit = ZH_CN[~~(idx / 2)];\n return [diff + \" \" + unit + \"\\u524D\", diff + \" \" + unit + \"\\u540E\"];\n}\n//# sourceMappingURL=zh_CN.js.map","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\n/**\n * All supported locales\n */\nvar Locales = {};\n/**\n * register a locale\n * @param locale\n * @param func\n */\nexport var register = function (locale, func) {\n Locales[locale] = func;\n};\n/**\n * get a locale, default is en_US\n * @param locale\n * @returns {*}\n */\nexport var getLocale = function (locale) {\n return Locales[locale] || Locales['en_US'];\n};\n//# sourceMappingURL=register.js.map","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\nvar SEC_ARRAY = [\n 60,\n 60,\n 24,\n 7,\n 365 / 7 / 12,\n 12,\n];\n/**\n * format Date / string / timestamp to timestamp\n * @param input\n * @returns {*}\n */\nexport function toDate(input) {\n if (input instanceof Date)\n return input;\n // @ts-ignore\n if (!isNaN(input) || /^\\d+$/.test(input))\n return new Date(parseInt(input));\n input = (input || '')\n // @ts-ignore\n .trim()\n .replace(/\\.\\d+/, '') // remove milliseconds\n .replace(/-/, '/')\n .replace(/-/, '/')\n .replace(/(\\d)T(\\d)/, '$1 $2')\n .replace(/Z/, ' UTC') // 2017-2-5T3:57:52Z -> 2017-2-5 3:57:52UTC\n .replace(/([+-]\\d\\d):?(\\d\\d)/, ' $1$2'); // -04:00 -> -0400\n return new Date(input);\n}\n/**\n * format the diff second to *** time ago, with setting locale\n * @param diff\n * @param localeFunc\n * @returns\n */\nexport function formatDiff(diff, localeFunc) {\n /**\n * if locale is not exist, use defaultLocale.\n * if defaultLocale is not exist, use build-in `en`.\n * be sure of no error when locale is not exist.\n *\n * If `time in`, then 1\n * If `time ago`, then 0\n */\n var agoIn = diff < 0 ? 1 : 0;\n /**\n * Get absolute value of number (|diff| is non-negative) value of x\n * |diff| = diff if diff is positive\n * |diff| = -diff if diff is negative\n * |0| = 0\n */\n diff = Math.abs(diff);\n /**\n * Time in seconds\n */\n var totalSec = diff;\n /**\n * Unit of time\n */\n var idx = 0;\n for (; diff >= SEC_ARRAY[idx] && idx < SEC_ARRAY.length; idx++) {\n diff /= SEC_ARRAY[idx];\n }\n /**\n * Math.floor() is alternative of ~~\n *\n * The differences and bugs:\n * Math.floor(3.7) -> 4 but ~~3.7 -> 3\n * Math.floor(1559125440000.6) -> 1559125440000 but ~~1559125440000.6 -> 52311552\n *\n * More information about the performance of algebraic:\n * https://www.youtube.com/watch?v=65-RbBwZQdU\n */\n diff = Math.floor(diff);\n idx *= 2;\n if (diff > (idx === 0 ? 9 : 1))\n idx += 1;\n return localeFunc(diff, idx, totalSec)[agoIn].replace('%s', diff.toString());\n}\n/**\n * calculate the diff second between date to be formatted an now date.\n * @param date\n * @param relativeDate\n * @returns {number}\n */\nexport function diffSec(date, relativeDate) {\n var relDate = relativeDate ? toDate(relativeDate) : new Date();\n return (+relDate - +toDate(date)) / 1000;\n}\n/**\n * nextInterval: calculate the next interval time.\n * - diff: the diff sec between now and date to be formatted.\n *\n * What's the meaning?\n * diff = 61 then return 59\n * diff = 3601 (an hour + 1 second), then return 3599\n * make the interval with high performance.\n **/\nexport function nextInterval(diff) {\n var rst = 1, i = 0, d = Math.abs(diff);\n for (; diff >= SEC_ARRAY[i] && i < SEC_ARRAY.length; i++) {\n diff /= SEC_ARRAY[i];\n rst *= SEC_ARRAY[i];\n }\n d = d % rst;\n d = d ? rst - d : rst;\n return Math.ceil(d);\n}\n//# sourceMappingURL=date.js.map","import { formatDiff, diffSec } from './utils/date';\nimport { getLocale } from './register';\n/**\n * format a TDate into string\n * @param date\n * @param locale\n * @param opts\n */\nexport var format = function (date, locale, opts) {\n // diff seconds\n var sec = diffSec(date, opts && opts.relativeDate);\n // format it with locale\n return formatDiff(sec, getLocale(locale));\n};\n//# sourceMappingURL=format.js.map","var ATTR_TIMEAGO_TID = 'timeago-id';\n/**\n * get the datetime attribute, `datetime` are supported.\n * @param node\n * @returns {*}\n */\nexport function getDateAttribute(node) {\n return node.getAttribute('datetime');\n}\n/**\n * set the node attribute, native DOM\n * @param node\n * @param timerId\n * @returns {*}\n */\nexport function setTimerId(node, timerId) {\n // @ts-ignore\n node.setAttribute(ATTR_TIMEAGO_TID, timerId);\n}\n/**\n * get the timer id\n * @param node\n */\nexport function getTimerId(node) {\n return parseInt(node.getAttribute(ATTR_TIMEAGO_TID));\n}\n//# sourceMappingURL=dom.js.map","import { setTimerId, getTimerId, getDateAttribute } from './utils/dom';\nimport { formatDiff, diffSec, nextInterval } from './utils/date';\nimport { getLocale } from './register';\n// all realtime timer\nvar TIMER_POOL = {};\n/**\n * clear a timer from pool\n * @param tid\n */\nvar clear = function (tid) {\n clearTimeout(tid);\n delete TIMER_POOL[tid];\n};\n// run with timer(setTimeout)\nfunction run(node, date, localeFunc, opts) {\n // clear the node's exist timer\n clear(getTimerId(node));\n var relativeDate = opts.relativeDate, minInterval = opts.minInterval;\n // get diff seconds\n var diff = diffSec(date, relativeDate);\n // render\n node.innerText = formatDiff(diff, localeFunc);\n var tid = setTimeout(function () {\n run(node, date, localeFunc, opts);\n }, Math.min(Math.max(nextInterval(diff), minInterval || 1) * 1000, 0x7fffffff));\n // there is no need to save node in object. Just save the key\n TIMER_POOL[tid] = 0;\n setTimerId(node, tid);\n}\n/**\n * cancel a timer or all timers\n * @param node - node hosting the time string\n */\nexport function cancel(node) {\n // cancel one\n if (node)\n clear(getTimerId(node));\n // cancel all\n // @ts-ignore\n else\n Object.keys(TIMER_POOL).forEach(clear);\n}\n/**\n * render a dom realtime\n * @param nodes\n * @param locale\n * @param opts\n */\nexport function render(nodes, locale, opts) {\n // by .length\n // @ts-ignore\n var nodeList = nodes.length ? nodes : [nodes];\n nodeList.forEach(function (node) {\n run(node, getDateAttribute(node), getLocale(locale), opts || {});\n });\n return nodeList;\n}\n//# sourceMappingURL=realtime.js.map","/**\n * Created by hustcc on 18/5/20.\n * Contract: i@hust.cc\n */\nimport en_US from './lang/en_US';\nimport zh_CN from './lang/zh_CN';\nimport { register } from './register';\nregister('en_US', en_US);\nregister('zh_CN', zh_CN);\nexport { format } from './format';\nexport { render, cancel } from './realtime';\nexport { register };\n//# sourceMappingURL=index.js.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport * as React from 'react';\nimport { format, cancel, render } from 'timeago.js';\n/**\n * Convert input to a valid datetime string of \n )\n\n }\n\n}\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","import { v4 as uuid } from 'uuid';\nimport equals from 'fast-deep-equal';\n\nexport default class WebAnnotation {\n\n constructor(annotation, opts) {\n this.underlying = annotation;\n this.opts = opts;\n }\n\n /** For convenience - creates an empty web annotation **/\n static create = args => {\n const stub = {\n '@context': 'http://www.w3.org/ns/anno.jsonld',\n 'type': 'Annotation',\n 'id': `#${uuid()}`,\n 'body': []\n };\n\n return new WebAnnotation({ ...stub, ...args });\n }\n\n /** Creates a copy of this annotation **/\n clone = (opt_props, opt_opts) => {\n return new WebAnnotation({ ...this.underlying, ...opt_props}, { ...this.opts, ...opt_opts });\n }\n\n /** An equality check based on the underlying object **/\n isEqual(other) {\n if (other?.type !== 'Annotation') {\n return false;\n } else if (this.underlying === other.underlying) {\n return true;\n } else if (!this.underlying.id || !other.underlying.id) {\n return false;\n } else {\n return equals(this.underlying, other.underlying);\n }\n }\n\n get readOnly() {\n return this.opts?.readOnly;\n }\n\n /*************************************/\n /* Getters to forward properties of */\n /* the underlying annotation */\n /*************************************/\n\n get id() {\n return this.underlying.id;\n }\n\n get context() {\n return this.underlying['@context'];\n }\n\n get type() {\n return this.underlying.type;\n }\n\n get motivation() {\n return this.underlying.motivation;\n }\n\n get body() {\n return this.underlying.body;\n }\n\n get target() {\n return this.underlying.target;\n }\n\n /** Same as .body, but guaranteed to return an array **/\n get bodies() {\n return (Array.isArray(this.underlying.body)) ?\n this.underlying.body : [ this.underlying.body ];\n }\n\n /** Only bodies are meant to be mutated by the application **/\n set bodies(bodies) {\n this.underlying.body = bodies;\n }\n\n /** Same as .target, but guaranteed to return an array **/\n get targets() {\n return (Array.isArray(this.underlying.target)) ?\n this.underlying.target : [ this.underlying.target ];\n }\n\n /*****************************************/\n /* Various access helpers and shorthands */\n /*****************************************/\n\n /** Selector of the given type **/\n selector = type => {\n const { target } = this.underlying;\n\n if (target.selector) {\n // Normalize to array\n const selectors = Array.isArray(target.selector) ?\n target.selector : [ target.selector ];\n\n return selectors.find(s => s.type === type);\n }\n }\n\n /** Shorthand for the 'exact' field of the TextQuoteSelector **/\n get quote() {\n return this.selector('TextQuoteSelector')?.exact;\n }\n\n /** Shorthand for the 'start' field of the TextPositionSelector **/\n get start() {\n return this.selector('TextPositionSelector')?.start;\n }\n\n /** Shorthand for the 'end' field of the TextPositionSelector **/\n get end() {\n return this.selector('TextPositionSelector')?.end;\n }\n\n}\n","import WebAnnotation from './WebAnnotation';\nimport { v4 as uuid } from 'uuid';\nimport equals from 'fast-deep-equal';\n\n/**\n * An \"annotation in draft mode\". Really the same\n * data structure, but as a separate class so we can\n * tell things apart properly.\n */\nexport default class Selection {\n\n constructor(target, body) {\n this.underlying = {\n '@context': 'http://www.w3.org/ns/anno.jsonld',\n type: 'Selection',\n body: body || [],\n target\n }\n }\n\n /** Creates a copy of this selection **/\n clone = opt_props => {\n // Deep-clone\n const cloned = new Selection();\n cloned.underlying = JSON.parse(JSON.stringify(this.underlying));\n\n if (opt_props)\n cloned.underlying = { ...cloned.underlying, ...opt_props };\n\n return cloned;\n }\n\n get context() {\n return this.underlying['@context'];\n }\n\n get type() {\n return this.underlying.type;\n }\n\n get body() {\n return this.underlying.body;\n }\n\n get target() {\n return this.underlying.target;\n }\n\n get targets() {\n return (Array.isArray(this.underlying.target)) ?\n this.underlying.target : [ this.underlying.target ];\n }\n\n /** For consistency with WebAnnotation **/\n isEqual(other) {\n if (!other) {\n return false;\n } else {\n return equals(this.underlying, other.underlying);\n }\n }\n\n get bodies() {\n return (Array.isArray(this.underlying.body)) ?\n this.underlying.body : [ this.underlying.body ];\n }\n\n selector = type => {\n const { target } = this.underlying;\n\n if (target.selector) {\n // Normalize to array\n const selectors = Array.isArray(target.selector) ?\n target.selector : [ target.selector ];\n\n return selectors.find(s => s.type === type);\n }\n }\n\n /** Shorthand for the 'exact' field of the TextQuoteSelector **/\n get quote() {\n return this.selector('TextQuoteSelector')?.exact;\n }\n\n /*******************************************/\n /* Selection-specific properties & methods */\n /*******************************************/\n\n get isSelection() {\n return true;\n }\n\n toAnnotation = () => {\n const a = Object.assign({}, this.underlying, {\n 'type': 'Annotation',\n 'id': `#${uuid()}`\n });\n\n return new WebAnnotation(a);\n }\n\n}\n","/**\n * Difference between server time and client time, in milliseconds\n */\nlet serverTimeDifference = 0;\n\nexport default () => ({\n \n /**\n * A generic container for RecogitoJS/Annotorious \n * to store globally available environment info. The \n * most important piece of information is user auth \n * info. Example:\n *\n * user: { id, displayName, email, avatarURL }\n * \n * id ........... the host application user ID (should be a URI, but could be username) REQUIRED\n * displayName .. screen display or nickname OPTIONAL (id is used when empty)\n * email ........ OPTIONAL\n * avatarURL .... OPTIONAL + not supported at the moment\n */\n\n /**\n * Sets a server time, so we can correct browser time error. \n * Note for the super-picky: client-server latency will introduce\n * an error we don't account for.\n */\n setServerTime: serverNow => {\n const browserNow = Date.now()\n serverTimeDifference = serverNow - browserNow;\n },\n \n /** \n * Returns the current 'server time', i.e. browser time \n * adjusted by the serverTimeDifference value.\n */\n getCurrentTimeAdjusted: () =>\n (new Date(Date.now() + serverTimeDifference)).toISOString(),\n\n /** Re-adjusts the given server timestamp to browser time **/\n toClientTime: serverTime =>\n Date.parse(serverTime) - serverTimeDifference\n\n})","import I18n, { availableLocales } from '../i18n';\n\n/**\n * Helper to init the i18n class with a pre-defined or auto-detected locale.\n */\nexport const setLocale = (locale, opt_messages) => {\n if (locale) {\n const l = locale === 'auto' ?\n window.navigator.userLanguage || window.navigator.language : locale;\n\n const fallback = l.split('-')[0].toLowerCase();\n const foundLocale = [l, fallback].find(_l => availableLocales.includes(_l));\n\n if (!foundLocale) {\n console.warn(`Unsupported locale '${l}'. Falling back to default en.`);\n }\n\n I18n.init(foundLocale, opt_messages);\n } else {\n I18n.init(null, opt_messages);\n }\n}\n","import { Selection } from '@recogito/recogito-client-core';\nimport { SVG_NAMESPACE } from '../../util/SVG';\nimport {\n drawRect,\n drawRectMask,\n setRectSize,\n setRectMaskSize,\n toRectFragment\n} from '../../selectors/RectFragment';\n\n/**\n * A 'rubberband' selection tool for creating a rectangle by\n * clicking and dragging.\n */\nexport default class RubberbandRect {\n\n constructor(anchorX, anchorY, g, config, env) {\n this.anchor = [anchorX, anchorY];\n this.opposite = [anchorX, anchorY];\n\n this.config = config;\n this.env = env;\n\n this.group = document.createElementNS(SVG_NAMESPACE, 'g');\n\n this.mask = drawRectMask(env.image, anchorX, anchorY, 2, 2);\n this.mask.setAttribute('class', 'a9s-selection-mask');\n\n this.rect = drawRect(anchorX, anchorY, 2, 2);\n this.rect.setAttribute('class', 'a9s-selection');\n\n // We make the selection transparent to \n // pointer events because it would interfere with the \n // rendered annotations' mouseleave/enter events\n this.group.style.pointerEvents = 'none';\n\n // Additionally, selection remains hidden until \n // the user actually moves the mouse\n this.group.style.display = 'none';\n\n this.group.appendChild(this.mask);\n this.group.appendChild(this.rect);\n\n g.appendChild(this.group);\n }\n\n get bbox() {\n const w = this.opposite[0] - this.anchor[0];\n const h = this.opposite[1] - this.anchor[1];\n\n return {\n x: w > 0 ? this.anchor[0] : this.opposite[0],\n y: h > 0 ? this.anchor[1] : this.opposite[1],\n w: Math.max(1, Math.abs(w)), // Negative values\n h: Math.max(1, Math.abs(h))\n };\n }\n\n get element() {\n return this.rect;\n }\n\n dragTo = (oppositeX, oppositeY) => {\n // Make visible\n this.group.style.display = null;\n\n this.opposite = [oppositeX, oppositeY];\n const { x, y, w, h } = this.bbox;\n\n setRectMaskSize(this.mask, this.env.image, x, y, w, h);\n setRectSize(this.rect, x, y, w, h);\n }\n\n getBoundingClientRect = () =>\n this.rect.getBoundingClientRect();\n\n toSelection = () => {\n const { x, y, w, h } = this.bbox;\n return new Selection(toRectFragment(x, y, w, h, this.env.image, this.config.fragmentUnit));\n }\n\n destroy = () => {\n this.group.parentNode.removeChild(this.group);\n\n this.mask = null;\n this.rect = null;\n this.group = null;\n }\n\n}","const SIM_EVENTS = {\n touchstart: 'mousedown',\n touchmove: 'mousemove',\n touchend: 'mouseup'\n}\n\nexport const isTouchDevice = () =>\n 'ontouchstart' in window ||\n navigator.maxTouchPoints > 0 ||\n navigator.msMaxTouchPoints > 0;\n\nexport const enableTouchTranslation = el => {\n\n let pressAndHoldTrigger = null;\n\n const simulateEvent = (type, e) => new MouseEvent(type, {\n screenX: e.screenX,\n screenY: e.screenY,\n clientX: e.clientX,\n clientY: e.clientY,\n pageX: e.pageX,\n pageY: e.pageY,\n bubbles: true\n });\n\n const touchHandler = evt => {\n const touch = evt.changedTouches[0];\n const simulatedEvent = simulateEvent(SIM_EVENTS[evt.type], touch);\n\n touch.target.dispatchEvent(simulatedEvent);\n evt.preventDefault();\n\n if (evt.type === 'touchstart' || evt.type === 'touchmove') {\n pressAndHoldTrigger && clearTimeout(pressAndHoldTrigger);\n\n pressAndHoldTrigger = setTimeout(() => {\n const simulatedEvent = simulateEvent('dblclick', touch);\n touch.target.dispatchEvent(simulatedEvent);\n }, 800);\n }\n\n if (evt.type === 'touchend')\n pressAndHoldTrigger && clearTimeout(pressAndHoldTrigger);\n }\n\n el.addEventListener('touchstart', touchHandler, true);\n el.addEventListener('touchmove', touchHandler, true);\n el.addEventListener('touchend', touchHandler, true);\n el.addEventListener('touchcancel', touchHandler, true);\n\n}","import EventEmitter from 'tiny-emitter';\nimport { isTouchDevice } from '../util/Touch';\nimport { SVG_NAMESPACE } from '../util/SVG';\n\nconst IMPLEMENTATION_MISSING = \"An implementation is missing\";\n\nconst isTouch = isTouchDevice();\n\n/**\n * A commmon base class for Tools and EditableShapes\n */\nexport class ToolLike extends EventEmitter {\n\n constructor(g, config, env) {\n super();\n\n this.svg = g.closest('svg');\n\n this.g = g;\n this.config = config;\n this.env = env;\n\n // Default image scale\n this.scale = 1;\n\n // Bit of a hack. If we are dealing with a 'real' image, we enable\n // reponsive mode. OpenSeadragon handles scaling in a different way,\n // so we don't need responsive mode.\n const { image } = env;\n if (image instanceof Element || image instanceof HTMLDocument)\n this.enableResponsive();\n }\n\n /**\n * Implementations MAY extend this (calling super),\n * to destroy SVG elements, mask, etc.\n */\n destroy() {\n if (this.resizeObserver)\n this.resizeObserver.disconnect();\n\n this.resizeObserver = null;\n }\n\n enableResponsive = () => {\n if (window.ResizeObserver) {\n this.resizeObserver = new ResizeObserver(() => {\n const svgBounds = this.svg.getBoundingClientRect();\n const { width, height } = this.svg.viewBox.baseVal;\n\n this.scale = Math.max(\n width / svgBounds.width,\n height / svgBounds.height\n );\n\n if (this.onScaleChanged)\n this.onScaleChanged(this.scale);\n });\n\n this.resizeObserver.observe(this.svg.parentNode);\n }\n }\n\n getSVGPoint = evt => {\n const pt = this.svg.createSVGPoint();\n\n if (isTouch) {\n const bbox = this.svg.getBoundingClientRect();\n\n const x = evt.clientX - bbox.x;\n const y = evt.clientY - bbox.y;\n\n const { left, top } = this.svg.getBoundingClientRect();\n pt.x = x + left;\n pt.y = y + top;\n\n return pt.matrixTransform(this.g.getScreenCTM().inverse());\n } else {\n pt.x = evt.offsetX;\n pt.y = evt.offsetY;\n\n return pt.matrixTransform(this.g.getCTM().inverse());\n }\n }\n\n /*********************************/\n /* Helpers for drawing handles */\n /*********************************/\n\n drawHandle = (x, y) => {\n const containerGroup = document.createElementNS(SVG_NAMESPACE, 'g');\n containerGroup.setAttribute('class', 'a9s-handle');\n\n const group = document.createElementNS(SVG_NAMESPACE, 'g');\n\n const drawCircle = r => {\n const c = document.createElementNS(SVG_NAMESPACE, 'circle');\n c.setAttribute('cx', x);\n c.setAttribute('cy', y);\n c.setAttribute('r', r);\n c.setAttribute('transform-origin', `${x} ${y}`);\n return c;\n }\n\n const radius = this.config.handleRadius || 6;\n\n const inner = drawCircle(radius);\n inner.setAttribute('class', 'a9s-handle-inner')\n\n const outer = drawCircle(radius + 1);\n outer.setAttribute('class', 'a9s-handle-outer')\n\n group.appendChild(outer);\n group.appendChild(inner);\n\n containerGroup.appendChild(group);\n return containerGroup;\n }\n\n setHandleXY = (handle, x, y) => {\n const inner = handle.querySelector('.a9s-handle-inner');\n inner.setAttribute('cx', x);\n inner.setAttribute('cy', y);\n inner.setAttribute('transform-origin', `${x} ${y}`);\n\n const outer = handle.querySelector('.a9s-handle-outer');\n outer.setAttribute('cx', x);\n outer.setAttribute('cy', y);\n outer.setAttribute('transform-origin', `${x} ${y}`);\n }\n\n getHandleXY = handle => {\n const outer = handle.querySelector('.a9s-handle-outer');\n return {\n x: parseFloat(outer.getAttribute('cx')),\n y: parseFloat(outer.getAttribute('cy'))\n }\n }\n\n scaleHandle = handle => {\n const inner = handle.querySelector('.a9s-handle-inner');\n const outer = handle.querySelector('.a9s-handle-outer');\n\n const radius = this.scale * (this.config.handleRadius || 6);\n\n inner.setAttribute('r', radius);\n outer.setAttribute('r', radius);\n }\n\n}\n\n/**\n * Base class that adds some convenience stuff for tool plugins.\n */\nexport default class Tool extends ToolLike {\n\n constructor(g, config, env) {\n super(g, config, env);\n\n // We'll keep a flag set to false until\n // the user has started moving, so we can\n // fire the startSelection event\n this.started = false;\n }\n\n attachListeners = ({ mouseMove, mouseUp, dblClick }) => {\n // Handle SVG conversion on behalf of tool implementations\n if (mouseMove) {\n this.mouseMove = evt => {\n const { x , y } = this.getSVGPoint(evt);\n\n if (!this.started) {\n this.emit('startSelection', { x, y });\n this.started = true;\n }\n\n mouseMove(x, y, evt);\n }\n\n // Mouse move goes on SVG element\n this.svg.addEventListener('mousemove', this.mouseMove);\n }\n\n if (mouseUp) {\n this.mouseUp = evt => {\n if (evt.button !== 0) return; // left click\n const { x , y } = this.getSVGPoint(evt);\n mouseUp(x, y, evt);\n }\n\n // Mouse up goes on doc, so we capture events outside, too\n document.addEventListener('mouseup', this.mouseUp);\n }\n\n if (dblClick) {\n this.dblClick = evt => {\n const { x , y } = this.getSVGPoint(evt);\n dblClick(x, y, evt);\n }\n\n document.addEventListener('dblclick', this.dblClick);\n }\n\n }\n\n detachListeners = () => {\n if (this.mouseMove)\n this.svg.removeEventListener('mousemove', this.mouseMove);\n\n if (this.mouseUp)\n document.removeEventListener('mouseup', this.mouseUp);\n\n if (this.dblClick)\n document.removeEventListener('dblclick', this.dblClick);\n }\n\n /**\n * If startOnSingleClick is true, the tool starts on single click\n * as well as drag. If false, starting strictly requires drag!\n */\n start = (evt, startOnSingleClick) => {\n // Handle SVG conversion on behalf of tool implementations\n const { x, y } = this.getSVGPoint(evt);\n \n // Constrain the initial coordinates (x, y) to be within the image bounds\n const { naturalWidth, naturalHeight } = this.env.image;\n const startX = x < 0 ? 0 : (x > naturalWidth ? naturalWidth : x);\n const startY = y < 0 ? 0 : (y > naturalHeight ? naturalHeight : y);\n \n this.startDrawing(startX, startY, startOnSingleClick, evt);\n }\n\n /**\n * Tool implementations MUST override these\n */\n\n get isDrawing() {\n throw new Error(IMPLEMENTATION_MISSING);\n }\n\n startDrawing = evt => {\n throw new Error(IMPLEMENTATION_MISSING);\n }\n\n createEditableShape = (annotation, formatters) => {\n throw new Error(IMPLEMENTATION_MISSING);\n }\n\n}\n\n// In addition, Tool implementations need to implement the following static methods\n\n// Tool.identifier = '...'\n\nTool.supports = annotation => {\n throw new Error(IMPLEMENTATION_MISSING);\n}\n\n// Just some convenience shortcuts to client-core, for quicker\n// importing in plugins. (In a way, the intention is to make the\n// Tool class serve as a kind of mini-SDK).\nexport { default as Selection } from '@recogito/recogito-client-core/src/Selection';\nexport { default as WebAnnotation } from '@recogito/recogito-client-core/src/WebAnnotation';\n","import { ToolLike } from './Tool';\n\nconst IMPLEMENTATION_MISSING = \"An implementation is missing\";\n\nexport default class EditableShape extends ToolLike {\n\n constructor(annotation, g, config, env) {\n super(g, config, env);\n\n this.annotation = annotation;\n }\n \n /**\n * Implementations MUST override this method!\n * \n * Must return the 'g' element with the a9s-annotation class.\n */\n get element() {\n throw new Error(IMPLEMENTATION_MISSING);\n }\n\n /**\n * Implementations MUST override this method!\n * \n * The annotation argument MUST be used to update\n * the current state of the shape. It MUST NOT\n * be stored as 'this.annotation'! 'this.annotation'\n * MUST remain the original annotation at the time\n * this EditableShape was created, because we will\n * need it again in case the user cancels editing.\n * \n * Thinking of it in React terms, 'this.annotation'\n * has the same purpose as props.annotation, whereas\n * this method affects state.\n */\n updateState = annotation => {\n throw new Error(IMPLEMENTATION_MISSING);\n }\n\n}\n","import { addClass, SVG_NAMESPACE } from './SVG';\n\nconst isFirefox = /firefox/i.test(navigator.userAgent);\n\nconst formatSvgEl = (svgEl, x, y, w, h) => {\n svgEl.setAttribute('width', w);\n svgEl.setAttribute('height', h);\n\n // Argh - Firefox produces broken SVG bounds for nested SVG\n if (isFirefox) {\n svgEl.setAttribute('x', 0);\n svgEl.setAttribute('y', 0);\n svgEl.setAttribute('transform', `translate(${x}, ${y})`); \n } else {\n svgEl.setAttribute('x', x);\n svgEl.setAttribute('y', y);\n }\n}\n\nconst appendFormatterEl = (formatterEl, shape) => {\n const { x, y, width, height } = shape.getBBox();\n\n const svgEl = document.createElementNS(SVG_NAMESPACE, 'svg');\n svgEl.setAttribute('class', 'a9s-formatter-el');\n\n formatSvgEl(svgEl, x, y, width, height);\n\n const g = document.createElementNS(SVG_NAMESPACE, 'g');\n g.appendChild(formatterEl);y\n\n svgEl.appendChild(g);\n \n shape.append(svgEl);\n}\n\n/**\n * A formatter is a user-defined function that takes an annotation as input,\n * and returns either a string, or an object. If a string is returned, this\n * will be appended to the annotation element CSS class list. Otherwise, the\n * object can have the following properties: \n * \n * - 'className' added to the CSS class list\n * - 'data-*' added as data attributes\n * - 'style' a list of CSS styles (in the form of a string) \n */\nexport const format = (shape, annotation, formatters) => {\n // The formatter can be undefined\n if (!formatters)\n return shape;\n\n // Merge outputs from all formatter functions into one object\n const format = formatters.reduce((merged, fn) => {\n const format = fn(annotation);\n\n if (!format)\n return merged;\n\n if (typeof format === 'string' || format instanceof String) {\n merged.className = merged.className ? `${merged.className} ${format}` : format; \n } else if (format.nodeType === Node.ELEMENT_NODE) {\n merged.elements = merged.elements ? [...merged.elements, format] : [format];\n } else {\n const { className, style, element } = format;\n\n if (className)\n merged.className = merged.className ? `${merged.className} ${className}` : className;\n\n if (style)\n merged.style = merged.style ? `${merged.style} ${style}` : style;\n\n if (element)\n merged.elements = merged.elements ? [...merged.elements, element] : [element];\n }\n\n // Copy data attributes\n for (const key in format) {\n if (format.hasOwnProperty(key) && key.startsWith('data-')) {\n merged[key] = format[key];\n }\n }\n\n return merged;\n }, {});\n\n const { className, style, elements } = format;\n\n if (className)\n addClass(shape, className);\n\n if (style) {\n const outer = shape.querySelector('.a9s-outer');\n const inner = shape.querySelector('.a9s-inner');\n\n if (outer && inner) {\n outer.setAttribute('style', 'display:none');\n inner.setAttribute('style', style);\n } else {\n shape.setAttribute('style', style);\n }\n }\n\n if (elements)\n elements.forEach(el => appendFormatterEl(el, shape));\n\n for (const key in format) {\n if (format.hasOwnProperty(key) && key.startsWith('data-')) {\n shape.setAttribute(key, format[key]);\n }\n }\n}\n\nexport const setFormatterElSize = (group, x, y, w, h) => {\n const formatterEl = group.querySelector('.a9s-formatter-el');\n if (formatterEl)\n formatSvgEl(formatterEl, x, y, w, h);\n}","import EditableShape from '../EditableShape';\nimport { SVG_NAMESPACE } from '../../util/SVG';\nimport { format, setFormatterElSize } from '../../util/Formatting';\nimport {\n drawRect,\n drawRectMask,\n parseRectFragment,\n getRectSize,\n setRectSize,\n toRectFragment,\n setRectMaskSize\n} from '../../selectors/RectFragment';\n\nconst CORNER = 'corner';\nconst EDGE = 'edge';\n\n/**\n * An editable rectangle shape.\n */\nexport default class EditableRect extends EditableShape {\n\n constructor(annotation, g, config, env) {\n super(annotation, g, config, env);\n\n this.svg.addEventListener('mousemove', this.onMouseMove);\n this.svg.addEventListener('mouseup', this.onMouseUp);\n\n const { x, y, w, h } = parseRectFragment(annotation, env.image);\n\n // SVG markup for this class looks like this:\n //\n // \n // \n // <-- return this node as .element\n // \n // \n // ... \n // ... \n // ... \n // ... \n // \n // \n\n // 'g' for the editable rect compound shape\n this.containerGroup = document.createElementNS(SVG_NAMESPACE, 'g');\n\n this.mask = drawRectMask(env.image, x, y, w, h);\n this.mask.setAttribute('class', 'a9s-selection-mask');\n this.containerGroup.appendChild(this.mask);\n\n // The 'element' = rectangles + handles\n this.elementGroup = document.createElementNS(SVG_NAMESPACE, 'g');\n this.elementGroup.setAttribute('class', 'a9s-annotation editable selected');\n this.elementGroup.setAttribute('data-id', annotation.id);\n\n this.rectangle = drawRect(x, y, w, h);\n this.rectangle.querySelector('.a9s-inner')\n .addEventListener('mousedown', this.onGrab(this.rectangle));\n\n this.elementGroup.appendChild(this.rectangle);\n\n this.enableEdgeControls = config.enableEdgeControls;\n\n const edgeHandles = this.enableEdgeControls\n ? [\n [x + w / 2, y, EDGE],\n [x + w, y + h / 2, EDGE],\n [x + w / 2, y + h, EDGE],\n [x, y + h / 2, EDGE],\n ]\n : [];\n\n this.handles = [\n [x, y, CORNER],\n [x + w, y, CORNER],\n [x + w, y + h, CORNER],\n [x, y + h, CORNER],\n ...edgeHandles,\n ].map(t => {\n const [x, y, type] = t;\n const handle = this.drawHandle(x, y);\n\n handle.addEventListener('mousedown', this.onGrab(handle, type));\n this.elementGroup.appendChild(handle);\n\n return handle;\n });\n\n this.containerGroup.appendChild(this.elementGroup);\n\n g.appendChild(this.containerGroup);\n\n format(this.rectangle, annotation, config.formatters);\n\n // The grabbed element (handle or entire group), if any\n this.grabbedElem = null;\n \n // Type of the grabbed element, either 'corner' or 'edge'\n this.grabbedType = null;\n\n // Mouse xy offset inside the shape, if mouse pressed\n this.mouseOffset = null;\n }\n\n onScaleChanged = () => \n this.handles.map(this.scaleHandle);\n\n setSize = (x, y, w, h) => {\n setRectSize(this.rectangle, x, y, w, h);\n setRectMaskSize(this.mask, this.env.image, x, y, w, h);\n setFormatterElSize(this.elementGroup, x, y, w, h);\n\n const [\n topleft,\n topright,\n bottomright,\n bottomleft,\n topEdge,\n rightEdge,\n bottomEdge,\n leftEdge\n ] = this.handles;\n\n this.setHandleXY(topleft, x, y);\n this.setHandleXY(topright, x + w, y);\n this.setHandleXY(bottomright, x + w, y + h);\n this.setHandleXY(bottomleft, x, y + h);\n\n if (this.enableEdgeControls) {\n this.setHandleXY(topEdge, x + w / 2, y);\n this.setHandleXY(rightEdge, x + w, y + h / 2);\n this.setHandleXY(bottomEdge, x + w / 2, y + h);\n this.setHandleXY(leftEdge, x, y + h / 2);\n }\n }\n\n stretchCorners = (draggedHandleIdx, anchorHandle, mousePos) => {\n const anchor = this.getHandleXY(anchorHandle);\n\n const width = mousePos.x - anchor.x;\n const height = mousePos.y - anchor.y;\n\n const x = width > 0 ? anchor.x : mousePos.x;\n const y = height > 0 ? anchor.y : mousePos.y;\n const w = Math.abs(width);\n const h = Math.abs(height);\n\n this.setSize(x, y, w, h);\n\n return { x, y, w, h };\n }\n\n stretchEdge = (handleIdx, oppositeHandle, mousePos) => {\n const anchor = this.getHandleXY(oppositeHandle);\n const currentRectDims = getRectSize(this.rectangle);\n const isHeightAdjustment = handleIdx % 2 === 0;\n\n const width = isHeightAdjustment ? currentRectDims.w : mousePos.x - anchor.x;\n const height = isHeightAdjustment ? mousePos.y - anchor.y : currentRectDims.h;\n\n const x = isHeightAdjustment ? currentRectDims.x : (width > 0 ? anchor.x : mousePos.x);\n const y = isHeightAdjustment ? (height > 0 ? anchor.y : mousePos.y) : currentRectDims.y;\n const w = Math.abs(width);\n const h = Math.abs(height);\n\n this.setSize(x, y, w, h);\n\n return { x, y, w, h };\n };\n\n onGrab = (grabbedElem, type) => evt => {\n if (evt.button !== 0) return; // left click\n this.grabbedElem = grabbedElem;\n this.grabbedType = type;\n const pos = this.getSVGPoint(evt);\n const { x, y } = getRectSize(this.rectangle);\n this.mouseOffset = { x: pos.x - x, y: pos.y - y };\n }\n\n onMouseMove = evt => {\n if (evt.button !== 0) return; // left click\n const constrain = (coord, max) =>\n coord < 0 ? 0 : (coord > max ? max : coord);\n\n if (this.grabbedElem) {\n const pos = this.getSVGPoint(evt);\n\n if (this.grabbedElem === this.rectangle) {\n // x/y changes by mouse offset, w/h remains unchanged\n const { w, h } = getRectSize(this.rectangle);\n\n const { naturalWidth, naturalHeight } = this.env.image;\n\n const x = constrain(pos.x - this.mouseOffset.x, naturalWidth - w);\n const y = constrain(pos.y - this.mouseOffset.y, naturalHeight - h);\n\n this.setSize(x, y, w, h);\n this.emit('update', toRectFragment(x, y, w, h, this.env.image, this.config.fragmentUnit));\n } else {\n // Mouse position replaces one of the corner coords, depending\n // on which handle is the grabbed element\n const handleIdx = this.handles.indexOf(this.grabbedElem);\n const oppositeHandle = this.handles[handleIdx ^ 2];\n\n const { x, y, w, h } = \n this.grabbedType === CORNER\n ? this.stretchCorners(handleIdx, oppositeHandle, pos)\n : this.stretchEdge(handleIdx, oppositeHandle, pos);\n\n this.emit('update', toRectFragment(x, y, w, h, this.env.image, this.config.fragmentUnit));\n }\n }\n }\n\n onMouseUp = evt => {\n this.grabbedElem = null;\n this.grabbedType = null;\n this.mouseOffset = null;\n }\n\n get element() {\n return this.elementGroup;\n }\n\n updateState = annotation => {\n const { x, y, w, h } = parseRectFragment(annotation, this.env.image);\n this.setSize(x, y, w, h);\n }\n\n destroy() {\n this.containerGroup.parentNode.removeChild(this.containerGroup);\n super.destroy();\n }\n\n}\n","import RubberbandRect from './RubberbandRect';\nimport EditableRect from './EditableRect';\nimport Tool from '../Tool';\n\n/**\n * A rubberband selector for rectangle fragments.\n */\nexport default class RubberbandRectTool extends Tool {\n\n constructor(g, config, env) {\n // Most of the basics are handled in the Tool base class\n super(g, config, env);\n\n this.rubberband = null;\n }\n\n startDrawing = (x, y) => {\n this.attachListeners({\n mouseMove: this.onMouseMove,\n mouseUp: this.onMouseUp\n });\n\n this.rubberband = new RubberbandRect(x, y, this.g, this.config, this.env);\n }\n\n stop = () => {\n if (this.rubberband) {\n this.rubberband.destroy();\n this.rubberband = null;\n }\n }\n\n onMouseMove = (x, y) => {\n // Constrain the initial coordinates (x, y) to be within the image bounds\n const { naturalWidth, naturalHeight } = this.env.image;\n const constrainX = Math.min(Math.max(x, 0), naturalWidth);\n const constrainY = Math.min(Math.max(y, 0), naturalHeight);\n\n this.rubberband.dragTo(constrainX, constrainY);\n }\n \n onMouseUp = () => {\n this.detachListeners();\n this.started = false;\n\n const { width, height } = this.rubberband.getBoundingClientRect();\n\n const minWidth = this.config.minSelectionWidth || 4;\n const minHeight = this.config.minSelectionHeight || 4;\n\n if (width >= minWidth && height >= minHeight) {\n // Emit the SVG shape with selection attached \n const { element } = this.rubberband;\n element.annotation = this.rubberband.toSelection();\n\n // Emit the completed shape...\n this.emit('complete', element);\n } else {\n this.emit('cancel');\n }\n\n this.stop();\n }\n\n get isDrawing() {\n return this.rubberband != null;\n }\n \n createEditableShape = (annotation, formatters) =>\n new EditableRect(annotation, this.g, {...this.config, formatters}, this.env);\n\n}\n\nRubberbandRectTool.identifier = 'rect';\n\nRubberbandRectTool.supports = annotation => {\n const fragmentSelector = annotation.selector('FragmentSelector');\n return fragmentSelector?.conformsTo.startsWith('http://www.w3.org/TR/media-frags');\n}","import { SVG_NAMESPACE } from '../../util/SVG';\n\nexport default class PolygonMask {\n\n constructor(imageDimensions, polygon) {\n this.w = imageDimensions.naturalWidth;\n this.h = imageDimensions.naturalHeight;\n\n this.polygon = polygon;\n\n this.mask = document.createElementNS(SVG_NAMESPACE, 'path');\n this.mask.setAttribute('fill-rule', 'evenodd'); \n this.mask.setAttribute('class', 'a9s-selection-mask');\n\n this.mask.setAttribute('d', `M0 0 h${this.w} v${this.h} h-${this.w} z M${this.polygon.getAttribute('points')} z`);\n }\n\n redraw = () => {\n this.mask.setAttribute('d', `M0 0 h${this.w} v${this.h} h-${this.w} z M${this.polygon.getAttribute('points')} z`);\n }\n\n get element() {\n return this.mask;\n }\n\n destroy = () =>\n this.mask.parentNode.removeChild(this.mask)\n\n}","import { Selection } from '@recogito/recogito-client-core';\nimport { toSVGTarget } from '../../selectors/EmbeddedSVG';\nimport { SVG_NAMESPACE } from '../../util/SVG';\nimport Mask from './PolygonMask';\n\nexport default class RubberbandPolygon {\n\n constructor(anchor, g, env) {\n this.points = [ anchor ];\n this.env = env;\n\n this.mousepos = anchor;\n\n this.group = document.createElementNS(SVG_NAMESPACE, 'g');\n \n this.polygon = document.createElementNS(SVG_NAMESPACE, 'g');\n this.polygon.setAttribute('class', 'a9s-selection');\n\n this.outer = document.createElementNS(SVG_NAMESPACE, 'polygon');\n this.outer.setAttribute('class', 'a9s-outer');\n\n this.inner = document.createElementNS(SVG_NAMESPACE, 'polygon');\n this.inner.setAttribute('class', 'a9s-inner');\n\n this.setPoints(this.points);\n\n this.mask = new Mask(env.image, this.inner);\n\n this.polygon.appendChild(this.outer);\n this.polygon.appendChild(this.inner);\n\n // Additionally, selection remains hidden until \n // the user actually moves the mouse\n this.group.style.display = 'none';\n\n this.group.appendChild(this.mask.element);\n this.group.appendChild(this.polygon);\n\n g.appendChild(this.group);\n }\n\n setPoints = points => {\n const attr = points.map(t => `${t[0]},${t[1]}`).join(' ');\n this.outer.setAttribute('points', attr);\n this.inner.setAttribute('points', attr);\n }\n\n getBoundingClientRect = () =>\n this.outer.getBoundingClientRect();\n\n dragTo = xy => {\n // Make visible\n this.group.style.display = null;\n\n this.mousepos = xy;\n\n const rubberband = [ ...this.points, xy ];\n \n this.setPoints(rubberband);\n this.mask.redraw();\n }\n\n addPoint = () => {\n // Don't add a new point if distance < 2 pixels\n const [x, y] = this.mousepos;\n const lastCorner = this.points[this.points.length - 1];\n const dist = Math.pow(x - lastCorner[0], 2) + Math.pow(y - lastCorner[1], 2);\n \n if (dist > 4) {\n this.points = [ ...this.points, this.mousepos];\n this.setPoints(this.points); \n this.mask.redraw();\n }\n }\n\n get element() {\n return this.polygon;\n }\n\n destroy = () => {\n this.group.parentNode.removeChild(this.group);\n this.polygon = null; \n this.group = null;\n }\n\n toSelection = () => {\n return new Selection(toSVGTarget(this.group, this.env.image));\n }\n\n}\n","import EditableShape from '../EditableShape';\nimport { drawEmbeddedSVG, svgFragmentToShape, toSVGTarget } from '../../selectors/EmbeddedSVG';\nimport { SVG_NAMESPACE } from '../../util/SVG';\nimport { format, setFormatterElSize } from '../../util/Formatting';\nimport Mask from './PolygonMask';\n\nconst getPoints = shape => {\n // Could just be Array.from(shape.querySelector('.inner').points) but...\n // IE11 :-(\n const pointList = shape.querySelector('.a9s-inner').points;\n const points = [];\n\n for (let i=0; i\n shape.querySelector('.a9s-inner').getBBox();\n\n/**\n * An editable polygon shape.\n */\nexport default class EditablePolygon extends EditableShape {\n\n constructor(annotation, g, config, env) {\n super(annotation, g, config, env);\n\n this.svg.addEventListener('mousemove', this.onMouseMove);\n this.svg.addEventListener('mouseup', this.onMouseUp);\n\n // SVG markup for this class looks like this:\n //\n // \n // \n // <-- return this node as .element\n // \n // \n // ... \n // ... \n // ... \n // ...\n // \n // \n\n // 'g' for the editable polygon compound shape\n this.containerGroup = document.createElementNS(SVG_NAMESPACE, 'g');\n\n this.shape = drawEmbeddedSVG(annotation);\n this.shape.querySelector('.a9s-inner')\n .addEventListener('mousedown', this.onGrab(this.shape));\n\n this.mask = new Mask(env.image, this.shape.querySelector('.a9s-inner'));\n\n this.containerGroup.appendChild(this.mask.element);\n\n this.elementGroup = document.createElementNS(SVG_NAMESPACE, 'g');\n this.elementGroup.setAttribute('class', 'a9s-annotation editable selected');\n this.elementGroup.setAttribute('data-id', annotation.id);\n this.elementGroup.appendChild(this.shape);\n\n this.handles = getPoints(this.shape).map(pt => {\n const handle = this.drawHandle(pt.x, pt.y);\n handle.addEventListener('mousedown', this.onGrab(handle));\n this.elementGroup.appendChild(handle);\n return handle;\n });\n\n this.containerGroup.appendChild(this.elementGroup);\n g.appendChild(this.containerGroup);\n\n format(this.shape, annotation, config.formatters);\n\n // The grabbed element (handle or entire shape), if any\n this.grabbedElem = null;\n\n // Mouse grab point\n this.grabbedAt = null;\n }\n\n onScaleChanged = () => \n this.handles.map(this.scaleHandle);\n\n setPoints = (points) => {\n // Not using .toFixed(1) because that will ALWAYS\n // return one decimal, e.g. \"15.0\" (when we want \"15\")\n const round = num =>\n Math.round(10 * num) / 10;\n\n const str = points.map(pt => `${round(pt.x)},${round(pt.y)}`).join(' ');\n\n const inner = this.shape.querySelector('.a9s-inner');\n inner.setAttribute('points', str);\n\n const outer = this.shape.querySelector('.a9s-outer');\n outer.setAttribute('points', str);\n\n this.mask.redraw();\n\n const { x, y, width, height } = outer.getBBox();\n setFormatterElSize(this.elementGroup, x, y, width, height);\n }\n\n onGrab = grabbedElem => evt => {\n if (evt.button !== 0) return; // left click\n this.grabbedElem = grabbedElem;\n this.grabbedAt = this.getSVGPoint(evt);\n }\n\n onMouseMove = evt => {\n const constrain = (coord, delta, max) =>\n coord + delta < 0 ? -coord : (coord + delta > max ? max - coord : delta);\n\n if (this.grabbedElem) {\n const pos = this.getSVGPoint(evt);\n\n if (this.grabbedElem === this.shape) {\n const { x, y, width, height } = getBBox(this.shape);\n\n const { naturalWidth, naturalHeight } = this.env.image;\n\n const dx = constrain(x, pos.x - this.grabbedAt.x, naturalWidth - width);\n const dy = constrain(y, pos.y - this.grabbedAt.y, naturalHeight - height);\n\n const updatedPoints = getPoints(this.shape).map(pt =>\n ({ x: pt.x + dx, y: pt.y + dy }));\n\n this.grabbedAt = pos;\n\n this.setPoints(updatedPoints);\n updatedPoints.forEach((pt, idx) => this.setHandleXY(this.handles[idx], pt.x, pt.y));\n\n this.emit('update', toSVGTarget(this.shape, this.env.image));\n } else {\n const handleIdx = this.handles.indexOf(this.grabbedElem);\n\n const updatedPoints = getPoints(this.shape).map((pt, idx) =>\n (idx === handleIdx) ? pos : pt);\n\n this.setPoints(updatedPoints);\n this.setHandleXY(this.handles[handleIdx], pos.x, pos.y);\n\n this.emit('update', toSVGTarget(this.shape, this.env.image));\n }\n }\n }\n\n onMouseUp = evt => {\n this.grabbedElem = null;\n this.grabbedAt = null;\n }\n\n get element() {\n return this.elementGroup;\n }\n\n updateState = annotation => {\n const points = svgFragmentToShape(annotation)\n .getAttribute('points')\n .split(' ') // Split x/y tuples\n .map(xy => { \n const [ x, y ] = xy.split(',').map(str => parseFloat(str.trim()));\n return { x, y };\n });\n \n this.setPoints(points);\n points.forEach((pt, idx) => this.setHandleXY(this.handles[idx], pt.x, pt.y));\n }\n\n destroy = () => {\n this.containerGroup.parentNode.removeChild(this.containerGroup);\n super.destroy();\n }\n\n}\n","import RubberbandPolygon from './RubberbandPolygon';\nimport EditablePolygon from './EditablePolygon';\nimport Tool from '../Tool';\n\n/**\n * A rubberband selector for polygon fragments.\n */\nexport default class RubberbandPolygonTool extends Tool {\n\n constructor(g, config, env) {\n super(g, config, env);\n\n this._isDrawing = false;\n this._startOnSingleClick = false;\n }\n\n startDrawing = (x, y, startOnSingleClick) => {\n this._isDrawing = true;\n this._startOnSingleClick = startOnSingleClick;\n\n this.attachListeners({\n mouseMove: this.onMouseMove,\n mouseUp: this.onMouseUp,\n dblClick: this.onDblClick\n });\n \n this.rubberband = new RubberbandPolygon([ x, y ], this.g, this.env);\n }\n\n stop = () => {\n this.detachListeners();\n \n this._isDrawing = false;\n\n if (this.rubberband) {\n this.rubberband.destroy();\n this.rubberband = null;\n }\n }\n\n onMouseMove = (x, y) =>\n this.rubberband.dragTo([ x, y ]);\n\n onMouseUp = () => {\n const { width, height } = this.rubberband.getBoundingClientRect();\n\n const minWidth = this.config.minSelectionWidth || 4;\n const minHeight = this.config.minSelectionHeight || 4;\n \n if (width >= minWidth || height >= minHeight) {\n this.rubberband.addPoint();\n } else if (!this._startOnSingleClick) {\n this.emit('cancel');\n this.stop();\n }\n }\n\n onDblClick = () => {\n this._isDrawing = false;\n\n const shape = this.rubberband.element;\n shape.annotation = this.rubberband.toSelection();\n this.emit('complete', shape);\n\n this.stop();\n }\n\n get isDrawing() {\n return this._isDrawing;\n }\n\n createEditableShape = (annotation, formatters) =>\n new EditablePolygon(annotation, this.g, {...this.config, formatters}, this.env);\n\n}\n\nRubberbandPolygonTool.identifier = 'polygon';\n\nRubberbandPolygonTool.supports = annotation => {\n const selector = annotation.selector('SvgSelector');\n if (selector)\n return selector.value?.match(/^\n this._registered.map(impl => impl.identifier);\n\n registerTool = impl => {\n // If there's a tool with the same ID, replace\n const id = impl.identifier;\n if (this.listTools().includes(id))\n this.unregisterTool(id);\n\n this._registered.unshift(impl);\n }\n\n unregisterTool = id =>\n this._registered = this._registered.filter(impl => impl.identifier !== id);\n\n /** \n * Sets a drawing tool by providing an implementation, or the ID\n * of a built-in toll.\n */\n setCurrent = toolOrId => {\n if (this._current)\n this._current.destroy();\n \n const Tool = (typeof toolOrId === 'string' || toolOrId instanceof String) ?\n this._registered.find(impl => impl.identifier === toolOrId) :\n toolOrId;\n\n this._current = new Tool(this._g, this._config, this._env);\n this._current.on('startSelection', pt => this.emit('startSelection', pt));\n this._current.on('complete', evt => this.emit('complete', evt));\n this._current.on('cancel', evt => this.emit('cancel', evt));\n }\n\n forAnnotation = annotation => {\n // First target\n const [ target, ..._ ] = annotation.targets;\n const renderedVia = target.renderedVia?.name;\n\n const Tool = renderedVia ?\n this._registered.find(impl => impl.identifier === renderedVia) :\n this._registered.find(impl => impl.supports(annotation));\n\n return Tool ? new Tool(this._g, this._config, this._env) : null;\n }\n\n get current() {\n return this._current;\n }\n \n}","import { SVG_NAMESPACE } from './util/SVG';\n\nexport default class Crosshair {\n\n constructor(layerGroup, width, height) {\n this.svg = layerGroup.closest('svg');\n\n this.g = document.createElementNS(SVG_NAMESPACE, 'g');\n this.g.setAttribute('class', 'a9s-crosshair');\n\n const h = document.createElementNS(SVG_NAMESPACE, 'line');\n const v = document.createElementNS(SVG_NAMESPACE, 'line');\n\n this.g.appendChild(h);\n this.g.appendChild(v);\n\n layerGroup.appendChild(this.g);\n \n const getSVGPoint = evt => {\n const bbox = this.svg.getBoundingClientRect();\n \n const x = evt.clientX - bbox.x;\n const y = evt.clientY - bbox.y;\n \n const pt = this.svg.createSVGPoint();\n \n const { left, top } = this.svg.getBoundingClientRect();\n pt.x = x + left;\n pt.y = y + top;\n \n return pt.matrixTransform(layerGroup.getScreenCTM().inverse());\n }\n\n this.svg.parentElement.addEventListener('pointermove', evt => {\n const { x, y } = getSVGPoint(evt);\n\n h.setAttribute('x1', 0);\n h.setAttribute('y1', y);\n h.setAttribute('x2', width);\n h.setAttribute('y2', y);\n\n v.setAttribute('x1', x);\n v.setAttribute('y1', 0);\n v.setAttribute('x2', x);\n v.setAttribute('y2', height);\n });\n }\n\n}\n","import { hasClass } from './SVG';\n\nexport const getSnippet = (image, element) => {\n const shape = hasClass(element, '.a9s-annotation') ? \n element : element.closest('.a9s-annotation');\n\n const outer = shape.querySelector('.a9s-outer');\n\n const kx = image.naturalWidth / image.width;\n const ky = image.naturalHeight / image.height;\n\n const imageBounds = image.getBoundingClientRect();\n const outerBounds = outer.getBoundingClientRect();\n\n const x = outerBounds.x - imageBounds.x;\n const y = outerBounds.y - imageBounds.y;\n const { width, height } = outerBounds;\n\n // Cut out the image snippet as in-memory canvas element\n const snippet = document.createElement('CANVAS');\n const ctx = snippet.getContext('2d');\n snippet.width = width * kx;\n snippet.height = height * ky;\n ctx.drawImage(image, x * kx, y * ky, width * kx, height * ky, 0, 0, width * kx, height * ky);\n\n return {\n snippet,\n transform: xy => {\n const px = x * kx + xy[0];\n const py = y * ky + xy[1];\n return [ px, py ];\n }\n };\n}","import EventEmitter from 'tiny-emitter';\nimport { drawShape, shapeArea } from './selectors';\nimport { SVG_NAMESPACE, addClass, hasClass, removeClass } from './util/SVG';\nimport DrawingTools from './tools/ToolsRegistry';\nimport Crosshair from './Crosshair';\nimport { format } from './util/Formatting';\nimport { getSnippet } from './util/ImageSnippet';\nimport { isTouchDevice, enableTouchTranslation } from './util/Touch';\n\nconst isTouch = isTouchDevice();\n\nexport default class AnnotationLayer extends EventEmitter {\n\n constructor(props) {\n super();\n\n const { wrapperEl, config, env } = props;\n\n this.imageEl = env.image;\n\n this.readOnly = config.readOnly;\n\n // Deprecate the old 'formatter' option \n if (config.formatter)\n this.formatters = [ config.formatter ];\n else if (config.formatters)\n this.formatters = Array.isArray(config.formatters) ? config.formatters : [ config.formatters ];\n \n this.disableSelect = config.disableSelect;\n this.drawOnSingleClick = config.drawOnSingleClick; \n\n // Annotation layer SVG element\n this.svg = document.createElementNS(SVG_NAMESPACE, 'svg');\n this.svg.setAttribute('tabindex', 0);\n\n if (isTouch) {\n this.svg.setAttribute('class', 'a9s-annotationlayer touch');\n\n // Translates touch events to simulated mouse events\n enableTouchTranslation(this.svg);\n\n // Adds additional logic because touch doesn't have hover\n this.svg.addEventListener('touchstart', () => {\n this.currentHover = null;\n this.selectCurrentHover();\n });\n } else {\n this.svg.setAttribute('class', 'a9s-annotationlayer');\n }\n\n const { naturalWidth, naturalHeight } = this.imageEl;\n\n if (!naturalWidth && !naturalHeight) {\n // Might be because a) the image has not loaded yet, or b) because it's not \n // an image element (but maybe a CANVAS etc.)! Allow for both possibilities.\n const { width, height } = this.imageEl;\n this.svg.setAttribute('viewBox', `0 0 ${width} ${height}`);\n\n // Plus: monkey-patch the element (won't work for images)\n if(this.imageEl.nodeName.toLowerCase() !== 'img') {\n this.imageEl.naturalWidth = width;\n this.imageEl.naturalHeight = height;\n }\n\n this.imageEl.addEventListener('load', () => {\n this.emit('load', this.imageEl.src);\n this.svg.setAttribute('viewBox', `0 0 ${this.imageEl.naturalWidth} ${this.imageEl.naturalHeight}`)\n });\n } else {\n this.svg.setAttribute('viewBox', `0 0 ${naturalWidth} ${naturalHeight}`);\n }\n\n // Don't attach directly, but in a group\n this.g = document.createElementNS(SVG_NAMESPACE, 'g');\n\n this.svg.appendChild(this.g);\n wrapperEl.appendChild(this.svg);\n\n if (config.crosshair) {\n this.crosshair = new Crosshair(this.g, naturalWidth, naturalHeight);\n addClass(this.svg, 'no-cursor');\n }\n\n this.selectedShape = null;\n\n this.tools = new DrawingTools(this.g, config, env);\n this.tools.on('startSelection', pt => this.emit('startSelection', pt));\n this.tools.on('cancel', this.selectCurrentHover);\n this.tools.on('complete', this.selectShape);\n\n this.svg.addEventListener('mousedown', this._onMouseDown);\n\n this.currentHover = null;\n\n // On image resize...\n if (window.ResizeObserver) {\n this.resizeObserver = new ResizeObserver(() => {\n // ...counter-scale non-scaling annotations...\n this._refreshNonScalingAnnotations();\n\n // ...and resize formatter elements (shape labels etc.)\n this._scaleFormatterElements();\n });\n\n this.resizeObserver.observe(this.svg.parentNode);\n }\n }\n\n _attachMouseListeners = (elem, annotation) => {\n elem.addEventListener('mouseenter', () => {\n if (!this.tools?.current?.isDrawing) {\n if (this.currentHover !== elem)\n this.emit('mouseEnterAnnotation', annotation, elem);\n\n this.currentHover = elem;\n }\n });\n\n elem.addEventListener('mouseleave', () => {\n if (!this.tools?.current?.isDrawing) {\n this.emit('mouseLeaveAnnotation', annotation, elem);\n this.currentHover = null;\n }\n });\n\n if (isTouch) {\n elem.addEventListener('touchstart', evt => {\n evt.stopPropagation();\n this.currentHover = elem;\n });\n\n elem.addEventListener('touchend', evt => {\n const { clientX, clientY } = evt.changedTouches[0];\n const realTarget = document.elementFromPoint(clientX, clientY);\n evt.stopPropagation();\n\n if (elem.contains(realTarget)) {\n this.currentHover = elem;\n this.selectCurrentHover();\n }\n });\n }\n }\n\n /**\n * Helper - executes immediately if the image is loaded,\n * or defers to image.onload if not\n */\n _lazy = fn => { \n if (this.imageEl.naturalWidth)\n fn();\n else \n this.imageEl.addEventListener('load', () => fn());\n }\n\n _onMouseDown = evt => {\n if (evt.button !== 0) return; // Left click\n\n if (!(this.readOnly || this.selectedShape || this.tools.current.isDrawing)) {\n // No active selection & not drawing now? Start drawing.\n this.tools.current.start(evt, this.drawOnSingleClick && !this.currentHover);\n } else if (!this.tools?.current?.isDrawing && this.selectedShape !== this.currentHover) {\n // Not drawing and another shape was clicked? Select.\n this.selectCurrentHover();\n }\n }\n\n _refreshNonScalingAnnotations = () => {\n const scale = this.getCurrentScale();\n \n // This happens after .destroy(), when this.svg still exists,\n // but has 0x0 size!\n if (scale === Infinity)\n return;\n\n Array.from(this.svg.querySelectorAll('.a9s-non-scaling')).forEach(shape => {\n shape.setAttribute('transform', `scale(${scale})`);\n });\n }\n\n _scaleFormatterElements = opt_shape => {\n const scale = this.getCurrentScale();\n\n if (scale === Infinity)\n return;\n\n if (opt_shape) {\n const el = opt_shape.querySelector('.a9s-formatter-el');\n if (el)\n el.firstChild.setAttribute('transform', `scale(${scale})`);\n } else {\n const elements = Array.from(this.g.querySelectorAll('.a9s-formatter-el'));\n elements.forEach(el =>\n el.firstChild.setAttribute('transform', `scale(${scale})`));\n }\n }\n\n addAnnotation = annotation => {\n const g = drawShape(annotation, this.imageEl);\n\n addClass(g, 'a9s-annotation');\n g.setAttribute('data-id', annotation.id);\n\n g.annotation = annotation;\n\n this._attachMouseListeners(g, annotation);\n this.g.appendChild(g);\n\n format(g, annotation, this.formatters);\n this._scaleFormatterElements(g);\n\n return g;\n }\n\n addDrawingTool = plugin =>\n this.tools?.registerTool(plugin);\n\n addOrUpdateAnnotation = (annotation, previous) => {\n if (this.selectedShape && (this.selectedShape.annotation.isEqual(annotation) || this.selectedShape.annotation.isEqual(previous))) {\n this.deselect();\n this.emit('select', {});\n }\n\n if (previous)\n this.removeAnnotation(previous);\n\n this.removeAnnotation(annotation);\n\n const shape = this.addAnnotation(annotation);\n \n // Counter-scale non-scaling annotations\n if (hasClass(shape, 'a9s-non-scaling'))\n shape.setAttribute('transform', `scale(${this.getCurrentScale()})`);\n\n // Make sure rendering order is large-to-small\n this.redraw();\n }\n\n deselect = skipRedraw => {\n if (this.selectedShape) {\n this.tools?.current.stop();\n\n const { annotation } = this.selectedShape;\n\n if (this.selectedShape.destroy) {\n // Modifiable shape: destroy and re-add the annotation\n this.selectedShape.destroy();\n this.selectedShape = null;\n\n if (!annotation.isSelection) {\n this.addAnnotation(annotation);\n\n if (!skipRedraw)\n this.redraw();\n }\n } else {\n // Not modifiable - just clear\n removeClass(this.selectedShape, 'selected');\n this.selectedShape = null;\n }\n }\n }\n\n destroy = () => {\n this.deselect();\n this.currentHover = null;\n this.svg.parentNode.removeChild(this.svg);\n }\n\n findShape = annotationOrId => {\n const id = annotationOrId?.id ? annotationOrId.id : annotationOrId;\n return this.g.querySelector(`.a9s-annotation[data-id=\"${id}\"]`);\n }\n\n getAnnotations = () => {\n const shapes = Array.from(this.g.querySelectorAll('.a9s-annotation'));\n return shapes.map(s => s.annotation);\n }\n\n getCurrentScale = () => {\n const svgBounds = this.svg.getBoundingClientRect();\n const { width, height } = this.svg.viewBox.baseVal;\n\n return Math.max(\n width / svgBounds.width,\n height / svgBounds.height\n );\n }\n\n getSelectedImageSnippet = () => {\n if (this.selectedShape) {\n const element = this.selectedShape.element || this.selectedShape;\n return getSnippet(this.imageEl, element);\n }\n }\n\n init = annotations => {\n // Clear existing\n this.deselect();\n this.currentHover = null;\n\n const shapes = Array.from(this.g.querySelectorAll('.a9s-annotation'));\n shapes.forEach(s => this.g.removeChild(s));\n\n // Add\n this._lazy(() => {\n annotations.sort((a, b) => shapeArea(b, this.imageEl) - shapeArea(a, this.imageEl));\n annotations.forEach(this.addAnnotation);\n });\n\n // Counter-scale non-scaling annotations\n this._refreshNonScalingAnnotations();\n }\n\n listDrawingTools = () =>\n this.tools?.listTools();\n\n /**\n * Forces a new ID on the annotation with the given ID.\n * @returns the updated annotation for convenience\n */\n overrideId = (originalId, forcedId) => {\n // Update SVG shape data attribute\n const shape = this.findShape(originalId);\n shape.setAttribute('data-id', forcedId);\n\n // Update annotation\n const { annotation } = shape;\n\n const updated = annotation.clone({ id : forcedId });\n shape.annotation = updated;\n\n return updated;\n }\n\n /**\n * Redraws the whole layer with annotations sorted by\n * size, so that larger ones don't occlude smaller ones.\n */\n redraw = () => {\n const shapes = Array.from(this.g.querySelectorAll('.a9s-annotation:not(.selected)'));\n\n const annotations = shapes.map(s => s.annotation);\n annotations.sort((a, b) => shapeArea(b, this.imageEl) - shapeArea(a, this.imageEl));\n\n // Clear the SVG element\n shapes.forEach(s => this.g.removeChild(s));\n\n // Redraw\n annotations.forEach(this.addAnnotation);\n }\n\n removeAnnotation = annotationOrId => {\n // Removal won't work if the annotation is currently selected - deselect!\n const id = annotationOrId.type ? annotationOrId.id : annotationOrId;\n\n if (this.selectedShape?.annotation.id === id)\n this.deselect();\n\n const toRemove = this.findShape(annotationOrId);\n\n if (toRemove) {\n if (this.selectedShape?.annotation === toRemove.annotation)\n this.deselect();\n\n if (this.currentHover?.annotation === toRemove.annotation)\n this.currentHover = null;\n\n toRemove.parentNode.removeChild(toRemove);\n }\n }\n\n removeDrawingTool = id =>\n this.tools?.unregisterTool(id);\n\n /**\n * Programmatic selection via the API. Should work as normal,\n * but the selectAnnotation event should not be fired to the outside.\n */\n selectAnnotation = (annotationOrId, skipEvent) => {\n // Deselect first\n if (this.selectedShape)\n this.deselect();\n\n const selected = this.findShape(annotationOrId);\n\n if (selected) {\n this.selectShape(selected, skipEvent);\n\n const element = this.selectedShape.element ?\n this.selectedShape.element : this.selectedShape;\n\n return { annotation: selected.annotation, element };\n } else {\n this.deselect();\n }\n }\n\n selectCurrentHover = () => {\n if (this.currentHover) {\n if (this.disableSelect) {\n // Click only - no select\n this.emit('clickAnnotation', this.currentHover.annotation, this.currentHover);\n } else {\n this.selectShape(this.currentHover);\n }\n } else {\n this.deselect();\n this.emit('select', { skipEvent: true });\n }\n }\n\n selectShape = (shape, skipEvent) => {\n if (!skipEvent && !shape.annotation.isSelection)\n this.emit('clickAnnotation', shape.annotation, shape);\n \n // Don't re-select\n if (this.selectedShape?.annotation === shape.annotation)\n return;\n\n // If another shape is currently selected, deselect first\n if (this.selectedShape && this.selectedShape.annotation !== shape.annotation) {\n this.deselect(true);\n }\n\n const { annotation } = shape;\n\n const readOnly = this.readOnly || annotation.readOnly;\n\n if (!readOnly) {\n const toolForAnnotation = this.tools.forAnnotation(annotation);\n\n // Replace the shape with an editable version\n if (toolForAnnotation) {\n shape.parentNode.removeChild(shape);\n this.selectedShape = toolForAnnotation.createEditableShape(annotation, this.formatters);\n\n // Yikes... hack to make the tool act like SVG annotation shapes - needs redesign\n this.selectedShape.element.annotation = annotation;\n \n this._scaleFormatterElements(this.selectedShape.element);\n\n this.selectedShape.on('update', fragment => {\n if (this.selectedShape)\n this.emit('updateTarget', this.selectedShape.element, fragment);\n });\n\n // If we attach immediately 'mouseEnter' will fire when the editable shape\n // is added to the DOM!\n setTimeout(() => {\n if (this.selectedShape)\n this._attachMouseListeners(this.selectedShape.element, annotation);\n\n // Bit of a hack...\n // We need to make the selection the current hover manually (because \n // 'mouseEnter' won't have fired. But ONLY if the selection was not\n // done programmatically (which was the case for 'skipEvent')\n if (!skipEvent)\n this.currentHover = this.selectedShape?.element;\n }, 1);\n } else {\n this.selectedShape = shape;\n }\n\n if (!skipEvent)\n this.emit('select', { annotation, element: this.selectedShape.element || this.selectedShape });\n } else {\n addClass(shape, 'selected');\n this.selectedShape = shape;\n\n if (!skipEvent)\n this.emit('select', { annotation, element: shape, skipEvent });\n }\n }\n\n setDrawingTool = shape => {\n if (this.tools) {\n this.tools.current?.stop();\n this.tools.setCurrent(shape);\n }\n }\n\n setVisible = visible => {\n if (visible) {\n this.svg.style.display = null;\n } else {\n this.deselect();\n this.svg.style.display = 'none';\n }\n }\n\n stopDrawing = () => {\n this.tools?.current?.stop();\n }\n\n}\n","import{options as r,Fragment as _}from\"preact\";export{Fragment}from\"preact\";var o=0;function e(_,e,n,t,f){var l,s,u={};for(s in e)\"ref\"==s?l=e[s]:u[s]=e[s];var a={type:_,props:u,key:n,ref:l,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:--o,__source:t,__self:f};if(\"function\"==typeof _&&(l=_.defaultProps))for(s in l)void 0===u[s]&&(u[s]=l[s]);return r.vnode&&r.vnode(a),a}export{e as jsx,e as jsxs,e as jsxDEV};\n//# sourceMappingURL=jsxRuntime.module.js.map\n","import React, { Component } from 'react';\nimport AnnotationLayer from './AnnotationLayer';\nimport { Editor } from '@recogito/recogito-client-core';\nimport { getSnippet } from './util/ImageSnippet';\n\nimport './ImageAnnotator.scss';\n\nexport default class ImageAnnotator extends Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n selectedAnnotation: null,\n selectedDOMElement: null,\n modifiedTarget: null,\n\n // ReadOnly mode\n readOnly: this.props.config.readOnly,\n\n // Headless mode\n editorDisabled: this.props.config.disableEditor,\n\n // Widgets\n widgets: this.props.config.widgets,\n\n // Records the state before any potential headless modify (done via\n // .updateSelected) so we can properly fire the updateAnnotation(a, previous)\n // event, and distinguish between headless Save and Cancel\n beforeHeadlessModify: null\n }\n\n this._editor = React.createRef();\n }\n\n /** Shorthand **/\n clearState = opt_callback => this.setState({\n selectedAnnotation: null,\n selectedDOMElement: null,\n modifiedTarget: null,\n beforeHeadlessModify: null\n }, opt_callback);\n\n componentDidMount() {\n this.annotationLayer = new AnnotationLayer(this.props);\n\n this.annotationLayer.on('load', this.props.onLoad);\n\n this.annotationLayer.on('startSelection', this.handleStartSelect);\n this.annotationLayer.on('select', this.handleSelect);\n\n this.annotationLayer.on('updateTarget', this.handleUpdateTarget);\n\n this.forwardEvent('clickAnnotation','onClickAnnotation');\n this.forwardEvent('mouseEnterAnnotation', 'onMouseEnterAnnotation');\n this.forwardEvent('mouseLeaveAnnotation','onMouseLeaveAnnotation');\n \n // Escape cancels editing\n document.addEventListener('keyup', this.onKeyUp);\n }\n\n forwardEvent = (from, to) => {\n this.annotationLayer.on(from, (annotation, elem) => {\n this.props[to](annotation.clone(), elem);\n });\n }\n\n componentWillUnmount() {\n this.annotationLayer.destroy();\n document.removeEventListener('keyup', this.onKeyUp);\n }\n\n onKeyUp = evt => {\n if (evt.which === 27) { // Escape\n this.annotationLayer.stopDrawing();\n \n const { selectedAnnotation } = this.state;\n if (selectedAnnotation) {\n this.cancelSelected();\n this.props.onCancelSelected(selectedAnnotation);\n }\n } else if (evt.which === 46) { // Delete\n const { disableDeleteKey } = this.props.config;\n\n if (!disableDeleteKey) {\n const { selectedAnnotation } = this.state;\n if (selectedAnnotation) {\n if (selectedAnnotation.isSelection) {\n this.onCancelAnnotation(selectedAnnotation);\n } else {\n this.onDeleteAnnotation(selectedAnnotation);\n }\n }\n }\n }\n }\n\n handleStartSelect = pt =>\n this.props.onSelectionStarted(pt);\n\n handleSelect = (evt, skipEvent) => {\n this.state.editorDisabled ?\n this.onHeadlessSelect(evt, skipEvent) : this.onNormalSelect(evt, skipEvent);\n }\n\n /** Selection when editorDisabled == false **/\n onNormalSelect = (evt, skipEvent) => {\n const { annotation, element } = evt;\n\n if (annotation) {\n // Select action needs to run immediately if no annotation was\n // selected before. Otherwise, make a deselect state change first,\n // and then select after this state change has completed. (This is\n // keep our external event cycle clean!)\n const select = opt_callback => {\n this.setState({\n selectedAnnotation: annotation,\n selectedDOMElement: element,\n modifiedTarget: null,\n beforeHeadlessModify: null\n }, () => {\n if (!skipEvent) {\n if (annotation.isSelection) {\n this.props.onSelectionCreated(annotation.clone());\n } else {\n this.props.onAnnotationSelected(annotation.clone(), element);\n }\n }\n\n opt_callback && opt_callback();\n });\n }\n\n // If there is another selected annotation,\n // fire cancel before making the new selection\n const { selectedAnnotation } = this.state;\n\n if (selectedAnnotation && !selectedAnnotation.isEqual(annotation)) {\n this.clearState(() => {\n this.props.onCancelSelected(selectedAnnotation.clone());\n select(() =>\n this.props.onChangeSelected(annotation.clone(), selectedAnnotation.clone()));\n });\n } else {\n select();\n }\n } else {\n const { selectedAnnotation } = this.state;\n\n if (selectedAnnotation)\n this.clearState(() => {\n this.props.onCancelSelected(selectedAnnotation);\n });\n else\n this.clearState();\n }\n }\n\n /** Selection when editorDisabled == true **/\n onHeadlessSelect = (evt, skipEvent) => {\n // When in headless mode, changing selection acts as 'Ok' - changes\n // to the previous annotation are stored! (In normal mode, selection\n // acts as 'Cancel'.)\n this.saveSelected().then(() => {\n this.onNormalSelect(evt, skipEvent);\n\n // saveSelected will have deselected - we need to re-select\n const { annotation } = evt;\n\n if (annotation && !annotation.isSelection) {\n const selection = this.annotationLayer.selectAnnotation(evt.annotation, true);\n this.setState({ selectedDOMElement: selection.element });\n }\n });\n }\n\n handleUpdateTarget = (selectedDOMElement, modifiedTarget) => {\n this.setState({ selectedDOMElement, modifiedTarget });\n\n const clone = JSON.parse(JSON.stringify(modifiedTarget));\n this.props.onSelectionTargetChanged(clone);\n }\n\n /**\n * A convenience method that allows the external application to\n * override the autogenerated Id for an annotation.\n */\n overrideAnnotationId = originalAnnotation => forcedId => {\n const { id } = originalAnnotation;\n\n // Force the editor to close first, otherwise there's a risk of orphaned annotation\n if (this.state.selectedAnnotation) {\n this.clearState(() => {\n this.annotationLayer.overrideId(id, forcedId);\n });\n } else {\n this.annotationLayer.overrideId(id, forcedId);\n }\n }\n\n /**************************/\n /* Annotation CRUD events */\n /**************************/\n\n /** Common handler for annotation CREATE or UPDATE **/\n onCreateOrUpdateAnnotation = (method, opt_callback) => (annotation, previous) => {\n // Merge updated target if necessary\n let a = annotation.isSelection ? annotation.toAnnotation() : annotation;\n\n a = (this.state.modifiedTarget) ?\n a.clone({ target: this.state.modifiedTarget }) : a.clone();\n\n this.clearState(() => {\n this.annotationLayer.deselect();\n this.annotationLayer.addOrUpdateAnnotation(a, previous);\n\n // Call CREATE or UPDATE handler\n if (previous)\n this.props[method](a, previous.clone());\n else\n this.props[method](a, this.overrideAnnotationId(a));\n\n opt_callback && opt_callback();\n });\n }\n\n onDeleteAnnotation = annotation => {\n this.clearState();\n this.annotationLayer.removeAnnotation(annotation);\n this.props.onAnnotationDeleted(annotation);\n }\n\n onCancelAnnotation = (annotation, opt_callback) => {\n this.annotationLayer.deselect();\n this.props.onCancelSelected(annotation);\n this.clearState(opt_callback);\n }\n\n /****************/\n /* External API */\n /****************/\n\n addAnnotation = annotation =>\n this.annotationLayer.addOrUpdateAnnotation(annotation.clone());\n\n addDrawingTool = plugin =>\n this.annotationLayer.addDrawingTool(plugin);\n\n /** Cancel is an async op, return promise **/\n cancelSelected = () => new Promise(resolve => {\n this.annotationLayer.deselect();\n\n if (this.state.selectedAnnotation) {\n // Clear state and resolve afterwards\n this.clearState(resolve);\n } else { \n // Nothing to clear - resolve now\n resolve();\n }\n });\n\n get disableEditor() {\n return this.state.editorDisabled;\n }\n\n set disableEditor(disabled) {\n this.setState({ editorDisabled: disabled });\n }\n\n get disableSelect() {\n return this.annotationLayer.disableSelect;\n }\n\n set disableSelect(disable) {\n this.annotationLayer.disableSelect = disable;\n }\n\n get formatters() {\n return this.annotationLayer.formatters;\n }\n\n set formatters(formatters) {\n this.annotationLayer.formatters = formatters;\n this.annotationLayer.redraw();\n }\n\n getAnnotationById = annotationId =>\n this.annotationLayer.findShape(annotationId)?.annotation;\n\n getAnnotations = () =>\n this.annotationLayer.getAnnotations().map(a => a.clone());\n\n getImageSnippetById = annotationId => {\n const shape = this.annotationLayer.findShape(annotationId);\n if (shape)\n return getSnippet(this.props.env.image, shape);\n }\n\n getSelected = () => {\n if (this.state.selectedAnnotation) {\n return this.state.editorDisabled ?\n this.state.selectedAnnotation :\n this._editor.current?.getCurrentAnnotation();\n }\n }\n\n getSelectedImageSnippet = () =>\n this.annotationLayer.getSelectedImageSnippet();\n\n listDrawingTools = () =>\n this.annotationLayer.listDrawingTools();\n\n get readOnly() {\n return this.state.readOnly;\n }\n\n set readOnly(readOnly) {\n this.annotationLayer.readOnly = readOnly;\n this.setState({ readOnly });\n }\n\n removeAnnotation = annotationOrId => {\n this.annotationLayer.removeAnnotation(annotationOrId);\n if (this.state.selectedAnnotation)\n this.setState({ selectedAnnotation: null });\n }\n\n removeDrawingTool = id =>\n this.annotationLayer.removeDrawingTool(id);\n\n saveSelected = () =>\n new Promise(resolve => {\n const a = this.state.selectedAnnotation;\n\n if (a) {\n if (this._editor.current) {\n this._editor.current.onOk();\n resolve();\n } else if (a.isSelection) {\n if (a.bodies.length > 0 || this.props.config.allowEmpty) {\n this.onCreateOrUpdateAnnotation('onAnnotationCreated', resolve)(a);\n } else {\n this.annotationLayer.deselect();\n resolve();\n }\n } else {\n // Headless update?\n const { beforeHeadlessModify, modifiedTarget } = this.state;\n\n if (beforeHeadlessModify) {\n // Annotation was modified using '.updateSelected()'\n this.onCreateOrUpdateAnnotation('onAnnotationUpdated', resolve)(a, beforeHeadlessModify);\n } else if (modifiedTarget) {\n // Target was modified, but otherwise no change\n this.onCreateOrUpdateAnnotation('onAnnotationUpdated', resolve)(a, a);\n } else {\n this.onCancelAnnotation(a, resolve);\n }\n }\n } else {\n resolve();\n }\n });\n\n selectAnnotation = arg => {\n const selected = this.annotationLayer.selectAnnotation(arg, true);\n\n if (selected) {\n this.handleSelect(selected, true);\n return selected.annotation.clone();\n } else {\n this.clearState(); // Deselect\n }\n }\n\n setAnnotations = annotations =>\n this.annotationLayer.init(annotations.map(a => a.clone()));\n\n setDrawingTool = shape =>\n this.annotationLayer.setDrawingTool(shape);\n\n setVisible = visible => {\n this.annotationLayer.setVisible(visible);\n\n if (!visible)\n this.clearState();\n }\n\n updateSelected = (annotation, saveImmediately) =>\n new Promise(resolve => {\n if (this.state.selectedAnnotation) {\n if (saveImmediately) {\n if (this.state.selectedAnnotation.isSelection) {\n this.onCreateOrUpdateAnnotation('onAnnotationCreated', resolve)(annotation);\n } else {\n this.onCreateOrUpdateAnnotation('onAnnotationUpdated', resolve)(annotation, this.state.selectedAnnotation);\n }\n } else {\n this.setState({\n selectedAnnotation: annotation, // Updated annotation\n beforeHeadlessModify: this.state.beforeHeadlessModify || this.state.selectedAnnotation\n }, resolve);\n }\n }\n });\n\n get widgets() {\n return this.state.widgets;\n }\n\n set widgets(widgets) {\n this.setState({ widgets });\n }\n\n render() {\n // The editor should open under normal conditions - annotation was selected, no headless mode\n const open = this.state.selectedAnnotation && !this.state.editorDisabled;\n\n const readOnly = this.state.readOnly || this.state.selectedAnnotation?.readOnly;\n\n return (open && (\n \n ))\n }\n\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport Emitter from 'tiny-emitter';\nimport ImageAnnotator from './ImageAnnotator';\nimport {\n Selection,\n WebAnnotation,\n createEnvironment,\n setLocale\n} from '@recogito/recogito-client-core';\n\nimport '@recogito/recogito-client-core/themes/default';\n\n/**\n * The entrypoint into the application. Provides the\n * externally visible JavaScript API.\n */\nexport class Annotorious {\n\n constructor(config) {\n // Programmatic calls to this instance from outside are forwarded\n // through a ref\n this._app = React.createRef();\n\n // Event handling via tiny-emitter\n this._emitter = new Emitter();\n\n // TODO .headless option is deprecated!\n config.disableEditor = config.disableEditor || config.headless;\n\n // Host app may supply the image as either a DOM node or ID - normalize\n const imageEl = (config.image.nodeType) ?\n config.image : document.getElementById(config.image);\n\n // Wrapper div might produce unwanted margin at the bottom otherwise!\n imageEl.style.display = 'block';\n\n // Store image reference in the Environment\n this._env = createEnvironment();\n this._env.image = imageEl;\n\n setLocale(config.locale, config.messages);\n\n // We'll wrap the image in a DIV ('_element'). The application\n // container DIV, which holds the editor popup, will be attached\n // as a child to the same wrapper element (=a sibling to the image\n // element), so that editor and image share the same offset coordinate\n // space.\n this._element = document.createElement('DIV');\n this._element.style.position = 'relative';\n this._element.style.display = 'inline-block';\n\n imageEl.parentNode.insertBefore(this._element, imageEl);\n this._element.appendChild(imageEl);\n\n this._appContainerEl = document.createElement('DIV');\n this._element.appendChild(this._appContainerEl);\n\n // A basic ImageAnnotator with just a comment and a tag widget\n ReactDOM.render(\n , this._appContainerEl);\n }\n\n /********************/\n /* External events */\n /********************/\n\n handleAnnotationCreated = (annotation, overrideId) =>\n this._emitter.emit('createAnnotation', annotation.underlying, overrideId);\n\n handleAnnotationDeleted = annotation =>\n this._emitter.emit('deleteAnnotation', annotation.underlying);\n\n handleAnnotationSelected = (annotation, elem) =>\n this._emitter.emit('selectAnnotation', annotation.underlying, elem);\n\n handleAnnotationUpdated = (annotation, previous) =>\n this._emitter.emit('updateAnnotation', annotation.underlying, previous.underlying);\n\n handleCancelSelected = annotation =>\n this._emitter.emit('cancelSelected', annotation.underlying);\n\n handleChangeSelected = (selected, previous) =>\n this._emitter.emit('changeSelected', selected.underlying, previous.underlying);\n\n handleClickAnnotation = (annotation, elem) =>\n this._emitter.emit('clickAnnotation', annotation.underlying, elem);\n\n handleLoad = src =>\n this._emitter.emit('load', src);\n\n handleSelectionCreated = selection =>\n this._emitter.emit('createSelection', selection.underlying);\n\n handleSelectionStarted = pt =>\n this._emitter.emit('startSelection', pt);\n\n handleSelectionTargetChanged = target =>\n this._emitter.emit('changeSelectionTarget', target);\n\n handleMouseEnterAnnotation = (annotation, elem) =>\n this._emitter.emit('mouseEnterAnnotation', annotation.underlying, elem);\n\n handleMouseLeaveAnnotation = (annotation, elem) =>\n this._emitter.emit('mouseLeaveAnnotation', annotation.underlying, elem);\n\n /******************/\n /* External API */\n /******************/\n\n // Common shorthand for handling annotationOrId args\n _wrap = annotationOrId =>\n annotationOrId?.type === 'Annotation' ? new WebAnnotation(annotationOrId) : annotationOrId;\n\n addAnnotation = (annotation, readOnly) =>\n this._app.current.addAnnotation(new WebAnnotation(annotation, { readOnly }));\n\n addDrawingTool = plugin =>\n this._app.current.addDrawingTool(plugin);\n\n cancelSelected = () =>\n this._app.current.cancelSelected();\n\n clearAnnotations = () =>\n this.setAnnotations([]);\n\n clearAuthInfo = () =>\n this._env.user = null;\n\n get disableEditor() {\n return this._app.current.disableEditor;\n }\n\n set disableEditor(disabled) {\n this._app.current.disableEditor = disabled;\n }\n\n get disableSelect() {\n return this._app.current.disableSelect;\n }\n\n set disableSelect(select) {\n this._app.current.disableSelect = select;\n }\n\n destroy = () => {\n ReactDOM.unmountComponentAtNode(this._appContainerEl);\n this._element.parentNode.insertBefore(this._env.image, this._element);\n this._element.parentNode.removeChild(this._element);\n }\n \n get formatters() {\n return this._app.current.formatters || [];\n }\n\n set formatters(arg) {\n if (arg) {\n const formatters = Array.isArray(arg) ? arg : [ arg ];\n this._app.current.formatters = formatters; \n } else {\n this._app.current.formatters = null;\n }\n }\n \n getAnnotationById = annotationId => {\n const a = this._app.current.getAnnotationById(annotationId);\n return a?.underlying;\n }\n\n getAnnotations = () => {\n const annotations = this._app.current.getAnnotations();\n return annotations.map(a => a.underlying);\n }\n\n getImageSnippetById = annotationId =>\n this._app.current.getImageSnippetById(annotationId);\n\n getSelected = () => {\n const selected = this._app.current.getSelected();\n return selected?.underlying;\n }\n\n getSelectedImageSnippet = () =>\n this._app.current.getSelectedImageSnippet();\n\n listDrawingTools = () =>\n this._app.current.listDrawingTools();\n\n loadAnnotations = url => fetch(url)\n .then(response => response.json()).then(annotations => {\n this.setAnnotations(annotations);\n return annotations;\n });\n\n off = (event, callback) =>\n this._emitter.off(event, callback);\n\n on = (event, handler) =>\n this._emitter.on(event, handler);\n\n once = (event, handler) =>\n this._emitter.once(event, handler);\n\n get readOnly() {\n return this._app.current.readOnly;\n }\n\n set readOnly(readOnly) {\n this._app.current.readOnly = readOnly;\n }\n\n removeAnnotation = annotationOrId =>\n this._app.current.removeAnnotation(this._wrap(annotationOrId));\n\n removeDrawingTool = id =>\n this._app.current.removeDrawingTool(id);\n\n saveSelected = () =>\n this._app.current.saveSelected();\n\n selectAnnotation = annotationOrId => {\n const selected = this._app.current.selectAnnotation(this._wrap(annotationOrId));\n return selected?.underlying;\n }\n\n setAnnotations = a => {\n const annotations = a || []; // Allow null arg\n const webannotations = annotations.map(a => new WebAnnotation(a));\n this._app.current.setAnnotations(webannotations);\n }\n\n setAuthInfo = authinfo =>\n this._env.user = authinfo;\n\n setDrawingTool = shape =>\n this._app.current.setDrawingTool(shape);\n\n setServerTime = timestamp =>\n this._env.setServerTime(timestamp);\n\n setVisible = visible =>\n this._app.current.setVisible(visible);\n\n updateSelected = (annotation, saveImmediately) => {\n let updated = null;\n\n if (annotation.type === 'Annotation')\n updated = new WebAnnotation(annotation);\n else if (annotation.type === 'Selection')\n updated = new Selection(annotation.target, annotation.body);\n\n if (updated)\n this._app.current.updateSelected(updated, saveImmediately);\n }\n\n get widgets() {\n return this._app.current.widgets;\n }\n\n set widgets(widgets) {\n this._app.current.widgets = widgets;\n }\n\n}\n\nexport const init = config => new Annotorious(config);\n"],"names":["n","l","u","t","r","o","f","e","c","s","a","h","v","i","y","p","d","_","k","b","m","g","j","z","w","A","x","P","N","M","C","H","$","T","I","O","L","S","q","B","D","F","E","R","U","W","V","Z","Y","G","J","K","Q","X","nn","tn","en","rn","un","on","ln","cn","fn","name","callback","ctx","self","listener","data","evtArr","len","evts","liveEvents","SVG_NAMESPACE","getClassNames","el","attr","getAttribute","Set","split","addClass","className","classNames","add","setAttribute","Array","from","join","removeClass","delete","size","removeAttribute","hasClass","has","parseRectFragment","annotation","image","selector","conformsTo","startsWith","value","format","includes","substring","indexOf","coords","map","parseFloat","toLowerCase","naturalWidth","naturalHeight","toPixelRectFragment","source","src","type","toPercentRectFragment","px","py","pw","ph","toRectFragment","fragmentUnit","setXYWH","shape","setPointXY","drawRectMask","imageDimensions","mask","document","createElementNS","setRectMaskSize","drawRect","arg1","arg2","arg3","arg4","outerPoint","innerPoint","appendChild","outerRect","innerRect","getRectSize","outer","querySelector","nodeName","setRectSize","inner","rectArea","polygonArea","points","area","length","Math","abs","pointInPolygon","xy","inside","xi","yi","xj","yj","polygonInPolygon","polygonA","polygonB","point","svgPathToPolygons","path","commands","str","trim","polygons","cmd","op","push","isUppercase","toUpperCase","insertSVGNamespace","originalDoc","namespaced","XMLSerializer","serializeToString","documentElement","replace","DOMParser","parseFromString","sanitize","doc","cleanEl","attributes","forEach","scripts","getElementsByTagName","reverse","parentNode","removeChild","querySelectorAll","svgFragmentToShape","parser","isPrefixDeclared","lookupPrefix","isDefaultNamespaceSVG","lookupNamespaceURI","firstChild","drawEmbeddedSVG","cloneNode","toSVGTarget","serialized","outerHTML","svgArea","svgPolygonArea","svgCircleArea","svgEllipseArea","svgPathArea","polygon","circle","PI","ellipse","rx","ry","isHole","find","other","poly","drawFn","areaFn","getFirstSelector","firstTarget","targets","isArray","drawShape","shapeArea","ReactPropTypesSecret","ReactPropTypesSecret_1","require$$0","emptyFunction","emptyFunctionWithReset","factoryWithThrowingShims","shim","props","propName","componentName","location","propFullName","secret","err","getShim","ReactPropTypes","propTypesModule","toVal","mix","tmp","shims","findInArray","isFunction","isNum","int","dontSetMe","array","func","num","getPrefix_1","getPrefix","browserPrefixToKey","browserPrefixToStyle","prefixes","_window$document","_window$document$docu","prop","style","prefix","kebabToTitleCase","out","shouldCapitalize","_default","_typeof","obj","domFns","matchesSelector","matchesSelectorAndParentsTo","addEvent","removeEvent","outerHeight","outerWidth","innerHeight","innerWidth","offsetXYFromParent","createCSSTransform","createSVGTransform","getTranslation","getTouch","getTouchIdentifier","addUserSelectStyles","removeUserSelectStyles","addClassName","removeClassName","_shims","_getPrefix","_interopRequireWildcard","require$$1","_getRequireWildcardCache","nodeInterop","cacheBabelInterop","cacheNodeInterop","cache","newObj","hasPropertyDescriptor","key","desc","ownKeys","object","enumerableOnly","keys","symbols","sym","_objectSpread","target","_defineProperty","matchesSelectorFunc","method","baseNode","node","event","handler","inputOptions","options","height","computedStyle","width","evt","offsetParent","scale","isBody","offsetParentRect","controlPos","positionOffset","translation","_ref2","unitSuffix","defaultX","defaultY","identifier","styleEl","selection","positionFns","getBoundPosition","snapToGrid","canDragX","canDragY","getControlPosition","createCoreData","createDraggableData","_domFns","draggable","bounds","cloneBounds","findDOMNode","ownerDocument","ownerWindow","boundNode","boundNodeEl","nodeStyle","boundNodeStyle","grid","pendingX","pendingY","touchIdentifier","draggableCore","touchObj","state","isStart","coreData","log_1","log","DraggableCore_1","React","_propTypes","_interopRequireDefault","_reactDom","require$$2","require$$3","_positionFns","require$$4","require$$5","_log","require$$6","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","minLen","_arrayLikeToArray","arr2","_i","_arr","_n","_d","_s","_e","_classCallCheck","instance","Constructor","_defineProperties","descriptor","_createClass","protoProps","staticProps","_inherits","subClass","superClass","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","Super","_getPrototypeOf","result","NewTarget","_possibleConstructorReturn","call","_assertThisInitialized","eventsFor","dragEventFor","DraggableCore","_React$Component","_super","_this","_len","args","_key","thisNode","position","coreEvent","shouldUpdate","deltaX","deltaY","_snapToGrid","_snapToGrid2","shouldContinue","_this$props$nodeRef$c","_this$props","_this$props$nodeRef","exports","_DraggableCore","_clsx2","require$$7","require$$8","_excluded","_extends","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","sourceKeys","Draggable","shouldStart","uiData","newState","_getBoundPosition","_getBoundPosition2","newStateX","newStateY","controlled","_this$props$position","_clsx","_this$props2","children","defaultPosition","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","draggableCoreProps","svgTransform","validPosition","transformOpts","_ref","prevPropsPosition","_require","EN_US","diff","idx","unit","ZH_CN","Locales","register","locale","getLocale","SEC_ARRAY","toDate","input","formatDiff","localeFunc","agoIn","totalSec","diffSec","date","relativeDate","relDate","nextInterval","rst","opts","sec","ATTR_TIMEAGO_TID","getDateAttribute","setTimerId","timerId","getTimerId","TIMER_POOL","clear","tid","run","minInterval","cancel","render","nodes","nodeList","en_US","zh_CN","__extends","this","extendStatics","__","__assign","__rest","toDateTime","TimeAgo","_a","live","datetime","others","React.createElement","React.PureComponent","useClickOutside","ref","onClickOutside","useEffect","toStr","isArguments","isArgs","keysShim","isEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","ctor","excludedKeys","hasAutomationEqualityBug","equalsConstructorPrototypeIfNotBuggy","isObject","isString","theKeys","skipProto","skipConstructor","implementation","slice","origKeys","originalKeys","keysWorksWithArguments","objectKeys","hasSymbols","concat","origDefineProperty","arePropertyDescriptorsSupported","supportsDescriptors","defineProperty","predicate","defineProperties","predicates","defineProperties_1","ERROR_MESSAGE","funcType","that","bound","binder","boundLength","boundArgs","Empty","functionBind","shams","symObj","symVal","syms","origSymbol","hasSymbolSham","bind","undefined","$SyntaxError","$Function","$TypeError","getEvalledConstructor","expressionSyntax","$gOPD","throwTypeError","ThrowTypeError","getProto","needsEval","TypedArray","INTRINSICS","doEval","gen","LEGACY_ALIASES","hasOwn","$concat","$spliceApply","$replace","$strSlice","rePropName","reEscapeChar","stringToPath","string","first","last","match","number","quote","subString","getBaseIntrinsic","allowMissing","intrinsicName","alias","getIntrinsic","parts","intrinsicBaseName","intrinsic","intrinsicRealName","skipFurtherCaching","isOwn","part","GetIntrinsic","$apply","$call","$reflectApply","$defineProperty","$max","module","originalFunction","applyBind","callBind","$indexOf","callBound","CheckObjectCoercible","optMessage","RequireObjectCoercible","$Array","IsArray","argument","Call","argumentsList","hasMap","mapSizeDescriptor","mapSize","mapForEach","hasSet","setSizeDescriptor","setSize","setForEach","hasWeakMap","weakMapHas","hasWeakSet","weakSetHas","hasWeakRef","weakRefDeref","booleanValueOf","objectToString","functionToString","$match","$slice","$toUpperCase","$toLowerCase","$test","$join","$arrSlice","$floor","bigIntValueOf","gOPS","symToString","hasShammedSymbols","toStringTag","gPO","addNumericSeparator","sepRegex","intStr","dec","inspectCustom","inspectSymbol","isSymbol","objectInspect","inspect_","depth","seen","customInspect","numericSeparator","inspectString","bigIntStr","maxDepth","indent","getIndent","inspect","noIndent","newOpts","nameOf","arrObjKeys","symString","markBoxed","isElement","attrs","wrapQuotes","xs","singleLineValues","indentedJoin","isError","isMap","mapParts","collectionOf","isSet","setParts","isWeakMap","weakCollectionOf","isWeakSet","isWeakRef","isNumber","isBigInt","isBoolean","isDate","isRegExp","ys","isPlainObject","protoTag","stringTag","constructorTag","tag","defaultStyle","quoteChar","remaining","trailer","lowbyte","entries","joinedEntries","baseIndent","lineJoiner","isArr","symMap","IsPropertyKey","Type","ES5Type","Get","HasProperty","fnToStr","reflectApply","badArrayLike","isCallableMarker","constructorRegex","isES6ClassFn","fnStr","tryFunctionObject","fnClass","genClass","hasToStringTag","documentDotAll","isCallable","strClass","IsCallable","$Math","$Number","maxSafeInteger","$abs","floor","isPrimitive","ES5internalSlots","actualHint","methods","es5","ToPrimitive","ToNumber","prim","trimmed","_isNaN","$isNaN","_isFinite","sign","$isFinite","$sign","ToInteger","regexTester","regex","getDay","tryDateObject","dateClass","isDateObject","symToStr","symStringRegex","isSymbolObject","isSymbolModule","ordinaryToPrimitive","hint","methodNames","GetMethod","es2015","exoticToPrim","toPrimitive","$RegExp","$parseInteger","isBinary","isOctal","isInvalidHexLiteral","nonWS","nonWSregex","hasNonWS","ws","trimRegex","$trim","ES5ToInteger","ToIntegerOrInfinity","MAX_SAFE_INTEGER","ToLength","LengthOfArrayLike","$Object","ToObject","$String","ToString","strValue","tryStringObject","require$$9","$split","boxedString","splitString","callbackfn","thisO","thisArg","Pk","kPresent","kValue","esArrayMethodBoxesProperly","properlyBoxesNonStrict","properlyBoxesStrict","threwException","arrayMethodBoxesProperly","polyfill","define","getPolyfill","boundCoercible","array_prototype_foreach","$isEnumerable","$push","entrys","object_entries","leftWhitespace","rightWhitespace","zeroWidthSpace","boundTrim","string_prototype_trim","warn","message","delimiter","russianPluralGroups","lastTwo","end","defaultPluralRules","langToTypeMap","mapping","ret","entry","langs","lang","pluralTypeName","pluralRules","langToPluralType","pluralTypeIndex","pluralType","count","createMemoizedPluralTypeNameSelector","localePluralTypeStorage","escape","token","constructTokenRegex","suffix","memoizedPluralTypeName","defaultTokenRegex","transformPhrase","phrase","substitutions","tokenRegex","interpolationRegex","pluralRulesOrDefault","texts","bestLocale","pluralTypeWithCount","expression","Polyglot","newLocale","morePhrases","prefixedKey","newPhrases","onMissingKey","nodePolyglot","ar","timeTypes","formatTime","default_1","index","timeStr","cs","inflectionIndex","isInflectionNeeded","de","es","fi","fr","gl","hi_IN","it","ja","ko","nl","pt_BR","ru","formatNum","f1","n10","seconds","minutes","hours","days","weeks","months","years","sv","th","tr","zh_TW","MESSAGES","messages_ar","messages_cs","messages_de","messages_el","messages_es","messages_fi","messages_fr","messages_gl","messages_hi","messages_it","messages_ja","messages_ko","messages_nl","messages_pt","messages_ru","messages_sv","messages_th","messages_tr","messages_ur","messages_zh_CN","messages_zh_TW","availableLocales","i18n","opt_messages","hi","pt","messages","useRef","global","factory","values","createEvent","assign","ta","heightOffset","clientWidth","cachedHeight","init","update","changeOverflow","getParentOverflows","resize","overflows","docTop","styleHeight","computed","actualHeight","pageResize","destroy","autosize","getComputedStyle","word","letter","computedStyle_commonjs","lineHeight","lnHeightStr","lnHeight","_lnHeightStyle","_node","fontSizeStr","body","lineHeight_1","PropTypes","_getLineHeight","getLineHeight","RESIZED","TextareaAutosizeClass","onChange","maxRows","async","_b","maxHeight","element","TextareaAutosize_1","TextEntryField","Component","__publicField","createRef","TextareaAutosize","sheetForTag","createStyleElement","StyleSheet","before","_proto","rule","sheet","MS","MOZ","WEBKIT","COMMENT","RULESET","DECLARATION","IMPORT","KEYFRAMES","LAYER","hash","charat","pattern","replacement","indexof","search","substr","begin","strlen","sizeof","append","combine","line","column","character","characters","root","parent","copy","char","prev","next","peek","caret","alloc","dealloc","delimit","whitespace","escaping","commenter","compile","parse","rules","rulesets","pseudo","declarations","offset","atrule","property","previous","variable","scanning","ampersand","reference","comment","declaration","ruleset","post","serialize","output","stringify","middleware","collection","rulesheet","memoize","arg","identifierWithPointTracking","toRules","parsed","getRules","fixedElements","compat","isImplicitRule","parentRules","removeLabel","prefixer","defaultStylisPlugins","createCache","ssrStyles","dataEmotionAttribute","stylisPlugins","inserted","container","nodesToHydrate","attrib","_insert","omnipresentPlugins","currentSheet","finalizingPlugins","serializer","stylis","styles","shouldCache","reactIsModule","reactIs","FORWARD_REF_STATICS","MEMO_STATICS","TYPE_STATICS","isBrowser","getRegisteredStyles","registered","registeredStyles","rawClassName","registerStyles","isStringTag","insertStyles","current","murmur2","unitlessKeys","hyphenateRegex","animationRegex","isCustomProperty","isProcessableValue","processStyleName","styleName","processStyleValue","p1","p2","cursor","unitless","noComponentSelectorMessage","handleInterpolation","mergedProps","interpolation","createStringFromObject","previousCursor","cached","interpolated","labelPattern","serializeStyles","stringMode","strings","identifierName","hashString","syncFallback","create","useInsertionEffect","useInsertionEffectAlwaysWithSyncFallback","hasOwnProperty","EmotionCacheContext","React.createContext","withEmotionCache","forwardRef","useContext","ThemeContext","typePropName","createEmotionProps","newProps","Insertion","Emotion","cssProp","WrappedComponent","React.useContext","React.Fragment","Emotion$1","jsx","argsLength","createElementArgArray","css","keyframes","insertable","classnames","cls","toAdd","merge","serializedArr","ClassNames","hasRendered","cx","_len2","_key2","content","ele","_taggedTemplateLiteral","raw","objectWithoutPropertiesLoose","AutosizeInput_1","_react","_react2","_propTypes2","sizerStyle","INPUT_PROPS_BLACKLIST","cleanInputProps","inputProps","field","copyStyles","isIE","generateId","AutosizeInput","_Component","id","prevProps","prevState","inputStyles","newInputWidth","extraWidth","injectStyles","sizerValue","previousValue","currentValue","wrapperStyle","inputStyle","_toPrimitive","res","_toPropertyKey","toPropertyKey","setPrototypeOf","_objectSpread2","noop","applyPrefixToName","cleanValue","cleanCommonProps","innerProps","isDocumentElement","getScrollTop","scrollTo","top","getScrollParent","excludeStaticParent","overflowRx","docEl","easeOutCubic","animatedScrollTo","to","duration","start","change","increment","currentTime","animateScroll","val","scrollIntoView","menuEl","focusedEl","menuRect","focusedRect","overScroll","getBoundingClientObj","rect","isTouchCapable","isMobileDevice","passiveOptionAccessed","supportsPassiveEvents","getMenuPlacement","minHeight","placement","shouldScroll","isFixedPosition","theme","spacing","scrollParent","defaultState","_scrollParent$getBoun","scrollHeight","_menuEl$getBoundingCl","menuBottom","menuHeight","menuTop","_menuEl$offsetParent$","containerTop","viewHeight","scrollTop","marginBottom","marginTop","viewSpaceAbove","viewSpaceBelow","scrollSpaceAbove","scrollSpaceBelow","scrollDown","scrollUp","scrollDuration","constrainedHeight","_constrainedHeight","spaceAbove","_constrainedHeight2","alignToControl","placementToCSSProp","coercePlacement","menuCSS","_ref3","_ref2$theme","borderRadius","colors","_defineProperty$1","PortalPlacementContext","createContext","MenuPlacer","minMenuHeight","maxMenuHeight","menuPlacement","menuPosition","menuShouldScrollIntoView","getPortalPlacement","Menu","getStyles","innerRef","menuListCSS","_ref4","baseUnit","MenuList","isMulti","noticeCSS","_ref5","_ref5$theme","noOptionsMessageCSS","loadingMessageCSS","NoOptionsMessage","LoadingMessage","menuPortalCSS","_ref6","MenuPortal","_Component2","_super2","_this2","_ref7","initialPlacement","appendTo","controlElement","isFixed","scrollDistance","menuWrapper","createPortal","containerCSS","isDisabled","isRtl","SelectContainer","valueContainerCSS","ValueContainer","hasValue","indicatorsContainerCSS","IndicatorsContainer","_templateObject","Svg","CrossIcon","DownChevron","baseCSS","isFocused","_ref3$theme","dropdownIndicatorCSS","DropdownIndicator","clearIndicatorCSS","ClearIndicator","indicatorSeparatorCSS","_ref4$theme","IndicatorSeparator","loadingDotAnimations","loadingIndicatorCSS","LoadingDot","delay","css$2","LoadingIndicator","_ref$theme","Control","menuIsOpen","groupCSS","Group","Heading","headingProps","label","selectProps","groupHeadingCSS","GroupHeading","_cleanCommonProps","inputCSS","isHidden","Input","multiValueCSS","multiValueLabelCSS","cropWithEllipsis","multiValueRemoveCSS","MultiValueGeneric","MultiValueContainer","MultiValueLabel","MultiValueRemove","MultiValue","components","removeProps","Container","Label","Remove","emotionCx","optionCSS","isSelected","Option","placeholderCSS","Placeholder","css$1","SingleValue","defaultComponents","_arrayWithoutHoles","arrayLikeToArray","_iterableToArray","iter","_nonIterableSpread","_toConsumableArray","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","safeIsNaN","isEqual","second","areInputsEqual","newInputs","lastInputs","memoizeOne","resultFn","lastThis","lastArgs","lastResult","calledOnce","memoized","newArgs","A11yText","defaultAriaLiveMessages","isSearchable","tabSelectsValue","context","action","_props$label","_props$focused","focused","_props$label2","selectValue","getArrayIndex","item","disabled","status","inputValue","resultsMessage","LiveRegion","ariaSelection","focusedOption","focusedValue","focusableOptions","ariaLiveMessages","getOptionLabel","isOptionDisabled","screenReaderStatus","ariaLabel","ariaLive","useMemo","ariaSelected","option","removedValue","asOption","selected","onChangeProps","ariaFocused","focusMsg","onFocusProps","ariaResults","resultsMsg","ariaGuidance","guidanceMsg","ariaContext","diacritics","anyDiacritic","diacriticToBase","diacritic","stripDiacritics","memoizedStripDiacriticsForInput","trimString","defaultStringify","createFilter","config","rawInput","_ignoreCase$ignoreAcc","ignoreCase","ignoreAccents","matchFrom","candidate","DummyInput","cancelScroll","useScrollCapture","isEnabled","onBottomArrive","onBottomLeave","onTopArrive","onTopLeave","isBottom","isTop","touchStart","scrollTarget","handleEventDelta","useCallback","delta","_scrollTarget$current","clientHeight","isDeltaPositive","availableScroll","shouldCancelScroll","onWheel","onTouchStart","onTouchMove","startListening","notPassive","stopListening","STYLE_KEYS","LOCK_STYLES","preventTouchMove","allowTouchMove","preventInertiaScroll","totalScroll","currentScroll","isTouchDevice","canUseDOM","activeScrollLocks","listenerOptions","useScrollLock","_ref$accountForScroll","accountForScrollbars","originalStyles","addScrollLock","touchScrollTarget","targetStyle","currentPadding","adjustedPadding","removeScrollLock","blurSelectInput","ScrollManager","lockEnabled","_ref$captureEnabled","captureEnabled","setScrollCaptureTarget","setScrollLockTarget","targetRef","formatGroupLabel","group","getOptionValue","defaultStyles","controlHeight","menuGutter","defaultTheme","defaultProps","toCategorizedOption","_isOptionDisabled","_isOptionSelected","getOptionLabel$1","getOptionValue$1","buildCategorizedOptions","groupOrOption","groupOrOptionIndex","categorizedOptions","optionIndex","categorizedOption","isFocusable","buildFocusableOptionsFromCategorizedOptions","optionsAccumulator","buildFocusableOptions","_props$inputValue","shouldHideSelectedOptions","_filterOption","getNextFocusedValue","nextSelectValue","lastSelectValue","lastFocusedIndex","nextFocusedIndex","getNextFocusedOption","lastFocusedOption","hideSelectedOptions","instanceId","Select","_props","newValue","actionMeta","closeMenuOnSelect","_this$props3","blurInputOnSelect","deselected","newValueArray","lastSelectedValue","base","custom","openMenuOnClick","_this$props4","touches","touch","moveThreshold","_this$props5","backspaceRemovesValue","escapeClearsValue","isClearable","onKeyDown","openMenuOnFocus","_this$state","_this$props6","focusOption","_this$state2","openAtIndex","selectedIndex","direction","_this$state3","focusedIndex","lastIndex","nextFocus","pageSize","clearValue","getValue","selectOption","setValue","_this$props7","_this$props8","inputId","tabIndex","form","_this$getComponents","inputIsHidden","commonProps","ariaAttributes","_this3","_this$getComponents2","_this$props9","controlShouldRenderValue","placeholder","_this$state4","selectValues","opt","isOptionFocused","singleValue","_this$getComponents3","_this$props10","isLoading","_this$getComponents4","_this$props11","_this$getComponents5","_this$getComponents6","_this4","_this$getComponents7","_this$props12","captureMenuScroll","loadingMessage","menuPortalTarget","menuShouldBlockScroll","noOptionsMessage","onMenuScrollToTop","onMenuScrollToBottom","onHover","onSelect","optionId","menuUI","groupIndex","groupId","headingId","_message","menuPlacementProps","menuElement","_ref4$placerProps","scrollTargetRef","_this5","_this$props13","_value","_this$state5","_this$getComponents8","_this$props14","clearFocusValueOnUpdate","inputIsHiddenAfterUpdate","newMenuOptionsState","newInputIsHiddenState","manageState","SelectComponent","_class","_temp","StateManager","PURPOSES","selectedOption","ChevronDownIcon","CloseIcon","TrashIcon","isEditable","setIsEditable","useState","isMenuVisible","setIsMenuVisible","onMakeEditable","onDelete","onUpdateComment","onChangePurpose","timestamp","creatorInfo","PurposeSelect","DropdownMenu","validPurposes","isComment","matchAllPurposes","hasMatchingPurpose","isReadOnlyComment","creator","getDraftReply","existingDraft","isReply","CommentWidget","all","draftReply","comments","onEditReply","updated","onChangeReplyPurpose","purpose","isReadable","hasReply","Comment","_inheritsLoose","replaceClassName","origClass","classToRemove","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","parentGroup","appear","initialStatus","nextIn","nextStatus","timeout","exit","enter","mounting","appearing","ReactDOM","maybeNode","maybeAppearing","timeouts","enterTimeout","nextState","active","doesNotHaveTimeoutOrListener","maybeNextCallback","childProps","TransitionGroupContext","_addClass","classes","addOneClass","removeOneClass","CSSTransition","_this$resolveArgument","_this$resolveArgument2","_this$resolveArgument3","_this$resolveArgument4","_this$resolveArgument5","_this$resolveArgument6","isStringClassNames","baseClassName","activeClassName","doneClassName","phase","_this$getClassNames","_this$appliedClasses$","getVocabSuggestions","query","vocabulary","getFnSuggestions","suggestions","setSuggestions","highlightedIndex","setHighlightedIndex","getSuggestions","onSubmit","matchingTerm","getDraftTag","draftTag","tags","showDelete","setShowDelete","toggle","onDraftChange","toSubmit","tagValue","Autocomplete","WrappedWidget","widgetEl","saveImmediately","diffs","uri","BUILTIN_WIDGETS","TagWidget","DEFAULT_WIDGETS","isReactComponent","isClassComponent","component","isFunctionComponent","getWidget","instantiate","widget","force","MARGIN_VERTICAL","wrapperEl","editorEl","selectedEl","autoPosition","containerBounds","left","right","bottom","defaultOrientation","editorHeight","currentOrientation","shapeBottom","elem","Editor","resizeObserver","meta","user","existing","autoUpserts","toRemove","toAppend","toUpdate","updatedBodies","currentAnnotation","undraft","draft","rest","selectionBounds","nextBounds","widgets","isReadOnlyWidget","hasDelete","getRandomValues","rnds8","rng","validate","uuid","REGEX","byteToHex","v4","buf","rnds","fastDeepEqual","equal","_WebAnnotation","opt_props","opt_opts","equals","bodies","WebAnnotation","stub","Selection","cloned","serverTimeDifference","serverNow","browserNow","serverTime","setLocale","fallback","foundLocale","_l","I18n","RubberbandRect","constructor","anchorX","anchorY","env","dragTo","oppositeX","oppositeY","display","opposite","bbox","getBoundingClientRect","toSelection","anchor","pointerEvents","max","SIM_EVENTS","touchstart","touchmove","touchend","window","navigator","maxTouchPoints","msMaxTouchPoints","enableTouchTranslation","pressAndHoldTrigger","simulateEvent","MouseEvent","screenX","screenY","clientX","clientY","pageX","pageY","bubbles","touchHandler","changedTouches","simulatedEvent","dispatchEvent","preventDefault","clearTimeout","setTimeout","addEventListener","IMPLEMENTATION_MISSING","isTouch","ToolLike","EventEmitter","enableResponsive","ResizeObserver","svgBounds","svg","viewBox","baseVal","onScaleChanged","observe","getSVGPoint","createSVGPoint","matrixTransform","getScreenCTM","inverse","offsetX","offsetY","getCTM","drawHandle","containerGroup","drawCircle","radius","handleRadius","setHandleXY","handle","getHandleXY","scaleHandle","closest","Element","HTMLDocument","disconnect","Tool","attachListeners","mouseMove","mouseUp","dblClick","started","emit","button","detachListeners","removeEventListener","startOnSingleClick","startX","startY","startDrawing","Error","createEditableShape","formatters","isDrawing","supports","EditableShape","updateState","isFirefox","test","userAgent","formatSvgEl","svgEl","appendFormatterEl","formatterEl","getBBox","reduce","merged","String","nodeType","Node","ELEMENT_NODE","elements","setFormatterElSize","CORNER","EDGE","EditableRect","handles","rectangle","elementGroup","topleft","topright","bottomright","bottomleft","topEdge","rightEdge","bottomEdge","leftEdge","enableEdgeControls","stretchCorners","draggedHandleIdx","anchorHandle","mousePos","stretchEdge","handleIdx","oppositeHandle","currentRectDims","isHeightAdjustment","onGrab","grabbedElem","grabbedType","pos","mouseOffset","onMouseMove","constrain","coord","onMouseUp","edgeHandles","RubberbandRectTool","rubberband","stop","constrainX","min","constrainY","minWidth","minSelectionWidth","minSelectionHeight","fragmentSelector","PolygonMask","redraw","RubberbandPolygon","setPoints","mousepos","addPoint","lastCorner","pow","Mask","getPoints","pointList","numberOfItems","getItem","EditablePolygon","round","grabbedAt","dx","dy","updatedPoints","RubberbandPolygonTool","_isDrawing","_startOnSingleClick","onDblClick","ToolRegistry","listTools","_registered","impl","registerTool","unregisterTool","unshift","filter","setCurrent","toolOrId","_current","_g","_config","_env","forAnnotation","renderedVia","Crosshair","layerGroup","parentElement","getSnippet","kx","ky","imageBounds","outerBounds","snippet","createElement","getContext","drawImage","transform","AnnotationLayer","_attachMouseListeners","tools","currentHover","stopPropagation","realTarget","elementFromPoint","contains","selectCurrentHover","_lazy","imageEl","_onMouseDown","readOnly","selectedShape","drawOnSingleClick","_refreshNonScalingAnnotations","getCurrentScale","Infinity","_scaleFormatterElements","opt_shape","addAnnotation","addDrawingTool","plugin","addOrUpdateAnnotation","deselect","removeAnnotation","skipRedraw","isSelection","findShape","annotationOrId","getAnnotations","getSelectedImageSnippet","annotations","sort","listDrawingTools","overrideId","originalId","forcedId","clone","shapes","_c","removeDrawingTool","selectAnnotation","skipEvent","selectShape","disableSelect","toolForAnnotation","fragment","setDrawingTool","setVisible","visible","stopDrawing","formatter","crosshair","DrawingTools","ImageAnnotator","clearState","setState","selectedAnnotation","selectedDOMElement","modifiedTarget","beforeHeadlessModify","opt_callback","forwardEvent","annotationLayer","onKeyUp","which","cancelSelected","onCancelSelected","disableDeleteKey","onCancelAnnotation","onDeleteAnnotation","handleStartSelect","onSelectionStarted","handleSelect","editorDisabled","onHeadlessSelect","onNormalSelect","select","onSelectionCreated","onAnnotationSelected","onChangeSelected","saveSelected","then","handleUpdateTarget","JSON","onSelectionTargetChanged","overrideAnnotationId","originalAnnotation","onCreateOrUpdateAnnotation","toAnnotation","onAnnotationDeleted","Promise","resolve","getAnnotationById","annotationId","getImageSnippetById","getSelected","_editor","getCurrentAnnotation","onOk","allowEmpty","setAnnotations","updateSelected","disableEditor","componentDidMount","onLoad","componentWillUnmount","disable","open","_jsx","detachable","selectedElement","onAnnotationCreated","onAnnotationUpdated","onCancel","Annotorious","handleAnnotationCreated","_emitter","underlying","handleAnnotationDeleted","handleAnnotationSelected","handleAnnotationUpdated","handleCancelSelected","handleChangeSelected","handleClickAnnotation","handleLoad","handleSelectionCreated","handleSelectionStarted","handleSelectionTargetChanged","handleMouseEnterAnnotation","handleMouseLeaveAnnotation","_wrap","_app","clearAnnotations","clearAuthInfo","unmountComponentAtNode","_appContainerEl","_element","insertBefore","loadAnnotations","fetch","url","response","json","off","once","webannotations","setAuthInfo","authinfo","setServerTime","Emitter","headless","getElementById","createEnvironment","onClickAnnotation","onMouseEnterAnnotation","onMouseLeaveAnnotation"],"mappings":"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,QAAS,kBACX,EAAG,CACD,KAAM,KACN,QAAS,QACX,EAAG,CACD,KAAM,KACN,QAAS,QACX,EAAG,CACD,KAAM,KACN,QAAS,cACX,EAAG,CACD,KAAM,KACN,QAAS,QACX,EAAG,CACD,KAAM,IACN,QAAS,mDACX,EAAG,CACD,KAAM,IACN,QAAS,mEACX,EAAG,CACD,KAAM,IACN,QAAS,iFACX,EAAG,CACD,KAAM,KACN,QAAS,cACX,EAAG,CACD,KAAM,KACN,QAAS,cACX,EAAG,CACD,KAAM,IACN,QAAS,yKACX,EAAG,CACD,KAAM,IACN,QAAS,iCACX,EAAG,CACD,KAAM,IACN,QAAS,uFACX,EAAG,CACD,KAAM,IACN,QAAS,iFACX,EAAG,CACD,KAAM,IACN,QAAS,6GACX,EAAG,CACD,KAAM,IACN,QAAS,2BACX,EAAG,CACD,KAAM,IACN,QAAS,iFACX,EAAG,CACD,KAAM,IACN,QAAS,yGACX,EAAG,CACD,KAAM,KACN,QAAS,QACX,EAAG,CACD,KAAM,KACN,QAAS,QACX,EAAG,CACD,KAAM,IACN,QAAS,6CACX,EAAG,CACD,KAAM,IACN,QAAS,2FACX,EAAG,CACD,KAAM,KACN,QAAS,QACX,EAAG,CACD,KAAM,KACN,QAAS,QACX,EAAG,CACD,KAAM,IACN,QAAS,mPACX,EAAG,CACD,KAAM,KACN,QAAS,QACX,EAAG,CACD,KAAM,KACN,QAAS,QACX,EAAG,CACD,KAAM,KACN,QAAS,QACX,EAAG,CACD,KAAM,IACN,QAAS,yDACX,EAAG,CACD,KAAM,IACN,QAAS,iCACX,EAAG,CACD,KAAM,IACN,QAAS,mGACX,EAAG,CACD,KAAM,IACN,QAAS,mGACX,EAAG,CACD,KAAM,IACN,QAAS,uFACX,EAAG,CACD,KAAM,KACN,QAAS,QACX,EAAG,CACD,KAAM,IACN,QAAS,iMACX,EAAG,CACD,KAAM,IACN,QAAS,6CACX,EAAG,CACD,KAAM,KACN,QAAS,QACX,EAAG,CACD,KAAM,IACN,QAAS,yDACX,EAAG,CACD,KAAM,IACN,QAAS,2BACX,EAAG,CACD,KAAM,IACN,QAAS,qFACX,EAAG,CACD,KAAM,IACN,QAAS,iFACX,EAAG,CACD,KAAM,IACN,QAAS,mMACX,EAAG,CACD,KAAM,KACN,QAAS,QACX,EAAG,CACD,KAAM,KACN,QAAS,kBACX,EAAG,CACD,KAAM,KACN,QAAS,QACX,EAAG,CACD,KAAM,KACN,QAAS,QACX,EAAG,CACD,KAAM,KACN,QAAS,cACX,EAAG,CACD,KAAM,KACN,QAAS,QACX,EAAG,CACD,KAAM,IACN,QAAS,mDACX,EAAG,CACD,KAAM,IACN,QAAS,yEACX,EAAG,CACD,KAAM,IACN,QAAS,iFACX,EAAG,CACD,KAAM,KACN,QAAS,cACX,EAAG,CACD,KAAM,IACN,QAAS,+KACX,EAAG,CACD,KAAM,IACN,QAAS,iCACX,EAAG,CACD,KAAM,IACN,QAAS,uFACX,EAAG,CACD,KAAM,IACN,QAAS,uFACX,EAAG,CACD,KAAM,KACN,QAAS,QACX,EAAG,CACD,KAAM,IACN,QAAS,6GACX,EAAG,CACD,KAAM,IACN,QAAS,iCACX,EAAG,CACD,KAAM,IACN,QAAS,iFACX,EAAG,CACD,KAAM,IACN,QAAS,+GACX,EAAG,CACD,KAAM,KACN,QAAS,QACX,EAAG,CACD,KAAM,IACN,QAAS,6CACX,EAAG,CACD,KAAM,IACN,QAAS,iGACX,EAAG,CACD,KAAM,KACN,QAAS,QACX,EAAG,CACD,KAAM,IACN,QAAS,mPACX,EAAG,CACD,KAAM,KACN,QAAS,QACX,EAAG,CACD,KAAM,KACN,QAAS,QACX,EAAG,CACD,KAAM,KACN,QAAS,QACX,EAAG,CACD,KAAM,IACN,QAAS,yDACX,EAAG,CACD,KAAM,IACN,QAAS,iCACX,EAAG,CACD,KAAM,IACN,QAAS,mGACX,EAAG,CACD,KAAM,IACN,QAAS,uGACX,EAAG,CACD,KAAM,IACN,QAAS,6FACX,EAAG,CACD,KAAM,KACN,QAAS,QACX,EAAG,CACD,KAAM,IACN,QAAS,iMACX,EAAG,CACD,KAAM,IACN,QAAS,6CACX,EAAG,CACD,KAAM,KACN,QAAS,QACX,EAAG,CACD,KAAM,IACN,QAAS,+DACX,EAAG,CACD,KAAM,IACN,QAAS,2BACX,EAAG,CACD,KAAM,IACN,QAAS,yFACX,EAAG,CACD,KAAM,IACN,QAAS,iFACX,CAAC,EACGC,GAAe,IAAI,OAAO,IAAMD,GAAW,IAAI,SAAUn7C,EAAG,CAC9D,OAAOA,EAAE,OACX,CAAC,EAAE,KAAK,EAAE,EAAI,IAAK,GAAG,EAClBq7C,GAAkB,GAEbx7C,GAAI,EAAGA,GAAIs7C,GAAW,OAAQt7C,KAGrC,QAFIy7C,GAAYH,GAAWt7C,IAElBS,GAAI,EAAGA,GAAIg7C,GAAU,QAAQ,OAAQh7C,KAC5C+6C,GAAgBC,GAAU,QAAQh7C,KAAMg7C,GAAU,KAItD,IAAIC,GAAkB,SAAyB/xC,EAAK,CAClD,OAAOA,EAAI,QAAQ4xC,GAAc,SAAU71B,EAAO,CAChD,OAAO81B,GAAgB91B,GACxB,CACH,EAEIi2B,GAAkCxD,GAAWuD,EAAe,EAE5DE,GAAa,SAAoBjyC,EAAK,CACxC,OAAOA,EAAI,QAAQ,aAAc,EAAE,CACrC,EAEIkyC,GAAmB,SAA0BpB,EAAQ,CACvD,MAAO,GAAG,OAAOA,EAAO,MAAO,GAAG,EAAE,OAAOA,EAAO,KAAK,CACzD,EAEIqB,GAAe,SAAsBC,EAAQ,CAC/C,OAAO,SAAUtB,EAAQuB,EAAU,CACjC,IAAIC,EAAwBpQ,GAAe,CACzC,WAAY,GACZ,cAAe,GACf,UAAWgQ,GACX,KAAM,GACN,UAAW,OACVE,CAAM,EACLG,EAAaD,EAAsB,WACnCE,EAAgBF,EAAsB,cACtCvZ,EAAYuZ,EAAsB,UAClCryC,EAAOqyC,EAAsB,KAC7BG,EAAYH,EAAsB,UAElCn+B,EAAQlU,EAAOgyC,GAAWI,CAAQ,EAAIA,EACtCK,EAAYzyC,EAAOgyC,GAAWlZ,EAAU+X,CAAM,CAAC,EAAI/X,EAAU+X,CAAM,EAEvE,OAAIyB,IACFp+B,EAAQA,EAAM,cACdu+B,EAAYA,EAAU,eAGpBF,IACFr+B,EAAQ69B,GAAgC79B,CAAK,EAC7Cu+B,EAAYX,GAAgBW,CAAS,GAGhCD,IAAc,QAAUC,EAAU,OAAO,EAAGv+B,EAAM,MAAM,IAAMA,EAAQu+B,EAAU,QAAQv+B,CAAK,EAAI,GAE5G,EAEA,SAASw+B,GAAWt/B,EAAM,CACxBA,EAAK,GACDA,EAAK,IACLA,EAAK,SACLA,EAAK,OACLA,EAAK,MACLA,EAAK,KACL,IAAIq0B,EAAWr0B,EAAK,SACpBA,EAAK,QACL,IAAI/O,EAAQqN,GAAyB0B,EAAM,CAAC,KAAM,MAAO,WAAY,SAAU,QAAS,OAAQ,WAAY,SAAS,CAAC,EAE1H,OAAOyrB,EAAI,QAASptB,EAAS,CAC3B,IAAKg2B,GACJpjC,EAAO,CACR,IAAkB26B,GAAI,CACpB,MAAO,aAEP,WAAY,EACZ,OAAQ,EACR,SAAU,UACV,QAAS,EACT,QAAS,EAET,MAAO,EAEP,MAAO,cAEP,KAAM,KACN,QAAS,EACT,SAAU,WACV,UAAW,YAC8B,GAAmE,EAAk2C,EACj9C,CAAC,CACJ,CAEA,IAAI2T,GAAe,SAAsBnpC,EAAO,CAC9CA,EAAM,iBACNA,EAAM,iBACR,EAEA,SAASopC,GAAiBx/B,EAAM,CAC9B,IAAIy/B,EAAYz/B,EAAK,UACjB0/B,EAAiB1/B,EAAK,eACtB2/B,EAAgB3/B,EAAK,cACrB4/B,EAAc5/B,EAAK,YACnB6/B,EAAa7/B,EAAK,WAClB8/B,EAAW1hB,GAAO,EAAK,EACvB2hB,EAAQ3hB,GAAO,EAAK,EACpB4hB,EAAa5hB,GAAO,CAAC,EACrB6hB,EAAe7hB,GAAO,IAAI,EAC1B8hB,EAAmBC,GAAY,SAAU/pC,EAAOgqC,EAAO,CAEzD,GAAIH,EAAa,UAAY,KAC7B,KAAII,EAAwBJ,EAAa,QACrC9N,EAAYkO,EAAsB,UAClC1O,EAAe0O,EAAsB,aACrCC,EAAeD,EAAsB,aACrCvqC,EAASmqC,EAAa,QACtBM,EAAkBH,EAAQ,EAC1BI,EAAkB7O,EAAe2O,EAAenO,EAChDsO,EAAqB,GAErBD,EAAkBJ,GAASN,EAAS,UAClCH,GAAeA,EAAcvpC,CAAK,EACtC0pC,EAAS,QAAU,IAGjBS,GAAmBR,EAAM,UACvBF,GAAYA,EAAWzpC,CAAK,EAChC2pC,EAAM,QAAU,IAIdQ,GAAmBH,EAAQI,GACzBd,GAAkB,CAACI,EAAS,SAC9BJ,EAAetpC,CAAK,EAGtBN,EAAO,UAAY67B,EACnB8O,EAAqB,GACrBX,EAAS,QAAU,IACV,CAACS,GAAmB,CAACH,EAAQjO,IAClCyN,GAAe,CAACG,EAAM,SACxBH,EAAYxpC,CAAK,EAGnBN,EAAO,UAAY,EACnB2qC,EAAqB,GACrBV,EAAM,QAAU,IAIdU,GACFlB,GAAanpC,CAAK,IAEnB,EAAE,EACDsqC,EAAUP,GAAY,SAAU/pC,EAAO,CACzC8pC,EAAiB9pC,EAAOA,EAAM,MAAM,GACnC,CAAC8pC,CAAgB,CAAC,EACjBS,EAAeR,GAAY,SAAU/pC,EAAO,CAE9C4pC,EAAW,QAAU5pC,EAAM,eAAe,GAAG,SAC5C,EAAE,EACDwqC,EAAcT,GAAY,SAAU/pC,EAAO,CAC7C,IAAIoH,EAASwiC,EAAW,QAAU5pC,EAAM,eAAe,GAAG,QAC1D8pC,EAAiB9pC,EAAOoH,CAAM,GAC7B,CAAC0iC,CAAgB,CAAC,EACjBW,EAAiBV,GAAY,SAAUr5C,EAAI,CAE7C,GAAI,EAACA,EACL,KAAIg6C,EAAa9P,GAAwB,CACvC,QAAS,IACP,GAEA,OAAOlqC,EAAG,kBAAqB,YACjCA,EAAG,iBAAiB,QAAS45C,EAASI,CAAU,EAG9C,OAAOh6C,EAAG,kBAAqB,YACjCA,EAAG,iBAAiB,aAAc65C,EAAcG,CAAU,EAGxD,OAAOh6C,EAAG,kBAAqB,YACjCA,EAAG,iBAAiB,YAAa85C,EAAaE,CAAU,IAEzD,CAACF,EAAaD,EAAcD,CAAO,CAAC,EACnCK,EAAgBZ,GAAY,SAAUr5C,EAAI,CAExC,CAACA,IAED,OAAOA,EAAG,qBAAwB,YACpCA,EAAG,oBAAoB,QAAS45C,EAAS,EAAK,EAG5C,OAAO55C,EAAG,qBAAwB,YACpCA,EAAG,oBAAoB,aAAc65C,EAAc,EAAK,EAGtD,OAAO75C,EAAG,qBAAwB,YACpCA,EAAG,oBAAoB,YAAa85C,EAAa,EAAK,IAEvD,CAACA,EAAaD,EAAcD,CAAO,CAAC,EACvC98B,OAAAA,GAAU,UAAY,CACpB,GAAI,EAAC67B,EACL,KAAIxe,EAAUgf,EAAa,QAC3B,OAAAY,EAAe5f,CAAO,EACf,UAAY,CACjB8f,EAAc9f,CAAO,KAEtB,CAACwe,EAAWoB,EAAgBE,CAAa,CAAC,EACtC,SAAU9f,EAAS,CACxBgf,EAAa,QAAUhf,EAE3B,CAEA,IAAI+f,GAAa,CAAC,YAAa,SAAU,WAAY,eAAgB,UAAU,EAC3EC,GAAc,CAChB,UAAW,aAEX,SAAU,SACV,SAAU,WACV,OAAQ,MACV,EAEA,SAASC,GAAiBx+C,EAAG,CAC3BA,EAAE,gBACJ,CAEA,SAASy+C,GAAez+C,EAAG,CACzBA,EAAE,iBACJ,CAEA,SAAS0+C,IAAuB,CAC9B,IAAI9R,EAAM,KAAK,UACX+R,EAAc,KAAK,aACnBC,EAAgBhS,EAAM,KAAK,aAE3BA,IAAQ,EACV,KAAK,UAAY,EACRgS,IAAkBD,IAC3B,KAAK,UAAY/R,EAAM,EAE3B,CAIA,SAASiS,IAAgB,CACvB,MAAO,iBAAkB,QAAU,UAAU,cAC/C,CAEA,IAAIC,GAAY,CAAC,EAAE,OAAO,QAAW,aAAe,OAAO,UAAY,OAAO,SAAS,eACnFC,GAAoB,EACpBC,GAAkB,CACpB,QAAS,GACT,QAAS,EACX,EACA,SAASC,GAAc3hC,EAAM,CAC3B,IAAIy/B,EAAYz/B,EAAK,UACjB4hC,EAAwB5hC,EAAK,qBAC7B6hC,EAAuBD,IAA0B,OAAS,GAAOA,EACjEE,EAAiB1jB,GAAO,EAAE,EAC1B6hB,EAAe7hB,GAAO,IAAI,EAC1B2jB,EAAgB5B,GAAY,SAAU6B,EAAmB,CAC3D,GAAI,EAACR,GACL,KAAI1rC,EAAS,SAAS,KAClBmsC,EAAcnsC,GAAUA,EAAO,MAWnC,GATI+rC,GAEFb,GAAW,QAAQ,SAAU3rC,EAAK,CAChC,IAAI+6B,EAAM6R,GAAeA,EAAY5sC,GACrCysC,EAAe,QAAQzsC,GAAO+6B,EAC/B,EAICyR,GAAwBJ,GAAoB,EAAG,CACjD,IAAIS,EAAiB,SAASJ,EAAe,QAAQ,aAAc,EAAE,GAAK,EACtEljB,EAAc,SAAS,KAAO,SAAS,KAAK,YAAc,EAC1DujB,EAAkB,OAAO,WAAavjB,EAAcsjB,GAAkB,EAC1E,OAAO,KAAKjB,EAAW,EAAE,QAAQ,SAAU5rC,EAAK,CAC9C,IAAI+6B,EAAM6Q,GAAY5rC,GAElB4sC,IACFA,EAAY5sC,GAAO+6B,GAEtB,EAEG6R,IACFA,EAAY,aAAe,GAAG,OAAOE,EAAiB,IAAI,GAK1DrsC,GAAUyrC,OAEZzrC,EAAO,iBAAiB,YAAaorC,GAAkBQ,EAAe,EAElEM,IACFA,EAAkB,iBAAiB,aAAcZ,GAAsBM,EAAe,EACtFM,EAAkB,iBAAiB,YAAab,GAAgBO,EAAe,IAKnFD,IAAqB,IACpB,EAAE,EACDW,EAAmBjC,GAAY,SAAU6B,EAAmB,CAC9D,GAAI,EAACR,GACL,KAAI1rC,EAAS,SAAS,KAClBmsC,EAAcnsC,GAAUA,EAAO,MAEnC2rC,GAAoB,KAAK,IAAIA,GAAoB,EAAG,CAAC,EAEjDI,GAAwBJ,GAAoB,GAC9CT,GAAW,QAAQ,SAAU3rC,EAAK,CAChC,IAAI+6B,EAAM0R,EAAe,QAAQzsC,GAE7B4sC,IACFA,EAAY5sC,GAAO+6B,GAEtB,EAICt6B,GAAUyrC,OACZzrC,EAAO,oBAAoB,YAAaorC,GAAkBQ,EAAe,EAErEM,IACFA,EAAkB,oBAAoB,aAAcZ,GAAsBM,EAAe,EACzFM,EAAkB,oBAAoB,YAAab,GAAgBO,EAAe,MAGrF,EAAE,EACL99B,OAAAA,GAAU,UAAY,CACpB,GAAI,EAAC67B,EACL,KAAIxe,EAAUgf,EAAa,QAC3B,OAAA8B,EAAc9gB,CAAO,EACd,UAAY,CACjBmhB,EAAiBnhB,CAAO,KAEzB,CAACwe,EAAWsC,EAAeK,CAAgB,CAAC,EACxC,SAAUnhB,EAAS,CACxBgf,EAAa,QAAUhf,EAE3B,CAIA,IAAIohB,GAAkB,UAA2B,CAC/C,OAAO,SAAS,eAAiB,SAAS,cAAc,MAC1D,EAEIlrC,GAAgD,CAClD,KAAM,UACN,OAAQ,8CACV,EAOA,SAASmrC,GAActiC,EAAM,CAC3B,IAAIT,EAAWS,EAAK,SAChBuiC,EAAcviC,EAAK,YACnBwiC,EAAsBxiC,EAAK,eAC3ByiC,EAAiBD,IAAwB,OAAS,GAAOA,EACzD9C,EAAiB1/B,EAAK,eACtB2/B,EAAgB3/B,EAAK,cACrB4/B,EAAc5/B,EAAK,YACnB6/B,EAAa7/B,EAAK,WAClB0iC,EAAyBlD,GAAiB,CAC5C,UAAWiD,EACX,eAAgB/C,EAChB,cAAeC,EACf,YAAaC,EACb,WAAYC,EACb,EACG8C,EAAsBhB,GAAc,CACtC,UAAWY,EACZ,EAEGK,EAAY,SAAmB3hB,EAAS,CAC1CyhB,EAAuBzhB,CAAO,EAC9B0hB,EAAoB1hB,CAAO,GAG7B,OAAOwK,EAAIhyB,EAAM,SAAU,KAAM8oC,GAAe9W,EAAI,MAAO,CACzD,QAAS4W,GACT,IAAKlrC,GACN,EAAGoI,EAASqjC,CAAS,CAAC,CACzB,CAEA,IAAIC,GAAmB,SAA0BC,EAAO,CACtD,OAAOA,EAAM,KACf,EACI5F,GAAiB,SAAwBO,EAAQ,CACnD,OAAOA,EAAO,KAChB,EACIsF,GAAiB,SAAwBtF,EAAQ,CACnD,OAAOA,EAAO,KAChB,EACIN,GAAmB,SAA0BM,EAAQ,CACvD,MAAO,CAAC,CAACA,EAAO,UAClB,EAEIuF,GAAgB,CAClB,eAAgB9L,GAChB,UAAWlB,GACX,QAASgE,GACT,kBAAmBhD,GACnB,MAAOgB,GACP,aAAcM,GACd,oBAAqB/B,GACrB,mBAAoBa,GACpB,MAAOqB,GACP,iBAAkBjB,GAClB,eAAgBzC,GAChB,KAAM3B,GACN,SAAUkB,GACV,WAAYY,GACZ,WAAY0D,GACZ,gBAAiBC,GACjB,iBAAkBE,GAClB,iBAAkBjE,GAClB,OAAQ6E,GACR,YAAaG,GACb,YAAanC,GACb,eAAgBvB,EAClB,EAsBI5C,GAAS,CACX,QAAS,UACT,UAAW,UACX,UAAW,UACX,UAAW,UACX,OAAQ,UACR,YAAa,UACb,SAAU,mBACV,SAAU,kBACV,UAAW,kBACX,UAAW,kBACX,UAAW,kBACX,UAAW,kBACX,UAAW,kBACX,UAAW,kBACX,UAAW,kBACX,UAAW,kBACX,UAAW,iBACb,EACID,GAAe,EAEfiB,GAAW,EAEXyO,GAAgB,GAEhBC,GAAa1O,GAAW,EACxBjD,GAAU,CACZ,SAAUiD,GACV,cAAeyO,GACf,WAAYC,EACd,EACIC,GAAe,CACjB,aAAc5P,GACd,OAAQC,GACR,QAASjC,EACX,EAEI6R,GAAe,CACjB,YAAa,SACb,sBAAuB,GACvB,kBAAmBvS,KACnB,kBAAmB,CAACA,KACpB,kBAAmB,GACnB,kBAAmB,GACnB,WAAY,GACZ,yBAA0B,GAC1B,kBAAmB,GACnB,aAAciO,KACd,iBAAkB+D,GAClB,eAAgB3F,GAChB,eAAgB6F,GAChB,WAAY,GACZ,UAAW,GACX,QAAS,GACT,MAAO,GACP,aAAc,GACd,iBAAkB5F,GAClB,eAAgB,UAA0B,CACxC,MAAO,cAET,cAAe,IACf,cAAe,IACf,WAAY,GACZ,cAAe,SACf,aAAc,WACd,sBAAuB,GACvB,yBAA0B,CAACrM,KAC3B,iBAAkB,UAA4B,CAC5C,MAAO,cAET,gBAAiB,GACjB,gBAAiB,GACjB,QAAS,GACT,SAAU,EACV,YAAa,YACb,mBAAoB,SAA4B9wB,EAAM,CACpD,IAAI2Y,EAAQ3Y,EAAK,MACjB,MAAO,GAAG,OAAO2Y,EAAO,SAAS,EAAE,OAAOA,IAAU,EAAI,IAAM,GAAI,YAAY,GAEhF,OAAQ,GACR,SAAU,IACV,gBAAiB,EACnB,EAEA,SAAS0qB,GAAoBpyC,EAAOwsC,EAAQpB,EAAa5hB,EAAO,CAC9D,IAAIwb,EAAaqN,GAAkBryC,EAAOwsC,EAAQpB,CAAW,EAEzDzC,EAAa2J,GAAkBtyC,EAAOwsC,EAAQpB,CAAW,EAEzDjE,EAAQoL,GAAiBvyC,EAAOwsC,CAAM,EACtCl1C,EAAQk7C,GAAiBxyC,EAAOwsC,CAAM,EAC1C,MAAO,CACL,KAAM,SACN,KAAMA,EACN,WAAYxH,EACZ,WAAY2D,EACZ,MAAOxB,EACP,MAAO7vC,EACP,MAAOkyB,EAEX,CAEA,SAASipB,GAAwBzyC,EAAOorC,EAAa,CACnD,OAAOprC,EAAM,QAAQ,IAAI,SAAU0yC,EAAeC,EAAoB,CACpE,GAAID,EAAc,QAAS,CACzB,IAAIE,EAAqBF,EAAc,QAAQ,IAAI,SAAUlG,EAAQqG,EAAa,CAChF,OAAOT,GAAoBpyC,EAAOwsC,EAAQpB,EAAayH,CAAW,EACnE,EAAE,OAAO,SAAUC,EAAmB,CACrC,OAAOC,GAAY/yC,EAAO8yC,CAAiB,EAC5C,EACD,OAAOF,EAAmB,OAAS,EAAI,CACrC,KAAM,QACN,KAAMF,EACN,QAASE,EACT,MAAOD,GACL,OAGN,IAAIG,EAAoBV,GAAoBpyC,EAAO0yC,EAAetH,EAAauH,CAAkB,EACjG,OAAOI,GAAY/yC,EAAO8yC,CAAiB,EAAIA,EAAoB,OACpE,EACA,OAAO,SAAUA,EAAmB,CACnC,MAAO,CAAC,CAACA,EACV,CACH,CAEA,SAASE,GAA4CJ,EAAoB,CACvE,OAAOA,EAAmB,OAAO,SAAUK,EAAoBH,EAAmB,CAChF,OAAIA,EAAkB,OAAS,QAC7BG,EAAmB,KAAK,MAAMA,EAAoB1J,GAAmBuJ,EAAkB,QAAQ,IAAI,SAAUtG,EAAQ,CACnH,OAAOA,EAAO,KACf,CAAC,CAAC,EAEHyG,EAAmB,KAAKH,EAAkB,IAAI,EAGzCG,GACN,EAAE,CACP,CAEA,SAASC,GAAsBlzC,EAAOorC,EAAa,CACjD,OAAO4H,GAA4CP,GAAwBzyC,EAAOorC,CAAW,CAAC,CAChG,CAEA,SAAS2H,GAAY/yC,EAAO8yC,EAAmB,CAC7C,IAAIK,EAAoBnzC,EAAM,WAC1ByrC,EAAa0H,IAAsB,OAAS,GAAKA,EACjD79C,EAAOw9C,EAAkB,KACzBnK,EAAamK,EAAkB,WAC/B3L,EAAQ2L,EAAkB,MAC1Bx7C,EAAQw7C,EAAkB,MAC9B,OAAQ,CAACM,GAA0BpzC,CAAK,GAAK,CAAC2oC,IAAe0K,GAAcrzC,EAAO,CAChF,MAAOmnC,EACP,MAAO7vC,EACP,KAAMhC,GACLm2C,CAAU,CACf,CAEA,SAAS6H,GAAoBprC,EAAOqrC,EAAiB,CACnD,IAAIzH,EAAe5jC,EAAM,aACrBsrC,EAAkBtrC,EAAM,YACxBurC,EAAmBD,EAAgB,QAAQ1H,CAAY,EAE3D,GAAI2H,EAAmB,GAAI,CACzB,IAAIC,EAAmBH,EAAgB,QAAQzH,CAAY,EAE3D,GAAI4H,EAAmB,GAErB,OAAO5H,EACF,GAAI2H,EAAmBF,EAAgB,OAG5C,OAAOA,EAAgBE,GAI3B,OAAO,IACT,CAEA,SAASE,GAAqBzrC,EAAO5C,EAAS,CAC5C,IAAIsuC,EAAoB1rC,EAAM,cAC9B,OAAO0rC,GAAqBtuC,EAAQ,QAAQsuC,CAAiB,EAAI,GAAKA,EAAoBtuC,EAAQ,EACpG,CAEA,IAAIitC,GAAmB,SAAwBvyC,EAAO1K,EAAM,CAC1D,OAAO0K,EAAM,eAAe1K,CAAI,CAClC,EAEIk9C,GAAmB,SAAwBxyC,EAAO1K,EAAM,CAC1D,OAAO0K,EAAM,eAAe1K,CAAI,CAClC,EAEA,SAAS+8C,GAAkBryC,EAAOwsC,EAAQpB,EAAa,CACrD,OAAO,OAAOprC,EAAM,kBAAqB,WAAaA,EAAM,iBAAiBwsC,EAAQpB,CAAW,EAAI,EACtG,CAEA,SAASkH,GAAkBtyC,EAAOwsC,EAAQpB,EAAa,CACrD,GAAIA,EAAY,QAAQoB,CAAM,EAAI,GAAI,MAAO,GAE7C,GAAI,OAAOxsC,EAAM,kBAAqB,WACpC,OAAOA,EAAM,iBAAiBwsC,EAAQpB,CAAW,EAGnD,IAAIgD,EAAYoE,GAAiBxyC,EAAOwsC,CAAM,EAC9C,OAAOpB,EAAY,KAAK,SAAUr5C,EAAG,CACnC,OAAOygD,GAAiBxyC,EAAOjO,CAAC,IAAMq8C,EACvC,CACH,CAEA,SAASiF,GAAcrzC,EAAOwsC,EAAQf,EAAY,CAChD,OAAOzrC,EAAM,aAAeA,EAAM,aAAawsC,EAAQf,CAAU,EAAI,EACvE,CAEA,IAAI2H,GAA4B,SAAmCpzC,EAAO,CACxE,IAAI6zC,EAAsB7zC,EAAM,oBAC5ByjC,EAAUzjC,EAAM,QACpB,OAAI6zC,IAAwB,OAAkBpQ,EACvCoQ,CACT,EAEIC,GAAa,EAEbC,GAAsB,SAAUrX,EAAY,CAC9ChyB,GAAUqpC,EAAQrX,CAAU,EAE5B,IAAI7wB,EAASf,GAAaipC,CAAM,EAShC,SAASA,EAAOC,EAAQ,CACtB,IAAIloC,EAEJ,OAAA5B,GAAgB,KAAM6pC,CAAM,EAE5BjoC,EAAQD,EAAO,KAAK,KAAMmoC,CAAM,EAChCloC,EAAM,MAAQ,CACZ,cAAe,KACf,cAAe,KACf,aAAc,KACd,cAAe,GACf,UAAW,GACX,YAAa,GACb,wBAAyB,GACzB,yBAA0B,OAC1B,UAAW,QAEbA,EAAM,iBAAmB,GACzBA,EAAM,YAAc,GACpBA,EAAM,YAAc,OACpBA,EAAM,cAAgB,EACtBA,EAAM,cAAgB,EACtBA,EAAM,eAAiB,GACvBA,EAAM,eAAiB,GACvBA,EAAM,8BAAgC,GACtCA,EAAM,eAAiB,OACvBA,EAAM,WAAa,KAEnBA,EAAM,cAAgB,SAAU2G,EAAK,CACnC3G,EAAM,WAAa2G,GAGrB3G,EAAM,iBAAmB,KAEzBA,EAAM,oBAAsB,SAAU2G,EAAK,CACzC3G,EAAM,iBAAmB2G,GAG3B3G,EAAM,YAAc,KAEpBA,EAAM,eAAiB,SAAU2G,EAAK,CACpC3G,EAAM,YAAc2G,GAGtB3G,EAAM,SAAW,KAEjBA,EAAM,YAAc,SAAU2G,EAAK,CACjC3G,EAAM,SAAW2G,GAGnB3G,EAAM,MAAQA,EAAM,WACpBA,EAAM,KAAOA,EAAM,UAEnBA,EAAM,SAAW,SAAUmoC,EAAUC,EAAY,CAC/C,IAAItnC,EAAcd,EAAM,MACpB6jB,EAAW/iB,EAAY,SACvB3X,EAAO2X,EAAY,KACvBsnC,EAAW,KAAOj/C,EAElB6W,EAAM,aAAamoC,EAAUC,CAAU,EAEvCvkB,EAASskB,EAAUC,CAAU,GAG/BpoC,EAAM,SAAW,SAAUmoC,EAAU,CACnC,IAAIlJ,EAAS,UAAU,OAAS,GAAK,UAAU,KAAO,OAAY,UAAU,GAAK,YAC7EyB,EAAS,UAAU,OAAS,EAAI,UAAU,GAAK,OAC/Cn+B,EAAevC,EAAM,MACrBqoC,EAAoB9lC,EAAa,kBACjCo1B,EAAUp1B,EAAa,QAE3BvC,EAAM,cAAc,GAAI,CACtB,OAAQ,YACT,EAEGqoC,IACFroC,EAAM,SAAS,CACb,yBAA0B,CAAC23B,EAC5B,EAED33B,EAAM,eAIRA,EAAM,SAAS,CACb,wBAAyB,GAC1B,EAEDA,EAAM,SAASmoC,EAAU,CACvB,OAAQlJ,EACR,OAAQyB,EACT,GAGH1gC,EAAM,aAAe,SAAUmoC,EAAU,CACvC,IAAIG,EAAetoC,EAAM,MACrBuoC,EAAoBD,EAAa,kBACjC3Q,EAAU2Q,EAAa,QACvBn/C,EAAOm/C,EAAa,KACpBhJ,EAAct/B,EAAM,MAAM,YAE1BwoC,EAAa7Q,GAAW33B,EAAM,iBAAiBmoC,EAAU7I,CAAW,EAEpEpG,EAAal5B,EAAM,iBAAiBmoC,EAAU7I,CAAW,EAE7D,GAAIkJ,EAAY,CACd,IAAIlG,EAAYtiC,EAAM,eAAemoC,CAAQ,EAE7CnoC,EAAM,SAASs/B,EAAY,OAAO,SAAUr5C,EAAG,CAC7C,OAAO+Z,EAAM,eAAe/Z,CAAC,IAAMq8C,EACpC,EAAG,kBAAmB6F,CAAQ,UACtB,CAACjP,EAENvB,EACF33B,EAAM,SAAS,GAAG,OAAOy9B,GAAmB6B,CAAW,EAAG,CAAC6I,CAAQ,CAAC,EAAG,gBAAiBA,CAAQ,EAEhGnoC,EAAM,SAASmoC,EAAU,eAAe,MAErC,CACLnoC,EAAM,aAAamoC,EAAU,CAC3B,OAAQ,gBACR,KAAMh/C,EACP,EAED,OAGEo/C,GACFvoC,EAAM,aAIVA,EAAM,YAAc,SAAU2gC,EAAc,CAC1C,IAAIhJ,EAAU33B,EAAM,MAAM,QACtBs/B,EAAct/B,EAAM,MAAM,YAE1BsiC,EAAYtiC,EAAM,eAAe2gC,CAAY,EAE7C8H,EAAgBnJ,EAAY,OAAO,SAAUr5C,EAAG,CAClD,OAAO+Z,EAAM,eAAe/Z,CAAC,IAAMq8C,EACpC,EACG6F,EAAWxQ,EAAU8Q,EAAgBA,EAAc,IAAM,KAE7DzoC,EAAM,SAASmoC,EAAU,CACvB,OAAQ,eACR,aAAcxH,EACf,EAED3gC,EAAM,cAGRA,EAAM,WAAa,UAAY,CAC7B,IAAIs/B,EAAct/B,EAAM,MAAM,YAE9BA,EAAM,SAASA,EAAM,MAAM,QAAU,GAAK,KAAM,CAC9C,OAAQ,QACR,cAAes/B,EAChB,GAGHt/B,EAAM,SAAW,UAAY,CAC3B,IAAI23B,EAAU33B,EAAM,MAAM,QACtBs/B,EAAct/B,EAAM,MAAM,YAC1B0oC,EAAoBpJ,EAAYA,EAAY,OAAS,GACrDmJ,EAAgBnJ,EAAY,MAAM,EAAGA,EAAY,OAAS,CAAC,EAC3D6I,EAAWxQ,EAAU8Q,EAAgBA,EAAc,IAAM,KAE7DzoC,EAAM,SAASmoC,EAAU,CACvB,OAAQ,YACR,aAAcO,EACf,GAGH1oC,EAAM,SAAW,UAAY,CAC3B,OAAOA,EAAM,MAAM,aAGrBA,EAAM,GAAK,UAAY,CACrB,QAASC,EAAO,UAAU,OAAQC,EAAO,IAAI,MAAMD,CAAI,EAAGE,EAAO,EAAGA,EAAOF,EAAME,IAC/ED,EAAKC,GAAQ,UAAUA,GAGzB,OAAO7V,GAAW,MAAM,OAAQ,CAAC0V,EAAM,MAAM,eAAe,EAAE,OAAOE,CAAI,CAAC,GAG5EF,EAAM,eAAiB,SAAUxW,EAAM,CACrC,OAAOi9C,GAAiBzmC,EAAM,MAAOxW,CAAI,GAG3CwW,EAAM,eAAiB,SAAUxW,EAAM,CACrC,OAAOk9C,GAAiB1mC,EAAM,MAAOxW,CAAI,GAG3CwW,EAAM,UAAY,SAAU1H,EAAKpE,EAAO,CACtC,IAAIy0C,EAAO1C,GAAc3tC,GAAKpE,CAAK,EACnCy0C,EAAK,UAAY,aACjB,IAAIC,EAAS5oC,EAAM,MAAM,OAAO1H,GAChC,OAAOswC,EAASA,EAAOD,EAAMz0C,CAAK,EAAIy0C,GAGxC3oC,EAAM,aAAe,SAAUkkB,EAAS,CACtC,MAAO,GAAG,OAAOlkB,EAAM,eAAgB,GAAG,EAAE,OAAOkkB,CAAO,GAG5DlkB,EAAM,cAAgB,UAAY,CAChC,OAAOm9B,GAAkBn9B,EAAM,KAAK,GAGtCA,EAAM,wBAA0B,UAAY,CAC1C,OAAO2mC,GAAwB3mC,EAAM,MAAOA,EAAM,MAAM,WAAW,GAGrEA,EAAM,sBAAwB,UAAY,CACxC,OAAOA,EAAM,MAAM,WAAaA,EAAM,0BAA4B,IAGpEA,EAAM,sBAAwB,UAAY,CACxC,OAAOknC,GAA4ClnC,EAAM,yBAAyB,GAGpFA,EAAM,oBAAsB,UAAY,CACtC,OAAOA,EAAM,MAAM,WAAaA,EAAM,wBAA0B,IAGlEA,EAAM,aAAe,SAAUxU,EAAO48C,EAAY,CAChDpoC,EAAM,SAAS,CACb,cAAe8xB,GAAe,CAC5B,MAAOtmC,GACN48C,CAAU,EACd,GAGHpoC,EAAM,gBAAkB,SAAU3G,EAAO,CACnCA,EAAM,SAAW,IAIrBA,EAAM,kBACNA,EAAM,iBAEN2G,EAAM,eAGRA,EAAM,gBAAkB,SAAU3G,EAAO,CACvC2G,EAAM,iBAAmB,IAG3BA,EAAM,mBAAqB,SAAU3G,EAAO,CAC1C,IAAIwvC,EAAkB7oC,EAAM,MAAM,gBAE7BA,EAAM,MAAM,UAMLA,EAAM,MAAM,WAMtB3G,EAAM,OAAO,UAAY,SAAWA,EAAM,OAAO,UAAY,YAC3D2G,EAAM,cANJ6oC,GACF7oC,EAAM,SAAS,OAAO,GAPpB6oC,IACF7oC,EAAM,eAAiB,IAGzBA,EAAM,cAaR3G,EAAM,OAAO,UAAY,SAAWA,EAAM,OAAO,UAAY,YAC3DA,EAAM,kBAIV2G,EAAM,6BAA+B,SAAU3G,EAAO,CAEpD,GAAI,EAAAA,GAASA,EAAM,OAAS,aAAeA,EAAM,SAAW,IAIxD,CAAA2G,EAAM,MAAM,WAChB,KAAI8oC,EAAe9oC,EAAM,MACrB23B,EAAUmR,EAAa,QACvB9N,EAAa8N,EAAa,WAE9B9oC,EAAM,aAEFg7B,GACFh7B,EAAM,SAAS,CACb,yBAA0B,CAAC23B,EAC5B,EAED33B,EAAM,eAENA,EAAM,SAAS,OAAO,EAGxB3G,EAAM,iBACNA,EAAM,oBAGR2G,EAAM,0BAA4B,SAAU3G,EAAO,CAE7CA,GAASA,EAAM,OAAS,aAAeA,EAAM,SAAW,IAI5D2G,EAAM,aAEN3G,EAAM,kBACN2G,EAAM,eAAiB,GAEnB3G,EAAM,OAAS,WACjB2G,EAAM,aAEN,WAAW,UAAY,CACrB,OAAOA,EAAM,aACd,IAILA,EAAM,SAAW,SAAU3G,EAAO,CAC5B,OAAO2G,EAAM,MAAM,mBAAsB,UACvC3G,EAAM,kBAAkB,aAAe+4B,GAAkB/4B,EAAM,MAAM,GACvE2G,EAAM,MAAM,cAEL,OAAOA,EAAM,MAAM,mBAAsB,YAC9CA,EAAM,MAAM,kBAAkB3G,CAAK,GACrC2G,EAAM,MAAM,eAKlBA,EAAM,mBAAqB,UAAY,CACrCA,EAAM,YAAc,IAGtBA,EAAM,iBAAmB,UAAY,CACnCA,EAAM,YAAc,IAGtBA,EAAM,aAAe,SAAU5F,EAAO,CACpC,IAAI2uC,EAAU3uC,EAAM,QAChB4uC,EAAQD,GAAWA,EAAQ,KAAK,CAAC,EAEjC,CAACC,IAILhpC,EAAM,cAAgBgpC,EAAM,QAC5BhpC,EAAM,cAAgBgpC,EAAM,QAC5BhpC,EAAM,eAAiB,KAGzBA,EAAM,YAAc,SAAUs2B,EAAO,CACnC,IAAIyS,EAAUzS,EAAM,QAChB0S,EAAQD,GAAWA,EAAQ,KAAK,CAAC,EAErC,GAAI,EAACC,EAIL,KAAIxoC,EAAS,KAAK,IAAIwoC,EAAM,QAAUhpC,EAAM,aAAa,EACrDS,EAAS,KAAK,IAAIuoC,EAAM,QAAUhpC,EAAM,aAAa,EACrDipC,EAAgB,EACpBjpC,EAAM,eAAiBQ,EAASyoC,GAAiBxoC,EAASwoC,IAG5DjpC,EAAM,WAAa,SAAU3G,EAAO,CAC9B2G,EAAM,iBAINA,EAAM,YAAc,CAACA,EAAM,WAAW,SAAS3G,EAAM,MAAM,GAAK2G,EAAM,aAAe,CAACA,EAAM,YAAY,SAAS3G,EAAM,MAAM,GAC/H2G,EAAM,YAIRA,EAAM,cAAgB,EACtBA,EAAM,cAAgB,IAGxBA,EAAM,kBAAoB,SAAU3G,EAAO,CACrC2G,EAAM,gBAEVA,EAAM,mBAAmB3G,CAAK,GAGhC2G,EAAM,yBAA2B,SAAU3G,EAAO,CAC5C2G,EAAM,gBAEVA,EAAM,0BAA0B3G,CAAK,GAGvC2G,EAAM,4BAA8B,SAAU3G,EAAO,CAC/C2G,EAAM,gBAEVA,EAAM,6BAA6B3G,CAAK,GAG1C2G,EAAM,kBAAoB,SAAU3G,EAAO,CACzC,IAAIsmC,EAAatmC,EAAM,cAAc,MAErC2G,EAAM,SAAS,CACb,yBAA0B,GAC3B,EAEDA,EAAM,cAAc2/B,EAAY,CAC9B,OAAQ,eACT,EAEI3/B,EAAM,MAAM,YACfA,EAAM,cAIVA,EAAM,aAAe,SAAU3G,EAAO,CAChC2G,EAAM,MAAM,SACdA,EAAM,MAAM,QAAQ3G,CAAK,EAG3B2G,EAAM,SAAS,CACb,yBAA0B,GAC1B,UAAW,GACZ,GAEGA,EAAM,gBAAkBA,EAAM,MAAM,kBACtCA,EAAM,SAAS,OAAO,EAGxBA,EAAM,eAAiB,IAGzBA,EAAM,YAAc,SAAU3G,EAAO,CACnC,GAAI2G,EAAM,aAAeA,EAAM,YAAY,SAAS,SAAS,aAAa,EAAG,CAC3EA,EAAM,SAAS,QAEf,OAGEA,EAAM,MAAM,QACdA,EAAM,MAAM,OAAO3G,CAAK,EAG1B2G,EAAM,cAAc,GAAI,CACtB,OAAQ,aACT,EAEDA,EAAM,cAENA,EAAM,SAAS,CACb,aAAc,KACd,UAAW,GACZ,GAGHA,EAAM,cAAgB,SAAU+/B,EAAe,CACzC//B,EAAM,kBAAoBA,EAAM,MAAM,gBAAkB+/B,GAI5D//B,EAAM,SAAS,CACb,cAAe+/B,EAChB,GAGH//B,EAAM,0BAA4B,UAAY,CAC5C,OAAOsnC,GAA0BtnC,EAAM,KAAK,GAG9CA,EAAM,UAAY,SAAU3G,EAAO,CACjC,IAAI6vC,EAAelpC,EAAM,MACrB23B,EAAUuR,EAAa,QACvBC,EAAwBD,EAAa,sBACrCE,EAAoBF,EAAa,kBACjCvJ,EAAauJ,EAAa,WAC1BG,EAAcH,EAAa,YAC3BhQ,EAAagQ,EAAa,WAC1BlO,EAAakO,EAAa,WAC1BI,EAAYJ,EAAa,UACzBnK,EAAkBmK,EAAa,gBAC/BK,EAAkBL,EAAa,gBAC/BM,EAAcxpC,EAAM,MACpB+/B,EAAgByJ,EAAY,cAC5BxJ,EAAewJ,EAAY,aAC3BlK,EAAckK,EAAY,YAC9B,GAAI,CAAAtQ,GAEA,SAAOoQ,GAAc,aACvBA,EAAUjwC,CAAK,EAEXA,EAAM,mBAQZ,QAFA2G,EAAM,iBAAmB,GAEjB3G,EAAM,SACP,YACH,GAAI,CAACs+B,GAAWgI,EAAY,OAE5B3/B,EAAM,WAAW,UAAU,EAE3B,UAEG,aACH,GAAI,CAAC23B,GAAWgI,EAAY,OAE5B3/B,EAAM,WAAW,MAAM,EAEvB,UAEG,aACA,YACH,GAAI2/B,EAAY,OAEhB,GAAIK,EACFhgC,EAAM,YAAYggC,CAAY,MACzB,CACL,GAAI,CAACmJ,EAAuB,OAExBxR,EACF33B,EAAM,WACGqpC,GACTrpC,EAAM,aAIV,UAEG,MAGH,GAFIA,EAAM,aAEN3G,EAAM,UAAY,CAAC2hC,GAAc,CAAC+D,GAAmB,CAACgB,GAE1DwJ,GAAmBvpC,EAAM,iBAAiB+/B,EAAeT,CAAW,EAClE,OAGFt/B,EAAM,aAAa+/B,CAAa,EAEhC,UAEG,QACH,GAAI1mC,EAAM,UAAY,IAGpB,MAGF,GAAI2hC,EAAY,CAEd,GADI,CAAC+E,GACD//B,EAAM,YAAa,OAEvBA,EAAM,aAAa+/B,CAAa,EAEhC,MAGF,WAEG,SACC/E,GACFh7B,EAAM,SAAS,CACb,yBAA0B,GAC3B,EAEDA,EAAM,cAAc,GAAI,CACtB,OAAQ,aACT,EAEDA,EAAM,eACGqpC,GAAeD,GACxBppC,EAAM,aAGR,UAEG,IAEH,GAAI2/B,EACF,OAGF,GAAI,CAAC3E,EAAY,CACfh7B,EAAM,SAAS,OAAO,EAEtB,MAGF,GAAI,CAAC+/B,EAAe,OAEpB//B,EAAM,aAAa+/B,CAAa,EAEhC,UAEG,UACC/E,EACFh7B,EAAM,YAAY,IAAI,EAEtBA,EAAM,SAAS,MAAM,EAGvB,UAEG,YACCg7B,EACFh7B,EAAM,YAAY,MAAM,EAExBA,EAAM,SAAS,OAAO,EAGxB,UAEG,SACH,GAAI,CAACg7B,EAAY,OAEjBh7B,EAAM,YAAY,QAAQ,EAE1B,UAEG,WACH,GAAI,CAACg7B,EAAY,OAEjBh7B,EAAM,YAAY,UAAU,EAE5B,UAEG,OACH,GAAI,CAACg7B,EAAY,OAEjBh7B,EAAM,YAAY,OAAO,EAEzB,UAEG,MACH,GAAI,CAACg7B,EAAY,OAEjBh7B,EAAM,YAAY,MAAM,EAExB,cAGA,OAGJ3G,EAAM,mBAGR2G,EAAM,eAAiB,iBAAmBA,EAAM,MAAM,YAAc,EAAEgoC,IACtEhoC,EAAM,MAAM,YAAciyB,GAAWiW,EAAO,KAAK,EAC1CloC,EAGT,OAAAvB,GAAawpC,EAAQ,CAAC,CACpB,IAAK,oBACL,MAAO,UAA6B,CAClC,KAAK,4BACL,KAAK,wBAED,KAAK,MAAM,mBAAqB,UAAY,SAAS,kBAEvD,SAAS,iBAAiB,SAAU,KAAK,SAAU,EAAI,EAGrD,KAAK,MAAM,WACb,KAAK,eAGR,CACD,IAAK,qBACL,MAAO,SAA4BnX,EAAW,CAC5C,IAAI2Y,EAAe,KAAK,MACpBvQ,EAAauQ,EAAa,WAC1BzO,EAAayO,EAAa,WAC1B1P,EAAY,KAAK,MAAM,WAG3BA,GAAa,CAACb,GAAcpI,EAAU,YACtCiJ,GAAaiB,GAAc,CAAClK,EAAU,aACpC,KAAK,aAGHiJ,GAAab,GAAc,CAACpI,EAAU,YAExC,KAAK,SAAS,CACZ,UAAW,IACV,KAAK,WAAW,EAIjB,KAAK,aAAe,KAAK,kBAAoB,KAAK,gCACpDwC,GAAe,KAAK,YAAa,KAAK,gBAAgB,EACtD,KAAK,8BAAgC,MAGxC,CACD,IAAK,uBACL,MAAO,UAAgC,CACrC,KAAK,2BACL,KAAK,uBACL,SAAS,oBAAoB,SAAU,KAAK,SAAU,EAAI,IAK3D,CACD,IAAK,aACL,MAAO,UAAsB,CAC3B,KAAK,MAAM,eAEZ,CACD,IAAK,cACL,MAAO,UAAuB,CAC5B,KAAK,cAAc,GAAI,CACrB,OAAQ,aACT,EACD,KAAK,MAAM,gBAEZ,CACD,IAAK,gBACL,MAAO,SAAuB6U,EAAUC,EAAY,CAClD,KAAK,MAAM,cAAcD,EAAUC,CAAU,IAK9C,CACD,IAAK,aACL,MAAO,UAAsB,CACvB,CAAC,KAAK,UACV,KAAK,SAAS,UAEf,CACD,IAAK,YACL,MAAO,UAAqB,CACtB,CAAC,KAAK,UACV,KAAK,SAAS,SAGf,CACD,IAAK,WACL,MAAO,SAAkBsB,EAAa,CACpC,IAAIlR,EAAS,KAETmR,EAAe,KAAK,MACpBrK,EAAcqK,EAAa,YAC3B5P,EAAY4P,EAAa,UACzB1J,EAAmB,KAAK,wBACxB2J,EAAcF,IAAgB,QAAU,EAAIzJ,EAAiB,OAAS,EAE1E,GAAI,CAAC,KAAK,MAAM,QAAS,CACvB,IAAI4J,EAAgB5J,EAAiB,QAAQX,EAAY,EAAE,EAEvDuK,EAAgB,KAClBD,EAAcC,GAKlB,KAAK,8BAAgC,EAAE9P,GAAa,KAAK,aACzD,KAAK,SAAS,CACZ,yBAA0B,GAC1B,aAAc,KACd,cAAekG,EAAiB2J,IAC/B,UAAY,CACb,OAAOpR,EAAO,aACf,IAEF,CACD,IAAK,aACL,MAAO,SAAoBsR,EAAW,CACpC,IAAIC,EAAe,KAAK,MACpBzK,EAAcyK,EAAa,YAC3B/J,EAAe+J,EAAa,aAEhC,GAAI,EAAC,KAAK,MAAM,QAChB,MAAK,SAAS,CACZ,cAAe,KAChB,EACD,IAAIC,EAAe1K,EAAY,QAAQU,CAAY,EAE9CA,IACHgK,EAAe,IAGjB,IAAIC,EAAY3K,EAAY,OAAS,EACjC4K,EAAY,GAChB,GAAI,EAAC5K,EAAY,OAEjB,QAAQwK,OACD,WACCE,IAAiB,EAEnBE,EAAY,EACHF,IAAiB,GAE1BE,EAAYD,EAEZC,EAAYF,EAAe,EAG7B,UAEG,OACCA,EAAe,IAAMA,EAAeC,IACtCC,EAAYF,EAAe,GAG7B,MAGJ,KAAK,SAAS,CACZ,cAAeE,IAAc,GAC7B,aAAc5K,EAAY4K,GAC3B,MAEF,CACD,IAAK,cACL,MAAO,UAAuB,CAC5B,IAAIJ,EAAY,UAAU,OAAS,GAAK,UAAU,KAAO,OAAY,UAAU,GAAK,QAChFK,EAAW,KAAK,MAAM,SACtBpK,EAAgB,KAAK,MAAM,cAC3BvmC,EAAU,KAAK,sBACnB,GAAI,EAACA,EAAQ,OACb,KAAI0wC,EAAY,EAEZF,EAAexwC,EAAQ,QAAQumC,CAAa,EAE3CA,IACHiK,EAAe,IAGbF,IAAc,KAChBI,EAAYF,EAAe,EAAIA,EAAe,EAAIxwC,EAAQ,OAAS,EAC1DswC,IAAc,OACvBI,GAAaF,EAAe,GAAKxwC,EAAQ,OAChCswC,IAAc,UACvBI,EAAYF,EAAeG,EACvBD,EAAY,IAAGA,EAAY,IACtBJ,IAAc,YACvBI,EAAYF,EAAeG,EACvBD,EAAY1wC,EAAQ,OAAS,IAAG0wC,EAAY1wC,EAAQ,OAAS,IACxDswC,IAAc,SACvBI,EAAY1wC,EAAQ,OAAS,GAG/B,KAAK,8BAAgC,GACrC,KAAK,SAAS,CACZ,cAAeA,EAAQ0wC,GACvB,aAAc,KACf,KAEF,CACD,IAAK,WACL,MAGA,UAAoB,CAElB,OAAK,KAAK,MAAM,MAOZ,OAAO,KAAK,MAAM,OAAU,WACvB,KAAK,MAAM,MAAM9D,EAAY,EAK/BtU,GAAeA,GAAe,GAAIsU,EAAY,EAAG,KAAK,MAAM,KAAK,EAZ/DA,KAcV,CACD,IAAK,iBACL,MAAO,UAA0B,CAC/B,IAAIgE,EAAa,KAAK,WAClB7a,EAAK,KAAK,GACV8H,EAAY,KAAK,UACjBgT,EAAW,KAAK,SAChBC,EAAe,KAAK,aACpBC,EAAW,KAAK,SAChBr2C,EAAQ,KAAK,MACbyjC,EAAUzjC,EAAM,QAChBilC,EAAQjlC,EAAM,MACdsF,EAAUtF,EAAM,QAChBqlC,EAAW,KAAK,WACpB,MAAO,CACL,WAAY6Q,EACZ,GAAI7a,EACJ,UAAW8H,EACX,SAAUgT,EACV,SAAU9Q,EACV,QAAS5B,EACT,MAAOwB,EACP,QAAS3/B,EACT,aAAc8wC,EACd,YAAap2C,EACb,SAAUq2C,EACV,MAAO,KAAK,cAGf,CACD,IAAK,WACL,MAAO,UAAoB,CACzB,IAAIjL,EAAc,KAAK,MAAM,YAC7B,OAAOA,EAAY,OAAS,IAE7B,CACD,IAAK,aACL,MAAO,UAAsB,CAC3B,MAAO,CAAC,CAAC,KAAK,sBAAsB,SAErC,CACD,IAAK,cACL,MAAO,UAAuB,CAC5B,IAAIkL,EAAe,KAAK,MACpBnB,EAAcmB,EAAa,YAC3B7S,EAAU6S,EAAa,QAG3B,OAAInB,IAAgB,OAAkB1R,EAC/B0R,IAER,CACD,IAAK,mBACL,MAAO,SAA0B3I,EAAQpB,EAAa,CACpD,OAAOiH,GAAkB,KAAK,MAAO7F,EAAQpB,CAAW,IAEzD,CACD,IAAK,mBACL,MAAO,SAA0BoB,EAAQpB,EAAa,CACpD,OAAOkH,GAAkB,KAAK,MAAO9F,EAAQpB,CAAW,IAEzD,CACD,IAAK,eACL,MAAO,SAAsBoB,EAAQf,EAAY,CAC/C,OAAO4H,GAAc,KAAK,MAAO7G,EAAQf,CAAU,IAEpD,CACD,IAAK,oBACL,MAAO,SAA2Bn2C,EAAMw1C,EAAS,CAC/C,GAAI,OAAO,KAAK,MAAM,mBAAsB,WAAY,CACtD,IAAIW,EAAa,KAAK,MAAM,WACxBL,EAAc,KAAK,MAAM,YAC7B,OAAO,KAAK,MAAM,kBAAkB91C,EAAM,CACxC,QAASw1C,EACT,WAAYW,EACZ,YAAaL,EACd,MAED,QAAO,KAAK,eAAe91C,CAAI,IAGlC,CACD,IAAK,mBACL,MAAO,SAA0BA,EAAM,CACrC,OAAO,KAAK,MAAM,iBAAiBA,CAAI,IAKxC,CACD,IAAK,4BACL,MAGA,UAAqC,CAC/B,UAAY,SAAS,mBACvB,SAAS,iBAAiB,mBAAoB,KAAK,mBAAoB,EAAK,EAC5E,SAAS,iBAAiB,iBAAkB,KAAK,iBAAkB,EAAK,KAG3E,CACD,IAAK,2BACL,MAAO,UAAoC,CACrC,UAAY,SAAS,sBACvB,SAAS,oBAAoB,mBAAoB,KAAK,kBAAkB,EACxE,SAAS,oBAAoB,iBAAkB,KAAK,gBAAgB,KAGvE,CACD,IAAK,wBACL,MAGA,UAAiC,CAC3B,UAAY,SAAS,mBACvB,SAAS,iBAAiB,aAAc,KAAK,aAAc,EAAK,EAChE,SAAS,iBAAiB,YAAa,KAAK,YAAa,EAAK,EAC9D,SAAS,iBAAiB,WAAY,KAAK,WAAY,EAAK,KAG/D,CACD,IAAK,uBACL,MAAO,UAAgC,CACjC,UAAY,SAAS,sBACvB,SAAS,oBAAoB,aAAc,KAAK,YAAY,EAC5D,SAAS,oBAAoB,YAAa,KAAK,WAAW,EAC1D,SAAS,oBAAoB,WAAY,KAAK,UAAU,KAG3D,CACD,IAAK,cACL,MAGA,UAAuB,CACrB,IAAIihD,EAAe,KAAK,MACpBvR,EAAauR,EAAa,WAC1B3L,EAAe2L,EAAa,aAC5BC,EAAUD,EAAa,QACvB9K,EAAa8K,EAAa,WAC1BE,EAAWF,EAAa,SACxBG,EAAOH,EAAa,KAEpBI,EAAsB,KAAK,gBAC3BjP,EAAQiP,EAAoB,MAE5BC,EAAgB,KAAK,MAAM,cAC3BC,EAAc,KAAK,YACnBla,EAAK6Z,GAAW,KAAK,aAAa,OAAO,EAEzCM,EAAiB,CACnB,oBAAqB,OACrB,aAAc,KAAK,MAAM,cACzB,kBAAmB,KAAK,MAAM,oBAGhC,OAAKlM,EAgBepiC,EAAM,cAAck/B,EAAOt6B,EAAS,GAAIypC,EAAa,CACvE,eAAgB,OAChB,aAAc,MACd,YAAa,MACb,GAAIla,EACJ,SAAU,KAAK,YACf,WAAYqI,EACZ,SAAU4R,EACV,OAAQ,KAAK,YACb,SAAU,KAAK,kBACf,QAAS,KAAK,aACd,WAAY,QACZ,SAAUH,EACV,KAAMC,EACN,KAAM,OACN,MAAOjL,GACNqL,CAAc,CAAC,EA9BItuC,EAAM,cAAc6lC,GAAYjhC,EAAS,CAC3D,GAAIuvB,EACJ,SAAU,KAAK,YACf,OAAQ,KAAK,YACb,SAAUkB,GACV,QAAS,KAAK,aACd,SAAU,GACV,SAAUmH,EACV,SAAUyR,EACV,KAAMC,EACN,MAAO,IACNI,CAAc,CAAC,IAqBrB,CACD,IAAK,2BACL,MAAO,UAAoC,CACzC,IAAIC,EAAS,KAETC,EAAuB,KAAK,gBAC5B7O,EAAa6O,EAAqB,WAClChP,EAAsBgP,EAAqB,oBAC3C/O,EAAkB+O,EAAqB,gBACvC9O,EAAmB8O,EAAqB,iBACxChO,EAAcgO,EAAqB,YACnClO,EAAckO,EAAqB,YAEnCH,EAAc,KAAK,YACnBI,EAAe,KAAK,MACpBC,EAA2BD,EAAa,yBACxCjS,EAAaiS,EAAa,WAC1BxT,EAAUwT,EAAa,QACvBxL,EAAawL,EAAa,WAC1BE,EAAcF,EAAa,YAC3BG,EAAe,KAAK,MACpBhM,EAAcgM,EAAa,YAC3BtL,EAAesL,EAAa,aAC5BvR,EAAYuR,EAAa,UAE7B,GAAI,CAAC,KAAK,YAAc,CAACF,EACvB,OAAOzL,EAAa,KAAoBjjC,EAAM,cAAcsgC,EAAa17B,EAAS,GAAIypC,EAAa,CACjG,IAAK,cACL,WAAY7R,EACZ,UAAWa,EACZ,EAAGsR,CAAW,EAGjB,GAAI1T,EAAS,CACX,IAAI4T,EAAejM,EAAY,IAAI,SAAUkM,EAAK9tB,GAAO,CACvD,IAAI+tB,EAAkBD,IAAQxL,EAC9B,OAAoBtjC,EAAM,cAAc2/B,EAAY/6B,EAAS,GAAIypC,EAAa,CAC5E,WAAY,CACV,UAAW7O,EACX,MAAOC,EACP,OAAQC,GAEV,UAAWqP,EACX,WAAYvS,EACZ,IAAK,GAAG,OAAO+R,EAAO,eAAeO,CAAG,CAAC,EAAE,OAAO9tB,EAAK,EACvD,MAAOA,GACP,YAAa,CACX,QAAS,UAAmB,CAC1B,OAAOutB,EAAO,YAAYO,CAAG,GAE/B,WAAY,UAAsB,CAChC,OAAOP,EAAO,YAAYO,CAAG,GAE/B,YAAa,SAAqB7lD,EAAG,CACnCA,EAAE,iBACFA,EAAE,oBAGN,KAAM6lD,EACP,EAAGP,EAAO,kBAAkBO,EAAK,OAAO,CAAC,EAC3C,EACD,OAAOD,EAGT,GAAI5L,EACF,OAAO,KAGT,IAAI+L,EAAcpM,EAAY,GAC9B,OAAoB5iC,EAAM,cAAcwgC,EAAa57B,EAAS,GAAIypC,EAAa,CAC7E,KAAMW,EACN,WAAYxS,EACb,EAAG,KAAK,kBAAkBwS,EAAa,OAAO,CAAC,IAEjD,CACD,IAAK,uBACL,MAAO,UAAgC,CACrC,IAAIC,EAAuB,KAAK,gBAC5BvR,EAAiBuR,EAAqB,eAEtCZ,EAAc,KAAK,YACnBa,EAAgB,KAAK,MACrB1S,EAAa0S,EAAc,WAC3BC,EAAYD,EAAc,UAC1B7R,EAAY,KAAK,MAAM,UAE3B,GAAI,CAAC,KAAK,eAAiB,CAACK,GAAkBlB,GAAc,CAAC,KAAK,YAAc2S,EAC9E,OAAO,KAGT,IAAI1Z,EAAa,CACf,YAAa,KAAK,0BAClB,WAAY,KAAK,yBACjB,cAAe,QAEjB,OAAoBz1B,EAAM,cAAc09B,EAAgB94B,EAAS,GAAIypC,EAAa,CAChF,WAAY5Y,EACZ,UAAW4H,EACZ,CAAC,IAEH,CACD,IAAK,yBACL,MAAO,UAAkC,CACvC,IAAI+R,EAAuB,KAAK,gBAC5BjR,EAAmBiR,EAAqB,iBAExCf,EAAc,KAAK,YACnBgB,EAAgB,KAAK,MACrB7S,EAAa6S,EAAc,WAC3BF,EAAYE,EAAc,UAC1BhS,EAAY,KAAK,MAAM,UAC3B,GAAI,CAACc,GAAoB,CAACgR,EAAW,OAAO,KAC5C,IAAI1Z,EAAa,CACf,cAAe,QAEjB,OAAoBz1B,EAAM,cAAcm+B,EAAkBv5B,EAAS,GAAIypC,EAAa,CAClF,WAAY5Y,EACZ,WAAY+G,EACZ,UAAWa,EACZ,CAAC,IAEH,CACD,IAAK,2BACL,MAAO,UAAoC,CACzC,IAAIiS,EAAuB,KAAK,gBAC5B9R,EAAoB8R,EAAqB,kBACzCzR,EAAqByR,EAAqB,mBAG9C,GAAI,CAAC9R,GAAqB,CAACK,EAAoB,OAAO,KACtD,IAAIwQ,EAAc,KAAK,YACnB7R,EAAa,KAAK,MAAM,WACxBa,EAAY,KAAK,MAAM,UAC3B,OAAoBr9B,EAAM,cAAc69B,EAAoBj5B,EAAS,GAAIypC,EAAa,CACpF,WAAY7R,EACZ,UAAWa,EACZ,CAAC,IAEH,CACD,IAAK,0BACL,MAAO,UAAmC,CACxC,IAAIkS,EAAuB,KAAK,gBAC5B/R,EAAoB+R,EAAqB,kBAE7C,GAAI,CAAC/R,EAAmB,OAAO,KAC/B,IAAI6Q,EAAc,KAAK,YACnB7R,EAAa,KAAK,MAAM,WACxBa,EAAY,KAAK,MAAM,UACvB5H,EAAa,CACf,YAAa,KAAK,6BAClB,WAAY,KAAK,4BACjB,cAAe,QAEjB,OAAoBz1B,EAAM,cAAcw9B,EAAmB54B,EAAS,GAAIypC,EAAa,CACnF,WAAY5Y,EACZ,WAAY+G,EACZ,UAAWa,EACZ,CAAC,IAEH,CACD,IAAK,aACL,MAAO,UAAsB,CAC3B,IAAImS,EAAS,KAETC,EAAuB,KAAK,gBAC5BjR,EAAQiR,EAAqB,MAC7B3Q,EAAe2Q,EAAqB,aACpC/U,EAAO+U,EAAqB,KAC5BzU,EAAWyU,EAAqB,SAChC9T,EAAa8T,EAAqB,WAClCjU,EAAiBiU,EAAqB,eACtClU,EAAmBkU,EAAqB,iBACxCrP,EAASqP,EAAqB,OAE9BpB,EAAc,KAAK,YACnBhL,EAAgB,KAAK,MAAM,cAC3BqM,EAAgB,KAAK,MACrBC,EAAoBD,EAAc,kBAClCzM,EAAayM,EAAc,WAC3BP,EAAYO,EAAc,UAC1BE,EAAiBF,EAAc,eAC/BtV,EAAgBsV,EAAc,cAC9BrV,EAAgBqV,EAAc,cAC9BpR,EAAaoR,EAAc,WAC3BpV,EAAgBoV,EAAc,cAC9BnV,EAAemV,EAAc,aAC7BG,GAAmBH,EAAc,iBACjCI,EAAwBJ,EAAc,sBACtClV,EAA2BkV,EAAc,yBACzCK,EAAmBL,EAAc,iBACjCM,GAAoBN,EAAc,kBAClCO,GAAuBP,EAAc,qBACzC,GAAI,CAACpR,EAAY,OAAO,KAExB,IAAIz1B,GAAS,SAAgBrR,EAAO28B,EAAI,CACtC,IAAIvkC,EAAO4H,EAAM,KACb1K,EAAO0K,EAAM,KACbglC,EAAahlC,EAAM,WACnB2oC,EAAa3oC,EAAM,WACnBmnC,EAAQnnC,EAAM,MACd1I,EAAQ0I,EAAM,MACd6lC,GAAYgG,IAAkBv2C,EAC9BojD,GAAU1T,EAAa,OAAY,UAAY,CACjD,OAAOgT,EAAO,cAAc1iD,CAAI,GAE9BqjD,GAAW3T,EAAa,OAAY,UAAY,CAClD,OAAOgT,EAAO,aAAa1iD,CAAI,GAE7BsjD,GAAW,GAAG,OAAOZ,EAAO,aAAa,QAAQ,EAAG,GAAG,EAAE,OAAOrb,CAAE,EAClEsB,GAAa,CACf,GAAI2a,GACJ,QAASD,GACT,YAAaD,GACb,YAAaA,GACb,SAAU,IAEZ,OAAoBlwC,EAAM,cAAcogC,EAAQx7B,EAAS,GAAIypC,EAAa,CACxE,WAAY5Y,GACZ,KAAM3oC,EACN,WAAY0vC,EACZ,WAAY2D,EACZ,IAAKiQ,GACL,MAAOzR,EACP,KAAM/uC,EACN,MAAOd,EACP,UAAWuuC,GACX,SAAUA,GAAYmS,EAAO,oBAAsB,OACpD,EAAGA,EAAO,kBAAkBh4C,EAAM,KAAM,MAAM,CAAC,GAG9C64C,GAEJ,GAAI,KAAK,aACPA,GAAS,KAAK,wBAAwB,IAAI,SAAUvN,EAAM,CACxD,GAAIA,EAAK,OAAS,QAAS,CACzB,IAAIh2C,EAAOg2C,EAAK,KACZhmC,EAAUgmC,EAAK,QACfwN,EAAaxN,EAAK,MAClByN,EAAU,GAAG,OAAOf,EAAO,aAAa,OAAO,EAAG,GAAG,EAAE,OAAOc,CAAU,EACxEE,EAAY,GAAG,OAAOD,EAAS,UAAU,EAC7C,OAAoBvwC,EAAM,cAAcw+B,EAAO55B,EAAS,GAAIypC,EAAa,CACvE,IAAKkC,EACL,KAAMzjD,EACN,QAASgQ,EACT,QAASgiC,EACT,aAAc,CACZ,GAAI0R,EACJ,KAAM1N,EAAK,MAEb,MAAO0M,EAAO,iBAAiB1M,EAAK,IAAI,EACzC,EAAGA,EAAK,QAAQ,IAAI,SAAUkB,EAAQ,CACrC,OAAOn7B,GAAOm7B,EAAQ,GAAG,OAAOsM,EAAY,GAAG,EAAE,OAAOtM,EAAO,KAAK,CAAC,EACtE,CAAC,UACOlB,EAAK,OAAS,SACvB,OAAOj6B,GAAOi6B,EAAM,GAAG,OAAOA,EAAK,KAAK,CAAC,EAE5C,UACQqM,EAAW,CACpB,IAAIlxB,GAAU2xB,EAAe,CAC3B,WAAY3M,EACb,EACD,GAAIhlB,KAAY,KAAM,OAAO,KAC7BoyB,GAAsBrwC,EAAM,cAAcw7B,EAAgB6S,EAAapwB,EAAO,MACzE,CACL,IAAIwyB,GAAWV,EAAiB,CAC9B,WAAY9M,EACb,EAED,GAAIwN,KAAa,KAAM,OAAO,KAC9BJ,GAAsBrwC,EAAM,cAAcu7B,EAAkB8S,EAAaoC,EAAQ,EAGnF,IAAIC,GAAqB,CACvB,cAAetW,EACf,cAAeC,EACf,cAAeC,EACf,aAAcC,EACd,yBAA0BC,GAExBmW,GAA2B3wC,EAAM,cAAcm6B,GAAYv1B,EAAS,GAAIypC,EAAaqC,EAAkB,EAAG,SAAU5V,EAAO,CAC7H,IAAI7wB,EAAM6wB,EAAM,IACZ8V,EAAoB9V,EAAM,YAC1BpD,EAAYkZ,EAAkB,UAC9BrpB,EAAYqpB,EAAkB,UAClC,OAAoB5wC,EAAM,cAAc06B,EAAM91B,EAAS,GAAIypC,EAAaqC,GAAoB,CAC1F,SAAUzmC,EACV,WAAY,CACV,YAAaulC,EAAO,gBACpB,YAAaA,EAAO,iBAEtB,UAAWL,EACX,UAAWzX,EACZ,EAAgB13B,EAAM,cAAc6oC,GAAe,CAClD,eAAgB8G,EAChB,YAAaK,GACb,eAAgBC,GAChB,YAAaH,GACZ,SAAUe,EAAiB,CAC5B,OAAoB7wC,EAAM,cAAcg7B,EAAUp2B,EAAS,GAAIypC,EAAa,CAC1E,SAAU,SAAkB1sC,EAAU,CACpC6tC,EAAO,eAAe7tC,CAAQ,EAE9BkvC,EAAgBlvC,CAAQ,GAE1B,UAAWwtC,EACX,UAAW5nB,EACX,cAAe8b,EAChB,EAAGgN,EAAM,EACX,CAAC,EACH,EAID,OAAOR,IAAoBtV,IAAiB,QAAuBv6B,EAAM,cAAc27B,EAAY/2B,EAAS,GAAIypC,EAAa,CAC3H,SAAUwB,GACV,eAAgB,KAAK,WACrB,cAAevV,EACf,aAAcC,EACf,EAAGoW,EAAW,EAAIA,KAEpB,CACD,IAAK,kBACL,MAAO,UAA2B,CAChC,IAAIG,EAAS,KAETC,EAAgB,KAAK,MACrB7yB,EAAY6yB,EAAc,UAC1BvU,EAAauU,EAAc,WAC3B9V,EAAU8V,EAAc,QACxBtkD,EAAOskD,EAAc,KACrBnO,EAAc,KAAK,MAAM,YAC7B,GAAI,GAACn2C,GAAQ+vC,GAEb,GAAIvB,EACF,GAAI/c,EAAW,CACb,IAAIpvB,EAAQ8zC,EAAY,IAAI,SAAUkM,EAAK,CACzC,OAAOgC,EAAO,eAAehC,CAAG,EACjC,EAAE,KAAK5wB,CAAS,EACjB,OAAoBle,EAAM,cAAc,QAAS,CAC/C,KAAMvT,EACN,KAAM,SACN,MAAOqC,EACR,MACI,CACL,IAAIuY,EAAQu7B,EAAY,OAAS,EAAIA,EAAY,IAAI,SAAUkM,EAAKvlD,EAAG,CACrE,OAAoByW,EAAM,cAAc,QAAS,CAC/C,IAAK,KAAK,OAAOzW,CAAC,EAClB,KAAMkD,EACN,KAAM,SACN,MAAOqkD,EAAO,eAAehC,CAAG,EACjC,EACF,EAAiB9uC,EAAM,cAAc,QAAS,CAC7C,KAAMvT,EACN,KAAM,SACP,EACD,OAAoBuT,EAAM,cAAc,MAAO,KAAMqH,CAAK,MAEvD,CACL,IAAI2pC,EAASpO,EAAY,GAAK,KAAK,eAAeA,EAAY,EAAE,EAAI,GAEpE,OAAoB5iC,EAAM,cAAc,QAAS,CAC/C,KAAMvT,EACN,KAAM,SACN,MAAOukD,EACR,KAGJ,CACD,IAAK,mBACL,MAAO,UAA4B,CACjC,IAAI3C,EAAc,KAAK,YACnB4C,EAAe,KAAK,MACpB7N,EAAgB6N,EAAa,cAC7B5N,EAAgB4N,EAAa,cAC7B3N,EAAe2N,EAAa,aAC5B5T,EAAY4T,EAAa,UACzBrO,EAAcqO,EAAa,YAC3B1N,EAAmB,KAAK,sBAC5B,OAAoBvjC,EAAM,cAAcmjC,GAAYv+B,EAAS,GAAIypC,EAAa,CAC5E,cAAejL,EACf,cAAeC,EACf,aAAcC,EACd,UAAWjG,EACX,YAAauF,EACb,iBAAkBW,EACnB,CAAC,IAEH,CACD,IAAK,SACL,MAAO,UAAkB,CACvB,IAAI2N,EAAuB,KAAK,gBAC5B7S,EAAU6S,EAAqB,QAC/BnU,EAAsBmU,EAAqB,oBAC3CxU,EAAkBwU,EAAqB,gBACvCtU,EAAiBsU,EAAqB,eAEtCC,EAAgB,KAAK,MACrBxjD,EAAYwjD,EAAc,UAC1Bhd,EAAKgd,EAAc,GACnB3U,EAAa2U,EAAc,WAC3B7S,EAAa6S,EAAc,WAC3B9T,EAAY,KAAK,MAAM,UACvBgR,EAAc,KAAK,YAAc,KAAK,iBAC1C,OAAoBruC,EAAM,cAAc08B,EAAiB93B,EAAS,GAAIypC,EAAa,CACjF,UAAW1gD,EACX,WAAY,CACV,GAAIwmC,EACJ,UAAW,KAAK,WAElB,WAAYqI,EACZ,UAAWa,EACZ,EAAG,KAAK,mBAAiCr9B,EAAM,cAAcq+B,EAASz5B,EAAS,GAAIypC,EAAa,CAC/F,SAAU,KAAK,cACf,WAAY,CACV,YAAa,KAAK,mBAClB,WAAY,KAAK,mBAEnB,WAAY7R,EACZ,UAAWa,EACX,WAAYiB,EACb,EAAgBt+B,EAAM,cAAc48B,EAAgBh4B,EAAS,GAAIypC,EAAa,CAC7E,WAAY7R,EACb,EAAG,KAAK,2BAA4B,KAAK,aAAa,EAAgBx8B,EAAM,cAAc+8B,EAAqBn4B,EAAS,GAAIypC,EAAa,CACxI,WAAY7R,EACb,EAAG,KAAK,uBAAwB,KAAK,yBAA0B,KAAK,2BAA4B,KAAK,yBAAyB,CAAC,EAAG,KAAK,aAAc,KAAK,iBAAiB,GAE/K,EAAG,CAAC,CACH,IAAK,2BACL,MAAO,SAAkChlC,EAAOkI,EAAO,CACrD,IAAI00B,EAAY10B,EAAM,UAClB0xC,EAA0B1xC,EAAM,wBAChC2xC,EAA2B3xC,EAAM,yBACjC5C,EAAUtF,EAAM,QAChB1I,EAAQ0I,EAAM,MACd8mC,EAAa9mC,EAAM,WACnByrC,EAAazrC,EAAM,WACnB85C,EAAsB,GAE1B,GAAIld,IAActlC,IAAUslC,EAAU,OAASt3B,IAAYs3B,EAAU,SAAWkK,IAAelK,EAAU,YAAc6O,IAAe7O,EAAU,YAAa,CAC3J,IAAIwO,EAAcrN,GAAWzmC,CAAK,EAC9By0C,EAAmBjF,EAAaoM,GAAsBlzC,EAAOorC,CAAW,EAAI,GAC5EU,EAAe8N,EAA0BtG,GAAoBprC,EAAOkjC,CAAW,EAAI,KACnFS,EAAgB8H,GAAqBzrC,EAAO6jC,CAAgB,EAChE+N,EAAsB,CACpB,YAAa1O,EACb,cAAeS,EACf,aAAcC,EACd,wBAAyB,IAK7B,IAAIiO,EAAwBF,GAA4B,MAAQ75C,IAAU48B,EAAY,CACpF,cAAeid,EACf,yBAA0B,QACxB,GACJ,OAAOjc,GAAeA,GAAeA,GAAe,GAAIkc,CAAmB,EAAGC,CAAqB,EAAG,GAAI,CACxG,UAAW/5C,EACZ,GAEJ,CAAC,EAEK+zC,CACT,EAAE5jB,CAAS,KAEJ,aAAegiB,GCxnFtB,IAAIA,GAAe,CACjB,kBAAmB,GACnB,kBAAmB,GACnB,aAAc,IAChB,EAEI6H,GAAc,SAAqBC,EAAiB,CACtD,IAAIC,EAAQC,EAEZ,OAAOA,EAAQD,EAAsB,SAAUxd,EAAY,CACzDhyB,GAAU0vC,EAAc1d,CAAU,EAElC,IAAI7wB,EAASf,GAAasvC,CAAY,EAEtC,SAASA,GAAe,CACtB,IAAItuC,EAEJ5B,GAAgB,KAAMkwC,CAAY,EAElC,QAASruC,EAAO,UAAU,OAAQC,EAAO,IAAI,MAAMD,CAAI,EAAGE,EAAO,EAAGA,EAAOF,EAAME,IAC/ED,EAAKC,GAAQ,UAAUA,GAGzB,OAAAH,EAAQD,EAAO,KAAK,MAAMA,EAAQ,CAAC,IAAI,EAAE,OAAOG,CAAI,CAAC,EACrDF,EAAM,OAAS,OACfA,EAAM,MAAQ,CACZ,WAAYA,EAAM,MAAM,aAAe,OAAYA,EAAM,MAAM,WAAaA,EAAM,MAAM,kBACxF,WAAYA,EAAM,MAAM,aAAe,OAAYA,EAAM,MAAM,WAAaA,EAAM,MAAM,kBACxF,MAAOA,EAAM,MAAM,QAAU,OAAYA,EAAM,MAAM,MAAQA,EAAM,MAAM,cAG3EA,EAAM,SAAW,SAAUxU,EAAO48C,EAAY,CAC5CpoC,EAAM,SAAS,WAAYxU,EAAO48C,CAAU,EAE5CpoC,EAAM,SAAS,CACb,MAAOxU,EACR,GAGHwU,EAAM,cAAgB,SAAUxU,EAAO48C,EAAY,CAGjD,IAAID,EAAWnoC,EAAM,SAAS,gBAAiBxU,EAAO48C,CAAU,EAEhEpoC,EAAM,SAAS,CACb,WAAYmoC,IAAa,OAAYA,EAAW38C,EACjD,GAGHwU,EAAM,WAAa,UAAY,CAC7BA,EAAM,SAAS,YAAY,EAE3BA,EAAM,SAAS,CACb,WAAY,GACb,GAGHA,EAAM,YAAc,UAAY,CAC9BA,EAAM,SAAS,aAAa,EAE5BA,EAAM,SAAS,CACb,WAAY,GACb,GAGIA,EAGT,OAAAvB,GAAa6vC,EAAc,CAAC,CAC1B,IAAK,QACL,MAAO,UAAiB,CACtB,KAAK,OAAO,UAEb,CACD,IAAK,OACL,MAAO,UAAgB,CACrB,KAAK,OAAO,SAGb,CACD,IAAK,UACL,MAAO,SAAiBh2C,EAAK,CAC3B,OAAO,KAAK,MAAMA,KAAS,OAAY,KAAK,MAAMA,GAAO,KAAK,MAAMA,KAGrE,CACD,IAAK,WACL,MAAO,SAAkBnP,EAAM,CAC7B,GAAI,OAAO,KAAK,MAAMA,IAAU,WAAY,CAG1C,QAFI2X,EAEK0uB,EAAQ,UAAU,OAAQtvB,EAAO,IAAI,MAAMsvB,EAAQ,EAAIA,EAAQ,EAAI,CAAC,EAAGC,EAAQ,EAAGA,EAAQD,EAAOC,IACxGvvB,EAAKuvB,EAAQ,GAAK,UAAUA,GAG9B,OAAQ3uB,EAAc,KAAK,OAAO3X,GAAM,MAAM2X,EAAaZ,CAAI,KAGlE,CACD,IAAK,SACL,MAAO,UAAkB,CACvB,IAAIs4B,EAAS,KAETj2B,EAAe,KAAK,MACpBA,EAAa,kBACbA,EAAa,kBACbA,EAAa,aACb,IAAIrO,EAAQqN,GAAyBgB,EAAc,CAAC,oBAAqB,oBAAqB,cAAc,CAAC,EAEjH,OAAoB7F,EAAM,cAAcyxC,EAAiB7sC,EAAS,GAAIpN,EAAO,CAC3E,IAAK,SAAa+O,EAAM,CACtBu1B,EAAO,OAASv1B,GAElB,WAAY,KAAK,QAAQ,YAAY,EACrC,WAAY,KAAK,QAAQ,YAAY,EACrC,SAAU,KAAK,SACf,cAAe,KAAK,cACpB,YAAa,KAAK,YAClB,WAAY,KAAK,WACjB,MAAO,KAAK,QAAQ,OAAO,EAC5B,CAAC,GAEL,CAAC,EAEKqrC,GACPjqB,CAAS,EAAG+pB,EAAO,aAAe/H,GAAcgI,CACpD,EC7EI3wB,GAAQwwB,GAAYjG,EAAM,KAEfvqB,SCxDF6wB,GAAW,CACtB,CAAC,MAAS,YAAa,MAAS,aAChC,CAAC,MAAS,cAAe,MAAS,eAClC,CAAC,MAAS,cAAe,MAAS,eAClC,CAAC,MAAS,aAAc,MAAS,cACjC,CAAC,MAAS,aAAc,MAAS,cACjC,CAAC,MAAS,UAAW,MAAS,WAC9B,CAAC,MAAS,eAAgB,MAAS,gBACnC,CAAC,MAAS,cAAe,MAAS,eAClC,CAAC,MAAS,UAAW,MAAS,WAC9B,CAAC,MAAS,aAAc,MAAS,cACjC,CAAC,MAAS,cAAe,MAAS,eAClC,CAAC,MAAS,WAAY,MAAS,YAC/B,CAAC,MAAS,gBAAiB,MAAS,gBACtC,YAE+B,OAEvBC,EAAiBt6C,EAAM,QAC3Bq6C,GAAS,QAAUpoD,EAAE,QAAU+N,EAAM,OAAO,EAAI,4BAG/C,OAAI,UAAU,uCACZ+zC,IACC,MAAOuG,EACP,SAAUt6C,EAAM,SAChB,QAASq6C,GACT,WAAY,CAACr6C,EAAM,SACrB,CACF,CAGJ,QC9Bau6C,sBAER,OAAI,MAAM,6BAA6B,QAAQ,eAAe,MAAOv6C,EAAM,uBACzE,gBAAS,eAAa,kBACtB,aAAM,aAAW,kBACjB,SAAM,UAAU,cAAc,QAAQ,SAAW,UAAU,OAAO,kBAClE,QAAK,KAAK,eAAe,EAAE,kLAAkL,CAChN,EAOSw6C,sBAER,OAAI,MAAM,6BAA6B,QAAQ,kBAAkB,MAAOx6C,EAAM,uBAC5E,gBAAS,eAAa,kBACtB,aAAM,OAAK,kBACX,SAAM,UAAU,QAAQ,QAAQ,SAAW,UAAU,OAAO,kBAC5D,QAAK,KAAK,eAAe,EAAE,+7DAA87D,CAC59D,EAsBSy6C,sBAER,OAAI,MAAM,6BAA6B,QAAQ,cAAc,MAAOz6C,EAAM,uBACxE,QAAK,KAAK,eAAe,EAAE,wfAAwf,CACthB,YC3CqB,MAEjB,CAAE06C,EAAYC,CAAc,EAAIC,GAAS,EAAK,EAC9C,CAAEC,EAAeC,CAAiB,EAAIF,GAAS,EAAK,EAEpDG,KAAsB,GACZ,EAAI,IACD,EAAK,GAGlBC,KAAgB,GACd,SAASh7C,EAAM,IAAI,IACR,EAAK,GAGlBi7C,KACJj7C,EAAM,SAASA,EAAM,KAAM,CAAE,GAAGA,EAAM,KAAM,MAAO0F,EAAI,OAAO,MAAO,EAEjEw1C,KACJl7C,EAAM,SAASA,EAAM,KAAM,CAAE,GAAGA,EAAM,KAAM,QAAS0F,EAAI,MAAO,EAE5Dy1C,EAAYn7C,EAAM,KAAK,UAAYA,EAAM,KAAK,QAE9Co7C,EAAcp7C,EAAM,KAAK,yBAC5B,OAAI,UAAU,oCACZ,QAAK,UAAU,uBAAuBA,EAAM,KAAK,QAAQ,MAAQA,EAAM,KAAK,QAAQ,EAAG,EACtFA,EAAM,KAAK,yBACV,QAAK,UAAU,uCACbiS,IACC,SAAUjS,EAAM,IAAI,aAAam7C,CAAS,EAC1C,OAAQruB,GAAK,SAAU,CAC3B,CAEJ,SAEK9sB,EAAM,yBACV,OAAI,UAAU,sCACZ,OAAI,UAAU,wBAAwBA,EAAM,KAAK,KAAM,EACtDo7C,CACJ,kBAEC,OAAI,UAAYV,EAAa,8BAAgC,sCAC3DxqB,IACC,SAAUwqB,EACV,QAAS16C,EAAM,KAAK,MACpB,SAAUi7C,EACV,eAAgBj7C,EAAM,eACxB,EACE,CAAC06C,GAAcU,EAEfp7C,EAAM,iCACLq7C,IACG,SAAUX,EACV,QAAS16C,EAAM,KAAK,QACpB,SAAUk7C,EACV,eAAgBl7C,EAAM,eACxB,kBAEH,OACC,UAAW66C,EAAgB,wCAA0C,0BACrE,QAAS,IAAMC,EAAiB,CAACD,CAAa,mBAC7CN,IAAgB,MAAO,GAAI,CAC9B,EAEEM,mBACCS,IACC,OAAQP,EACR,SAAAC,EACA,eAAgB,IAAMF,EAAiB,EAAK,EAAG,CAErD,CAGJ,EC5EA,MAAMS,GAAgBlB,GAAS,OAASpoD,EAAE,KAAK,EAMzCupD,GAAY,CAACpsB,EAAMqsB,IAAqB,OACtCC,EAAqBD,EACzBF,GAAc,QAAQnsB,EAAK,OAAO,EAAI,GAAKA,EAAK,SAAW,cAAgBA,EAAK,SAAW,kBAEtFA,EAAK,OAAS,gBACnB,CAAC,OAAO,UAAU,eAAe,KAAKA,EAAM,SAAS,GAAKssB,EAE9D,EAQMC,GAAoB,CAACvsB,EAAMpvB,IAAW,YACtCA,EAAM,WAAa,SACd,MAELA,EAAM,WAAa,SACd,MAELA,EAAM,WAAa,YAAa,OAE5B47C,GAAU1pC,EAAAkd,EAAK,UAAL,YAAAld,EAAc,WAGnB4d,EAAA9vB,EAAM,IAAI,OAAV,YAAA8vB,EAAgB,MAEb8rB,SAIT57C,EAAM,QACf,EAKM67C,GAAgB,CAACC,EAAeC,IAE7BD,GAAgC,CACrC,KAAM,cAAe,MAAO,GAAI,QAFlBC,EAAU,WAAa,aAEI,MAAO,IAO9CC,MAAyB,OAGvBC,EAAMj8C,EAAM,WAChBA,EAAM,WAAW,OAAO,UAAew7C,GAAUpsB,EAAMpvB,EAAM,eAAe,CAAC,EAAI,GAG7Ek8C,EAAaL,GAAcI,EAAI,QAAU5pD,EAAE,OAAS,EAAI,EAAG4pD,EAAI,OAAS,CAAC,EAGzEE,EAAWF,EAAI,UAAY5pD,GAAK6pD,CAAU,EAE1CE,KAAqB,OACnBzpB,EAAOupB,EAAW,MAClBG,EAAU32C,EAAI,OAAO,MAEvBitB,EAAK,SAAW,GAAK0pB,EAAQ,OAAS,IAClC,aAAa,CAAE,GAAGH,EAAY,MAAOG,EAAS,EAC3C1pB,EAAK,OAAS,GAAK0pB,EAAQ,SAAW,IACzC,aAAaH,CAAU,IAEvB,aAAaA,EAAY,CAAE,GAAGA,EAAY,MAAOG,EAAS,GAI9DC,KACJt8C,EAAM,aAAak8C,EAAY,CAAE,GAAGA,EAAY,QAASK,EAAQ,MAAO,EAGpEC,EAAc,CAACx8C,EAAM,UAAYA,EAAM,WAGvCy8C,EAAWN,EAAS,SAAW,GAAK,CAACn8C,EAAM,oDAI3Cm8C,EAAS,IAAI,CAAC/sB,EAAMhgB,oBACnBstC,IACC,IAAKttC,EACL,IAAKpP,EAAM,IACX,gBAAiBA,EAAM,gBACvB,SAAU27C,GAAkBvsB,EAAMpvB,CAAK,EACvC,KAAAovB,EACA,SAAUpvB,EAAM,aAChB,SAAUA,EAAM,aAChB,eAAgBA,EAAM,eAAgB,GAGxCw8C,GAAcC,mBACb,OAAI,UAAU,+CACZvsB,IACC,MAAOlwB,EAAM,MACb,QAASk8C,EAAW,MACpB,SAAU,GACV,YAAaC,EAAS,OAAS,EAAIrvB,GAAK,EAAE,gBAAgB,EAAK9sB,EAAM,iBAAmB8sB,GAAK,EAAE,kBAAkB,EACjH,SAAUsvB,EACV,eAAgB,IAAMp8C,EAAM,iBAC9B,EACEA,EAAM,iBAAoBk8C,EAAW,MAAM,OAAS,mBACnDb,IACC,SAAU,GACV,QAASa,EAAW,QACpB,SAAUI,EACV,eAAgB,IAAMt8C,EAAM,iBAC9B,CAEJ,CAEJ,CAGJ,EAEAg8C,GAAc,cAAgB,CAAC/kD,EAAY+I,IAEvC/I,EAAW,OAAO,UAAeukD,GAAUpsB,EAAMpvB,EAAM,eAAe,CAAC,EAEpD,QAAgB27C,GAAkBxnB,EAASn0B,CAAK,CAAC,SAGzDg8C,GC5IA,SAASW,GAAehyC,EAAUC,EAAY,CAC3DD,EAAS,UAAY,OAAO,OAAOC,EAAW,SAAS,EACvDD,EAAS,UAAU,YAAcA,EACjCgzB,GAAehzB,EAAUC,CAAU,CACrC,CCCe,SAAS9T,GAASk5B,EAAS75B,EAAW,CACnD,OAAI65B,EAAQ,UAAkB,CAAC,CAAC75B,GAAa65B,EAAQ,UAAU,SAAS75B,CAAS,GACzE,KAAO65B,EAAQ,UAAU,SAAWA,EAAQ,WAAa,KAAK,QAAQ,IAAM75B,EAAY,GAAG,IAAM,EAC3G,CCDe,SAASD,GAAS85B,EAAS75B,EAAW,CAC/C65B,EAAQ,UAAWA,EAAQ,UAAU,IAAI75B,CAAS,EAAYW,GAASk5B,EAAS75B,CAAS,IAAO,OAAO65B,EAAQ,WAAc,SAAUA,EAAQ,UAAYA,EAAQ,UAAY,IAAM75B,EAAe65B,EAAQ,aAAa,SAAUA,EAAQ,WAAaA,EAAQ,UAAU,SAAW,IAAM,IAAM75B,CAAS,EAChT,CCVA,SAASymD,GAAiBC,EAAWC,EAAe,CAClD,OAAOD,EAAU,QAAQ,IAAI,OAAO,UAAYC,EAAgB,YAAa,GAAG,EAAG,IAAI,EAAE,QAAQ,OAAQ,GAAG,EAAE,QAAQ,aAAc,EAAE,CACxI,CASe,SAASpmD,GAAYs5B,EAAS75B,EAAW,CAClD65B,EAAQ,UACVA,EAAQ,UAAU,OAAO75B,CAAS,EACzB,OAAO65B,EAAQ,WAAc,SACtCA,EAAQ,UAAY4sB,GAAiB5sB,EAAQ,UAAW75B,CAAS,EAEjE65B,EAAQ,aAAa,QAAS4sB,GAAiB5sB,EAAQ,WAAaA,EAAQ,UAAU,SAAW,GAAI75B,CAAS,CAAC,CAEnH,QCnBe,CACb,SAAU,EACZ,KCDeqS,EAAM,cAAc,IAAI,ECO5Bu0C,GAAY,YACZC,GAAS,SACTC,GAAW,WACXC,GAAU,UACVC,GAAU,UA6FjBC,GAA0B,SAAUxxC,EAAkB,CACxD+wC,GAAeS,EAAYxxC,CAAgB,EAE3C,SAASwxC,EAAWp9C,EAAO8qC,EAAS,CAClC,IAAIh/B,EAEJA,EAAQF,EAAiB,KAAK,KAAM5L,EAAO8qC,CAAO,GAAK,KACvD,IAAIuS,EAAcvS,EAEdwS,EAASD,GAAe,CAACA,EAAY,WAAar9C,EAAM,MAAQA,EAAM,OACtEu9C,EACJ,OAAAzxC,EAAM,aAAe,KAEjB9L,EAAM,GACJs9C,GACFC,EAAgBP,GAChBlxC,EAAM,aAAemxC,IAErBM,EAAgBL,GAGdl9C,EAAM,eAAiBA,EAAM,aAC/Bu9C,EAAgBR,GAEhBQ,EAAgBP,GAIpBlxC,EAAM,MAAQ,CACZ,OAAQyxC,GAEVzxC,EAAM,aAAe,KACdA,EAGTsxC,EAAW,yBAA2B,SAAkCruC,EAAM8tB,EAAW,CACvF,IAAI2gB,EAASzuC,EAAK,GAElB,OAAIyuC,GAAU3gB,EAAU,SAAWkgB,GAC1B,CACL,OAAQC,IAIL,MAmBT,IAAIrsB,EAASysB,EAAW,UAExB,OAAAzsB,EAAO,kBAAoB,UAA6B,CACtD,KAAK,aAAa,GAAM,KAAK,YAAY,GAG3CA,EAAO,mBAAqB,SAA4BiM,EAAW,CACjE,IAAI6gB,EAAa,KAEjB,GAAI7gB,IAAc,KAAK,MAAO,CAC5B,IAAI4O,EAAS,KAAK,MAAM,OAEpB,KAAK,MAAM,GACTA,IAAWyR,IAAYzR,IAAW0R,KACpCO,EAAaR,KAGXzR,IAAWyR,IAAYzR,IAAW0R,MACpCO,EAAaN,IAKnB,KAAK,aAAa,GAAOM,CAAU,GAGrC9sB,EAAO,qBAAuB,UAAgC,CAC5D,KAAK,sBAGPA,EAAO,YAAc,UAAuB,CAC1C,IAAI+sB,EAAU,KAAK,MAAM,QACrBC,EAAMC,EAAON,EACjB,OAAAK,EAAOC,EAAQN,EAASI,EAEpBA,GAAW,MAAQ,OAAOA,GAAY,WACxCC,EAAOD,EAAQ,KACfE,EAAQF,EAAQ,MAEhBJ,EAASI,EAAQ,SAAW,OAAYA,EAAQ,OAASE,GAGpD,CACL,KAAMD,EACN,MAAOC,EACP,OAAQN,IAIZ3sB,EAAO,aAAe,SAAsBktB,EAAUJ,EAAY,CAC5DI,IAAa,SACfA,EAAW,IAGTJ,IAAe,MAEjB,KAAK,qBAEDA,IAAeR,GACjB,KAAK,aAAaY,CAAQ,EAE1B,KAAK,eAEE,KAAK,MAAM,eAAiB,KAAK,MAAM,SAAWb,IAC3D,KAAK,SAAS,CACZ,OAAQD,GACT,GAILpsB,EAAO,aAAe,SAAsBktB,EAAU,CACpD,IAAIvZ,EAAS,KAETsZ,EAAQ,KAAK,MAAM,MACnBE,EAAY,KAAK,QAAU,KAAK,QAAQ,WAAaD,EAErD33C,EAAQ,KAAK,MAAM,QAAU,CAAC43C,CAAS,EAAI,CAACC,EAAS,YAAY,IAAI,EAAGD,CAAS,EACjFE,EAAY93C,EAAM,GAClB+3C,EAAiB/3C,EAAM,GAEvBg4C,EAAW,KAAK,cAChBC,EAAeL,EAAYI,EAAS,OAASA,EAAS,MAG1D,GAAI,CAACL,GAAY,CAACD,GAAS9P,GAAO,SAAU,CAC1C,KAAK,aAAa,CAChB,OAAQoP,IACP,UAAY,CACb5Y,EAAO,MAAM,UAAU0Z,CAAS,EACjC,EACD,OAGF,KAAK,MAAM,QAAQA,EAAWC,CAAc,EAC5C,KAAK,aAAa,CAChB,OAAQhB,IACP,UAAY,CACb3Y,EAAO,MAAM,WAAW0Z,EAAWC,CAAc,EAEjD3Z,EAAO,gBAAgB6Z,EAAc,UAAY,CAC/C7Z,EAAO,aAAa,CAClB,OAAQ4Y,IACP,UAAY,CACb5Y,EAAO,MAAM,UAAU0Z,EAAWC,CAAc,EACjD,EACF,EACF,GAGHttB,EAAO,YAAc,UAAuB,CAC1C,IAAIomB,EAAS,KAET4G,EAAO,KAAK,MAAM,KAClBO,EAAW,KAAK,cAChBF,EAAY,KAAK,MAAM,QAAU,OAAYD,EAAS,YAAY,IAAI,EAE1E,GAAI,CAACJ,GAAQ7P,GAAO,SAAU,CAC5B,KAAK,aAAa,CAChB,OAAQkP,IACP,UAAY,CACbjG,EAAO,MAAM,SAASiH,CAAS,EAChC,EACD,OAGF,KAAK,MAAM,OAAOA,CAAS,EAC3B,KAAK,aAAa,CAChB,OAAQb,IACP,UAAY,CACbpG,EAAO,MAAM,UAAUiH,CAAS,EAEhCjH,EAAO,gBAAgBmH,EAAS,KAAM,UAAY,CAChDnH,EAAO,aAAa,CAClB,OAAQiG,IACP,UAAY,CACbjG,EAAO,MAAM,SAASiH,CAAS,EAChC,EACF,EACF,GAGHrtB,EAAO,mBAAqB,UAA8B,CACpD,KAAK,eAAiB,OACxB,KAAK,aAAa,SAClB,KAAK,aAAe,OAIxBA,EAAO,aAAe,SAAsBytB,EAAWlpD,EAAU,CAI/DA,EAAW,KAAK,gBAAgBA,CAAQ,EACxC,KAAK,SAASkpD,EAAWlpD,CAAQ,GAGnCy7B,EAAO,gBAAkB,SAAyBz7B,EAAU,CAC1D,IAAI8iD,EAAS,KAETqG,EAAS,GAEb,YAAK,aAAe,SAAUl5C,EAAO,CAC/Bk5C,IACFA,EAAS,GACTrG,EAAO,aAAe,KACtB9iD,EAASiQ,CAAK,IAIlB,KAAK,aAAa,OAAS,UAAY,CACrCk5C,EAAS,IAGJ,KAAK,cAGd1tB,EAAO,gBAAkB,SAAyB+sB,EAASt4C,EAAS,CAClE,KAAK,gBAAgBA,CAAO,EAC5B,IAAIF,EAAO,KAAK,MAAM,QAAU,KAAK,MAAM,QAAQ,QAAU64C,EAAS,YAAY,IAAI,EAClFO,EAA+BZ,GAAW,MAAQ,CAAC,KAAK,MAAM,eAElE,GAAI,CAACx4C,GAAQo5C,EAA8B,CACzC,WAAW,KAAK,aAAc,CAAC,EAC/B,OAGF,GAAI,KAAK,MAAM,eAAgB,CAC7B,IAAIlc,EAAQ,KAAK,MAAM,QAAU,CAAC,KAAK,YAAY,EAAI,CAACl9B,EAAM,KAAK,YAAY,EAC3E84C,EAAY5b,EAAM,GAClBmc,EAAoBnc,EAAM,GAE9B,KAAK,MAAM,eAAe4b,EAAWO,CAAiB,EAGpDb,GAAW,MACb,WAAW,KAAK,aAAcA,CAAO,GAIzC/sB,EAAO,OAAS,UAAkB,CAChC,IAAI6a,EAAS,KAAK,MAAM,OAExB,GAAIA,IAAWuR,GACb,OAAO,KAGN,IAACnwC,EAAc,KAAK,MACnB0B,EAAW1B,EAAY,SACjBA,EAAY,GACFA,EAAY,aACXA,EAAY,cACnBA,EAAY,OACbA,EAAY,MACbA,EAAY,KACTA,EAAY,QACLA,EAAY,eACnBA,EAAY,QACTA,EAAY,WACbA,EAAY,UACfA,EAAY,OACTA,EAAY,UACbA,EAAY,SACbA,EAAY,YACvB4xC,EAAajxC,GAA8BX,EAAa,CAAC,WAAY,KAAM,eAAgB,gBAAiB,SAAU,QAAS,OAAQ,UAAW,iBAAkB,UAAW,aAAc,YAAa,SAAU,YAAa,WAAY,SAAS,CAAC,EAE3P,OAGEpE,EAAM,cAAci2C,GAAuB,SAAU,CACnD,MAAO,MACN,OAAOnwC,GAAa,WAAaA,EAASk9B,EAAQgT,CAAU,EAAIh2C,EAAM,aAAaA,EAAM,SAAS,KAAK8F,CAAQ,EAAGkwC,CAAU,CAAC,GAI7HpB,CACT,EAAE50C,EAAM,SAAS,EAEjB40C,GAAW,YAAcqB,GACzBrB,GAAW,UA0LP,GAEJ,SAASvf,IAAO,EAEhBuf,GAAW,aAAe,CACxB,GAAI,GACJ,aAAc,GACd,cAAe,GACf,OAAQ,GACR,MAAO,GACP,KAAM,GACN,QAASvf,GACT,WAAYA,GACZ,UAAWA,GACX,OAAQA,GACR,UAAWA,GACX,SAAUA,EACZ,EACAuf,GAAW,UAAYL,GACvBK,GAAW,OAASJ,GACpBI,GAAW,SAAWH,GACtBG,GAAW,QAAUF,GACrBE,GAAW,QAAUD,UACNC,GC7lBXsB,GAAY,SAAkBx5C,EAAMy5C,EAAS,CAC/C,OAAOz5C,GAAQy5C,GAAWA,EAAQ,MAAM,GAAG,EAAE,QAAQ,SAAUjtD,EAAG,CAChE,OAAOktD,GAAY15C,EAAMxT,CAAC,EAC3B,CACH,EAEIgF,GAAc,SAAqBwO,EAAMy5C,EAAS,CACpD,OAAOz5C,GAAQy5C,GAAWA,EAAQ,MAAM,GAAG,EAAE,QAAQ,SAAUjtD,EAAG,CAChE,OAAOmtD,GAAe35C,EAAMxT,CAAC,EAC9B,CACH,EAwEIotD,GAA6B,SAAUlzC,EAAkB,CAC3D+wC,GAAemC,EAAelzC,CAAgB,EAE9C,SAASkzC,GAAgB,CAGvB,QAFIhzC,EAEKC,EAAO,UAAU,OAAQC,EAAO,IAAI,MAAMD,CAAI,EAAGE,EAAO,EAAGA,EAAOF,EAAME,IAC/ED,EAAKC,GAAQ,UAAUA,GAGzB,OAAAH,EAAQF,EAAiB,KAAK,MAAMA,EAAkB,CAAC,IAAI,EAAE,OAAOI,CAAI,CAAC,GAAK,KAC9EF,EAAM,eAAiB,CACrB,OAAQ,GACR,MAAO,GACP,KAAM,IAGRA,EAAM,QAAU,SAAUkyC,EAAWC,EAAgB,CACnD,IAAIc,EAAwBjzC,EAAM,iBAAiBkyC,EAAWC,CAAc,EACxE/4C,EAAO65C,EAAsB,GAC7BjB,EAAYiB,EAAsB,GAEtCjzC,EAAM,cAAc5G,EAAM,MAAM,EAEhC4G,EAAM,SAAS5G,EAAM44C,EAAY,SAAW,QAAS,MAAM,EAEvDhyC,EAAM,MAAM,SACdA,EAAM,MAAM,QAAQkyC,EAAWC,CAAc,GAIjDnyC,EAAM,WAAa,SAAUkyC,EAAWC,EAAgB,CACtD,IAAIe,EAAyBlzC,EAAM,iBAAiBkyC,EAAWC,CAAc,EACzE/4C,EAAO85C,EAAuB,GAC9BlB,EAAYkB,EAAuB,GAEnC5mD,EAAO0lD,EAAY,SAAW,QAElChyC,EAAM,SAAS5G,EAAM9M,EAAM,QAAQ,EAE/B0T,EAAM,MAAM,YACdA,EAAM,MAAM,WAAWkyC,EAAWC,CAAc,GAIpDnyC,EAAM,UAAY,SAAUkyC,EAAWC,EAAgB,CACrD,IAAIgB,EAAyBnzC,EAAM,iBAAiBkyC,EAAWC,CAAc,EACzE/4C,EAAO+5C,EAAuB,GAC9BnB,EAAYmB,EAAuB,GAEnC7mD,EAAO0lD,EAAY,SAAW,QAElChyC,EAAM,cAAc5G,EAAM9M,CAAI,EAE9B0T,EAAM,SAAS5G,EAAM9M,EAAM,MAAM,EAE7B0T,EAAM,MAAM,WACdA,EAAM,MAAM,UAAUkyC,EAAWC,CAAc,GAInDnyC,EAAM,OAAS,SAAUkyC,EAAW,CAClC,IAAIkB,EAAyBpzC,EAAM,iBAAiBkyC,CAAS,EACzD94C,EAAOg6C,EAAuB,GAElCpzC,EAAM,cAAc5G,EAAM,QAAQ,EAElC4G,EAAM,cAAc5G,EAAM,OAAO,EAEjC4G,EAAM,SAAS5G,EAAM,OAAQ,MAAM,EAE/B4G,EAAM,MAAM,QACdA,EAAM,MAAM,OAAOkyC,CAAS,GAIhClyC,EAAM,UAAY,SAAUkyC,EAAW,CACrC,IAAImB,EAAyBrzC,EAAM,iBAAiBkyC,CAAS,EACzD94C,EAAOi6C,EAAuB,GAElCrzC,EAAM,SAAS5G,EAAM,OAAQ,QAAQ,EAEjC4G,EAAM,MAAM,WACdA,EAAM,MAAM,UAAUkyC,CAAS,GAInClyC,EAAM,SAAW,SAAUkyC,EAAW,CACpC,IAAIoB,EAAyBtzC,EAAM,iBAAiBkyC,CAAS,EACzD94C,EAAOk6C,EAAuB,GAElCtzC,EAAM,cAAc5G,EAAM,MAAM,EAEhC4G,EAAM,SAAS5G,EAAM,OAAQ,MAAM,EAE/B4G,EAAM,MAAM,UACdA,EAAM,MAAM,SAASkyC,CAAS,GAIlClyC,EAAM,iBAAmB,SAAUkyC,EAAWC,EAAgB,CAC5D,OAAOnyC,EAAM,MAAM,QAAU,CAACA,EAAM,MAAM,QAAQ,QAASkyC,CAAS,EAClE,CAACA,EAAWC,CAAc,GAG9BnyC,EAAM,cAAgB,SAAU1T,EAAM,CACpC,IAAIhC,EAAa0V,EAAM,MAAM,WACzBuzC,EAAqB,OAAOjpD,GAAe,SAC3C2L,EAASs9C,GAAsBjpD,EAAaA,EAAa,IAAM,GAC/DkpD,EAAgBD,EAAqB,GAAKt9C,EAAS3J,EAAOhC,EAAWgC,GACrEmnD,EAAkBF,EAAqBC,EAAgB,UAAYlpD,EAAWgC,EAAO,UACrFonD,EAAgBH,EAAqBC,EAAgB,QAAUlpD,EAAWgC,EAAO,QACrF,MAAO,CACL,cAAeknD,EACf,gBAAiBC,EACjB,cAAeC,IAIZ1zC,EAGT,IAAI6kB,EAASmuB,EAAc,UAE3B,OAAAnuB,EAAO,SAAW,SAAkBzrB,EAAM9M,EAAMqnD,EAAO,CACrD,IAAItpD,EAAY,KAAK,cAAciC,CAAI,EAAEqnD,EAAQ,aAE7CC,EAAsB,KAAK,cAAc,OAAO,EAChDF,EAAgBE,EAAoB,cAEpCtnD,IAAS,UAAYqnD,IAAU,QAAUD,IAC3CrpD,GAAa,IAAMqpD,GAKjBC,IAAU,UAEZv6C,GAAQA,EAAK,UAGX/O,IACF,KAAK,eAAeiC,GAAMqnD,GAAStpD,EAEnCuoD,GAAUx5C,EAAM/O,CAAS,IAI7Bw6B,EAAO,cAAgB,SAAuBzrB,EAAM9M,EAAM,CACxD,IAAIunD,EAAwB,KAAK,eAAevnD,GAC5CknD,EAAgBK,EAAsB,KACtCJ,EAAkBI,EAAsB,OACxCH,EAAgBG,EAAsB,KAC1C,KAAK,eAAevnD,GAAQ,GAExBknD,GACF5oD,GAAYwO,EAAMo6C,CAAa,EAG7BC,GACF7oD,GAAYwO,EAAMq6C,CAAe,EAG/BC,GACF9oD,GAAYwO,EAAMs6C,CAAa,GAInC7uB,EAAO,OAAS,UAAkB,CAC7B,IAAC/jB,EAAc,KAAK,MACfA,EAAY,eAChB5M,EAAQuN,GAA8BX,EAAa,CAAC,YAAY,CAAC,EAErE,OAAoBpE,EAAM,cAAc40C,GAAYhwC,EAAS,GAAIpN,EAAO,CACtE,QAAS,KAAK,QACd,UAAW,KAAK,UAChB,WAAY,KAAK,WACjB,OAAQ,KAAK,OACb,UAAW,KAAK,UAChB,SAAU,KAAK,SAChB,CAAC,GAGG8+C,CACT,EAAEt2C,EAAM,SAAS,EAEjBs2C,GAAc,aAAe,CAC3B,WAAY,EACd,EACAA,GAAc,UAiIT,UACUA,GCzZf,MAAMc,GAAsB,CAACC,EAAOC,IAClCA,EAAW,WAEKxU,EAAK,MAAQA,EAAK,MAAQA,GAC3B,cAAc,WAAWuU,EAAM,aAAa,CAC1D,EAEGE,GAAmB,CAACF,EAAO7qD,IAC/BA,EAAG6qD,CAAK,YAEoB,OAEtB7vB,EAAU7C,KAGV,CAAE71B,EAAO++C,CAAS,EAAIuE,GAAS56C,EAAM,cAAgB,EAAE,EAGvD,CAAEggD,EAAaC,CAAe,EAAIrF,GAAS,EAAE,EAG7C,CAAEsF,EAAkBC,CAAoB,EAAIvF,GAAS,IAAI,KAErD,IAAM,CACV56C,EAAM,SACA,QAAQ,cAAc,OAAO,EAAE,MAAM,CAAE,cAAe,GAAM,GACrE,EAAE,KAEK,IAAM,GACR,UAAYA,EAAM,SAAS1I,CAAK,GACrC,CAAEA,CAAM,CAAC,QAEN8oD,EAAiB9oD,GAAS,IAC1B,OAAO0I,EAAM,YAAe,WAAY,OACpCoL,EAAS20C,GAAiBzoD,EAAO0I,EAAM,UAAU,EAGnDoL,EAAO,OACF,KAAK60C,CAAc,IAEX70C,CAAM,MAClB,OACC40C,EAAcJ,GAAoBtoD,EAAO0I,EAAM,UAAU,IAChDggD,CAAW,IAIxBK,EAAW,IAAM,IACjBH,IAAqB,OAEjB,SAASF,EAAYE,EAAiB,MACvC,OAECt+B,EAAUtqB,EAAM,UAElBsqB,EAAS,OAEL0+B,EAAe,MAAM,QAAQtgD,EAAM,UAAU,EACjDA,EAAM,WAAW,SACD3O,EAAE,OAASA,GACZ,gBAAkBuwB,EAAQ,aACxC,EAAI,KAEH0+B,IACI,SAASA,CAAY,IAGrB,SAAS1+B,CAAO,KAKnB,EAAE,IACI,EAAE,IACG,IAAI,GAGpBwzB,KAAmB,IACnB1vC,EAAI,QAAU,eAGPA,EAAI,QAAU,KACjB,UAAY1F,EAAM,mBAGpBggD,EAAY,OAAS,MACnBt6C,EAAI,QAAU,MAEZw6C,IAAqB,OACH,CAAC,MAChB,OACCvtB,EAAO,KAAK,IAAI,EAAGutB,EAAmB,CAAC,IACzBvtB,CAAI,UAEjBjtB,EAAI,QAAU,MAEnBw6C,IAAqB,OACH,CAAC,MAChB,OACCttB,EAAO,KAAK,IAAIotB,EAAY,OAAS,EAAGE,EAAmB,CAAC,IAC9CttB,CAAI,QAMxBltB,EAAI,QAAU,IACZ,MAAM,QAAQ1F,EAAM,UAAU,KACjBA,EAAM,UAAU,GAMnC2vB,KAAkB,MAChB,CAAE,MAAAr4B,GAAUoO,EAAI,SAGbpO,CAAK,IAGM,IAAI,EAEpBA,IACaA,CAAK,IAEL,EAAE,0BAIlB,OACC,IAAK04B,EACL,UAAU,oCACT,2BACE,SACC,UAAAolB,EACA,SAAAzlB,EACA,MAAAr4B,EACA,YAAa0I,EAAM,YAAa,CACpC,kBACC,UACEggD,EAAY,OAAS,GAAKA,EAAY,IAAI,CAAC1U,EAAM9hB,oBAC/C,MACC,IAAK,GAAG8hB,EAAK,MAAQA,EAAK,MAAQA,IAAO9hB,IACzC,QAAS62B,EACT,aAAc,IAAMF,EAAoB32B,CAAK,EAC7C,MACI02B,IAAqB12B,EACjB,CAAE,gBAAiB,WACnB,IAEP8hB,EAAK,MAAQA,EAAK,MAAQA,CAC7B,CACD,CACH,CACF,CAEJ,ECxJA,MAAMiV,MACJzE,GAAgC,CAC9B,KAAM,cAAe,MAAO,GAAI,QAAS,UAAW,MAAO,EAC7D,YAEyB,OAGnBG,EAAMj8C,EAAM,WAChBA,EAAM,WAAW,OAAO,UAAY3N,EAAE,UAAY,SAAS,EAAI,GAG3DmuD,EAAWD,GAAYtE,EAAI,QAAQ,UAAU,QAAU5pD,EAAE,KAAK,CAAC,EAG/DouD,EAAOxE,EAAI,UAAY5pD,GAAKmuD,CAAQ,EAEpC,CAAEE,EAAYC,CAAc,EAAI/F,GAAS,EAAK,EAE9CgG,QAAqB,GACrBF,IAAe3hC,EACH,GAEAA,CAFK,GAKjB8hC,KAAyB,OACvBluB,EAAO6tB,EAAS,MAAM,OACtBnE,EAAU/kD,EAAM,OAElBq7B,EAAK,SAAW,GAAK0pB,EAAQ,OAAS,IAClC,aAAa,CAAE,GAAGmE,EAAU,MAAOnE,EAAS,EACzC1pB,EAAK,OAAS,GAAK0pB,EAAQ,SAAW,IACzC,aAAamE,CAAQ,EAClB7tB,IAAS0pB,KACZ,aAAamE,EAAU,CAAE,GAAGA,EAAU,MAAOnE,EAAS,GAI1DrB,QAAyB,GACzB,oBACE,aAAaj8B,CAAG,GAGlBshC,KAAkB,OAChBS,EAAW/hC,EAAI,IAAM,CACvB,KAAM,mBACN,QAAS,UACT,OAAQ,CACN,GAAIA,EAAI,IACR,MAAOA,EAAI,QAEX,CACF,KAAM,cACN,QAAS,UACT,MAAOA,EAAI,OAASA,GAGpByhC,EAAS,MAAM,OAAO,SAAW,IAC7B,aAAaM,CAAQ,IAErB,aAAaN,EAAUM,CAAQ,GAKnCC,KAAkBhiC,EAAI,OAASA,EAAI,OAAO,6BAG7C,OAAI,UAAU,sBACX0hC,EAAK,OAAS,mBACb,MAAG,UAAU,eACVA,EAAK,uBACJ,MAAG,IAAKM,EAAShiC,CAAG,EAAG,QAAS6hC,EAAO7hC,CAAG,mBACxC,QAAK,UAAU,aAAagiC,EAAShiC,CAAG,CAAE,EAE1C,CAAC/e,EAAM,0BACL8+C,IAAc,GAAI4B,IAAe3hC,EAAK,QAAS,IAAK,WAAW,8BAC7D,QAAK,UAAU,qBAAqB,QAASi8B,EAASj8B,CAAG,mBACvD,QAAK,UAAU,8BACby7B,IAAU,MAAO,GAAI,CACxB,CACF,CACF,CAEJ,EAEJ,EAGD,CAACx6C,EAAM,0BACLghD,IACC,MAAOhhD,EAAM,MACb,YAAaA,EAAM,iBAAmB8sB,GAAK,EAAE,YAAY,EACzD,WAAY9sB,EAAM,YAAc,GAChC,SAAU6gD,EACV,SAAAR,EAAmB,CAEzB,CAGJ,QC1GqBY,WAAsB9wB,CAAU,CAEnD,YAAYnwB,EAAO,OACXA,CAAK,OAEN,QAAUwI,EAAM,YAGvB,aAAaxI,EAAO,OACZkhD,EAAW,KAAK,MAAM,OAAO,CACjC,WAAYlhD,EAAM,WAClB,SAAUA,EAAM,SAChB,GAAGA,EAAM,OACT,aAAc,CAACovB,EAAM+xB,IAAoBnhD,EAAM,aAAaovB,EAAM+xB,CAAe,EACjF,aAAc,CAACrtB,EAAUuoB,EAAS8E,IAAoBnhD,EAAM,aAAa8zB,EAAUuoB,EAAS8E,CAAe,EAC3G,aAAc,CAACrtB,EAAUuoB,EAAS8E,IAAoBnhD,EAAM,aAAa8zB,EAAUuoB,EAAS8E,CAAe,EAC3G,aAAc,CAAC/xB,EAAM+xB,IAAoBnhD,EAAM,aAAaovB,EAAM+xB,CAAe,EACjF,cAAe,CAACC,EAAOD,IAAqBnhD,EAAM,cAAcohD,EAAOD,CAAe,EACtF,cAAe,CAACttB,EAAUv8B,IAAW0I,EAAM,cAAc6zB,EAAUv8B,CAAK,EACxE,gBAAqB0I,EAAM,aAAaqhD,CAAG,EAC3C,eAAgB,IAAMrhD,EAAM,iBAC7B,OAGM,KAAK,QAAQ,QAAQ,iBACrB,QAAQ,QAAQ,YAAY,KAAK,QAAQ,QAAQ,SAAS,OAE5D,QAAQ,QAAQ,YAAYkhD,CAAQ,EAG3C,mBAAoB,MACb,aAAa,KAAK,KAAK,EAG9B,0BAA0BtuB,EAAM,CAC1B,KAAK,QAAQ,SACX,KAAK,MAAM,aAAeA,EAAK,iBAC5B,aAAaA,CAAI,EAK5B,QAAS,wBAEJ,OAAI,IAAK,KAAK,QAAS,UAAU,SAAS,EAIjD,CCvCA,OAAO,MAAQpqB,EACf,OAAO,SAAWu1C,EAGlB,MAAMuD,GAAkB,CACtB,QAAStF,GACT,IAAKuF,EACP,EAGaC,GAAkB,iBAC5BxF,OAAc,kBAAKuF,OAAU,CAChC,EAGME,MAAgC,OAE9BC,EAAmBC,UACvB,cAAOA,GAAc,YAAc,CAAC,GAACA,EAAAA,EAAU,YAAVA,MAAAA,EAAqB,mBAEtDC,EAAsBD,GAK1B,OAAOA,GAAc,aACnB,OAAOA,CAAS,EAAE,MAAM,gCAAgC,GACxD,OAAOA,CAAS,EAAE,MAAM,wBAAwB,GAChD,OAAOA,CAAS,EAAE,MAAM,2BAA2B,UAGhDD,EAAiBC,CAAS,GAAKC,EAAoBD,CAAS,CACrE,EAgBaE,MAAmB,OAExBC,EAAc,CAACC,EAAQjU,EAAQkU,IAAU,IAEzC,OAAOD,GAAW,UAAYA,aAAkB,cAE3Cv5C,EAAM,cAAc84C,GAAgBS,GAASjU,CAAM,MAGtDkU,GAAA,YAAAA,EAAO,iBAAkB,eACpBx5C,EAAM,cAAcu5C,EAAQjU,CAAM,MAChCkU,GAAA,YAAAA,EAAO,iBAAkB,iCAC1Bf,IAAc,OAAAc,EAAgB,OAAAjU,EAAgB,KAGlD2T,GAAiBM,CAAM,SAClBv5C,EAAM,cAAcu5C,EAAQjU,CAAM,KAChC,OAAOiU,GAAW,YAAcA,aAAkB,gCACnDd,IAAc,OAAAc,EAAgB,OAAAjU,EAAgB,OAEhD,GAAGiU,8BAObjtB,EAAI,OAAQ,MACR,CAAE,OAAAitB,EAAQ,MAAAC,KAAUlU,GAAWhZ,SAC9BgtB,EAAYC,EAAQjU,EAAQkU,CAAK,cAGjCF,EAAYhtB,CAAG,CAE1B,EC7FMmtB,GAAkB,UAGJ,CAACC,EAAWC,EAAUC,EAAYC,IAAiB,CAErE,MAAMC,EAAkBJ,EAAU,wBAGlCC,EAAS,UAAY,0CAGrB,KAAM,CAAE,KAAAI,EAAM,IAAAlkB,EAAK,MAAAmkB,EAAO,OAAAC,GAAWL,EAAW,wBAIhD,GAHAD,EAAS,MAAM,IAAM,GAAGM,EAASH,EAAgB,IAAML,OACvDE,EAAS,MAAM,KAAO,GAAGI,EAAOD,EAAgB,SAE5CD,EAAc,CAChB,MAAMK,EAAqBP,EAAS,SAAS,GAAG,wBAE1C,CAAE,WAAAr/C,EAAY,YAAAD,GAAgBq/C,EAAU,cAAc,YAY5D,GARIQ,EAAmB,MAAQ5/C,IAC7Bq/C,EAAS,UAAU,OAAO,gBAAgB,EAC1CA,EAAS,UAAU,IAAI,iBAAiB,EACxCA,EAAS,MAAM,KAAO,GAAGK,EAAQE,EAAmB,MAAQJ,EAAgB,UAK1EI,EAAmB,OAAS7/C,EAAa,CAC3Cs/C,EAAS,UAAU,OAAO,eAAe,EACzCA,EAAS,UAAU,IAAI,kBAAkB,EAEzC,MAAMQ,EAAeR,EAAS,SAAS,GAAG,wBAAwB,OAClEA,EAAS,MAAM,IAAM,GAAG9jB,EAAMikB,EAAgB,IAAMK,EAAeV,OAIrE,MAAMW,EAAqBT,EAAS,SAAS,GAAG,wBAIhD,GAAIS,EAAmB,IAAM,EAAG,CAC9BT,EAAS,UAAU,IAAI,SAAU,MAAM,EACvCA,EAAS,MAAM,IAAM,GAAG,CAACG,EAAgB,QAEzC,MAAMO,EAAcJ,EAASH,EAAgB,IACxBM,EAAmB,OAASN,EAAgB,IAE9CO,GACjBV,EAAS,UAAU,OAAO,kBAAkB,EAM5CS,EAAmB,KAAO,IAC5BT,EAAS,UAAU,IAAI,SAAU,OAAO,EACxCA,EAAS,MAAM,KAAO,GAAG,CAACG,EAAgB,UAI5C,sBAAsB,IACpBH,EAAS,MAAM,QAAU,CAAC,EAEhC,EC1DA,MAAMh7C,MAAiB,MACf,CAAE,IAAAk3B,EAAK,KAAAkkB,EAAM,MAAA98C,EAAO,OAAAF,GAAWu9C,EAAK,8BACnC,GAAGzkB,MAAQkkB,MAAS98C,MAAUF,GACvC,QASqBw9C,WAAe5yB,CAAU,CAE5C,YAAYnwB,EAAO,OACXA,CAAK,EA2DbowB,EAAA,0BAAqB,IAAM,OAEnBiyB,EACJ,KAAK,MAAM,eAAiB,OAAY,GAAO,KAAK,MAAM,gBAExD,qBAAQ,eAAgB,OACpBW,EAAiB,IAAI,eAAe,IAAM,CACzC,KAAK,MAAM,YACF,KAAK,MAAM,UAAW,KAAK,QAAQ,QAAS,KAAK,MAAM,gBAAiBX,CAAY,EACnG,WAEc,QAAQ,KAAK,MAAM,SAAS,EACpC,IAAMW,EAAe,kBAGvB,KAAK,MAAM,YACF,KAAK,MAAM,UAAW,KAAK,QAAQ,QAAS,KAAK,MAAM,gBAAiBX,CAAY,IAKtGjyB,EAAA,uBAAuB,OACf6yB,EAAO,GAEP,CAAE,KAAAC,GAAS,KAAK,MAAM,WAIxBA,MACG,QAAU,GACXA,EAAK,OAAS,QAAQ,GAAKA,EAAK,IAChCA,EAAK,gBAAkB,QAAQ,KAAOA,EAAK,eAE1C9zB,EAAK,QAAU,WAAa,WAAa,KAAK,MAAM,IAAI,0BAGxD6zB,IAGT7yB,EAAA,4BAAuB,IACrB,KAAK,MAAM,kBAAkB,SAE/BA,EAAA,kBAAa,WACX,SAACle,EAAA,KAAK,MAAM,aAAX,MAAAA,EAAuB,QAAQ,KAAK,MAAM,sBAG7Cke,EAAA,+BAA0B,CAACjhB,EAAMgyC,IAAoB,MAC9C,SAAS,CACZ,kBAAmB,KAAK,MAAM,kBAAkB,MAAMhyC,CAAI,GACzD,IAAM,CACHgyC,OACG,YAEA,MAAM,WAAa,KAAK,MAAM,YACtC,IAGH/wB,EAAA,oBAAe,CAAChB,EAAM+xB,IAAoB,KAAK,wBAAwB,CACrE,KAAM,CACJ,GAAG,KAAK,MAAM,kBAAkB,OAChC,CAAE,GAAG/xB,EAAM,GAAG,KAAK,aAAaA,CAAI,KAErC+xB,CAAe,GAElB/wB,EAAA,oBAAe,CAAC0D,EAAUuoB,EAAS8E,IAAoB,KAAK,wBAAwB,CAClF,KAAM,KAAK,MAAM,kBAAkB,OAAO,OACxC/xB,IAAS0E,EAAW,CAAE,GAAGuoB,EAAS,GAAG,KAAK,aAAaA,CAAO,GAAMjtB,CAAI,GACzE+xB,CAAe,GAElB/wB,EAAA,oBAAe,CAAChB,EAAM+xB,IAAoB,KAAK,wBAAwB,CACrE,KAAM,KAAK,MAAM,kBAAkB,OAAO,UAAY9uD,IAAM+8B,CAAI,GAC/D+xB,CAAe,GAKjB/wB,EAAA,oBAAe,CAAC92B,EAAMC,EAAM4nD,IAAoB,IAC3C7nD,GAAQ,MAAQC,GAAQ,UAErB,aAAaA,EAAM4nD,CAAe,UAC9B7nD,GAAQ,MAAQC,GAAQ,UAE5B,aAAaD,EAAMC,EAAM4nD,CAAe,UACpC7nD,GAAQ,MAAQC,GAAQ,KAAM,OAGjC4pD,EAAW,KAAK,MAAM,kBAAkB,OAAO,QAAU9wD,EAAE,UAAYiH,EAAK,OAAO,EACrF6pD,OACG,aAAaA,EAAU7pD,EAAM6nD,CAAe,OAE5C,aAAa7nD,EAAM6nD,CAAe,KAsB7C/wB,EAAA,qBAAgB,CAACgxB,EAAOD,IAAoB,OAEpCiC,EAAchC,EACjB,UAAYlvD,EAAE,SAAW,UAAYA,EAAE,IAAI,EAC3C,QAAU,CACT,SAAU,KAAK,MAAM,kBAAkB,OAAO,QAAUG,EAAE,UAAYH,EAAE,KAAK,OAAO,EACpF,QAAS,CAAE,GAAGA,EAAE,KAAM,GAAG,KAAK,aAAaA,EAAE,IAAI,IACjD,EAEEmxD,EAAWjC,EACd,UAAYlvD,EAAE,SAAW,QAAQ,EACjC,OAASA,EAAE,IAAI,EAEZoxD,EAAW,CACf,GAAGlC,EACA,UAAalvD,EAAE,SAAW,UAAcA,EAAE,SAAW,UAAYA,EAAE,SAAW,CAACA,EAAE,QAAS,EAC1F,QAAU,CAAE,GAAGA,EAAE,KAAM,GAAG,KAAK,aAAaA,EAAE,IAAI,GAAI,EAEzD,GAAGkxD,EACA,UAAY,CAAClxD,EAAE,QAAQ,EACvB,OAASA,EAAE,OAAO,GAGjBqxD,EAAW,CACf,GAAGnC,EACA,UAAalvD,EAAE,SAAW,UAAcA,EAAE,SAAW,UAAYA,EAAE,SAAWA,EAAE,QAAS,EACzF,QAAU,CACT,SAAUA,EAAE,SACZ,QAAS,CAAE,GAAGA,EAAE,QAAS,GAAG,KAAK,aAAaA,EAAE,OAAO,IACvD,EAEJ,GAAGkxD,EACA,UAAYlxD,EAAE,QAAQ,GAGrBsxD,EAAgB,CAEpB,GAAG,KAAK,MAAM,kBAAkB,OAE7B,UAAY,CAACH,EAAS,SAAShxD,CAAC,CAAC,EAGjC,OAAS,OACF8c,EAAOo0C,EAAS,QAAUlyD,EAAE,WAAagB,CAAC,SACzC8c,EAAOA,EAAK,QAAU9c,EAC9B,EAGD,GAAGixD,QAGF,wBAAwB,CAAE,KAAME,GAAiBrC,CAAe,IAQvE/wB,EAAA,qBAAgB,CAACyD,EAAUv8B,IAAU,IAEf,CAAE,WAAY,KAAM,OAAQ,OAAQ,QAAS,EAAE,SAASu8B,CAAQ,QAG5E,IAAI,UAAU,cAAcA,iBAAwB,KAExDv8B,OACG,wBAAwB,CAAE,CAAEu8B,GAAYv8B,EAAO,MAC/C,OACC+kD,EAAU,KAAK,kBAAkB,eAChCA,EAASxoB,QACX,SAAS,CAAE,kBAAmBwoB,EAAS,KAOhDjsB,EAAA,uBAAsB,MACd,CAAE,kBAAAqzB,GAAsB,KAAK,MAC7B3Y,EAAU,MAAM,QAAQ2Y,EAAkB,OAAO,EACrDA,EAAkB,QAAW,CAAEA,EAAkB,OAAQ,EAEvD3Y,EAAQ,QAAQuW,CAAG,EAAI,MACjB,KAAKA,CAAG,OACX,wBAAwB,CAAE,WAAYvW,EAAS,KAIxD1a,EAAA,gBAAW,IACT,KAAK,MAAM,SAAS,KAAK,MAAM,UAAU,GAE3CA,EAAA,YAAO,IAAM,OAELszB,KACJzsD,EAAW,MAAM,CACf,KAAOA,EAAW,OAAO,IAAI,CAAC,CAAE,MAAA0sD,KAAUC,KAAWA,CAAI,EAC1D,EAEG,CAAE,kBAAAH,GAAsB,KAAK,MAK/BA,EAAkB,OAAO,SAAW,GAAK,CAAC,KAAK,MAAM,WACnDA,EAAkB,iBACf,gBAEA,MAAM,oBAAoB,KAAK,MAAM,UAAU,EAElDA,EAAkB,iBACf,MAAM,oBAAoBC,EAAQD,CAAiB,EAAE,cAAc,OAEnE,MAAM,oBAAoBC,EAAQD,CAAiB,EAAG,KAAK,MAAM,UAAU,IAItFrzB,EAAA,gBAAW,IACT,KAAK,MAAM,oBAAoB,KAAK,MAAM,UAAU,QA9R/C,QAAU5nB,EAAM,iBAEhB,MAAQ,CACX,kBAAmBxI,EAAM,WACzB,QAAS,GACT,gBAAiBmH,GAAOnH,EAAM,eAAe,GAIjD,0BAA0B4yB,EAAM,YACxB,CAAE,gBAAAixB,GAAoB,KAAK,MAC3BC,EAAa38C,GAAOyrB,EAAK,eAAe,GAEzC1gB,EAAA,KAAK,MAAM,aAAX,MAAAA,EAAuB,QAAQ0gB,EAAK,iBAMlC,SAAS,CAAE,gBAAiBkxB,EAAY,OALxC,SAAS,CACZ,kBAAmBlxB,EAAK,WACxB,gBAAiBkxB,EAClB,EAKC,KAAK,MAAM,gBAAkBlxB,EAAK,gBAEhC,KAAK,MAAM,wBACR,wBAAwB,CAAE,OAAQ,KAAK,MAAM,eAAgB,EAIlEixB,GAAmBC,GACjB,KAAK,QAAQ,eACV,gBAAkB,KAAK,sBACvB,eAAiB,KAAK,sBAKjC,mBAAoB,MACb,eAAiB,KAAK,qBAGV,IAAI,iBAAiB,IAAM,CACtC,KAAK,QAAQ,eACV,gBAAkB,KAAK,sBACvB,eAAiB,KAAK,sBAE9B,EAEQ,QAAQ,KAAK,QAAQ,QAAS,CAAE,UAAW,GAAM,QAAS,GAAM,EAG3E,sBAAuB,MAEhB,gBAAkB,KAAK,iBA2O9B,QAAS,MACD,CAAE,kBAAAL,GAAsB,KAAK,MAG7BM,EAAU,KAAK,MAAM,QACzB,KAAK,MAAM,QAAQ,IAAIlC,EAAS,EAAIL,GAEhCwC,KAAwBtxD,EAAE,KAAK,cACnCA,EAAE,KAAK,cAAc+wD,EAAmB,CACtC,GAAG/wD,EAAE,MACL,SAAS,KAAK,MAAM,SACpB,IAAK,KAAK,MAAM,IACjB,EAAI,GAEDuxD,EAAYR,IAEfA,EAAkB,OAAO,OAAS,GAAK,KAAK,MAAM,aACnD,CAAC,KAAK,MAAM,UACZ,CAACA,EAAkB,aACnB,CAACM,EAAQ,KAAKC,CAAgB,yBAG7Bt2C,IACC,SAAU,CAAC,KAAK,MAAM,WACtB,OAAO,iBACP,OAAO,uBACP,OAAQ,IAAM,KAAK,SAAS,CAAE,QAAS,GAAM,mBAE5C,OAAI,IAAK,KAAK,QAAS,UAAW,KAAK,MAAM,QAAU,qBAAuB,8BAC5E,OAAI,UAAU,YAAY,kBAC1B,OAAI,UAAU,oBACZq2C,EAAQ,IAAI,CAAChC,EAAQ3yC,IACpB5G,EAAM,aAAau5C,EAAQ,CACzB,IAAK,GAAG3yC,IACR,MAAOA,IAAQ,EACf,WAAaq0C,EACb,SAAW,KAAK,MAAM,SACtB,IAAK,KAAK,MAAM,IAChB,aAAc,KAAK,aACnB,aAAc,KAAK,aACnB,aAAc,KAAK,aACnB,aAAc,KAAK,aACnB,cAAe,KAAK,cACpB,cAAe,KAAK,cACpB,aAAc,KAAK,aACnB,eAAgB,KAAK,KACtB,GAGD,KAAK,MAAM,yBACV,OAAI,UAAU,8BACZ,UACC,UAAU,UACV,QAAS,KAAK,UAAW32B,GAAK,EAAE,OAAO,CAAE,CAC7C,kBAEC,OACC,UAAW,KAAK,MAAM,WAAa,2BAA6B,cAC9Dm3B,mBACC,UACC,UAAU,iCACV,MAAOn3B,GAAK,EAAE,QAAQ,EACtB,QAAS,KAAK,0BACb2tB,IAAU,MAAO,GAAI,CACxB,kBAGD,UACC,UAAU,kBACV,QAAS,KAAK,UAAW3tB,GAAK,EAAE,QAAQ,CAAE,kBAE3C,UACC,UAAU,WACV,QAAS,KAAK,MAAOA,GAAK,EAAE,IAAI,CAAE,CACtC,CAEJ,CACF,CAEF,EAKN,CC3YA,IAAIo3B,GACAC,GAAQ,IAAI,WAAW,EAAE,EACd,SAASC,IAAM,CAE5B,GAAI,CAACF,KAGHA,GAAkB,OAAO,QAAW,aAAe,OAAO,iBAAmB,OAAO,gBAAgB,KAAK,MAAM,GAAK,OAAO,UAAa,aAAe,OAAO,SAAS,iBAAoB,YAAc,SAAS,gBAAgB,KAAK,QAAQ,EAE3O,CAACA,IACH,MAAM,IAAI,MAAM,0GAA0G,EAI9H,OAAOA,GAAgBC,EAAK,CAC9B,QClBe,sHCEf,SAASE,GAASC,EAAM,CACtB,OAAO,OAAOA,GAAS,UAAYC,GAAM,KAAKD,CAAI,CACpD,CCIA,QAFIE,GAAY,GAEPzyD,GAAI,EAAGA,GAAI,IAAK,EAAEA,GACzByyD,GAAU,MAAMzyD,GAAI,KAAO,SAAS,EAAE,EAAE,OAAO,CAAC,CAAC,EAGnD,SAAS0iC,GAAUrrB,EAAK,CACtB,IAAIuqB,EAAS,UAAU,OAAS,GAAK,UAAU,KAAO,OAAY,UAAU,GAAK,EAG7E2wB,GAAQE,GAAUp7C,EAAIuqB,EAAS,IAAM6wB,GAAUp7C,EAAIuqB,EAAS,IAAM6wB,GAAUp7C,EAAIuqB,EAAS,IAAM6wB,GAAUp7C,EAAIuqB,EAAS,IAAM,IAAM6wB,GAAUp7C,EAAIuqB,EAAS,IAAM6wB,GAAUp7C,EAAIuqB,EAAS,IAAM,IAAM6wB,GAAUp7C,EAAIuqB,EAAS,IAAM6wB,GAAUp7C,EAAIuqB,EAAS,IAAM,IAAM6wB,GAAUp7C,EAAIuqB,EAAS,IAAM6wB,GAAUp7C,EAAIuqB,EAAS,IAAM,IAAM6wB,GAAUp7C,EAAIuqB,EAAS,KAAO6wB,GAAUp7C,EAAIuqB,EAAS,KAAO6wB,GAAUp7C,EAAIuqB,EAAS,KAAO6wB,GAAUp7C,EAAIuqB,EAAS,KAAO6wB,GAAUp7C,EAAIuqB,EAAS,KAAO6wB,GAAUp7C,EAAIuqB,EAAS,MAAM,cAMzf,GAAI,CAAC0wB,GAASC,CAAI,EAChB,MAAM,UAAU,6BAA6B,EAG/C,OAAOA,CACT,CCxBA,SAASG,GAAGn/C,EAASo/C,EAAK/wB,EAAQ,CAChCruB,EAAUA,GAAW,GACrB,IAAIq/C,EAAOr/C,EAAQ,SAAWA,EAAQ,KAAO8+C,MAK7C,GAHAO,EAAK,GAAKA,EAAK,GAAK,GAAO,GAC3BA,EAAK,GAAKA,EAAK,GAAK,GAAO,IAEvBD,EAAK,CACP/wB,EAASA,GAAU,EAEnB,QAAS5hC,EAAI,EAAGA,EAAI,GAAI,EAAEA,EACxB2yD,EAAI/wB,EAAS5hC,GAAK4yD,EAAK5yD,GAGzB,OAAO2yD,EAGT,OAAOjwB,GAAUkwB,CAAI,CACvB,KCfAC,GAAiB,SAASC,EAAMjzD,EAAGS,EAAG,CACpC,GAAIT,IAAMS,EAAG,MAAO,GAEpB,GAAIT,GAAKS,GAAK,OAAOT,GAAK,UAAY,OAAOS,GAAK,SAAU,CAC1D,GAAIT,EAAE,cAAgBS,EAAE,YAAa,MAAO,GAE5C,IAAIoI,EAAQ1I,EAAG0S,EACf,GAAI,MAAM,QAAQ7S,CAAC,EAAG,CAEpB,GADA6I,EAAS7I,EAAE,OACP6I,GAAUpI,EAAE,OAAQ,MAAO,GAC/B,IAAKN,EAAI0I,EAAQ1I,MAAQ,GACvB,GAAI,CAAC8yD,EAAMjzD,EAAEG,GAAIM,EAAEN,EAAE,EAAG,MAAO,GACjC,MAAO,GAKT,GAAIH,EAAE,cAAgB,OAAQ,OAAOA,EAAE,SAAWS,EAAE,QAAUT,EAAE,QAAUS,EAAE,MAC5E,GAAIT,EAAE,UAAY,OAAO,UAAU,QAAS,OAAOA,EAAE,YAAcS,EAAE,UACrE,GAAIT,EAAE,WAAa,OAAO,UAAU,SAAU,OAAOA,EAAE,aAAeS,EAAE,WAIxE,GAFAoS,EAAO,OAAO,KAAK7S,CAAC,EACpB6I,EAASgK,EAAK,OACVhK,IAAW,OAAO,KAAKpI,CAAC,EAAE,OAAQ,MAAO,GAE7C,IAAKN,EAAI0I,EAAQ1I,MAAQ,GACvB,GAAI,CAAC,OAAO,UAAU,eAAe,KAAKM,EAAGoS,EAAK1S,EAAE,EAAG,MAAO,GAEhE,IAAKA,EAAI0I,EAAQ1I,MAAQ,GAAI,CAC3B,IAAIqS,EAAMK,EAAK1S,GAEf,GAAI,CAAC8yD,EAAMjzD,EAAEwS,GAAM/R,EAAE+R,EAAI,EAAG,MAAO,GAGrC,MAAO,GAIT,OAAOxS,IAAIA,GAAKS,IAAIA,CACtB,QC1Ce,MAAMyyD,GAAN,KAAoB,CAEjC,YAAY7tD,EAAYuZ,EAAM,CAkB9B4f,EAAA,aAAQ,CAAC20B,EAAWC,IACX,IAAIF,GAAc,CAAE,GAAG,KAAK,WAAY,GAAGC,CAAS,EAAG,CAAE,GAAG,KAAK,KAAM,GAAGC,EAAU,GAuE7F50B,EAAA,gBAAWh4B,GAAQ,CACjB,KAAM,CAAE,OAAAyM,GAAW,KAAK,WAExB,GAAIA,EAAO,SAKT,OAHkB,MAAM,QAAQA,EAAO,QAAQ,EAC7CA,EAAO,SAAW,CAAEA,EAAO,WAEZ,KAAKlT,GAAKA,EAAE,OAASyG,CAAI,IAjG5C,KAAK,WAAanB,EAClB,KAAK,KAAOuZ,EAqBd,QAAQzR,EAAO,CACb,OAAIA,GAAA,YAAAA,EAAO,QAAS,aACX,GACE,KAAK,aAAeA,EAAM,WAC5B,GACE,CAAC,KAAK,WAAW,IAAM,CAACA,EAAM,WAAW,GAC3C,GAEAkmD,GAAO,KAAK,WAAYlmD,EAAM,UAAU,EAInD,IAAI,UAAW,OACb,OAAOmT,EAAA,KAAK,OAAL,YAAAA,EAAW,SAQpB,IAAI,IAAK,CACP,OAAO,KAAK,WAAW,GAGzB,IAAI,SAAU,CACZ,OAAO,KAAK,WAAW,YAGzB,IAAI,MAAO,CACT,OAAO,KAAK,WAAW,KAGzB,IAAI,YAAa,CACf,OAAO,KAAK,WAAW,WAGzB,IAAI,MAAO,CACT,OAAO,KAAK,WAAW,KAGzB,IAAI,QAAS,CACX,OAAO,KAAK,WAAW,OAIzB,IAAI,QAAS,CACX,OAAQ,MAAM,QAAQ,KAAK,WAAW,IAAI,EACxC,KAAK,WAAW,KAAO,CAAE,KAAK,WAAW,MAI7C,IAAI,OAAOgzC,EAAQ,CACjB,KAAK,WAAW,KAAOA,EAIzB,IAAI,SAAU,CACZ,OAAQ,MAAM,QAAQ,KAAK,WAAW,MAAM,EAC1C,KAAK,WAAW,OAAS,CAAE,KAAK,WAAW,QAqB/C,IAAI,OAAQ,OACV,OAAOhzC,EAAA,KAAK,SAAS,mBAAmB,IAAjC,YAAAA,EAAoC,MAI7C,IAAI,OAAQ,OACV,OAAOA,EAAA,KAAK,SAAS,sBAAsB,IAApC,YAAAA,EAAuC,MAIhD,IAAI,KAAM,OACR,OAAOA,EAAA,KAAK,SAAS,sBAAsB,IAApC,YAAAA,EAAuC,IAGlD,EAvHe,IAAMizC,GAANL,GAQb10B,EARmB+0B,GAQZ,SAASn5C,GAAQ,CACtB,MAAMo5C,EAAO,CACX,WAAY,mCACZ,KAAQ,aACR,GAAM,IAAId,OACV,KAAQ,IAGV,OAAO,IAAIQ,GAAc,CAAE,GAAGM,EAAM,GAAGp5C,EAAM,ICVlC,MAAMq5C,EAAU,CAE7B,YAAYxgD,EAAQuqB,EAAM,CAU1BgB,EAAA,aAAQ20B,GAAa,CAEnB,MAAMO,EAAS,IAAID,GACnB,OAAAC,EAAO,WAAa,KAAK,MAAM,KAAK,UAAU,KAAK,UAAU,CAAC,EAE1DP,IACFO,EAAO,WAAa,CAAE,GAAGA,EAAO,WAAY,GAAGP,IAE1CO,IAsCTl1B,EAAA,gBAAWh4B,GAAQ,CACjB,KAAM,CAAE,OAAAyM,GAAW,KAAK,WAExB,GAAIA,EAAO,SAKT,OAHkB,MAAM,QAAQA,EAAO,QAAQ,EAC7CA,EAAO,SAAW,CAAEA,EAAO,WAEZ,KAAKlT,GAAKA,EAAE,OAASyG,CAAI,IAiB9Cg4B,EAAA,oBAAe,IAAM,CACnB,MAAMx+B,EAAI,OAAO,OAAO,GAAI,KAAK,WAAY,CAC3C,KAAQ,aACR,GAAM,IAAI0yD,OACX,EAED,OAAO,IAAIa,GAAcvzD,CAAC,IAtF1B,KAAK,WAAa,CAChB,WAAY,mCACZ,KAAM,YACN,KAAMw9B,GAAQ,GACd,OAAAvqB,GAgBJ,IAAI,SAAU,CACZ,OAAO,KAAK,WAAW,YAGzB,IAAI,MAAO,CACT,OAAO,KAAK,WAAW,KAGzB,IAAI,MAAO,CACT,OAAO,KAAK,WAAW,KAGzB,IAAI,QAAS,CACX,OAAO,KAAK,WAAW,OAGzB,IAAI,SAAU,CACZ,OAAQ,MAAM,QAAQ,KAAK,WAAW,MAAM,EAC1C,KAAK,WAAW,OAAS,CAAE,KAAK,WAAW,QAI/C,QAAQ9F,EAAO,CACb,OAAKA,EAGIkmD,GAAO,KAAK,WAAYlmD,EAAM,UAAU,EAFxC,GAMX,IAAI,QAAS,CACX,OAAQ,MAAM,QAAQ,KAAK,WAAW,IAAI,EACxC,KAAK,WAAW,KAAO,CAAE,KAAK,WAAW,MAgB7C,IAAI,OAAQ,OACV,OAAOmT,EAAA,KAAK,SAAS,mBAAmB,IAAjC,YAAAA,EAAoC,MAO7C,IAAI,aAAc,CAChB,MAAO,GAYX,CClGA,IAAIqzC,GAAuB,SAEZ,KAAO,CAqBnB,cAAeC,GAAa,CAC3B,MAAMC,EAAa,KAAK,MACxBF,GAAuBC,EAAYC,GAOpC,uBAAwB,IACrB,IAAI,KAAK,KAAK,MAAQF,EAAoB,EAAG,cAGhD,aAAcG,GACZ,KAAK,MAAMA,CAAU,EAAIH,EAE9B,GCrCO,MAAMI,GAAY,CAACl2C,EAAQsd,IAAiB,CACjD,GAAItd,EAAQ,CACV,MAAMte,EAAIse,IAAW,OACnB,OAAO,UAAU,cAAgB,OAAO,UAAU,SAAWA,EAEzDm2C,EAAWz0D,EAAE,MAAM,GAAG,EAAE,GAAG,cAC3B00D,EAAc,CAAC10D,EAAGy0D,CAAQ,EAAE,KAAKE,GAAMj5B,GAAiB,SAASi5B,CAAE,CAAC,EAErED,GACH,QAAQ,KAAK,uBAAuB10D,iCAAiC,EAGvE40D,GAAK,KAAKF,EAAa94B,CAAY,OAEnCg5B,GAAK,KAAK,KAAMh5B,CAAY,CAEhC,ECPe,MAAMi5B,EAAe,CAElCC,YAAYC,EAASC,EAAS5zD,EAAGu7C,EAAQsY,EAAK,CA8C9CC,EAAAA,cAASA,CAACC,EAAWC,IAAc,CAEjC,KAAK1U,MAAM/vC,MAAM0kD,QAAU,KAE3B,KAAKC,SAAW,CAACH,EAAWC,CAAS,EACrC,KAAM,CAAE3zD,EAAAA,EAAGZ,EAAAA,EAAGU,EAAAA,EAAGb,EAAAA,GAAM,KAAK60D,KAE5BttD,GAAgB,KAAKH,KAAM,KAAKmtD,IAAIlvD,MAAOtE,EAAGZ,EAAGU,EAAGb,CAAC,EACrDsI,GAAY,KAAKwlC,KAAM/sC,EAAGZ,EAAGU,EAAGb,CAAC,IAGnC80D,EAAAA,6BAAwBA,IACtB,KAAKhnB,KAAKgnB,yBAEZC,EAAAA,mBAAcA,IAAM,CAClB,KAAM,CAAEh0D,EAAAA,EAAGZ,EAAAA,EAAGU,EAAAA,EAAGb,EAAAA,GAAM,KAAK60D,KAC5B,OAAO,IAAIrB,GAAU3sD,GAAe9F,EAAGZ,EAAGU,EAAGb,EAAG,KAAKu0D,IAAIlvD,MAAO,KAAK42C,OAAOn1C,YAAY,CAAC,IAG3F61B,EAAAA,eAAUA,IAAM,CACd,KAAKqjB,MAAM10C,WAAWC,YAAY,KAAKy0C,KAAK,EAE5C,KAAK54C,KAAO,KACZ,KAAK0mC,KAAO,KACZ,KAAKkS,MAAQ,OArEb,KAAKgV,OAAS,CAACX,EAASC,CAAO,EAC/B,KAAKM,SAAW,CAACP,EAASC,CAAO,EAEjC,KAAKrY,OAASA,EACd,KAAKsY,IAAMA,EAEX,KAAKvU,MAAQ34C,SAASC,gBAAgBxD,EAAe,GAAG,EAExD,KAAKsD,KAAOF,GAAaqtD,EAAIlvD,MAAOgvD,EAASC,EAAS,EAAG,CAAC,EAC1D,KAAKltD,KAAK3C,aAAa,QAAS,oBAAoB,EAEpD,KAAKqpC,KAAOtmC,GAAS6sD,EAASC,EAAS,EAAG,CAAC,EAC3C,KAAKxmB,KAAKrpC,aAAa,QAAS,eAAe,EAK/C,KAAKu7C,MAAM/vC,MAAMglD,cAAgB,OAIjC,KAAKjV,MAAM/vC,MAAM0kD,QAAU,OAE3B,KAAK3U,MAAMj4C,YAAY,KAAKX,IAAI,EAChC,KAAK44C,MAAMj4C,YAAY,KAAK+lC,IAAI,EAEhCptC,EAAEqH,YAAY,KAAKi4C,KAAK,EAG1B,IAAI6U,MAAO,CACT,MAAMh0D,EAAI,KAAK+zD,SAAS,GAAK,KAAKI,OAAO,GACnCh1D,EAAI,KAAK40D,SAAS,GAAK,KAAKI,OAAO,GAEzC,MAAO,CACLj0D,EAAGF,EAAI,EAAI,KAAKm0D,OAAO,GAAK,KAAKJ,SAAS,GAC1Cz0D,EAAGH,EAAI,EAAI,KAAKg1D,OAAO,GAAK,KAAKJ,SAAS,GAC1C/zD,EAAGgI,KAAKqsD,IAAI,EAAGrsD,KAAKC,IAAIjI,CAAC,CAAC,EAC1Bb,EAAG6I,KAAKqsD,IAAI,EAAGrsD,KAAKC,IAAI9I,CAAC,CAAC,GAI9B,IAAIm+B,SAAU,CACZ,OAAO,KAAK2P,KA8BhB,CCzFA,MAAMqnB,GAAa,CACjBC,WAAY,YACZC,UAAW,YACXC,SAAU,SACZ,EAEa7W,GAAgBA,IAC3B,iBAAkB8W,QAChBC,UAAUC,eAAiB,GACzBD,UAAUE,iBAAmB,EAEtBC,GAAyB3xD,GAAM,CAE1C,IAAI4xD,EAAsB,KAE1B,MAAMC,EAAgBA,CAACtvD,EAAM3G,IAAM,IAAIk2D,WAAWvvD,EAAM,CACtDwvD,QAASn2D,EAAEm2D,QACXC,QAASp2D,EAAEo2D,QACXC,QAASr2D,EAAEq2D,QACXC,QAASt2D,EAAEs2D,QACXC,MAAOv2D,EAAEu2D,MACTC,MAAOx2D,EAAEw2D,MACTC,QAAS,GACV,EAEKC,EAAeziD,GAAO,CAC1B,MAAMovC,EAAQpvC,EAAI0iD,eAAe,GAC3BC,EAAiBX,EAAcV,GAAWthD,EAAItN,MAAO08C,CAAK,EAEhEA,EAAMjwC,OAAOyjD,cAAcD,CAAc,EACzC3iD,EAAI6iD,kBAEA7iD,EAAItN,OAAS,cAAgBsN,EAAItN,OAAS,eAC5CqvD,GAAuBe,aAAaf,CAAmB,EAEvDA,EAAsBgB,WAAW,IAAM,CACrC,MAAMJ,EAAiBX,EAAc,WAAY5S,CAAK,EACtDA,EAAMjwC,OAAOyjD,cAAcD,CAAc,GACxC,GAAG,GAGJ3iD,EAAItN,OAAS,YACfqvD,GAAuBe,aAAaf,CAAmB,GAG3D5xD,EAAG6yD,iBAAiB,aAAcP,EAAc,EAAI,EACpDtyD,EAAG6yD,iBAAiB,YAAaP,EAAc,EAAI,EACnDtyD,EAAG6yD,iBAAiB,WAAYP,EAAc,EAAI,EAClDtyD,EAAG6yD,iBAAiB,cAAeP,EAAc,EAAI,CAEvD,EC9CMQ,GAAyB,+BAEzBC,GAAUtY,KAKT,MAAMuY,WAAiBC,EAAa,CAEzC7C,YAAY1zD,EAAGu7C,EAAQsY,EAAK,CAC1B,QA8BF2C,EAAAA,wBAAmBA,IAAM,CACnB3B,OAAO4B,iBACT,KAAKhG,eAAiB,IAAIgG,eAAe,IAAM,CAC7C,MAAMC,EAAY,KAAKC,IAAIvC,wBACrB,CAAElhD,MAAAA,EAAOF,OAAAA,GAAW,KAAK2jD,IAAIC,QAAQC,QAE3C,KAAKxjD,MAAQlL,KAAKqsD,IAChBthD,EAAQwjD,EAAUxjD,MAClBF,EAAS0jD,EAAU1jD,MACrB,EAEI,KAAK8jD,gBACP,KAAKA,eAAe,KAAKzjD,KAAK,EACjC,EAED,KAAKo9C,eAAesG,QAAQ,KAAKJ,IAAI/rD,UAAU,KAInDosD,EAAAA,mBAAc7jD,GAAO,CACnB,MAAMunB,EAAK,KAAKi8B,IAAIM,iBAEpB,GAAIZ,GAAS,CACX,MAAMlC,EAAO,KAAKwC,IAAIvC,wBAEhB/zD,EAAI8S,EAAIoiD,QAAUpB,EAAK9zD,EACvBZ,EAAI0T,EAAIqiD,QAAUrB,EAAK10D,EAEvB,CAAEuwD,KAAAA,EAAMlkB,IAAAA,GAAQ,KAAK6qB,IAAIvC,wBAC/B15B,OAAAA,EAAGr6B,EAAIA,EAAI2vD,EACXt1B,EAAGj7B,EAAIA,EAAIqsC,EAEJpR,EAAGw8B,gBAAgB,KAAKl3D,EAAEm3D,eAAeC,SAAS,MAEzD18B,QAAAA,EAAGr6B,EAAI8S,EAAIkkD,QACX38B,EAAGj7B,EAAI0T,EAAImkD,QAEJ58B,EAAGw8B,gBAAgB,KAAKl3D,EAAEu3D,SAASH,SAAS,IAQvDI,EAAAA,kBAAaA,CAACn3D,EAAGZ,IAAM,CACrB,MAAMg4D,EAAiB9wD,SAASC,gBAAgBxD,EAAe,GAAG,EAClEq0D,EAAe1zD,aAAa,QAAS,YAAY,EAEjD,MAAMu7C,EAAQ34C,SAASC,gBAAgBxD,EAAe,GAAG,EAEnDs0D,EAAa34D,GAAK,CACtB,MAAMI,EAAIwH,SAASC,gBAAgBxD,EAAe,QAAQ,EAC1DjE,OAAAA,EAAE4E,aAAa,KAAM1D,CAAC,EACtBlB,EAAE4E,aAAa,KAAMtE,CAAC,EACtBN,EAAE4E,aAAa,IAAKhF,CAAC,EACrBI,EAAE4E,aAAa,mBAAqB,GAAE1D,KAAKZ,GAAG,EACvCN,GAGHw4D,EAAS,KAAKpc,OAAOqc,cAAgB,EAErC/vD,EAAQ6vD,EAAWC,CAAM,EAC/B9vD,EAAM9D,aAAa,QAAS,kBAAkB,EAE9C,MAAM0D,EAAQiwD,EAAWC,EAAS,CAAC,EACnClwD,OAAAA,EAAM1D,aAAa,QAAS,kBAAkB,EAE9Cu7C,EAAMj4C,YAAYI,CAAK,EACvB63C,EAAMj4C,YAAYQ,CAAK,EAEvB4vD,EAAepwD,YAAYi4C,CAAK,EACzBmY,IAGTI,EAAAA,mBAAcA,CAACC,EAAQz3D,EAAGZ,IAAM,CAC9B,MAAMoI,EAAQiwD,EAAOpwD,cAAc,mBAAmB,EACtDG,EAAM9D,aAAa,KAAM1D,CAAC,EAC1BwH,EAAM9D,aAAa,KAAMtE,CAAC,EAC1BoI,EAAM9D,aAAa,mBAAqB,GAAE1D,KAAKZ,GAAG,EAElD,MAAMgI,EAAQqwD,EAAOpwD,cAAc,mBAAmB,EACtDD,EAAM1D,aAAa,KAAM1D,CAAC,EAC1BoH,EAAM1D,aAAa,KAAMtE,CAAC,EAC1BgI,EAAM1D,aAAa,mBAAqB,GAAE1D,KAAKZ,GAAG,IAGpDs4D,EAAAA,mBAAcD,GAAU,CACtB,MAAMrwD,EAAQqwD,EAAOpwD,cAAc,mBAAmB,EACtD,MAAO,CACLrH,EAAGiF,WAAWmC,EAAMjE,aAAa,IAAI,CAAC,EACtC/D,EAAG6F,WAAWmC,EAAMjE,aAAa,IAAI,CAAC,KAI1Cw0D,EAAAA,mBAAcF,GAAU,CACtB,MAAMjwD,EAAQiwD,EAAOpwD,cAAc,mBAAmB,EAChDD,EAAQqwD,EAAOpwD,cAAc,mBAAmB,EAEhDiwD,EAAS,KAAKtkD,OAAS,KAAKkoC,OAAOqc,cAAgB,GAEzD/vD,EAAM9D,aAAa,IAAK4zD,CAAM,EAC9BlwD,EAAM1D,aAAa,IAAK4zD,CAAM,IAlI9B,KAAKhB,IAAM32D,EAAEi4D,QAAQ,KAAK,EAE1B,KAAKj4D,EAAIA,EACT,KAAKu7C,OAASA,EACd,KAAKsY,IAAMA,EAGX,KAAKxgD,MAAQ,EAKb,KAAM,CAAE1O,MAAAA,GAAUkvD,GACdlvD,aAAiBuzD,SAAWvzD,aAAiBwzD,eAC/C,KAAK3B,mBAOTv6B,SAAU,CACJ,KAAKw0B,gBACP,KAAKA,eAAe2H,aAEtB,KAAK3H,eAAiB,KA4G1B,CAKe,MAAM4H,WAAa/B,EAAS,CAEzC5C,YAAY1zD,EAAGu7C,EAAQsY,EAAK,CAC1B,MAAM7zD,EAAGu7C,EAAQsY,CAAG,EAQtByE,EAAAA,uBAAkBA,CAAC,CAAEC,UAAAA,EAAWC,QAAAA,EAASC,SAAAA,KAAe,CAElDF,IACF,KAAKA,UAAYplD,GAAO,CACtB,KAAM,CAAE9S,EAAAA,EAAIZ,EAAAA,GAAM,KAAKu3D,YAAY7jD,CAAG,EAEjC,KAAKulD,UACR,KAAKC,KAAK,iBAAkB,CAAEt4D,EAAAA,EAAGZ,EAAAA,EAAG,EACpC,KAAKi5D,QAAU,IAGjBH,EAAUl4D,EAAGZ,EAAG0T,CAAG,GAIrB,KAAKwjD,IAAIR,iBAAiB,YAAa,KAAKoC,SAAS,GAGnDC,IACF,KAAKA,QAAUrlD,GAAO,CACpB,GAAIA,EAAIylD,SAAW,EAAG,OACtB,KAAM,CAAEv4D,EAAAA,EAAIZ,EAAAA,GAAM,KAAKu3D,YAAY7jD,CAAG,EACtCqlD,EAAQn4D,EAAGZ,EAAG0T,CAAG,GAInBxM,SAASwvD,iBAAiB,UAAW,KAAKqC,OAAO,GAG/CC,IACF,KAAKA,SAAWtlD,GAAO,CACrB,KAAM,CAAE9S,EAAAA,EAAIZ,EAAAA,GAAM,KAAKu3D,YAAY7jD,CAAG,EACtCslD,EAASp4D,EAAGZ,EAAG0T,CAAG,GAGpBxM,SAASwvD,iBAAiB,WAAY,KAAKsC,QAAQ,KAKvDI,EAAAA,uBAAkBA,IAAM,CAClB,KAAKN,WACP,KAAK5B,IAAImC,oBAAoB,YAAa,KAAKP,SAAS,EAEtD,KAAKC,SACP7xD,SAASmyD,oBAAoB,UAAW,KAAKN,OAAO,EAElD,KAAKC,UACP9xD,SAASmyD,oBAAoB,WAAY,KAAKL,QAAQ,IAO1DlsB,EAAAA,aAAQA,CAACp5B,EAAK4lD,IAAuB,CAEnC,KAAM,CAAE14D,EAAAA,EAAGZ,EAAAA,GAAM,KAAKu3D,YAAY7jD,CAAG,EAG/B,CAAE3N,aAAAA,EAAcC,cAAAA,GAAkB,KAAKouD,IAAIlvD,MAC3Cq0D,EAAS34D,EAAI,EAAI,EAAKA,EAAImF,EAAeA,EAAenF,EACxD44D,EAASx5D,EAAI,EAAI,EAAKA,EAAIgG,EAAgBA,EAAgBhG,EAEhE,KAAKy5D,aAAaF,EAAQC,EAAQF,EAAoB5lD,CAAG,IAW3D+lD,EAAAA,oBAAe/lD,GAAO,CACpB,MAAM,IAAIgmD,MAAM/C,EAAsB,IAGxCgD,EAAAA,2BAAsBA,CAAC10D,EAAY20D,IAAe,CAChD,MAAM,IAAIF,MAAM/C,EAAsB,IAnFtC,KAAKsC,QAAU,GA0EjB,IAAIY,WAAY,CACd,MAAM,IAAIH,MAAM/C,EAAsB,EAW1C,CAMAiC,GAAKkB,SAAW70D,GAAc,CAC5B,MAAM,IAAIy0D,MAAM/C,EAAsB,CACxC,EC9PA,MAAMA,GAAyB,+BAEhB,MAAMoD,WAAsBlD,EAAS,CAElD5C,YAAYhvD,EAAY1E,EAAGu7C,EAAQsY,EAAK,CACtC,MAAM7zD,EAAGu7C,EAAQsY,CAAG,EA4BtB4F,EAAAA,mBAAc/0D,GAAc,CAC1B,MAAM,IAAIy0D,MAAM/C,EAAsB,IA3BtC,KAAK1xD,WAAaA,EAQpB,IAAI+4B,SAAU,CACZ,MAAM,IAAI07B,MAAM/C,EAAsB,EAqB1C,CCrCA,MAAMsD,GAAY,WAAWC,KAAK7E,UAAU8E,SAAS,EAE/CC,GAAcA,CAACC,EAAOz5D,EAAGZ,EAAGU,EAAGb,IAAM,CACzCw6D,EAAM/1D,aAAa,QAAS5D,CAAC,EAC7B25D,EAAM/1D,aAAa,SAAUzE,CAAC,EAG1Bo6D,IACFI,EAAM/1D,aAAa,IAAK,CAAC,EACzB+1D,EAAM/1D,aAAa,IAAK,CAAC,EACzB+1D,EAAM/1D,aAAa,YAAc,aAAY1D,MAAMZ,IAAI,IAEvDq6D,EAAM/1D,aAAa,IAAK1D,CAAC,EACzBy5D,EAAM/1D,aAAa,IAAKtE,CAAC,EAE7B,EAEMs6D,GAAoBA,CAACC,EAAa1zD,IAAU,CAChD,KAAM,CAAEjG,EAAAA,EAAGZ,EAAAA,EAAGyT,MAAAA,EAAOF,OAAAA,GAAW1M,EAAM2zD,UAEhCH,EAAQnzD,SAASC,gBAAgBxD,EAAe,KAAK,EAC3D02D,EAAM/1D,aAAa,QAAS,kBAAkB,EAE9C81D,GAAYC,EAAOz5D,EAAGZ,EAAGyT,EAAOF,CAAM,EAEtC,MAAMhT,EAAI2G,SAASC,gBAAgBxD,EAAe,GAAG,EACrDpD,EAAEqH,YAAY2yD,CAAW,EAEzBF,EAAMzyD,YAAYrH,CAAC,EAEnBsG,EAAMo5B,OAAOo6B,CAAK,CACpB,EAYa90D,GAASA,CAACsB,EAAO5B,EAAY20D,IAAe,CAEvD,GAAI,CAACA,EACH,OAAO/yD,EAGT,MAAMtB,EAASq0D,EAAWa,OAAO,CAACC,EAAQ13D,IAAO,CAC/C,MAAMuC,EAASvC,EAAGiC,CAAU,EAE5B,GAAI,CAACM,EACH,OAAOm1D,EAET,GAAI,OAAOn1D,GAAW,UAAYA,aAAkBo1D,OAClDD,EAAOv2D,UAAYu2D,EAAOv2D,UAAa,GAAEu2D,EAAOv2D,aAAaoB,IAAWA,UAC/DA,EAAOq1D,WAAaC,KAAKC,aAClCJ,EAAOK,SAAWL,EAAOK,SAAW,CAAC,GAAGL,EAAOK,SAAUx1D,CAAM,EAAI,CAACA,CAAM,MACrE,CACL,KAAM,CAAEpB,UAAAA,EAAW2L,MAAAA,EAAOkuB,QAAAA,GAAYz4B,EAElCpB,IACFu2D,EAAOv2D,UAAYu2D,EAAOv2D,UAAa,GAAEu2D,EAAOv2D,aAAaA,IAAcA,GAEzE2L,IACF4qD,EAAO5qD,MAAQ4qD,EAAO5qD,MAAS,GAAE4qD,EAAO5qD,SAASA,IAAUA,GAEzDkuB,IACF08B,EAAOK,SAAWL,EAAOK,SAAW,CAAC,GAAGL,EAAOK,SAAU/8B,CAAO,EAAI,CAACA,CAAO,GAIhF,UAAW5rB,KAAO7M,EACZA,EAAOgiC,eAAen1B,CAAG,GAAKA,EAAI/M,WAAW,OAAO,IACtDq1D,EAAOtoD,GAAO7M,EAAO6M,IAIzB,OAAOsoD,GACN,EAAE,EAEC,CAAEv2D,UAAAA,EAAW2L,MAAAA,EAAOirD,SAAAA,GAAax1D,EAKvC,GAHIpB,GACFD,GAAS2C,EAAO1C,CAAS,EAEvB2L,EAAO,CACT,MAAM9H,EAAQnB,EAAMoB,cAAc,YAAY,EACxCG,EAAQvB,EAAMoB,cAAc,YAAY,EAE1CD,GAASI,GACXJ,EAAM1D,aAAa,QAAS,cAAc,EAC1C8D,EAAM9D,aAAa,QAASwL,CAAK,GAEjCjJ,EAAMvC,aAAa,QAASwL,CAAK,EAIjCirD,GACFA,EAAShwD,QAAQlH,GAAMy2D,GAAkBz2D,EAAIgD,CAAK,CAAC,EAErD,UAAWuL,KAAO7M,EACZA,EAAOgiC,eAAen1B,CAAG,GAAKA,EAAI/M,WAAW,OAAO,GACtDwB,EAAMvC,aAAa8N,EAAK7M,EAAO6M,EAAI,CAGzC,EAEa4oD,GAAqBA,CAACnb,EAAOj/C,EAAGZ,EAAGU,EAAGb,IAAM,CACvD,MAAM06D,EAAc1a,EAAM53C,cAAc,mBAAmB,EACvDsyD,GACFH,GAAYG,EAAa35D,EAAGZ,EAAGU,EAAGb,CAAC,CACvC,ECtGMo7D,GAAS,SACTC,GAAO,OAKE,MAAMC,WAAqBpB,EAAc,CAEtD9F,YAAYhvD,EAAY1E,EAAGu7C,EAAQsY,EAAK,CACtC,MAAMnvD,EAAY1E,EAAGu7C,EAAQsY,CAAG,EAkFlCiD,EAAAA,sBAAiBA,IACf,KAAK+D,QAAQx1D,IAAI,KAAK2yD,WAAW,GAEnCpwC,EAAAA,eAAUA,CAACvnB,EAAGZ,EAAGU,EAAGb,IAAM,CACxBsI,GAAY,KAAKkzD,UAAWz6D,EAAGZ,EAAGU,EAAGb,CAAC,EACtCuH,GAAgB,KAAKH,KAAM,KAAKmtD,IAAIlvD,MAAOtE,EAAGZ,EAAGU,EAAGb,CAAC,EACrDm7D,GAAmB,KAAKM,aAAc16D,EAAGZ,EAAGU,EAAGb,CAAC,EAEhD,KAAM,CACJ07D,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,CAAQ,EACN,KAAKV,QAET,KAAKhD,YAAYmD,EAAS36D,EAAGZ,CAAC,EAC9B,KAAKo4D,YAAYoD,EAAU56D,EAAIF,EAAGV,CAAC,EACnC,KAAKo4D,YAAYqD,EAAa76D,EAAIF,EAAGV,EAAIH,CAAC,EAC1C,KAAKu4D,YAAYsD,EAAY96D,EAAGZ,EAAIH,CAAC,EAEjC,KAAKk8D,qBACP,KAAK3D,YAAYuD,EAAS/6D,EAAIF,EAAI,EAAGV,CAAC,EACtC,KAAKo4D,YAAYwD,EAAWh7D,EAAIF,EAAGV,EAAIH,EAAI,CAAC,EAC5C,KAAKu4D,YAAYyD,EAAYj7D,EAAIF,EAAI,EAAGV,EAAIH,CAAC,EAC7C,KAAKu4D,YAAY0D,EAAUl7D,EAAGZ,EAAIH,EAAI,CAAC,KAI3Cm8D,EAAAA,sBAAiBA,CAACC,EAAkBC,EAAcC,IAAa,CAC7D,MAAMtH,EAAS,KAAKyD,YAAY4D,CAAY,EAEtCzoD,EAAQ0oD,EAASv7D,EAAIi0D,EAAOj0D,EAC5B2S,EAAS4oD,EAASn8D,EAAI60D,EAAO70D,EAE7BY,EAAI6S,EAAQ,EAAIohD,EAAOj0D,EAAIu7D,EAASv7D,EACpCZ,EAAIuT,EAAS,EAAIshD,EAAO70D,EAAIm8D,EAASn8D,EACrCU,EAAIgI,KAAKC,IAAI8K,CAAK,EAClB5T,EAAI6I,KAAKC,IAAI4K,CAAM,EAEzB,YAAK4U,QAAQvnB,EAAGZ,EAAGU,EAAGb,CAAC,EAEhB,CAAEe,EAAAA,EAAGZ,EAAAA,EAAGU,EAAAA,EAAGb,EAAAA,KAGpBu8D,EAAAA,mBAAcA,CAACC,EAAWC,EAAgBH,IAAa,CACrD,MAAMtH,EAAS,KAAKyD,YAAYgE,CAAc,EACxCC,EAAkBx0D,GAAY,KAAKszD,SAAS,EAC5CmB,EAAqBH,EAAY,IAAM,EAEvC5oD,EAAQ+oD,EAAqBD,EAAgB77D,EAAIy7D,EAASv7D,EAAIi0D,EAAOj0D,EACrE2S,EAASipD,EAAqBL,EAASn8D,EAAI60D,EAAO70D,EAAIu8D,EAAgB18D,EAEtEe,EAAI47D,EAAqBD,EAAgB37D,EAAK6S,EAAQ,EAAIohD,EAAOj0D,EAAIu7D,EAASv7D,EAC9EZ,EAAIw8D,EAAsBjpD,EAAS,EAAIshD,EAAO70D,EAAIm8D,EAASn8D,EAAKu8D,EAAgBv8D,EAChFU,EAAIgI,KAAKC,IAAI8K,CAAK,EAClB5T,EAAI6I,KAAKC,IAAI4K,CAAM,EAEzB,YAAK4U,QAAQvnB,EAAGZ,EAAGU,EAAGb,CAAC,EAEhB,CAAEe,EAAAA,EAAGZ,EAAAA,EAAGU,EAAAA,EAAGb,EAAAA,KAGpB48D,EAAAA,cAASA,CAACC,EAAat2D,IAASsN,GAAO,CACrC,GAAIA,EAAIylD,SAAW,EAAG,OACtB,KAAKuD,YAAcA,EACnB,KAAKC,YAAcv2D,EACnB,MAAMw2D,EAAM,KAAKrF,YAAY7jD,CAAG,EAC1B,CAAE9S,EAAAA,EAAGZ,EAAAA,GAAM+H,GAAY,KAAKszD,SAAS,EAC3C,KAAKwB,YAAc,CAAEj8D,EAAGg8D,EAAIh8D,EAAIA,EAAGZ,EAAG48D,EAAI58D,EAAIA,KAGhD88D,EAAAA,mBAAcppD,GAAO,CACnB,GAAIA,EAAIylD,SAAW,EAAG,OACtB,MAAM4D,EAAYA,CAACC,EAAOjI,IACxBiI,EAAQ,EAAI,EAAKA,EAAQjI,EAAMA,EAAMiI,EAEvC,GAAI,KAAKN,YAAa,CACpB,MAAME,EAAM,KAAKrF,YAAY7jD,CAAG,EAEhC,GAAI,KAAKgpD,cAAgB,KAAKrB,UAAW,CAEvC,KAAM,CAAE36D,EAAAA,EAAGb,EAAAA,GAAMkI,GAAY,KAAKszD,SAAS,EAErC,CAAEt1D,aAAAA,EAAcC,cAAAA,GAAkB,KAAKouD,IAAIlvD,MAE3CtE,EAAIm8D,EAAUH,EAAIh8D,EAAI,KAAKi8D,YAAYj8D,EAAGmF,EAAerF,CAAC,EAC1DV,EAAI+8D,EAAUH,EAAI58D,EAAI,KAAK68D,YAAY78D,EAAGgG,EAAgBnG,CAAC,EAEjE,KAAKsoB,QAAQvnB,EAAGZ,EAAGU,EAAGb,CAAC,EACvB,KAAKq5D,KAAK,SAAUxyD,GAAe9F,EAAGZ,EAAGU,EAAGb,EAAG,KAAKu0D,IAAIlvD,MAAO,KAAK42C,OAAOn1C,YAAY,CAAC,MACnF,CAGL,MAAM01D,EAAY,KAAKjB,QAAQ11D,QAAQ,KAAKg3D,WAAW,EACjDJ,EAAiB,KAAKlB,QAAQiB,EAAY,GAE1C,CAAEz7D,EAAAA,EAAGZ,EAAAA,EAAGU,EAAAA,EAAGb,EAAAA,GACf,KAAK88D,cAAgB1B,GACnB,KAAKe,eAAeK,EAAWC,EAAgBM,CAAG,EAClD,KAAKR,YAAYC,EAAWC,EAAgBM,CAAG,EAEnD,KAAK1D,KAAK,SAAUxyD,GAAe9F,EAAGZ,EAAGU,EAAGb,EAAG,KAAKu0D,IAAIlvD,MAAO,KAAK42C,OAAOn1C,YAAY,CAAC,MAK9Fs2D,EAAAA,iBAAYvpD,GAAO,CACjB,KAAKgpD,YAAc,KACnB,KAAKC,YAAc,KACnB,KAAKE,YAAc,OAOrB7C,EAAAA,mBAAc/0D,GAAc,CAC1B,KAAM,CAAErE,EAAAA,EAAGZ,EAAAA,EAAGU,EAAAA,EAAGb,EAAAA,GAAMmF,GAAkBC,EAAY,KAAKmvD,IAAIlvD,KAAK,EACnE,KAAKijB,QAAQvnB,EAAGZ,EAAGU,EAAGb,CAAC,IA1MvB,KAAKq3D,IAAIR,iBAAiB,YAAa,KAAKoG,WAAW,EACvD,KAAK5F,IAAIR,iBAAiB,UAAW,KAAKuG,SAAS,EAEnD,KAAM,CAAEr8D,EAAAA,EAAGZ,EAAAA,EAAGU,EAAAA,EAAGb,EAAAA,GAAMmF,GAAkBC,EAAYmvD,EAAIlvD,KAAK,EAiB9D,KAAK8yD,eAAiB9wD,SAASC,gBAAgBxD,EAAe,GAAG,EAEjE,KAAKsD,KAAOF,GAAaqtD,EAAIlvD,MAAOtE,EAAGZ,EAAGU,EAAGb,CAAC,EAC9C,KAAKoH,KAAK3C,aAAa,QAAS,oBAAoB,EACpD,KAAK0zD,eAAepwD,YAAY,KAAKX,IAAI,EAGzC,KAAKq0D,aAAep0D,SAASC,gBAAgBxD,EAAe,GAAG,EAC/D,KAAK23D,aAAah3D,aAAa,QAAS,kCAAkC,EAC1E,KAAKg3D,aAAah3D,aAAa,UAAWW,EAAW0lC,EAAE,EAEvD,KAAK0wB,UAAYh0D,GAASzG,EAAGZ,EAAGU,EAAGb,CAAC,EACpC,KAAKw7D,UAAUpzD,cAAc,YAAY,EACtCyuD,iBAAiB,YAAa,KAAK+F,OAAO,KAAKpB,SAAS,CAAC,EAE5D,KAAKC,aAAa1zD,YAAY,KAAKyzD,SAAS,EAE5C,KAAKU,mBAAqBjgB,EAAOigB,mBAEjC,MAAMmB,EAAc,KAAKnB,mBACvB,CACE,CAACn7D,EAAIF,EAAI,EAAGV,EAAGk7D,EAAI,EACnB,CAACt6D,EAAIF,EAAGV,EAAIH,EAAI,EAAGq7D,EAAI,EACvB,CAACt6D,EAAIF,EAAI,EAAGV,EAAIH,EAAGq7D,EAAI,EACvB,CAACt6D,EAAGZ,EAAIH,EAAI,EAAGq7D,EAAI,CAAC,EAEtB,GAEF,KAAKE,QAAU,CACb,CAACx6D,EAAGZ,EAAGi7D,EAAM,EACb,CAACr6D,EAAIF,EAAGV,EAAGi7D,EAAM,EACjB,CAACr6D,EAAIF,EAAGV,EAAIH,EAAGo7D,EAAM,EACrB,CAACr6D,EAAGZ,EAAIH,EAAGo7D,EAAM,EACjB,GAAGiC,CAAW,EACdt3D,IAAIvG,GAAK,CACT,KAAM,CAACuB,EAAGZ,EAAGoG,CAAI,EAAI/G,EACfg5D,EAAS,KAAKN,WAAWn3D,EAAGZ,CAAC,EAEnCq4D,OAAAA,EAAO3B,iBAAiB,YAAa,KAAK+F,OAAOpE,EAAQjyD,CAAI,CAAC,EAC9D,KAAKk1D,aAAa1zD,YAAYywD,CAAM,EAE7BA,EACR,EAED,KAAKL,eAAepwD,YAAY,KAAK0zD,YAAY,EAEjD/6D,EAAEqH,YAAY,KAAKowD,cAAc,EAEjCzyD,GAAO,KAAK81D,UAAWp2D,EAAY62C,EAAO8d,UAAU,EAGpD,KAAK8C,YAAc,KAGnB,KAAKC,YAAc,KAGnB,KAAKE,YAAc,KAuHrB,IAAI7+B,SAAU,CACZ,OAAO,KAAKs9B,aAQd9+B,SAAU,CACR,KAAKw7B,eAAe7sD,WAAWC,YAAY,KAAK4sD,cAAc,EAC9D,MAAMx7B,UAGV,CCnOe,MAAM2gC,WAA2BvE,EAAK,CAEnD3E,YAAY1zD,EAAGu7C,EAAQsY,EAAK,CAE1B,MAAM7zD,EAAGu7C,EAAQsY,CAAG,EAKtBqF,EAAAA,oBAAeA,CAAC74D,EAAGZ,IAAM,CACvB,KAAK64D,gBAAgB,CACnBC,UAAW,KAAKgE,YAChB/D,QAAS,KAAKkE,UACf,EAED,KAAKG,WAAa,IAAIpJ,GAAepzD,EAAGZ,EAAG,KAAKO,EAAG,KAAKu7C,OAAQ,KAAKsY,GAAG,IAG1EiJ,EAAAA,YAAOA,IAAM,CACP,KAAKD,aACP,KAAKA,WAAW5gC,UAChB,KAAK4gC,WAAa,QAItBN,EAAAA,mBAAcA,CAACl8D,EAAGZ,IAAM,CAEtB,KAAM,CAAE+F,aAAAA,EAAcC,cAAAA,GAAkB,KAAKouD,IAAIlvD,MAC3Co4D,EAAa50D,KAAK60D,IAAI70D,KAAKqsD,IAAIn0D,EAAG,CAAC,EAAGmF,CAAY,EAClDy3D,EAAa90D,KAAK60D,IAAI70D,KAAKqsD,IAAI/0D,EAAG,CAAC,EAAGgG,CAAa,EAEzD,KAAKo3D,WAAW/I,OAAOiJ,EAAYE,CAAU,IAG/CP,EAAAA,iBAAYA,IAAM,CAChB,KAAK7D,kBACL,KAAKH,QAAU,GAEf,KAAM,CAAExlD,MAAAA,EAAOF,OAAAA,GAAW,KAAK6pD,WAAWzI,wBAEpC8I,EAAW,KAAK3hB,OAAO4hB,mBAAqB,EAC5CzvB,EAAY,KAAK6N,OAAO6hB,oBAAsB,EAEpD,GAAIlqD,GAASgqD,GAAYlqD,GAAU06B,EAAW,CAE5C,KAAM,CAAEjQ,QAAAA,GAAY,KAAKo/B,WACzBp/B,EAAQ/4B,WAAa,KAAKm4D,WAAWxI,cAGrC,KAAKsE,KAAK,WAAYl7B,CAAO,OAE7B,KAAKk7B,KAAK,QAAQ,EAGpB,KAAKmE,SAOP1D,EAAAA,2BAAsBA,CAAC10D,EAAY20D,IACjC,IAAIuB,GAAal2D,EAAY,KAAK1E,EAAG,CAAC,GAAG,KAAKu7C,OAAQ8d,WAAAA,GAAa,KAAKxF,GAAG,GAxD3E,KAAKgJ,WAAa,KAmDpB,IAAIvD,WAAY,CACd,OAAO,KAAKuD,YAAc,KAM9B,CAEAD,GAAmB7oD,WAAa,OAEhC6oD,GAAmBrD,SAAW70D,GAAc,CAC1C,MAAM24D,EAAmB34D,EAAWE,SAAS,kBAAkB,EAC/D,OAAOy4D,GAAAA,YAAAA,EAAkBx4D,WAAWC,WAAW,mCACjD,EC5Ee,MAAMw4D,EAAY,CAE/B5J,YAAYjtD,EAAiBuF,EAAS,CAatCuxD,EAAAA,cAASA,IAAM,CACb,KAAK72D,KAAK3C,aAAa,IAAM,SAAQ,KAAK5D,MAAM,KAAKb,OAAO,KAAKa,QAAQ,KAAK6L,QAAQxI,aAAa,QAAQ,KAAK,IAOlHy4B,EAAAA,eAAUA,IACR,KAAKv1B,KAAKkE,WAAWC,YAAY,KAAKnE,IAAI,GArB1C,KAAKvG,EAAIsG,EAAgBjB,aACzB,KAAKlG,EAAImH,EAAgBhB,cAEzB,KAAKuG,QAAUA,EAEf,KAAKtF,KAAOC,SAASC,gBAAgBxD,EAAe,MAAM,EAC1D,KAAKsD,KAAK3C,aAAa,YAAa,SAAS,EAC7C,KAAK2C,KAAK3C,aAAa,QAAS,oBAAoB,EAEpD,KAAK2C,KAAK3C,aAAa,IAAM,SAAQ,KAAK5D,MAAM,KAAKb,OAAO,KAAKa,QAAQ,KAAK6L,QAAQxI,aAAa,QAAQ,KAAK,EAOlH,IAAIi6B,SAAU,CACZ,OAAO,KAAK/2B,KAMhB,CCvBe,MAAM82D,EAAkB,CAErC9J,YAAYY,EAAQt0D,EAAG6zD,EAAK,CAkC5B4J,EAAAA,iBAAYz1D,GAAU,CACpB,MAAMzE,EAAOyE,EAAO3C,IAAIvG,GAAM,GAAEA,EAAE,MAAMA,EAAE,IAAI,EAAEoF,KAAK,GAAG,EACxD,KAAKuD,MAAM1D,aAAa,SAAUR,CAAI,EACtC,KAAKsE,MAAM9D,aAAa,SAAUR,CAAI,IAGxC6wD,EAAAA,6BAAwBA,IACtB,KAAK3sD,MAAM2sD,yBAEbN,EAAAA,cAASxrD,GAAM,CAEb,KAAKg3C,MAAM/vC,MAAM0kD,QAAU,KAE3B,KAAKyJ,SAAWp1D,EAEhB,MAAMu0D,EAAa,CAAE,GAAG,KAAK70D,OAAQM,CAAE,EAEvC,KAAKm1D,UAAUZ,CAAU,EACzB,KAAKn2D,KAAK62D,WAGZI,EAAAA,gBAAWA,IAAM,CAEf,KAAM,CAACt9D,EAAGZ,CAAC,EAAI,KAAKi+D,SACdE,EAAa,KAAK51D,OAAO,KAAKA,OAAOE,OAAS,GACvCC,KAAK01D,IAAIx9D,EAAIu9D,EAAW,GAAI,CAAC,EAAIz1D,KAAK01D,IAAIp+D,EAAIm+D,EAAW,GAAI,CAAC,EAEhE,IACT,KAAK51D,OAAS,CAAE,GAAG,KAAKA,OAAQ,KAAK01D,QAAQ,EAC7C,KAAKD,UAAU,KAAKz1D,MAAM,EAC1B,KAAKtB,KAAK62D,YAQdthC,EAAAA,eAAUA,IAAM,CACd,KAAKqjB,MAAM10C,WAAWC,YAAY,KAAKy0C,KAAK,EAC5C,KAAKtzC,QAAU,KACf,KAAKszC,MAAQ,OAGf+U,EAAAA,mBAAcA,IACL,IAAIvB,GAAUtnD,GAAY,KAAK8zC,MAAO,KAAKuU,IAAIlvD,KAAK,CAAC,GA9E5D,KAAKqD,OAAS,CAAEssD,CAAM,EACtB,KAAKT,IAAMA,EAEX,KAAK6J,SAAWpJ,EAEhB,KAAKhV,MAAQ34C,SAASC,gBAAgBxD,EAAe,GAAG,EAExD,KAAK4I,QAAUrF,SAASC,gBAAgBxD,EAAe,GAAG,EAC1D,KAAK4I,QAAQjI,aAAa,QAAS,eAAe,EAElD,KAAK0D,MAAQd,SAASC,gBAAgBxD,EAAe,SAAS,EAC9D,KAAKqE,MAAM1D,aAAa,QAAS,WAAW,EAE5C,KAAK8D,MAAQlB,SAASC,gBAAgBxD,EAAe,SAAS,EAC9D,KAAKyE,MAAM9D,aAAa,QAAS,WAAW,EAE5C,KAAK05D,UAAU,KAAKz1D,MAAM,EAE1B,KAAKtB,KAAO,IAAIo3D,GAAKjK,EAAIlvD,MAAO,KAAKkD,KAAK,EAE1C,KAAKmE,QAAQ3E,YAAY,KAAKI,KAAK,EACnC,KAAKuE,QAAQ3E,YAAY,KAAKQ,KAAK,EAInC,KAAKy3C,MAAM/vC,MAAM0kD,QAAU,OAE3B,KAAK3U,MAAMj4C,YAAY,KAAKX,KAAK+2B,OAAO,EACxC,KAAK6hB,MAAMj4C,YAAY,KAAK2E,OAAO,EAEnChM,EAAEqH,YAAY,KAAKi4C,KAAK,EAqC1B,IAAI7hB,SAAU,CACZ,OAAO,KAAKzxB,QAahB,CCnFA,MAAM+xD,GAAYz3D,GAAS,CAGzB,MAAM03D,EAAY13D,EAAMoB,cAAc,YAAY,EAAEM,OAC9CA,EAAS,GAEf,QAASxI,EAAE,EAAGA,EAAEw+D,EAAUC,cAAez+D,IACvCwI,EAAOwB,KAAKw0D,EAAUE,QAAQ1+D,CAAC,CAAC,EAGlC,OAAOwI,CACT,EAEMiyD,GAAU3zD,GACdA,EAAMoB,cAAc,YAAY,EAAEuyD,UAKrB,MAAMkE,WAAwB3E,EAAc,CAEzD9F,YAAYhvD,EAAY1E,EAAGu7C,EAAQsY,EAAK,CACtC,MAAMnvD,EAAY1E,EAAGu7C,EAAQsY,CAAG,EAsDlCiD,EAAAA,sBAAiBA,IACf,KAAK+D,QAAQx1D,IAAI,KAAK2yD,WAAW,GAEnCyF,EAAAA,iBAAaz1D,GAAW,CAGtB,MAAMo2D,EAAQtvD,GACZ3G,KAAKi2D,MAAM,GAAKtvD,CAAG,EAAI,GAEnB3F,EAAMnB,EAAO3C,IAAIq1B,GAAO,GAAE0jC,EAAM1jC,EAAGr6B,CAAC,KAAK+9D,EAAM1jC,EAAGj7B,CAAC,GAAG,EAAEyE,KAAK,GAAG,EAExD,KAAKoC,MAAMoB,cAAc,YAAY,EAC7C3D,aAAa,SAAUoF,CAAG,EAEhC,MAAM1B,EAAQ,KAAKnB,MAAMoB,cAAc,YAAY,EACnDD,EAAM1D,aAAa,SAAUoF,CAAG,EAEhC,KAAKzC,KAAK62D,SAEV,KAAM,CAAEl9D,EAAAA,EAAGZ,EAAAA,EAAGyT,MAAAA,EAAOF,OAAAA,GAAWvL,EAAMwyD,UACtCQ,GAAmB,KAAKM,aAAc16D,EAAGZ,EAAGyT,EAAOF,CAAM,IAG3DkpD,EAAAA,cAASC,GAAehpD,GAAO,CACzBA,EAAIylD,SAAW,IACnB,KAAKuD,YAAcA,EACnB,KAAKkC,UAAY,KAAKrH,YAAY7jD,CAAG,KAGvCopD,EAAAA,mBAAcppD,GAAO,CACnB,MAAMqpD,EAAYA,CAACC,EAAO7f,EAAO4X,IAC/BiI,EAAQ7f,EAAQ,EAAI,CAAC6f,EAASA,EAAQ7f,EAAQ4X,EAAMA,EAAMiI,EAAQ7f,EAEpE,GAAI,KAAKuf,YAAa,CACpB,MAAME,EAAM,KAAKrF,YAAY7jD,CAAG,EAEhC,GAAI,KAAKgpD,cAAgB,KAAK71D,MAAO,CACnC,KAAM,CAAEjG,EAAAA,EAAGZ,EAAAA,EAAGyT,MAAAA,EAAOF,OAAAA,GAAWinD,GAAQ,KAAK3zD,KAAK,EAE5C,CAAEd,aAAAA,EAAcC,cAAAA,GAAkB,KAAKouD,IAAIlvD,MAE3C25D,EAAK9B,EAAUn8D,EAAGg8D,EAAIh8D,EAAI,KAAKg+D,UAAUh+D,EAAGmF,EAAe0N,CAAK,EAChEqrD,EAAK/B,EAAU/8D,EAAG48D,EAAI58D,EAAI,KAAK4+D,UAAU5+D,EAAGgG,EAAgBuN,CAAM,EAElEwrD,EAAgBT,GAAU,KAAKz3D,KAAK,EAAEjB,IAAIq1B,IAC7C,CAAEr6B,EAAGq6B,EAAGr6B,EAAIi+D,EAAI7+D,EAAGi7B,EAAGj7B,EAAI8+D,GAAK,EAElC,KAAKF,UAAYhC,EAEjB,KAAKoB,UAAUe,CAAa,EAC5BA,EAAch0D,QAAQ,CAACkwB,EAAI7d,IAAQ,KAAKg7C,YAAY,KAAKgD,QAAQh+C,GAAM6d,EAAGr6B,EAAGq6B,EAAGj7B,CAAC,CAAC,EAElF,KAAKk5D,KAAK,SAAUntD,GAAY,KAAKlF,MAAO,KAAKutD,IAAIlvD,KAAK,CAAC,MACtD,CACL,MAAMm3D,EAAY,KAAKjB,QAAQ11D,QAAQ,KAAKg3D,WAAW,EAEjDqC,EAAgBT,GAAU,KAAKz3D,KAAK,EAAEjB,IAAI,CAACq1B,EAAI7d,IAClDA,IAAQi/C,EAAaO,EAAM3hC,CAAE,EAEhC,KAAK+iC,UAAUe,CAAa,EAC5B,KAAK3G,YAAY,KAAKgD,QAAQiB,GAAYO,EAAIh8D,EAAGg8D,EAAI58D,CAAC,EAEtD,KAAKk5D,KAAK,SAAUntD,GAAY,KAAKlF,MAAO,KAAKutD,IAAIlvD,KAAK,CAAC,MAKjE+3D,EAAAA,iBAAYvpD,GAAO,CACjB,KAAKgpD,YAAc,KACnB,KAAKkC,UAAY,OAOnB5E,EAAAA,mBAAc/0D,GAAc,CAC1B,MAAMsD,EAAS+C,GAAmBrG,CAAU,EACzClB,aAAa,QAAQ,EACrBE,MAAM,GAAG,EACT2B,IAAIiD,GAAM,CACT,KAAM,CAAEjI,EAAGZ,CAAC,EAAK6I,EAAG5E,MAAM,GAAG,EAAE2B,IAAI8D,GAAO7D,WAAW6D,EAAIC,MAAM,CAAC,EAChE,MAAO,CAAE/I,EAAAA,EAAGZ,EAAAA,GACb,EAEH,KAAKg+D,UAAUz1D,CAAM,EACrBA,EAAOwC,QAAQ,CAACkwB,EAAI7d,IAAQ,KAAKg7C,YAAY,KAAKgD,QAAQh+C,GAAM6d,EAAGr6B,EAAGq6B,EAAGj7B,CAAC,CAAC,IAG7Ew8B,EAAAA,eAAUA,IAAM,CACd,KAAKw7B,eAAe7sD,WAAWC,YAAY,KAAK4sD,cAAc,EAC9D,MAAMx7B,YA/IN,KAAK06B,IAAIR,iBAAiB,YAAa,KAAKoG,WAAW,EACvD,KAAK5F,IAAIR,iBAAiB,UAAW,KAAKuG,SAAS,EAiBnD,KAAKjF,eAAiB9wD,SAASC,gBAAgBxD,EAAe,GAAG,EAEjE,KAAKkD,MAAQgF,GAAgB5G,CAAU,EACvC,KAAK4B,MAAMoB,cAAc,YAAY,EAClCyuD,iBAAiB,YAAa,KAAK+F,OAAO,KAAK51D,KAAK,CAAC,EAExD,KAAKI,KAAO,IAAIo3D,GAAKjK,EAAIlvD,MAAO,KAAK2B,MAAMoB,cAAc,YAAY,CAAC,EAEtE,KAAK+vD,eAAepwD,YAAY,KAAKX,KAAK+2B,OAAO,EAEjD,KAAKs9B,aAAep0D,SAASC,gBAAgBxD,EAAe,GAAG,EAC/D,KAAK23D,aAAah3D,aAAa,QAAS,kCAAkC,EAC1E,KAAKg3D,aAAah3D,aAAa,UAAWW,EAAW0lC,EAAE,EACvD,KAAK2wB,aAAa1zD,YAAY,KAAKf,KAAK,EAExC,KAAKu0D,QAAUkD,GAAU,KAAKz3D,KAAK,EAAEjB,IAAIq1B,GAAM,CAC7C,MAAMo9B,EAAS,KAAKN,WAAW98B,EAAGr6B,EAAGq6B,EAAGj7B,CAAC,EACzCq4D,OAAAA,EAAO3B,iBAAiB,YAAa,KAAK+F,OAAOpE,CAAM,CAAC,EACxD,KAAKiD,aAAa1zD,YAAYywD,CAAM,EAC7BA,EACR,EAED,KAAKL,eAAepwD,YAAY,KAAK0zD,YAAY,EACjD/6D,EAAEqH,YAAY,KAAKowD,cAAc,EAEjCzyD,GAAO,KAAKsB,MAAO5B,EAAY62C,EAAO8d,UAAU,EAGhD,KAAK8C,YAAc,KAGnB,KAAKkC,UAAY,KA2EnB,IAAI5gC,SAAU,CACZ,OAAO,KAAKs9B,aAqBhB,CCzKe,MAAM0D,WAA8BpG,EAAK,CAEtD3E,YAAY1zD,EAAGu7C,EAAQsY,EAAK,CAC1B,MAAM7zD,EAAGu7C,EAAQsY,CAAG,EAMtBqF,EAAAA,oBAAeA,CAAC74D,EAAGZ,EAAGs5D,IAAuB,CAC3C,KAAK2F,WAAa,GAClB,KAAKC,oBAAsB5F,EAE3B,KAAKT,gBAAgB,CACnBC,UAAW,KAAKgE,YAChB/D,QAAS,KAAKkE,UACdjE,SAAU,KAAKmG,WAChB,EAED,KAAK/B,WAAa,IAAIW,GAAkB,CAAEn9D,EAAGZ,CAAC,EAAI,KAAKO,EAAG,KAAK6zD,GAAG,IAGpEiJ,EAAAA,YAAOA,IAAM,CACX,KAAKjE,kBAEL,KAAK6F,WAAa,GAEd,KAAK7B,aACP,KAAKA,WAAW5gC,UAChB,KAAK4gC,WAAa,QAItBN,EAAAA,mBAAcA,CAACl8D,EAAGZ,IAChB,KAAKo9D,WAAW/I,OAAO,CAAEzzD,EAAGZ,CAAC,CAAE,GAEjCi9D,EAAAA,iBAAYA,IAAM,CAChB,KAAM,CAAExpD,MAAAA,EAAOF,OAAAA,GAAW,KAAK6pD,WAAWzI,wBAEpC8I,EAAW,KAAK3hB,OAAO4hB,mBAAqB,EAC5CzvB,EAAY,KAAK6N,OAAO6hB,oBAAsB,EAEhDlqD,GAASgqD,GAAYlqD,GAAU06B,EACjC,KAAKmvB,WAAWc,WACN,KAAKgB,sBACf,KAAKhG,KAAK,QAAQ,EAClB,KAAKmE,UAIT8B,EAAAA,kBAAaA,IAAM,CACjB,KAAKF,WAAa,GAElB,MAAMp4D,EAAQ,KAAKu2D,WAAWp/B,QAC9Bn3B,EAAM5B,WAAa,KAAKm4D,WAAWxI,cACnC,KAAKsE,KAAK,WAAYryD,CAAK,EAE3B,KAAKw2D,SAOP1D,EAAAA,2BAAsBA,CAAC10D,EAAY20D,IACjC,IAAI8E,GAAgBz5D,EAAY,KAAK1E,EAAG,CAAC,GAAG,KAAKu7C,OAAQ8d,WAAAA,GAAa,KAAKxF,GAAG,GA5D9E,KAAK6K,WAAa,GAClB,KAAKC,oBAAsB,GAsD7B,IAAIrF,WAAY,CACd,OAAO,KAAKoF,WAMhB,CAEAD,GAAsB1qD,WAAa,UAEnC0qD,GAAsBlF,SAAW70D,GAAc,OAC7C,MAAME,EAAWF,EAAWE,SAAS,aAAa,EAClD,GAAIA,EACF,OAAOA,EAAAA,EAASG,QAATH,YAAAA,EAAgBsgB,MAAM,mBACjC,EC9Ee,MAAM25C,WAAqBtI,EAAa,CAErD7C,YAAY1zD,EAAGu7C,EAAQsY,EAAK,CAC1B,QAoBFiL,EAAAA,iBAAYA,IACV,KAAKC,YAAY15D,IAAI25D,GAAQA,EAAKjrD,UAAU,GAE9CkrD,EAAAA,oBAAeD,GAAQ,CAErB,MAAM50B,EAAK40B,EAAKjrD,WACZ,KAAK+qD,YAAY75D,SAASmlC,CAAE,GAC9B,KAAK80B,eAAe90B,CAAE,EAExB,KAAK20B,YAAYI,QAAQH,CAAI,IAG/BE,EAAAA,sBAAiB90B,GACf,KAAK20B,YAAc,KAAKA,YAAYK,OAAOJ,GAAQA,EAAKjrD,aAAeq2B,CAAE,GAM3Ei1B,EAAAA,kBAAaC,GAAY,CACnB,KAAKC,UACP,KAAKA,SAAStjC,UAEhB,MAAMo8B,EAAQ,OAAOiH,GAAa,UAAYA,aAAoBlF,OAChE,KAAK2E,YAAYxyD,KAAKyyD,GAAQA,EAAKjrD,aAAeurD,CAAQ,EAC1DA,EAEF,KAAKC,SAAW,IAAIlH,EAAK,KAAKmH,GAAI,KAAKC,QAAS,KAAKC,IAAI,EACzD,KAAKH,SAASj9D,GAAG,iBAAkBo4B,GAAM,KAAKi+B,KAAK,iBAAkBj+B,CAAE,CAAC,EACxE,KAAK6kC,SAASj9D,GAAG,WAAY6Q,GAAO,KAAKwlD,KAAK,WAAYxlD,CAAG,CAAC,EAC9D,KAAKosD,SAASj9D,GAAG,SAAU6Q,GAAO,KAAKwlD,KAAK,SAAUxlD,CAAG,CAAC,IAG5DwsD,EAAAA,qBAAgBj7D,GAAc,OAE5B,KAAM,CAAE4N,KAAW1S,CAAC,EAAK8E,EAAWoI,QAC9B8yD,GAActtD,EAAAA,EAAOstD,cAAPttD,YAAAA,EAAoB5P,KAElC21D,EAAOuH,EACX,KAAKb,YAAYxyD,KAAKyyD,GAAQA,EAAKjrD,aAAe6rD,CAAW,EAC7D,KAAKb,YAAYxyD,KAAKyyD,GAAQA,EAAKzF,SAAS70D,CAAU,CAAC,EAEzD,OAAO2zD,EAAO,IAAIA,EAAK,KAAKmH,GAAI,KAAKC,QAAS,KAAKC,IAAI,EAAI,OA3D3D,KAAKF,GAAKx/D,EAGV,KAAKy/D,QAAUlkB,EAGf,KAAKmkB,KAAO7L,EAGZ,KAAKkL,YAAc,CACjBnC,GACA6B,EAAqB,EAGvB,KAAKY,WAAWzC,EAAkB,EAgDpC,IAAI53B,SAAU,CACZ,OAAO,KAAKu6B,SAGhB,CC1Ee,MAAMM,EAAU,CAE7BnM,YAAYoM,EAAY5sD,EAAOF,EAAQ,CACrC,KAAK2jD,IAAMmJ,EAAW7H,QAAQ,KAAK,EAEnC,KAAKj4D,EAAI2G,SAASC,gBAAgBxD,EAAe,GAAG,EACpD,KAAKpD,EAAE+D,aAAa,QAAS,eAAe,EAE5C,MAAMzE,EAAIqH,SAASC,gBAAgBxD,EAAe,MAAM,EAClD7D,EAAIoH,SAASC,gBAAgBxD,EAAe,MAAM,EAExD,KAAKpD,EAAEqH,YAAY/H,CAAC,EACpB,KAAKU,EAAEqH,YAAY9H,CAAC,EAEpBugE,EAAWz4D,YAAY,KAAKrH,CAAC,EAE7B,MAAMg3D,EAAc7jD,GAAO,CACzB,MAAMghD,EAAO,KAAKwC,IAAIvC,wBAEhB/zD,EAAI8S,EAAIoiD,QAAUpB,EAAK9zD,EACvBZ,EAAI0T,EAAIqiD,QAAUrB,EAAK10D,EAEvBi7B,EAAK,KAAKi8B,IAAIM,iBAEd,CAAEjH,KAAAA,EAAMlkB,IAAAA,GAAQ,KAAK6qB,IAAIvC,wBAC/B15B,OAAAA,EAAGr6B,EAAIA,EAAI2vD,EACXt1B,EAAGj7B,EAAIA,EAAIqsC,EAEJpR,EAAGw8B,gBAAgB4I,EAAW3I,eAAeC,SAAS,GAG/D,KAAKT,IAAIoJ,cAAc5J,iBAAiB,cAAehjD,GAAO,CAC5D,KAAM,CAAE9S,EAAAA,EAAGZ,EAAAA,GAAMu3D,EAAY7jD,CAAG,EAEhC7T,EAAEyE,aAAa,KAAM,CAAC,EACtBzE,EAAEyE,aAAa,KAAMtE,CAAC,EACtBH,EAAEyE,aAAa,KAAMmP,CAAK,EAC1B5T,EAAEyE,aAAa,KAAMtE,CAAC,EAEtBF,EAAEwE,aAAa,KAAM1D,CAAC,EACtBd,EAAEwE,aAAa,KAAM,CAAC,EACtBxE,EAAEwE,aAAa,KAAM1D,CAAC,EACtBd,EAAEwE,aAAa,KAAMiP,CAAM,EAC5B,EAGL,CC9CO,MAAMgtD,GAAaA,CAACr7D,EAAO84B,IAAY,CAI5C,MAAMh2B,GAHQlD,GAASk5B,EAAS,iBAAiB,EAC/CA,EAAUA,EAAQw6B,QAAQ,iBAAiB,GAEzBvwD,cAAc,YAAY,EAExCu4D,EAAKt7D,EAAMa,aAAeb,EAAMuO,MAChCgtD,EAAKv7D,EAAMc,cAAgBd,EAAMqO,OAEjCmtD,EAAcx7D,EAAMyvD,wBACpBgM,EAAc34D,EAAM2sD,wBAEpB/zD,EAAI+/D,EAAY//D,EAAI8/D,EAAY9/D,EAChCZ,EAAI2gE,EAAY3gE,EAAI0gE,EAAY1gE,EAChC,CAAEyT,MAAAA,EAAOF,OAAAA,GAAWotD,EAGpBC,EAAU15D,SAAS25D,cAAc,QAAQ,EACzC19D,EAAMy9D,EAAQE,WAAW,IAAI,EACnCF,OAAAA,EAAQntD,MAAQA,EAAQ+sD,EACxBI,EAAQrtD,OAASA,EAASktD,EAC1Bt9D,EAAI49D,UAAU77D,EAAOtE,EAAI4/D,EAAIxgE,EAAIygE,EAAIhtD,EAAQ+sD,EAAIjtD,EAASktD,EAAI,EAAG,EAAGhtD,EAAQ+sD,EAAIjtD,EAASktD,CAAE,EAEpF,CACLG,QAAAA,EACAI,UAAWn4D,GAAM,CACf,MAAMvC,EAAK1F,EAAI4/D,EAAK33D,EAAG,GACjBtC,EAAKvG,EAAIygE,EAAK53D,EAAG,GACvB,MAAO,CAAEvC,EAAIC,CAAE,GAGrB,ECxBMqwD,GAAUtY,KAED,MAAM2iB,WAAwBnK,EAAa,CAExD7C,YAAYjmD,EAAO,CACjB,QA8FFkzD,EAAAA,6BAAwBA,CAACpQ,EAAM7rD,IAAe,CAC5C6rD,EAAK4F,iBAAiB,aAAc,IAAM,UACnC54B,GAAA5d,EAAA,KAAKihD,QAAL,YAAAjhD,EAAYqlB,UAAZ,MAAAzH,EAAqB+7B,YACpB,KAAKuH,eAAiBtQ,GACxB,KAAKoI,KAAK,uBAAwBj0D,EAAY6rD,CAAI,EAEpD,KAAKsQ,aAAetQ,GAEvB,EAEDA,EAAK4F,iBAAiB,aAAc,IAAM,UACnC54B,GAAA5d,EAAA,KAAKihD,QAAL,YAAAjhD,EAAYqlB,UAAZ,MAAAzH,EAAqB+7B,YACxB,KAAKX,KAAK,uBAAwBj0D,EAAY6rD,CAAI,EAClD,KAAKsQ,aAAe,MAEvB,EAEGxK,KACF9F,EAAK4F,iBAAiB,aAAchjD,GAAO,CACzCA,EAAI2tD,kBACJ,KAAKD,aAAetQ,EACrB,EAEDA,EAAK4F,iBAAiB,WAAYhjD,GAAO,CACvC,KAAM,CAAEoiD,QAAAA,EAASC,QAAAA,GAAYriD,EAAI0iD,eAAe,GAC1CkL,EAAap6D,SAASq6D,iBAAiBzL,EAASC,CAAO,EAC7DriD,EAAI2tD,kBAEAvQ,EAAK0Q,SAASF,CAAU,IAC1B,KAAKF,aAAetQ,EACpB,KAAK2Q,sBAER,KAQLC,EAAAA,aAAQ1+D,GAAM,CACR,KAAK2+D,QAAQ57D,aAChB/C,IAEC,KAAK2+D,QAAQjL,iBAAiB,OAAQ,IAAM1zD,GAAI,IAGpD4+D,EAAAA,oBAAeluD,GAAO,SAChBA,EAAIylD,SAAW,IAEb,KAAK0I,UAAY,KAAKC,eAAiB,KAAKX,MAAM57B,QAAQs0B,UAGrD,GAAC/7B,GAAA5d,EAAA,KAAKihD,QAAL,YAAAjhD,EAAYqlB,UAAZ,MAAAzH,EAAqB+7B,YAAa,KAAKiI,gBAAkB,KAAKV,cAExE,KAAKK,qBAHL,KAAKN,MAAM57B,QAAQuH,MAAMp5B,EAAK,KAAKquD,mBAAqB,CAAC,KAAKX,YAAY,KAO9EY,EAAAA,qCAAgCA,IAAM,CACpC,MAAMpuD,EAAQ,KAAKquD,kBAIfruD,IAAUsuD,KAGd39D,MAAMC,KAAK,KAAK0yD,IAAI7rD,iBAAiB,kBAAkB,CAAC,EAAEN,QAAQlE,GAAS,CACzEA,EAAMvC,aAAa,YAAc,SAAQsP,IAAQ,EAClD,IAGHuuD,EAAAA,+BAA0BC,GAAa,CACrC,MAAMxuD,EAAQ,KAAKquD,kBAEnB,GAAIruD,IAAUsuD,IAGd,GAAIE,EAAW,CACb,MAAMv+D,EAAKu+D,EAAUn6D,cAAc,mBAAmB,EAClDpE,GACFA,EAAG+H,WAAWtH,aAAa,YAAc,SAAQsP,IAAQ,OAE1CrP,MAAMC,KAAK,KAAKjE,EAAE8K,iBAAiB,mBAAmB,CAAC,EAC/DN,QAAQlH,GACfA,EAAG+H,WAAWtH,aAAa,YAAc,SAAQsP,IAAQ,CAAC,IAIhEyuD,EAAAA,qBAAgBp9D,GAAc,CAC5B,MAAM1E,EAAIgN,GAAUtI,EAAY,KAAK08D,OAAO,EAE5Cz9D,OAAAA,GAAS3D,EAAG,gBAAgB,EAC5BA,EAAE+D,aAAa,UAAWW,EAAW0lC,EAAE,EAEvCpqC,EAAE0E,WAAaA,EAEf,KAAKi8D,sBAAsB3gE,EAAG0E,CAAU,EACxC,KAAK1E,EAAEqH,YAAYrH,CAAC,EAEpBgF,GAAOhF,EAAG0E,EAAY,KAAK20D,UAAU,EACrC,KAAKuI,wBAAwB5hE,CAAC,EAEvBA,IAGT+hE,EAAAA,sBAAiBC,UACf,OAAAriD,EAAA,KAAKihD,QAAL,YAAAjhD,EAAYs/C,aAAa+C,KAE3BC,EAAAA,6BAAwBA,CAACv9D,EAAY68B,IAAa,CAC5C,KAAKggC,gBAAkB,KAAKA,cAAc78D,WAAW4yC,QAAQ5yC,CAAU,GAAK,KAAK68D,cAAc78D,WAAW4yC,QAAQ/V,CAAQ,KAC5H,KAAK2gC,WACL,KAAKvJ,KAAK,SAAU,EAAE,GAGpBp3B,GACF,KAAK4gC,iBAAiB5gC,CAAQ,EAEhC,KAAK4gC,iBAAiBz9D,CAAU,EAEhC,MAAM4B,EAAQ,KAAKw7D,cAAcp9D,CAAU,EAGvCH,GAAS+B,EAAO,iBAAiB,GACnCA,EAAMvC,aAAa,YAAc,SAAQ,KAAK29D,oBAAoB,EAGpE,KAAKnE,WAGP2E,EAAAA,gBAAWE,GAAc,OACvB,GAAI,KAAKb,cAAe,EACtB5hD,EAAA,KAAKihD,QAAL,MAAAjhD,EAAYqlB,QAAQ83B,OAEpB,KAAM,CAAEp4D,WAAAA,GAAe,KAAK68D,cAExB,KAAKA,cAActlC,SAErB,KAAKslC,cAActlC,UACnB,KAAKslC,cAAgB,KAEhB78D,EAAW29D,cACd,KAAKP,cAAcp9D,CAAU,EAExB09D,GACH,KAAK7E,YAITp5D,GAAY,KAAKo9D,cAAe,UAAU,EAC1C,KAAKA,cAAgB,SAK3BtlC,EAAAA,eAAUA,IAAM,CACd,KAAKimC,WACL,KAAKrB,aAAe,KACpB,KAAKlK,IAAI/rD,WAAWC,YAAY,KAAK8rD,GAAG,IAG1C2L,EAAAA,iBAAYC,GAAkB,CAC5B,MAAMn4B,EAAKm4B,GAAAA,MAAAA,EAAgBn4B,GAAKm4B,EAAen4B,GAAKm4B,EACpD,OAAO,KAAKviE,EAAE0H,cAAe,4BAA2B0iC,KAAM,IAGhEo4B,EAAAA,sBAAiBA,IACAx+D,MAAMC,KAAK,KAAKjE,EAAE8K,iBAAiB,iBAAiB,CAAC,EACtDzF,IAAIjG,GAAKA,EAAEsF,UAAU,GAGrCg9D,EAAAA,uBAAkBA,IAAM,CACtB,MAAMhL,EAAY,KAAKC,IAAIvC,wBACrB,CAAElhD,MAAAA,EAAOF,OAAAA,GAAW,KAAK2jD,IAAIC,QAAQC,QAE3C,OAAO1uD,KAAKqsD,IACVthD,EAAQwjD,EAAUxjD,MAClBF,EAAS0jD,EAAU1jD,MACrB,IAGFyvD,EAAAA,+BAA0BA,IAAM,CAC9B,GAAI,KAAKlB,cAAe,CACtB,MAAM9jC,EAAU,KAAK8jC,cAAc9jC,SAAW,KAAK8jC,cACnD,OAAOvB,GAAW,KAAKoB,QAAS3jC,CAAO,KAI3CnC,EAAAA,YAAOonC,GAAe,CAEpB,KAAKR,WACL,KAAKrB,aAAe,KAEL78D,MAAMC,KAAK,KAAKjE,EAAE8K,iBAAiB,iBAAiB,CAAC,EAC7DN,QAAQpL,GAAK,KAAKY,EAAE6K,YAAYzL,CAAC,CAAC,EAGzC,KAAK+hE,MAAM,IAAM,CACfuB,EAAYC,KAAK,CAACtjE,EAAGS,IAAMmN,GAAUnN,EAAG,KAAKshE,OAAO,EAAIn0D,GAAU5N,EAAG,KAAK+hE,OAAO,CAAC,EAClFsB,EAAYl4D,QAAQ,KAAKs3D,aAAa,EACvC,EAGD,KAAKL,kCAGPmB,EAAAA,wBAAmBA,WACjB,OAAAjjD,EAAA,KAAKihD,QAAL,YAAAjhD,EAAYm/C,cAMd+D,EAAAA,kBAAaA,CAACC,EAAYC,IAAa,CAErC,MAAMz8D,EAAQ,KAAKg8D,UAAUQ,CAAU,EACvCx8D,EAAMvC,aAAa,UAAWg/D,CAAQ,EAGtC,KAAM,CAAEr+D,WAAAA,GAAe4B,EAEjBwjD,EAAUplD,EAAWs+D,MAAM,CAAE54B,GAAK24B,EAAU,EAClDz8D,OAAAA,EAAM5B,WAAaolD,EAEZA,IAOTyT,EAAAA,cAASA,IAAM,CACb,MAAM0F,EAASj/D,MAAMC,KAAK,KAAKjE,EAAE8K,iBAAiB,gCAAgC,CAAC,EAE7E43D,EAAcO,EAAO59D,IAAIjG,GAAKA,EAAEsF,UAAU,EAChDg+D,EAAYC,KAAK,CAACtjE,EAAGS,IAAMmN,GAAUnN,EAAG,KAAKshE,OAAO,EAAIn0D,GAAU5N,EAAG,KAAK+hE,OAAO,CAAC,EAGlF6B,EAAOz4D,QAAQpL,GAAK,KAAKY,EAAE6K,YAAYzL,CAAC,CAAC,EAGzCsjE,EAAYl4D,QAAQ,KAAKs3D,aAAa,IAGxCK,EAAAA,wBAAmBI,GAAkB,WAEnC,MAAMn4B,EAAKm4B,EAAe18D,KAAO08D,EAAen4B,GAAKm4B,IAEjD5iD,EAAA,KAAK4hD,gBAAL,YAAA5hD,EAAoBjb,WAAW0lC,MAAOA,GACxC,KAAK83B,WAEP,MAAMpR,EAAW,KAAKwR,UAAUC,CAAc,EAE1CzR,MACEvzB,EAAA,KAAKgkC,gBAAL,YAAAhkC,EAAoB74B,cAAeosD,EAASpsD,YAC9C,KAAKw9D,aAEHgB,EAAA,KAAKrC,eAAL,YAAAqC,EAAmBx+D,cAAeosD,EAASpsD,aAC7C,KAAKm8D,aAAe,MAEtB/P,EAASlmD,WAAWC,YAAYimD,CAAQ,KAI5CqS,EAAAA,yBAAoB/4B,UAClB,OAAAzqB,EAAA,KAAKihD,QAAL,YAAAjhD,EAAYu/C,eAAe90B,KAM7Bg5B,EAAAA,wBAAmBA,CAACb,EAAgBc,IAAc,CAE5C,KAAK9B,eACP,KAAKW,WAEP,MAAM9nB,EAAW,KAAKkoB,UAAUC,CAAc,EAE9C,GAAInoB,EAAU,CACZ,KAAKkpB,YAAYlpB,EAAUipB,CAAS,EAEpC,MAAM5lC,EAAU,KAAK8jC,cAAc9jC,QACjC,KAAK8jC,cAAc9jC,QAAU,KAAK8jC,cAEpC,MAAO,CAAE78D,WAAY01C,EAAS11C,WAAY+4B,QAAAA,QAE1C,KAAKykC,aAIThB,EAAAA,0BAAqBA,IAAM,CACrB,KAAKL,aACH,KAAK0C,cAEP,KAAK5K,KAAK,kBAAmB,KAAKkI,aAAan8D,WAAY,KAAKm8D,YAAY,EAE5E,KAAKyC,YAAY,KAAKzC,YAAY,GAGpC,KAAKqB,WACL,KAAKvJ,KAAK,SAAU,CAAE0K,UAAW,GAAM,KAI3CC,EAAAA,mBAAcA,CAACh9D,EAAO+8D,IAAc,OAKlC,GAJI,CAACA,GAAa,CAAC/8D,EAAM5B,WAAW29D,aAClC,KAAK1J,KAAK,kBAAmBryD,EAAM5B,WAAY4B,CAAK,IAGlDqZ,EAAA,KAAK4hD,gBAAL,YAAA5hD,EAAoBjb,cAAe4B,EAAM5B,WAC3C,OAGE,KAAK68D,eAAiB,KAAKA,cAAc78D,aAAe4B,EAAM5B,YAChE,KAAKw9D,SAAS,EAAI,EAGpB,KAAM,CAAEx9D,WAAAA,GAAe4B,EAIvB,GAFiB,KAAKg7D,UAAY58D,EAAW48D,SAwC3C39D,GAAS2C,EAAO,UAAU,EAC1B,KAAKi7D,cAAgBj7D,EAEhB+8D,GACH,KAAK1K,KAAK,SAAU,CAAEj0D,WAAAA,EAAY+4B,QAASn3B,EAAO+8D,UAAAA,EAAW,MA1ClD,CACb,MAAMG,EAAoB,KAAK5C,MAAMjB,cAAcj7D,CAAU,EAGzD8+D,GACFl9D,EAAMsE,WAAWC,YAAYvE,CAAK,EAClC,KAAKi7D,cAAgBiC,EAAkBpK,oBAAoB10D,EAAY,KAAK20D,UAAU,EAGtF,KAAKkI,cAAc9jC,QAAQ/4B,WAAaA,EAExC,KAAKk9D,wBAAwB,KAAKL,cAAc9jC,OAAO,EAEvD,KAAK8jC,cAAcj/D,GAAG,SAAUmhE,GAAY,CACtC,KAAKlC,eACP,KAAK5I,KAAK,eAAgB,KAAK4I,cAAc9jC,QAASgmC,CAAQ,EACjE,EAIDvN,WAAW,IAAM,OACX,KAAKqL,eACP,KAAKZ,sBAAsB,KAAKY,cAAc9jC,QAAS/4B,CAAU,EAM9D2+D,IACH,KAAKxC,cAAelhD,EAAA,KAAK4hD,gBAAL,YAAA5hD,EAAoB8d,UACzC,CAAC,GAEJ,KAAK8jC,cAAgBj7D,EAGlB+8D,GACH,KAAK1K,KAAK,SAAU,CAAEj0D,WAAAA,EAAY+4B,QAAS,KAAK8jC,cAAc9jC,SAAW,KAAK8jC,cAAe,KAUnGmC,EAAAA,sBAAiBp9D,GAAS,OACpB,KAAKs6D,SACPjhD,EAAA,KAAKihD,MAAM57B,UAAX,MAAArlB,EAAoBm9C,OACpB,KAAK8D,MAAMvB,WAAW/4D,CAAK,KAI/Bq9D,EAAAA,kBAAaC,GAAW,CAClBA,EACF,KAAKjN,IAAIpnD,MAAM0kD,QAAU,MAEzB,KAAKiO,WACL,KAAKvL,IAAIpnD,MAAM0kD,QAAU,UAI7B4P,EAAAA,mBAAcA,IAAM,UAClBtmC,GAAA5d,EAAA,KAAKihD,QAAL,YAAAjhD,EAAYqlB,UAAZ,MAAAzH,EAAqBu/B,SA5drB,KAAM,CAAEnN,UAAAA,EAAWpU,OAAAA,EAAQsY,IAAAA,GAAQpmD,EAEnC,KAAK2zD,QAAUvN,EAAIlvD,MAEnB,KAAK28D,SAAW/lB,EAAO+lB,SAGnB/lB,EAAOuoB,UACT,KAAKzK,WAAa,CAAE9d,EAAOuoB,SAAS,EAC7BvoB,EAAO8d,aACd,KAAKA,WAAar1D,MAAM+I,QAAQwuC,EAAO8d,UAAU,EAAI9d,EAAO8d,WAAa,CAAE9d,EAAO8d,UAAU,GAE9F,KAAKkK,cAAgBhoB,EAAOgoB,cAC5B,KAAK/B,kBAAoBjmB,EAAOimB,kBAGhC,KAAK7K,IAAMhwD,SAASC,gBAAgBxD,EAAe,KAAK,EACxD,KAAKuzD,IAAI5yD,aAAa,WAAY,CAAC,EAE/BsyD,IACF,KAAKM,IAAI5yD,aAAa,QAAS,2BAA2B,EAG1DkxD,GAAuB,KAAK0B,GAAG,EAG/B,KAAKA,IAAIR,iBAAiB,aAAc,IAAM,CAC5C,KAAK0K,aAAe,KACpB,KAAKK,qBACN,GAED,KAAKvK,IAAI5yD,aAAa,QAAS,qBAAqB,EAGtD,KAAM,CAAEyB,aAAAA,EAAcC,cAAAA,GAAkB,KAAK27D,QAE7C,GAAI,CAAC57D,GAAgB,CAACC,EAAe,CAGnC,KAAM,CAAEyN,MAAAA,EAAOF,OAAAA,GAAW,KAAKouD,QAC/B,KAAKzK,IAAI5yD,aAAa,UAAY,OAAMmP,KAASF,GAAQ,EAGtD,KAAKouD,QAAQz5D,SAASpC,gBAAkB,QACzC,KAAK67D,QAAQ57D,aAAe0N,EAC5B,KAAKkuD,QAAQ37D,cAAgBuN,GAG/B,KAAKouD,QAAQjL,iBAAiB,OAAQ,IAAM,CAC1C,KAAKwC,KAAK,OAAQ,KAAKyI,QAAQx7D,GAAG,EAClC,KAAK+wD,IAAI5yD,aAAa,UAAY,OAAM,KAAKq9D,QAAQ57D,gBAAgB,KAAK47D,QAAQ37D,eAAe,EAClG,OAED,KAAKkxD,IAAI5yD,aAAa,UAAY,OAAMyB,KAAgBC,GAAe,EAIzE,KAAKzF,EAAI2G,SAASC,gBAAgBxD,EAAe,GAAG,EAEpD,KAAKuzD,IAAItvD,YAAY,KAAKrH,CAAC,EAC3B2vD,EAAUtoD,YAAY,KAAKsvD,GAAG,EAE1Bpb,EAAOwoB,YACT,KAAKA,UAAY,IAAIlE,GAAU,KAAK7/D,EAAGwF,EAAcC,CAAa,EAClE9B,GAAS,KAAKgzD,IAAK,WAAW,GAGhC,KAAK4K,cAAgB,KAErB,KAAKX,MAAQ,IAAIoD,GAAa,KAAKhkE,EAAGu7C,EAAQsY,CAAG,EACjD,KAAK+M,MAAMt+D,GAAG,iBAAkBo4B,GAAM,KAAKi+B,KAAK,iBAAkBj+B,CAAE,CAAC,EACrE,KAAKkmC,MAAMt+D,GAAG,SAAU,KAAK4+D,kBAAkB,EAC/C,KAAKN,MAAMt+D,GAAG,WAAY,KAAKghE,WAAW,EAE1C,KAAK3M,IAAIR,iBAAiB,YAAa,KAAKkL,YAAY,EAExD,KAAKR,aAAe,KAGhBhM,OAAO4B,iBACT,KAAKhG,eAAiB,IAAIgG,eAAe,IAAM,CAE7C,KAAKgL,gCAGL,KAAKG,0BACN,EAED,KAAKnR,eAAesG,QAAQ,KAAKJ,IAAI/rD,UAAU,GAuYrD,WC/egF5L,GAAE,EAAE,SAASE,GAAEU,EAAE,EAAE,EAAEd,EAAEG,EAAE,CAAC,IAAIL,EAAEQ,EAAEP,EAAE,GAAG,IAAIO,KAAK,EAASA,GAAP,MAASR,EAAE,EAAEQ,GAAGP,EAAEO,GAAG,EAAEA,GAAG,IAAIC,EAAE,CAAC,KAAKO,EAAE,MAAMf,EAAE,IAAI,EAAE,IAAID,EAAE,IAAI,KAAK,GAAG,KAAK,IAAI,EAAE,IAAI,KAAK,IAAI,OAAO,IAAI,KAAK,IAAI,KAAK,YAAY,OAAO,IAAI,EAAEI,GAAE,SAASF,EAAE,OAAOG,CAAC,EAAE,GAAe,OAAOW,GAAnB,aAAuBhB,EAAEgB,EAAE,cAAc,IAAIR,KAAKR,EAAWC,EAAEO,KAAX,SAAgBP,EAAEO,GAAGR,EAAEQ,IAAI,OAAOL,EAAE,OAAOA,EAAE,MAAMM,CAAC,EAAEA,CAAC,OCOpY4kE,WAAuBrmC,CAAW,CAErD81B,YAAYjmD,EAAO,OACXA,CAAK,EA0Bby2D,EAAAA,qBAA6B,KAAKC,SAAS,CACzCC,mBAAoB,KACpBC,mBAAoB,KACpBC,eAAgB,KAChBC,qBAAsB,MACrBC,CAAY,GAoBfC,EAAAA,oBAAeA,CAACxgE,EAAMooC,IAAO,MACtBq4B,gBAAgBpiE,GAAG2B,EAAM,CAACS,EAAY6rD,IAAS,MAC7C9iD,MAAM4+B,GAAI3nC,EAAWs+D,QAASzS,CAAI,EACxC,IAQHoU,EAAAA,kBAAiB,IACXxxD,EAAIyxD,QAAU,GAAI,MACfF,gBAAgBb,mBAEf,CAAEO,mBAAAA,GAAuB,KAAKzuD,MAChCyuD,SACGS,sBACAp3D,MAAMq3D,iBAAiBV,CAAkB,WAEvCjxD,EAAIyxD,QAAU,GAAI,MACrB,CAAEG,iBAAAA,GAAqB,KAAKt3D,MAAM8tC,UAEpC,CAACwpB,EAAkB,MACf,CAAEX,mBAAAA,GAAuB,KAAKzuD,MAChCyuD,IACEA,EAAmB/B,iBAChB2C,mBAAmBZ,CAAkB,OAErCa,mBAAmBb,CAAkB,OAOpDc,EAAAA,4BACE,KAAKz3D,MAAM03D,mBAAmBzqC,CAAE,GAElC0qC,EAAAA,oBAAeA,CAACjyD,EAAKkwD,IAAc,MAC5B1tD,MAAM0vD,eACT,KAAKC,iBAAiBnyD,EAAKkwD,CAAS,EAAI,KAAKkC,eAAepyD,EAAKkwD,CAAS,IAI9EkC,EAAAA,sBAAiBA,CAACpyD,EAAKkwD,IAAc,MAC7B,CAAE3+D,WAAAA,EAAY+4B,QAAAA,GAAYtqB,KAE5BzO,EAAY,OAKR8gE,KAAyB,MACxBrB,SAAS,CACZC,mBAAoB1/D,EACpB2/D,mBAAoB5mC,EACpB6mC,eAAgB,KAChBC,qBAAsB,MACrB,IAAM,CACFlB,IACC3+D,EAAW29D,iBACR50D,MAAMg4D,mBAAmB/gE,EAAWs+D,OAAO,OAE3Cv1D,MAAMi4D,qBAAqBhhE,EAAWs+D,QAASvlC,CAAO,MAI/C+mC,IACjB,GAKG,CAAEJ,mBAAAA,GAAuB,KAAKzuD,MAEhCyuD,GAAsB,CAACA,EAAmB9sB,QAAQ5yC,CAAU,OACzDw/D,WAAW,IAAM,MACfz2D,MAAMq3D,iBAAiBV,EAAmBpB,OAAO,IAC/C,IACL,KAAKv1D,MAAMk4D,iBAAiBjhE,EAAWs+D,QAASoB,EAAmBpB,OAAO,CAAC,EAC9E,UAIE,MACC,CAAEoB,mBAAAA,GAAuB,KAAKzuD,MAEhCyuD,OACGF,WAAW,IAAM,MACfz2D,MAAMq3D,iBAAiBV,CAAkB,EAC/C,OAEIF,gBAKXoB,EAAAA,wBAAmBA,CAACnyD,EAAKkwD,IAAc,MAIhCuC,eAAeC,KAAK,IAAM,MACxBN,eAAepyD,EAAKkwD,CAAS,OAG5B,CAAE3+D,WAAAA,GAAeyO,KAEnBzO,GAAc,CAACA,EAAW29D,YAAa,OACnCpuD,EAAY,KAAKywD,gBAAgBtB,iBAAiBjwD,EAAIzO,WAAY,EAAI,OACvEy/D,SAAS,CAAEE,mBAAoBpwD,EAAUwpB,QAAS,GAE1D,IAGHqoC,EAAAA,0BAAqBA,CAACzB,EAAoBC,IAAmB,MACtDH,SAAS,CAAEE,mBAAAA,EAAoBC,eAAAA,EAAgB,QAE9CtB,EAAQ+C,KAAKhlC,MAAMglC,KAAK7jC,UAAUoiC,CAAc,CAAC,OAClD72D,MAAMu4D,yBAAyBhD,CAAK,IAO3CiD,EAAAA,kCAAyD,MACjD,CAAE77B,GAAAA,GAAO87B,EAGX,KAAKvwD,MAAMyuD,wBACRF,WAAW,IAAM,MACfQ,gBAAgB7B,WAAWz4B,EAAI24B,CAAQ,EAC7C,OAEI2B,gBAAgB7B,WAAWz4B,EAAI24B,CAAQ,IAShDoD,EAAAA,kCAA6BA,CAAC1zD,EAAQ+xD,IAAiB,CAAC9/D,EAAY68B,IAAa,KAE3EliC,EAAIqF,EAAW29D,YAAc39D,EAAW0hE,eAAiB1hE,IAExD,KAAKiR,MAAM2uD,eACdjlE,EAAE2jE,MAAM,CAAE1wD,OAAQ,KAAKqD,MAAM2uD,eAAgB,EAAIjlE,EAAE2jE,aAEhDkB,WAAW,IAAM,MACfQ,gBAAgBxC,gBAChBwC,gBAAgBzC,sBAAsB5iE,EAAGkiC,CAAQ,EAGlDA,OACG9zB,MAAMgF,GAAQpT,EAAGkiC,EAASyhC,OAAO,OAEjCv1D,MAAMgF,GAAQpT,EAAG,KAAK4mE,qBAAqB5mE,CAAC,CAAC,KAEpCmlE,IACjB,IAGHS,EAAAA,6BAAmC,MAC5Bf,kBACAQ,gBAAgBvC,iBAAiBz9D,CAAU,OAC3C+I,MAAM44D,oBAAoB3hE,CAAU,IAG3CsgE,EAAAA,0BAAqBA,CAACtgE,EAAY8/D,IAAiB,MAC5CE,gBAAgBxC,gBAChBz0D,MAAMq3D,iBAAiBpgE,CAAU,OACjCw/D,WAAWM,CAAY,IAO9B1C,EAAAA,wBACE,KAAK4C,gBAAgBzC,sBAAsBv9D,EAAWs+D,OAAO,GAE/DjB,EAAAA,yBACE,KAAK2C,gBAAgB3C,eAAeC,CAAM,GAG5C6C,EAAAA,sBAAiBA,IAAM,IAAIyB,WAAmB,MACvC5B,gBAAgBxC,WAEjB,KAAKvsD,MAAMyuD,wBAERF,WAAWqC,CAAO,MAK1B,GA2BDC,EAAAA,mCACE,OAAA7mD,EAAA,KAAK+kD,gBAAgBpC,UAAUmE,CAAY,IAA3C,YAAA9mD,EAA8Cjb,aAEhD89D,EAAAA,sBAAiBA,IACf,KAAKkC,gBAAgBlC,iBAAiBn9D,OAAShG,EAAE2jE,OAAO,GAE1D0D,EAAAA,8BAAsC,OAC9BpgE,EAAQ,KAAKo+D,gBAAgBpC,UAAUmE,CAAY,KACrDngE,SACK05D,GAAW,KAAKvyD,MAAMomD,IAAIlvD,MAAO2B,CAAK,IAGjDqgE,EAAAA,mBAAcA,IAAM,UACd,KAAKhxD,MAAMyuD,0BACN,KAAKzuD,MAAM0vD,eAChB,KAAK1vD,MAAMyuD,oBACXzkD,EAAA,KAAKinD,QAAQ5hC,UAAb,YAAArlB,EAAsBknD,yBAI5BpE,EAAAA,+BAA0BA,IACxB,KAAKiC,gBAAgBjC,2BAEvBG,EAAAA,wBAAmBA,IACjB,KAAK8B,gBAAgB9B,oBAWvBT,EAAAA,2BAAqC,MAC9BuC,gBAAgBvC,iBAAiBI,CAAc,EAChD,KAAK5sD,MAAMyuD,yBACRD,SAAS,CAAEC,mBAAoB,KAAM,IAG9CjB,EAAAA,4BACE,KAAKuB,gBAAgBvB,kBAAkB/4B,CAAE,GAE3Cw7B,EAAAA,oBAAeA,IACb,IAAIU,WAAmB,OACfjnE,EAAI,KAAKsW,MAAMyuD,sBAEjB/kE,KACE,KAAKunE,QAAQ5hC,aACV4hC,QAAQ5hC,QAAQ8hC,mBAEZznE,EAAEgjE,YACPhjE,EAAEszD,OAAOzqD,OAAS,GAAK,KAAKuF,MAAM8tC,OAAOwrB,gBACtCZ,2BAA2B,sBAAuBI,CAAO,EAAElnE,CAAC,QAE5DqlE,gBAAgBxC,oBAGlB,MAEC,CAAEqC,qBAAAA,EAAsBD,eAAAA,GAAmB,KAAK3uD,MAElD4uD,OAEG4B,2BAA2B,sBAAuBI,CAAO,EAAElnE,EAAGklE,CAAoB,EAC9ED,OAEJ6B,2BAA2B,sBAAuBI,CAAO,EAAElnE,EAAGA,CAAC,OAE/D2lE,mBAAmB3lE,EAAGknE,CAAO,WAMzC,GAEHnD,EAAAA,2BAA0B,OAClBhpB,EAAW,KAAKsqB,gBAAgBtB,iBAAiB7gC,EAAK,EAAI,KAE5D6X,cACGgrB,aAAahrB,EAAU,EAAI,EACzBA,EAAS11C,WAAWs+D,aAEtBkB,eAIT8C,EAAAA,yBACE,KAAKtC,gBAAgBppC,KAAKonC,EAAYr9D,OAAShG,EAAE2jE,OAAO,CAAC,GAE3DU,EAAAA,yBACE,KAAKgB,gBAAgBhB,eAAep9D,CAAK,GAE3Cq9D,EAAAA,qBAAwB,MACjBe,gBAAgBf,WAAWC,CAAO,EAElCA,QACEM,eAGT+C,EAAAA,sBAAiBA,CAACviE,EAAYkqD,IAC5B,IAAI0X,WAAmB,CACjB,KAAK3wD,MAAMyuD,qBACTxV,EACE,KAAKj5C,MAAMyuD,mBAAmB/B,iBAC3B8D,2BAA2B,sBAAuBI,CAAO,EAAE7hE,CAAU,OAErEyhE,2BAA2B,sBAAuBI,CAAO,EAAE7hE,EAAY,KAAKiR,MAAMyuD,kBAAkB,OAGtGD,SAAS,CACZC,mBAAoB1/D,EACpB6/D,qBAAsB,KAAK5uD,MAAM4uD,sBAAwB,KAAK5uD,MAAMyuD,oBACnEmC,CAAO,GAGf,QAxYI5wD,MAAQ,CACXyuD,mBAAoB,KACpBC,mBAAoB,KACpBC,eAAgB,KAGhBhD,SAAU,KAAK7zD,MAAM8tC,OAAO+lB,SAG5B+D,eAAgB,KAAK53D,MAAM8tC,OAAO2rB,cAGlC1V,QAAS,KAAK/jD,MAAM8tC,OAAOiW,QAK3B+S,qBAAsB,WAGnBqC,QAAU3wD,EAAM6nB,YAWvBqpC,mBAAoB,MACbzC,gBAAkB,IAAIhE,GAAgB,KAAKjzD,KAAK,OAEhDi3D,gBAAgBpiE,GAAG,OAAQ,KAAKmL,MAAM25D,MAAM,OAE5C1C,gBAAgBpiE,GAAG,iBAAkB,KAAK4iE,iBAAiB,OAC3DR,gBAAgBpiE,GAAG,SAAU,KAAK8iE,YAAY,OAE9CV,gBAAgBpiE,GAAG,eAAgB,KAAKwjE,kBAAkB,OAE1DrB,aAAa,kBAAkB,mBAAmB,OAClDA,aAAa,uBAAwB,wBAAwB,OAC7DA,aAAa,uBAAuB,wBAAwB,WAGxDtO,iBAAiB,QAAS,KAAKwO,OAAO,EASjD0C,sBAAuB,MAChB3C,gBAAgBzoC,mBACZ68B,oBAAoB,QAAS,KAAK6L,OAAO,EAgMpD,IAAIuC,eAAgB,QACX,KAAKvxD,MAAM0vD,eAGpB,IAAI6B,cAAcluB,EAAU,MACrBmrB,SAAS,CAAEkB,eAAgBrsB,EAAU,EAG5C,IAAIuqB,eAAgB,QACX,KAAKmB,gBAAgBnB,cAG9B,IAAIA,cAAc+D,EAAS,MACpB5C,gBAAgBnB,cAAgB+D,EAGvC,IAAIjO,YAAa,QACR,KAAKqL,gBAAgBrL,WAG9B,IAAIA,WAAWA,EAAY,MACpBqL,gBAAgBrL,WAAaA,OAC7BqL,gBAAgBnH,SA6BvB,IAAI+D,UAAW,QACN,KAAK3rD,MAAM2rD,SAGpB,IAAIA,SAASA,EAAU,MAChBoD,gBAAgBpD,SAAWA,OAC3B6C,SAAS,CAAE7C,SAAAA,EAAU,EAwF5B,IAAI9P,SAAU,QACL,KAAK77C,MAAM67C,QAGpB,IAAIA,QAAQA,EAAS,MACd2S,SAAS,CAAE3S,QAAAA,EAAS,EAG3B1yC,QAAS,aAEDyoD,EAAO,KAAK5xD,MAAMyuD,oBAAsB,CAAC,KAAKzuD,MAAM0vD,eAEpD/D,EAAW,KAAK3rD,MAAM2rD,YAAY3hD,EAAA,KAAKhK,MAAMyuD,qBAAX,YAAAzkD,EAA+B2hD,iBAE/DiG,GACNC,GAAChX,IACCtwC,IAAK,KAAK0mD,QACVa,cACA9X,UAAW,KAAKliD,MAAMkiD,UACtBjrD,WAAY,KAAKiR,MAAMyuD,mBACvBE,eAAgB,KAAK3uD,MAAM2uD,eAC3BoD,gBAAiB,KAAK/xD,MAAM0uD,mBAC5B/C,SAAAA,EACAyF,WAAY,KAAKt5D,MAAM8tC,OAAOwrB,WAC9BvV,QAAS,KAAK77C,MAAM67C,QACpBqC,IAAK,KAAKpmD,MAAMomD,IAChB8T,oBAAqB,KAAKxB,2BAA2B,qBAAqB,EAC1EyB,oBAAqB,KAAKzB,2BAA2B,qBAAqB,EAC1EE,oBAAqB,KAAKpB,mBAC1B4C,SAAU,KAAK7C,mBAAqB,EAI5C,iBCtaa8C,EAAY,CAEvBpU,YAAYnY,EAAQ,CAiEpBwsB,EAAAA,+BAA0BA,CAACrjE,EAAYm+D,IACrC,KAAKmF,SAASrP,KAAK,mBAAoBj0D,EAAWujE,WAAYpF,CAAU,GAE1EqF,EAAAA,kCACE,KAAKF,SAASrP,KAAK,mBAAoBj0D,EAAWujE,UAAU,GAE9DE,EAAAA,gCAA2BA,CAACzjE,EAAY6rD,IACtC,KAAKyX,SAASrP,KAAK,mBAAoBj0D,EAAWujE,WAAY1X,CAAI,GAEpE6X,EAAAA,+BAA0BA,CAAC1jE,EAAY68B,IACrC,KAAKymC,SAASrP,KAAK,mBAAoBj0D,EAAWujE,WAAY1mC,EAAS0mC,UAAU,GAEnFI,EAAAA,+BACE,KAAKL,SAASrP,KAAK,iBAAkBj0D,EAAWujE,UAAU,GAE5DK,EAAAA,4BAAuBA,CAACluB,EAAU7Y,IAChC,KAAKymC,SAASrP,KAAK,iBAAkBve,EAAS6tB,WAAY1mC,EAAS0mC,UAAU,GAE/EM,EAAAA,6BAAwBA,CAAC7jE,EAAY6rD,IACnC,KAAKyX,SAASrP,KAAK,kBAAmBj0D,EAAWujE,WAAY1X,CAAI,GAEnEiY,EAAAA,qBACE,KAAKR,SAASrP,KAAK,OAAQ/yD,CAAG,GAEhC6iE,EAAAA,iCACE,KAAKT,SAASrP,KAAK,kBAAmB1kD,EAAUg0D,UAAU,GAE5DS,EAAAA,iCACE,KAAKV,SAASrP,KAAK,iBAAkBj+B,CAAE,GAEzCiuC,EAAAA,uCACE,KAAKX,SAASrP,KAAK,wBAAyBrmD,CAAM,GAEpDs2D,EAAAA,kCAA6BA,CAAClkE,EAAY6rD,IACxC,KAAKyX,SAASrP,KAAK,uBAAwBj0D,EAAWujE,WAAY1X,CAAI,GAExEsY,EAAAA,kCAA6BA,CAACnkE,EAAY6rD,IACxC,KAAKyX,SAASrP,KAAK,uBAAwBj0D,EAAWujE,WAAY1X,CAAI,GAOxEuY,EAAAA,iBACEvG,GAAAA,YAAAA,EAAgB18D,QAAS,aAAe,IAAI+sD,GAAc2P,CAAc,EAAIA,GAE9ET,EAAAA,qBAAgBA,CAACp9D,EAAY48D,IAC3B,KAAKyH,KAAK/jC,QAAQ88B,cAAc,IAAIlP,GAAcluD,EAAY,CAAE48D,SAAAA,EAAU,CAAC,GAE7ES,EAAAA,yBACE,KAAKgH,KAAK/jC,QAAQ+8B,eAAeC,CAAM,GAEzC6C,EAAAA,sBAAiBA,IACf,KAAKkE,KAAK/jC,QAAQ6/B,kBAEpBmE,EAAAA,wBAAmBA,IACjB,KAAKhC,eAAe,EAAE,GAExBiC,EAAAA,qBAAgBA,IACd,KAAKvJ,KAAK/O,KAAO,MAkBnB10B,EAAAA,eAAUA,IAAM,GACLitC,uBAAuB,KAAKC,eAAe,OAC/CC,SAASx+D,WAAWy+D,aAAa,KAAK3J,KAAK/6D,MAAO,KAAKykE,QAAQ,OAC/DA,SAASx+D,WAAWC,YAAY,KAAKu+D,QAAQ,IAgBpD5C,EAAAA,4BAAoC,OAC5BnnE,EAAI,KAAK0pE,KAAK/jC,QAAQwhC,kBAAkBC,CAAY,SACnDpnE,GAAAA,YAAAA,EAAG4oE,aAGZzF,EAAAA,sBAAiBA,IACK,KAAKuG,KAAK/jC,QAAQw9B,iBACnBn9D,OAAShG,EAAE4oE,UAAU,GAG1CvB,EAAAA,8BACE,KAAKqC,KAAK/jC,QAAQ0hC,oBAAoBD,CAAY,GAEpDE,EAAAA,mBAAcA,IAAM,OACZvsB,EAAW,KAAK2uB,KAAK/jC,QAAQ2hC,qBAC5BvsB,GAAAA,YAAAA,EAAU6tB,aAGnBxF,EAAAA,+BAA0BA,IACxB,KAAKsG,KAAK/jC,QAAQy9B,2BAEpBG,EAAAA,wBAAmBA,IACjB,KAAKmG,KAAK/jC,QAAQ49B,oBAEpB0G,EAAAA,0BAAyBC,MAAMC,CAAG,EAC/B3D,QAAiB4D,EAASC,MAAM,EAAE7D,cAC5BmB,eAAetE,CAAW,EACxBA,EACR,GAEHiH,EAAAA,WAAMA,CAAC/2D,EAAOjQ,IACZ,KAAKqlE,SAAS2B,IAAI/2D,EAAOjQ,CAAQ,GAEnCL,EAAAA,UAAKA,CAACsQ,EAAOC,IACX,KAAKm1D,SAAS1lE,GAAGsQ,EAAOC,CAAO,GAEjC+2D,EAAAA,YAAOA,CAACh3D,EAAOC,IACb,KAAKm1D,SAAS4B,KAAKh3D,EAAOC,CAAO,GAUnCsvD,EAAAA,2BACE,KAAK4G,KAAK/jC,QAAQm9B,iBAAiB,KAAK2G,MAAMvG,CAAc,CAAC,GAE/DY,EAAAA,4BACE,KAAK4F,KAAK/jC,QAAQm+B,kBAAkB/4B,CAAE,GAExCw7B,EAAAA,oBAAeA,IACb,KAAKmD,KAAK/jC,QAAQ4gC,gBAEpBxC,EAAAA,2BAAqC,OAC7BhpB,EAAW,KAAK2uB,KAAK/jC,QAAQo+B,iBAAiB,KAAK0F,MAAMvG,CAAc,CAAC,SACvEnoB,GAAAA,YAAAA,EAAU6tB,aAGnBjB,EAAAA,yBAAsB,OAEd6C,GADcxqE,GAAK,IACUgG,IAAIhG,GAAK,IAAIuzD,GAAcvzD,CAAC,CAAC,OAC3D0pE,KAAK/jC,QAAQgiC,eAAe6C,CAAc,IAGjDC,EAAAA,sBACE,KAAKpK,KAAK/O,KAAOoZ,GAEnBrG,EAAAA,yBACE,KAAKqF,KAAK/jC,QAAQ0+B,eAAep9D,CAAK,GAExC0jE,EAAAA,wBACE,KAAKtK,KAAKsK,cAAcphB,CAAS,GAEnC+a,EAAAA,qBACE,KAAKoF,KAAK/jC,QAAQ2+B,WAAWC,CAAO,GAEtCqD,EAAAA,sBAAiBA,CAACviE,EAAYkqD,IAAoB,KAC5C9E,EAAU,KAEVplD,EAAWmB,OAAS,eACZ,IAAI+sD,GAAcluD,CAAU,EAC/BA,EAAWmB,OAAS,gBACjB,IAAIitD,GAAUpuD,EAAW4N,OAAQ5N,EAAWm4B,IAAI,GAExDitB,QACGif,KAAK/jC,QAAQiiC,eAAend,EAAS8E,CAAe,SAvPtDma,KAAO9yD,EAAM6nB,iBAGbkqC,SAAW,IAAIiC,KAGb/C,cAAgB3rB,EAAO2rB,eAAiB3rB,EAAO2uB,eAGhD9I,EAAW7lB,EAAO52C,MAAM01D,SAC5B9e,EAAO52C,MAAQgC,SAASwjE,eAAe5uB,EAAO52C,KAAK,IAG7C4K,MAAM0kD,QAAU,aAGnByL,KAAO0K,UACP1K,KAAK/6D,MAAQy8D,KAER7lB,EAAOr+B,OAAQq+B,EAAO5gB,QAAQ,OAOnCyuC,SAAWziE,SAAS25D,cAAc,KAAK,OACvC8I,SAAS75D,MAAMqK,SAAW,gBAC1BwvD,SAAS75D,MAAM0kD,QAAU,iBAEtBrpD,WAAWy+D,aAAa,KAAKD,SAAUhI,CAAO,OACjDgI,SAAS/hE,YAAY+5D,CAAO,OAE5B+H,gBAAkBxiE,SAAS25D,cAAc,KAAK,OAC9C8I,SAAS/hE,YAAY,KAAK8hE,eAAe,IAGrCrqD,OACP0oD,GAACvD,IACC/jD,IAAK,KAAK6oD,KACVlV,IAAK,KAAK6L,KACV/P,UAAW,KAAKyZ,SAChB7tB,OAAAA,EACA4pB,mBAAoB,KAAKuD,uBACzBjD,mBAAoB,KAAKgD,uBACzBzC,yBAA0B,KAAK2C,6BAC/BhB,oBAAqB,KAAKI,wBAC1BrC,qBAAsB,KAAKyC,yBAC3BP,oBAAqB,KAAKQ,wBAC1B/B,oBAAqB,KAAK6B,wBAC1BpD,iBAAkB,KAAKuD,qBACvB1C,iBAAkB,KAAK2C,qBACvB+B,kBAAmB,KAAK9B,sBACxBnB,OAAQ,KAAKoB,WACb8B,uBAAwB,KAAK1B,2BAC7B2B,uBAAwB,KAAK1B,2BAA6B,EAAG,KAAKM,eAAe,EAqEvF,IAAIjC,eAAgB,QACX,KAAK6B,KAAK/jC,QAAQkiC,cAG3B,IAAIA,cAAcluB,EAAU,MACrB+vB,KAAK/jC,QAAQkiC,cAAgBluB,EAGpC,IAAIuqB,eAAgB,QACX,KAAKwF,KAAK/jC,QAAQu+B,cAG3B,IAAIA,cAAciC,EAAQ,MACnBuD,KAAK/jC,QAAQu+B,cAAgBiC,EASpC,IAAInM,YAAa,QACR,KAAK0P,KAAK/jC,QAAQq0B,YAAc,GAGzC,IAAIA,WAAW92B,EAAK,IACdA,EAAK,OACD82B,EAAar1D,MAAM+I,QAAQw1B,CAAG,EAAIA,EAAM,CAAEA,CAAG,OAC9CwmC,KAAK/jC,QAAQq0B,WAAaA,YAE1B0P,KAAK/jC,QAAQq0B,WAAa,KA2CnC,IAAIiI,UAAW,QACN,KAAKyH,KAAK/jC,QAAQs8B,SAG3B,IAAIA,SAASA,EAAU,MAChByH,KAAK/jC,QAAQs8B,SAAWA,EA+C/B,IAAI9P,SAAU,QACL,KAAKuX,KAAK/jC,QAAQwsB,QAG3B,IAAIA,QAAQA,EAAS,MACduX,KAAK/jC,QAAQwsB,QAAUA,EAGhC,OAEal2B,MAAiB,IAAIwsC,GAAYvsB,CAAM"}