{"version":3,"sources":["node_modules/browser-pack/_prelude.js","node_modules/array-foreach/index.js","node_modules/classlist-polyfill/src/index.js","node_modules/core-js/fn/array/from.js","node_modules/core-js/fn/object/assign.js","node_modules/core-js/modules/_a-function.js","node_modules/core-js/modules/_an-object.js","node_modules/core-js/modules/_array-includes.js","node_modules/core-js/modules/_classof.js","node_modules/core-js/modules/_cof.js","node_modules/core-js/modules/_core.js","node_modules/core-js/modules/_create-property.js","node_modules/core-js/modules/_ctx.js","node_modules/core-js/modules/_defined.js","node_modules/core-js/modules/_descriptors.js","node_modules/core-js/modules/_dom-create.js","node_modules/core-js/modules/_enum-bug-keys.js","node_modules/core-js/modules/_export.js","node_modules/core-js/modules/_fails.js","node_modules/core-js/modules/_function-to-string.js","node_modules/core-js/modules/_global.js","node_modules/core-js/modules/_has.js","node_modules/core-js/modules/_hide.js","node_modules/core-js/modules/_html.js","node_modules/core-js/modules/_ie8-dom-define.js","node_modules/core-js/modules/_iobject.js","node_modules/core-js/modules/_is-array-iter.js","node_modules/core-js/modules/_is-object.js","node_modules/core-js/modules/_iter-call.js","node_modules/core-js/modules/_iter-create.js","node_modules/core-js/modules/_iter-define.js","node_modules/core-js/modules/_iter-detect.js","node_modules/core-js/modules/_iterators.js","node_modules/core-js/modules/_library.js","node_modules/core-js/modules/_object-assign.js","node_modules/core-js/modules/_object-create.js","node_modules/core-js/modules/_object-dp.js","node_modules/core-js/modules/_object-dps.js","node_modules/core-js/modules/_object-gops.js","node_modules/core-js/modules/_object-gpo.js","node_modules/core-js/modules/_object-keys-internal.js","node_modules/core-js/modules/_object-keys.js","node_modules/core-js/modules/_object-pie.js","node_modules/core-js/modules/_property-desc.js","node_modules/core-js/modules/_redefine.js","node_modules/core-js/modules/_set-to-string-tag.js","node_modules/core-js/modules/_shared-key.js","node_modules/core-js/modules/_shared.js","node_modules/core-js/modules/_string-at.js","node_modules/core-js/modules/_to-absolute-index.js","node_modules/core-js/modules/_to-integer.js","node_modules/core-js/modules/_to-iobject.js","node_modules/core-js/modules/_to-length.js","node_modules/core-js/modules/_to-object.js","node_modules/core-js/modules/_to-primitive.js","node_modules/core-js/modules/_uid.js","node_modules/core-js/modules/_wks.js","node_modules/core-js/modules/core.get-iterator-method.js","node_modules/core-js/modules/es6.array.from.js","node_modules/core-js/modules/es6.object.assign.js","node_modules/core-js/modules/es6.string.iterator.js","node_modules/keyboardevent-key-polyfill/index.js","node_modules/matches-selector/index.js","node_modules/object-assign/index.js","node_modules/receptor/lib/behavior.js","node_modules/receptor/lib/closest.js","node_modules/receptor/lib/compose.js","node_modules/receptor/lib/delegate.js","node_modules/receptor/lib/delegateAll.js","node_modules/receptor/lib/ignore.js","node_modules/receptor/lib/index.js","node_modules/receptor/lib/keymap.js","src/js/components/accordion.js","src/js/components/alert.js","src/js/components/back-to-top.js","src/js/components/character-limit.js","src/js/components/checkbox-toggle-content.js","src/js/components/date-picker.js","src/js/components/dropdown-sort.js","src/js/components/dropdown.js","src/js/components/error-summary.js","src/js/components/modal.js","src/js/components/navigation.js","src/js/components/radio-toggle-content.js","src/js/components/regex-input-mask.js","src/js/components/selectable-table.js","src/js/components/table.js","src/js/components/tabnav.js","src/js/components/toast.js","src/js/components/tooltip.js","src/js/config.js","src/js/dkfds.js","src/js/events.js","src/js/polyfills/Function/prototype/bind.js","src/js/polyfills/Object/defineProperty.js","src/js/polyfills/custom-event.js","src/js/polyfills/element-hidden.js","src/js/polyfills/index.js","src/js/polyfills/number-is-nan.js","src/js/utils/active-element.js","src/js/utils/behavior.js","src/js/utils/breakpoints.js","src/js/utils/is-in-viewport.js","src/js/utils/is-ios-device.js","src/js/utils/select.js","src/js/utils/toggle.js"],"names":["f","exports","module","define","amd","window","global","self","this","DKFDS","r","e","n","t","o","i","c","require","u","a","Error","code","p","call","length","1","ary","callback","thisArg","forEach","document","createElement","createElementNS","view","classListProp","protoProp","elemCtrProto","Element","objCtr","Object","strTrim","String","trim","replace","arrIndexOf","Array","indexOf","item","len","DOMEx","type","message","name","DOMException","checkTokenAndGetIndex","classList","token","test","ClassList","elem","trimmedClasses","getAttribute","classes","split","push","_updateClassName","setAttribute","toString","classListProto","classListGetter","contains","add","tokens","arguments","l","updated","remove","index","splice","toggle","force","result","method","join","defineProperty","classListPropDesc","get","enumerable","configurable","ex","undefined","number","__defineGetter__","testElement","createMethod","original","DOMTokenList","prototype","_toggle","from","assign","it","TypeError","isObject","toIObject","toLength","toAbsoluteIndex","IS_INCLUDES","$this","el","fromIndex","value","O","cof","TAG","ARG","B","T","key","callee","slice","core","version","__e","$defineProperty","createDesc","object","aFunction","fn","that","b","apply","is","$export","source","out","exp","IS_FORCED","F","IS_GLOBAL","G","IS_PROTO","P","IS_BIND","target","S","PROTOTYPE","expProto","own","ctx","Function","redefine","U","hide","W","R","exec","Math","__g","hasOwnProperty","dP","documentElement","propertyIsEnumerable","Iterators","ITERATOR","ArrayProto","_typeof","anObject","iterator","entries","ret","create","descriptor","setToStringTag","IteratorPrototype","Constructor","NAME","next","returnThis","LIBRARY","$iterCreate","getPrototypeOf","BUGGY","keys","VALUES","Base","DEFAULT","IS_SET","FORCED","getMethod","kind","proto","methods","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","values","SAFE_CLOSING","riter","skipClosing","safe","arr","iter","done","DESCRIPTORS","getKeys","gOPS","pIE","toObject","IObject","$assign","A","Symbol","K","k","aLen","getSymbols","isEnum","concat","j","Empty","dPs","enumBugKeys","IE_PROTO","_createDict","iframe","style","display","appendChild","src","iframeDocument","contentWindow","open","write","lt","close","Properties","IE8_DOM_DEFINE","toPrimitive","Attributes","defineProperties","getOwnPropertySymbols","has","ObjectProto","constructor","arrayIndexOf","names","$keys","bitmap","writable","SRC","$toString","TO_STRING","TPL","inspectSource","val","isFunction","def","tag","stat","shared","uid","SHARED","store","mode","copyright","toInteger","defined","pos","s","charCodeAt","charAt","max","min","ceil","floor","isNaN","valueOf","id","px","random","_Symbol","USE_SYMBOL","classof","getIteratorMethod","isArrayIter","createProperty","getIterFn","arrayLike","step","C","mapfn","mapping","iterFn","$at","iterated","_t","_i","point","keyboardeventKeyPolyfill","polyfill","KeyboardEvent","x","which","keyCode","isArray","shiftKey","3","6","8","9","12","13","16","17","18","19","20","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","48","49","50","51","52","53","54","55","56","57","91","93","144","145","181","182","183","186","187","188","189","190","191","192","219","220","221","222","224","225","246","247","248","249","250","251","letter","fromCharCode","toLowerCase","toUpperCase","vendor","matches","matchesSelector","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","selector","nodeType","nodes","parentNode","querySelectorAll","propIsEnumerable","test1","getOwnPropertyNames","test2","test3","order2","map","err","to","symbols","popKey","obj","delegate","delegateAll","DELEGATE_PATTERN","events","props","listeners","reduce","memo","handler","match","options","capture","passive","listener","_type","element","addEventListener","removeEventListener","functions","some","closest","event","compose","selectors","delegates","behavior","ignore","keymap","MODIFIERS","Alt","Control","Ctrl","Shift","hasModifiers","modifier","_key","isElementInViewport","BUTTON","EXPANDED","BULK_FUNCTION_ACTION_ATTRIBUTE","TEXT_ACCORDION","open_all","close_all","Accordion","$accordion","strings","accordion","text","init","buttons","currentButton","expanded","toggleButton","eventOnClick","bind","prevSibling","previousElementSibling","bulkFunctionButton","bulkEvent","$module","expand","innerText","$button","stopPropagation","preventDefault","scrollIntoView","button","bulk","eventOpen","Event","dispatchEvent","eventClose","bulkFunction","buttonsOpen","newStatus","Alert","alert","getElementsByClassName","eventHide","show","eventShow","BackToTop","backtotop","updateBackToTopButton","docBody","body","docElem","limit","clientHeight","innerHeight","scrollHeight","offsetHeight","getBoundingClientRect","height","lastKnownScrollPosition","scrollY","footer","getElementsByTagName","isFooterVisible","sidenav","querySelector","offsetParent","_sidenav$closest","_sidenav$closest2","bottom","footerElement","rect","top","backtotopbutton","MutationObserver","list","evt","CustomEvent","detail","observe","attributes","attributeOldValue","characterData","characterDataOldValue","childList","subtree","MAX_LENGTH","TEXT_CHARACTERLIMIT","character_remaining","characters_remaining","character_too_many","characters_too_many","CharacterLimit","containerElement","_this","container","input","maxlength","lastKeyUpTimestamp","oldValue","intervalID","_this2","updateVisibleMessage","Date","now","innerHTML","setInterval","_sr_message","visible_message","updateMessages","clearInterval","characterLimitMessage","formLimit","_exceeded","characters_left","charactersLeft","exceeded","abs","count_message","character_label","current_length","TOGGLE_TARGET_ATTRIBUTE","CheckboxToggleContent","checkboxElement","targetElement","targetAttr","targetEl","getElementById","checked","collapse","contentElement","triggerEl","_datePickerEvents","_receptor","_defineProperty","arg","hint","prim","Number","res","_slicedToArray","minLen","_arrayLikeToArray","arr2","processFocusableSelectors","_len","query","lastDayOfMonth","date","newDate","setFullYear","getFullYear","getMonth","addWeeks","_date","numWeeks","addDays","addYears","numYears","addMonths","subYears","keepDateBetweenMinAndMax","minDate","maxDate","getTime","disable","externalInputEl","_getDatePickerContext","getDatePickerContext","toggleBtnEl","disabled","isDateInputInvalid","day","month","year","checkDate","_getDatePickerContext3","dateString","isInvalid","_dateStringParts$map2","dateStringParts","str","parsed","parseInt","setDate","getDate","isDateWithinMinAndMax","setCalendarValue","datePickerEl","internalInputEl","parsedDate","parseDateString","_getDatePickerContext6","dateFormatOption","formattedDate","formatDate","changeElementValue","validateDateInput","renderCalendar","_dateToDisplay","dateToRender","dayOfWeek","tabindex","isDisabled","isSelected","_getDatePickerContext7","calendarEl","statusEl","selectedDate","rangeDate","dialogEl","guideEl","todaysDate","today","dateToDisplay","calendarWasHidden","hidden","focusedDate","focusedMonth","focusedYear","prevMonth","subMonths","nextMonth","currentFormattedDate","firstOfMonth","startOfMonth","prevButtonsDisabled","isSameMonth","nextButtonsDisabled","rangeConclusionDate","rangeStartDate","rangeEndDate","withinRangeStartDate","withinRangeEndDate","subDays","monthLabel","MONTH_LABELS","startOfWeek","days","ariaLabelDate","CALENDAR_DATE_CLASS","getDay","isSameDay","CALENDAR_DATE_PREVIOUS_MONTH_CLASS","CALENDAR_DATE_CURRENT_MONTH_CLASS","CALENDAR_DATE_NEXT_MONTH_CLASS","CALENDAR_DATE_SELECTED_CLASS","CALENDAR_DATE_TODAY_CLASS","CALENDAR_DATE_RANGE_DATE_CLASS","CALENDAR_DATE_RANGE_DATE_START_CLASS","CALENDAR_DATE_RANGE_DATE_END_CLASS","CALENDAR_DATE_WITHIN_RANGE_CLASS","CALENDAR_DATE_FOCUSED_CLASS","monthStr","dayStr","DAY_OF_WEEK_LABELS","aria_label_date","d","datesHtml","listToGridHtml","newCalendar","cloneNode","content","dataset","CALENDAR_DATE_PICKER_CLASS","CALENDAR_ROW_CLASS","CALENDAR_CELL_CLASS","CALENDAR_CELL_CENTER_ITEMS_CLASS","CALENDAR_PREVIOUS_YEAR_CLASS","previous_year","CALENDAR_PREVIOUS_MONTH_CLASS","previous_month","CALENDAR_MONTH_LABEL_CLASS","CALENDAR_MONTH_SELECTION_CLASS","select_month","CALENDAR_YEAR_SELECTION_CLASS","select_year","CALENDAR_NEXT_MONTH_CLASS","next_month","CALENDAR_NEXT_YEAR_CLASS","next_year","CALENDAR_TABLE_CLASS","CALENDAR_DAY_OF_WEEK_CLASS","replaceChild","DATE_PICKER_ACTIVE_CLASS","statuses","textContent","first_possible_date","last_possible_date","current_month_displayed","hideCalendar","_getDatePickerContext12","updateCalendarIfVisible","_getDatePickerContext15","inputDate","displayMonthSelection","monthToDisplay","_getDatePickerContext16","calendarDate","selectedMonth","months","monthToCheck","setMonth","isDatesMonthOutsideMinOrMax","CALENDAR_MONTH_CLASS","CALENDAR_MONTH_FOCUSED_CLASS","CALENDAR_MONTH_SELECTED_CLASS","monthsHtml","CALENDAR_MONTH_PICKER_CLASS","months_displayed","displayYearSelection","yearToDisplay","_getDatePickerContext18","selectedYear","yearToChunk","prevYearChunkDisabled","YEAR_CHUNK","isDatesYearOutsideMinOrMax","setYear","nextYearChunkDisabled","years","yearIndex","CALENDAR_YEAR_CLASS","CALENDAR_YEAR_FOCUSED_CLASS","CALENDAR_YEAR_SELECTED_CLASS","yearsHtml","ariaLabelPreviousYears","previous_years","ariaLabelNextYears","next_years","announceYears","years_displayed","CALENDAR_YEAR_PICKER_CLASS","CALENDAR_PREVIOUS_YEAR_CHUNK_CLASS","CALENDAR_NEXT_YEAR_CHUNK_CLASS","handleEscapeFromCalendar","_getDatePickerContext22","focus","adjustCalendar","adjustDateFn","_getDatePickerContext23","cappedDate","CALENDAR_DATE_FOCUSED","adjustMonthSelectionScreen","adjustMonthFn","monthEl","_getDatePickerContext24","currentDate","adjustedMonth","CALENDAR_MONTH_FOCUSED","adjustYearSelectionScreen","adjustYearFn","yearEl","_getDatePickerContext25","adjustedYear","isSameYear","CALENDAR_YEAR_FOCUSED","tabHandler","focusable","getFocusableContext","lastTabIndex","focusableElements","select","firstTabStop","lastTabStop","focusIndex","activeElement","isNotFound","isFirstTab","isLastTab","tabAhead","_getFocusableContext","tabBack","_getFocusableContext2","CLICK","prefix","isIosDevice","DATE_PICKER_CLASS","DATE_PICKER_WRAPPER_CLASS","DATE_PICKER_INITIALIZED_CLASS","DATE_PICKER_INTERNAL_INPUT_CLASS","DATE_PICKER_EXTERNAL_INPUT_CLASS","DATE_PICKER_BUTTON_CLASS","DATE_PICKER_CALENDAR_CLASS","DATE_PICKER_STATUS_CLASS","DATE_PICKER_GUIDE_CLASS","DIALOG_WRAPPER_CLASS","DATE_PICKER_DIALOG_WRAPPER","DATE_PICKER","DATE_PICKER_BUTTON","DATE_PICKER_INTERNAL_INPUT","DATE_PICKER_EXTERNAL_INPUT","DATE_PICKER_CALENDAR","DATE_PICKER_STATUS","DATE_PICKER_GUIDE","CALENDAR_DATE","CALENDAR_DATE_CURRENT_MONTH","CALENDAR_PREVIOUS_YEAR","CALENDAR_PREVIOUS_MONTH","CALENDAR_NEXT_YEAR","CALENDAR_NEXT_MONTH","CALENDAR_YEAR_SELECTION","CALENDAR_MONTH_SELECTION","CALENDAR_MONTH","CALENDAR_YEAR","CALENDAR_PREVIOUS_YEAR_CHUNK","CALENDAR_NEXT_YEAR_CHUNK","CALENDAR_DATE_PICKER","CALENDAR_MONTH_PICKER","CALENDAR_YEAR_PICKER","open_calendar","choose_a_date","choose_a_date_between","choose_a_date_before","choose_a_date_after","guide","january","february","march","april","may","june","july","august","september","october","november","december","monday","tuesday","wednesday","thursday","friday","saturday","sunday","VALIDATION_MESSAGE","DEFAULT_MIN_DATE","DATE_FORMAT_OPTION_1","DATE_FORMAT_OPTION_2","DATE_FORMAT_OPTION_3","DATE_FORMAT_OPTION_4","DATE_FORMAT_OPTION_5","INTERNAL_DATE_FORMAT","DATE_PICKER_FOCUSABLE","MONTH_PICKER_FOCUSABLE","YEAR_PICKER_FOCUSABLE","keepDateWithinMonth","dateToCheck","numDays","numMonths","dateMonth","dateA","dateB","yearStr","dateFormat","adjustDate","_dateString$split2","_dateString$split4","currentYear","pow","lastDayOfTheMonth","padZeros","htmlArray","rowSize","grid","row","elementToChange","firstYearChunkEl","selectedDateFormat","hasAttribute","dateformat","defaultDate","validationMessage","setCustomValidity","handleUpFromDate","handleDownFromDate","handleLeftFromDate","handleRightFromDate","handleHomeFromDate","handleEndFromDate","handlePageDownFromDate","handlePageUpFromDate","handleShiftPageDownFromDate","handleShiftPageUpFromDate","handleUpFromMonth","handleDownFromMonth","handleLeftFromMonth","handleRightFromMonth","handleHomeFromMonth","handleEndFromMonth","handlePageDownFromMonth","handlePageUpFromMonth","handleUpFromYear","handleDownFromYear","handleLeftFromYear","handleRightFromYear","handleHomeFromYear","handleEndFromYear","handlePageUpFromYear","handlePageDownFromYear","datePickerTabEventHandler","monthPickerTabEventHandler","yearPickerTabEventHandler","datePickerEvents","_CLICK","_getDatePickerContext14","calendarDateEl","_getDatePickerContext13","_getDatePickerContext17","_getDatePickerContext21","_buttonEl","_getDatePickerContext9","nextToFocus","_getDatePickerContext10","_getDatePickerContext8","_getDatePickerContext11","_getDatePickerContext19","_getDatePickerContext20","keydown","keydownKeyCode","_keydown","Up","ArrowUp","Down","ArrowDown","Left","ArrowLeft","Right","ArrowRight","Home","End","PageDown","PageUp","Shift+PageDown","Shift+PageUp","Tab","Shift+Tab","Escape","_focusout","relatedTarget","_getDatePickerContext5","newValue","datePicker","mousemove","_datePickerEvents$mou","dateEl","currentCalendarDate","hoverDate","focusMonth","focusYear","root","enhanceDatePicker","defaultValue","_maxDay","_maxMonth","_maxMonthStr","_maxYear","_minDay","_minMonth","calendarWrapper","tabIndex","dialogTitle","hasMinDate","isDefaultMinDate","hasMaxDate","guideID","minDay","minMonth","minMonthStr","minYear","maxDay","maxMonth","maxMonthStr","maxYear","_minMonthStr","_minYear","insertAdjacentHTML","removeAttribute","required","setLanguage","enable","_getDatePickerContext2","_dropdown","__esModule","default","DropdownSort","updateSelectedValue","overflowMenu","sortingOptions","onOptionClick","selectedItem","li","eventSelected","breakpoints","TARGET","Dropdown","buttonElement","responsiveListCollapseEnabled","outsideClose","toggleDropdown","IntersectionObserver","intersectionRatio","doResponsiveCollapse","closeOnEscape","offset","scrollLeft","pageXOffset","scrollTop","pageYOffset","left","hasParent","child","parentTagName","tagName","closeAll","changed","overflowMenuEl","oi","currentOverflowMenuEL","stopImmediatePropagation","forceClose","targetOffset","right","offsetWidth","innerWidth","offsetAgain","openDropdowns","getTringuideBreakpoint","md","lg","ErrorSummary","handleClick","focusTarget","$target","$legendOrLabel","href","inputId","getFragmentFromUrl","$input","getAssociatedLegendOrLabel","preventScroll","url","pop","$fieldset","legends","$candidateLegend","legendTop","inputRect","Modal","$modal","triggers","closers","opener","modalElement","createEvent","initEvent","$backdrop","removeChild","trapFocus","hasForcedAction","handleEscape","dataModalOpener","openerId","activeModals","currentModal","firstFocusableElement","currentDialog","lastFocusableElement","modal","_defineProperties","focusTrap","NAV","NAV_LINKS","OPENERS","CLOSE_BUTTON","CLOSERS","TOGGLES","ACTIVE_CLASS","Navigation","protoProps","staticProps","mobileMenu","mobile","openers","getComputedStyle","toggleNav","navLinks","isActive","trapContainers","_focusTrap","closer","width","trapContainer","trapTabKey","release","active","closeButton","menuButton","TOGGLE_ATTRIBUTE","RadioToggleGroup","radioGroup","radioEls","radio","radioInputElement","contentId","_createClass","modifierState","InputRegexMask","regexMask","newChar","regexStr","charCode","selectionStart","selectionEnd","RegExp","returnValue","TableSelectableRows","table","updateCheckboxList","checkbox","checkboxList","getCheckboxList","checkedNumber","_c","bubbles","cancelable","updateGroupCheck","tableSelectableRows","groupCheckbox","getGroupCheckbox","tbodyCheckboxList","ResponsiveTable","_classCallCheck","headerCellEls","bodyRowEls","tableEl","header","rowEl","cellEls","children","headerCellEl","xs","sm","xl","end","home","up","down","delete","direction","Tabnav","tabnav","tabs","keydownEventListener","focusLastTab","focusFirstTab","determineOrientation","keyupEventListener","enter","space","activateTab","w","g","clientWidth","proceed","pressed","getAllTabsInList","tab","setActiveHashTab","hash","location","alreadyActive","setFocus","_tabpanelID","_tabpanel","tabpanelID","tabpanel","eventChanged","Toast","showToast","toasts","toast","requestAnimationFrame","Tooltip","addTooltip","trigger","tooltip","className","tooltipInner","tooltipArrow","tooltipContent","parent","triggerPosition","parentCoords","tooltipWidth","arrowDirection","arrowLeftPosition","endPositionOnPage","dist","_endPositionOnPage","arrowRightPosition","closeAllTooltips","elements","closeHoverTooltip","tooltipId","tooltipElement","onTooltipHover","setTimeout","_accordion","_interopRequireDefault","_alert","_backToTop","_characterLimit","_checkboxToggleContent","_dropdownSort","_errorSummary","_regexInputMask","_modal","_navigation","_radioToggleContent","_table","_tabnav","_selectableTable","_toast","_tooltip","scope","jsSelectorAccordion","jsSelectorAccordionBordered","alertsWithCloseButton","_c2","backToTopButtons","_c3","jsCharacterLimit","_c4","jsSelectorCheckboxCollapse","_c5","jsSelectorDropdown","_c6","jsSelectorDropdownSort","_c7","on","$errorSummary","jsSelectorRegex","_c8","modals","jsSelectorRadioCollapse","_c9","jsSelectorTable","_c10","jsSelectableTable","_c11","jsSelectorTabnav","_c12","jsSelectorTooltip","_c13","$Array","$Object","ObjectPrototype","ArrayPrototype","to_string","hasToStringTag","toStringTag","fnToStr","array_slice","array_concat","array_push","strClass","tryFunctionObject","bound","args","boundLength","boundArgs","nativeDefineProperty","supportsAccessors","ERR_ACCESSORS_NOT_SUPPORTED","ERR_VALUE_ACCESSORS","property","propertyString","hasValueOrWritable","getterType","setterType","set","__defineSetter__","_params","params","initCustomEvent","elproto","HTMLElement","HIDDEN","sequence","seq","receptor","off","win","docEl","navigator","userAgent","platform","maxTouchPoints","MSStream","context","selection","controls"],"mappings":"AAAA,CAAA,SAAAA,GAAA,UAAA,OAAAC,SAAA,aAAA,OAAAC,OAAAA,OAAAD,QAAAD,EAAA,EAAA,YAAA,OAAAG,QAAAA,OAAAC,IAAAD,OAAA,GAAAH,CAAA,GAAA,aAAA,OAAAK,OAAAA,OAAA,aAAA,OAAAC,OAAAA,OAAA,aAAA,OAAAC,KAAAA,KAAAC,MAAAC,MAAAT,EAAA,CAAA,EAAA,WAAA,OAAA,SAAAU,EAAAC,EAAAC,EAAAC,GAAA,SAAAC,EAAAC,EAAAf,GAAA,GAAA,CAAAY,EAAAG,GAAA,CAAA,GAAA,CAAAJ,EAAAI,GAAA,CAAA,IAAAC,EAAA,YAAA,OAAAC,SAAAA,QAAA,GAAA,CAAAjB,GAAAgB,EAAA,OAAAA,EAAAD,EAAA,CAAA,CAAA,EAAA,GAAAG,EAAA,OAAAA,EAAAH,EAAA,CAAA,CAAA,EAAA,MAAAI,EAAA,IAAAC,MAAA,uBAAAL,EAAA,GAAA,GAAAM,KAAA,mBAAAF,CAAA,CAAAG,EAAAV,EAAAG,GAAA,CAAAd,QAAA,EAAA,EAAAU,EAAAI,GAAA,GAAAQ,KAAAD,EAAArB,QAAA,SAAAS,GAAA,OAAAI,EAAAH,EAAAI,GAAA,GAAAL,IAAAA,CAAA,CAAA,EAAAY,EAAAA,EAAArB,QAAAS,EAAAC,EAAAC,EAAAC,CAAA,CAAA,CAAA,OAAAD,EAAAG,GAAAd,OAAA,CAAA,IAAA,IAAAiB,EAAA,YAAA,OAAAD,SAAAA,QAAAF,EAAA,EAAAA,EAAAF,EAAAW,OAAAT,CAAA,GAAAD,EAAAD,EAAAE,EAAA,EAAA,OAAAD,CAAA,EAAA,CAAAW,EAAA,CAAA,SAAAR,EAAAf,EAAAD,GCWA,aAEAC,EAAOD,QAAU,SAAkByB,EAAKC,EAAUC,GAC9C,GAAIF,EAAIG,QACJH,EAAIG,QAAQF,EAAUC,CAAO,OAGjC,IAAK,IAAIb,EAAI,EAAGA,EAAIW,EAAIF,OAAQT,GAAG,EAC/BY,EAASJ,KAAKK,EAASF,EAAIX,GAAIA,EAAGW,CAAG,CAE7C,C,sCCRA,GAAI,aAAcrB,OAAOE,KAAM,CAI/B,GAAI,EAAE,cAAeuB,SAASC,cAAc,GAAG,IAC3CD,SAASE,iBAAmB,EAAE,cAAeF,SAASE,gBAAgB,6BAA6B,GAAG,GAM1G,GAAM,YAAaC,EAkKjB5B,OAAOE,MAlKT,CAEA,IACG2B,EAAgB,YAChBC,EAAY,YACZC,EAAeH,EAAKI,QAAQF,GAC5BG,EAASC,OACTC,EAAUC,OAAON,GAAWO,MAAQ,WACrC,OAAOlC,KAAKmC,QAAQ,aAAc,EAAE,CACrC,EACEC,EAAaC,MAAMV,GAAWW,SAAW,SAAUC,GAKpD,IAJA,IACGhC,EAAI,EACJiC,EAAMxC,KAAKgB,OAEPT,EAAIiC,EAAKjC,CAAC,GAChB,GAAIA,KAAKP,MAAQA,KAAKO,KAAOgC,EAC5B,OAAOhC,EAGT,MAAO,CAAC,CACT,EAEEkC,EAAQ,SAAUC,EAAMC,GACzB3C,KAAK4C,KAAOF,EACZ1C,KAAKa,KAAOgC,aAAaH,GACzB1C,KAAK2C,QAAUA,CAChB,EACEG,EAAwB,SAAUC,EAAWC,GAC9C,GAAc,KAAVA,EACH,MAAM,IAAIP,EACP,aACA,4CACH,EAED,GAAI,KAAKQ,KAAKD,CAAK,EAClB,MAAM,IAAIP,EACP,wBACA,sCACH,EAED,OAAOL,EAAWrB,KAAKgC,EAAWC,CAAK,CACxC,EACEE,EAAY,SAAUC,GAOvB,IANA,IACGC,EAAiBpB,EAAQjB,KAAKoC,EAAKE,aAAa,OAAO,GAAK,EAAE,EAC9DC,EAAUF,EAAiBA,EAAeG,MAAM,KAAK,EAAI,GACzDhD,EAAI,EACJiC,EAAMc,EAAQtC,OAEVT,EAAIiC,EAAKjC,CAAC,GAChBP,KAAKwD,KAAKF,EAAQ/C,EAAE,EAErBP,KAAKyD,iBAAmB,WACvBN,EAAKO,aAAa,QAAS1D,KAAK2D,SAAS,CAAC,CAC3C,CACD,EACEC,EAAiBV,EAAUvB,GAAa,GACxCkC,EAAkB,WACnB,OAAO,IAAIX,EAAUlD,IAAI,CAC1B,EAkFD,GA9EAyC,EAAMd,GAAaf,MAAMe,GACzBiC,EAAerB,KAAO,SAAUhC,GAC/B,OAAOP,KAAKO,IAAM,IACnB,EACAqD,EAAeE,SAAW,SAAUd,GAEnC,MAA8C,CAAC,IAAxCF,EAAsB9C,KAD7BgD,GAAS,EAC+B,CACzC,EACAY,EAAeG,IAAM,WAQpB,IAPA,IAIGf,EAHAgB,EAASC,UACT1D,EAAI,EACJ2D,EAAIF,EAAOhD,OAEXmD,EAAU,CAAA,EAI+B,CAAC,IAAxCrB,EAAsB9C,KAD1BgD,EAAQgB,EAAOzD,GAAK,EACiB,IACpCP,KAAKwD,KAAKR,CAAK,EACfmB,EAAU,CAAA,GAGL,EAAE5D,EAAI2D,IAETC,GACHnE,KAAKyD,iBAAiB,CAExB,EACAG,EAAeQ,OAAS,WACvB,IAIGpB,EAEAqB,EALAL,EAASC,UACT1D,EAAI,EACJ2D,EAAIF,EAAOhD,OAEXmD,EAAU,CAAA,EAGb,GAGC,IADAE,EAAQvB,EAAsB9C,KAD9BgD,EAAQgB,EAAOzD,GAAK,EACqB,EACxB,CAAC,IAAX8D,GACNrE,KAAKsE,OAAOD,EAAO,CAAC,EACpBF,EAAU,CAAA,EACVE,EAAQvB,EAAsB9C,KAAMgD,CAAK,CAC1C,OAEM,EAAEzC,EAAI2D,GAETC,GACHnE,KAAKyD,iBAAiB,CAExB,EACAG,EAAeW,OAAS,SAAUvB,EAAOwB,GAGxC,IACGC,EAASzE,KAAK8D,SAHjBd,GAAS,EAGsB,EAC5B0B,EAASD,EACA,CAAA,IAAVD,GAAkB,SAER,CAAA,IAAVA,GAAmB,MAOrB,OAJIE,GACH1E,KAAK0E,GAAQ1B,CAAK,EAGL,CAAA,IAAVwB,GAA4B,CAAA,IAAVA,EACdA,EAEA,CAACC,CAEV,EACAb,EAAeD,SAAW,WACzB,OAAO3D,KAAK2E,KAAK,GAAG,CACrB,EAEI7C,EAAO8C,eAAgB,CACtBC,EAAoB,CACrBC,IAAKjB,EACLkB,WAAY,CAAA,EACZC,aAAc,CAAA,CACjB,EACA,IACClD,EAAO8C,eAAehD,EAAcF,EAAemD,CAAiB,CAQrE,CAPE,MAAOI,GAGUC,KAAAA,IAAdD,EAAGE,QAAsC,CAAC,aAAfF,EAAGE,SACjCN,EAAkBE,WAAa,CAAA,EAC/BjD,EAAO8C,eAAehD,EAAcF,EAAemD,CAAiB,EAEtE,CACD,MAAW/C,EAAOH,GAAWyD,kBAC5BxD,EAAawD,iBAAiB1D,EAAemC,CAAe,CA/JnC,EA4KrBwB,EAAc/D,SAASC,cAAc,GAAG,GAEhCwB,UAAUgB,IAAI,KAAM,IAAI,EAI/BsB,EAAYtC,UAAUe,SAAS,IAAI,KACnCwB,EAAe,SAASZ,GAC3B,IAAIa,EAAWC,aAAaC,UAAUf,GAEtCc,aAAaC,UAAUf,GAAU,SAAS1B,GAGzC,IAFA,IAAOR,EAAMyB,UAAUjD,OAElBT,EAAI,EAAGA,EAAIiC,EAAKjC,CAAC,GAErBgF,EAASxE,KAAKf,KADNiE,UAAU1D,EACO,CAE3B,CACD,GACa,KAAK,EAClB+E,EAAa,QAAQ,GAGtBD,EAAYtC,UAAUwB,OAAO,KAAM,CAAA,CAAK,EAIpCc,EAAYtC,UAAUe,SAAS,IAAI,IAClC4B,EAAUF,aAAaC,UAAUlB,OAErCiB,aAAaC,UAAUlB,OAAS,SAASvB,EAAOwB,GAC/C,OAAI,KAAKP,WAAa,CAACjE,KAAK8D,SAASd,CAAK,GAAM,CAACwB,EACzCA,EAEAkB,EAAQ3E,KAAKf,KAAMgD,CAAK,CAEjC,EAOF,CA9CC,IA+BK0C,C,sCChONjF,EAAQ,mCAAmC,EAC3CA,EAAQ,8BAA8B,EACtCf,EAAOD,QAAUgB,EAAQ,qBAAqB,EAAE4B,MAAMsD,I,uICFtDlF,EAAQ,iCAAiC,EACzCf,EAAOD,QAAUgB,EAAQ,qBAAqB,EAAEsB,OAAO6D,M,mGCDvDlG,EAAOD,QAAU,SAAUoG,GACzB,GAAiB,YAAb,OAAOA,EAAkB,MAAMC,UAAUD,EAAK,qBAAqB,EACvE,OAAOA,CACT,C,sCCHA,IAAIE,EAAWtF,EAAQ,cAAc,EACrCf,EAAOD,QAAU,SAAUoG,GACzB,GAAKE,EAASF,CAAE,EAChB,OAAOA,EADY,MAAMC,UAAUD,EAAK,oBAAoB,CAE9D,C,uDCFA,IAAIG,EAAYvF,EAAQ,eAAe,EACnCwF,EAAWxF,EAAQ,cAAc,EACjCyF,EAAkBzF,EAAQ,sBAAsB,EACpDf,EAAOD,QAAU,SAAU0G,GACzB,OAAO,SAAUC,EAAOC,EAAIC,GAC1B,IAGIC,EAHAC,EAAIR,EAAUI,CAAK,EACnBpF,EAASiF,EAASO,EAAExF,MAAM,EAC1BqD,EAAQ6B,EAAgBI,EAAWtF,CAAM,EAI7C,GAAImF,GAAeE,GAAMA,GAAI,KAAgBhC,EAATrD,GAGlC,IAFAuF,EAAQC,EAAEnC,CAAK,MAEFkC,EAAO,MAAO,CAAA,CAE7B,MAAO,KAAelC,EAATrD,EAAgBqD,CAAK,GAAI,IAAI8B,GAAe9B,KAASmC,IAC5DA,EAAEnC,KAAWgC,EAAI,OAAOF,GAAe9B,GAAS,EACpD,MAAO,CAAC8B,GAAe,CAAC,CAC5B,CACF,C,oGCrBA,IAAIM,EAAMhG,EAAQ,QAAQ,EACtBiG,EAAMjG,EAAQ,QAAQ,EAAE,aAAa,EAErCkG,EAAkD,aAA5CF,EAAI,WAAc,OAAOxC,SAAW,EAAE,CAAC,EASjDvE,EAAOD,QAAU,SAAUoG,GACzB,IAAUe,EACV,OAAc1B,KAAAA,IAAPW,EAAmB,YAAqB,OAAPA,EAAc,OAEN,UAA5C,OAAQgB,EAVD,SAAUhB,EAAIiB,GACzB,IACE,OAAOjB,EAAGiB,EACE,CAAZ,MAAO3G,IACX,EAMyBqG,EAAIzE,OAAO8D,CAAE,EAAGa,CAAG,GAAiBG,EAEvDF,EAAMF,EAAID,CAAC,EAEK,WAAfI,EAAIH,EAAID,CAAC,IAAqC,YAAnB,OAAOA,EAAEO,OAAuB,YAAcH,CAChF,C,4DCtBA,IAAIjD,EAAW,GAAGA,SAElBjE,EAAOD,QAAU,SAAUoG,GACzB,OAAOlC,EAAS5C,KAAK8E,CAAE,EAAEmB,MAAM,EAAG,CAAC,CAAC,CACtC,C,uCCJIC,EAAOvH,EAAOD,QAAU,CAAEyH,QAAS,QAAS,EAC9B,UAAd,OAAOC,MAAiBA,IAAMF,E,0BCDlC,aACA,IAAIG,EAAkB3G,EAAQ,cAAc,EACxC4G,EAAa5G,EAAQ,kBAAkB,EAE3Cf,EAAOD,QAAU,SAAU6H,EAAQjD,EAAOkC,GACpClC,KAASiD,EAAQF,EAAgB5H,EAAE8H,EAAQjD,EAAOgD,EAAW,EAAGd,CAAK,CAAC,EACrEe,EAAOjD,GAASkC,CACvB,C,8ECNA,IAAIgB,EAAY9G,EAAQ,eAAe,EACvCf,EAAOD,QAAU,SAAU+H,EAAIC,EAAMzG,GAEnC,GADAuG,EAAUC,CAAE,EACCtC,KAAAA,IAATuC,EAAoB,OAAOD,EAC/B,OAAQxG,GACN,KAAK,EAAG,OAAO,SAAUL,GACvB,OAAO6G,EAAGzG,KAAK0G,EAAM9G,CAAC,CACxB,EACA,KAAK,EAAG,OAAO,SAAUA,EAAG+G,GAC1B,OAAOF,EAAGzG,KAAK0G,EAAM9G,EAAG+G,CAAC,CAC3B,EACA,KAAK,EAAG,OAAO,SAAU/G,EAAG+G,EAAGlH,GAC7B,OAAOgH,EAAGzG,KAAK0G,EAAM9G,EAAG+G,EAAGlH,CAAC,CAC9B,CACF,CACA,OAAO,WACL,OAAOgH,EAAGG,MAAMF,EAAMxD,SAAS,CACjC,CACF,C,wDClBAvE,EAAOD,QAAU,SAAUoG,GACzB,GAAUX,MAANW,EAAiB,MAAMC,UAAU,yBAA2BD,CAAE,EAClE,OAAOA,CACT,C,uCCHAnG,EAAOD,QAAU,CAACgB,EAAQ,UAAU,EAAE,WACpC,OAA+E,GAAxEsB,OAAO6C,eAAe,GAAI,IAAK,CAAEE,IAAK,WAAc,OAAO,CAAG,CAAE,CAAC,EAAEnE,CAC5E,CAAC,C,oDCHD,IAAIoF,EAAWtF,EAAQ,cAAc,EACjCa,EAAWb,EAAQ,WAAW,EAAEa,SAEhCsG,EAAK7B,EAASzE,CAAQ,GAAKyE,EAASzE,EAASC,aAAa,EAC9D7B,EAAOD,QAAU,SAAUoG,GACzB,OAAO+B,EAAKtG,EAASC,cAAcsE,CAAE,EAAI,EAC3C,C,uECLAnG,EAAOD,QACL,gGACA8D,MAAM,GAAG,C,uCCIG,SAAVsE,EAAoBnF,EAAME,EAAMkF,GAClC,IAQIhB,EAAUiB,EAAKC,EARfC,EAAYvF,EAAOmF,EAAQK,EAC3BC,EAAYzF,EAAOmF,EAAQO,EAE3BC,EAAW3F,EAAOmF,EAAQS,EAC1BC,EAAU7F,EAAOmF,EAAQjB,EACzB4B,EAASL,EAAYrI,EAHT4C,EAAOmF,EAAQY,EAGe3I,EAAO8C,KAAU9C,EAAO8C,GAAQ,KAAO9C,EAAO8C,IAAS,IAAI8F,GACrGjJ,EAAU0I,EAAYlB,EAAOA,EAAKrE,KAAUqE,EAAKrE,GAAQ,IACzD+F,EAAWlJ,EAAQiJ,KAAejJ,EAAQiJ,GAAa,IAG3D,IAAK5B,KADUgB,EAAXK,EAAoBvF,EACZkF,EAIVC,IAFAa,EAAM,CAACX,GAAaO,GAA0BtD,KAAAA,IAAhBsD,EAAO1B,IAExB0B,EAASV,GAAQhB,GAE9BkB,EAAMO,GAAWK,EAAMC,EAAId,EAAKjI,CAAM,EAAIuI,GAA0B,YAAd,OAAON,EAAoBc,EAAIC,SAAS/H,KAAMgH,CAAG,EAAIA,EAEvGS,GAAQO,EAASP,EAAQ1B,EAAKiB,EAAKrF,EAAOmF,EAAQmB,CAAC,EAEnDvJ,EAAQqH,IAAQiB,GAAKkB,EAAKxJ,EAASqH,EAAKkB,CAAG,EAC3CK,GAAYM,EAAS7B,IAAQiB,IAAKY,EAAS7B,GAAOiB,EAE1D,CA/BA,IAAIjI,EAASW,EAAQ,WAAW,EAC5BwG,EAAOxG,EAAQ,SAAS,EACxBwI,EAAOxI,EAAQ,SAAS,EACxBsI,EAAWtI,EAAQ,aAAa,EAChCoI,EAAMpI,EAAQ,QAAQ,EACtBiI,EAAY,YA2BhB5I,EAAOmH,KAAOA,EAEdY,EAAQK,EAAI,EACZL,EAAQO,EAAI,EACZP,EAAQY,EAAI,EACZZ,EAAQS,EAAI,EACZT,EAAQjB,EAAI,GACZiB,EAAQqB,EAAI,GACZrB,EAAQmB,EAAI,GACZnB,EAAQsB,EAAI,IACZzJ,EAAOD,QAAUoI,C,4GC1CjBnI,EAAOD,QAAU,SAAU2J,GACzB,IACE,MAAO,CAAC,CAACA,EAAK,CAGhB,CAFE,MAAOjJ,GACP,MAAO,CAAA,CACT,CACF,C,uCCNAT,EAAOD,QAAUgB,EAAQ,WAAW,EAAE,4BAA6BqI,SAASnF,QAAQ,C,qDCChF7D,EAASJ,EAAOD,QAA2B,aAAjB,OAAOI,QAAyBA,OAAOwJ,MAAQA,KACzExJ,OAAwB,aAAf,OAAOE,MAAuBA,KAAKsJ,MAAQA,KAAOtJ,KAE3D+I,SAAS,aAAa,EAAE,EACV,UAAd,OAAOQ,MAAiBA,IAAMxJ,E,uCCLlC,IAAIyJ,EAAiB,GAAGA,eACxB7J,EAAOD,QAAU,SAAUoG,EAAIiB,GAC7B,OAAOyC,EAAexI,KAAK8E,EAAIiB,CAAG,CACpC,C,uCCHA,IAAI0C,EAAK/I,EAAQ,cAAc,EAC3B4G,EAAa5G,EAAQ,kBAAkB,EAC3Cf,EAAOD,QAAUgB,EAAQ,gBAAgB,EAAI,SAAU6G,EAAQR,EAAKP,GAClE,OAAOiD,EAAGhK,EAAE8H,EAAQR,EAAKO,EAAW,EAAGd,CAAK,CAAC,CAC/C,EAAI,SAAUe,EAAQR,EAAKP,GAEzB,OADAe,EAAOR,GAAOP,EACPe,CACT,C,kGCPIhG,EAAWb,EAAQ,WAAW,EAAEa,SACpC5B,EAAOD,QAAU6B,GAAYA,EAASmI,e,qDCDtC/J,EAAOD,QAAU,CAACgB,EAAQ,gBAAgB,GAAK,CAACA,EAAQ,UAAU,EAAE,WAClE,OAA4G,GAArGsB,OAAO6C,eAAenE,EAAQ,eAAe,EAAE,KAAK,EAAG,IAAK,CAAEqE,IAAK,WAAc,OAAO,CAAG,CAAE,CAAC,EAAEnE,CACzG,CAAC,C,2FCDD,IAAI8F,EAAMhG,EAAQ,QAAQ,EAE1Bf,EAAOD,QAAUsC,OAAO,GAAG,EAAE2H,qBAAqB,CAAC,EAAI3H,OAAS,SAAU8D,GACxE,MAAkB,UAAXY,EAAIZ,CAAE,EAAgBA,EAAGtC,MAAM,EAAE,EAAIxB,OAAO8D,CAAE,CACvD,C,iDCJA,IAAI8D,EAAYlJ,EAAQ,cAAc,EAClCmJ,EAAWnJ,EAAQ,QAAQ,EAAE,UAAU,EACvCoJ,EAAaxH,MAAMoD,UAEvB/F,EAAOD,QAAU,SAAUoG,GACzB,OAAcX,KAAAA,IAAPW,IAAqB8D,EAAUtH,QAAUwD,GAAMgE,EAAWD,KAAc/D,EACjF,C,ySCPAnG,EAAOD,QAAU,SAAUoG,GACzB,MAAqB,WAAdiE,EAAOjE,CAAE,EAAuB,OAAPA,EAA4B,YAAd,OAAOA,CACvD,C,uCCDA,IAAIkE,EAAWtJ,EAAQ,cAAc,EACrCf,EAAOD,QAAU,SAAUuK,EAAUxC,EAAIjB,EAAO0D,GAC9C,IACE,OAAOA,EAAUzC,EAAGuC,EAASxD,CAAK,EAAE,GAAIA,EAAM,EAAE,EAAIiB,EAAGjB,CAAK,CAM9D,CAJE,MAAOpG,GACH+J,EAAMF,EAAiB,OAE3B,MADY9E,KAAAA,IAARgF,GAAmBH,EAASG,EAAInJ,KAAKiJ,CAAQ,CAAC,EAC5C7J,CACR,CACF,C,0CCXA,aACA,IAAIgK,EAAS1J,EAAQ,kBAAkB,EACnC2J,EAAa3J,EAAQ,kBAAkB,EACvC4J,EAAiB5J,EAAQ,sBAAsB,EAC/C6J,EAAoB,GAGxB7J,EAAQ,SAAS,EAAE6J,EAAmB7J,EAAQ,QAAQ,EAAE,UAAU,EAAG,WAAc,OAAOT,IAAM,CAAC,EAEjGN,EAAOD,QAAU,SAAU8K,EAAaC,EAAMC,GAC5CF,EAAY9E,UAAY0E,EAAOG,EAAmB,CAAEG,KAAML,EAAW,EAAGK,CAAI,CAAE,CAAC,EAC/EJ,EAAeE,EAAaC,EAAO,WAAW,CAChD,C,wHCZA,aAeiB,SAAbE,IAA2B,OAAO1K,IAAM,CAd5C,IAAI2K,EAAUlK,EAAQ,YAAY,EAC9BoH,EAAUpH,EAAQ,WAAW,EAC7BsI,EAAWtI,EAAQ,aAAa,EAChCwI,EAAOxI,EAAQ,SAAS,EACxBkJ,EAAYlJ,EAAQ,cAAc,EAClCmK,EAAcnK,EAAQ,gBAAgB,EACtC4J,EAAiB5J,EAAQ,sBAAsB,EAC/CoK,EAAiBpK,EAAQ,eAAe,EACxCmJ,EAAWnJ,EAAQ,QAAQ,EAAE,UAAU,EACvCqK,EAAQ,EAAE,GAAGC,MAAQ,QAAU,GAAGA,KAAK,GAGvCC,EAAS,SAIbtL,EAAOD,QAAU,SAAUwL,EAAMT,EAAMD,EAAaE,EAAMS,EAASC,EAAQC,GACzER,EAAYL,EAAaC,EAAMC,CAAI,EACnB,SAAZY,EAAsBC,GACxB,GAAI,CAACR,GAASQ,KAAQC,EAAO,OAAOA,EAAMD,GAC1C,OAAQA,GACN,IAVK,OAWL,KAAKN,EAAQ,OAAO,WAAoB,OAAO,IAAIT,EAAYvK,KAAMsL,CAAI,CAAG,CAC9E,CAAE,OAAO,WAAqB,OAAO,IAAIf,EAAYvK,KAAMsL,CAAI,CAAG,CACpE,CANA,IAeIE,EAAS1E,EARTJ,EAAM8D,EAAO,YACbiB,EAAaP,GAAWF,EACxBU,EAAa,CAAA,EACbH,EAAQN,EAAKxF,UACbkG,EAAUJ,EAAM3B,IAAa2B,EAnBjB,eAmBuCL,GAAWK,EAAML,GACpEU,EAAWD,GAAWN,EAAUH,CAAO,EACvCW,EAAWX,EAAWO,EAAwBJ,EAAU,SAAS,EAA9BO,EAAkC1G,KAAAA,EACrE4G,EAAqB,SAARtB,GAAkBe,EAAMtB,SAAqB0B,EAwB9D,GArBIG,IACFxB,EAAoBO,EAAeiB,EAAW/K,KAAK,IAAIkK,CAAM,CAAC,KACpClJ,OAAO0D,WAAa6E,EAAkBG,OAE9DJ,EAAeC,EAAmB5D,EAAK,CAAA,CAAI,EAEtCiE,GAAiD,YAAtC,OAAOL,EAAkBV,IAAyBX,EAAKqB,EAAmBV,EAAUc,CAAU,GAI9Ge,GAAcE,GAAWA,EAAQ/I,OAASoI,IAC5CU,EAAa,CAAA,EACbE,EAAW,WAAoB,OAAOD,EAAQ5K,KAAKf,IAAI,CAAG,GAGtD2K,GAAWS,CAAAA,GAAYN,CAAAA,GAASY,CAAAA,GAAeH,EAAM3B,IACzDX,EAAKsC,EAAO3B,EAAUgC,CAAQ,EAGhCjC,EAAUa,GAAQoB,EAClBjC,EAAUjD,GAAOgE,EACbQ,EAMF,GALAM,EAAU,CACRO,OAAQN,EAAaG,EAAWP,EAAUL,CAAM,EAChDD,KAAMI,EAASS,EAAWP,EAhDrB,MAgDmC,EACxCpB,QAAS4B,CACX,EACIT,EAAQ,IAAKtE,KAAO0E,EAChB1E,KAAOyE,GAAQxC,EAASwC,EAAOzE,EAAK0E,EAAQ1E,EAAI,OACjDe,EAAQA,EAAQS,EAAIT,EAAQK,GAAK4C,GAASY,GAAalB,EAAMgB,CAAO,EAE7E,OAAOA,CACT,C,kMCpEA,IAAI5B,EAAWnJ,EAAQ,QAAQ,EAAE,UAAU,EACvCuL,EAAe,CAAA,EAEnB,IACE,IAAIC,EAAQ,CAAC,GAAGrC,GAAU,EAC1BqC,EAAc,OAAI,WAAcD,EAAe,CAAA,CAAM,EAErD3J,MAAMsD,KAAKsG,EAAO,WAAc,MAAM,CAAG,CAAC,CAC9B,CAAZ,MAAO9L,IAETT,EAAOD,QAAU,SAAU2J,EAAM8C,GAC/B,GAAI,CAACA,GAAe,CAACF,EAAc,MAAO,CAAA,EAC1C,IAAIG,EAAO,CAAA,EACX,IACE,IAAIC,EAAM,CAAC,GACPC,EAAOD,EAAIxC,GAAU,EACzByC,EAAK5B,KAAO,WAAc,MAAO,CAAE6B,KAAMH,EAAO,CAAA,CAAK,CAAG,EACxDC,EAAIxC,GAAY,WAAc,OAAOyC,CAAM,EAC3CjD,EAAKgD,CAAG,CACI,CAAZ,MAAOjM,IACT,OAAOgM,CACT,C,kDCrBAzM,EAAOD,QAAU,E,uCCAjBC,EAAOD,QAAU,CAAA,C,0BCAjB,aAEA,IAAI8M,EAAc9L,EAAQ,gBAAgB,EACtC+L,EAAU/L,EAAQ,gBAAgB,EAClCgM,EAAOhM,EAAQ,gBAAgB,EAC/BiM,EAAMjM,EAAQ,eAAe,EAC7BkM,EAAWlM,EAAQ,cAAc,EACjCmM,EAAUnM,EAAQ,YAAY,EAC9BoM,EAAU9K,OAAO6D,OAGrBlG,EAAOD,QAAU,CAACoN,GAAWpM,EAAQ,UAAU,EAAE,WAC/C,IAAIqM,EAAI,GACJlG,EAAI,GAEJ6B,EAAIsE,OAAO,EACXC,EAAI,uBAGR,OAFAF,EAAErE,GAAK,EACPuE,EAAEzJ,MAAM,EAAE,EAAElC,QAAQ,SAAU4L,GAAKrG,EAAEqG,GAAKA,CAAG,CAAC,EAClB,GAArBJ,EAAQ,GAAIC,CAAC,EAAErE,IAAW1G,OAAOgJ,KAAK8B,EAAQ,GAAIjG,CAAC,CAAC,EAAEjC,KAAK,EAAE,GAAKqI,CAC3E,CAAC,EAAI,SAAgBxE,EAAQV,GAM3B,IALA,IAAIjB,EAAI8F,EAASnE,CAAM,EACnB0E,EAAOjJ,UAAUjD,OACjBqD,EAAQ,EACR8I,EAAaV,EAAKjN,EAClB4N,EAASV,EAAIlN,EACH6E,EAAP6I,GAML,IALA,IAIIpG,EAJA2B,EAAImE,EAAQ3I,UAAUI,CAAK,GAAG,EAC9B0G,EAAOoC,EAAaX,EAAQ/D,CAAC,EAAE4E,OAAOF,EAAW1E,CAAC,CAAC,EAAI+D,EAAQ/D,CAAC,EAChEzH,EAAS+J,EAAK/J,OACdsM,EAAI,EAEQA,EAATtM,GACL8F,EAAMiE,EAAKuC,CAAC,IACPf,GAAea,CAAAA,EAAOrM,KAAK0H,EAAG3B,CAAG,IAAGD,EAAEC,GAAO2B,EAAE3B,IAEtD,OAAOD,CACX,EAAIgG,C,qKChCQ,SAARU,KAJJ,IAAIxD,EAAWtJ,EAAQ,cAAc,EACjC+M,EAAM/M,EAAQ,eAAe,EAC7BgN,EAAchN,EAAQ,kBAAkB,EACxCiN,EAAWjN,EAAQ,eAAe,EAAE,UAAU,EAE9CiI,EAAY,YAGZiF,EAAa,WAEf,IAAIC,EAASnN,EAAQ,eAAe,EAAE,QAAQ,EAC1CF,EAAIkN,EAAYzM,OAcpB,IAVA4M,EAAOC,MAAMC,QAAU,OACvBrN,EAAQ,SAAS,EAAEsN,YAAYH,CAAM,EACrCA,EAAOI,IAAM,eAGbC,EAAiBL,EAAOM,cAAc5M,UACvB6M,KAAK,EACpBF,EAAeG,MAAMC,qCAA8D,EACnFJ,EAAeK,MAAM,EACrBX,EAAaM,EAAe/F,EACrB3H,CAAC,IAAI,OAAOoN,EAAWjF,GAAW+E,EAAYlN,IACrD,OAAOoN,EAAW,CACpB,EAEAjO,EAAOD,QAAUsC,OAAOoI,QAAU,SAAgB3D,EAAG+H,GACnD,IAAI9J,EAQJ,OAPU,OAAN+B,GACF+G,EAAM7E,GAAaqB,EAASvD,CAAC,EAC7B/B,EAAS,IAAI8I,EACbA,EAAM7E,GAAa,KAEnBjE,EAAOiJ,GAAYlH,GACd/B,EAASkJ,EAAW,EACLzI,KAAAA,IAAfqJ,EAA2B9J,EAAS+I,EAAI/I,EAAQ8J,CAAU,CACnE,C,mJCxCA,IAAIxE,EAAWtJ,EAAQ,cAAc,EACjC+N,EAAiB/N,EAAQ,mBAAmB,EAC5CgO,EAAchO,EAAQ,iBAAiB,EACvC+I,EAAKzH,OAAO6C,eAEhBnF,EAAQD,EAAIiB,EAAQ,gBAAgB,EAAIsB,OAAO6C,eAAiB,SAAwB4B,EAAG8B,EAAGoG,GAI5F,GAHA3E,EAASvD,CAAC,EACV8B,EAAImG,EAAYnG,EAAG,CAAA,CAAI,EACvByB,EAAS2E,CAAU,EACfF,EAAgB,IAClB,OAAOhF,EAAGhD,EAAG8B,EAAGoG,CAAU,CACd,CAAZ,MAAOvO,IACT,GAAI,QAASuO,GAAc,QAASA,EAAY,MAAM5I,UAAU,0BAA0B,EAE1F,MADI,UAAW4I,IAAYlI,EAAE8B,GAAKoG,EAAWnI,OACtCC,CACT,C,uHCfA,IAAIgD,EAAK/I,EAAQ,cAAc,EAC3BsJ,EAAWtJ,EAAQ,cAAc,EACjC+L,EAAU/L,EAAQ,gBAAgB,EAEtCf,EAAOD,QAAUgB,EAAQ,gBAAgB,EAAIsB,OAAO4M,iBAAmB,SAA0BnI,EAAG+H,GAClGxE,EAASvD,CAAC,EAKV,IAJA,IAGI8B,EAHAyC,EAAOyB,EAAQ+B,CAAU,EACzBvN,EAAS+J,EAAK/J,OACdT,EAAI,EAEQA,EAATS,GAAYwI,EAAGhK,EAAEgH,EAAG8B,EAAIyC,EAAKxK,CAAC,IAAKgO,EAAWjG,EAAE,EACvD,OAAO9B,CACT,C,iHCZA/G,EAAQD,EAAIuC,OAAO6M,qB,uCCCnB,IAAIC,EAAMpO,EAAQ,QAAQ,EACtBkM,EAAWlM,EAAQ,cAAc,EACjCiN,EAAWjN,EAAQ,eAAe,EAAE,UAAU,EAC9CqO,EAAc/M,OAAO0D,UAEzB/F,EAAOD,QAAUsC,OAAO8I,gBAAkB,SAAUrE,GAElD,OADAA,EAAImG,EAASnG,CAAC,EACVqI,EAAIrI,EAAGkH,CAAQ,EAAUlH,EAAEkH,GACH,YAAxB,OAAOlH,EAAEuI,aAA6BvI,aAAaA,EAAEuI,YAChDvI,EAAEuI,YAAYtJ,UACde,aAAazE,OAAS+M,EAAc,IAC/C,C,uFCZA,IAAID,EAAMpO,EAAQ,QAAQ,EACtBuF,EAAYvF,EAAQ,eAAe,EACnCuO,EAAevO,EAAQ,mBAAmB,EAAE,CAAA,CAAK,EACjDiN,EAAWjN,EAAQ,eAAe,EAAE,UAAU,EAElDf,EAAOD,QAAU,SAAU6H,EAAQ2H,GACjC,IAGInI,EAHAN,EAAIR,EAAUsB,CAAM,EACpB/G,EAAI,EACJkE,EAAS,GAEb,IAAKqC,KAAON,EAAOM,GAAO4G,GAAUmB,EAAIrI,EAAGM,CAAG,GAAKrC,EAAOjB,KAAKsD,CAAG,EAElE,KAAOmI,EAAMjO,OAAST,GAAOsO,CAAAA,EAAIrI,EAAGM,EAAMmI,EAAM1O,CAAC,GAAG,GAClD,CAACyO,EAAavK,EAAQqC,CAAG,GAAKrC,EAAOjB,KAAKsD,CAAG,EAE/C,OAAOrC,CACT,C,8GCfA,IAAIyK,EAAQzO,EAAQ,yBAAyB,EACzCgN,EAAchN,EAAQ,kBAAkB,EAE5Cf,EAAOD,QAAUsC,OAAOgJ,MAAQ,SAAcvE,GAC5C,OAAO0I,EAAM1I,EAAGiH,CAAW,CAC7B,C,yFCNAhO,EAAQD,EAAI,GAAGkK,oB,uCCAfhK,EAAOD,QAAU,SAAU0P,EAAQ5I,GACjC,MAAO,CACLxB,WAAY,EAAW,EAAToK,GACdnK,aAAc,EAAW,EAATmK,GAChBC,SAAU,EAAW,EAATD,GACZ5I,MAAOA,CACT,CACF,C,uCCPA,IAAIzG,EAASW,EAAQ,WAAW,EAC5BwI,EAAOxI,EAAQ,SAAS,EACxBoO,EAAMpO,EAAQ,QAAQ,EACtB4O,EAAM5O,EAAQ,QAAQ,EAAE,KAAK,EAC7B6O,EAAY7O,EAAQ,uBAAuB,EAC3C8O,EAAY,WACZC,GAAO,GAAKF,GAAW/L,MAAMgM,CAAS,EAE1C9O,EAAQ,SAAS,EAAEgP,cAAgB,SAAU5J,GAC3C,OAAOyJ,EAAUvO,KAAK8E,CAAE,CAC1B,GAECnG,EAAOD,QAAU,SAAU+G,EAAGM,EAAK4I,EAAKvD,GACvC,IAAIwD,EAA2B,YAAd,OAAOD,EACpBC,GAAYd,CAAAA,EAAIa,EAAK,MAAM,GAAKzG,EAAKyG,EAAK,OAAQ5I,CAAG,EACrDN,EAAEM,KAAS4I,IACXC,GAAYd,CAAAA,EAAIa,EAAKL,CAAG,GAAKpG,EAAKyG,EAAKL,EAAK7I,EAAEM,GAAO,GAAKN,EAAEM,GAAO0I,EAAI7K,KAAK1C,OAAO6E,CAAG,CAAC,CAAC,EACxFN,IAAM1G,EACR0G,EAAEM,GAAO4I,EACCvD,EAGD3F,EAAEM,GACXN,EAAEM,GAAO4I,EAETzG,EAAKzC,EAAGM,EAAK4I,CAAG,GALhB,OAAOlJ,EAAEM,GACTmC,EAAKzC,EAAGM,EAAK4I,CAAG,GAOpB,GAAG5G,SAASrD,UAAW8J,EAAW,WAChC,MAAsB,YAAf,OAAOvP,MAAsBA,KAAKqP,IAAQC,EAAUvO,KAAKf,IAAI,CACtE,CAAC,C,kIC9BD,IAAI4P,EAAMnP,EAAQ,cAAc,EAAEjB,EAC9BqP,EAAMpO,EAAQ,QAAQ,EACtBiG,EAAMjG,EAAQ,QAAQ,EAAE,aAAa,EAEzCf,EAAOD,QAAU,SAAUoG,EAAIgK,EAAKC,GAC9BjK,GAAM,CAACgJ,EAAIhJ,EAAKiK,EAAOjK,EAAKA,EAAGJ,UAAWiB,CAAG,GAAGkJ,EAAI/J,EAAIa,EAAK,CAAE1B,aAAc,CAAA,EAAMuB,MAAOsJ,CAAI,CAAC,CACrG,C,gFCNA,IAAIE,EAAStP,EAAQ,WAAW,EAAE,MAAM,EACpCuP,EAAMvP,EAAQ,QAAQ,EAC1Bf,EAAOD,QAAU,SAAUqH,GACzB,OAAOiJ,EAAOjJ,KAASiJ,EAAOjJ,GAAOkJ,EAAIlJ,CAAG,EAC9C,C,iECJA,IAAIG,EAAOxG,EAAQ,SAAS,EACxBX,EAASW,EAAQ,WAAW,EAC5BwP,EAAS,qBACTC,EAAQpQ,EAAOmQ,KAAYnQ,EAAOmQ,GAAU,KAE/CvQ,EAAOD,QAAU,SAAUqH,EAAKP,GAC/B,OAAO2J,EAAMpJ,KAASoJ,EAAMpJ,GAAiB5B,KAAAA,IAAVqB,EAAsBA,EAAQ,GACnE,GAAG,WAAY,EAAE,EAAE/C,KAAK,CACtB0D,QAASD,EAAKC,QACdiJ,KAAM1P,EAAQ,YAAY,EAAI,OAAS,SACvC2P,UAAW,sCACb,CAAC,C,kFCXD,IAAIC,EAAY5P,EAAQ,eAAe,EACnC6P,EAAU7P,EAAQ,YAAY,EAGlCf,EAAOD,QAAU,SAAU8P,GACzB,OAAO,SAAU9H,EAAM8I,GACrB,IAGI5P,EAHA6P,EAAIvO,OAAOqO,EAAQ7I,CAAI,CAAC,EACxBlH,EAAI8P,EAAUE,CAAG,EACjBrM,EAAIsM,EAAExP,OAEV,OAAIT,EAAI,GAAU2D,GAAL3D,EAAegP,EAAY,GAAKrK,KAAAA,GAC7CvE,EAAI6P,EAAEC,WAAWlQ,CAAC,GACP,OAAc,MAAJI,GAAcJ,EAAI,IAAM2D,IAAMwD,EAAI8I,EAAEC,WAAWlQ,EAAI,CAAC,GAAK,OAAc,MAAJmH,EACpF6H,EAAYiB,EAAEE,OAAOnQ,CAAC,EAAII,EAC1B4O,EAAYiB,EAAExJ,MAAMzG,EAAGA,EAAI,CAAC,EAA0BmH,EAAI,OAAzB/G,EAAI,OAAU,IAAqB,KAC1E,CACF,C,yEChBA,IAAI0P,EAAY5P,EAAQ,eAAe,EACnCkQ,EAAMtH,KAAKsH,IACXC,EAAMvH,KAAKuH,IACflR,EAAOD,QAAU,SAAU4E,EAAOrD,GAEhC,OADAqD,EAAQgM,EAAUhM,CAAK,GACR,EAAIsM,EAAItM,EAAQrD,EAAQ,CAAC,EAAI4P,EAAIvM,EAAOrD,CAAM,CAC/D,C,yDCLA,IAAI6P,EAAOxH,KAAKwH,KACZC,EAAQzH,KAAKyH,MACjBpR,EAAOD,QAAU,SAAUoG,GACzB,OAAOkL,MAAMlL,EAAK,CAACA,CAAE,EAAI,GAAU,EAALA,EAASiL,EAAQD,GAAMhL,CAAE,CACzD,C,uCCJA,IAAI+G,EAAUnM,EAAQ,YAAY,EAC9B6P,EAAU7P,EAAQ,YAAY,EAClCf,EAAOD,QAAU,SAAUoG,GACzB,OAAO+G,EAAQ0D,EAAQzK,CAAE,CAAC,CAC5B,C,sECJA,IAAIwK,EAAY5P,EAAQ,eAAe,EACnCmQ,EAAMvH,KAAKuH,IACflR,EAAOD,QAAU,SAAUoG,GACzB,OAAY,EAALA,EAAS+K,EAAIP,EAAUxK,CAAE,EAAG,gBAAgB,EAAI,CACzD,C,yDCJA,IAAIyK,EAAU7P,EAAQ,YAAY,EAClCf,EAAOD,QAAU,SAAUoG,GACzB,OAAO9D,OAAOuO,EAAQzK,CAAE,CAAC,CAC3B,C,sDCHA,IAAIE,EAAWtF,EAAQ,cAAc,EAGrCf,EAAOD,QAAU,SAAUoG,EAAI4C,GAC7B,GAAI,CAAC1C,EAASF,CAAE,EAAG,OAAOA,EAC1B,IAAI2B,EAAIkI,EACR,GAAIjH,GAAkC,YAA7B,OAAQjB,EAAK3B,EAAGlC,WAA4BoC,CAAAA,EAAS2J,EAAMlI,EAAGzG,KAAK8E,CAAE,CAAC,GAC/C,YAA5B,OAAQ2B,EAAK3B,EAAGmL,UAA2BjL,CAAAA,EAAS2J,EAAMlI,EAAGzG,KAAK8E,CAAE,CAAC,GACpE4C,CAAAA,GAAkC,YAA7B,OAAQjB,EAAK3B,EAAGlC,WAA4BoC,CAAAA,EAAS2J,EAAMlI,EAAGzG,KAAK8E,CAAE,CAAC,EAAG,OAAO6J,EAC1F,MAAM5J,UAAU,yCAAyC,CAC3D,C,wDCXA,IAAImL,EAAK,EACLC,EAAK7H,KAAK8H,OAAO,EACrBzR,EAAOD,QAAU,SAAUqH,GACzB,MAAO,UAAUuG,OAAenI,KAAAA,IAAR4B,EAAoB,GAAKA,EAAK,MAAO,EAAEmK,EAAKC,GAAIvN,SAAS,EAAE,CAAC,CACtF,C,uCCJA,IAAIuM,EAAQzP,EAAQ,WAAW,EAAE,KAAK,EAClCuP,EAAMvP,EAAQ,QAAQ,EACtB2Q,EAAS3Q,EAAQ,WAAW,EAAEsM,OAC9BsE,EAA8B,YAAjB,OAAOD,GAET1R,EAAOD,QAAU,SAAUmD,GACxC,OAAOsN,EAAMtN,KAAUsN,EAAMtN,GAC3ByO,GAAcD,EAAOxO,KAAUyO,EAAaD,EAASpB,GAAK,UAAYpN,CAAI,EAC9E,GAESsN,MAAQA,C,gFCVjB,IAAIoB,EAAU7Q,EAAQ,YAAY,EAC9BmJ,EAAWnJ,EAAQ,QAAQ,EAAE,UAAU,EACvCkJ,EAAYlJ,EAAQ,cAAc,EACtCf,EAAOD,QAAUgB,EAAQ,SAAS,EAAE8Q,kBAAoB,SAAU1L,GAChE,GAAUX,MAANW,EAAiB,OAAOA,EAAG+D,IAC1B/D,EAAG,eACH8D,EAAU2H,EAAQzL,CAAE,EAC3B,C,mFCPA,aACA,IAAIgD,EAAMpI,EAAQ,QAAQ,EACtBoH,EAAUpH,EAAQ,WAAW,EAC7BkM,EAAWlM,EAAQ,cAAc,EACjCM,EAAON,EAAQ,cAAc,EAC7B+Q,EAAc/Q,EAAQ,kBAAkB,EACxCwF,EAAWxF,EAAQ,cAAc,EACjCgR,EAAiBhR,EAAQ,oBAAoB,EAC7CiR,EAAYjR,EAAQ,4BAA4B,EAEpDoH,EAAQA,EAAQY,EAAIZ,EAAQK,EAAI,CAACzH,EAAQ,gBAAgB,EAAE,SAAU4L,GAAQhK,MAAMsD,KAAK0G,CAAI,CAAG,CAAC,EAAG,QAAS,CAE1G1G,KAAM,SAAcgM,GAClB,IAOI3Q,EAAQyD,EAAQmN,EAAM5H,EAPtBxD,EAAImG,EAASgF,CAAS,EACtBE,EAAmB,YAAf,OAAO7R,KAAqBA,KAAOqC,MACvC6K,EAAOjJ,UAAUjD,OACjB8Q,EAAe,EAAP5E,EAAWjJ,UAAU,GAAKiB,KAAAA,EAClC6M,EAAoB7M,KAAAA,IAAV4M,EACVzN,EAAQ,EACR2N,EAASN,EAAUlL,CAAC,EAIxB,GAFIuL,IAASD,EAAQjJ,EAAIiJ,EAAc,EAAP5E,EAAWjJ,UAAU,GAAKiB,KAAAA,EAAW,CAAC,GAExDA,MAAV8M,GAAyBH,GAAKxP,OAASmP,EAAYQ,CAAM,EAM3D,IAAKvN,EAAS,IAAIoN,EADlB7Q,EAASiF,EAASO,EAAExF,MAAM,CACA,EAAYqD,EAATrD,EAAgBqD,CAAK,GAChDoN,EAAehN,EAAQJ,EAAO0N,EAAUD,EAAMtL,EAAEnC,GAAQA,CAAK,EAAImC,EAAEnC,EAAM,OAN3E,IAAK2F,EAAWgI,EAAOjR,KAAKyF,CAAC,EAAG/B,EAAS,IAAIoN,EAAK,EAAED,EAAO5H,EAASS,KAAK,GAAG6B,KAAMjI,CAAK,GACrFoN,EAAehN,EAAQJ,EAAO0N,EAAUhR,EAAKiJ,EAAU8H,EAAO,CAACF,EAAKrL,MAAOlC,GAAQ,CAAA,CAAI,EAAIuN,EAAKrL,KAAK,EASzG,OADA9B,EAAOzD,OAASqD,EACTI,CACT,CACF,CAAC,C,yNCnCD,IAAIoD,EAAUpH,EAAQ,WAAW,EAEjCoH,EAAQA,EAAQY,EAAIZ,EAAQK,EAAG,SAAU,CAAEtC,OAAQnF,EAAQ,kBAAkB,CAAE,CAAC,C,8DCHhF,aACA,IAAIwR,EAAMxR,EAAQ,cAAc,EAAE,CAAA,CAAI,EAGtCA,EAAQ,gBAAgB,EAAEwB,OAAQ,SAAU,SAAUiQ,GACpDlS,KAAKmS,GAAKlQ,OAAOiQ,CAAQ,EACzBlS,KAAKoS,GAAK,CAEZ,EAAG,WACD,IAAI5L,EAAIxG,KAAKmS,GACT9N,EAAQrE,KAAKoS,GAEjB,OAAI/N,GAASmC,EAAExF,OAAe,CAAEuF,MAAOrB,KAAAA,EAAWoH,KAAM,CAAA,CAAK,GAC7D+F,EAAQJ,EAAIzL,EAAGnC,CAAK,EACpBrE,KAAKoS,IAAMC,EAAMrR,OACV,CAAEuF,MAAO8L,EAAO/F,KAAM,CAAA,CAAM,EACrC,CAAC,C,4EC+DC,IA3EA,IAAIgG,EAA2B,CAC7BC,SAqFF,WACE,GAAI,EAAE,kBAAmB1S,SACrB,QAAS2S,cAAc/M,UACzB,MAAO,CAAA,EAIT,IAAI8F,EAAQ,CACVzG,IAAK,SAAU2N,GACb,IAAI3L,EAAMwL,EAAyBvH,KAAK/K,KAAK0S,OAAS1S,KAAK2S,SAM3D,OAHE7L,EADEzE,MAAMuQ,QAAQ9L,CAAG,EACbA,EAAI,CAAC9G,KAAK6S,UAGX/L,CACT,CACF,EAEA,OADA/E,OAAO6C,eAAe4N,cAAc/M,UAAW,MAAO8F,CAAK,EACpDA,CACT,EAxGER,KAAM,CACJ+H,EAAG,SACHC,EAAG,OACHC,EAAG,YACHC,EAAG,MACHC,GAAI,QACJC,GAAI,QACJC,GAAI,QACJC,GAAI,UACJC,GAAI,MACJC,GAAI,QACJC,GAAI,WACJC,GAAI,SACJC,GAAI,UACJC,GAAI,aACJC,GAAI,SACJC,GAAI,aACJC,GAAI,IACJC,GAAI,SACJC,GAAI,WACJC,GAAI,MACJC,GAAI,OACJC,GAAI,YACJC,GAAI,UACJC,GAAI,aACJC,GAAI,YACJC,GAAI,SACJC,GAAI,QACJC,GAAI,UACJC,GAAI,cACJC,GAAI,SACJC,GAAI,SACJC,GAAI,CAAC,IAAK,KACVC,GAAI,CAAC,IAAK,KACVC,GAAI,CAAC,IAAK,KACVC,GAAI,CAAC,IAAK,KACVC,GAAI,CAAC,IAAK,KACVC,GAAI,CAAC,IAAK,KACVC,GAAI,CAAC,IAAK,KACVC,GAAI,CAAC,IAAK,KACVC,GAAI,CAAC,IAAK,KACVC,GAAI,CAAC,IAAK,KACVC,GAAI,KACJC,GAAI,cACJC,IAAK,UACLC,IAAK,aACLC,IAAK,aACLC,IAAK,aACLC,IAAK,WACLC,IAAK,CAAC,IAAK,KACXC,IAAK,CAAC,IAAK,KACXC,IAAK,CAAC,IAAK,KACXC,IAAK,CAAC,IAAK,KACXC,IAAK,CAAC,IAAK,KACXC,IAAK,CAAC,IAAK,KACXC,IAAK,CAAC,IAAK,KACXC,IAAK,CAAC,IAAK,KACXC,IAAK,CAAC,KAAM,KACZC,IAAK,CAAC,IAAK,KACXC,IAAK,CAAC,IAAK,KACXC,IAAK,OACLC,IAAK,WACLC,IAAK,OACLC,IAAK,QACLC,IAAK,QACLC,IAAK,WACLC,IAAK,OACLC,IAAK,SACP,CACF,EAIKzW,EAAI,EAAGA,EAAI,GAAIA,CAAC,GACnB+R,EAAyBvH,KAAK,IAAMxK,GAAK,IAAMA,EAIjD,IAAI0W,EAAS,GACb,IAAK1W,EAAI,GAAIA,EAAI,GAAIA,CAAC,GACpB0W,EAAShV,OAAOiV,aAAa3W,CAAC,EAC9B+R,EAAyBvH,KAAKxK,GAAK,CAAC0W,EAAOE,YAAY,EAAGF,EAAOG,YAAY,GA2BjD,KAAA,IAAZ3X,GAA6C,KAAA,IAAXC,EAClDA,EAAOD,QAAU6S,EACRzS,SACTA,OAAOyS,yBAA2BA,E,0BCrHtC,aAEA,IAAI/G,EAA2B,aAAnB,OAAO1J,QAA0BA,QAAQ4D,UAAY,GAC7D4R,EAAS9L,EAAM+L,SACd/L,EAAMgM,iBACNhM,EAAMiM,uBACNjM,EAAMkM,oBACNlM,EAAMmM,mBACNnM,EAAMoM,iBAEXjY,EAAOD,QAWP,SAAe4G,EAAIuR,GACjB,GAAKvR,GAAsB,IAAhBA,EAAGwR,SAAd,CACA,GAAIR,EAAQ,OAAOA,EAAOtW,KAAKsF,EAAIuR,CAAQ,EAE3C,IADA,IAAIE,EAAQzR,EAAG0R,WAAWC,iBAAiBJ,CAAQ,EAC1CrX,EAAI,EAAGA,EAAIuX,EAAM9W,OAAQT,CAAC,GACjC,GAAIuX,EAAMvX,IAAM8F,EAAI,MAAO,CAAA,CAJa,CAM1C,MAAO,CAAA,CACT,C,0BCvBA,aAEA,IAAIuI,EAAwB7M,OAAO6M,sBAC/BrF,EAAiBxH,OAAO0D,UAAU8D,eAClC0O,EAAmBlW,OAAO0D,UAAUiE,qBAsDxChK,EAAOD,QA5CP,WACC,IACC,GAAKsC,OAAO6D,OAAZ,CAOA,IAAIsS,EAAQ,IAAIjW,OAAO,KAAK,EAE5B,GADAiW,EAAM,GAAK,KACkC,MAAzCnW,OAAOoW,oBAAoBD,CAAK,EAAE,GAAtC,CAMA,IADA,IAAIE,EAAQ,GACH7X,EAAI,EAAGA,EAAI,GAAIA,CAAC,GACxB6X,EAAM,IAAMnW,OAAOiV,aAAa3W,CAAC,GAAKA,EAEvC,IAQI8X,EARAC,EAASvW,OAAOoW,oBAAoBC,CAAK,EAAEG,IAAI,SAAUnY,GAC5D,OAAOgY,EAAMhY,EACd,CAAC,EACD,GAAwB,eAApBkY,EAAO3T,KAAK,EAAE,EASlB,OAJI0T,EAAQ,GACZ,uBAAuB9U,MAAM,EAAE,EAAElC,QAAQ,SAAU4V,GAClDoB,EAAMpB,GAAUA,CACjB,CAAC,EAEC,yBADElV,OAAOgJ,KAAKhJ,OAAO6D,OAAO,GAAIyS,CAAK,CAAC,EAAE1T,KAAK,EAAE,EAK1C,EALP,KAAA,CAnBA,CATA,CAqCD,CAHE,MAAO6T,IAIV,EAEiC,EAAIzW,OAAO6D,OAAS,SAAU4C,EAAQV,GAKtE,IAJA,IAAInC,EACA8S,EAtDL,SAAkB/I,GACjB,GAAIA,MAAAA,EACH,MAAM,IAAI5J,UAAU,uDAAuD,EAG5E,OAAO/D,OAAO2N,CAAG,CAClB,EAgDmBlH,CAAM,EAGfgI,EAAI,EAAGA,EAAIvM,UAAUjD,OAAQwP,CAAC,GAAI,CAG1C,IAAK,IAAI1J,KAFTnB,EAAO5D,OAAOkC,UAAUuM,EAAE,EAGrBjH,EAAexI,KAAK4E,EAAMmB,CAAG,IAChC2R,EAAG3R,GAAOnB,EAAKmB,IAIjB,GAAI8H,EAEH,IAAK,IADL8J,EAAU9J,EAAsBjJ,CAAI,EAC3BpF,EAAI,EAAGA,EAAImY,EAAQ1X,OAAQT,CAAC,GAChC0X,EAAiBlX,KAAK4E,EAAM+S,EAAQnY,EAAE,IACzCkY,EAAGC,EAAQnY,IAAMoF,EAAK+S,EAAQnY,IAIlC,CAEA,OAAOkY,CACR,C,4QC9Ca,SAATE,EAAkBC,EAAK9R,GACzB,IAAIP,EAAQqS,EAAI9R,GAEhB,OADA,OAAO8R,EAAI9R,GACJP,CACT,CA/CA,IAAMX,EAASnF,EAAQ,eAAe,EAChCoY,EAAWpY,EAAQ,YAAY,EAC/BqY,EAAcrY,EAAQ,eAAe,EAErCsY,EAAmB,0BA6CzBrZ,EAAOD,QAAU,SAAkBuZ,EAAQC,GACzC,IAAMC,EAAYnX,OAAOgJ,KAAKiO,CAAM,EACjCG,OAAO,SAASC,EAAM1W,GA5CS2W,EA6CKL,EA7CXtW,EA6CKA,IA5C7B4W,EAAQ5W,EAAK4W,MAAMP,CAAgB,KAGrCrW,EAAO4W,EAAM,GACb1B,EAAW0B,EAAM,IAII,WAAnBxP,EAAOuP,CAAO,IAChBE,EAAU,CACRC,QAASb,EAAOU,EAAS,SAAS,EAClCI,QAASd,EAAOU,EAAS,SAAS,CACpC,GAGEK,EAAW,CACb9B,SAAUA,EACViB,SAA8B,WAAnB/O,EAAOuP,CAAO,EACrBP,EAAYO,CAAO,EACnBzB,EACEiB,EAASjB,EAAUyB,CAAO,EAC1BA,EACNE,QAASA,CACX,EAqBI,IA7C8BF,EAE9BzB,EAMA2B,EAQAG,EA6BIR,EAnBkB,CAAC,EAAvBxW,EAAKJ,QA5BG,GA4BU,EACbI,EAAKa,MA7BF,GA6Ba,EAAEgV,IAAI,SAASoB,GACpC,OAAO/T,EAAO,CAAClD,KAAMiX,CAAK,EAAGD,CAAQ,CACvC,CAAC,GAEDA,EAAShX,KAAOA,EACT,CAACgX,IAcN,OAAON,EAAK/L,OAAO6L,CAAS,CAC9B,EAAG,EAAE,EAEP,OAAOtT,EAAO,CACZ7B,IAAK,SAAqB6V,GACxBV,EAAU7X,QAAQ,SAASqY,GACzBE,EAAQC,iBACNH,EAAShX,KACTgX,EAASb,SACTa,EAASH,OACX,CACF,CAAC,CACH,EACAnV,OAAQ,SAAwBwV,GAC9BV,EAAU7X,QAAQ,SAASqY,GACzBE,EAAQE,oBACNJ,EAAShX,KACTgX,EAASb,SACTa,EAASH,OACX,CACF,CAAC,CACH,CACF,EAAGN,CAAK,CACV,C,4FC5EA,IAAM3B,EAAU7W,EAAQ,kBAAkB,EAE1Cf,EAAOD,QAAU,SAASma,EAAShC,GACjC,GACE,GAAIN,EAAQsC,EAAShC,CAAQ,EAC3B,OAAOgC,CACT,QACQA,EAAUA,EAAQ7B,aAAoC,IAArB6B,EAAQ/B,SACrD,C,4DCRAnY,EAAOD,QAAU,SAAiBsa,GAChC,OAAO,SAAS5Z,GACd,OAAO4Z,EAAUC,KAAK,SAASxS,GAC7B,MAA4B,CAAA,IAArBA,EAAGzG,KAAKf,KAAMG,CAAC,CACxB,EAAGH,IAAI,CACT,CACF,C,uCCNA,IAAMia,EAAUxZ,EAAQ,WAAW,EAEnCf,EAAOD,QAAU,SAAkBmY,EAAUpQ,GAC3C,OAAO,SAAoB0S,GACzB,IAAI1R,EAASyR,EAAQC,EAAM1R,OAAQoP,CAAQ,EAC3C,GAAIpP,EACF,OAAOhB,EAAGzG,KAAKyH,EAAQ0R,CAAK,CAEhC,CACF,C,qDCTA,IAAMrB,EAAWpY,EAAQ,YAAY,EAC/B0Z,EAAU1Z,EAAQ,WAAW,EAInCf,EAAOD,QAAU,SAAqB2a,GACpC,IAAMrP,EAAOhJ,OAAOgJ,KAAKqP,CAAS,EAKlC,OAAoB,IAAhBrP,EAAK/J,QARG,MAQa+J,EAAK,GACrBqP,EATG,MAYNC,EAAYtP,EAAKoO,OAAO,SAASC,EAAMxB,GAE3C,OADAwB,EAAK5V,KAAKqV,EAASjB,EAAUwC,EAAUxC,EAAS,CAAC,EAC1CwB,CACT,EAAG,EAAE,EACEe,EAAQE,CAAS,EAC1B,C,qECpBA3a,EAAOD,QAAU,SAAgBma,EAASpS,GACxC,OAAO,SAAmBrH,GACxB,GAAIyZ,IAAYzZ,EAAEqI,QAAU,CAACoR,EAAQ9V,SAAS3D,EAAEqI,MAAM,EACpD,OAAOhB,EAAGzG,KAAKf,KAAMG,CAAC,CAE1B,CACF,C,0BCNA,aAEAT,EAAOD,QAAU,CACf6a,SAAU7Z,EAAQ,YAAY,EAC9BoY,SAAUpY,EAAQ,YAAY,EAC9BqY,YAAarY,EAAQ,eAAe,EACpC8Z,OAAQ9Z,EAAQ,UAAU,EAC1B+Z,OAAQ/Z,EAAQ,UAAU,CAC5B,C,qHCRAA,EAAQ,4BAA4B,EAKpC,IAAMga,EAAY,CAChBC,IAAY,SACZC,QAAY,UACZC,KAAY,UACZC,MAAY,UACd,EAgBAnb,EAAOD,QAAU,SAAgBsL,GAC/B,IAAM+P,EAAe/Y,OAAOgJ,KAAKA,CAAI,EAAEiP,KAAK,SAASlT,GACnD,MAAyC,CAAC,EAAnCA,EAAIxE,QAhBY,GAgBc,CACvC,CAAC,EACD,OAAO,SAAS4X,GACd,IAAIpT,EAjBY,SAASoT,EAAOY,GAClC,IAAIhU,EAAMoT,EAAMpT,IAChB,GAAIgU,EACF,IAAK,IAAIC,KAAYN,EACgB,CAAA,IAA/BP,EAAMO,EAAUM,MAClBjU,EAAM,CAACiU,EAAUjU,GAAKnC,KAPH,GAO0B,GAInD,OAAOmC,CACT,EAO0BoT,EAAOY,CAAY,EACzC,MAAO,CAAChU,EAAKA,EAAIqQ,YAAY,GAC1BgC,OAAO,SAAS1U,EAAQuW,GAIvB,OAFEvW,EADEuW,KAAQjQ,EACDA,EAAKjE,GAAK/F,KAAKf,KAAMka,CAAK,EAE9BzV,CACT,EAAGS,KAAAA,CAAS,CAChB,CACF,EAEAxF,EAAOD,QAAQgb,UAAYA,C,yDC1C3B,aAAa1Y,OAAA6C,eAAAnF,EAAA,aAAA,CAAA8G,MAAA,CAAA,CAAA,CAAA,EAAA9G,EAAA,QAAA,KAAA,EACbgB,EAAA,sCAAA,EACA,IAAM8D,EAAS9D,EAAQ,iBAAiB,EAClCwa,EAAsBxa,EAAQ,yBAAyB,EACvDya,EAAM,mCACNC,EAAW,gBACXC,EAAiC,6BACjCC,EAAiB,CACnBC,SAAY,WACZC,UAAa,UACjB,EAOA,SAASC,EAAUC,GAAsC,IAA1BC,EAAO,EAAAzX,UAAAjD,QAAAkE,KAAAA,IAAAjB,UAAA,GAAAA,UAAA,GAAGoX,EACrC,GAAI,CAACI,EACD,MAAM,IAAI7a,MAAK,iCAAkC,EAErDZ,KAAK2b,UAAYF,EACjBzb,KAAK4b,KAAOF,CAChB,CAKAF,EAAU/V,UAAUoW,KAAO,WAEvB,GADA7b,KAAK8b,QAAU9b,KAAK2b,UAAU3D,iBAAiBkD,CAAM,EAC1B,GAAvBlb,KAAK8b,QAAQ9a,OACb,MAAM,IAAIJ,MAAK,2BAA4B,EAI/C,IAAK,IAAIL,EAAI,EAAGA,EAAIP,KAAK8b,QAAQ9a,OAAQT,CAAC,GAAI,CAC1C,IAAIwb,EAAgB/b,KAAK8b,QAAQvb,GAG7Byb,EAAoD,SAAzCD,EAAc1Y,aAAa8X,CAAQ,EAClDnb,KAAKic,aAAaF,EAAeC,CAAQ,EAGzCD,EAAcjC,oBAAoB,QAAS9Z,KAAKkc,aAAaC,KAAKnc,KAAM+b,CAAa,EAAG,CAAA,CAAK,EAC7FA,EAAclC,iBAAiB,QAAS7Z,KAAKkc,aAAaC,KAAKnc,KAAM+b,CAAa,EAAG,CAAA,CAAK,CAC9F,CAEA,IAAIK,EAAcpc,KAAK2b,UAAUU,uBACb,OAAhBD,GAAwBA,EAAYrZ,UAAUe,SAAS,uBAAuB,IAC9E9D,KAAKsc,mBAAqBF,EAC1Bpc,KAAKsc,mBAAmBzC,iBAAiB,QAAS7Z,KAAKuc,UAAUJ,KAAKnc,IAAI,CAAC,EAEnF,EAKAwb,EAAU/V,UAAU8W,UAAY,WAC5B,IAAIC,EAAUxc,KACd,GAAI,CAACwc,EAAQb,UAAU5Y,UAAUe,SAAS,WAAW,EACjD,MAAM,IAAIlD,MAAK,2BAA4B,EAE/C,GAA8B,GAA1B4b,EAAQV,QAAQ9a,OAChB,MAAM,IAAIJ,MAAK,2BAA4B,EAG/C,IAAI6b,EAAS,CAAA,EACmE,UAA5ED,EAAQF,mBAAmBjZ,aAAa+X,CAA8B,IACtEqB,EAAS,CAAA,GAEb,IAAK,IAAIlc,EAAI,EAAGA,EAAIic,EAAQV,QAAQ9a,OAAQT,CAAC,GACzCic,EAAQP,aAAaO,EAAQV,QAAQvb,GAAIkc,EAAQ,CAAA,CAAI,EAGzDD,EAAQF,mBAAmB5Y,aAAa0X,EAAgC,CAACqB,CAAM,EAE3ED,EAAQF,mBAAmBI,UADf,CAAA,GAAZ,CAACD,EACsCzc,KAAK4b,KAAKN,SAEVtb,KAAK4b,KAAKL,SAEzD,EAOAC,EAAU/V,UAAUyW,aAAe,SAAUS,EAASxc,GAElDA,EAAEyc,gBAAgB,EAClBzc,EAAE0c,eAAe,EAFH7c,KAGNic,aAAaU,CAAO,EACW,SAAnCA,EAAQtZ,aAAa8X,CAAQ,GAIxBF,EAAoB0B,CAAO,GAAGA,EAAQG,eAAe,CAElE,EAWAtB,EAAU/V,UAAUwW,aAAe,SAAUc,EAAQf,GAAwB,IAAdgB,EAAI,EAAA/Y,UAAAjD,QAAAkE,KAAAA,IAAAjB,UAAA,IAAAA,UAAA,GAC3D0X,EAAY,KACZoB,EAAOhF,WAAWA,WAAWhV,UAAUe,SAAS,WAAW,EAC3D6X,EAAYoB,EAAOhF,WAAWA,WACvBgF,EAAOhF,WAAWA,WAAWA,WAAWhV,UAAUe,SAAS,WAAW,IAC7E6X,EAAYoB,EAAOhF,WAAWA,WAAWA,aAE7CiE,EAAWzX,EAAOwY,EAAQf,CAAQ,IAE1BiB,EAAY,IAAIC,MAAM,oBAAoB,EAC9CH,EAAOI,cAAcF,CAAS,IAE1BG,EAAa,IAAIF,MAAM,qBAAqB,EAChDH,EAAOI,cAAcC,CAAU,GAGjB,OAAdzB,GAEqB,QADjB0B,EAAe1B,EAAUU,yBACAgB,EAAata,UAAUe,SAAS,uBAAuB,IAC5EgY,EAAUH,EAAU3D,iBAAiBkD,CAAM,EAClC,CAAA,IAAT8B,KACIM,EAAc3B,EAAU3D,iBAAiBkD,EAAS,wBAAwB,EAC1EqC,EAAY,CAAA,EAEZzB,EAAQ9a,SAAWsc,EAAYtc,SAC/Buc,EAAY,CAAA,GAGhBF,EAAa3Z,aAAa0X,EAAgCmC,CAAS,EAE/DF,EAAaX,UADC,CAAA,IAAda,EACyBvd,KAAK4b,KAAKN,SAEVtb,KAAK4b,KAAKL,UAKvD,EAEwB9b,EAAA,QAAT+b,C,uHCpJf,aACA,SAASgC,EAAMC,GACXzd,KAAKyd,MAAQA,CACjB,CAHa1b,OAAA6C,eAAAnF,EAAA,aAAA,CAAA8G,MAAA,CAAA,CAAA,CAAA,EAAA9G,EAAA,QAAA,KAAA,EAKb+d,EAAM/X,UAAUoW,KAAO,WACnB,IAAIvN,EAAQtO,KAAKyd,MAAMC,uBAAuB,aAAa,EACvC,IAAjBpP,EAAMtN,QACLsN,EAAM,GAAGuL,iBAAiB,QAAS7Z,KAAKiJ,KAAKkT,KAAKnc,IAAI,CAAC,CAE/D,EAEAwd,EAAM/X,UAAUwD,KAAO,WACnBjJ,KAAKyd,MAAM1a,UAAUgB,IAAI,QAAQ,EACjC,IAAI4Z,EAAY,IAAIT,MAAM,gBAAgB,EAC1Cld,KAAKyd,MAAMN,cAAcQ,CAAS,CACtC,EAEAH,EAAM/X,UAAUmY,KAAO,WACnB5d,KAAKyd,MAAM1a,UAAUqB,OAAO,QAAQ,EAEpC,IAAIyZ,EAAY,IAAIX,MAAM,gBAAgB,EAC1Cld,KAAKyd,MAAMN,cAAcU,CAAS,CACtC,EAEoBpe,EAAA,QAAL+d,C,0BCzBf,aAEA,SAASM,EAAUC,GACf/d,KAAK+d,UAAYA,CACrB,CAuCA,SAASC,EAAsBjB,GAC3B,IAAIkB,EAAU3c,SAAS4c,KACnBC,EAAU7c,SAASmI,gBAKnB2U,EAA2B,EAJR/U,KAAKsH,IAAIwN,EAAQE,cAAgB,EAAGxe,OAAOye,aAAe,CAAC,EAC/DjV,KAAKsH,IAAIsN,EAAQM,aAAcN,EAAQO,aAAcP,EAAQQ,sBAAsB,EAAEC,OAC1EP,EAAQI,aAAcJ,EAAQK,aAAcL,EAAQM,sBAAsB,EAAEC,OAAQP,EAAQE,YAAY,EAKlID,EACKrB,EAAOha,UAAUe,SAAS,QAAQ,GACnCiZ,EAAOha,UAAUgB,IAAI,QAAQ,GAK7BgZ,EAAOha,UAAUe,SAAS,QAAQ,GAClCiZ,EAAOha,UAAUqB,OAAO,QAAQ,EAGhCua,EAA0B9e,OAAO+e,QACjCC,EAASvd,SAASwd,qBAAqB,QAAQ,EAAE,GAGtBV,GAA3BO,EACI,CAACI,EAAgBF,CAAM,GAAK9B,EAAOha,UAAUe,SAAS,eAAe,EACrEiZ,EAAOha,UAAUqB,OAAO,eAAe,EAElC2a,EAAgBF,CAAM,GAAK,CAAC9B,EAAOha,UAAUe,SAAS,eAAe,GAC1EiZ,EAAOha,UAAUgB,IAAI,eAAe,GAKpCib,EAAU1d,SAAS2d,cAAc,eAAe,IAEZ,OAAzBD,EAAQE,aAEsF,UAAnG,OAAAC,EAAAH,EAAQ/E,QAAQ,sBAAsB,IAAtC,OAAuCkF,EAAvCA,EAAyC9C,wBAAsB,KAAA,EAA/D8C,EAAiE9b,aAAa,eAAe,IACjB,QAAlF,OAAA+b,EAAAJ,EAAQ/E,QAAQ,sBAAsB,IAAtC,OAAuCmF,EAAvCA,EAAyC/C,wBAAsB,KAAA,EAA/D+C,EAAiEF,gBAElDF,EAAQP,sBAAsB,EAChCY,OAAS,EACV,CAACN,EAAgBF,CAAM,GAAK9B,EAAOha,UAAUe,SAAS,eAAe,EACrEiZ,EAAOha,UAAUqB,OAAO,eAAe,EAElC2a,EAAgBF,CAAM,GAAK,CAAC9B,EAAOha,UAAUe,SAAS,eAAe,GAC1EiZ,EAAOha,UAAUgB,IAAI,eAAe,EAInCgZ,EAAOha,UAAUe,SAAS,eAAe,GAC1CiZ,EAAOha,UAAUgB,IAAI,eAAe,GAQ3CgZ,EAAOha,UAAUe,SAAS,eAAe,GAC1CiZ,EAAOha,UAAUgB,IAAI,eAAe,EAMxD,CAEA,SAASgb,EAAgBO,GACrB,OAAIA,MAAAA,GAAAA,EAAeL,cAAc,SAAS,KAClCM,EAAOD,EAAcL,cAAc,SAAS,EAAER,sBAAsB,GAG9De,IAAM3f,OAAOye,aAAeiB,EAAKC,IAAMle,SAASmI,gBAAgB4U,cAC/D,EALf,KAAA,CAeJ,CAjIatc,OAAA6C,eAAAnF,EAAA,aAAA,CAAA8G,MAAA,CAAA,CAAA,CAAA,EAAA9G,EAAA,QAAA,KAAA,EAMbqe,EAAUrY,UAAUoW,KAAO,WACvB,IAAI4D,EAAkBzf,KAAK+d,UAE3BC,EAAsByB,CAAe,EAEpB,IAAIC,iBAAkB,SAAAC,GAC7BC,EAAM,IAAIC,YAAY,cAAe,CAACC,OAAQH,CAAI,CAAC,EACzDre,SAAS4c,KAAKf,cAAcyC,CAAG,CACnC,CAAC,EAaQG,QAAQze,SAAS4c,KAVb,CACT8B,WAAwB,CAAA,EACxBC,kBAAwB,CAAA,EACxBC,cAAwB,CAAA,EACxBC,sBAAwB,CAAA,EACxBC,UAAwB,CAAA,EACxBC,QAAwB,CAAA,CAC5B,CAGsC,EACtC/e,SAAS4c,KAAKrE,iBAAiB,cAAe,SAAS1Z,GACnD6d,EAAsByB,CAAe,CACzC,CAAC,EAGD5f,OAAOga,iBAAiB,SAAU,SAAS1Z,GACvC6d,EAAsByB,CAAe,CACzC,CAAC,EAGD5f,OAAOga,iBAAiB,SAAU,SAAS1Z,GACvC6d,EAAsByB,CAAe,CACzC,CAAC,CACL,EA0FwBhgB,EAAA,QAATqe,C,0BCnIf,aAAa/b,OAAA6C,eAAAnF,EAAA,aAAA,CAAA8G,MAAA,CAAA,CAAA,CAAA,EAAA9G,EAAA,QAAA,KAAA,EAEb,IAAM6gB,EAAa,iBACbC,EAAsB,CACxBC,oBAAuB,8BACvBC,qBAAwB,8BACxBC,mBAAsB,gCACtBC,oBAAuB,+BAC3B,EAOC,SAASC,EAAeC,GAAiD,IAAAC,EAAA9gB,KAA/B0b,EAAO,EAAAzX,UAAAjD,QAAAkE,KAAAA,IAAAjB,UAAA,GAAAA,UAAA,GAAGsc,EACjD,GAAI,CAACM,EACD,MAAM,IAAIjgB,MAAK,4BAA6B,EAEhDZ,KAAK+gB,UAAYF,EACjB7gB,KAAKghB,MAAQH,EAAiBnD,uBAAuB,YAAY,EAAE,GACnE1d,KAAKihB,UAAYjhB,KAAK+gB,UAAU1d,aAAaid,CAAU,EACvDtgB,KAAK4b,KAAOF,EAEZ,IAAIwF,EAAqB,KACrBC,EAAWnhB,KAAKghB,MAAMza,MACtB6a,EAAa,KA2CjBphB,KAAK6b,KAAO,WAAW,IAAAwF,EAAArhB,KACnB,GAAI,CAACA,KAAKihB,UACN,MAAM,IAAIrgB,MAAK,wCAAAyM,OAAyCiT,CAAU,CAAE,EAGxEtgB,KAAKghB,MAAMnH,iBAAiB,QAAS,WA7CrCyH,EAAqBR,CAAI,EACzBI,EAAqBK,KAAKC,IAAI,CA8C9B,CAAC,EACDxhB,KAAKghB,MAAMnH,iBAAiB,QAAS,WAxCZ,KAArBiH,EAAKE,MAAMza,QACMua,EAAKC,UAAUrD,uBAAuB,yBAAyB,EAAE,GACvE+D,UAAY,IAG3BL,EAAaM,YAAY,WAIrB,IACQC,EACAC,GAFJ,CAACV,GAAuBK,KAAKC,IAAI,EAAI,KAAQN,KACzCS,EAAa3hB,KAAK+gB,UAAUrD,uBAAuB,yBAAyB,EAAE,GAAG+D,UACjFG,EAAkB5hB,KAAK+gB,UAAUrD,uBAAuB,iBAAiB,EAAE,GAAG+D,UAI9EN,IAAanhB,KAAKghB,MAAMza,OAASob,IAAeC,IAChDT,EAAWnhB,KAAKghB,MAAMza,MACtBvG,KAAK6hB,eAAe,GAGhC,EAAE1F,KAAK2E,CAAI,EAAG,GAAI,CAsBlB,CAAC,EACD9gB,KAAKghB,MAAMnH,iBAAiB,OAAQ,WAnBpCiI,cAAcV,CAAU,EAEpBD,IAAaL,EAAKE,MAAMza,QACxB4a,EAAWL,EAAKE,MAAMza,MACtBua,EAAKe,eAAe,EAiBxB,CAAC,EAMG,eAAgBhiB,OAChBA,OAAOga,iBAAiB,WAAY,WAChCwH,EAAKQ,eAAe,CACxB,CAAC,EAGDhiB,OAAOga,iBAAiB,mBAAoB,WACxCwH,EAAKQ,eAAe,CACxB,CAAC,CAET,CACJ,CAOA,SAASE,EAAsBC,GAC3B,IAcQC,EAbJC,EAAkBF,EAAUG,eAAe,EAiB/C,MAfwB,CAAC,IAArBD,GACIE,EAAW/Y,KAAKgZ,IAAIH,CAAe,EACvBF,EAAUpG,KAAK8E,mBAAmBve,QAAQ,UAAWigB,CAAQ,GAEpD,IAApBF,EACWF,EAAUpG,KAAK4E,oBAAoBre,QAAQ,UAAW+f,CAAe,EAE7D,GAAnBA,EACWF,EAAUpG,KAAK6E,qBAAqBte,QAAQ,UAAW+f,CAAe,GAGlFD,EAAW5Y,KAAKgZ,IAAIH,CAAe,EACvBF,EAAUpG,KAAK+E,oBAAoBxe,QAAQ,UAAW8f,CAAQ,EAItF,CAEA,SAASX,EAAqBU,GAC1B,IAAIE,EAAkBF,EAAUG,eAAe,EAC3CG,EAAgBP,EAAsBC,CAAS,EAC/CO,EAAkBP,EAAUjB,UAAUrD,uBAAuB,iBAAiB,EAAE,GAEhFwE,EAAkB,GACbK,EAAgBxf,UAAUe,SAAS,gBAAgB,GACpDye,EAAgBxf,UAAUgB,IAAI,gBAAgB,EAE7Cie,EAAUhB,MAAMje,UAAUe,SAAS,kBAAkB,GACtDke,EAAUhB,MAAMje,UAAUgB,IAAI,kBAAkB,IAIhDwe,EAAgBxf,UAAUe,SAAS,gBAAgB,GACnDye,EAAgBxf,UAAUqB,OAAO,gBAAgB,EAEjD4d,EAAUhB,MAAMje,UAAUe,SAAS,kBAAkB,GACrDke,EAAUhB,MAAMje,UAAUqB,OAAO,kBAAkB,GAI3Dme,EAAgBd,UAAYa,CAChC,CAlDA1B,EAAenb,UAAU0c,eAAiB,WACtC,IAAIK,EAAiBxiB,KAAKghB,MAAMza,MAAMvF,OACtC,OAAOhB,KAAKihB,UAAYuB,CAC5B,EAuDA5B,EAAenb,UAAUoc,eAAiB,WAN1C,IAAmCG,EAC3BM,EAMJhB,EAAqBthB,IAAI,EANrBsiB,EAAgBP,EADWC,EAQLhiB,IAPyB,EAC7BgiB,EAAUjB,UAAUrD,uBAAuB,yBAAyB,EAAE,GAC5E+D,UAAYa,CAMhC,EAE6B7iB,EAAA,QAAdmhB,C,0BCpKf,aAAa7e,OAAA6C,eAAAnF,EAAA,aAAA,CAAA8G,MAAA,CAAA,CAAA,CAAA,EAAA9G,EAAA,QAAA,KAAA,EACbgB,EAAA,sCAAA,EAEA,IAAMgiB,EAA0B,qBAMhC,SAASC,EAAsBC,GAC3B3iB,KAAK2iB,gBAAkBA,EACvB3iB,KAAK4iB,cAAgB,IACzB,CAKAF,EAAsBjd,UAAUoW,KAAO,WACnC7b,KAAK2iB,gBAAgB9I,iBAAiB,SAAU7Z,KAAKuE,OAAO4X,KAAKnc,IAAI,CAAC,EACtEA,KAAKuE,OAAO,CAChB,EAKAme,EAAsBjd,UAAUlB,OAAS,WACrC,IACIse,EAAa7iB,KAAK2iB,gBAAgBtf,aAAaof,CAAuB,EACtEK,EAAWxhB,SAASyhB,eAAeF,CAAU,EACjD,GAAGC,MAAAA,EACC,MAAM,IAAIliB,MAAM,2DAA4D6hB,CAAuB,EAEpGziB,KAAK2iB,gBAAgBK,QANVhjB,KAOFyc,OAAOzc,KAAK2iB,gBAAiBG,CAAQ,EAPnC9iB,KASFijB,SAASjjB,KAAK2iB,gBAAiBG,CAAQ,CAEvD,EAOAJ,EAAsBjd,UAAUgX,OAAS,SAASkG,EAAiBO,GAC5DP,MAAAA,GAAAA,MAA6DO,IAC5DP,EAAgBjf,aAAa,qBAAsB,MAAM,EACzDwf,EAAengB,UAAUqB,OAAO,WAAW,EAC3C8e,EAAexf,aAAa,cAAe,OAAO,EAC9CuZ,EAAY,IAAIC,MAAM,uBAAuB,EACjDyF,EAAgBxF,cAAcF,CAAS,EAE/C,EAOAyF,EAAsBjd,UAAUwd,SAAW,SAASE,EAAWL,GACxDK,MAAAA,GAAAA,MAAiDL,IAChDK,EAAUzf,aAAa,qBAAsB,OAAO,EACpDof,EAAS/f,UAAUgB,IAAI,WAAW,EAClC+e,EAASpf,aAAa,cAAe,MAAM,EAEvC0Z,EAAa,IAAIF,MAAM,wBAAwB,EACnDiG,EAAUhG,cAAcC,CAAU,EAE1C,EAEoC3d,EAAA,QAArBijB,C,qTCtEf,IAAgCU,EAAhCC,EAAA5iB,EAAA,UAAA,EAAgC,SAAA6iB,EAAA1K,EAAA9R,EAAAP,GAAA,OAAAO,EAAA,SAAAyc,GAAAzc,EAAA,SAAAka,EAAAwC,GAAA,GAAA,WAAA1Z,EAAAkX,CAAA,GAAA,OAAAA,EAAA,OAAAA,EAAA,IAAAyC,EAAAzC,EAAAjU,OAAA0B,aAAA,GAAAvJ,KAAAA,IAAAue,EAAA,OAAA,WAAAD,EAAAvhB,OAAAyhB,QAAA1C,CAAA,EAAA2C,EAAAF,EAAA1iB,KAAAigB,EAAAwC,GAAA,SAAA,EAAA,GAAA,WAAA1Z,EAAA6Z,CAAA,EAAA,OAAAA,EAAA,MAAA,IAAA7d,UAAA,8CAAA,CAAA,EAAAyd,EAAA,QAAA,EAAA,MAAA,WAAAzZ,EAAAhD,CAAA,EAAAA,EAAA7E,OAAA6E,CAAA,CAAA,EAAAA,CAAA,KAAA8R,EAAA7W,OAAA6C,eAAAgU,EAAA9R,EAAA,CAAAP,MAAAA,EAAAxB,WAAA,CAAA,EAAAC,aAAA,CAAA,EAAAoK,SAAA,CAAA,CAAA,CAAA,EAAAwJ,EAAA9R,GAAAP,EAAAqS,CAAA,CAAA,SAAAgL,EAAAxX,EAAA7L,GAAA,OAAA,SAAA6L,GAAA,GAAA/J,MAAAuQ,QAAAxG,CAAA,EAAA,OAAAA,CAAA,EAAAA,CAAA,GAAA,SAAAlM,EAAAgE,GAAA,IAAA7D,EAAA,MAAAH,EAAA,KAAA,aAAA,OAAA6M,QAAA7M,EAAA6M,OAAA/C,WAAA9J,EAAA,cAAA,GAAA,MAAAG,EAAA,CAAA,IAAAF,EAAAC,EAAAG,EAAAG,EAAAC,EAAA,GAAAnB,EAAA,CAAA,EAAAc,EAAA,CAAA,EAAA,IAAA,GAAAC,GAAAF,EAAAA,EAAAU,KAAAb,CAAA,GAAAuK,KAAA,IAAAvG,EAAA,CAAA,GAAAnC,OAAA1B,CAAA,IAAAA,EAAA,OAAAb,EAAA,CAAA,CAAA,MAAA,KAAA,EAAAA,GAAAW,EAAAI,EAAAQ,KAAAV,CAAA,GAAAiM,QAAA3L,EAAA6C,KAAArD,EAAAoG,KAAA,EAAA5F,EAAAK,SAAAkD,GAAA1E,EAAA,CAAA,GAAA,CAAA,MAAAU,GAAAI,EAAA,CAAA,EAAAF,EAAAF,CAAA,CAAA,QAAA,IAAA,GAAA,CAAAV,GAAA,MAAAa,EAAA,SAAAK,EAAAL,EAAA,OAAA,EAAA0B,OAAArB,CAAA,IAAAA,GAAA,MAAA,CAAA,QAAA,GAAAJ,EAAA,MAAAF,CAAA,CAAA,CAAA,OAAAO,CAAA,CAAA,EAAAyL,EAAA7L,CAAA,GAAA,SAAAD,EAAAujB,GAAA,IAAAzjB,EAAA,GAAAE,EAAA,MAAA,UAAA,OAAAA,EAAAwjB,EAAAxjB,EAAAujB,CAAA,EAAA,SAAAzjB,EAAA,YAAAA,EAAA2B,OAAA0D,UAAA9B,SAAA5C,KAAAT,CAAA,EAAA0G,MAAA,EAAA,CAAA,CAAA,IAAA1G,EAAAyO,YAAAzO,EAAAyO,YAAAnM,KAAAxC,IAAA,QAAAA,EAAAiC,MAAAsD,KAAArF,CAAA,EAAA,cAAAF,GAAA,2CAAA6C,KAAA7C,CAAA,EAAA0jB,EAAAxjB,EAAAujB,CAAA,EAAA,KAAA,CAAA,EAAAzX,EAAA7L,CAAA,GAAA,WAAA,MAAA,IAAAuF,UAAA,2IAAA,CAAA,EAAA,CAAA,CAAA,SAAAge,EAAA1X,EAAA5J,IAAA,MAAAA,GAAAA,EAAA4J,EAAApL,UAAAwB,EAAA4J,EAAApL,QAAA,IAAA,IAAAT,EAAA,EAAAwjB,EAAA,IAAA1hB,MAAAG,CAAA,EAAAjC,EAAAiC,EAAAjC,CAAA,GAAAwjB,EAAAxjB,GAAA6L,EAAA7L,GAAA,OAAAwjB,CAAA,CAsKE,SAA5BC,IAAyB,IAAA,IAAAC,EAAAhgB,UAAAjD,OAAOoZ,EAAS,IAAA/X,MAAA4hB,CAAA,EAAAjJ,EAAA,EAAAA,EAAAiJ,EAAAjJ,CAAA,GAATZ,EAASY,GAAA/W,UAAA+W,GAAA,OAC7CZ,EAAU7B,IAAI,SAAC2L,GAAK,OAAKA,EAHG,kBAG0B,CAAA,EAAEvf,KAAK,IAAI,CAAC,CAoF7C,SAAjBwf,EAAkBC,GACtB,IAAMC,EAAU,IAAI9C,KAAK,CAAC,EAE1B,OADA8C,EAAQC,YAAYF,EAAKG,YAAY,EAAGH,EAAKI,SAAS,EAAI,EAAG,CAAC,EACvDH,CACT,CA+BiB,SAAXI,EAAYC,EAAOC,GAAQ,OAAKC,EAAQF,EAAkB,EAAXC,CAAY,CAAC,CAsEjD,SAAXE,EAAYH,EAAOI,GAAQ,OAAKC,EAAUL,EAAkB,GAAXI,CAAa,CAAC,CASpD,SAAXE,EAAYN,EAAOI,GAAQ,OAAKD,EAASH,EAAO,CAACI,CAAQ,CAAC,CA8G/B,SAA3BG,EAA4Bb,EAAMc,EAASC,GAC/C,IAAId,EAAUD,EAQd,OANIA,EAAOc,EACTb,EAAUa,EACDC,GAAkBA,EAAPf,IACpBC,EAAUc,GAGL,IAAI5D,KAAK8C,EAAQe,QAAQ,CAAC,CACnC,CAgTgB,SAAVC,EAAWhf,GACf,IAAQif,GAAeC,EAAkBC,EAAqBnf,CAAE,GAAxDif,gBAA4BC,EAAXE,YAEbC,SAAW,CAAA,EACvBJ,EAAgBI,SAAW,CAAA,CAC7B,CAqB2B,SAArBC,EAAsBtf,GAC1B,IASSuf,EAAKC,EAAOC,EAQXC,EAjBFT,GAAeU,EAAuBR,EAAqBnf,CAAE,GAA7Dif,gBAAiBJ,EAAOc,EAAPd,QAASC,EAAOa,EAAPb,QAE5Bc,EAAaX,EAAgB/e,MAC/B2f,EAAY,CAAA,EA4BhB,OALMA,EArBFD,IACFC,EAAY,CAAA,EAGLN,GAKLO,EAAAvC,GANIwC,EAAkBH,EAAW1iB,MAAM,YAAY,GACVgV,IAAI,SAAC8N,GAC9C,IAAI9f,EACE+f,EAASC,SAASF,EAAK,EAAE,EAE/B,OAD2B9f,EAAtBmd,OAAO3S,MAAMuV,CAAM,EACjB/f,EAD4B+f,CAErC,CAAC,EAAC,CAAA,GALQ,GAAET,EAAKM,EAAA,GAAEL,EAAIK,EAAA,GAOnBN,IAASD,GAAe,MAARE,IACZC,EAAYS,GAAQV,EAAMD,EAAQ,EAAGD,CAAG,GAGlCpB,SAAS,IAAMqB,EAAQ,GACjCE,EAAUU,QAAQ,IAAMb,GACxBG,EAAUxB,YAAY,IAAMuB,GACE,IAA9BM,EAAgB,GAAGplB,QACnB0lB,GAAsBX,EAAWb,EAASC,CAAO,EAErC,CAAA,EAKXe,CACT,CA8CyB,SAAnBS,EAAoBtgB,EAAI4f,GAC5B,IAKIW,EACAC,EACAvB,EAPEwB,EAAaC,EAAgBd,CAAU,EAEzCa,IAGAF,GADFI,EAKIxB,EAAqBnf,CAAE,GAJzBugB,aACAC,EAAeG,EAAfH,gBACAvB,EAAe0B,EAAf1B,gBACA2B,EAAgBD,EAAhBC,iBAGIC,EAAgBC,EAAWL,EAAYG,CAAgB,EAE7DG,GAAmBP,EAAiBZ,CAAU,EAC9CmB,GAAmB9B,EAAiB4B,CAAa,EAEjDG,EAAkBT,CAAY,EAElC,CAuHuB,SAAjBU,EAAkBjhB,EAAIkhB,GA+H1B,IA9HA,IAsC0BC,EAClBlkB,EACAsiB,EACAC,EACAC,EACF2B,EAKEP,EAEFQ,EAEEC,EACAC,EApDNhB,GAAYiB,EASVrC,EAAqBnf,CAAE,GATzBugB,aACAkB,EAAUD,EAAVC,WACAC,EAAQF,EAARE,SACAC,EAAYH,EAAZG,aACA7C,EAAO0C,EAAP1C,QACAD,EAAO2C,EAAP3C,QACA+C,EAASJ,EAATI,UACAC,EAAQL,EAARK,SACAC,EAAON,EAAPM,QAEIC,EAAaC,GAAM,EACrBC,EAAgBf,GAAkBa,EAEhCG,EAAoBT,EAAWU,OAE/BC,EAAc7D,EAAQ0D,EAAe,CAAC,EACtCI,EAAeJ,EAAc9D,SAAS,EACtCmE,EAAcL,EAAc/D,YAAY,EAExCqE,EAAYC,GAAUP,EAAe,CAAC,EACtCQ,EAAY/D,EAAUuD,EAAe,CAAC,EAEtCS,EAAuB5B,EAAWmB,CAAa,EAE/CU,EAAeC,GAAaX,CAAa,EACzCY,EAAsBC,EAAYb,EAAepD,CAAO,EACxDkE,EAAsBD,EAAYb,EAAenD,CAAO,EAExDkE,EAAsBrB,GAAgBM,EACtCgB,EAAiBrB,GAAarX,GAAIyY,EAAqBpB,CAAS,EAChEsB,EAAetB,GAAatX,GAAI0Y,EAAqBpB,CAAS,EAE9DuB,EAAuBvB,GAAarD,EAAQ0E,EAAgB,CAAC,EAC7DG,EAAqBxB,GAAayB,GAAQH,EAAc,CAAC,EAEzDI,EAAaC,EAAalB,GAsFhCJ,EAAgBuB,GAAYb,CAAY,EAElCc,EAAO,GAGXA,EAAK9oB,OAAS,IACdsnB,EAAc9D,SAAS,IAAMkE,GAC7BoB,EAAK9oB,OAAS,GAAM,GAEpB8oB,EAAKtmB,MAzBCumB,EArDAnC,EADAD,EAFFD,EAFER,EALFO,EADE3B,EADAD,EADAD,EADAtiB,EAAAA,KAAAA,EAAAA,EAAU,CAAC0mB,GACXpE,GAFkB4B,EA6FGc,GA3FF7B,QAAQ,EAC3BZ,EAAQ2B,EAAahD,SAAS,EAC9BsB,EAAO0B,EAAajD,YAAY,EAEpB,CAAC,KADfkD,EAAYD,EAAayC,OAAO,EAAI,KAEtCxC,EAAY,GAGRP,EAAgBC,EAAWK,CAAY,EAEzCE,EAAW,KAETC,EAAa,CAACjB,GAAsBc,EAActC,EAASC,CAAO,EAClEyC,EAAasC,EAAU1C,EAAcQ,CAAY,EAEnDmB,EAAY3B,EAAcoB,CAAS,GACrCtlB,EAAQE,KAAK2mB,EAAkC,EAG7ChB,EAAY3B,EAAciB,CAAW,GACvCnlB,EAAQE,KAAK4mB,EAAiC,EAG5CjB,EAAY3B,EAAcsB,CAAS,GACrCxlB,EAAQE,KAAK6mB,EAA8B,EAGzCzC,GACFtkB,EAAQE,KAAK8mB,EAA4B,EAGvCJ,EAAU1C,EAAcY,CAAU,GACpC9kB,EAAQE,KAAK+mB,EAAyB,EAGpCtC,IACEiC,EAAU1C,EAAcS,CAAS,GACnC3kB,EAAQE,KAAKgnB,EAA8B,EAGzCN,EAAU1C,EAAc8B,CAAc,GACxChmB,EAAQE,KAAKinB,EAAoC,EAG/CP,EAAU1C,EAAc+B,CAAY,GACtCjmB,EAAQE,KAAKknB,EAAkC,EAI/ChE,GACEc,EACAgC,EACAC,CACF,IAEAnmB,EAAQE,KAAKmnB,EAAgC,EAI7CT,EAAU1C,EAAciB,CAAW,IACrCf,EAAW,IACXpkB,EAAQE,KAAKonB,EAA2B,GAGpCC,EAAWjB,EAAa/D,GACxBiF,EAASC,EAAmBtD,GAC5BsC,EAAgBnO,EAAKoP,gBAAgB7oB,QAAQ,WAAY2oB,CAAM,EAAE3oB,QAAQ,QAASyjB,CAAG,EAAEzjB,QAAQ,aAAc0oB,CAAQ,EAAE1oB,QAAQ,SAAU2jB,CAAI,EAEnJ,iDAAAzY,OAEcqa,EAAQ,kBAAA,EAAAra,OACX/J,EAAQqB,KAAK,GAAG,EAAC,sBAAA,EAAA0I,OACduY,EAAG,wBAAA,EAAAvY,OACDwY,EAAQ,EAAC,uBAAA,EAAAxY,OACVyY,EAAI,wBAAA,EAAAzY,OACH6Z,EAAa,uBAAA,EAAA7Z,OACb0c,EAAa,yBAAA,EAAA1c,OACXua,EAAa,OAAS,QAAO,WAAA,EAAAva,OAC3Csa,EAAU,sBAA2B,GAAE,SAAA,EAAAta,OACxCuY,EAAG,WAAA,EAYmC,EACzC0C,EAAgB1D,EAAQ0D,EAAe,CAAC,EAE1C,IAsDQ2C,EAtDFC,EAAYC,GAAerB,EAAM,CAAC,EAElCsB,EAActD,EAAWuD,UAAU,EAIrCC,GAHJF,EAAYG,QAAQhlB,MAAQwiB,EAC5BqC,EAAYvd,MAAM2R,IAAG,GAAAnS,OAAMuZ,EAAapI,aAAY,IAAA,EACpD4M,EAAY5C,OAAS,CAAA,EACV,6BAAAnb,OAAgCme,GAA0B,wBAAA,EAAAne,OACnDoe,GAAkB,0BAAA,EAAApe,OAChBqe,EAAmB,GAAA,EAAAre,OAAIse,GAAgC,wEAAA,EAAAte,OAGxDue,GAA4B,6BAAA,EAAAve,OACvBuO,EAAKiQ,cAAa,iBAAA,EAAAxe,OAC9B6b,EAAmB,sBAA2B,GAAE,oEAAA,EAAA7b,OAGxCqe,EAAmB,GAAA,EAAAre,OAAIse,GAAgC,wEAAA,EAAAte,OAGxDye,GAA6B,6BAAA,EAAAze,OACxBuO,EAAKmQ,eAAc,iBAAA,EAAA1e,OAC/B6b,EAAmB,sBAA2B,GAAE,oEAAA,EAAA7b,OAGxCqe,EAAmB,GAAA,EAAAre,OAAI2e,GAA0B,wEAAA,EAAA3e,OAGlD4e,GAA8B,gBAAA,EAAA5e,OAAiBsc,EAAU,IAAA,EAAAtc,OAAKuO,EAAKsQ,aAAY,iBAAA,EAAA7e,OACvFsc,EAAU,+EAAA,EAAAtc,OAGF8e,GAA6B,gBAAA,EAAA9e,OAAiBsb,EAAW,IAAA,EAAAtb,OAAKuO,EAAKwQ,YAAW,iBAAA,EAAA/e,OACtFsb,EAAW,iDAAA,EAAAtb,OAEFqe,EAAmB,GAAA,EAAAre,OAAIse,GAAgC,wEAAA,EAAAte,OAGxDgf,GAAyB,6BAAA,EAAAhf,OACpBuO,EAAK0Q,WAAU,iBAAA,EAAAjf,OAC3B+b,EAAmB,sBAA2B,GAAE,oEAAA,EAAA/b,OAGxCqe,EAAmB,GAAA,EAAAre,OAAIse,GAAgC,wEAAA,EAAAte,OAGxDkf,GAAwB,6BAAA,EAAAlf,OACnBuO,EAAK4Q,UAAS,iBAAA,EAAAnf,OAC1B+b,EAAmB,sBAA2B,GAAE,kFAAA,EAAA/b,OAIxCof,GAAoB,yDAAA,GAGxC,IAAQxB,KAAKF,EACXO,GAAO,cAAAje,OAAkBqf,GAA0B,4BAAA,EAAArf,OAA6B0d,EAAmBE,GAAE,IAAA,EAAA5d,OAAK0d,EAAmBE,GAAGva,OAAO,CAAC,EAAC,OAAA,EAqC3I,OAnCA4a,GAAO,uDAAAje,OAGG6d,EAAS,gDAAA,EAInBE,EAAY3J,UAAY6J,EACxBxD,EAAW/P,WAAW4U,aAAavB,EAAatD,CAAU,EAE1DlB,EAAa7jB,UAAUgB,IAAI6oB,EAAwB,EAC3B,CAAA,IAApB1E,EAASM,SACXN,EAASM,OAAS,CAAA,EACdL,EAAQK,UACVL,EAAQK,OAAS,CAAA,GAIfqE,EAAW,GAEbtE,EACFR,EAAS+E,YAAc,GAEhBvF,EAAenC,QAAQ,IAAMF,EAAQE,QAAQ,EACpDyH,EAASrpB,KAAKoY,EAAKmR,mBAAmB,EAEnB7nB,KAAAA,IAAZigB,GAAqC,KAAZA,GAAkBoC,EAAenC,QAAQ,IAAMD,EAAQC,QAAQ,EAC/FyH,EAASrpB,KAAKoY,EAAKoR,kBAAkB,EAGrCH,EAASrpB,KAAKoY,EAAKqR,wBAAwB9qB,QAAQ,eAAgBwnB,CAAU,EAAExnB,QAAQ,gBAAiBwmB,CAAW,CAAC,EAGtHZ,EAAS+E,YAAcD,EAASloB,KAAK,IAAI,EAElCymB,CACT,CA2FqB,SAAf8B,EAAgB7mB,GACpB,IAAQugB,GAAYuG,EAA2B3H,EAAqBnf,CAAE,GAA9DugB,aAAckB,EAAUqF,EAAVrF,WAAYC,EAAQoF,EAARpF,SAElCnB,EAAa7jB,UAAUqB,OAAOwoB,EAAwB,EACtD9E,EAAWU,OAAS,CAAA,EACpBT,EAAS+E,YAAc,EACzB,CA0DgC,SAA1BM,EAA2B/mB,GAC/B,IAAQyhB,GAAUuF,EAAkC7H,EAAqBnf,CAAE,GAAnEyhB,WAAYwF,EAASD,EAATC,UAAWpI,EAAOmI,EAAPnI,QAASC,EAAOkI,EAAPlI,QAClB,CAAC2C,EAAWU,QAEb8E,IACbhF,EAAgBrD,EAAyBqI,EAAWpI,EAASC,CAAO,EAC1EmC,EAAeQ,EAAYQ,CAAa,EAE5C,CAW8B,SAAxBiF,EAAyBlnB,EAAImnB,GACjC,IACE1F,GAAU2F,EAKRjI,EAAqBnf,CAAE,GALzByhB,WACAC,EAAQ0F,EAAR1F,SACA2F,EAAYD,EAAZC,aACAxI,EAAOuI,EAAPvI,QACAC,EAAOsI,EAAPtI,QAGIwI,EAAgBD,EAAalJ,SAAS,EACtCkE,EAAiC,MAAlB8E,EAAyBG,EAAgBH,EAExDI,EAAShE,EAAarR,IAAI,SAACsN,EAAOxhB,GACtC,IAAMwpB,EAAeC,EAASJ,EAAcrpB,CAAK,EAE3CsjB,EAAaoG,GACjBF,EACA3I,EACAC,CACF,EAEIuC,EAAW,KAETpkB,EAAU,CAAC0qB,IACXpG,EAAavjB,IAAUspB,EAW7B,OATItpB,IAAUqkB,IACZhB,EAAW,IACXpkB,EAAQE,KAAKyqB,EAA4B,GAGvCrG,GACFtkB,EAAQE,KAAK0qB,EAA6B,EAG5C,sDAAA7gB,OAEgBqa,EAAQ,oBAAA,EAAAra,OACX/J,EAAQqB,KAAK,GAAG,EAAC,0BAAA,EAAA0I,OACZhJ,EAAK,yBAAA,EAAAgJ,OACLwY,EAAK,2BAAA,EAAAxY,OACHua,EAAa,OAAS,QAAO,aAAA,EAAAva,OAC3Csa,EAAU,sBAA2B,GAAE,WAAA,EAAAta,OACxCwY,EAAK,WAAA,CACZ,CAAC,EAEKsI,EAAU,6BAAA9gB,OAAgC+gB,GAA2B,wBAAA,EAAA/gB,OACzDof,GAAoB,iDAAA,EAAApf,OAE9B8d,GAAeyC,EAAQ,CAAC,EAAC,0CAAA,EAWjC,OALAxC,EADoBtD,EAAWuD,UAAU,GAC7B5J,UAAY0M,EACxBrG,EAAW/P,WAAW4U,aAAavB,EAAatD,CAAU,EAE1DC,EAAS+E,YAAclR,EAAKyS,iBAErBjD,CACT,CA8B6B,SAAvBkD,EAAwBjoB,EAAIkoB,GA8BhC,IA7BA,IACEzG,GAAU0G,EAKRhJ,EAAqBnf,CAAE,GALzByhB,WACAC,EAAQyG,EAARzG,SACA2F,EAAYc,EAAZd,aACAxI,EAAOsJ,EAAPtJ,QACAC,EAAOqJ,EAAPrJ,QAGIsJ,EAAef,EAAanJ,YAAY,EACxCoE,EAA+B,MAAjB4F,EAAwBE,EAAeF,EAEvDG,EAAc/F,EAIZgG,GAHND,GAAeA,EAAcE,EAC7BF,EAAcrlB,KAAKsH,IAAI,EAAG+d,CAAW,EAEPG,GAC5BC,EAAQpB,EAAcgB,EAAc,CAAC,EACrCxJ,EACAC,CACF,GAEM4J,EAAwBF,GAC5BC,EAAQpB,EAAcgB,EAAcE,CAAU,EAC9C1J,EACAC,CACF,EAEM6J,EAAQ,GACVC,EAAYP,EACTM,EAAMhuB,OAAS4tB,GAAY,CAChC,IAAMjH,EAAakH,GACjBC,EAAQpB,EAAcuB,CAAS,EAC/B/J,EACAC,CACF,EAEIuC,EAAW,KAETpkB,EAAU,CAAC4rB,IACXtH,EAAaqH,IAAcR,EAE7BQ,IAActG,IAChBjB,EAAW,IACXpkB,EAAQE,KAAK2rB,EAA2B,GAGtCvH,GACFtkB,EAAQE,KAAK4rB,EAA4B,EAG3CJ,EAAMxrB,KAAI,sDAAA6J,OAGMqa,EAAQ,oBAAA,EAAAra,OACX/J,EAAQqB,KAAK,GAAG,EAAC,0BAAA,EAAA0I,OACZ4hB,EAAS,2BAAA,EAAA5hB,OACPua,EAAa,OAAS,QAAO,aAAA,EAAAva,OAC3Csa,EAAU,sBAA2B,GAAE,WAAA,EAAAta,OACxC4hB,EAAS,WAAA,CACd,EACAA,GAAa,CACf,CAEA,IAAMI,EAAYlE,GAAe6D,EAAO,CAAC,EACnCM,EAAyB1T,EAAK2T,eAAeptB,QAAQ,UAAWysB,CAAU,EAC1EY,EAAqB5T,EAAK6T,WAAWttB,QAAQ,UAAWysB,CAAU,EAClEc,EAAgB9T,EAAK+T,gBAAgBxtB,QAAQ,UAAWusB,CAAW,EAAEvsB,QAAQ,QAASusB,EAAcE,EAAa,CAAC,EAElHxD,EAActD,EAAWuD,UAAU,EAoCzC,OAnCAD,EAAY3J,UAAS,6BAAApU,OAAgCuiB,GAA0B,wBAAA,EAAAviB,OAC7Dof,GAAoB,0JAAA,EAAApf,OAMfwiB,GAAkC,kCAAA,EAAAxiB,OAC7BiiB,EAAsB,qBAAA,EAAAjiB,OAClCshB,EAAqB,sBAA2B,GAAE,iHAAA,EAAAthB,OAItCof,GAAoB,qEAAA,EAAApf,OAE9BgiB,EAAS,wKAAA,EAAAhiB,OAOJyiB,GAA8B,kCAAA,EAAAziB,OACzBmiB,EAAkB,qBAAA,EAAAniB,OAC9B0hB,EAAqB,sBAA2B,GAAE,oHAAA,EAOlEjH,EAAW/P,WAAW4U,aAAavB,EAAatD,CAAU,EAE1DC,EAAS+E,YAAc4C,EAEhBtE,CACT,CA0FiC,SAA3B2E,EAA4B7V,GAChC,IAAQ0M,GAAYoJ,EAAyCxK,EAAqBtL,EAAM1R,MAAM,GAAtFoe,aAActB,EAAe0K,EAAf1K,gBAAiB4C,EAAQ8H,EAAR9H,SAAUC,EAAO6H,EAAP7H,QAEjD+E,EAAatG,CAAY,EACzBsB,EAASM,OAAS,CAAA,EAClBL,EAAQK,OAAS,CAAA,EACjBlD,EAAgB2K,MAAM,EAEtB/V,EAAM2C,eAAe,CACvB,CAWuB,SAAjBqT,EAAkBC,GACtB,OAAO,SAACjW,GACN,IAAAkW,EAAuD5K,EACrDtL,EAAM1R,MACR,EAFQsf,EAAUsI,EAAVtI,WAAY4F,EAAY0C,EAAZ1C,aAAcxI,EAAOkL,EAAPlL,QAASC,EAAOiL,EAAPjL,QAIrCf,EAAO+L,EAAazC,CAAY,EAEhC2C,EAAapL,EAAyBb,EAAMc,EAASC,CAAO,EAC7D+E,EAAUwD,EAAc2C,CAAU,GACjB/I,EAAeQ,EAAYuI,CAAU,EAC7CpR,cAAcqR,CAAqB,EAAEL,MAAM,EAEzD/V,EAAM2C,eAAe,CACvB,CACF,CAsGmC,SAA7B0T,EAA8BC,GAClC,OAAO,SAACtW,GACN,IAAMuW,EAAUvW,EAAM1R,OAChBmlB,EAAgBpH,SAASkK,EAAQlF,QAAQhlB,MAAO,EAAE,EACxDmqB,EAAuDlL,EACrDiL,CACF,EAFQ3I,EAAU4I,EAAV5I,WAAY4F,EAAYgD,EAAZhD,aAAcxI,EAAOwL,EAAPxL,QAASC,EAAOuL,EAAPvL,QAGrCwL,EAAc7C,EAASJ,EAAcC,CAAa,EAEpDiD,EAAgBJ,EAAc7C,CAAa,EAC/CiD,EAAgBvnB,KAAKsH,IAAI,EAAGtH,KAAKuH,IAAI,GAAIggB,CAAa,CAAC,EAEjDxM,EAAO0J,EAASJ,EAAckD,CAAa,EAC3CP,EAAapL,EAAyBb,EAAMc,EAASC,CAAO,EAC7DgE,EAAYwH,EAAaN,CAAU,GAClB9C,EAClBzF,EACAuI,EAAW7L,SAAS,CACtB,EACYvF,cAAc4R,EAAsB,EAAEZ,MAAM,EAE1D/V,EAAM2C,eAAe,CACvB,CACF,CAuFkC,SAA5BiU,EAA6BC,GACjC,OAAO,SAAC7W,GACN,IAAM8W,EAAS9W,EAAM1R,OACfimB,EAAelI,SAASyK,EAAOzF,QAAQhlB,MAAO,EAAE,EACtD0qB,EAAuDzL,EACrDwL,CACF,EAFQlJ,EAAUmJ,EAAVnJ,WAAY4F,EAAYuD,EAAZvD,aAAcxI,EAAO+L,EAAP/L,QAASC,EAAO8L,EAAP9L,QAGrCwL,EAAc7B,EAAQpB,EAAce,CAAY,EAElDyC,EAAeH,EAAatC,CAAY,EAC5CyC,EAAe7nB,KAAKsH,IAAI,EAAGugB,CAAY,EAEjC9M,EAAO0K,EAAQpB,EAAcwD,CAAY,EACzCb,EAAapL,EAAyBb,EAAMc,EAASC,CAAO,EAC7DgM,GAAWR,EAAaN,CAAU,GACjB/B,EAClBxG,EACAuI,EAAW9L,YAAY,CACzB,EACYtF,cAAcmS,CAAqB,EAAEnB,MAAM,EAEzD/V,EAAM2C,eAAe,CACvB,CACF,CAsFmB,SAAbwU,EAAcC,GACU,SAAtBC,EAAuBlrB,GAC3B,IAAQyhB,EAAetC,EAAqBnf,CAAE,EAAtCyhB,WAIF0J,GAAeC,EAHKC,GAAOJ,EAAWxJ,CAAU,GAGf9mB,OAAS,EAC1C2wB,EAAeF,EAFC,GAGhBG,EAAcH,EAAkBD,GAChCK,EAAaJ,EAAkBnvB,QAAQwvB,GAAc,CAAC,EAM5D,MAAO,CACLL,kBAAAA,EACAM,WAJgC,CAAC,IAAhBF,EAKjBF,aAAAA,EACAK,WAdoB,IAOHH,EAQjBD,YAAAA,EACAK,UAVgBJ,IAAeL,CAWjC,CACF,CAEA,MAAO,CACLU,SAAQ,SAAChY,GACP,IAAAiY,EAAgDZ,EAC9CrX,EAAM1R,MACR,EAFQmpB,EAAYQ,EAAZR,aAAcM,EAASE,EAATF,UAAWF,EAAUI,EAAVJ,YAI7BE,GAAaF,KACf7X,EAAM2C,eAAe,EACrB8U,EAAa1B,MAAM,EAEvB,EACAmC,QAAO,SAAClY,GACN,IAAAmY,EAAgDd,EAC9CrX,EAAM1R,MACR,EAFQopB,EAAWS,EAAXT,YAAaI,EAAUK,EAAVL,WAAYD,EAAUM,EAAVN,YAI7BC,GAAcD,KAChB7X,EAAM2C,eAAe,EACrB+U,EAAY3B,MAAM,EAEtB,CACF,CACF,CA3kEA,IAAM3V,GAAW7Z,EAAQ,mBAAmB,EACtCixB,GAASjxB,EAAQ,iBAAiB,EAEhC6xB,GADmB7xB,EAAQ,WAAW,EAAtC8xB,OACU9xB,EAAQ,WAAW,EAA7B6xB,OACFR,GAAgBrxB,EAAQ,yBAAyB,EACjD+xB,EAAc/xB,EAAQ,wBAAwB,EAE9CgyB,EAAiB,cACjBC,GAAyB,GAAArlB,OAAMolB,EAAiB,WAAA,EAChDE,GAA6B,GAAAtlB,OAAMolB,EAAiB,eAAA,EACpD7F,GAAwB,GAAAvf,OAAMolB,EAAiB,UAAA,EAC/CG,GAAgC,GAAAvlB,OAAMolB,EAAiB,kBAAA,EACvDI,GAAgC,GAAAxlB,OAAMolB,EAAiB,kBAAA,EACvDK,GAAwB,GAAAzlB,OAAMolB,EAAiB,UAAA,EAC/CM,EAA0B,GAAA1lB,OAAMolB,EAAiB,YAAA,EACjDO,GAAwB,GAAA3lB,OAAMolB,EAAiB,UAAA,EAC/CQ,GAAuB,GAAA5lB,OAAMolB,EAAiB,SAAA,EAC9CzI,EAAmB,GAAA3c,OAAM0lB,EAA0B,QAAA,EAEnDG,GAAoB,iBACpBC,GAA0B,IAAA9lB,OAAO6lB,EAAoB,EAErDtI,GAA2B,GAAAvd,OAAM2c,EAAmB,WAAA,EACpDM,GAA4B,GAAAjd,OAAM2c,EAAmB,YAAA,EACrDG,GAAkC,GAAA9c,OAAM2c,EAAmB,kBAAA,EAC3DI,GAAiC,GAAA/c,OAAM2c,EAAmB,iBAAA,EAC1DK,GAA8B,GAAAhd,OAAM2c,EAAmB,cAAA,EACvDQ,GAA8B,GAAAnd,OAAM2c,EAAmB,cAAA,EACvDO,GAAyB,GAAAld,OAAM2c,EAAmB,SAAA,EAClDS,GAAoC,GAAApd,OAAM2c,EAAmB,oBAAA,EAC7DU,GAAkC,GAAArd,OAAM2c,EAAmB,kBAAA,EAC3DW,GAAgC,GAAAtd,OAAM2c,EAAmB,gBAAA,EACzD4B,GAA4B,GAAAve,OAAM0lB,EAA0B,iBAAA,EAC5DjH,GAA6B,GAAAze,OAAM0lB,EAA0B,kBAAA,EAC7DxG,GAAwB,GAAAlf,OAAM0lB,EAA0B,aAAA,EACxD1G,GAAyB,GAAAhf,OAAM0lB,EAA0B,cAAA,EACzD9G,GAA8B,GAAA5e,OAAM0lB,EAA0B,mBAAA,EAC9D5G,GAA6B,GAAA9e,OAAM0lB,EAA0B,kBAAA,EAC7D/E,GAAoB,GAAA3gB,OAAM0lB,EAA0B,SAAA,EACpD9E,GAA4B,GAAA5gB,OAAM2gB,GAAoB,WAAA,EACtDE,GAA6B,GAAA7gB,OAAM2gB,GAAoB,YAAA,EACvDkB,GAAmB,GAAA7hB,OAAM0lB,EAA0B,QAAA,EACnD5D,GAA2B,GAAA9hB,OAAM6hB,GAAmB,WAAA,EACpDE,GAA4B,GAAA/hB,OAAM6hB,GAAmB,YAAA,EACrDW,GAAkC,GAAAxiB,OAAM0lB,EAA0B,uBAAA,EAClEjD,GAA8B,GAAAziB,OAAM0lB,EAA0B,mBAAA,EAC9DvH,GAA0B,GAAAne,OAAM0lB,EAA0B,eAAA,EAC1D3E,GAA2B,GAAA/gB,OAAM0lB,EAA0B,gBAAA,EAC3DnD,GAA0B,GAAAviB,OAAM0lB,EAA0B,eAAA,EAC1DtG,GAAoB,GAAApf,OAAM0lB,EAA0B,SAAA,EACpDtH,GAAkB,GAAApe,OAAM0lB,EAA0B,OAAA,EAClDrH,EAAmB,GAAAre,OAAM0lB,EAA0B,QAAA,EACnDpH,GAAgC,GAAAte,OAAMqe,EAAmB,gBAAA,EACzDM,GAA0B,GAAA3e,OAAM0lB,EAA0B,eAAA,EAC1DrG,GAA0B,GAAArf,OAAM0lB,EAA0B,eAAA,EAE1DK,EAAW,IAAA/lB,OAAOolB,CAAiB,EACnCY,GAAkB,IAAAhmB,OAAOylB,EAAwB,EACjDQ,GAA0B,IAAAjmB,OAAOulB,EAAgC,EACjEW,GAA0B,IAAAlmB,OAAOwlB,EAAgC,EACjEW,GAAoB,IAAAnmB,OAAO0lB,CAA0B,EACrDU,GAAkB,IAAApmB,OAAO2lB,EAAwB,EACjDU,GAAiB,IAAArmB,OAAO4lB,EAAuB,EAC/CU,EAAa,IAAAtmB,OAAO2c,CAAmB,EACvCsG,EAAqB,IAAAjjB,OAAOud,EAA2B,EACvDgJ,GAA2B,IAAAvmB,OAAO+c,EAAiC,EACnEyJ,GAAsB,IAAAxmB,OAAOue,EAA4B,EACzDkI,GAAuB,IAAAzmB,OAAOye,EAA6B,EAC3DiI,GAAkB,IAAA1mB,OAAOkf,EAAwB,EACjDyH,GAAmB,IAAA3mB,OAAOgf,EAAyB,EACnD4H,EAAuB,IAAA5mB,OAAO8e,EAA6B,EAC3D+H,EAAwB,IAAA7mB,OAAO4e,EAA8B,EAC7DkI,GAAc,IAAA9mB,OAAO2gB,EAAoB,EACzCoG,GAAa,IAAA/mB,OAAO6hB,EAAmB,EACvCmF,GAA4B,IAAAhnB,OAAOwiB,EAAkC,EACrEyE,GAAwB,IAAAjnB,OAAOyiB,EAA8B,EAC7DyE,EAAoB,IAAAlnB,OAAOme,EAA0B,EACrDgJ,GAAqB,IAAAnnB,OAAO+gB,EAA2B,EACvDqG,GAAoB,IAAApnB,OAAOuiB,EAA0B,EACrDiB,GAAsB,IAAAxjB,OAAO4gB,EAA4B,EACzDmD,EAAqB,IAAA/jB,OAAO8hB,EAA2B,EAEzDvT,EAAO,CACT8Y,cAAiB,eACjBC,cAAiB,eACjBC,sBAAyB,6FACzBC,qBAAwB,yEACxBC,oBAAuB,gFACvB9J,gBAAmB,wCACnBiC,wBAA2B,mCAC3BF,oBAAuB,uBACvBC,mBAAsB,uBACtBnB,cAAiB,wBACjBE,eAAkB,2BAClBO,WAAc,wBACdE,UAAa,qBACbN,aAAgB,aAChBE,YAAe,UACfmD,eAAkB,6BAClBE,WAAc,0BACdsF,MAAS,+QACT1G,iBAAoB,gBACpBsB,gBAAmB,0CACnBqF,QAAW,SACXC,SAAY,UACZC,MAAS,QACTC,MAAS,QACTC,IAAO,MACPC,KAAQ,OACRC,KAAQ,OACRC,OAAU,SACVC,UAAa,YACbC,QAAW,UACXC,SAAY,WACZC,SAAY,WACZC,OAAU,SACVC,QAAW,UACXC,UAAa,SACbC,SAAY,UACZC,OAAU,SACVC,SAAY,SACZC,OAAU,QACZ,EAEMC,GAAqB,kCAEvBvM,EAAe,CACjBhO,EAAKoZ,QACLpZ,EAAKqZ,SACLrZ,EAAKsZ,MACLtZ,EAAKuZ,MACLvZ,EAAKwZ,IACLxZ,EAAKyZ,KACLzZ,EAAK0Z,KACL1Z,EAAK2Z,OACL3Z,EAAK4Z,UACL5Z,EAAK6Z,QACL7Z,EAAK8Z,SACL9Z,EAAK+Z,UAGH5K,EAAqB,CACvBnP,EAAKga,OACLha,EAAKia,QACLja,EAAKka,UACLla,EAAKma,SACLna,EAAKoa,OACLpa,EAAKqa,SACLra,EAAKsa,QAKDtH,EAAa,GAEbwH,GAAmB,aACnBC,EAAuB,aACvBC,GAAuB,aACvBC,GAAuB,aACvBC,GAAuB,aACvBC,GAAuB,aACvBC,GAAuB,aAOvBC,GAAwB3S,EAC5B6P,GACAC,GACAG,EACAC,EACAH,GACAC,GACA1D,CACF,EAEMsG,GAAyB5S,EAC7B6M,EACF,EAEMgG,GAAwB7S,EAC5BqQ,GACAC,GACAlD,CACF,EAWM0F,GAAsB,SAACC,EAAalR,GAKxC,OAJIA,IAAUkR,EAAYvS,SAAS,GACjCuS,EAAYvQ,QAAQ,CAAC,EAGhBuQ,CACT,EAUMvQ,GAAU,SAACV,EAAMD,EAAOzB,GAC5B,IAAMC,EAAU,IAAI9C,KAAK,CAAC,EAE1B,OADA8C,EAAQC,YAAYwB,EAAMD,EAAOzB,CAAI,EAC9BC,CACT,EAOMgE,GAAQ,WACZ,IAAMhE,EAAU,IAAI9C,KACdqE,EAAMvB,EAAQoC,QAAQ,EACtBZ,EAAQxB,EAAQG,SAAS,EACzBsB,EAAOzB,EAAQE,YAAY,EACjC,OAAOiC,GAAQV,EAAMD,EAAOD,CAAG,CACjC,EAQMqD,GAAe,SAAC7E,GACpB,IAAMC,EAAU,IAAI9C,KAAK,CAAC,EAE1B,OADA8C,EAAQC,YAAYF,EAAKG,YAAY,EAAGH,EAAKI,SAAS,EAAG,CAAC,EACnDH,CACT,EAqBMO,EAAU,SAACF,EAAOsS,GAChB3S,EAAU,IAAI9C,KAAKmD,EAAMU,QAAQ,CAAC,EAExC,OADAf,EAAQmC,QAAQnC,EAAQoC,QAAQ,EAAIuQ,CAAO,EACpC3S,CACT,EASMqF,GAAU,SAAChF,EAAOsS,GAAO,OAAKpS,EAAQF,EAAO,CAACsS,CAAO,CAAC,EA0BtDnN,GAAc,SAACnF,GACnB,IAAI+C,EAAY/C,EAAMuF,OAAO,EAAE,EAI/B,OAAOP,GAAQhF,EAFb+C,EADe,CAAC,IAAfA,EACW,EAEQA,CAAS,CACjC,EAqBM1C,EAAY,SAACL,EAAOuS,GACxB,IAAM5S,EAAU,IAAI9C,KAAKmD,EAAMU,QAAQ,CAAC,EAElC8R,GAAa7S,EAAQG,SAAS,EAAI,GAAKyS,GAAa,GAI1D,OAHA5S,EAAQyJ,SAASzJ,EAAQG,SAAS,EAAIyS,CAAS,EAC/CH,GAAoBzS,EAAS6S,CAAS,EAE/B7S,CACT,EASMwE,GAAY,SAACnE,EAAOuS,GAAS,OAAKlS,EAAUL,EAAO,CAACuS,CAAS,CAAC,EA2B9DnJ,EAAW,SAACpJ,EAAOmB,GACjBxB,EAAU,IAAI9C,KAAKmD,EAAMU,QAAQ,CAAC,EAKxC,OAHAf,EAAQyJ,SAASjI,CAAK,EACtBiR,GAAoBzS,EAASwB,CAAK,EAE3BxB,CACT,EASMyK,EAAU,SAACpK,EAAOoB,GACtB,IAAMzB,EAAU,IAAI9C,KAAKmD,EAAMU,QAAQ,CAAC,EAElCS,EAAQxB,EAAQG,SAAS,EAI/B,OAHAH,EAAQC,YAAYwB,CAAI,EACxBgR,GAAoBzS,EAASwB,CAAK,EAE3BxB,CACT,EASMzT,GAAM,SAACumB,EAAOC,GAOlB,OAAO,IAAI7V,MAJP6V,EAAQD,EACAC,EAHED,GAMU/R,QAAQ,CAAC,CACnC,EASMzU,GAAM,SAACwmB,EAAOC,GAOlB,OAAO,IAAI7V,MAJC4V,EAARC,EACQA,EAHED,GAMU/R,QAAQ,CAAC,CACnC,EASM+L,GAAa,SAACgG,EAAOC,GACzB,OAAOD,GAASC,GAASD,EAAM5S,YAAY,IAAM6S,EAAM7S,YAAY,CACrE,EASM4E,EAAc,SAACgO,EAAOC,GAC1B,OAAOjG,GAAWgG,EAAOC,CAAK,GAAKD,EAAM3S,SAAS,IAAM4S,EAAM5S,SAAS,CACzE,EASM0F,EAAY,SAACiN,EAAOC,GACxB,OAAOjO,EAAYgO,EAAOC,CAAK,GAAKD,EAAM1Q,QAAQ,IAAM2Q,EAAM3Q,QAAQ,CACxE,EA8BMC,GAAwB,SAACtC,EAAMc,EAASC,GAAO,OAC3CD,GAARd,IAAoB,CAACe,GAAWf,GAAQe,EAAQ,EAU5C4I,GAA8B,SAAC3J,EAAMc,EAASC,GAClD,OACEhB,EAAeC,CAAI,EAAIc,GAAYC,GAAW8D,GAAa7E,CAAI,EAAIe,CAEvE,EAUM0J,GAA6B,SAACzK,EAAMc,EAASC,GACjD,OACEhB,EAAe2J,EAAS1J,EAAM,EAAE,CAAC,EAAIc,GACpCC,GAAW8D,GAAa6E,EAAS1J,EAAM,CAAC,CAAC,EAAIe,CAElD,EAUM4B,EAAkB,SACtBd,GAGG,IACC7B,EACAyB,EAQCiF,EAAQD,EAAUwM,EAebvR,EATNQ,EAgCIV,EAlDR0R,EAAU,EAAArzB,UAAAjD,QAAAkE,KAAAA,IAAAjB,UAAA,GAAAA,UAAA,GAAGyyB,GACba,EAAU,EAAAtzB,UAAAjD,QAAAkE,KAAAA,IAAAjB,UAAA,IAAAA,UAAA,GA4DV,OAJImgB,EAhDA6B,IAEEqR,IAAejB,GAAwBiB,IAAehB,IAAwBgB,IAAef,IAAwBe,IAAed,IAAwBc,IAAeb,IAC5K3L,GAA2D0M,EAAA5T,EAA9BqC,EAAW1iB,MAAM,YAAY,EAAC,CAAA,GAArD,GAAEsnB,EAAQ2M,EAAA,GAAEH,EAAOG,EAAA,KAEzBH,GAAkDI,EAAA7T,EAArBqC,EAAW1iB,MAAM,GAAG,EAAC,CAAA,GAA3C,GAAEsnB,EAAQ4M,EAAA,GAAE3M,EAAM2M,EAAA,IAGxBJ,IACF/Q,EAASC,SAAS8Q,EAAS,EAAE,EACxB3T,OAAO3S,MAAMuV,CAAM,IACtBR,EAAOQ,EACHiR,IACFzR,EAAOzc,KAAKsH,IAAI,EAAGmV,CAAI,EACnBuR,EAAQr2B,OAAS,KAInB8kB,GAHM4R,EAAcrP,GAAM,EAAE9D,YAAY,GAEvBmT,EAAWruB,KAAAsuB,IAAG,GAAMN,EAAQr2B,MAAM,EAC1BslB,KAM7BuE,IACFvE,EAASC,SAASsE,EAAU,EAAE,EACzBnH,OAAO3S,MAAMuV,CAAM,IACtBT,EAAQS,EACJiR,IACF1R,EAAQxc,KAAKsH,IAAI,EAAGkV,CAAK,EACzBA,EAAQxc,KAAKuH,IAAI,GAAIiV,CAAK,KAK5BA,GAASiF,GAAkB,MAARhF,IACrBQ,EAASC,SAASuE,EAAQ,EAAE,EACvBpH,OAAO3S,MAAMuV,CAAM,IACtBV,EAAMU,EACFiR,IACIK,EAAoBpR,GAAQV,EAAMD,EAAO,CAAC,EAAEY,QAAQ,EAC1Db,EAAMvc,KAAKsH,IAAI,EAAGiV,CAAG,EACrBA,EAAMvc,KAAKuH,IAAIgnB,EAAmBhS,CAAG,KAKvCC,IAASD,GAAe,MAARE,EACXU,GAAQV,EAAMD,EAAQ,EAAGD,CAAG,EAIhCxB,CACT,EASM+C,EAAa,SAAC/C,GACD,SAAXyT,EAAYtxB,EAAOvF,GACvB,MAAO,OAAAqM,OAAO9G,CAAK,EAAGS,MAAM,CAAChG,CAAM,CACrC,CAH8D,IAAtCs2B,EAAU,EAAArzB,UAAAjD,QAAAkE,KAAAA,IAAAjB,UAAA,GAAAA,UAAA,GAAGyyB,GAK/B7Q,EAAQzB,EAAKI,SAAS,EAAI,EAC1BoB,EAAMxB,EAAKqC,QAAQ,EACnBX,EAAO1B,EAAKG,YAAY,EAE9B,OAAI+S,IAAejB,EACV,CAACwB,EAASjS,EAAK,CAAC,EAAGiS,EAAShS,EAAO,CAAC,EAAGgS,EAAS/R,EAAM,CAAC,GAAGnhB,KAAK,GAAG,EAElE2yB,IAAehB,GACf,CAACuB,EAASjS,EAAK,CAAC,EAAGiS,EAAShS,EAAO,CAAC,EAAGgS,EAAS/R,EAAM,CAAC,GAAGnhB,KAAK,GAAG,EAElE2yB,IAAef,GACf,CAACsB,EAASjS,EAAK,CAAC,EAAGiS,EAAShS,EAAO,CAAC,EAAGgS,EAAS/R,EAAM,CAAC,GAAGnhB,KAAK,GAAG,EAElE2yB,IAAed,GACf,CAACqB,EAASjS,EAAK,CAAC,EAAGiS,EAAShS,EAAO,CAAC,EAAGgS,EAAS/R,EAAM,CAAC,GAAGnhB,KAAK,GAAG,GAElE2yB,IAAeb,GAEf,CADY,CAACoB,EAASjS,EAAK,CAAC,EAAGiS,EAAShS,EAAO,CAAC,GAAGlhB,KAAK,GAAG,EAC5CkzB,EAAS/R,EAAM,CAAC,GAGjC,CAAC+R,EAAS/R,EAAM,CAAC,EAAG+R,EAAShS,EAAO,CAAC,EAAGgS,EAASjS,EAAK,CAAC,IAHnBjhB,KAAK,GAAG,CAIrD,EAWMwmB,GAAiB,SAAC2M,EAAWC,GAKjC,IAJA,IAAMC,EAAO,GACTC,EAAM,GAEN13B,EAAI,EACDA,EAAIu3B,EAAU92B,QAAQ,CAE3B,IADAi3B,EAAM,GACC13B,EAAIu3B,EAAU92B,QAAUi3B,EAAIj3B,OAAS+2B,GAC1CE,EAAIz0B,KAAI,OAAA6J,OAAQyqB,EAAUv3B,GAAE,OAAA,CAAO,EACnCA,GAAK,EAEPy3B,EAAKx0B,KAAI,OAAA6J,OAAQ4qB,EAAItzB,KAAK,EAAE,EAAC,OAAA,CAAO,CACtC,CAEA,OAAOqzB,EAAKrzB,KAAK,EAAE,CACrB,EAQMyiB,GAAqB,SAAC/gB,GAE1B6xB,EAAgB3xB,MAFmB,EAAAtC,UAAAjD,QAAAkE,KAAAA,IAAAjB,UAAA,GAAAA,UAAA,GAAG,GAAO,IAKzCiW,EAAQ,IAAIgD,MAAM,QAAQ,EAC9Bgb,EAAgB/a,cAAcjD,CAAK,CACrC,EA4BMsL,EAAuB,SAACnf,GACtBugB,EAAevgB,EAAG4T,QAAQmZ,CAAW,EAE3C,GAAI,CAACxM,EACH,MAAM,IAAIhmB,MAAK,4BAAAyM,OAA6B+lB,CAAW,CAAE,EAG3D,IAAMvM,EAAkBD,EAAa3H,cACnCqU,EACF,EACMhO,EAAkBsB,EAAa3H,cACnCsU,EACF,EACMzL,EAAalB,EAAa3H,cAAcuU,EAAoB,EAC5D/N,EAAcmB,EAAa3H,cAAcoU,EAAkB,EAC3DtL,EAAWnB,EAAa3H,cAAcwU,EAAkB,EACxDtL,EAAUvB,EAAa3H,cAAcyU,EAAiB,EACtDyE,EAAmBvR,EAAa3H,cAAcmV,EAAa,EAC3DlM,EAAWtB,EAAa3H,cAAckU,EAA0B,EAGlEiF,EAAqB/B,EACzB,GAAIzP,EAAayR,aAAa,iBAAiB,EAC7C,OAAQzR,EAAa2E,QAAQ+M,YAC3B,KAAKjC,EACH+B,EAAqB/B,EACrB,MACF,KAAKC,GACH8B,EAAqB9B,GACrB,MACF,KAAKC,GACH6B,EAAqB7B,GACrB,MACF,KAAKC,GACH4B,EAAqB5B,GACrB,MACF,KAAKC,GACH2B,EAAqB3B,EACzB,CAEF,IAAMxP,EAAmBmR,EAEnB9K,EAAYvG,EAChBzB,EAAgB/e,MAChB0gB,EACA,CAAA,CACF,EACMe,EAAejB,EAAgBF,EAAgBtgB,KAAK,EAEpDmnB,EAAe3G,EAAgBe,EAAWyD,QAAQhlB,KAAK,EACvD2e,EAAU6B,EAAgBH,EAAa2E,QAAQrG,OAAO,EACtDC,EAAU4B,EAAgBH,EAAa2E,QAAQpG,OAAO,EACtD8C,EAAYlB,EAAgBH,EAAa2E,QAAQtD,SAAS,EAC1DsQ,EAAcxR,EAAgBH,EAAa2E,QAAQgN,WAAW,EAEpE,GAAIrT,GAAWC,GAAqBA,EAAVD,EACxB,MAAM,IAAItkB,MAAM,2CAA2C,EAG7D,MAAO,CACL8sB,aAAAA,EACAxI,QAAAA,EACAO,YAAAA,EACAyC,SAAAA,EACAF,aAAAA,EACA7C,QAAAA,EACAgT,iBAAAA,EACAvR,aAAAA,EACA0G,UAAAA,EACAzG,gBAAAA,EACAvB,gBAAAA,EACAwC,WAAAA,EACAG,UAAAA,EACAsQ,YAAAA,EACAxQ,SAAAA,EACAI,QAAAA,EACAlB,iBAAAA,CACF,CACF,EAyEMI,EAAoB,SAAChhB,GACzB,IAAQif,EAAoBE,EAAqBnf,CAAE,EAA3Cif,gBACFY,EAAYP,EAAmBL,CAAe,EAEhDY,GAAa,CAACZ,EAAgBkT,mBAChClT,EAAgBmT,kBAAkBtC,EAAkB,EAGjDjQ,GAAaZ,EAAgBkT,oBAAsBrC,IACtD7Q,EAAgBmT,kBAAkB,EAAE,CAExC,EAi4BMC,GAAmBxI,EAAe,SAAC9L,GAAI,OA57CPK,EA47CqBL,EA57CL,CA47CW,CA57CF,CA47CI,CAAA,EAO7DuU,GAAqBzI,EAAe,SAAC9L,GAAI,OAAKK,EAASL,EAAM,CAAC,CAAC,CAAA,EAO/DwU,GAAqB1I,EAAe,SAAC9L,GAAI,OAAKsF,GAAQtF,EAAM,CAAC,CAAC,CAAA,EAO9DyU,GAAsB3I,EAAe,SAAC9L,GAAI,OAAKQ,EAAQR,EAAM,CAAC,CAAC,CAAA,EAO/D0U,GAAqB5I,EAAe,SAAC9L,GAAI,OAAKyF,GAAYzF,CAAI,CAAC,CAAA,EAO/D2U,GAAoB7I,EAAe,SAAC9L,GAAI,OAv8CtCqD,GADW/C,EAw8C0CN,GAv8CnC6F,OAAO,EACxBrF,EAAQF,EAAO,EAAI+C,CAAS,EAFnB,IACVA,CAu8C0D,CAAA,EAO5DuR,GAAyB9I,EAAe,SAAC9L,GAAI,OAAKW,EAAUX,EAAM,CAAC,CAAC,CAAA,EAOpE6U,GAAuB/I,EAAe,SAAC9L,GAAI,OAAKyE,GAAUzE,EAAM,CAAC,CAAC,CAAA,EAOlE8U,GAA8BhJ,EAAe,SAAC9L,GAAI,OAAKS,EAAST,EAAM,CAAC,CAAC,CAAA,EAOxE+U,GAA4BjJ,EAAe,SAAC9L,GAAI,OAAKY,EAASZ,EAAM,CAAC,CAAC,CAAA,EA8DtEgV,GAAoB7I,EAA2B,SAAC1K,GAAK,OAAKA,EAAQ,CAAC,CAAA,EAOnEwT,GAAsB9I,EAA2B,SAAC1K,GAAK,OAAKA,EAAQ,CAAC,CAAA,EAOrEyT,GAAsB/I,EAA2B,SAAC1K,GAAK,OAAKA,EAAQ,CAAC,CAAA,EAOrE0T,GAAuBhJ,EAA2B,SAAC1K,GAAK,OAAKA,EAAQ,CAAC,CAAA,EAOtE2T,GAAsBjJ,EAC1B,SAAC1K,GAAK,OAAKA,EAASA,EAAQ,CAAE,CAChC,EAOM4T,GAAqBlJ,EACzB,SAAC1K,GAAK,OAAKA,EAAQ,EAAKA,EAAQ,CAAE,CACpC,EAOM6T,GAA0BnJ,EAA2B,WAAA,OAAM,EAAE,CAAA,EAO7DoJ,GAAwBpJ,EAA2B,WAAA,OAAM,CAAC,CAAA,EAyD1DqJ,GAAmB9I,EAA0B,SAAChL,GAAI,OAAKA,EAAO,CAAC,CAAA,EAO/D+T,GAAqB/I,EAA0B,SAAChL,GAAI,OAAKA,EAAO,CAAC,CAAA,EAOjEgU,GAAqBhJ,EAA0B,SAAChL,GAAI,OAAKA,EAAO,CAAC,CAAA,EAOjEiU,GAAsBjJ,EAA0B,SAAChL,GAAI,OAAKA,EAAO,CAAC,CAAA,EAOlEkU,GAAqBlJ,EACzB,SAAChL,GAAI,OAAKA,EAAQA,EAAO,CAAE,CAC7B,EAOMmU,GAAoBnJ,EACxB,SAAChL,GAAI,OAAKA,EAAO,EAAKA,EAAO,CAAE,CACjC,EAOMoU,GAAuBpJ,EAC3B,SAAChL,GAAI,OAAKA,EAAO8I,CAAU,CAC7B,EAOMuL,GAAyBrJ,EAC7B,SAAChL,GAAI,OAAKA,EAAO8I,CAAU,CAC7B,EAuEMwL,GAA4B/I,EAAWsF,EAAqB,EAC5D0D,GAA6BhJ,EAAWuF,EAAsB,EAC9D0D,GAA4BjJ,EAAWwF,EAAqB,EAM5D0D,GAAgBjX,EAAAF,EAAA,GACnBkP,GAAKhP,EAAAkX,EAAA,GACHnH,GAAkB,WAjvBA,IAAChtB,EAGpB6hB,EACAJ,EAEA5C,EACAC,EACAoT,EACApQ,EAIMG,GAbcjiB,EAkvBHrG,MAjvBZ0lB,WAELwC,GADFuS,EAQIjV,EAAqBnf,CAAE,GAPzB6hB,SACAJ,EAAU2S,EAAV3S,WACAwF,EAASmN,EAATnN,UACApI,EAAOuV,EAAPvV,QACAC,EAAOsV,EAAPtV,QACAoT,EAAWkC,EAAXlC,YACApQ,EAAOsS,EAAPtS,QAGEL,EAAWU,QACPF,EAAgBrD,EACpBqI,GAAaiL,GAAelQ,GAAM,EAClCnD,EACAC,CACF,EACoBmC,EAAeQ,EAAYQ,CAAa,EAChDrJ,cAAcqR,CAAqB,EAAEL,MAAM,IAEvD/C,EAAa7mB,CAAE,EACf6hB,EAASM,OAAS,CAAA,EAClBL,EAAQK,OAAS,CAAA,GA4tBjB,CAAC,EAAAlF,EAAAkX,EACA7G,EAAa,WAvwBC,IAAC+G,EAGV9T,EAActB,EAAiB4C,EAAUC,GAH/BuS,EAwwBH16B,MAvwBI0lB,WAEXkB,GAAR+T,EAA6DnV,EAC3DkV,CACF,GAFQ9T,aAActB,EAAeqV,EAAfrV,gBAAiB4C,EAAQyS,EAARzS,SAAUC,EAAOwS,EAAPxS,QAGjDxB,EAAiB+T,EAAgBA,EAAenP,QAAQhlB,KAAK,EAC7D2mB,EAAatG,CAAY,EACzBsB,EAASM,OAAS,CAAA,EAClBL,EAAQK,OAAS,CAAA,EAEjBlD,EAAgB2K,MAAM,EA8vBpB,CAAC,EAAA3M,EAAAkX,EACArG,GAAc,WAhoBC,IAAC1D,EAEX3I,EAA0B5C,EAASC,EAK3Cf,GAPmBqM,EAioBHzwB,MAhoBJ0lB,WACJoC,GAAR8S,EAAuDpV,EACrDiL,CACF,GAFQ3I,WAAY4F,EAAYkN,EAAZlN,aAAcxI,EAAO0V,EAAP1V,QAASC,EAAOyV,EAAPzV,QAGrCwI,EAAgBpH,SAASkK,EAAQlF,QAAQhlB,MAAO,EAAE,EACpD6d,EAAO0J,EAASJ,EAAcC,CAAa,EAC/CvJ,EAAOa,EAAyBb,EAAMc,EAASC,CAAO,EAClCmC,EAAeQ,EAAY1D,CAAI,EACvCnF,cAAcqR,CAAqB,EAAEL,MAAM,EAynBrD,CAAC,EAAA3M,EAAAkX,EACApG,GAAa,WA7bC,IAACpD,EAEVlJ,EAA0B5C,EAASC,EAK3Cf,GAPkB4M,EA8bHhxB,MA7bJ0lB,WACHoC,GAAR+S,EAAuDrV,EACrDwL,CACF,GAFQlJ,WAAY4F,EAAYmN,EAAZnN,aAAcxI,EAAO2V,EAAP3V,QAASC,EAAO0V,EAAP1V,QAGrCsJ,EAAelI,SAASyK,EAAOvP,UAAW,EAAE,EAC9C2C,EAAO0K,EAAQpB,EAAce,CAAY,EAC7CrK,EAAOa,EAAyBb,EAAMc,EAASC,CAAO,EAClCmC,EAAeQ,EAAY1D,CAAI,EACvCnF,cAAcqR,CAAqB,EAAEL,MAAM,EAsbrD,CAAC,EAAA3M,EAAAkX,EACA1G,GAAuB,WA51BC,IAACgH,EAEpBhT,EAIR1D,EACMgH,GAPsB0P,EA61BH96B,MA51BX0lB,WACNoC,GAARiT,EAAuDvV,EACrDsV,CACF,GAFQhT,WAAY4F,EAAYqN,EAAZrN,aAAcxI,EAAO6V,EAAP7V,QAASC,EAAO4V,EAAP5V,QAGvCf,EAAOyE,GAAU6E,EAAc,CAAC,EACpCtJ,EAAOa,EAAyBb,EAAMc,EAASC,CAAO,GAKpD6V,GAFEA,GAFE5P,EAAc9D,EAAeQ,EAAY1D,CAAI,GAErBnF,cAAc6U,EAAuB,GACnDpO,SACA0F,EAAYnM,cAAcsV,CAAoB,EAE9DyG,GAAY/K,MAAM,EAi1BhB,CAAC,EAAA3M,EAAAkX,EACAxG,GAAmB,WA10BC,IAAC8G,EAEhBhT,EAIR1D,EACMgH,GAPkB0P,EA20BH96B,MA10BP0lB,WACNoC,GAARmT,EAAuDzV,EACrDsV,CACF,GAFQhT,WAAY4F,EAAYuN,EAAZvN,aAAcxI,EAAO+V,EAAP/V,QAASC,EAAO8V,EAAP9V,QAGvCf,EAAOW,EAAU2I,EAAc,CAAC,EACpCtJ,EAAOa,EAAyBb,EAAMc,EAASC,CAAO,GAKpD6V,GAFEA,GAFE5P,EAAc9D,EAAeQ,EAAY1D,CAAI,GAErBnF,cAAc+U,EAAmB,GAC/CtO,SACA0F,EAAYnM,cAAcsV,CAAoB,EAE9DyG,GAAY/K,MAAM,EA+zBhB,CAAC,EAAA3M,EAAAkX,EACA3G,GAAsB,WAv3BC,IAACiH,EAEnBhT,EAIR1D,EACMgH,GAPqB0P,EAw3BH96B,MAv3BV0lB,WACNoC,GAARoT,EAAuD1V,EACrDsV,CACF,GAFQhT,WAAY4F,EAAYwN,EAAZxN,aAAcxI,EAAOgW,EAAPhW,QAASC,EAAO+V,EAAP/V,QAGvCf,EAAOY,EAAS0I,EAAc,CAAC,EACnCtJ,EAAOa,EAAyBb,EAAMc,EAASC,CAAO,GAKpD6V,GAFEA,GAFE5P,EAAc9D,EAAeQ,EAAY1D,CAAI,GAErBnF,cAAc4U,EAAsB,GAClDnO,SACA0F,EAAYnM,cAAcsV,CAAoB,EAE9DyG,GAAY/K,MAAM,EA42BhB,CAAC,EAAA3M,EAAAkX,EACAzG,GAAkB,WA3zBC,IAAC+G,EAEfhT,EAIR1D,EACMgH,GAPiB0P,EA4zBH96B,MA3zBN0lB,WACNoC,GAARqT,EAAuD3V,EACrDsV,CACF,GAFQhT,WAAY4F,EAAYyN,EAAZzN,aAAcxI,EAAOiW,EAAPjW,QAASC,EAAOgW,EAAPhW,QAGvCf,EAAOS,EAAS6I,EAAc,CAAC,EACnCtJ,EAAOa,EAAyBb,EAAMc,EAASC,CAAO,GAKpD6V,GAFEA,GAFE5P,EAAc9D,EAAeQ,EAAY1D,CAAI,GAErBnF,cAAc8U,EAAkB,GAC9CrO,SACA0F,EAAYnM,cAAcsV,CAAoB,EAE9DyG,GAAY/K,MAAM,EAgzBhB,CAAC,EAAA3M,EAAAkX,EACAnG,GAA4B,WA1gBA,IAAChuB,EAGxByhB,EAUFuI,EACAjF,EAKF4P,GAnB4B30B,EA2gBHrG,MA1gBtB0lB,WAECoC,GAARsT,EAAuD5V,EACrDnf,CACF,GAFQyhB,WAAY4F,EAAY0N,EAAZ1N,aAAcxI,EAAOkW,EAAPlW,QAASC,EAAOiW,EAAPjW,QAGrC6L,EAASlJ,EAAW7I,cAAcmS,CAAqB,EAGzDF,EAFiB3K,SAASyK,EAAOlE,YAAa,EAAE,EAElB8B,EAClCsC,EAAe7nB,KAAKsH,IAAI,EAAGugB,CAAY,EAEjC9M,EAAO0K,EAAQpB,EAAcwD,CAAY,EACzCb,EAAapL,EAAyBb,EAAMc,EAASC,CAAO,GAQhE6V,GAFEA,GALE5P,EAAckD,EAClBxG,EACAuI,EAAW9L,YAAY,CACzB,GAE8BtF,cAAcoV,EAA4B,GACxD3O,SACA0F,EAAYnM,cAAcwV,EAAoB,EAE9DuG,GAAY/K,MAAM,EAqfhB,CAAC,EAAA3M,EAAAkX,EACAlG,GAAwB,WA9eA,IAACjuB,EAGpByhB,EAUFuI,EACAjF,EAKF4P,GAnBwB30B,EA+eHrG,MA9elB0lB,WAECoC,GAARuT,EAAuD7V,EACrDnf,CACF,GAFQyhB,WAAY4F,EAAY2N,EAAZ3N,aAAcxI,EAAOmW,EAAPnW,QAASC,EAAOkW,EAAPlW,QAGrC6L,EAASlJ,EAAW7I,cAAcmS,CAAqB,EAGzDF,EAFiB3K,SAASyK,EAAOlE,YAAa,EAAE,EAElB8B,EAClCsC,EAAe7nB,KAAKsH,IAAI,EAAGugB,CAAY,EAEjC9M,EAAO0K,EAAQpB,EAAcwD,CAAY,EACzCb,EAAapL,EAAyBb,EAAMc,EAASC,CAAO,GAQhE6V,GAFEA,GALE5P,EAAckD,EAClBxG,EACAuI,EAAW9L,YAAY,CACzB,GAE8BtF,cAAcqV,EAAwB,GACpD5O,SACA0F,EAAYnM,cAAcwV,EAAoB,EAE9DuG,GAAY/K,MAAM,EAydhB,CAAC,EAAA3M,EAAAkX,EACAtG,EAAwB,WACH3G,EAAsBvtB,IAAI,EAClCif,cAAc4R,EAAsB,EAAEZ,MAAM,CAC1D,CAAC,EAAA3M,EAAAkX,EACAvG,EAAuB,WACF3F,EAAqBtuB,IAAI,EACjCif,cAAcmS,CAAqB,EAAEnB,MAAM,CACzD,CAAC,EAAAuK,EAAA,EAAAlX,EAAAF,EAAA,QAAAE,EAAA,GAGAkQ,GAAoB,SAAEtZ,GACrB,IAAMohB,EAAUt7B,KAAKurB,QAAQgQ,eACzB,GAAAluB,OAAG6M,EAAMvH,OAAO,IAAO2oB,GACzBphB,EAAM2C,eAAe,CAEzB,CAAC,CAAA,EAAAyG,EAAAF,EAAA,WAAAE,EAAAkY,EAAA,GAGAjI,GAA0B,SAAErZ,GAh/DX,KAi/DZA,EAAMvH,SACR0U,EAAkBrnB,IAAI,CAE1B,CAAC,EAAAsjB,EAAAkY,EACA7H,GAAgB,EAAAtQ,EAAA7I,QAAO,CACtBihB,GAAI/C,GACJgD,QAAShD,GACTiD,KAAMhD,GACNiD,UAAWjD,GACXkD,KAAMjD,GACNkD,UAAWlD,GACXmD,MAAOlD,GACPmD,WAAYnD,GACZoD,KAAMnD,GACNoD,IAAKnD,GACLoD,SAAUnD,GACVoD,OAAQnD,GACRoD,iBAAkBnD,GAClBoD,eAAgBnD,EAClB,CAAC,CAAC,EAAA7V,EAAAkY,EACDjH,GAAuB,EAAAlR,EAAA7I,QAAO,CAC7B+hB,IAAKnC,GAA0BlI,SAC/BsK,YAAapC,GAA0BhI,OACzC,CAAC,CAAC,EAAA9O,EAAAkY,EACDrH,IAAiB,EAAA9Q,EAAA7I,QAAO,CACvBihB,GAAIrC,GACJsC,QAAStC,GACTuC,KAAMtC,GACNuC,UAAWvC,GACXwC,KAAMvC,GACNwC,UAAWxC,GACXyC,MAAOxC,GACPyC,WAAYzC,GACZ0C,KAAMzC,GACN0C,IAAKzC,GACL0C,SAAUzC,GACV0C,OAAQzC,EACV,CAAC,CAAC,EAAArW,EAAAkY,EACDhH,IAAwB,EAAAnR,EAAA7I,QAAO,CAC9B+hB,IAAKlC,GAA2BnI,SAChCsK,YAAanC,GAA2BjI,OAC1C,CAAC,CAAC,EAAA9O,EAAAkY,EACDpH,IAAgB,EAAA/Q,EAAA7I,QAAO,CACtBihB,GAAI7B,GACJ8B,QAAS9B,GACT+B,KAAM9B,GACN+B,UAAW/B,GACXgC,KAAM/B,GACNgC,UAAWhC,GACXiC,MAAOhC,GACPiC,WAAYjC,GACZkC,KAAMjC,GACNkC,IAAKjC,GACLkC,SAAUhC,GACViC,OAAQlC,EACV,CAAC,CAAC,EAAA5W,EAAAkY,EACD/G,IAAuB,EAAApR,EAAA7I,QAAO,CAC7B+hB,IAAKjC,GAA0BpI,SAC/BsK,YAAalC,GAA0BlI,OACzC,CAAC,CAAC,EAAA9O,EAAAkY,EACDhI,GAAoB,SAAEtZ,GACrBla,KAAKurB,QAAQgQ,eAAiBrhB,EAAMvH,OACtC,CAAC,EAAA2Q,EAAAkY,EACApI,EAAW,SAAElZ,IACG,EAAAmJ,EAAA7I,QAAO,CACpBiiB,OAAQ1M,CACV,CAAC,EAEM7V,CAAK,CACd,CAAC,EAAAshB,EAAA,EAAAlY,EAAAF,EAAA,YAAAE,EAAAoZ,EAAA,GAGAnJ,GAA0B,WACzBlM,EAAkBrnB,IAAI,CACxB,CAAC,EAAAsjB,EAAAoZ,EACAtJ,EAAW,SAAElZ,GACPla,KAAK8D,SAASoW,EAAMyiB,aAAa,GACpCzP,EAAaltB,IAAI,CAErB,CAAC,EAAA08B,EAAA,EAAApZ,EAAAF,EAAA,QAAAE,EAAA,GAGAiQ,GAA0B,WAh3CF,IAACltB,EAC5Bu2B,EAAQ/V,EACJgW,EADJD,EAAuCpX,EADXnf,EAi3CHrG,IAh3CqC,EAAtD6mB,EAAe+V,EAAf/V,gBAAiByG,EAASsP,EAATtP,UACrBuP,EAAW,GAEXvP,GAAa,CAAC3H,EAAmBtf,CAAE,IACrCw2B,EAAW1V,EAAWmG,CAAS,GAG7BzG,EAAgBtgB,QAAUs2B,GAC5BzV,GAAmBP,EAAiBgW,CAAQ,EAy2C1CzP,EAAwBptB,IAAI,CAC9B,CAAC,CAAA,EAAAojB,GAkBC0Z,IAdDtK,EAAY,IACf+H,EAAiBwC,WAASzZ,EAAA0Z,EAAA,GACvBpJ,GAA2B,WA1bA,IAACqJ,EAGzBnV,EAOAQ,GAVyB2U,EA2bHj9B,MA1bjB0lB,WAILwX,GAFApV,EAAamV,EAAOhjB,QAAQuZ,EAAoB,GAEfjI,QAAQhlB,OACzC42B,EAAYF,EAAO1R,QAAQhlB,SAEf22B,IAEZ5U,EAAgBvB,EAAgBoW,CAAS,EAC3B7V,EAAeQ,EAAYQ,CAAa,EAChDrJ,cAAcqR,CAAqB,EAAEL,MAAM,GAgbrD,CAAC,EAAA3M,EAAA0Z,EACA7I,GAAc,WA1Uc,IAAC1D,EAI1B2M,GAJ0B3M,EA2UHzwB,MA1UjB0lB,UACR+K,EAAQ1tB,UAAUe,SAASmqB,EAA4B,IAErDmP,EAAa7W,SAASkK,EAAQlF,QAAQhlB,MAAO,EAAE,EAEjCgnB,EAAsBkD,EAAS2M,CAAU,EACjDne,cAAc4R,EAAsB,EAAEZ,MAAM,EAqUtD,CAAC,EAAA3M,EAAA0Z,EACA5I,GAAa,WA3Nc,IAACpD,EAIzBqM,GAJyBrM,EA4NHhxB,MA3NjB0lB,UACPsL,EAAOjuB,UAAUe,SAASqrB,EAA2B,IAEnDkO,EAAY9W,SAASyK,EAAOzF,QAAQhlB,MAAO,EAAE,EAE/B+nB,EAAqB0C,EAAQqM,CAAS,EAC9Cpe,cAAcmS,CAAqB,EAAEnB,MAAM,EAsNrD,CAAC,EAAA+M,IAIc1iB,GAASigB,EAAkB,CAC5C1e,KAAI,SAACyhB,GACH5L,GAAO0B,EAAakK,CAAI,EAAEj8B,QAAQ,SAACulB,GACjC,GAAG,CAACA,EAAa7jB,UAAUe,SAAS6uB,EAA6B,EAAE,CACjE4K,IA11CAC,GAAe5W,EADAvgB,EAAG4T,QAAQmZ,CAAW,GACT7H,QAAQiS,aAEpC3W,EAAkBD,EAAa3H,cAAa,OAAQ,EAE1D,GAAI,CAAC4H,EACH,MAAM,IAAIjmB,MAAK,GAAAyM,OAAI+lB,EAAW,yBAAA,CAAyB,EAGzD,IA+CQqK,EACAC,EACAC,EACAC,EAVAC,EACAC,EAzCF5Y,EAAU6B,EACdH,EAAa2E,QAAQrG,SAAW2B,EAAgBxjB,aAAa,KAAK,CACpE,EAKM8hB,GAJNyB,EAAa2E,QAAQrG,QAAUA,EAC3BiC,EAAWjC,CAAO,EAClBkR,GAEYrP,EACdH,EAAa2E,QAAQpG,SAAW0B,EAAgBxjB,aAAa,KAAK,CACpE,GAKM06B,GAJF5Y,IACFyB,EAAa2E,QAAQpG,QAAUgC,EAAWhC,CAAO,GAG3B7jB,SAASC,cAAc,KAAK,GAI9C+jB,GAHNyY,EAAgBh7B,UAAUgB,IAAI2uB,EAAyB,EACvDqL,EAAgBC,SAAW,KAEHnX,EAAgBwE,UAAU,GAK9C4S,GAJJ3Y,EAAgBviB,UAAUgB,IAAI8uB,EAAgC,EAC9DvN,EAAgB5iB,KAAO,OACvB4iB,EAAgB1iB,KAAO,GAELgZ,EAAK+Y,eACjBuJ,EAAyBh5B,KAAAA,IAAZggB,GAAqC,KAAZA,EACtCiZ,EAAgCj5B,KAAAA,IAAZggB,GAAqC,KAAZA,GAAkB6B,EAAgBqP,EAAgB,EAAEhR,QAAQ,IAAMF,EAAQE,QAAQ,EAC/HgZ,EAAyBl5B,KAAAA,IAAZigB,GAAqC,KAAZA,EA4BtCkZ,GA1BFH,GAAc,CAACC,GAAoBC,GAC/BE,EAASpZ,EAAQuB,QAAQ,EACzB8X,EAAWrZ,EAAQV,SAAS,EAC5Bga,EAAc5U,EAAa2U,GAC3BE,EAAUvZ,EAAQX,YAAY,EAC9Bma,EAASvZ,EAAQsB,QAAQ,EACzBkY,EAAWxZ,EAAQX,SAAS,EAC5Boa,EAAchV,EAAa+U,GAC3BE,EAAU1Z,EAAQZ,YAAY,EACpC0Z,EAAcriB,EAAKgZ,sBAAsBzyB,QAAQ,WAAYm8B,CAAM,EAAEn8B,QAAQ,gBAAiBq8B,CAAW,EAAEr8B,QAAQ,YAAas8B,CAAO,EAAEt8B,QAAQ,WAAYu8B,CAAM,EAAEv8B,QAAQ,gBAAiBy8B,CAAW,EAAEz8B,QAAQ,YAAa08B,CAAO,GAEhOX,CAAAA,GAAeC,GAAqBC,EAOpCA,IACDX,EAAStY,EAAQsB,QAAQ,EACzBiX,EAAWvY,EAAQX,SAAS,EAC5BmZ,EAAc/T,EAAa8T,GAC3BE,EAAUzY,EAAQZ,YAAY,EACpC0Z,EAAcriB,EAAKiZ,qBAAqB1yB,QAAQ,WAAYs7B,CAAM,EAAEt7B,QAAQ,gBAAiBw7B,CAAW,EAAEx7B,QAAQ,YAAay7B,CAAO,IAXhIC,EAAS3Y,EAAQuB,QAAQ,EACzBqX,EAAW5Y,EAAQV,SAAS,EAC5Bsa,EAAclV,EAAakU,GAC3BiB,EAAU7Z,EAAQX,YAAY,EACpC0Z,EAAcriB,EAAKkZ,oBAAoB3yB,QAAQ,WAAY07B,CAAM,EAAE17B,QAAQ,gBAAiB28B,CAAW,EAAE38B,QAAQ,YAAa48B,CAAO,GAUvHzZ,EAAgBjiB,aAAa,IAAI,EAAI,UAErD06B,EAAgBhwB,YAAYuX,CAAe,EAC3CyY,EAAgBiB,mBACd,YACA,CAAA,gCAAA3xB,OACkCylB,GAAwB,qCAAA,EAAAzlB,OAAsCuO,EAAK8Y,cAAa,mBAAA,EAAA,eAAArnB,OACjG6lB,GAAoB,gDAAA,EAAA7lB,OAAiD4wB,EAAW,sBAAA,EAAA5wB,OAAuBgxB,EAAO,+CAAA,EAAAhxB,OAAgD0lB,EAA0B,6BAAA,EAAA,uBAAA1lB,OAChL2lB,GAAwB,2CAAA,EAAA,uBAAA3lB,OACxB4lB,GAAuB,QAAA,EAAA5lB,OAASgxB,EAAO,WAAA,EAAAhxB,OAAYuO,EAAKmZ,MAAK,QAAA,GACpFpwB,KAAK,EAAE,CACX,EAEAkiB,EAAgBnjB,aAAa,cAAe,MAAM,EAClDmjB,EAAgBnjB,aAAa,WAAY,IAAI,EAC7CmjB,EAAgB9jB,UAAUgB,IACxB,UACA6uB,EACF,EACA/L,EAAgBoY,gBAAgB,IAAI,EACpCpY,EAAgBqY,SAAW,CAAA,EAE3BtY,EAAa7Y,YAAYgwB,CAAe,EACxCnX,EAAa7jB,UAAUgB,IAAI4uB,EAA6B,EAEpD6K,GACF7W,EAAiBC,EAAc4W,CAAY,EAGzC3W,EAAgBnB,WAClBL,EAAQuB,CAAY,EACpBC,EAAgBnB,SAAW,CAAA,GAGzBJ,EAAgB/e,OAClB8gB,EAAkB/B,CAAe,CA0vC/B,CACF,CAAC,CACH,EACA6Z,YAAW,SAACzjB,GAEVkO,EAAe,EADfhO,EAAOF,GAEAsZ,QACLpZ,EAAKqZ,SACLrZ,EAAKsZ,MACLtZ,EAAKuZ,MACLvZ,EAAKwZ,IACLxZ,EAAKyZ,KACLzZ,EAAK0Z,KACL1Z,EAAK2Z,OACL3Z,EAAK4Z,UACL5Z,EAAK6Z,QACL7Z,EAAK8Z,SACL9Z,EAAK+Z,UAEP5K,EAAqB,CACnBnP,EAAKga,OACLha,EAAKia,QACLja,EAAKka,UACLla,EAAKma,SACLna,EAAKoa,OACLpa,EAAKqa,SACLra,EAAKsa,OAET,EACA1Q,qBAAAA,EACAH,QAAAA,EACA+Z,OAn/Ca,SAAC/4B,GACd,IAAAg5B,EAAyC7Z,EAAqBnf,CAAE,EAAxDif,EAAe+Z,EAAf/Z,gBAA4B+Z,EAAX5Z,YAEbC,SAAW,CAAA,EACvBJ,EAAgBI,SAAW,CAAA,CAC7B,EA++CEC,mBAAAA,EACAgB,iBAAAA,EACAU,kBAAAA,EACAC,eAAAA,EACA8F,wBAAAA,CACF,CAAC,GAID1tB,EAAOD,QAAUq9B,E,2KC9xEjB,aAAa/6B,OAAA6C,eAAAnF,EAAA,aAAA,CAAA8G,MAAA,CAAA,CAAA,CAAA,EAAA9G,EAAA,QAAA,KAAA,EACb,IAC8CmZ,EAD9C0mB,GAC8C1mB,EAD9CnY,EAAA,YAAA,IAC8CmY,EAAA2mB,WAAA3mB,EAAA,CAAA4mB,QAAA5mB,CAAA,EAM9C,SAAS6mB,EAAc1e,GACnB/gB,KAAK+gB,UAAYA,EACjB/gB,KAAK+c,OAASgE,EAAUrD,uBAAuB,sBAAsB,EAAE,GAGnE1d,KAAK+gB,UAAU9B,cAAc,+CAA+C,GAC5Ejf,KAAK+gB,UAAU/I,iBAAiB,0BAA0B,EAAE,GAAGtU,aAAa,eAAgB,MAAM,EAGtG1D,KAAK0/B,oBAAoB,CAC7B,CAhBAj/B,EAAA,sCAAA,EAqBAg/B,EAAah6B,UAAUoW,KAAO,WAC1B7b,KAAK2/B,aAAe,IAAIL,EAAA,QAASt/B,KAAK+c,MAAM,EAAElB,KAAK,EAGnD,IADA,IAAI+jB,EAAiB5/B,KAAK+gB,UAAU/I,iBAAiB,0BAA0B,EACvExH,EAAI,EAAGA,EAAIovB,EAAe5+B,OAAQwP,CAAC,GAC1BovB,EAAepvB,GACrBqJ,iBAAiB,QAAS7Z,KAAK6/B,cAAc1jB,KAAKnc,IAAI,CAAC,CAEtE,EAKAy/B,EAAah6B,UAAUi6B,oBAAsB,WACzC,IAAII,EAAe9/B,KAAK+gB,UAAU9B,cAAc,+CAA+C,EAC/Fjf,KAAK+gB,UAAUrD,uBAAuB,sBAAsB,EAAE,GAAGA,uBAAuB,gBAAgB,EAAE,GAAGhB,UAAYojB,EAAapjB,SAC1I,EAMA+iB,EAAah6B,UAAUo6B,cAAgB,SAAS1/B,GAC5C,IAAI4/B,EAAK5/B,EAAEqI,OAAOuP,WAIdgF,GAHJgjB,EAAGhoB,WAAWkH,cAAc,gCAAgC,EAAEggB,gBAAgB,cAAc,EAC5Fc,EAAG/nB,iBAAiB,0BAA0B,EAAE,GAAGtU,aAAa,eAAgB,MAAM,EAEzEq8B,EAAGhoB,WAAWA,WAAWA,WAAW2F,uBAAuB,sBAAsB,EAAE,IAC5FsiB,EAAgB,IAAI9iB,MAAM,uBAAuB,EACrD8iB,EAAclgB,OAAS9f,KAAKwI,OAC5BuU,EAAOI,cAAc6iB,CAAa,EAClChgC,KAAK0/B,oBAAoB,EAGN,IAAIJ,EAAA,QAASviB,CAAM,EACzB9T,KAAK,CACtB,EAE2BxJ,EAAA,QAAZggC,C,mFC7Df,aAAa19B,OAAA6C,eAAAnF,EAAA,aAAA,CAAA8G,MAAA,CAAA,CAAA,CAAA,EAAA9G,EAAA,QAAA,KAAA,EACb,IAAMwgC,EAAcx/B,EAAQ,sBAAsB,EAC5Cya,EAAS,wBAETglB,EAAS,iBAMf,SAASC,EAAUC,GAKjB,GAJApgC,KAAKogC,cAAgBA,EACrBpgC,KAAK8iB,SAAW,KAChB9iB,KAAKqgC,8BAAgC,CAAA,EAEX,OAAvBrgC,KAAKogC,eAAgDl7B,KAAAA,IAAvBlF,KAAKogC,cACpC,MAAM,IAAIx/B,MAAK,oDAAqD,EAElEiiB,EAAa7iB,KAAKogC,cAAc/8B,aAAa68B,CAAM,EACvD,GAAGrd,MAAAA,EACD,MAAM,IAAIjiB,MAAM,4DAA4Ds/B,CAAM,EAEhFpd,EAAWxhB,SAASyhB,eAAeF,EAAW1gB,QAAQ,IAAK,EAAE,CAAC,EAClE,GAAG2gB,MAAAA,EACD,MAAM,IAAIliB,MAAM,uDAAuD,EAEzEZ,KAAK8iB,SAAWA,CAClB,CAKAqd,EAAS16B,UAAUoW,KAAO,WACxB,IAYMW,EAGE5C,EAfkB,OAAvB5Z,KAAKogC,eAAiDl7B,KAAAA,IAAvBlF,KAAKogC,eAAiD,OAAlBpgC,KAAK8iB,UAAuC5d,KAAAA,IAAlBlF,KAAK8iB,YAEhG9iB,KAAKogC,cAAcroB,WAAWhV,UAAUe,SAAS,iCAAiC,GAAK9D,KAAKogC,cAAcroB,WAAWhV,UAAUe,SAAS,iCAAiC,KAC1K9D,KAAKqgC,8BAAgC,CAAA,GAIvC/+B,SAASwd,qBAAqB,MAAM,EAAG,GAAIhF,oBAAoB,QAASwmB,CAAY,EACpFh/B,SAASwd,qBAAqB,MAAM,EAAG,GAAIjF,iBAAiB,QAASymB,CAAY,EAEjFtgC,KAAKogC,cAActmB,oBAAoB,QAASymB,CAAc,EAC9DvgC,KAAKogC,cAAcvmB,iBAAiB,QAAS0mB,CAAc,GACvD/jB,EAAUxc,MAENqgC,gCACFzmB,EAAU5Z,KAAKogC,cACfvgC,OAAO2gC,qBAEM,IAAIA,qBAAqB,SAAUv2B,GAE5CA,EAAS,GAAIw2B,kBAC+B,UAA1C7mB,EAAQvW,aAAa,eAAe,GACtCmZ,EAAQsG,SAASpf,aAAa,cAAe,MAAM,EAIA,SAAjD8Y,EAAQsG,SAASzf,aAAa,aAAa,GAC7CmZ,EAAQsG,SAASpf,aAAa,cAAe,OAAO,CAG1D,EAAG,CACD45B,KAAMh8B,SAAS4c,IACjB,CAAC,EACQ6B,QAAQnG,CAAO,GAGpB8mB,EAAqBlkB,EAAQ2G,SAAS,GAEM,UAA1CvJ,EAAQvW,aAAa,eAAe,EACtCmZ,EAAQsG,SAASpf,aAAa,cAAe,MAAM,EAMrD8Y,EAAQsG,SAASpf,aAAa,cAAe,OAAO,EAEtD7D,OAAOga,iBAAiB,SAAU,WAC5B6mB,EAAqBlkB,EAAQ2G,SAAS,GACM,UAA1CvJ,EAAQvW,aAAa,eAAe,EACtCmZ,EAAQsG,SAASpf,aAAa,cAAe,MAAM,EAKrD8Y,EAAQsG,SAASpf,aAAa,cAAe,OAAO,CAExD,CAAC,IAKLpC,SAASwY,oBAAoB,QAAS6mB,CAAa,EACnDr/B,SAASuY,iBAAiB,QAAS8mB,CAAa,EAEpD,EAKAR,EAAS16B,UAAUwD,KAAO,WACxB1E,EAAOvE,KAAKogC,aAAa,CAC3B,EAKAD,EAAS16B,UAAUmY,KAAO,WACxBrZ,EAAOvE,KAAKogC,aAAa,CAC3B,EAqDa,SAATQ,EAAmBv6B,GACrB,IAAIkZ,EAAOlZ,EAAGoY,sBAAsB,EAClCoiB,EAAahhC,OAAOihC,aAAex/B,SAASmI,gBAAgBo3B,WAC5DE,EAAYlhC,OAAOmhC,aAAe1/B,SAASmI,gBAAgBs3B,UAC7D,MAAO,CAAEvhB,IAAKD,EAAKC,IAAMuhB,EAAWE,KAAM1hB,EAAK0hB,KAAOJ,CAAW,CACnE,CAyEgB,SAAZK,EAAsBC,EAAOC,GAC/B,OAAGD,EAAMppB,WAAWspB,UAAYD,GAEJ,SAAlBA,GAAyD,SAA7BD,EAAMppB,WAAWspB,SAC9CH,EAAUC,EAAMppB,WAAYqpB,CAAa,CAIpD,CAzIA,IAAIT,EAAgB,SAASzmB,GAEf,MADFA,EAAMxH,OAASwH,EAAMvH,UAE7B2uB,EAASpnB,CAAK,CAElB,EAgBIonB,EAAW,WAKb,IALoC,IAAbpnB,EAAK,EAAAjW,UAAAjD,QAAAkE,KAAAA,IAAAjB,UAAA,GAAAA,UAAA,GAAG,KAC3Bs9B,EAAU,CAAA,EAGVC,GAFSlgC,SAAS2d,cAAc,MAAM,EAErB3d,SAASoc,uBAAuB,eAAe,GAC3D+jB,EAAK,EAAGA,EAAKD,EAAexgC,OAAQygC,CAAE,GAAI,CACjD,IAScrkB,EATVskB,EAAwBF,EAAgBC,GACxCte,EAAYue,EAAsBziB,cAAc/D,EAAO,wBAAwB,EAClE,OAAdiI,IACDoe,EAAU,CAAA,EAGS,QAFfze,EAAW4e,EAAsBziB,cAAc,IAAIkE,EAAU9f,aAAa68B,CAAM,EAAE/9B,QAAQ,IAAK,EAAE,CAAC,KAE7D,OAAdghB,GACpBud,EAAqBvd,CAAS,IACgB,CAAA,IAA5CA,EAAU9f,aAAa,eAAe,IACnC+Z,EAAa,IAAIF,MAAM,oBAAoB,EAC/CiG,EAAUhG,cAAcC,CAAU,GAEpC+F,EAAUzf,aAAa,gBAAiB,OAAO,EAC/Cof,EAAS/f,UAAUgB,IAAI,WAAW,EAClC+e,EAASpf,aAAa,cAAe,MAAM,EAIrD,CAEG69B,GAAqB,OAAVrnB,GACZA,EAAMynB,yBAAyB,CAEnC,EAQIpB,EAAiB,SAAUrmB,GAA2B,IAApB0nB,EAAU,EAAA39B,UAAAjD,QAAAkE,KAAAA,IAAAjB,UAAA,IAAAA,UAAA,GAC9CiW,EAAM0C,gBAAgB,EACtB1C,EAAM2C,eAAe,EAErBtY,EAAOvE,KAAM4hC,CAAU,CAEzB,EAEIr9B,EAAS,SAASwY,GAA2B,IAiCvC8kB,EAjCoBD,EAAU,EAAA39B,UAAAjD,QAAAkE,KAAAA,IAAAjB,UAAA,IAAAA,UAAA,GAElC6e,EAAW,KACZK,MAAAA,GAEEN,OADCA,EAAaM,EAAU9f,aAAa68B,CAAM,KAE5Cpd,EAAWxhB,SAASyhB,eAAeF,EAAW1gB,QAAQ,IAAK,EAAE,CAAC,GAG/DghB,MAAAA,GAAAA,MAAiDL,IAGlDA,EAASjV,MAAMozB,KAAO,KACtBne,EAASjV,MAAMi0B,MAAQ,KAEwB,SAA5C3e,EAAU9f,aAAa,eAAe,GAAgBu+B,GAEvDze,EAAUzf,aAAa,gBAAiB,OAAO,EAC/Cof,EAAS/f,UAAUgB,IAAI,WAAW,EAClC+e,EAASpf,aAAa,cAAe,MAAM,EACvC0Z,EAAa,IAAIF,MAAM,oBAAoB,EAC/CiG,EAAUhG,cAAcC,CAAU,IAG9B9b,SAASwd,qBAAqB,MAAM,EAAE,GAAG/b,UAAUe,SAAS,mBAAmB,GACjFw9B,EAAS,EAGXne,EAAUzf,aAAa,gBAAiB,MAAM,EAC9Cof,EAAS/f,UAAUqB,OAAO,WAAW,EACrC0e,EAASpf,aAAa,cAAe,OAAO,EACxCuZ,EAAY,IAAIC,MAAM,mBAAmB,EAC7CiG,EAAUhG,cAAcF,CAAS,GAC7B4kB,EAAejB,EAAO9d,CAAQ,GAElBme,KAAO,IACrBne,EAASjV,MAAMozB,KAAO,MACtBne,EAASjV,MAAMi0B,MAAQ,QAEbD,EAAaZ,KAAOne,EAASif,YAC9BliC,OAAOmiC,aAChBlf,EAASjV,MAAMozB,KAAO,OACtBne,EAASjV,MAAMi0B,MAAQ,QAGrBG,EAAcrB,EAAO9d,CAAQ,GAElBme,KAAO,IAEpBne,EAASjV,MAAMozB,KAAO,MACtBne,EAASjV,MAAMi0B,MAAQ,QAEjBG,EAAYhB,KAAOne,EAASif,YACzBliC,OAAOmiC,aAEhBlf,EAASjV,MAAMozB,KAAO,OACtBne,EAASjV,MAAMi0B,MAAQ,QAK/B,EAYIxB,EAAe,SAAU1gB,GAC3B,GAAG,CAACte,SAASwd,qBAAqB,MAAM,EAAE,GAAG/b,UAAUe,SAAS,mBAAmB,GACzB,OAArDxC,SAAS2d,cAAc,wBAAwB,GAAc,CAACW,EAAIpX,OAAOzF,UAAUe,SAAS,mBAAmB,EAEhH,IADA,IAAIo+B,EAAgB5gC,SAAS0W,iBAAiBkD,EAAO,sBAAsB,EAClE3a,EAAI,EAAGA,EAAI2hC,EAAclhC,OAAQT,CAAC,GAAI,CAC7C,IAAI4iB,EAAY+e,EAAc3hC,GAC1BuiB,EAAW,KACXD,EAAaM,EAAU9f,aAAa68B,CAAM,EAC1Crd,MAAAA,IAC6B,CAAC,IAA7BA,EAAWvgB,QAAQ,GAAG,IACvBugB,EAAaA,EAAW1gB,QAAQ,IAAK,EAAE,GAEzC2gB,EAAWxhB,SAASyhB,eAAeF,CAAU,IAE3C6d,EAAqBvd,CAAS,GAAM+d,EAAU/d,EAAW,QAAQ,GAAK,CAACvD,EAAIpX,OAAOzF,UAAUe,SAAS,SAAS,IAE5G8b,EAAIpX,SAAW2a,IAEjBA,EAAUzf,aAAa,gBAAiB,OAAO,EAC/Cof,EAAS/f,UAAUgB,IAAI,WAAW,EAClC+e,EAASpf,aAAa,cAAe,MAAM,EACvC0Z,EAAa,IAAIF,MAAM,oBAAoB,EAC/CiG,EAAUhG,cAAcC,CAAU,EAGxC,CAGN,EAEIsjB,EAAuB,SAAUvd,GACnC,GAAG,CAACA,EAAUpgB,UAAUe,SAzRS,kCAyR0B,EAAE,CAE3D,GAAGqf,CAAAA,EAAUpL,WAAWhV,UAAUe,SAAS,iCAAiC,GAAKqf,CAAAA,EAAUpL,WAAWhV,UAAUe,SAAS,iCAAiC,EAQxJ,MAAO,CAAA,EANP,GAAIjE,OAAOmiC,YAAcG,EAAuBhf,CAAS,EAEvD,MAAO,CAAA,CAMb,CAEA,MAAO,CAAA,CACT,EAEIgf,EAAyB,SAAUplB,GACrC,OAAGA,EAAOhF,WAAWhV,UAAUe,SAAS,iCAAiC,EAChEm8B,EAAYmC,GAElBrlB,EAAOhF,WAAWhV,UAAUe,SAAS,iCAAiC,EAChEm8B,EAAYoC,GADrB,KAAA,CAGF,EAEuB5iC,EAAA,QAAR0gC,C,oDCtTf,aAKA,SAASmC,EAAc1oB,GACrB5Z,KAAK4Z,QAAUA,CACjB,CANA7X,OAAA6C,eAAAnF,EAAA,aAAA,CAAA8G,MAAA,CAAA,CAAA,CAAA,EAAA9G,EAAA,QAAA,KAAA,EAWA6iC,EAAa78B,UAAUoW,KAAO,WACvB7b,KAAK4Z,UAGV5Z,KAAK4Z,QAAQqW,MAAM,EAEnBjwB,KAAK4Z,QAAQC,iBAAiB,QAAS7Z,KAAKuiC,YAAYpmB,KAAKnc,IAAI,CAAC,EACpE,EAOAsiC,EAAa78B,UAAU88B,YAAc,SAAUroB,GAC7C,IAAI1R,EAAS0R,EAAM1R,OACfxI,KAAKwiC,YAAYh6B,CAAM,GACzB0R,EAAM2C,eAAe,CAEzB,EAoBAylB,EAAa78B,UAAU+8B,YAAc,SAAUC,GAE7C,IAUIC,EAVJ,MAAwB,MAApBD,EAAQpB,SAAoC,CAAA,IAAjBoB,EAAQE,OAInCC,EAAU5iC,KAAK6iC,mBAAmBJ,EAAQE,IAAI,EAE7CG,CAAAA,EADDA,EAASxhC,SAASyhB,eAAe6f,CAAO,KAMvCF,CAAAA,EADDA,EAAiB1iC,KAAK+iC,2BAA2BD,CAAM,KAQ3DJ,EAAe5lB,eAAe,EAC9BgmB,EAAO7S,MAAM,CAAE+S,cAAe,CAAA,CAAK,CAAC,EAE7B,CAAA,EACT,EAWAV,EAAa78B,UAAUo9B,mBAAqB,SAAUI,GACpD,MAAyB,CAAC,IAAtBA,EAAI3gC,QAAQ,GAAG,GAIZ2gC,EAAI1/B,MAAM,GAAG,EAAE2/B,IAAI,CAC5B,EAiBAZ,EAAa78B,UAAUs9B,2BAA6B,SAAUD,GAC5D,IAAIK,EAAYL,EAAO7oB,QAAQ,UAAU,EAEzC,GAAIkpB,EAAW,CACTC,EAAUD,EAAUrkB,qBAAqB,QAAQ,EAErD,GAAIskB,EAAQpiC,OAAQ,CACdqiC,EAAmBD,EAAQ,GAI/B,GAAoB,aAAhBN,EAAOpgC,MAAuC,UAAhBogC,EAAOpgC,KACvC,OAAO2gC,EAST,IAAIC,EAAYD,EAAiB5kB,sBAAsB,EAAEe,IACrD+jB,EAAYT,EAAOrkB,sBAAsB,EAI7C,GAAI8kB,EAAU7kB,QAAU7e,OAAOye,YAG7B,GAFkBilB,EAAU/jB,IAAM+jB,EAAU7kB,OAE1B4kB,EAAYzjC,OAAOye,YAAc,EACjD,OAAO+kB,CAGb,CACF,CAEA,OAAO/hC,SAAS2d,cAAc,cAAgB6jB,EAAOz/B,aAAa,IAAI,EAAI,IAAI,GAC5Ey/B,EAAO7oB,QAAQ,OAAO,CAC1B,EAE2Bxa,EAAA,QAAZ6iC,C,0BCrJf,aAKA,SAASkB,EAAOC,GACZzjC,KAAKyjC,OAASA,EACVxyB,EAAKjR,KAAKyjC,OAAOpgC,aAAa,IAAI,EACtCrD,KAAK0jC,SAAWpiC,SAAS0W,iBAAiB,sCAAsC/G,EAAG,IAAI,CAC3F,CARAlP,OAAA6C,eAAAnF,EAAA,aAAA,CAAA8G,MAAA,CAAA,CAAA,CAAA,EAAA9G,EAAA,QAAA,KAAA,EAaA+jC,EAAM/9B,UAAUoW,KAAO,WAErB,IADA,IAAI6nB,EAAW1jC,KAAK0jC,SACXnjC,EAAI,EAAGA,EAAImjC,EAAS1iC,OAAQT,CAAC,GACtBmjC,EAAUnjC,GAChBsZ,iBAAiB,QAAS7Z,KAAK4d,KAAKzB,KAAKnc,IAAI,CAAC,EAGxD,IADA,IAAI2jC,EAAU3jC,KAAKyjC,OAAOzrB,iBAAiB,oBAAoB,EACtDxX,EAAI,EAAGA,EAAImjC,EAAQ3iC,OAAQR,CAAC,GACtBmjC,EAASnjC,GACfqZ,iBAAiB,QAAS7Z,KAAKiJ,KAAKkT,KAAKnc,IAAI,CAAC,CAEzD,EAKAwjC,EAAM/9B,UAAUwD,KAAO,WACrB,IAmBQ26B,EAnBJC,EAAe7jC,KAAKyjC,OACJ,OAAjBI,IACDA,EAAangC,aAAa,cAAe,MAAM,GAE3C0Z,EAAa9b,SAASwiC,YAAY,OAAO,GAClCC,UAAU,mBAAoB,CAAA,EAAM,CAAA,CAAI,EACnDF,EAAa1mB,cAAcC,CAAU,EAGrC4mB,OADIA,EAAY1iC,SAAS2d,cAAc,iBAAiB,IACxD+kB,EAAWjsB,WAAWksB,YAAYD,CAAS,EAE3C1iC,SAASwd,qBAAqB,MAAM,EAAE,GAAG/b,UAAUqB,OAAO,YAAY,EACtE9C,SAASwY,oBAAoB,UAAWoqB,EAAW,CAAA,CAAI,EAEnDC,EAAgBN,CAAY,GAC9BviC,SAASwY,oBAAoB,QAASsqB,CAAY,EAG7B,QADnBC,EAAkBR,EAAaxgC,aAAa,mBAAmB,MAGnD,QADVugC,EAAStiC,SAASyhB,eAAeshB,CAAe,IAElDT,EAAO3T,MAAM,EAEf4T,EAAa5E,gBAAgB,mBAAmB,EAGtD,EAKAuE,EAAM/9B,UAAUmY,KAAO,WAAmB,IAATzd,EAAC,EAAA8D,UAAAjD,QAAAkE,KAAAA,IAAAjB,UAAA,GAAAA,UAAA,GAAG,KAC/B4/B,EAAe7jC,KAAKyjC,OACxB,GAAoB,OAAjBI,EAAsB,CACd,OAAN1jC,IAEe,QADZmkC,EAAWnkC,EAAEqI,OAAOnF,aAAa,IAAI,KAEvCihC,EAAW,gBAAgBj7B,KAAKyH,MAAmB,IAAbzH,KAAK8H,OAAO,EAAwB,GAAI,EAC9EhR,EAAEqI,OAAO9E,aAAa,KAAM4gC,CAAQ,GAEtCT,EAAangC,aAAa,oBAAqB4gC,CAAQ,GAKzD,IAXA,IAUIC,EAAejjC,SAAS0W,iBAAiB,+BAA+B,EACpEzX,EAAI,EAAGA,EAAIgkC,EAAavjC,OAAQT,CAAC,GACvC,IAAIijC,EAAMe,EAAahkC,EAAE,EAAE0I,KAAK,EAGlC46B,EAAangC,aAAa,cAAe,OAAO,EAChDmgC,EAAangC,aAAa,WAAY,IAAI,EAE1C,IAAIuZ,EAAY3b,SAASwiC,YAAY,OAAO,EAIxCE,GAHJ/mB,EAAU8mB,UAAU,kBAAmB,CAAA,EAAM,CAAA,CAAI,EACjDF,EAAa1mB,cAAcF,CAAS,EAEpB3b,SAASC,cAAc,KAAK,GAC5CyiC,EAAUjhC,UAAUgB,IAAI,gBAAgB,EACxCigC,EAAUtgC,aAAa,KAAM,gBAAgB,EAC7CpC,SAASwd,qBAAqB,MAAM,EAAE,GAAG/Q,YAAYi2B,CAAS,EAE9D1iC,SAASwd,qBAAqB,MAAM,EAAE,GAAG/b,UAAUgB,IAAI,YAAY,EAEnE8/B,EAAa5T,MAAM,EAEnB3uB,SAASuY,iBAAiB,UAAWqqB,EAAW,CAAA,CAAI,EAChDC,EAAgBN,CAAY,GAC9BviC,SAASuY,iBAAiB,QAASuqB,CAAY,CAGnD,CACF,EAMA,IAAIA,EAAe,SAAUlqB,GAC3B,IAAIpT,EAAMoT,EAAMxH,OAASwH,EAAMvH,QAC3BkxB,EAAeviC,SAAS2d,cAAc,+BAA+B,EACrEulB,EAAe,IAAIhB,EAAMliC,SAAS2d,cAAc,+BAA+B,CAAC,EACxE,KAARnY,GAEkC,IADR+8B,EAAa7rB,iBAAiB,6CAA6C,EAC9EhX,QACvBwjC,EAAav7B,KAAK,CAGxB,EAMC,SAASi7B,EAAU/jC,GAClB,IAIMskC,EAJFC,EAAgBpjC,SAAS2d,cAAc,+BAA+B,EACrD,OAAlBylB,IAGGD,GAFAhT,EAAoBiT,EAAc1sB,iBAAiB,+XAA+X,GAExY,GAC1C2sB,EAAuBlT,EAAkBA,EAAkBzwB,OAAS,GAE1C,QAAVb,EAAE2G,KAA+B,IAAd3G,EAAEwS,WAMpCxS,EAAE0S,SACDvR,SAASwwB,gBAAkB2S,IAC7BE,EAAqB1U,MAAM,EACzB9vB,EAAE0c,eAAe,GAGjBvb,SAASwwB,gBAAkB6S,IAC7BF,EAAsBxU,MAAM,EAC1B9vB,EAAE0c,eAAe,GAI3B,CAEA,SAASsnB,EAAiBS,GACxB,OAAsD,OAAnDA,EAAMvhC,aAAa,0BAA0B,CAIlD,CAEoB5D,EAAA,QAAL+jC,C,0BC/Jf,aAAa,SAAA15B,EAAAxJ,GAAA,OAAAwJ,EAAA,YAAA,OAAAiD,QAAA,UAAA,OAAAA,OAAA/C,SAAA,SAAA1J,GAAA,OAAA,OAAAA,CAAA,EAAA,SAAAA,GAAA,OAAAA,GAAA,YAAA,OAAAyM,QAAAzM,EAAAyO,cAAAhC,QAAAzM,IAAAyM,OAAAtH,UAAA,SAAA,OAAAnF,CAAA,GAAAA,CAAA,CAAA,CAAA,SAAAukC,EAAAr8B,EAAAyQ,GAAA,IAAA,IAAA1Y,EAAA,EAAAA,EAAA0Y,EAAAjY,OAAAT,CAAA,GAAA,CAAA,IAAA6J,EAAA6O,EAAA1Y,GAAA6J,EAAArF,WAAAqF,EAAArF,YAAA,CAAA,EAAAqF,EAAApF,aAAA,CAAA,EAAA,UAAAoF,IAAAA,EAAAgF,SAAA,CAAA,GAAArN,OAAA6C,eAAA4D,EAAA,SAAA+a,GAAAzc,EAAA,SAAAka,EAAAwC,GAAA,GAAA,WAAA1Z,EAAAkX,CAAA,GAAA,OAAAA,EAAA,OAAAA,EAAA,IAAAyC,EAAAzC,EAAAjU,OAAA0B,aAAA,GAAAvJ,KAAAA,IAAAue,EAAA,OAAA,WAAAD,EAAAvhB,OAAAyhB,QAAA1C,CAAA,EAAA2C,EAAAF,EAAA1iB,KAAAigB,EAAAwC,GAAA,SAAA,EAAA,GAAA,WAAA1Z,EAAA6Z,CAAA,EAAA,OAAAA,EAAA,MAAA,IAAA7d,UAAA,8CAAA,CAAA,EAAAyd,EAAA,QAAA,EAAA,MAAA,WAAAzZ,EAAAhD,CAAA,EAAAA,EAAA7E,OAAA6E,CAAA,CAAA,EAAAsD,EAAAtD,GAAA,EAAAsD,CAAA,CAAA,CAAA,CAAArI,OAAA6C,eAAAnF,EAAA,aAAA,CAAA8G,MAAA,CAAA,CAAA,CAAA,EAAA9G,EAAA,QAAA,KAAA,EACb,IA8JIqlC,EA9JEzjC,EAAUZ,EAAQ,eAAe,EACjCixB,EAASjxB,EAAQ,iBAAiB,EAElCskC,EAAG,OACHC,EAAS,GAAA33B,OAAM03B,EAAG,IAAA,EAClBE,EAAO,gBACPC,EAAY,iBAEZC,EAAO,GAAA93B,OAAM63B,EAAY,YAAA,EACzBE,EAAU,CAAEL,EAFL,YAEoBpgC,KAAK,IAAI,EAEpC0gC,EAAe,oBAMfC,EAAU,WAAA,SAAAA,IAlBH,GAAA,EAkBGtlC,gBAAAslC,GAlBH,MAAA,IAAAx/B,UAAA,mCAAA,CAkBG,CAlBH,IAAAyE,EAAAg7B,EAAAC,EAgCV,OAhCUj7B,EAkBG+6B,GAlBHC,EAkBG,CAAA,CAAAz+B,IAAA,OAAAP,MAId,WACE1G,OAAOga,iBAAiB,SAAU4rB,EAAY,CAAA,CAAK,EACnDA,EAAW,CACb,CAEA,EAAA,CAAA3+B,IAAA,WAAAP,MAGA,WACE1G,OAAOia,oBAAoB,SAAU2rB,EAAY,CAAA,CAAK,CACxD,CAAC,KAhCUZ,EAAAt6B,EAAA9E,UAAA8/B,CAAA,EAAAC,GAAAX,EAAAt6B,EAAAi7B,CAAA,EAAAzjC,OAAA6C,eAAA2F,EAAA,YAAA,CAAA6E,SAAA,CAAA,CAAA,CAAA,EAgCVk2B,CAAA,EAAA,EAMGG,EAAa,WAGjB,IAFA,IAAIC,EAAS,CAAA,EACTC,EAAUrkC,SAAS0W,iBAAiBitB,CAAO,EACvC3kC,EAAI,EAAGA,EAAIqlC,EAAQ3kC,OAAQV,CAAC,GACuB,SAAtDT,OAAO+lC,iBAAiBD,EAAQrlC,GAAI,IAAI,EAAEwN,UAC3C63B,EAAQrlC,GAAGuZ,iBAAiB,QAASgsB,CAAS,EAC9CH,EAAS,CAAA,GAKb,GAAGA,EAAO,CAER,IADA,IAAI/B,EAAUriC,SAAS0W,iBAAiBmtB,CAAO,EACvC3kC,EAAI,EAAGA,EAAImjC,EAAQ3iC,OAAQR,CAAC,GAClCmjC,EAASnjC,GAAIqZ,iBAAiB,QAASgsB,CAAS,EAIlD,IADA,IAAIC,EAAWxkC,SAAS0W,iBAAiBgtB,CAAS,EAC1C5kC,EAAI,EAAGA,EAAI0lC,EAAS9kC,OAAQZ,CAAC,GACnC0lC,EAAU1lC,GAAIyZ,iBAAiB,QAAS,WAUlCksB,EAAS,GACXF,EAAU9kC,KAAKf,KAAM,CAAA,CAAK,CAE9B,CAAC,EAIH,IADA,IAAMgmC,EAAiB1kC,SAAS0W,iBAAiB+sB,CAAG,EAC5CxkC,EAAI,EAAGA,EAAIylC,EAAehlC,OAAQT,CAAC,GACzCukC,EAAYmB,EAAWD,EAAezlC,EAAE,CAG5C,CAEA,IAAM2lC,EAAS5kC,SAAS4c,KAAKe,cAAcimB,CAAY,EAEnDa,EAAS,GAAKG,GAAmD,IAAzCA,EAAOznB,sBAAsB,EAAE0nB,OAKzDN,EAAU9kC,KAAKmlC,EAAQ,CAAA,CAAK,CAEhC,EAMMH,EAAW,WAAH,OAASzkC,SAAS4c,KAAKnb,UAAUe,SAASuhC,CAAY,CAAC,EAM/DY,EAAa,SAACG,GAGlB,IACI3U,EAAoB2U,EAAcpuB,iBADN,gLAC8C,EAC1E2Z,EAAeF,EAAmB,GAEtC,SAAS4U,EAAYlmC,GAGnB,GAAY,KAFF+Z,MAAMxH,OAASwH,MAAMvH,SAEhB,CAGb,IADA,IAAIif,EAAc,KACVrxB,EAAI,EAAGA,EAAIkxB,EAAkBzwB,OAAQT,CAAC,GAAG,CAC/C,IAAI4E,EAASssB,EAAkBzwB,OAAS,EACpC4Y,EAAU6X,EAAmBtsB,EAAS5E,GAC1C,GAA0B,EAAtBqZ,EAAQmoB,aAA0C,EAAvBnoB,EAAQ4E,aAAkB,CACvDoT,EAAchY,EACd,KACF,CACF,CAGIzZ,EAAE0S,SACAvR,SAASwwB,gBAAkBH,IAC7BxxB,EAAE0c,eAAe,EACjB+U,EAAY3B,MAAM,GAKhB3uB,SAASwwB,gBAAkBF,IAC7BzxB,EAAE0c,eAAe,EACjB8U,EAAa1B,MAAM,EAGzB,CAGc,WAAV9vB,EAAE2G,KACJ++B,EAAU9kC,KAAKf,KAAM,CAAA,CAAK,CAE9B,CAEA,MAAO,CACLo/B,OAAM,WAEFzN,EAAa1B,MAAM,EAErB3uB,SAASuY,iBAAiB,UAAWwsB,CAAU,CACjD,EAEAC,QAAO,WACLhlC,SAASwY,oBAAoB,UAAWusB,CAAU,CACpD,CACF,CACF,EAIMR,EAAY,SAAUU,GAC1B,IAAMroB,EAAO5c,SAAS4c,KAehBsoB,GAdgB,WAAlB,OAAOD,IACTA,EAAS,CAACR,EAAS,GAErB7nB,EAAKnb,UAAUwB,OAAO8gC,EAAckB,CAAM,EAE1CllC,EAAQqwB,EAAO0T,CAAO,EAAG,SAAA/+B,GACvBA,EAAGtD,UAAUwB,OA5JK,aA4JiBgiC,CAAM,CAC3C,CAAC,EACGA,EACFzB,EAAU1F,OAAO,EAEjB0F,EAAUwB,QAAQ,EAGApoB,EAAKe,cAAcimB,CAAY,GAC7CuB,EAAavoB,EAAKe,cAAcgmB,CAAO,EAgB7C,OAdIsB,GAAUC,EAGZA,EAAYvW,MAAM,EACT,CAACsW,GAAUjlC,SAASwwB,gBAAkB0U,GACtCC,GAMTA,EAAWxW,MAAM,EAGZsW,CACT,EAEyB9mC,EAAA,QAAV6lC,C,iECrMf,aAAavjC,OAAA6C,eAAAnF,EAAA,aAAA,CAAA8G,MAAA,CAAA,CAAA,CAAA,EAAA9G,EAAA,QAAA,KAAA,EACb,IAAMinC,EAAmB,gBAMzB,SAASC,EAAiB9lB,GACtB7gB,KAAK4mC,WAAa/lB,EAClB7gB,KAAK6mC,SAAW,KAChB7mC,KAAK8iB,SAAW,IACpB,CAKA6jB,EAAiBlhC,UAAUoW,KAAO,WAE9B,GADA7b,KAAK6mC,SAAW7mC,KAAK4mC,WAAW5uB,iBAAiB,qBAAqB,EAC1C,IAAzBhY,KAAK6mC,SAAS7lC,OACb,MAAM,IAAIJ,MAAM,6CAA6C,EAIjE,IAFA,IAAI6G,EAAOzH,KAEHO,EAAI,EAAGA,EAAIP,KAAK6mC,SAAS7lC,OAAQT,CAAC,GAAG,CACzC,IAAIumC,EAAQ9mC,KAAK6mC,SAAUtmC,GAE3BumC,EAAMjtB,iBAAiB,SAAU,WAC7B,IAAI,IAAIlZ,EAAI,EAAGA,EAAI8G,EAAKo/B,SAAS7lC,OAAQL,CAAC,GACtC8G,EAAKlD,OAAOkD,EAAKo/B,SAAUlmC,EAAG,CAEtC,CAAC,EACDX,KAAKuE,OAAOuiC,CAAK,CACrB,CACJ,EAMAH,EAAiBlhC,UAAUlB,OAAS,SAAUwiC,GAC1C,IAAIC,EAAYD,EAAkB1jC,aAAaqjC,CAAgB,EAC/D,GAAGM,MAAAA,GAA+D,KAAdA,EAAiB,CAC7D9jB,EAAiB5hB,SAAS2d,cAAc+nB,CAAS,EACrD,GAAG9jB,MAAAA,EACC,MAAM,IAAItiB,MAAM,2DAA4D8lC,CAAgB,EAE7FK,EAAkB/jB,QACjBhjB,KAAKyc,OAAOsqB,EAAmB7jB,CAAc,EAE7CljB,KAAKijB,SAAS8jB,EAAmB7jB,CAAc,CAEvD,CACJ,EAOAyjB,EAAiBlhC,UAAUgX,OAAS,SAAUsqB,EAAmB7jB,GAC1D6jB,MAAAA,GAAAA,MAAiE7jB,IAChE6jB,EAAkBrjC,aAAa,gBAAiB,MAAM,EACtDwf,EAAexf,aAAa,cAAe,OAAO,EAC9CuZ,EAAY,IAAIC,MAAM,oBAAoB,EAC9C6pB,EAAkB5pB,cAAcF,CAAS,EAEjD,EAMA0pB,EAAiBlhC,UAAUwd,SAAW,SAAS8jB,EAAmB7jB,GAC3D6jB,MAAAA,GAAAA,MAAiE7jB,IAChE6jB,EAAkBrjC,aAAa,gBAAiB,OAAO,EACvDwf,EAAexf,aAAa,cAAe,MAAM,EAC7C0Z,EAAa,IAAIF,MAAM,qBAAqB,EAChD6pB,EAAkB5pB,cAAcC,CAAU,EAElD,EAE+B3d,EAAA,QAAhBknC,C,0BCjFf,aAAa,SAAA78B,EAAAxJ,GAAA,OAAAwJ,EAAA,YAAA,OAAAiD,QAAA,UAAA,OAAAA,OAAA/C,SAAA,SAAA1J,GAAA,OAAA,OAAAA,CAAA,EAAA,SAAAA,GAAA,OAAAA,GAAA,YAAA,OAAAyM,QAAAzM,EAAAyO,cAAAhC,QAAAzM,IAAAyM,OAAAtH,UAAA,SAAA,OAAAnF,CAAA,GAAAA,CAAA,CAAA,CAAA,SAAAukC,EAAAr8B,EAAAyQ,GAAA,IAAA,IAAA1Y,EAAA,EAAAA,EAAA0Y,EAAAjY,OAAAT,CAAA,GAAA,CAAA,IAAA6J,EAAA6O,EAAA1Y,GAAA6J,EAAArF,WAAAqF,EAAArF,YAAA,CAAA,EAAAqF,EAAApF,aAAA,CAAA,EAAA,UAAAoF,IAAAA,EAAAgF,SAAA,CAAA,GAAArN,OAAA6C,eAAA4D,EAAA,SAAA+a,GAAAzc,EAAA,SAAAka,EAAAwC,GAAA,GAAA,WAAA1Z,EAAAkX,CAAA,GAAA,OAAAA,EAAA,OAAAA,EAAA,IAAAyC,EAAAzC,EAAAjU,OAAA0B,aAAA,GAAAvJ,KAAAA,IAAAue,EAAA,OAAA,WAAAD,EAAAvhB,OAAAyhB,QAAA1C,CAAA,EAAA2C,EAAAF,EAAA1iB,KAAAigB,EAAAwC,GAAA,SAAA,EAAA,GAAA,WAAA1Z,EAAA6Z,CAAA,EAAA,OAAAA,EAAA,MAAA,IAAA7d,UAAA,8CAAA,CAAA,EAAAyd,EAAA,QAAA,EAAA,MAAA,WAAAzZ,EAAAhD,CAAA,EAAAA,EAAA7E,OAAA6E,CAAA,CAAA,EAAAsD,EAAAtD,GAAA,EAAAsD,CAAA,CAAA,CAAA,CAAA,SAAA68B,EAAA18B,EAAAg7B,EAAAC,GAAA,OAAAD,GAAAV,EAAAt6B,EAAA9E,UAAA8/B,CAAA,EAAAC,GAAAX,EAAAt6B,EAAAi7B,CAAA,EAAAzjC,OAAA6C,eAAA2F,EAAA,YAAA,CAAA6E,SAAA,CAAA,CAAA,CAAA,EAAA7E,CAAA,CAAAxI,OAAA6C,eAAAnF,EAAA,aAAA,CAAA8G,MAAA,CAAA,CAAA,CAAA,EAAA9G,EAAA,QAAA,KAAA,EACb,IAAMynC,EAGE,CAAA,EAHFA,EAIK,CAAA,EAQLC,EAAcF,EAClB,SAAAE,EAAavtB,GAdF,GAAA,EAcU5Z,gBAAAmnC,GAdV,MAAA,IAAArhC,UAAA,mCAAA,EAeT8T,EAAQC,iBAAiB,QAASutB,CAAS,EAC3CxtB,EAAQC,iBAAiB,UAAWutB,CAAS,CAC/C,CAAC,EAECA,EAAY,SAAUltB,GACxB,IAGImtB,EAaAC,EAKE1tB,EAQEijB,EA7BLqK,GAAsBA,IAGrBG,EAAU,KACU,KAAA,IAAdntB,EAAMpT,IACU,IAArBoT,EAAMpT,IAAI9F,SACXqmC,EAAUntB,EAAMpT,KAMhBugC,EAHEntB,EAAMqtB,SAGEtlC,OAAOiV,aAAagD,EAAMqtB,QAAQ,EAFlCtlC,OAAOiV,aAAagD,EAAMvH,OAAO,EAM3C20B,EAAWtnC,KAAKqD,aAAa,kBAAkB,EAEjC6B,KAAAA,IAAfgV,EAAMxX,MAAqC,UAAfwX,EAAMxX,QAG/BkX,EAAU,KACM1U,KAAAA,IAAjBgV,EAAM1R,SACPoR,EAAUM,EAAM1R,QAEH,OAAZ6+B,GAAgC,OAAZztB,GACD,EAAjBytB,EAAQrmC,SACL67B,EAAW78B,KAAKuG,MAElBs2B,EADkB,WAAjBjjB,EAAQlX,KACE1C,KAAKuG,MAELvG,KAAKuG,MAAMS,MAAM,EAAG4S,EAAQ4tB,cAAc,EAAIxnC,KAAKuG,MAAMS,MAAM4S,EAAQ6tB,YAAY,EAAIJ,EAI5E,OADhB,IAAIK,OAAOJ,CAAQ,EACtBl+B,KAAKyzB,CAAQ,KACZ3iB,EAAM2C,eACR3C,EAAM2C,eAAe,EAErB3C,EAAMytB,YAAc,CAAA,GAMhC,EAE6BloC,EAAA,QAAd0nC,C,0BCnEf,aAMA,SAASS,EAAqBC,GAC5B7nC,KAAK6nC,MAAQA,CACf,CA4CA,SAASC,EAAmB3nC,GAC1B,IAAI4nC,EAAW5nC,EAAEqI,OAEbq/B,GADJE,EAAS9I,gBAAgB,cAAc,EAC3B9+B,EAAEqI,OAAOuP,WAAWA,WAAWA,WAAWA,YAElDiwB,EADsB,IAAIJ,EAAoBC,CAAK,EAChBI,gBAAgB,EACnDC,EAAgB,EACpB,GAAGH,EAAS/kB,QAAQ,CAClB,IAAI,IAAIxiB,EAAI,EAAGA,EAAIwnC,EAAahnC,OAAQR,CAAC,GACvCwnC,EAAaxnC,GAAGwiB,QAAU,CAAA,EAC1BglB,EAAaxnC,GAAGuX,WAAWA,WAAWhV,UAAUgB,IAAI,oBAAoB,EAG1EmkC,EAAgBF,EAAahnC,MAC/B,MACE,IAAI,IAAImnC,EAAI,EAAGA,EAAIH,EAAahnC,OAAQmnC,CAAC,GACvCH,EAAaG,GAAGnlB,QAAU,CAAA,EAC1BglB,EAAaG,GAAGpwB,WAAWA,WAAWhV,UAAUqB,OAAO,oBAAoB,EAIzE8V,EAAQ,IAAI2F,YAAY,+BAAgC,CAC5DuoB,QAAS,CAAA,EACTC,WAAY,CAAA,EACZvoB,OAAQ,CAACooB,cAAAA,CAAa,CACxB,CAAC,EACDL,EAAM1qB,cAAcjD,CAAK,CAC3B,CAMA,SAASouB,EAAiBnoC,GAErBA,EAAEqI,OAAOwa,QACV7iB,EAAEqI,OAAOuP,WAAWA,WAAWhV,UAAUgB,IAAI,oBAAoB,EAEjE5D,EAAEqI,OAAOuP,WAAWA,WAAWhV,UAAUqB,OAAO,oBAAoB,EAEtE,IAAIyjC,EAAQ1nC,EAAEqI,OAAOuP,WAAWA,WAAWA,WAAWA,WAClDwwB,EAAsB,IAAIX,EAAoBC,CAAK,EACnDW,EAAgBD,EAAoBE,iBAAiB,EACzD,GAAqB,CAAA,IAAlBD,EAAwB,CAKzB,IAJA,IAAIR,EAAeO,EAAoBN,gBAAgB,EAGnDC,EAAgB,EACZ1nC,EAAI,EAAGA,EAAIwnC,EAAahnC,OAAQR,CAAC,GAClBwnC,EAAaxnC,GAChBwiB,SAChBklB,CAAa,GAIdA,IAAkBF,EAAahnC,QAChCwnC,EAAcvJ,gBAAgB,cAAc,EAC5CuJ,EAAcxlB,QAAU,CAAA,IACC,GAAjBklB,EACRM,EAAcvJ,gBAAgB,cAAc,EAG5CuJ,EAAc9kC,aAAa,eAAgB,OAAO,EAClD8kC,EAAcxlB,QAAU,CAAA,GAEpB9I,EAAQ,IAAI2F,YAAY,+BAAgC,CAC5DuoB,QAAS,CAAA,EACTC,WAAY,CAAA,EACZvoB,OAAQ,CAACooB,cAAAA,CAAa,CACxB,CAAC,EACDL,EAAM1qB,cAAcjD,CAAK,CAC3B,CACF,CA1HAnY,OAAA6C,eAAAnF,EAAA,aAAA,CAAA8G,MAAA,CAAA,CAAA,CAAA,EAAA9G,EAAA,QAAA,KAAA,EAWAmoC,EAAoBniC,UAAUoW,KAAO,WAGnC,GAFA7b,KAAKwoC,cAAgBxoC,KAAKyoC,iBAAiB,EAC3CzoC,KAAK0oC,kBAAoB1oC,KAAKioC,gBAAgB,EACT,IAAlCjoC,KAAK0oC,kBAAkB1nC,OACxB,IAAI,IAAIR,EAAI,EAAGA,EAAIR,KAAK0oC,kBAAkB1nC,OAAQR,CAAC,GAAG,CACpD,IAAIunC,EAAW/nC,KAAK0oC,kBAAkBloC,GACtCunC,EAASjuB,oBAAoB,SAAUwuB,CAAgB,EACvDP,EAASluB,iBAAiB,SAAUyuB,CAAgB,CACtD,CAEwB,CAAA,IAAvBtoC,KAAKwoC,gBACNxoC,KAAKwoC,cAAc1uB,oBAAoB,SAAUguB,CAAkB,EACnE9nC,KAAKwoC,cAAc3uB,iBAAiB,SAAUiuB,CAAkB,EAEpE,EAMAF,EAAoBniC,UAAUgjC,iBAAmB,WAC/C,IAAIV,EAAW/nC,KAAK6nC,MAAM/oB,qBAAqB,OAAO,EAAE,GAAGpB,uBAAuB,eAAe,EACjG,OAAuB,IAApBqqB,EAAS/mC,QAGL+mC,EAAS,EAClB,EAKAH,EAAoBniC,UAAUwiC,gBAAkB,WAC9C,OAAOjoC,KAAK6nC,MAAM/oB,qBAAqB,OAAO,EAAE,GAAGpB,uBAAuB,eAAe,CAC3F,EAgFkCje,EAAA,QAAnBmoC,C,45BC9Hf,IAAMlW,EAASjxB,EAAQ,iBAAiB,EAKlCkoC,EAAe1B,EACjB,SAAA0B,EAAYd,GAAOe,IAcXC,EAMMC,E,KApBK9oC,gBAAA2oC,G,0DASWI,EARDlB,IAYP,KADlBmB,EAASD,EAAQjqB,qBAAqB,OAAO,GACtC9d,QAMoB,GAHvB6nC,EADwB,IADxBA,EAAgBG,EAAO,GAAGlqB,qBAAqB,IAAI,GACrC9d,OACEgoC,EAAO,GAAGlqB,qBAAqB,IAAI,EAGnD+pB,GAAc7nC,SACR8nC,EAAapX,EAAO,WAAYqX,CAAO,EAC7C1mC,MAAMsD,KAAKmjC,CAAU,EAAEznC,QAAQ,SAAA4nC,GAC3B,IAAIC,EAAUD,EAAME,SAChBD,EAAQloC,SAAW6nC,EAAc7nC,QACjCqB,MAAMsD,KAAKkjC,CAAa,EAAExnC,QAAQ,SAAC+nC,EAAc7oC,GAExC2oC,EAAQ3oC,GAAG83B,aAAa,YAAY,GAA8B,OAAzB+Q,EAAa/H,SAAqB+H,EAAarmC,UAAUe,SAAS,WAAW,GACvHolC,EAAQ3oC,GAAGmD,aAAa,aAAc0lC,EAAatc,WAAW,CAEtE,CAAC,CAET,CAAC,EA7BT,CAAC,EAkCyBrtB,EAAA,QAAfkpC,C,+CC1Cf,aAAa5mC,OAAA6C,eAAAnF,EAAA,aAAA,CAAA8G,MAAA,CAAA,CAAA,CAAA,EAAA9G,EAAA,QAAA,KAAA,EACb,IAAIwgC,EAAc,CAChBoJ,GAAM,EACNC,GAAM,IACNlH,GAAM,IACNC,GAAM,IACNkH,GAAM,IACR,EAGIx+B,EAAO,CACTy+B,IAAK,GACLC,KAAM,GACNxI,KAAM,GACNyI,GAAI,GACJ5H,MAAO,GACP6H,KAAM,GACNC,OAAQ,EACV,EAGIC,EAAY,CACd11B,GAAI,CAAC,EACLC,GAAI,CAAC,EACLC,GAAI,EACJC,GAAI,CACN,EAMA,SAASw1B,EAAQC,GACf/pC,KAAK+pC,OAASA,EACd/pC,KAAKgqC,KAAOhqC,KAAK+pC,OAAO/xB,iBAAiB,oBAAoB,CAC/D,CAyFA,SAASiyB,EAAsB/vB,GAG7B,OAFUA,EAAMvH,SAGd,KAAK5H,EAAKy+B,IACRtvB,EAAM2C,eAAe,EAErBqtB,EAAahwB,EAAM1R,MAAM,EACzB,MACF,KAAKuC,EAAK0+B,KACRvvB,EAAM2C,eAAe,EAErBstB,EAAcjwB,EAAM1R,MAAM,EAC1B,MAGF,KAAKuC,EAAK2+B,GACV,KAAK3+B,EAAK4+B,KACRS,EAAqBlwB,CAAK,CAE9B,CACF,CAMA,SAASmwB,EAAoBnwB,GAG3B,OAFUA,EAAMvH,SAGd,KAAK5H,EAAKk2B,KACV,KAAKl2B,EAAK+2B,MACRsI,EAAqBlwB,CAAK,EAC1B,MACF,KAAKnP,EAAI,OACP,MACF,KAAKA,EAAKu/B,MACV,KAAKv/B,EAAKw/B,MACR,IAAIT,EAAO5vB,EAAM1R,OAAOuP,UAAU,EAAEyyB,YAAYtwB,EAAM1R,OAAQ,CAAA,CAAI,CAEtE,CACF,CAOA,SAAS4hC,EAAsBlwB,GAC7B,IAAIpT,EAAMoT,EAAMvH,QAEZ83B,EAAE5qC,OACJorB,EAAE3pB,SACFnB,EAAE8qB,EAAExhB,gBACJihC,EAAEzf,EAAEnM,qBAAqB,MAAM,EAAG,GAClCrM,EAAEg4B,EAAEzI,YAAY7hC,EAAEwqC,aAAaD,EAAEC,YAI/BC,GAHAH,EAAEnsB,aAAane,EAAEke,cAAcqsB,EAAErsB,aAGvB,CAAA,GADC5L,EAAIwtB,EAAYmC,GAIzBt7B,IAAQiE,EAAK2+B,IAAM5iC,IAAQiE,EAAK4+B,OAClCzvB,EAAM2C,eAAe,EACrB+tB,EAAU,CAAA,GAIR9jC,IAAQiE,EAAKk2B,MAAQn6B,IAAQiE,EAAK+2B,QACpC8I,EAAU,CAAA,GAGVA,IAUAC,GAD0B3wB,EARNA,GASJvH,QAChBk3B,EAAWgB,MACTriC,EAAS0R,EAAM1R,OACfwhC,EAAOc,EAAiBtiC,CAAM,EAEpB,CAAC,KADXnE,EA2CR,SAAkCuV,EAAS+F,GAEzC,IADA,IAAItb,EAAQ,CAAC,EACJ9D,EAAI,EAAGA,EAAIof,EAAK3e,OAAQT,CAAC,GAChC,GAAGof,EAAMpf,KAAQqZ,EAAQ,CACvBvV,EAAQ9D,EACR,KACF,CAGF,OAAO8D,CACT,EArDwCmE,EAAQwhC,CAAI,MAE1CA,EAAM3lC,EAAQwlC,EAAWgB,IAC3Bb,EAAM3lC,EAAQwlC,EAAWgB,IAAY5a,MAAM,EAEpC4a,IAAY9/B,EAAKk2B,MAAQ4J,IAAY9/B,EAAK2+B,GACjDQ,EAAa1hC,CAAM,EAEZqiC,IAAY9/B,EAAK+2B,OAAS+I,GAAW9/B,EAAK4+B,MACjDQ,EAAc3hC,CAAM,EApB5B,CAwCA,SAASsiC,EAAkBC,GACrBhzB,EAAagzB,EAAIhzB,WACrB,OAAIA,EAAWhV,UAAUe,SAAS,QAAQ,EACjCiU,EAAWC,iBAAiB,oBAAoB,EAElD,EACT,CAwCA,SAASmyB,EAAeY,GACtBD,EAAiBC,CAAG,EAAG,GAAI9a,MAAM,CACnC,CAMA,SAASia,EAAca,GACjBf,EAAOc,EAAiBC,CAAG,EAC/Bf,EAAMA,EAAKhpC,OAAS,GAAIivB,MAAM,CAChC,CAjQA6Z,EAAOrkC,UAAUoW,KAAO,WACtB,GAAwB,IAArB7b,KAAKgqC,KAAKhpC,OACX,MAAM,IAAIJ,MAAK,4HAA6H,EAIzIoqC,CAgOP,WACE,IAAIC,EAAOC,SAASD,KAAK9oC,QAAQ,IAAK,EAAE,EACxC,GAAa,KAAT8oC,EAAa,CACXF,EAAMzpC,SAAS2d,cAAc,sCAAwCgsB,EAAO,IAAI,EACpF,GAAY,OAARF,EAEF,OADAP,YAAYO,EAAK,CAAA,CAAK,EACf,CAEX,CACA,MACF,EA1OwB,IAEhBA,EAAM/qC,KAAKgqC,KAAM,GAIQ,KADzBmB,EAA8BnrC,KAAK+pC,OAqL3B/xB,iBAAiB,wCAAwC,GApLnDhX,SAChB+pC,EAAMI,EAAe,IAIvBnrC,KAAKwqC,YAAYO,EAAK,CAAA,CAAK,GAI7B,IAfA,IAEMA,EAGAI,EAQF3uB,EAAUxc,KAENK,EAAI,EAAGA,EAAIL,KAAKgqC,KAAKhpC,OAAQX,CAAC,GACpCL,KAAKgqC,KAAM3pC,GAAIwZ,iBAAiB,QAAS,WAAW2C,EAAQguB,YAAYxqC,KAAM,CAAA,CAAK,CAAC,CAAC,EACrFA,KAAKgqC,KAAM3pC,GAAIwZ,iBAAiB,UAAWowB,CAAoB,EAC/DjqC,KAAKgqC,KAAM3pC,GAAIwZ,iBAAiB,QAASwwB,CAAkB,CAE/D,EAOCP,EAAOrkC,UAAU+kC,YAAc,SAASO,EAAKK,GAI5C,IAHA,IAAIpB,EAAOc,EAAiBC,CAAG,EAGtBxqC,EAAI,EAAGA,EAAIP,KAAKgqC,KAAKhpC,OAAQT,CAAC,GACrC,GAAIypC,EAAMzpC,KAAQwqC,EAAlB,CAIgD,SAA5Cf,EAAMzpC,GAAI8C,aAAa,eAAe,IACpC+Z,EAAa,IAAIF,MAAM,kBAAkB,EAC7C8sB,EAAMzpC,GAAI4c,cAAcC,CAAU,GAGpC4sB,EAAMzpC,GAAImD,aAAa,WAAY,IAAI,EACvCsmC,EAAMzpC,GAAImD,aAAa,gBAAiB,OAAO,EAN/C,IAOI2nC,EAAarB,EAAMzpC,GAAI8C,aAAa,eAAe,EACnDioC,EAAWhqC,SAASyhB,eAAesoB,CAAU,EACjD,GAAgB,OAAbC,EACD,MAAM,IAAI1qC,MAAK,0BAA2B,EAE5C0qC,EAAS5nC,aAAa,cAAe,MAAM,CAd3C,CAkBF,IAAI6nC,EAAaR,EAAI1nC,aAAa,eAAe,EAC7CmoC,EAAWlqC,SAASyhB,eAAewoB,CAAU,EACjD,GAAgB,OAAbC,EACD,MAAM,IAAI5qC,MAAK,iCAAkC,EAGnDmqC,EAAIrnC,aAAa,gBAAiB,MAAM,EACxC8nC,EAAS9nC,aAAa,cAAe,OAAO,EAC5CqnC,EAAI9L,gBAAgB,UAAU,EAG1BmM,GACFL,EAAI9a,MAAM,EAGRwb,EAAe,IAAIvuB,MAAM,oBAAoB,EACjD6tB,EAAIhzB,WAAWoF,cAAcsuB,CAAY,EAErCxuB,EAAY,IAAIC,MAAM,iBAAiB,EAC3C6tB,EAAI5tB,cAAcF,CAAS,CAC7B,EAqLqBxd,EAAA,QAANqqC,C,0BC3Sf,aAKA,SAAS4B,EAAO9xB,GACZ5Z,KAAK4Z,QAAUA,CACnB,CA0BA,SAAS+xB,IAEL,IADA,IAAIC,EAAStqC,SAAS0W,iBAAiB,gBAAgB,EAC/C3X,EAAI,EAAGA,EAAIurC,EAAO5qC,OAAQX,CAAC,GAAG,CAClC,IAAIwrC,EAAQD,EAAOvrC,GACnBwrC,EAAM9oC,UAAUqB,OAAO,SAAS,EAChCynC,EAAM9oC,UAAUgB,IAAI,MAAM,CAC9B,CACJ,CAvCAhC,OAAA6C,eAAAnF,EAAA,aAAA,CAAA8G,MAAA,CAAA,CAAA,CAAA,EAAA9G,EAAA,QAAA,KAAA,EAWAisC,EAAMjmC,UAAUmY,KAAO,WACnB5d,KAAK4Z,QAAQ7W,UAAUqB,OAAO,MAAM,EACpCpE,KAAK4Z,QAAQ7W,UAAUgB,IAAI,SAAS,EACpC/D,KAAK4Z,QAAQ8D,uBAAuB,aAAa,EAAE,GAAG7D,iBAAiB,QAAS,WAE5E,IAAI6xB,EADQ1rC,KAAK+X,WAAWA,UACb,EAAE9O,KAAK,CAC1B,CAAC,EACD6iC,sBAAsBH,CAAS,CACnC,EAKAD,EAAMjmC,UAAUwD,KAAO,WACnBjJ,KAAK4Z,QAAQ7W,UAAUqB,OAAO,MAAM,EACpCpE,KAAK4Z,QAAQ7W,UAAUgB,IAAI,MAAM,CACrC,EAcoBtE,EAAA,QAALisC,C,0BC1Cf,aAKA,SAASK,EAAQnyB,GAEb,GADA5Z,KAAK4Z,QAAUA,EACmC,OAA9C5Z,KAAK4Z,QAAQvW,aAAa,cAAc,EACxC,MAAM,IAAIzC,MAAK,8FAA+F,CAEtH,CA0EA,SAASorC,EAAWC,GAChB,IAwDyDzsB,EAxDrDjP,EAAM07B,EAAQ5oC,aAAa,uBAAuB,GAAK,MAEvD6oC,GAaetyB,EAbSqyB,EAaA17B,EAbSA,GAcjC27B,EAAU5qC,SAASC,cAAc,KAAK,GAClC4qC,UAAY,iBAEhBl7B,EAAK,WADK3P,SAASoc,uBAAuB,gBAAgB,EAChC1c,OAAS,EACvCkrC,EAAQxoC,aAAa,KAAMuN,CAAE,EAC7Bi7B,EAAQxoC,aAAa,OAAQ,SAAS,EACtCwoC,EAAQxoC,aAAa,cAAe6M,CAAG,EACvCqJ,EAAQlW,aAAa,mBAAoBuN,CAAE,GAEvCm7B,EAAe9qC,SAASC,cAAc,KAAK,GAClC4qC,UAAY,WAErBE,EAAe/qC,SAASC,cAAc,KAAK,GAClC4qC,UAAY,gBACzBC,EAAar+B,YAAYs+B,CAAY,GAEjCC,EAAiBhrC,SAASC,cAAc,KAAK,GAClC4qC,UAAY,kBAC3BG,EAAe7qB,UAAY7H,EAAQvW,aAAa,cAAc,EAC9D+oC,EAAar+B,YAAYu+B,CAAc,EACvCJ,EAAQn+B,YAAYq+B,CAAY,EAEzBF,GAaSK,GA/ChBjrC,SAAS4c,KAAKnQ,YAAYm+B,CAAO,EAEtBD,GA6CaC,EA7CJA,EA6Ca37B,EA7CJA,EA8CzB07B,EAAUM,EAEVC,GADQN,EAAQxuB,uBAAuB,eAAe,EAAE,GACtC6uB,EAAO9tB,sBAAsB,GAE/CguB,EAAeF,EAAO9tB,sBAAsB,EAE5CiuB,EAAeR,EAAQnK,YAGvB4K,EAAiB,OAIZ,YAHT1L,EAAO1a,SAASkmB,EAAaxL,IAAI,GAAMsL,EAAOxK,YAAcmK,EAAQnK,aAAe,EAE3ExxB,IAEAiP,EAAM+G,SAASkmB,EAAaptB,MAAM,EAN/B,GAOHstB,EAAiB,MAKjBntB,EAAM+G,SAASkmB,EAAajtB,GAAG,EAAI0sB,EAAQ1tB,aAZxC,GAgBPyiB,EAAO,IACPA,EAjBO,GAoBH2L,GAFAC,EAAoBL,EAAgBvL,KAAQgL,EAAQlK,YAAc,GAlB/D,GAmBqB,EAE5BmK,EAAQxuB,uBAAuB,eAAe,EAAE,GAAG7P,MAAMozB,KAAO2L,EAAoB,MAInFptB,EAAM0sB,EAAQ1tB,cAAiB3e,OAAOye,cACvCkB,EAAM+G,SAASkmB,EAAajtB,GAAG,EAAI0sB,EAAQ1tB,aA1BpC,GA2BPmuB,EAAiB,QAIjBntB,EAAM,IACNA,EAAM+G,SAASkmB,EAAaptB,MAAM,EAhC3B,GAiCPstB,EAAiB,MAGjB9sC,OAAOmiC,WAAcf,EAAOyL,GAC5BR,EAAQr+B,MAAMi0B,MAAQgL,OAClBC,EAAoBP,EAAgB1K,MAASmK,EAAQlK,YAAc,EAEnEiL,EAAqBntC,OAAOmiC,WAAa+K,EAxCtC,GAuCqB,EAE5Bb,EAAQxuB,uBAAuB,eAAe,EAAE,GAAG7P,MAAMi0B,MAAQkL,EAAqB,KACtFd,EAAQxuB,uBAAuB,eAAe,EAAE,GAAG7P,MAAMozB,KAAO,QAEhEiL,EAAQr+B,MAAMozB,KAAOA,EAAO,KAEhCiL,EAAQr+B,MAAM2R,IAAMA,EAAMwhB,YAAc,KACxCkL,EAAQxuB,uBAAuB,eAAe,EAAE,GAAG3a,UAAUgB,IAAI4oC,CAAc,CApGnF,CAwGA,SAASM,EAAiB/yB,GACtB,GADkC,EAAAjW,UAAAjD,QAAAkE,KAAAA,IAAAjB,UAAA,IAAAA,UAAA,IACpB,CAACiW,EAAM1R,OAAOzF,UAAUe,SAAS,YAAY,GAAK,CAACoW,EAAM1R,OAAOzF,UAAUe,SAAS,SAAS,GAAK,CAACoW,EAAM1R,OAAOzF,UAAUe,SAAS,iBAAiB,EAE7J,IADA,IAAIopC,EAAW5rC,SAAS0W,iBAAiB,iBAAiB,EACjDzX,EAAI,EAAGA,EAAI2sC,EAASlsC,OAAQT,CAAC,GAAI,CACtC,IAAI0rC,EAAU3qC,SAAS2d,cAAc,qBAAuBiuB,EAAS3sC,GAAG8C,aAAa,IAAI,EAAI,GAAG,EAChG4oC,EAAQhN,gBAAgB,qBAAqB,EAC7CgN,EAAQhN,gBAAgB,kBAAkB,EAC1CgN,EAAQlpC,UAAUqB,OAAO,eAAe,EACxC6nC,EAAQlpC,UAAUqB,OAAO,eAAe,EACxC9C,SAAS4c,KAAK+lB,YAAYiJ,EAAS3sC,EAAE,CACzC,CAER,CAEA,SAAS4sC,EAAkBlB,GACvB,IAAImB,EAAYnB,EAAQ5oC,aAAa,kBAAkB,EACnDgqC,EAAiB/rC,SAASyhB,eAAeqqB,CAAS,EACtDC,EAAevzB,oBAAoB,aAAcwzB,CAAc,EAC/DD,EAAexzB,iBAAiB,aAAcyzB,CAAc,EAC5DC,WAAW,WACP,IAwBetB,EACfmB,EACAC,EAzBuB,OADF/rC,SAASyhB,eAAeqqB,CAAS,GAE7CnB,EAAQlpC,UAAUe,SAAS,eAAe,IAuBnDspC,GADenB,EArBOA,GAsBF5oC,aAAa,kBAAkB,EACnDgqC,EAAiB/rC,SAASyhB,eAAeqqB,CAAS,EAEpC,OAAdA,GAAyC,OAAnBC,GACtB/rC,SAAS4c,KAAK+lB,YAAYoJ,CAAc,EAE5CpB,EAAQhN,gBAAgB,kBAAkB,EAC1CgN,EAAQlpC,UAAUqB,OAAO,eAAe,EACxC6nC,EAAQlpC,UAAUqB,OAAO,eAAe,EA3BxC,EAAG,GAAG,CACV,CAEA,SAASkpC,EAAentC,GACpB,IAAIktC,EAAiBrtC,KAEPsB,SAAS2d,cAAc,qBAAuBouB,EAAehqC,aAAa,IAAI,EAAI,GAAG,EAC3FN,UAAUgB,IAAI,eAAe,EAErCspC,EAAexzB,iBAAiB,aAAc,WAC1C,IAAIoyB,EAAU3qC,SAAS2d,cAAc,qBAAuBouB,EAAehqC,aAAa,IAAI,EAAI,GAAG,EACnF,OAAZ4oC,IACAA,EAAQlpC,UAAUqB,OAAO,eAAe,EACxC+oC,EAAkBlB,CAAO,EAEjC,CAAC,CACL,CA/NAF,EAAQtmC,UAAUoW,KAAO,WAErB7b,KAAK4Z,QAAQC,iBAAiB,aAAc,SAAU1Z,GAClD,IAAI8rC,EAAU9rC,EAAEqI,OACoC,CAAA,IAAhDyjC,EAAQlpC,UAAUe,SAAS,eAAe,GAA+D,CAAA,IAAhDmoC,EAAQlpC,UAAUe,SAAS,eAAe,IACnGmpC,EAAiB9sC,CAAC,EAClB8rC,EAAQlpC,UAAUgB,IAAI,eAAe,EACrCwpC,WAAW,WACP,IACQ3zB,EADJqyB,EAAQlpC,UAAUe,SAAS,eAAe,GAGO,QAF7C8V,EAAUzZ,EAAEqI,QAEJnF,aAAa,kBAAkB,GAC3C2oC,EAAWpyB,CAAO,CAE1B,EAAG,GAAG,EAEd,CAAC,EAED5Z,KAAK4Z,QAAQC,iBAAiB,aAAc,SAAU1Z,GAClD,IAGQitC,EAHJnB,EAAU9rC,EAAEqI,OACZyjC,EAAQlpC,UAAUe,SAAS,eAAe,IAC1CmoC,EAAQlpC,UAAUqB,OAAO,eAAe,EACpCgpC,EAAYnB,EAAQ5oC,aAAa,kBAAkB,EAEhC,OADF/B,SAASyhB,eAAeqqB,CAAS,IAElDD,EAAkBlB,CAAO,CAGrC,CAAC,EAEDjsC,KAAK4Z,QAAQC,iBAAiB,QAAS,SAAUK,GAEjC,MADFA,EAAMxH,OAASwH,EAAMvH,WAGX,QADZu5B,EAAUlsC,KAAKqD,aAAa,kBAAkB,IACW,OAArC/B,SAASyhB,eAAempB,CAAO,GACnD5qC,SAAS4c,KAAK+lB,YAAY3iC,SAASyhB,eAAempB,CAAO,CAAC,EAE9DlsC,KAAK+C,UAAUqB,OAAO,QAAQ,EAC9BpE,KAAKi/B,gBAAgB,kBAAkB,EAE/C,CAAC,EAEyD,UAAtDj/B,KAAK4Z,QAAQvW,aAAa,sBAAsB,GAChDrD,KAAK4Z,QAAQC,iBAAiB,QAAS,SAAU1Z,GAC7C,IAAI8rC,EAAU9rC,EAAEqI,OAChBykC,EAAiB9sC,CAAC,EAClB8rC,EAAQlpC,UAAUgB,IAAI,eAAe,EACrCkoC,EAAQlpC,UAAUqB,OAAO,eAAe,EACS,OAA7C6nC,EAAQ5oC,aAAa,kBAAkB,GAC3C2oC,EAAWC,CAAO,CACtB,CAAC,EAGL3qC,SAASwd,qBAAqB,MAAM,EAAE,GAAGhF,oBAAoB,QAASmzB,CAAgB,EACtF3rC,SAASwd,qBAAqB,MAAM,EAAE,GAAGjF,iBAAiB,QAASozB,CAAgB,CACvF,EAsLAvtC,EAAOD,QAAUssC,C,uCC5PjBrsC,EAAOD,QAAU,CACf8yB,OAAQ,EACV,C,0BCFA,aACA,IAAAib,EAAAC,EAAAhtC,EAAA,wBAAA,CAAA,EACAitC,EAAAD,EAAAhtC,EAAA,oBAAA,CAAA,EACAktC,EAAAF,EAAAhtC,EAAA,0BAAA,CAAA,EACAmtC,EAAAH,EAAAhtC,EAAA,8BAAA,CAAA,EACAotC,EAAAJ,EAAAhtC,EAAA,sCAAA,CAAA,EACA6+B,EAAAmO,EAAAhtC,EAAA,uBAAA,CAAA,EACAqtC,EAAAL,EAAAhtC,EAAA,4BAAA,CAAA,EACAstC,EAAAN,EAAAhtC,EAAA,4BAAA,CAAA,EACAutC,EAAAP,EAAAhtC,EAAA,+BAAA,CAAA,EACAwtC,EAAAR,EAAAhtC,EAAA,oBAAA,CAAA,EACAytC,EAAAT,EAAAhtC,EAAA,yBAAA,CAAA,EACA0tC,EAAAV,EAAAhtC,EAAA,mCAAA,CAAA,EACA2tC,EAAAX,EAAAhtC,EAAA,oBAAA,CAAA,EACA4tC,EAAAZ,EAAAhtC,EAAA,qBAAA,CAAA,EACA6tC,EAAAb,EAAAhtC,EAAA,+BAAA,CAAA,EACA8tC,EAAAd,EAAAhtC,EAAA,oBAAA,CAAA,EACA+tC,EAAAf,EAAAhtC,EAAA,sBAAA,CAAA,EAA2C,SAAAgtC,EAAA70B,GAAA,OAAAA,GAAAA,EAAA2mB,WAAA3mB,EAAA,CAAA4mB,QAAA5mB,CAAA,CAAA,CAC3C,IAAMkkB,EAAar8B,EAAQ,0BAA0B,EAKrDA,EAAQ,aAAa,EA0LrBf,EAAOD,QAAU,CAAEoc,KApLR,SAAUtC,GAcnB,IARA,IAAIk1B,EAAiC,KAAA,KAJrCl1B,EAA6B,KAAA,IAAZA,EAA0BA,EAAU,IAI1Bk1B,MAAwBl1B,EAAQk1B,MAAQntC,SAO7DotC,EAAsBD,EAAM/wB,uBAAuB,WAAW,EAC5Dld,EAAI,EAAGA,EAAIkuC,EAAoB1tC,OAAQR,CAAC,GAC9C,IAAIgtC,EAAA,QAAUkB,EAAqBluC,EAAG,EAAEqb,KAAK,EAG/C,IADA,IAAM8yB,EAA8BF,EAAMz2B,iBAAiB,qCAAqC,EACxFmwB,EAAI,EAAGA,EAAIwG,EAA4B3tC,OAAQmnC,CAAC,GACtD,IAAIqF,EAAA,QAAUmB,EAA6BxG,EAAG,EAAEtsB,KAAK,EAUvD,IADA,IAAM+yB,EAAwBH,EAAMz2B,iBAAiB,kBAAkB,EAC/D62B,EAAI,EAAGA,EAAID,EAAsB5tC,OAAQ6tC,CAAC,GAChD,IAAInB,EAAA,QAAMkB,EAAuBC,EAAG,EAAEhzB,KAAK,EAU7C,IADA,IAAMizB,EAAmBL,EAAM/wB,uBAAuB,oBAAoB,EAClEqxB,EAAI,EAAGA,EAAID,EAAiB9tC,OAAQ+tC,CAAC,GAC3C,IAAIpB,EAAA,QAAUmB,EAAkBC,EAAG,EAAElzB,KAAK,EAS5C,IADA,IAAMmzB,EAAmBP,EAAM/wB,uBAAuB,YAAY,EAC1DuxB,EAAI,EAAGA,EAAID,EAAiBhuC,OAAQiuC,CAAC,GAE3C,IAAIrB,EAAA,QAAeoB,EAAkBC,EAAG,EAAEpzB,KAAK,EASjD,IADA,IAAMqzB,EAA6BT,EAAM/wB,uBAAuB,4BAA4B,EACpFyxB,EAAI,EAAGA,EAAID,EAA2BluC,OAAQmuC,CAAC,GACrD,IAAItB,EAAA,QAAsBqB,EAA4BC,EAAG,EAAEtzB,KAAK,EASlE,IADA,IAAMuzB,EAAqBX,EAAM/wB,uBAAuB,aAAa,EAC7D2xB,EAAI,EAAGA,EAAID,EAAmBpuC,OAAQquC,CAAC,GAC7C,IAAI/P,EAAA,QAAS8P,EAAoBC,EAAG,EAAExzB,KAAK,EAU7C,IADA,IAAMyzB,EAAyBb,EAAM/wB,uBAAuB,qBAAqB,EACzE6xB,EAAI,EAAGA,EAAID,EAAuBtuC,OAAQuuC,CAAC,GACjD,IAAIzB,EAAA,QAAawB,EAAwBC,EAAG,EAAE1zB,KAAK,EAQrDihB,EAAW0S,GAAGf,CAAK,EAgBnB,IATA,IAAIgB,EAAgBhB,EAAMxvB,cAAc,+BAA+B,EAQjEywB,GAPN,IAAI3B,EAAA,QAAa0B,CAAa,EAAE5zB,KAAK,EAOb4yB,EAAMz2B,iBAAiB,yBAAyB,GAChE23B,EAAI,EAAGA,EAAID,EAAgB1uC,OAAQ2uC,CAAC,GAC1C,IAAI3B,EAAA,QAAe0B,EAAiBC,EAAG,EASzC,IADA,IAAMC,EAASnB,EAAMz2B,iBAAiB,YAAY,EAC1CiT,EAAI,EAAGA,EAAI2kB,EAAO5uC,OAAQiqB,CAAC,GACjC,IAAIgjB,EAAA,QAAM2B,EAAO3kB,EAAE,EAAEpP,KAAK,GAQ5B,IAAIqyB,EAAA,SAAaryB,KAAK,EAQtB,IADA,IAAMg0B,EAA0BpB,EAAM/wB,uBAAuB,uBAAuB,EAC5EoyB,EAAI,EAAGA,EAAID,EAAwB7uC,OAAQ8uC,CAAC,GAClD,IAAI3B,EAAA,QAAiB0B,EAAyBC,EAAG,EAAEj0B,KAAK,EAS1D,IADA,IAAMk0B,EAAkBtB,EAAMz2B,iBAAiB,0IAA0I,EACjLg4B,EAAI,EAAGA,EAAID,EAAgB/uC,OAAQgvC,CAAC,GAC1C,IAAI5B,EAAA,QAAgB2B,EAAiBC,EAAG,EAS1C,IADA,IAAMC,EAAoBxB,EAAMz2B,iBAAiB,yBAAyB,EAClEk4B,EAAI,EAAGA,EAAID,EAAkBjvC,OAAQkvC,CAAC,GAC5C,IAAI5B,EAAA,QAAoB2B,EAAmBC,EAAG,EAAEr0B,KAAK,EASvD,IADA,IAAMs0B,EAAmB1B,EAAM/wB,uBAAuB,QAAQ,EACtD0yB,EAAI,EAAGA,EAAID,EAAiBnvC,OAAQovC,CAAC,GAC3C,IAAI/B,EAAA,QAAO8B,EAAkBC,EAAG,EAAEv0B,KAAK,EASzC,IADA,IAAMw0B,EAAoB5B,EAAM/wB,uBAAuB,YAAY,EAC3D4yB,EAAI,EAAGA,EAAID,EAAkBrvC,OAAQsvC,CAAC,GAC5C,IAAI9B,EAAA,QAAQ6B,EAAmBC,EAAG,EAAEz0B,KAAK,CAG7C,EAEyBL,UAAAgyB,EAAA,QAAWhwB,MAAAkwB,EAAA,QAAO5vB,UAAA6vB,EAAA,QAAW/sB,eAAAgtB,EAAA,QAAgBlrB,sBAAAmrB,EAAA,QAAuB1N,SAAAb,EAAA,QAAUG,aAAAqO,EAAA,QAAchR,WAAAA,EAAYwF,aAAAyL,EAAA,QAAc5G,eAAA6G,EAAA,QAAgBxK,MAAAyK,EAAA,QAAO3I,WAAA4I,EAAA,QAAYvH,iBAAAwH,EAAA,QAAkBxF,gBAAAyF,EAAA,QAAiBxG,oBAAA0G,EAAA,QAAqBxE,OAAAuE,EAAA,QAAQ3C,MAAA6C,EAAA,QAAOxC,QAAAyC,EAAA,OAAO,C,mlBCjNhQ9uC,EAAOD,QAAU,CAaf6yB,MAAO,OACT,C,gECdoC,SAAAxoB,EAAAxJ,GAAA,OAAAwJ,EAAA,YAAA,OAAAiD,QAAA,UAAA,OAAAA,OAAA/C,SAAA,SAAA1J,GAAA,OAAA,OAAAA,CAAA,EAAA,SAAAA,GAAA,OAAAA,GAAA,YAAA,OAAAyM,QAAAzM,EAAAyO,cAAAhC,QAAAzM,IAAAyM,OAAAtH,UAAA,SAAA,OAAAnF,CAAA,GAAAA,CAAA,CAAA,CAApCG,EAAA,6BAAA,EAEA,SAAUyE,GAEK,SAAU4D,SAASrD,WAKhC1D,OAAO6C,eAAekE,SAASrD,UAAW,OAAQ,CAC9Cc,MAAO,SAAckB,GAML,SAAR8F,KAJJ,IAAIgjC,EAASluC,MACTmuC,EAAUzuC,OACV0uC,EAAkBD,EAAQ/qC,UAC1BirC,EAAiBH,EAAO9qC,UAExBkrC,EAAYF,EAAgB9sC,SAC5BitC,EAAmC,YAAlB,OAAO7jC,QAAuD,WAA9BjD,EAAOiD,OAAO8jC,WAAW,EACTC,EAAUhoC,SAASrD,UAAU9B,SAC9FotC,EAAcL,EAAe1pC,MAC7BgqC,EAAeN,EAAerjC,OAC9B4jC,EAAaP,EAAeltC,KAC5BmN,EAAMtH,KAAKsH,IAIXnI,EAASxI,KAEb,GAAI,CAV8T,SAAoBuG,GAAS,GAAqB,YAAjB,OAAOA,EAAwB,MAAO,CAAA,EAAS,GAAIqqC,CAAAA,EAA2F,MAA1P,uBAAwNM,EAAWP,EAAU5vC,KAAKwF,CAAK,IAAvN,+BAAyP2qC,EAAjGC,IAApR5qC,EAAsSA,EAA7R,IAA2B,OAArBuqC,EAAQ/vC,KAAKwF,CAAK,EAAU,CAAA,CAAkC,CAA1B,MAAOpG,GAAK,MAAO,CAAA,CAAO,CAA+T,EAUvhBqI,CAAM,EAClB,MAAM,IAAI1C,UAAU,kDAAoD0C,CAAM,EAoFlF,IA/EA,IAUI4oC,EAVAC,EAAON,EAAYhwC,KAAKkD,UAAW,CAAC,EA0EpCqtC,EAAc3gC,EAAI,EAAGnI,EAAOxH,OAASqwC,EAAKrwC,MAAM,EAIhDuwC,EAAY,GACPhxC,EAAI,EAAGA,EAAI+wC,EAAa/wC,CAAC,GAC9B0wC,EAAWlwC,KAAKwwC,EAAW,IAAMhxC,CAAC,EAuCtC,OA9BA6wC,EAAQtoC,SAAS,SAAU,oBAAsByoC,EAAU5sC,KAAK,GAAG,EAAI,4CAA4C,EA9EtG,WAET,IAiBQF,EAjBR,OAAIzE,gBAAgBoxC,GAiBZ3sC,EAAS+D,EAAOb,MAChB3H,KACAgxC,EAAajwC,KAAKswC,EAAMN,EAAYhwC,KAAKkD,SAAS,CAAC,CACvD,EACIusC,EAAQ/rC,CAAM,IAAMA,EACbA,EAEJzE,MAsBAwI,EAAOb,MACVF,EACAupC,EAAajwC,KAAKswC,EAAMN,EAAYhwC,KAAKkD,SAAS,CAAC,CACvD,CAIR,CAuB2H,EAEvHuE,EAAO/C,YACP8H,EAAM9H,UAAY+C,EAAO/C,UACzB2rC,EAAM3rC,UAAY,IAAI8H,EAEtBA,EAAM9H,UAAY,MAwBf2rC,CACX,CACJ,CAAC,CACF,EACArwC,KAAK,YAA0B,aAAlB,OAAYlB,OAAM,YAAAiK,EAANjK,MAAM,IAAIA,QAAU,YAAwB,aAAhB,OAAYE,KAAI,YAAA+J,EAAJ/J,IAAI,IAAIA,MAAQ,YAA0B,KAAA,IAAND,EAAM,YAAAgK,EAANhK,CAAM,IAAIA,GAAU,EAAE,C,kcC9J5H,CAAA,SAAUoF,GAGV,IAiBWssC,EAENC,EACAC,EACAC,EAlBH,mBAAoB5vC,QAAW,WAC9B,IAGC,OADAA,OAAO6C,eADC,GACiB,OAAQ,CAAC2B,MAAM,EAAE,CAAC,EACpC,CAAA,CAGR,CAFE,MAAMpG,GACP,MAAO,CAAA,CACR,CACD,EAAE,IAMOqxC,EA+DTzvC,OAAO6C,eA7DJ6sC,EAAoB1vC,OAAO0D,UAAU8D,eAAe,kBAAkB,EACtEmoC,EAA8B,gEAC9BC,EAAsB,wEAE1B5vC,OAAO6C,eAAiB,SAAwB0C,EAAQsqC,EAAUxnC,GAGjE,GAAIonC,IAAyBlqC,IAAWzH,QAAUyH,IAAWhG,UAAYgG,IAAWzF,QAAQ4D,WAAa6B,aAAkBzF,SAC1H,OAAO2vC,EAAqBlqC,EAAQsqC,EAAUxnC,CAAU,EAGzD,GAAe,OAAX9C,GAAmB,EAAEA,aAAkBvF,QAA4B,WAAlB+H,EAAOxC,CAAM,GACjE,MAAM,IAAIxB,UAAU,4CAA4C,EAGjE,GAAI,EAAEsE,aAAsBrI,QAC3B,MAAM,IAAI+D,UAAU,wCAAwC,EAG7D,IAAI+rC,EAAiB5vC,OAAO2vC,CAAQ,EAChCE,EAAqB,UAAW1nC,GAAc,aAAcA,EAC5D2nC,EAAa,QAAS3nC,GAAUN,EAAWM,EAAWtF,GAAG,EACzDktC,EAAa,QAAS5nC,GAAUN,EAAWM,EAAW6nC,GAAG,EAG7D,GAAIF,EAAY,CACf,GAAmB,aAAfA,EACH,MAAM,IAAIjsC,UAAU,2BAA2B,EAEhD,GAAI,CAAC2rC,EACJ,MAAM,IAAI3rC,UAAU4rC,CAA2B,EAEhD,GAAII,EACH,MAAM,IAAIhsC,UAAU6rC,CAAmB,EAExC5vC,OAAOqD,iBAAiBrE,KAAKuG,EAAQuqC,EAAgBznC,EAAWtF,GAAG,CACpE,MACCwC,EAAOuqC,GAAkBznC,EAAW7D,MAIrC,GAAIyrC,EAAY,CACf,GAAmB,aAAfA,EACH,MAAM,IAAIlsC,UAAU,2BAA2B,EAEhD,GAAI,CAAC2rC,EACJ,MAAM,IAAI3rC,UAAU4rC,CAA2B,EAEhD,GAAII,EACH,MAAM,IAAIhsC,UAAU6rC,CAAmB,EAExC5vC,OAAOmwC,iBAAiBnxC,KAAKuG,EAAQuqC,EAAgBznC,EAAW6nC,GAAG,CACpE,CAOA,MAJI,UAAW7nC,IACd9C,EAAOuqC,GAAkBznC,EAAW7D,OAG9Be,CACR,EAEA,EACAvG,KAAK,YAA0B,aAAlB,OAAYlB,OAAM,YAAAiK,EAANjK,MAAM,IAAIA,QAAU,YAAwB,aAAhB,OAAYE,KAAI,YAAA+J,EAAJ/J,IAAI,IAAIA,MAAQ,YAA0B,KAAA,IAAND,EAAM,YAAAgK,EAANhK,CAAM,IAAIA,GAAU,EAAE,C,oKClFxF,YAA9B,OAAOD,OAAOggB,cAkBlBhgB,OAAOggB,YAhBP,SAAqB3F,EAAOi4B,GAC1B,IAAMC,EAASD,GAAW,CACxB/J,QAAS,CAAA,EACTC,WAAY,CAAA,EACZvoB,OAAQ,IACV,EACMF,EAAMte,SAASwiC,YAAY,aAAa,EAO9C,OANAlkB,EAAIyyB,gBACFn4B,EACAk4B,EAAOhK,QACPgK,EAAO/J,WACP+J,EAAOtyB,MACT,EACOF,CACT,E,0BCnBF,aACA,IAAM0yB,EAAUzyC,OAAO0yC,YAAY9sC,UAC7B+sC,EAAS,SAETA,KAAUF,GACdvwC,OAAO6C,eAAe0tC,EAASE,EAAQ,CACrC1tC,IAAK,WACH,OAAO9E,KAAKq4B,aAAama,CAAM,CACjC,EACAP,IAAK,SAAU1rC,GACTA,EACFvG,KAAK0D,aAAa8uC,EAAQ,EAAE,EAE5BxyC,KAAKi/B,gBAAgBuT,CAAM,CAE/B,CACF,CAAC,C,0BChBH,aAEA/xC,EAAQ,oBAAoB,EAE5BA,EAAQ,kBAAkB,EAG1BA,EAAQ,iBAAiB,EAGzBA,EAAQ,gBAAgB,EAExBA,EAAQ,0BAA0B,EAClCA,EAAQ,uBAAuB,C,mLCb/BijB,OAAO3S,MACL2S,OAAO3S,OACP,SAAeiQ,GAEb,MAAwB,UAAjB,OAAOA,GAAsBA,GAAUA,CAChD,C,uCCLFthB,EAAOD,QAAU,WAAwB,OAAX,EAAAwE,UAAAjD,QAAAkE,KAAAA,IAAAjB,UAAA,GAAAA,UAAA,GAAG3C,UAA0BwwB,aAAa,C,wCCUvD,SAAX2gB,IAAQ,IAAA,IAAAxuB,EAAAhgB,UAAAjD,OAAO0xC,EAAG,IAAArwC,MAAA4hB,CAAA,EAAAjJ,EAAA,EAAAA,EAAAiJ,EAAAjJ,CAAA,GAAH03B,EAAG13B,GAAA/W,UAAA+W,GAAA,OACtB,WAA2C,IAAA8F,EAAA9gB,KAAxBwI,EAAM,EAAAvE,UAAAjD,QAAAkE,KAAAA,IAAAjB,UAAA,GAAAA,UAAA,GAAG3C,SAAS4c,KACnCw0B,EAAIrxC,QAAQ,SAACqD,GACiB,YAAxB,OAAOoc,EAAKpc,IACdoc,EAAKpc,GAAQ3D,KAAK+f,EAAMtY,CAAM,CAElC,CAAC,CACH,CAAC,CAjBH,IAAM5C,EAASnF,EAAQ,eAAe,EAChCkyC,EAAWlyC,EAAQ,UAAU,EAwBnCf,EAAOD,QAAU,SAACuZ,EAAQC,GAAK,OAC7B05B,EAASr4B,SACPtB,EACApT,EACE,CACE4pC,GAAIiD,EAAS,OAAQ,KAAK,EAC1BG,IAAKH,EAAS,WAAY,QAAQ,CACpC,EACAx5B,CACF,CACF,CAAC,C,yDCnCH,aASAvZ,EAAOD,QARW,CAChB4pC,GAAM,EACNC,GAAM,IACNlH,GAAM,IACNC,GAAM,IACNkH,GAAM,IACR,C,wCCMA7pC,EAAOD,QAZP,SAA8B4G,GACgC,IAD5BwsC,EAAG,EAAA5uC,UAAAjD,QAAAkE,KAAAA,IAAAjB,UAAA,GAAAA,UAAA,GAACpE,OACRizC,EAAK,EAAA7uC,UAAAjD,QAAAkE,KAAAA,IAAAjB,UAAA,GAAAA,UAAA,GAAC3C,SAASmI,gBACvC8V,EAAOlZ,EAAGoY,sBAAsB,EAEpC,OACc,GAAZc,EAAKC,KACQ,GAAbD,EAAK0hB,MACL1hB,EAAKF,SAAWwzB,EAAIv0B,aAAew0B,EAAMz0B,eACzCkB,EAAKuiB,QAAU+Q,EAAI7Q,YAAc8Q,EAAMnI,YAE3C,C,wCCDAjrC,EAAOD,QATP,WACE,MACuB,aAArB,OAAOszC,YACNA,UAAUC,UAAU15B,MAAM,qBAAqB,GACtB,aAAvBy5B,UAAUE,UAAsD,EAA3BF,UAAUG,iBAClD,CAACrzC,OAAOszC,QAEZ,C,6QCSAzzC,EAAOD,QAAU,SAACmY,EAAUw7B,GAC1B,IAQMC,EARN,MAAwB,UAApB,OAAOz7B,EACF,IAOHy7B,GAHJD,EADGA,IAhBY7sC,EAgBU6sC,IAfD,WAAjBtpC,EAAOvD,CAAK,GAAoC,IAAnBA,EAAMsR,SAmB1Bu7B,EAHNvzC,OAAOyB,UAGO0W,iBAAiBJ,CAAQ,EAC5CvV,MAAMoD,UAAUuB,MAAMjG,KAAKsyC,CAAS,EAC7C,C,2BC5BA,aACA,IAAMl4B,EAAW,gBAIjBzb,EAAOD,QAAU,SAACsd,EAAQf,GAEA,WAApB,OAAOA,IACTA,EAA6C,UAAlCe,EAAO1Z,aAAa8X,CAAQ,GAEzC4B,EAAOrZ,aAAayX,EAAUa,CAAQ,EACtC,IAAM/K,EAAK8L,EAAO1Z,aATH,eASwB,EACjCiwC,EAAWhyC,SAASyhB,eAAe9R,CAAE,EAC3C,GAAKqiC,EAOL,OADAA,EAAS5vC,aAhBI,cAgBiB,CAACsY,CAAQ,EAChCA,EANL,MAAM,IAAIpb,MACR,oCAAsCqQ,EAAK,GAC7C,CAKJ","file":"dkfds.min.js","sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","module.exports = require('./_shared')('native-function-to-string', Function.toString);\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","module.exports = {};\n","module.exports = false;\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","exports.f = {}.propertyIsEnumerable;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar $toString = require('./_function-to-string');\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","/* global define, KeyboardEvent, module */\n\n(function () {\n\n var keyboardeventKeyPolyfill = {\n polyfill: polyfill,\n keys: {\n 3: 'Cancel',\n 6: 'Help',\n 8: 'Backspace',\n 9: 'Tab',\n 12: 'Clear',\n 13: 'Enter',\n 16: 'Shift',\n 17: 'Control',\n 18: 'Alt',\n 19: 'Pause',\n 20: 'CapsLock',\n 27: 'Escape',\n 28: 'Convert',\n 29: 'NonConvert',\n 30: 'Accept',\n 31: 'ModeChange',\n 32: ' ',\n 33: 'PageUp',\n 34: 'PageDown',\n 35: 'End',\n 36: 'Home',\n 37: 'ArrowLeft',\n 38: 'ArrowUp',\n 39: 'ArrowRight',\n 40: 'ArrowDown',\n 41: 'Select',\n 42: 'Print',\n 43: 'Execute',\n 44: 'PrintScreen',\n 45: 'Insert',\n 46: 'Delete',\n 48: ['0', ')'],\n 49: ['1', '!'],\n 50: ['2', '@'],\n 51: ['3', '#'],\n 52: ['4', '$'],\n 53: ['5', '%'],\n 54: ['6', '^'],\n 55: ['7', '&'],\n 56: ['8', '*'],\n 57: ['9', '('],\n 91: 'OS',\n 93: 'ContextMenu',\n 144: 'NumLock',\n 145: 'ScrollLock',\n 181: 'VolumeMute',\n 182: 'VolumeDown',\n 183: 'VolumeUp',\n 186: [';', ':'],\n 187: ['=', '+'],\n 188: [',', '<'],\n 189: ['-', '_'],\n 190: ['.', '>'],\n 191: ['/', '?'],\n 192: ['`', '~'],\n 219: ['[', '{'],\n 220: ['\\\\', '|'],\n 221: [']', '}'],\n 222: [\"'\", '\"'],\n 224: 'Meta',\n 225: 'AltGraph',\n 246: 'Attn',\n 247: 'CrSel',\n 248: 'ExSel',\n 249: 'EraseEof',\n 250: 'Play',\n 251: 'ZoomOut'\n }\n };\n\n // Function keys (F1-24).\n var i;\n for (i = 1; i < 25; i++) {\n keyboardeventKeyPolyfill.keys[111 + i] = 'F' + i;\n }\n\n // Printable ASCII characters.\n var letter = '';\n for (i = 65; i < 91; i++) {\n letter = String.fromCharCode(i);\n keyboardeventKeyPolyfill.keys[i] = [letter.toLowerCase(), letter.toUpperCase()];\n }\n\n function polyfill () {\n if (!('KeyboardEvent' in window) ||\n 'key' in KeyboardEvent.prototype) {\n return false;\n }\n\n // Polyfill `key` on `KeyboardEvent`.\n var proto = {\n get: function (x) {\n var key = keyboardeventKeyPolyfill.keys[this.which || this.keyCode];\n\n if (Array.isArray(key)) {\n key = key[+this.shiftKey];\n }\n\n return key;\n }\n };\n Object.defineProperty(KeyboardEvent.prototype, 'key', proto);\n return proto;\n }\n\n if (typeof define === 'function' && define.amd) {\n define('keyboardevent-key-polyfill', keyboardeventKeyPolyfill);\n } else if (typeof exports !== 'undefined' && typeof module !== 'undefined') {\n module.exports = keyboardeventKeyPolyfill;\n } else if (window) {\n window.keyboardeventKeyPolyfill = keyboardeventKeyPolyfill;\n }\n\n})();\n","'use strict';\n\nvar proto = typeof Element !== 'undefined' ? Element.prototype : {};\nvar vendor = proto.matches\n || proto.matchesSelector\n || proto.webkitMatchesSelector\n || proto.mozMatchesSelector\n || proto.msMatchesSelector\n || proto.oMatchesSelector;\n\nmodule.exports = match;\n\n/**\n * Match `el` to `selector`.\n *\n * @param {Element} el\n * @param {String} selector\n * @return {Boolean}\n * @api public\n */\n\nfunction match(el, selector) {\n if (!el || el.nodeType !== 1) return false;\n if (vendor) return vendor.call(el, selector);\n var nodes = el.parentNode.querySelectorAll(selector);\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i] == el) return true;\n }\n return false;\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","const assign = require('object-assign');\nconst delegate = require('./delegate');\nconst delegateAll = require('./delegateAll');\n\nconst DELEGATE_PATTERN = /^(.+):delegate\\((.+)\\)$/;\nconst SPACE = ' ';\n\nconst getListeners = function(type, handler) {\n var match = type.match(DELEGATE_PATTERN);\n var selector;\n if (match) {\n type = match[1];\n selector = match[2];\n }\n\n var options;\n if (typeof handler === 'object') {\n options = {\n capture: popKey(handler, 'capture'),\n passive: popKey(handler, 'passive')\n };\n }\n\n var listener = {\n selector: selector,\n delegate: (typeof handler === 'object')\n ? delegateAll(handler)\n : selector\n ? delegate(selector, handler)\n : handler,\n options: options\n };\n\n if (type.indexOf(SPACE) > -1) {\n return type.split(SPACE).map(function(_type) {\n return assign({type: _type}, listener);\n });\n } else {\n listener.type = type;\n return [listener];\n }\n};\n\nvar popKey = function(obj, key) {\n var value = obj[key];\n delete obj[key];\n return value;\n};\n\nmodule.exports = function behavior(events, props) {\n const listeners = Object.keys(events)\n .reduce(function(memo, type) {\n var listeners = getListeners(type, events[type]);\n return memo.concat(listeners);\n }, []);\n\n return assign({\n add: function addBehavior(element) {\n listeners.forEach(function(listener) {\n element.addEventListener(\n listener.type,\n listener.delegate,\n listener.options\n );\n });\n },\n remove: function removeBehavior(element) {\n listeners.forEach(function(listener) {\n element.removeEventListener(\n listener.type,\n listener.delegate,\n listener.options\n );\n });\n }\n }, props);\n};\n","const matches = require('matches-selector');\n\nmodule.exports = function(element, selector) {\n do {\n if (matches(element, selector)) {\n return element;\n }\n } while ((element = element.parentNode) && element.nodeType === 1);\n};\n\n","module.exports = function compose(functions) {\n return function(e) {\n return functions.some(function(fn) {\n return fn.call(this, e) === false;\n }, this);\n };\n};\n","const closest = require('./closest');\n\nmodule.exports = function delegate(selector, fn) {\n return function delegation(event) {\n var target = closest(event.target, selector);\n if (target) {\n return fn.call(target, event);\n }\n }\n};\n","const delegate = require('./delegate');\nconst compose = require('./compose');\n\nconst SPLAT = '*';\n\nmodule.exports = function delegateAll(selectors) {\n const keys = Object.keys(selectors)\n\n // XXX optimization: if there is only one handler and it applies to\n // all elements (the \"*\" CSS selector), then just return that\n // handler\n if (keys.length === 1 && keys[0] === SPLAT) {\n return selectors[SPLAT];\n }\n\n const delegates = keys.reduce(function(memo, selector) {\n memo.push(delegate(selector, selectors[selector]));\n return memo;\n }, []);\n return compose(delegates);\n};\n","module.exports = function ignore(element, fn) {\n return function ignorance(e) {\n if (element !== e.target && !element.contains(e.target)) {\n return fn.call(this, e);\n }\n };\n};\n","'use strict';\n\nmodule.exports = {\n behavior: require('./behavior'),\n delegate: require('./delegate'),\n delegateAll: require('./delegateAll'),\n ignore: require('./ignore'),\n keymap: require('./keymap'),\n};\n","require('keyboardevent-key-polyfill');\n\n// these are the only relevant modifiers supported on all platforms,\n// according to MDN:\n// \nconst MODIFIERS = {\n 'Alt': 'altKey',\n 'Control': 'ctrlKey',\n 'Ctrl': 'ctrlKey',\n 'Shift': 'shiftKey'\n};\n\nconst MODIFIER_SEPARATOR = '+';\n\nconst getEventKey = function(event, hasModifiers) {\n var key = event.key;\n if (hasModifiers) {\n for (var modifier in MODIFIERS) {\n if (event[MODIFIERS[modifier]] === true) {\n key = [modifier, key].join(MODIFIER_SEPARATOR);\n }\n }\n }\n return key;\n};\n\nmodule.exports = function keymap(keys) {\n const hasModifiers = Object.keys(keys).some(function(key) {\n return key.indexOf(MODIFIER_SEPARATOR) > -1;\n });\n return function(event) {\n var key = getEventKey(event, hasModifiers);\n return [key, key.toLowerCase()]\n .reduce(function(result, _key) {\n if (_key in keys) {\n result = keys[key].call(this, event);\n }\n return result;\n }, undefined);\n };\n};\n\nmodule.exports.MODIFIERS = MODIFIERS;\n","'use strict';\r\nimport '../polyfills/Function/prototype/bind';\r\nconst toggle = require('../utils/toggle');\r\nconst isElementInViewport = require('../utils/is-in-viewport');\r\nconst BUTTON = `.accordion-button[aria-controls]`;\r\nconst EXPANDED = 'aria-expanded';\r\nconst BULK_FUNCTION_ACTION_ATTRIBUTE = \"data-accordion-bulk-expand\";\r\nconst TEXT_ACCORDION = {\r\n \"open_all\": \"Åbn alle\",\r\n \"close_all\": \"Luk alle\"\r\n}\r\n\r\n/**\r\n * Adds click functionality to accordion list\r\n * @param {HTMLElement} $accordion the accordion ul element\r\n * @param {JSON} strings Translate labels: {\"open_all\": \"Åbn alle\", \"close_all\": \"Luk alle\"}\r\n */\r\nfunction Accordion($accordion, strings = TEXT_ACCORDION) {\r\n if (!$accordion) {\r\n throw new Error(`Missing accordion group element`);\r\n }\r\n this.accordion = $accordion;\r\n this.text = strings;\r\n}\r\n\r\n/**\r\n * Set eventlisteners on click elements in accordion list\r\n */\r\nAccordion.prototype.init = function () {\r\n this.buttons = this.accordion.querySelectorAll(BUTTON);\r\n if (this.buttons.length == 0) {\r\n throw new Error(`Missing accordion buttons`);\r\n }\r\n\r\n // loop buttons in list\r\n for (var i = 0; i < this.buttons.length; i++) {\r\n let currentButton = this.buttons[i];\r\n\r\n // Verify state on button and state on panel\r\n let expanded = currentButton.getAttribute(EXPANDED) === 'true';\r\n this.toggleButton(currentButton, expanded);\r\n\r\n // Set click event on accordion buttons\r\n currentButton.removeEventListener('click', this.eventOnClick.bind(this, currentButton), false);\r\n currentButton.addEventListener('click', this.eventOnClick.bind(this, currentButton), false);\r\n }\r\n // Set click event on bulk button if present\r\n let prevSibling = this.accordion.previousElementSibling;\r\n if (prevSibling !== null && prevSibling.classList.contains('accordion-bulk-button')) {\r\n this.bulkFunctionButton = prevSibling;\r\n this.bulkFunctionButton.addEventListener('click', this.bulkEvent.bind(this));\r\n }\r\n}\r\n\r\n/**\r\n * Bulk event handler: Triggered when clicking on .accordion-bulk-button\r\n */\r\nAccordion.prototype.bulkEvent = function () {\r\n var $module = this;\r\n if (!$module.accordion.classList.contains('accordion')) {\r\n throw new Error(`Could not find accordion.`);\r\n }\r\n if ($module.buttons.length == 0) {\r\n throw new Error(`Missing accordion buttons`);\r\n }\r\n\r\n let expand = true;\r\n if ($module.bulkFunctionButton.getAttribute(BULK_FUNCTION_ACTION_ATTRIBUTE) === \"false\") {\r\n expand = false;\r\n }\r\n for (var i = 0; i < $module.buttons.length; i++) {\r\n $module.toggleButton($module.buttons[i], expand, true);\r\n }\r\n\r\n $module.bulkFunctionButton.setAttribute(BULK_FUNCTION_ACTION_ATTRIBUTE, !expand);\r\n if (!expand === true) {\r\n $module.bulkFunctionButton.innerText = this.text.open_all;\r\n } else {\r\n $module.bulkFunctionButton.innerText = this.text.close_all;\r\n }\r\n}\r\n\r\n/**\r\n * Accordion button event handler: Toggles accordion\r\n * @param {HTMLButtonElement} $button \r\n * @param {PointerEvent} e \r\n */\r\nAccordion.prototype.eventOnClick = function ($button, e) {\r\n var $module = this;\r\n e.stopPropagation();\r\n e.preventDefault();\r\n $module.toggleButton($button);\r\n if ($button.getAttribute(EXPANDED) === 'true') {\r\n // We were just expanded, but if another accordion was also just\r\n // collapsed, we may no longer be in the viewport. This ensures\r\n // that we are still visible, so the user isn't confused.\r\n if (!isElementInViewport($button)) $button.scrollIntoView();\r\n }\r\n}\r\n\r\n/**\r\n * Toggle a button's \"pressed\" state, optionally providing a target\r\n * state.\r\n *\r\n * @param {HTMLButtonElement} button\r\n * @param {boolean?} expanded If no state is provided, the current\r\n * state will be toggled (from false to true, and vice-versa).\r\n * @return {boolean} the resulting state\r\n */\r\nAccordion.prototype.toggleButton = function (button, expanded, bulk = false) {\r\n let accordion = null;\r\n if (button.parentNode.parentNode.classList.contains('accordion')) {\r\n accordion = button.parentNode.parentNode;\r\n } else if (button.parentNode.parentNode.parentNode.classList.contains('accordion')) {\r\n accordion = button.parentNode.parentNode.parentNode;\r\n }\r\n expanded = toggle(button, expanded);\r\n if (expanded) {\r\n let eventOpen = new Event('fds.accordion.open');\r\n button.dispatchEvent(eventOpen);\r\n } else {\r\n let eventClose = new Event('fds.accordion.close');\r\n button.dispatchEvent(eventClose);\r\n }\r\n\r\n if (accordion !== null) {\r\n let bulkFunction = accordion.previousElementSibling;\r\n if (bulkFunction !== null && bulkFunction.classList.contains('accordion-bulk-button')) {\r\n let buttons = accordion.querySelectorAll(BUTTON);\r\n if (bulk === false) {\r\n let buttonsOpen = accordion.querySelectorAll(BUTTON + '[aria-expanded=\"true\"]');\r\n let newStatus = true;\r\n\r\n if (buttons.length === buttonsOpen.length) {\r\n newStatus = false;\r\n }\r\n\r\n bulkFunction.setAttribute(BULK_FUNCTION_ACTION_ATTRIBUTE, newStatus);\r\n if (newStatus === true) {\r\n bulkFunction.innerText = this.text.open_all;\r\n } else {\r\n bulkFunction.innerText = this.text.close_all;\r\n }\r\n }\r\n }\r\n }\r\n};\r\n\r\nexport default Accordion;","'use strict';\r\nfunction Alert(alert){\r\n this.alert = alert;\r\n}\r\n\r\nAlert.prototype.init = function(){\r\n let close = this.alert.getElementsByClassName('alert-close');\r\n if(close.length === 1){\r\n close[0].addEventListener('click', this.hide.bind(this));\r\n }\r\n}\r\n\r\nAlert.prototype.hide = function(){\r\n this.alert.classList.add('d-none');\r\n let eventHide = new Event('fds.alert.hide');\r\n this.alert.dispatchEvent(eventHide);\r\n};\r\n\r\nAlert.prototype.show = function(){\r\n this.alert.classList.remove('d-none');\r\n \r\n let eventShow = new Event('fds.alert.show');\r\n this.alert.dispatchEvent(eventShow);\r\n};\r\n\r\nexport default Alert;","'use strict';\r\n\r\nfunction BackToTop(backtotop){\r\n this.backtotop = backtotop;\r\n}\r\n\r\nBackToTop.prototype.init = function() {\r\n let backtotopbutton = this.backtotop;\r\n\r\n updateBackToTopButton(backtotopbutton);\r\n\r\n const observer = new MutationObserver( list => {\r\n const evt = new CustomEvent('dom-changed', {detail: list});\r\n document.body.dispatchEvent(evt)\r\n });\r\n\r\n // Which mutations to observe\r\n let config = {\r\n attributes : true,\r\n attributeOldValue : false,\r\n characterData : true,\r\n characterDataOldValue : false,\r\n childList : true,\r\n subtree : true\r\n };\r\n\r\n // DOM changes\r\n observer.observe(document.body, config);\r\n document.body.addEventListener('dom-changed', function(e) {\r\n updateBackToTopButton(backtotopbutton);\r\n });\r\n\r\n // Scroll actions\r\n window.addEventListener('scroll', function(e) {\r\n updateBackToTopButton(backtotopbutton);\r\n });\r\n\r\n // Window resizes\r\n window.addEventListener('resize', function(e) {\r\n updateBackToTopButton(backtotopbutton);\r\n });\r\n}\r\n\r\nfunction updateBackToTopButton(button) {\r\n let docBody = document.body;\r\n let docElem = document.documentElement;\r\n let heightOfViewport = Math.max(docElem.clientHeight || 0, window.innerHeight || 0);\r\n let heightOfPage = Math.max(docBody.scrollHeight, docBody.offsetHeight, docBody.getBoundingClientRect().height, \r\n docElem.scrollHeight, docElem.offsetHeight, docElem.getBoundingClientRect().height, docElem.clientHeight);\r\n \r\n let limit = heightOfViewport * 2; // The threshold selected to determine whether a back-to-top-button should be displayed\r\n \r\n // Never show the button if the page is too short\r\n if (limit > heightOfPage) {\r\n if (!button.classList.contains('d-none')) {\r\n button.classList.add('d-none');\r\n }\r\n }\r\n // If the page is long, calculate when to show the button\r\n else {\r\n if (button.classList.contains('d-none')) {\r\n button.classList.remove('d-none');\r\n }\r\n\r\n let lastKnownScrollPosition = window.scrollY;\r\n let footer = document.getElementsByTagName(\"footer\")[0]; // If there are several footers, the code only applies to the first footer\r\n\r\n // Show the button, if the user has scrolled too far down\r\n if (lastKnownScrollPosition >= limit) {\r\n if (!isFooterVisible(footer) && button.classList.contains('footer-sticky')) {\r\n button.classList.remove('footer-sticky');\r\n }\r\n else if (isFooterVisible(footer) && !button.classList.contains('footer-sticky')) {\r\n button.classList.add('footer-sticky');\r\n }\r\n }\r\n // If there's a sidenav, we might want to show the button anyway\r\n else {\r\n let sidenav = document.querySelector('.sidenav-list'); // Finds side navigations (left menus) and step guides\r\n\r\n if (sidenav && sidenav.offsetParent !== null) {\r\n // Only react to sidenavs, which are always visible (i.e. not opened from overflow-menu buttons)\r\n if (!(sidenav.closest(\".overflow-menu-inner\")?.previousElementSibling?.getAttribute('aria-expanded') === \"true\" &&\r\n sidenav.closest(\".overflow-menu-inner\")?.previousElementSibling?.offsetParent !== null)) {\r\n \r\n let rect = sidenav.getBoundingClientRect();\r\n if (rect.bottom < 0) {\r\n if (!isFooterVisible(footer) && button.classList.contains('footer-sticky')) {\r\n button.classList.remove('footer-sticky');\r\n }\r\n else if (isFooterVisible(footer) && !button.classList.contains('footer-sticky')) {\r\n button.classList.add('footer-sticky');\r\n }\r\n }\r\n else {\r\n if (!button.classList.contains('footer-sticky')) {\r\n button.classList.add('footer-sticky');\r\n }\r\n }\r\n\r\n }\r\n }\r\n // There's no sidenav and we know the user hasn't reached the scroll limit: Ensure the button is hidden\r\n else {\r\n if (!button.classList.contains('footer-sticky')) {\r\n button.classList.add('footer-sticky');\r\n }\r\n }\r\n }\r\n }\r\n\r\n}\r\n\r\nfunction isFooterVisible(footerElement) {\r\n if (footerElement?.querySelector('.footer')) {\r\n let rect = footerElement.querySelector('.footer').getBoundingClientRect();\r\n\r\n // Footer is visible or partly visible\r\n if ((rect.top < window.innerHeight || rect.top < document.documentElement.clientHeight)) {\r\n return true;\r\n }\r\n // Footer is hidden\r\n else {\r\n return false;\r\n }\r\n }\r\n else {\r\n return false;\r\n }\r\n}\r\n\r\nexport default BackToTop;","'use strict';\r\n\r\nconst MAX_LENGTH = 'data-maxlength';\r\nconst TEXT_CHARACTERLIMIT = {\r\n \"character_remaining\": \"Du har {value} tegn tilbage\",\r\n \"characters_remaining\": \"Du har {value} tegn tilbage\",\r\n \"character_too_many\": \"Du har {value} tegn for meget\",\r\n \"characters_too_many\": \"Du har {value} tegn for meget\"\r\n};\r\n\r\n/**\r\n * Show number of characters left in a field\r\n * @param {HTMLElement} containerElement \r\n * @param {JSON} strings Translate labels: {\"character_remaining\": \"Du har {value} tegn tilbage\", \"characters_remaining\": \"Du har {value} tegn tilbage\", \"character_too_many\": \"Du har {value} tegn for meget\", \"characters_too_many\": \"Du har {value} tegn for meget\"}\r\n */\r\n function CharacterLimit(containerElement, strings = TEXT_CHARACTERLIMIT) {\r\n if (!containerElement) {\r\n throw new Error(`Missing form-limit element`);\r\n }\r\n this.container = containerElement;\r\n this.input = containerElement.getElementsByClassName('form-input')[0];\r\n this.maxlength = this.container.getAttribute(MAX_LENGTH);\r\n this.text = strings;\r\n\r\n let lastKeyUpTimestamp = null;\r\n let oldValue = this.input.value;\r\n let intervalID = null;\r\n\r\n let handleKeyUp = () => {\r\n updateVisibleMessage(this);\r\n lastKeyUpTimestamp = Date.now();\r\n }\r\n\r\n let handleFocus = () => {\r\n /* Reset the screen reader message on focus to force an update of the message.\r\n This ensures that a screen reader informs the user of how many characters there is left\r\n on focus and not just what the character limit is. */\r\n if (this.input.value !== \"\") {\r\n let sr_message = this.container.getElementsByClassName('character-limit-sr-only')[0];\r\n sr_message.innerHTML = '';\r\n }\r\n \r\n intervalID = setInterval(function () {\r\n /* Don't update the Screen Reader message unless it's been awhile\r\n since the last key up event. Otherwise, the user will be spammed\r\n with audio notifications while typing. */\r\n if (!lastKeyUpTimestamp || (Date.now() - 500) >= lastKeyUpTimestamp) {\r\n let sr_message = this.container.getElementsByClassName('character-limit-sr-only')[0].innerHTML;\r\n let visible_message = this.container.getElementsByClassName('character-limit')[0].innerHTML; \r\n \r\n /* Don't update the messages unless the input has changed or if there\r\n is a mismatch between the visible message and the screen reader message. */\r\n if (oldValue !== this.input.value || sr_message !== visible_message) {\r\n oldValue = this.input.value;\r\n this.updateMessages();\r\n }\r\n }\r\n }.bind(this), 1000);\r\n }\r\n \r\n let handleBlur = () => {\r\n clearInterval(intervalID);\r\n // Don't update the messages on blur unless the value of the textarea/text input has changed\r\n if (oldValue !== this.input.value) {\r\n oldValue = this.input.value;\r\n this.updateMessages();\r\n }\r\n }\r\n\r\n this.init = function() {\r\n if (!this.maxlength) {\r\n throw new Error(`Character limit is missing attribute ${MAX_LENGTH}`);\r\n }\r\n\r\n this.input.addEventListener('keyup', function() {\r\n handleKeyUp();\r\n });\r\n this.input.addEventListener('focus', function() {\r\n handleFocus();\r\n });\r\n this.input.addEventListener('blur', function() {\r\n handleBlur();\r\n });\r\n\r\n /* If the browser supports the pageshow event, use it to update the character limit\r\n message and sr-message once a page has loaded. Second best, use the DOMContentLoaded event. \r\n This ensures that if the user navigates to another page in the browser and goes back, the \r\n message and sr-message will show/tell the correct amount of characters left. */\r\n if ('onpageshow' in window) {\r\n window.addEventListener('pageshow', () => {\r\n this.updateMessages();\r\n });\r\n } \r\n else {\r\n window.addEventListener('DOMContentLoaded', () => {\r\n this.updateMessages();\r\n });\r\n }\r\n };\r\n}\r\n\r\nCharacterLimit.prototype.charactersLeft = function () {\r\n let current_length = this.input.value.length;\r\n return this.maxlength - current_length;\r\n}\r\n\r\nfunction characterLimitMessage(formLimit) {\r\n let count_message = \"\";\r\n let characters_left = formLimit.charactersLeft();\r\n\r\n if (characters_left === -1) {\r\n let exceeded = Math.abs(characters_left);\r\n count_message = formLimit.text.character_too_many.replace(/{value}/, exceeded);\r\n }\r\n else if (characters_left === 1) {\r\n count_message = formLimit.text.character_remaining.replace(/{value}/, characters_left);\r\n }\r\n else if (characters_left >= 0) {\r\n count_message = formLimit.text.characters_remaining.replace(/{value}/, characters_left);\r\n }\r\n else {\r\n let exceeded = Math.abs(characters_left);\r\n count_message = formLimit.text.characters_too_many.replace(/{value}/, exceeded);\r\n }\r\n\r\n return count_message;\r\n}\r\n\r\nfunction updateVisibleMessage(formLimit) {\r\n let characters_left = formLimit.charactersLeft();\r\n let count_message = characterLimitMessage(formLimit);\r\n let character_label = formLimit.container.getElementsByClassName('character-limit')[0];\r\n\r\n if (characters_left < 0) {\r\n if (!character_label.classList.contains('limit-exceeded')) {\r\n character_label.classList.add('limit-exceeded');\r\n }\r\n if (!formLimit.input.classList.contains('form-limit-error')) {\r\n formLimit.input.classList.add('form-limit-error');\r\n }\r\n }\r\n else {\r\n if (character_label.classList.contains('limit-exceeded')) {\r\n character_label.classList.remove('limit-exceeded');\r\n }\r\n if (formLimit.input.classList.contains('form-limit-error')) {\r\n formLimit.input.classList.remove('form-limit-error');\r\n }\r\n }\r\n\r\n character_label.innerHTML = count_message;\r\n}\r\n\r\nfunction updateScreenReaderMessage(formLimit) {\r\n let count_message = characterLimitMessage(formLimit);\r\n let character_label = formLimit.container.getElementsByClassName('character-limit-sr-only')[0];\r\n character_label.innerHTML = count_message;\r\n}\r\n\r\nCharacterLimit.prototype.updateMessages = function () {\r\n updateVisibleMessage(this);\r\n updateScreenReaderMessage(this);\r\n}\r\n\r\nexport default CharacterLimit;","'use strict';\r\nimport '../polyfills/Function/prototype/bind';\r\n\r\nconst TOGGLE_TARGET_ATTRIBUTE = 'data-aria-controls';\r\n\r\n/**\r\n * Adds click functionality to checkbox collapse component\r\n * @param {HTMLInputElement} checkboxElement \r\n */\r\nfunction CheckboxToggleContent(checkboxElement){\r\n this.checkboxElement = checkboxElement;\r\n this.targetElement = null;\r\n}\r\n\r\n/**\r\n * Set events on checkbox state change\r\n */\r\nCheckboxToggleContent.prototype.init = function(){\r\n this.checkboxElement.addEventListener('change', this.toggle.bind(this));\r\n this.toggle();\r\n}\r\n\r\n/**\r\n * Toggle checkbox content\r\n */\r\nCheckboxToggleContent.prototype.toggle = function(){\r\n var $module = this;\r\n var targetAttr = this.checkboxElement.getAttribute(TOGGLE_TARGET_ATTRIBUTE)\r\n var targetEl = document.getElementById(targetAttr);\r\n if(targetEl === null || targetEl === undefined){\r\n throw new Error(`Could not find panel element. Verify value of attribute `+ TOGGLE_TARGET_ATTRIBUTE);\r\n }\r\n if(this.checkboxElement.checked){\r\n $module.expand(this.checkboxElement, targetEl);\r\n }else{\r\n $module.collapse(this.checkboxElement, targetEl);\r\n }\r\n}\r\n\r\n/**\r\n * Expand content\r\n * @param {HTMLInputElement} checkboxElement Checkbox input element \r\n * @param {HTMLElement} contentElement Content container element \r\n */\r\nCheckboxToggleContent.prototype.expand = function(checkboxElement, contentElement){\r\n if(checkboxElement !== null && checkboxElement !== undefined && contentElement !== null && contentElement !== undefined){\r\n checkboxElement.setAttribute('data-aria-expanded', 'true');\r\n contentElement.classList.remove('collapsed');\r\n contentElement.setAttribute('aria-hidden', 'false');\r\n let eventOpen = new Event('fds.collapse.expanded');\r\n checkboxElement.dispatchEvent(eventOpen);\r\n }\r\n}\r\n\r\n/**\r\n * Collapse content\r\n * @param {HTMLInputElement} checkboxElement Checkbox input element \r\n * @param {HTMLElement} contentElement Content container element \r\n */\r\nCheckboxToggleContent.prototype.collapse = function(triggerEl, targetEl){\r\n if(triggerEl !== null && triggerEl !== undefined && targetEl !== null && targetEl !== undefined){\r\n triggerEl.setAttribute('data-aria-expanded', 'false');\r\n targetEl.classList.add('collapsed');\r\n targetEl.setAttribute('aria-hidden', 'true');\r\n \r\n let eventClose = new Event('fds.collapse.collapsed');\r\n triggerEl.dispatchEvent(eventClose);\r\n }\r\n}\r\n\r\nexport default CheckboxToggleContent;\r\n","import {keymap} from 'receptor';\r\nconst behavior = require(\"../utils/behavior\");\r\nconst select = require(\"../utils/select\");\r\nconst { prefix: PREFIX } = require(\"../config\");\r\nconst { CLICK } = require(\"../events\");\r\nconst activeElement = require(\"../utils/active-element\");\r\nconst isIosDevice = require(\"../utils/is-ios-device\");\r\n\r\nconst DATE_PICKER_CLASS = `date-picker`;\r\nconst DATE_PICKER_WRAPPER_CLASS = `${DATE_PICKER_CLASS}__wrapper`;\r\nconst DATE_PICKER_INITIALIZED_CLASS = `${DATE_PICKER_CLASS}--initialized`;\r\nconst DATE_PICKER_ACTIVE_CLASS = `${DATE_PICKER_CLASS}--active`;\r\nconst DATE_PICKER_INTERNAL_INPUT_CLASS = `${DATE_PICKER_CLASS}__internal-input`;\r\nconst DATE_PICKER_EXTERNAL_INPUT_CLASS = `${DATE_PICKER_CLASS}__external-input`;\r\nconst DATE_PICKER_BUTTON_CLASS = `${DATE_PICKER_CLASS}__button`;\r\nconst DATE_PICKER_CALENDAR_CLASS = `${DATE_PICKER_CLASS}__calendar`;\r\nconst DATE_PICKER_STATUS_CLASS = `${DATE_PICKER_CLASS}__status`;\r\nconst DATE_PICKER_GUIDE_CLASS = `${DATE_PICKER_CLASS}__guide`;\r\nconst CALENDAR_DATE_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__date`;\r\n\r\nconst DIALOG_WRAPPER_CLASS = `dialog-wrapper`;\r\nconst DATE_PICKER_DIALOG_WRAPPER = `.${DIALOG_WRAPPER_CLASS}`;\r\n\r\nconst CALENDAR_DATE_FOCUSED_CLASS = `${CALENDAR_DATE_CLASS}--focused`;\r\nconst CALENDAR_DATE_SELECTED_CLASS = `${CALENDAR_DATE_CLASS}--selected`;\r\nconst CALENDAR_DATE_PREVIOUS_MONTH_CLASS = `${CALENDAR_DATE_CLASS}--previous-month`;\r\nconst CALENDAR_DATE_CURRENT_MONTH_CLASS = `${CALENDAR_DATE_CLASS}--current-month`;\r\nconst CALENDAR_DATE_NEXT_MONTH_CLASS = `${CALENDAR_DATE_CLASS}--next-month`;\r\nconst CALENDAR_DATE_RANGE_DATE_CLASS = `${CALENDAR_DATE_CLASS}--range-date`;\r\nconst CALENDAR_DATE_TODAY_CLASS = `${CALENDAR_DATE_CLASS}--today`;\r\nconst CALENDAR_DATE_RANGE_DATE_START_CLASS = `${CALENDAR_DATE_CLASS}--range-date-start`;\r\nconst CALENDAR_DATE_RANGE_DATE_END_CLASS = `${CALENDAR_DATE_CLASS}--range-date-end`;\r\nconst CALENDAR_DATE_WITHIN_RANGE_CLASS = `${CALENDAR_DATE_CLASS}--within-range`;\r\nconst CALENDAR_PREVIOUS_YEAR_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__previous-year`;\r\nconst CALENDAR_PREVIOUS_MONTH_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__previous-month`;\r\nconst CALENDAR_NEXT_YEAR_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__next-year`;\r\nconst CALENDAR_NEXT_MONTH_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__next-month`;\r\nconst CALENDAR_MONTH_SELECTION_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__month-selection`;\r\nconst CALENDAR_YEAR_SELECTION_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__year-selection`;\r\nconst CALENDAR_MONTH_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__month`;\r\nconst CALENDAR_MONTH_FOCUSED_CLASS = `${CALENDAR_MONTH_CLASS}--focused`;\r\nconst CALENDAR_MONTH_SELECTED_CLASS = `${CALENDAR_MONTH_CLASS}--selected`;\r\nconst CALENDAR_YEAR_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__year`;\r\nconst CALENDAR_YEAR_FOCUSED_CLASS = `${CALENDAR_YEAR_CLASS}--focused`;\r\nconst CALENDAR_YEAR_SELECTED_CLASS = `${CALENDAR_YEAR_CLASS}--selected`;\r\nconst CALENDAR_PREVIOUS_YEAR_CHUNK_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__previous-year-chunk`;\r\nconst CALENDAR_NEXT_YEAR_CHUNK_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__next-year-chunk`;\r\nconst CALENDAR_DATE_PICKER_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__date-picker`;\r\nconst CALENDAR_MONTH_PICKER_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__month-picker`;\r\nconst CALENDAR_YEAR_PICKER_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__year-picker`;\r\nconst CALENDAR_TABLE_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__table`;\r\nconst CALENDAR_ROW_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__row`;\r\nconst CALENDAR_CELL_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__cell`;\r\nconst CALENDAR_CELL_CENTER_ITEMS_CLASS = `${CALENDAR_CELL_CLASS}--center-items`;\r\nconst CALENDAR_MONTH_LABEL_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__month-label`;\r\nconst CALENDAR_DAY_OF_WEEK_CLASS = `${DATE_PICKER_CALENDAR_CLASS}__day-of-week`;\r\n\r\nconst DATE_PICKER = `.${DATE_PICKER_CLASS}`;\r\nconst DATE_PICKER_BUTTON = `.${DATE_PICKER_BUTTON_CLASS}`;\r\nconst DATE_PICKER_INTERNAL_INPUT = `.${DATE_PICKER_INTERNAL_INPUT_CLASS}`;\r\nconst DATE_PICKER_EXTERNAL_INPUT = `.${DATE_PICKER_EXTERNAL_INPUT_CLASS}`;\r\nconst DATE_PICKER_CALENDAR = `.${DATE_PICKER_CALENDAR_CLASS}`;\r\nconst DATE_PICKER_STATUS = `.${DATE_PICKER_STATUS_CLASS}`;\r\nconst DATE_PICKER_GUIDE = `.${DATE_PICKER_GUIDE_CLASS}`;\r\nconst CALENDAR_DATE = `.${CALENDAR_DATE_CLASS}`;\r\nconst CALENDAR_DATE_FOCUSED = `.${CALENDAR_DATE_FOCUSED_CLASS}`;\r\nconst CALENDAR_DATE_CURRENT_MONTH = `.${CALENDAR_DATE_CURRENT_MONTH_CLASS}`;\r\nconst CALENDAR_PREVIOUS_YEAR = `.${CALENDAR_PREVIOUS_YEAR_CLASS}`;\r\nconst CALENDAR_PREVIOUS_MONTH = `.${CALENDAR_PREVIOUS_MONTH_CLASS}`;\r\nconst CALENDAR_NEXT_YEAR = `.${CALENDAR_NEXT_YEAR_CLASS}`;\r\nconst CALENDAR_NEXT_MONTH = `.${CALENDAR_NEXT_MONTH_CLASS}`;\r\nconst CALENDAR_YEAR_SELECTION = `.${CALENDAR_YEAR_SELECTION_CLASS}`;\r\nconst CALENDAR_MONTH_SELECTION = `.${CALENDAR_MONTH_SELECTION_CLASS}`;\r\nconst CALENDAR_MONTH = `.${CALENDAR_MONTH_CLASS}`;\r\nconst CALENDAR_YEAR = `.${CALENDAR_YEAR_CLASS}`;\r\nconst CALENDAR_PREVIOUS_YEAR_CHUNK = `.${CALENDAR_PREVIOUS_YEAR_CHUNK_CLASS}`;\r\nconst CALENDAR_NEXT_YEAR_CHUNK = `.${CALENDAR_NEXT_YEAR_CHUNK_CLASS}`;\r\nconst CALENDAR_DATE_PICKER = `.${CALENDAR_DATE_PICKER_CLASS}`;\r\nconst CALENDAR_MONTH_PICKER = `.${CALENDAR_MONTH_PICKER_CLASS}`;\r\nconst CALENDAR_YEAR_PICKER = `.${CALENDAR_YEAR_PICKER_CLASS}`;\r\nconst CALENDAR_MONTH_FOCUSED = `.${CALENDAR_MONTH_FOCUSED_CLASS}`;\r\nconst CALENDAR_YEAR_FOCUSED = `.${CALENDAR_YEAR_FOCUSED_CLASS}`;\r\n\r\nlet text = {\r\n \"open_calendar\": \"Åbn kalender\",\r\n \"choose_a_date\": \"Vælg en dato\",\r\n \"choose_a_date_between\": \"Vælg en dato mellem {minDay}. {minMonthStr} {minYear} og {maxDay}. {maxMonthStr} {maxYear}\",\r\n \"choose_a_date_before\": \"Vælg en dato. Der kan vælges indtil {maxDay}. {maxMonthStr} {maxYear}.\",\r\n \"choose_a_date_after\": \"Vælg en dato. Der kan vælges fra {minDay}. {minMonthStr} {minYear} og fremad.\",\r\n \"aria_label_date\": \"{dayStr} den {day}. {monthStr} {year}\",\r\n \"current_month_displayed\": \"Viser {monthLabel} {focusedYear}\",\r\n \"first_possible_date\": \"Første valgbare dato\",\r\n \"last_possible_date\": \"Sidste valgbare dato\",\r\n \"previous_year\": \"Navigér ét år tilbage\",\r\n \"previous_month\": \"Navigér én måned tilbage\",\r\n \"next_month\": \"Navigér én måned frem\",\r\n \"next_year\": \"Navigér ét år frem\",\r\n \"select_month\": \"Vælg måned\",\r\n \"select_year\": \"Vælg år\",\r\n \"previous_years\": \"Navigér {years} år tilbage\",\r\n \"next_years\": \"Navigér {years} år frem\",\r\n \"guide\": \"Navigerer du med tastatur, kan du skifte dag med højre og venstre piletaster, uger med op og ned piletaster, måneder med page up og page down-tasterne og år med shift-tasten plus page up eller page down. Home og end-tasten navigerer til start eller slutning af en uge.\",\r\n \"months_displayed\": \"Vælg en måned\",\r\n \"years_displayed\": \"Viser år {start} til {end}. Vælg et år.\",\r\n \"january\": \"januar\",\r\n \"february\": \"februar\",\r\n \"march\": \"marts\",\r\n \"april\": \"april\",\r\n \"may\": \"maj\",\r\n \"june\": \"juni\",\r\n \"july\": \"juli\",\r\n \"august\": \"august\",\r\n \"september\": \"september\",\r\n \"october\": \"oktober\",\r\n \"november\": \"november\",\r\n \"december\": \"december\",\r\n \"monday\": \"mandag\",\r\n \"tuesday\": \"tirsdag\",\r\n \"wednesday\": \"onsdag\",\r\n \"thursday\": \"torsdag\",\r\n \"friday\": \"fredag\",\r\n \"saturday\": \"lørdag\",\r\n \"sunday\": \"søndag\"\r\n}\r\n\r\nconst VALIDATION_MESSAGE = \"Indtast venligst en gyldig dato\";\r\n\r\nlet MONTH_LABELS = [\r\n text.january,\r\n text.february,\r\n text.march,\r\n text.april,\r\n text.may,\r\n text.june,\r\n text.july,\r\n text.august,\r\n text.september,\r\n text.october,\r\n text.november,\r\n text.december\r\n];\r\n\r\nlet DAY_OF_WEEK_LABELS = [\r\n text.monday,\r\n text.tuesday,\r\n text.wednesday,\r\n text.thursday,\r\n text.friday,\r\n text.saturday,\r\n text.sunday\r\n];\r\n\r\nconst ENTER_KEYCODE = 13;\r\n\r\nconst YEAR_CHUNK = 12;\r\n\r\nconst DEFAULT_MIN_DATE = \"0000-01-01\";\r\nconst DATE_FORMAT_OPTION_1 = \"DD/MM/YYYY\";\r\nconst DATE_FORMAT_OPTION_2 = \"DD-MM-YYYY\";\r\nconst DATE_FORMAT_OPTION_3 = \"DD.MM.YYYY\";\r\nconst DATE_FORMAT_OPTION_4 = \"DD MM YYYY\";\r\nconst DATE_FORMAT_OPTION_5 = \"DD/MM-YYYY\";\r\nconst INTERNAL_DATE_FORMAT = \"YYYY-MM-DD\";\r\n\r\nconst NOT_DISABLED_SELECTOR = \":not([disabled])\";\r\n\r\nconst processFocusableSelectors = (...selectors) =>\r\n selectors.map((query) => query + NOT_DISABLED_SELECTOR).join(\", \");\r\n\r\nconst DATE_PICKER_FOCUSABLE = processFocusableSelectors(\r\n CALENDAR_PREVIOUS_YEAR,\r\n CALENDAR_PREVIOUS_MONTH,\r\n CALENDAR_YEAR_SELECTION,\r\n CALENDAR_MONTH_SELECTION,\r\n CALENDAR_NEXT_YEAR,\r\n CALENDAR_NEXT_MONTH,\r\n CALENDAR_DATE_FOCUSED\r\n);\r\n\r\nconst MONTH_PICKER_FOCUSABLE = processFocusableSelectors(\r\n CALENDAR_MONTH_FOCUSED\r\n);\r\n\r\nconst YEAR_PICKER_FOCUSABLE = processFocusableSelectors(\r\n CALENDAR_PREVIOUS_YEAR_CHUNK,\r\n CALENDAR_NEXT_YEAR_CHUNK,\r\n CALENDAR_YEAR_FOCUSED\r\n);\r\n\r\n// #region Date Manipulation Functions\r\n\r\n/**\r\n * Keep date within month. Month would only be over by 1 to 3 days\r\n *\r\n * @param {Date} dateToCheck the date object to check\r\n * @param {number} month the correct month\r\n * @returns {Date} the date, corrected if needed\r\n */\r\nconst keepDateWithinMonth = (dateToCheck, month) => {\r\n if (month !== dateToCheck.getMonth()) {\r\n dateToCheck.setDate(0);\r\n }\r\n\r\n return dateToCheck;\r\n};\r\n\r\n/**\r\n * Set date from month day year\r\n *\r\n * @param {number} year the year to set\r\n * @param {number} month the month to set (zero-indexed)\r\n * @param {number} date the date to set\r\n * @returns {Date} the set date\r\n */\r\nconst setDate = (year, month, date) => {\r\n const newDate = new Date(0);\r\n newDate.setFullYear(year, month, date);\r\n return newDate;\r\n};\r\n\r\n/**\r\n * todays date\r\n *\r\n * @returns {Date} todays date\r\n */\r\nconst today = () => {\r\n const newDate = new Date();\r\n const day = newDate.getDate();\r\n const month = newDate.getMonth();\r\n const year = newDate.getFullYear();\r\n return setDate(year, month, day);\r\n};\r\n\r\n/**\r\n * Set date to first day of the month\r\n *\r\n * @param {number} date the date to adjust\r\n * @returns {Date} the adjusted date\r\n */\r\nconst startOfMonth = (date) => {\r\n const newDate = new Date(0);\r\n newDate.setFullYear(date.getFullYear(), date.getMonth(), 1);\r\n return newDate;\r\n};\r\n\r\n/**\r\n * Set date to last day of the month\r\n *\r\n * @param {number} date the date to adjust\r\n * @returns {Date} the adjusted date\r\n */\r\nconst lastDayOfMonth = (date) => {\r\n const newDate = new Date(0);\r\n newDate.setFullYear(date.getFullYear(), date.getMonth() + 1, 0);\r\n return newDate;\r\n};\r\n\r\n/**\r\n * Add days to date\r\n *\r\n * @param {Date} _date the date to adjust\r\n * @param {number} numDays the difference in days\r\n * @returns {Date} the adjusted date\r\n */\r\nconst addDays = (_date, numDays) => {\r\n const newDate = new Date(_date.getTime());\r\n newDate.setDate(newDate.getDate() + numDays);\r\n return newDate;\r\n};\r\n\r\n/**\r\n * Subtract days from date\r\n *\r\n * @param {Date} _date the date to adjust\r\n * @param {number} numDays the difference in days\r\n * @returns {Date} the adjusted date\r\n */\r\nconst subDays = (_date, numDays) => addDays(_date, -numDays);\r\n\r\n/**\r\n * Add weeks to date\r\n *\r\n * @param {Date} _date the date to adjust\r\n * @param {number} numWeeks the difference in weeks\r\n * @returns {Date} the adjusted date\r\n */\r\nconst addWeeks = (_date, numWeeks) => addDays(_date, numWeeks * 7);\r\n\r\n/**\r\n * Subtract weeks from date\r\n *\r\n * @param {Date} _date the date to adjust\r\n * @param {number} numWeeks the difference in weeks\r\n * @returns {Date} the adjusted date\r\n */\r\nconst subWeeks = (_date, numWeeks) => addWeeks(_date, -numWeeks);\r\n\r\n/**\r\n * Set date to the start of the week (Monday)\r\n *\r\n * @param {Date} _date the date to adjust\r\n * @returns {Date} the adjusted date\r\n */\r\nconst startOfWeek = (_date) => {\r\n let dayOfWeek = _date.getDay()-1;\r\n if(dayOfWeek === -1){\r\n dayOfWeek = 6;\r\n }\r\n return subDays(_date, dayOfWeek);\r\n};\r\n\r\n/**\r\n * Set date to the end of the week (Sunday)\r\n *\r\n * @param {Date} _date the date to adjust\r\n * @param {number} numWeeks the difference in weeks\r\n * @returns {Date} the adjusted date\r\n */\r\nconst endOfWeek = (_date) => {\r\n const dayOfWeek = _date.getDay();\r\n return addDays(_date, 7 - dayOfWeek);\r\n};\r\n\r\n/**\r\n * Add months to date and keep date within month\r\n *\r\n * @param {Date} _date the date to adjust\r\n * @param {number} numMonths the difference in months\r\n * @returns {Date} the adjusted date\r\n */\r\nconst addMonths = (_date, numMonths) => {\r\n const newDate = new Date(_date.getTime());\r\n\r\n const dateMonth = (newDate.getMonth() + 12 + numMonths) % 12;\r\n newDate.setMonth(newDate.getMonth() + numMonths);\r\n keepDateWithinMonth(newDate, dateMonth);\r\n\r\n return newDate;\r\n};\r\n\r\n/**\r\n * Subtract months from date\r\n *\r\n * @param {Date} _date the date to adjust\r\n * @param {number} numMonths the difference in months\r\n * @returns {Date} the adjusted date\r\n */\r\nconst subMonths = (_date, numMonths) => addMonths(_date, -numMonths);\r\n\r\n/**\r\n * Add years to date and keep date within month\r\n *\r\n * @param {Date} _date the date to adjust\r\n * @param {number} numYears the difference in years\r\n * @returns {Date} the adjusted date\r\n */\r\nconst addYears = (_date, numYears) => addMonths(_date, numYears * 12);\r\n\r\n/**\r\n * Subtract years from date\r\n *\r\n * @param {Date} _date the date to adjust\r\n * @param {number} numYears the difference in years\r\n * @returns {Date} the adjusted date\r\n */\r\nconst subYears = (_date, numYears) => addYears(_date, -numYears);\r\n\r\n/**\r\n * Set months of date\r\n *\r\n * @param {Date} _date the date to adjust\r\n * @param {number} month zero-indexed month to set\r\n * @returns {Date} the adjusted date\r\n */\r\nconst setMonth = (_date, month) => {\r\n const newDate = new Date(_date.getTime());\r\n\r\n newDate.setMonth(month);\r\n keepDateWithinMonth(newDate, month);\r\n\r\n return newDate;\r\n};\r\n\r\n/**\r\n * Set year of date\r\n *\r\n * @param {Date} _date the date to adjust\r\n * @param {number} year the year to set\r\n * @returns {Date} the adjusted date\r\n */\r\nconst setYear = (_date, year) => {\r\n const newDate = new Date(_date.getTime());\r\n\r\n const month = newDate.getMonth();\r\n newDate.setFullYear(year);\r\n keepDateWithinMonth(newDate, month);\r\n\r\n return newDate;\r\n};\r\n\r\n/**\r\n * Return the earliest date\r\n *\r\n * @param {Date} dateA date to compare\r\n * @param {Date} dateB date to compare\r\n * @returns {Date} the earliest date\r\n */\r\nconst min = (dateA, dateB) => {\r\n let newDate = dateA;\r\n\r\n if (dateB < dateA) {\r\n newDate = dateB;\r\n }\r\n\r\n return new Date(newDate.getTime());\r\n};\r\n\r\n/**\r\n * Return the latest date\r\n *\r\n * @param {Date} dateA date to compare\r\n * @param {Date} dateB date to compare\r\n * @returns {Date} the latest date\r\n */\r\nconst max = (dateA, dateB) => {\r\n let newDate = dateA;\r\n\r\n if (dateB > dateA) {\r\n newDate = dateB;\r\n }\r\n\r\n return new Date(newDate.getTime());\r\n};\r\n\r\n/**\r\n * Check if dates are the in the same year\r\n *\r\n * @param {Date} dateA date to compare\r\n * @param {Date} dateB date to compare\r\n * @returns {boolean} are dates in the same year\r\n */\r\nconst isSameYear = (dateA, dateB) => {\r\n return dateA && dateB && dateA.getFullYear() === dateB.getFullYear();\r\n};\r\n\r\n/**\r\n * Check if dates are the in the same month\r\n *\r\n * @param {Date} dateA date to compare\r\n * @param {Date} dateB date to compare\r\n * @returns {boolean} are dates in the same month\r\n */\r\nconst isSameMonth = (dateA, dateB) => {\r\n return isSameYear(dateA, dateB) && dateA.getMonth() === dateB.getMonth();\r\n};\r\n\r\n/**\r\n * Check if dates are the same date\r\n *\r\n * @param {Date} dateA the date to compare\r\n * @param {Date} dateB the date to compare\r\n * @returns {boolean} are dates the same date\r\n */\r\nconst isSameDay = (dateA, dateB) => {\r\n return isSameMonth(dateA, dateB) && dateA.getDate() === dateB.getDate();\r\n};\r\n\r\n/**\r\n * return a new date within minimum and maximum date\r\n *\r\n * @param {Date} date date to check\r\n * @param {Date} minDate minimum date to allow\r\n * @param {Date} maxDate maximum date to allow\r\n * @returns {Date} the date between min and max\r\n */\r\nconst keepDateBetweenMinAndMax = (date, minDate, maxDate) => {\r\n let newDate = date;\r\n\r\n if (date < minDate) {\r\n newDate = minDate;\r\n } else if (maxDate && date > maxDate) {\r\n newDate = maxDate;\r\n }\r\n\r\n return new Date(newDate.getTime());\r\n};\r\n\r\n/**\r\n * Check if dates is valid.\r\n *\r\n * @param {Date} date date to check\r\n * @param {Date} minDate minimum date to allow\r\n * @param {Date} maxDate maximum date to allow\r\n * @return {boolean} is there a day within the month within min and max dates\r\n */\r\nconst isDateWithinMinAndMax = (date, minDate, maxDate) =>\r\n date >= minDate && (!maxDate || date <= maxDate);\r\n\r\n/**\r\n * Check if dates month is invalid.\r\n *\r\n * @param {Date} date date to check\r\n * @param {Date} minDate minimum date to allow\r\n * @param {Date} maxDate maximum date to allow\r\n * @return {boolean} is the month outside min or max dates\r\n */\r\nconst isDatesMonthOutsideMinOrMax = (date, minDate, maxDate) => {\r\n return (\r\n lastDayOfMonth(date) < minDate || (maxDate && startOfMonth(date) > maxDate)\r\n );\r\n};\r\n\r\n/**\r\n * Check if dates year is invalid.\r\n *\r\n * @param {Date} date date to check\r\n * @param {Date} minDate minimum date to allow\r\n * @param {Date} maxDate maximum date to allow\r\n * @return {boolean} is the month outside min or max dates\r\n */\r\nconst isDatesYearOutsideMinOrMax = (date, minDate, maxDate) => {\r\n return (\r\n lastDayOfMonth(setMonth(date, 11)) < minDate ||\r\n (maxDate && startOfMonth(setMonth(date, 0)) > maxDate)\r\n );\r\n};\r\n\r\n/**\r\n * Parse a date with format D-M-YY\r\n *\r\n * @param {string} dateString the date string to parse\r\n * @param {string} dateFormat the format of the date string\r\n * @param {boolean} adjustDate should the date be adjusted\r\n * @returns {Date} the parsed date\r\n */\r\nconst parseDateString = (\r\n dateString,\r\n dateFormat = INTERNAL_DATE_FORMAT,\r\n adjustDate = false\r\n) => {\r\n let date;\r\n let month;\r\n let day;\r\n let year;\r\n let parsed;\r\n\r\n if (dateString) {\r\n let monthStr, dayStr, yearStr;\r\n if (dateFormat === DATE_FORMAT_OPTION_1 || dateFormat === DATE_FORMAT_OPTION_2 || dateFormat === DATE_FORMAT_OPTION_3 || dateFormat === DATE_FORMAT_OPTION_4 || dateFormat === DATE_FORMAT_OPTION_5) {\r\n [dayStr, monthStr, yearStr] = dateString.split(/-|\\.|\\/|\\s/);\r\n } else {\r\n [yearStr, monthStr, dayStr] = dateString.split(\"-\");\r\n }\r\n\r\n if (yearStr) {\r\n parsed = parseInt(yearStr, 10);\r\n if (!Number.isNaN(parsed)) {\r\n year = parsed;\r\n if (adjustDate) {\r\n year = Math.max(0, year);\r\n if (yearStr.length < 3) {\r\n const currentYear = today().getFullYear();\r\n const currentYearStub =\r\n currentYear - (currentYear % 10 ** yearStr.length);\r\n year = currentYearStub + parsed;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (monthStr) {\r\n parsed = parseInt(monthStr, 10);\r\n if (!Number.isNaN(parsed)) {\r\n month = parsed;\r\n if (adjustDate) {\r\n month = Math.max(1, month);\r\n month = Math.min(12, month);\r\n }\r\n }\r\n }\r\n\r\n if (month && dayStr && year != null) {\r\n parsed = parseInt(dayStr, 10);\r\n if (!Number.isNaN(parsed)) {\r\n day = parsed;\r\n if (adjustDate) {\r\n const lastDayOfTheMonth = setDate(year, month, 0).getDate();\r\n day = Math.max(1, day);\r\n day = Math.min(lastDayOfTheMonth, day);\r\n }\r\n }\r\n }\r\n\r\n if (month && day && year != null) {\r\n date = setDate(year, month - 1, day);\r\n }\r\n }\r\n\r\n return date;\r\n};\r\n\r\n/**\r\n * Format a date to format DD-MM-YYYY\r\n *\r\n * @param {Date} date the date to format\r\n * @param {string} dateFormat the format of the date string\r\n * @returns {string} the formatted date string\r\n */\r\nconst formatDate = (date, dateFormat = INTERNAL_DATE_FORMAT) => {\r\n const padZeros = (value, length) => {\r\n return `0000${value}`.slice(-length);\r\n };\r\n\r\n const month = date.getMonth() + 1;\r\n const day = date.getDate();\r\n const year = date.getFullYear();\r\n\r\n if (dateFormat === DATE_FORMAT_OPTION_1) {\r\n return [padZeros(day, 2), padZeros(month, 2), padZeros(year, 4)].join(\"/\");\r\n }\r\n else if (dateFormat === DATE_FORMAT_OPTION_2) {\r\n return [padZeros(day, 2), padZeros(month, 2), padZeros(year, 4)].join(\"-\");\r\n }\r\n else if (dateFormat === DATE_FORMAT_OPTION_3) {\r\n return [padZeros(day, 2), padZeros(month, 2), padZeros(year, 4)].join(\".\");\r\n }\r\n else if (dateFormat === DATE_FORMAT_OPTION_4) {\r\n return [padZeros(day, 2), padZeros(month, 2), padZeros(year, 4)].join(\" \");\r\n }\r\n else if (dateFormat === DATE_FORMAT_OPTION_5) {\r\n let tempDayMonth = [padZeros(day, 2), padZeros(month, 2)].join(\"/\");\r\n return [tempDayMonth, padZeros(year, 4)].join(\"-\");\r\n }\r\n\r\n return [padZeros(year, 4), padZeros(month, 2), padZeros(day, 2)].join(\"-\");\r\n};\r\n\r\n// #endregion Date Manipulation Functions\r\n\r\n/**\r\n * Create a grid string from an array of html strings\r\n *\r\n * @param {string[]} htmlArray the array of html items\r\n * @param {number} rowSize the length of a row\r\n * @returns {string} the grid string\r\n */\r\nconst listToGridHtml = (htmlArray, rowSize) => {\r\n const grid = [];\r\n let row = [];\r\n\r\n let i = 0;\r\n while (i < htmlArray.length) {\r\n row = [];\r\n while (i < htmlArray.length && row.length < rowSize) {\r\n row.push(`${htmlArray[i]}`);\r\n i += 1;\r\n }\r\n grid.push(`${row.join(\"\")}`);\r\n }\r\n\r\n return grid.join(\"\");\r\n};\r\n\r\n/**\r\n * set the value of the element and dispatch a change event\r\n *\r\n * @param {HTMLInputElement} el The element to update\r\n * @param {string} value The new value of the element\r\n */\r\nconst changeElementValue = (el, value = \"\") => {\r\n const elementToChange = el;\r\n elementToChange.value = value;\r\n\r\n\r\n var event = new Event('change');\r\n elementToChange.dispatchEvent(event);\r\n};\r\n\r\n/**\r\n * The properties and elements within the date picker.\r\n * @typedef {Object} DatePickerContext\r\n * @property {HTMLDivElement} calendarEl\r\n * @property {HTMLElement} datePickerEl\r\n * @property {HTMLDivElement} dialogEl\r\n * @property {HTMLInputElement} internalInputEl\r\n * @property {HTMLInputElement} externalInputEl\r\n * @property {HTMLDivElement} statusEl\r\n * @property {HTMLDivElement} guideEl\r\n * @property {HTMLDivElement} firstYearChunkEl\r\n * @property {Date} calendarDate\r\n * @property {Date} minDate\r\n * @property {Date} maxDate\r\n * @property {Date} selectedDate\r\n * @property {Date} rangeDate\r\n * @property {Date} defaultDate\r\n */\r\n\r\n/**\r\n * Get an object of the properties and elements belonging directly to the given\r\n * date picker component.\r\n *\r\n * @param {HTMLElement} el the element within the date picker\r\n * @returns {DatePickerContext} elements\r\n */\r\nconst getDatePickerContext = (el) => {\r\n const datePickerEl = el.closest(DATE_PICKER);\r\n\r\n if (!datePickerEl) {\r\n throw new Error(`Element is missing outer ${DATE_PICKER}`);\r\n }\r\n\r\n const internalInputEl = datePickerEl.querySelector(\r\n DATE_PICKER_INTERNAL_INPUT\r\n );\r\n const externalInputEl = datePickerEl.querySelector(\r\n DATE_PICKER_EXTERNAL_INPUT\r\n );\r\n const calendarEl = datePickerEl.querySelector(DATE_PICKER_CALENDAR);\r\n const toggleBtnEl = datePickerEl.querySelector(DATE_PICKER_BUTTON);\r\n const statusEl = datePickerEl.querySelector(DATE_PICKER_STATUS);\r\n const guideEl = datePickerEl.querySelector(DATE_PICKER_GUIDE);\r\n const firstYearChunkEl = datePickerEl.querySelector(CALENDAR_YEAR);\r\n const dialogEl = datePickerEl.querySelector(DATE_PICKER_DIALOG_WRAPPER);\r\n\r\n // Set date format\r\n let selectedDateFormat = DATE_FORMAT_OPTION_1;\r\n if (datePickerEl.hasAttribute(\"data-dateformat\")) {\r\n switch (datePickerEl.dataset.dateformat) {\r\n case DATE_FORMAT_OPTION_1:\r\n selectedDateFormat = DATE_FORMAT_OPTION_1;\r\n break;\r\n case DATE_FORMAT_OPTION_2:\r\n selectedDateFormat = DATE_FORMAT_OPTION_2;\r\n break;\r\n case DATE_FORMAT_OPTION_3:\r\n selectedDateFormat = DATE_FORMAT_OPTION_3;\r\n break;\r\n case DATE_FORMAT_OPTION_4:\r\n selectedDateFormat = DATE_FORMAT_OPTION_4;\r\n break;\r\n case DATE_FORMAT_OPTION_5:\r\n selectedDateFormat = DATE_FORMAT_OPTION_5;\r\n }\r\n }\r\n const dateFormatOption = selectedDateFormat; \r\n\r\n const inputDate = parseDateString(\r\n externalInputEl.value,\r\n dateFormatOption,\r\n true\r\n );\r\n const selectedDate = parseDateString(internalInputEl.value);\r\n\r\n const calendarDate = parseDateString(calendarEl.dataset.value);\r\n const minDate = parseDateString(datePickerEl.dataset.minDate);\r\n const maxDate = parseDateString(datePickerEl.dataset.maxDate);\r\n const rangeDate = parseDateString(datePickerEl.dataset.rangeDate);\r\n const defaultDate = parseDateString(datePickerEl.dataset.defaultDate);\r\n\r\n if (minDate && maxDate && minDate > maxDate) {\r\n throw new Error(\"Minimum date cannot be after maximum date\");\r\n }\r\n\r\n return {\r\n calendarDate,\r\n minDate,\r\n toggleBtnEl,\r\n dialogEl,\r\n selectedDate,\r\n maxDate,\r\n firstYearChunkEl,\r\n datePickerEl,\r\n inputDate,\r\n internalInputEl,\r\n externalInputEl,\r\n calendarEl,\r\n rangeDate,\r\n defaultDate,\r\n statusEl,\r\n guideEl,\r\n dateFormatOption\r\n };\r\n};\r\n\r\n/**\r\n * Disable the date picker component\r\n *\r\n * @param {HTMLElement} el An element within the date picker component\r\n */\r\nconst disable = (el) => {\r\n const { externalInputEl, toggleBtnEl } = getDatePickerContext(el);\r\n\r\n toggleBtnEl.disabled = true;\r\n externalInputEl.disabled = true;\r\n};\r\n\r\n/**\r\n * Enable the date picker component\r\n *\r\n * @param {HTMLElement} el An element within the date picker component\r\n */\r\nconst enable = (el) => {\r\n const { externalInputEl, toggleBtnEl } = getDatePickerContext(el);\r\n\r\n toggleBtnEl.disabled = false;\r\n externalInputEl.disabled = false;\r\n};\r\n\r\n// #region Validation\r\n\r\n/**\r\n * Validate the value in the input as a valid date of format D/M/YYYY\r\n *\r\n * @param {HTMLElement} el An element within the date picker component\r\n */\r\nconst isDateInputInvalid = (el) => {\r\n const { externalInputEl, minDate, maxDate } = getDatePickerContext(el);\r\n\r\n const dateString = externalInputEl.value;\r\n let isInvalid = false;\r\n\r\n if (dateString) {\r\n isInvalid = true;\r\n\r\n const dateStringParts = dateString.split(/-|\\.|\\/|\\s/);\r\n const [day, month, year] = dateStringParts.map((str) => {\r\n let value;\r\n const parsed = parseInt(str, 10);\r\n if (!Number.isNaN(parsed)) value = parsed;\r\n return value;\r\n });\r\n\r\n if (month && day && year != null) {\r\n const checkDate = setDate(year, month - 1, day);\r\n\r\n if (\r\n checkDate.getMonth() === month - 1 &&\r\n checkDate.getDate() === day &&\r\n checkDate.getFullYear() === year &&\r\n dateStringParts[2].length === 4 &&\r\n isDateWithinMinAndMax(checkDate, minDate, maxDate)\r\n ) {\r\n isInvalid = false;\r\n }\r\n }\r\n }\r\n\r\n return isInvalid;\r\n};\r\n\r\n/**\r\n * Validate the value in the input as a valid date of format M/D/YYYY\r\n *\r\n * @param {HTMLElement} el An element within the date picker component\r\n */\r\nconst validateDateInput = (el) => {\r\n const { externalInputEl } = getDatePickerContext(el);\r\n const isInvalid = isDateInputInvalid(externalInputEl);\r\n\r\n if (isInvalid && !externalInputEl.validationMessage) {\r\n externalInputEl.setCustomValidity(VALIDATION_MESSAGE);\r\n }\r\n\r\n if (!isInvalid && externalInputEl.validationMessage === VALIDATION_MESSAGE) {\r\n externalInputEl.setCustomValidity(\"\");\r\n }\r\n};\r\n\r\n// #endregion Validation\r\n\r\n/**\r\n * Enable the date picker component\r\n *\r\n * @param {HTMLElement} el An element within the date picker component\r\n */\r\nconst reconcileInputValues = (el) => {\r\n const { internalInputEl, inputDate } = getDatePickerContext(el);\r\n let newValue = \"\";\r\n\r\n if (inputDate && !isDateInputInvalid(el)) {\r\n newValue = formatDate(inputDate);\r\n }\r\n\r\n if (internalInputEl.value !== newValue) {\r\n changeElementValue(internalInputEl, newValue);\r\n }\r\n};\r\n\r\n/**\r\n * Select the value of the date picker inputs.\r\n *\r\n * @param {HTMLButtonElement} el An element within the date picker component\r\n * @param {string} dateString The date string to update in YYYY-MM-DD format\r\n */\r\nconst setCalendarValue = (el, dateString) => {\r\n const parsedDate = parseDateString(dateString);\r\n\r\n if (parsedDate) {\r\n \r\n const {\r\n datePickerEl,\r\n internalInputEl,\r\n externalInputEl,\r\n dateFormatOption\r\n } = getDatePickerContext(el);\r\n\r\n const formattedDate = formatDate(parsedDate, dateFormatOption);\r\n\r\n changeElementValue(internalInputEl, dateString);\r\n changeElementValue(externalInputEl, formattedDate);\r\n\r\n validateDateInput(datePickerEl);\r\n }\r\n};\r\n\r\n/**\r\n * Enhance an input with the date picker elements\r\n *\r\n * @param {HTMLElement} el The initial wrapping element of the date picker component\r\n */\r\nconst enhanceDatePicker = (el) => {\r\n const datePickerEl = el.closest(DATE_PICKER);\r\n const defaultValue = datePickerEl.dataset.defaultValue;\r\n\r\n const internalInputEl = datePickerEl.querySelector(`input`);\r\n\r\n if (!internalInputEl) {\r\n throw new Error(`${DATE_PICKER} is missing inner input`);\r\n }\r\n\r\n const minDate = parseDateString(\r\n datePickerEl.dataset.minDate || internalInputEl.getAttribute(\"min\")\r\n );\r\n datePickerEl.dataset.minDate = minDate\r\n ? formatDate(minDate)\r\n : DEFAULT_MIN_DATE;\r\n\r\n const maxDate = parseDateString(\r\n datePickerEl.dataset.maxDate || internalInputEl.getAttribute(\"max\")\r\n );\r\n if (maxDate) {\r\n datePickerEl.dataset.maxDate = formatDate(maxDate);\r\n }\r\n\r\n const calendarWrapper = document.createElement(\"div\");\r\n calendarWrapper.classList.add(DATE_PICKER_WRAPPER_CLASS);\r\n calendarWrapper.tabIndex = \"-1\";\r\n\r\n const externalInputEl = internalInputEl.cloneNode();\r\n externalInputEl.classList.add(DATE_PICKER_EXTERNAL_INPUT_CLASS);\r\n externalInputEl.type = \"text\";\r\n externalInputEl.name = \"\";\r\n\r\n let dialogTitle = text.choose_a_date;\r\n const hasMinDate = minDate !== undefined && minDate !== \"\";\r\n const isDefaultMinDate = minDate !== undefined && minDate !== \"\" && parseDateString(DEFAULT_MIN_DATE).getTime() === minDate.getTime();\r\n const hasMaxDate = maxDate !== undefined && maxDate !== \"\";\r\n \r\n if (hasMinDate && !isDefaultMinDate && hasMaxDate) {\r\n const minDay = minDate.getDate();\r\n const minMonth = minDate.getMonth();\r\n const minMonthStr = MONTH_LABELS[minMonth];\r\n const minYear = minDate.getFullYear();\r\n const maxDay = maxDate.getDate();\r\n const maxMonth = maxDate.getMonth();\r\n const maxMonthStr = MONTH_LABELS[maxMonth];\r\n const maxYear = maxDate.getFullYear();\r\n dialogTitle = text.choose_a_date_between.replace(/{minDay}/, minDay).replace(/{minMonthStr}/, minMonthStr).replace(/{minYear}/, minYear).replace(/{maxDay}/, maxDay).replace(/{maxMonthStr}/, maxMonthStr).replace(/{maxYear}/, maxYear);\r\n }\r\n else if (hasMinDate && !isDefaultMinDate && !hasMaxDate) {\r\n const minDay = minDate.getDate();\r\n const minMonth = minDate.getMonth();\r\n const minMonthStr = MONTH_LABELS[minMonth];\r\n const minYear = minDate.getFullYear();\r\n dialogTitle = text.choose_a_date_after.replace(/{minDay}/, minDay).replace(/{minMonthStr}/, minMonthStr).replace(/{minYear}/, minYear);\r\n }\r\n else if (hasMaxDate) {\r\n const maxDay = maxDate.getDate();\r\n const maxMonth = maxDate.getMonth();\r\n const maxMonthStr = MONTH_LABELS[maxMonth];\r\n const maxYear = maxDate.getFullYear();\r\n dialogTitle = text.choose_a_date_before.replace(/{maxDay}/, maxDay).replace(/{maxMonthStr}/, maxMonthStr).replace(/{maxYear}/, maxYear);\r\n }\r\n\r\n const guideID = externalInputEl.getAttribute(\"id\") + \"-guide\";\r\n\r\n calendarWrapper.appendChild(externalInputEl);\r\n calendarWrapper.insertAdjacentHTML(\r\n \"beforeend\",\r\n [\r\n ``,\r\n ``,\r\n `
`,\r\n ``\r\n ].join(\"\")\r\n );\r\n\r\n internalInputEl.setAttribute(\"aria-hidden\", \"true\");\r\n internalInputEl.setAttribute(\"tabindex\", \"-1\");\r\n internalInputEl.classList.add(\r\n \"sr-only\",\r\n DATE_PICKER_INTERNAL_INPUT_CLASS\r\n );\r\n internalInputEl.removeAttribute('id');\r\n internalInputEl.required = false;\r\n\r\n datePickerEl.appendChild(calendarWrapper);\r\n datePickerEl.classList.add(DATE_PICKER_INITIALIZED_CLASS);\r\n\r\n if (defaultValue) {\r\n setCalendarValue(datePickerEl, defaultValue);\r\n }\r\n\r\n if (internalInputEl.disabled) {\r\n disable(datePickerEl);\r\n internalInputEl.disabled = false;\r\n }\r\n \r\n if (externalInputEl.value) {\r\n validateDateInput(externalInputEl);\r\n }\r\n};\r\n\r\n// #region Calendar - Date Selection View\r\n\r\n/**\r\n * render the calendar.\r\n *\r\n * @param {HTMLElement} el An element within the date picker component\r\n * @param {Date} _dateToDisplay a date to render on the calendar\r\n * @returns {HTMLElement} a reference to the new calendar element\r\n */\r\nconst renderCalendar = (el, _dateToDisplay) => {\r\n const {\r\n datePickerEl,\r\n calendarEl,\r\n statusEl,\r\n selectedDate,\r\n maxDate,\r\n minDate,\r\n rangeDate,\r\n dialogEl,\r\n guideEl\r\n } = getDatePickerContext(el);\r\n const todaysDate = today();\r\n let dateToDisplay = _dateToDisplay || todaysDate;\r\n\r\n const calendarWasHidden = calendarEl.hidden;\r\n\r\n const focusedDate = addDays(dateToDisplay, 0);\r\n const focusedMonth = dateToDisplay.getMonth();\r\n const focusedYear = dateToDisplay.getFullYear();\r\n\r\n const prevMonth = subMonths(dateToDisplay, 1);\r\n const nextMonth = addMonths(dateToDisplay, 1);\r\n\r\n const currentFormattedDate = formatDate(dateToDisplay);\r\n\r\n const firstOfMonth = startOfMonth(dateToDisplay);\r\n const prevButtonsDisabled = isSameMonth(dateToDisplay, minDate);\r\n const nextButtonsDisabled = isSameMonth(dateToDisplay, maxDate);\r\n\r\n const rangeConclusionDate = selectedDate || dateToDisplay;\r\n const rangeStartDate = rangeDate && min(rangeConclusionDate, rangeDate);\r\n const rangeEndDate = rangeDate && max(rangeConclusionDate, rangeDate);\r\n\r\n const withinRangeStartDate = rangeDate && addDays(rangeStartDate, 1);\r\n const withinRangeEndDate = rangeDate && subDays(rangeEndDate, 1);\r\n\r\n const monthLabel = MONTH_LABELS[focusedMonth];\r\n\r\n const generateDateHtml = (dateToRender) => {\r\n const classes = [CALENDAR_DATE_CLASS];\r\n const day = dateToRender.getDate();\r\n const month = dateToRender.getMonth();\r\n const year = dateToRender.getFullYear();\r\n let dayOfWeek = dateToRender.getDay() - 1;\r\n if (dayOfWeek === -1) {\r\n dayOfWeek = 6;\r\n }\r\n\r\n const formattedDate = formatDate(dateToRender);\r\n\r\n let tabindex = \"-1\";\r\n\r\n const isDisabled = !isDateWithinMinAndMax(dateToRender, minDate, maxDate);\r\n const isSelected = isSameDay(dateToRender, selectedDate);\r\n\r\n if (isSameMonth(dateToRender, prevMonth)) {\r\n classes.push(CALENDAR_DATE_PREVIOUS_MONTH_CLASS);\r\n }\r\n\r\n if (isSameMonth(dateToRender, focusedDate)) {\r\n classes.push(CALENDAR_DATE_CURRENT_MONTH_CLASS);\r\n }\r\n\r\n if (isSameMonth(dateToRender, nextMonth)) {\r\n classes.push(CALENDAR_DATE_NEXT_MONTH_CLASS);\r\n }\r\n\r\n if (isSelected) {\r\n classes.push(CALENDAR_DATE_SELECTED_CLASS);\r\n }\r\n\r\n if (isSameDay(dateToRender, todaysDate)) {\r\n classes.push(CALENDAR_DATE_TODAY_CLASS);\r\n }\r\n\r\n if (rangeDate) {\r\n if (isSameDay(dateToRender, rangeDate)) {\r\n classes.push(CALENDAR_DATE_RANGE_DATE_CLASS);\r\n }\r\n\r\n if (isSameDay(dateToRender, rangeStartDate)) {\r\n classes.push(CALENDAR_DATE_RANGE_DATE_START_CLASS);\r\n }\r\n\r\n if (isSameDay(dateToRender, rangeEndDate)) {\r\n classes.push(CALENDAR_DATE_RANGE_DATE_END_CLASS);\r\n }\r\n\r\n if (\r\n isDateWithinMinAndMax(\r\n dateToRender,\r\n withinRangeStartDate,\r\n withinRangeEndDate\r\n )\r\n ) {\r\n classes.push(CALENDAR_DATE_WITHIN_RANGE_CLASS);\r\n }\r\n }\r\n\r\n if (isSameDay(dateToRender, focusedDate)) {\r\n tabindex = \"0\";\r\n classes.push(CALENDAR_DATE_FOCUSED_CLASS);\r\n }\r\n\r\n const monthStr = MONTH_LABELS[month];\r\n const dayStr = DAY_OF_WEEK_LABELS[dayOfWeek];\r\n const ariaLabelDate = text.aria_label_date.replace(/{dayStr}/, dayStr).replace(/{day}/, day).replace(/{monthStr}/, monthStr).replace(/{year}/, year);\r\n\r\n return `${day}`;\r\n };\r\n // set date to first rendered day\r\n dateToDisplay = startOfWeek(firstOfMonth);\r\n\r\n const days = [];\r\n\r\n while (\r\n days.length < 28 ||\r\n dateToDisplay.getMonth() === focusedMonth ||\r\n days.length % 7 !== 0\r\n ) {\r\n days.push(generateDateHtml(dateToDisplay));\r\n dateToDisplay = addDays(dateToDisplay, 1); \r\n }\r\n const datesHtml = listToGridHtml(days, 7);\r\n\r\n const newCalendar = calendarEl.cloneNode();\r\n newCalendar.dataset.value = currentFormattedDate;\r\n newCalendar.style.top = `${datePickerEl.offsetHeight}px`;\r\n newCalendar.hidden = false;\r\n let content = `
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n `;\r\n for(let d in DAY_OF_WEEK_LABELS){\r\n content += ``;\r\n }\r\n content += `\r\n \r\n \r\n ${datesHtml}\r\n \r\n
${DAY_OF_WEEK_LABELS[d].charAt(0)}
\r\n
`;\r\n newCalendar.innerHTML = content;\r\n calendarEl.parentNode.replaceChild(newCalendar, calendarEl);\r\n\r\n datePickerEl.classList.add(DATE_PICKER_ACTIVE_CLASS);\r\n if (dialogEl.hidden === true) {\r\n dialogEl.hidden = false;\r\n if (guideEl.hidden) {\r\n guideEl.hidden = false;\r\n }\r\n }\r\n \r\n const statuses = [];\r\n\r\n if (calendarWasHidden) {\r\n statusEl.textContent = \"\";\r\n } \r\n else if (_dateToDisplay.getTime() === minDate.getTime()) {\r\n statuses.push(text.first_possible_date);\r\n }\r\n else if (maxDate !== undefined && maxDate !== \"\" && _dateToDisplay.getTime() === maxDate.getTime()) {\r\n statuses.push(text.last_possible_date);\r\n }\r\n else {\r\n statuses.push(text.current_month_displayed.replace(/{monthLabel}/, monthLabel).replace(/{focusedYear}/, focusedYear));\r\n }\r\n\r\n statusEl.textContent = statuses.join(\". \");\r\n\r\n return newCalendar;\r\n};\r\n\r\n/**\r\n * Navigate back one year and display the calendar.\r\n *\r\n * @param {HTMLButtonElement} _buttonEl An element within the date picker component\r\n */\r\nconst displayPreviousYear = (_buttonEl) => {\r\n if (_buttonEl.disabled) return;\r\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\r\n _buttonEl\r\n );\r\n let date = subYears(calendarDate, 1);\r\n date = keepDateBetweenMinAndMax(date, minDate, maxDate);\r\n const newCalendar = renderCalendar(calendarEl, date);\r\n\r\n let nextToFocus = newCalendar.querySelector(CALENDAR_PREVIOUS_YEAR);\r\n if (nextToFocus.disabled) {\r\n nextToFocus = newCalendar.querySelector(CALENDAR_DATE_PICKER);\r\n }\r\n nextToFocus.focus();\r\n};\r\n\r\n/**\r\n * Navigate back one month and display the calendar.\r\n *\r\n * @param {HTMLButtonElement} _buttonEl An element within the date picker component\r\n */\r\nconst displayPreviousMonth = (_buttonEl) => {\r\n if (_buttonEl.disabled) return;\r\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\r\n _buttonEl\r\n );\r\n let date = subMonths(calendarDate, 1);\r\n date = keepDateBetweenMinAndMax(date, minDate, maxDate);\r\n const newCalendar = renderCalendar(calendarEl, date);\r\n\r\n let nextToFocus = newCalendar.querySelector(CALENDAR_PREVIOUS_MONTH);\r\n if (nextToFocus.disabled) {\r\n nextToFocus = newCalendar.querySelector(CALENDAR_DATE_PICKER);\r\n }\r\n nextToFocus.focus();\r\n};\r\n\r\n/**\r\n * Navigate forward one month and display the calendar.\r\n *\r\n * @param {HTMLButtonElement} _buttonEl An element within the date picker component\r\n */\r\nconst displayNextMonth = (_buttonEl) => {\r\n if (_buttonEl.disabled) return;\r\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\r\n _buttonEl\r\n );\r\n let date = addMonths(calendarDate, 1);\r\n date = keepDateBetweenMinAndMax(date, minDate, maxDate);\r\n const newCalendar = renderCalendar(calendarEl, date);\r\n\r\n let nextToFocus = newCalendar.querySelector(CALENDAR_NEXT_MONTH);\r\n if (nextToFocus.disabled) {\r\n nextToFocus = newCalendar.querySelector(CALENDAR_DATE_PICKER);\r\n }\r\n nextToFocus.focus();\r\n};\r\n\r\n/**\r\n * Navigate forward one year and display the calendar.\r\n *\r\n * @param {HTMLButtonElement} _buttonEl An element within the date picker component\r\n */\r\nconst displayNextYear = (_buttonEl) => {\r\n if (_buttonEl.disabled) return;\r\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\r\n _buttonEl\r\n );\r\n let date = addYears(calendarDate, 1);\r\n date = keepDateBetweenMinAndMax(date, minDate, maxDate);\r\n const newCalendar = renderCalendar(calendarEl, date);\r\n\r\n let nextToFocus = newCalendar.querySelector(CALENDAR_NEXT_YEAR);\r\n if (nextToFocus.disabled) {\r\n nextToFocus = newCalendar.querySelector(CALENDAR_DATE_PICKER);\r\n }\r\n nextToFocus.focus();\r\n};\r\n\r\n/**\r\n * Hide the calendar of a date picker component.\r\n *\r\n * @param {HTMLElement} el An element within the date picker component\r\n */\r\nconst hideCalendar = (el) => {\r\n const { datePickerEl, calendarEl, statusEl } = getDatePickerContext(el);\r\n\r\n datePickerEl.classList.remove(DATE_PICKER_ACTIVE_CLASS);\r\n calendarEl.hidden = true;\r\n statusEl.textContent = \"\";\r\n};\r\n\r\n/**\r\n * Select a date within the date picker component.\r\n *\r\n * @param {HTMLButtonElement} calendarDateEl A date element within the date picker component\r\n */\r\nconst selectDate = (calendarDateEl) => {\r\n if (calendarDateEl.disabled) return;\r\n\r\n const { datePickerEl, externalInputEl, dialogEl, guideEl } = getDatePickerContext(\r\n calendarDateEl\r\n );\r\n setCalendarValue(calendarDateEl, calendarDateEl.dataset.value);\r\n hideCalendar(datePickerEl);\r\n dialogEl.hidden = true;\r\n guideEl.hidden = true;\r\n\r\n externalInputEl.focus();\r\n};\r\n\r\n/**\r\n * Toggle the calendar.\r\n *\r\n * @param {HTMLButtonElement} el An element within the date picker component\r\n */\r\nconst toggleCalendar = (el) => {\r\n if (el.disabled) return;\r\n const {\r\n dialogEl,\r\n calendarEl,\r\n inputDate,\r\n minDate,\r\n maxDate,\r\n defaultDate,\r\n guideEl\r\n } = getDatePickerContext(el);\r\n\r\n if (calendarEl.hidden) {\r\n const dateToDisplay = keepDateBetweenMinAndMax(\r\n inputDate || defaultDate || today(),\r\n minDate,\r\n maxDate\r\n );\r\n const newCalendar = renderCalendar(calendarEl, dateToDisplay);\r\n newCalendar.querySelector(CALENDAR_DATE_FOCUSED).focus();\r\n } else {\r\n hideCalendar(el);\r\n dialogEl.hidden = true;\r\n guideEl.hidden = true;\r\n }\r\n};\r\n\r\n/**\r\n * Update the calendar when visible.\r\n *\r\n * @param {HTMLElement} el an element within the date picker\r\n */\r\nconst updateCalendarIfVisible = (el) => {\r\n const { calendarEl, inputDate, minDate, maxDate } = getDatePickerContext(el);\r\n const calendarShown = !calendarEl.hidden;\r\n\r\n if (calendarShown && inputDate) {\r\n const dateToDisplay = keepDateBetweenMinAndMax(inputDate, minDate, maxDate);\r\n renderCalendar(calendarEl, dateToDisplay);\r\n }\r\n};\r\n\r\n// #endregion Calendar - Date Selection View\r\n\r\n// #region Calendar - Month Selection View\r\n/**\r\n * Display the month selection screen in the date picker.\r\n *\r\n * @param {HTMLButtonElement} el An element within the date picker component\r\n * @returns {HTMLElement} a reference to the new calendar element\r\n */\r\nconst displayMonthSelection = (el, monthToDisplay) => {\r\n const {\r\n calendarEl,\r\n statusEl,\r\n calendarDate,\r\n minDate,\r\n maxDate,\r\n } = getDatePickerContext(el);\r\n\r\n const selectedMonth = calendarDate.getMonth();\r\n const focusedMonth = monthToDisplay == null ? selectedMonth : monthToDisplay;\r\n\r\n const months = MONTH_LABELS.map((month, index) => {\r\n const monthToCheck = setMonth(calendarDate, index);\r\n\r\n const isDisabled = isDatesMonthOutsideMinOrMax(\r\n monthToCheck,\r\n minDate,\r\n maxDate\r\n );\r\n\r\n let tabindex = \"-1\";\r\n\r\n const classes = [CALENDAR_MONTH_CLASS];\r\n const isSelected = index === selectedMonth;\r\n\r\n if (index === focusedMonth) {\r\n tabindex = \"0\";\r\n classes.push(CALENDAR_MONTH_FOCUSED_CLASS);\r\n }\r\n\r\n if (isSelected) {\r\n classes.push(CALENDAR_MONTH_SELECTED_CLASS);\r\n }\r\n\r\n return ``;\r\n });\r\n\r\n const monthsHtml = `
\r\n \r\n \r\n ${listToGridHtml(months, 3)}\r\n \r\n
\r\n
`;\r\n\r\n const newCalendar = calendarEl.cloneNode();\r\n newCalendar.innerHTML = monthsHtml;\r\n calendarEl.parentNode.replaceChild(newCalendar, calendarEl);\r\n\r\n statusEl.textContent = text.months_displayed;\r\n\r\n return newCalendar;\r\n};\r\n\r\n/**\r\n * Select a month in the date picker component.\r\n *\r\n * @param {HTMLButtonElement} monthEl An month element within the date picker component\r\n */\r\nconst selectMonth = (monthEl) => {\r\n if (monthEl.disabled) return;\r\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\r\n monthEl\r\n );\r\n const selectedMonth = parseInt(monthEl.dataset.value, 10);\r\n let date = setMonth(calendarDate, selectedMonth);\r\n date = keepDateBetweenMinAndMax(date, minDate, maxDate);\r\n const newCalendar = renderCalendar(calendarEl, date);\r\n newCalendar.querySelector(CALENDAR_DATE_FOCUSED).focus();\r\n};\r\n\r\n// #endregion Calendar - Month Selection View\r\n\r\n// #region Calendar - Year Selection View\r\n\r\n/**\r\n * Display the year selection screen in the date picker.\r\n *\r\n * @param {HTMLButtonElement} el An element within the date picker component\r\n * @param {number} yearToDisplay year to display in year selection\r\n * @returns {HTMLElement} a reference to the new calendar element\r\n */\r\nconst displayYearSelection = (el, yearToDisplay) => {\r\n const {\r\n calendarEl,\r\n statusEl,\r\n calendarDate,\r\n minDate,\r\n maxDate,\r\n } = getDatePickerContext(el);\r\n\r\n const selectedYear = calendarDate.getFullYear();\r\n const focusedYear = yearToDisplay == null ? selectedYear : yearToDisplay;\r\n\r\n let yearToChunk = focusedYear;\r\n yearToChunk -= yearToChunk % YEAR_CHUNK;\r\n yearToChunk = Math.max(0, yearToChunk);\r\n\r\n const prevYearChunkDisabled = isDatesYearOutsideMinOrMax(\r\n setYear(calendarDate, yearToChunk - 1),\r\n minDate,\r\n maxDate\r\n );\r\n\r\n const nextYearChunkDisabled = isDatesYearOutsideMinOrMax(\r\n setYear(calendarDate, yearToChunk + YEAR_CHUNK),\r\n minDate,\r\n maxDate\r\n );\r\n\r\n const years = [];\r\n let yearIndex = yearToChunk;\r\n while (years.length < YEAR_CHUNK) {\r\n const isDisabled = isDatesYearOutsideMinOrMax(\r\n setYear(calendarDate, yearIndex),\r\n minDate,\r\n maxDate\r\n );\r\n\r\n let tabindex = \"-1\";\r\n\r\n const classes = [CALENDAR_YEAR_CLASS];\r\n const isSelected = yearIndex === selectedYear;\r\n\r\n if (yearIndex === focusedYear) {\r\n tabindex = \"0\";\r\n classes.push(CALENDAR_YEAR_FOCUSED_CLASS);\r\n }\r\n\r\n if (isSelected) {\r\n classes.push(CALENDAR_YEAR_SELECTED_CLASS);\r\n }\r\n\r\n years.push(\r\n ``\r\n );\r\n yearIndex += 1;\r\n }\r\n\r\n const yearsHtml = listToGridHtml(years, 3);\r\n const ariaLabelPreviousYears = text.previous_years.replace(/{years}/, YEAR_CHUNK);\r\n const ariaLabelNextYears = text.next_years.replace(/{years}/, YEAR_CHUNK);\r\n const announceYears = text.years_displayed.replace(/{start}/, yearToChunk).replace(/{end}/, yearToChunk + YEAR_CHUNK - 1);\r\n\r\n const newCalendar = calendarEl.cloneNode();\r\n newCalendar.innerHTML = `
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n  \r\n \r\n \r\n \r\n ${yearsHtml}\r\n \r\n
\r\n
\r\n  \r\n
\r\n
`;\r\n calendarEl.parentNode.replaceChild(newCalendar, calendarEl);\r\n\r\n statusEl.textContent = announceYears;\r\n\r\n return newCalendar;\r\n};\r\n\r\n/**\r\n * Navigate back by years and display the year selection screen.\r\n *\r\n * @param {HTMLButtonElement} el An element within the date picker component\r\n */\r\nconst displayPreviousYearChunk = (el) => {\r\n if (el.disabled) return;\r\n\r\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\r\n el\r\n );\r\n const yearEl = calendarEl.querySelector(CALENDAR_YEAR_FOCUSED);\r\n const selectedYear = parseInt(yearEl.textContent, 10);\r\n\r\n let adjustedYear = selectedYear - YEAR_CHUNK;\r\n adjustedYear = Math.max(0, adjustedYear);\r\n\r\n const date = setYear(calendarDate, adjustedYear);\r\n const cappedDate = keepDateBetweenMinAndMax(date, minDate, maxDate);\r\n const newCalendar = displayYearSelection(\r\n calendarEl,\r\n cappedDate.getFullYear()\r\n );\r\n\r\n let nextToFocus = newCalendar.querySelector(CALENDAR_PREVIOUS_YEAR_CHUNK);\r\n if (nextToFocus.disabled) {\r\n nextToFocus = newCalendar.querySelector(CALENDAR_YEAR_PICKER);\r\n }\r\n nextToFocus.focus();\r\n};\r\n\r\n/**\r\n * Navigate forward by years and display the year selection screen.\r\n *\r\n * @param {HTMLButtonElement} el An element within the date picker component\r\n */\r\nconst displayNextYearChunk = (el) => {\r\n if (el.disabled) return;\r\n\r\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\r\n el\r\n );\r\n const yearEl = calendarEl.querySelector(CALENDAR_YEAR_FOCUSED);\r\n const selectedYear = parseInt(yearEl.textContent, 10);\r\n\r\n let adjustedYear = selectedYear + YEAR_CHUNK;\r\n adjustedYear = Math.max(0, adjustedYear);\r\n\r\n const date = setYear(calendarDate, adjustedYear);\r\n const cappedDate = keepDateBetweenMinAndMax(date, minDate, maxDate);\r\n const newCalendar = displayYearSelection(\r\n calendarEl,\r\n cappedDate.getFullYear()\r\n );\r\n\r\n let nextToFocus = newCalendar.querySelector(CALENDAR_NEXT_YEAR_CHUNK);\r\n if (nextToFocus.disabled) {\r\n nextToFocus = newCalendar.querySelector(CALENDAR_YEAR_PICKER);\r\n }\r\n nextToFocus.focus();\r\n};\r\n\r\n/**\r\n * Select a year in the date picker component.\r\n *\r\n * @param {HTMLButtonElement} yearEl A year element within the date picker component\r\n */\r\nconst selectYear = (yearEl) => {\r\n if (yearEl.disabled) return;\r\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\r\n yearEl\r\n );\r\n const selectedYear = parseInt(yearEl.innerHTML, 10);\r\n let date = setYear(calendarDate, selectedYear);\r\n date = keepDateBetweenMinAndMax(date, minDate, maxDate);\r\n const newCalendar = renderCalendar(calendarEl, date);\r\n newCalendar.querySelector(CALENDAR_DATE_FOCUSED).focus();\r\n};\r\n\r\n// #endregion Calendar - Year Selection View\r\n\r\n// #region Calendar Event Handling\r\n\r\n/**\r\n * Hide the calendar.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleEscapeFromCalendar = (event) => {\r\n const { datePickerEl, externalInputEl, dialogEl, guideEl } = getDatePickerContext(event.target);\r\n\r\n hideCalendar(datePickerEl);\r\n dialogEl.hidden = true;\r\n guideEl.hidden = true;\r\n externalInputEl.focus();\r\n\r\n event.preventDefault();\r\n};\r\n\r\n// #endregion Calendar Event Handling\r\n\r\n// #region Calendar Date Event Handling\r\n\r\n/**\r\n * Adjust the date and display the calendar if needed.\r\n *\r\n * @param {function} adjustDateFn function that returns the adjusted date\r\n */\r\nconst adjustCalendar = (adjustDateFn) => {\r\n return (event) => {\r\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\r\n event.target\r\n );\r\n\r\n const date = adjustDateFn(calendarDate);\r\n\r\n const cappedDate = keepDateBetweenMinAndMax(date, minDate, maxDate);\r\n if (!isSameDay(calendarDate, cappedDate)) {\r\n const newCalendar = renderCalendar(calendarEl, cappedDate);\r\n newCalendar.querySelector(CALENDAR_DATE_FOCUSED).focus();\r\n }\r\n event.preventDefault();\r\n };\r\n};\r\n\r\n/**\r\n * Navigate back one week and display the calendar.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleUpFromDate = adjustCalendar((date) => subWeeks(date, 1));\r\n\r\n/**\r\n * Navigate forward one week and display the calendar.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleDownFromDate = adjustCalendar((date) => addWeeks(date, 1));\r\n\r\n/**\r\n * Navigate back one day and display the calendar.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleLeftFromDate = adjustCalendar((date) => subDays(date, 1));\r\n\r\n/**\r\n * Navigate forward one day and display the calendar.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleRightFromDate = adjustCalendar((date) => addDays(date, 1));\r\n\r\n/**\r\n * Navigate to the start of the week and display the calendar.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleHomeFromDate = adjustCalendar((date) => startOfWeek(date));\r\n\r\n/**\r\n * Navigate to the end of the week and display the calendar.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleEndFromDate = adjustCalendar((date) => endOfWeek(date));\r\n\r\n/**\r\n * Navigate forward one month and display the calendar.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handlePageDownFromDate = adjustCalendar((date) => addMonths(date, 1));\r\n\r\n/**\r\n * Navigate back one month and display the calendar.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handlePageUpFromDate = adjustCalendar((date) => subMonths(date, 1));\r\n\r\n/**\r\n * Navigate forward one year and display the calendar.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleShiftPageDownFromDate = adjustCalendar((date) => addYears(date, 1));\r\n\r\n/**\r\n * Navigate back one year and display the calendar.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleShiftPageUpFromDate = adjustCalendar((date) => subYears(date, 1));\r\n\r\n/**\r\n * display the calendar for the mousemove date.\r\n *\r\n * @param {MouseEvent} event The mousemove event\r\n * @param {HTMLButtonElement} dateEl A date element within the date picker component\r\n */\r\nconst handleMousemoveFromDate = (dateEl) => {\r\n if (dateEl.disabled) return;\r\n\r\n const calendarEl = dateEl.closest(DATE_PICKER_CALENDAR);\r\n\r\n const currentCalendarDate = calendarEl.dataset.value;\r\n const hoverDate = dateEl.dataset.value;\r\n\r\n if (hoverDate === currentCalendarDate) return;\r\n\r\n const dateToDisplay = parseDateString(hoverDate);\r\n const newCalendar = renderCalendar(calendarEl, dateToDisplay);\r\n newCalendar.querySelector(CALENDAR_DATE_FOCUSED).focus();\r\n};\r\n\r\n// #endregion Calendar Date Event Handling\r\n\r\n// #region Calendar Month Event Handling\r\n\r\n/**\r\n * Adjust the month and display the month selection screen if needed.\r\n *\r\n * @param {function} adjustMonthFn function that returns the adjusted month\r\n */\r\nconst adjustMonthSelectionScreen = (adjustMonthFn) => {\r\n return (event) => {\r\n const monthEl = event.target;\r\n const selectedMonth = parseInt(monthEl.dataset.value, 10);\r\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\r\n monthEl\r\n );\r\n const currentDate = setMonth(calendarDate, selectedMonth);\r\n\r\n let adjustedMonth = adjustMonthFn(selectedMonth);\r\n adjustedMonth = Math.max(0, Math.min(11, adjustedMonth));\r\n\r\n const date = setMonth(calendarDate, adjustedMonth);\r\n const cappedDate = keepDateBetweenMinAndMax(date, minDate, maxDate);\r\n if (!isSameMonth(currentDate, cappedDate)) {\r\n const newCalendar = displayMonthSelection(\r\n calendarEl,\r\n cappedDate.getMonth()\r\n );\r\n newCalendar.querySelector(CALENDAR_MONTH_FOCUSED).focus();\r\n }\r\n event.preventDefault();\r\n };\r\n};\r\n\r\n/**\r\n * Navigate back three months and display the month selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleUpFromMonth = adjustMonthSelectionScreen((month) => month - 3);\r\n\r\n/**\r\n * Navigate forward three months and display the month selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleDownFromMonth = adjustMonthSelectionScreen((month) => month + 3);\r\n\r\n/**\r\n * Navigate back one month and display the month selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleLeftFromMonth = adjustMonthSelectionScreen((month) => month - 1);\r\n\r\n/**\r\n * Navigate forward one month and display the month selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleRightFromMonth = adjustMonthSelectionScreen((month) => month + 1);\r\n\r\n/**\r\n * Navigate to the start of the row of months and display the month selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleHomeFromMonth = adjustMonthSelectionScreen(\r\n (month) => month - (month % 3)\r\n);\r\n\r\n/**\r\n * Navigate to the end of the row of months and display the month selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleEndFromMonth = adjustMonthSelectionScreen(\r\n (month) => month + 2 - (month % 3)\r\n);\r\n\r\n/**\r\n * Navigate to the last month (December) and display the month selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handlePageDownFromMonth = adjustMonthSelectionScreen(() => 11);\r\n\r\n/**\r\n * Navigate to the first month (January) and display the month selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handlePageUpFromMonth = adjustMonthSelectionScreen(() => 0);\r\n\r\n/**\r\n * update the focus on a month when the mouse moves.\r\n *\r\n * @param {MouseEvent} event The mousemove event\r\n * @param {HTMLButtonElement} monthEl A month element within the date picker component\r\n */\r\nconst handleMousemoveFromMonth = (monthEl) => {\r\n if (monthEl.disabled) return;\r\n if (monthEl.classList.contains(CALENDAR_MONTH_FOCUSED_CLASS)) return;\r\n\r\n const focusMonth = parseInt(monthEl.dataset.value, 10);\r\n\r\n const newCalendar = displayMonthSelection(monthEl, focusMonth);\r\n newCalendar.querySelector(CALENDAR_MONTH_FOCUSED).focus();\r\n};\r\n\r\n// #endregion Calendar Month Event Handling\r\n\r\n// #region Calendar Year Event Handling\r\n\r\n/**\r\n * Adjust the year and display the year selection screen if needed.\r\n *\r\n * @param {function} adjustYearFn function that returns the adjusted year\r\n */\r\nconst adjustYearSelectionScreen = (adjustYearFn) => {\r\n return (event) => {\r\n const yearEl = event.target;\r\n const selectedYear = parseInt(yearEl.dataset.value, 10);\r\n const { calendarEl, calendarDate, minDate, maxDate } = getDatePickerContext(\r\n yearEl\r\n );\r\n const currentDate = setYear(calendarDate, selectedYear);\r\n\r\n let adjustedYear = adjustYearFn(selectedYear);\r\n adjustedYear = Math.max(0, adjustedYear);\r\n\r\n const date = setYear(calendarDate, adjustedYear);\r\n const cappedDate = keepDateBetweenMinAndMax(date, minDate, maxDate);\r\n if (!isSameYear(currentDate, cappedDate)) {\r\n const newCalendar = displayYearSelection(\r\n calendarEl,\r\n cappedDate.getFullYear()\r\n );\r\n newCalendar.querySelector(CALENDAR_YEAR_FOCUSED).focus();\r\n }\r\n event.preventDefault();\r\n };\r\n};\r\n\r\n/**\r\n * Navigate back three years and display the year selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleUpFromYear = adjustYearSelectionScreen((year) => year - 3);\r\n\r\n/**\r\n * Navigate forward three years and display the year selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleDownFromYear = adjustYearSelectionScreen((year) => year + 3);\r\n\r\n/**\r\n * Navigate back one year and display the year selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleLeftFromYear = adjustYearSelectionScreen((year) => year - 1);\r\n\r\n/**\r\n * Navigate forward one year and display the year selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleRightFromYear = adjustYearSelectionScreen((year) => year + 1);\r\n\r\n/**\r\n * Navigate to the start of the row of years and display the year selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleHomeFromYear = adjustYearSelectionScreen(\r\n (year) => year - (year % 3)\r\n);\r\n\r\n/**\r\n * Navigate to the end of the row of years and display the year selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handleEndFromYear = adjustYearSelectionScreen(\r\n (year) => year + 2 - (year % 3)\r\n);\r\n\r\n/**\r\n * Navigate to back 12 years and display the year selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handlePageUpFromYear = adjustYearSelectionScreen(\r\n (year) => year - YEAR_CHUNK\r\n);\r\n\r\n/**\r\n * Navigate forward 12 years and display the year selection screen.\r\n *\r\n * @param {KeyboardEvent} event the keydown event\r\n */\r\nconst handlePageDownFromYear = adjustYearSelectionScreen(\r\n (year) => year + YEAR_CHUNK\r\n);\r\n\r\n/**\r\n * update the focus on a year when the mouse moves.\r\n *\r\n * @param {MouseEvent} event The mousemove event\r\n * @param {HTMLButtonElement} dateEl A year element within the date picker component\r\n */\r\nconst handleMousemoveFromYear = (yearEl) => {\r\n if (yearEl.disabled) return;\r\n if (yearEl.classList.contains(CALENDAR_YEAR_FOCUSED_CLASS)) return;\r\n\r\n const focusYear = parseInt(yearEl.dataset.value, 10);\r\n\r\n const newCalendar = displayYearSelection(yearEl, focusYear);\r\n newCalendar.querySelector(CALENDAR_YEAR_FOCUSED).focus();\r\n};\r\n\r\n// #endregion Calendar Year Event Handling\r\n\r\n// #region Focus Handling Event Handling\r\n\r\nconst tabHandler = (focusable) => {\r\n const getFocusableContext = (el) => {\r\n const { calendarEl } = getDatePickerContext(el);\r\n const focusableElements = select(focusable, calendarEl);\r\n\r\n const firstTabIndex = 0;\r\n const lastTabIndex = focusableElements.length - 1;\r\n const firstTabStop = focusableElements[firstTabIndex];\r\n const lastTabStop = focusableElements[lastTabIndex];\r\n const focusIndex = focusableElements.indexOf(activeElement());\r\n\r\n const isLastTab = focusIndex === lastTabIndex;\r\n const isFirstTab = focusIndex === firstTabIndex;\r\n const isNotFound = focusIndex === -1;\r\n\r\n return {\r\n focusableElements,\r\n isNotFound,\r\n firstTabStop,\r\n isFirstTab,\r\n lastTabStop,\r\n isLastTab,\r\n };\r\n };\r\n\r\n return {\r\n tabAhead(event) {\r\n const { firstTabStop, isLastTab, isNotFound } = getFocusableContext(\r\n event.target\r\n );\r\n\r\n if (isLastTab || isNotFound) {\r\n event.preventDefault();\r\n firstTabStop.focus();\r\n }\r\n },\r\n tabBack(event) {\r\n const { lastTabStop, isFirstTab, isNotFound } = getFocusableContext(\r\n event.target\r\n );\r\n\r\n if (isFirstTab || isNotFound) {\r\n event.preventDefault();\r\n lastTabStop.focus();\r\n }\r\n },\r\n };\r\n};\r\n\r\nconst datePickerTabEventHandler = tabHandler(DATE_PICKER_FOCUSABLE);\r\nconst monthPickerTabEventHandler = tabHandler(MONTH_PICKER_FOCUSABLE);\r\nconst yearPickerTabEventHandler = tabHandler(YEAR_PICKER_FOCUSABLE);\r\n\r\n// #endregion Focus Handling Event Handling\r\n\r\n// #region Date Picker Event Delegation Registration / Component\r\n\r\nconst datePickerEvents = {\r\n [CLICK]: {\r\n [DATE_PICKER_BUTTON]() {\r\n toggleCalendar(this);\r\n },\r\n [CALENDAR_DATE]() {\r\n selectDate(this);\r\n },\r\n [CALENDAR_MONTH]() {\r\n selectMonth(this);\r\n },\r\n [CALENDAR_YEAR]() {\r\n selectYear(this);\r\n },\r\n [CALENDAR_PREVIOUS_MONTH]() {\r\n displayPreviousMonth(this);\r\n },\r\n [CALENDAR_NEXT_MONTH]() {\r\n displayNextMonth(this);\r\n },\r\n [CALENDAR_PREVIOUS_YEAR]() {\r\n displayPreviousYear(this);\r\n },\r\n [CALENDAR_NEXT_YEAR]() {\r\n displayNextYear(this);\r\n },\r\n [CALENDAR_PREVIOUS_YEAR_CHUNK]() {\r\n displayPreviousYearChunk(this);\r\n },\r\n [CALENDAR_NEXT_YEAR_CHUNK]() {\r\n displayNextYearChunk(this);\r\n },\r\n [CALENDAR_MONTH_SELECTION]() {\r\n const newCalendar = displayMonthSelection(this);\r\n newCalendar.querySelector(CALENDAR_MONTH_FOCUSED).focus();\r\n },\r\n [CALENDAR_YEAR_SELECTION]() {\r\n const newCalendar = displayYearSelection(this);\r\n newCalendar.querySelector(CALENDAR_YEAR_FOCUSED).focus();\r\n },\r\n },\r\n keyup: {\r\n [DATE_PICKER_CALENDAR](event) {\r\n const keydown = this.dataset.keydownKeyCode;\r\n if (`${event.keyCode}` !== keydown) {\r\n event.preventDefault();\r\n }\r\n },\r\n },\r\n keydown: {\r\n [DATE_PICKER_EXTERNAL_INPUT](event) {\r\n if (event.keyCode === ENTER_KEYCODE) {\r\n validateDateInput(this);\r\n }\r\n },\r\n [CALENDAR_DATE]: keymap({\r\n Up: handleUpFromDate,\r\n ArrowUp: handleUpFromDate,\r\n Down: handleDownFromDate,\r\n ArrowDown: handleDownFromDate,\r\n Left: handleLeftFromDate,\r\n ArrowLeft: handleLeftFromDate,\r\n Right: handleRightFromDate,\r\n ArrowRight: handleRightFromDate,\r\n Home: handleHomeFromDate,\r\n End: handleEndFromDate,\r\n PageDown: handlePageDownFromDate,\r\n PageUp: handlePageUpFromDate,\r\n \"Shift+PageDown\": handleShiftPageDownFromDate,\r\n \"Shift+PageUp\": handleShiftPageUpFromDate,\r\n }),\r\n [CALENDAR_DATE_PICKER]: keymap({\r\n Tab: datePickerTabEventHandler.tabAhead,\r\n \"Shift+Tab\": datePickerTabEventHandler.tabBack,\r\n }),\r\n [CALENDAR_MONTH]: keymap({\r\n Up: handleUpFromMonth,\r\n ArrowUp: handleUpFromMonth,\r\n Down: handleDownFromMonth,\r\n ArrowDown: handleDownFromMonth,\r\n Left: handleLeftFromMonth,\r\n ArrowLeft: handleLeftFromMonth,\r\n Right: handleRightFromMonth,\r\n ArrowRight: handleRightFromMonth,\r\n Home: handleHomeFromMonth,\r\n End: handleEndFromMonth,\r\n PageDown: handlePageDownFromMonth,\r\n PageUp: handlePageUpFromMonth,\r\n }),\r\n [CALENDAR_MONTH_PICKER]: keymap({\r\n Tab: monthPickerTabEventHandler.tabAhead,\r\n \"Shift+Tab\": monthPickerTabEventHandler.tabBack,\r\n }),\r\n [CALENDAR_YEAR]: keymap({\r\n Up: handleUpFromYear,\r\n ArrowUp: handleUpFromYear,\r\n Down: handleDownFromYear,\r\n ArrowDown: handleDownFromYear,\r\n Left: handleLeftFromYear,\r\n ArrowLeft: handleLeftFromYear,\r\n Right: handleRightFromYear,\r\n ArrowRight: handleRightFromYear,\r\n Home: handleHomeFromYear,\r\n End: handleEndFromYear,\r\n PageDown: handlePageDownFromYear,\r\n PageUp: handlePageUpFromYear,\r\n }),\r\n [CALENDAR_YEAR_PICKER]: keymap({\r\n Tab: yearPickerTabEventHandler.tabAhead,\r\n \"Shift+Tab\": yearPickerTabEventHandler.tabBack,\r\n }),\r\n [DATE_PICKER_CALENDAR](event) {\r\n this.dataset.keydownKeyCode = event.keyCode;\r\n },\r\n [DATE_PICKER](event) {\r\n const keyMap = keymap({\r\n Escape: handleEscapeFromCalendar,\r\n });\r\n\r\n keyMap(event);\r\n },\r\n },\r\n focusout: {\r\n [DATE_PICKER_EXTERNAL_INPUT]() {\r\n validateDateInput(this);\r\n },\r\n [DATE_PICKER](event) {\r\n if (!this.contains(event.relatedTarget)) {\r\n hideCalendar(this);\r\n }\r\n },\r\n },\r\n input: {\r\n [DATE_PICKER_EXTERNAL_INPUT]() {\r\n reconcileInputValues(this);\r\n updateCalendarIfVisible(this);\r\n },\r\n },\r\n};\r\n\r\nif (!isIosDevice()) {\r\n datePickerEvents.mousemove = {\r\n [CALENDAR_DATE_CURRENT_MONTH]() {\r\n handleMousemoveFromDate(this);\r\n },\r\n [CALENDAR_MONTH]() {\r\n handleMousemoveFromMonth(this);\r\n },\r\n [CALENDAR_YEAR]() {\r\n handleMousemoveFromYear(this);\r\n },\r\n };\r\n}\r\n\r\nconst datePicker = behavior(datePickerEvents, {\r\n init(root) {\r\n select(DATE_PICKER, root).forEach((datePickerEl) => {\r\n if(!datePickerEl.classList.contains(DATE_PICKER_INITIALIZED_CLASS)){\r\n enhanceDatePicker(datePickerEl);\r\n }\r\n });\r\n },\r\n setLanguage(strings) {\r\n text = strings;\r\n MONTH_LABELS = [\r\n text.january,\r\n text.february,\r\n text.march,\r\n text.april,\r\n text.may,\r\n text.june,\r\n text.july,\r\n text.august,\r\n text.september,\r\n text.october,\r\n text.november,\r\n text.december\r\n ];\r\n DAY_OF_WEEK_LABELS = [\r\n text.monday,\r\n text.tuesday,\r\n text.wednesday,\r\n text.thursday,\r\n text.friday,\r\n text.saturday,\r\n text.sunday\r\n ];\r\n },\r\n getDatePickerContext,\r\n disable,\r\n enable,\r\n isDateInputInvalid,\r\n setCalendarValue,\r\n validateDateInput,\r\n renderCalendar,\r\n updateCalendarIfVisible\r\n});\r\n\r\n// #endregion Date Picker Event Delegation Registration / Component\r\n\r\nmodule.exports = datePicker;\r\n","'use strict';\r\nimport Dropdown from './dropdown';\r\nimport '../polyfills/Function/prototype/bind';\r\n\r\n/**\r\n * Add functionality to sorting variant of Overflow menu component\r\n * @param {HTMLElement} container .overflow-menu element\r\n */\r\nfunction DropdownSort (container){\r\n this.container = container;\r\n this.button = container.getElementsByClassName('button-overflow-menu')[0];\r\n\r\n // if no value is selected, choose first option\r\n if(!this.container.querySelector('.overflow-list li button[aria-current=\"true\"]')){\r\n this.container.querySelectorAll('.overflow-list li button')[0].setAttribute('aria-current', \"true\");\r\n }\r\n\r\n this.updateSelectedValue();\r\n}\r\n\r\n/**\r\n * Add click events on overflow menu and options in menu\r\n */\r\nDropdownSort.prototype.init = function(){\r\n this.overflowMenu = new Dropdown(this.button).init();\r\n\r\n let sortingOptions = this.container.querySelectorAll('.overflow-list li button');\r\n for(let s = 0; s < sortingOptions.length; s++){\r\n let option = sortingOptions[s];\r\n option.addEventListener('click', this.onOptionClick.bind(this));\r\n }\r\n}\r\n\r\n/**\r\n * Update button text to selected value\r\n */\r\nDropdownSort.prototype.updateSelectedValue = function(){\r\n let selectedItem = this.container.querySelector('.overflow-list li button[aria-current=\"true\"]');\r\n this.container.getElementsByClassName('button-overflow-menu')[0].getElementsByClassName('selected-value')[0].innerText = selectedItem.innerText;\r\n}\r\n\r\n/**\r\n * Triggers when choosing option in menu\r\n * @param {PointerEvent} e\r\n */\r\nDropdownSort.prototype.onOptionClick = function(e){\r\n let li = e.target.parentNode;\r\n li.parentNode.querySelector('li button[aria-current=\"true\"]').removeAttribute('aria-current');\r\n li.querySelectorAll('.overflow-list li button')[0].setAttribute('aria-current', 'true');\r\n\r\n let button = li.parentNode.parentNode.parentNode.getElementsByClassName('button-overflow-menu')[0];\r\n let eventSelected = new Event('fds.dropdown.selected');\r\n eventSelected.detail = this.target;\r\n button.dispatchEvent(eventSelected);\r\n this.updateSelectedValue();\r\n\r\n // hide menu\r\n let overflowMenu = new Dropdown(button);\r\n overflowMenu.hide();\r\n}\r\n\r\nexport default DropdownSort;\r\n","'use strict';\r\nconst breakpoints = require('../utils/breakpoints');\r\nconst BUTTON = '.button-overflow-menu';\r\nconst jsDropdownCollapseModifier = 'js-dropdown--responsive-collapse'; //option: make dropdown behave as the collapse component when on small screens (used by submenus in the header and step-dropdown).\r\nconst TARGET = 'data-js-target';\r\n\r\n/**\r\n * Add functionality to overflow menu component\r\n * @param {HTMLButtonElement} buttonElement Overflow menu button\r\n */\r\nfunction Dropdown (buttonElement) {\r\n this.buttonElement = buttonElement;\r\n this.targetEl = null;\r\n this.responsiveListCollapseEnabled = false;\r\n\r\n if(this.buttonElement === null ||this.buttonElement === undefined){\r\n throw new Error(`Could not find button for overflow menu component.`);\r\n }\r\n let targetAttr = this.buttonElement.getAttribute(TARGET);\r\n if(targetAttr === null || targetAttr === undefined){\r\n throw new Error('Attribute could not be found on overflow menu component: '+TARGET);\r\n }\r\n let targetEl = document.getElementById(targetAttr.replace('#', ''));\r\n if(targetEl === null || targetEl === undefined){\r\n throw new Error('Panel for overflow menu component could not be found.');\r\n }\r\n this.targetEl = targetEl;\r\n}\r\n\r\n/**\r\n * Set click events\r\n */\r\nDropdown.prototype.init = function (){\r\n if(this.buttonElement !== null && this.buttonElement !== undefined && this.targetEl !== null && this.targetEl !== undefined){\r\n\r\n if(this.buttonElement.parentNode.classList.contains('overflow-menu--md-no-responsive') || this.buttonElement.parentNode.classList.contains('overflow-menu--lg-no-responsive')){\r\n this.responsiveListCollapseEnabled = true;\r\n }\r\n\r\n //Clicked outside dropdown -> close it\r\n document.getElementsByTagName('body')[ 0 ].removeEventListener('click', outsideClose);\r\n document.getElementsByTagName('body')[ 0 ].addEventListener('click', outsideClose);\r\n //Clicked on dropdown open button --> toggle it\r\n this.buttonElement.removeEventListener('click', toggleDropdown);\r\n this.buttonElement.addEventListener('click', toggleDropdown);\r\n let $module = this;\r\n // set aria-hidden correctly for screenreaders (Tringuide responsive)\r\n if(this.responsiveListCollapseEnabled) {\r\n let element = this.buttonElement;\r\n if (window.IntersectionObserver) {\r\n // trigger event when button changes visibility\r\n let observer = new IntersectionObserver(function (entries) {\r\n // button is visible\r\n if (entries[ 0 ].intersectionRatio) {\r\n if (element.getAttribute('aria-expanded') === 'false') {\r\n $module.targetEl.setAttribute('aria-hidden', 'true');\r\n }\r\n } else {\r\n // button is not visible\r\n if ($module.targetEl.getAttribute('aria-hidden') === 'true') {\r\n $module.targetEl.setAttribute('aria-hidden', 'false');\r\n }\r\n }\r\n }, {\r\n root: document.body\r\n });\r\n observer.observe(element);\r\n } else {\r\n // IE: IntersectionObserver is not supported, so we listen for window resize and grid breakpoint instead\r\n if (doResponsiveCollapse($module.triggerEl)) {\r\n // small screen\r\n if (element.getAttribute('aria-expanded') === 'false') {\r\n $module.targetEl.setAttribute('aria-hidden', 'true');\r\n } else{\r\n $module.targetEl.setAttribute('aria-hidden', 'false');\r\n }\r\n } else {\r\n // Large screen\r\n $module.targetEl.setAttribute('aria-hidden', 'false');\r\n }\r\n window.addEventListener('resize', function () {\r\n if (doResponsiveCollapse($module.triggerEl)) {\r\n if (element.getAttribute('aria-expanded') === 'false') {\r\n $module.targetEl.setAttribute('aria-hidden', 'true');\r\n } else{\r\n $module.targetEl.setAttribute('aria-hidden', 'false');\r\n }\r\n } else {\r\n $module.targetEl.setAttribute('aria-hidden', 'false');\r\n }\r\n });\r\n }\r\n }\r\n\r\n \r\n document.removeEventListener('keyup', closeOnEscape);\r\n document.addEventListener('keyup', closeOnEscape);\r\n }\r\n}\r\n\r\n/**\r\n * Hide overflow menu\r\n */\r\nDropdown.prototype.hide = function(){\r\n toggle(this.buttonElement);\r\n}\r\n\r\n/**\r\n * Show overflow menu\r\n */\r\nDropdown.prototype.show = function(){\r\n toggle(this.buttonElement);\r\n}\r\n\r\nlet closeOnEscape = function(event){\r\n var key = event.which || event.keyCode;\r\n if (key === 27) {\r\n closeAll(event);\r\n }\r\n};\r\n\r\n/**\r\n * Get an Array of button elements belonging directly to the given\r\n * accordion element.\r\n * @param parent accordion element\r\n * @returns {NodeListOf | NodeListOf | NodeListOf}\r\n */\r\nlet getButtons = function (parent) {\r\n return parent.querySelectorAll(BUTTON);\r\n};\r\n\r\n/**\r\n * Close all overflow menus\r\n * @param {event} event default is null\r\n */\r\nlet closeAll = function (event = null){\r\n let changed = false;\r\n const body = document.querySelector('body');\r\n\r\n let overflowMenuEl = document.getElementsByClassName('overflow-menu');\r\n for (let oi = 0; oi < overflowMenuEl.length; oi++) {\r\n let currentOverflowMenuEL = overflowMenuEl[ oi ];\r\n let triggerEl = currentOverflowMenuEL.querySelector(BUTTON+'[aria-expanded=\"true\"]');\r\n if(triggerEl !== null){\r\n changed = true;\r\n let targetEl = currentOverflowMenuEL.querySelector('#'+triggerEl.getAttribute(TARGET).replace('#', ''));\r\n\r\n if (targetEl !== null && triggerEl !== null) {\r\n if(doResponsiveCollapse(triggerEl)){\r\n if(triggerEl.getAttribute('aria-expanded') === true){\r\n let eventClose = new Event('fds.dropdown.close');\r\n triggerEl.dispatchEvent(eventClose);\r\n }\r\n triggerEl.setAttribute('aria-expanded', 'false');\r\n targetEl.classList.add('collapsed');\r\n targetEl.setAttribute('aria-hidden', 'true');\r\n }\r\n }\r\n }\r\n }\r\n\r\n if(changed && event !== null){\r\n event.stopImmediatePropagation();\r\n }\r\n};\r\nlet offset = function (el) {\r\n let rect = el.getBoundingClientRect(),\r\n scrollLeft = window.pageXOffset || document.documentElement.scrollLeft,\r\n scrollTop = window.pageYOffset || document.documentElement.scrollTop;\r\n return { top: rect.top + scrollTop, left: rect.left + scrollLeft };\r\n};\r\n\r\nlet toggleDropdown = function (event, forceClose = false) {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n\r\n toggle(this, forceClose);\r\n\r\n};\r\n\r\nlet toggle = function(button, forceClose = false){\r\n let triggerEl = button;\r\n let targetEl = null;\r\n if(triggerEl !== null && triggerEl !== undefined){\r\n let targetAttr = triggerEl.getAttribute(TARGET);\r\n if(targetAttr !== null && targetAttr !== undefined){\r\n targetEl = document.getElementById(targetAttr.replace('#', ''));\r\n }\r\n }\r\n if(triggerEl !== null && triggerEl !== undefined && targetEl !== null && targetEl !== undefined){\r\n //change state\r\n\r\n targetEl.style.left = null;\r\n targetEl.style.right = null;\r\n\r\n if(triggerEl.getAttribute('aria-expanded') === 'true' || forceClose){\r\n //close\r\n triggerEl.setAttribute('aria-expanded', 'false');\r\n targetEl.classList.add('collapsed');\r\n targetEl.setAttribute('aria-hidden', 'true'); \r\n let eventClose = new Event('fds.dropdown.close');\r\n triggerEl.dispatchEvent(eventClose);\r\n }else{\r\n \r\n if(!document.getElementsByTagName('body')[0].classList.contains('mobile_nav-active')){\r\n closeAll();\r\n }\r\n //open\r\n triggerEl.setAttribute('aria-expanded', 'true');\r\n targetEl.classList.remove('collapsed');\r\n targetEl.setAttribute('aria-hidden', 'false');\r\n let eventOpen = new Event('fds.dropdown.open');\r\n triggerEl.dispatchEvent(eventOpen);\r\n let targetOffset = offset(targetEl);\r\n\r\n if(targetOffset.left < 0){\r\n targetEl.style.left = '0px';\r\n targetEl.style.right = 'auto';\r\n }\r\n let right = targetOffset.left + targetEl.offsetWidth;\r\n if(right > window.innerWidth){\r\n targetEl.style.left = 'auto';\r\n targetEl.style.right = '0px';\r\n }\r\n\r\n let offsetAgain = offset(targetEl);\r\n\r\n if(offsetAgain.left < 0){\r\n\r\n targetEl.style.left = '0px';\r\n targetEl.style.right = 'auto';\r\n }\r\n right = offsetAgain.left + targetEl.offsetWidth;\r\n if(right > window.innerWidth){\r\n\r\n targetEl.style.left = 'auto';\r\n targetEl.style.right = '0px';\r\n }\r\n }\r\n\r\n }\r\n}\r\n\r\nlet hasParent = function (child, parentTagName){\r\n if(child.parentNode.tagName === parentTagName){\r\n return true;\r\n } else if(parentTagName !== 'BODY' && child.parentNode.tagName !== 'BODY'){\r\n return hasParent(child.parentNode, parentTagName);\r\n }else{\r\n return false;\r\n }\r\n};\r\n\r\nlet outsideClose = function (evt){\r\n if(!document.getElementsByTagName('body')[0].classList.contains('mobile_nav-active')){\r\n if(document.querySelector('body.mobile_nav-active') === null && !evt.target.classList.contains('button-menu-close')) {\r\n let openDropdowns = document.querySelectorAll(BUTTON+'[aria-expanded=true]');\r\n for (let i = 0; i < openDropdowns.length; i++) {\r\n let triggerEl = openDropdowns[i];\r\n let targetEl = null;\r\n let targetAttr = triggerEl.getAttribute(TARGET);\r\n if (targetAttr !== null && targetAttr !== undefined) {\r\n if(targetAttr.indexOf('#') !== -1){\r\n targetAttr = targetAttr.replace('#', '');\r\n }\r\n targetEl = document.getElementById(targetAttr);\r\n }\r\n if (doResponsiveCollapse(triggerEl) || (hasParent(triggerEl, 'HEADER') && !evt.target.classList.contains('overlay'))) {\r\n //closes dropdown when clicked outside\r\n if (evt.target !== triggerEl) {\r\n //clicked outside trigger, force close\r\n triggerEl.setAttribute('aria-expanded', 'false');\r\n targetEl.classList.add('collapsed');\r\n targetEl.setAttribute('aria-hidden', 'true'); \r\n let eventClose = new Event('fds.dropdown.close');\r\n triggerEl.dispatchEvent(eventClose);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n};\r\n\r\nlet doResponsiveCollapse = function (triggerEl){\r\n if(!triggerEl.classList.contains(jsDropdownCollapseModifier)){\r\n // not nav overflow menu\r\n if(triggerEl.parentNode.classList.contains('overflow-menu--md-no-responsive') || triggerEl.parentNode.classList.contains('overflow-menu--lg-no-responsive')) {\r\n // trinindikator overflow menu\r\n if (window.innerWidth <= getTringuideBreakpoint(triggerEl)) {\r\n // overflow menu på responsiv tringuide aktiveret\r\n return true;\r\n }\r\n } else{\r\n // normal overflow menu\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n};\r\n\r\nlet getTringuideBreakpoint = function (button){\r\n if(button.parentNode.classList.contains('overflow-menu--md-no-responsive')){\r\n return breakpoints.md;\r\n }\r\n if(button.parentNode.classList.contains('overflow-menu--lg-no-responsive')){\r\n return breakpoints.lg;\r\n }\r\n};\r\n\r\nexport default Dropdown;","'use strict';\r\n/**\r\n * Handle focus on input elements upon clicking link in error message\r\n * @param {HTMLElement} element Error summary element\r\n */\r\nfunction ErrorSummary (element) {\r\n this.element = element;\r\n}\r\n\r\n/**\r\n * Set events on links in error summary\r\n */\r\nErrorSummary.prototype.init = function () {\r\n if (!this.element) {\r\n return\r\n }\r\n this.element.focus()\r\n\r\n this.element.addEventListener('click', this.handleClick.bind(this))\r\n}\r\n\r\n/**\r\n* Click event handler\r\n*\r\n* @param {MouseEvent} event - Click event\r\n*/\r\nErrorSummary.prototype.handleClick = function (event) {\r\n var target = event.target\r\n if (this.focusTarget(target)) {\r\n event.preventDefault()\r\n }\r\n}\r\n\r\n/**\r\n * Focus the target element\r\n *\r\n * By default, the browser will scroll the target into view. Because our labels\r\n * or legends appear above the input, this means the user will be presented with\r\n * an input without any context, as the label or legend will be off the top of\r\n * the screen.\r\n *\r\n * Manually handling the click event, scrolling the question into view and then\r\n * focussing the element solves this.\r\n *\r\n * This also results in the label and/or legend being announced correctly in\r\n * NVDA (as tested in 2018.3.2) - without this only the field type is announced\r\n * (e.g. \"Edit, has autocomplete\").\r\n *\r\n * @param {HTMLElement} $target - Event target\r\n * @returns {boolean} True if the target was able to be focussed\r\n */\r\nErrorSummary.prototype.focusTarget = function ($target) {\r\n // If the element that was clicked was not a link, return early\r\n if ($target.tagName !== 'A' || $target.href === false) {\r\n return false\r\n }\r\n\r\n var inputId = this.getFragmentFromUrl($target.href)\r\n var $input = document.getElementById(inputId)\r\n if (!$input) {\r\n return false\r\n }\r\n\r\n var $legendOrLabel = this.getAssociatedLegendOrLabel($input)\r\n if (!$legendOrLabel) {\r\n return false\r\n }\r\n\r\n // Scroll the legend or label into view *before* calling focus on the input to\r\n // avoid extra scrolling in browsers that don't support `preventScroll` (which\r\n // at time of writing is most of them...)\r\n $legendOrLabel.scrollIntoView()\r\n $input.focus({ preventScroll: true })\r\n\r\n return true\r\n}\r\n\r\n/**\r\n * Get fragment from URL\r\n *\r\n * Extract the fragment (everything after the hash) from a URL, but not including\r\n * the hash.\r\n *\r\n * @param {string} url - URL\r\n * @returns {string} Fragment from URL, without the hash\r\n */\r\nErrorSummary.prototype.getFragmentFromUrl = function (url) {\r\n if (url.indexOf('#') === -1) {\r\n return false\r\n }\r\n\r\n return url.split('#').pop()\r\n}\r\n\r\n/**\r\n * Get associated legend or label\r\n *\r\n * Returns the first element that exists from this list:\r\n *\r\n * - The `` associated with the closest `
` ancestor, as long\r\n * as the top of it is no more than half a viewport height away from the\r\n * bottom of the input\r\n * - The first `