{"version":3,"sources":["css/imgs/logo_vale.svg","components/general/GlobalState.js","components/general/LanguageComponent.js","components/login/LoginState.js","components/utilities/Events.js","components/utilities/Utils.js","services/MenuSVC.js","components/menu/AdminMenu.js","components/menu/MainMenu.js","components/menu/MainMenuMobile.js","components/menu/NavMenu.js","components/Layout.js","services/SystemSVC.js","services/UsersSVC.js","components/home/UserHome.js","services/BannerHomeSVC.js","components/home/BannerHome.js","components/home/WhoIsWhoHome.js","components/home/MessageHouse.js","services/SharedDocumentsSVC.js","components/utilities/SharedDocument.js","components/utilities/MessageModal/MessageModal.js","components/home/FolderManager.js","hooks/Modal.js","components/pages/Home.js","services/SuppliersSVC.js","components/utilities/ProfilePhoto/ProfilePhotoComponent.js","components/users/Permissions.js","components/utilities/ProfilePhoto/ProfilePhotoContext.js","components/profile/UserData.js","components/profile/ProfData.js","components/utilities/Actions.js","components/profile/ChangePassword.js","components/profile/WhoIsWho.js","components/pages/Profile.js","components/users/UsersList.js","components/utilities/Buttons.js","components/utilities/PermissionRedirect/PermissionRedirect.js","components/pages/Users.js","components/users/NewPassword.js","services/ProfileTemplateSVC.js","components/templates/TemplateLists.js","components/banners/ModalBanners.js","components/pages/UsersItem.js","components/pages/Templates.js","components/pages/TemplateItem.js","components/banners/BannersList.js","components/pages/Banners.js","components/suppliers/SuppliersLists.js","components/pages/Suppliers.js","components/utilities/MessageModal/GenericModal.js","components/pages/SuppliersItem.js","services/PressSVC.js","components/pages/Releases.js","components/releases/ModalReleases.js","components/releases/MailingStatus.js","components/releases/ReleasesList.js","components/releases/ReleaseState.js","components/utilities/Export.js","components/releases/ChangeHistory.js","components/mailing/contacts/MailingContactsContext.js","services/MailingSVC.js","services/MailingGeneralSVC.js","components/Shared/PressForm.js","components/Shared/GroupsBox.js","components/generalMailing/contacts/MailingContactsContext.js","components/Shared/GroupsBoxGeneral.js","components/mailing/SendItem.js","components/utilities/Constants.js","components/releases/Default.js","helpers/Functions.js","helpers/EmailCreator.js","services/SignatureSVC.js","components/pages/Statements/Statements.js","components/pages/PositionPaper/PositionPaper.js","components/pages/ReleasesItem.js","components/statements/StatementsList.js","components/pages/Statements/StatementsItem.js","components/position/PositionList.js","components/pages/PositionPaper/PositionPaperItem.js","services/LiaisonSVC.js","components/liaison/LiaisonList.js","components/liaison/Liaison.js","components/mailing/contacts/ContactsList.js","components/mailing/contacts/Contacts.js","components/generalMailing/contacts/ContactsList.js","components/generalMailing/contacts/Contacts.js","components/mailing/groups/Groups.js","components/generalMailing/groups/Groups.js","components/pages/QA/QA.js","components/pages/WebcastNotices/WebcastNotices.js","components/pages/AssignmentNotices/AssignmentNotices.js","resources/countries.js","components/liaison/LiaisonItem.js","components/liaisonReport/LiaisonReportState.js","components/liaisonReport/ReportComponent.js","components/liaisonReport/FilterComponent.js","components/liaisonReport/LiaisonReport.js","components/mailing/contacts/ContactsItem.js","components/generalMailing/contacts/ContactsItem.js","components/mailing/groups/GroupsList.js","components/mailing/groups/GroupsItem.js","components/generalMailing/groups/GroupsList.js","components/generalMailing/groups/GroupsItem.js","components/qa/QAList.js","components/pages/QA/QAItem.js","components/webcast/WebcastList.js","components/pages/WebcastNotices/WebcastNoticesItem.js","components/assignment/AssignmentList.js","components/pages/AssignmentNotices/AssignmentNoticesItem.js","components/sharedDocuments/SharedDocumentsComponent.js","components/sharedDocuments/Press.js","components/pages/PublicSharedDocuments.js","models/LoginModels.js","components/login/EnterComponent.js","components/login/ForgotComponent.js","components/login/ResetComponent.js","components/pages/LoginComponent.js","components/utilities/Breadcrumb.js","components/sharedDocuments/PlanningAndResearch.js","components/sharedDocuments/EventsVisits.js","components/sharedDocuments/DigitalMedia.js","components/sharedDocuments/CommunicationWithEmployees.js","services/CommunicationEmployeesSVC.js","components/communicationEmployees/CommunicationEmployeesList.js","components/communicationEmployees/CommunicationEmployees.js","components/communicationEmployees/CommunicationEmployeesItem.js","components/sharedDocuments/Events.js","components/sharedDocuments/GlobalGuidelines.js","components/sharedDocuments/GlobalCalendar.js","components/sharedDocuments/InternalCampaigns.js","components/sharedDocuments/DirectCommunication.js","components/sharedDocuments/InternalResearchResults.js","components/sharedDocuments/SpecialProjects.js","components/sharedDocuments/InternalVehicles.js","components/sharedDocuments/BrandingAdvertising.js","components/sharedDocuments/BrandCenter.js","components/publicShare/PublicShare.js","components/sharedDocuments/Brazil.js","components/sharedDocuments/Canada.js","components/sharedDocuments/China.js","components/sharedDocuments/Global.js","components/sharedDocuments/Indonesia.js","components/sharedDocuments/Japan.js","components/sharedDocuments/Malasya.js","components/sharedDocuments/Mozambique.js","components/sharedDocuments/NewCaledonia.js","components/sharedDocuments/Oman.js","components/sharedDocuments/Paraguay.js","components/sharedDocuments/Singapore.js","components/sharedDocuments/Switzerland.js","components/sharedDocuments/Peru.js","components/general/ApplicationInsights.js","components/general/AppInsightsContext.js","components/digitalMedia/context/DigitalMediaContext.js","components/pressReport/PressReportState.js","services/DigitalMediaSVC.js","components/digitalMedia/VideoContent.js","components/digitalMedia/DigitalMedia.js","components/manageInternalAreas/InternalContent.js","components/digitalMedia/Videos.js","components/digitalMedia/ModalVideo.js","components/manageInternalAreas/manageInternalAreasSVC.js","components/manageInternalAreas/ManageInternalAreas.js","components/manageAnnualBudget/manageAnnualBudgetSVC.js","components/manageAnnualBudget/AnnualContent.js","components/manageAnnualBudget/ManageAnnualBudget.js","components/manageContracts/context/ContractsContext.js","services/ContractsSVC.js","components/manageContracts/ModalComponent.js","components/manageContracts/ManageContracts.js","components/manageContracts/ContractContent.js","services/MeasurementReportSVC.js","components/measurementReport/MeasurementContent.js","components/measurementReport/MeasurementReport.js","components/advertisingBudget/AdvertisingBudgetSVC.js","components/advertisingBudget/AdvertisingGrid.js","components/advertisingBudget/AdvertisingBudget.js","components/advertisingBudget/AdvertisingBudgetContext.js","components/advertisingBudget/DataContent.js","components/advertisingBudget/CostContent.js","components/advertisingBudget/FileContent.js","components/advertisingBudget/ControlContent.js","components/advertisingBudget/HistoricContent.js","components/advertisingBudget/FormAdvertisingBudget.js","components/advertisingBudget/FormContainerAdBudget.js","components/whoiswho/WhoIsWhoContent.js","components/whoiswho/WhoIsWhoItem.js","components/messageHouse/context/MessageHouseContext.js","services/MessagesHouseSVC.js","components/messageHouse/MessageHouseModal.js","components/messageHouse/MessageHouseItem.js","components/historico/Historico.js","components/messageHouse/MessageHouseContent.js","components/errorLogs/SerialNoAdaptor.js","components/errorLogs/ErrorLogs.js","components/signature/Signature.js","components/signature/ModalSignature.js","components/signature/SignatureItem.js","components/pressReport/ReportComponent.js","components/pressReport/FilterComponent.js","components/releases/ReleaseReport.js","components/statements/StatementsReport.js","components/position/PositionReport.js","App.js","registerServiceWorker.js","i18n.js","index.js"],"names":["_defs","_g","_excluded","_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","_objectWithoutProperties","excluded","sourceKeys","keys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","_ref","svgRef","title","props","createElement","width","height","viewBox","ref","id","transform","className","d","ForwardRef","forwardRef","userCacheItem","localStorage","getItem","JSON","parse","accessToken","userName","userPhoto","userEmail","userAdmin","userLanguage","regional","namePt","nameEn","permissions","accessArea","permission","idAreaAcesso","GlobalStateContext","React","GlobalStateProvider","children","globalState","setGlobalState","Provider","value","LanguageComponent","dropdownBtnRef","items","text","iconCss","selected","i18n","language","filter","item","role","map","index","dropdownButton","select","e","window","location","reload","changeLanguage","onLanguageSelect","initialState","step","search","LoginStateContext","LoginStateProvider","loginState","setLoginState","redirectMessage","setRedirectMessage","EventEmitter","events","dispatch","event","data","forEach","callback","subscribe","push","requestAPI","endPointURL","method","queryString","body","token","isFormData","test","hasPaginationUrl","a","myHeaders","Headers","append","requestOptions","headers","redirect","responseType","fetch","process","response","ok","status","getURLParamsByKey","name","match","RegExp","exec","decodeURIComponent","replace","formatBytes","bytes","decimals","k","dm","sizes","Math","floor","log","parseFloat","pow","toFixed","uuidv4","c","crypto","getRandomValues","Uint8Array","toString","getDateTime","date","Date","toLocaleDateString","toLocaleTimeString","hasPermissions","areaId","type","editPermissionId","find","idPermissao","menu","admin","qstring","AdminMenu","useContext","useState","itemsAdmin","setItemsAdmin","photoUser","setPhotoUser","t","useTranslation","logout","removeItem","useEffect","updateUserPhoto","then","json","result","catch","error","console","version","toISOString","setItem","stringify","NavItem","NavLink","tag","Link","to","userId","Fragment","url","nomePT","nomeEN","onClick","cssClass","src","MainMenu","itemsMain","setItemsMain","subItemsMain","setSubItemsMain","firstItem","firstIndex","classeIcone","childs","secondItem","secondIndex","thirdItem","thirdIndex","enableScrolling","animationSettings","duration","locale","enableRipple","MainMenuMobile","close","child","category","fields","tooltip","dataSource","showHeader","showIcon","enablePersistence","NavMenu","collapsed","setCollapsed","toggleNavbar","Navbar","light","Container","NavbarToggler","NavbarBrand","Layout","getSupplierTypes","getDICIAreas","getAccessAreas","getCountries","getPermissions","getProfileAreas","lang","getProfileDepartments","getProfileManagement","getRegional","getSupplierDescriptions","getBusinessAreas","getAllBusinessAreas","getMediaTypes","getPressMediaTypes","getStates","getCities","getLiaisonStatus","getCategories","getSocialMedias","getStatus","login","loginModel","raw","email","password","forgot","reset","newPassword","newData","encodeURIComponent","users","getProfile","usersFull","Promise","resolve","reject","getMyProfile","updateMyProfile","update_password","deleteUser","getFilteredUsers","username","filters","trim","toLowerCase","getHorizontalUsers","getWhoisWhoUsersFull","getChartObj","UserHome","tab","useRef","inputRef","loadingUser","setLoadingUser","profile","setProfile","country","setCountry","region","setRegion","setNameUser","setRedirect","setUsers","document","getElementById","createSpinner","showSpinner","setSpinner","_profile","_country","_region","hideSpinner","load","renderTabProfile","res","whoIsWhoUsers","getUsers","headerText","birth","dataNascimento","pais","idPais","reg","idRegional","nomePt","nomeEn","usuarioTelefone","style","alignItems","promptChar","insertKeyMode","hidePrompt","mask","telefone","disabled","goProfile","getNewUsers","useCallback","func","wait","immediate","timeout","args","context","later","callNow","clearTimeout","setTimeout","debounce","newUsers","current","header","content","template","renderTabWhoisWho","addTab","removeTab","refresh","focus","onChange","placeholder","tokenLightWeight","alt","nome","whoRedirect","created","getBanners","idioma","BannerHome","banner","setBanner","_banner","_arrayBanners","_findBanners","ativo","titulo","chamada","link","idIdioma","activeIndex","setActiveIndex","animating","setAnimating","Carousel","next","nextIndex","previous","CarouselIndicators","onClickHandler","newIndex","CarouselItem","onExiting","onExited","CarouselCaption","captionText","captionHeader","href","WhoIsWhoHome","scrollingLeft","setScrollingLeft","scrollingRight","setScrollingRight","containerRef","paginationUsers","scrollEnd","position","total","container","scrollWidth","clientWidth","scrollLeft","prevSlide","display","flexDirection","marginLeft","textDecoration","nextSlide","MessageHouse","xmlns","data-name","cx","cy","rx","ry","fill","isPublic","form_data","FormData","fileManagerObj","parentProps","modal","setLoading","setUrl","setShowCopyPaste","toastInstance","path","toasts","icon","view","fileManager","ajaxSettings","public","getImageUrl","uploadUrl","allowDragAndDrop","beforeSend","httpRequest","setRequestHeader","beforeImageLoad","imageUrl","pathQString","regex","results","getParameterByName","imgUrl","beforeDownload","cancel","filename","isFile","downloadFile","show","blob","URL","createObjectURL","Blob","setAttribute","appendChild","click","parentNode","removeChild","uploadSettings","minFileSize","maxFileSize","failure","undefined","code","message","toolbarSettings","visible","detailsViewSettings","columns","field","customAttributes","class","minWidth","format","contextMenuSettings","file","folder","layout","menuClick","fileDetails","filePath","filterPath","isFolder","caminho","pasta","sharePublicAccess","fileName","menuOpen","selectedItems","disableMenuItems","element","services","NavigationPane","DetailsView","Toolbar","toast","X","prev","MessageModal","formObject","setshow","useModal","modalMessageParams","setModalMessageParams","setOpenModal","isModal","maxHeight","titlePt","titleEn","messagePt","messageEn","ModalContext","createContext","ModalProvider","buildDialogMessage","FolderManager","showModal","setShowModal","showCopyPaste","setData","isLoading","setIsLoading","isLoadingFile","setIsLoadingFile","setResponse","modalButtons","buttonModel","isPrimary","enableProgress","validate","emails","grantTemporaryAcess","options","rules","required","customPlacement","inputElement","errorElement","parentElement","FormValidator","buttons","showCloseIcon","htmlFor","split","emailsList","mail","validateEmail","obj","navigator","clipboard","writeText","Home","checkBanners","setCheckBanners","Row","getSuppliers","deleteSupplier","dialogRef","gridInstance","modalDelete","ProfilePhotoContext","ProfilePhotoProvider","photo","setPhoto","ProfilePhotoComponent","uploaderRef","dropAreaRef","journalist","idContact","showAvatar","hasPermissionToEdit","toggle","openDialog","setOpenDialog","loading","updatePhoto","removeFiles","dropArea","dataBind","uploadPhoto","getElementsByClassName","querySelector","clearThumb","ej2_instances","clearAll","remove","b64","delete","changed","onRemovingAttachsFiles","getBriefName","join","toUpperCase","dialog","beforeClose","size","dangerouslySetInnerHTML","__html","data-files-count","downloadAttachment","uploader","allowedExtensions","filesData","statusCode","reader","FileReader","firstFile","files","addEventListener","lastIndexOf","substring","ext","readAsDataURL","rawFile","innerHTML","removing","multiple","phoneNumberMask","UserData","dropdownListCountry","dropdownListRegional","info","isProfile","hasPermission","setHasPermission","employeeChecked","setEmployeeChecked","suppliersList","setSuppliersList","countrySelected","setCountrySelected","countriesList","setCountriesList","regionalSelect","setRegionalSelect","showImageModal","setShowImageModal","_info","userIdParam","photoUrl","xhr","XMLHttpRequest","onreadystatechange","readyState","open","send","getProfilePhoto","setNewPhone","suppliers","addTooltip","_regional","isNewItem","funcionarioVale","idFornecedor","newPhone","dropdownListCreated","enabled","prop","htmlattributes","maxLength","multiline","blur","label","checked","change","setInfo","idTipoUsuario","setFormValidationRules","changedEmployee","incluirWhoIsWho","selectedValue","itemData","changedSupplier","readonly","strictMode","changedCountry","allowFiltering","showClearButton","phone","placeholderChar","formattedValue","findPhone","updatePhone","temp","pos","splice","removePhone","ProfData","departmenRef","managementRef","businessAreaRef","superiorRef","loadingProf","setLoadingProf","areaSelect","setAreaSelect","departamentSelect","setDepartamentSelect","managementSelect","setManagementSelect","immediateLeader","setImmediateLeader","_management","_areas","_departments","_immediate","dataInicioVale","htmlAttributes","cargo","matricula","cargoGerencia","atividadePrincipal","idPerfilDepartamento","idPerfilGerencia","idPerfilArea","idSuperiorDireto","enderecoTrabalho","userPermission","Actions","controls","area","globalPermissions","urlPreview","urlReturn","urlDuplicateLiaison","urlForward","urlDuplicate","previewSignature","customPermissions","urlSave","savePrimary","form","urlSend","sendDisabled","urlCancel","excludePrimary","customPermissionsDelete","urlDelete","ChangePassword","validateReset","setValidateReset","validateConfirm","setValidateConfirm","similarPassword","setSimilarPassword","showSucessText","setShowSucessText","loadingChangePass","setLoadingChangePass","useForm","nativeValidation","handleSubmit","register","triggerValidation","watch","htmlPasswordAttributes","maxlength","onSubmit","NewPassword","changePassword","triggerReset","triggerConfirm","watchReset","watchConfirm","pattern","WhoIsWho","idUser","listSubordinates","setListSubordinates","listChart","setListChart","chartObj","list_to_tree","chartTree","getChart","list","node","roots","manager","TopWho","isManager","role2","Profile","dataUser","setDataUser","setHasPermissionToEdit","openModal","disabledBtn","setDisabledBtn","params","_controls","urlView","changeInfoUser","getItems","_usersFull","fotoB64","newRegional","regPromise","trocaSenha","hour12","UsersList","gridExport","gridExportChange","superiorDiretoRef","cargoRef","areaRef","paisRef","emailRef","regionalRef","areaNegocioRef","tipoUsuarioRef","departamentoRef","fornecedorRef","gerenciaRef","fillUsersData","setFillUsersData","fillData","setFillData","fillUsersDataFull","setFillUsersDataFull","fillCountriesData","setFillCountriesData","fillAccessAreasData","setFillAccessAreasData","fillBusinessAreaData","setFillBusinessAreaData","fillDepartamentData","setFillDepartamentData","fillManagementData","setFillManagementData","fillUserTypesData","setFillUserTypesData","fillSupplierDescriptionsData","setSupplierDescriptionsData","fillRegionalData","setFillRegionalData","persistence","setPersistence","setFilters","isVisible","setIsVisible","columnId","x","parseInt","newFilters","findIndex","filtersSelected","_item","onTextBlur","f","newFilter","promises","_users","user","ultimoLogin","_countries","_accessAreas","fillAreas","_profileAreas","getUserTypes","_userTypes","_supplierDescriptions","all","arr","parentValue","idPai","hasChildren","filhos","breadCrumbAccessAreaEn","breadCrumbEn","breadCrumbAccessAreaPt","breadCrumbPt","isFather","concat","excelExport","filterUserName","setFilterUserName","filtered","currentFiltered","v","p","Set","filtering","query","Query","where","updateData","searchData","showCheckBox","treeSettings","autoCheck","getValue","showDropDownIcon","mode","filterSettings","allowPaging","allowSorting","allowExcelExport","edit","Resize","Sort","ContextMenu","Filter","Page","Edit","ForeignKey","ExcelExport","Buttons","export","exportPdf","import","new","permit","back","PermissionRedirect","Users","setIdUser","setGridExport","setUserPermission","exportRelease","fullReset","getProfileTemplate","Permissions","valuesArea","valuesPermissions","changeUser","gridItems","setGridItems","loadingPermissions","setLoadingPermissions","adminGlobal","changePermission","setChangePermission","profileTemplates","setProfileTemplates","setRawAreas","comboPermission","setComboPermission","areaData","setAreaData","openModalDelete","setOpenModalDelete","grid","setGrid","deleteRow","_profileTemplates","_permission","pt","pe","idAccessArea","onInsert","preventDefault","ptPermissionObj","enPermissionObj","areaBreadCrumb","areaObj","breadValue","idPermission","breadText","catchIdAccessArea","parent","permissionsPt","permissionsEn","IdsPermissions","newItemObj","oldItemIndex","gridItem","ids","changedPermission","idModeloPerfil","CheckBoxSelection","contextMenuItems","columnPermission","columnButton","UsersItem","emptyUser","nomePaisPT","nomePaisEN","nomeRegionalPT","nomeRegionalEN","tipoUsuarioPT","tipoUsuarioEN","updated","setUpdated","openModalConfirm","setFormObject","formValidator","formObj","addRules","addOrUpdateUsersFull","excludeUser","action","removeRules","fullAcessArea","TemplatesLists","fillPermissionsData","setFillPermissionsData","allTemplates","setAllTemplates","placeHolderNome","setPlaceHolderNome","placeHolderAreaAcesso","setPlaceHolderAreaAcesso","placeHolderPermissao","setPlaceHolderPermissao","setFilter","_permissions","currentTarget","listTemplate","includes","arrPermissionsPt","permissionId","itemPermission","templateItem","permissionsResult","every","areasResult","areas","changeOnBlur","acessAreas","acessArea","String","pageSettings","pageSize","auxAccess","cAcessArea","aa","textAlign","Templates","idTemplate","setIdTemplate","TemplateItem","dropdownTreeAreasRef","multiSelectPermissionsRef","auxProfileTemplateName","auxAccessArea","auxPermission","auxIdsPermissions","auxPermissionsPt","auxPermissionsEn","comboPermissions","setComboPermissions","comboAccessAreas","setComboAccessAreas","profileTemplate","setProfileTemplate","gridDataSource","setGridDataSource","fillAccessAreas","setFillAccessAreas","placeholderName","setPlaceholderName","placeholderTitle","setPlaceholderTitle","dialogDelete","setDialogDelete","saveTemplate","_profileTemplate","auxGridDataSource","addProfileTemplate","alert","updateProfileTemplate","confirmDelete","deleteProfileTemplate","dropdownTree","ac","multiSelect","aux","profileTemplatePermission","idsPermissions","ptp","includeTemplate","columnArea","ModalBanners","setBannersList","bannersList","setRefresh","bannerItem","setBannerItem","setOpenModalConfirm","showBannerInfo","setShowBannerInfo","idiomaRef","ativoRef","loadingModal","setLoadingModal","onSubmitClick","imagemB64","updateBanner","isDefaultDisabled","uploadImage","textBoxOnChange","bannerObj","comboBoxOnChange","bannerIdioma","bannerStatus","uploadObj","deleteBanner","deleteBanners","findIdBanner","dataApi","updateBanners","changeDataBanner","addBanners","createNewBanner","dropAreaEle","tyle","tabindex","upload","defaultValue","edrft43","BannersList","catchRefresh","loadingBanner","setLoadingBanner","Banners","gridRefresh","setGridRefresh","showDialog","setShowDialog","dataBanner","setDataBanner","setCatchRefresh","editBanner","update","SuppliersLists","gridComponentRef","comboCountries","setComboCountries","comboRegional","setComboRegional","placeHolder","setPlaceHolder","allSuppliers","setAllSuppliers","loadingSuppliers","setLoadingSuppliers","setSuppliers","buildDropDownItems","objMap","textKey","_suppliers","dropdownlistChange","listSuppliers","gridComponent","Suppliers","idItem","setIdItem","GenericModal","actionType","zIndex","exitCallback","reproveCallback","approveCallback","confirmNotOkCallback","confirmOkCallback","SuppliersItem","comboDescription","setComboDescription","comboSupplierTypes","setComboSupplierTypes","comboDICIAreas","setComboDICIAreas","selectedItem","setSelectedItem","regionalVisible","setRegionalVisible","setmodalMessageParams","idSupplier","saveSupplier","excludeSupplier","_description","_supplierTypes","_DICIAreas","idCountry","msg","callBack","okCallback","notOkCallback","confirmType","handleConfirmOK","newItem","inscricaoEstadual","inscricaoMunicipal","cnpj","addOrUpdateSupplier","erroMSg","errors","OperationId","itemID","handleNotOK","handleOK","idTipoFornecedor","Number","idDescricao","idAreaDICI","endereco","getPressItems","pressTypeId","qString","getPressItemsFiltered","reports","newBody","getPressItem","addPressItem","midias","midia","updatePressItem","deletePressItem","duplicatePressItem","duplicateForwardPressItem","regionalId","conteudo","pressId","getMailingShippingStatusItems","uploadPressMedia","removeMedia","ReleasesList","refRelease","releasesItems","setReleasesItems","allReleases","setAllReleases","idTipo","filteredReleasesItems","setFilteredReleasesItems","loadingReleases","setLoadingReleases","ddlRegionalRef","changePosition","from","_businessAreas","filterQstring","_pressItems","bloqueado","oldUsers","autores","set","duplicate","has","add","newBusinessAreas","countries","newCountries","statusRelease","filteredReleases","_filteredReleases","dataInicio","startDate","dataFim","endDate","autofill","autor","idAreaNegocio","ddlComponent","dateRelease","Releases","idRelease","setIdRelease","setGridInstance","gridInstanceExport","releaseItem","urlItemId","changeInfo","ReleaseStateContext","ReleaseStateProvider","releaseState","setReleaseState","groupsSelected","setGroupsSelected","groupsFilter","setGroupsFilter","generalGroupsSelected","setGeneralGroupsSelected","generalGroupsFilter","setGeneralGroupsFilter","showSendContent","setShowSendContent","redirectId","setRedirectId","ModalReleases","mailingStatusSelected","setMailingStatusSelected","gridSource","setGridSource","reportMailingStatus","setReportMailingStatus","getMailingReportItems","reportmailingStatusFiltered","rms","idReportMailingStatus","statusPt","statusEn","getReportMailingStatus","MailingStatus","itemId","mailingStatus","setMailingStatus","accordionRef","mailingStatusRef","getMailingStatus","loadMailingShippingStatus","mailingStatusFiltered","ms","idMailingStatus","onGridRowSelected","clearSelection","gridCreated","gridActionBegin","requestType","columnName","filterModel","lookup","grupos","getGroups","DataUtil","fnOperators","equal","rowValues","filterValue","ignoreCase","ignoreAccent","Array","isArray","ignoreDiacritics","notequal","renderCellGroup","column","Tooltip","cell","groupTemplate","successTemplate","sucesso","erroTemplate","erro","addItem","expanded","contentStatus","allowResizing","actionBegin","queryCellInfo","rowSelected","autoFit","CustomAccordion","Export","pdf","doc","excel","ChangeHistory","usuario","tipoAcao","reverse","MailingContactsContext","MailingContactsProvider","mediaTypes","setMediaTypes","setCountries","states","setStates","cities","setCities","contactListItems","setContactListItems","getMailingContactItems","addOrUpdateContactItem","deleteMailingContactPhoto","formData","getMailingGroupItems","getMailingGroupItemsGeneral","GroupsBox","multiSelectGroups","groups","setGroups","groupsGeneral","setGroupsGeneral","groupsFiltered","idpais","idregional","multiSelectChange","MailingContactsProviderGeneral","GroupsBoxGeneral","SendItem","txtSubject","txtMailList","initialValues","assunto","receberCopia","listaEmails","idImprensa","idPress","countriesPt","setCountriesPt","countriesEn","setCountriesEn","regionsPt","setRegionsPt","regionsEn","setRegionsEn","setContent","sendBtnDisabled","setSendBtnDisabled","sendContent","arrPt","arrEn","grupoGeral","addShippingStatusItem","idType","textBox","storageAccUrl","PressBoilerPlatePT","PressBoilerPlateEN","PressFooterPT","getFullYear","PressFooterEN","getReleaseDefault","getImagesTitle","subtitle","boiler","footer","getImagesTitleString","isOrContainsNode","langName","langId","convertDateToUTC","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","elementContainsSelection","el","sel","rangeCount","getRangeAt","commonAncestorContainer","selection","createRange","getRelativeFilePath","absolutePath","filePathSplited","guidOrId","getPressMediaTemplate","iconPath","mediaUrl","description","newExt","arrName","extension","urlEdited","getFileExtensionName","slice","getFileExtension","mountSignature","tituloPT","tituloEN","urlpt","urlen","colaboradores","redesSociais","getUrlFromSocialMedia","sm","celular","colaborador","SM","iconeB64","getPressVideoTemplate","videoUrl","thumbUrl","getSignatureItems","getSignatureItemByRegion","getAndMountSignature","newSig","newSigContent","getSignatureItem","addOrUpdateSignatureItem","PressForm","itemExists","endPointUrl","storageUrl","listItemsUrl","setEditFirstLoad","setActiveUsers","currentUser","setCurrentUser","videoSrc","setVideoSrc","showThumb","percentSize","fileParams","setFileParams","setFilePath","blocked","setBlocked","areaNegocio","setAreaNegocio","setPais","setRegional","setLanguage","setTitle","subTitle","setSubTitle","approver","setApprover","authors","setAuthors","mediaGuid","setMediaGuid","attachmentTitleCount","setAttachmentTitleCount","setAttachmentSubTitleCount","attachmentAudioCount","setAttachmentAudioCount","setItemId","signature","setSignature","setRteContent","tableSelection","setTableSelection","setDate","isArgs","setIsArgs","typeFileVideo","setTypeFileVideo","reValidateMode","defaultValues","resolver","criteriaMode","shouldFocusError","shouldUnregister","txtAttachmentTitleRef","filePathUploaded","dialogObjYtb","txtSubtitleRef","txtApproverRef","datePickerRef","txtAuthorRef","txtAudioRef","gridMediaRef","formEditable","txtTitleRef","sidebarRef","dialogObj","rteObj","releaseIdioma","types","itemsVale","tooltipText","enableFloating","asyncSettings","saveUrl","rteFileUploadEleYtb","rteFileUploadEle","insertImageSettings","allowedTypes","saveFormat","getInfo","getReq","_currentUser","fileItemIdParam","guid","generateGUID","substr","L10n","richtexteditor","browse","subtitulo","aprovadoPor","tdSig","updateRteHeaderTemplate","execUpdateRteHeaderTemplate","savedSelection","Id","saveCaret","getSelection","containerEl","range","preSelectionRange","cloneRange","selectNodeContents","setEnd","startContainer","startOffset","start","end","saveSelection","selectedTextRange","preSelectionTextRange","createTextRange","moveToElementText","setEndPoint","saveSelectionDocument","restoreCaret","savedSel","charIndex","setStart","collapse","nodeStack","foundStart","stop","pop","nodeType","nextCharIndex","childNodes","removeAllRanges","addRange","restoreSelection","textRange","moveEnd","moveStart","restoreSelectionDocument","html","sig","DOMParser","parseFromString","contentObj","contentOtherLangObj","currentContent","headerEl","boilerPlateEl","attachmentItem","footerEl","documentElement","defaultRteTemplate","defaultRteContent","richTextDefault","selectedTemplate","boilerPlate","contentModule","getDocument","getEditPanel","getElementsByTagName","outerHTML","insertFile","insertYtb","dlgButtons","fileInfo","getFileInfo","fileFullPath","getRange","canvas","video","serverUrl","getAttribute","currentSrc","toBlob","File","thumbWrapperDiv","videoTemplate","insertAdjacentHTML","insertNode","setStartAfter","saveThumb","audiosWrapper","audioTemplate","imgWrapperDiv","imageTemplate","youtubeWrapperDiv","youtube_parser","youtubeTemplate","attachmentsWrapper","attachmentTemplate","attachmentsArea","querySelectorAll","childElementCount","mediaTemplate","attachmentWrapperTd","attachmentFilename","dialogOverlay","activeEle","activeEleYtb","classList","hide","RenderVideoTag","preload","serverurl","crossOrigin","maxWidth","onLoadedMetadata","videoOnload","generateThumbOnClick","hidden","videoWidth","videoHeight","canvasCtx","getContext","drawImage","random","rteBeforeQuickToolbarOpen","videoContainers","audioContainers","attachmentContainers","imgContainers","lastElementChild","urlRegex","mediasUrls","serverUrls","newMediasUrls","urls","clearUnusedMedias","addOrUpdate","dataAPI","min","datepicker","scope","default","command","subCommand","beforeQuickToolbarOpen","beforeDialogClose","currentRequest","originalEvent","clipboardData","getData","execCommand","imageTitlePT","imageTitleEN","newTag","enableHtmlSanitizer","rteDefaultTBodyContent","innerText","HtmlEditor","Image","QuickToolbar","beforeOpen","selec","selectionBeforeDropdownClick","overlayClick","minHeight","uploading","success","srcElement","operation","removeAttribute","onFileUploadSuccess","postRawFile","onRemoveFile","input","ev","AttachmentTitleRef","AttachmentAudioRef","sidebar","visibility","closeOnDocumentClick","cursor","padding","marginRight","containerId","closest","clearAttachmentsArea","ReleasesItem","setRegionalId","openModalRegional","setOpenModalRegional","regionalList","setRegionalList","fwdConfirmationModal","setFwdConfirmationModal","modalRef","handleRef","contains","duplicateRelease","initialValue","historico","_releaseItem","mailingSent","getRegionalList","duplicateRegionalRelease","contentReplaced","StatementsList","refStatement","statementItems","setStatementItems","allStatements","setAllStatements","filteredStatementItems","setFilteredStatementItems","statusStatement","filteredStatements","_filteredStatements","dateStatement","Statements","idStatement","setIdStatement","exportStatement","StatementsItem","duplicateStatement","PositionPaperList","refPositionPaper","positionPaperItems","setPositionPaperItems","allPositionPaper","setAllPositionPaper","filteredPositionPaperItems","setFilteredPositionPaperItems","statusPositionPaper","filteredPositionPaper","_filteredPositionPaper","datePositionPaper","PositionPaper","idPositionPaper","setIdPositionPaper","exportPositionPaper","PositionPaperItem","duplicatePositionPaper","LiaisonReportFilter","vehicle","responsibles","businessArea","startPeriod","endPeriod","LiaisonTO","jornalista","idTipoMidia","nomeVeiculo","mailingContato","idStatus","dataConclusao","descricao","responsaveis","dataRecebimento","deadLine","anexos","inserirMailing","autorRegistro","MailingContactTO","idtipoMidia","idestado","idcidade","editoria","LiaisonAttachment","contentType","fileB64","fileExtension","fileLength","LiaisonHistory","liaisonId","fullFilterArray","fullFilter","startDay","getDate","startMonth","getMonth","startPeriodDtStr","endDay","endMonth","endPeriodDtStr","withFilters","addLiaisonItem","updateLiaisonItem","IdLiaison","gridFeedbackRef","LiaisonList","refLiaison","fillBusinessAreaDataPt","setFillBusinessAreaDataPt","fillCountryDataPt","setFillCountryDataPt","fillRegionalDataPt","setFillRegionalDataPt","fillStatusDataPt","setFillStatusDataPt","fillBusinessAreaDataEn","setFillBusinessAreaDataEn","fillCountryDataEn","setFillCountryDataEn","fillRegionalDataEn","setFillRegionalDataEn","fillStatusDataEn","setFillStatusDataEn","allLiaisonItems","setAllLiaisonItems","liaisonItemsPt","setLiaisonItemsPt","liaisonItemsEn","setLiaisonItemsEn","loadedCount","setLoadedCount","loaded","setLoaded","liaisonFilter","setLiaisonFilter","dateFilter","setDateFilter","responsibleFilter","setResponsibleFilter","businessAreaFilter","setBusinessAreaFilter","countryFilter","setCountryFilter","regionalFilter","setRegionalFilter","statusFilter","setStatusFilter","initialLoad","configBusinessArea","configCountries","configRegionals","configStatus","_status","_contries","_regionals","dateFormat","splitDataSource","resultReduce","reduce","output","idx","itemPt","st","countryPt","ct","regionalPt","rg","itemEn","countryEn","regionalEn","getLiaisonItems","veiculo","filteredItems","decomposedText","normalize","sDate","getTime","eDate","Liaison","idLiaison","setIdLiaison","exportLiaison","countriesJSON","LiaisonItem","ddlStatesRef","ddlCitiesRef","txtEmailRef","txtEditorialRef","txtOccupationRef","txtAddressRef","txtDescriptionRef","txtResponsaveisRef","ddlMailingContactGroupRef","dtConclusionRef","countryDefault","unregister","clearError","initialMailingContactTO","hideMailingState","setHideMailingState","hideMailingCity","setHideMailingCity","jornalistSelected","setJornalistSelected","liaisonTO","setLiaisonTO","mailingContatoTO","setMailingContatoTO","liaisonAttachments","setLiaisonAttachments","insertMailing","setInsertMailing","fillMediaTypesDataPt","setFillMediaTypesDataPt","fillMediaTypesDataEn","setFillMediaTypesDataEn","isLoadingItem","setIsLoadingItem","fillVehicleData","setFillVehicleData","fillStateDataPt","setFillStateDataPt","fillStateDataEn","setFillStateDataEn","fillCityDataPt","setFillCityDataPt","fillCityDataEn","setFillCityDataEn","fillLiaisonStatusDataPt","setFillLiaisonStatusDataPt","fillLiaisonStatusDataEn","setFillLiaisonStatusDataEn","fillLiaisonActionTypesDataPt","setFillLiaisonActionTypesDataPt","fillLiaisonActionTypesDataEn","setFillLiaisonActionTypesDataEn","fillMailingContactGroupData","setFillMailingContactGroupData","openCountries","setOpenCountries","dataCountries","setDataCountries","dataFlags","setDataFlags","newEmail","setNewEmail","phoneRef","handlePhoneRef","jornalistDataManager","DataManager","adaptor","ODataV4Adaptor","crossDomain","duplicateLiaison","addOrUpdateRelease","deleteItem","deleteLiaisonItem","configMediaTypes","configStates","configCities","configLiaisonStatus","getLiaisonActionTypes","configLiaisonActionTypes","_mediaTypes","_states","_cities","idEstado","_liaisonStatus","_liaisonActionTypes","validation","moment","triggerDuplicate","duplicateLiaisonItem","uploaderCreated","setPropertyLiaisonTOState","fieldName","fieldValue","lto","setPropertyMailingContactTOState","mto","downloadLiaisonAttachment","currentCountries","newProfile","selectAllText","unSelectAllText","getLiaisonItem","newTelefone","mailingTO","histList","IdAtendimento","attachments","flag","handleChangeFlags","newDataFlags","flags","sortOrder","mct","minLength","mediaType","findEmail","handleChangeEmail","removeEmail","dialCode","handleChangePhone","handleCountries","newSelectedPhone","handleChangeCountry","im","hms","isInteracted","mailingContactGroups","stateMailingContactGroupOnChange","showSelectAll","r","liaisonStatus","allowEdit","serverTimezoneOffset","receiptDate","AutorRegistro","rows","itemsArray","removeAttachment","filePartsB64","attach","LiaisonReportStateContext","LiaisonReportStateProvider","liaisonReportState","setLiaisonReportState","ReportComponent","setTotal","dateRangeLabel","setDateRangeLabel","setNewData","seriesData","AreaNegocio","IdAreaNegocio","QuantidadeAtendimentos","quantidadeAtendimentos","newSeriesData","allData","NomeVeiculo","Responsaveis","DataInicio","DataFim","IdatendimentoStatus","IdPais","IdRegional","sum","rangeDate","exportReport","dataExport","exportLiaisonReport","newBlob","download","_export","print","legendSettings","y","textStyle","color","fontFamily","background","primaryXAxis","valueType","majorTickLines","majorGridLines","labelStyle","textAlignment","labelIntersectAction","primaryYAxis","axisLine","enable","ColumnSeries","Legend","DataLabel","Category","xName","yName","columnWidth","FilterComponent","refVehicle","refResponsible","setVehicle","responsible","setResponsible","setStartDate","setEndDate","setBusinessArea","setStatus","regionalDdl","setRegionalDdl","spinnerDuration","setSpinnerDuration","generateReport","filterObject","getLiaisonReportItems","veh","LiaisonReport","ContactsList","gridRef","textBoxSearch","itemSelected","setItemSelected","elemSpinner","dataFiltered","tbSearch","some","tel","emailTemplate","currentCountry","phoneTemplate","Contacts","uploaderContactsRef","mailingState","importResults","setImportResults","buttonDisabled","setButtonDisabled","loadingEl","connection","signalR","withUrl","configureLogging","Information","withAutomaticReconnect","build","on","importFeedbackReceiver","onclose","gridContactsList","loadContactsItems","mt","tipoMidiaPt","tipoMidiaEn","importadoPt","importado","importadoEn","feedbackItem","IsError","Progress","getImportMailingContactsTemplate","buttonComponent","importMailingContacts","ContactsItem","ddlMediaTypes","ddlCountries","ddlStates","ddlCities","txtJournalist","txtMediaOutlet","txtAddress","txtEditoria","txtOccupation","txtOtherInfo","outrasInformacoes","arrGroups","loadSystemData","getMailingContactItem","getMailingContactPhoto","changePlaceholder","inputChange","deleteMailingContact","itemsFiltered","contactItem","dropdownlist","readOnly","city","nomeTemplate","GeneralContacts","GeneralContactsItem","tipoPublico","nomeEmpresa","GroupsList","setRegionalPt","setRegionalEn","groupSelected","setGroupSelected","loadCountries","loadRegional","paisPt","paisEn","regionalItem","groupId","countryId","nameTemplate","Groups","GroupsItem","txtGroupNameRef","autocompleteRef","formRef","idGroup","initialValueSteps","stepCountriesPt","stepCountriesEn","stepRegionalPt","stepRegionalEn","stepGroupItem","showMembersSelect","setShowMembersSelect","itemsSelected","setItemsSelected","conjunto","membrosGrupo","gruposConjunto","groupItem","setGroupItem","steps","setSteps","addOrUpdateGroupItem","exportGroupContacts","dataManager","getMailingGroupItem","_itemsSelected","autocompleteSelect","deleteMailingGroupItem","exportMailingGroupContacts","chips","enableDelete","autocomplete","preventDefaultAction","predicate","Predicate","actionFailure","GeneralGroups","GeneralGroupsItem","QAList","refQA","qaItems","setQAItems","allQA","setAllQA","filteredQAItems","setFilteredQAItems","statusQA","filteredQA","_filteredQA","dateQA","QA","idQA","setIdQA","exportQA","QAItem","duplicateQA","WebcastList","refWebcastNotice","webcastNoticeItems","setWebcastNoticeItems","allWebcastNotices","setAllWebcastNotices","filteredWebcastNoticeItems","setFilteredWebcastNoticeItems","statusWebcastNotice","filteredWebcastNotices","_filteredWebcastNotices","dateWebcastNotice","WebcastNotices","idWebcastNotice","setIdWebcastNotice","exportWebcastNotice","WebcastNoticesItem","duplicateWebcastNotice","AssignmentList","refAssignmentNotice","setAssignmentNoticeItems","allAssignmentNotices","setAllAssignmentNotices","filteredAssignmentNoticeItems","setFilteredAssignmentNoticeItems","statusAssignmentNotice","filteredAssignmentNotices","_filteredAssignmentNotices","dateAssignmentNotice","AssignmentNotices","idAssignmentNotice","setIdAssignmentNotice","exportAssignmentNotice","AssignmentNoticesItem","duplicateAssignmentNotice","SharedDocumentsComponent","folderManagerTitle","pub","PressSharedDocuments","PublicSharedDocuments","Login","EnterComponent","errorMsg","setErrorMsg","toHome","setToHome","setValidateEmail","validatePassword","setValidatePassword","setProcessing","lastLocation","useLastLocation","contractBegin","Email","Password","fornecedor","permissoes","areaAcesso","permissao","statusText","contractEnd","beforeSubmit","filledInEmail","filledInPassword","begin","ForgotComponent","htmlEmailAttributes","autoCapitalize","validateForgot","setValidateForgot","validatecConfirm","similarEmail","setSimilarEmail","changeSolicitation","triggerForgot","watchForgot","ResetComponent","LoginComponent","stepLogin","Breadcrumbs","crumbs","crumbsFiltered","breadcrumb","ignore","backgroundColor","render","noLink","renderBreadcrumb","PlanningAndResearch","EventsVisits","DigitalMediaSharedDocuments","CommunicationWithEmployees","CommunicationEmployeesList","CESelected","setCESelected","getCommunicationEmployeesGroupItems","CommunicationEmployees","CommunicationEmployeesItem","getCommunicationEmployeesGroupItem","deleteCommunicationEmployeesGroupItem","exportCommunicationEmployeesGroup","Events","GlobalGuidelines","GlobalCalendar","InternalCampaigns","DirectCommunication","InternalResearchResults","SpecialProjects","InternalVehicles","BrandingSharedDocuments","BrandCenter","PublicShareDocuments","Brazil","Canada","China","Global","Indonesia","Japan","Malasya","Mozambique","NewCaledonia","Oman","Paraguay","Singapore","Switzerland","Peru","reactPlugin","ReactPlugin","ai","ApplicationInsights","config","instrumentationKey","extensions","extensionConfig","identifier","history","globalHistory","loadAppInsights","appInsights","AppInsightsContext","AppInsightsContextProvider","DigitalMediaContext","DigitalMediaProvider","currentItem","setCurrentItem","modalIsVisible","setModalIsVisible","categoryList","setCategoryList","statusList","setStatusList","pendingVideos","setPendingVideos","approvedVideos","setApprovedVideos","changeCurrentItem","findCurrentVideo","editModal","changeModalVisible","useDigitalMedia","Error","PressReportStateContext","PressReportStateProvider","pressReportState","setPressReportState","addVideo","updateVideo","getFilters","pending","loadMore","approved","paginationUrl","enviadoPor","categoria","enviadoEm","aprovadoEm","nucleoVideoStatus","nomeArquivoVideo","approveReproveVideo","getVideosFour","filterParams","getVideosEight","removeVideoStorage","param","getApprovalUsers","VideoContent","approval","Videos","openModalApprove","setOpenModalApprove","openModalDisapprove","setOpenModalDisapprove","comentario","setComentario","isLoadingPendingVideos","setIsLoadingPendingVideos","isLoadingApprovedVideos","setIsLoadingApprovedVideos","openedItems","setOpenedItems","dropDownItem","videoProps","nucleoVideoCategoria","onSend","loadMorePending","pendingVideosList","videos","loadMoreApproved","approvedVideosList","onAutoCompleteChange","onSelectChange","onDateChange","deleteModal","Img","now","videoIndex","pendingData","approvedData","currentStatus","payload","aprovado","newApprovedItem","state","skipNumber","skipString","newVideos","lastIndexDate","unshift","sort","b","fluid","data-ripple","ModalVideo","isInteraction","dropdownListCategory","autoCompleteApproverRef","generatedThumbResponse","tempGuid","setTempGuid","uploadedFile","setUploadedFile","videoBlob","setVideoBlob","imgUrlChanged","setImgUrlChanged","editPage","setEditPage","blockIdList","setBlockIdList","uploadChunkSize","setUploadChunkSize","showPlayer","setShowPlayer","isVideoChanging","setIsVideoChanging","videoRef","submitForm","values","setError","properties","formatoArquivoVideo","tamanhoArquivoVideo","duracaoArquivoVideo","newVideoData","videoMiniaturaB64","newPendingVideos","currentVideoIndex","modalVideoPayload","getError","getValues","setValue","removeUrl","chunkSize","isOwnerOrAdmin","useMemo","isApproved","downloadDigitalMediaAttachment","newApprovedVideos","approvedList","chunkComplete","onload","aud","Audio","onloadedmetadata","fileUploading","onPlay","onPause","toDataURL","shouldValidate","autoUpload","beforeRemove","pausing","onLine","chunkUploading","chunkFailure","clearTimeInterval","setInterval","resume","clearSetInterval","pause","clearInterval","fileListRendering","chunkSuccess","resuming","play","marginTop","max","dateTime","DigitalMedia","isDataFetched","setIsDataFetched","approvalUsersList","asyncFunc","getManageInternalAreas","updateManageInternalAreas","addManageInternalAreas","Internal","manageDataArr","setManageDataArr","openEditModal","setOpenEditModal","msgToShow","setMsgToShow","modalData","setModalData","newOrEditArea","setNewOrEditArea","dialogInstance","buildInternalAreal","timer","editTemplate","openEdit","handleNewArea","dataInput","prevstate","newDataArr","updateItem","dataToPersist","err","Mensagem","validationRules","pageSizes","allowPdfExport","actionComplete","Browser","isDevice","innerHeight","filterItemTemplate","active_colum","editType","CommandColumn","PdfExport","ManageInternalAreas","getManageAnnualBudget","updateManageAnnualBudget","addManageAnnualBudget","Annual","setCurrencyCode","typeOfForm","settypeOfForm","errosAPI","setErrosApi","setloading","buildGridItems","toBRL","valor","toLocaleString","currency","clearModal","orcamento","saldo","buildDialogMessage2","createItem","ano","insert","newManageDataArr","ManageAnnualBudget","ContractsContext","ContractProvider","contracts","setContracts","useContract","getContracts","getContractsHistory","contractId","setCulture","ModalComponent","contrato","agencia","inicioVigencia","fimVigencia","updateContract","createContract","oldContracts","contract","ContractContent","gridHistory","historyContracts","setHistoryContracts","setFullHistoryContracts","deleteId","setDeleteId","contractsFiltered","errorMessage","editOptions","allowEditing","allowAdding","allowDeleting","toolbarOptions","getCurrentHistory","contractsHistory","agreementHistory","newContracts","editSettings","toolbar","row","contratoTemplate","dateAndTime","tipoDado","dadoInicial","Intl","NumberFormat","dadoFinal","ManageContracts","getMeasurementItems","Measurement","setItems","templateSum","Sum","measurementItems","measurementItemsFiltered","dataPagamento","honorarios","allowGrouping","footerTemplate","Group","Aggregate","MeasurementReport","getFormContainerAdBudgets","signal","getAdvertisingBudgetItemByID","getAdvertisingBudgetDataTypes","getAdvertisingBudgetDataStatus","getActiveContractInPeriodItems","today","startDayToEndDay","getAllContractItems","updateAdvertisingBudget","addAdvertisingBudget","idAnexo","AdvertisingGrid","setIdAdvertising","setItemsGridExport","itemsFiltred","setItemsFiltred","discountFromAnnualBudgetTemplate","abaterOrcamentoAnual","footerSum","setarItemsFiltrados","pageCount","allTotals","numberToCurrency","n","pagamento","distinctYearsBudget","Map","orcamentoAnual","pagamentoTotal","orcamentoCurrency","pagamentoCurrency","totalCurrency","calculateSaldoTotal","AdvertisingBudget","idAdvertising","itemsGridExport","useHistory","exportToExcel","excelExportProperties","custoProducao","custoMidia","custoHonorarios","custoTotal","pagamentoProducao","pagamentoMidia","pagamentoHonorarios","areaInterna","responsavel","centroCusto","ordemInterna","dataInicial","dataFinal","pagamentos","custos","historicoTransformed","AdvertisingBudgetContext","AdvertisingBudgetProvider","globalAdBudget","setGlobalAdBudget","DataContent","setDataIsValidToInsert","periodDate","daysDiff","setDaysDiff","diffTime","isAdmin","period","prevState","anos","CostContent","IDAdBudget","gridData","setGridData","addTipoMidiaNomeToAllItens","tipoItem","tiposMidia","tipoMidia","observacao","isLogicalDelete","tipoMidiaSelectedOption","qstringIId","statusOperacao","isNaN","custosArr","createCustItem","sumCostGrid","calcularCustoTotal","FileContent","anexo","tipo","loading2","setLoading2","tempGuidFile","setTempGuidFile","addTipoStatusNomeToAllItens","opts","statusItem","tipos","nomeArquivo","downloadAnexo","gb","idBudget","initFileApprove","anexosArr","isIdTemp","anexoItem","nomeTipoMidia","setNewFileStatus","onApproveClick","onReproveClick","newGridData","createAttachmentItem","isPrimaryKey","statusTemplate","aprovadoReprovadoEm","criadoEm","ControlContent","addContratoNomeToAllItens","contratos","contratosAll","valorProducao","valorMidia","contratoSelected","pagamentosArr","eleSelected","popup","elements","ele","eleId","valueAsDate","offsetX","offsetY","sortSettings","direction","calcularPagamentoTotal","totalPag","calcularDiferenca","HistoricContent","gridHistoricInstance","FormAdvertisingBudget","setOptions","optionsComplete","setOptionsComplete","dataIsValidToInsert","resetglobalAdBudget","abortController","AbortController","getAllDropDownOptions","abort","initItem","newOptions","historicDataFormatByType","createAdBudgetItem","updateItemAdBudget","jsonItem","arrOptions","convertData","value2","textValue","campoEn","campoPt","dadoFinalNEW","dadoInicialNEW","usuarioAlteracao","convertAllArrayItemsDateStringToDate","getDropDownOptions","fn","optionKey","getResult","allResponse","objKey","getItemDataToInsert","confirm","FormContainerAdBudget","setIDAdBudget","WhoIsWhoContent","refWhoisWho","setRefWhoisWho","superiorDireto","superiorTemplate","WhoIsWhoItem","exportExcelWhoisWho","pdfExport","exportPdfWhoisWho","MessageHouseContext","MessageHouseProvider","messageHouseItems","setMessageHouseItems","areasDICI","setAreasDICI","useMessageHouse","getMessagesItems","getMessageAttachment","idOrGuid","deleteMessage","MessageHouseModal","updateUpload","setUpdateUpload","updateMessageHouseItem","addMessageHouseItem","oldMessagesHouseItems","messageItem","fileData","areaDICI","attachment","newModalData","MessageHouseContent","currentEditingId","setCurrentEditingId","messagesItems","MessageHouseItem","SerialNoAdaptor","original","count","ErrorLogs","ddlElem","ddlObj","tooltipInstance","hostURL","batchUrl","dataAfericao","ddlParams","create","destroy","read","write","DropDownList","rowData","floatLabelType","appendTo","copyToClipboard","copyText","textArea","textContent","setSelectionRange","allowTextWrap","showColumnChooser","beforeBatchSave","batchChanges","changedRecords","resolvido","mensagemEnviada","beforeDataBound","idOperacao","opensOn","isSticky","ColumnChooser","Historico","press","filteredHistoryItems","setFilteredHistoryItems","historyItems","setHistoryItems","allHistory","setAllHistory","dataValue","setDataValue","pressValue","setPressValue","businessAreaValue","setBusinessAreaValue","countryValue","setCountryValue","regionalValue","setRegionalValue","fillBusinessAreaValue","setFillBusinessAreaValue","fillCountryValue","setFillCountryValue","fillRegionalValue","setFillRegionalValue","setFillAutorValue","hideLoading","downloadPDF","cod","showLoading","blobUrl","formatType","resultRequest","getReleaseItems","getStatementsItems","getPositionPaperItems","getQAItems","getWebcastNoticeItems","getAssignmentNoticeItems","oldHistoryItems","pressData","_filteredHistory","resultValidationDataFim","resultValidationDataInicio","resultValidationAutor","resultValidationRegional","resultValidationCountry","resultValidationBusinessArea","resultValidationPress","resultValidationTitle","handleChangeDate","filterChoiceCount","pressItem","Signature","signatureItems","setSignatureItems","loadingSignature","setLoadingSignature","idSignature","setIdSignature","signatureFilter","setSignatureFilter","regionalData","signatures","editSignature","lowerCaseAndIncludes","paramIncludes","signatureRegional","ModalSignature","setSocialMediaSelected","socialMediaSelected","beforeUpload","newSelected","SignatureItem","currentIndex","setCurrentIndex","setChangeInfo","exists","socialMedias","setSocialMedias","signatureForm","setSignatureForm","social","deleteSignature","socialMedia","socialMediaChange","inputUserChange","newSignatureForm","collaborator","selectSocialMedia","socialMediaSelect","removeSignature","socialSelected","gap","justifyContent","flex","boxSizing","newArr","moveUp","moveDown","selectExistent","selectNew","margin","mediaSelected","indexMap","deleteSocialMedia","isLangPT","pressReport","quantity","isPT","Bloqueado","exportPressReport","1","2","3","filteredPressItems","setFilteredPressItems","ReleaseReport","StatementsReport","PositionReport","tagManagerArgs","gtmId","TagManager","initialize","loadCldr","require","renderRouter","Component","rest","App","dataLayer","exact","isLocalhost","Boolean","hostname","registerValidSW","swUrl","serviceWorker","registration","onupdatefound","installingWorker","installing","onstatechange","controller","cache","initLng","resources","en","EN","PT","use","initReactI18next","init","lng","keySeparator","interpolation","escapeValue","baseUrl","rootElement","ReactDOM","basename","origin","get","ready","checkValidServiceWorker","registerServiceWorker"],"mappings":"irqDAAIA,EAAOC,E,gFAEPC,EAAY,CAAC,SAAU,SAE3B,SAASC,IAA2Q,OAA9PA,EAAWC,OAAOC,QAAU,SAAUC,GAAU,IAAK,IAAIC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAAE,IAAIG,EAASF,UAAUD,GAAI,IAAK,IAAII,KAAOD,EAAcN,OAAOQ,UAAUC,eAAeC,KAAKJ,EAAQC,KAAQL,EAAOK,GAAOD,EAAOC,IAAY,OAAOL,IAA2BS,MAAMC,KAAMR,WAEhT,SAASS,EAAyBP,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAAkEC,EAAKJ,EAAnED,EAEzF,SAAuCI,EAAQQ,GAAY,GAAc,MAAVR,EAAgB,MAAO,GAAI,IAA2DC,EAAKJ,EAA5DD,EAAS,GAAQa,EAAaf,OAAOgB,KAAKV,GAAqB,IAAKH,EAAI,EAAGA,EAAIY,EAAWV,OAAQF,IAAOI,EAAMQ,EAAWZ,GAAQW,EAASG,QAAQV,IAAQ,IAAaL,EAAOK,GAAOD,EAAOC,IAAQ,OAAOL,EAFxMgB,CAA8BZ,EAAQQ,GAAuB,GAAId,OAAOmB,sBAAuB,CAAE,IAAIC,EAAmBpB,OAAOmB,sBAAsBb,GAAS,IAAKH,EAAI,EAAGA,EAAIiB,EAAiBf,OAAQF,IAAOI,EAAMa,EAAiBjB,GAAQW,EAASG,QAAQV,IAAQ,GAAkBP,OAAOQ,UAAUa,qBAAqBX,KAAKJ,EAAQC,KAAgBL,EAAOK,GAAOD,EAAOC,IAAU,OAAOL,EAMne,IAAI,EAAc,SAAqBoB,GACrC,IAAIC,EAASD,EAAKC,OACdC,EAAQF,EAAKE,MACbC,EAAQZ,EAAyBS,EAAMxB,GAE3C,OAAoB,IAAM4B,cAAc,MAAO3B,EAAS,CACtD4B,MAAO,OACPC,OAAQ,OACRC,QAAS,oBACTC,IAAKP,GACJE,GAAQD,EAAqB,IAAME,cAAc,QAAS,KAAMF,GAAS,KAAM5B,IAAUA,EAAqB,IAAM8B,cAAc,OAAQ,KAAmB,IAAMA,cAAc,QAAS,KAAM,6EAA2F,IAAMA,cAAc,WAAY,CAC5TK,GAAI,KACU,IAAML,cAAc,OAAQ,CAC1CC,MAAO,OACPC,OAAQ,OACRI,UAAW,oBACNnC,IAAOA,EAAkB,IAAM6B,cAAc,IAAK,CACvDM,UAAW,8BACG,IAAMN,cAAc,IAAK,CACvCO,UAAW,IACXD,UAAW,4BACG,IAAMN,cAAc,OAAQ,CAC1CO,UAAW,IACXC,EAAG,8KACHF,UAAW,kCACK,IAAMN,cAAc,IAAK,CACzCO,UAAW,IACXD,UAAW,4BACG,IAAMN,cAAc,OAAQ,CAC1CO,UAAW,IACXC,EAAG,+IACHF,UAAW,gCACK,IAAMN,cAAc,IAAK,CACzCO,UAAW,IACXD,UAAW,4BACG,IAAMN,cAAc,OAAQ,CAC1CO,UAAW,IACXC,EAAG,8IACHF,UAAW,kCACK,IAAMN,cAAc,IAAK,CACzCO,UAAW,IACXD,UAAW,4BACG,IAAMN,cAAc,OAAQ,CAC1CO,UAAW,IACXC,EAAG,qDACHF,UAAW,kCACK,IAAMN,cAAc,IAAK,CACzCO,UAAW,IACXD,UAAW,4BACG,IAAMN,cAAc,OAAQ,CAC1CO,UAAW,IACXC,EAAG,0HACHF,UAAW,kCACK,IAAMN,cAAc,IAAK,CACzCO,UAAW,IACXD,UAAW,4BACG,IAAMN,cAAc,OAAQ,CAC1CO,UAAW,IACXC,EAAG,gIACHF,UAAW,kCACK,IAAMN,cAAc,IAAK,CACzCO,UAAW,IACXD,UAAW,4BACG,IAAMN,cAAc,OAAQ,CAC1CO,UAAW,IACXC,EAAG,qQACHF,UAAW,iCACK,IAAMN,cAAc,IAAK,CACzCO,UAAW,IACXD,UAAW,4BACG,IAAMN,cAAc,OAAQ,CAC1CO,UAAW,IACXC,EAAG,sYACHF,UAAW,iCACK,IAAMN,cAAc,IAAK,CACzCO,UAAW,IACXD,UAAW,4BACG,IAAMN,cAAc,OAAQ,CAC1CO,UAAW,IACXC,EAAG,yOACHF,UAAW,iCACK,IAAMN,cAAc,IAAK,CACzCO,UAAW,IACXD,UAAW,4BACG,IAAMN,cAAc,OAAQ,CAC1CO,UAAW,IACXC,EAAG,sYACHF,UAAW,iCACK,IAAMN,cAAc,IAAK,CACzCO,UAAW,IACXD,UAAW,4BACG,IAAMN,cAAc,OAAQ,CAC1CO,UAAW,IACXC,EAAG,+RACHF,UAAW,iCACK,IAAMN,cAAc,IAAK,CACzCO,UAAW,IACXD,UAAW,4BACG,IAAMN,cAAc,OAAQ,CAC1CO,UAAW,IACXC,EAAG,2dACHF,UAAW,iCACK,IAAMN,cAAc,IAAK,CACzCO,UAAW,IACXD,UAAW,4BACG,IAAMN,cAAc,OAAQ,CAC1CO,UAAW,IACXC,EAAG,udACHF,UAAW,iCACK,IAAMN,cAAc,IAAK,CACzCO,UAAW,IACXD,UAAW,4BACG,IAAMN,cAAc,OAAQ,CAC1CO,UAAW,IACXC,EAAG,8RACHF,UAAW,iCACK,IAAMN,cAAc,IAAK,CACzCO,UAAW,IACXD,UAAW,4BACG,IAAMN,cAAc,OAAQ,CAC1CO,UAAW,IACXC,EAAG,yTACHF,UAAW,iCACK,IAAMN,cAAc,IAAK,CACzCO,UAAW,IACXD,UAAW,4BACG,IAAMN,cAAc,OAAQ,CAC1CO,UAAW,IACXC,EAAG,0UACHF,UAAW,iCACK,IAAMN,cAAc,IAAK,CACzCO,UAAW,IACXD,UAAW,4BACG,IAAMN,cAAc,OAAQ,CAC1CO,UAAW,IACXC,EAAG,wNACHF,UAAW,+BACK,IAAMN,cAAc,IAAK,CACzCO,UAAW,IACXD,UAAW,4BACG,IAAMN,cAAc,OAAQ,CAC1CO,UAAW,IACXC,EAAG,oQACHF,UAAW,gCACK,IAAMN,cAAc,IAAK,CACzCO,UAAW,IACXD,UAAW,4BACG,IAAMN,cAAc,OAAQ,CAC1CO,UAAW,IACXC,EAAG,qNACHF,UAAW,+BACK,IAAMN,cAAc,IAAK,CACzCO,UAAW,IACXD,UAAW,4BACG,IAAMN,cAAc,OAAQ,CAC1CO,UAAW,IACXC,EAAG,udACHF,UAAW,iCACK,IAAMN,cAAc,IAAK,CACzCO,UAAW,IACXD,UAAW,4BACG,IAAMN,cAAc,OAAQ,CAC1CO,UAAW,IACXC,EAAG,oTACHF,UAAW,iCACK,IAAMN,cAAc,IAAK,CACzCO,UAAW,IACXD,UAAW,4BACG,IAAMN,cAAc,OAAQ,CAC1CO,UAAW,IACXC,EAAG,yNACHF,UAAW,kCACK,IAAMN,cAAc,IAAK,CACzCO,UAAW,IACXD,UAAW,4BACG,IAAMN,cAAc,OAAQ,CAC1CO,UAAW,IACXC,EAAG,0KACHF,UAAW,iCACK,IAAMN,cAAc,IAAK,CACzCO,UAAW,IACXD,UAAW,4BACG,IAAMN,cAAc,OAAQ,CAC1CO,UAAW,IACXC,EAAG,uNACHF,UAAW,kCACK,IAAMN,cAAc,IAAK,CACzCO,UAAW,IACXD,UAAW,4BACG,IAAMN,cAAc,OAAQ,CAC1CO,UAAW,IACXC,EAAG,yXACHF,UAAW,kCACK,IAAMN,cAAc,IAAK,CACzCO,UAAW,IACXD,UAAW,4BACG,IAAMN,cAAc,OAAQ,CAC1CO,UAAW,IACXC,EAAG,mLACHF,UAAW,kCACK,IAAMN,cAAc,IAAK,CACzCO,UAAW,IACXD,UAAW,4BACG,IAAMN,cAAc,OAAQ,CAC1CO,UAAW,IACXC,EAAG,mYACHF,UAAW,kCACK,IAAMN,cAAc,IAAK,CACzCO,UAAW,IACXD,UAAW,4BACG,IAAMN,cAAc,OAAQ,CAC1CO,UAAW,IACXC,EAAG,4EACHF,UAAW,kCACK,IAAMN,cAAc,IAAK,CACzCO,UAAW,IACXD,UAAW,4BACG,IAAMN,cAAc,OAAQ,CAC1CO,UAAW,IACXC,EAAG,wNACHF,UAAW,kCACK,IAAMN,cAAc,IAAK,CACzCO,UAAW,IACXD,UAAW,4BACG,IAAMN,cAAc,OAAQ,CAC1CO,UAAW,IACXC,EAAG,2OACHF,UAAW,kCACK,IAAMN,cAAc,IAAK,CACzCO,UAAW,IACXD,UAAW,4BACG,IAAMN,cAAc,OAAQ,CAC1CO,UAAW,IACXC,EAAG,mOACHF,UAAW,kCACK,IAAMN,cAAc,IAAK,CACzCO,UAAW,IACXD,UAAW,4BACG,IAAMN,cAAc,OAAQ,CAC1CO,UAAW,IACXC,EAAG,qXACHF,UAAW,kCACK,IAAMN,cAAc,IAAK,CACzCO,UAAW,IACXD,UAAW,4BACG,IAAMN,cAAc,OAAQ,CAC1CO,UAAW,IACXC,EAAG,6DACHF,UAAW,sCAIXG,EAA0B,IAAMC,YAAW,SAAUX,EAAOK,GAC9D,OAAoB,IAAMJ,cAAc,EAAa3B,EAAS,CAC5DwB,OAAQO,GACPL,O,GAEU,I,0CCvPTY,EAAgBC,aAAaC,QAAQ,oBAAsBC,KAAKC,MAAMH,aAAaC,QAAQ,qBAnB5E,CACjBG,YAAa,KACbC,SAAU,KACVC,UAAW,KACXC,UAAW,KACXC,WAAW,EACXC,aAAc,KACdC,SAAU,CACNjB,GAAI,KACJkB,OAAQ,KACRC,OAAQ,MAEZC,YAAa,CAAC,CACVC,WAAY,KACZC,WAAY,KACZC,aAAc,QAKhBC,EAAqBC,gBAAoBnB,GAEzCoB,EAAsB,SAAC,GAAkB,IAAhBC,EAAe,EAAfA,SAC3B,EAAsCF,WAAenB,GAArD,mBAAOsB,EAAP,KAAoBC,EAApB,KACA,OACI,gBAACL,EAAmBM,SAApB,CAA6BC,MAAO,CAACH,EAAYC,IAC5CF,I,SCpBAK,G,OAAoB,WAC7B,IAAIC,EACJ,EAAsCR,aAAiBD,GAAvD,mBAAoBK,GAApB,WAEMK,EAAQ,CAAC,CACXlC,GAAI,KACJmC,KAAM,oBACNC,QAAS,qBACTC,SAA4B,OAAlBC,IAAKC,UAEnB,CACIvC,GAAI,KACJmC,KAAM,eACNC,QAAS,qBACTC,SAA4B,OAAlBC,IAAKC,WAmBnB,OALAd,aAAgB,WACZQ,EAAeC,MAAQA,EAAMM,QAAO,SAAAC,GAAI,OAAKA,EAAKJ,cAEnD,CAACC,IAAKC,WAGL,gCACI,sBAAIvC,GAAG,mBAAmB0C,KAAK,QAC1BR,EAAMM,QAAO,SAAAC,GAAI,OAAKA,EAAKJ,YAAUM,KAAI,SAACF,EAAMG,GAAP,OACtC,sBAAI5C,GAAIyC,EAAKzC,GAAIE,UAAU,SAAS1B,IAAKoE,GACrC,wBAAM1C,UAAS,qBAAgBuC,EAAKL,QAArB,kBACdK,EAAKN,UAIlB,gBAAC,IAAD,CACIpC,IAAK,SAAA8C,GAAc,OAAIZ,EAAiBY,GACxC1E,OAAO,oBACP+B,UAAU,kBACV4C,OAAQ,SAACC,IA9BE,SAACA,GACpBlB,GAAe,SAAAD,GAAW,kCACnBA,GADmB,IAEtBZ,aAAc+B,EAAEN,KAAKzC,QAGzBgD,OAAOC,SAASC,SAChBZ,IAAKa,eAAeJ,EAAEN,KAAKzC,IAuBFoD,CAAiBL,KAE9B,wBAAM7C,UAAS,qBAAgBgC,EAAMM,QAAO,SAAAC,GAAI,OAAIA,EAAKJ,YAAU,GAAGD,QAAvD,kBACdF,EAAMM,QAAO,SAAAC,GAAI,OAAIA,EAAKJ,YAAU,GAAGF,S,SChDtDkB,G,OAAe,CACjBC,KATUN,OAAOC,SAASM,OAClBrE,QAAQ,WAAa,EAClB,EAEA,IAOTsE,EAAoB/B,gBAAoB4B,GAExCI,EAAqB,SAAC,GAAkB,IAAhB9B,EAAe,EAAfA,SAC1B,EAAoCF,WAAe4B,GAAnD,mBAAOK,EAAP,KAAmBC,EAAnB,KACA,EAA8ClC,WAAe,IAA7D,mBAAOmC,EAAP,KAAwBC,EAAxB,KAEA,OACI,gBAACL,EAAkB1B,SAAnB,CAA4BC,MAAO,CAAC2B,EAAYC,EAAeC,EAAiBC,IAC3ElC,I,kBCtBAmC,EAAe,CACxBC,OAAQ,GACRC,SAAU,SAAUC,EAAOC,GAClBrF,KAAKkF,OAAOE,IACjBpF,KAAKkF,OAAOE,GAAOE,SAAQ,SAAAC,GAAQ,OAAIA,EAASF,OAEpDG,UAAW,SAAUJ,EAAOG,GACnBvF,KAAKkF,OAAOE,KAAQpF,KAAKkF,OAAOE,GAAS,IAC9CpF,KAAKkF,OAAOE,GAAOK,KAAKF,K,wBCDzB,SAAeG,EAAtB,gD,4CAAO,WAA0BC,EAAaC,EAAQC,EAAaC,EAAMC,EAAOC,EAAYC,EAAMC,GAA3F,mBAAAC,EAAA,6DAECC,EAAY,IAAIC,QACfL,GACDI,EAAUE,OAAO,eAAgB,oBACjCP,GACAK,EAAUE,OAAO,gBAAiB,UAAYP,GAE9CQ,EAAiB,CACjBX,OAAQA,EACRY,QAASJ,EACTK,SAAU,UAEVX,IACAS,EAAeT,KAAOA,GAEtBG,IACAM,EAAeG,aAAe,eAjB/B,SAkBoBC,MAAM,GAAD,OAAKT,EAA6B,GAtBlDU,4BAsBgB,OAAuCjB,GAAvC,OAAqDE,GAAeU,GAlB7F,cAkBGM,EAlBH,QAmBWC,IAA0B,MAApBD,EAASE,QACzB9B,EAAaE,SAAS,UApBvB,kBAqBI0B,GArBJ,6C,sBAuBA,IAAMG,EAAoB,SAACC,GAC9B,IAAIC,EAAQC,OAAO,OAASF,EAAO,YAAYG,KAAKjD,OAAOC,SAASM,QACpE,OAAOwC,GAASG,mBAAmBH,EAAM,GAAGI,QAAQ,MAAO,OA6FxD,SAASC,EAAYC,GAAsB,IAAfC,EAAc,uDAAH,EAC1C,GAAc,IAAVD,EAAa,MAAO,UAExB,IAAME,EAAI,KACJC,EAAKF,EAAW,EAAI,EAAIA,EACxBG,EAAQ,CAAC,QAAS,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAE5DrI,EAAIsI,KAAKC,MAAMD,KAAKE,IAAIP,GAASK,KAAKE,IAAIL,IAEhD,OAAOM,YAAYR,EAAQK,KAAKI,IAAIP,EAAGnI,IAAI2I,QAAQP,IAAO,IAAMC,EAAMrI,GAGnE,SAAS4I,IACZ,OAAQ,CAAC,MAAQ,KAAO,KAAO,KAAO,MAAMb,QAAQ,UAAU,SAAAc,GAAC,OAC1DA,EAAIC,OAAOC,gBAAgB,IAAIC,WAAW,IAAI,GAAK,IAAMH,EAAI,GAAGI,SAAS,OAkB3E,SAASC,EAAYC,GACxB,MAAM,GAAN,OAAU,IAAIC,KAAKD,GAAME,qBAAzB,YAAiD,IAAID,KAAKD,GAAMG,sBAG7D,SAASC,EAAeC,EAAQC,EAAMjG,GAEzC,GAAIA,EAAYb,UACZ,OAAO,EAGX,IAMI+G,EAJJ,GAFoBlG,EAAYR,YAAY2G,MAAK,SAAAzG,GAAU,OAAIA,EAAWC,eAAgBqG,GAAoC,IAA1BtG,EAAW0G,eAG3G,OAAO,EAKX,OAAQH,GACJ,IAAK,SACDC,EAAmB,EACnB,MAEJ,IAAK,OACDA,EAAmB,EACnB,MAEJ,IAAK,SACDA,EAAmB,EACnB,MAEJ,IAAK,WACDA,EAAmB,EAY3B,SANID,EACgBjG,EAAYR,YAAY2G,MAAK,SAAAzG,GAAU,OAAIA,EAAWC,eAAgBqG,GAAUtG,EAAW0G,cAAeF,KAE1GlG,EAAYR,YAAY2G,MAAK,SAAAzG,GAAU,OAAIA,EAAWC,eAAgBqG,MCpMvF,SAAeK,EAAtB,kC,4CAAO,WAAoBrD,GAApB,6BAAAI,EAAA,6DAA2BkD,EAA3B,+BAAmC,GAChCC,EAAUD,EAAQ,qBAAuB,0BAD5C,kBAEI3D,EAAW,oBAAqB,MAAO4D,EAAS,KAAMvD,GAAO,IAFjE,4C,sBCaA,IAAMwD,EAAY,WAErB,MAAoC3G,IAAM4G,WAAW7E,GAArD,mBAAmBG,GAAnB,WACA,EAAsClC,IAAM4G,WAAW7G,GAAvD,mBAAOI,EAAP,KAAoBC,EAApB,KACA,EAAoCJ,IAAM6G,SAAS,IAAnD,mBAAOC,EAAP,KAAmBC,EAAnB,KACA,EAAkC/G,IAAM6G,SAAS,MAAjD,mBAAOG,EAAP,KAAkBC,EAAlB,KACA,EAA8BjH,IAAM6G,SAAS,IAA7C,mBAEQK,GAFR,UAEcC,cAAND,GAEFE,EAAS,WACXhH,GAAe,SAAAD,GAAW,kCAAUA,GAAV,IAAuBjB,YAAa,UAC9DJ,aAAauI,WAAW,oBACxBnF,GAAc,SAAAD,GAAU,kCAAUA,GAAV,IAAsBJ,KAAM,QAGxD7B,IAAMsH,WAAU,WACZjF,EAAaO,UAAU,UAAU,kBAAMwE,OACvC/E,EAAaO,UAAU,iBAAiB,kBAAM2E,OAC9Cf,EAAKrG,EAAYjB,aAAa,GACzBsI,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAGvBD,MAAK,SAAAE,GACFX,EAAcW,MAEjBC,OAAM,SAAAC,GACHC,QAAQD,MAAMA,QAEvB,IAEH5H,IAAMsH,WAAU,WACRnH,GACAoH,MAEL,CAACpH,IAEJ,IAAMoH,EAAkB,WACpB,IAAIO,GAAU,IAAI/B,MAAOgC,cACzBd,EAAa,GAAD,OAAI9G,EAAYf,UAAhB,0BAA2C0I,IACvDhJ,aAAakJ,QAAQ,mBAAoBhJ,KAAKiJ,UAAU9H,KAItDhB,EAAWgB,EAAYhB,SAE7B,OACI,6BACI,wBAAIZ,GAAG,UACH,kBAAC2J,EAAA,EAAD,KACI,kBAACC,EAAA,EAAD,CAASC,IAAKC,OAAMC,GAAE,mBAAcnI,EAAYoI,SAAWrB,EAAE,uBAEhEJ,GAAcA,EAAWjK,OAAS,GAC/B,kBAACqL,EAAA,EAAD,KACI,kBAACC,EAAA,EAAD,KAAS,0CACT,wBAAI1J,UAAU,SACTqI,EAAW5F,KAAI,SAACF,EAAMG,GAAP,OACZ,kBAAC,IAAMqH,SAAP,CAAgBzL,IAAKoE,GACjB,kBAAC+G,EAAA,EAAD,KACI,kBAACC,EAAA,EAAD,CAASC,IAAKC,OAAMC,GAAItH,EAAKyH,KACP,OAAjB5H,IAAKC,SAAmBE,EAAK0H,OAAS1H,EAAK2H,aAK5D,kBAACT,EAAA,EAAD,KACI,kBAACC,EAAA,EAAD,CAASC,IAAKC,OAAMC,GAAG,oBACD,OAAjBzH,IAAKC,SAAmB,gBAAkB,iBAO/D,kBAACoH,EAAA,EAAD,CAASzJ,UAAU,UACf,kBAAC0J,EAAA,EAAD,CAASC,IAAKC,OAAMO,QAASxB,EAAQkB,GAAG,UAAUpB,EAAE,uBAG5D,kBAAC,IAAD,CAAyBxK,OAAO,UAAU+B,UAAU,YAAYoK,SAAS,gBACrE,yBAAKpK,UAAU,QACX,8BAAOU,GACP,yBAAKV,UAAU,OACX,yBAAKqK,IAAK9B,MAGlB,yBAAKvI,UAAU,eACX,yBAAKA,UAAU,iB,SC/FtBsK,EAAW,WAEpB,MAAsC/I,IAAM4G,WAAW7G,GAAvD,mBAAOI,EAAP,KACA,GADA,KACkCH,IAAM6G,SAAS,KAAjD,mBAAOmC,EAAP,KAAkBC,EAAlB,KACA,EAAwCjJ,IAAM6G,SAAS,IAAvD,mBAAOqC,EAAP,KAAqBC,EAArB,KA4CA,OAxCAnJ,IAAMsH,WAAU,WACZd,EAAKrG,EAAYjB,aAAa,GACzBsI,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAGvBD,MAAK,SAAAE,GACFyB,EAAgBzB,MAEnBC,OAAM,SAAAC,GACHC,QAAQD,MAAMA,QAEvB,IAEH5H,IAAMsH,WAAU,WACZ2B,EACIC,GAAgBA,EAAahI,KAAI,SAACkI,EAAWC,GAAZ,MAC7B,CACI1I,QAAQ,aAAD,OAAeyI,EAAUE,aAChC7I,MACI2I,EAAUG,OAAOrI,KAAI,SAACsI,EAAYC,GAAb,MACjB,CACIhJ,MACI+I,EAAWD,OAAOrI,KAAI,SAACwI,EAAWC,GAAZ,MAClB,CACIjJ,KAAuB,OAAjBG,IAAKC,SAAmB4I,EAAUhB,OAASgB,EAAUf,OAC3DF,IAAKiB,EAAUjB,QAG3B/H,KAAuB,OAAjBG,IAAKC,SAAmB0I,EAAWd,OAASc,EAAWb,OAC7DF,IAAKe,EAAWf,QAG5B/H,KAAuB,OAAjBG,IAAKC,SAAmBsI,EAAUV,OAASU,EAAUT,cAIxE,CAAC9H,IAAKC,SAAUoI,IAGf,kBAAC,IAAD,CACI3K,GAAG,WACHkC,MAAOuI,EACPY,iBAAiB,EACjBC,kBA/CQ,CAAEC,SAAU,KAgDpBC,OAAQlJ,IAAKC,Y,SCrDzBkJ,aAAa,GAIN,IAAMC,EAAiB,SAAChM,GAE3B,IAAQiM,EAAUjM,EAAViM,MAER,EAAsClK,aAAiBD,GAAvD,mBAAOI,EAAP,KACA,GADA,KACkCH,WAAe,KAAjD,mBAAOgJ,EAAP,KAAkBC,EAAlB,KAEc9B,cAAND,EA4CR,OAvCAlH,aAAgB,WACZwG,EAAKrG,EAAYjB,aAAa,GACzBsI,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAGvBD,MAAK,SAAAE,GACFuB,EACIvB,GAAUA,EAAOxG,KAAI,SAACkI,EAAWC,GAAZ,MACjB,CACI1I,QAAQ,aAAD,OAAeyI,EAAUE,aAChCa,MACIf,EAAUG,OAAOrI,KAAI,SAACsI,EAAYC,GAAb,MACjB,CACIU,MACIX,EAAWD,OAAOrI,KAAI,SAACwI,EAAWC,GAAZ,MAClB,CACIjJ,KAAuB,OAAjBG,IAAKC,SAAmB4I,EAAUhB,OAASgB,EAAUf,OAC3DF,IAAKiB,EAAUjB,IACf2B,SAA2B,OAAjBvJ,IAAKC,SAAmB0I,EAAWd,OAASc,EAAWb,WAG7EjI,KAAuB,OAAjBG,IAAKC,SAAmB0I,EAAWd,OAASc,EAAWb,OAC7DF,IAAKe,EAAWf,IAChB2B,SAA2B,OAAjBvJ,IAAKC,SAAmBsI,EAAUV,OAASU,EAAUT,WAG3EjI,KAAuB,OAAjBG,IAAKC,SAAmBsI,EAAUV,OAASU,EAAUT,eAK1EhB,OAAM,SAAAC,GACHC,QAAQD,MAAMA,QAEvB,CAAC/G,IAAKC,WAIL,gCACI,gBAAC,IAAD,CACIvC,GAAG,aACH8L,OAAQ,CAAE1J,QAAS,UAAW2J,QAAS,QACvCC,WAAYvB,EACZwB,YAAY,EACZC,UAAU,EACVC,mBAAmB,EACnBX,OAAQlJ,IAAKC,WAEjB,wBACIvC,GAAG,QACHqK,QAASsB,EACTzL,UAAU,cClEbkM,GAAU,WACnB,MAAsC3K,IAAM4G,WAAW7G,GAAvD,mBAAOI,EAAP,KACA,GADA,KACuDH,IAAM6G,UAAS,IAAtE,mBAAO+D,EAAP,KAAkBC,EAAlB,KAEQ3D,GAFR,UAEcC,cAAND,GAEF4D,EAAe,WACjBD,GAAcD,IASlB,OACI,4BAAQnM,UAAU,SACd,kBAACsM,EAAA,EAAD,CAAQtM,UAAU,qEAAqEuM,OAAK,GACxF,kBAACC,EAAA,EAAD,KACI,yBAAKxM,UAAU,iDACV0B,EAAYjB,aACT,kBAACgM,EAAA,EAAD,CAAezM,UAAU,kBAAkBmK,QAASkC,IAExD,kBAAC,EAAD,CAAWvM,GAAG,SACb4B,EAAYjB,YACT,oCACA,kBAACiM,EAAA,EAAD,CAAa5M,GAAG,QAAQ6J,IAAKC,OAAMC,GAAG,KAAKpB,EAAE,kBAC7C,kBAACiE,EAAA,EAAD,CAAa5M,GAAG,WAAW6J,IAAKC,OAAMC,GAAG,KAAKpB,EAAE,sBAGhD,oCACA,kBAACiE,EAAA,EAAD,CAAa5M,GAAG,SAAS2I,EAAE,kBAC3B,kBAACiE,EAAA,EAAD,CAAa5M,GAAG,YAAY2I,EAAE,uBAItC,yBAAKzI,UAAU,sCACX,kBAAC,EAAD,MACC0B,EAAYjB,aACb,kBAAC,EAAD,SAKXiB,EAAYjB,aACb,kBAAC6L,EAAA,EAAD,CAAQtM,UAAS,+EAA0EmM,GAAa,aAAeI,OAAK,GACxH,kBAACC,EAAA,EAAD,KACKL,EACG,kBAAC,EAAD,CAAgBV,MAAOY,IAEvB,kBAAC,EAAD,UCzDXM,GAAS,SAAC,GAAkB,IAAhBlL,EAAe,EAAfA,SACrB,EAAsCF,IAAM4G,WAAW7G,GAAvD,6BAEA,OACI,oCACM,kBAAC,GAAD,MACDG,I,8BCVN,SAAemL,GAAtB,mC,8CAAO,WAAgClI,GAAhC,SAAAI,EAAA,+EACIT,EAAW,+BAAgC,MAAO,GAAI,KAAMK,GAAO,IADvE,4C,sBAIA,SAAemI,GAAtB,mC,8CAAO,WAA4BnI,GAA5B,SAAAI,EAAA,+EACIT,EAAW,2BAA4B,MAAO,GAAI,KAAMK,GAAO,IADnE,4C,sBAIA,SAAeoI,GAAtB,mC,8CAAO,WAA8BpI,GAA9B,SAAAI,EAAA,+EACIT,EAAW,6BAA8B,MAAO,GAAI,KAAMK,GAAO,IADrE,4C,sBAIA,SAAeqI,GAAtB,mC,8CAAO,WAA4BrI,GAA5B,SAAAI,EAAA,+EACIT,EAAW,2BAA4B,MAAO,GAAI,KAAMK,GAAO,IADnE,4C,sBAIA,SAAesI,GAAtB,mC,8CAAO,WAA8BtI,GAA9B,SAAAI,EAAA,+EACIT,EAAW,6BAA8B,MAAO,GAAI,KAAMK,GAAO,IADrE,4C,sBAIA,SAAeuI,GAAtB,qC,8CAAO,WAA+BvI,EAAOwI,GAAtC,eAAApI,EAAA,6DACGmD,EADH,oBACmC,OAATiF,EAAgB,SAAW,UADrD,kBAEI7I,EAAW,8BAA+B,MAAO4D,EAAS,KAAMvD,GAAO,IAF3E,4C,sBAKA,SAAeyI,GAAtB,qC,8CAAO,WAAqCzI,EAAOwI,GAA5C,eAAApI,EAAA,6DACGmD,EADH,oBACmC,OAATiF,EAAgB,SAAW,UADrD,kBAEI7I,EAAW,oCAAqC,MAAO4D,EAAS,KAAMvD,GAAO,IAFjF,4C,sBAKA,SAAe0I,GAAtB,qC,8CAAO,WAAoC1I,EAAOwI,GAA3C,eAAApI,EAAA,6DACGmD,EADH,oBACmC,OAATiF,EAAgB,SAAW,UADrD,kBAEI7I,EAAW,mCAAoC,MAAO4D,EAAS,KAAMvD,GAAO,IAFhF,4C,sBAKA,SAAe2I,GAAtB,mC,8CAAO,WAA2B3I,GAA3B,SAAAI,EAAA,+EACIT,EAAW,0BAA2B,MAAO,GAAI,KAAMK,GAAO,IADlE,4C,sBAIA,SAAe4I,GAAtB,mC,8CAAO,WAAuC5I,GAAvC,SAAAI,EAAA,+EACIT,EAAW,sCAAuC,MAAO,GAAI,KAAMK,GAAO,IAD9E,4C,oEAIA,WAA4BA,GAA5B,SAAAI,EAAA,+EACIT,EAAW,2BAA4B,MAAO,GAAI,KAAMK,GAAO,IADnE,4C,sBAIA,SAAe6I,GAAtB,mC,8CAAO,WAAgC7I,GAAhC,SAAAI,EAAA,+EACIT,EAAW,+BAAgC,MAAO,GAAI,KAAMK,GAAO,IADvE,4C,sBAIA,SAAe8I,GAAtB,mC,8CAAO,WAAmC9I,GAAnC,SAAAI,EAAA,+EACET,EAAW,kCAAmC,MAAO,GAAI,KAAMK,GAAO,IADxE,4C,oEAIA,WAAgCA,GAAhC,SAAAI,EAAA,+EACIT,EAAW,+BAAgC,MAAO,GAAI,KAAMK,GAAO,IADvE,4C,oEAIA,WAAsCA,GAAtC,SAAAI,EAAA,+EACIT,EAAW,qCAAsC,MAAO,GAAI,KAAMK,GAAO,IAD7E,4C,sBAIA,SAAe+I,GAAtB,mC,8CAAO,WAA6B/I,GAA7B,SAAAI,EAAA,+EACIT,EAAW,4BAA6B,MAAO,GAAI,KAAMK,GAAO,IADpE,4C,sBAIA,SAAegJ,GAAtB,mC,8CAAO,WAAkChJ,GAAlC,SAAAI,EAAA,+EACIT,EAAW,iCAAkC,MAAO,GAAI,KAAMK,GAAO,IADzE,4C,sBAIA,SAAeiJ,GAAtB,mC,8CAAO,WAAyBjJ,GAAzB,SAAAI,EAAA,+EACIT,EAAW,wBAAyB,MAAO,GAAI,KAAMK,GAAO,IADhE,4C,sBAIA,SAAekJ,GAAtB,mC,8CAAO,WAAyBlJ,GAAzB,SAAAI,EAAA,+EACIT,EAAW,wBAAyB,MAAO,GAAI,KAAMK,GAAO,IADhE,4C,oEAIA,WAAqCA,GAArC,SAAAI,EAAA,+EACIT,EAAW,oCAAqC,MAAO,GAAI,KAAMK,GAAO,IAD5E,4C,sBAIA,SAAemJ,GAAtB,mC,8CAAO,WAAgCnJ,GAAhC,SAAAI,EAAA,+EACIT,EAAW,+BAAgC,MAAO,GAAI,KAAMK,GAAO,IADvE,4C,sBAIA,SAAeoJ,GAAtB,mC,8CAAO,WAA6BpJ,GAA7B,SAAAI,EAAA,+EACIT,EAAW,qCAAsC,MAAO,GAAI,KAAMK,GAAO,IAD7E,4C,sBAIA,SAAeqJ,GAAtB,mC,8CAAO,WAA+BrJ,GAA/B,SAAAI,EAAA,+EACIT,EAAW,8BAA+B,MAAO,GAAI,KAAMK,GAAO,IADtE,4C,sBAIA,SAAesJ,GAAtB,mC,8CAAO,WAAyBtJ,GAAzB,SAAAI,EAAA,+EACIT,EAAW,iCAAkC,MAAO,GAAI,KAAMK,GAAO,IADzE,4C,sBC/FA,SAAeuJ,GAAtB,mC,8CAAO,WAAqBC,GAArB,eAAApJ,EAAA,6DACGqJ,EAAM5N,KAAKiJ,UAAU,CAAE,MAAS0E,EAAWE,MAAO,MAASF,EAAWG,WADzE,kBAEIhK,EAAW,mBAAoB,OAAQ,GAAI8J,EAAK,MAAM,IAF1D,4C,sBAKA,SAAeG,GAAtB,mC,8CAAO,WAAsB1N,GAAtB,eAAAkE,EAAA,6DACGmD,EAAU,eAAiBrH,EAD9B,kBAEIyD,EAAW,4BAA6B,OAAQ4D,EAAS,KAAM,MAAM,IAFzE,4C,sBAKA,SAAesG,GAAtB,qC,8CAAO,WAAqB7J,EAAO8J,GAA5B,iBAAA1J,EAAA,6DACG2J,EAAUC,mBAAmBF,GAC7BvG,EAFH,kBAEwBvD,EAFxB,yBAE8C+J,GAF9C,kBAGIpK,EAAW,2BAA4B,OAAQ4D,EAAS,KAAM,MAAM,IAHxE,4C,sBAMA,SAAe0G,GAAtB,mC,8CAAO,WAAqBjK,GAArB,SAAAI,EAAA,+EACIT,EAAW,sBAAuB,MAAO,iBAAkB,KAAMK,GAAO,IAD5E,4C,sBAIA,SAAekK,GAAtB,qC,8CAAO,WAA0BlK,EAAOoF,GAAjC,SAAAhF,EAAA,+EACIT,EAAW,wBAAyB,MAAOyF,EAAM,kBAAcA,GAAW,GAAI,KAAMpF,GAAO,IAD/F,4C,sBAgBA,SAAemK,GAAtB,qC,8CAAO,WAAyBnK,EAAOoF,GAAhC,eAAAhF,EAAA,6DACGxC,EAASwH,EAAM,6BAAyBA,GAAW,GADtD,kBAGI,IAAIgF,SAAQ,SAACC,EAASC,GACzB3K,EAAW,0BAA2B,MAAO/B,EAAQ,KAAMoC,GAAO,GAC7DqE,MAAK,SAAAvD,GACEA,EAASC,GACTsJ,EAAQvJ,EAASwD,QAEjBgG,EAAO,SAEd9F,OAAM,SAAAC,GACHC,QAAQD,MAAMA,GACd6F,EAAO,aAbhB,4C,oEAkBA,WAAoCtK,EAAOD,GAA3C,iBAAAK,EAAA,6DACGqJ,EAAM5N,KAAKiJ,UAAU/E,GACrBH,EAAcG,EAAKqF,OAAS,4BAA8B,yBAF7D,kBAGIzF,EAAWC,EAAa,OAAQ,GAAI6J,EAAKzJ,GAAO,IAHpD,4C,sBAMA,SAAeuK,GAAtB,mC,8CAAO,WAA4BvK,GAA5B,SAAAI,EAAA,+EACIT,EAAW,0BAA2B,MAAO,GAAI,KAAMK,GAAO,IADlE,4C,sBAIA,SAAewK,GAAtB,qC,8CAAO,WAA+BxK,EAAOD,GAAtC,eAAAK,EAAA,6DACGqJ,EAAM5N,KAAKiJ,UAAU/E,GADxB,kBAEIJ,EAAW,6BAA8B,OAAQ,GAAI8J,EAAKzJ,GAAO,IAFrE,4C,sBAKA,SAAeyK,GAAtB,qC,8CAAO,WAA+BzK,EAAO8J,GAAtC,iBAAA1J,EAAA,6DACG2J,EAAUC,mBAAmBF,GAC7BvG,EAFH,wBAE8BwG,GAF9B,kBAGIpK,EAAW,4BAA6B,OAAQ4D,EAAS,KAAMvD,GAAO,IAH1E,4C,oEAMA,WAAyBA,EAAOoF,GAAhC,eAAAhF,EAAA,6DACGmD,EADH,kBACwB6B,GADxB,kBAEIzF,EAAW,mCAAoC,OAAQ4D,EAAS,KAAMvD,GAAO,IAFjF,4C,sBAKA,SAAe0K,GAAtB,qC,8CAAO,WAA0B1K,EAAO5E,GAAjC,eAAAgF,EAAA,6DACGmD,EADH,kBACwBnI,GADxB,kBAEIuE,EAAW,4BAA6B,SAAU4D,EAAS,KAAMvD,GAAO,IAF5E,4C,sBAKA,SAAe2K,GAAtB,qC,8CAAO,WAAgC3K,EAAO4K,GAAvC,eAAAxK,EAAA,6DACCyK,EAAUD,EAAQ,iDAA6CA,EAASE,OAAOC,cAA7D,iCAA4G,WAD/H,kBAEIpL,EAAW,8BAA+B,MAAOkL,EAAS,KAAM7K,GAAO,IAF3E,4C,sBAKA,SAAegL,GAAtB,qC,8CAAO,WAAkChL,EAAO5E,GAAzC,SAAAgF,EAAA,4DACa,0BADb,kBAEIT,EAAW,8BAA+B,MADjC,0BACiD,KAAMK,GAAO,IAF3E,4C,sBAKA,SAAeiL,GAAtB,mC,8CAAO,WAAoCjL,GAApC,SAAAI,EAAA,+EACIT,EAAW,kCAAmC,MAAO,GAAI,KAAMK,GAAO,IAD1E,4C,sBAIA,SAAekL,GAAtB,qC,8CAAO,WAA2BlL,EAAOoF,GAAlC,eAAAhF,EAAA,6DACGyK,EAAUzF,GAAM,kBAAeA,GADlC,kBAEIzF,EAAW,kCAAmC,MAAOkL,EAAS,KAAM7K,GAAO,IAF/E,4C,mCCvFMmL,I,OAAW,SAACrQ,GAErB,IAAMsQ,EAAMC,iBAAO,MACbC,EAAWD,iBAAO,MAGxB,GAFgBA,iBAAO,MAEe3H,oBAAS,IAA/C,mBAAO6H,EAAP,KAAoBC,EAApB,KACA,EAAsC/H,qBAAW7G,GAAjD,mBAAOI,EAAP,KACA,GADA,KAC8B0G,mBAAS,OAAvC,mBAAO+H,EAAP,KAAgBC,EAAhB,KACA,EAA8BhI,mBAAS,MAAvC,mBAAOiI,EAAP,KAAgBC,EAAhB,KACA,EAA4BlI,mBAAS,MAArC,mBAAOmI,EAAP,KAAeC,EAAf,KACA,EAAkCpI,mBAAS,MAA3C,mBAAOG,EAAP,KAAkBC,EAAlB,KACA,EAAgCJ,mBAAS,MAAzC,mBAAiBqI,GAAjB,WACA,EAAkDrI,mBAAS,IAA3D,mBACA,GADA,UACgCA,oBAAS,IAAzC,mBAAOhD,EAAP,KAAiBsL,EAAjB,KACA,EAA0BtI,mBAAS,MAAnC,mBAAOuG,EAAP,KAAcgC,EAAd,KACA,EAA0CvI,mBAAS,IAAnD,mBAIQK,GAJR,UAIcC,cAAND,GAERI,qBAAU,WACFoH,GAAeW,SAASC,eAAe,kBACvCC,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,kBAChDE,aAAYH,SAASC,eAAe,iBACpCG,aAAW,CAAErJ,KAAM,iBAExB,CAACsI,IAEJpH,qBAAU,WAAM,4CAEZ,gCAAA/D,EAAA,sEACyBmK,GAAavN,EAAYjB,aACzCsI,MAAK,SAAAvD,GAAc,GAAIA,EAASC,GAAM,OAAOD,EAASwD,UAF/D,cACQiI,EADR,gBAGyBlE,GAAarL,EAAYjB,aACzCsI,MAAK,SAAAvD,GAAc,GAAIA,EAASC,GAAM,OAAOD,EAASwD,UAJ/D,cAGQkI,EAHR,gBAKwB7D,GAAY3L,EAAYjB,aACvCsI,MAAK,SAAAvD,GAAc,GAAIA,EAASC,GAAM,OAAOD,EAASwD,UAN/D,OAKQmI,EALR,OAQIf,EAAWa,GACXX,EAAWY,GACXV,EAAUW,GAENP,SAASC,eAAe,kBACxBO,aAAYR,SAASC,eAAe,iBACpCX,GAAe,IAdvB,6CAFY,sBACZA,GAAe,GADH,mCAmBZmB,KACD,CAACjP,IAAKC,WAETwG,qBAAU,WACFsH,GAAWE,GAAWE,GACtBe,MAEL,CAACnB,IAEJtH,qBAAU,WAAM,4CACZ,4BAAA/D,EAAA,sEACgCuK,GAAiB3N,EAAYjB,aAAasI,MAAK,SAAAwI,GACvE,GAAIA,EAAI9L,GACJ,OAAO8L,EAAIvI,UAHvB,OACUwI,EADV,OAMIb,EAASa,GANb,4CADY,uBAAC,WAAD,wBASZC,KACD,IAGH,IAAMC,EAAa,CACf,CAAEzP,KAAK,qCAAD,OAAuCwG,EAAE,yBAC/C,CAAExG,KAAK,yCAAD,OAA2CwG,EAAE,0BAGjD6I,EAAmB,WAErB,IAAMK,EAAQ,IAAIrK,KAAK6I,EAAQyB,gBACzBC,EAAO1B,EAAQ2B,QAAUzB,EAAQ/N,QAAO,SAAApE,GAAC,OAAIA,EAAE4B,KAAMqQ,EAAQ2B,UAC7DC,EAAM5B,EAAQ6B,YAAczB,EAAOjO,QAAO,SAAApE,GAAC,OAAIA,EAAE4B,KAAMqQ,EAAQ6B,cAErE,OACI,yBAAKhS,UAAU,YACX,6BACI,0BAAMA,UAAU,mBAChB,4BAAKmQ,EAAQ/B,QAEhB+B,EAAQyB,gBACL,6BACI,0BAAM5R,UAAU,uBAChB,4BAAK2R,EAAMpK,mBAAmBnF,IAAKC,YAG1C8N,EAAQ2B,QACL,6BACI,0BAAM9R,UAAU,oBAChB,4BAAK6R,EAA0B,OAAlBzP,IAAKC,SAAoBwP,EAAK,GAAGI,OAASJ,EAAK,GAAGK,OAAS,KAG/E/B,EAAQ2B,QAA4B,IAAlB3B,EAAQ2B,QAAeC,GACtC,6BACI,0BAAM/R,UAAU,qBAChB,4BAAwB,OAAlBoC,IAAKC,SAAoB0P,EAAI,GAAGE,OAASF,EAAI,GAAGG,SAG7D/B,EAAQgC,gBAAgB/T,OAAS,GAC9B,yBAAKgU,MAAO,CAAEC,WAAY,eACtB,0BAAMrS,UAAU,wBAChB,yBAAKA,UAAU,cACVmQ,EAAQgC,gBAAgB1P,KAAI,SAACF,EAAMG,GAAP,OACzB,wBAAIpE,IAAKoE,GACL,kBAAC,KAAD,CACI4P,WAAW,IACXC,cAAc,SACdC,YAAY,EACZC,KAAK,iFAEL5Q,MAAOU,EAAKmQ,SACZC,UAAQ,UAOhC,6BACA,uBAAGxI,QAAS3K,EAAMoT,WAAYnK,EAAE,oBA2BtCoK,GAAcC,sBArBH,SAACC,EAAMC,EAAMC,GAC1B,IAAIC,EAEJ,OAAO,WAAc,IAAD,uBAATC,EAAS,yBAATA,EAAS,gBAChB,IAAIC,O,EAEAC,EAAQ,WACRH,EAAU,KACLD,GAAWF,EAAKrU,MAAM0U,EAASD,IAGpCG,EAAUL,IAAcC,EAE5BK,aAAaL,GAEbA,EAAUM,WAAWH,EAAOL,GAExBM,GAASP,EAAKrU,MAAM0U,EAASD,IAKrCM,CAAQ,uCAAC,WAAO7N,GAAP,iBAAAd,EAAA,sEACkBuK,GAAiB3N,EAAYjB,YAAamF,GAAMmD,MAAK,SAAAwI,GACxE,GAAIA,EAAI9L,GACJ,OAAO8L,EAAIvI,UAHd,OACC0K,EADD,OAKD5D,GAAOA,EAAI6D,UAEL3R,EAAQ,CACV,CACI4R,OAAQlC,EAAW,GACnBmC,QAAS,CACLC,SAAUxC,IAGlB,CACIsC,OAAQlC,EAAW,GACnBmC,QAAS,CACLC,SAAUC,GACV/P,KAAM,CAAE2K,MAAO+E,MAK3B5D,EAAI6D,QAAQK,OAAO,CAAChS,EAAM,IAAK,GAC/B8N,EAAI6D,QAAQM,UAAU,GACtBnE,EAAI6D,QAAQO,UACZlE,EAAS2D,QAAQ9R,MAAQ+D,EACzBoK,EAAS2D,QAAQQ,SA3BhB,2CAAD,sDA6BL,KACH,IAGEJ,GAAoB,SAAC,GAAe,IAAbpF,EAAY,EAAZA,MACzB,OACI,6BACI,yBAAK3O,UAAU,iBACX,yBAAKA,UAAU,6BACX,0BAAMA,UAAU,wCAChB,yBAAKA,UAAU,mBACX,2BACIoU,SAAU,SAACjB,GAAD,OAAUN,GAAYM,EAAKlV,OAAO4D,QAC5C7B,UAAU,UACVH,IAAKmQ,EACLpK,KAAK,QACL+B,KAAK,OACL0M,YAA8B,OAAjBjS,IAAKC,SAAmB,0BAA4B,2BAI7E,yBAAKrC,UAAU,gBACV2O,GAASA,EAAMvQ,OAAS,GACrBuQ,EAAMlM,KAAI,SAACvE,EAAGwE,GACV,OACI,yBAAK1C,UAAU,UAAU1B,IAAKoE,GAC1B,kBAAC,OAAD,CAAMmH,GAAE,mBAAc3L,EAAE4B,KACpB,yBAAKuK,IAAG,UAAK9E,0BAAL,sDAAsE7D,EAAY4S,iBAAlF,mBAA6GpW,EAAE4B,GAA/G,gBAAiIyU,IAAI,KAC7I,+BAAQrW,EAAEsW,YAOlC,yBAAKxU,UAAU,WACX,2BAAOmK,QAASsK,IAA+B,OAAjBrS,IAAKC,SAAmB,WAAa,gBAOjFoS,GAAc,WAChB/D,GAAY,IAUhB,OAPA7H,qBAAU,WACN,IAAIQ,GAAU,IAAI/B,MAAOgC,cACzBd,EAAa,GAAD,OAAI9G,EAAYf,UAAhB,0BAA2C0I,IAEvDoH,EAAY/O,EAAYhB,YACzB,CAACgB,IAGAuO,EAAc,yBAAKnQ,GAAG,iBAClBsF,EAAW,kBAAC,IAAD,CAAUhB,MAAM,EAAMyF,GAAG,mBAChC,yBAAK7J,UAAU,YACVmQ,GAAWE,GAAWE,GACnB,oCACI,yBAAKvQ,UAAU,UACX,6BACI,yBAAKqK,IAAK9B,KAEd,yBAAKvI,UAAU,QACX,4BAAKyI,EAAE,qBACP,4BAAK0H,EAAQqE,QAGrB,yBAAKxU,UAAU,UACVmQ,GAAWE,GAAWE,GACnB,kBAAC,KAAD,CAAcmE,QAAS,WACnB,IAAM1S,EAAQ,CACV,CACI4R,OAAQlC,EAAW,GACnBmC,QAAS,CACLC,SAAUxC,IAGlB,CACIsC,OAAQlC,EAAW,GACnBmC,QAAS,CACLC,SAAUC,GACV/P,KAAM,CAAE2K,MAAOA,MAK3BmB,GAAOA,EAAI6D,SAAW7D,EAAI6D,QAAQK,OAAOhS,GACzC8N,GAAOA,EAAI6D,SAAW7D,EAAI6D,QAAQO,WACnCrU,IAAKiQ,EAAK9P,UAAU,iB,wCC9RpD,SAAe2U,GAAtB,qC,8CAAO,WAA0BjQ,EAAOkQ,GAAjC,eAAA9P,EAAA,6DACGmD,EAAU2M,EAAM,+BAA2BA,EAA3B,iCAAmE,gCADtF,kBAEIvQ,EAAW,iCAAkC,MAAO4D,EAAS,KAAMvD,GAAO,IAF9E,4C,oEAKA,WAA6BA,EAAOD,GAApC,eAAAK,EAAA,6DACGqJ,EAAM5N,KAAKiJ,UAAU/E,GADxB,kBAEIJ,EAAW,mCAAoC,OAAQ,GAAI8J,EAAKzJ,GAAO,IAF3E,4C,oEAKA,WAA0BA,EAAOD,GAAjC,eAAAK,EAAA,6DACGqJ,EAAM5N,KAAKiJ,UAAU/E,GADxB,kBAEIJ,EAAW,gCAAiC,OAAQ,GAAI8J,EAAKzJ,GAAO,IAFxE,4C,oEAKA,WAA6BA,EAAO5E,GAApC,eAAAgF,EAAA,6DACGmD,EADH,oBAC0BnI,GAD1B,kBAEIuE,EAAW,mCAAoC,SAAU4D,EAAS,KAAMvD,GAAO,IAFnF,4C,sBCTA,IAAMmQ,GAAa,SAACrV,GAEvB,MAAsB+B,aAAiBD,GAAhCI,EAAP,oBACA,EAA4BH,WAAe,IAA3C,mBAAOuT,EAAP,KAAeC,EAAf,KAEcrM,cAAND,EAERlH,aAAgB,WAAM,4CAElB,kCAAAuD,EAAA,sEACwB6P,GAAWjT,EAAYjB,YAA8B,OAAjB2B,IAAKC,SAAmB,EAAI,GAC/E0G,MAAK,SAAAvD,GAAc,GAAIA,EAASC,GAAM,OAAOD,EAASwD,UAF/D,OACQgM,EADR,OAKQC,EAAgB,GAEhBD,IACAE,EAAeF,EAAQ1S,QAAO,SAAAC,GAAI,OAAmB,IAAfA,EAAK4S,UAG3C9L,GAAU,IAAI/B,MAAOgC,cAEzB4L,EAAazS,KAAI,SAACF,GACd0S,EAAc7Q,KACV,CACIiG,IAAI,GAAD,OAAK9E,0BAAL,gDAA0E7D,EAAY4S,iBAAtF,yBAAuH/R,EAAKzC,GAA5H,oBAA0IuJ,GAC7I+L,OAAQ7S,EAAK6S,OACbC,QAAS9S,EAAK8S,QACdC,KAAM/S,EAAK+S,KACXxV,GAAIyC,EAAKzC,GACT4F,OAAQnD,EAAK4S,MACb9S,SAAUE,EAAKgT,cAK3BR,EAAUE,GA3Bd,4CAFkB,uBAAC,WAAD,wBAgClB5D,KACD,CAACjP,IAAKC,WAET,MAAsCd,WAAe,GAArD,mBAAOiU,EAAP,KAAoBC,EAApB,KACA,EAAkClU,YAAe,GAAjD,mBAAOmU,EAAP,KAAkBC,EAAlB,KAmBA,OACI,gBAACC,GAAA,EAAD,CACI5V,UAAU,gBACVwV,YAAaA,EACbK,KArBK,WACT,IAAIH,EAAJ,CACA,IAAMI,EAAYN,IAAgBV,EAAO1W,OAAS,EAAI,EAAIoX,EAAc,EACxEC,EAAeK,KAmBXC,SAhBS,WACb,IAAIL,EAAJ,CACA,IAAMI,EAA4B,IAAhBN,EAAoBV,EAAO1W,OAAS,EAAIoX,EAAc,EACxEC,EAAeK,MAeX,gBAACE,GAAA,EAAD,CAAoBhU,MAAO8S,EAAQU,YAAaA,EAAaS,eAZnD,SAACC,GACXR,GACJD,EAAeS,MAWVpB,GAAUA,EAAOrS,KAAI,SAACvE,GAAD,OAClB,gBAACiY,GAAA,EAAD,CACIC,UAAW,kBAAMT,GAAa,IAC9BU,SAAU,kBAAMV,GAAa,IAC7BrX,IAAKJ,EAAE4B,IAEP,gBAACwW,GAAA,EAAD,CAAiBC,YAAarY,EAAEmX,QAASmB,cAAetY,EAAEkX,SACzDlX,EAAEoX,KACC,qBAAGmB,KAAMvY,EAAEoX,KAAMrX,OAAO,UACpB,uBAAKoM,IAAKnM,EAAEmM,IAAKkK,IAAKrW,EAAEqB,SAG5B,uBAAK8K,IAAKnM,EAAEmM,IAAKkK,IAAKrW,EAAEqB,cCjFnCmX,GAAe,WAExB,MAAgCtO,oBAAS,GAAzC,mBAAOhD,EAAP,KAAiBsL,EAAjB,KAEA,EAAsBvI,qBAAW7G,GAA1BI,EAAP,oBACA,EAA0B0G,mBAAS,MAAnC,mBAAOuG,EAAP,KAAcgC,EAAd,KACA,EAA0CvI,oBAAS,GAAnD,mBAAOuO,EAAP,KAAsBC,EAAtB,KACA,EAA4CxO,oBAAS,GAArD,mBAAOyO,EAAP,KAAuBC,EAAvB,KACMC,EAAehH,iBAAO,MAEdrH,cAAND,EAERI,qBAAU,WAAM,4CACZ,4BAAA/D,EAAA,sEACkC4K,GAAmBhO,EAAYjB,YAAaiB,EAAYoI,QAAQf,MAAK,SAAAwI,GAC/F,GAAIA,EAAI9L,GACJ,OAAO8L,EAAIvI,UAHvB,OACUgO,EADV,OAMIrG,EAASqG,GANb,4CADY,uBAAC,WAAD,wBASZvF,KACD,IAEH,IAwBMwF,EAAY,SAACC,EAAUC,GACtBD,GAAY,IACXN,GAAiB,GACjBE,GAAkB,IAGnBI,EAAW,GAAKA,EAAWC,IAC1BP,GAAiB,GACjBE,GAAkB,IAGnBI,GAAYC,IACXP,GAAiB,GACjBE,GAAkB,KAI1B,OACI1R,EAAW,kBAAC,IAAD,CAAUhB,MAAM,EAAMyF,GAAG,mBAChC,yBAAK/J,GAAG,gBACJ,yBAAKE,UAAU,YACX,0BAAMA,UAAU,wBAChB,4BAAsB,OAAjBoC,IAAKC,SAAmB,2BAA0B,uBAE3D,yBAAKrC,UAAU,WACV2W,GACG,0BAAM3W,UAAU,sBAAsBmK,QAAS,kBA9CjD,WACd,IAAIiN,EAAYL,EAAapD,QACzB0D,EAAcD,EAAUE,YACxBF,EAAU3V,UAAa2V,EAAU3V,SAAS,GAAG6V,YAAcF,EAAUE,cACzED,GAAe,GACfD,EAAUG,YAAcF,EAExBJ,EAAWG,EAAUG,WAAaF,EAAcD,EAAUE,aAuCWE,MAGzD,yBAAKxX,UAAU,SAASH,IAAKkX,GACzB,yBAAK/W,UAAU,eAAemK,QAtD9B,WAChBuG,GAAY,KAsDQ,yBAAK1Q,UAAU,aACX,0BAAMA,UAAU,sBAEpB,+BAAyB,OAAjBoC,IAAKC,SAAmB,SAAW,WAG3CsM,GAASA,EAAMvQ,OAAS,GAAKuQ,EAAMlM,KAAI,SAACvE,EAAGwE,GACvC,OACI,yBAAKpE,IAAKoE,EAAO1C,UAAU,aACvB,kBAAC,OAAD,CAAM6J,GAAE,mBAAc3L,EAAE4B,IAAMsS,MAAO,CACjCqF,QAAS,OACTC,cAAe,SACfC,WAAY,OACZC,eAAgB,SAEhB,yBAAKvN,IAAG,UAAK9E,0BAAL,sDAAsE7D,EAAY4S,iBAAlF,mBAA6GpW,EAAE4B,GAA/G,gBAAiIyU,IAAI,KAC7I,+BAAQrW,EAAEsW,YAQjC7F,GAASkI,GAAkB,0BAAM7W,UAAU,uBAAuBmK,QAAS,kBAjE1E,WACd,IAAIiN,EAAYL,EAAapD,QACzB0D,EAAcD,EAAUE,YACxBF,EAAU3V,UAAa2V,EAAU3V,SAAS,GAAG6V,YAAcF,EAAUE,cACzED,GAAe,GACfD,EAAUG,YAAcF,EAExBJ,EAAWG,EAAUG,WAAaF,EAAcD,EAAUE,aA0DoCO,SCvGzFC,GAAe,WAExB,MAAsBvW,aAAiBD,GAAhCI,EAAP,oBACA,EAAgCH,YAAe,GAA/C,mBAAO6D,EAAP,KAAiBsL,EAAjB,KAEQjI,EAAMC,cAAND,EAMR,OACIrD,EAAW,gBAAC,IAAD,CAAUhB,MAAM,EAAMyF,GAAG,2BAChCpC,EAAe,GAAI,GAAI/F,IACvB,gCACI,uBAAK5B,GAAG,oBACJ,uBAAKiY,MAAM,6BAA6BrY,MAAM,QAAQC,OAAO,KAAKC,QAAQ,gBACtE,qBAAGE,GAAG,oBAAoBkY,YAAU,oBAAoBjY,UAAU,wBAC9D,2BAASD,GAAG,cAAckY,YAAU,cAAcC,GAAG,OAAOC,GAAG,KAAKC,GAAG,OAAOC,GAAG,KAAKrY,UAAU,qBAAqBsY,KAAK,YAC1H,qBAAGvY,GAAG,cAAckY,YAAU,cAAcjY,UAAU,0BAClD,wBAAMD,GAAG,eAAekY,YAAU,eAAe/X,EAAE,yKAAyKF,UAAU,wCAAwCsY,KAAK,YACnR,wBAAMvY,GAAG,eAAekY,YAAU,eAAe/X,EAAE,yHAAyHF,UAAU,wCAAwCsY,KAAK,YACnO,qBAAGvY,GAAG,cAAckY,YAAU,cAAcjY,UAAU,yCAClD,wBAAMD,GAAG,eAAekY,YAAU,eAAe/X,EAAE,0EAA0EF,UAAU,oBAAoBsY,KAAK,YAChK,wBAAMvY,GAAG,eAAekY,YAAU,eAAe/X,EAAE,2EAA2EF,UAAU,wBAAwBsY,KAAK,YACrK,wBAAMvY,GAAG,eAAekY,YAAU,eAAe/X,EAAE,yEAAyEF,UAAU,sBAAsBsY,KAAK,cAGzK,qBAAGvY,GAAG,cAAckY,YAAU,cAAcjY,UAAU,yDAClD,wBAAMD,GAAG,iBAAiBkY,YAAU,eAAe/X,EAAE,4KAA4KF,UAAU,iBAAiBsY,KAAK,YACjQ,wBAAMvY,GAAG,iBAAiBkY,YAAU,eAAe/X,EAAE,2HAA2HF,UAAU,0BAA0BsY,KAAK,YACzN,qBAAGvY,GAAG,gBAAgBkY,YAAU,cAAcjY,UAAU,2BACpD,wBAAMD,GAAG,iBAAiBkY,YAAU,eAAe/X,EAAE,yEAAyEF,UAAU,iBAAiBsY,KAAK,YAC9J,wBAAMvY,GAAG,iBAAiBkY,YAAU,eAAe/X,EAAE,yEAAyEF,UAAU,yBAAyBsY,KAAK,YACtK,wBAAMvY,GAAG,iBAAiBkY,YAAU,eAAe/X,EAAE,uEAAuEF,UAAU,0BAA0BsY,KAAK,gBAKrL,uBAAKrY,UAAU,gBACX,4BAAOyI,EAAE,uBACT,yBAAO0B,QAlCH,WACpBuG,GAAY,KAiCuD,OAAjBtO,IAAKC,SAAmB,UAAY,c,wDChDvF,WAAmCqC,EAAOD,GAA1C,eAAAK,EAAA,6DACGqJ,EAAM5N,KAAKiJ,UAAU/E,GADxB,kBAEIJ,EAAW,0DAA2D,OAAQ,GAAI8J,EAAKzJ,GAAO,IAFlG,4C,oEAKA,WAAiCA,EAAOD,GAAxC,eAAAK,EAAA,6DACGqJ,EAAM5N,KAAKiJ,UAAU/E,GADxB,kBAEIJ,EAAW,yDAA0D,OAAQ,GAAI8J,EAAKzJ,GAAO,IAFjG,4C,oEAKA,WAA4B4T,EAAU5T,EAAOuD,EAASxD,GAAtD,iBAAAK,EAAA,6DACGR,EAAcgU,EAEhB7T,EAAKC,MACL,qDACA,8DACF,gDACE6T,EAAY,IAAIC,UACVvT,OAAO,gBAAiB1E,KAAKiJ,UAAU/E,IAR9C,kBASIJ,EAAWC,EAAa,OAAQ2D,EAASsQ,EAAW7T,GAAO,IAT/D,4C,0BCHH+T,G,qEAqMWlX,eApMf,YAA0F,IAAnEmX,EAAkE,EAAlEA,YAAa1U,EAAqD,EAArDA,KAAM2U,EAA+C,EAA/CA,MAAOC,EAAwC,EAAxCA,WAAYC,EAA4B,EAA5BA,OAAQC,EAAoB,EAApBA,iBACjE,EAAsCvX,aAAiBD,GAAvD,mBAAOI,EAAP,KACMqX,GADN,KACsBxX,SAAa,OAE3BkH,EAAMC,cAAND,EAEFR,EAA8B,MAApByQ,EAAYM,KAAZ,iBAAoCN,EAAYM,MAAS,GAkInEC,EAAS,CACX,CAAE1Z,MAAyB,OAAjB6C,IAAKC,SAAmB,sBAAwB,qBAAsBwR,QAA0B,OAAjBzR,IAAKC,SAAmB,8FAAyF,oFAAqF+H,SAAU,kBAAmB8O,KAAM,yBAClU,CAAE3Z,MAAyB,OAAjB6C,IAAKC,SAAmB,0BAAyB,uBAAwBwR,QAA0B,OAAjBzR,IAAKC,SAAmB,qCAAoC,mCAAqC+H,SAAU,oBAe3M,OACI,gCACI,gBAAC,KAAD,CAAsB+O,KAAK,UAAUrZ,GAAG,aACpCD,IAAK,SAAAuZ,GAAW,OAAIX,GAAiBW,GACrCC,aAAc,CACVrP,IAAK0O,EAAYY,OACfZ,EAAYhU,MAAZ,UACKa,0BADL,gEAC0FmT,EAAYhU,OADtG,UAEKa,0BAFL,2DADG,UAIAA,0BAJA,0DAI+E0C,GACpFsR,YAAab,EAAYY,OACvBZ,EAAYhU,MAAZ,UACKa,0BADL,iEAEKA,0BAFL,gEADW,UAIRA,0BAJQ,iDAKbiU,UAAU,GAAD,OAAKjU,0BAAL,sDAAgF0C,IAI7FqD,OAAQlJ,IAAKC,SACb2W,KAAMN,EAAYM,KAClBS,kBAAmBf,EAAYY,OAC/BI,WAvKO,SAACvG,GACZsF,IACArP,QAAQ1C,IAAI,OAAQ+R,GAAeO,MAyBvC7F,EAAKkG,aAAaK,WAAa,SAAUvG,GACrCA,EAAKwG,YAAYC,iBAAiB,gBAAiB,UAAYlY,EAAYjB,aAC3E0S,EAAKwG,YAAYC,iBAAiB,OAAQxX,IAAKC,YA2I3CwX,gBA9HY,SAAC1G,GACrB,IAAMzO,EAAQgU,EAAYhU,OAAShD,EAAY4S,iBAC/CnB,EAAK2G,SAAL,UAAmB3G,EAAK2G,SAAxB,mBAA2CpV,GAE3C,IAAMqV,EAbV,SAA4BnU,GAAmC,IAA7BoE,EAA4B,uDAAtBlH,OAAOC,SAAS0T,KACpD7Q,EAAOA,EAAKK,QAAQ,UAAW,QAC/B,IAAI+T,EAAQ,IAAIlU,OAAO,OAASF,EAAO,qBACnCqU,EAAUD,EAAMjU,KAAKiE,GACzB,OAAKiQ,EACAA,EAAQ,GACNjU,mBAAmBiU,EAAQ,GAAGhU,QAAQ,MAAO,MAD5B,GADH,KASDiU,CAAmB,OAAQ/G,EAAK2G,UACpD,GAAoD,IAAhDC,EAAY/a,QAAZ,WAAwB0Z,EAAYM,OAAe,CACnD,IAAMmB,EAAShH,EAAK2G,SAAS7T,QAAQ8T,EAAtB,WAAuCrB,EAAYM,MAAnD,OAA0De,IACzE5G,EAAK2G,SAAL,UAAmBK,EAAnB,kBAAmCzV,KAwH/B0V,eApHW,SAACjH,GACpB/J,QAAQ1C,IAAR,eAAgByM,IAChBA,EAAKkH,QAAS,EACd,IAAM3V,EAAQgU,EAAYhU,MAAQ,KAAOhD,EAAYjB,YAC/C6Z,EAAoC,IAAzBnH,EAAKnP,KAAKA,KAAK5F,QAAe+U,EAAKnP,KAAKA,KAAK,GAAGuW,OAASpH,EAAKnP,KAAKA,KAAK,GAAG4B,KAAO,YACnGuN,EAAKnP,KAAKU,MAAQgU,EAAYhU,MDhE/B,SAAP,yCCkEQ8V,CAAa9B,EAAYY,OAAQ5U,EAAOuD,EAASkL,EAAKnP,MACjD+E,MAAK,SAACvD,GACCA,EAASC,KACTsT,EAAcpF,QAAQ8G,KAAKxB,EAAO,IAClCzT,EAASkV,OAAO3R,MAAK,SAAC2R,GAClB3B,EAAcpF,QAAQ8G,KAAKxB,EAAO,IAClC,IAAMjP,EAAMlH,OAAO6X,IAAIC,gBAAgB,IAAIC,KAAK,CAACH,KAC3CpF,EAAO1E,SAASnR,cAAc,KACpC6V,EAAKmB,KAAOzM,EACZsL,EAAKwF,aAAa,WAAYR,GAC9B1J,SAASnM,KAAKsW,YAAYzF,GAC1BA,EAAK0F,QACL1F,EAAK2F,WAAWC,YAAY5F,WAkGpC6F,eAAgB,CAAEC,YAAa,EAAGC,YAAa,KAC/CC,QA7FG,SAACnI,QACOoI,IAAfpI,EAAKhK,OAA2C,QAApBgK,EAAKhK,MAAMqS,OACvCrI,EAAKhK,MAAMsS,QAAU,mEA4FjBC,gBAAiB,CAAEC,SAAUjD,EAAYY,QACzCsC,oBAAqB,CACjBC,QAAS,CAAC,CAAEC,MAAO,OAAQpK,WAAYjJ,EAAE,2BAA4BsT,iBAAkB,CAAEC,MAAO,kBAAoBC,SAAU,GAAInI,SAAU,0CAC5I,CAAEgI,MAAO,eAAgBpK,WAAY,eAAgB/J,KAAM,WAAYuU,OAAQ,sBAAuBxc,MAAO,KAC7G,CAAEoc,MAAO,OAAQpK,WAAY,OAAQhS,MAAO,IAAKoU,SAAU,aAE/DqI,oBAAqBzD,EAAYY,OA7CX,CAC9B8C,KAAM,CAAC,OAAQ,IAAK,YACpBC,OAAQ,CAAC,OAAQ,IAAK,YACtBC,OAAQ,CAAC,SAAU,OAAQ,UAAW,IAAK,UAAW,IAAK,cAGnC,CACxBF,KAAM,CAAC,OAAQ,IAAK,MAAO,OAAQ,IAAK,SAAU,SAAU,IAAK,UAAW,IAAK,QAAS,YAC1FC,OAAQ,CAAC,OAAQ,IAAK,MAAO,OAAQ,QAAS,IAAK,SAAU,SAAU,IAAK,UAAW,IAAK,SAC5FC,OAAQ,CAAC,SAAU,OAAQ,UAAW,IAAK,QAAS,IAAK,YAAa,SAAU,IAAK,UAAW,IAAK,cAqC7FC,UA9EM,SAACpJ,GACf,GAAqB,wBAAjBA,EAAK5Q,KAAKzC,GAA8B,CACxC,IAAM0c,EAAcrJ,EAAKqJ,YAAY,GAC/BC,EAAWD,EAAYE,WAAaF,EAAY5W,KAChD+W,EAAgC,cAArBH,EAAY7U,KAC7B3D,EAAK,CAAE4Y,QAASH,EAAUI,MAAOF,IACjChE,GAAM,GAGV,GAAqB,2BAAjBxF,EAAK5Q,KAAKzC,GAAiC,CAC3C,IAAM0c,EAAcrJ,EAAKqJ,YAAY,GAC/BC,EAAWD,EAAYE,WACvBC,EAAgC,cAArBH,EAAY7U,KAE7BiR,GAAW,GD9HhB,SAAP,qCCgIYkE,CAAkBpb,EAAYjB,YAAa,CAAEmc,QAASH,EAAUM,SAAUP,EAAY5W,KAAMiX,MAAOF,IAAY5T,KAA/G,uCAAoH,WAAMvD,GAAN,eAAAV,EAAA,0DAC5GU,EAASC,GADmG,gCAE1FD,EAASvD,OAFiF,OAEtG+H,EAFsG,OAG5G6O,EAAO7O,GACP4O,GAAW,GACXE,GAAiB,GAL2F,2CAApH,yDA+DIkE,SA/FK,SAAC7J,GAKd,IAAK,IAAMjV,KAJPua,GAAewE,cAAc7e,OAAS,GAAkC,IAA5B+U,EAAKqJ,YAAYpe,QAA6C,QAA7B+U,EAAKqJ,YAAY,GAAG5W,OACjG6S,GAAeyE,iBAAiB,CAAC,UAGrB/J,EAAKnR,MACbmR,EAAKnR,MAAM9D,GAAG4B,KAAO2Y,GAAe0E,QAAQrd,GAAK,cACjDqT,EAAKnR,MAAM9D,GAAGgE,QAAU,sBAGxBiR,EAAKnR,MAAM9D,GAAG4B,KAAO2Y,GAAe0E,QAAQrd,GAAK,iBACjDqT,EAAKnR,MAAM9D,GAAGgE,QAAU,2BAsFxB,gBAAC,KAAD,CAAQkb,SAAU,CAACC,KAAgBC,KAAaC,SAEpD,gBAAC,KAAD,CAAgB1d,IAAK,SAAA2d,GAAK,OAAIzE,EAAcpF,QAAU6J,GAAOtG,SAAU,CAAEuG,EAAG,eAIjD,SAACC,EAAM7H,GAAP,OAAgB6H,EAAK7b,QAAUgU,EAAKhU,S,OC9I5D8b,IClDXC,GDkDWD,GA1Df,SAAsBne,GAClB,MAAwB+B,IAAM6G,WAA9B,mBAAOqS,EAAP,KAAaoD,EAAb,KAEA,EAAoEC,KAA5DC,EAAR,EAAQA,mBAAkCC,GAA1C,EAA4BC,aAA5B,EAA0CD,uBAO1C,OALAzc,IAAMsH,WAAU,WACRkV,GACAF,EAAQE,EAAmBtD,QAChC,CAACsD,IAEGtD,EACH,kBAAC,KAAD,CACI3a,GAAG,eACHoe,SAAS,EACTvC,QAASlB,EACTrI,MAAO,CAAE+L,UAAW,oBACpB7S,OAAQlJ,IAAKC,UAEb,6BACI,yBAAKrC,UAAS,mBAAc+d,GAAsBA,EAAmB5U,OAAS,QAC1E,0BACInJ,UAAS,UAAK+d,GAAsBA,EAAmB5U,MAAQ,QAAU,UAAhE,iBACI4U,GAAsBA,EAAmB7E,QAE1D,yBAAKlZ,UAAU,eACX,2BACIF,GAAG,QACHE,UAAS,UAAK+d,GAAsBA,EAAmB5U,OAAS,QAE9C,OAAjB/G,IAAKC,SAAmB0b,GAAsBA,EAAmBxe,MAAM6e,QAAUL,GAAsBA,EAAmBxe,MAAM8e,WAI7I,6BACA,yBAAKre,UAAU,mBACX,yBAAKA,UAAS,uBAAkB+d,GAAsBA,EAAmB5U,OAAS,QAC9E,0BACInJ,UAAS,UAAK+d,GAAsBA,EAAmB5U,MAAQ,QAAU,UAAhE,iBACI4U,GAAsBA,EAAmB7E,SAG9D,2BAAOlZ,UAAS,UAAK+d,GAAsBA,EAAmB5U,OAAS,QACjD,OAAjB/G,IAAKC,SAAmB0b,GAAsBA,EAAmBtC,QAAQ6C,UAAYP,GAAsBA,EAAmBtC,QAAQ8C,WAE3I,4BACIpU,QAAS,WACL0T,GAAQ,GACRG,EAAsB,2BAAKD,GAAN,IAA0BtD,MAAM,OAGvC,OAAjBrY,IAAKC,SAAmB,OAAS,WAKlD,ME1DFmc,GAAeC,wBAAc,MAE7BC,GAAgB,SAAC,GAAkB,IAAhBjd,EAAe,EAAfA,SACrB,EAAoD2G,mBAAS,IAA7D,mBAAO2V,EAAP,KAA2BC,EAA3B,KA6DA,OACI,kBAACQ,GAAa5c,SAAd,CAAuBC,MAAO,CAC1B8c,mBA7DmB,SAAC,GAQrB,IAPHxV,EAOE,EAPFA,MACAiV,EAME,EANFA,QACAC,EAKE,EALFA,QACAC,EAIE,EAJFA,UACApF,EAGE,EAHFA,KAEAqF,GACE,EAFF5W,KAEE,EADF4W,WAGA,GAAIR,IAAuBA,EAAmBtD,KAAM,CAChD,GAAItR,EACA,OAAQA,GACJ,KAAK,IAOL,KAAK,IACDmV,EAAY,6DACZC,EAAY,6CACZH,EAAU,kBACVC,EAAU,uBACV,MAEJ,KAAK,IACDC,EAAY,8CACZC,EAAY,gDACZH,EAAU,kBACVC,EAAU,wBAMjBnF,GAAQ/P,EACT+P,EAAO,2BACCA,GAAS/P,IACjB+P,EAAO,gBAGX8E,EAAsB,CAClBze,MAAO,CACH6e,UACAC,WAEJ5C,QAAS,CACL6C,YACAC,aAEJrF,OACAuB,MAAM,EACNtR,MAAOA,GAAgB,SAQ3B4U,qBACAC,0BAECvc,EAED,kBAAC,GAAD,QAKNqc,GAAW,WACb,IAAM1K,EAAUjL,qBAAWqW,IAM3B,OAAOpL,GDxEEwL,GAAgB,SAACpf,GAC1B,MAAsC+B,aAAiBD,GAAvD,mBAAOI,EAAP,KACQid,GADR,KAC+Bb,KAAvBa,oBACAlW,EAAMC,cAAND,EAER,EAAkClH,YAAe,GAAjD,mBAAOsd,EAAP,KAAkBC,EAAlB,KACA,EAA0Cvd,YAAe,GAAzD,mBAAOwd,EAAP,KAAsBjG,EAAtB,KACA,EAAsBvX,WAAe,IAArC,mBAAOyI,EAAP,KAAY6O,EAAZ,KACA,EAAwBtX,WAAe,MAAvC,mBAAOyC,EAAP,KAAagb,EAAb,KACA,EAAkCzd,YAAe,GAAjD,mBAAO0d,EAAP,KAAkBC,EAAlB,KACA,EAA0C3d,YAAe,GAAzD,mBAAO4d,EAAP,KAAsBC,EAAtB,KACA,EAAgC7d,WAAe,IAA/C,mBAAOiE,EAAP,KAAiB6Z,EAAjB,KAEA9d,aAAgB,WACR4d,IACArO,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,iBAChDE,aAAYH,SAASC,eAAe,gBACpCG,aAAW,CAAErJ,KAAM,iBAExB,CAACwX,IAEJ,IAAMG,EAAe,CACjB,CACI3X,KAAM,SACN4X,YAAa,CACTC,WAAW,EACX3L,QAASpL,EAAE,qBACXgX,gBAAgB,GAEpBzE,MAAO,WACC4C,GAAW8B,aACP1b,GAAQA,EAAK2b,QAAU3b,EAAK2b,OAAOvhB,QACnC8gB,GAAa,GH7C9B,SAAP,qCG8CwBU,CAAoBle,EAAYjB,YAAauD,GACxC+E,MAAK,SAAAvD,GACFsZ,GAAa,GAEbH,EAAmB,CACfL,UAAW,qCACXC,UAAW,2BACXH,QAAS,UACTC,QAAS,eAGhBnV,OAAM,SAAArG,GACHwc,EAAY,2CAGpBA,EAAY,qCAOhC9d,aAAgB,WACZ2d,GAAa,GACbG,EAAY,MACb,CAACR,IA6CJ,OApBAtd,aAAgB,WACZ,IAAMse,EAAU,CACZC,MAAO,CACH,OAAU,CACNC,SAAU,EAAC,EAAMtX,EAAE,0BAG3BuX,gBAAiB,SAACC,EAAcC,GAC5BD,EAAaE,cAAcA,cAAcpF,YAAYmF,KAG7DtC,GAAa,IAAIwC,KAAc,sBAAuBP,KACvD,IAEHte,aAAgB,WACZuP,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,aAChDE,aAAYH,SAASC,eAAe,YACpCG,aAAW,CAAErJ,KAAM,gBACpB,CAACsX,IAGA,gCACI,uBAAKjf,UAAU,UACX,uBAAKA,UAAU,cACX,uBAAKA,UAAU,aACX,qBAAGA,UAAU,mBACb,4BAAOR,EAAMD,OAASkJ,EAAE,uBAE5B,uBAAKzI,UAAU,mBACX,gBAAC,GAAD,CACI0Y,YAAalZ,EACbwE,KAAMgb,EACNrG,MAAOmG,EACPjG,OAAQA,EACRD,WAAYwG,EACZtG,iBAAkBA,KAG1B,gBAAC,KAAD,CACIhZ,GAAG,aACHJ,MAAM,QACNwe,SAAS,EACTmC,QAASf,EACT3D,QAASkD,EACTyB,eAAe,EACf7U,MApED,WACfmF,SAASC,eAAe,UAAUhP,MAAQ,GAC1Cid,GAAa,IAmEGxT,OAAQlJ,IAAKC,UAEb,4BACM4c,GAAa,wBAAMnf,GAAG,sBAEpB,uBAAKE,UAAU,SACX,yBAAOugB,QAAQ,UAAf,YACA,uBAAKvgB,UAAU,iBACX,4BACIF,GAAG,SACH8F,KAAK,SACL+B,KAAK,OAEL0M,YAAY,0CACZD,SA/EjB,SAACvR,GACpB,GAAIA,EAAE5E,OAAO4D,MAAO,CAChB,IAAM8d,EAAS9c,EAAE5E,OAAO4D,MAAM2e,MAAM,KAChCC,EAAa,GACjBd,EAAOld,KAAI,SAAA2L,GACP,IAAMsS,EAAOtS,EAAMoB,QAS/B,SAAuBpB,GAEnB,MADW,4JACDxJ,KAAKwJ,IAVHuS,CAAcD,IACdD,EAAWrc,KAAKsc,MAEpBD,EAAWriB,QACX4gB,GAAQ,SAAA4B,GAAG,kCAAUA,GAAV,IAAejB,OAAQc,WAuEV,wBAAMzgB,UAAU,oBAK3BwF,IAAayZ,GAAa,2BACvB,wBAAMjf,UAAU,SAASwF,IAG5ByZ,GAAa,uBAAKnf,GAAG,cAG9B,gBAAC,KAAD,CACIA,GAAG,iBACHJ,MAAM,QACNwe,SAAS,EACTvC,QAASoD,EACTuB,eAAe,EACf7U,MAAO,kBAAMqN,GAAiB,IAC9BxN,OAAQlJ,IAAKC,UAEb,uBAAKrC,UAAU,iBACX,yDACA,uBAAKA,UAAU,mBACX,uBAAKA,UAAU,WAAWgK,GAC1B,uBAAKhK,UAAU,iBACX,0BAAQmK,QAAS,kBAAM0W,UAAUC,UAAUC,UAAU/W,IAAMhK,UAAU,yBAM5Fmf,GAAiB,uBAAKnf,UAAU,WAC7B,uBAAKF,GAAG,mBEpLXkhB,GAAO,WAEhB,MAAgCzf,YAAe,GAA/C,mBAAO6D,EAAP,KAAiBsL,EAAjB,KACA,EAAsBnP,aAAiBD,GAAhCI,EAAP,oBAEA,EAAwCH,YAAe,GAAvD,mBAAO0f,EAAP,KAAqBC,EAArB,KAEcxY,cAAND,EAsBR,OApBAlH,aAAgB,WAAM,4CAGlB,8BAAAuD,EAAA,sEACwB6P,GAAWjT,EAAYjB,YAA8B,OAAjB2B,IAAKC,SAAmB,EAAI,GAC/E0G,MAAK,SAAAvD,GAAc,GAAIA,EAASC,GAAM,OAAOD,EAASwD,UAF/D,OACQgM,EADR,OAIQE,EAAe,GAEfF,IACAE,EAAeF,EAAQ1S,QAAO,SAAAC,GAAI,OAAmB,IAAfA,EAAK4S,UAG3CD,GAAgBA,EAAa9W,OAAS,GACtC8iB,GAAgB,GAXxB,4CAHkB,sBAElBA,GAAgB,GAFE,mCAiBlB7P,KACD,CAACjP,IAAKC,WAGuB,OAA5BX,EAAYjB,YAAuB,gBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WACxDzE,EAAW,gBAAC,IAAD,CAAUhB,MAAM,EAAMyF,GAAG,aAChC,uBAAK7J,UAAU,QACX,gBAACwM,EAAA,EAAD,KACI,gBAAC2U,GAAA,EAAD,KACI,uBAAKnhB,UAAU,mBACX,gBAAC,GAAD,CAAU4S,UAAW,kBAAMlC,GAAY,MACvC,gBAAC,GAAD,OAEJ,uBAAK1Q,UAAU,mBACVihB,GACG,gBAAC,GAAD,MAEJ,gBAAC,GAAD,MACA,gBAAC,GAAD,CAAejI,KAAK,W,uCCvD7C,SAAeoI,GAAtB,mC,8CAAO,WAA4B1c,GAA5B,SAAAI,EAAA,+EACIT,EAAW,6BAA8B,MAAO,iBAAkB,KAAMK,GAAO,IADnF,4C,oEASA,WAAmCA,EAAOD,GAA1C,iBAAAK,EAAA,6DACGqJ,EAAM5N,KAAKiJ,UAAU/E,GACrBH,EAAcG,EAAK3E,GAAK,+BAAiC,4BAF5D,kBAGIuE,EAAWC,EAAa,OAAQ,GAAI6J,EAAKzJ,GAAO,IAHpD,4C,sBAMA,SAAe2c,GAAtB,qC,8CAAO,WAA8B3c,EAAO5E,GAArC,eAAAgF,EAAA,6DACGmD,EADH,sBAC4BnI,GAD5B,kBAEIuE,EAAW,+BAAgC,SAAU4D,EAAS,KAAMvD,GAAO,IAF/E,4C,0BCPH4c,GCIAC,GACAC,G,UCbEC,GAAsBlgB,kBAEtBmgB,GAAuB,SAAC,GAAkB,IAAhBjgB,EAAe,EAAfA,SAE5B,EAA0BF,WAAe,MAAzC,mBAAOogB,EAAP,KAAcC,EAAd,KAEA,OACI,gBAACH,GAAoB7f,SAArB,CAA8BC,MAAO,CAAC8f,EAAOC,IACxCngB,I,UFCAogB,I,OAAwB,SAAC,GAAgF,IAC9GC,EACAC,EAFgCC,EAA6E,EAA7EA,WAAYC,EAAiE,EAAjEA,UAAWC,EAAsD,EAAtDA,WAAiCxc,GAAqB,EAA1Cyc,oBAA0C,EAArBzc,QAAQ0c,EAAa,EAAbA,OAIpG,EAA0B7gB,aAAiBkgB,IAA3C,mBAAOE,EAAP,KAAcC,EAAd,KACA,EAAoCrgB,YAAe,GAAnD,mBAAO8gB,EAAP,KAAmBC,EAAnB,KACA,EAAoC/gB,WAAe,MAAnD,mBACA,GADA,UAC8BA,YAAe,IAA7C,mBAAOghB,EAAP,KAAgB3J,EAAhB,KAEQnQ,EAAMC,cAAND,EACF6W,EAAe,CAAC,CAClB,MAAS,WACLkD,IACAC,IACAH,GAAc,IAElB/C,YAAa,CACTC,WAAW,EACX3L,QAASpL,EAAE,mBAIbxK,EAAS2S,SAASC,eAAe,eAEvCtP,aAAgB,WACZ+gB,EAAc5c,KACf,CAACA,IAEJnE,aAAgB,WACRogB,GACIG,IACAA,EAAYY,SAAWX,EACvBD,EAAYa,cAGrB,CAAChB,IAEJpgB,aAAgB,WACR8gB,IACAf,GAAUjB,QAAUf,KACzB,CAAC+C,IAEJ,IAAMO,EAAc,WAEhB,OADAhS,SAASiS,uBAAuB,sBAAsB,GAAGC,cAAc,UAAU9H,SAC1E,GAeXzZ,aAAgB,WACZuP,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,kBAChDE,aAAYH,SAASC,eAAe,iBACpCG,aAAW,CAAErJ,KAAM,gBACpB,CAAC4a,IAEJ,IAAME,EAAc,WAChB,IAAMM,EAAanS,SAASC,eAAe,gBAAkBD,SAASC,eAAe,eAAemS,cAAc,GAClH,GAAmB,OAAfD,GAA+C,OAAxBA,EAAWE,UAAsD,qBAAzBF,EAAWE,SAC1E,OAAOF,EAAWE,YAcpBT,EAAc,WAChBZ,GAAS,SAAAD,GACL,OAAIA,EAAMuB,OACFvB,EAAM3X,IACC,2BAAK2X,GAAZ,IAAmBwB,IAAK,KAAMnZ,IAAK,KAAMoZ,QAAQ,EAAMC,SAAS,IAEhE,2BAAY1B,GAAZ,IAAmBwB,IAAK,KAAMnZ,IAAK,KAAMqZ,SAAS,IAEnD,2BAAK1B,GAAZ,IAAmB0B,SAAS,QAW9BC,EAAyB,SAACnQ,GAC5ByO,GAAS,SAAAD,GACL,OAAO,2BAAKA,GAAZ,IAAmBuB,QAAQ,OAE/BT,KA8CAc,EAAevB,GAAcA,EAAWnc,MAAM,mBAAmB2d,KAAK,IAAI3d,MAAM,eAAe2d,KAAK,IAAIC,cAO5G,OACI,2BACKvB,GAAcD,IAAcN,EACzB,uBAAK3hB,UAAU,SAASmK,QAAS,kBAAMmY,GAAc,KACjD,uBAAKtiB,UAAU,OACVujB,GACG,wBAAMvjB,UAAU,aAAaujB,IAGrC,uBAAKvjB,UAAU,eACX,wBAAMA,UAAU,qBAIxBkiB,GACA,uBAAKliB,UAAU,SAASmK,QAAS,kBAAMmY,GAAc,KACjD,uBAAKtiB,UAAU,OAEP2hB,IAAWA,EAAM0B,SAAW1B,EAAMwB,MAASxB,EAAM0B,SAAW1B,EAAM3X,KAAO,uBAAKK,IAAMsX,EAAM0B,SAAW1B,EAAMwB,KAAQxB,EAAM3X,MAAU,uBAAKhK,UAAU,yBAMlK,gBAAC,KAAD,CACIF,GAAG,eACHD,IAAK,SAAA6jB,GAAM,OAAIpC,GAAYoC,GAE3BhkB,MAAM,QACNwe,SAAS,EAETvC,QAAS0G,EACT/B,eAAe,EACfqD,YAtCQ,WAChBrB,GAAc,GACdF,GAAUA,EAAO3W,SAqCTA,MAjJI,WACZgX,KACId,EAAMuB,QAAWvB,EAAMwB,KACvBvB,GAAS,SAAAD,GAAK,MAAK,CACf/b,KAAM+b,EAAM/b,KACZge,KAAMjC,EAAMiC,KACZjc,KAAMga,EAAMha,KACZqC,IAAK2X,EAAM3X,SA2IXsB,OAAQlJ,IAAKC,UAGb,2BACI,uBAAKrC,UAAU,SAASH,IAAK,SAAA6iB,GAAQ,OAAIX,EAAcW,IACjDf,IAAWA,EAAMwB,MAAQxB,EAAMuB,QAA6B,OAAjBvB,EAAM0B,SAAmB1B,EAAM3X,MAAQ2X,EAAMuB,QACtF,2BACI,wBAAMpjB,GAAG,SAASqK,QAAS,kBAAMyY,MAC7B,uBAAKvY,IAAKsX,EAAMwB,KAAOxB,EAAM3X,QAIrC,uBAAKhK,UAAU,OACX,wBAAM6jB,wBAAyB,CAAEC,OAjN9C,uuDAkNa,yBAAIrb,EAAE,uBAAN,IAA8B,wBAAM0B,QAAS,kBAAMyY,MAAgBna,EAAE,mCAMjF,2BACK8Z,GACG,uBAAKziB,GAAG,kBAGhB,2BACK6hB,GAASA,EAAM/b,OAAS+b,EAAMuB,QAC3B,uBAAKljB,UAAU,6EACX,sBAAIA,UAAU,kBACV,sBAAIA,UAAU,qBAAqB+jB,mBAAiB,KAChD,wBAAM/jB,UAAU,gCAAgCmK,QAAS,kBA3FlE,SAAC,GAAuB,IAArB4S,EAAoB,EAApBA,SAAU/S,EAAU,EAAVA,IAC9BsL,EAAO1E,SAASnR,cAAc,KACpC6V,EAAKmB,KAAOzM,EACZsL,EAAKwF,aAAa,WAAYiC,GAC9BnM,SAASnM,KAAKsW,YAAYzF,GAC1BA,EAAK0F,QACL1F,EAAK2F,WAAWC,YAAY5F,GAqFmE0O,CAAmBrC,EAAM/b,KAAM+b,EAAM3X,OAChG,wBAAMhK,UAAU,eAAe2hB,EAAM/b,KAArC,SAEJ,wBAAM5F,UAAU,4BAA4BT,MAAM,UAAU4K,QAAS,kBAAMmZ,WAO/F,gBAAC,KAAD,CACIxjB,GAAG,cACHD,IAAK,SAAAokB,GAAQ,OAAInC,EAAcmC,GAC/BC,kBAAkB,oBAClBxB,SAAUzkB,EACVod,YAAa,IACb/P,OAAQlJ,IAAKC,SACbF,SApIU,SAAA4B,GACW,MAAjCA,EAAMogB,UAAU,GAAGC,YACnBxL,GAAW,GACX7U,EAAMogB,UAAU1hB,KAAI,SAAC2Z,GACjB,IAAMiI,EAAS,IAAIC,WACbC,EAAY3T,SAASC,eAAe,eAAe2T,MAAM,GAC/DH,EAAOI,iBAAiB,QAAQ,WAC5B,IAAM7e,EAAO2e,EAAU3e,KACjB1H,EAAI0H,EAAK8e,YAAY,KACrB3H,EAAWnX,EAAK+e,UAAU,EAAGzmB,GAC7B0mB,EAAMhf,EAAK+e,UAAUzmB,EAAI,GAE/B0jB,GAAS,SAAAD,GAAK,kCAAUA,GAAV,IAAiB/b,KAAMmX,EAAUmG,QAAQ,EAAOU,KAAMW,EAAUX,KAAMjc,KAAMid,EAAKzB,IAAKkB,EAAOpb,YAC3G2P,GAAW,MACZ,GACHyL,EAAOQ,cAAczI,EAAK0I,aAG9BlU,SAASC,eAAe,iBAAiBkU,UAAY,yCAGzDnU,SAASC,eAAe,iBAAiBkU,UAAY,IAgHrCC,SAAU1B,EACV2B,UAAU,EACVvQ,QA3KI,WAChBiN,IACAG,EAAY0C,MAAQ7C,EAAMwB,KAAOxB,EAAM3X,IAAM,CAAC2X,GAAS,MAEvDG,IACAA,EAAYY,SAAWX,EACvBD,EAAYa,eAyKJ,uBAAK7iB,GAAG,uB,qBGlPtBolB,GAAkB,CACtB,IACA,QACA,QACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAGWC,GAAW,SAAC3lB,GAEvB,IAAM4lB,EAAsB7jB,SAAa,MACnC8jB,EAAuB9jB,SAAa,MAClC+jB,EAAgD9lB,EAAhD8lB,KAAMtd,EAA0CxI,EAA1CwI,MAAOud,EAAmC/lB,EAAnC+lB,UAAWpD,EAAwB3iB,EAAxB2iB,oBAChC,EAA0C5gB,YAAe,GAAzD,mBAAOikB,EAAP,KAAsBC,EAAtB,KACA,EAA8ClkB,YAAe,GAA7D,mBAAOmkB,EAAP,KAAwBC,EAAxB,KACA,EAA0CpkB,WAAe,MAAzD,mBAAOqkB,EAAP,KAAsBC,EAAtB,KACA,EAA8CtkB,WAAe,MAA7D,mBAAOukB,EAAP,KAAwBC,EAAxB,KACA,EAA8BxkB,YAAe,GAA7C,mBAAOghB,EAAP,KAAgB3J,EAAhB,KACA,EAAsBrX,aAAiBD,GAAhCI,EAAP,oBACA,EAA0CH,WAAe,IAAzD,mBAAOykB,EAAP,KAAsBC,EAAtB,KACA,EAA4C1kB,WAAe,IAA3D,mBAAO2kB,EAAP,KAAuBC,EAAvB,KACA,EAA4C5kB,YAAe,GAA3D,mBAAO6kB,EAAP,KAAuBC,EAAvB,KACA,EAA0B9kB,aAAiBkgB,IAA3C,mBAAOE,EAAP,KAAcC,EAAd,KAEQnZ,EAAMC,cAAND,EAEF6d,GAAQ,CACZ7a,MAAO,kBAAM4a,GAAkB,KAGjC9kB,aAAgB,WACVghB,IACFzR,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,cAChDE,aAAYH,SAASC,eAAe,aACpCG,aAAW,CAAErJ,KAAM,iBAEpB,CAAC4a,IAEJhhB,aAAgB,WAEZkkB,EADiC,qBAAxBtD,GACQA,KAIlB,CAACA,IAEJ5gB,aAAgB,WACd,GAAI+jB,EAAKxb,QAAUyb,EAAW,CAC5B,IAAIlc,GAAU,IAAI/B,MAAOgC,cACrBid,EAAcjB,EAAKxb,OAAL,kBAAyBwb,EAAKxb,QAA9B,kBAAoDpI,EAAYoI,QAC5E0c,EAAQ,UAAMjhB,0BAAN,0CAAqE7D,EAAY4S,iBAAjF,wBAAiHiS,EAAjH,cAAkIld,IhBnD/I,SAAyBW,EAAK9F,GACjC,IAAIuiB,EAAM,IAAIC,eACdD,EAAIE,mBAAqB,WACC,IAAlBF,EAAIG,YACJ1iB,EAASvF,KAAK6G,WAGtBihB,EAAII,KAAK,MAAO7c,GAChByc,EAAIphB,aAAe,OACnBohB,EAAIK,OgB2CFC,CAAgBP,GAAU,SAAUhhB,GAC9BA,EAASoe,MACXhC,EAAS,CAAEhc,KAAM,QAASge,KAAMpe,EAASoe,KAAMjc,KAAM,OAAQqC,IAAKwc,OAGpElB,EAAKnT,iBAAmBmT,EAAKnT,gBAAgB/T,OAAS,EACxD4oB,GAAY1B,EAAKnT,iBAEjB6U,GAAY,CAAC,CACXtU,SAAU,GACVhN,OAAQ,OAGX,CAAC4f,IAEJ/jB,aAAgB,WAAM,4CAEpB,gCAAAuD,EAAA,0DAEMkD,EAFN,gCAG0BoZ,GAAa1f,EAAYjB,aAC5CsI,MAAK,SAAAvD,GACJ,GAAIA,EAASC,GACX,OAAOD,EAASwD,UAN1B,OAGQie,EAHR,OASIC,GAAWD,EAAW,QACtBpB,EAAiBoB,GAVrB,uBAauBla,GAAarL,EAAYjB,aAC3CsI,MAAK,SAAAvD,GACJ,GAAIA,EAASC,GACX,OAAOD,EAASwD,UAhBxB,cAaMkI,EAbN,iBAmBwB7D,GAAY3L,EAAYjB,aAC3CsI,MAAK,SAAAvD,GACJ,GAAIA,EAASC,GACX,OAAOD,EAASwD,UAtBxB,QAmBMme,EAnBN,OA0BED,GAAWhW,EAA2B,OAAjB9O,IAAKC,SAAmB,SAAW,UACxD4jB,EAAiB/U,GACjBgW,GAAWC,EAA4B,OAAjB/kB,IAAKC,SAAmB,SAAW,UACzD8jB,EAAkBgB,GAElB/V,aAAYR,SAASC,eAAe,aACpC+H,GAAW,GAhCb,6CAFoB,sBACpBA,GAAW,GADS,mCAoCpBvH,KACC,CAACjP,IAAKC,WAETd,aAAgB,WACV/B,EAAM4nB,WACRxF,EAAS,QAEV,CAACpiB,EAAM4nB,YAEV7lB,aAAgB,WACV+jB,EAAK+B,kBACP/B,EAAKgC,aAAe,QAErB,CAAChC,EAAK+B,kBAET,IAiCA,GAAgC9lB,YAC9B,WACE,OAAI+jB,EAAKnT,iBAAmBmT,EAAKnT,gBAAgB/T,OAAS,EACjDknB,EAAKnT,gBAEP,CAAC,CACNO,SAAU,GACVhN,OAAQ,OAPd,qBAAO6hB,GAAP,MAAiBP,GAAjB,MAqEMQ,GAAsB,WACtBhC,EACEH,GAAwBA,EAAqB1R,UAC/C0R,EAAqB1R,QAAQ8T,SAAU,EACvCrC,EAAoBzR,QAAQ8T,SAAU,GAGpCpC,GAAwBA,EAAqB1R,UAC/C0R,EAAqB1R,QAAQ8T,SAAU,EACvCrC,EAAoBzR,QAAQ8T,SAAU,IAMtCP,GAAa,SAACllB,EAAO0lB,GACzB1lB,GAASA,EAAM5D,OAAS,GAAK4D,EAAMS,KAAI,SAAAF,GAAI,OAAIA,EAAKsJ,QAAU,CAAEtM,MAAOgD,EAAKmlB,QAU9E,OACE,gCACGnF,EAAU,uBAAKziB,GAAG,aACjB,uBAAKE,UAAU,YACb,2BACE,uBAAKA,UAAU,OACb,uBAAKA,UAAYwlB,EAAiC,MAAjB,eAAwBrb,QAAS,kBAAMkc,EAAkBb,KACvF7D,IAAWA,EAAM0B,SAAW1B,EAAMwB,MAASxB,EAAM0B,SAAW1B,EAAM3X,MAAQ,uBAAKK,IAAMsX,EAAM0B,SAAW1B,EAAMwB,KAAQxB,EAAM3X,OAE7H,uBAAKhK,UAAU,YACb,gBAAC,KAAD,CACEF,GAAG,OACH6nB,eAAgB,CAAEC,UAAW,OAC7BhiB,KAAK,OACLyO,YAAa5L,EAAE,6BACfof,WAAW,EACXzd,SAAS,oBACTvI,MAAOyjB,GAAQA,EAAK9Q,KACpBsT,KAAM,SAACjlB,GAAD,OAAOyiB,EAAK9Q,KAAO3R,EAAEhB,OAC3B8Q,UAAW6S,KAGdxd,GACC,gCACE,uBAAKhI,UAAU,aACb,gBAAC,KAAD,CACE4F,KAAK,WACLmiB,MAAOtf,EAAE,kBACTuf,QAAS1C,EAAK+B,gBACdY,OAAQ,SAACplB,GAAD,OA7JJ,SAACA,GACvBrD,EAAM0oB,QAAN,2BACK5C,GADL,IAEE+B,gBAAiBxkB,EAAEmlB,WAGjBnlB,EAAEmlB,SACJ1C,EAAK6C,cAAgB,EACrB3oB,EAAM4oB,uBAAuB,SAAU,cAGvC9C,EAAK6C,cAAgB,EACrB3oB,EAAM4oB,uBAAuB,MAAO,WAAY,CAAErI,SAAU,EAAC,EAAMtX,EAAE,2BAGvEkd,EAAmB9iB,EAAEmlB,SA8IYK,CAAgBxlB,IAC/B8P,UAAW6S,IAGb,gBAAC,KAAD,CACE5f,KAAK,WACLmiB,MAAOtf,EAAE,qBACTuf,QAAS1C,EAAKgD,gBACdL,OAAQ,SAACplB,GAAD,OAAOyiB,EAAKgD,gBAAkBzlB,EAAEmlB,SACxCrV,UAAW6S,OAOnBxd,KAAWsd,EAAK+B,kBAAoB3B,IACpC,uBAAK1lB,UAAU,mCACb,uBAAKA,UAAU,oBACf,uBAAKA,UAAU,SACb,yBAAOugB,QAAQ,YAAY9X,EAAE,sBAC7B,gBAAC,KAAD,CACE3I,GAAG,WACH8F,KAAK,WACL6hB,QAASzf,EACT8D,WAAY8Z,EACZha,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,KAAM8lB,eAAgB,WACrDtT,YAAa5L,EAAE,qBACf5G,MAAOyjB,GAAQA,EAAKgC,aACpBW,OAAQ,SAACplB,GAAD,OAxKF,SAACA,GACvB,IAAI0lB,EAAgB1lB,EAAE2lB,SAAW3lB,EAAE2lB,SAAS1oB,GAAK,KACjDwlB,EAAKgC,aAAeiB,EACpBjD,EAAK6C,cAAgBI,EAAgB,EAAI,EAqKVE,CAAgB5lB,IAC/B8P,UAAW6S,EACXkD,UAAWlD,MAKnB,uBAAKxlB,UAAU,mCACb,uBAAKA,UAAU,mBACf,uBAAKA,UAAU,SACb,yBAAOugB,QAAQ,SAAS9X,EAAE,kBAA1B,IAA6C,yBAAOzI,UAAU,WAAjB,MAC7C,gBAAC,KAAD,CACEF,GAAG,QACH8F,KAAK,QACL+hB,eAAgB,CAAEC,UAAW,KAC7BvT,YAAa5L,EAAE,kBACf5G,MAAOyjB,GAAQA,EAAKlX,MACpB0Z,KAAM,SAACjlB,GAAD,OAAOyiB,EAAKlX,MAAQvL,EAAEhB,OAC5B8Q,UAAW6S,MAKjB,uBAAKxlB,UAAU,mCACb,uBAAKA,UAAU,uBACf,uBAAKA,UAAU,SACb,yBAAOugB,QAAQ,YAAY9X,EAAE,sBAC7B,gBAAC,KAAD,CACE3I,GAAG,WACH8F,KAAK,WACL+iB,YAAY,EACZtU,YAAa5L,EAAE,iBACf5G,MAAOyjB,GAAQA,EAAK1T,eACpBqW,OAAQ,SAACplB,GAAD,OAAOyiB,EAAK1T,eAAiB/O,EAAEhB,MAAQgB,EAAEhB,MAAMyH,cAAckX,MAAM,KAAK,GAAK,IACrFlV,OAAQlJ,IAAKC,SACbsQ,UAAW6S,MAKjB,uBAAKxlB,UAAU,mCACb,uBAAKA,UAAU,oBACf,uBAAKA,UAAU,SACb,yBAAOugB,QAAQ,WAAW9X,EAAE,oBAA5B,IAAiD,yBAAOzI,UAAU,WAAjB,MACjD,gBAAC,KAAD,CACEF,GAAG,UACH8F,KAAK,UACL/F,IAAK,SAAAA,GAAG,OAAIulB,EAAoBzR,QAAU9T,GAC1CiM,WAAYka,EACZpa,OAAQ,CAAE3J,KAAuB,OAAjBG,IAAKC,SAAmB,SAAW,SAAUR,MAAO,KAAM8lB,eAAgB,WAC1FtT,YAAa5L,EAAE,oBACf5G,MAAOyjB,EAAKxT,OACZmW,OAAQ,SAACplB,GAAD,OAtND,SAACA,GACtB,IAAI0lB,EAAgB1lB,EAAE2lB,SAAW3lB,EAAE2lB,SAAS1oB,GAAK,KACjDwlB,EAAKxT,OAASyW,EACM,IAAhBjD,EAAKxT,SACPwT,EAAKtT,WAAa,MAEpB+T,EAAmBwC,GAgNUK,CAAe/lB,IAC9B6R,QAAS8S,GACTqB,gBAAgB,OAIA,IAApB/C,GAAyC,IAAhBR,EAAKxT,SAC9B,uBAAK9R,UAAU,mCACb,uBAAKA,UAAU,qBACf,uBAAKA,UAAU,SACb,yBAAOugB,QAAQ,YAAY9X,EAAE,sBAC7B,gBAAC,KAAD,CACE3I,GAAG,WACH8F,KAAK,WACL/F,IAAK,SAAAA,GAAG,OAAIwlB,EAAqB1R,QAAU9T,GAC3CiM,WAAYoa,EACZta,OAAQ,CAAE3J,KAAuB,OAAjBG,IAAKC,SAAmB,SAAW,SAAUR,MAAO,KAAM8lB,eAAgB,WAC1FtT,YAAa5L,EAAE,qBACf5G,MAAOyjB,GAAQA,EAAKtT,WACpBiW,OAxIO,SAACplB,GACxBrD,EAAM0oB,QAAN,2BACK5C,GADL,IAEEtT,WAAYnP,EAAE2lB,SAAW3lB,EAAE2lB,SAAS1oB,GAAK,SAsI3B4U,QAAS8S,GACTsB,iBAAe,MAMvB,uBAAK9oB,UAAU,mCACb,uBAAKA,UAAU,wBACf,uBAAKA,UAAU,gBACb,6BAAQyI,EAAE,mBACT8e,GAASjlB,QAAO,SAAAymB,GAAK,OAAqB,IAAjBA,EAAMrjB,UAActH,OAAS,GACrD,uBAAK4B,UAAU,WACb,uBAAKA,UAAU,iBAAiBmK,QAAS,WA/N1Cod,GAASjlB,QAAO,SAAAymB,GAAK,OAAqB,IAAjBA,EAAMrjB,UACnCtH,OAAS,GAClB4oB,IACE,SAAAO,GAAQ,6BAAQA,GAAR,CAAkB,CAAE7U,SAAU,GAAIhN,OAAQ,YA8NzC6hB,IAAYA,GAASnpB,OAAS,GAC7BmpB,GAAS9kB,KAAI,SAACF,EAAMG,GAAP,OAAiC,IAAhBH,EAAKmD,QACjC,uBAAK1F,UAAU,YAAY1B,IAAKoE,GAC9B,wBAAM1C,UAAU,wDACd,gBAAC,KAAD,CACEyS,KAAMyS,GACNplB,GAAG,QACHE,UAAU,kDACVqU,YAAa5L,EAAE,mBACfkf,eAAgB,CAAEC,UAAW,IAC7BjgB,KAAK,OACLqhB,gBAAiB,SACjBnnB,MAAOU,EAAOA,EAAKmQ,SAAW,GAC9B0B,SAAU,SAACvR,GAAD,OAlNd,SAACH,EAAOG,GAC1B,IAEIhB,EAAQgB,EAAE5E,OAAO4D,MAErB,GAAIA,EAAO,CACT,IAAMonB,EAAiBpnB,EAAMgE,MALX,QAKgC2d,KAAK,IAEnD+D,GAAS7kB,GAAOgQ,WAAYuW,GAA6C,IAA1B1B,GAAS7kB,GAAOgD,QAAyC,IAA1B6hB,GAAS7kB,GAAOgD,SAChG6hB,GAAS7kB,GAAOgD,OAAS,GAG3B6hB,GAAS7kB,GAAOgQ,SAAWuW,OAEO,IAA3B1B,GAAS7kB,GAAOgD,SACvB6hB,GAAS7kB,GAAOgD,OAAS,GAGK,KAA5B6hB,GAAS7kB,GAAOgQ,WAEQ,IADR4S,EAAKnT,gBAAgB7P,QAAO,SAAA4mB,GAAS,OAAIA,EAAUxW,WAAY6U,GAAS7kB,GAAOgQ,YACjFtU,QACdknB,EAAKnT,gBAAgB/N,KAAKmjB,GAAS7kB,KA6LAymB,CAAYzmB,EAAOG,OAGvC2iB,GACC,uBAAKxlB,UAAU,WACb,uBAAKA,UAAU,kBAAkBmK,QAAS,kBA3O9C,SAACzH,GACnB,IAAI0mB,EAAI,aAAO7B,IACf,GAAmB,OAAf6B,EAAK1mB,GACP,GAA4B,KAAxB0mB,EAAK1mB,GAAOgQ,SAAgB,CAC9B,IAAI2W,EAAM/D,EAAKnT,gBAAgB1P,KAAI,SAAUI,GAAK,OAAOA,EAAE6P,YAAa1T,QAAQoqB,EAAK1mB,GAAOgQ,UAGlE,IAFR4S,EAAKnT,gBAAgB7P,QAAO,SAAA4mB,GAAS,OAAIA,EAAUxW,WAAY0W,EAAK1mB,GAAOgQ,YAAU,GAEvFhN,OACd4f,EAAKnT,gBAAgBkX,GAAK3jB,OAAS,EAEnC0jB,EAAKE,OAAOD,EAAK,QAEY,IAAtBD,EAAK1mB,GAAOgD,QACrB0jB,EAAKE,OAAO5mB,EAAO,GAGvBskB,GAAYoC,GACZ9D,EAAKnT,gBAAkBiX,EA0N+CG,CAAY7mB,cAQ3E0jB,GACC,gBAAC,GAAD,CACEjE,oBAAqBqD,EACrB9f,OAAQ0gB,EACRhE,OAAQkE,QCjbTkD,GAAW,SAAChqB,GAGrB,IAAMiqB,EAAeloB,SAAa,MAC5BmoB,EAAgBnoB,SAAa,MAC7BooB,EAAkBpoB,SAAa,MAC/BqoB,EAAcroB,SAAa,MAEzB2mB,EAA8C1oB,EAA9C0oB,QAAS5C,EAAqC9lB,EAArC8lB,KAAMtd,EAA+BxI,EAA/BwI,MAAOma,EAAwB3iB,EAAxB2iB,oBAE9B,EAAsC5gB,YAAe,GAArD,mBAAOsoB,EAAP,KAAoBC,EAApB,KACA,EAAsCvoB,aAAiBD,GAAvD,mBAAOI,EAAP,KACA,GADA,KAC0CH,YAAe,IAAzD,mBAAOikB,EAAP,KAAsBC,EAAtB,KACA,EAAoClkB,WAAe,IAAnD,mBAAOwoB,EAAP,KAAmBC,EAAnB,KACA,EAAkDzoB,WAAe,IAAjE,mBAAO0oB,EAAP,KAA0BC,EAA1B,KACA,EAAgD3oB,WAAe,IAA/D,mBAAO4oB,EAAP,KAAyBC,EAAzB,KACA,EAA8C7oB,WAAe,IAA7D,mBAAO8oB,EAAP,KAAwBC,EAAxB,KAEQ7hB,EAAMC,cAAND,EAERlH,aAAgB,WACRsoB,IACA/Y,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,cAChDE,aAAYH,SAASC,eAAe,aACpCG,aAAW,CAAErJ,KAAM,iBAExB,CAACkiB,IAEJtoB,aAAgB,WAERkkB,EAD+B,qBAAxBtD,GACUA,KAItB,CAACA,IAEJ5gB,aAAgB,WAAM,4CAGlB,kCAAAuD,EAAA,sEAC4BsI,GAAqB1L,EAAYjB,YAAa2B,IAAKC,UACtE0G,MAAK,SAAAvD,GAAc,GAAIA,EAASC,GAAM,OAAOD,EAASwD,UAF/D,cACQuhB,EADR,gBAGuBtd,GAAgBvL,EAAYjB,YAAa2B,IAAKC,UAC5D0G,MAAK,SAAAvD,GAAc,GAAIA,EAASC,GAAM,OAAOD,EAASwD,UAJ/D,cAGQwhB,EAHR,gBAK6Brd,GAAsBzL,EAAYjB,YAAa2B,IAAKC,UACxE0G,MAAK,SAAAvD,GAAc,GAAIA,EAASC,GAAM,OAAOD,EAASwD,UAN/D,cAKQyhB,EALR,iBAO2B9b,GAAMjN,EAAYjB,aACpCsI,MAAK,SAAAvD,GAAc,GAAIA,EAASC,GAAM,OAAOD,EAASwD,UAR/D,QAOQ0hB,EAPR,OAUIxD,EAAWqD,EAA8B,OAAjBnoB,IAAKC,SAAmB,SAAW,UAC3D+nB,EAAoBG,GACpBrD,EAAWsD,EAAyB,OAAjBpoB,IAAKC,SAAmB,SAAW,UACtD2nB,EAAcQ,GACdtD,EAAWuD,EAA+B,OAAjBroB,IAAKC,SAAmB,SAAW,UAC5D6nB,EAAqBO,GACrBvD,EAAWwD,EAAY,QACvBJ,EAAmBI,GAEnBtZ,aAAYR,SAASC,eAAe,aACpCiZ,GAAe,GApBnB,6CAHkB,sBAClBA,GAAe,GADG,mCAyBlBzY,KACD,CAACjP,IAAKC,WAET,IAAM6kB,EAAa,SAACllB,EAAO0lB,GACvB1lB,GAASA,EAAM5D,OAAS,GAAK4D,EAAMS,KAAI,SAAAF,GAAI,OAAIA,EAAKsJ,QAAU,CAAEtM,MAAOgD,EAAKmlB,QAG1EF,EAAsB,WACpBhC,GACAmE,EAAgBhW,QAAQ8T,SAAU,EAClCgC,EAAa9V,QAAQ8T,SAAU,EAC/BiC,EAAc/V,QAAQ8T,SAAU,EAChCmC,EAAYjW,QAAQ8T,SAAU,IAE9BkC,EAAgBhW,QAAQ8T,SAAU,EAClCgC,EAAa9V,QAAQ8T,SAAU,EAC/BiC,EAAc/V,QAAQ8T,SAAU,EAChCmC,EAAYjW,QAAQ8T,SAAU,IAQtC,OACIoC,EAAc,uBAAK/pB,GAAG,aAClB,uBAAKE,UAAU,YACX,uBAAKA,UAAU,0CACX,uBAAKA,UAAU,uBACf,8BAAMyI,EAAE,kBAAR,MAEJ,uBAAKzI,UAAU,4CACX,uBAAKA,UAAU,SACX,yBAAOugB,QAAQ,cAAf,IAA8B9X,EAAE,4BAAhC,KACA,gBAAC,KAAD,CACI3I,GAAG,aACHsK,SAAWob,EAAqB,WAAL,GAC3BmD,YAAY,EACZtU,YAAa5L,EAAE,iBACf5G,MAAOyjB,GAAQA,EAAKqF,eACpB1C,OApBA,SAAAplB,GACpBqlB,GAAQ,SAAA5C,GAAI,kCAAUA,GAAV,IAAgBqF,eAAgB9nB,EAAEhB,YAoB1ByJ,OAAQlJ,IAAKC,SACbsQ,UAAW6S,KAGnB,uBAAKxlB,UAAU,SACX,yBAAOugB,QAAQ,SAAf,IAAyB9X,EAAE,uBAA3B,KACA,gBAAC,KAAD,CACI3I,GAAG,QACHsK,SAAWob,EAAqB,WAAL,GAC3BnR,YAAa5L,EAAE,qBACfmiB,eAAgB,CAAEhD,UAAW,KAC7B/lB,MAAOyjB,GAAQA,EAAKuF,MACpBlY,UAAW6S,EACXsC,KAAM,SAACjlB,GAAD,OAAOqlB,GAAQ,SAAA5C,GAAI,kCAAUA,GAAV,IAAgBuF,MAAOhoB,EAAEhB,eAG1D,uBAAK7B,UAAU,SACX,yBAAOugB,QAAQ,aAAf,IAA6B9X,EAAE,yBAA/B,KACA,gBAAC,KAAD,CACI3I,GAAG,YACHsK,SAAWob,EAAqB,WAAL,GAC3BnR,YAAa5L,EAAE,uBACfmiB,eAAgB,CAAEhD,UAAW,KAC7B/lB,MAAOyjB,GAAQA,EAAKwF,UACpBhD,KAAM,SAACjlB,GAAD,OAAOqlB,GAAQ,SAAA5C,GAAI,kCAAUA,GAAV,IAAgBwF,UAAWjoB,EAAEhB,YACtD8Q,UAAW6S,MAIvB,uBAAKxlB,UAAU,OACVgI,GACG,uBAAKhI,UAAU,aACX,gBAAC,KAAD,CACI+nB,MAAOtf,EAAE,uBACTuf,QAAS1C,EAAKyF,cACd9C,OAAQ,SAACplB,GAAD,OAAOqlB,GAAQ,SAAA5C,GAAI,kCAAUA,GAAV,IAAgByF,cAAeloB,EAAEmlB,cAC5DrV,UAAW6S,KAIvB,uBAAKxlB,UAAU,SACX,yBAAOugB,QAAQ,cAAf,IAA8B9X,EAAE,0BAAhC,KACA,gBAAC,KAAD,CACI3I,GAAG,aACH+nB,WAAW,EACXxT,YAAa5L,EAAE,0BACfmiB,eAAgB,CAAEhD,UAAW,KAC7B/lB,MAAOyjB,GAAQA,EAAK0F,mBACpBlD,KAAM,SAACjlB,GAAD,OAAOqlB,GAAQ,SAAA5C,GAAI,kCAAUA,GAAV,IAAgB0F,mBAAoBnoB,EAAEhB,YAC/D8Q,UAAW6S,MAIvB,uBAAKxlB,UAAU,0CACX,uBAAKA,UAAU,SACX,yBAAOugB,QAAQ,gBAAf,IAAgC9X,EAAE,uBAAlC,IAA0D,yBAAOzI,UAAU,WAAWslB,EAAK+B,iBAAmB,MAC9G,gBAAC,KAAD,CACIvnB,GAAG,eACH8F,KAAK,eACL/F,IAAK4pB,EACLrf,SAAWob,EAAqB,WAAL,GAE3B1Z,WAAYme,EACZre,OAAQ,CAAE3J,KAAyB,OAAlBG,IAAKC,SAAoB,SAAW,SAAUR,MAAO,KAAM+oB,eAAgB,WAC5FvW,YAAa5L,EAAE,uBACf5G,MAAOyjB,GAAQA,EAAK2F,qBACpBhD,OAAQ,SAACplB,GAAD,OAAOqlB,GAAQ,SAAA5C,GAAI,kCAAUA,GAAV,IAAgB2F,qBAAsBpoB,EAAE2lB,SAAW3lB,EAAE2lB,SAAS1oB,GAAK,WAC9F4U,QAAS8S,EACTsB,iBAAe,KAGvB,uBAAK9oB,UAAU,SACX,yBAAOugB,QAAQ,YAAf,IAA4B9X,EAAE,uBAA9B,IAAsD,yBAAOzI,UAAU,WAAWslB,EAAK+B,iBAAmB,MAC1G,gBAAC,KAAD,CACIvnB,GAAG,WACH8F,KAAK,WACL/F,IAAK6pB,EACLtf,SAAWob,EAAqB,WAAL,GAC3B1Z,WAAYqe,EACZve,OAAQ,CAAE3J,KAAuB,OAAjBG,IAAKC,SAAmB,SAAW,SAAUR,MAAO,KAAM+oB,eAAgB,WAC1FvW,YAAa5L,EAAE,8BACf5G,MAAOyjB,GAAQA,EAAK4F,iBACpBjD,OAAQ,SAACplB,GAAD,OAAOqlB,GAAQ,SAAA5C,GAAI,kCAAUA,GAAV,IAAgB4F,iBAAkBroB,EAAE2lB,SAAW3lB,EAAE2lB,SAAS1oB,GAAK,WAC1F4U,QAAS8S,EACTsB,iBAAe,KAIvB,uBAAK9oB,UAAU,SACX,yBAAOugB,QAAQ,QAAf,IAAwB9X,EAAE,0BAA1B,IAAqD,yBAAOzI,UAAU,WAAWslB,EAAK+B,iBAAmB,MACzG,gBAAC,KAAD,CACIvnB,GAAG,OACH8F,KAAK,OACL/F,IAAK8pB,EACLvf,SAAWob,EAAqB,WAAL,GAE3B1Z,WAAYie,EACZne,OAAQ,CAAE3J,KAAuB,OAAjBG,IAAKC,SAAmB,SAAW,SAAUR,MAAO,KAAM+oB,eAAgB,WAC1FvW,YAAa5L,EAAE,qBACf5G,MAAOyjB,GAAQA,EAAK6F,aACpBlD,OAAQ,SAACplB,GAAD,OAAOqlB,GAAQ,SAAA5C,GAAI,kCAAUA,GAAV,IAAgB6F,aAActoB,EAAE2lB,SAAW3lB,EAAE2lB,SAAS1oB,GAAK,WACtF4U,QAAS8S,EACTsB,iBAAe,KAIvB,uBAAK9oB,UAAU,SACX,yBAAOugB,QAAQ,YAAf,IAA4B9X,EAAE,6BAA9B,KACA,gBAAC,KAAD,CACI3I,GAAG,WACHsK,SAAWob,EAAqB,WAAL,GAC3B3lB,IAAK+pB,EAEL9d,WAAYue,EACZze,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,KAAM+oB,eAAgB,WACrDvW,YAAa5L,EAAE,iBACf5G,MAAOyjB,GAAQA,EAAK8F,iBACpBnD,OAAQ,SAACplB,GAAD,OAAOqlB,GAAQ,SAAA5C,GAAI,kCAAUA,GAAV,IAAgB8F,iBAAkBvoB,EAAE2lB,SAAW3lB,EAAE2lB,SAAS1oB,GAAK,WAC1F4U,QAAS8S,EACTsB,iBAAe,MAI3B,uBAAK9oB,UAAU,OACX,uBAAKA,UAAU,SACX,yBAAOugB,QAAQ,YAAf,IAA4B9X,EAAE,8BAA9B,KACA,gBAAC,KAAD,CACI3I,GAAG,WACH+nB,WAAW,EACXxT,YAAa5L,EAAE,oBACfmiB,eAAgB,CAAEhD,UAAW,KAC7B/lB,MAAOyjB,GAAQA,EAAK+F,iBACpBpD,OAAQ,SAACplB,GAAD,OAAOqlB,GAAQ,SAAA5C,GAAI,kCAAUA,GAAV,IAAgB+F,iBAAkBxoB,EAAEhB,YAC/D8Q,UAAW6S,Q,UC9OnC8F,I,OAAiB,IAERC,GAAU,SAAC/rB,GAKpB,IAAQgsB,EAAahsB,EAAbgsB,SACA/iB,EAAMC,cAAND,EACR,EAA8BlH,YAAe,GAA7C,mBACA,GADA,UACsCA,aAAiBD,IAAvD,mBAAOI,EAAP,UAEAH,aAAgB,WACZ,GAAIiqB,EAASC,KAAM,CACf,IAAIC,EAAoBhqB,EAAYR,YACpCoqB,GAAiBI,EAAkBppB,QAAO,SAACpE,GAAD,OAAOA,EAAEiD,aAAeqqB,EAASC,QAAMhpB,KAAI,SAACvE,GAAD,OAAQA,EAAEkD,iBAEpG,CAACM,IAyBJ,OACI,gCAEI,uBAAK1B,UAAS,kBAAawrB,EAASxP,QAChC,uBAAKhc,UAAU,0CACX,uBAAKA,UAAU,sBACf,0BAAKyI,EAAE,mBASV+iB,EAASG,YACN,uBAAK3rB,UAAU,aACX,gBAAC,KAAD,CACIF,GAAG,UACHsK,SAAS,mBACTD,QAASqhB,EAASG,YACpBljB,EAAE,qBAGZ,uBAAKzI,UAAU,8BACVwrB,EAASI,WACN,gBAAC,KAAD,CACI9rB,GAAG,SACHsK,SAAS,mBACTD,QAASqhB,EAASI,WACpBnjB,EAAE,mBAEP+iB,EAASK,qBACN,gBAAC,KAAD,CACI/rB,GAAG,mBACHsK,SAAS,mBACTD,QAASqhB,EAASK,qBACpBpjB,EAAE,6BAEP+iB,EAASM,YACN,gBAAC,KAAD,CACIhsB,GAAG,UACHsK,SAAS,mBACTD,QAASqhB,EAASM,YACpBrjB,EAAE,oBAEP+iB,EAASO,cACN,gBAAC,KAAD,CACIjsB,GAAG,YACHsK,SAAS,mBACTD,QAASqhB,EAASO,cACpBtjB,EAAE,sBAEP+iB,EAASQ,kBACN,gBAAC,KAAD,CACIlsB,GAAG,GACHsK,SAAS,YACTD,QAASqhB,EAASQ,kBACpBvjB,EAAE,8BArEqB,qBAA9B+iB,EAASS,kBACRT,EAASU,SAAWxqB,EAAYb,WACnC2qB,EAASC,OAC8B,IAApCH,GAAetsB,QAAQ,WAAyD,IAAvCssB,GAAetsB,QAAQ,iBAA6D,IAAxCssB,GAAetsB,QAAQ,oBAAsBwsB,EAASrJ,oBAG5IqJ,EAASS,oBAkEJ,gBAAC,KAAD,CACInsB,GAAG,OACHsK,SAAQ,UAAKohB,EAASW,aAAe,SAA7B,cACRC,KAAMZ,EAASY,KACfjiB,QAASqhB,EAASU,QAClBvZ,SAAUnT,EAAMmT,UAClBlK,EAAE,iBAEP+iB,EAASa,SACN,gBAAC,KAAD,CACIvsB,GAAG,GACH6S,SAAU6Y,EAASc,aACnBliB,SAAS,YACTD,QAASqhB,EAASa,SACpB5jB,EAAE,iBAEP+iB,EAASe,WACN,gBAAC,KAAD,CACIzsB,GAAG,SACHsK,SAAQ,iBAAYohB,EAASgB,eAAiB,YAAc,YAC5DriB,QAASqhB,EAASe,WACpB9jB,EAAE,oBAxG2B,qBAApC+iB,EAASiB,wBACRjB,EAASkB,WAAahrB,EAAYb,WACrC2qB,EAASC,OAC8B,IAApCH,GAAetsB,QAAQ,WAAyD,IAAvCssB,GAAetsB,QAAQ,eAGjEwsB,EAASiB,0BAqGJ,gBAAC,KAAD,CACI3sB,GAAG,UACHsK,SAAS,kBACTD,QAASqhB,EAASkB,WACpBjkB,EAAE,uB,SCpIfkkB,GAAiB,WAE1B,MAAoCprB,aAAiB+B,GAArD,mBACA,GADA,UACsC/B,aAAiBD,IAAvD,mBAAOI,EAAP,KACA,GADA,KAC0CH,YAAe,IAAzD,mBAAOqrB,EAAP,KAAsBC,EAAtB,KACA,EAA8CtrB,YAAe,GAA7D,mBAAOurB,EAAP,KAAwBC,EAAxB,KACA,EAA8CxrB,YAAe,GAA7D,mBAAOyrB,EAAP,KAAwBC,EAAxB,KACA,EAA4C1rB,YAAe,GAA3D,mBAAO2rB,EAAP,KAAuBC,EAAvB,KACA,EAAkD5rB,YAAe,GAAjE,mBAAO6rB,EAAP,KAA0BC,EAA1B,KAEQ5kB,EAAMC,cAAND,EAER,EAA6D6kB,aAAQ,CAAEC,kBAAkB,IAAjFC,EAAR,EAAQA,aAAcC,EAAtB,EAAsBA,SAAUC,EAAhC,EAAgCA,kBAAmBC,EAAnD,EAAmDA,MAC7CC,EAAyB,CAAEhoB,KAAM,WAAY+B,KAAM,WAAYkmB,UAAW,OAEhFtsB,aAAgB,WACRa,IAAKC,WACLgrB,GAAqB,GACrBvc,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,uBAChDE,aAAYH,SAASC,eAAe,sBACpCG,aAAW,CAAErJ,KAAM,iBAExB,CAACvF,IAAKC,WAETd,aAAgB,WACP6rB,GACDhc,aAAYR,SAASC,eAAe,sBACxCwc,GAAqB,KACtB,CAACD,IAGJ,IAAMU,EAAQ,uCAAG,WAAO9pB,GAAP,SAAAc,EAAA,sDAEbqK,GAAgBzN,EAAYjB,YAAauD,EAAK+pB,aACzChlB,MAAK,SAAAvD,GACEA,EAASC,KACT0nB,GAAkB,GAClBvc,SAASC,eAAe,gBAAgBhP,MAAO,GAC/C+O,SAASC,eAAe,mBAAmBhP,MAAO,OAGzDqH,OAAM,SAAAC,GACHC,QAAQD,MAAMA,GACd0jB,GAAiB,GACjBE,GAAmB,MAbd,2CAAH,sDAiBViB,EAAc,uCAAG,kCAAAlpB,EAAA,sEACU4oB,EAAkB,eAD5B,cACXO,EADW,gBAEYP,EAAkB,mBAF9B,OAEXQ,EAFW,OAGXC,EAAaR,EAAM,eACnBS,EAAeT,EAAM,mBAE3Bd,EAAiBoB,GACjBlB,EAAmBmB,GAEdtB,GAAkBE,IACnBD,GAAiB,GACjBE,GAAmB,IAGnBqB,IAAgBD,GAChBlB,GAAmB,GAGlBmB,IAAgBD,GAAevB,GAAiBE,GACjDU,EAAaM,EAAbN,GAnBa,4CAAH,qDAwBlB,OACI,gCACI,uBAAK1tB,GAAG,uBACNstB,GACE,uBAAKptB,UAAU,kBACX,uBAAKA,UAAU,0CACX,uBAAKA,UAAU,mBACf,0BAAKyI,EAAE,0BAEX,wBAAMzI,UAAU,8BACZ,uBAAKA,UAAU,SACX,yBAAOugB,QAAQ,eAAe9X,EAAE,yBAChC,gBAAC,KAAD,CACI3I,GAAG,eACH8F,KAAK,cACLwE,SAAWwiB,GAAkBI,EAAuC,WAArB,mBAC/C3Y,YAAa5L,EAAE,yBACfmiB,eAAgBgD,EAChB/tB,IAAK4tB,EAAS,CACV1N,UAAU,EACVsO,QAAS,CACLxsB,MAAO,4EAIvB,uBAAK7B,UAAU,SACX,yBAAOugB,QAAQ,mBAAmB9X,EAAE,0BACpC,gBAAC,KAAD,CACI3I,GAAG,kBACH8F,KAAK,kBACLwE,SAAW0iB,GAAoBE,EAAuC,WAArB,mBACjD3Y,YAAa5L,EAAE,6BACfmiB,eAAgBgD,EAChB/tB,IAAK4tB,EAAS,CACV1N,UAAU,EACVsO,QAAS,CACLxsB,MAAO,8EAKpB+qB,IAAkBE,IACjB,uBAAK9sB,UAAU,QACX,wBAAMA,UAAU,YAAYyI,EAAE,qCAGpCukB,GACE,uBAAKhtB,UAAU,QACX,wBAAMA,UAAU,YAAYyI,EAAE,sCAGrCykB,GACG,uBAAKltB,UAAU,QACX,wBAAMA,UAAU,aAAayI,EAAE,mCAIvC,gBAAC,KAAD,CACI3I,GAAG,iBACHsK,SAAS,sBACTD,QAAS,kBAAM6jB,KACfrmB,KAAK,UACPc,EAAE,6BC5If6lB,GAAW,SAAC,GAAgB,IAAdC,EAAa,EAAbA,OAEvB,EAAsBpmB,qBAAW7G,GAA1BI,EAAP,oBACA,EAAgD0G,mBAAS,IAAzD,mBAAOomB,EAAP,KAAyBC,EAAzB,KACA,EAAkCrmB,mBAAS,MAA3C,mBAAOsmB,EAAP,KAAkBC,EAAlB,KAEA9lB,qBAAU,WAAM,4CACZ,kCAAA/D,EAAA,sEAC2B8K,GAAYlO,EAAYjB,YAAa8tB,GAAQxlB,MAAK,SAAAwI,GACrE,GAAIA,EAAI9L,GACJ,OAAO8L,EAAIvI,UAHvB,OACU4lB,EADV,SAMwBC,EAAaD,GANrC,mBAMWE,EANX,KAQIH,EAAaG,GARjB,4CADY,uBAAC,WAAD,wBAaZC,KACD,IAEH,IAAMF,EAAe,SAACG,GAClB,IAAcC,EAAkB/wB,EAA5BuE,EAAM,GAAUysB,EAAQ,GAE5B,IAAKhxB,EAAI,EAAGA,EAAI8wB,EAAK5wB,OAAQF,GAAK,EAC9BuE,EAAIusB,EAAK9wB,GAAG4B,IAAM5B,EAClB8wB,EAAK9wB,GAAGuD,SAAW,GAGvB,IAAKvD,EAAI,EAAGA,EAAI8wB,EAAK5wB,OAAQF,GAAK,GAC9B+wB,EAAOD,EAAK9wB,IACHixB,QAELH,EAAKvsB,EAAIwsB,EAAKE,UAAU1tB,SAAS2C,KAAK6qB,GAEtCC,EAAM9qB,KAAK6qB,GAGnB,OAAOC,GAGLE,EAAS,SAATA,EAAU,GAAc,IAAZ7sB,EAAW,EAAXA,KAId,OAHIA,GAAQA,EAAKd,SAASrD,OAAS,GAC/BqwB,EAAoBlsB,EAAKd,UAGzB,oCACMitB,GAAansB,IAASA,EAAKd,SAASrD,OAAS,GAAkC,IAA7BswB,EAAUjtB,SAASrD,SAAgB,oCACnF,yBAAK4B,UAAU,aACX,yBAAKA,UAAS,mBAAcuC,EAAKzC,KAAMyuB,EAAS,UAAY,KACvDhsB,EAAK8sB,WAAa,yBAAKrvB,UAAU,eAClC,yBAAKA,UAAU,aACX,uBAAGyW,KAAI,mBAAclU,EAAKzC,KAAM,0BAAME,UAAU,QAAQuC,EAAKqD,OAC7D,0BAAM5F,UAAU,QAAQuC,EAAKC,MAC7B,0BAAMxC,UAAU,SAASuC,EAAK+sB,QAElC,yBAAKjlB,IAAG,UAAK9E,0BAAL,0CAAoE7D,EAAY4S,iBAAhF,mBAA2G/R,EAAKzC,GAAhH,gBAAkIyU,IAAI,MAElJ,yBAAKvU,UAAU,wBAEjBuC,EAAKd,UAAYc,EAAKd,SAASrD,OAAS,GAAK,kBAACgxB,EAAD,CAAQ7sB,KAAMA,EAAKd,SAAS,QAO3F,OACI,yBAAKzB,UAAU,YAEX,yBAAKA,UAAU,0CACX,yBAAKA,UAAU,wBACf,2CAEJ,yBAAKA,UAAU,WACX,yBAAKA,UAAU,UACV0uB,GAAa,kBAACU,EAAD,CAAQ7sB,KAAMmsB,KAEhC,yBAAK1uB,UAAU,aACVwuB,GACGA,EAAiB/rB,KAAI,SAACvE,EAAGwE,GAAJ,OACjB,yBAAKpE,IAAKoE,EAAO1C,UAAU,gBACvB,yBAAKA,UAAS,mBAAc9B,EAAE4B,KAAMyuB,EAAS,UAAY,KACpDrwB,EAAEmxB,WAAa,yBAAKrvB,UAAU,eAC/B,yBAAKA,UAAU,aACX,uBAAGyW,KAAI,mBAAcvY,EAAE4B,KAAM,0BAAME,UAAU,QAAQ9B,EAAE0H,OACvD,0BAAM5F,UAAU,QAAQ9B,EAAEsE,MAC1B,0BAAMxC,UAAU,SAAS9B,EAAEoxB,QAE/B,yBAAKjlB,IAAG,UAAK9E,0BAAL,0CAAoE7D,EAAY4S,iBAAhF,mBAA2GpW,EAAE4B,GAA7G,gBAA+HyU,IAAI,cC9ElKgb,I,OAAU,SAAC/vB,GAEpB,MAAsC+B,aAAiBD,GAAvD,mBAAOI,EAAP,KAAoBC,EAApB,KACA,EAAgCJ,WAAe,IAA/C,mBAAOiuB,EAAP,KAAiBC,EAAjB,KACA,EAAgCluB,YAAe,GAA/C,mBAAO6D,EAAP,KAAiBsL,EAAjB,KACA,EAAsDnP,YAAe,GAArE,mBAAO4gB,EAAP,KAA4BuN,EAA5B,KACA,EAA0BnuB,aAAiBkgB,IAA3C,mBAAOE,EAAP,KACA,GADA,KACkCpgB,YAAe,IAAjD,mBAAOouB,EAAP,KAAkB1R,EAAlB,KACA,EAAsC1c,YAAe,GAArD,mBAAOquB,EAAP,KAAoBC,EAApB,KAEQpnB,EAAMC,cAAND,EAEJ8lB,EAAS/uB,GAASA,EAAMqG,MAAMiqB,QAAUtwB,EAAMqG,MAAMiqB,OAAOhwB,GAAKN,EAAMqG,MAAMiqB,OAAOhwB,GAAK4B,EAAYoI,OAElGimB,EAAY,CACd/T,MAAO,UACPmQ,aAAa,EACbF,kBAAmBsC,IAAU7sB,EAAYoI,OACzC0iB,gBAAgB,EAChBwD,QAAS,GACTrE,WAAY,GACZI,aAAc,GACdG,QAAS,kBAAM+D,KACf5D,QAAS,GACTE,UAAW,kBAAM7b,GAAY,IAC7Bgc,UAAW,GACXjB,MAAM,EACNtJ,uBAGJ5gB,aAAgB,WAAM,4CACpB,4BAAAuD,EAAA,sEACwB8J,GAAWlN,EAAYjB,YAAa8tB,GAAQxlB,MAAK,SAAAwI,GACrE,GAAIA,EAAI9L,GACN,OAAO8L,EAAIvI,UAHjB,QACQmH,EADR,UAOIA,EAAQrG,OAASykB,EAEjBmB,EAAuBhuB,EAAYoI,QAAUqG,EAAQrG,QACrD2lB,EAAYtf,IAVhB,4CADoB,uBAAC,WAAD,wBAcpB+f,KACC,IAEH3uB,aAAgB,WACZuP,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,oBAChDE,aAAYH,SAASC,eAAe,mBACpCG,aAAW,CAAErJ,KAAM,gBACpB,CAACgoB,IAEJpuB,aAAgB,WAAM,4CAClB,4BAAAuD,EAAA,sEAC2B+J,GAAUnN,EAAYjB,aADjD,QACQ0vB,EADR,SAGsB5B,IACd4B,EAAaA,EAAW7tB,QAAO,SAAApE,GAAC,OAAIA,EAAE4L,SAAUykB,KAAQ,GACxDkB,GAAY,SAAAD,GAAQ,kCACbA,GADa,IAEhBjB,OAAQiB,EAASjB,aAP7B,4CADkB,uBAAC,WAAD,wBAYlBld,KACD,CAACjP,IAAKC,WAET,IAAI4tB,EAAc,uCAAG,oCAAAnrB,EAAA,yDACjB+qB,GAAe,GACf5R,GAAa,IACTja,EAAOwrB,GACNY,QAAUzO,GAASA,EAAMwB,IAAMxB,EAAMwB,IAAI3C,MAAM,KAAK,GAAK,KAE1D6P,EAAc3uB,EAAYX,SAE1ByuB,EAASxd,cAAT,UAAwBtQ,EAAYX,gBAApC,aAAwB,EAAsBjB,IARjC,iCASYuN,GAAY3L,EAAYjB,aATpC,YASP6vB,EATO,QAWE7qB,GAXF,kCAYS6qB,EAAWtnB,OAZpB,QAYH+I,EAZG,QAcTse,EAActe,EAAIzP,QAAO,SAAAvB,GAAQ,OAAIA,EAASjB,KAAM0vB,EAASxd,eAE7C5T,OAAS,IACrBiyB,EAAcA,EAAY,IAjBrB,QAuBjBnhB,GAAgBxN,EAAYjB,YAAauD,GACpC+E,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAGvBD,MAAK,SAAAE,GACFtH,GAAe,SAAAD,GAAW,kCACnBA,GADmB,IAEtBhB,SAAU8uB,EAAShb,KACnB7T,UAAWe,EAAYf,UACvBI,SAAUsvB,OAEd3f,GAAY,GACZmf,GAAe,MAElB3mB,OAAM,SAAAC,GACHC,QAAQD,MAAMA,GACd0mB,GAAe,MAzCN,4CAAH,qDA6ClB,OACI,gCACiC,OAA5BnuB,EAAYjB,YAAuB,gBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WACzDzE,EAAW,gBAAC,IAAD,CAAUhB,MAAM,EAAMyF,GAAG,MAChC,gCACI,uBAAK7J,UAAU,eACf,gBAACwM,EAAA,EAAD,KACI,gBAAC2U,GAAA,EAAD,KACI,uBAAKnhB,UAAU,mBACX,gBAAC,GAAD,CACImiB,oBAAqBA,EACrBoD,WAAW,EACX6B,WAAW,EACXpf,OAAO,EACPsd,KAAMkK,EACNtH,QAASuH,KAGjB,uBAAKzvB,UAAS,mBACV,gBAAC,GAAD,CACImiB,oBAAqBA,EACrBmD,KAAMkK,IAETA,EAASlH,iBAAmB,gBAAC,GAAD,CAAUiG,OAAQA,KAEnD,uBAAKvuB,UAAU,mBACb,gBAAC,GAAD,CAAS2S,SAAUid,EAAapE,SAAUuE,IAEtC5N,GAAuB,gCACnB,gBAAC,GAAD,OAGPqN,EAASe,YACR,uBAAKvwB,UAAU,WACb,uBAAKA,UAAU,0CACb,uBAAKA,UAAU,uBACf,0BAAKyI,EAAE,oBAEP,uBAAKzI,UAAU,8BACb,uBAAKA,UAAU,oBACb,uBAAKA,UAAU,QACb,wBAAMA,UAAU,QAAQwvB,EAAShb,MACjC,wBAAMxU,UAAU,QAAS,IAAIsH,KAAKkoB,EAASe,YAAahpB,mBAAmBnF,IAAKC,UAAhF,IAA6F,IAAIiF,KAAKkoB,EAASe,YAAa/oB,mBAAmBpF,IAAKC,SAAU,CAAEmuB,QAAQ,MAE1K,uBAAKxwB,UAAU,UACb,4BAAwB,OAAjBoC,IAAKC,SAAmB,kBAAc,iBASnE,gBAAC,KAAD,CACIvC,GAAG,UACHJ,MAAM,QACNwe,SAAS,EACTvC,QAASgU,EACTrkB,OAAQlJ,IAAKC,UAEb,uBAAKvC,GAAG,wB,iICxKvB2wB,I,OAAY,SAACjxB,GAExB,IAAQkxB,EAA+ClxB,EAA/CkxB,WAAYC,EAAmCnxB,EAAnCmxB,iBAAkBpP,EAAiB/hB,EAAjB+hB,aAEhCqP,EAAoB7gB,iBAAO,MAC3B8gB,EAAW9gB,iBAAO,MAClB+gB,EAAU/gB,iBAAO,MACjBghB,EAAUhhB,iBAAO,MACjBihB,EAAWjhB,iBAAO,MAClBkhB,EAAclhB,iBAAO,MACrBmhB,EAAiBnhB,iBAAO,MACxBohB,EAAiBphB,iBAAO,MACxBqhB,EAAkBrhB,iBAAO,MACzBshB,EAAgBthB,iBAAO,MACvBuhB,EAAcvhB,iBAAO,MAE3B,EAAsBxO,IAAM4G,WAAW7G,GAAhCI,EAAP,oBAEA,EAA0CH,IAAM6G,SAAS,MAAzD,mBAAOmpB,EAAP,KAAsBC,EAAtB,KACA,EAAgCjwB,IAAM6G,SAAS,IAA/C,mBAAOqpB,EAAP,KAAiBC,EAAjB,KACA,EAAkDnwB,IAAM6G,SAAS,IAAjE,mBAAOupB,EAAP,KAA0BC,EAA1B,KACA,EAAkDrwB,IAAM6G,SAAS,IAAjE,mBAAOypB,EAAP,KAA0BC,EAA1B,KACA,EAAsDvwB,IAAM6G,SAAS,IAArE,mBAAO2pB,EAAP,KAA4BC,EAA5B,KACA,EAAwDzwB,IAAM6G,SAAS,IAAvE,mBAAO6pB,EAAP,KAA6BC,EAA7B,KACA,EAAsD3wB,IAAM6G,SAAS,IAArE,mBAAO+pB,EAAP,KAA4BC,EAA5B,KACA,EAAoD7wB,IAAM6G,SAAS,IAAnE,mBAAOiqB,EAAP,KAA2BC,GAA3B,KACA,GAAkD/wB,IAAM6G,SAAS,IAAjE,qBAAOmqB,GAAP,MAA0BC,GAA1B,MACA,GAAoEjxB,IAAM6G,SAAS,IAAnF,qBAAOqqB,GAAP,MAAqCC,GAArC,MACA,GAAgDnxB,IAAM6G,SAAS,IAA/D,qBAAOuqB,GAAP,MAAyBC,GAAzB,MACA,GAAgCrxB,IAAM6G,UAAS,GAA/C,qBAAO6W,GAAP,MAAkBrG,GAAlB,MAEA,GAAsCxQ,oBAAS,GAA/C,qBAAOyqB,GAAP,MAAoBC,GAApB,MAEA,GAA8BvxB,IAAM6G,SAAS,IAA7C,qBAAOmH,GAAP,MAAgBwjB,GAAhB,MAEAxxB,IAAMsH,WAAU,WACVoW,IAAarO,SAASC,eAAe,mBACvCC,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,mBAChDE,aAAYH,SAASC,eAAe,kBACpCG,aAAW,CAAErJ,KAAM,iBAEpB,CAACsX,KAEJ,OAAkC1d,IAAM6G,UAAS,GAAjD,qBAAO4qB,GAAP,MAAkBC,GAAlB,MACQxqB,GAAMC,cAAND,EACJ2L,GAAW,SAACjB,EAAMlR,GACpB,IAAMixB,EAAW/f,EAAKgK,QAAQrd,GACxByC,EAAO4Q,EAAKqV,SAClB,IAAIjmB,GAA2B,kBAAZA,EAAKzC,IAAoBmC,EAA5C,CAIA,IAAMD,EAAQmR,EAAKtR,OAASsR,EAAKtR,MAAMzD,OAAS,EAAI+U,EAAKtR,MAAMY,KAAI,SAAA0wB,GAAC,OAAIC,SAASD,MAAMhgB,EAAKtR,MAExFwxB,EAAU,aAAO9jB,IACjB2G,EAAWmd,EAAWC,WAAU,SAAAH,GAAC,OAAIA,EAAE70B,MAAQ40B,MACjC,IAAdhd,GACJmd,EAAW/J,OAAOpT,EAAU,GAE5B,IAAMqd,EAAe,aAAOF,GAE5B,GAAI9wB,EAAM,CACR,IAAIG,EAAQ6wB,EAAgBD,WAAU,SAAAE,GAAK,OAAIA,EAAMl1B,MAAQ40B,GAAYM,EAAM3xB,QAAUU,EAAKzC,MAC1F4C,GAAS,EACX6wB,EAAgB7wB,GAAOb,MAAMuC,KAAK7B,EAAKzC,IAEvCyzB,EAAgBnvB,KAAK,CAAE9F,IAAK40B,EAAUrxB,MAAO,CAACU,EAAKzC,IAAKmS,OAAQ1P,EAAK0P,OAAQC,OAAQ3P,EAAK2P,cAEvF,GAAIlQ,GAASA,EAAM5D,OAAS,EAAG,CACpC,IAAIsE,EAAQ6wB,EAAgBD,WAAU,SAAAE,GAAK,OAAIA,EAAMl1B,MAAQ40B,KAEzDxwB,GAAS,EACX6wB,EAAgB7wB,GAAOb,MAAQG,EAE/BuxB,EAAgBnvB,KAAK,CAAE9F,IAAK40B,EAAUrxB,MAAOG,QAE1C,CACH,IAAIU,EAAQ6wB,EAAgBD,WAAU,SAAAE,GAAK,OAAIA,EAAMl1B,MAAQ40B,MAChD,IAAXxwB,GACF6wB,EAAgBjK,OAAO5mB,EAAO,GAEhCqwB,GAAWQ,QAhCXpgB,EAAKgK,QAAQtb,MAAQ,IAmCnB4xB,GAAa,SAAC5wB,EAAGqwB,GAErB,KADkB3jB,GAAQjN,QAAO,SAACoxB,GAAD,OAAOA,EAAEp1B,MAAQ40B,KAAU90B,OAarD,CACL,IAAMu1B,EAAS,aAAOpkB,IACTokB,EAAU9rB,MAAK,SAAA6rB,GAAC,OAAIA,EAAEp1B,MAAQ40B,KACtCrxB,MAAM,GAAKgB,GAAKA,EAAEhB,MAAQgB,EAAEhB,MAAQgB,GAAKA,EAAE5E,OAAS4E,EAAE5E,OAAO4D,MAAQ,GAC1EkxB,GAAWY,OAhBG,CACd,IAAMxgB,EAAO,CACXgK,QAAS,CACPrd,GAAIozB,GAEN1K,SAAU,CACR1oB,GAAI+C,GAAKA,EAAEhB,MAAQgB,EAAEhB,MAAQgB,GAAKA,EAAE5E,OAAS4E,EAAE5E,OAAO4D,MAAQ,KAG9DsR,EAAKqV,SAAS1oB,IAChBsU,GAASjB,GAAM,KAUrB5R,IAAMsH,WAAU,WACd+P,IAAW,GAEX,WACE,IAAIgb,EAAW,CACb,IAAI9kB,SAAQ,SAACC,EAASC,GACpBL,GAAMjN,EAAYjB,aACfsI,MAAK,SAAAvD,GACAA,EAASC,GACXD,EAASwD,OAAOD,MAAK,SAAA8qB,GACnBrC,EAAiBqC,GACjB9kB,OAIFyiB,EAAiB,UAIzB,IAAI1iB,SAAQ,SAACC,EAASC,GACpBH,GAAUnN,EAAYjB,aAAasI,MAAK,SAAAonB,GACtC,IAAM0D,EAAS1D,EAAW7tB,QAAO,SAAAwxB,GAE/B,OADAA,EAAKC,YAAcD,EAAKC,aAAe,IAAIzsB,KAAKwsB,EAAKC,aAC9CD,KAETlC,EAAqBiC,GACrBnC,EAAYmC,GACZ9kB,OAEC7F,OAAM,SAAArG,GACLuO,aAAYR,SAASC,eAAe,kBACpC+H,IAAW,GACXgZ,EAAqB,IACrBF,EAAY,UAGlB,IAAI5iB,SAAQ,SAACC,EAASC,GACpBjC,GAAarL,EAAYjB,aACtBsI,MAAK,SAAAvD,GACAA,EAASC,GACXD,EAASwD,OAAOD,MAAK,SAAAirB,GACnBlC,EAAqBkC,GACrBjlB,OAIF+iB,EAAqB,UAI7B,IAAIhjB,SAAQ,SAACC,EAASC,GACpBlC,GAAepL,EAAYjB,aACxBsI,MAAK,SAAAvD,GACAA,EAASC,GACXD,EAASwD,OAAOD,MAAK,SAAAkrB,GACnBjC,EAAuBkC,GAAUD,IACjCllB,OAIFijB,EAAuB,UAI/B,IAAIljB,SAAQ,SAACC,EAASC,GACpB/B,GAAgBvL,EAAYjB,YAAa2B,IAAKC,UAC3C0G,MAAK,SAAAvD,GACAA,EAASC,GACXD,EAASwD,OAAOD,MAAK,SAAAorB,GACnBjC,EAAwBiC,GACxBplB,OAIFmjB,EAAwB,UAIhC,IAAIpjB,SAAQ,SAACC,EAASC,GACpB7B,GAAsBzL,EAAYjB,YAAa2B,IAAKC,UACjD0G,MAAK,SAAAvD,GACAA,EAASC,GACXD,EAASwD,OAAOD,MAAK,SAAA0hB,GACnB2H,EAAuB3H,GACvB1b,OAIFqjB,EAAuB,UAI/B,IAAItjB,SAAQ,SAACC,EAASC,GACpB5B,GAAqB1L,EAAYjB,YAAa2B,IAAKC,UAChD0G,MAAK,SAAAvD,GACAA,EAASC,GACXD,EAASwD,OAAOD,MAAK,SAAAwhB,GACnB+H,GAAsB/H,GACtBxb,OAIFujB,GAAsB,UAI9B,IAAIxjB,SAAQ,SAACC,EAASC,IvB9LvB,SAAP,oCuB+LUolB,CAAa1yB,EAAYjB,aACtBsI,MAAK,SAAAvD,GACAA,EAASC,GACXD,EAASwD,OAAOD,MAAK,SAAAsrB,GACnB7B,GAAqB6B,GACrBtlB,OAIFyjB,GAAqB,UAI7B,IAAI1jB,SAAQ,SAACC,EAASC,GACpBoS,GAAa1f,EAAYjB,aACtBsI,MAAK,SAAAvD,GACAA,EAASC,GACXD,EAASwD,OAAOD,MAAK,SAAAurB,GACnB5B,GAA4B4B,GAC5BvlB,OAIF2jB,GAA4B,UAIpC,IAAI5jB,SAAQ,SAACC,EAASC,GACpB3B,GAAY3L,EAAYjB,aACrBsI,MAAK,SAAAvD,GACAA,EAASC,GACXD,EAASwD,OAAOD,MAAK,SAAAoe,GACnByL,GAAoBzL,GACpBpY,OAIF6jB,GAAoB,WAM9B9jB,QAAQylB,IAAIX,GAAU7qB,MAAK,WACrB6H,SAASC,eAAe,mBAC1BO,aAAYR,SAASC,eAAe,kBACpC+H,IAAW,OAEZ1P,OAAM,SAACrG,GACRuG,QAAQ1C,IAAI,kBAGhB2K,KACC,CAACjP,IAAKC,WAET,IAMM6xB,GAAY,SAAZA,EAAalyB,GAA0B,IAAnB0J,EAAkB,wDACtC8oB,EAAM,GAgBV,OAfAxyB,EAAMS,KAAI,SAACF,GACT,GAAKmJ,GAQH,GADA8oB,EAAIpwB,KAAK,CAAEvC,MAAOU,EAAKzC,GAAImC,KAAwB,OAAlBG,IAAKC,SAAoBE,EAAK0P,OAAS1P,EAAK2P,OAAQuiB,YAAalyB,EAAKmyB,MAAOC,YAAapyB,EAAKqyB,OAAOx2B,OAAS,EAAkBy2B,uBAAwBtyB,EAAKuyB,aAAcC,uBAAwBxyB,EAAKyyB,aAAcC,UAAU,IAC9P1yB,EAAKqyB,OAAOx2B,OAAS,EAAG,CAC1B,IAAIqD,EAAWyyB,EAAU3xB,EAAKqyB,OAAQryB,GAAM,GAC5CiyB,EAAMA,EAAIU,OAAOzzB,SARnB,GADA+yB,EAAIpwB,KAAK,CAAEvC,MAAOU,EAAKzC,GAAImC,KAAwB,OAAlBG,IAAKC,SAAoBE,EAAK0P,OAAS1P,EAAK2P,OAAQyiB,YAAapyB,EAAKqyB,OAAOx2B,OAAS,EAAkBy2B,uBAAwBtyB,EAAKuyB,aAAcC,uBAAwBxyB,EAAKyyB,aAAcC,UAAU,IACrO1yB,EAAKqyB,OAAOx2B,OAAS,EAAG,CAC1B,IAAIqD,EAAWyyB,EAAU3xB,EAAKqyB,OAAQryB,GAAM,GAC5CiyB,EAAMA,EAAIU,OAAOzzB,OAUhB+yB,GAGTjzB,IAAMsH,WAAU,YACK,IAAf6nB,IACFnP,EAAa5N,QAAQwhB,cACrBxE,GAAiB,MAGlB,CAACD,IAEJ,OAA4CnvB,IAAM6G,SAAS,MAA3D,qBAAOgtB,GAAP,MAAuBC,GAAvB,MAWA9zB,IAAMsH,WAAU,WACS,KAAnBusB,KACFxD,EAAqBH,GACrBlQ,EAAa5N,QAAQ7H,WAAa2lB,KAEnC,CAAC2D,KA+CJ7zB,IAAMsH,WAAU,WACV0Y,GAAgBA,EAAa5N,SAAWge,IAAsB1S,IAChEsC,EAAa5N,QAAQO,YAEtB,CAACyd,IAQJpwB,IAAMsH,WAAU,WACV0Y,GAAgBA,EAAa5N,SAC/B4N,EAAa5N,QAAQO,YACtB,CAAC9R,IAAKC,WAgBT,OACE,oCACE,yBAAKrC,UAAS,gBAAWgzB,GAAY,SAAW,MAC5C/T,IACA,yBAAKjf,UAAU,yBACb,yBAAKA,UAAU,eACb,0BAAMA,UAAU,qBAChB,2BAAIyI,GAAE,kBAER,yBAAKzI,UAAU,eACb,yBAAKA,UAAU,mBACb,kBAAC,KAAD,CAAkBoU,SAvGhC,SAAmBvR,GACbA,GAAKA,EAAE5E,QAAU4E,EAAE5E,OAAO4D,MAC5BwzB,GAAkBxyB,EAAE5E,OAAO4D,OAG3BwzB,GAAkB,KAkG+Bv1B,GAAG,OAAOE,UAAU,UAAUqU,YAAa5L,GAAE,gCAGxF,yBAAKzI,UAAU,oBACXgzB,IACA,yBAAKhzB,UAAU,aACb,kBAAC,KAAD,CAAiBA,UAAU,mBAAmBoK,SAAS,mBAAmBD,QAAS,kBAAM8oB,IAAcD,MAAY,0BAAMhzB,UAAU,qBAA2ByI,GAAE,0BAGnKuqB,IACC,yBAAKhzB,UAAU,aACb,kBAAC,KAAD,CAAiBA,UAAU,iCAAiCoK,SAAS,mBAAmBD,QAAS,kBAAM8oB,IAAcD,MAAY,0BAAMhzB,UAAU,qBAA2ByI,GAAE,0BAGlL,yBAAKzI,UAAU,aACb,kBAAC,KAAD,CAAiBmK,QAtG/B,WAEE,GAAIirB,IAAmB7lB,IAAaA,GAAQnR,OAAS,CACnD,IAAIk3B,EAAYF,GAA4B3D,EAASnvB,QAAO,SAACC,GAAD,OAAUA,EAAKiS,KAAK/E,cAAczQ,QAAQo2B,GAAe3lB,gBAAkB,KAAtGgiB,EAE7BliB,IAAaA,GAAQnR,QACvBmR,GAAQ9M,KAAI,SAACixB,GACX,GAAIA,EAAE7xB,OAAW6xB,EAAE7xB,MAAMzD,OACvB,GAAc,iBAAVs1B,EAAEp1B,IAAwB,CAC5B,IAAIi3B,EAAkB,GACtB7B,EAAE7xB,MAAMY,KAAI,SAAC+yB,GACXD,EAAkBA,EAAgBL,OAAOI,EAAShzB,QAAO,SAACpE,GAAD,OAAOA,EAAEgD,aAAehD,EAAEgD,YAAYoB,QAAO,SAACmzB,GAAD,OAAOA,EAAE/B,EAAEp1B,OAASk3B,KAAGp3B,OAAS,SAExIk3B,EAAQ,aAAO,IAAII,IAAIH,SAGvB7B,EAAE7xB,MAAMY,KAAI,SAAC+yB,GACXF,EAAwB,kBAANE,EAAiBF,EAAShzB,QAAO,SAACpE,GAAD,OAAOA,EAAEw1B,EAAEp1B,OAASk3B,KAAKF,EAAShzB,QAAO,SAACpE,GAAD,OAAOA,EAAEw1B,EAAEp1B,MAAQJ,EAAEw1B,EAAEp1B,KAAKmR,cAAczQ,QAAQw2B,EAAIA,EAAE/lB,cAAgB,KAAO,QAGxKikB,EAAE7xB,MAAM,IAAgB,UAAV6xB,EAAEp1B,MACnBg3B,EAAW7D,MAQrB,IAAM9iB,GADN2mB,EAAQ,aAAO,IAAII,IAAIJ,KACAhzB,QAAO,SAAAwxB,GAE5B,OADAA,EAAKC,YAAcD,EAAKC,aAAe,IAAIzsB,KAAKwsB,EAAKC,aAC9CD,KAETlC,EAAqBjjB,GACrB4S,EAAa5N,QAAQ7H,WAAa6C,EAClCskB,IAAa,QAGTxB,EAASrzB,OAAS,IACpBwzB,EAAqBH,GACrBwB,IAAa,KA8DoC7oB,SAAS,oBAAoB3B,GAAE,4BAI9EuqB,KAAc/T,IACd,yBAAKjf,UAAU,8BACb,kBAAC,KAAD,CACEH,IAAK+wB,EACL9wB,GAAG,mBACHsK,SAAS,WACTiK,YAAa5L,GAAE,6BACfqD,WAAYylB,GAAiB,GAC7B7c,QAAS,kBAAMoe,IAAe,IAC9B7mB,kBAAmB4mB,GACnBjnB,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,MAC/BomB,OAAQ7T,GACRuhB,UAnEQ,SAAC9yB,GACnB,IAAI+yB,EAAQ,IAAIC,KAChBD,EAAoB,KAAX/yB,EAAEZ,KAAe2zB,EAAME,MAAM,OAAQ,WAAYjzB,EAAEZ,MAAM,GAAQ2zB,EAC1E/yB,EAAEkzB,iB,GAAgBC,WAAYJ,IAiEpB9M,iBAAe,IAEjB,kBAAC,KAAD,CACEhpB,GAAG,eACHD,IAAKixB,EACL1mB,SAAS,WACTwB,OAAQ,CAAEE,WAAYimB,EAAqBlwB,MAAO,QAASI,KAAM,OAAQwyB,YAAa,cAAeE,YAAa,eAClHsB,cAAc,EACdC,aAAc,CAAEC,WAAW,GAC3B9hB,YAAa5L,GAAE,gCACfwf,OAAQ7T,GACRvS,MApEK,WACf,IAAMU,EAAOgN,GAAQ1H,MAAK,SAAAtF,GAAI,MAAiB,iBAAbA,EAAKjE,OAEvC,OAAIiE,EACKA,EAAKV,MAGP,GA6DUu0B,GACPC,kBAAkB,EAClBC,KAAK,cAEP,kBAAC,KAAD,CACEx2B,GAAG,QACHsK,SAAS,WACTvK,IAAKmxB,EACL3c,YAAa5L,GAAE,kBACfwD,kBAAmB4mB,GACnB/K,KAAM,SAACjlB,GAAD,OAAO4wB,GAAW5wB,EAAG,YAE7B,kBAAC,KAAD,CACE/C,GAAG,eACHsK,SAAS,WACTvK,IAAKqxB,EACL7c,YAAa5L,GAAE,0BACfwD,kBAAmB4mB,GACnB/mB,WAAYmmB,EACZrmB,OAAQ,CAAE3J,KAAwB,OAAlBG,IAAKC,SAAoB,SAAW,SAAUR,MAAO,MACrEomB,OAAQ7T,GACR0U,iBAAe,IAEjB,kBAAC,KAAD,CACEhpB,GAAG,uBACHD,IAAKuxB,EACLhnB,SAAS,WACTiK,YAAa5L,GAAE,uBACf5G,MAAM,GACNoK,kBAAmB4mB,GACnB/mB,WAAYqmB,EACZvmB,OAAQ,CAAE3J,KAA0B,OAAnBG,IAAKC,SAAqB,SAAW,SAAUR,MAAO,MACvEomB,OAAQ7T,GACR0U,iBAAe,IAEjB,kBAAC,KAAD,CACEhpB,GAAG,mBACHsK,SAAS,WACTvK,IAAKyxB,EACLjd,YAAa5L,GAAE,uBACfwD,kBAAmB4mB,GACnB/mB,WAAYumB,EACZzmB,OAAQ,CAAE3J,KAA0B,OAAnBG,IAAKC,SAAqB,SAAW,SAAUR,MAAO,MACvEomB,OAAQ7T,GACR0U,iBAAe,IAEjB,kBAAC,KAAD,CACEhpB,GAAG,QACHsK,SAAS,WACTvK,IAAKgxB,EACLxc,YAAa5L,GAAE,qBACfwD,kBAAmB4mB,GACnB/K,KAAM,SAACjlB,GAAD,OAAO4wB,GAAW5wB,EAAG,YAE7B,kBAAC,KAAD,CACE/C,GAAG,SACHsK,SAAS,WACTvK,IAAKkxB,EACL1c,YAAa5L,GAAE,oBACfogB,gBAAgB,EAChB/c,WAAY+lB,EACZ5lB,kBAAmB4mB,GACnBjnB,OAAQ,CAAE3J,KAAyB,OAAlBG,IAAKC,SAAqB,SAAW,SAAUR,MAAO,MACvEomB,OAAQ7T,GACR0U,iBAAe,IAEjB,kBAAC,KAAD,CACEhpB,GAAG,aACHsK,SAAS,WACTvK,IAAKoxB,EACL5c,YAAa5L,GAAE,qBACfiM,QAAS,kBAAMoe,IAAe,IAC9B7mB,kBAAmB4mB,GACnB/J,iBAAiB,EACjBhd,WAAY6mB,GACZ/mB,OAAQ,CAAE3J,KAAyB,OAAlBG,IAAKC,SAAqB,SAAW,SAAUR,MAAO,MACvEomB,OAAQ7T,KAEV,kBAAC,KAAD,CACEtU,GAAG,gBACHsK,SAAS,WACTvK,IAAKsxB,EACL9c,YAAa5L,GAAE,8BACfqD,WAAYymB,GACZtmB,kBAAmB4mB,GACnBjnB,OAAQ,CAAE3J,KAAyB,OAAlBG,IAAKC,SAAqB,SAAW,SAAUR,MAAO,MACvEomB,OAAQ7T,GACR0U,iBAAe,IAEjB,kBAAC,KAAD,CACEhpB,GAAG,eACHsK,SAAS,WACTvK,IAAKwxB,EACLhd,YAAa5L,GAAE,qBACfqD,WAAY2mB,GACZxmB,kBAAmB4mB,GACnBjnB,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,MAC/BomB,OAAQ7T,GACR0U,iBAAe,MAMrB7J,GAAY,yBAAKnf,GAAG,kBAElB,yBAAKE,UAAU,iBACb,kBAAC,KAAD,CACEF,GAAG,WACHgM,WAAY6lB,EACZ4E,eAAgB,CAAE5uB,KAAM,QACxBkhB,gBAAgB,EAChB2N,aAAa,EACbC,cAAc,EACdC,kBAAkB,EAClB72B,IAAK0hB,EACLjW,OAAQlJ,IAAKC,UACb,kBAAC,KAAD,KACE,kBAAC,KAAD,CACEyZ,MAAM,OACNhI,SA9SE,SAACX,GACjB,OACE,0BAAMhJ,QAAS,kBAAM3K,EAAMm3B,KAAKxjB,EAAKrJ,SAAS9J,UAAU,gBAAxD,IAAyEmT,EAAKqB,KAA9E,MA6SY9C,WAAYjJ,GAAE,iBACd/I,MAAM,QAER,kBAAC,KAAD,CACEoc,MAAM,QACNpK,WAAYjJ,GAAE,kBACd/I,MAAM,QAER,kBAAC,KAAD,CACEoc,MAAyB,OAAlB1Z,IAAKC,SAAoB,aAAe,aAC/CqP,WAAYjJ,GAAE,iBACd/I,MAAM,QAER,kBAAC,KAAD,CACEoc,MAAyB,OAAlB1Z,IAAKC,SAAoB,iBAAmB,iBACnDqP,WAAYjJ,GAAE,qBACd/I,MAAM,QAER,kBAAC,KAAD,CACEoc,MAAM,cACNpK,WAAYjJ,GAAE,uBACdyT,OAA0B,OAAlB9Z,IAAKC,SAAoB,aAAe,aAChD3C,MAAM,QAER,kBAAC,KAAD,CACEoc,MAAyB,OAAlB1Z,IAAKC,SAAoB,gBAAkB,gBAClDqP,WAAYjJ,GAAE,iBACd/I,MAAM,QAER,kBAAC,KAAD,CACEoc,MAAO,QACPpK,WAAYjJ,GAAE,mBACdqL,SAnNC,WACf,OAAQ,0BAAM9T,UAAU,OAAwB,OAAjBoC,IAAKC,SAAmB,QAAU,WAmNnD3C,MAAM,SAGV,kBAAC,KAAD,CAAQ0d,SAAU,CAACwZ,KAAQC,KAAMC,KAAaC,KAAQC,KAAMC,KAAMC,KAAY3Z,KAAS4Z,aC9mBxFC,GAAU,SAAC53B,GAEpB,IAAQgsB,EAAahsB,EAAbgsB,SACA/iB,EAAMC,cAAND,EACR,EAAsBlH,IAAM4G,WAAW7G,GAAhCI,EAAP,oBAEA,OACI,yBAAK1B,UAAU,WACVwrB,EAAS6L,QACN,yBAAKr3B,UAAU,aACX,kBAAC,KAAD,CACIoK,SAAS,mBACTzC,KAAK,SACLwC,QAASqhB,EAAS6L,QACpB5uB,EAAE,oBAIR+iB,EAAS8L,WACT,yBAAKt3B,UAAU,aACX,kBAAC,KAAD,CACIoK,SAAS,mBACTzC,KAAK,SACLwC,QAASqhB,EAAS8L,WACpB7uB,EAAE,uBAGX+iB,EAAS+L,QACN,yBAAKv3B,UAAU,aACX,kBAAC,KAAD,CACIoK,SAAS,mBACTzC,KAAK,SACLwC,QAASqhB,EAAS+L,QACpB9uB,EAAE,oBAGX+iB,EAASgM,MAAQ91B,EAAYb,WACN,OAAnB2qB,EAASiM,UAC+B,IAArCjM,EAASiM,OAAOz4B,QAAQ,WAA0D,IAAxCwsB,EAASiM,OAAOz4B,QAAQ,kBAItE,yBAAKgB,UAAU,UACX,kBAAC,KAAD,CACIoK,SAAS,gBACTzC,KAAK,SACLwC,QAASqhB,EAASgM,KACpB/uB,EAAE,iBAGX+iB,EAASkM,MACN,yBAAK13B,UAAU,WACX,kBAAC,KAAD,CACIoK,SAAS,cACTzC,KAAK,UAEPc,EAAE,oBC/BTkvB,GA3BY,SAAC,GAAkB,IAAhB73B,EAAe,EAAfA,GAAI6H,EAAW,EAAXA,KAC9B,EAAsBQ,qBAAW7G,GAA1BI,EAAP,oBACQid,EAAuBb,KAAvBa,mBAER,OAAI7e,IAEK2H,EAAe2rB,SAAStzB,GAAK6H,GAAQ,GAAIjG,IAE1Cid,EAAmB,CACfxV,OAAO,EACPiV,QAAS,+CACTC,QAAS,uCACTC,UAAW,8EACXC,UAAW,kEACXrF,KAAM,6BAIN,kBAAC,IAAD,CAAU9U,MAAM,EAAMyF,GAAG,OAM9B,sCChBE+tB,GAAQ,WAEjB,MAAsBr2B,aAAiBD,GAAhCI,EAAP,oBACA,EAAgCH,WAAe,IAA/C,mBACA,GADA,UACgCA,YAAe,IAA/C,mBAAO6D,EAAP,KAAiBsL,EAAjB,KACA,EAA4BnP,WAAe,MAA3C,mBAAOgtB,EAAP,KAAesJ,EAAf,KACA,EAAoCt2B,YAAe,GAAnD,mBAAOmvB,EAAP,KAAmBoH,EAAnB,KACA,EAA4Cv2B,WAAe,IAA3D,mBAAO+pB,EAAP,KAAuByM,EAAvB,KAEIxW,EAAehgB,SAAa,MAExBkH,EAAMC,cAAND,EAEFsnB,EAAY,CACd0H,OAAQnM,GAAkC,KAC1C+L,OAAQ,kBAAMW,KACdT,OAAQ,GACRC,IAAK,kBAAM9mB,GAAY,IACvBgnB,KAAM,IAGVn2B,aAAgB,WACZ,IAAImqB,EAAoBhqB,EAAYR,YACpCkI,QAAQ1C,IAAIhF,GACZq2B,EAAkBrM,EAAkBppB,QAAO,SAACpE,GAAD,OAA0B,KAAnBA,EAAEmD,gBAAqBoB,KAAI,SAACvE,GAAD,OAAQA,EAAEkD,iBACxF,CAACM,IAMJH,aAAgB,WACRgtB,GACA7d,GAAY,KAEjB,CAAC6d,IAEJ,IAAMyJ,EAAgB,WACdzW,EAAa5N,SACbmkB,GAAc,IAItB,OACI,gCACiC,OAA5Bp2B,EAAYjB,YAAuB,gBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WACzDzE,EACe,OAAXmpB,EACI,gBAAC,IAAD,CAAUnqB,MAAM,EAAMyF,GAAG,qBAEzB,gBAAC,IAAD,CAAUzF,MAAM,EAAMyF,GAAE,2BAAsB0kB,KAElD,gCACI,gBAAC,GAAD,CAAoBzuB,GAAG,OACvB,uBAAKE,UAAU,eACf,gBAACwM,EAAA,EAAD,CAAWxM,UAAU,gBACjB,uBAAKA,UAAU,mBACX,gBAACmhB,GAAA,EAAD,KACI,uBAAKnhB,UAAU,mBACX,uBAAKA,UAAU,SACX,0BAAKyI,EAAE,kBAGf,uBAAKzI,UAAU,mBACX,uBAAKA,UAAU,WACX,gBAAC,GAAD,CAASwrB,SAAUuE,QAKnC,gBAAC5O,GAAA,EAAD,KACI,uBAAKnhB,UAAU,UACX,gBAAC,GAAD,CACIuhB,aAAcA,EAAcmP,WAAYA,EAAYC,iBAAkBmH,EAAenB,KA9CzG,SAAC72B,GACb+3B,EAAU/3B,Y,SCjCLiuB,GAAc,SAACvuB,GAExB,IAAQ8lB,EAAS9lB,EAAT8lB,KAEA7c,EAAMC,cAAND,EAER,EAAsClH,aAAiBD,GAAvD,mBAAOI,EAAP,KACA,GADA,KAC4CH,YAAe,IAA3D,mBAAO2rB,EAAP,KAAuBC,EAAvB,KAEMW,EAAW,Y1B2Dd,SAAP,sC0B1DQmK,CAAUv2B,EAAYjB,YAAa6kB,EAAKxb,QACnCf,MAAK,SAAAvD,GACEA,EAASC,IACT0nB,GAAkB,MAGzBjkB,OAAM,SAAAC,GACHC,QAAQD,MAAMA,OAI1B,OACI,gCACQ,uBAAKnJ,UAAU,kBACX,uBAAKA,UAAU,0CACX,uBAAKA,UAAU,mBACf,0BAAKyI,EAAE,0BAEX,wBAAMzI,UAAU,8BACXktB,GACG,0DAEJ,gBAAC,KAAD,CACIptB,GAAG,iBACHsK,SAAS,sBACTD,QAAS,kBAAM2jB,KACfnmB,KAAK,UACPc,EAAE,4B,oBC5CrB,SAAeyvB,GAAtB,mC,8CAAO,WAAkCxzB,GAAlC,SAAAI,EAAA,+EACIT,EAAW,2CAA4C,MAAO,GAAI,KAAMK,GAAO,IADnF,4C,oEAIA,WAAkCA,EAAOD,GAAzC,eAAAK,EAAA,6DACGqJ,EAAM5N,KAAKiJ,UAAU/E,GADxB,kBAEIJ,EAAW,0CAA2C,OAAQ,GAAI8J,EAAKzJ,GAAO,IAFlF,4C,oEAKA,WAAqCA,EAAOD,GAA5C,eAAAK,EAAA,6DACGqJ,EAAM5N,KAAKiJ,UAAU/E,GADxB,kBAEIJ,EAAW,6CAA8C,OAAQ,GAAI8J,EAAKzJ,GAAO,IAFrF,4C,oEAKA,WAAqCA,EAAO5E,GAA5C,eAAAgF,EAAA,6DACGmD,EADH,qBAC2BnI,GAD3B,kBAEIuE,EAAW,6CAA8C,SAAU4D,EAAS,KAAMvD,GAAO,IAF7F,4C,sBbCA,IcCH6c,GCHA3D,GfESua,GAAc,SAAC34B,GAExB,IAoBI44B,EACAC,EArBI/S,EAAqB9lB,EAArB8lB,KAIR,GAJ6B9lB,EAAf84B,WAIoB/2B,WAAe,KAAjD,mBAAOg3B,EAAP,KAAkBC,EAAlB,KACA,EAAoDj3B,YAAe,GAAnE,mBAAOk3B,EAAP,KAA2BC,EAA3B,KACA,EAAgDn3B,WAAe+jB,GAAQA,EAAKqT,aAA5E,mBAAOC,EAAP,KAAyBC,EAAzB,KACA,EAAsCt3B,aAAiBD,GAAvD,mBAAOI,EAAP,KACA,GADA,KACgDH,WAAe,KAA/D,mBAAOu3B,EAAP,KAAyBC,EAAzB,KACA,EAAgCx3B,WAAe,IAA/C,mBAAiBy3B,GAAjB,WACA,EAA8Cz3B,WAAe,IAA7D,mBAAO03B,EAAP,KAAwBC,EAAxB,KACA,EAAgC33B,WAAe,IAA/C,mBAAO43B,EAAP,KAAiBC,EAAjB,KACA,EAA0B73B,WAAe+jB,EAAKqT,aAA9C,mBACA,GADA,UAC8Bp3B,WAAe,KAA7C,mBACA,GADA,UAC0CA,WAAe,KAAzD,mBACA,GADA,UAC8CA,YAAe,IAA7D,mBAAO83B,EAAP,KAAwBC,EAAxB,KACA,EAAwB/3B,WAAe,IAAvC,mBAAOg4B,EAAP,KAAaC,GAAb,KAEA,GAAoCj4B,WAAe,MAAnD,iCAMAigB,GAAc,CACV,CACI7Z,KAAM,SACN4X,YAAa,CACTC,WAAW,EACX3L,QAA0B,OAAjBzR,IAAKC,SAAmB,WAAa,SAC9C+H,SAAU,mBAEd4Q,MAAO,WACHse,GAAmB,KAG3B,CACI3xB,KAAM,SACN4X,YAAa,CACTC,WAAW,EACX3L,QAA0B,OAAjBzR,IAAKC,SAAmB,MAAQ,MACzC+H,SAAU,iBAEd4Q,MAAO,YA7CmB,oCA8CtBye,MAKZ,IAAQhxB,GAAMC,cAAND,EAERlH,aAAgB,WACRk3B,IACA3nB,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,qBAChDE,aAAYH,SAASC,eAAe,oBACpCG,aAAW,CAAErJ,KAAM,iBAExB,CAAC8wB,IAEJl3B,aAAgB,WACR+jB,GACAkT,EAAalT,EAAKpkB,eAEvB,CAACkB,IAAKC,WAETd,aAAgB,WACRg3B,IACAjT,EAAKpkB,YAAcq3B,KAGxB,CAACA,IAEJh3B,aAAgB,WACRggB,IACAA,GAAarN,YAClB,CAAC9R,IAAKC,WAETd,aAAgB,WAAM,4CAElB,gCAAAuD,EAAA,sEACkCozB,GAAmBx2B,EAAYjB,aACxDsI,MAAK,SAAAvD,GAAc,GAAIA,EAASC,GAAM,OAAOD,EAASwD,UAF/D,cACQ0wB,EADR,gBAGuB5sB,GAAepL,EAAYjB,aACzCsI,MAAK,SAAAvD,GAAc,GAAIA,EAASC,GAAM,OAAOD,EAASwD,UAJ/D,cAGQwhB,EAHR,gBAK4Bxd,GAAetL,EAAYjB,aAC9CsI,MAAK,SAAAvD,GAAc,GAAIA,EAASC,GAAM,OAAOD,EAASwD,UAN/D,OAKQ2wB,EALR,OAOQD,GAAqBlP,GACrBkP,EAAkBj3B,KAAI,SAACm3B,GACnBA,EAAG14B,YAAYuB,KAAI,SAACo3B,GAChB,IAAIpO,EAAOjB,EAAOloB,QAAO,SAAApE,GAAC,OAAIA,EAAE4B,KAAM+5B,EAAGC,gBACrCrO,EAAKrtB,OAAS,IACdy7B,EAAGpO,KAAOA,EAAK,UAM/BsN,EAAoBW,GACpBV,EAAYxO,GACZ0O,EAAmBS,GAEfnP,GACA4O,EAAYlF,GAAU1J,IAG1BpZ,aAAYR,SAASC,eAAe,oBACpC6nB,GAAsB,GA3B1B,6CAFkB,sBAClBA,GAAsB,GADJ,mCA+BlBrnB,KACD,CAACjP,IAAKC,WAET,IAAM6xB,GAAY,SAAZA,EAAalyB,GAA8C,IAAnB0J,EAAkB,wDACxD8oB,EAAM,GAgBV,OAfAxyB,EAAMS,KAAI,SAACF,GACP,GAAKmJ,GAQD,GADA8oB,EAAIpwB,KAAK,CAAEvC,MAAOU,EAAKzC,GAAImC,KAAuB,OAAjBG,IAAKC,SAAmBE,EAAK0P,OAAS1P,EAAK2P,OAAQuiB,YAAalyB,EAAKmyB,MAAOC,YAAapyB,EAAKqyB,OAAOx2B,OAAS,EAAkBy2B,uBAAwBtyB,EAAKuyB,aAAcC,uBAAwBxyB,EAAKyyB,aAAcC,UAAU,IAC7P1yB,EAAKqyB,OAAOx2B,OAAS,EAAG,CACxB,IAAIqD,EAAWyyB,EAAU3xB,EAAKqyB,OAAQryB,GAAM,GAC5CiyB,EAAMA,EAAIU,OAAOzzB,SARrB,GADA+yB,EAAIpwB,KAAK,CAAEvC,MAAOU,EAAKzC,GAAImC,KAAuB,OAAjBG,IAAKC,SAAmBE,EAAK0P,OAAS1P,EAAK2P,OAAQyiB,YAAapyB,EAAKqyB,OAAOx2B,OAAS,EAAkBy2B,uBAAwBtyB,EAAKuyB,aAAcC,uBAAwBxyB,EAAKyyB,aAAcC,UAAU,IACpO1yB,EAAKqyB,OAAOx2B,OAAS,EAAG,CACxB,IAAIqD,EAAWyyB,EAAU3xB,EAAKqyB,OAAQryB,GAAM,GAC5CiyB,EAAMA,EAAIU,OAAOzzB,OAUtB+yB,GAQLuF,GAAQ,uCAAG,WAAOl3B,GAAP,uBAAAiC,EAAA,yDACbjC,EAAEm3B,kBACE5B,IAAcC,EAFL,wBAILr2B,EAJK,aAIOu2B,GAEZ0B,EAAkB,GAClBC,EAAkB,GAClBC,EAAiB,GAErB/B,EAAW31B,KAAI,SAAAgpB,IACX2O,EAAUjB,EAAS72B,QAAO,SAAA+3B,GAAU,OAAIA,EAAWx4B,QAASuxB,SAAS3H,MAAO,IAC/DkJ,aACTwF,EAAe/1B,KAAKg2B,MAI5B/B,EAAkB51B,KAAI,SAAArB,GAElB64B,EAAgB71B,KAAK60B,EAAgB32B,QAAO,SAAAg4B,GAAY,OAAIA,EAAax6B,KAAMsB,KAAY,GAAG6Q,QAC9FioB,EAAgB91B,KAAK60B,EAAgB32B,QAAO,SAAAg4B,GAAY,OAAIA,EAAax6B,KAAMsB,KAAY,GAAG8Q,WAGlGioB,EAAe13B,IAAf,+BAAAqC,EAAA,MAAmB,WAAMy1B,GAAN,qBAAAz1B,EAAA,sDACX01B,EAAoBjC,EAAUj2B,QAAO,SAAAi3B,GAAI,OAAIA,EAAKO,eAAgBS,EAAU14B,OAAyB,IAAhB03B,EAAK7zB,UACvE6yB,EAAUj2B,QAAO,SAAAm4B,GAAM,OAAIA,EAAOX,eAAgBS,EAAU9F,eAEnD,IAA5B+F,EAAkBp8B,QAEdwiB,EAAM,CAAEkZ,aAAcS,EAAU14B,MAAO64B,cAAeT,EAAiBU,cAAeT,EAAiBnF,uBAAwBwF,EAAUxF,uBAAwBrvB,OAAQ,EAAGk1B,eAAgBvC,GAChMjvB,QAAQ1C,IAAIka,GAEM,OAAlBxe,IAAKC,SAAoBue,EAAImU,uBAAyBwF,EAAUxF,uBAAyBnU,EAAIiU,uBAAyB0F,EAAU1F,uBAEhI7yB,EAAMoC,KAAKwc,KAGPia,EAAa,CACbf,aAAcS,EAAU14B,MACxB64B,cAAeT,EACfU,cAAeT,EACfnF,uBAAwBwF,EAAUxF,uBAClCrvB,OAAQ,EACRk1B,eAAgBvC,GAGF,OAAlBj2B,IAAKC,SAAoBw4B,EAAW9F,uBAAyBwF,EAAUxF,uBAAyB8F,EAAWhG,uBAAyB0F,EAAU1F,uBAExIiG,EAAe94B,EAAMsxB,WAAU,SAAAiG,GAAI,OAAIA,EAAKO,eAAgBS,EAAU14B,OAAyB,IAAhB03B,EAAK7zB,UAExD,IAA9B1D,EAAM84B,GAAcp1B,OACpB1D,EAAM84B,GAAcp1B,OAAS,EAE7B1D,EAAMsnB,OAAOwR,EAAc,GAG/B94B,EAAMoC,KAAKy2B,IAjCA,2CAAnB,uDAvBS,UA4DHnC,GAAsB,GA5DnB,QA6DTF,EAAax2B,GACboP,aAAYR,SAASC,eAAe,oBACpC6nB,GAAsB,GAEtBnX,GAAazV,WAAa9J,EAAMM,QAAO,SAAAi3B,GAAI,OAAoB,IAAhBA,EAAK7zB,UAjE3C,4CAAH,sDA1IoB,8CAwNlC,8BAAAZ,EAAA,sDACI4zB,GAAsB,IAElBqC,EAAWxC,EAAU1wB,MAAK,SAAAsrB,GAAC,OAAIA,EAAE2G,eAAiBP,EAAKO,cAA6B,IAAb3G,EAAEztB,WAChEs1B,IACTD,EAASr1B,OAAS,GAEdhD,EAAQ61B,EAAUjF,WAAU,SAAAH,GAAC,OAAIA,EAAE2G,eAAiBiB,EAASjB,cAA6B,IAAb3G,EAAEztB,UACnF6yB,EAAUjP,OAAO5mB,EAAO,IAG5B42B,GAAmB,GAEnBloB,aAAYR,SAASC,eAAe,oBACpC6nB,GAAsB,GAEtBnX,GAAazV,WAAaysB,EAAUj2B,QAAO,SAAA6wB,GAAC,OAAgB,IAAZA,EAAEztB,UAhBtD,4CAxNkC,sBAkQlC,OACI,qCAAK+yB,EAAqB,uBAAK34B,GAAG,oBAC9B,uBAAKE,UAAU,eACX,uBAAKA,UAAU,0CACX,uBAAKA,UAAU,qBACf,0BAAKyI,GAAE,sBACP,uBAAKzI,UAAU,YACX,gBAAC,KAAD,CACI+nB,MAAOtf,GAAE,mBACTuf,QAAS4Q,EACT3Q,OAAQ,SAACplB,GAAD,OAhBN,SAACA,GACvBuG,QAAQ1C,IAAI7D,EAAEmlB,SACd6Q,EAAoBh2B,EAAEmlB,SACtB1C,EAAKqT,YAAc91B,EAAEmlB,QAaciT,CAAkBp4B,SAI3C+1B,GACE,gCACI,uBAAK54B,UAAU,kDACX,uBAAKA,UAAU,SACX,iCAASyI,GAAE,2BAAX,KACA,gBAAC,KAAD,cACI3I,GAAG,SACHsK,SAAS,WAET0B,WAAYgtB,EACZhQ,iBAAe,EACfld,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,MAC/BwS,YAAa5L,GAAE,qCACf5G,MAAOyjB,EAAK4V,eACZjT,OAAQ,SAACplB,GAAD,OAAOyiB,EAAK4V,eAAiBr4B,EAAE2lB,UAAY3lB,EAAE2lB,SAAS1oB,GAAK+C,EAAE2lB,SAAS1oB,GAAK,OATvF,yBAcR,uBAAKE,UAAU,kDACX,uBAAKA,UAAU,SACX,6BAAQyI,GAAE,6BACV,gBAAC,KAAD,CACI3I,GAAG,eACHsK,SAAS,WACTwB,OAAQ,CAAEE,WAAYqtB,EAAUt3B,MAAO,QAASI,KAAM,OAAQwyB,YAAa,cAAeE,YAAa,eACvGsB,cAAc,EACdC,aAAc,CAAEC,WAAW,GAC3B9hB,YAAa5L,GAAE,gCACfwf,OAAQ,SAAC9U,GAAD,OAAUilB,EAAajlB,EAAKtR,OACpCw0B,kBAAkB,KAI1B,uBAAKr2B,UAAU,SACX,iCAASyI,GAAE,gCAAX,KACA,gBAAC,KAAD,CACI3I,GAAG,aACHsK,SAAS,WACT0B,WAAYmtB,EACZrtB,OAAyB,OAAjBxJ,IAAKC,SAAmB,CAAEJ,KAAM,SAAUJ,MAAO,MAAS,CAAEI,KAAM,SAAUJ,MAAO,MAC3FwS,YAAa5L,GAAE,+BACf6tB,KAAK,WACLrO,OAAQ,SAAC9U,GAAD,OAAUklB,EAAoBllB,EAAKtR,OAC3CA,MAAOw2B,GAGP,gBAAC,KAAD,CAAQjb,SAAU,CAAC+d,WAI/B,uBAAKn7B,UAAU,aACX,gBAAC,KAAD,CAAiBmK,QAAS4vB,IAAU,4BAAOtxB,GAAE,yBAEhD8vB,GACG,gBAAC,KAAD,CACIz4B,GAAG,WACHgM,WAAYysB,EAEZ6C,iBAvUH,CAAC,gBAAiB,iBAAkB,YAAa,WAAY,WAAY,YAwUtE7E,eAAgB,CAAE5uB,KAAM,QACxB2D,OAAQlJ,IAAKC,SACbxC,IAAK,SAAAszB,GAAC,OAAI5R,GAAe4R,IAEzB,gBAAC,KAAD,KACI,gBAAC,KAAD,CAEIrf,SAnIjB,SAACX,GAChB,OAAO,4BAAOA,IAA0B,OAAjB/Q,IAAKC,SAAmB8Q,EAAK4hB,uBAAuBvR,KAAK,OAASrQ,EAAK0hB,uBAAuBrR,KAAK,UAmI1F9R,WAAYjJ,GAAE,yBAA0B/I,MAAM,QAClD,gBAAC,KAAD,CAEIoU,SAAU,SAACX,GAAD,OAnIrB,SAACA,GACtB,OAAO,4BAAOA,IAA0B,OAAjB/Q,IAAKC,SAAmB8Q,EAAKunB,cAAclX,KAAK,MAAQrQ,EAAKwnB,cAAcnX,KAAK,QAkInD6X,CAAiBloB,IACrCzB,WAAYjJ,GAAE,+BAAgC/I,MAAM,QACxD,gBAAC,KAAD,CACIoU,SAAU,SAACX,GAAD,OA9GzB,SAACA,GAClB,OACI,gBAAC,KAAD,CACIrT,GAAG,GACHsK,SAAS,kBACTD,QAAS,SAACtH,GACNA,EAAEm3B,iBACFV,GAAmB,GACnBE,GAAQrmB,GACR/J,QAAQ1C,IAAIyM,KAPpB,WA4GgDmoB,CAAanoB,IACjCzB,WAAYjJ,GAAE,2BAA4B/I,MAAM,SAExD,gBAAC,KAAD,CAAQ0d,SAAU,CAACwZ,KAAQC,KAAMC,KAAaC,KAAQC,KAAMzZ,KAAS4Z,SAG7E,gBAAC,KAAD,CACIr3B,GAAG,cACHoe,SAAS,EACTmC,QAASmB,GACT7F,QAAS0d,EACT/tB,OAAQlJ,IAAKC,UAEb,2BACI,uBAAKrC,UAAU,YACX,wBAAMA,UAAU,oBAChB,uBAAKA,UAAU,gBACX,yBAAOF,GAAG,UAA2B,OAAjBsC,IAAKC,SAAmB,UAAY,UACxD,yBAAOvC,GAAG,eAAgC,OAAjBsC,IAAKC,SAAmB,8BAAgC,8BAGzF,iCgB5WnBk5B,GAAY,SAAC/7B,GAAW,IAAD,EAC1Bg8B,EAAY,CACdzH,YAAa,GACb4E,aAAa,EACbxQ,cAAe,EACfvW,eAAgB,KAChB6pB,WAAY,GACZC,WAAY,GACZC,eAAgB,GAChBC,eAAgB,GAChBC,cAAe,GACfC,cAAe,GACf56B,YAAa,GACbsT,KAAM,GACNpG,MAAO,GACPgiB,QAAS,GACTzF,eAAgB,KAChBE,MAAO,GACPC,UAAW,GACXO,iBAAkB,GAClBL,mBAAoB,GACpBD,eAAe,EACf1D,iBAAiB,EACjBC,aAAc,KACdgB,iBAAiB,EACjBnW,gBAAiB,GACjB+oB,eAAgB,MAGhB3M,EAAS/uB,EAAMqG,MAAMiqB,OAAOhwB,GAEhC,EAAsByB,aAAiBD,GAAhCI,EAAP,oBACA,EAAgCH,WAAe,MAA/C,mBAAOiuB,EAAP,KAAiBC,EAAjB,KACA,EAA8BluB,YAAe,GAA7C,mBAAOw6B,EAAP,KAAgBC,EAAhB,KACA,EAAgCz6B,YAAe,GAA/C,mBAAO6D,EAAP,KAAiBsL,EAAjB,KACA,EAA0BnP,aAAiBkgB,IAA3C,mBAAOE,EAAP,KACA,GADA,KACsDpgB,YAAe,IAArE,mBAAO4gB,EAAP,KAA4BuN,EAA5B,KACA,EAAkCnuB,YAAe,GAAjD,mBAAOouB,EAAP,KAAkB1R,EAAlB,KAEA,EAA8C1c,YAAe,GAA7D,mBAAO83B,EAAP,KAAwBC,EAAxB,KACA,EAAgD/3B,YAAe,GAA/D,mBAAO06B,EAAP,KACA,GADA,KACsC16B,YAAe,IAArD,mBAAOquB,EAAP,KAAoBC,EAApB,KAEA,EAAoCtuB,WAAe,MAAnD,mBAAOqc,EAAP,KAAmBse,GAAnB,KAEQzzB,GAAMC,cAAND,EAEFsnB,IAAS,GACXtE,KAAM,WACNzP,MAAO,UACPmQ,aAAa,GAHF,sBAIL,eAJK,iCAKK,GALL,yBAMF,IANE,4BAOC,IAPD,8BAQG,IARH,0BASF,SAACtpB,GAAD,OAAOy1B,GAAWz1B,MAThB,yBAUF,IAVE,mCAWiB4E,EAAe,GAAxB8mB,EAA4B,OAA0C,SAAlC7sB,IAX5C,4BAYA,kBAAMgP,GAAY,MAZlB,2BAcA8e,GAAYA,EAAS1lB,OAAS,SAACjH,GACtCA,EAAEm3B,iBACFV,GAAmB,IACnB,MAjBO,GAoBf/3B,aAAgB,WACZmuB,EAAuBjoB,EAAe,GAAI,SAAU/F,IAAgB+F,EAAe,GAAI,OAAQ/F,MAChG,IAEHH,aAAgB,WACZ,IAAI46B,EAAgB,CAChBrc,MAAO,CACH,KAAQ,CACJC,SAAU,EAAC,EAAMtX,GAAE,yBAEvB,MAAS,CACLsX,SAAU,EAAC,EAAMtX,GAAE,wBACnB2F,MAAO,EAAC,EAAM3F,GAAE,4BAEpB,QAAW,CACPsX,SAAU,EAAC,EAAMtX,GAAE,0BAG3BuX,gBAAiB,SAACC,EAAcC,GAC5BD,EAAaE,cAAcA,cAAcpF,YAAYmF,KAIvDkc,EAAU,IAAIhc,KAAc,gBAAiB+b,GAE/C3M,GAAYA,EAASnI,kBACrB+U,EAAQC,SAAS,OAAQ,CAAEtc,SAAU,EAAC,EAAMtX,GAAE,0BAC9C2zB,EAAQC,SAAS,WAAY,CAAEtc,SAAU,EAAC,EAAMtX,GAAE,0BAClD2zB,EAAQC,SAAS,eAAgB,CAAEtc,SAAU,EAAC,EAAMtX,GAAE,2BAGtD+mB,IAAaA,EAASnI,iBACtB+U,EAAQC,SAAS,WAAY,CAAEtc,SAAU,EAAC,EAAMtX,GAAE,0BAEtDyzB,GAAcE,KACf,CAAC5M,IAEJjuB,aAAgB,WACZuP,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,oBAChDE,aAAYH,SAASC,eAAe,mBACpCG,aAAW,CAAErJ,KAAM,gBACpB,CAACgoB,IAEJpuB,aAAgB,WAAM,4CAClB,4BAAAuD,EAAA,sEAC2B+J,GAAUnN,EAAYjB,aADjD,QACQ0vB,EADR,SAGsB5B,GACd4B,EAAaA,EAAW7tB,QAAO,SAAApE,GAAC,OAAIA,EAAE4L,QAAUykB,KAAQ,GAExDkB,EAAYU,IAGZV,EAAY+L,GATpB,4CADkB,uBAAC,WAAD,wBAYlBnqB,KAED,CAACjP,IAAKC,WAETd,aAAgB,WACRw6B,IACAC,GAAW,GACXtrB,GAAY,MAEjB,CAACqrB,IAEJ,IAAIzD,GAAa,SAACz1B,GAGd,GAFAob,GAAa,GACbpb,EAAEm3B,iBACEpc,EAAW8B,WAAY,CACzBmQ,GAAe,GACb,IAAI7rB,EAAOwrB,EACXxrB,EAAKosB,QAAUzO,GAASA,EAAMwB,IAAMxB,EAAMwB,IAAI3C,MAAM,KAAK,GAAK,K9BvGnE,SAAP,qC8BwGY8b,CAAqB56B,EAAYjB,YAAauD,GACzC+E,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,OAEpB6mB,GAAe,MAElB9mB,MAAK,SAAAE,GACEumB,EAASY,SAAWZ,EAASphB,MAAMqB,gBAAiB/N,EAAYd,WAChEgD,EAAaE,SAAS,iBAE1B2rB,EAAY+L,GACZQ,GAAW,GACXnM,GAAe,MAElB3mB,OAAM,SAAAC,GACHC,QAAQD,MAAMA,GACd8U,GAAa,GACb4R,GAAe,WAIvB5R,GAAa,GACb4R,GAAe,IAoBjB0M,GAAW,uCAAG,WAAO15B,GAAP,SAAAiC,EAAA,6DAChBjC,EAAEm3B,iBADc,SAEV5qB,GAAW1N,EAAYjB,YAAa8tB,GAF1B,OAGhB7d,GAAY,GAHI,2CAAH,sDAMjB,OACI,gCACiC,OAA5BhP,EAAYjB,YAAuB,gBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WACzDzE,EAAW,gBAAC,IAAD,CAAUhB,MAAM,EAAMyF,GAAG,iBAChC2lB,GACI,gCACI,gBAAC,GAAD,CAAoB1vB,GAAG,OACvB,uBAAKE,UAAU,eACf,wBAAMF,GAAG,gBACL,gBAAC0M,EAAA,EAAD,KACI,gBAAC2U,GAAA,EAAD,KACI,uBAAKnhB,UAAU,mBACX,gBAAC,GAAD,CAAUmiB,oBAAqBA,EAAqBna,OAAO,EAAMof,WAAYmH,EAAQrG,QAASuH,EAAanK,KAAMkK,EAAUpH,uBA7BpI,SAACoU,EAAQ52B,EAAMgb,GAC5B,QAAV4b,GACA5e,EAAWye,SAASz2B,EAAMgb,GAC1BhD,EAAWoC,gBAAkB,SAACC,EAAcC,GACxCD,EAAaE,cAAcA,cAAcpF,YAAYmF,KAIzDtC,EAAW6e,YAAY72B,OAuBK,uBAAK5F,UAAU,mBACX,gBAAC,GAAD,CAAUmiB,oBAAqBA,EAAqBna,OAAO,EAAMsd,KAAMkK,EAAUtH,QAASuH,IACzFtN,GACG,gBAAC,GAAD,CAAamD,KAAMkK,EAAU8I,WAvCpD,SAACxE,GAClB1qB,QAAQ1C,IAAI,oBAAqBotB,GACjCrE,EAAYqE,OAwCoB,uBAAK9zB,UAAU,mBACX,gBAAC,GAAD,CAAS2S,SAAUid,EAAapE,SAAUuE,KACzC5N,GAAuBoM,GAAU,gCAC9B,gBAAC,GAAD,CAAajJ,KAAMkK,SAOvC,gBAAC,KAAD,CACI1vB,GAAG,UACHJ,MAAM,QACNwe,SAAS,EACTvC,QAASgU,EACTrkB,OAAQlJ,IAAKC,UAEb,uBAAKvC,GAAG,oBAGZ,gBAAC,KAAD,CACIA,GAAG,cACHoe,SAAS,EACTvC,QAAS0d,EACT/tB,OAAQlJ,IAAKC,UAEb,2BACI,uBAAKrC,UAAU,YACX,yBAAOA,UAAU,oBACjB,uBAAKA,UAAU,gBACX,yBAAOF,GAAG,eAAe2I,GAAE,+BAGnC,2BACEwzB,EAME,uBAAKj8B,UAAU,kBACX,uBAAKA,UAAU,gBACX,wBAAMA,UAAU,6BAEpB,6BAAQyI,GAAE,6BACV,0BAAQ0B,QAAS,kBAAMmvB,GAAmB,KAAS7wB,GAAE,kBAVzD,uBAAKzI,UAAU,iBACX,0BAAQmK,QAAS,kBAAMmvB,GAAmB,KAAS7wB,GAAE,mBACrD,0BAAQ0B,QAASoyB,IAAc9zB,GAAE,0BFvPzEi0B,GAAgB,GAEPC,GAAiB,SAACn9B,GAAW,IAAD,EAErC,EAAsC+B,aAAiBD,GAAvD,mBAAOI,EAAP,KACA,GADA,KACgDH,WAAe,KAA/D,mBAAOu3B,EAAP,KAAyBC,EAAzB,KACA,EAAkCx3B,YAAe,GAAjD,mBAAOyxB,EAAP,KAAkBC,EAAlB,KAEA,EAA0C1xB,WAAe,IAAzD,mBACA,GADA,UACsDA,WAAe,KAArE,mBAAOwwB,EAAP,KAA4BC,EAA5B,KACA,EAAsDzwB,WAAe,IAArE,mBAAOq7B,EAAP,KAA4BC,EAA5B,KACA,EAAwCt7B,WAAe,IAAvD,mBAAOu7B,EAAP,KAAqBC,EAArB,KACA,EAAgCx7B,YAAe,GAA/C,mBAAO0d,EAAP,KAAkBrG,EAAlB,KAEA,EAA8CrX,aAA9C,mBAAOy7B,EAAP,KAAwBC,EAAxB,KACA,EAA0D17B,aAA1D,mBAAO27B,EAAP,KAA8BC,EAA9B,KACA,EAAwD57B,aAAxD,mBAAO67B,EAAP,KAA6BC,EAA7B,KACA,EAA4B97B,WAAe,IAA3C,mBAAOe,EAAP,KAAeg7B,GAAf,KAEQ70B,GAAMC,cAAND,EAIRlH,aAAgB,WAAM,4CAClB,gCAAAuD,EAAA,sEAO6BgI,GAAepL,EAAYjB,aAC/CsI,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAVhC,cAOQirB,EAPR,gBAa6BjnB,GAAetL,EAAYjB,aAC/CsI,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAhBhC,cAaQu0B,EAbR,gBAmBkCrF,GAAmBx2B,EAAYjB,aACxDsI,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAtBhC,QAmBQ0wB,EAnBR,SA0B6BzF,GACrByF,EAAkBj3B,KAAI,SAACm3B,GACnBA,EAAG14B,YAAYuB,KAAI,SAACo3B,GAChB,IAAIpO,EAAOwI,EAAa3xB,QAAO,SAAApE,GAAC,OAAIA,EAAE4B,KAAM+5B,EAAGC,gBAC3CrO,EAAKrtB,OAAS,IACdy7B,EAAGpO,KAAOA,EAAK,UAO/BuG,EAAuBkC,GAAUD,IAEjC4I,EAAuBU,GACvBxE,EAAoBW,GACpBqD,EAAgBrD,GAEhBgD,GAAgBxI,GAAUD,GAC1B7iB,aAAYR,SAASC,eAAe,YACpC+H,GAAW,GA9Cf,6CADkB,uBAAC,WAAD,wBAkDlBvH,GACA4rB,EAAmBx0B,GAAE,wBACrB00B,EAAyB10B,GAAE,6BAC3B40B,EAAwB50B,GAAE,mCAE3B,CAACrG,IAAKC,WAET,IAAM6xB,GAAY,SAAZA,EAAalyB,GAA8C,IAAnB0J,EAAkB,wDACxD8oB,EAAM,GAgBV,OAfAxyB,EAAMS,KAAI,SAACF,GACP,GAAKmJ,GAQD,GADA8oB,EAAIpwB,KAAK,CAAEvC,MAAOU,EAAKzC,GAAImC,KAAuB,OAAjBG,IAAKC,SAAmBE,EAAK0P,OAAS1P,EAAK2P,OAAQuiB,YAAalyB,EAAKmyB,MAAOC,YAAapyB,EAAKqyB,OAAOx2B,OAAS,EAAkBy2B,uBAAwBtyB,EAAKuyB,aAAcC,uBAAwBxyB,EAAKyyB,aAAcC,UAAU,IAC7P1yB,EAAKqyB,OAAOx2B,OAAS,EAAG,CACxB,IAAIqD,EAAWyyB,EAAU3xB,EAAKqyB,OAAQryB,GAAM,GAC5CiyB,EAAMA,EAAIU,OAAOzzB,SARrB,GADA+yB,EAAIpwB,KAAK,CAAEvC,MAAOU,EAAKzC,GAAImC,KAAuB,OAAjBG,IAAKC,SAAmBE,EAAK0P,OAAS1P,EAAK2P,OAAQyiB,YAAapyB,EAAKqyB,OAAOx2B,OAAS,EAAkBy2B,uBAAwBtyB,EAAKuyB,aAAcC,uBAAwBxyB,EAAKyyB,aAAcC,UAAU,IACpO1yB,EAAKqyB,OAAOx2B,OAAS,EAAG,CACxB,IAAIqD,EAAWyyB,EAAU3xB,EAAKqyB,OAAQryB,GAAM,GAC5CiyB,EAAMA,EAAIU,OAAOzzB,OAUtB+yB,GAuGX,OAfAjzB,aAAgB,WACRggB,IACAA,GAAarN,YAClB,CAAC9R,IAAKC,WAETd,aAAgB,WACR0d,GAAarO,SAASC,eAAe,aACrCC,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,aAChDE,aAAYH,SAASC,eAAe,YACpCG,aAAW,CAAErJ,KAAM,iBAExB,CAACsX,IAKA,gCACI,uBAAKjf,UAAS,gBAAWgzB,EAAY,SAAW,KAC5C,uBAAKhzB,UAAU,yBACX,uBAAKA,UAAU,eACX,wBAAMA,UAAU,qBAChB,yBAAIyI,GAAE,kBAEV,uBAAKzI,UAAU,eACX,uBAAKA,UAAU,mBACX,gBAAC,KAAD,CACIA,UAAU,UACVF,GAAG,OACHuU,YAAa2oB,EACb/U,OAzFR,SAAAplB,GAChBy6B,GAAU,2BAAKh7B,GAAN,mBAAeO,EAAEkB,MAAMy5B,cAAc19B,GAAK+C,EAAEhB,cA4FzC,uBAAK7B,UAAU,oBACTgzB,GACE,uBAAKhzB,UAAU,aACX,gBAAC,KAAD,CAAiBA,UAAU,mBAAmBoK,SAAS,mBAAmBD,QAAS,kBAAM8oB,GAAcD,KAAY,wBAAMhzB,UAAU,qBAA2ByI,GAAE,0BAGvKuqB,GACG,uBAAKhzB,UAAU,aACX,gBAAC,KAAD,CAAiBA,UAAU,iCAAiCoK,SAAS,mBAAmBD,QAAS,kBAAM8oB,GAAcD,KAAY,wBAAMhzB,UAAU,qBAA2ByI,GAAE,0BAGtL,uBAAKzI,UAAU,aACX,gBAAC,KAAD,CACIoK,SAAS,mBACTD,QAtFL,WAEnB,IAAIszB,EAAeX,EAKnB,GAHIx6B,EAAOsD,OACP63B,EAAeA,EAAan7B,QAAO,SAAAC,GAAI,OAAIA,EAAKiS,KAAK/E,cAAciuB,SAASp7B,EAAOsD,KAAK6J,mBAExFnN,EAAOpB,aAAeoB,EAAOpB,YAAY9C,OAAQ,CACjD,IAAIu/B,EAAmB,GACvBr7B,EAAOpB,YAAYuB,KAAI,SAAAm7B,GACnB,IAAMC,EAAiBjB,EAAoB/0B,MAAK,SAAAtF,GAAI,OAAIA,EAAKzC,KAAO89B,KAChEC,GACAF,EAAiBv5B,KAAKy5B,EAAe5rB,WAG7CwrB,EAAeA,EAAan7B,QAAO,SAAAw7B,GAE/B,IAAIC,EAAoBJ,EAAiBK,OAAM,SAAAz7B,GAC3C,OAAOu7B,EAAa58B,YAAYoB,QAAO,SAAAkxB,GAAK,OAAIA,EAAMkH,cAAcgD,SAASn7B,MAAOnE,OAAS,KAE7F6/B,EAAc37B,GAAUA,EAAO47B,OAAS57B,EAAO47B,MAAM9/B,OAAS,GAAKkE,EAAO47B,MAAMF,OAAM,SAAAz7B,GACtF,OAAOu7B,EAAa58B,YAAYoB,QAAO,SAAAkxB,GAAK,OAAIA,EAAMsG,eAAgBv3B,KAAMnE,OAAS,KAGzF,OAAO2/B,GAAqBE,UAI5B37B,EAAO47B,OAAS57B,EAAO47B,MAAM9/B,SAC7Bq/B,EAAeA,EAAan7B,QAAO,SAAAw7B,GAE/B,OADcA,EAAa58B,YAAYoB,QAAO,SAAAkxB,GAAK,OAAIlxB,EAAO47B,MAAMl/B,QAAQw0B,EAAMsG,aAAa3yB,aAAe,KACjG/I,SAAWkE,EAAO47B,MAAM9/B,WAIjDmjB,GAAazV,WAAa2xB,EAC1BxK,GAAa,KAmDSxqB,GAAE,4BAIfuqB,GACG,uBAAKhzB,UAAU,8BACX,gBAAC,KAAD,CACIF,GAAG,QACH8F,KAAK,oBACLwE,SAAS,WACT+zB,cAAc,EAEdvyB,OAAQ,CAAEE,WAAYimB,EAAqBlwB,MAAO,QAASI,KAAM,OAAQwyB,YAAa,cAAeE,YAAa,eAClHsB,cAAc,EAEdC,aAAc,CAAEC,WAAW,GAC3B9hB,YAAa6oB,EACbr7B,MAAOS,EAAO47B,MACdjW,OA1HG,SAAAplB,GACvB,IAAI2xB,EAAM,GACV3xB,EAAEhB,MAAMY,KAAI,SAAAF,GACR,IAAM67B,EAAarM,EAAoBzvB,QAAO,SAAAkxB,GAAK,OAAIA,EAAM3xB,QAASU,IAASixB,EAAMmB,eAAalyB,KAAI,SAAA47B,GAAS,OAAIC,OAAOD,EAAUx8B,UAChIu8B,EAAWhgC,SACXo2B,EAAMA,EAAIU,OAAOkJ,OAGzBd,GAAU,2BAAKh7B,GAAN,mBAAeO,EAAEsa,QAAQrd,GAAK00B,MAmHnBlpB,OAAQlJ,IAAKC,WAEjB,wBAAMrC,UAAU,QACZ,gBAAC,MAAD,GACIF,GAAG,cACHsK,SAAS,WACTiK,YAAY,gBACZvI,WAAY8wB,EACZhxB,OAAQ,CAAE3J,KAAwB,OAAjBG,IAAKC,SAAoB,SAAW,SAAUR,MAAO,OAL1E,6BAMiBu7B,GANjB,uBAOW96B,EAAOpB,aAPlB,yBAnHE,SAAA2B,GACtBy6B,GAAU,2BAAKh7B,GAAN,mBAAeO,EAAEsa,QAAQrd,GAAK+C,EAAEhB,YAkHrB,OAcdod,EAAY,uBAAKnf,GAAG,YAClB,uBAAKE,UAAU,iBACX,gBAAC,KAAD,CACIF,GAAG,WACHgM,WAAYgtB,EAEZjQ,gBAAgB,EAChB2N,aAAa,EACb+H,aAAc,CAAEC,SAAU,IAC1B/H,cAAc,EACd2E,iBAlQK,CAAC,gBAAiB,iBAAkB,YAAa,WAAY,WAAY,YAmQ9Ev7B,IAAK,SAAA05B,GAAI,OAAIhY,GAAegY,GAC5BjuB,OAAQlJ,IAAKC,UACb,gBAAC,KAAD,KACI,gBAAC,KAAD,CACIyR,SArKT,SAACX,GAChB,OACI,wBAAMhJ,QAAS,kBAAM3K,EAAMm3B,KAAKxjB,EAAKrT,MAAMqT,EAAKqB,OAoK5BsH,MAAM,OACNpK,WAAYjJ,GAAE,sBACd/I,MAAM,QACV,gBAAC,KAAD,CACIoU,SA7LP,SAACX,GAElB,IAAIsrB,EAAY,GAchB,OAZItrB,EAAKjS,YAAY9C,QACjB+U,EAAKjS,YAAYuB,KAAI,SAAAF,GAEjB,IAAIm8B,EAAahC,GAAcp6B,QAAO,SAAAq8B,GAClC,OAAOA,EAAG98B,QAAUU,EAAKu3B,gBAG7B2E,EAAUr6B,KAAK,wBAAMpE,UAAU,aAAa0+B,EAAW,GAAGz8B,UAK3Dw8B,GA+KiB/sB,WAAYjJ,GAAE,wBACd/I,MAAM,QACV,gBAAC,KAAD,CACIk/B,UAAW,SACX9iB,MAAM,qBACNpK,WAAYjJ,GAAE,6BACd/I,MAAM,SAEd,gBAAC,KAAD,CAAQ0d,SAAU,CAACwZ,KAAQC,KAAMC,KAAaC,KAAQC,KAAMC,YGlTvE4H,GAAY,WAErB,MAAsBt9B,aAAiBD,GAAhCI,EAAP,oBACA,EAAgCH,WAAe,IAA/C,mBACA,GADA,UACgCA,YAAe,IAA/C,mBAAO6D,EAAP,KAAiBsL,EAAjB,KACA,EAAoCnP,WAAe,MAAnD,mBAAOu9B,EAAP,KAAmBC,EAAnB,KAEQt2B,EAAMC,cAAND,EAEFsnB,EAAY,CACdsH,OAAQ,GACRE,OAAQ,GACRC,IAAK,kBAAM9mB,GAAY,IACvBgnB,KAAM,IAaV,OANAn2B,aAAgB,WACRu9B,GACApuB,GAAY,KAEjB,CAACouB,IAGA,gCACiC,OAA5Bp9B,EAAYjB,YAAuB,gBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WAEzDzE,EACmB,OAAf05B,EACI,gBAAC,IAAD,CAAU16B,MAAM,EAAMyF,GAAG,gCACzB,gBAAC,IAAD,CAAUzF,MAAM,EAAMyF,GAAE,sCAAiCi1B,KAE7D,gCACI,gBAAC,GAAD,CAAoBh/B,GAAG,OACvB,uBAAKE,UAAU,eACf,gBAACwM,EAAA,EAAD,CAAWxM,UAAU,gBACjB,uBAAKA,UAAU,mBACX,gBAACmhB,GAAA,EAAD,KACI,uBAAKnhB,UAAU,mBACX,uBAAKA,UAAU,SACX,0BAAKyI,EAAE,6BAGf,uBAAKzI,UAAU,mBACX,uBAAKA,UAAU,WACX,gBAAC,GAAD,CAASwrB,SAAUuE,QAKnC,gBAAC5O,GAAA,EAAD,KACI,uBAAKnhB,UAAU,UACX,gBAAC,GAAD,CAAgB22B,KAvC5B,SAAC72B,GACjBi/B,EAAcj/B,YCVTk/B,I,OAAe,SAACx/B,GAEzB,IAAI+hB,EAEA3D,EACAqhB,EACAC,EAHAJ,EAAat/B,EAAMqG,MAAMiqB,OAAOhwB,GAKhCq/B,EAAyB,KACzBC,EAAgB,GAChBC,EAAgB,GAChBC,EAAoB,GACpBC,EAAmB,GACnBC,EAAmB,GAGvB,EAAsBj+B,aAAiBD,GAAhCI,EAAP,oBACA,EAAgCH,YAAe,GAA/C,mBAAO6D,EAAP,KAAiBsL,EAAjB,KACA,EAAgDnP,WAAe,IAA/D,mBAAOk+B,EAAP,KAAyBC,EAAzB,KACA,EAAgDn+B,WAAe,IAA/D,mBAAOo+B,EAAP,KAAyBC,EAAzB,KACA,EAA8Cr+B,WAAe,IAA7D,mBAAOs+B,EAAP,KAAwBC,EAAxB,KACA,EAA4Cv+B,WAAe,MAA3D,mBAAOw+B,EAAP,KAAuBC,EAAvB,KACA,EAA8Cz+B,WAAe,MAA7D,mBAAO0+B,EAAP,KAAwBC,EAAxB,KAEA,EAA8C3+B,WAAe,IAA7D,mBAAO4+B,EAAP,KAAwBC,EAAxB,KACA,EAAgD7+B,WAAe,IAA/D,mBAAO8+B,GAAP,KAAyBC,GAAzB,KAEA,GAAgC/+B,YAAe,GAA/C,qBAAO0d,GAAP,MAAkBrG,GAAlB,MACA,GAAwCrX,YAAe,GAAvD,qBAAOg/B,GAAP,MAAqBC,GAArB,MACA,GAAsCj/B,YAAe,GAArD,qBAAOquB,GAAP,MAAoBC,GAApB,MAEQpnB,GAAMC,cAAND,EAIFsnB,IAFyBjS,KAAvBa,mBAEU,CACd3C,MAAO,YACPmQ,aAAa,EACbK,gBAAgB,EAChBwD,QAAS,GACTrE,WAAY,GACZI,aAAc,GACdG,QAAS,SAACrpB,GAAD,OAAO49B,GAAa59B,IAC7BwpB,QAAS,GACTE,UAAW,kBAAM7b,GAAY,IAC7Bgc,UAAWoS,EAAa,SAACj8B,GACrBA,EAAEm3B,iBACFwG,IAAgB,IAChB,KAGRj/B,aAAgB,WAAM,4CAClB,gCAAAuD,EAAA,sEAC6BkI,GAAetL,EAAYjB,aAC/CsI,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAJhC,cACQu0B,EADR,gBAO6BzwB,GAAepL,EAAYjB,aAC/CsI,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAVhC,cAOQirB,EAPR,gBAaiCiE,GAAmBx2B,EAAYjB,aACvDsI,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAhBhC,QAaQ03B,EAbR,SAoB4BzM,IACpByM,EAAmBA,EAAiBp+B,QAAO,SAAApE,GAAC,OAAIA,EAAE4B,KAAMg/B,KAAY,KAE5D4B,EAAiBx/B,cACjBw/B,EAAiBx/B,YAAYuB,KAAI,SAACo3B,GAC9B,IAAIpO,EAAOwI,EAAa3xB,QAAO,SAAApE,GAAC,OAAIA,EAAE4B,KAAM+5B,EAAGC,gBAC3CrO,EAAKrtB,OAAS,IACdy7B,EAAGpO,KAAOA,EAAK,OAIHiV,EAAiBx/B,YACrC4+B,EAAmBY,IAK/BhB,EAAoBnC,GAChBtJ,IAEAiM,EAAmBhM,GAAUD,IAC7B2L,EAAoB1L,GAAUD,KAGlCmM,EAAmB33B,GAAE,2CAGjB63B,GAAoB73B,GADpBq2B,EACsB,+BAEA,gCAjD9B,6CADkB,uBAAC,WAAD,wBAsDlBztB,KAED,CAACjP,IAAKC,WAETd,aAAgB,WACZ,IAAM46B,EAAgB,CAClBrc,MAAO,CACH,KAAQ,CACJC,SAAU,EAAC,EAAMtX,GAAE,0BAS3BuX,gBAAiB,SAACC,EAAcC,GAC5BD,EAAaE,cAAcA,cAAcpF,YAAYmF,GACrD1M,YAAW,WACP0M,EAAa9N,MAAMqF,QAAU,SAC9B,OAGXmG,EAAa,IAAIwC,KAAc,uBAAwB+b,MAG3D56B,aAAgB,WACZ,GAA4C,qBAAhCs+B,EAAgB3+B,YAA6B,CACrD,IAAIy/B,EAAoBd,EAAgB3+B,YAAYoB,QAAO,SAAAmzB,GAAO,OAAmB,IAAZA,EAAE/vB,UAC3Es6B,EAAkBW,MAEvB,CAACd,IAEJt+B,aAAgB,WACRw+B,GAAkBxe,IAClBA,EAAazV,WAAai0B,GAC9Bd,EAAqBp9B,MAAQ,GAC7Bq9B,EAA0Br9B,MAAQ,KACnC,CAACk+B,IAEJx+B,aAAgB,WACZqX,IAAW,KACZ,CAACmnB,IAgCJ,IAAMzE,GAAe,SAACnoB,GAClB,OACI,gBAAC,KAAD,CACIrT,GAAG,GACHsK,SAAS,kBACTD,QAAS,SAACtH,GAAD,OA3BrB,SAAmBA,EAAGsQ,GAClBtQ,EAAEm3B,iBACF,IAAIt3B,GAAS,EACbq9B,EAAet9B,KAAI,SAACgzB,EAAGv3B,GACfu3B,EAAEqE,eAAiB3mB,EAAK2mB,eACP,IAAbrE,EAAE/vB,OACF+vB,EAAE/vB,OAAS,EAEXhD,EAAQxE,MAGhBwE,GAAS,GACTq9B,EAAezW,OAAO5mB,EAAO,GAEjCo9B,GAAmB,SAAAD,GAAe,kCAEvBA,GAFuB,IAG1B3+B,YAAa6+B,OAUGtG,CAAU52B,EAAGsQ,KAC/B1K,GAAE,oBAINyrB,GAAY,SAAZA,EAAalyB,GAA8C,IAAnB0J,EAAkB,wDACxD8oB,EAAM,GAgBV,OAfAxyB,EAAMS,KAAI,SAACF,GACP,GAAKmJ,GAQD,GADA8oB,EAAIpwB,KAAK,CAAEvC,MAAOU,EAAKzC,GAAImC,KAAuB,OAAjBG,IAAKC,SAAmBE,EAAK0P,OAAS1P,EAAK2P,OAAQuiB,YAAalyB,EAAKmyB,MAAOC,YAAapyB,EAAKqyB,OAAOx2B,OAAS,EAAkBy2B,uBAAwBtyB,EAAKuyB,aAAcC,uBAAwBxyB,EAAKyyB,aAAcC,UAAU,IAC7P1yB,EAAKqyB,OAAOx2B,OAAS,EAAG,CACxB,IAAIqD,EAAWyyB,EAAU3xB,EAAKqyB,OAAQryB,GAAM,GAC5CiyB,EAAMA,EAAIU,OAAOzzB,SARrB,GADA+yB,EAAIpwB,KAAK,CAAEvC,MAAOU,EAAKzC,GAAImC,KAAuB,OAAjBG,IAAKC,SAAmBE,EAAK0P,OAAS1P,EAAK2P,OAAQyiB,YAAapyB,EAAKqyB,OAAOx2B,OAAS,EAAkBy2B,uBAAwBtyB,EAAKuyB,aAAcC,uBAAwBxyB,EAAKyyB,aAAcC,UAAU,IACpO1yB,EAAKqyB,OAAOx2B,OAAS,EAAG,CACxB,IAAIqD,EAAWyyB,EAAU3xB,EAAKqyB,OAAQryB,GAAM,GAC5CiyB,EAAMA,EAAIU,OAAOzzB,OAUtB+yB,GAUXjzB,aAAgB,WACRggB,GACAA,EAAarN,YAClB,CAAC9R,IAAKC,WAET,IA6GMo+B,GAAe,SAAC59B,GAElBA,EAAEm3B,iBAEF,IACMpc,EAAW8B,aACTmQ,IAAe,GACoB,qBAAvBgQ,EAAgB//B,IACM,OAA1Bq/B,IACAU,EAAgBrrB,KAAO2qB,GAEvBU,EAAgB3+B,YLnWjC,SAAP,qCKoWwB0/B,CAAmBl/B,EAAYjB,YAAao/B,GACvC92B,MAAK,SAAAvD,GACEA,EAASC,IACTiL,GAAY,GAEhBmf,IAAe,MAElB3mB,OAAM,SAAAC,GACLC,QAAQD,MAAMA,GACd0mB,IAAe,OAGrBgR,MAAM,sEACNhR,IAAe,MAIW,OAA1BsP,IACAU,EAAgBrrB,KAAO2qB,GLjXxC,SAAP,qCKoXoB2B,CAAsBp/B,EAAYjB,YAAao/B,GAC1C92B,MAAK,SAAAvD,GACEA,EAASC,IACTiL,GAAY,GAEhBmf,IAAe,MAElB3mB,OAAM,SAAAC,GACLC,QAAQD,MAAMA,GACd0mB,IAAe,QAI/B,MAAOhtB,GACLuG,QAAQ1C,IAAI,sCAAuC7D,KAIvDk+B,GAAgB,SAACl+B,GACjBA,EAAEm3B,iBLlYH,SAAP,qCKoYQgH,CAAsBt/B,EAAYjB,YAAaq+B,GAAY/1B,MAAK,SAAAvD,GAC5DkL,EAAYlL,EAASC,QAI7B,OACI,gCACiC,OAA5B/D,EAAYjB,YAAuB,gBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WACzDzE,EAAW,gBAAC,IAAD,CAAUhB,MAAM,EAAMyF,GAAG,4BAChC,gCACI,uBAAK7J,UAAU,eACf,wBAAMF,GAAG,uBACL,gBAAC0M,EAAA,EAAD,CAAWxM,UAAU,gBACjB,uBAAKA,UAAU,mBACX,gBAACmhB,GAAA,EAAD,KACI,uBAAKnhB,UAAU,UACX,uBAAKA,UAAU,SACX,0BAAKqgC,QAKrB,gBAAClf,GAAA,EAAD,KACI,uBAAKnhB,UAAU,mBACX,uBAAKA,UAAU,YACX,uBAAKA,UAAU,0CACX,uBAAKA,UAAU,mBACf,0BAAKyI,GAAE,8BAEX,uBAAKzI,UAAU,8CACX,uBAAKA,UAAU,SACX,yBAAOugB,QAAQ,QAAQ9X,GAAE,yBAAzB,IAAmD,yBAAOuT,MAAM,WAAb,MACnD,gBAAC,KAAD,CACIlc,GAAG,OACH8F,KAAK,OACLwE,SAAS,WACTwgB,eAAgB,CAAEiD,UAAW,OAC7BxZ,YAAa8rB,EACbt+B,MAAOg+B,GAAmBA,EAAgBrrB,KAC1CyT,OAtNlB,SAACplB,GAEhB,OAAXA,EAAEhB,OAAmC,IAAlBgB,EAAEhB,MAAMzD,SAC3B+gC,EAAyBt8B,EAAEhB,WAsNS,uBAAK7B,UAAU,SACX,yBAAOugB,QAAQ,QAAQ9X,GAAE,gCACzB,gBAAC,KAAD,CACI3I,GAAG,oBACHD,IAAK,SAAAohC,GAAY,OAAIhC,EAAuBgC,GAC5Cr7B,KAAK,oBACLwE,SAAS,WAGTwB,OAAQ,CAAEE,WAAY6zB,EAAkB99B,MAAO,QAASI,KAAM,OAAQwyB,YAAa,cAAeE,YAAa,eAC/GsB,cAAc,EAEdC,aAAc,CAAEC,WAAW,GAC3B9hB,YAAa5L,GAAE,+BACf5G,MAAO,GACPomB,OA5N3B,SAACplB,GACtBu8B,EAAgB,GACD,OAAXv8B,EAAEhB,OAAmC,IAAlBgB,EAAEhB,MAAMzD,QAC3ByE,EAAEhB,MAAMY,KAAI,SAAAy+B,GACRvB,EAAiBl9B,KAAI,SAAAqC,GACbA,EAAEjD,MAAMsF,aAAc+5B,IACjBp8B,EAAE6vB,aACHyK,EAAch7B,KAAKU,WAsNSwG,OAAQlJ,IAAKC,WAEjB,wBAAM2Z,MAAM,QAAQlc,GAAG,8BAE1Bmf,IACG,uBAAKjf,UAAU,SACX,yBAAOugB,QAAQ,aAAa9X,GAAE,gCAC9B,gBAAC,KAAD,CACI3I,GAAG,qBACHD,IAAK,SAAAshC,GAAW,OAAIjC,EAA4BiC,GAChDv7B,KAAK,qBACLwE,SAAS,WAET0B,WAAY2zB,EACZ7zB,OAAQ,CAAE3J,KAAyB,OAAlBG,IAAKC,SAAoB,SAAW,UACrDgS,YAAa5L,GAAE,2CACf6tB,KAAK,WACLhrB,OAAQlJ,IAAKC,SACb4lB,OAhO/B,SAACplB,GACtBw8B,EAAgB,GAChBC,EAAoB,GACpBC,EAAmB,GACnBC,EAAmB,GAEJ,OAAX38B,EAAEhB,OAA4B,IAAXgB,EAAEhB,QACrBgB,EAAEhB,MAAMY,KAAI,SAAAgzB,GACRgK,EAAiBh9B,KAAI,SAAAo3B,GACbA,EAAsB,OAAlBz3B,IAAKC,SAAoB,SAAW,YAAaozB,GACrD4J,EAAcj7B,KAAKy1B,SAI/BwF,EAAc58B,KAAI,SAAA2+B,GACd9B,EAAkBl7B,KAAKg9B,EAAIthC,IAC3By/B,EAAiBn7B,KAAKg9B,EAAInvB,QAC1ButB,EAAiBp7B,KAAKg9B,EAAIlvB,cAmNkB,gBAAC,KAAD,CAAQkL,SAAU,CAAC+d,SAEvB,wBAAMnf,MAAM,QAAQlc,GAAG,+BAG/B,uBAAKE,UAAU,aACX,gBAAC,KAAD,CACIoK,SAAS,YACTD,QAAS,SAACtH,IAtNtC,SAACA,GACrBA,EAAEm3B,iBAEF,IAAIqH,EAA4B,GAE5BxB,EAAgB3+B,aAChB2+B,EAAgB3+B,YAAYuB,KAAI,SAACgzB,GAC7B4L,EAA0Bj9B,KAAKqxB,MAInCoK,EAAgBrrB,OAChB2qB,EAAyBU,EAAgBrrB,MAGzC4qB,EAAchhC,QAAUkhC,EAAkBlhC,QAC1CghC,EAAc38B,KAAI,SAAAy+B,GACd,IAAItgB,EAAM,CACNkZ,aAAcoH,EAAGr/B,MACjBy/B,eAAgBhC,EAChB5E,cAAe6E,EACf5E,cAAe6E,EACf3K,uBAAwBqM,EAAGrM,uBAC3BE,uBAAwBmM,EAAGnM,uBAC3BrvB,OAAQ,GAGR27B,EAA0BjjC,QAC1BijC,EAA0B5+B,KAAI,SAAA8+B,GAC1B,GAAIA,EAAIzH,eAAiBoH,EAAGr/B,MACxB,GAAmB,IAAf0/B,EAAI77B,OACJ67B,EAAI77B,OAAS,MACZ,CACD,IAAIhD,EAAQ2+B,EAA0B/N,WAAU,SAAAnW,GAAO,OAAIA,EAAQ2c,eAAiByH,EAAIzH,cAAmC,IAAnB3c,EAAQzX,UAC5GhD,GAAS,GACT2+B,EAA0B/X,OAAO5mB,EAAO,OAM5D2+B,EAA0Bj9B,KAAKwc,MAInCkf,GAAmB,SAAAD,GAAe,kCAEvBA,GAFuB,IAG1BrrB,KAAM2qB,EACNj+B,YAAamgC,OAGrBzwB,SAASC,eAAe,4BAA4BkU,UAAY,GAChEnU,SAASC,eAAe,6BAA6BkU,UAAY,KAI5Dqa,EAAchhC,OAGfwS,SAASC,eAAe,4BAA4BkU,UAAY,GAFhEnU,SAASC,eAAe,4BAA4BkU,UAAY,uBAK/Dua,EAAkBlhC,OAGnBwS,SAASC,eAAe,6BAA6BkU,UAAY,GAFjEnU,SAASC,eAAe,6BAA6BkU,UAAY,wBAsJPyc,CAAgB3+B,KACpC4F,GAAE,+BAIZ,uBAAKzI,UAAU,SACT+/B,GAAkBE,GAChB,gBAAC,KAAD,CACIngC,GAAG,WACHD,IAAK,SAAA05B,GAAI,OAAIhY,EAAegY,GAC5B/C,aAAa,EACb+H,aAAc,CAAEC,SAAU,IAC1BlzB,OAAQlJ,IAAKC,SAEbyJ,WAAYi0B,EACZxJ,eAAgB,CAAE5uB,KAAM,SAGxB,gBAAC,KAAD,KACI,gBAAC,KAAD,CACImM,SAAU,SAACX,GAAD,OAvVnD,SAACA,GAChB,OAAO,4BAAOA,IAA0B,OAAjB/Q,IAAKC,SAAmB8Q,EAAK4hB,uBAAuBvR,KAAK,OAASrQ,EAAK0hB,uBAAuBrR,KAAK,SAsV9Cie,CAAWtuB,IAE/BzB,WAAYjJ,GAAE,yBACd/I,MAAM,QAEV,gBAAC,KAAD,CACIoU,SAAU,SAACX,GAAD,OAzV7C,SAACA,GACtB,OAAO,4BAAOA,IAA0B,OAAjB/Q,IAAKC,SAAmB8Q,EAAKunB,cAAclX,KAAK,MAAQrQ,EAAKwnB,cAAcnX,KAAK,QAwV3B6X,CAAiBloB,IAErCzB,WAAYjJ,GAAE,+BACd/I,MAAM,QAEV,gBAAC,KAAD,CACIoU,SAAU,SAACX,GAAD,OAAUmoB,GAAanoB,IAEjCzB,WAAYjJ,GAAE,2BACd/I,MAAM,SAId,gBAAC,KAAD,CAAQ0d,SAAU,CAAC2Z,KAAQC,YAM/C,uBAAKh3B,UAAU,mBACX,gBAAC,GAAD,CAAS2S,SAAUid,GAAapE,SAAUuE,SAK1D,gBAAC,KAAD,CACIjwB,GAAG,cACHoe,SAAS,EACTvC,QAAS4kB,GACTj1B,OAAQlJ,IAAKC,UAEb,2BACI,uBAAKrC,UAAU,YACX,yBAAOA,UAAU,oBACjB,uBAAKA,UAAU,gBACX,yBAAOF,GAAG,UAAU2I,GAAE,mBACtB,yBAAO3I,GAAG,eAAe2I,GAAE,+BAGnC,2BACA,uBAAKzI,UAAU,iBACX,0BAAQmK,QAAS,kBAAMq2B,IAAgB,KAAS/3B,GAAE,mBAClD,0BAAQ0B,QAAS,SAACtH,GAAD,OAAOk+B,GAAcl+B,KAAsB,OAAjBT,IAAKC,SAAmB,MAAQ,cH/hBlGq/B,GAAe,SAACliC,GAEzB,IAiBI8f,EAjBIqiB,EAA0DniC,EAA1DmiC,eAAgBC,EAA0CpiC,EAA1CoiC,YAAaC,EAA6BriC,EAA7BqiC,WAAY79B,EAAiBxE,EAAjBwE,KAAMoe,EAAW5iB,EAAX4iB,OAEvD,EAAsB7gB,aAAiBD,GAAhCI,EAAP,oBACA,EAAoCH,WAAeyC,GAAnD,mBAAO89B,EAAP,KAAmBC,EAAnB,KACA,EAAkCxgC,YAAe,GAAjD,mBAAOouB,EAAP,KAAkB1R,EAAlB,KACA,EAA8C1c,YAAe,GAA7D,mBAAO83B,EAAP,KAAwBC,EAAxB,KACA,EAAgD/3B,YAAe,GAA/D,mBAAO06B,EAAP,KAAyB+F,EAAzB,KACA,EAA4CzgC,YAAe,GAA3D,mBAAO0gC,EAAP,KAAuBC,EAAvB,KACMC,EAAY5gC,SAAa,MACzB6gC,EAAW7gC,SAAa,MAEtBod,EAAuBb,KAAvBa,mBAER,EAAwCpd,YAAe,GAAvD,mBAAO8gC,EAAP,KAAqBC,EAArB,KAEQ75B,EAAMC,cAAND,EAOJ6W,EADQ,KAARtb,EACe,CACX,CACI2D,KAAM,SACN4X,YAAa,CACTC,WAAW,EACX3L,QAA0B,OAAjBzR,IAAKC,SAAmB,UAAY,SAC7C+H,SAAS,GAAD,QAAM3C,EAAe,GAAI,SAAU/F,IAAgB,SAAnD,kBAEZsZ,MAAO,WACHse,GAAmB,KAG3B,CACI3xB,KAAM,SACN4X,YAAa,CACTC,WAAW,EACX3L,QAA0B,OAAjBzR,IAAKC,SAAmB,SAAW,OAC5C+H,SAAS,GAAD,QAAM3C,EAAe,GAAI,OAAQ/F,IAAgB,SAAjD,gBAEZsZ,MAAO,WACHunB,OAKG,CACX,CACI56B,KAAM,SACN4X,YAAa,CACTnV,SAAS,GAAD,QAAM3C,EAAe,GAAI,SAAU/F,IAAgB,SAAnD,eACR8d,WAAW,EACX3L,QAA0B,OAAjBzR,IAAKC,SAAmB,SAAW,QAEhD2Y,MAAO,WACHunB,OAUKngC,IAAKC,SAWLD,IAAKC,SAS1Bd,aAAgB,WACZ,IAAMse,EAAU,CACZC,MAAO,CACH,OAAU,CACNC,SAAU,EAAC,EAAMtX,EAAE,yBAEvB,QAAW,CACPsX,SAAU,EAAC,EAAMtX,EAAE,yBAEvB,OAAU,CACNsX,SAAU,EAAC,EAAMtX,EAAE,yBAEvB,MAAS,CACLsX,SAAU,EAAC,EAAMtX,EAAE,0BAG3BuX,gBAAiB,SAACC,EAAcC,GAC5BD,EAAaE,cAAcA,cAAcpF,YAAYmF,KAG7DtC,GAAa,IAAIwC,KAAc,iBAAkBP,MAGrD,IAAM0iB,EAAgB,WACd3kB,GAAW8B,YAAcoiB,EAAWU,WACpCC,KACAhgB,IACAL,EAAO3W,SAEFq2B,EAAWU,UAGZ5xB,SAASC,eAAe,iBAAiBkU,UAAY,GAFrDnU,SAASC,eAAe,iBAAiBkU,UAA6B,OAAjB3iB,IAAKC,SAAmB,wBAAuB,kBAO1GqgC,EAAoB,WACtB,OAAY,KAAR1+B,IAAcyD,EAAe,GAAI,OAAQ/F,QAEjCsC,GAAQyD,EAAe,GAAI,SAAU/F,KAO/CzD,EAAS2S,SAASC,eAAe,gBAEnC8xB,EAAc,WAEd,OADA/xB,SAASiS,uBAAuB,sBAAsB,GAAGC,cAAc,UAAU9H,SAC1E,GAGPyH,EAAc,WACd,IAAMM,EAAanS,SAASC,eAAe,gBAAkBD,SAASC,eAAe,eAAemS,cAAc,GAClH,GAAmB,OAAfD,GAA+C,OAAxBA,EAAWE,UAAsD,qBAAzBF,EAAWE,SAC1E,OAAOF,EAAWE,YAI1B1hB,aAAgB,WACZuP,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,mBAChDE,aAAYH,SAASC,eAAe,kBACpCG,aAAW,CAAErJ,KAAM,gBACpB,CAAC06B,IAEJ,IAoBMO,EAAkB,SAACzvB,GACrB,IAAI0vB,EAAS,eAAQf,GACrBe,EAAU1vB,EAAKlV,OAAO6B,IAAMqT,EAAKlV,OAAO4D,MACxCkgC,EAAcc,IAGZC,EAAmB,SAAC3vB,GACtB,IAAI0vB,EAAS,eAAQf,GACrBe,EAAU1vB,EAAKgK,QAAQrd,IAAMqT,EAAKtR,MAClCkgC,EAAcc,IAGZE,EAAe,CAAC,CAClB9gC,KAAuB,OAAjBG,IAAKC,SAAmB,eAAc,aAC5CR,MAAO,GACR,CACCI,KAAuB,OAAjBG,IAAKC,SAAmB,YAAW,UACzCR,MAAO,IAGLmhC,EAAe,CAAC,CAClB/gC,KAAuB,OAAjBG,IAAKC,SAAmB,MAAQ,MACtCR,OAAO,GACR,CACCI,KAAuB,OAAjBG,IAAKC,SAAmB,SAAQ,KACtCR,OAAO,IAGXN,aAAgB,WACZ,GAAIyC,EAAKlE,GAAI,CACT,IAAIuJ,GAAU,IAAI/B,MAAOgC,cACrBu5B,EAAS,eAAQf,GAEjBe,EAAU/iC,IACVoiC,GAAkB,GAGtBW,EAAUL,UAAV,UAAyBj9B,0BAAzB,gDAA8F7D,EAAY4S,iBAA1G,yBAA2ItQ,EAAKlE,GAAhJ,cAAwJuJ,GACxJ04B,EAAcc,GACdz5B,QAAQ1C,IAAI,YAAam8B,MAE9B,IAEHthC,aAAgB,WACZ0c,GAAa,KACd,CAACze,EAAMkG,SAEV,IA2HIqc,EACAkhB,GA5HAC,GAAe,WAEf,IAAI75B,GAAU,IAAI/B,MAAOgC,e3BhO1B,SAAP,8B2BkOQ65B,CAAczhC,EAAYjB,YAAauD,EAAKlE,IAC5C,IAAIsjC,EAAexB,EAAYt/B,QAAO,SAAAC,GAAI,OAAIA,EAAKzC,KAAMkE,EAAKlE,MAC9D6hC,EAAeyB,GAEfvB,EAAWx4B,IAGXo5B,GAAe,WAEf,GAAIX,EAAWU,UACX,GAAIx+B,EAAM,CACN,IAAIq/B,EAAU,CACVvjC,GAAIgiC,EAAWhiC,GACfqV,MAAO2sB,EAAW3sB,MAClBE,QAASysB,EAAWzsB,QACpBE,SAAUusB,EAAWvsB,SACrBitB,UAAWV,EAAWU,UAAYV,EAAWU,UAAUhiB,MAAM,KAAK,GAAK,KACvEpL,OAAQ0sB,EAAW1sB,OACnBE,KAAMwsB,EAAWxsB,O3B9P9B,SAAP,sC2BiQgBguB,CAAc5hC,EAAYjB,YAAa4iC,GAClCt6B,MAAK,SAACvD,GACH,GAAIA,EAASC,GAAM,OAAOD,EAASwD,UAEtCD,MAAK,SAACE,GACHs6B,GAAiBt6B,MAEpBC,OAAM,SAAAC,GACHwV,EAAmB,CACfP,QAAS,OACTC,QAAS,QACTC,UAAW,6BACXC,UAAW,kCACXpV,MAAO,SAInBwV,EAAmB,CACfP,QAAS,UACTC,QAAS,UACTC,UAAW,gCACXC,UAAW,oCAGZ,CACH,IAAIskB,EAAYf,EAChBe,EAAUL,UAAYV,EAAWU,UAAYV,EAAWU,UAAUhiB,MAAM,KAAK,GAAK,K3BtR3F,SAAP,qC2BwRgBgjB,CAAW9hC,EAAYjB,YAAaoiC,GAC/B95B,MAAK,SAACvD,GACH,GAAIA,EAASC,GAAM,OAAOD,EAASwD,UAEtCD,MAAK,SAACE,GACHw6B,GAAgBx6B,MAEnBC,OAAM,SAAAC,GACHwV,EAAmB,CACfP,QAAS,OACTC,QAAS,QACTC,UAAW,6BACXC,UAAW,gCACXpV,MAAO,SAKnBwV,EAAmB,CACfP,QAAS,UACTC,QAAS,UACTC,UAAW,gCACXC,UAAW,gCAMrBglB,GAAmB,SAACzjC,GAEtB,IAAIuJ,GAAU,IAAI/B,MAAOgC,cAEzBs4B,EAAYn/B,KAAI,SAAAvE,GACRA,EAAE4B,KAAMA,IACR5B,EAAEiX,MAAQ2sB,EAAW3sB,MACrBjX,EAAEmX,QAAUysB,EAAWzsB,QACvBnX,EAAEqX,SAAWusB,EAAWvsB,SACxBrX,EAAEmM,IAAF,UAAW9E,0BAAX,gDAAgF7D,EAAY4S,iBAA5F,yBAA6HtQ,EAAKlE,GAAlI,oBAAgJuJ,GAChJnL,EAAEkX,OAAS0sB,EAAW1sB,OACtBlX,EAAEoX,KAAOwsB,EAAWxsB,SAI5BqsB,EAAeC,GAEfC,EAAWx4B,IAGTo6B,GAAkB,SAAC3jC,GACrB,IAAIuJ,GAAU,IAAI/B,MAAOgC,cAEzBw4B,EAAWhiC,GAAKA,EAChBgiC,EAAWU,UAAY,0BAA4BV,EAAWU,UAC9DV,EAAWz3B,IAAX,UAAoB9E,0BAApB,gDAAyF7D,EAAY4S,iBAArG,yBAAsIxU,EAAtI,oBAAoJuJ,GACpJu4B,EAAYx9B,KAAK09B,GACjBH,EAAeC,GAEfC,EAAWx4B,IA6Cf,OACI,4BACMy4B,EAAWU,YAAcx+B,IAAUxE,EAAMkG,QAAWiqB,GAClD,2BACI,gBAAC,KAAD,CACI7vB,GAAG,eACHJ,MAAM,QACNwe,SAAS,EACTmC,QAASf,EACT3D,QAASgU,EACTrP,eAAe,EACfqD,YAAavB,EAAO3W,MACpBA,MAAOgX,EACPnX,OAAQlJ,IAAKC,UAEZstB,EACG,wBAAM7vB,GAAG,iBACL,uBAAKD,IAAK,SAAA6jC,GAAW,OAAI3hB,EAAc2hB,GAAa1jC,UAAU,SAASF,GAAG,gBACrEgiC,GAAcA,EAAWU,UACtB,2BACI,wBAAM1iC,GAAG,SAASqK,QAAS,kBAAMw4B,MAC7B,uBAAKt4B,IAAKy3B,EAAWU,cAI7B,uBAAKxiC,UAAU,OACX,wBAAM6jB,wBAAyB,CAAEC,OAvZ1D,uuDAwZyB,yBAAqB,OAAjB1hB,IAAKC,SAAmB,sCAAqC,wBAAwB,wBAAM8H,QAAS,kBAAMw4B,MAArB,IAAuD,OAAjBvgC,IAAKC,SAAmB,eAAiB,aAKpL,2BACK4/B,GAAkB,uBAAKjiC,UAAU,6EAC9B,sBAAIA,UAAU,kBACV,sBAAIA,UAAU,qBAAqB+jB,mBAAiB,KAChD,wBAAM/jB,UAAU,oBACZ,wBAAMA,UAAU,eAAhB,SAAqC8hC,EAAWhiC,GAAhD,UAEF4iC,KAAuB,0BAAQ/6B,KAAK,SAASwC,QAAS,kBAAMw4B,MACxC,OAAjBvgC,IAAKC,SAAmB,gBAAkB,qBAO/D,uBAAKvC,GAAG,kBAER,gBAAC,KAAD,CACIA,GAAG,cACH8F,KAAK,SACL+9B,KAAK,OACLjvB,QAlFd,WACVuuB,KACAA,GAAUvgB,SAAWX,EACrBkhB,GAAUtgB,aAgFcxgB,SA5EF,SAAA4B,GACW,MAAjCA,EAAMogB,UAAU,GAAGC,YACnBke,GAAgB,GAChBv+B,EAAMogB,UAAU1hB,KAAI,SAAC2Z,GACjB,IAAMiI,EAAS,IAAIC,WACnBD,EAAOI,iBAAiB,QAAQ,WAC5B,IAAIoe,EAAS,eAAQf,GACrBe,EAAUL,UAAYne,EAAOpb,OAC7B84B,EAAcc,GACdX,GAAkB,GAClBI,GAAgB,MACjB,GACHje,EAAOQ,cAAczI,EAAK0I,YAE9BlU,SAASC,eAAe,iBAAiBkU,UAAY,IAGrDnU,SAASC,eAAe,iBAAiBkU,UAAY,0CA6D7Bb,kBAAkB,oBAClBxB,SAAUzkB,EACV2sB,eAAgB,CAAEgZ,SAAU,KAC5BvoB,YAAa,IACb/P,OAAQlJ,IAAKC,SACb4iB,UAAU,EAEVplB,IAAK,SAAAgkC,GAAM,OAAIZ,GAAYY,KAE9BxB,GAAgB,uBAAKviC,GAAG,kBACzB,uBAAKE,UAAS,gBAAWqiC,EAAe,eAAiB,KACrD,yBAAO9hB,QAAQ,UAA2B,OAAjBne,IAAKC,SAAmB,WAAa,WAC9D,uBAAKrC,UAAU,iBACX,yBACIF,GAAG,SACH8F,KAAK,SACLgiB,UAAU,KACVjgB,KAAK,OACLm8B,aAAc9/B,GAAQA,EAAKoR,OAC3Bf,YAA8B,OAAjBjS,IAAKC,SAAmB,yCAAqC,iCAC1E+R,SAAU,SAACjB,GAAD,OACNyvB,EAAgBzvB,IAEpBR,SAAU+vB,MAEd,wBAAM1iC,UAAU,mBAIxB,uBAAKA,UAAU,SACX,yBAAOugB,QAAQ,UAA2B,OAAjBne,IAAKC,SAAmB,kBAAc,cAA/D,IAA8E,yBAAO2Z,MAAM,WAAb,MAC9E,uBAAKhc,UAAU,iBACX,4BACIF,GAAG,UACH8F,KAAK,UACLgiB,UAAU,MACVjgB,KAAK,OACLm8B,aAAc9/B,GAAQA,EAAKqR,QAC3BhB,YAA8B,OAAjBjS,IAAKC,SAAmB,yCAA2C,gCAChF+R,SAAU,SAACjB,GAAD,OACNyvB,EAAgBzvB,IAEpBR,SAAU+vB,MAEd,wBAAM1iC,UAAU,mBAIxB,uBAAKA,UAAU,SACX,yBAAOugB,QAAQ,UAAf,QACA,uBAAKvgB,UAAU,iBACX,4BACIF,GAAG,OACH8F,KAAK,OACL+B,KAAK,OACLm8B,aAAc9/B,GAAQA,EAAKsR,KAC3BjB,YAA8B,OAAjBjS,IAAKC,SAAmB,qBAAuB,yBAC5D+R,SAAU,SAACjB,GAAD,OACNyvB,EAAgBzvB,IAEpBR,SAAU+vB,MAEd,wBAAM1iC,UAAU,mBAIxB,uBAAKA,UAAU,QACX,uBAAKA,UAAU,SACX,yBAAOugB,QAAQ,UAA2B,OAAjBne,IAAKC,SAAmB,SAAW,WAA5D,IAAwE,yBAAO2Z,MAAM,WAAb,MACxE,gBAAC,KAAD,CACIlc,GAAG,WACHD,IAAKsiC,EACLv8B,KAAK,SACLwE,SAAS,WACT0B,WAAYi3B,EACZn3B,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,SAC/ByJ,OAAQlJ,IAAKC,SACbR,MAAOmC,GAAQA,EAAKuR,SACpBb,QAAS,WACDguB,MACAN,EAASzuB,QAAQ8T,SAAU,EAC3B0a,EAAUxuB,QAAQ8T,SAAU,IAGpCpT,YAA8B,OAAjBjS,IAAKC,SAAmB,qBAAuB,sBAC5DuoB,eAAgB,CAAEgZ,SAAU,KAC5B3b,OAAQ,SAAC9U,GAAD,OACJ2vB,EAAiB3vB,IAErBR,SAAU+vB,OAGlB,uBAAK1iC,UAAU,SACX,yBAAOugB,QAAQ,SAA0B,OAAjBne,IAAKC,SAAmB,QAAU,SAA1D,IAAoE,yBAAO2Z,MAAM,WAAb,MACpE,gBAAC,KAAD,CACIlc,GAAG,QACHD,IAAKuiC,EACLx8B,KAAK,QACLwE,SAAS,WACT0B,WAAYk3B,EACZp3B,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,SAC/ByJ,OAAQlJ,IAAKC,SACbqS,QAAS,WACDguB,MACAN,EAASzuB,QAAQ8T,SAAU,EAC3B0a,EAAUxuB,QAAQ8T,SAAU,IAGpC5lB,MAAOmC,GAAQA,EAAKmR,MACpBd,YAA8B,OAAjBjS,IAAKC,SAAmB,qBAAuB,gBAAiB0hC,SAAO,EACpFnZ,eAAgB,CAAEgZ,SAAU,KAC5B3b,OAAQ,SAAC9U,GAAD,OACJ2vB,EAAiB3vB,IAErBR,SAAU+vB,SAM1B,uBAAK5iC,GAAG,YAAYE,UAAU,eAGtC,gBAAC,KAAD,CACIF,GAAG,cACHoe,SAAS,EACTvC,QAAS0d,EACT/tB,OAAQlJ,IAAKC,UAEb,4BACM45B,GAAoB,gCAClB,uBAAKj8B,UAAU,YACX,wBAAMA,UAAU,oBAChB,uBAAKA,UAAU,gBACX,yBAAOF,GAAG,UAA2B,OAAjBsC,IAAKC,SAAmB,UAAY,UACxD,yBAAOvC,GAAG,eAAgC,OAAjBsC,IAAKC,SAAmB,8BAAgC,8BAGzF,4BAGF45B,EAME,uBAAKj8B,UAAU,kBACX,uBAAKA,UAAU,gBACX,wBAAMA,UAAU,6BAEpB,6BAAyB,OAAjBoC,IAAKC,SAAmB,+BAA8B,wBAC9D,0BAAQ8H,QAAS,kBApP7CsY,SACAL,EAAO3W,UAmP4E,OAAjBrJ,IAAKC,SAAmB,OAAS,SAV3E,uBAAKrC,UAAU,iBACX,0BAAQmK,QAAS,kBAAMmvB,GAAmB,KAA0B,OAAjBl3B,IAAKC,SAAmB,WAAa,UACxF,0BAAQ8H,QAAS,kBAjP7C+4B,UACAlB,GAAoB,KAgPkE,OAAjB5/B,IAAKC,SAAmB,MAAQ,aI1kBhG2hC,GAAc,SAACxkC,GAExB,IAUI+hB,EAVIogB,EAA8CniC,EAA9CmiC,eAAgBC,EAA8BpiC,EAA9BoiC,YAAaqC,EAAiBzkC,EAAjBykC,aAErC,EAAsC1iC,aAAiBD,GAAvD,mBAAOI,EAAP,KAEA,GAFA,KAE0CH,YAAe,IAAzD,mBAAO2iC,EAAP,KAAsBC,EAAtB,KAIQ17B,EAAMC,cAAND,EAIRlH,aAAgB,WACZ4iC,GAAiB,GACjB,IAAI96B,GAAU,IAAI/B,MAAOgC,cAFP,4CAIlB,sBAAAxE,EAAA,sDACI6P,GAAWjT,EAAYjB,aAClBsI,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAGvBD,MAAK,SAAAE,GACF04B,EAAe14B,GAAUA,EAAOxG,KAAI,SAACvE,GAAD,mBAAC,eAC9BA,GAD6B,IAEhCmM,IAAI,GAAD,OAAK9E,0BAAL,gDAA0E7D,EAAY4S,iBAAtF,yBAAuHpW,EAAE4B,GAAzH,oBAAuIuJ,SAG9I+H,aAAYR,SAASC,eAAe,eACpCszB,GAAiB,MAd7B,4CAJkB,0DAqBlB9yB,KACD,CAACjP,IAAKC,WAETd,aAAgB,WACRggB,GACAA,EAAarN,YAElB,CAAC+vB,IAEJ1iC,aAAgB,WACR2iC,GAAiBtzB,SAASC,eAAe,gBACzCC,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,gBAChDE,aAAYH,SAASC,eAAe,eACpCG,aAAW,CAAErJ,KAAM,iBAExB,CAACu8B,IAwBJ,OACI,2BACKA,EAAgB,uBAAKpkC,GAAG,aAAaE,UAAU,eAC5C,2BACK4hC,GAAeA,EAAYxjC,OAAS,GACjC,gBAAC,KAAD,CACI0B,GAAG,cACHgM,WAAY81B,EACZxG,iBA1EC,CAAC,gBAAiB,iBAAkB,YAAa,WAAY,WAAY,YA2E1E7E,eAAgB,CAAE5uB,KAAM,QACxB6uB,aAAa,EACbC,cAAc,EACdnrB,OAAQlJ,IAAKC,SACbxC,IAAK,SAAA05B,GAAI,OAAIhY,EAAegY,IAE5B,gBAAC,KAAD,KACI,gBAAC,KAAD,CAAiB7nB,WAAW,QAAQoC,SA9BhE,SAAqBX,GACjB,OACI,wBAAMnT,UAAU,SACZ,uBAAKqK,IAAK8I,EAAK9I,QA2B4D3K,MAAM,QACjE,gBAAC,KAAD,CAAiBgS,WAAYjJ,EAAE,yBAA0BqL,SAvBjE,SAACX,GACjB,OACI,wBAAMnT,UAAU,QAAQmK,QAAS,kBAAM3K,EAAMm3B,KAAKxjB,KAAQA,EAAKiC,SAqBqC1V,MAAM,QACtF,gBAAC,KAAD,CAAiBoc,MAAM,UAAUpK,WAAYjJ,EAAE,yBAA0B/I,MAAM,QAC/E,gBAAC,KAAD,CAAiBgS,WAAYjJ,EAAE,2BAA4BqL,SAzClE,SAACtU,GAClB,OAAmB,IAAfA,EAAM2V,MACE,wBAAMnV,UAAU,cAA+B,OAAjBoC,IAAKC,SAAmB,MAAQ,OAE9D,wBAAMrC,UAAU,cAA+B,OAAjBoC,IAAKC,SAAmB,SAAQ,OAqCiC3C,MAAM,SAE7F,gBAAC,KAAD,CAAQ0d,SAAU,CAACwZ,KAAQC,KAAMC,KAAaC,KAAQC,YCxFrEoN,I,OAAU,WAEnB,MAAsB7iC,aAAiBD,GAAhCI,EAAP,oBACA,EAAgCH,WAAe,IAA/C,mBACA,GADA,UACsCA,YAAe,IAArD,mBAAO8iC,EAAP,KAAoBC,EAApB,KACA,EAAoC/iC,YAAe,GAAnD,mBAAOgjC,EAAP,KAAmBC,EAAnB,KACA,EAAoCjjC,WAAe,MAAnD,mBAAOkjC,EAAP,KAAmBC,EAAnB,KACA,EAAwCnjC,WAAe,MAAvD,mBAAO0iC,EAAP,KAAqBU,EAArB,KAEA,EAAsCpjC,WAAe,IAArD,mBAAOqgC,EAAP,KAAoBD,EAApB,KAEQl5B,EAAMC,cAAND,EAEFsnB,EAAY,CACdsH,OAAQ,GACRE,OAAQ,GACRC,IAAK,kBAAMoN,EAAW,KACtBlN,KAAM,IAGJpR,EAAQ,CACV7a,MAAO,kBAAM+4B,GAAc,IAC3BtwB,QAAS,kBAAMowB,GAAe,KAG9BM,EAAa,SAACtf,GACdlc,QAAQ1C,IAAI,OAAQ4e,GACpBof,EAAcpf,GACdkf,GAAc,IAGlB,OACI,gCACiC,OAA5B9iC,EAAYjB,YAAuB,gBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WACzD,gCACI,gBAAC,GAAD,CAAoB/J,GAAG,OACvB,uBAAKE,UAAU,eACf,gBAACwM,EAAA,EAAD,CAAWxM,UAAU,uBACjB,uBAAKA,UAAU,mBACX,gBAACmhB,GAAA,EAAD,KACI,uBAAKnhB,UAAU,mBACX,uBAAKA,UAAU,SACX,0BAAKyI,EAAE,oBAGf,uBAAKzI,UAAU,mBACX,uBAAKA,UAAU,WACX,gBAAC,GAAD,CAASwrB,SAAUuE,QAKnC,gBAAC5O,GAAA,EAAD,KACI,uBAAKnhB,UAAU,UACX,gBAAC,GAAD,CAAa2hC,eAAgBA,EAAgBC,YAAaA,EAAaqC,aAAcA,EAActN,KAAMiO,EAAYC,OAAQJ,EAAYvwB,QAASmwB,OAI7JE,GACG,gBAAC,GAAD,CAAc5C,eAAgBA,EAAgBC,YAAaA,EAAaC,WAAY8C,EAAiBj/B,OAAQ6+B,EAAYniB,OAAQkE,EAAOtiB,KAAMygC,QCrDzJK,I,OAAiB,SAACtlC,GAAW,IAAD,EACjCulC,EACJ,EAAsCxjC,aAAiBD,GAAvD,mBAAOI,EAAP,KACA,GADA,KAC8CH,WAAe,KAA7D,mBACA,GADA,UAC4CA,WAAe,KAA3D,mBAAOyjC,EAAP,KAAuBC,EAAvB,KACA,EAA0C1jC,WAAe,IAAzD,mBAAO2jC,EAAP,KAAsBC,EAAtB,KACA,EAAkC5jC,WAAe,MAAjD,mBACA,GADA,UACsCA,cAAtC,mBAAO6jC,EAAP,KAAoBC,EAApB,KACA,EAAkC9jC,YAAe,GAAjD,mBAAOyxB,EAAP,KAAkBC,EAAlB,KACA,EAAwC1xB,aAAxC,mBAAO+jC,EAAP,KAAqBC,EAArB,KACA,EAAgDhkC,YAAe,GAA/D,mBAAOikC,EAAP,KAAyBC,EAAzB,KACA,EAA4BlkC,WAAe,IAA3C,mBAAOe,EAAP,KAAeg7B,EAAf,KAEQ70B,EAAMC,cAAND,EAGR,EAAkClH,WAAe,IAAjD,mBAAO0lB,EAAP,KAAkBye,EAAlB,KAEAnkC,aAAgB,WACRikC,GAAoB50B,SAASC,eAAe,mBAC5CC,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,mBAChDE,aAAYH,SAASC,eAAe,kBACpCG,aAAW,CAAErJ,KAAM,iBAExB,CAAC69B,IAEJ,IAAMG,EAAqB,SAAC3hC,EAAM4hC,GAC9B,OAAI5hC,EAAK5F,OAAS,EACT4F,EAAKvB,KAAI,SAACvE,GACf,MAAO,CACL+D,KAAM/D,EAAE0nC,EAAOC,SACfhkC,MAAO3D,EAAE0nC,EAAO/jC,WAIbmC,GAGbzC,aAAgB,WAAM,4CAElB,gCAAAuD,EAAA,sEAC2Bsc,GAAa1f,EAAYjB,aAC3CsI,MAAK,SAAAvD,GAAc,GAAIA,EAASC,GAAM,OAAOD,EAASwD,UAF/D,cACQ88B,EADR,gBAGyB/4B,GAAarL,EAAYjB,aACzCsI,MAAK,SAAAvD,GAAc,GAAIA,EAASC,GAAM,OAAOD,EAASwD,UAJ/D,cAGQkI,EAHR,gBAKwB7D,GAAY3L,EAAYjB,aACvCsI,MAAK,SAAAvD,GAAc,GAAIA,EAASC,GAAM,OAAOD,EAASwD,UAN/D,OAKQmI,EALR,OAQQ20B,IACAJ,EAAaI,GACbP,EAAgBO,IAGpBb,EAAkBU,EAAmBz0B,EAAS,CAAE20B,QAA0B,OAAjBzjC,IAAKC,SAAmB,SAAW,SAAUR,MAAO,QAC7GsjC,EAAiBQ,EAAmBx0B,EAAQ,CAAE00B,QAA0B,OAAjBzjC,IAAKC,SAAmB,SAAW,SAAUR,MAAO,QAC3GwjC,EAAe58B,EAAE,6BAEbmI,SAASC,eAAe,mBACxBO,aAAYR,SAASC,eAAe,kBACpC40B,GAAoB,IAnB5B,6CAFkB,sBAClBA,GAAoB,GADF,mCAwBlBp0B,KACD,CAACjP,IAAKC,WAET,IAGM0jC,EAAqB,SAAAljC,GACvBy6B,EAAU,2BAAKh7B,GAAN,mBAAeO,EAAEsa,QAAQrd,GAAK+C,EAAEhB,UAoD7C,OALAN,aAAgB,WACRwjC,GACAA,EAAiB7wB,YACtB,CAAC9R,IAAKC,WAGL,gCACI,uBAAKrC,UAAS,gBAAWgzB,EAAY,SAAW,KAC3CwS,EAAmB,uBAAK1lC,GAAG,kBACxB,uBAAKE,UAAU,yBACX,uBAAKA,UAAU,eACX,wBAAMA,UAAU,qBAChB,yBAAIyI,EAAE,sBAEV,uBAAKzI,UAAU,eACX,uBAAKA,UAAU,mBACX,gBAAC,MAAD,GACIF,GAAG,OACH8L,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,OAFnC,wBAGY,CAAEI,KAAwB,OAAjBG,IAAKC,SAAoB,SAAW,SAAUR,MAAO,UAH1E,yBAnER,SAAAgB,GAChBy6B,EAAU,2BAAKh7B,GAAN,mBAAeO,EAAEkB,MAAMy5B,cAAc19B,GAAK+C,EAAEhB,YAkE7B,6BAKiBujC,GALjB,wBAMYhjC,IAAKC,UANjB,MAUR,uBAAKrC,UAAU,mBACX,uBAAKA,UAAWgzB,EAAY,mBAAqB,aAC7C,gBAAC,KAAD,CACI5oB,SAAS,sBACTD,QAAS,kBAAM8oB,GAAcD,KAC7B,wBAAMhzB,UAAU,qBACfyI,EAAE,6BAGX,uBAAKzI,UAAU,aACX,gBAAC,KAAD,CACImK,QA/ER,WACpB8oB,GAAa,GACb,IAAI+S,EAAgBV,EAEhBhjC,EAAOsD,OACPogC,EAAgBA,EAAc1jC,QAAO,SAAAC,GAAI,OAAIA,EAAKiS,KAAK/E,cAAciuB,SAASp7B,EAAOsD,KAAK6J,mBAG1FnN,EAAO+N,UACP21B,EAAgBA,EAAc1jC,QAAO,SAAAC,GAAI,OAAIA,EAAKsP,KAAK/R,KAAOwC,EAAO+N,YAGrE/N,EAAOvB,WACPilC,EAAgBA,EAAc1jC,QAAO,SAAAC,GAAI,OAAIA,EAAKxB,UAAYwB,EAAKxB,SAASjB,KAAOwC,EAAOvB,aAE9FgkC,EAAiBj5B,WAAak6B,GAiEF57B,SAAS,oBACR3B,EAAE,+BAOtBuqB,GACG,uBAAKhzB,UAAU,8BACX,gBAAC,KAAD,CACIoK,SAAS,WACTtK,GAAG,UACHgM,WAAYk5B,EAEZp5B,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,SAC/BomB,OAAQ8d,EACR1xB,YAAa5L,EAAE,qBACf5G,MAAOS,EAAO+N,QACdwY,gBAAgB,EAChBC,iBAAiB,IAErB,gBAAC,KAAD,CACI1e,SAAS,WACTtK,GAAG,WACHgM,WAAYo5B,EACZt5B,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,SAE/BomB,OAAQ8d,EACR1xB,YAAa5L,EAAE,sBACf5G,MAAOS,EAAOvB,SACd+nB,iBAAiB,MAKjC,uBAAK9oB,UAAU,iBACTinB,GAAcue,EAAmB,uBAAK1lC,GAAG,gBAAgBE,UAAU,sBACjE,gBAAC,KAAD,CACIF,GAAG,WACHD,IAAK,SAAAomC,GAAa,OAAIlB,EAAmBkB,GACzCn6B,YAAa05B,GAAoBve,EACjCuP,aAAa,EACb+H,aAAc,CAAEC,SAAU,IAC1BjI,eAAgB,CAAE5uB,KAAM,QACxB8uB,cAAc,EACd2E,iBApGK,CAAC,gBAAiB,iBAAkB,YAAa,WAAY,WAAY,YAqG9E9vB,OAAQlJ,IAAKC,UAEb,gBAAC,KAAD,KACI,gBAAC,KAAD,CACIqP,WAAYjJ,EAAE,yBACdqL,SAhHN,SAACX,GACnB,OACI,wBAAMnT,UAAU,mBAAmBmK,QAAS,kBAAM3K,EAAMm3B,KAAKxjB,EAAKrT,MAAMqT,EAAKqB,OA+GzD9U,MAAM,QACV,gBAAC,KAAD,CACIgS,WAAYjJ,EAAE,gCACdqT,MAAwB,OAAjB1Z,IAAKC,SAAmB,mBAAqB,mBACpD3C,MAAM,QACV,gBAAC,KAAD,CACIgS,WAAYjJ,EAAE,2BACdqT,MAAwB,OAAjB1Z,IAAKC,SAAmB,kBAAoB,kBACnD3C,MAAM,QACV,gBAAC,KAAD,CACIgS,WAAYjJ,EAAE,yBACdqT,MAAwB,OAAjB1Z,IAAKC,SAAmB,wBAA0B,wBACzD3C,MAAM,SAGd,gBAAC,KAAD,CAAQ0d,SAAU,CAAC4Z,KAAMD,aCvOpCmP,GAAY,WAErB,MAAsB3kC,aAAiBD,GAAhCI,EAAP,oBACA,EAAgCH,YAAe,GAA/C,mBAAO6D,EAAP,KAAiBsL,EAAjB,KACA,EAA4BnP,WAAe,MAA3C,mBAAO4kC,EAAP,KAAeC,EAAf,KACQ39B,EAAMC,cAAND,EAEFsnB,EAAY,CACdsH,OAAQ,GACRE,OAAQ,GACRC,IAAK,kBAAM9mB,GAAY,IACvBgnB,KAAM,IAcV,OANAn2B,aAAgB,WACR4kC,GACAz1B,GAAY,KAEjB,CAACy1B,IAGA,gCACiC,OAA5BzkC,EAAYjB,YAAuB,gBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WACzDzE,EACe,OAAX+gC,EACI,gBAAC,IAAD,CAAU/hC,MAAM,EAAMyF,GAAG,yBAEzB,gBAAC,IAAD,CAAUzF,MAAM,EAAMyF,GAAE,+BAA0Bs8B,KAEtD,gCACI,gBAAC,GAAD,CAAoBrmC,GAAG,OACvB,uBAAKE,UAAU,eACf,gBAACwM,EAAA,EAAD,CAAWxM,UAAU,gBACjB,uBAAKA,UAAU,mBACX,gBAACmhB,GAAA,EAAD,KACI,uBAAKnhB,UAAU,mBACX,uBAAKA,UAAU,SACX,0BAAKyI,EAAE,sBAGf,uBAAKzI,UAAU,mBACX,uBAAKA,UAAU,WACX,gBAAC,GAAD,CAASwrB,SAAUuE,QAKnC,gBAAC5O,GAAA,EAAD,KACI,uBAAKnhB,UAAU,UACX,gBAAC,GAAD,CAAgB22B,KAvC5B,SAAC72B,GACjBsmC,EAAUtmC,YC+EHumC,OAtGf,YAAmC,IAAXvW,EAAU,EAAVA,OACtB,EAAwBvuB,IAAM6G,WAA9B,mBAAOqS,EAAP,KAAaoD,EAAb,KAIA,OAHAtc,IAAMsH,WAAU,WACdgV,EAAQiS,EAAOrV,QACd,CAACqV,IACGrV,EACL,kBAAC,KAAD,CACE3a,GAAG,eACHoe,SAAS,EACTyF,YAAa,WAAQ9F,GAAQ,IAC7ByC,cAAoC,aAArBwP,EAAOwW,WACtB3qB,QAASlB,EACTrI,MAAO,CAAE+L,UAAW,mBAAoBooB,OAAQ,QAChDj7B,OAAQlJ,IAAKC,UAEb,6BAEE,yBAAKrC,UAAS,mBAA8B,YAAhB8vB,EAAOnoB,MAAsB,QACvD,0BACE3H,UAAS,UAAqB,YAAhB8vB,EAAOnoB,KAAqB,UAAY,QAA7C,iBACEmoB,EAAO5W,QAEpB,yBAAKlZ,UAAU,eACb,2BAAOF,GAAG,QAAQE,UAAS,UAAqB,YAAhB8vB,EAAOnoB,MAAsB,QAC1DmoB,EAAOvwB,OAGa,aAArBuwB,EAAOwW,YACP,2BAAOxmC,GAAG,cAAcE,UAAS,UAAqB,YAAhB8vB,EAAOnoB,MAAsB,QAC/C,OAAjBvF,IAAKC,SAAmB,0BAAsB,oBAI5B,YAArBytB,EAAOwW,YACP,2BAAOxmC,GAAG,eACU,OAAjBsC,IAAKC,SAAmB,gDAA4C,mDAK7E,6BAGA,yBAAKrC,UAAU,oBAEX8vB,EAAOwW,YACP,oCACE,yBAAKtmC,UAAS,uBAAkC,YAAhB8vB,EAAOnoB,MAAsB,QAC3D,0BACE3H,UAAS,UAAqB,YAAhB8vB,EAAOnoB,KAAqB,UAAY,QAA7C,iBACEmoB,EAAO5W,SAGtB,2BAAOlZ,UAAS,UAAqB,YAAhB8vB,EAAOnoB,MAAsB,QAC/CmoB,EAAOrU,SAEV,4BACEtR,QAAS,WACP0T,GAAQ,GACJiS,EAAO0W,cACT1W,EAAO0W,iBAIO,OAAjBpkC,IAAKC,SAAmB,OAAS,SAKlB,aAArBytB,EAAOwW,YACN,yBAAKtmC,UAAU,kBACb,yBAAKA,UAAU,iBACb,4BAAQA,UAAW,gBACjBmK,QAAS2lB,EAAO2W,iBACE,OAAjBrkC,IAAKC,SAAmB,WAAa,WAExC,4BACE8H,QAAS2lB,EAAO4W,iBACE,OAAjBtkC,IAAKC,SAAmB,UAAY,aAKvB,YAArBytB,EAAOwW,YACN,yBAAKtmC,UAAU,kBACb,yBAAKA,UAAU,iBACb,4BACEmK,QAAS2lB,EAAO6W,sBACE,OAAjBvkC,IAAKC,SAAmB,SAAQ,MAEnC,4BACE8H,QAAS2lB,EAAO8W,mBACE,OAAjBxkC,IAAKC,SAAmB,MAAQ,YAQ7C,MCrFOwkC,GAAgB,SAACrnC,GAE1B,IAAIoe,EAEJ,EAA8Brc,YAAe,GAA7C,mBAAOghB,EAAP,KAAgB3J,EAAhB,KAEA,EAAsBrX,aAAiBD,GAAhCI,EAAP,oBACA,EAA4CH,WAAe,IAA3D,mBAAOyjC,EAAP,KAAuBC,EAAvB,KACA,EAA0C1jC,WAAe,IAAzD,mBAAO2jC,EAAP,KAAsBC,EAAtB,KACA,EAAgD5jC,WAAe,IAA/D,mBAAOulC,EAAP,KAAyBC,EAAzB,KACA,EAAoDxlC,WAAe,IAAnE,mBAAOylC,EAAP,KAA2BC,EAA3B,KACA,EAA4C1lC,WAAe,IAA3D,mBAAO2lC,EAAP,KAAuBC,EAAvB,KACA,EAAgC5lC,YAAe,GAA/C,mBAAO6D,EAAP,KAAiBsL,EAAjB,KACA,EAAwCnP,WAAe,IAAvD,mBAAO6lC,EAAP,KAAqBC,EAArB,KACA,EAA8C9lC,YAAe,GAA7D,mBAAO+lC,EAAP,KAAwBC,EAAxB,KACA,EAAoDhmC,WAAe,CAAEkZ,MAAM,IAA3E,mBAAOsD,EAAP,KAA2BypB,EAA3B,KACA,GAAsCjmC,YAAe,GAArD,qBAAOquB,GAAP,MAAoBC,GAApB,MACQpnB,GAAMC,cAAND,EAEJg/B,GAAajoC,EAAMqG,MAAMiqB,OAAOhwB,GAE9BiwB,GAAY,CACd/vB,UAAW,YACXmsB,aAAa,EACbK,gBAAgB,EAChBwD,QAAS,GACTrE,WAAY,GACZI,aAAc,GACdG,QAAS,SAACrpB,GAAD,OAAO6kC,GAAa7kC,IAC7BwpB,QAAS,GACTE,UAAW,kBAAM7b,GAAY,IAC7Bgc,UAAW+a,GAAa,SAAC5kC,GAAD,OAAO8kC,GAAgB9kC,EAAG4kC,KAAc,IAGpElmC,aAAgB,WACZuP,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,aAChDE,aAAYH,SAASC,eAAe,YACpCG,aAAW,CAAErJ,KAAM,gBACpB,IAGHpG,aAAgB,WAAM,4CAElB,wCAAAuD,EAAA,sEAC2Bsc,GAAa1f,EAAYjB,aAC3CsI,MAAK,SAAAvD,GAAc,GAAIA,EAASC,GAAM,OAAOD,EAASwD,UAF/D,cACQ88B,EADR,gBAGyB/4B,GAAarL,EAAYjB,aACzCsI,MAAK,SAAAvD,GAAc,GAAIA,EAASC,GAAM,OAAOD,EAASwD,UAJ/D,cAGQkI,EAHR,gBAKwB7D,GAAY3L,EAAYjB,aACvCsI,MAAK,SAAAvD,GAAc,GAAIA,EAASC,GAAM,OAAOD,EAASwD,UAN/D,cAKQmI,EALR,iBAO6B7D,GAAwB5L,EAAYjB,aACxDsI,MAAK,SAAAvD,GAAc,GAAIA,EAASC,GAAM,OAAOD,EAASwD,UAR/D,eAOQ4+B,EAPR,iBAS+Bh7B,GAAiBlL,EAAYjB,aACnDsI,MAAK,SAAAvD,GAAc,GAAIA,EAASC,GAAM,OAAOD,EAASwD,UAV/D,eASQ6+B,EATR,iBAW2Bh7B,GAAanL,EAAYjB,aAC3CsI,MAAK,SAAAvD,GAAc,GAAIA,EAASC,GAAM,OAAOD,EAASwD,UAZ/D,QAWQ8+B,EAXR,OAcQC,EAAY,KAEZjC,IACAA,EAAaA,EAAWxjC,QAAO,SAAApE,GAAC,OAAIA,EAAE4B,KAAM2nC,OAC7BrpC,SACX2pC,EAAYjC,EAAW,GAAGh0B,OAC1Bu1B,EAAgBvB,EAAW,KAInCb,EAAkB/zB,GAClBi0B,EAAiBh0B,GACjB41B,EAAoBa,GACpBX,EAAsBY,GACtBV,EAAkBW,GAGdL,IAA4B,IAAdM,GACdR,GAAmB,GAEvB3uB,GAAW,GAlCf,6CAFkB,sBAClBA,GAAW,GADO,mCAsClBvH,KACD,CAACjP,IAAKC,WAETd,aAAgB,WACZ,IAAM46B,EAAgB,CAClBrc,MAAO,CACH,KAAQ,CACJC,SAAU,EAAC,EAAMtX,GAAE,yBAEvB,KAAQ,CACJsX,SAAU,EAAC,EAAMtX,GAAE,yBAKvB,UAAa,CACTsX,SAAU,EAAC,EAAMtX,GAAE,yBAEvB,KAAQ,CACJsX,SAAU,EAAC,EAAMtX,GAAE,yBAEvB,KAAQ,CACJsX,SAAU,EAAC,EAAMtX,GAAE,yBAWvB,SAAY,CACRsX,SAAU,EAAC,EAAMtX,GAAE,0BAG3BuX,gBAAiB,SAACC,EAAcC,GAC5BD,EAAaE,cAAcA,cAAcpF,YAAYmF,GACrD1M,YAAW,WACP0M,EAAa9N,MAAMqF,QAAU,SAC9B,OAGXmG,EAAa,IAAIwC,KAAc,oBAAqB+b,MAIxD,IAAMxd,GAAqB,SAAChX,EAAMqgC,EAAKC,EAAUC,EAAYC,EAAeC,GAC5D,YAARzgC,EACA6/B,EAAsB,CAClBjoC,MAAOkJ,GAAE,uBACTgT,QAAShT,GAAE,yBACXd,KAAM,UACNuR,KAAM,eACNuB,MAAM,EACN+rB,aAAcyB,IAEH,YAARtgC,EACP6/B,EAAsB,CAClBjoC,MAAOkJ,GAAE,uBACTgT,QAAShT,GAAE,yBACXd,KAAM,UACNuR,KAAM,eACNuB,MAAM,EACN+rB,aAAcyB,IAEH,YAARtgC,EACP6/B,EAAsB,CAClBjoC,MAAiCkJ,GAAX,WAAf2/B,EAA4B,kCAAuC,mCAC1EzgC,KAAM,UACN2+B,WAAY,UACZM,kBAAmBsB,EACnBvB,qBAAsBwB,EACtBjvB,KAAM,oBACNuB,MAAM,IAGG,UAAR9S,EACL6/B,EAAsB,CAClBjoC,MAAOkJ,GAAE,mCACTgT,QAAShT,GAAE,6BACXd,KAAM,QACNuR,KAAM,2BACNuB,MAAM,IAEK,iBAAR9S,EACP6/B,EAAsB,CAClBjoC,MAAOkJ,GAAE,mCACTgT,QAASusB,EACTrgC,KAAM,QACNuR,KAAM,2BACNuB,MAAM,EACN+rB,aAAcyB,IAEH,kBAARtgC,EACP6/B,EAAsB,CAClBjoC,MAAwB,OAAjB6C,IAAKC,SAAmB,eAAiB,cAChDsF,KAAM,QACN8T,QAA0B,OAAjBrZ,IAAKC,SAAmB,4CAA8C,6CAC/EikC,WAAY,UACZM,kBAAmBsB,EACnBvB,qBAAsBwB,EACtBjvB,KAAM,kBACNuB,MAAM,IAEK,UAAR9S,GACP6/B,EAAsB,CAClB/sB,MAAM,KAKditB,GAAe,SAAC7kC,GAEhB,GADAA,EAAEm3B,iBACEpc,EAAW8B,WAAY,CACzBmQ,IAAe,GAEb,IAAMwY,EAAkB,WACpB,IAAMC,EAAUlB,EACXkB,EAAQC,oBACTD,EAAQC,kBAAoB,IAC3BD,EAAQE,qBACTF,EAAQE,mBAAqB,IAC5BF,EAAQG,OACTH,EAAQG,KAAO,I1BrN5B,SAAP,qC0BsNgBC,CAAoBhnC,EAAYjB,YAAa2mC,GACxCr+B,KADL,+BAAAjE,EAAA,MACU,WAAMU,GAAN,eAAAV,EAAA,0DACEU,EAASC,GADX,gBAEekZ,GAAb8oB,GAAgC,UAAiE,UAAtD,IAAI,WAAQ/2B,GAAY,MAFrE,sCAKwBlL,EAASwD,OALjC,OAKQ2/B,EALR,OAMEv/B,QAAQ1C,IAAIiiC,GACZhqB,GAAmB,eACfpe,KAAKiJ,UAAUm/B,EAAQC,OAASD,EAAQC,OAAzB,iGAC+ED,EAAQE,eACtG,WAAQlqB,GAAmB,YAVjC,OAaFkR,IAAe,GAbb,4CADV,uDAgBK3mB,OAAM,SAAAC,GACLC,QAAQD,MAAMA,GACd0mB,IAAe,OAOzBlR,GAAmB,UAAW,KAAM,MAAM,WAAQ0pB,OAJ9B,WAChB1pB,GAAmB,SACnBkR,IAAe,KAEiE4X,GAAa,UAAY,YAIjHE,GAAe,uCAAG,WAAO9kC,EAAGimC,GAAV,iBAAAhkC,EAAA,sDAClBjC,EAAEm3B,iBACI+O,EAAc,WAChBpqB,GAAmB,UAEjBqqB,EALY,+BAAAlkC,EAAA,MAKD,WAAOgkC,GAAP,SAAAhkC,EAAA,sEACPuc,GAAe3f,EAAYjB,YAAaqoC,GAAQ//B,MAAK,SAACvD,GACpDA,EAASC,IACTiL,GAAY,MAHP,OAMbiO,GAAmB,SANN,2CALC,sDAalBA,GAAmB,gBAAiB,KAAM,MAAM,WAAQqqB,EAASF,KAAWC,EAAa,IAbvE,2CAAH,wDAkBnB,OACI,gCACiC,OAA5BrnC,EAAYjB,YAAuB,gBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WACzDzE,EAAW,gBAAC,IAAD,CAAUhB,MAAM,EAAMyF,GAAG,qBAChC0Y,EAAU,uBAAKziB,GAAG,YACd,gCACI,uBAAKE,UAAU,eACf,wBAAMF,GAAG,oBACL,gBAAC0M,EAAA,EAAD,CAAWxM,UAAU,gBACjB,uBAAKA,UAAU,mBACX,gBAACmhB,GAAA,EAAD,KACI,uBAAKnhB,UAAU,UACX,uBAAKA,UAAU,SACX,0BAAkByI,GAAbg/B,GAAe,sBAA2B,2BAK/D,gBAACtmB,GAAA,EAAD,KACI,uBAAKnhB,UAAU,qBACX,uBAAKA,UAAU,UACX,uBAAKA,UAAU,OACX,uBAAKA,UAAU,2BAI3B,uBAAKA,UAAU,4BACX,uBAAKA,UAAU,WACX,uBAAKA,UAAU,0CACX,uBAAKA,UAAU,uBACf,0BAAKyI,GAAE,mCAEX,uBAAKzI,UAAU,WACX,uBAAKA,UAAU,gDACX,uBAAKA,UAAU,SACX,6BAAQyI,GAAE,iBAAiB,yBAAOzI,UAAU,WAAjB,OAC3B,gBAAC,KAAD,CACIF,GAAG,OACH8F,KAAK,OACLglB,eAAgB,CAAEiD,UAAW,OAC7BxZ,YAAa5L,GAAE,6BACf5G,MAAOulC,GAAgBA,EAAa5yB,KACpCsT,KAAM,SAACjlB,GAAD,OAAOwkC,GAAgB,SAAAD,GAAY,kCAAUA,GAAV,IAAwB5yB,KAAM3R,EAAEhB,YACzEyJ,OAAQlJ,IAAKC,YAGrB,uBAAKrC,UAAU,SACX,6BAAQyI,GAAE,yBAAyB,yBAAOuT,MAAM,WAAb,OACnC,gBAAC,KAAD,CACIlc,GAAG,OACH8F,KAAK,OACLkG,WAAYk7B,EACZp7B,OAAQ,CAAE3J,KAAwB,OAAjBG,IAAKC,SAAoB,SAAW,SAAUR,MAAO,MACtEwS,YAAa5L,GAAE,6BACf5G,MAAOulC,GAAgBA,EAAa6B,iBACpChhB,OAAQ,SAACplB,GAA0B,OAAdA,EAAE2lB,UAAoB6e,GAAgB,SAAAD,GAAY,kCAAUA,GAAV,IAAwB6B,iBAAkBC,OAAOrmC,EAAE2lB,SAAS1oB,UACnIwL,OAAQlJ,IAAKC,YAGrB,uBAAKrC,UAAU,UACX,6BAAQyI,GAAE,kBACV,gBAAC,KAAD,CACI3I,GAAG,OACH8F,KAAK,OACL6M,KAAM,qBACNnH,OAAQlJ,IAAKC,SACbR,MAAOulC,GAAgBA,EAAaqB,KACpC3gB,KAAM,SAACjlB,GACHwkC,EAAgB,2BAAKD,GAAN,IAAoBqB,KAAM5lC,EAAEhB,cAM3D,uBAAK7B,UAAU,iDACX,uBAAKA,UAAU,SACX,6BAAQyI,GAAE,wBAAwB,yBAAOuT,MAAM,WAAb,OAClC,gBAAC,KAAD,CACIlc,GAAG,YACH8F,KAAK,YACLkG,WAAYg7B,EACZl7B,OAAQ,CAAE3J,KAAwB,OAAjBG,IAAKC,SAAoB,SAAW,SAAUR,MAAO,MACtEwS,YAAa5L,GAAE,oCACf5G,MAAOulC,GAAgBA,EAAa+B,YACpClhB,OAAQ,SAACplB,GAA0B,OAAdA,EAAE2lB,UAAoB6e,EAAgB,2BAAKD,GAAN,IAAoB+B,YAAaD,OAAOrmC,EAAE2lB,SAAS1oB,QAC7GwL,OAAQlJ,IAAKC,YAGrB,uBAAKrC,UAAU,SACX,6BAAQyI,GAAE,iBAAiB,yBAAOuT,MAAM,WAAb,OAC3B,gBAAC,KAAD,CACIlc,GAAG,OACH8F,KAAK,OACLkG,WAAYo7B,EACZt7B,OAAQ,CAAE3J,KAAwB,OAAjBG,IAAKC,SAAoB,SAAW,SAAUR,MAAO,MACtEwS,YAAa5L,GAAE,6BACf5G,MAAOulC,GAAgBA,EAAagC,WACpCnhB,OAAQ,SAACplB,GAA0B,OAAdA,EAAE2lB,UAAoB6e,EAAgB,2BAAKD,GAAN,IAAoBgC,WAAYF,OAAOrmC,EAAE2lB,SAAS1oB,QAC5GwL,OAAQlJ,IAAKC,aAIzB,uBAAKrC,UAAU,gDACX,uBAAKA,UAAU,SACX,6BAAQyI,GAAE,oBAAoB,yBAAOuT,MAAM,WAAb,OAC9B,gBAAC,KAAD,CACIlc,GAAG,OACH8F,KAAK,OACLkG,WAAYk5B,EACZp5B,OAAQ,CAAE3J,KAAwB,OAAjBG,IAAKC,SAAoB,SAAW,SAAUR,MAAO,MACtEwS,YAAa5L,GAAE,+BACf5G,MAAOulC,GAAgBA,EAAat1B,OACpC+W,gBAAgB,EAChBZ,OACI,SAACplB,GACqB,OAAdA,EAAE2lB,UACF6e,GAAgB,SAAAD,GAAY,kCAAUA,GAAV,IAAwBt1B,OAAQo3B,OAAOrmC,EAAE2lB,SAAS1oB,SACjD,IAAzBopC,OAAOrmC,EAAE2lB,SAAS1oB,IAClBynC,GAAmB,IAEnBA,GAAmB,GACU,qBAAjBH,GACgC,qBAA5BA,EAAap1B,YAErBq1B,GAAgB,SAAAD,GAAY,kCAAUA,GAAV,IAAwBp1B,gBAAYuJ,UAK5EgsB,GAAmB,GACU,qBAAjBH,GACgC,qBAA5BA,EAAap1B,YAErBq1B,GAAgB,SAAAD,GAAY,kCAAUA,GAAV,IAAwBp1B,gBAAYuJ,SAMpFjQ,OAAQlJ,IAAKC,aAKA,IAAnBilC,EAEE,uBAAKtnC,UAAU,SACX,6BAAQyI,GAAE,sBACV,gBAAC,KAAD,CACI3I,GAAG,WACH8F,KAAK,WACLkG,WAAYo5B,EACZt5B,OAAQ,CAAE3J,KAAwB,OAAjBG,IAAKC,SAAoB,SAAW,SAAUR,MAAO,MACtEwS,YAAa5L,GAAE,iCACf5G,MAAOulC,GAAgBA,EAAap1B,WACpCiW,OAAQ,SAACplB,GAA0B,OAAdA,EAAE2lB,UAAoB6e,EAAgB,2BAAKD,GAAN,IAAoBp1B,WAAYk3B,OAAOrmC,EAAE2lB,SAAS1oB,QAC5GwL,OAAQlJ,IAAKC,SACbymB,iBAAiB,KAIvB,KAGN,uBAAK9oB,UAAU,UACX,6BAAQyI,GAAE,2BACV,gBAAC,KAAD,CACI3I,GAAG,WACH8F,KAAK,WACLglB,eAAgB,CAAEiD,UAAW,OAC7BxZ,YAAa5L,GAAE,sCACf5G,MAAOulC,GAAgBA,EAAamB,kBACpCzgB,KAAM,SAACjlB,GAAD,OAAOwkC,GAAgB,SAAAD,GAAY,kCAAUA,GAAV,IAAwBmB,kBAAmB1lC,EAAEhB,YACtFyJ,OAAQlJ,IAAKC,YAGrB,uBAAKrC,UAAU,UACX,6BAAQyI,GAAE,2BACV,gBAAC,KAAD,CACI3I,GAAG,YACH8F,KAAK,YACLglB,eAAgB,CAAEiD,UAAW,OAC7BxZ,YAAa5L,GAAE,sCACf5G,MAAOulC,GAAgBA,EAAaoB,mBACpC1gB,KAAM,SAACjlB,GAAD,OAAOwkC,GAAgB,SAAAD,GAAY,kCAAUA,GAAV,IAAwBoB,mBAAoB3lC,EAAEhB,YACvFyJ,OAAQlJ,IAAKC,aAIzB,uBAAKrC,UAAU,iDACX,uBAAKA,UAAU,SACX,6BAAQyI,GAAE,oBAAoB,yBAAOuT,MAAM,WAAb,OAC9B,gBAAC,KAAD,CACIlc,GAAG,WACH8F,KAAK,WACLglB,eAAgB,CAAEiD,UAAW,OAC7BxZ,YAAa5L,GAAE,gCACf5G,MAAOulC,GAAgBA,EAAaiC,SACpCvhB,KAAM,SAACjlB,GAAD,OAAOwkC,GAAgB,SAAAD,GAAY,kCAAUA,GAAV,IAAwBiC,SAAUxmC,EAAEhB,YAC7EyJ,OAAQlJ,IAAKC,gBAOrC,uBAAKrC,UAAU,mBACX,gBAAC,GAAD,CAAS2S,SAAUid,GAAapE,SAAUuE,UAQ1E,gBAAC,GAAD,CAAcD,OAAQ/R,M,oBC1d3B,SAAeurB,GAAtB,uC,8CAAO,WAA6B5kC,EAAO6kC,EAAaC,GAAjD,SAAA1kC,EAAA,2DACGykC,EADH,OAEE,IAFF,OAIE,IAJF,OAME,IANF,OAQE,IARF,OAUE,IAVF,OAYE,IAZF,+CAGMllC,EAAW,+BAAgC,MAAOmlC,EAAS,KAAM9kC,GAAO,IAH9E,gCAKML,EAAW,oCAAqC,MAAOmlC,EAAS,KAAM9kC,GAAO,IALnF,gCAOML,EAAW,2CAA4C,MAAOmlC,EAAS,KAAM9kC,GAAO,IAP1F,gCASML,EAAW,qBAAsB,MAAOmlC,EAAS,KAAM9kC,GAAO,IATpE,gCAWML,EAAW,2CAA4C,MAAOmlC,EAAS,KAAM9kC,GAAO,IAX1F,gCAaML,EAAW,iDAAkD,MAAOmlC,EAAS,KAAM9kC,GAAO,IAbhG,4C,sBAiBA,SAAe+kC,GAAtB,yC,8CAAO,WAAqC/kC,EAAOD,EAAM8kC,EAAaG,GAA/D,iBAAA5kC,EAAA,sDAEC6kC,EAFD,2BAEgBllC,GAFhB,IAEsBilC,UAASA,IAChCv7B,EAAM5N,KAAKiJ,UAAUmgC,GAHpB,KAKGJ,EALH,OAME,IANF,OAQE,IARF,OAUE,IAVF,OAYE,IAZF,OAcE,IAdF,OAgBE,IAhBF,iDAOMllC,EAAW,kCAAmC,OAAQ,GAAI8J,EAAKzJ,GAAO,IAP5E,gCASML,EAAW,uCAAwC,OAAQ,GAAI8J,EAAKzJ,GAAO,IATjF,gCAWML,EAAW,8CAA+C,OAAQ,GAAI8J,EAAKzJ,GAAO,IAXxF,gCAaML,EAAW,wBAAyB,OAAQ,GAAI8J,EAAKzJ,GAAO,IAblE,gCAeML,EAAW,8CAA+C,OAAQ,GAAI8J,EAAKzJ,GAAO,IAfxF,iCAiBML,EAAW,oDAAqD,OAAQ,GAAI8J,EAAKzJ,GAAO,IAjB9F,6C,oEAqBA,WAAiCA,EAAOD,EAAM8kC,GAA9C,eAAAzkC,EAAA,sDAEDqJ,EAAM5N,KAAKiJ,UAAU/E,GAFpB,KAIG8kC,EAJH,OAKE,IALF,OAOE,IAPF,OASE,IATF,+CAMMllC,EAAW,mCAAoC,OAAQ,GAAI8J,EAAKzJ,EAAO,OAN7E,gCAQML,EAAW,uCAAwC,OAAQ,GAAI8J,EAAKzJ,EAAO,OARjF,gCAUML,EAAW,+CAAgD,OAAQ,GAAI8J,EAAKzJ,EAAO,OAVzF,4C,sBAoBA,SAAeklC,GAAtB,uC,8CAAO,WAA4BllC,EAAO5E,EAAIypC,GAAvC,eAAAzkC,EAAA,sDAEDmD,EAAU,YAAcnI,EAFvB,KAIGypC,EAJH,OAKE,IALF,OAOE,IAPF,OASE,IATF,OAWE,IAXF,OAaE,IAbF,OAeE,IAfF,gDAMMllC,EAAW,8BAA+B,MAAO4D,EAAS,KAAMvD,GAAO,IAN7E,gCAQML,EAAW,kCAAmC,MAAO4D,EAAS,KAAMvD,GAAO,IARjF,gCAUML,EAAW,0CAA2C,MAAO4D,EAAS,KAAMvD,GAAO,IAVzF,gCAYML,EAAW,oBAAqB,MAAO4D,EAAS,KAAMvD,GAAO,IAZnE,gCAcML,EAAW,0CAA2C,MAAO4D,EAAS,KAAMvD,GAAO,IAdzF,gCAgBML,EAAW,gDAAiD,MAAO4D,EAAS,KAAMvD,GAAO,IAhB/F,6C,sBAqBA,SAAemlC,GAAtB,uC,8CAAO,WAA4BnlC,EAAOD,EAAM8kC,GAAzC,mBAAAzkC,EAAA,sDAEL,IAASxG,KADLia,EAAY,IAAIC,SACJ/T,EACF,WAARnG,GACEmG,EAAKnG,IACPia,EAAUtT,OAAO3G,EAAKmG,EAAKnG,IAGjC,GAAImG,EAAKqlC,OACP,IAASC,KAAStlC,EAAKqlC,OACrBvxB,EAAUtT,OAAO,SAAUR,EAAKqlC,OAAOC,IAVtC,KAcGR,EAdH,OAeE,IAfF,OAiBE,IAjBF,OAmBE,IAnBF,OAqBE,IArBF,OAuBE,IAvBF,QAyBE,IAzBF,iDAgBMllC,EAAW,8BAA+B,OAAQ,GAAIkU,EAAW7T,GAAO,IAhB9E,gCAkBML,EAAW,kCAAmC,OAAQ,GAAIkU,EAAW7T,GAAO,IAlBlF,gCAoBML,EAAW,0CAA2C,OAAQ,GAAIkU,EAAW7T,GAAO,IApB1F,gCAsBML,EAAW,oBAAqB,OAAQ,GAAIkU,EAAW7T,GAAO,IAtBpE,iCAwBML,EAAW,0CAA2C,OAAQ,GAAIkU,EAAW7T,GAAO,IAxB1F,iCA0BML,EAAW,gDAAiD,OAAQ,GAAIkU,EAAW7T,GAAO,IA1BhG,6C,sBA8BA,SAAeslC,GAAtB,uC,8CAAO,WAA+BtlC,EAAOD,EAAM8kC,GAA5C,mBAAAzkC,EAAA,sDAGL,IAASxG,KADLia,EAAY,IAAIC,SACJ/T,EACF,WAARnG,GACEmG,EAAKnG,IACPia,EAAUtT,OAAO3G,EAAKmG,EAAKnG,IAIjC,GAAImG,EAAKqlC,OACP,IAASC,KAAStlC,EAAKqlC,OACrBvxB,EAAUtT,OAAO,SAAUR,EAAKqlC,OAAOC,IAI3C3gC,QAAQ1C,IAAI,OAAQjC,GACpB2E,QAAQ1C,IAAI,YAAa6R,GAjBpB,KAmBGgxB,EAnBH,OAoBE,IApBF,OAsBE,IAtBF,OAwBE,IAxBF,QA0BE,IA1BF,QA4BE,IA5BF,QA8BE,IA9BF,iDAqBMllC,EAAW,iCAAkC,OAAQ,GAAIkU,EAAW7T,GAAO,IArBjF,gCAuBML,EAAW,qCAAsC,OAAQ,GAAIkU,EAAW7T,GAAO,IAvBrF,iCAyBML,EAAW,6CAA8C,OAAQ,GAAIkU,EAAW7T,GAAO,IAzB7F,iCA2BML,EAAW,uBAAwB,OAAQ,GAAIkU,EAAW7T,GAAO,IA3BvE,iCA6BML,EAAW,6CAA8C,OAAQ,GAAIkU,EAAW7T,GAAO,IA7B7F,iCA+BML,EAAW,mDAAoD,OAAQ,GAAIkU,EAAW7T,GAAO,IA/BnG,6C,sBAmCA,SAAeulC,GAAtB,uC,8CAAO,WAA+BvlC,EAAO5E,EAAIypC,GAA1C,eAAAzkC,EAAA,sDAEDmD,EAAU,YAAcnI,EAFvB,KAIGypC,EAJH,OAKE,IALF,OAOE,IAPF,OASE,IATF,OAWE,IAXF,OAaE,IAbF,OAeE,IAfF,gDAMMllC,EAAW,iCAAkC,OAAQ4D,EAAS,KAAMvD,GAAO,IANjF,gCAQML,EAAW,qCAAsC,OAAQ4D,EAAS,KAAMvD,GAAO,IARrF,gCAUML,EAAW,6CAA8C,OAAQ4D,EAAS,KAAMvD,GAAO,IAV7F,gCAYML,EAAW,uBAAwB,OAAQ4D,EAAS,KAAMvD,GAAO,IAZvE,gCAcML,EAAW,6CAA8C,OAAQ4D,EAAS,KAAMvD,GAAO,IAd7F,gCAgBML,EAAW,mDAAoD,OAAQ4D,EAAS,KAAMvD,GAAO,IAhBnG,6C,sBAoBA,SAAewlC,GAAtB,uC,8CAAO,WAAkCxlC,EAAO5E,EAAIypC,GAA7C,eAAAzkC,EAAA,sDACC0kC,EADD,mBACuB1pC,GADvB,KAEGypC,EAFH,OAGE,IAHF,OAKE,IALF,OAOE,IAPF,OASE,IATF,OAWE,IAXF,OAaE,IAbF,gDAIMllC,EAAW,kCAAmC,OAAQmlC,EAAS,KAAM9kC,GAAO,IAJlF,gCAMML,EAAW,oCAAqC,OAAQmlC,EAAS,KAAM9kC,GAAO,IANpF,gCAQML,EAAW,wCAAyC,OAAQmlC,EAAS,KAAM9kC,GAAO,IARxF,gCAUML,EAAW,6BAA8B,OAAQmlC,EAAS,KAAM9kC,GAAO,IAV7E,gCAYML,EAAW,wCAAyC,OAAQmlC,EAAS,KAAM9kC,GAAO,IAZxF,gCAcML,EAAW,2CAA4C,OAAQmlC,EAAS,KAAM9kC,GAAO,IAd3F,6C,sBAkBA,SAAeylC,GAAtB,2C,8CAAO,WAAyCzlC,EAAO5E,EAAIypC,EAAaa,EAAYC,GAA7E,eAAAvlC,EAAA,sDACCqJ,EAAM5N,KAAKiJ,UAAU,CACzB8gC,QAASxqC,EACTsqC,aAAYC,aAHT,KAMGd,EANH,OAOE,IAPF,OASE,IATF,OAWE,IAXF,OAaE,IAbF,OAeE,IAfF,OAiBE,IAjBF,gDAQMllC,EAAW,gCAAiC,OAAQ,GAAI8J,EAAKzJ,GAAO,IAR1E,gCAUML,EAAW,kCAAmC,OAAQ,GAAI8J,EAAKzJ,GAAO,IAV5E,gCAYML,EAAW,sCAAuC,OAAQ,GAAI8J,EAAKzJ,GAAO,IAZhF,gCAcML,EAAW,2BAA4B,OAAQ,GAAI8J,EAAKzJ,GAAO,IAdrE,gCAgBML,EAAW,sCAAuC,OAAQ,GAAI8J,EAAKzJ,GAAO,IAhBhF,gCAkBML,EAAW,yCAA0C,OAAQ,GAAI8J,EAAKzJ,GAAO,IAlBnF,6C,sBAsBA,SAAe6lC,GAAtB,qC,8CAAO,WAA6C7lC,EAAO5E,GAApD,eAAAgF,EAAA,6DACCmD,EAAUnI,EAAE,mBAAeA,EAAf,qBAAuC,GADpD,kBAEEuE,EAAW,6CAA8C,MAAO4D,EAAS,KAAMvD,GAAO,IAFxF,4C,oEAKA,WAAqCA,EAAO5E,GAA5C,eAAAgF,EAAA,6DACCmD,EAAUnI,EAAE,mCAA+BA,GAAO,GADnD,kBAEEuE,EAAW,qCAAsC,MAAO4D,EAAS,KAAMvD,GAAO,IAFhF,4C,sBAKA,SAAe8lC,GAAtB,uC,8CAAO,WAAgC9lC,EAAOuD,EAASyS,GAAhD,eAAA5V,EAAA,6DACDyT,EAAY,IAAIC,UACVvT,OAAO,OAAQyV,GAFpB,kBAGErW,EAAW,iCAAkC,OAAQ4D,EAASsQ,EAAW7T,GAAO,IAHlF,4C,oEAMA,WAAqCA,EAAOD,EAAMkD,GAAlD,eAAA7C,EAAA,sDACCqJ,EAAM5N,KAAKiJ,UAAU/E,GADtB,KAEGkD,EAFH,OAGE,IAHF,OAKE,IALF,OAOE,IAPF,OASE,IATF,OAWE,IAXF,OAaE,IAbF,gDAIMtD,EAAW,qCAAsC,OAAQ,GAAI8J,EAAKzJ,GAAO,IAJ/E,gCAMML,EAAW,uCAAwC,OAAQ,GAAI8J,EAAKzJ,GAAO,IANjF,gCAQML,EAAW,2CAA4C,OAAQ,GAAI8J,EAAKzJ,GAAO,IARrF,gCAUML,EAAW,gCAAiC,OAAQ,GAAI8J,EAAKzJ,GAAO,IAV1E,gCAYML,EAAW,2CAA4C,OAAQ,GAAI8J,EAAKzJ,GAAO,IAZrF,gCAcML,EAAW,8CAA+C,OAAQ,GAAI8J,EAAKzJ,GAAO,IAdxF,6C,sBAkBA,SAAe+lC,GAAtB,uC,8CAAO,WAA2B/lC,EAAOuD,EAASN,GAA3C,SAAA7C,EAAA,sDACLmD,EAAO,uBAAmBN,EAAnB,YAA2BM,GAD7B,KAEGN,EAFH,OAGE,IAHF,OAKE,IALF,OAOE,IAPF,OASE,IATF,OAWE,IAXF,OAaE,IAbF,gDAIMtD,EAAW,gCAAiC,OAAQ4D,EAAS,KAAMvD,GAAO,IAJhF,gCAMML,EAAW,kCAAmC,OAAQ4D,EAAS,KAAMvD,GAAO,IANlF,gCAQML,EAAW,sCAAuC,OAAQ4D,EAAS,KAAMvD,GAAO,IARtF,gCAUML,EAAW,2BAA4B,OAAQ4D,EAAS,KAAMvD,GAAO,IAV3E,gCAYML,EAAW,sCAAuC,OAAQ4D,EAAS,KAAMvD,GAAO,IAZtF,gCAcML,EAAW,yCAA0C,OAAQ4D,EAAS,KAAMvD,GAAO,IAdzF,6C,iCCjPH4mB,GCAAiO,GCQAA,GCJSmR,GAAe,SAAClrC,GAGzB,IAEQiJ,EAAMC,cAAND,EACAkiC,EAA6BnrC,EAA7BmrC,WAAYppB,EAAiB/hB,EAAjB+hB,aAEpB,EAAsBhgB,aAAiBD,GAAhCI,EAAP,oBACA,EAAkCH,YAAe,GAAjD,mBAAOyxB,EAAP,KAAkBC,EAAlB,KACA,EAA0C1xB,WAAe,IAAzD,mBAAOgwB,EAAP,KAAsBC,EAAtB,KACA,EAAwDjwB,WAAe,IAAvE,mBAAO0wB,EAAP,KAA6BC,EAA7B,KACA,EAAkD3wB,WAAe,IAAjE,mBAAOswB,EAAP,KAA0BC,EAA1B,KACA,EAAgDvwB,WAAe,IAA/D,mBAAOoxB,EAAP,KAAyBC,EAAzB,KACA,EAA0CrxB,WAAe,MAAzD,mBAAOqpC,EAAP,KAAsBC,EAAtB,KACA,EAAsCtpC,WAAe,MAArD,mBAAOupC,EAAP,KAAoBC,EAApB,KACA,EAA0DxpC,WAAe,CAAEypC,OAb5D,EAa4El5B,OAAQ,IAAnG,mBAAOm5B,EAAP,KAA8BC,EAA9B,KACA,EAA8C3pC,YAAe,GAA7D,mBAAO4pC,EAAP,KAAwBC,EAAxB,KACA,EAAsC7pC,YAAe,GAArD,mBAAOsxB,EAAP,KAAoBC,EAApB,KASMuY,GAAiB9pC,WAEjB+pC,GAAiB,SAAC9W,EAAK+W,EAAM1hC,GAEjC,OADA2qB,EAAIlL,OAAOzf,EAAI,EAAG2qB,EAAIlL,OAAOiiB,EAAM,GAAG,IAC/B/W,GAGTjzB,aAAgB,WACRqpC,GAAiBh6B,SAASC,eAAe,iBACzCO,aAAYR,SAASC,eAAe,gBACpCu6B,GAAmB,MAExB,CAACR,IAEJrpC,aAAgB,WACR4pC,GAAmBv6B,SAASC,eAAe,iBAC3CC,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,iBAChDE,aAAYH,SAASC,eAAe,gBACpCG,aAAW,CAAErJ,KAAM,iBAExB,CAACwjC,IAEJ5pC,aAAgB,WAAM,4CAClB,oDAAAuD,EAAA,sEAC+B0I,GAAoB9L,EAAYjB,aACtDsI,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAJhC,cACQwiC,EADR,gBAO2Bz+B,GAAarL,EAAYjB,aAC3CsI,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAVhC,cAOQgrB,EAPR,gBAa0B3mB,GAAY3L,EAAYjB,aACzCsI,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAhBhC,cAaQme,EAbR,OAuBQskB,EAD+B,iBAAxB/pC,EAAYX,SACHW,EAAYX,UAAYW,EAAYX,SAAS3C,OAAS,EAAtD,iCAAoFsD,EAAYX,SAASjB,IAAO,GAEhH4B,EAAYX,SAAZ,iCAAiDW,EAAYX,SAASjB,IAAO,GAzBrG,UA4B4BwpC,GAAc5nC,EAAYjB,YA3E3C,EA2EgEgrC,GAClE1iC,MAAK,SAAAvD,GAAc,GAAIA,EAASC,GAAM,OAAOD,EAASwD,UA7B/D,SA4BQ0iC,EA5BR,UAgCMA,EAAcA,EAAYppC,QAAO,SAAAC,GAE/B,OADAA,EAAKopC,UAAYppC,EAAKopC,UAA6B,OAAjBvpC,IAAKC,SAAmB,YAAc,UAA6B,OAAjBD,IAAKC,SAAmB,YAAc,WACnHE,KAETsoC,EAAiBa,GACjBX,EAAeW,IAGbE,EAxCR,UAwCmBF,SAxCnB,aAwCmB,EAAajpC,KAAI,SAAAF,GAC9B,MAAO,CAAEiS,KAAMjS,EAAKspC,YAGhBC,EAAM,IAAIpW,IACVhiB,EAAWk4B,EAAStpC,QAAO,SAAAC,GAC/B,IAAMwpC,EAAYD,EAAIE,IAAJ,OAAQzpC,QAAR,IAAQA,OAAR,EAAQA,EAAMiS,MAGhC,OAFAs3B,EAAIG,IAAJ,OAAQ1pC,QAAR,IAAQA,OAAR,EAAQA,EAAMiS,OAENu3B,KAGVva,EAAiB9d,GAEXw4B,EAtDV,uBAsDiCV,GAtDjC,CAsDiD,CAAE1rC,IAAM,EAAGoS,OAAQ,MAAOD,OAAQ,WACzEk6B,EAvDV,uBAuD0BnY,GAvD1B,CAuDsC,CAAEl0B,IAAM,EAAGoS,OAAQ,MAAOD,OAAQ,WAC9Doe,EAxDV,uBAwD4BlJ,GAxD5B,CAwDuC,CAAErnB,IAAM,EAAGoS,OAAQ,MAAOD,OAAQ,WAElDk6B,EACnBC,EAAed,GAAea,EAAW,EAAG,GAE5Cja,EAAwBga,GACxBpa,EAAqBsa,GACrBxZ,EAAoBvC,GA/DxB,6CADkB,uBAAC,WAAD,wBAkElBhf,KACD,CAACjP,IAAKC,WAETd,aAAgB,WACVG,EAAYX,UAAYsqC,IAAkBA,GAAe13B,QACvD03B,GAAe13B,QAAQ9R,MAAQH,EAAYX,SAASjB,GAEpDmzB,GAAa,KAElB,CAACN,IAEJ,IAAM0Z,GAAgB,CACpB,CACEpqC,KAAuB,OAAjBG,IAAKC,SAAmB,YAAc,UAC5CR,OAAO,GACN,CACDI,KAAuB,OAAjBG,IAAKC,SAAmB,YAAc,WAC5CR,OAAO,GACN,CACDI,KAAuB,OAAjBG,IAAKC,SAAmB,QAAU,MACxCR,MAAO,OAIXN,aAAgB,WACRggB,GACAA,EAAarN,YAClB,CAAC9R,IAAKC,WAET,IAAMiqC,GAAgB,uCAAG,8BAAAxnC,EAAA,0DACnBmmC,EADmB,gCAESxB,GAAsB/nC,EAAYjB,YAAawqC,EA/IlE,GAgJRliC,MAAK,SAAAvD,GACJ,GAAIA,EAASC,GACX,OAAOD,EAASwD,UALD,OAEjBujC,EAFiB,OASrBA,EAAiB,UAAGA,SAAH,aAAG,EAAmBjqC,QAAO,SAAAC,GAE5C,OADAA,EAAKopC,UAAYppC,EAAKopC,UAA6B,OAAjBvpC,IAAKC,SAAmB,YAAc,UAA6B,OAAjBD,IAAKC,SAAmB,YAAc,WACnHE,KAGTsoC,EAAiB0B,GACjBtZ,GAAa,GAfQ,uBAiBrB4X,EAAiBC,GAjBI,4CAAH,qDAoDtB,OACI,gCACI,uBAAK9qC,UAAS,gBAAWgzB,EAAY,SAAW,KAC5C,uBAAKhzB,UAAU,yBACX,uBAAKA,UAAU,eACX,wBAAMA,UAAU,qBAChB,yBAAIyI,EAAE,0BAEV,uBAAKzI,UAAU,eACX,uBAAKA,UAAU,mBACX,gBAAC,KAAD,CACIA,UAAU,UACVqU,YAAa5L,EAAE,+BACf6C,OAAQlJ,IAAKC,SACbR,MAAOopC,GAAyBA,EAAsBZ,SAAWY,EAAsBZ,SAAW,GAClGviB,KAAM,SAACjlB,GAAD,OAAOqoC,GACT,SAAAD,GAAqB,kCACdA,GADc,IAEjBZ,SAAUxnC,EAAEhB,gBAMhC,uBAAK7B,UAAU,oBACTgzB,GACE,uBAAKhzB,UAAU,aACX,gBAAC,KAAD,CACIA,UAAU,mBACVoK,SAAS,mBACTD,QAAS,kBAAM8oB,GAAcD,KAC7B,wBAAMhzB,UAAU,qBACfyI,EAAE,sBAIduqB,GACG,uBAAKhzB,UAAU,aACX,gBAAC,KAAD,CACIA,UAAU,iCACVoK,SAAS,mBACTD,QAAS,kBAAM8oB,GAAcD,KAC7B,wBAAMhzB,UAAU,qBACfyI,EAAE,sBAIf,uBAAKzI,UAAU,aACX,gBAAC,KAAD,CAAiBoK,SAAS,mBACtBD,QAAS,kBAAMmiC,OAEd7jC,EAAE,uBAKlBuqB,GACG,uBAAKhzB,UAAU,8BACX,gBAAC,KAAD,CACIF,GAAG,OACHsK,SAAS,WACTiK,YAAa5L,EAAE,iBACf6C,OAAQlJ,IAAKC,SACb4J,kBAAmB4mB,EACnBne,QAAS,kBAAMoe,GAAe,IAC9B7K,OAAQ,SAACplB,GAAD,OAAOqoC,GACb,SAAAD,GAAqB,kCAChBA,GADgB,IAEnBuB,WAAY3pC,EAAE4pC,WAAa5pC,EAAE4pC,UAAUnjC,cAAckX,MAAM,KAAK,GAChEksB,QAAS7pC,EAAE8pC,SAAW9pC,EAAE8pC,QAAQrjC,cAAckX,MAAM,KAAK,WAIjE,gBAAC,KAAD,CACI1gB,GAAG,QACH8sC,UAAU,EACVxiC,SAAS,WACTiK,YAAa5L,EAAE,mBACfqD,WAAYylB,EACZ3lB,OAAQ,CAAE/J,MAAO,QACjBinB,iBAAe,EACfjnB,MAAOopC,GAAyBA,EAAsB4B,MACtD5kB,OAAQ,SAACplB,GAAD,OAAOqoC,GACX,SAAAD,GAAqB,kCACdA,GADc,IAEjB4B,MAAOhqC,EAAEhB,cAIrB,gBAAC,KAAD,CACI/B,GAAG,cACHsK,SAAS,WACTiK,YAAa5L,EAAE,0BACfqD,WAAYmmB,EACZnJ,iBAAe,EACfld,OAAQ,CAAE3J,KAAuB,OAAjBG,IAAKC,SAAmB,SAAW,SAAUR,MAAO,MACpEyJ,OAAQlJ,IAAKC,SACbR,MAAOopC,GAAyBA,EAAsB6B,cACtD7kB,OAAQ,SAACplB,GAAD,OAAOqoC,GACX,SAAAD,GAAqB,kCACdA,GADc,IAEjB6B,cAAejqC,EAAEhB,cAI7B,gBAAC,KAAD,CACI/B,GAAG,SACHsK,SAAS,WACTiK,YAAa5L,EAAE,oBACfqD,WAAY+lB,EACZhJ,gBAAgB,EAChBC,iBAAe,EACfld,OAAQ,CAAE3J,KAAwB,OAAjBG,IAAKC,SAAoB,SAAW,SAAUR,MAAO,MACtEyJ,OAAQlJ,IAAKC,SACbR,MAAOopC,EAAwBA,EAAsBn5B,OAAS,GAC9DmW,OAAQ,SAACplB,GAAD,OAAOqoC,GACX,SAAAD,GAAqB,kCACdA,GADc,IAEjBn5B,OAAQjP,EAAEhB,cAIrB8wB,EAAiBv0B,QAChB,gBAAC,KAAD,CACI0B,GAAG,WACHD,IAAK,SAAAktC,GAAY,OAAI1B,GAAe13B,QAAUo5B,GAC9C3iC,SAAS,WACTiK,YAAa5L,EAAE,qBACfqD,WAAY6mB,EACZ7J,iBAAe,EACfld,OAAQ,CAAE3J,KAAwB,OAAjBG,IAAKC,SAAoB,SAAW,SAAUR,MAAO,MACtEA,MAAOopC,EAAwBA,EAAsBj5B,WAAatQ,EAAYX,SAAWW,EAAYX,SAASjB,GAAK,GACnHwL,OAAQlJ,IAAKC,SACb4lB,OA/IC,SAACplB,GAC5B,IAAQhB,EAAUgB,EAAVhB,MACRqpC,GACE,SAAAD,GAAqB,kCAChBA,GADgB,IAEnBj5B,WAAYnQ,UA8II,gBAAC,KAAD,CACI/B,GAAG,SACHsK,SAAS,WACTiK,YAAa5L,EAAE,mBACfqD,WAAYugC,GACZvjB,iBAAe,EACfld,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,SAC/ByJ,OAAQlJ,IAAKC,SACbR,MAAOopC,GAAyBA,EAAsBU,UACtD1jB,OAAQ,SAACplB,GAAD,OAAOqoC,GACX,SAAAD,GAAqB,kCACdA,GADc,IAEjBU,UAAW9oC,EAAEhB,gBAOpCspC,EAAkB,uBAAKrrC,GAAG,cAAcE,UAAU,gBAC/C,uBAAKA,UAAU,iBACV4qC,GACG,gBAAC,KAAD,CACI9qC,GAAG,WACHgM,WAAY8+B,EACZrU,eAAgB,CAAE5uB,KAAM,QACxBkhB,gBAAgB,EAChB2N,aAAa,EACbC,cAAc,EACdC,kBAAkB,EAClB72B,IAAK,SAAC05B,GAAD,OAAUoR,EAAWpR,IAC1BjuB,OAAQlJ,IAAKC,UACb,gBAAC,KAAD,KACI,gBAAC,KAAD,CACIyZ,MAAM,OACNhI,SA3Md,SAACX,GACf,IAAM65B,EAAc,IAAI1lC,KAAK6L,EAAKnP,MAClC,OACI,4BAAOgpC,EAAYzlC,mBAAmBnF,IAAKC,YAyMnBqP,WAAYjJ,EAAE,iBACd/I,MAAM,QAEV,gBAAC,KAAD,CACIoc,MAAM,SACNhI,SA1Mb,SAACX,GAChB,OACI,wBAAMnT,UAAU,QAAQmK,QAAS,kBAAM3K,EAAMm3B,KAAKxjB,KAAQA,EAAKiC,SAyMvC1D,WAAYjJ,EAAE,iBACd/I,MAAM,QAEV,gBAAC,KAAD,CACIoc,MAAM,UACNpK,WAAYjJ,EAAE,mBACd/I,MAAM,QAEV,gBAAC,KAAD,CACIoc,MAAM,YACNhI,SA/MZ,SAACX,GACnB,MAAuB,cAAnBA,EAAKw4B,UACC,wBAAM3rC,UAAU,cAA+B,OAAjBoC,IAAKC,SAAmB,YAAc,WAEpE,wBAAMrC,UAAU,cAA+B,OAAjBoC,IAAKC,SAAmB,YAAc,aA4MhDqP,WAAYjJ,EAAE,mBACd/I,MAAM,SAGd,gBAAC,KAAD,CAAQ0d,SAAU,CAACwZ,KAAQC,KAAMC,KAAaC,KAAQC,KAAMC,KAAMC,KAAY3Z,KAAS4Z,YHxYtG8V,GAAW,WAEpB,IAAQxkC,EAAMC,cAAND,EAER,EAAsBlH,aAAiBD,GAAhCI,EAAP,oBACA,EAAgCH,YAAe,GAA/C,mBAAO6D,EAAP,KAAiBsL,EAAjB,KACA,EAAkCnP,WAAe,MAAjD,mBAAO2rC,EAAP,KAAkBC,EAAlB,KACA,EAAwC5rC,WAAe,MAAvD,mBAAOggB,EAAP,KAAqB6rB,EAArB,KAcA7rC,aAAgB,WACZ,IAAImqB,EAAoBhqB,EAAYR,YACpCoqB,GAAiBI,EAAkBppB,QAAO,SAACpE,GAAD,MAAwB,aAAjBA,EAAEiD,cAA2BsB,KAAI,SAACvE,GAAD,OAAQA,EAAEkD,gBAC7F,CAACM,IAEJ,IAAMquB,EAAY,CACd0H,OAAQnM,IAAkC,KAC1C+L,OAAQ,kBAAMW,KACdT,OAAQ,GACRC,IAAK,kBAAM9mB,GAAY,IACvBgnB,KAAM,IAQJM,EAAgB,WAClB,GAAIzW,EAAc,CACd,IAAIrU,EAAO9K,IAAKC,SACZgrC,EAAqB9rB,EACzB8rB,EAAmBvhC,WAAWrJ,KAAI,SAAU0wB,GAExC,OADAA,EAAEnvB,KAAO,IAAIsD,KAAK6rB,EAAEnvB,MAAMuD,mBAAmB2F,GACtCimB,KAEXka,EAAmBlY,gBAK3B,OACI,gCACiC,OAA5BzzB,EAAYjB,YAAuB,gBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WACzDzE,EACkB,OAAd8nC,EACI,gBAAC,IAAD,CAAU9oC,MAAM,EAAMyF,GAAG,wBAEzB,gBAAC,IAAD,CAAUzF,MAAM,EAAMyF,GAAE,8BAAyBqjC,KAEjD,gCACI,gBAAC,GAAD,CAAoBptC,GAAG,OAEvB,uBAAKE,UAAU,eACf,gBAACwM,EAAA,EAAD,CAAWxM,UAAU,gBACjB,uBAAKA,UAAU,mBACX,gBAACmhB,GAAA,EAAD,KACI,uBAAKnhB,UAAU,mBACX,uBAAKA,UAAU,SACX,0BAAKyI,EAAE,qBAGf,uBAAKzI,UAAU,mBACX,uBAAKA,UAAU,WACX,gBAAC,GAAD,CAASwrB,SAAUuE,QAKnC,gBAAC5O,GAAA,EAAD,KACI,uBAAKnhB,UAAU,UACX,gBAAC,GAAD,CAEIuhB,aAAcA,EACdoV,KAnDpB,SAACrR,GACjB6nB,EAAa7nB,EAAKxlB,IAClB4Q,GAAY,IAkDwBi6B,WAAYyC,U,uCIhGlDjqC,GAAe,CACjBmqC,YAAa,KACbC,UAAW,KACXC,WAAY,MAGVC,GAAsBlsC,gBAAoB4B,IAE1CuqC,GAAuB,SAAC,GAAkB,IAAhBjsC,EAAe,EAAfA,SAC5B,EAAwCF,WAAe4B,IAAvD,mBAAOwqC,EAAP,KAAqBC,EAArB,KACA,EAA4CrsC,WAAe,IAA3D,mBAAOssC,EAAP,KAAuBC,EAAvB,KACA,EAAwCvsC,WAAe,MAAvD,mBAAOwsC,EAAP,KAAqBC,EAArB,KACA,EAA0DzsC,WAAe,IAAzE,mBAAO0sC,EAAP,KAA8BC,EAA9B,KACA,EAAsD3sC,WAAe,MAArE,mBAAO4sC,EAAP,KAA4BC,EAA5B,KACA,EAA8C7sC,YAAe,GAA7D,mBAAO8sC,EAAP,KAAwBC,EAAxB,KACA,EAAoC/sC,YAAe,GAAnD,mBAAOgtC,EAAP,KAAmBC,EAAnB,KAEA,OACI,gBAACf,GAAoB7rC,SAArB,CAA8BC,MAAO,CAAEqsC,2BAA0BD,wBAAuBE,sBAAqBC,yBAAwBG,aAAYC,gBAAeb,eAAcC,kBAAiBC,iBAAgBC,oBAAmBC,eAAcC,kBAAiBK,kBAAiBC,uBAC7Q7sC,IHVAgtC,GAAgB,SAACjvC,GAAW,IAAD,EAE5BkvC,EAAoDlvC,EAApDkvC,sBAAuBC,EAA6BnvC,EAA7BmvC,yBAC/B,EAAsBptC,aAAiBD,GAAhCI,EAAP,oBACA,EAAoCH,WAAe,IAAnD,mBAAOqtC,EAAP,KAAmBC,EAAnB,KACA,EAAsDttC,WAAe,MAArE,mBAAOutC,EAAP,KAA4BC,EAA5B,KACQtmC,EAAMC,cAAND,EAIRlH,aAAgB,WACRutC,IACAvV,GAAKxoB,cFuMV,SAAP,qCEtMYi+B,CAAsBttC,EAAYjB,YAAaiuC,GAAuB3lC,MAAK,SAAAvD,GACnEA,EAASC,GACTD,EAASwD,OAAOD,MAAK,SAAAE,GACjBA,EAAOxG,KAAI,SAAAF,GACP,IAAM0sC,EAA8BH,EAAoBxsC,QAAO,SAAA4sC,GAAG,OAAIA,EAAIpvC,KAAOyC,EAAK4sC,yBAClFF,EAA4B7wC,SAC5BmE,EAAK6sC,SAAWH,EAA4B,GAAGh9B,OAC/C1P,EAAK8sC,SAAWJ,EAA4B,GAAG/8B,WAGvD28B,EAAc5lC,MAIlBswB,GAAKnoB,oBAGlB,CAAC09B,IAEJvtC,aAAgB,WACRg4B,KACAA,GAAKztB,WAAa8iC,KAEvB,CAACA,IAyBJ,OALArtC,aAAgB,WACRg4B,IACAA,GAAKrlB,YACV,CAAC9R,IAAKC,WAGL,gBAAC,KAAD,CACIvC,GAAG,gBACHJ,MAAM,QACNwe,SAAS,EACTvC,QAAS+yB,EAAwB,EACjCpuB,eAAe,EACfqD,YAAa,kBAAMgrB,EAAyB,IAC5CrjC,OAAQlJ,IAAKC,UAEb,wBAAMrC,UAAU,iBAAiByI,EAAE,uBAAnC,IAA4DimC,GAC5D,gBAAC,MAAD,GACI5uC,GAAG,mBACHD,IAAK,SAAAomC,GAAa,OAAI1M,GAAO0M,GAC7Bn6B,WAAY,GACZsvB,iBApEa,CAAC,gBAAiB,iBAAkB,YAAa,WAAY,WAAY,YAqEtF9vB,OAAQlJ,IAAKC,SACbk0B,eAAgB,CAAE5uB,KAAM,YACxBkhB,gBAAgB,EAChB2N,aAAa,EACb+H,aAAc,CAAEC,SAAU,GAC1B/H,cAAc,GAVlB,wBAWYr0B,IAAKC,UAXjB,0BAlCc,Y1CYnB,SAAP,oC0CXQitC,CAAuB5tC,EAAYjB,aAAasI,MAAK,SAAAvD,GAC7CA,EAASC,GACTD,EAASwD,OAAOD,MAAK,SAAAE,GAAM,OAAI8lC,EAAuB9lC,MAGtDswB,GAAKnoB,oBA4BT,GAcI,gBAAC,KAAD,KACI,gBAAC,KAAD,CACItR,GAAG,GACHgc,MAAM,QACNhI,SAAS,GACTpC,WAAW,QACXhS,MAAM,UAEV,gBAAC,KAAD,CACII,GAAG,GACHgc,MAAyB,OAAlB1Z,IAAKC,SAAoB,WAAa,WAC7CyR,SAjDG,SAACX,GACpB,OACI,wBAAMnT,UAA0C,IAA/BmT,EAAKg8B,sBAA8B,kBAAmD,IAA/Bh8B,EAAKg8B,sBAA8B,eAAiB,qBACrG,OAAlB/sC,IAAKC,SAAoB8Q,EAAKi8B,SAAWj8B,EAAKk8B,WA+CvC39B,WAAW,SACXhS,MAAM,UAEV,gBAAC,KAAD,CACII,GAAG,GACHgc,MAAM,gBACNhI,SAAS,GACTpC,WAAYjJ,EAAE,wBAGtB,gBAAC,KAAD,CAAQ2U,SAAU,CAACwZ,KAAQC,KAAMC,KAAaC,KAAQC,WCnGzDuY,GAAgB,SAAC,GAAgB,IAAdC,EAAa,EAAbA,OAE5B,EAAsBjuC,aAAiBD,GAAhCI,EAAP,oBACA,EAA8CH,YAAe,GAA7D,mBACA,GADA,UAC0CA,WAAe,OAAzD,mBAAOkuC,EAAP,KAAsBC,EAAtB,KACA,EAAoCnuC,WAAe,MAAnD,mBAAOqtC,EAAP,KAAmBC,EAAnB,KACA,EAA0DttC,WAAe,GAAzE,mBAAOmtC,EAAP,KAA8BC,EAA9B,KACMgB,EAAepuC,SAAa,MAC5BquC,EAAmBruC,SAAa,MAE9BkH,EAAMC,cAAND,EACF2yB,EAAmB,CAAC,gBAAiB,iBAAkB,YAAa,WAAY,WAAY,YAElG75B,aAAgB,Y3CwBb,SAAP,oC2CtBQsuC,CAAiBnuC,EAAYjB,aAAasI,MAAK,SAAAvD,GACvCA,EAASC,IACTD,EAASwD,OAAOD,MAAK,SAAAE,GACjB2mC,EAAiBj8B,QAAU1K,EAC3BymC,EAAiBzmC,WA0B9B,IAEH1H,aAAgB,WACRkuC,GACAK,MAEL,CAACL,IAEJluC,aAAgB,WACRqtC,IACArV,GAAKztB,WAAa8iC,KAsBvB,CAACA,IAEJ,IAsBMkB,EAA4B,WAC9BvF,GAA8B7oC,EAAYjB,YAAa+uC,GAAQzmC,MAAK,SAAAvD,GAC5DA,EAASC,IAAMmqC,EAAiBj8B,SAChCnO,EAASwD,OAAOD,MAAK,SAAAE,GACjBA,EAAOxG,KAAI,SAAAF,GACP,IAAMwtC,EAAwBH,EAAiBj8B,QAAQ9L,MAAK,SAAAmoC,GAAE,OAAIA,EAAGlwC,KAAOyC,EAAK0tC,mBAC7EF,IACAxtC,EAAK6sC,SAAWW,EAAsB99B,OACtC1P,EAAK8sC,SAAWU,EAAsB79B,WAG9C28B,EAAc5lC,UAMxBinC,EAAoB,SAACrtC,GACvB8rC,EAAyB9rC,EAAEmB,KAAKlE,IAChC0T,YAAW,kBAAM+lB,GAAK4W,qBAuBpBC,EAAc,WAChB7W,GAAKztB,WAAa8iC,GAGhByB,EAAkB,SAACl9B,GACI,qBAArBA,EAAKm9B,aAA0D,WAApBn9B,EAAKo9B,aAChDp9B,EAAKq9B,YAAY3wB,QAAQ/T,WA1Bf,WACd,IAAI9H,EAAO,GAEPysC,EAAS,GAcb,OAbelX,GAAKztB,WAAWrJ,KAAI,SAAAZ,GAAK,OAAIA,EAAM6uC,UAE3CzsC,SAAQ,SAACuwB,GACZA,EAAIvwB,SAAQ,SAAC1B,GACHA,EAAKiS,QAAQi8B,IACfzsC,EAAKI,KAAK,CAAEssC,OAAQnuC,EAAKiS,OACzBi8B,EAAOluC,EAAKiS,OAAQ,MAGvBggB,EAAIp2B,QACL4F,EAAKI,KAAK,CAAE,IAAI,OAGjBJ,EASmC2sC,KAI9CC,KAASC,YAAYC,MAAQ,SAAUC,EAAWC,EAAaC,EAAYC,GACvE,OAAIC,MAAMC,QAAQL,GACTC,EAGEzwC,KAAKiJ,UAAUunC,GAAWrT,SAASsT,IAF9BD,EAAU3yC,QAIlB8yC,IACAH,EAAYH,KAASS,iBAAiBN,GACtCC,EAAcJ,KAASS,iBAAiBL,IAExCC,EACOL,KAASnhC,YAAYshC,KAAeH,KAASnhC,YAAYuhC,GAE7DD,IAAcC,IAI7BJ,KAASC,YAAYS,SAAW,SAAUP,EAAWC,EAAaC,EAAYC,GAC1E,OAAIC,MAAMC,QAAQL,GACTC,EAEIzwC,KAAKiJ,UAAUunC,GAAWrT,SAASsT,GACjCD,EAAU3yC,OAAS,GAEtB2yC,EAAU3yC,SAAWmC,KAAKiJ,UAAUunC,GAAWrT,SAASsT,GAJrDD,EAAU3yC,QAOjB8yC,IACAH,EAAYH,KAASS,iBAAiBN,GACtCC,EAAcJ,KAASS,iBAAiBL,KAEpCJ,KAASC,YAAYC,MAAMC,EAAWC,EAAaC,KAInE,IAAMM,EAAkB,SAACp+B,GACrB,GAAuB,WAAnBA,EAAKq+B,OAAO1xC,GAAiB,CAC7B,IAAI+T,EAAU,GAad,OAXAV,EAAKnP,KAAL,OAAoBvB,KAAI,SAACF,EAAMrE,GAC3B2V,GAAWtR,EAAKiS,KACZtW,IAAMiV,EAAKnP,KAAL,OAAoB5F,OAAS,IACnCyV,GAAW,SAGfA,GACU,IAAI49B,KAAQ,CAClB59B,QAASA,GACVV,EAAKu+B,MAELv+B,EAAKu+B,OAIdC,EAAgB,SAAC9uC,GACnB,OACIA,EAAE6tC,OAAOjuC,KAAI,SAAAF,GAAI,OACb,wBAAMvC,UAAU,aAAauC,EAAKiS,UAKxCo9B,EAAkB,SAAC/uC,GACrB,OACI,wBAAM7C,UAAU,eAAe6C,EAAEgvC,UAInCC,EAAe,SAACjvC,GAClB,OACI,wBAAM7C,UAAU,YAAY6C,EAAEkvC,OAGtCxwC,aAAgB,WACRg4B,IACAA,GAAKrlB,UAGLy7B,GACAA,EAAah8B,QAAQq+B,QAAQ,CACzBC,UAAU,EACVr+B,OAAO,+IAAD,OAEInL,EAAE,wBAFN,iCAINoL,QAASq+B,MAIlB,CAAC9vC,IAAKC,WAET,IAAM6vC,EAAgB3wC,eAAkB,WACpC,OACI,gCACI,2BACI,gBAAC,KAAD,CACIzB,GAAG,cACHD,IAAK,SAAAomC,GAAa,OAAI1M,GAAO0M,GAC7B7K,iBAAkBA,EAClBtvB,WAAY8iC,EACZrY,eAAgB,CAAE5uB,KAAM,YACxB6uB,aAAa,EACbC,cAAc,EACdnrB,OAAQlJ,IAAKC,SACbwmB,gBAAgB,EAChBspB,eAAe,EACf5T,aAAc,CAAEC,SAAU,GAC1B4T,YAAa/B,EACbgC,cAAed,EACfe,YAAapC,EACbx7B,QAAS07B,GAET,gBAAC,KAAD,KACI,gBAAC,KAAD,CACItwC,GAAG,GACHgc,MAAM,KACNpK,WAAW,KACXygC,eAAe,EACfzyC,MAAM,OAEV,gBAAC,KAAD,CACII,GAAG,GACHgc,MAAM,YACNnU,KAAK,OACLuU,OAAQ,CAAEvU,KAAM,OAAQuU,OAA0B,OAAlB9Z,IAAKC,SAAoB,cAAgB,eACzEqP,WAAYjJ,EAAE,kBACd/I,MAAM,MACN4C,OAAQ,CAAEqF,KAAM,UAEpB,gBAAC,KAAD,CACI7H,GAAG,GACHgc,MAAM,cACNpK,WAAYjJ,EAAE,qBACd8pC,SAAS,IAEb,gBAAC,KAAD,CACIzyC,GAAG,SACHgc,MAAM,SACNhI,SAAU69B,EACVjgC,WAAYjJ,EAAE,gBACd/I,MAAM,QAEV,gBAAC,KAAD,CACII,GAAG,GACHgc,MAAyB,OAAlB1Z,IAAKC,SAAoB,WAAa,WAC7CqP,WAAW,SACXhS,MAAM,QAEV,gBAAC,KAAD,CACII,GAAG,GACHgc,MAAM,UACNhI,SAAU89B,EACVlgC,WAAYjJ,EAAE,iBACd/I,MAAM,QAEV,gBAAC,KAAD,CACII,GAAG,GACHgc,MAAM,OACNhI,SAAUg+B,EACVpgC,WAAYjJ,EAAE,eACd/I,MAAM,SAGd,gBAAC,KAAD,CAAQ0d,SAAU,CAACwZ,KAAQC,KAAMC,KAAaC,KAAQC,aAKvE,CAAC4X,IAEE4D,EAAkBjxC,eAAkB,kBACtC,gBAAC,KAAD,CACIzB,GAAG,SACHwL,OAAQlJ,IAAKC,SACbrC,UAAWoC,IAAKC,SAChBxC,IAAK8vC,MAGV,CAACvtC,IAAKC,WAET,OACI,gCACI,gBAACmwC,EAAD,MAEC9D,EAAwB,GACrB,gBAAC,GAAD,CACIA,sBAAuBA,EACvBC,yBAA0BA,MG/VjC8D,GAAS,SAACjzC,GAEnB,IAAQgsB,EAAahsB,EAAbgsB,SACA/iB,EAAMC,cAAND,EAER,OACK+iB,EAASknB,KAAOlnB,EAASmnB,KAAOnnB,EAASonB,QAC1C,uBAAK5yC,UAAU,SAASF,GAAIN,EAAMM,GAAKN,EAAMM,GAAK,IAC9C,uBAAKE,UAAU,0CACX,uBAAKA,UAAU,qBACf,0BAAKyI,EAAE,kBAEX,uBAAKzI,UAAU,8BACdwrB,EAASknB,KACN,gBAAC,KAAD,CACA5yC,GAAG,MACHsK,SAAS,mBACTD,QAASqhB,EAASknB,KAElB,uBAAK1yC,UAAU,kBACdyI,EAAE,wBAEN+iB,EAASmnB,KACN,gBAAC,KAAD,CACA7yC,GAAG,MACHsK,SAAS,mBACTD,QAASqhB,EAASmnB,KAElB,uBAAK3yC,UAAS,wBAAmBR,EAAMmzC,OACtClqC,EAAE,wBAEN+iB,EAASonB,OACN,gBAAC,KAAD,CACA9yC,GAAG,QACHsK,SAAS,mBACTD,QAASqhB,EAASonB,OAElB,uBAAK5yC,UAAU,oBACdyI,EAAE,6BCtCNoqC,GAAgB,SAACrzC,GAE1B,IAAQqU,EAAYrU,EAAZqU,QAER,OACI,uBAAK7T,UAAU,WACX,uBAAKA,UAAU,0CACX,uBAAKA,UAAU,uBACf,+DAEJ,uBAAKA,UAAU,8BACX,2BACK6T,GAAWA,EAAQpR,KAAI,SAACF,EAAMG,GAAP,OACpB,uBAAK1C,UAAU,OAAO1B,IAAKoE,GACvB,uBAAK1C,UAAU,QACX,wBAAMA,UAAU,QAAQuC,EAAKuwC,SAC7B,wBAAM9yC,UAAU,QAAS,IAAIsH,KAAK/E,EAAKyB,MAAOuD,mBAAmBnF,IAAKC,UAAtE,IAAmF,IAAIiF,KAAK/E,EAAKyB,MAAOwD,mBAAmBpF,IAAKC,SAAU,CAAEmuB,QAAQ,MAExJ,uBAAKxwB,UAAU,UACX,4BAAwB,OAAjBoC,IAAKC,SAAmBE,EAAKwwC,SAAS9gC,OAAS1P,EAAKwwC,SAAS7gC,aAG7E8gC,cC5BjBC,GAAyB1xC,kBAEzB2xC,GAA0B,SAAC,GAAkB,IAAhBzxC,EAAe,EAAfA,SAE/B,EAAsBF,aAAiBD,GACvC,GADA,oBACoCC,WAAe,OAAnD,mBAAO4xC,EAAP,KAAmBC,EAAnB,KACA,EAAkC7xC,WAAe,MAAjD,mBAAO4qC,EAAP,KAAkBkH,EAAlB,KACA,EAA4B9xC,WAAe,MAA3C,mBAAO+xC,EAAP,KAAeC,EAAf,KACA,EAA4BhyC,WAAe,MAA3C,mBAAOiyC,EAAP,KAAeC,EAAf,KACA,EAAwBlyC,WAAe,MAAvC,mBAAOgB,EAAP,KAAagH,EAAb,KACA,EAA4ChI,WAAe,IAA3D,mBAAOssC,EAAP,KAAuBC,EAAvB,KACA,EAAgDvsC,WAAe,MAA/D,mBAAOmyC,EAAP,KAAyBC,EAAzB,KAEA,OACI,gBAACV,GAAuBrxC,SAAxB,CACIC,MAAO,CAACsxC,aAAWC,gBAAejH,YAAWkH,eAAcC,SAAQC,YAAWC,SAAQC,YAAWlxC,OAAMgH,UAASskC,iBAAgBC,oBAAmB4F,mBAAkBC,wBACpKlyC,IClBN,SAAemyC,GAAtB,qC,8CAAO,WAAsClvC,EAAOuD,GAA7C,SAAAnD,EAAA,+EACIT,EAAW,6CAA8C,MAAO4D,EAAS,KAAMvD,GAAO,IAD1F,4C,oEAIA,WAAqCA,EAAO5E,GAA5C,eAAAgF,EAAA,6DACGmD,EADH,4BACkCnI,GADlC,kBAEIuE,EAAW,4CAA6C,MAAO4D,EAAS,KAAMvD,GAAO,IAFzF,4C,oEAKA,WAAgDA,GAAhD,eAAAI,EAAA,6DACGmD,EADH,iBACuBvD,GADvB,kBAEIL,EAAW,uDAAwD,MAAO4D,EAAS,KAAMvD,GAAO,IAFpG,4C,sBAKA,SAAemvC,GAAtB,qC,8CAAO,WAAsCnvC,EAAOD,GAA7C,iBAAAK,EAAA,6DACGqJ,EAAM5N,KAAKiJ,UAAU/E,GACrBH,EAAcG,EAAK3E,GAAK,+CAAiD,4CAF5E,kBAGIuE,EAAWC,EAAa,OAAQ,GAAI6J,EAAKzJ,GAAO,IAHpD,4C,oEAMA,WAAoCA,EAAO5E,GAA3C,eAAAgF,EAAA,6DACGmD,EADH,4BACkCnI,GADlC,kBAEIuE,EAAW,+CAAgD,OAAQ4D,EAAS,KAAMvD,GAAO,IAF7F,4C,sBAKA,SAAeovC,GAAtB,qC,8CAAO,WAAyCpvC,EAAO5E,GAAhD,eAAAgF,EAAA,6DACGmD,EADH,4BACkCnI,GADlC,kBAEIuE,EAAW,gDAAiD,OAAQ4D,EAAS,KAAMvD,GAAO,IAF9F,4C,oEAKA,WAAqCA,EAAO0X,GAA5C,eAAAtX,EAAA,6DACCivC,EAAW,IAAIv7B,UACVvT,OAAO,4BAA6BmX,GAF1C,kBAGI/X,EAAW,4CAA6C,OAAQ,GAAI0vC,EAAUrvC,GAAO,IAHzF,4C,sBAkBA,SAAesvC,GAAtB,mC,8CAAO,WAAoCtvC,GAApC,2BAAAI,EAAA,6DAA2CmD,EAA3C,+BAAqD,GAArD,kBACI5D,EAAW,yCAA0C,MAAO4D,EAAS,KAAMvD,GAAO,IADtF,4C,oEAIA,WAAmCA,EAAO5E,GAA1C,eAAAgF,EAAA,6DACGmD,EADH,0BACgCnI,GADhC,kBAEIuE,EAAW,wCAAyC,MAAO4D,EAAS,KAAMvD,GAAO,IAFrF,4C,oEAKA,WAAoCA,EAAOD,GAA3C,iBAAAK,EAAA,6DACGqJ,EAAM5N,KAAKiJ,UAAU/E,GACrBH,EAAcG,EAAK3E,GAAK,2CAA6C,wCAFxE,kBAGIuE,EAAWC,EAAa,OAAQ,GAAI6J,EAAKzJ,GAAO,IAHpD,4C,oEAMA,WAAsCA,EAAO5E,GAA7C,eAAAgF,EAAA,6DACGmD,EADH,0BACgCnI,GADhC,kBAEIuE,EAAW,2CAA4C,OAAQ4D,EAAS,KAAMvD,GAAO,IAFzF,4C,oEAKA,WAA0CA,EAAO5E,EAAIuC,GAArD,eAAAyC,EAAA,6DACGmD,EADH,0BACgCnI,EADhC,qBAC+CuC,GAD/C,kBAEIgC,EAAW,+CAAgD,MAAO4D,EAAS,KAAMvD,GAAO,IAF5F,4C,oECpEA,WAAsCA,EAAO8kC,GAA7C,SAAA1kC,EAAA,+EACIT,EAAW,oDAAqD,MAAOmlC,EAAS,KAAM9kC,GAAO,IADjG,4C,oEAIA,WAAqCA,EAAO5E,GAA5C,eAAAgF,EAAA,6DACGmD,EADH,4BACkCnI,GADlC,kBAEIuE,EAAW,mDAAoD,MAAO4D,EAAS,KAAMvD,GAAO,IAFhG,4C,oEAKA,WAAgDA,GAAhD,eAAAI,EAAA,6DACGmD,EADH,iBACuBvD,GADvB,kBAEIL,EAAW,8DAA+D,MAAO4D,EAAS,KAAMvD,GAAO,IAF3G,4C,sBAKA,SAAemvC,GAAtB,qC,8CAAO,WAAsCnvC,EAAOD,GAA7C,iBAAAK,EAAA,6DACGqJ,EAAM5N,KAAKiJ,UAAU/E,GACrBH,EAAcG,EAAK3E,GAAK,sDAAwD,mDAFnF,kBAGIuE,EAAWC,EAAa,OAAQ,GAAI6J,EAAKzJ,GAAO,IAHpD,4C,oEAMA,WAAoCA,EAAO5E,GAA3C,eAAAgF,EAAA,6DACGmD,EADH,4BACkCnI,GADlC,kBAEIuE,EAAW,sDAAuD,OAAQ4D,EAAS,KAAMvD,GAAO,IAFpG,4C,sBAKA,SAAeovC,GAAtB,qC,8CAAO,WAAyCpvC,EAAO5E,GAAhD,eAAAgF,EAAA,6DACGmD,EADH,4BACkCnI,GADlC,kBAEIuE,EAAW,uDAAwD,OAAQ4D,EAAS,KAAMvD,GAAO,IAFrG,4C,sBAuBA,SAAeuvC,GAAtB,mC,8CAAO,WAA2CvvC,GAA3C,2BAAAI,EAAA,6DAAkDmD,EAAlD,+BAA4D,GAA5D,kBACI5D,EAAW,gDAAiD,MAAO4D,EAAS,KAAMvD,GAAO,IAD7F,4C,oEAIA,WAAmCA,EAAO5E,GAA1C,eAAAgF,EAAA,6DACGmD,EADH,0BACgCnI,GADhC,kBAEIuE,EAAW,+CAAgD,MAAO4D,EAAS,KAAMvD,GAAO,IAF5F,4C,oEAKA,WAAoCA,EAAOD,GAA3C,iBAAAK,EAAA,6DACGqJ,EAAM5N,KAAKiJ,UAAU/E,GACrBH,EAAcG,EAAK3E,GAAK,kDAAoD,+CAF/E,kBAGIuE,EAAWC,EAAa,OAAQ,GAAI6J,EAAKzJ,GAAO,IAHpD,4C,oEAMA,WAAsCA,EAAO5E,GAA7C,eAAAgF,EAAA,6DACGmD,EADH,0BACgCnI,GADhC,kBAEIuE,EAAW,kDAAmD,OAAQ4D,EAAS,KAAMvD,GAAO,IAFhG,4C,oEAKA,WAA0CA,EAAO5E,EAAIuC,GAArD,eAAAyC,EAAA,6DACGmD,EADH,0BACgCnI,EADhC,qBAC+CuC,GAD/C,kBAEIgC,EAAW,sDAAuD,MAAO4D,EAAS,KAAMvD,GAAO,IAFnG,4C,iCCHH4mB,GCxDS4oB,GAAY,SAAC10C,GACtB,IAAI20C,EACJ,EAAsB5yC,aAAiBD,GAAhCI,EAAP,oBACM0R,EAAU7R,aAAiB/B,EAAMmI,KAAO8lC,GAAsBwF,IACpE,EAA4B1xC,WAAe,MAA3C,mBAAO6yC,EAAP,KAAeC,EAAf,KACA,EAA0C9yC,WAAe,MAAzD,mBAAO+yC,EAAP,KAAsBC,EAAtB,KACQ9rC,EAAMC,cAAND,EAERlH,aAAgB,WACZ,IAAIioC,EAAU,GACVhqC,EAAMmI,OACNyL,EAAQ06B,kBAAkB,IAC1BtE,EAAU,mCAEdwK,GAAqBtyC,EAAYjB,YAAa+oC,GAASzgC,MAAK,SAAAvD,GACpDA,EAASC,IACTD,EAASwD,OAAOD,MAAK,SAAAE,GACjBorC,EAAUprC,SAKtBgrC,GAA4BvyC,EAAYjB,YAAa+oC,GAASzgC,MAAK,SAAAvD,GAC3DA,EAASC,IACTD,EAASwD,OAAOD,MAAK,SAAAE,GACjBsrC,EAAiBtrC,WAI9B,IAEH1H,aAAgB,WACZ,GAAI6R,EAAQ26B,cAAgBqG,EAAQ,CAChC,IAAMI,EAAiBJ,EAAO9xC,QAAO,SAAAC,GAAI,QAAM6Q,EAAQ26B,aAAa0G,QAAUlyC,EAAKkyC,SAAWrhC,EAAQ26B,aAAa0G,WAC7GrhC,EAAQ26B,aAAa2G,YAAcnyC,EAAKmyC,aAAethC,EAAQ26B,aAAa2G,eAClFP,EAAkBroC,WAAa0oC,KAGpC,CAACphC,EAAQ26B,eAEZ,IAAM4G,EAAoB,SAAA9xC,GACtBuQ,EAAQ06B,kBAAkBjrC,EAAEhB,QAOhC,OACI,gCACKrC,EAAMmI,KAAO,uBAAK3H,UAAU,aACzB,6BAAQyI,EAAE,uBACV,uBAAKzI,UAAU,8BACVo0C,GACG,gBAAC,KAAD,CACIt0C,GAAG,SACHD,IAAK,SAAAshC,GAAW,OAAIgT,EAAoBhT,GACxC/2B,SAAS,WACT0B,WAAYsoC,EACZxoC,OAAQ,CAAE/J,MAAO,KAAMI,KAAM,QAC7BoS,YAAa5L,EAAE,8BACf6tB,KAAK,MACLrO,OAAQ0sB,EACR9yC,MAAOuR,EAAQy6B,gBAEf,gBAAC,KAAD,CAAQzwB,SAAU,CAAC+d,WAI1BiZ,GAAU,gBAAC,KAAD,CACft0C,GAAG,SACHD,IAAK,SAAAshC,GAAW,OAAIgT,EAAoBhT,GACxC/2B,SAAS,WACT0B,WAAYsoC,EACZxoC,OAAQ,CAAE/J,MAAO,KAAMI,KAAM,QAC7BoS,YAAa5L,EAAE,8BACf6tB,KAAK,MACLrO,OAAQ0sB,EACR9yC,MAAOuR,EAAQy6B,gBAEf,gBAAC,KAAD,CAAQzwB,SAAU,CAAC+d,SAGtB37B,EAAMmI,MAAQ,uBAAK3H,UAAU,aAC1B,6BAAQyI,EAAE,+BACV,uBAAKzI,UAAU,8BACVs0C,GACG,gBAAC,KAAD,CACIx0C,GAAG,gBACHsK,SAAS,WACT0B,WAAYwoC,EACZ1oC,OAAQ,CAAE/J,MAAO,KAAMI,KAAM,QAC7BoS,YAAa5L,EAAE,8BACf6tB,KAAK,MACLrO,OAlDS,SAAAplB,GAC7BuQ,EAAQ86B,yBAAyBrrC,EAAEhB,QAkDfA,MAAOuR,EAAQ66B,uBAEf,gBAAC,KAAD,CAAQ7wB,SAAU,CAAC+d,aCxGzC8X,I,OAAyB1xC,mBAEzBqzC,GAAiC,SAAC,GAAkB,IAAhBnzC,EAAe,EAAfA,SAEtC,EAAwBF,WAAe,MAAvC,mBAAOgB,EAAP,KAAagH,EAAb,KACA,EAA4ChI,WAAe,IAA3D,mBAAOssC,EAAP,KAAuBC,EAAvB,KACA,EAA0DvsC,WAAe,IAAzE,mBAAO0sC,EAAP,KAA8BC,EAA9B,KACA,EAAgD3sC,WAAe,MAA/D,mBAAOmyC,EAAP,KAAyBC,EAAzB,KAEA,OACI,gBAAC,GAAuB/xC,SAAxB,CACIC,MAAO,CAAEU,OAAMgH,UAASskC,iBAAgBI,wBAAuBC,2BAA0BJ,oBAAmB4F,mBAAkBC,wBAC7HlyC,ICNAozC,GAAmB,SAACr1C,GAC7B,IAAI20C,EACJ,EAAsB5yC,aAAiBD,GAAhCI,EAAP,oBACM0R,EAAU7R,aAAiB/B,EAAMmI,KAAO8lC,GAAsBwF,IACpE,EAA4B1xC,WAAe,MAA3C,mBAAO6yC,EAAP,KAAeC,EAAf,KACQ5rC,EAAMC,cAAND,EAERlH,aAAgB,WACZ,IAAIioC,EAAU,GACVhqC,EAAMmI,OACNyL,EAAQ06B,kBAAkB,IAC1BtE,EAAU,mCAEdyK,GAA4BvyC,EAAYjB,YAAa+oC,GAASzgC,MAAK,SAAAvD,GAC3DA,EAASC,IACTD,EAASwD,OAAOD,MAAK,SAAAE,GACjBorC,EAAUprC,WAIvB,IAEH1H,aAAgB,WACZ,GAAI6R,EAAQ+6B,qBAAuBiG,EAAQ,CACvC,IAAMI,EAAiBJ,EAAO9xC,QAAO,SAAAC,GAAI,QAAM6Q,EAAQ+6B,oBAAoBsG,QAAUlyC,EAAKkyC,SAAWrhC,EAAQ+6B,oBAAoBsG,WAC3HrhC,EAAQ+6B,oBAAoBuG,YAAcnyC,EAAKmyC,aAAethC,EAAQ+6B,oBAAoBuG,eAChGP,EAAkBroC,WAAa0oC,KAGpC,CAACphC,EAAQ+6B,sBAUZ,OACI,uBAAKnuC,UAAU,8BACVo0C,GACG,gBAAC,KAAD,CACIt0C,GAAG,SACHD,IAAK,SAAAshC,GAAW,OAAIgT,EAAoBhT,GACxC/2B,SAAS,WACT0B,WAAYsoC,EACZxoC,OAAQ,CAAE/J,MAAO,KAAMI,KAAM,QAC7BoS,YAAa5L,EAAE,8BACf6tB,KAAK,MACLrO,OAfU,SAAAplB,GACtBuQ,EAAQ86B,yBAAyBrrC,EAAEhB,QAevBA,MAAOuR,EAAQy6B,gBAEf,gBAAC,KAAD,CAAQzwB,SAAU,CAAC+d,WCzC1B2Z,GAAW,SAACt1C,GACrB,IAAIoe,EACA2D,EAEAwzB,EACAC,EAEIvsC,EAAMC,cAAND,EACFwsC,EAAgB,CAClBC,QAAS,GACTC,cAAc,EACdC,YAAa,GACbC,WAAY71C,EAAM81C,QAClB5E,OAAQ,IAGZ,EAAsBnvC,aAAiBD,GAAhCI,EAAP,oBACA,EAAwIH,aAAiBksC,IAAjJE,EAAR,EAAQA,aAAcE,EAAtB,EAAsBA,eAA8BG,GAApD,EAAsCD,aAAtC,EAAoDC,iBAAiBM,EAArE,EAAqEA,mBAAoBL,EAAzF,EAAyFA,sBAAuBE,EAAhH,EAAgHA,oBAChH,EAAsC5sC,WAAe,IAArD,mBAAOg0C,EAAP,KAAoBC,EAApB,KACA,EAAsCj0C,WAAe,IAArD,mBAAOk0C,EAAP,KAAoBC,EAApB,KACA,EAAkCn0C,WAAe,IAAjD,mBAAOo0C,EAAP,KAAkBC,EAAlB,KACA,EAAkCr0C,WAAe,IAAjD,mBAAOs0C,EAAP,KAAkBC,EAAlB,KACA,EAA8Bv0C,WAAe0zC,GAA7C,mBAAOphC,EAAP,KAAgBkiC,EAAhB,KACA,EAAoCx0C,YAAe,GAAnD,mBAAO8gB,EAAP,KAAmBC,EAAnB,KACA,EAA4C/gB,WAAe,IAA3D,mBAAOw+B,EAAP,KAAuBC,EAAvB,KACA,EAA8Cz+B,YAAe,GAA7D,mBAAOy0C,GAAP,KAAwBC,GAAxB,KAEMlmB,GAAY,CACdtE,KAAM,WACNzP,MAAO,UACPmQ,aAAa,EACbK,eAAgB,GAChBwD,QAAS,GACTrE,WAAY,GACZI,aAAc,GACdG,QAAS,GACTG,QAAS,kBAAM6pB,MACf5pB,aAAc0pB,GACdzpB,UAAW,GACXG,UAAW,GACXd,UAAW,kBAAM0iB,GAAmB,KA6BxCsC,KAASC,YAAYC,MAAQ,SAAUC,EAAWC,EAAaC,EAAYC,GACvE,OAAIC,MAAMC,QAAQL,GACTC,EAGEzwC,KAAKiJ,UAAUunC,GAAWrT,SAASsT,IAF9BD,EAAU3yC,QAIlB8yC,IACAH,EAAYH,KAASS,iBAAiBN,GACtCC,EAAcJ,KAASS,iBAAiBL,IAExCC,EACOL,KAASnhC,YAAYshC,KAAeH,KAASnhC,YAAYuhC,GAE7DD,IAAcC,IAI7BJ,KAASC,YAAYS,SAAW,SAAUP,EAAWC,EAAaC,EAAYC,GAC1E,OAAIC,MAAMC,QAAQL,GACTC,EAEIzwC,KAAKiJ,UAAUunC,GAAWrT,SAASsT,GACjCD,EAAU3yC,OAAS,GAEtB2yC,EAAU3yC,SAAWmC,KAAKiJ,UAAUunC,GAAWrT,SAASsT,GAJrDD,EAAU3yC,QAOjB8yC,IACAH,EAAYH,KAASS,iBAAiBN,GACtCC,EAAcJ,KAASS,iBAAiBL,KAEpCJ,KAASC,YAAYC,MAAMC,EAAWC,EAAaC,KA+BnE1vC,aAAgB,WACZ,IAAM46B,EAAgB,CAClBrc,MAAO,CACH,YAAe,CACXC,SAAU,EAAC,EAAMtX,EAAE,0BAG3BuX,gBAAiB,SAACC,EAAcC,GAC5BD,EAAaE,cAAcA,cAAcpF,YAAYmF,KAG7DtC,EAAa,IAAIwC,KAAc,gBAAiB+b,MAGpD56B,aAAgB,WACZwL,GAAarL,EAAYjB,aAAasI,MAAK,SAAAvD,GACnCA,EAASC,IACTD,EAASwD,OAAOD,MAAK,SAAA/G,GACjB,IAAIm0C,EAAQ,GACRC,EAAQ,GACZp0C,EAAMS,KAAI,SAAAF,GACN4zC,EAAM/xC,KAAK,CAAEtE,GAAIyC,EAAKzC,GAAI0U,KAAMjS,EAAK0P,SACrCmkC,EAAMhyC,KAAK,CAAEtE,GAAIyC,EAAKzC,GAAI0U,KAAMjS,EAAK2P,YAEzCsjC,EAAeW,GACfT,EAAeU,SAI3B/oC,GAAY3L,EAAYjB,aAAasI,MAAK,SAAAvD,GAClCA,EAASC,IACTD,EAASwD,OAAOD,MAAK,SAAA/G,GACjB,IAAIm0C,EAAQ,GACRC,EAAQ,GACZp0C,EAAMS,KAAI,SAAAF,GACN4zC,EAAM/xC,KAAK,CAAEtE,GAAIyC,EAAKzC,GAAI0U,KAAMjS,EAAK0P,SACrCmkC,EAAMhyC,KAAK,CAAEtE,GAAIyC,EAAKzC,GAAI0U,KAAMjS,EAAK2P,YAEzC0jC,EAAaO,GACbL,EAAaM,SAGzBrB,EAAWlzC,MAAQ8rC,EAAaL,YAAYl4B,OAC5C2gC,GAAW,SAAAliC,GAAO,kCAAUA,GAAV,IAAmBqhC,QAASvH,EAAaL,YAAYl4B,cAExE,IAEH7T,aAAgB,WACZwzC,EAAW1gC,YAAc5L,EAAE,wCAC3BusC,EAAY3gC,YAAc5L,EAAE,0CAC7B,CAACrG,IAAKC,WAETd,aAAgB,WACR8gB,IACIwrB,EAAezvC,OAEfw1C,GAAuBlyC,EAAYjB,aAAasI,MAAK,SAAAvD,GAC7CA,EAASC,IACTD,EAASwD,OAAOD,KAAKi3B,MAI7BA,EAAkB,OAE3B,CAAC3d,IAcJ9gB,aAAgB,WACRggB,GACAA,EAAarN,YAClB,CAAC9R,IAAKC,WAETd,aAAgB,WACZ00C,IAAoBpiC,EAAQshC,eAAiBthC,EAAQuhC,cAAgBvH,EAAezvC,SAAW6vC,EAAsB7vC,UACtH,CAACyV,EAASg6B,EAAgBI,IAE7B,IAUMlI,GAAqB,SAAAljC,GACnBA,EAAEsa,SACF6wB,GAAgB,SAAAD,GAAY,kCAAUA,GAAV,mBAAyBlrC,EAAEsa,QAAQrd,GAAK+C,EAAEhB,YA0B9EN,aAAgB,WACZ6H,QAAQ1C,IAAIynC,KACb,CAACA,IAEJ,IAAM+H,GAAc,WAChB,GAAIt4B,EAAW8B,WAAY,CACvB,IAAM00B,EAAS,GACfvG,EAAeprC,KAAI,SAAA3C,GACfs0C,EAAOhwC,KAAK,CAAEtE,UAGlBmuC,EAAsBxrC,KAAI,SAAA3C,GACtBs0C,EAAOhwC,KAAK,CAAEtE,KAAIu2C,YAAY,OAGlCxiC,EAAQ68B,OAAS0D,Ef7DtB,SAAP,uCe8DYkC,CAAsB50C,EAAYjB,YAAaoT,EAASrU,EAAM+2C,QAAQxtC,KAAKulC,GAAmB,MAItG,OACI,gCACiC,OAA5B5sC,EAAYjB,YAAuB,gBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WACzD,gCACI,uBAAK7J,UAAU,eACf,gBAACwM,EAAA,EAAD,CAAWxM,UAAU,gBACjB,uBAAKA,UAAU,mBACX,gBAACmhB,GAAA,EAAD,KACI,uBAAKnhB,UAAU,UACX,uBAAKA,UAAU,SACX,0BAAKyI,EAAE,oCAKvB,gBAAC0Y,GAAA,EAAD,KACI,uBAAKnhB,UAAU,mBACX,uBAAKF,GAAG,eACJ,wBAAMA,GAAG,eAAeguB,SAAU,SAACjrB,GAAD,OAAOA,EAAEm3B,mBACvC,uBAAKh6B,UAAU,YACX,6BAAQyI,EAAE,4BAAV,KACA,gBAAC,KAAD,CACI3I,GAAG,UACHD,IAAK,SAAA22C,GAAO,OAAIzB,EAAayB,GAC7B5wC,KAAK,cACLglB,eAAgB,CAAEhD,UAAW,KAC7Bxd,SAAS,SACTiK,YAAa5L,EAAE,wCACfwf,OAtFxB,SAAAplB,GACZA,EAAEkB,OACFgyC,GAAW,SAAAliC,GAAO,kCAAUA,GAAV,mBAAoBhR,EAAEkB,MAAM9F,OAAO6B,GAAK+C,EAAEhB,eAuFhC,gBAAC,KAAD,CACI/B,GAAG,eACHioB,MAAOtf,EAAE,4BACTwf,OAvFjB,SAAAplB,GACfA,EAAEkB,OACFgyC,GAAW,SAAAliC,GAAO,kCAAUA,GAAV,mBAAoBhR,EAAEkB,MAAM9F,OAAO6B,GAAK+C,EAAEmlB,gBAuFhC,uBAAKhoB,UAAU,cACX,uBAAKA,UAAU,gBACX,6BAAQyI,EAAE,wBACV,gBAAC,KAAD,CACI3I,GAAG,SACH8L,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,MAC/BwS,YAAa5L,EAAE,mCACfqgB,iBAAiB,EACjBD,gBAAgB,EAChB/c,WAA8B,OAAlB1J,IAAKC,SAAoBkzC,EAAcE,EACnDxtB,OAAQ8d,MAGhB,uBAAK/lC,UAAU,gBACX,yCACA,gBAAC,KAAD,CACIF,GAAG,aACH8L,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,MAC/BwS,YAAa5L,EAAE,oCACfqgB,iBAAiB,EACjBhd,WAA8B,OAAlB1J,IAAKC,SAAoBszC,EAAYE,EACjD5tB,OAAQ8d,OAKpB,uBAAK/lC,UAAU,aACX,uBAAKA,UAAU,WACX,2BACI,wBAAMA,UAAU,oBAChB,0BAAKyI,EAAE,+BAEX,0BAAQ0B,QAAS,kBAAMmY,GAAc,KAAO,4BAAO7Z,EAAE,8BAEzD,2BACA,gBAAC,GAAD,CAAWd,KAAK,WAEpB,uBAAK3H,UAAU,aACX,uBAAKA,UAAU,WACX,2BACI,wBAAMA,UAAU,mBAChB,0BAAKyI,EAAE,+BAGf,2BACA,uBAAKzI,UAAU,aACX,6BAAQyI,EAAE,6BACV,gBAAC,KAAD,CACI3I,GAAG,OACH8qB,eAAgB,CAAEhD,UAAW,KAC7B/nB,IAAK,SAAA22C,GAAO,OAAIxB,EAAcwB,GAC9BniC,YAAa5L,EAAE,wCACfwf,OA9HzB,SAACplB,GACpB,GAAIA,EAAEkB,MACF,GAAIlB,EAAEhB,MAAO,CACT,IAAM8d,EAAS9c,EAAEhB,MAAM2e,MAAM,KACzBC,EAAa,GACjBd,EAAOld,KAAI,SAAA2L,GACP,IAAMsS,EAAOtS,EAAMoB,QAXnC,SAAuBpB,GAEnB,MADW,4JACDxJ,KAAKwJ,IAUCuS,CAAcD,IACdD,EAAWrc,KAAKsc,MAEpBD,EAAWriB,QACX23C,GAAW,SAAAliC,GAAO,kCAAUA,GAAV,IAAmBuhC,YAAa30B,EAAW+C,KAAK,eAGtEuyB,GAAW,SAAAliC,GAAO,kCAAUA,GAAV,IAAmBuhC,YAAa,gBAuHtC,uBAAKp1C,UAAU,mBACX,gBAAC,GAAD,CAASwrB,SAAUuE,QAI/B,gBAAC,KAAD,CACIjwB,GAAG,YACHoe,SAAS,EACTxe,MAAM,QACNic,QAAS0G,EACT/W,OAAQlJ,IAAKC,SACbie,eAAe,EACfqD,YAAa,kBAAMrB,GAAc,KAEjC,wBAAMtiB,UAAU,UAAhB,WACA,gBAAC,KAAD,CACIF,GAAG,WACHD,IAAK,SAAA05B,GAAI,OAAIhY,EAAegY,GAC5BztB,WAAYi0B,EACZxJ,eAAgB,CAAE5uB,KAAM,YACxBkhB,gBAAgB,EAChB2N,aAAa,EACbC,cAAc,EACdC,kBAAkB,EAClByb,eAAe,EACf5T,aAAc,CAAEC,SAAU,GAC1B4T,YA/UA,SAACj/B,GACI,qBAArBA,EAAKm9B,aAA0D,WAApBn9B,EAAKo9B,aAChDp9B,EAAKq9B,YAAY3wB,QAAQ/T,WAtBf,WACd,IAAI9H,EAAO,GAEPysC,EAAS,GAcb,OAbelvB,EAAazV,WAAWrJ,KAAI,SAAAZ,GAAK,OAAIA,EAAM6uC,UAEnDzsC,SAAQ,SAACuwB,GACZA,EAAIvwB,SAAQ,SAAC1B,GACHA,EAAKiS,QAAQi8B,IACfzsC,EAAKI,KAAK,CAAEssC,OAAQnuC,EAAKiS,OACzBi8B,EAAOluC,EAAKiS,OAAQ,MAGvBggB,EAAIp2B,QACL4F,EAAKI,KAAK,CAAE,IAAI,OAGjBJ,EAKmC2sC,KA8UtB0B,cAtSA,SAACl/B,GACrB,GAAuB,WAAnBA,EAAKq+B,OAAO1xC,GAAiB,CAC7B,IAAI+T,EAAU,GAad,OAXAV,EAAKnP,KAAL,OAAoBvB,KAAI,SAACF,EAAMrE,GAC3B2V,GAAWtR,EAAKiS,KACZtW,IAAMiV,EAAKnP,KAAL,OAAoB5F,OAAS,IACnCyV,GAAW,SAGfA,GACU,IAAI49B,KAAQ,CAClB59B,QAASA,GACVV,EAAKu+B,MAELv+B,EAAKu+B,OAwRIpmC,OAAQlJ,IAAKC,UACb,gBAAC,KAAD,KACI,gBAAC,KAAD,CACIyZ,MAAM,aACNpK,WAAYjJ,EAAE,iBACd/I,MAAM,QAEV,gBAAC,KAAD,CACIoc,MAAM,QACNpK,WAAYjJ,EAAE,kBACdqL,SApNV,SAACjR,GAEnB,OADAuG,QAAQ1C,IAAI7D,GAER,uBAAK7C,UAAU,cACV6C,EAAEuL,MAAMhQ,OAAS,GAAKyE,EAAEuL,MAAM3L,KAAI,SAAA2L,GAAK,OACpC,wBAAMpO,UAAU,iBAAhB,IAAkCoO,EAAMA,MAAxC,UAiNgB1O,MAAM,QAEV,gBAAC,KAAD,CACII,GAAG,SACHgc,MAAM,SACNhI,SArSV,SAACjR,GACnB,OACIA,EAAE6tC,OAAOjuC,KAAI,SAAAF,GAAI,OACb,wBAAMvC,UAAU,aAAauC,EAAKiS,UAmSd9C,WAAYjJ,EAAE,sBACd/I,MAAM,SAGd,gBAAC,KAAD,CAAQ0d,SAAU,CAACwZ,KAAQC,KAAMC,KAAaC,KAAQC,a,sECzbrEyf,GAAgBlxC,0BAGhBmxC,GAAkB,mjDAgBlBC,GAAkB,o8CAkBlBC,GAAgB,8HACY,IAAItvC,MAAOuvC,cADvB,6EAIhBC,GAAgB,8HACY,IAAIxvC,MAAOuvC,cADvB,oECoGtB,SAASE,GAAkBpvC,EAAMuF,GACpC,IAAI7K,EAAW6K,EAAgB,IAATA,EAAa,KAAO,KAAO9K,IAAKC,SACtD,OAAQsF,GACJ,KAAK,EACD,MAAO,CACHiM,OAAQojC,GAAervC,EAAMtF,GAC7BgF,KAAM,IAAIC,KACV/H,MAAoB,OAAb8C,EAAoB,0BAAyB,mBACpD40C,SAAU,GACVpjC,QAAsB,OAAbxR,EAAoB,+CAA8C,sCAC3E60C,OAAQ,GACRC,OAAQ,IAEhB,KAAK,EACD,MAAO,CACHvjC,OAAQojC,GAAervC,EAAMtF,GAC7BgF,KAAM,IAAIC,KACV/H,MAAoB,OAAb8C,EAAoB,uBAAsB,qBACjD40C,SAAU,GACVpjC,QAAsB,OAAbxR,EAAoB,4CAA2C,wCACxE60C,OAAQ,GACRC,OAAQ,IAEhB,KAAK,EACD,MAAO,CACHvjC,OAAQojC,GAAervC,EAAMtF,GAC7BgF,KAAM,IAAIC,KACV/H,MAAoB,OAAb8C,EAAoB,iCAAgC,0BAC3D40C,SAAU,GACVpjC,QAAsB,OAAbxR,EAAoB,sDAAqD,6CAClF60C,OAAQ,GACRC,OAAQ,IAEhB,KAAK,EACD,MAAO,CACHvjC,OAAQojC,GAAervC,EAAMtF,GAC7BgF,KAAM,IAAIC,KACV/H,MAAoB,OAAb8C,EAAoB,sBAAqB,eAChD40C,SAAU,GACVpjC,QAAsB,OAAbxR,EAAoB,6CAA4C,kCACzE60C,OAAQ,GACRC,OAAQ,IAEhB,KAAK,EACD,MAAO,CACHvjC,OAAQojC,GAAervC,EAAMtF,GAC7BgF,KAAM,IAAIC,KACV/H,MAAoB,OAAb8C,EAAoB,mCAAkC,0BAC7D40C,SAAU,GACVpjC,QAAsB,OAAbxR,EAAoB,wDAAuD,6CACpF60C,OAAQ,GACRC,OAAQ,IAEhB,KAAK,EACD,MAAO,CACHvjC,OAAQojC,GAAervC,EAAMtF,GAC7BgF,KAAM,IAAIC,KACV/H,MAAoB,OAAb8C,EAAoB,iCAAgC,6BAC3D40C,SAAU,GACVpjC,QAAsB,OAAbxR,EAAoB,sDAAqD,gDAClF60C,OAAQ,GACRC,OAAQ,KA4DjB,SAASC,GAAqBt3C,EAAIoN,GACrC,IAAI7K,EAOJ,OALIA,EADS,OAAT6K,GAA0B,OAATA,EACNA,EAEAA,EAAgB,MAATA,EAAe,KAAO,KAAO9K,IAAKC,SAGhDvC,GACJ,KAAK,EACD,MAAO,aACX,KAAK,EACD,MAAoB,OAAbuC,EACD,2BACA,2BACV,KAAK,EACD,MAAoB,OAAbA,EACD,qCACA,qCACV,KAAK,EACD,MAAoB,OAAbA,EACD,yBACA,yBACV,KAAK,EACD,MAAoB,OAAbA,EACD,8BACA,8BACV,KAAK,EACD,MAAoB,OAAbA,EACD,4BACA,6BAIX,SAAS20C,GAAel3C,EAAIoN,GAC/B,IAAI7K,EAOJ,OALIA,EADS,OAAT6K,GAA0B,OAATA,EACNA,EAEAA,EAAgB,MAATA,EAAe,KAAO,KAAO9K,IAAKC,SAGhDvC,GACJ,KAAK,EACD,MAAM,aAAN,OAAoByF,0BAApB,uFACJ,KAAK,EACD,MAAO,oBACYA,0BADC,OAAblD,EAAA,yMAGX,KAAK,EACD,MAAO,oBACYkD,0BADC,OAAblD,EAAA,6NAGX,KAAK,EACD,MAAO,oBACYkD,0BADC,OAAblD,EAAA,qMAGX,KAAK,EACD,MAAO,oBACYkD,0BADC,OAAblD,EAAA,+MAGX,KAAK,EACD,MAAO,oBACYkD,0BADC,OAAblD,EAAA,4MC3PZ,SAASg1C,GAAiBpoB,EAAM7X,GAEnC,KAAO6X,GAAM,CACX,GAAIA,IAAS7X,EACX,OAAO,EAET6X,EAAOA,EAAKhU,WAEd,OAAO,EAGJ,SAASq8B,GAASC,GACrB,OAAOA,GACH,KAAK,EAAG,MAAO,KACf,KAAK,EAAG,MAAO,KACf,QAAS,QAIV,SAASC,GAAiBnwC,GAE7B,OAAO,IAAIC,KACTD,EAAKowC,iBACLpwC,EAAKqwC,cACLrwC,EAAKswC,aACLtwC,EAAKuwC,cACLvwC,EAAKwwC,gBACLxwC,EAAKywC,iBAIJ,SAASC,GAAyBC,EAAIC,GACzC,GAAIA,GACF,GAAIA,EAAIC,WAAa,EAAG,CACtB,IAAK,IAAIh6C,EAAI,EAAGA,EAAI+5C,EAAIC,aAAch6C,EACpC,IACGm5C,GACCY,EAAIE,WAAWj6C,GAAGk6C,wBAClBJ,GAGF,OAAO,EAGX,OAAO,QAEJ,IAAKC,EAAMrnC,SAASynC,YAA0B,YAAZJ,EAAItwC,KAC3C,OAAO0vC,GAAiBY,EAAIK,cAAcn4B,gBAAiB63B,GAE7D,OAAO,EAaJ,SAASO,GAAoBC,GAEhC,IAAMC,EAAkBD,EAAah4B,MAAM,KACrCk4B,EAAWD,EAAgBA,EAAgBr6C,OAAS,GACpDkc,EAAWm+B,EAAgBA,EAAgBr6C,OAAS,GAC1D,MAAM,GAAN,OAAUs6C,EAAV,YAAsBp+B,GC5HnB,SAASq+B,GAAsBC,EAAUt+B,EAAUu+B,EAAUlxC,EAAMmxC,GAExE,IAAMC,EDrBD,SAA0Bh8B,GAE7B,IAAKA,EAAU,MAAO,GACtB,IAAMi8B,EAAUj8B,EAASvN,OAAOgR,MAAM,KACtC,OAAIw4B,EAAQ56C,OAAS,EAOlB,SAA8B66C,EAAWjvC,GAE5C,IAAMkvC,EAAYlvC,EAAI0zB,SAAS,2BAC3B1zB,EAAI/D,QAAQ,0BAAZ,UAA0CV,4BAC1CyE,EAAI/D,QAAQ,uCAAZ,UAAuDV,4BAE3D,OAAQ0zC,GACN,IAAK,MACH,MAAM,GAAN,OAAU1zC,0BAAV,8BACF,IAAK,MACL,IAAK,OACL,IAAK,OACL,IAAK,OACH,MAAM,GAAN,OAAUA,0BAAV,8BACF,IAAK,MACL,IAAK,MACL,IAAK,OACL,IAAK,OACL,IAAK,OACH,MAAM,GAAN,OAAUA,0BAAV,8BACF,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,OACL,IAAK,OACL,IAAK,OACH,MAAM,GAAN,OAAUA,0BAAV,gCACF,IAAK,MACH,MAAM,GAAN,OAAUA,0BAAV,+BACF,IAAK,MACL,IAAK,MACL,IAAK,OACL,IAAK,MACL,IAAK,MACL,IAAK,OACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,OACL,IAAK,OACL,IAAK,MACH,OAAO2zC,EACT,IAAK,MACH,MAAM,GAAN,OAAU3zC,0BAAV,kCACF,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACH,MAAM,GAAN,OAAUA,0BAAV,gCACF,IAAK,MACL,IAAK,MACL,IAAK,KACH,MAAM,GAAN,OAAUA,0BAAV,oCACF,IAAK,MACH,MAAM,GAAN,OAAUA,0BAAV,8BACF,IAAK,MACL,IAAK,MACL,IAAK,MACH,MAAM,GAAN,OAAUA,0BAAV,gCACF,QACE,MAAM,GAAN,OAAUA,0BAAV,wCAlEK4zC,CADGH,EAAQI,OAAO,GAAG,GAAG54B,MAAM,KACL,GAAG/Q,cAAesN,GAExC,GCaCs8B,CAAiBR,GAEhC,OAAOlxC,GACL,IAAK,MACH,MAAM,+UAAN,OAU4CkxC,EAV5C,mMAgBsBD,EAhBtB,yFAkBwBC,EAlBxB,gVA+BgBA,EA/BhB,oQAwCUv+B,GAAY,GAxCtB,8IA6CUw+B,EAAc,OAASA,EAAc,GA7C/C,yEAkDF,IAAK,aACH,MAAM,icAAN,OAa4CD,EAb5C,mMAmBsBE,EAnBtB,yFAqBwBA,EArBxB,gqBA2Ccz+B,GAAY,GA3C1B,2DA+CF,QACE,MAAM,aAAN,OAAoBs+B,EAApB,yFAKC,SAASU,GAAT,EAAyGpsC,EAAMxI,GAAO,EAA7F5E,GAA6F,EAAzF40C,WAA0F,IAA9E6E,EAA6E,EAA7EA,SAAUC,EAAmE,EAAnEA,SAAUC,EAAyD,EAAzDA,MAAOC,EAAkD,EAAlDA,MAAOC,EAA2C,EAA3CA,cAAeC,EAA4B,EAA5BA,aAEzFr6C,EAAiB,OAAT2N,EAAgBqsC,EAAWC,EACnCK,EAAwB,SAACC,GAAD,MAAiB,OAAT5sC,EAAgB4sC,EAAG9vC,IAAM8vC,EAAGJ,OAElE,OAAOn6C,EAAK,2QAYNA,EAZM,yBAaNo6C,EAAcr3C,QAAO,SAAApE,GAAC,OAAIA,EAAEsW,MAAQtW,EAAEwU,UAAYxU,EAAEkQ,OAASlQ,EAAE67C,WAC5Dt3C,KAAI,SAACu3C,GAAD,oCACKA,EAAYxlC,MAAQwlC,EAAYxlC,KADrC,sCAEKwlC,EAAYtnC,WAAasnC,EAAYxlC,MAAQ,WAAawlC,EAAYtnC,SAF3E,sCAGKsnC,EAAYD,UAAaC,EAAYtnC,SAAY,UAAesnC,EAAYxlC,MAAQ,WAAcwlC,EAAYD,QAHnH,iCAIAC,EAAYxlC,MAAQwlC,EAAYtnC,UAAYsnC,EAAYD,UAAYC,EAAY5rC,OAAjF,SAJC,yCAKe4rC,EAAY5rC,MAL3B,6CAMC4rC,EAAY5rC,OAAS4rC,EAAY5rC,MANlC,yBASJoV,KAAK,SAvBF,4BAyBY,OAATtW,EAAgBusC,EAAQC,EAzB3B,yEA0BuC,OAATxsC,EAAgBusC,EAAQC,EA1BtD,6EA+BRE,EAAat3C,OAAOu3C,GACnBp3C,KAAI,SAAAw3C,GAAE,kOAQDA,EAAGn6C,GAAH,oBACayF,0BADb,+BACuE00C,EAAGn6C,GAD1E,6JAMKm6C,EAAGC,UAAH,qDAEMD,EAAGC,SAFT,4IAdJ,kQA+BOL,EAAsBI,GA/B7B,oFAkCGJ,EAAsBI,GAlCzB,6DAsCLz2B,KAAK,SAtEC,YAwEJ,GAoDH,SAAS22B,GAAsBC,EAAUC,GAC9C,MAAM,iaAAN,OAYiBD,EAZjB,iXAoBqFC,EApBrF,qXAuB0B90C,0BAvB1B,ysCAsCmJ60C,EAtCnJ,mJAuCkGC,EAvClG,qkBChQK,SAAeC,GAAtB,mC,8CAAO,WAAiC51C,GAAjC,SAAAI,EAAA,4DACY,oCADZ,kBAEIT,EADQ,oCACW,MAAO,GAAI,KAAMK,GAAO,IAF/C,4C,sBAKA,SAAe61C,GAAtB,qC,8CAAO,WAAwC71C,EAAO0lC,GAA/C,eAAAtlC,EAAA,6DACGmD,EAAUmiC,EAAU,sBAAkBA,GAAe,GADxD,kBAEI/lC,EAAW,6CAA8C,MAAO4D,EAAS,KAAMvD,GAAO,IAF1F,4C,sBAKA,SAAe81C,GAAtB,uC,8CAAO,WAAoC94C,EAAa0oC,EAAYl9B,GAA7D,iBAAApI,EAAA,sEAEiBy1C,GAAyB74C,EAAYjB,YAAa2pC,GAFnE,YAEA5kC,EAFA,UAGSA,EAASC,IAA0B,MAApBD,EAASE,OAHjC,iCAKgBF,EAASwD,OALzB,cAKCyxC,EALD,yBAOE,CACNA,SACAC,cAAepB,GAAemB,EAAQvtC,EAAMxL,EAAY4S,oBATpD,iCAYE,CAACmmC,OAAQ,KAAMC,cAAe,KAZhC,6C,sBAgBA,SAAeC,GAAtB,qC,8CAAO,WAAgCj2C,EAAO5E,GAAvC,eAAAgF,EAAA,6DACGmD,EAAUnI,EAAE,uBAAmBA,GAAO,GADzC,kBAEIuE,EAAW,mCAAoC,MAAO4D,EAAS,KAAMvD,GAAO,IAFhF,4C,sBAKA,SAAek2C,GAAtB,qC,8CAAO,WAAwCl2C,EAAOD,GAA/C,iBAAAK,EAAA,6DACGqJ,EAAM5N,KAAKiJ,UAAU/E,GACrBH,EAAcG,EAAK3E,GAAK,qCAAuC,kCAFlE,kBAGIuE,EAAWC,EAAa,OAAQ,GAAI6J,EAAKzJ,GAAO,IAHpD,4C,oEAkBA,WAA+BA,EAAO5E,GAAtC,eAAAgF,EAAA,6DACGmD,EADH,uBAC6BnI,GAD7B,kBAEIuE,EAAW,qCAAsC,OAAQ4D,EAAS,KAAMvD,GAAO,IAFnF,4C,sBTiBA,IU3DH4mB,GCAAA,GX2DSuvB,GAAY,SAACr7C,GAWpBA,EAPFqU,QAJiC,IAAD,MAKhC0iC,EAME/2C,EANF+2C,OACAzc,EAKEt6B,EALFs6B,aACAghB,EAIEt7C,EAJFs7C,WACAC,EAGEv7C,EAHFu7C,YACAC,EAEEx7C,EAFFw7C,WACAC,EACEz7C,EADFy7C,aAGMxyC,EAAMC,cAAND,EAER,EAAsElH,aAAiBD,GAAhFI,EAAP,oBACA,EAAsEH,aAAiBksC,IAA/EE,EAAR,EAAQA,aAAcC,EAAtB,EAAsBA,gBAAiBY,EAAvC,EAAuCA,cAEvC,GAFA,EAAsDD,WAEVhtC,YAAe,IAA3D,mBAAO6D,EAAP,KAAiBsL,EAAjB,KACA,EAA4CnP,YAAe,GAA3D,mBAAsB25C,GAAtB,WACA,EAA4C35C,YAAe,GAA3D,mBAAOghB,EAAP,KAAgB3J,EAAhB,KACA,EAA4CrX,WAAe,IAA3D,mBAAoB45C,GAApB,WACA,EAA4C55C,WAAe,IAA3D,mBAAO65C,EAAP,KAAoBC,EAApB,KAKA,EAAsD95C,aAAtD,mBAAO+5C,EAAP,KAAiBC,EAAjB,KACA,EAAsDh6C,YAAe,GAArE,mBAAOi6C,EAAP,KACA,GADA,KACsDj6C,WAAe,IAArE,oBAAOk6C,GAAP,MACA,IADA,MACsDl6C,WAAe,KAArE,qBAAOm6C,GAAP,MAAmBC,GAAnB,MACA,GAAsDp6C,WAAe,IAArE,qBAAOkb,GAAP,MAAiBm/B,GAAjB,MAIA,GAA8Dr6C,YAAe,GAA7E,qBAAOs6C,GAAP,MAAgBC,GAAhB,MACA,GAA8Dv6C,YAAe,GAA7E,qBAAOouB,GAAP,MAAkB1R,GAAlB,MACA,GAA8D1c,YAAe,GAA7E,qBAAO06B,GAAP,MAAyB+F,GAAzB,MACA,GAA8DzgC,WAAe,GAA7E,qBAAOw6C,GAAP,MAAoBC,GAApB,MACA,GAA8Dz6C,WAAe,GAA7E,qBAAOuQ,GAAP,MAAemqC,GAAf,MACA,GAA8D16C,WAAe,GAA7E,qBAAOyQ,GAAP,MAAmBkqC,GAAnB,MACA,GAA8D36C,WAAe,GAA7E,qBAAOc,GAAP,MAAiB85C,GAAjB,MACA,GAA8D56C,WAAe,IAA7E,qBAAOhC,GAAP,MAAc68C,GAAd,MACA,GAA8D76C,WAAe,IAA7E,qBAAO86C,GAAP,MAAiBC,GAAjB,MACA,GAA8D/6C,WAAe,IAA7E,qBAAOg7C,GAAP,MAAiBC,GAAjB,MACA,GAA8Dj7C,WAAe,IAA7E,qBAAOk7C,GAAP,MAAgBC,GAAhB,MACA,GAA8Dn7C,WAAe,IAA7E,qBAAOo7C,GAAP,MAAkBC,GAAlB,MACA,GAA8Dr7C,WAAe,IAA7E,qBAAOs7C,GAAP,MAA6BC,GAA7B,MACA,GAA8Dv7C,WAAe,IAA7E,qBAAgCw7C,IAAhC,aACA,GAA8Dx7C,WAAe,IAA7E,qBAAOy7C,GAAP,MAA6BC,GAA7B,MACA,GAA8D17C,WAAe,IAA7E,qBAAO0wB,GAAP,MAA6BC,GAA7B,MACA,GAA8D3wB,WAAe,IAA7E,qBAAOswB,GAAP,MAA0BC,GAA1B,MACA,GAA8DvwB,WAAe,IAA7E,qBAAOoxB,GAAP,MAAyBC,GAAzB,MACA,GAA8DrxB,WAAe,MAA7E,qBAAOiuC,GAAP,MAAe0N,GAAf,MACA,GAA8D37C,WAAe,MAA7E,qBAAO47C,GAAP,MAAkBC,GAAlB,MACA,GAA8D77C,WAAe,MAA7E,qBAAmB87C,IAAnB,aACA,GAA8D97C,WAAe,MAA7E,qBAAO+7C,GAAP,MAAuBC,GAAvB,MACA,GAA8Dh8C,WAAe,IAAI+F,MAAjF,qBAAOD,GAAP,MAAam2C,GAAb,MACA,GAA8Dj8C,WAAe,IAA7E,qBAAOk8C,GAAP,MAAeC,GAAf,MACA,GAA8Dn8C,WAAe,IAA7E,qBAAOo8C,GAAP,MAAsBC,GAAtB,MAEMh9B,GAAM,CACV0V,KAAM,WACNunB,eAAgB,WAChBC,cAAe,GACfC,cAAUxiC,EACVnI,aAASmI,EACTyiC,aAAc,aACdC,kBAAkB,EAClBC,kBAAkB,GAEpB,GAA2C5wB,aAAQ1M,IAA3C6M,GAAR,GAAQA,SAAUmb,GAAlB,GAAkBA,OAAQpb,GAA1B,GAA0BA,aAKtB2wB,GAA4B58C,SAAa,MACzC68C,GAA4B78C,SAAa,MACzC88C,GAA4B98C,SAAa,MACzC+8C,GAA4B/8C,SAAa,MACzCg9C,GAA4Bh9C,SAAa,MACzCi9C,GAA4Bj9C,SAAa,MACzCk9C,GAA4Bl9C,SAAa,MACzCm9C,GAA4Bn9C,SAAa,MACzCo9C,GAA4Bp9C,SAAa,MACzCq9C,GAA4Br9C,SAAwB,IAAVg1C,GAAyB,IAAVA,GAAsD,IAAtC5I,EAAa8B,cAAcrxC,QACpGygD,GAA4Bt9C,SAAa,MACzCu9C,GAA4Bv9C,SAAa,MACzCw9C,GAA4Bx9C,SAAa,MACzC0hC,GAA4B1hC,SAAa,MACzCy9C,GAA4Bz9C,SAAa,MACzCi7B,GAA4Bj7B,SAAa,MAEvC09C,GAAgB,CACpB,CACEh9C,KAAMwG,EAAE,cACR5G,MAAO,GAET,CACEI,KAAMwG,EAAE,cACR5G,MAAO,IAILqa,GAAS,CACbgjC,MAAO,CACL,CACEj9C,KAAMwG,EAAE,kBACR5G,MAAO,IACPuI,SAAU,eAEZ,CACEnI,KAAMwG,EAAE,oBACR5G,MAAO,MACPuI,SAAU,UAEZ,CACEnI,KAAMwG,EAAE,2BACR5G,MAAO,aACPuI,SAAU,WAEZ,CACEnI,KAAMwG,EAAE,mBACR5G,MAAO,KACPuI,SAAU,QAEZ,CACEnI,KAAMwG,EAAE,mBACR5G,MAAO,KACPuI,SAAU,QAEZ,CACEnI,KAAMwG,EAAE,mBACR5G,MAAO,KACPuI,SAAU,QAEZ,CACEnI,KAAMwG,EAAE,mBACR5G,MAAO,KACPuI,SAAU,QAEZ,CACEnI,KAAMwG,EAAE,mBACR5G,MAAO,KACPuI,SAAU,QAEZ,CACEnI,KAAMwG,EAAE,mBACR5G,MAAO,KACPuI,SAAU,UAKV+0C,GAAY,CAChB,CAAE7gD,IAAK,QAAS2D,KAAM,gBACtB,CAAE3D,IAAK,MAAO2D,KAAMwG,EAAE,kBACtB,CAAEnK,IAAK,MAAO2D,KAAMwG,EAAE,kBACtB,CAAEnK,IAAK,MAAO2D,KAAMwG,EAAE,kBACtB,CAAEnK,IAAK,MAAO2D,KAAMwG,EAAE,uBACtB,CAAEnK,IAAK,MAAO2D,KAAMwG,EAAE,wBACtB,CAAEnK,IAAK,MAAO2D,KAAMwG,EAAE,yBAoFlBiT,GAAkB,CACtB1Z,MAjCc,CACd,UACA,YACA,OACA,SACA,YACA,aACA,IACA,cACA,cACA,YACA,YACA,YACA,IACA,cACA,gBACA,UACA,SACA,IACA,CACEo9C,YAAa32C,EAAE,uBACfqL,SAAU,YAEZ,IACA,CACEsrC,YAAa32C,EAAE,yBACfqL,SAAU,aAEZ,IACA,cAKAurC,gBAAgB,GAOdC,GAAgB,CAClBC,QAAQ,GAAD,OAAKxE,EAAL,YAAoBW,KAGzB8D,GAAsB,KAMtBC,GAAmB,KAkBjBC,GAAsB,CAC1BC,aAAc,CAAC,QAAS,OAAQ,QAChCloC,QAAS,SACT/X,MAAO,OACPC,OAAQ,OACRigD,WAAY,OACZL,QAAQ,GAAD,OAAKxE,EAAL,YAAoBW,IAC3B1iC,KAAMyD,IAWFxe,GAAS2S,SAASC,eAAe,eAevCtP,aAAgB,WAAM,4CAiBpB,4CAAAuD,EAAA,6DAEM+6C,EAFN,+BAAA/6C,EAAA,MAEgB,WAAOg7C,GAAP,SAAAh7C,EAAA,sEAAwBg7C,EAAOp+C,EAAYjB,aACtDsI,MAAK,SAACvD,GAEL,GAAIA,EAASC,GACX,OAAOD,EAASwD,UAJR,mFAFhB,+DAUgC62C,EAAQtyC,IAVxC,cAUQi+B,EAVR,gBAWgCqU,EAAQ9yC,IAXxC,cAWQinB,EAXR,gBAYgC6rB,EAAQxyC,IAZxC,cAYQ8Z,EAZR,iBAagC04B,EAAQlxC,IAbxC,eAaQklB,EAbR,iBAcgCgsB,EAAQ5wC,IAdxC,WAcQ8wC,EAdR,OAgBE1E,EAAe0E,GACf7tB,GAAwBsZ,GACxB1Z,GAAqBkC,GACrBpB,GAAoBzL,GACpBg0B,EAAetnB,GAIVinB,EAxBP,oBAyBImB,GAAQ8D,EAAajuC,QACrBoqC,GAAY6D,EAAa/tC,YACzB0qC,GAAWqD,EAAavrC,OAEpBurC,EAAa/tC,WA7BrB,kCA8B4BuoC,GACpB74C,EAAYjB,YACZs/C,EAAa/tC,YACbjJ,MAAK,SAACvD,GAEN,GAAIA,GAAYA,EAASC,IAA0B,MAApBD,EAASE,OACtC,OAAOF,EAASwD,UApC1B,QA8BUm0C,EA9BV,OAwCMC,GAAaD,GAxCnB,gCA4CI6C,EAAkB,OAASlF,EAC3BoC,GAAUpC,GA7Cd,QAiDMmF,GACFC,KACAA,KACA,IACAA,KACA,KACAA,KAAeC,OAAO,EAAG,GACzB,IACAD,KACA,IACAA,KACAA,KACAA,MACAzwC,cAEFksC,GAAc,eAAD,OAAgBpF,EAAhB,sBAAoC0J,GAApC,OAA2CD,GAAoC,KAC5FpE,GAAY,GAAD,OAAIZ,GAAJ,OAAiBF,GAA0BmF,EAA3C,MACXrD,GAAaqD,GAETrvC,SAASC,eAAe,gBAC1BO,aAAYR,SAASC,eAAe,gBAEtCqqC,GAAiB,GACjBtiC,GAAW,GAxEb,6CAjBoB,sBAGpBwnC,IAAK/uC,KAAK,CACRuoB,GAAI,CACFymB,eAAgB,CACdC,OAAQ,eAMV/9B,IACFzR,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,iBAChDE,aAAYH,SAASC,eAAe,gBACpCG,aAAW,CAAErJ,KAAM,eAfD,mCA2FpB0J,KACC,IAGH9P,aAAgB,WAEd,GAAIosC,EAAaL,YAAa,CAC5B,IAAIA,EAAcK,EAAaL,YAC/BwO,GAAWxO,EAAY3B,WACvBwQ,GAAY7O,EAAY/3B,UACxB6mC,GAAS9O,EAAYl4B,QACrBknC,GAAYhP,EAAYiT,WACxB7D,GAAWpP,EAAYzB,SACvBmQ,GAAe1O,EAAYR,eAC3BmP,GAAQ3O,EAAYx7B,QACpB0rC,GAAQ,IAAIl2C,KAAKgmC,EAAYtpC,OAC7Bk4C,GAAY5O,EAAYt7B,YACxBwqC,GAAYlP,EAAYkT,aAExBnD,GAAc/P,EAAYjD,UAC1B6Q,GAAiB,GACjB0D,GAAajrC,QACD,IAAV4iC,GAAyB,IAAVA,GAE2B,IAAtC5I,EAAa8B,cAAcrxC,OAEnC,OAAO,WACL88C,GAAiB,MAElB,CAACvN,EAAaL,cAEjB/rC,aAAgB,YAEJ,uCAAG,gCAAAuD,EAAA,2DAEL27C,EAAQ7vC,SAASkS,cAAc,iBAF1B,iCAKcy3B,GAAyB74C,EAAYjB,YAAauR,IALhE,YAKHxM,EALG,UAOMA,EAASC,IAA0B,MAApBD,EAASE,OAP9B,iCAQcF,EAASwD,OARvB,OAQDyxC,EARC,OASPgG,EAAM17B,UAAYu0B,GAAemB,EAAQnD,GAASj1C,KAAaD,IAAKC,SAAUX,EAAY4S,kBAC1F8oC,GAAa3C,GAVN,wBAaPgG,EAAM17B,UAAY,GAClBq4B,GAAa,MAdN,4CAAH,qDAkBV/rC,KACC,CAACW,KAEJzQ,aAAgB,YAEJ,uCAAG,8BAAAuD,EAAA,0DAEG8L,SAASkS,cAAc,gBAF1B,iCAKcy3B,GAAyB74C,EAAYjB,YAAauR,IALhE,YAKHxM,EALG,UAOMA,EAASC,IAA0B,MAApBD,EAASE,OAP9B,iCAQcF,EAASwD,OARvB,OAQDyxC,EARC,OASP2C,GAAa3C,GACTp4C,IAAY28C,GAAOrrC,SACrB+sC,GAAwB1B,GAAOrrC,QAAQ9R,MAAO44C,GAXzC,wBAcP2C,GAAa,MACT/6C,IAAY28C,GAAOrrC,SACrB+sC,GAAwB1B,GAAOrrC,QAAQ9R,MAAO,MAhBzC,4CAAH,qDAqBVwP,KAEC,CAAChP,KAGJd,aAAgB,WAEdo/C,OACC,CAACt5C,GAAM9H,GAAO88C,KAEjB,IAuDIuE,GAvDED,GAA8B,WAE9B3B,GAAOrrC,UAAqB,iBAATtM,IAA2B9H,IAAS88C,KACzDqE,GAAwB1B,GAAOrrC,QAAQ9R,MAAOs7C,KAIlD57C,aAAgB,WAEViuC,IACF5B,GAAgB,SAACD,GAAD,mBAAC,eACZA,GADW,IAEdH,WAAW,2BACNG,EAAaH,YADR,IAERqT,GAAIztB,SAASoc,aAIlB,CAACA,KAEJjuC,aAAgB,WAEd,IAAImqB,EAAoBhqB,EAAYR,YACpCoqB,GAAiBI,EACdppB,QAAO,SAACpE,GAAD,OAAOA,EAAEmD,eAAiBy4B,KACjCr3B,KAAI,SAACvE,GAAD,OAAOA,EAAEkD,gBACf,CAACM,IAEJH,aAAgB,WAEVs9C,GAAYlrC,UACdkrC,GAAYlrC,QAAQU,YAAc5L,EAAE,4BAClC61C,GAAe3qC,UACjB2qC,GAAe3qC,QAAQU,YAAc5L,EACnC,+BAEA81C,GAAe5qC,UACjB4qC,GAAe5qC,QAAQU,YAAc5L,EACnC,iCAEAg2C,GAAa9qC,UACf8qC,GAAa9qC,QAAQU,YAAc5L,EAAE,8BACnC+1C,GAAc7qC,UAChB6qC,GAAc7qC,QAAQU,YAAc5L,EAAE,2BAEpCmI,SAASC,eAAe,0BAC1BD,SACGC,eAAe,yBACfiK,aAAa,mBAAmB,KACpC,CAAC1Y,IAAKC,WAQT,IAiGMy+C,GAAY,WAEZh+C,OAAOi+C,cAAgBnwC,SAAS0nC,YAnGhB,SAAC0I,GAErB,IAAI3I,EAAYv1C,OAAOi+C,eACvB,GACEhJ,GACEnnC,SAASC,eAAe,0BACxBwnC,GAEF,CACA,IAAI4I,EAAQn+C,OAAOi+C,eAAe5I,WAAW,GACzC+I,EAAoBD,EAAME,aAC9BD,EAAkBE,mBAAmBJ,GACrCE,EAAkBG,OAAOJ,EAAMK,eAAgBL,EAAMM,aACrD,IAAIC,EAAQN,EAAkB/5C,WAAW/I,OACzCwiD,GAAiB,CACfY,MAAOA,EACPC,IAAKD,EAAQP,EAAM95C,WAAW/I,QAEhCm/C,GAAkBqD,KAmFlBc,CAAc9wC,SAASC,eAAe,2BAC7BD,SAASynC,WA3BQ,SAAC2I,GAE7B,IAAI3I,EAAYznC,SAASynC,UACzB,GACEN,GACEnnC,SAASC,eAAe,0BACxBwnC,GAEF,CACA,IAAIsJ,EAAoB/wC,SAASynC,UAAUC,cACvCsJ,EAAwBhxC,SAASnM,KAAKo9C,kBAC1CD,EAAsBE,kBAAkBd,GACxCY,EAAsBG,YAAY,aAAcJ,GAChD,IAAIH,EAAQI,EAAsB3/C,KAAK7D,OAEvCwiD,GAAiB,CACfY,MAAOA,EACPC,IAAKD,EAAQG,EAAkB1/C,KAAK7D,SAWtC4jD,CACEpxC,SAASC,eAAe,4BAKxBoxC,GAAe,WAEnB,OAAIn/C,OAAOi+C,cAAgBnwC,SAAS0nC,YAzFb,SAAC0I,EAAakB,IAErCA,EAAW5E,MAET4E,EAAW,CACTV,MAAO,IACPC,IAAK,MAIT,IAAIU,EAAY,EACdlB,EAAQrwC,SAAS0nC,cACnB2I,EAAMmB,SAASpB,EAAa,GAC5BC,EAAMoB,UAAS,GAMf,IALA,IACEpzB,EADEqzB,EAAY,CAACtB,GAEfuB,GAAa,EACbC,GAAO,GAEDA,IAASvzB,EAAOqzB,EAAUG,QAChC,GAAqB,IAAjBxzB,EAAKyzB,SAAe,CACtB,IAAIC,EAAgBR,EAAYlzB,EAAK7wB,QAElCmkD,GACDL,EAASV,OAASW,GAClBD,EAASV,OAASmB,IAElB1B,EAAMmB,SAASnzB,EAAMizB,EAASV,MAAQW,GACtCI,GAAa,GAGbA,GACAL,EAAST,KAAOU,GAChBD,EAAST,KAAOkB,IAEhB1B,EAAMI,OAAOpyB,EAAMizB,EAAST,IAAMU,GAClCK,GAAO,GAETL,EAAYQ,OAGZ,IADA,IAAIzkD,EAAI+wB,EAAK2zB,WAAWxkD,OACjBF,KACLokD,EAAUl+C,KAAK6qB,EAAK2zB,WAAW1kD,IAKrC,IAAI+5C,EAAMn1C,OAAOi+C,eAGjB,OAFA9I,EAAI4K,kBACJ5K,EAAI6K,SAAS7B,GACNhJ,EAwCE8K,CACLnyC,SAASC,eAAe,0BACxB+vC,IAEOhwC,SAASynC,UO/lBjB,SAAkC2I,EAAakB,GAElD,IAAIc,EAAYpyC,SAASnM,KAAKo9C,kBAK9B,OAJAmB,EAAUlB,kBAAkBd,GAC5BgC,EAAUX,UAAS,GACnBW,EAAUC,QAAQ,YAAaf,EAAST,KACxCuB,EAAUE,UAAU,YAAahB,EAASV,OACnCwB,EAAUpgD,SPylBRugD,CACLvyC,SAASC,eAAe,0BACxB+vC,SAHG,GAQLF,GAA0B,SAAC0C,EAAMC,GAEnC,IAAM1Q,GAAM,IAAI2Q,WAAYC,gBAAgBH,EAAM,aAC5CI,EAAsBzM,GAAkBR,EAAQl0C,IAChDohD,EAAsB1M,GAAkBR,EAAqB,IAAbl0C,GAAiB,EAAI,GACrE6K,EAAsB7K,GAAyB,IAAbA,GAAiB,KAAO,KAAQ,KAE1DswC,EAAI9hC,eAAe,cACpBwyC,GAAOG,EAAWrG,YAAckG,IAC3C1Q,EAAI9hC,eAAe,aAAakU,UAAYu0B,GAAe+J,EAAK/L,GAASj1C,KAAaD,IAAKC,SAAUX,EAAY4S,mBAEnHq+B,EAAI9hC,eAAe,YAAYkU,UAAexlB,IAASikD,EAAWjkD,MAClEozC,EAAI9hC,eAAe,eAAekU,UAAYs3B,IAAYmH,EAAWvM,SACrEtE,EAAI9hC,eAAe,WAAWkU,UAAgB1d,GAAKE,mBAAmB2F,GAEtE,IAAIw2C,EAAiB/Q,EAAI9hC,eAAe,0BAA0BkU,UAE9D2+B,IAAmBD,EAAoB5vC,SAAW6vC,IAAmBF,EAAW3vC,UAClF8+B,EAAI9hC,eAAe,0BAA0BkU,UAC3C2+B,EAAez9C,QAAQw9C,EAAoB5vC,QAAS2vC,EAAW3vC,UAGnE,IAAM8vC,EAAWhR,EAAI7vB,cAAc,sBAC/B6gC,IAAUA,EAAS5+B,UAAYy+B,EAAW5vC,QAE9C,IAAMgwC,EAAgBjR,EAAI9hC,eAAe,mBACrC+yC,IACFA,EAAc3oC,WAAWC,YAAY0oC,GACrCjR,EAAI9hC,eAAe,UAAUkU,UACd,IAAb1iB,GAAiBq0C,GAAqBC,IAG1C,IAAMkN,EAAiBlR,EAAI9hC,eAAe,kBACtCgzC,IACFA,EAAe9+B,UAAyB,IAAb1iB,GAAiB,SAAW,eAGzD,IAAMyhD,EAAWnR,EAAI7vB,cAAc,sBAC/BghC,IAAUA,EAAS/+B,UAAyB,IAAb1iB,GAAiBu0C,GAAgBE,IAEpEkI,GAAOrrC,QAAQ9R,MAAQ8wC,EAAIoR,gBAAgBh/B,UAC3Cs4B,GAAc1K,EAAIoR,gBAAgBh/B,YAgBhCi/B,GAAqB,SAACnhD,GAExB,IAAIohD,EAAoBlN,GAAkBR,GAEtC0N,EAAkB58C,OAAS,IAAIC,OACjC28C,EAAkB58C,KAAOA,IACvB48C,EAAkB1kD,QAAUA,IAASA,KACvC0kD,EAAkB1kD,MAAQA,IACxB0kD,EAAkBhN,WAAaoF,IAAYA,KAC7C4H,EAAkBhN,SAAWoF,IAE3B4H,EAAkB9G,YAAcA,IAAaA,KAC/C8G,EAAkB9G,UAAY7D,GAAe6D,GAAW7F,GAASj1C,KAAaD,IAAKC,SAAUX,EAAY4S,mBAE3G0qC,GAAOrrC,QAAQ9R,MM3yBZ,SAAyBsR,EAAMjG,EAAMpN,GACxC,IAAIuC,EAMJ,OAJIA,EADS,OAAT6K,GAA0B,OAATA,EACNA,EAEAA,EAAgB,MAATA,EAAe,KAAO,KAAO9K,IAAKC,SAElD,i/BAAN,OAkBsC20C,GAAel3C,EAAIoN,IAAS,GAlBlE,41BAoC8BiG,EAAK9L,KAAKE,mBAA4B,IAAT2F,EAAa,KAAO,OAAS,GApCxF,kXAyC8BiG,EAAK5T,OAAS,GAzC5C,+hCAwDoF4T,EAAK8jC,UAAY,GAxDrG,wgCAwEsB9jC,EAAKU,SAAW,GAxEtC,6jBAsFsBV,EAAK+jC,QAAU,GAtFrC,6KA2FsB/jC,EAAKgqC,WAAa,GA3FxC,sYAuG+B,OAAb96C,EAAoBu0C,IAAiB,GAAKE,IAAiB,GAvG7E,sFNoyBuBoN,CACrBD,EACA7hD,IAAKC,SACLk0C,GAGE1zC,IACFA,EAAEm3B,iBACFgI,IAAoB,KAIpBmiB,GAAmB,SAAChxC,GAEtBqpB,GAAO7oB,QAAU,KACjB,IA1C8ByvC,EA0CxBl2C,EAAO7K,IAAsBD,IAAKC,SACd00C,GAAkBR,EAAQl0C,IAEpD,OAAQ8Q,EAAK5Q,KAAKjE,KAChB,IAAK,QACH,IAAIslD,EAAgBhzC,SAASC,eAAe,mBAC5C,GAAI+yC,EACFA,EAAc3oC,WAAWC,YAAY0oC,OAClC,CACH,IAAMQ,EACK,IAATl3C,GAEa,OAATA,EADAwpC,GAGEC,GACRqI,GAAOrrC,QAAQ0wC,cACZC,cACAzzC,eAAe,UAAUkU,UAAYq/B,GA3DhBhB,EA8DxBpE,GAAOrrC,QAAQ0wC,cACZE,eACAC,qBAAqB,SAAS,GAAGC,aA7DxC3D,KACAsC,EAAOpE,GAAOrrC,QAAQ0wC,cACnBE,eACAC,qBAAqB,SAAS,GAAGC,WAGtCzF,GAAOrrC,QAAQ9R,MAAQuhD,EACvBnB,KAwDI,MACF,IAAK,MACHrxC,SAASC,eAAe,mBAAmBkU,UAA3C,UAA0Dtc,EACxD,6BADF,KAIAmI,SAASC,eAAe,kBAAkBkU,UAA1C,UAAyDtc,EACvD,qBADF,UAIAw6B,GAAUtvB,QAAQuQ,kBAAoB,OACtC+e,GAAUtvB,QAAQ0H,YAAc,IAChCmhB,GAAO7oB,QAAUR,EAAK5Q,KAAKjE,IAC3BomD,GAAWvxC,EAAK5Q,KAAKjE,KACrB,MACF,IAAK,MACgBsS,SAASC,eAAe,iBAC3C2rB,GAAO7oB,QAAUR,EAAK5Q,KAAKjE,IAC3BqmD,GAAUxxC,EAAK5Q,KAAKjE,KACpB,MACF,IAAK,MACHsS,SAASC,eAAe,mBAAmBkU,UAA3C,UAA0Dtc,EACxD,6BADF,KAIAmI,SAASC,eAAe,kBAAkBkU,UAA1C,UAAyDtc,EACvD,qBADF,UAIAw6B,GAAUtvB,QAAQuQ,kBAAoB,OACtC+e,GAAUtvB,QAAQ0H,YAAc,IAChCmhB,GAAO7oB,QAAUR,EAAK5Q,KAAKjE,IAC3BomD,GAAWvxC,EAAK5Q,KAAKjE,KACrB,MACF,IAAK,MACHsS,SAASC,eAAe,mBAAmBkU,UAA3C,UAA0Dtc,EACxD,8BADF,KAIAmI,SAASC,eAAe,kBAAkBkU,UAA1C,UAAyDtc,EACvD,qBADF,uBAIAw6B,GAAUtvB,QAAQuQ,kBAAoB,kBACtC+e,GAAUtvB,QAAQ0H,YAAc,IAChCmhB,GAAO7oB,QAAUR,EAAK5Q,KAAKjE,IAC3BomD,GAAWvxC,EAAK5Q,KAAKjE,KACrB,MACF,IAAK,MACHwgD,GAAWnrC,QAAQyO,SACnB,MACF,QACExR,SAASC,eAAe,mBAAmBkU,UAA3C,UAA0Dtc,EACxD,6BADF,KAIAmI,SAASC,eAAe,kBAAkBkU,UAA1C,GACAke,GAAUtvB,QAAQuQ,kBAAoB,GACtC+e,GAAUtvB,QAAQ0H,YAAc,IAChCmhB,GAAO7oB,QAAUR,EAAK5Q,KAAKjE,IAC3BomD,GAAWvxC,EAAK5Q,KAAKjE,OAKvBomD,GAAa,SAACvxC,GAEhB6rC,GAAOrrC,QAAQ0wC,cAAcE,eAAepwC,QAC5C,IAAMywC,EAAa,CACjB,CACErlC,YAAa,CACX1L,QAASpL,EAAE,wBACX+W,WAAW,EACX7M,UAAU,GAEZqI,MAAO,kBAAM+e,GAAS5mB,MAG1B4rC,GAAUprC,QAAQ0M,QAAUukC,EAC5B7F,GAAUprC,QAAQwJ,QAAQ/K,MAAMqF,QAAU,GAC1CsnC,GAAUprC,QAAQE,QAAU4rC,GAC5B7uC,SACGC,eAAe,YACfiK,aAAa,QAAS,iBACzBikC,GAAUprC,QAAQ8G,OAElB7J,SACGC,eAAe,0BACfiK,aAAa,QAAS,gBAEzBlK,SACGC,eAAe,qBACfiK,aAAa,QAAS,gBAEZ,QAAT3H,GACFvC,SACGC,eAAe,0BACfiK,aAAa,QAAS,iBAGd,QAAT3H,GACFvC,SACGC,eAAe,qBACfiK,aAAa,QAAS,kBAIzB6pC,GAAY,SAACxxC,GACd6rC,GAAOrrC,QAAQ0wC,cAAcE,eAAgBpwC,QAC9C,IAAMywC,EAAa,CAAC,CAAErlC,YAAa,CAAE1L,QAASpL,EAAE,wBAAyB+W,WAAW,GAAQxE,MAAO,kBAAM+e,GAAS5mB,MAElHkrC,GAAa1qC,QAAQ0M,QAAUukC,EAC/BvG,GAAa1qC,QAAQwJ,QAAQ/K,MAAMqF,QAAU,GAC7C4mC,GAAa1qC,QAAQE,QAAU2rC,GAC/BnB,GAAa1qC,QAAQ8G,QAGnBsf,GAAW,SAACyC,GAEd,IQ3vBoC18B,ER2vB9B+kD,EAAW5hB,GAAUtvB,QAAQmxC,YAAY,EAAG,MAC9CC,EAAe3G,GAAiBzqC,QAC9BskC,EAAMgK,KACRhB,EAAQjC,GAAOrrC,QAAQqxC,WAE3B,OAAQxoB,GACN,IAAK,MACH,IAAIyoB,EAASr0C,SAASkS,cAAc,WAClCoiC,EAAQt0C,SAASkS,cAAc,UAC7BqiC,EAAYD,EAAME,aAAa,aAK/BroC,EAJamoC,EAAMG,WACG7kC,MAAM,KACLiiC,MACMjiC,MAAM,KAAK,GACZ,aAChCykC,EAAOK,QAAO,SAAC5qC,GACb,IAAI0B,EAAO,IAAImpC,KAAK,CAAC7qC,GAAOqC,GADN,4CAEtB,sBAAAjY,EAAA,sEACQ0lC,GACJ9oC,EAAYjB,YACZi7C,GACAt/B,GAECrT,MAAK,SAACvD,GAAD,OAAcA,EAASvD,UAC5B8G,MAAK,SAACvD,GACL,GAAIA,EAAU,CACZy7C,EAAMoB,UAAS,GACf,IAAImD,EACF50C,SAASnR,cAAc,OACzB+lD,EAAgB1lD,GAAK,eACrB0lD,EAAgB1qC,aACd,kBACA,SAEF,IAAM2qC,EAAgBtL,GACpBgL,EACA3/C,GAEFggD,EAAgBE,mBACd,YACAD,GAEFxE,EAAM0E,WAAWH,GAEjBvE,EAAM2E,cAAcJ,GACpBvE,EAAMoB,UAAS,GACfpK,EAAI4K,kBACJ5K,EAAI6K,SAAS7B,OA9BrB,4CAFsB,0DAoCtB4E,MAEF,MACF,IAAK,MACH,IAAIC,EAAgB9G,GAAOrrC,QAAQ0wC,cAChCC,cACAzzC,eAAe,aAEZk1C,EAAgBpN,GAAsB,GAAD,OACtCpzC,0BADsC,iCAEzCs/C,EAASj/C,KACTm/C,EACA,MACArG,GAAY/qC,QAAQ9R,OAAS,IAE/BikD,EAAcJ,mBAAmB,YAAjC,UAAiDK,IAGjD9E,EAAM2E,cAAcE,GACpB7E,EAAMoB,UAAS,GACfpK,EAAI4K,kBACJ5K,EAAI6K,SAAS7B,GACb,MACF,IAAK,MACHA,EAAMoB,UAAS,GACf,IAAI2D,EAAgBp1C,SAASnR,cAAc,OAC3CumD,EAAclmD,GAAK,aACnBkmD,EAAclrC,aACZ,QACA,sDAEFkrC,EAAclrC,aAAa,mBAAmB,GAC9C,IAAMmrC,EAAgBtN,GACpBoM,EACA,GACA,GACA,OAEFiB,EAAcN,mBAAmB,YAAaO,GAC9ChF,EAAM0E,WAAWK,GAGjB/E,EAAM2E,cAAcI,GACpB/E,EAAMoB,UAAS,GACfpK,EAAI4K,kBACJ5K,EAAI6K,SAAS7B,GACb,MACF,IAAK,MACHA,EAAMoB,UAAS,GACf,IAAI6D,EAAoBt1C,SAASnR,cAAc,OAC/CymD,EAAkBpmD,GAAK,sBACvBomD,EAAkBprC,aAAa,mBAAmB,GAClD,IACM9Q,EQviCP,SAAwBA,GAC7B,IACInE,EAAQmE,EAAInE,MADH,6EAEb,SAAQA,GAA4B,KAAnBA,EAAM,GAAGzH,SAAgByH,EAAM,GRoiC9BsgD,CADKv1C,SAASC,eAAe,gBAAgBhP,OAEzD,IAAKmI,EAED,YADA4G,SAASC,eAAe,WAAWkU,UAAYtc,EAAE,kBAGjDmI,SAASC,eAAe,WAAWkU,UAAY,GAEnD,IAAMqhC,EQz2BM,qYADoBtmD,ER02BgBkK,EQz2BpC,4TAQoGlK,EARpG,+RAWoByF,0BAXpB,m2CA0BuKzF,EA1BvK,sKA2BmGA,EA3BnG,mxBAyCmCA,EAzCnC,oGAyCiIA,EAzCjI,+ER02BZomD,EAAkBR,mBAAmB,YAAaU,GAClDnF,EAAM0E,WAAWO,GAEjBjF,EAAM2E,cAAcM,GACpBjF,EAAMoB,UAAS,GACfpK,EAAI4K,kBACJ5K,EAAI6K,SAAS7B,GACbrwC,SAASC,eAAe,gBAAgBhP,MAAQ,GAChD,MACF,QACE,IAAIwkD,EAAqBrH,GAAOrrC,QAAQ0wC,cACrCC,cACAzzC,eAAe,kBAMlB,GALAowC,EAAMmB,SAASiE,EAAoB,GACnCpF,EAAMoB,UAAS,IACWrD,GAAOrrC,QAAQ0wC,cACtCC,cACAzzC,eAAe,qBACQ,CACxB,IAAMy1C,EM98BN,qXAAN,QN+8BqB,IAAbjkD,GAAiB,SAAW,gBM18BK,GALzC,+KNi9BMgkD,EAAmBthC,UAAnB,eAAuCuhC,EAAvC,UACArF,EAAM2E,cAAcS,GAOtB,IAJA,IAAIE,EAAkBvH,GAAOrrC,QAAQ0wC,cAClCC,cACAkC,iBAAiB,0BAChB9jD,GAAS,EACJxE,EAAI,EAAGA,EAAIqoD,EAAgBnoD,OAAQF,IAC1C,GAA6C,IAAzCqoD,EAAgBroD,GAAGuoD,kBAAyB,CAC9C/jD,EAAQxE,EACR,MAGJ,GAAIwE,GAAS,EAAG,CACd,IAAMgkD,EAAgB/N,GAAsB,GAAD,OACtCpzC,0BADsC,iCAEzC44C,GAAsBxqC,QAAQ9R,OAAS,GACvCkjD,EACA,cAEFwB,EAAgB7jD,GAAOqiB,UAAY2hC,EAEnCzF,EAAM2E,cAAcW,EAAgB7jD,QAC/B,CAEL,IAAIikD,EAAsB/1C,SAASnR,cAAc,MACjDknD,EAAoB7mD,GAAK,oBAEzB6mD,EAAoB7rC,aAAa,SAAU,UAC3C6rC,EAAoB7rC,aAAa,UAAW,WAC5C6rC,EAAoB7rC,aAAa,mBAAmB,GACpD6rC,EAAoB7rC,aAClB,QACA,gFAGF,IAAM8rC,EAAqBzI,GAAsBxqC,QAAQ9R,QACzC,IAAbQ,GAAiB,QAAU,cACxBqkD,EAAgB/N,GAAsB,GAAD,OACtCpzC,0BADsC,iCAEzCqhD,EACA7B,EACA,cAEF4B,EAAoB5hC,UAAY2hC,EACZ1H,GAAOrrC,QAAQ0wC,cAChCC,cACAzzC,eAAe,kBACJkK,YAAY4rC,GAC1B1F,EAAM2E,cAAce,GAGtB1F,EAAMoB,UAAS,GACfpK,EAAI4K,kBACJ5K,EAAI6K,SAAS7B,GAGjBhe,GAAUtvB,QAAQsP,WAClB4jC,KACAnJ,GAAU,IACVE,GAAiB,IACjBd,GAAwB,IACxBC,GAA2B,IAC3BE,GAAwB,IACxBkB,GAAsBxqC,QAAQ9R,MAAQ,GACtC68C,GAAY/qC,QAAQ9R,MAAQ,IAG1BglD,GAAgB,WAElB,IAAIC,EAAY/H,GAAUprC,QAAQwJ,QAAQ2F,cACxC,wBAGEikC,EAAe1I,GAAa1qC,QAAQwJ,QAAQ2F,cAC9C,yBAGEgkC,GAAaC,IACfD,EAAUE,UAAU9jC,OAAO,YAE7B+f,GAAUtvB,QAAQsP,WAClB87B,GAAUprC,QAAQszC,OAClB5I,GAAa1qC,QAAQszC,OACjBr2C,SAASC,eAAe,iBAC1BD,SACGC,eAAe,eACfiK,aAAa,QAAS,kBACzBlK,SAASkS,cAAc,yBAAyBiC,UAAY,IAE9D64B,GAAiB,IACjBF,GAAU,IACVZ,GAAwB,IACxBC,GAA2B,IAC3BE,GAAwB,IACxBkB,GAAsBxqC,QAAQ9R,MAAQ,GACtC68C,GAAY/qC,QAAQ9R,MAAQ,IAG9B,SAASqlD,GAAT,GAAkD,IAAxB5L,EAAuB,EAAvBA,SAAUE,EAAa,EAAbA,UAClC,OACE,uBAAK17C,GAAG,WACNsS,MAAO,CAACqF,QAAQ,GAAD,OAA8B,QAAzBgmC,GAAOhuC,eACG,QAAzBguC,GAAOhuC,cADQ,UACqBkuC,GAAgB,QAAU,QAAW,UAE9E,qBACE79C,GAAG,WACHsS,MAAO,CAAEqF,QAAS,QAClBzX,UAAW,mBAEVyI,EAAE,gCAEL,2BACE,yBACE0+C,QAAQ,WACRC,UAAW9L,GAAYA,EAAStxC,IAChCq9C,YAAa,YACbj1C,MAAO,CAAEk1C,SAAU,OAAQ5nD,MAAO,QAClCM,UAAW,cACXF,GAAG,QACH0rB,UAAQ,EACR+7B,iBAAkB,kBAAMC,OAExB,0BACEn9C,IAAKixC,GAAYA,EAAS5gC,KAC1B/S,KAAK,gBAIX,uBAAKyK,MAAO,CAAE8E,SAAU,aACtB,gBAAC,KAAD,CACEvP,KAAM,SACN3H,UAAW,oBACXmK,QAAS,SAACtH,GAAD,OAAO4kD,GAAqB5kD,KAEpC4F,EAAE,8BAGP,2BACE,yBACE,6BAAQA,EAAE,4BAEZ,2BACE,0BACE2J,MAAO,CAAEk1C,SAAU,OAAQ7vC,QAAS,QACpCiwC,OAAQlM,EACR17C,GAAG,cAQf,IA0BI0nD,GAAc,WAEhB,IAAIvC,EAASr0C,SAASkS,cAAc,WAClCoiC,EAAQt0C,SAASkS,cAAc,UACjCmiC,EAAOvlD,OAAa,OAALwlD,QAAK,IAALA,OAAA,EAAAA,EAAOyC,YAAalM,GACnCwJ,EAAOtlD,QAAc,OAALulD,QAAK,IAALA,OAAA,EAAAA,EAAO0C,aAAcnM,IAkFnCgM,GAAuB,WAEzB,IAAIxC,EAASr0C,SAASkS,cAAc,WAClCoiC,EAAQt0C,SAASkS,cAAc,UAC/B+kC,EAAY5C,EAAO6C,WAAW,MAChC7C,EAAOnqC,aACL,QACA,+CAEF+sC,EAAUE,UACR7C,EACA,EACA,EACAA,EAAMyC,WAAalM,GACnByJ,EAAM0C,YAAcnM,IAEtB7qC,SACGC,eAAe,YACfiK,aAAa,QAAS,mBAWrBolC,GAAe,WAEnB,OAA+B,OAArB,EAAI15C,KAAKwhD,UAAuB,GAAG7gD,SAAS,IAAIwd,UAAU,IA8FhEsjC,GAA4B,SAACplD,GAEjCA,EAAEwX,QAAS,GA2MP+1B,GAAc,WAalB,IAXA,IAAMuC,GAAM,IAAI2Q,WAAYC,gBAC1BvE,GAAOrrC,QAAQ9R,MACf,aAEIqmD,EAAkBvV,EAAI6T,iBAAiB,mBACvC2B,EAAkBxV,EAAI6T,iBAAiB,mBACvC4B,EAAuBzV,EAAI6T,iBAC/B,wBAEI6B,EAAgB1V,EAAI6T,iBAAiB,mBACvChyB,EAAM,GACDt2B,EAAI,EAAGA,EAAIgqD,EAAgB9pD,OAAQF,IAC1Cs2B,EAAIpwB,KAAK,CAAE4F,IAAKk+C,EAAgBhqD,GAAGuY,KAAM9O,KAAM,UAEjD,IAASzJ,EAAI,EAAGA,EAAIiqD,EAAgB/pD,OAAQF,IAAK,CAAC,IAAD,EAC/Cs2B,EAAIpwB,KAAK,CACP4F,IAAKm+C,EAAgBjqD,GAAGuY,KACxB9O,KAAM,QACNpI,MAAK,UAAE4oD,EAAgBjqD,GAAGoqD,wBAArB,aAAE,EAAqCvjC,YAGhD,IAAS7mB,EAAI,EAAGA,EAAIkqD,EAAqBhqD,OAAQF,IAAK,CAAC,IAAD,EACpDs2B,EAAIpwB,KAAK,CACP4F,IAAKo+C,EAAqBlqD,GAAGuY,KAC7B9O,KAAM,aACNpI,MAAK,UAAE6oD,EAAqBlqD,GAAGoqD,wBAA1B,aAAE,EAA0CvjC,YAGrD,IAAS7mB,EAAI,EAAGA,EAAImqD,EAAcjqD,OAAQF,IACxCs2B,EAAIpwB,KAAK,CAAE4F,IAAKq+C,EAAcnqD,GAAGmM,IAAK1C,KAAM,UAG9Cg3C,GAAahrC,QAAQ7H,WAAa0oB,GAgDpC,OACE,2BACGjS,EACC,uBAAKziB,GAAG,gBACNsF,EACF,gBAAC,IAAD,CAAUhB,MAAM,EAAMyF,GAAE,UAAKoxC,KAE7B,uBAAKj7C,UAAU,WACb,wBACEF,GAAG,kBACHguB,SAAUN,IA9OE,SAACxpB,GACrBxE,EAAMqwB,gBAAe,GAEjB2f,IA3CoB,WAExB,IAAI+Y,EAAW,uBACXC,EAAU,aACT,IAAI9yB,IAAIiY,EAAaL,YAAYjD,SAASxkC,MAAM0iD,KAGrD,GAAIC,EAAY,CACd,IAAIC,EAAaD,EAAWlmD,QAC1B,SAACC,GAAD,OACEA,EAAKvD,QAAL,UAAgBuG,6BACf,IAAuC,IAAlChD,EAAKvD,QALM,oBAOjB0pD,EAAgB1J,GAAOrrC,QAAQ9R,MAAMgE,MAAM0iD,GAC/C,GAAIE,GAAcC,GAAiBA,EAActqD,OAAQ,CACvD,IAAMuqD,EAAOD,EAAcpmD,QACzB,SAACC,GAAD,OACEA,EAAKvD,QAAL,UAAgBuG,6BACf,IAAuC,IAAlChD,EAAKvD,QAZI,oBAcCypD,EAAWnmD,QAAO,SAAC6wB,GAAD,OAAQw1B,EAAKjrB,SAASvK,MAC9C1wB,KAAI,SAACF,GAEjB,IAAI0F,EAAO,oBAAgBswC,GACzBh2C,EAAK62C,MAAM,GAAI,KAEjB3O,GAAY/oC,EAAYjB,YAAawH,EAASsuC,WAGhDkS,EAAWhmD,KAAI,SAACF,GAEd,IAAI0F,EAAO,oBAAgBswC,GACzBh2C,EAAK62C,MAAM,GAAI,KAEjB3O,GAAY/oC,EAAYjB,YAAawH,EAASsuC,OASxCqS,GAEZ,IAAMC,EAAcrZ,GAASxF,GAAkBH,GACzCif,EAAU,CACdhpD,GAAI0vC,GACJ7D,UAAWkQ,GACXtmC,SAAUlT,IAAY,EACtB+S,OAAQ7V,GACRghD,UAAWlE,GACXxQ,QAAS4Q,GACT3P,cAAeiP,IAAe,KAC9BjqC,OAAQA,GACR9N,KAAMwzC,GAAiBnwC,IAAMiC,cAC7B0I,WAAYA,IAAc,KAC1BwuC,YAAajE,IAAY,GACzBlS,SAAUz5B,SAASC,eAAe,mBAAmB4zC,UACrDzZ,OAAQuL,EACRoG,UAAWA,IAGbkM,EAAYnnD,EAAYjB,YAAaqoD,EAASvS,GAC3CxtC,MAAK,SAACvD,GAEL,OAAIA,EAASC,GACJD,EAASwD,OAET8F,QAAQE,OAAOxJ,MAGzBuD,MAAK,SAACE,GAES,IAAVstC,GAAyB,IAAVA,GACjB3I,EAAgB,CACdN,YAAa,KACbC,UAAW,KACXC,WAAY,OAEdgB,EAAcvlC,EAAOnJ,KAErB4Q,GAAY,GAEdlR,EAAMqwB,gBAAe,MAEtB3mB,OAAM,SAACC,GACNC,QAAQD,MAAMA,GACdyP,GAAW,GACXpZ,EAAMqwB,gBAAe,UA+LjB,uBAAK7vB,UAAU,OAEb,uBAAKA,UAAU,QACb,gBAAC,KAAD,CACEF,GAAG,SACH8F,KAAK,SACLwE,SAAS,WACT0B,WAAYmzC,GACZrzC,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,SAC/ByJ,OAAQlJ,IAAKC,SACbuoB,eAAgB,CAAE7K,UAAU,GAC5B1L,YAAa5L,EAAE,kBACf5G,MAAOQ,IAAsB,EAC7B4lB,OAAQ,SAACplB,GAAD,OAAOs5C,GAAYt5C,EAAEhB,QAC7B4lB,QAASm3B,GAAajrC,YAMvBjS,GAAeA,EAAYb,WAE3Bi5B,IACqC,IAApCxO,GAAetsB,QAAQ,UACxB86B,IAEE,GADDxO,GAAetsB,QAAQ,iBAEvB,gBAAC,KAAD,CACEc,GAAG,QACHioB,MAAOtf,EAAE,oBACTuf,QAAS6zB,GACT5zB,OAAQ,SAACplB,GAAD,OAAOi5C,GAAWj5C,EAAEmlB,UAC5BrV,UAAWisC,GAAajrC,WAOhC,uBAAK3T,UAAU,SACb,yBAAOugB,QAAQ,SACZ9X,EAAE,eAAgB,IACnB,wBAAMzI,UAAU,WAAhB,MAEF,gBAAC,KAAD,CACEF,GAAG,QACH8F,KAAK,SACL/F,IAAK,SAAC22C,GAEJ/oB,GAAS+oB,EAAS,CAAEz2B,UAAU,IAC9B8+B,GAAYlrC,QAAU6iC,GAExBniC,YAAa5L,EAAE,2BACfmiB,eAAgB,CAAEiD,UAAW,KAC7BzZ,SAAU,SAACvR,GAAD,OAAOu5C,GAASv5C,EAAE5E,OAAO4D,QACnCA,MAAOtC,GACPkoB,QAASm3B,GAAajrC,UAEvBi1B,GAAOxzB,QACiB,aAAvBwzB,GAAOxzB,OAAOzN,MACZ,yBACE3H,UAAU,UACVoS,MAAO,CAAEqF,QAAS,UAEjBhP,EAAE,yBAOX,uBAAKzI,UAAU,SACb,yBAAOugB,QAAQ,YACZ9X,EAAE,mBAEL,gBAAC,KAAD,CACE3I,GAAG,WACHD,IAAK,SAAC22C,GAAD,OACF8H,GAAe3qC,QAAU6iC,GAE5B5wC,KAAK,YACL/D,MAAOw6C,GACPhoC,YAAa5L,EAAE,8BACfof,WAAW,EACXzT,SAAU,SAACvR,GAAD,OAAOy5C,GAAYz5C,EAAE5E,OAAO4D,QACtC+oB,eAAgB,CAAEiD,UAAW,KAC7BpG,QAASm3B,GAAajrC,WAK1B,uBAAK3T,UAAU,OACb,uBAAKA,UAAU,SAEb,uBAAKA,UAAU,SACb,yBAAOugB,QAAQ,iBACZ9X,EAAE,yBAA0B,IAC7B,wBAAMzI,UAAU,WAAhB,MAEF,gBAAC,KAAD,CACEF,GAAG,gBACH8F,KAAK,cACL/F,IAAK4tB,GAAS,CACZ1N,UAAU,EACVgpC,IAAK,IAEP10C,YAAa5L,EACX,qCAEFqD,WAAYmmB,GACZrmB,OAAQ,CACN3J,KACoB,OAAlBG,IAAKC,SACD,SACA,SACNR,MAAO,MAETA,MAAOk6C,GACP9zB,OAAQ,SAACplB,GAAD,OAAOm5C,GAAen5C,EAAEhB,QAChC4lB,QAASm3B,GAAajrC,UAEvBi1B,GAAOmT,aACsB,QAA5BnT,GAAOmT,YAAYp0C,MACjB,yBACE3H,UAAU,UACVoS,MAAO,CAAEqF,QAAS,UAEjBhP,EAAE,yBAOX,uBAAKzI,UAAU,SACb,yBAAOugB,QAAQ,UACZ9X,EAAE,iBAAkB,IACrB,wBAAMzI,UAAU,WAAhB,MAEF,gBAAC,KAAD,CACEF,GAAG,SACH8F,KAAK,OACLijB,gBAAgB,EAChBhpB,IAAK4tB,GAAS,CACZ1N,UAAU,EACVgpC,IAAK,IAEP10C,YAAa5L,EACX,6BAEFqD,WAAY+lB,GACZjmB,OAAQ,CACN3J,KACoB,OAAlBG,IAAKC,SACD,SACA,SACNR,MAAO,MAETA,MACEiQ,IAAkBspC,EAAYtpC,OAEhCmW,OAAQ,SAACplB,GAAD,OAAOo5C,GAAQp5C,EAAEhB,QACzB4lB,QAASm3B,GAAajrC,UAEvBi1B,GAAO/2B,MACe,aAArB+2B,GAAO/2B,KAAKlK,MACV,yBACE3H,UAAU,UACVoS,MAAO,CAAEqF,QAAS,UAEjBhP,EAAE,yBAOX,uBAAKzI,UAAU,SACb,yBAAOugB,QAAQ,cACZ9X,EAAE,mBAEL,gBAAC,KAAD,CACE3I,GAAG,aACHuU,YAAa5L,EACX,8BAEFqD,WAAY6mB,GACZ9wB,MAAOmQ,GACPpG,OAAQ,CACN3J,KACoB,OAAlBG,IAAKC,SACD,SACA,SACNR,MAAO,MAETomB,OAAQ,SAACplB,GAEPq5C,GAAYr5C,EAAEhB,OACd04C,GACE74C,EAAYjB,YACZoC,EAAEhB,OACFkH,MAAK,SAACvD,GAEN,GAAIA,GAAYA,EAASC,IAA0B,MAApBD,EAASE,OACtC,OAAOF,EAASwD,UAEjBD,MAAK,SAAAo0C,GAENC,GAAaD,OAGjB11B,QAASm3B,GAAajrC,WAM1B,uBAAK3T,UAAU,SACb,yBAAOugB,QAAQ,QACZ9X,EAAE,cAAe,IAClB,wBAAMzI,UAAU,WAAhB,MAEF,gBAAC,KAAD,CACEF,GAAG,OACH8F,KAAK,OACL/F,IAAK,SAACmpD,GAEJv7B,GAASu7B,EAAY,CACnBjpC,UAAU,IAEZy+B,GAAc7qC,QAAUq1C,GAE1B30C,YAAa5L,EACX,0BAEF5G,MAAOwF,GAAKE,mBACVnF,IAAKC,UAEPiJ,OAAQlJ,IAAKC,SACb4lB,OAAQ,SAACplB,GAAD,OACN26C,GACE36C,EAAEhB,MACE,IAAIyF,KAAKzE,EAAEhB,OACX,IAAIyF,OAGZmgB,QAASm3B,GAAajrC,UAEvBi1B,GAAO5kC,MACe,aAArB4kC,GAAO5kC,KAAK2D,MACV,yBACE3H,UAAU,UACVoS,MAAO,CAAEqF,QAAS,UAEjBhP,EAAE,0BAMb,uBAAKzI,UAAU,UAEb,uBAAKA,UAAU,SACb,yBAAOugB,QAAQ,aACZ9X,EAAE,qBAEL,gBAAC,KAAD,CACE3I,GAAG,YACH8qB,eAAgB,CAAEhD,UAAW,KAC7B/nB,IAAK,SAAC22C,GAAD,OACF+H,GAAe5qC,QAAU6iC,GAE5BniC,YAAa5L,EACX,gCAEF7C,KAAK,cACL/D,MAAO06C,GACPnoC,SAAU,SAACvR,GAAD,OACR25C,GAAY35C,EAAE5E,OAAO4D,QAEvB4lB,QAASm3B,GAAajrC,WAM1B,uBAAK3T,UAAU,SACb,yBAAOugB,QAAQ,WACZ9X,EAAE,iBAAkB,IACrB,wBAAMzI,UAAU,WAAhB,MAEF,gBAAC,KAAD,CACEF,GAAG,UACH8F,KAAK,UACLglB,eAAgB,CAAEhD,UAAW,KAC7B/nB,IAAK,SAAC22C,GAEJ/oB,GAAS+oB,EAAS,CAChBz2B,UAAU,IAEZ0+B,GAAa9qC,QAAU6iC,GAEzBpsC,SAAS,WACTiK,YAAa5L,EACX,6BAEF5G,MACE46C,IAAoBrB,EAAY5mC,KAElCJ,SAAU,SAACvR,GAAD,OACR65C,GAAW75C,EAAE5E,OAAO4D,QAEtB4lB,QAASm3B,GAAajrC,UAEvBi1B,GAAOiD,SACkB,aAAxBjD,GAAOiD,QAAQlkC,MACb,yBACE3H,UAAU,UACVoS,MAAO,CAAEqF,QAAS,UAEjBhP,EAAE,2BASf,uBACEzI,UAAU,cACVH,IA7vDU,SAACsd,GAELA,GA4vDNrd,GAAG,cAGH,gBAAC,MAAD,GACEA,GAAG,UACHD,IAAK,SAACopD,GAEJjK,GAAOrrC,QAAUs1C,GAEnBvtC,gBAAiBA,GACjBQ,OAn3DQ,CACpBgtC,QAAS,YACTxpD,MAAO,OACPw/C,MAAO,CACL,CACEj9C,KAAM,YACNJ,MAAO,IACPuI,SAAU,cACV++C,QAAS,UACTC,WAAY,KAEd,CACEnnD,KAAM,OACNJ,MAAO,MACPuI,SAAU,SACV++C,QAAS,UACTC,WAAY,OAEd,CACEnnD,KAAM,YACNJ,MAAO,KACPuI,SAAU,OACV++C,QAAS,UACTC,WAAY,MAEd,CACEnnD,KAAM,YACNJ,MAAO,KACPuI,SAAU,OACV++C,QAAS,UACTC,WAAY,MAEd,CACEnnD,KAAM,YACNJ,MAAO,KACPuI,SAAU,OACV++C,QAAS,UACTC,WAAY,MAEd,CACEnnD,KAAM,YACNJ,MAAO,KACPuI,SAAU,OACV++C,QAAS,UACTC,WAAY,QAw0DJC,uBACEpB,GAEFqB,kBAhoBe,SAACzmD,GAE5Bo/C,OAmnBU,wCAaIgG,IAbJ,8BAhnBW,SAACplD,GAEtB,IAAIo+C,EAAQjC,GAAOrrC,QAAQqxC,WAC3BniD,EAAEwX,QAAUg9B,GACV4J,EAAM7I,wBACNxnC,SAASC,eAAe,8BA2mBhB,wBAgBUzO,IAAKC,UAhBf,qCAiBuBq9C,IAjBvB,iCArtBkB,SAAC78C,GAE7BA,EAAE0mD,eAAe3vC,iBACf,gBACA,UAAYlY,EAAYjB,gBAitBhB,0BArsBO,WAgBjB,GAdAmQ,SACGC,eAAe,yBACfiK,aAAa,mBAAmB,GACnClK,SACGkS,cAAc,qBACd2B,iBAAiB,SAAS,SAAC5hB,GAE1BA,EAAEm3B,iBACF,IAAM/3B,GAAQY,EAAE2mD,eAAiB3mD,GAAG4mD,cAAcC,QAChD,cAEF5mD,OAAO8N,SAAS+4C,YAAY,cAAc,EAAO1nD,MAGjD0rC,EAAaL,YAAYxtC,GAAI,CACZs3C,GAAqBb,EAAQl0C,IAAhD,IAEMunD,EAAexS,GAAqBb,EAAQ,KAC5CsT,EAAezS,GAAqBb,EAAQ,KAC9CuT,EAASnc,EAAaL,YAAYjD,UAK7B,IAFPyf,EAAO9qD,QAAP,UACKuG,0BADL,yBACyDqkD,MAIlD,IAFPE,EAAO9qD,QAAP,UACKuG,0BADL,yBACyDskD,MAGzDC,EAASnc,EAAaL,YAAYjD,SAASpkC,QACzC,mBADO,2BAEa+wC,GAAeT,EAAQn0C,IAAKC,UAFzC,QAMmC,IAA1CynD,EAAO9qD,QAAQ,wBACjB8qD,EAASA,EAAO7jD,QAAP,2IAICk3C,IAAa7D,GAAe6D,GAAW7F,GAASj1C,KAAaD,IAAKC,SAAUX,EAAY4S,kBAJzF,iHAcR,IADDw1C,EAAO9qD,QAAQ,2CAEqC,IAApD8qD,EAAO9qD,QAAQ,kCAEf8qD,EAASA,EAAO7jD,QACd,UADO,+FAKgB,IAAb5D,IACe,OAAbA,GADeu0C,GAEfE,GAPL,kDAcXkI,GAAOrrC,QAAQ9R,MAAQioD,OAEvB9F,QA8nBQ,wBAoBU9nC,IApBV,yBAqBW0iC,GAAajrC,SArBxB,qCAtxDmB,CAC7Bo2C,qBAAqB,IAqxDX,wBAjYY,WACtB,IAAMC,EAAyBp5C,SAASC,eAAe,0BAA0Bo5C,WAGxE,oDAAiDrlD,KAAKolD,IAC1D,2CAA2CplD,KAAKolD,IAChD,iDAA8CplD,KAAKolD,IACnD,6CAA6CplD,KAAKolD,IAClD,0DAAuDplD,KAAKolD,IAC5D,kDAAkDplD,KAAKolD,IACvD,mDAAgDplD,KAAKolD,IACrD,uCAAuCplD,KAAKolD,IAC5C,6DAA0DplD,KAAKolD,IAC/D,kDAAkDplD,KAAKolD,IACvD,2DAAwDplD,KAAKolD,IAC7D,qDAAqDplD,KAAKolD,MAI7Dp5C,SAASC,eAAe,0BAA0Bo5C,UAAY,GAE9Dz2C,YAAW,WAET5C,SAASC,eAAe,0BAA0BsD,UACjD,SAyWK,GAyBE,gBAAC,KAAD,CACEiJ,SAAU,CACR8sC,KACA3sC,KACA4sC,KACAvgD,KACAwgD,SAON,gBAAC,IAAD,CACEtqD,GAAG,UACHkC,MAAOm9C,GACPv8C,OAAQ,SAACuQ,GAAD,OAAUgxC,GAAiBhxC,IACnCk3C,WAAY,SAACl3C,GAAD,OAvvBW,WAEnC,IAAIm3C,EAAQxnD,OAAOi+C,eACfhJ,GAAyBnnC,SAASC,eAAe,mBAAoBy5C,IACvExJ,KAovBYyJ,KAGF,4BAAO9hD,EAAE,oBAKX,gBAAC,KAAD,CACE3I,GAAG,WACHsK,SAAS,oBACTD,QA7bW,SAACtH,GAExBA,EAAEm3B,iBACF/b,IAAa,KA4bD,wBAAMje,UAAU,qBAKlB,gBAAC,KAAD,CACEF,GAAG,gBACHD,IAAK,SAACopD,GAEJlK,GAAUprC,QAAUs1C,GAEtBuB,aAAc3D,GACdp7C,MAAOo7C,GACPlrC,SAAS,EACT2E,eAAe,EACf5gB,MAAM,MACNzB,OAAQ,cACRigB,SAAS,EACT9L,MAAO,CAAEq4C,UAAW,OAItB,uBACE3qD,GAAG,mBACHsS,MAAO,CAAEqF,QAAS,SAElB,uBACE3X,GAAG,kBACHD,IA31DS,SAACsd,GAExBsiC,GAAmBtiC,IA41DL,2BACE,gBAAC+pC,GAAD,CACE5L,SAAUA,EACVE,UAAWA,KAKf,uBACEx7C,UAAU,eACVH,IA51DY,SAACsd,GAELA,IA41DR,uBAAKnd,UAAU,iCACb,uBAAKoS,MAAO,CAAE1S,MAAO,SACnB,uBACEM,UAAU,iBACVoS,MAAO,CAAE1S,MAAO,SAGhB,uBACEM,UAAU,aACVF,GAAG,eAEH,uBAAKE,UAAU,OACb,wBACE6jB,wBAAyB,CACvBC,OKtsER,uuDLysEI,yBACGrb,EAAE,sBACH,wBACE0B,QAAS,kBAv1DvCyG,SACGiS,uBAAuB,sBAAsB,GAC7CC,cAAc,UACd9H,SACI,IAu1DwB,IAAMvS,EAAE,kBAGb,wBACE3I,GAAG,kBACHE,UAAU,aAEZ,wBACEF,GAAG,iBACHE,UAAU,aAEZ,wBAAMA,UAAU,cAGpB,gBAAC,KAAD,CACEF,GAAG,aACH8F,KAAK,aACL+B,KAAK,OACL+a,SAAUzkB,GACVgnB,UAAU,EACVplB,IAAK,SAACopD,GAEJhmB,GAAUtvB,QACRs1C,GAEJ3J,cACEA,GAEF5qC,QA79BF,WAElBuuB,GAAUtvB,UACZsvB,GAAUtvB,QAAQ+O,SAAW9R,SAASC,eAAe,eACrDoyB,GAAUtvB,QAAQgP,aA49BIxgB,SAx9BD,SAACU,GAExB+N,SAASkS,cAAc,yBAAyBiC,UAAY,GAC1B,MAA9BliB,EAAEshB,UAAU,GAAGC,aACjBvhB,EAAEwX,QAAS,EACXzJ,SAASkS,cAAc,yBAAyBiC,UAC9CliB,EAAEshB,UAAU,GAAGze,SAq9BKglD,UA/3BJ,SAAC7nD,GAErBA,EAAE0mD,eAAe3vC,iBACf,gBACA,UAAYlY,EAAYjB,cA83BFkqD,QAAS,SAAC9nD,GAAD,OAp9BT,SAACA,GAEzB+6C,GAAiB/6C,EAAEuZ,KAAKzU,MACxBy2C,GAAiBzqC,QAAU9Q,EAAEA,EAAE+nD,WAAWplD,SAC1CoL,SACGC,eAAe,eACfiK,aAAa,QAAS,iBACzB,IAAIilB,EAAc,aAAO4e,GAAahrC,QAAQ7H,YAC9C,GAAoB,WAAhBjJ,EAAEgoD,UAIJ,OAHAj6C,SACGkS,cAAc,mCACdgoC,gBAAgB,YACXtuB,GAAO7oB,SACb,IAAK,MACH,GAAoB,QAAhB9Q,EAAEuZ,KAAKzU,KAAgB,CACzBiJ,SACGC,eAAe,YACfiK,aAAa,QAAS,kBACzBilB,EAAe37B,KAAK,CAClB4F,IAAKnH,EAAEA,EAAE+nD,WAAWplD,SACpBmC,KAAM,UAERg3C,GAAahrC,QAAQ7H,WAAai0B,EAElC,IAAI3jB,EACFxL,SAASC,eAAe,cAAc2T,MAAM,GAC1Cxa,EAAM2Q,IAAIC,gBAAgBwB,GAC9Bm/B,GAAY,SAACD,GAAD,mBAAC,eACRA,GADO,IAEV5gC,KAAM1Q,EACNA,IAAKnH,EAAEA,EAAE+nD,WAAWplD,cAGxB,MACF,IAAK,MACHu6B,EAAe37B,KAAK,CAClB4F,IAAKnH,EAAEA,EAAE+nD,WAAWplD,SACpBmC,KAAM,QACNpI,MAAOm/C,GAAY/qC,QAAQ9R,OAAS,KAEtC88C,GAAahrC,QAAQ7H,WAAai0B,EAClC,MACF,IAAK,MACHA,EAAe37B,KAAK,CAClB4F,IAAKnH,EAAEA,EAAE+nD,WAAWplD,SACpBmC,KAAM,UAERg3C,GAAahrC,QAAQ7H,WAAai0B,EAClC,MACF,QACEA,EAAe37B,KAAK,CAClB4F,IAAKnH,EAAEA,EAAE+nD,WAAWplD,SACpBmC,KAAM,aACNpI,MAAO4+C,GAAsBxqC,QAAQ9R,OAAS,KAEhD88C,GAAahrC,QAAQ7H,WAAai0B,GA85BdgrB,CACEloD,IAGJmiB,SAAU,SAACniB,GAAD,OA7gCjB,SAACsQ,GAEdvC,SAASC,eAAe,gBAC1BD,SACGC,eAAe,eACfiK,aAAa,QAAS,kBAEvBlK,SAASC,eAAe,aAC1BD,SACGC,eAAe,YACfiK,aAAa,QAAS,iBAE3BlK,SACGkS,cAAc,mCACdhI,aAAa,WAAY,YAC5B3H,EAAK63C,aAAc,EACnB,IAAMnG,EAAW5hB,GAAUtvB,QAAQmxC,YAAY,EAAG,MAC9C78C,EAAO,sBAAkB00C,GAAlB,aAAgCkI,EAASj/C,MACpD6kC,GAAY/oC,EAAYjB,YAAawH,EAASsuC,GAC9CqH,GAAiB,IACjBF,GAAU,IACVZ,GAAwB,IACxBC,GAA2B,IAC3BE,GAAwB,IAu/BEgO,CAAapoD,UASzB,uBACE7C,UAAU,QACVF,GAAI,yBACJsS,MAAO,CAAEqF,QAAS,SAElB,uBAAK3X,GAAG,iBACN,yBAAOygB,QAAQ,mBACZ9X,EAAE,8BAEL,gBAAC,KAAD,CACE3I,GAAG,kBACHD,IAAK,SAAC22C,GAAD,OACF2H,GAAsBxqC,QAAU6iC,GAEnC0U,MAAO,SAACC,GAAD,OAliBF,SAACA,GAE1BrO,GAAwBqO,EAAGtpD,MAAMzD,QAgiBEgtD,CAAmBD,IAClCvlD,KAAK,kBACLyO,YAAa5L,EACX,yCAEFmiB,eAAgB,CAAEiD,UAAW,MAE/B,uBAAK/tB,GAAG,eACH+8C,GACC,EAAIA,IAA2C,OAArBsB,SAAqB,IAArBA,IAAA,UAAAA,GAAuBxqC,eAAvB,eAAgCvV,QACxD,EAAI+/C,GAAsBxqC,QAAQvV,OAAS,GAAK,SAO5D,uBACE4B,UAAU,QACVF,GAAI,oBACJsS,MAAO,CAAEqF,QAAS,SAElB,uBAAK3X,GAAG,iBACN,yBACEygB,QAAQ,cAEP9X,EAAE,yBAEL,gBAAC,KAAD,CACE3I,GAAG,aACHD,IAAK,SAAC22C,GAAD,OACJkI,GAAY/qC,QACX6iC,GAEF0U,MAAO,SAACC,GAAD,OA/jBF,SAACA,GAE1BlO,GAAwBkO,EAAGtpD,MAAMzD,QA6jBEitD,CAAmBF,IAClCvlD,KAAK,aACLyO,YAAa5L,EACX,oCAEFmiB,eAAgB,CAAEiD,UAAW,MAE/B,uBAAK/tB,GAAG,eACHk9C,GACC,EAAIA,IAAkC,OAAX0B,SAAW,IAAXA,IAAA,UAAAA,GAAa/qC,eAAb,eAAsBvV,QAC/C,EAAIsgD,GAAY/qC,QAAQvV,OAAS,GAAK,SAOlD,gBAAC,KAAD,CAAiB0B,GAAG,gBAChBD,IAAK,SAACopD,GAAY5K,GAAa1qC,QAAUs1C,GACzCuB,aAAc3D,GACdp7C,MAAOo7C,GACPlrC,SAAS,EACT2E,eAAe,EACf5gB,MAAM,MACNzB,OAAQ,cACRigB,SAAS,EACT9L,MAAO,CAAEq4C,UAAW,OAGxB,uBAAK3qD,GAAG,sBAAsBsS,MAAO,CAAEqF,QAAS,SAC5C,uBAAK3X,GAAG,kBAAkBD,IA1gElB,SAACsd,GAE3BqiC,GAAsBriC,IAygEA,uBAAKnd,UAAU,SACX,yBAAOugB,QAAQ,gBAAgB9X,EAAE,gCACjC,gBAAC,KAAD,CACI3I,GAAG,eACH8qB,eAAgB,CAAEhD,UAAW,KAC7BvT,YAAa5L,EAAE,2CACf7C,KAAK,kBAGb,wBAAM9F,GAAG,UAAUE,UAAU,kBAS7C,gBAAC,KAAD,CACEF,GAAG,UACHD,IAAK,SAACyrD,GAAD,OAAcxM,GAAWnrC,QAAU23C,GACxCl5C,MAAO,CAAEm5C,WAAY,UACrB72C,QA9xBa,WAErBoqC,GAAWnrC,QAAQwJ,QAAQ/K,MAAMm5C,WAAa,IA6xBtC5jD,KAAK,OACLuP,SAAS,QACT2P,KA5xBU,SAAChkB,GAEf87C,IAAcvO,MA2xBVob,sBAAsB,GAEtB,uBAAKxrD,UAAU,mBACb,gBAAC,KAAD,CACEF,GAAG,YACHD,IAAK,SAAComC,GAAD,OACF0Y,GAAahrC,QAAUsyB,GAE1B7K,iBA5gEW,CACvB,gBACA,iBACA,YACA,WACA,WACA,YAugEYtvB,WAAY,GACZyqB,eAAgB,CAAE5uB,KAAM,YACxB6uB,aAAa,EACbC,cAAc,EACdnrB,OAAQlJ,IAAKC,SACbwmB,gBAAgB,EAChBspB,eAAe,EACf5T,aAAc,CAAEC,SAAU,GAC1B9pB,QAAS07B,IAET,gBAAC,KAAD,KACE,gBAAC,KAAD,CACEtwC,GAAG,GACH8L,OAAO,MACP8F,WAAYjJ,EAAE,iBACdm2B,UAAU,SACVl/B,MAAM,MACNoU,SAlzBU,SAACX,GAE3B,OAAQA,EAAKxL,MACX,IAAK,QACH,OACE,yBACEjI,MAAO,IACPM,UAAW,cACXF,GAAG,QACH0rB,UAAQ,GAER,0BAAQnhB,IAAK8I,EAAKnJ,IAAKrC,KAAK,eAGlC,IAAK,QACH,OAAO,uBAAK0C,IAAK8I,EAAKnJ,IAAKtK,MAAO,MACpC,QACE,OAAO,4BAAOyT,EAAK5T,WAmyBT,gBAAC,KAAD,CACEuc,MAAM,OACNpK,WAAYjJ,EAAE,gBACdm2B,UAAU,SACVl/B,MAAM,OAER,gBAAC,KAAD,CACEoU,SAtyBU,SAACX,GAE3B,OACE,uBAAKnT,UAAU,cACb,wBACEoS,MAAO,CACLq5C,OAAQ,UACRC,QAAS,OACTC,YAAa,OAEfxhD,QAAS,WAEP,IAMIyhD,EANEjZ,GAAM,IAAI2Q,WAAYC,gBAC1BvE,GAAOrrC,QAAQ9R,MACf,aAEEm2C,EAAKrF,EAAI7vB,cAAJ,kBAA6B3P,EAAKnJ,IAAlC,OAIT,OAAQmJ,EAAKxL,MACX,IAAK,QACHikD,EAAc,gBACd,MACF,IAAK,QACH5T,EAAKrF,EAAI7vB,cAAJ,mBACS3P,EAAKnJ,IADd,OAGL4hD,EAAc,cACd,MACF,IAAK,QACHA,EAAc,gBACd,MACF,QACEA,EAAc,qBAGlB,IAAIxI,EAAO,GAEPpL,IACFA,EAAG6T,QAAQD,GAAa3wC,WAAWC,YACjC88B,EAAG6T,QAAQD,IAEbxI,EAAOzQ,EAAIoR,gBAAgBh/B,UACT,eAAd5R,EAAKxL,OACPy7C,EQrpDT,SAA8BA,GAEnC,IAAMzQ,GAAM,IAAI2Q,WAAYC,gBAAgBH,EAAM,aAMlD,OAL4BzQ,EAAI9hC,eAAe,uBAEhB8hC,EAAI9hC,eAAe,kBAC3BkU,UAAY,IAE5B4tB,EAAIoR,gBAAgBh/B,UR6oDN+mC,CAAqB1I,KAIhC,IAAIrjB,EAAiB4e,GAAahrC,QAAQ7H,WAC1C6yC,GAAahrC,QAAQ7H,WAAai0B,EAAez9B,QAC/C,SAAC6wB,GAAD,OAAOA,EAAEnpB,MAAOmJ,EAAKnJ,OAGvBg1C,GAAOrrC,QAAQ9R,MAAQuhD,GAEzBpjD,UAAU,sBA+uBAN,MAAM,QAGV,gBAAC,KAAD,CACE0d,SAAU,CACRwZ,KACAC,KACAC,KACAC,KACAC,YAQd,gBAAC,KAAD,CACEl3B,GAAG,cACHoe,SAAS,EACTvC,QAASgU,GACTrkB,OAAQlJ,IAAKC,UAEb,2BACE,uBAAKrC,UAAU,qBACb,yBAAOA,UAAU,sBACjB,uBAAKA,UAAU,gBACb,yBAAOA,UAAU,UAAUF,GAAG,WAC3B2I,EAAE,yBAEL,yBAAO3I,GAAG,eACP2I,EAAE,gCAIT,2BACEwzB,GAUA,uBAAKj8B,UAAU,2BACb,uBAAKA,UAAU,gBACb,wBAAMA,UAAU,+BAElB,6BAAQyI,EAAE,wBACV,0BACE0B,QAAS,WAEPw2C,KACA1iC,IAAa,GACb+jB,IAAoB,KAGrBv5B,EAAE,kBAtBP,uBAAKzI,UAAU,iBACb,0BAAQmK,QAAS,kBAAM8T,IAAa,KACjCxV,EAAE,mBAEL,0BAAQ0B,QAAS65C,IACdv7C,EAAE,yBYn6ENsjD,GAAe,SAACvsD,GACzB,IAAIgwC,EAAShwC,EAAMqG,MAAMiqB,OAAOhwB,GACxB2I,EAAMC,cAAND,EAER,EAAsBlH,aAAiBD,GAAhCI,EAAP,oBACA,EAA0GH,aAAiBksC,IAAnHE,EAAR,EAAQA,aAAcC,EAAtB,EAAsBA,gBAAiBS,EAAvC,EAAuCA,gBAAiBC,EAAxD,EAAwDA,mBAAoBC,EAA5E,EAA4EA,WAAYC,EAAxF,EAAwFA,cACxF,EAAgCjtC,YAAe,GAA/C,mBAAO6D,EAAP,KAAiBsL,EAAjB,KACA,EAAoCnP,YAAe,GAAnD,mBAAmBijC,GAAnB,WACA,EAAwCjjC,YAAe,GAAvD,mBAAOg/B,EAAP,KAAqBC,EAArB,KACA,EAAoCj/B,WAAe,MAAnD,mBAAO6oC,EAAP,KAAmB4hB,EAAnB,KACA,EAAkDzqD,YAAe,GAAjE,mBAAO0qD,EAAP,KAA0BC,EAA1B,KACA,EAAwC3qD,WAAe,IAAvD,mBAAO4qD,EAAP,KAAqBC,EAArB,KACA,EAAwD7qD,YAAe,GAAvE,mBAAO8qD,EAAP,KAA6BC,EAA7B,KACA,EAAsC/qD,YAAe,GAArD,mBAAOquB,EAAP,KAAoBC,EAApB,KAEM08B,GAAWhrD,WAEXirD,GAAY,SAAC3sD,GAAS,IAAD,GAC3B,OAAI0sD,SAAJ,IAAIA,IAAJ,UAAIA,GAAU54C,eAAd,aAAI,EAAmB84C,SAAnB,OAA4B5sD,QAA5B,IAA4BA,OAA5B,EAA4BA,EAAK5B,UAGrCiuD,GAAqB,IAGjBn8B,GAAYxuB,SAAa,CACzBkqB,KAAM,WACNzP,MAAO,UACPiQ,mBAAoBujB,EACpBrjB,cAAeqjB,EACfhjB,gBAAgB,EAChBwD,QAAS,kBAAMwU,GAAc,IAC7B7Y,YAAY,EACZI,eAAcyjB,GAAS,kBAAMkd,MAC7B5gC,aAAY0jB,GAAS,kBAAM0c,GAAqB,IAChDhgC,aAAS3Q,EACT6Q,KAAM,kBACNC,UAASmjB,GAAS,kBAAMlB,GAAmB,IAC3C/hB,UAAW,WACPqhB,EAAgB,CACZN,YAAa,KACbC,UAAW,KACXC,WAAY,OAEhB98B,GAAY,IAEhBgc,YAAW8iB,GAAS,kBAAMhP,GAAgB,MAGxCmsB,GAAe,CACjB7sD,GAAI,KACJsV,OAAQ,GACRmrC,UAAW,GACX1U,QAAS,GACTiB,cAAe,EACfh7B,OAAQ,EACRE,WAAY,GACZhO,KAAM,IAAIsD,KACVk5C,YAAa,GACbnW,SAAU,KACVsB,WAAW,EACXtpC,SAAU,EACVuqD,UAAW,IAGfrrD,aAAgB,WACZwuB,GAAUpc,QAAU,CAChB8X,KAAM,WACNzP,MAAO,UACPiQ,mBAAoBujB,EACpBrjB,cAAeqjB,EACfhjB,gBAAgB,EAChBwD,QAAS,kBAAMwU,GAAc,IAC7B7Y,YAAY,EACZI,eAAcyjB,GAAS,kBAAMkd,MAC7B5gC,aAAY0jB,GAAS,kBAAM0c,GAAqB,IAChDhgC,aAAS3Q,EACT6Q,KAAM,kBACNC,UAASmjB,GAAS,kBAAMlB,GAAmB,IAC3C/hB,UAAW,WACPqhB,EAAgB,CACZN,YAAa,KACbC,UAAW,KACXC,WAAY,OAEhB98B,GAAY,IAEhBgc,YAAW8iB,GAAS,kBAAMhP,GAAgB,OAE/C,CAAC+N,IAEJhtC,aAAgB,YACZ+sC,GAAmB,GACnBV,EAAgB,CACZN,YAAaqf,GACbpf,UAAW,KACXC,WAAY,KACZiC,cAAe,KAEnBjB,EAAc,MAEVgB,GAAQ,uCACR,8BAAA1qC,EAAA,sEAC6B8kC,GAAaloC,EAAYjB,YAAa+uC,EAAQ,GAClEzmC,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAJhC,cACQ6jD,EADR,gBAO4BtiB,GAA8B7oC,EAAYjB,YAAa+uC,GAC1EzmC,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAVhC,OAOQ8jD,EAPR,OAcI/8B,GAAUpc,QAAQsY,kBAA6BxkB,EAAe,EAAxB+nC,EAA2B,OAAyC,SAAjC9tC,GACzEksC,GAAgB,SAAAD,GAAY,kCACrBA,GADqB,IAExBL,YAAauf,EACbtf,UAAWiC,EACXC,cAAeqd,OAnBvB,2CADQ,oDAuBRz7C,GAGAu8B,EAAgB,CACZN,YAAaqf,GACbpf,UAAW,KACXC,WAAY,KACZiC,cAAe,OAGxB,CAACD,EAAQjB,IAEZhtC,aAAgB,YACO,uCAAG,4BAAAuD,EAAA,sEAEAuI,GAAY3L,EAAYjB,aAAasI,MACzD,SAACvD,GACC,GAAIA,EAASC,GACX,OAAOD,EAASwD,UALA,OAElBme,EAFkB,OAStBilC,EAAgBjlC,GATM,2CAAH,qDAWrB4lC,GAGEn8C,SAAS6T,iBAAiB,YAAa+nC,MAQxC,IAEH,IAUIE,GAAmB,WACnBxiB,GAAmBxoC,EAAYjB,YAAa+uC,EAAQ,GAC/CzmC,MAAK,SAAAvD,GACF,OAAIA,EAASC,GACFD,EAASwD,OAET8F,QAAQE,OAAOxJ,MAG7BuD,MAAK,SAAAE,GACFyH,GAAY,MAEfxH,OAAM,SAAAC,GACHC,QAAQD,MAAMA,OAQtB6jD,GAAwB,uCAAG,sCAAAloD,EAAA,6DAErBoI,EAAOygC,EAAaL,YAAY/3B,SAAiD,IAAtCo4B,EAAaL,YAAY/3B,SAAiB,KAAO,KAAOnT,IAAKC,SAFnF,SAGWm4C,GAAqB94C,EAAa0oC,EAAYl9B,GAHzD,kBAGpButC,OAAQC,EAHY,EAGZA,cACT1gC,EAAQ,uGACRizC,EALqB,oDAK0CvS,EAL1C,8DAMrBrQ,EAAWsD,EAAaL,YAAYjD,SAASpkC,QAAQ+T,EAAOizC,GAElE9iB,GAA0BzoC,EAAYjB,YAAa+uC,EAAQ,EAAGpF,EAAYC,GACrEthC,MAAK,SAAAvD,GACF,OAAIA,EAASC,GACFD,EAASwD,OAET8F,QAAQE,OAAOxJ,MAG7BuD,MAAK,SAAAE,GACFqjD,EAAwBrjD,MAE3BC,OAAM,SAAAC,GACHC,QAAQD,MAAMA,MApBK,4CAAH,qDAyC5B,OACI,2BACiC,OAA5BzH,EAAYjB,YAAuB,gBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WACzDzE,EAAW,gBAAC,IAAD,CAAUhB,MAAM,EAAMyF,GAAG,oBAChCwkC,EAAkB,gBAAC,GAAD,CAAUkI,OAAQ,EAAGjB,QAAS9F,IAC5CjB,EAAa,gBAAC,IAAD,CAAUnqC,MAAM,EAAMyF,GAAE,8BAAyB0kC,KAC1D,2BACI,gBAAC,GAAD,CAAoBzuC,GAAG,OAEvB,uBAAKE,UAAU,eACf,gBAACwM,EAAA,EAAD,CAAWxM,UAAU,gBACjB,uBAAKA,UAAU,mBACX,gBAACmhB,GAAA,EAAD,KACI,uBAAKnhB,UAAU,UACX,uBAAKA,UAAU,SACX,0BAAcyI,EAAT+mC,EAAW,qBAA0B,6BAK1D,gBAACruB,GAAA,EAAD,KACI,uBAAKnhB,UAAU,mBACV2tC,EAAaL,aAAeK,EAAaL,YAAYxtC,IAClD,gBAAC,GAAD,CAAe0vC,OAAQA,EAAQjB,WAAYA,IAE9CZ,EAAaL,aACV,gBAAC,GAAD,CACIxT,aAAc,EACdihB,YAAW,UAAKx1C,0BAAL,kCACXy1C,WAAU,UAAKvE,GAAL,4BACVwE,aAAa,kBACb1E,OAAQ,EACRuE,WAAYtL,EACZ5f,YAAaA,EACbC,eAAgBA,KAI5B,uBAAK7vB,UAAU,mBACV2tC,EAAaL,aACV,gBAAC,GAAD,CAAS36B,SAAUid,EAAapE,SAAUuE,GAAUpc,WAEvD,EAGAg6B,EAAaL,aAAevvC,OAAOgB,KAAK4uC,EAAaL,aAAalvC,OAAS,GAAMuvC,EAAaL,YAAYsf,UAAWxuD,OAAS,GAC3H,gBAAC,GAAD,CAAeyV,QAAS85B,EAAaL,YAAYsf,eAKjE,gBAAC,KAAD,CACI9sD,GAAG,cACHoe,SAAS,EACTvC,QAAS4kB,EACTj1B,OAAQlJ,IAAKC,UAEb,2BACI,uBAAKrC,UAAU,YACX,yBAAOA,UAAU,oBACjB,uBAAKA,UAAU,gBACX,yBAAOF,GAAG,UAAU2I,EAAE,mBACtB,yBAAO3I,GAAG,eAAe2I,EAAE,+BAGnC,2BACA,uBAAKzI,UAAU,iBACX,0BAAQmK,QAAS,kBAAMq2B,GAAgB,KAAS/3B,EAAE,mBAClD,0BAAQ0B,QAAS,WApFrD8/B,GAAgBvoC,EAAYjB,YAAa+uC,EAAQ,GAC5CzmC,MAAK,SAAAvD,GACF,OAAIA,EAASC,GACFD,EAASwD,OAET8F,QAAQE,OAAOxJ,MAG7BuD,MAAK,SAAAE,GACFyH,GAAY,MAEfxH,OAAM,SAAAC,GACHC,QAAQD,MAAMA,QAwEwE,OAAjB/G,IAAKC,SAAmB,MAAQ,UAIrF,gBAAC,KAAD,CACIvC,GAAG,eACHoe,SAAS,EACTvC,QAASswC,EACT3gD,OAAQlJ,IAAKC,UAEb,2BACI,uBAAKxC,IAAK0sD,GAAUvsD,UAAU,WAC1B,uBAAKA,UAAU,qBACZmsD,EAAa1pD,KAAI,SAAC1B,EAAU2B,GAAX,OAChB,uBAAK1C,UAAWe,EAASjB,KAAOsqC,EAAa,WAAa,GAAI9rC,IAAKoE,EACjEyH,QAAS,WACP6hD,EAAcjrD,EAASjB,MAGzB,yBAAqB,OAAjBsC,IAAKC,SAAmBtB,EAASkR,OAASlR,EAASmR,cAKjE,2BACA,uBAAKlS,UAAU,iBACX,0BACEmK,QAAS,WACP6hD,EAAc,MACdE,GAAqB,KACnBzjD,EAAE,mBACR,0BAAQ0B,QAAS,WA/IrD6iD,KAiJsCd,GAAqB,KACD,OAAlB9pD,IAAKC,SAAoB,YAAc,cAIvD,gBAAC,KAAD,CACIvC,GAAG,uBACHoe,SAAS,EACTvC,QAAS0wC,EACT/gD,OAAQlJ,IAAKC,UAEb,2BACI,uBAAKrC,UAAU,iBACX,yBAAOF,GAAG,WAAV,yBACA,yBAAOA,GAAG,gBAAV,4DAA4E,wBAAMqK,QAC9E,WACIqkC,EAAc6d,GACdC,GAAwB,KAH4C,QAA5E,MAOJ,2BACA,uBAAKtsD,UAAU,iBACX,0BAAQmK,QAAS,kBAAMmiD,GAAwB,KAA/C,gBC1W/BY,GAAiB,SAAC1tD,GAE3B,IAAQiJ,EAAMC,cAAND,EACA0kD,EAA+B3tD,EAA/B2tD,aAAc5rC,EAAiB/hB,EAAjB+hB,aAEtB,EAAsBhgB,aAAiBD,GAAhCI,EAAP,oBACA,EAAkCH,YAAe,GAAjD,mBAAOyxB,EAAP,KAAkBC,EAAlB,KACA,EAA8B1xB,YAAe,GAA7C,mBAAOghB,EAAP,KAAgB3J,EAAhB,KACA,EAA0CrX,WAAe,IAAzD,mBAAOgwB,EAAP,KAAsBC,EAAtB,KACA,EAAwDjwB,WAAe,IAAvE,mBAAO0wB,EAAP,KAA6BC,EAA7B,KACA,EAAkD3wB,WAAe,IAAjE,mBAAOswB,EAAP,KAA0BC,EAA1B,KACA,EAAgDvwB,WAAe,IAA/D,mBAAOoxB,EAAP,KAAyBC,EAAzB,KACA,EAA4CrxB,WAAe,MAA3D,mBAAO6rD,EAAP,KAAuBC,EAAvB,KACA,EAA0C9rD,WAAe,MAAzD,mBAAO+rD,EAAP,KAAsBC,EAAtB,KACA,EAA4DhsD,WAAe,CAAEypC,OAAQ,EAAGl5B,OAAQ,IAAhG,mBAAO07C,EAAP,KAA+BC,EAA/B,KACMpiB,EAAiB9pC,WACQuc,KAAvBa,mBAERpd,aAAgB,WACRghB,IACAzR,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,oBAChDE,aAAYH,SAASC,eAAe,mBACpCG,aAAW,CAAErJ,KAAM,iBAExB,CAAC4a,IAEJhhB,aAAgB,WACRggB,GACAA,EAAarN,YAClB,CAAC9R,IAAKC,WAETd,aAAgB,WAAM,4CAElB,kDAAAuD,EAAA,sEACuB6J,GAAMjN,EAAYjB,aAChCsI,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAJhC,8BAO+BwE,GAAoB9L,EAAYjB,aACtDsI,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAVhC,cAOQwiC,EAPR,gBAa2Bz+B,GAAarL,EAAYjB,aAC3CsI,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAhBhC,cAaQgrB,EAbR,iBAmB0B3mB,GAAY3L,EAAYjB,aACzCsI,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAtBhC,eAmBQme,EAnBR,OAyBUskB,EAAgB/pC,EAAYX,SAAZ,iCAAiDW,EAAYX,SAASjB,IAAO,GAzBvG,UA0B4BwpC,GAAc5nC,EAAYjB,YAAa,EAAGgrC,GAC7D1iC,MAAK,SAAAvD,GAAc,GAAIA,EAASC,GAAM,OAAOD,EAASwD,UA3B/D,SA0BQ0iC,EA1BR,UA8BMA,EAAcA,EAAYppC,QAAO,SAAAC,GAE/B,OADAA,EAAKopC,UAAYppC,EAAKopC,UAA6B,OAAjBvpC,IAAKC,SAAmB,YAAc,UAA6B,OAAjBD,IAAKC,SAAmB,YAAc,WACnHE,KAET8qD,EAAkB3hB,GAClB6hB,EAAiB7hB,IAGfE,EAtCR,UAsCmBF,SAtCnB,aAsCmB,EAAajpC,KAAI,SAAAF,GAC9B,MAAO,CAAEiS,KAAMjS,EAAKspC,YAGhBC,EAAM,IAAIpW,IACVhiB,EAAWk4B,EAAStpC,QAAO,SAAAC,GAC/B,IAAMwpC,EAAYD,EAAIE,IAAJ,OAAQzpC,QAAR,IAAQA,OAAR,EAAQA,EAAMiS,MAGhC,OAFAs3B,EAAIG,IAAJ,OAAQ1pC,QAAR,IAAQA,OAAR,EAAQA,EAAMiS,OAENu3B,KAGJG,EAlDV,uBAkDiCV,GAlDjC,CAkDiD,CAAE1rC,IAAM,EAAGoS,OAAQ,MAAOD,OAAQ,WACzEk6B,EAnDV,uBAmD0BnY,GAnD1B,CAmDsC,CAAEl0B,IAAM,EAAGoS,OAAQ,MAAOD,OAAQ,WAC9Doe,EApDV,uBAoD4BlJ,GApD5B,CAoDuC,CAAErnB,IAAM,EAAGoS,OAAQ,MAAOD,OAAQ,WAErEuf,EAAiB9d,GACjBwe,EAAwBga,GACxBpa,EAAqBqa,GACrBvZ,EAAoBvC,GAEpBjf,aAAYR,SAASC,eAAe,mBACpC+H,GAAW,GA5Df,6CAFkB,sBAClBA,GAAW,GADO,mCAgElBvH,KACD,CAACjP,IAAKC,WAETd,aAAgB,WACToxB,EAAiBv0B,SAAWmkB,IACxB7gB,EAAYX,SACXsqC,EAAe13B,QAAQ9R,MAAQH,EAAYX,SAASjB,GAEpDmzB,GAAa,MAEvB,CAACN,EAAkBpQ,IAErB,IAAMmrC,EAAkB,CACtB,CACEzrD,KAAuB,OAAjBG,IAAKC,SAAmB,YAAc,UAC5CR,OAAO,GACN,CACDI,KAAuB,OAAjBG,IAAKC,SAAmB,YAAc,WAC5CR,OAAO,GACN,CACHI,KAAuB,OAAjBG,IAAKC,SAAmB,QAAU,MACxCR,MAAO,OAIH8rD,EAAkB,uCAAG,4BAAA7oD,EAAA,0DACnB0oD,EADmB,gCAEa/jB,GAAsB/nC,EAAYjB,YAAa+sD,EAAwB,GAClGzkD,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UALT,OASnB4kD,GAPIA,EAFe,QASuBtrD,QAAO,SAAAC,GAE7C,OADAA,EAAKopC,UAAYppC,EAAKopC,UAA6B,OAAjBvpC,IAAKC,SAAmB,YAAc,UAA6B,OAAjBD,IAAKC,SAAmB,YAAc,WACnHE,KAGX8qD,EAAkBO,GAClB36B,GAAa,GAfM,uBAiBnBo6B,EAAkBC,GAjBC,4CAAH,qDA0CxB,OACI,gCACK/qC,EAAU,uBAAKziB,GAAG,mBACf,gCACI,uBAAKE,UAAS,gBAAWgzB,EAAY,SAAW,KAC5C,uBAAKhzB,UAAU,yBACX,uBAAKA,UAAU,eACX,wBAAMA,UAAU,qBAChB,yBAAIyI,EAAE,4BAEV,uBAAKzI,UAAU,eACX,uBAAKA,UAAU,mBACX,gBAAC,KAAD,CACIA,UAAU,UACVqU,YAAa5L,EAAE,iCACf6C,OAAQlJ,IAAKC,SACbR,MAAO2rD,GAA0BA,EAAuBnjB,SAAWmjB,EAAuBnjB,SAAW,GACrGviB,KAAM,SAACjlB,GAAD,OAAO4qD,GACT,SAAAD,GAAsB,kCACfA,GADe,IAElBnjB,SAAUxnC,EAAEhB,gBAMhC,uBAAK7B,UAAU,oBACTgzB,GACE,uBAAKhzB,UAAU,aACX,gBAAC,KAAD,CACIA,UAAU,mBACVoK,SAAS,mBACTD,QAAS,kBAAM8oB,GAAcD,KAC7B,wBAAMhzB,UAAU,qBACfyI,EAAE,wBAIduqB,GACG,uBAAKhzB,UAAU,aACX,gBAAC,KAAD,CACIA,UAAU,iCACVoK,SAAS,mBACTD,QAAS,kBAAM8oB,GAAcD,KAC7B,wBAAMhzB,UAAU,qBACfyI,EAAE,wBAIf,uBAAKzI,UAAU,aACX,gBAAC,KAAD,CAAiBoK,SAAS,mBAEtBD,QAAS,kBAAMwjD,MAEdllD,EAAE,yBAKlBuqB,GACG,uBAAKhzB,UAAU,8BACX,gBAAC,KAAD,CACIF,GAAG,OACHsK,SAAS,WACTiK,YAAa5L,EAAE,mBACf6C,OAAQlJ,IAAKC,SACb4lB,OAAQ,SAACplB,GAAD,OAAO4qD,GACX,SAAAD,GAAsB,kCACfA,GADe,IAElBhhB,WAAY3pC,EAAEhB,OAASgB,EAAEhB,MAAM,GAAGyH,cAAckX,MAAM,KAAK,GAC3DksB,QAAS7pC,EAAEhB,OAASgB,EAAEhB,MAAM,GAAGyH,cAAckX,MAAM,KAAK,WAIpE,gBAAC,KAAD,CACI1gB,GAAG,QACH8sC,UAAU,EACVxiC,SAAS,WACTiK,YAAa5L,EAAE,qBACfqD,WAAYylB,EACZ3lB,OAAQ,CAAE/J,MAAO,QAEjBomB,OAAQ,SAACplB,GAAD,OAAO4qD,GACX,SAAAD,GAAsB,kCACfA,GADe,IAElB3gB,MAAOhqC,EAAEhB,cAIrB,gBAAC,KAAD,CACI/B,GAAG,cACHsK,SAAS,WACTiK,YAAa5L,EAAE,4BACfqgB,iBAAe,EACfhd,WAAYmmB,EACZrmB,OAAQ,CAAE3J,KAAuB,OAAjBG,IAAKC,SAAmB,SAAW,SAAUR,MAAO,MACpEyJ,OAAQlJ,IAAKC,SACb4lB,OAAQ,SAACplB,GAAD,OAAO4qD,GACX,SAAAD,GAAsB,kCACfA,GADe,IAElB1gB,cAAejqC,EAAEhB,cAK7B,gBAAC,KAAD,CACI/B,GAAG,SACHsK,SAAS,WACTiK,YAAa5L,EAAE,sBACfqgB,iBAAe,EACfhd,WAAY+lB,EACZhJ,gBAAgB,EAChBjd,OAAQ,CAAE3J,KAAwB,OAAjBG,IAAKC,SAAoB,SAAW,SAAUR,MAAO,MACtEyJ,OAAQlJ,IAAKC,SAEbR,MAAO2rD,EAAyBA,EAAuB17C,OAAS,GAChEmW,OAAQ,SAACplB,GAAD,OAAO4qD,GACX,SAAAD,GAAsB,kCACfA,GADe,IAElB17C,OAAQjP,EAAEhB,cAItB,gBAAC,KAAD,CACI/B,GAAG,WACHD,IAAK,SAAAktC,GAAY,OAAI1B,EAAe13B,QAAUo5B,GAC9C3iC,SAAS,WACTiK,YAAa5L,EAAE,uBACfqgB,iBAAe,EACfhd,WAAY6mB,EACZ/mB,OAAQ,CAAE3J,KAAwB,OAAjBG,IAAKC,SAAoB,SAAW,SAAUR,MAAO,MACtEA,MAAO2rD,EAAyBA,EAAuBx7C,WAAatQ,EAAYX,SAAUW,EAAYX,SAASjB,GAAK,GACpHwL,OAAQlJ,IAAKC,SACb4lB,OAAQ,SAACplB,GAAD,OAAO4qD,GACX,SAAAD,GAAsB,kCACfA,GADe,IAElBx7C,WAAYnP,EAAEhB,cAI1B,gBAAC,KAAD,CACI/B,GAAG,SACHsK,SAAS,WACTiK,YAAa5L,EAAE,qBACfqgB,iBAAe,EACfhd,WAAY4hD,EACZ9hD,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,SAC/ByJ,OAAQlJ,IAAKC,SACbR,MAAO2rD,GAA0BA,EAAuB7hB,UACxD1jB,OAAQ,SAACplB,GAAD,OAAO4qD,GACX,SAAAD,GAAsB,kCACfA,GADe,IAElB7hB,UAAW9oC,EAAEhB,gBAOrC,uBAAK7B,UAAU,iBACX,gBAAC,KAAD,CACIF,GAAG,WACHgM,WAAYshD,EACZ72B,eAAgB,CAAE5uB,KAAM,QACxBkhB,gBAAgB,EAChB2N,aAAa,EACbC,cAAc,EACdC,kBAAkB,EAClB72B,IAAK,SAAC05B,GAAD,OAAU4zB,EAAa5zB,IAC5BjuB,OAAQlJ,IAAKC,UACb,gBAAC,KAAD,KACI,gBAAC,KAAD,CACIyZ,MAAM,OACNhI,SAlMZ,SAACX,GACjB,IAAM06C,EAAgB,IAAIvmD,KAAK6L,EAAKnP,MACpC,OACI,4BAAO6pD,EAActmD,mBAAmBnF,IAAKC,YAgMrBqP,WAAYjJ,EAAE,mBACd/I,MAAM,QAEV,gBAAC,KAAD,CACIoc,MAAM,SACNhI,SAjMX,SAACX,GAClB,OACI,wBAAMnT,UAAU,QAAQmK,QAAS,kBAAM3K,EAAMm3B,KAAKxjB,KAAQA,EAAKiC,SAgMvC1D,WAAYjJ,EAAE,mBACd/I,MAAM,QAEV,gBAAC,KAAD,CACIoc,MAAM,UACNpK,WAAYjJ,EAAE,qBAEd/I,MAAM,QAEV,gBAAC,KAAD,CACIoc,MAAM,YACNhI,SAvMV,SAACX,GACrB,MAAuB,cAAnBA,EAAKw4B,UACC,wBAAM3rC,UAAU,cAA+B,OAAjBoC,IAAKC,SAAmB,YAAc,WAEpE,wBAAMrC,UAAU,cAA+B,OAAjBoC,IAAKC,SAAmB,YAAc,aAoMhDqP,WAAYjJ,EAAE,qBACd/I,MAAM,SAGd,gBAAC,KAAD,CAAQ0d,SAAU,CAACwZ,KAAQC,KAAMC,KAAaC,KAAQC,KAAMC,KAAMC,KAAY3Z,KAAS4Z,aH5WtG22B,GAAa,WAEtB,IAAQrlD,EAAMC,cAAND,EAER,EAAsBlH,aAAiBD,GAAhCI,EAAP,oBACA,EAAgCH,YAAe,GAA/C,mBAAO6D,EAAP,KAAiBsL,EAAjB,KACA,EAAsCnP,WAAe,MAArD,mBAAOwsD,EAAP,KAAoBC,EAApB,KACA,EAAwCzsD,WAAe,MAAvD,mBAAOggB,EAAP,KAAqB6rB,EAArB,KAEA7rC,aAAgB,WACZ,IAAImqB,EAAoBhqB,EAAYR,YACpCoqB,GAAiBI,EAAkBppB,QAAO,SAACpE,GAAD,MAAwB,UAAjBA,EAAEiD,cAAwBsB,KAAI,SAACvE,GAAD,OAAQA,EAAEkD,gBAC1F,CAACM,IAEJ,IAAMquB,EAAY,CACd0H,OAAQnM,IAAkC,KAC1C+L,OAAQ,kBAAM42B,KACd12B,OAAQ,GACRC,IAAK,kBAAM9mB,GAAY,IACvBgnB,KAAM,IAQJu2B,EAAkB,WACpB,GAAI1sC,EAAc,CACd,IAAIrU,EAAO9K,IAAKC,SACZgrC,EAAqB9rB,EACzB8rB,EAAmBvhC,WAAWrJ,KAAI,SAAU0wB,GAGxC,OAFAA,EAAEwY,UAAYxY,EAAEwY,UAAqB,OAATz+B,EAAgB,YAAc,UAAqB,OAATA,EAAgB,YAAc,WACpGimB,EAAEnvB,KAAO,IAAIsD,KAAK6rB,EAAEnvB,MAAMuD,mBAAmB2F,GACtCimB,KAEXka,EAAmBlY,gBAI3B,OACI,gCACiC,OAA5BzzB,EAAYjB,YAAuB,gBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WACzDzE,EACoB,OAAhB2oD,EACI,gBAAC,IAAD,CAAU3pD,MAAM,EAAMyF,GAAG,0BAEzB,gBAAC,IAAD,CAAUzF,MAAM,EAAMyF,GAAE,gCAA2BkkD,KAEnD,gCACI,gBAAC,GAAD,CAAoBjuD,GAAG,OAEvB,uBAAKE,UAAU,eACf,gBAACwM,EAAA,EAAD,CAAWxM,UAAU,gBACjB,uBAAKA,UAAU,mBACX,gBAACmhB,GAAA,EAAD,KACI,uBAAKnhB,UAAU,mBACX,uBAAKA,UAAU,SACX,0BAAKyI,EAAE,uBAGf,uBAAKzI,UAAU,mBACX,uBAAKA,UAAU,WACX,gBAAC,GAAD,CAASwrB,SAAUuE,QAKnC,gBAAC5O,GAAA,EAAD,KACI,uBAAKnhB,UAAU,UACX,gBAAC,GAAD,CACI22B,KAjDlB,SAACrR,GACnB0oC,EAAe1oC,EAAKxlB,IACpB4Q,GAAY,IAgDwB6Q,aAAcA,EACd4rC,aAAc/f,UI9D7C8gB,GAAiB,SAAC1uD,GAE3B,IAAIgwC,EAAShwC,EAAMqG,MAAMiqB,OAAOhwB,GAExB2I,EAAMC,cAAND,EAER,EAAsBlH,aAAiBD,GAAhCI,EAAP,oBACA,EAA0GH,aAAiBksC,IAAnHE,EAAR,EAAQA,aAAcC,EAAtB,EAAsBA,gBAAiBS,EAAvC,EAAuCA,gBAAiBC,EAAxD,EAAwDA,mBAAoBE,EAA5E,EAA4EA,cAAeD,EAA3F,EAA2FA,WAC3F,EAAgChtC,YAAe,GAA/C,mBAAO6D,EAAP,KAAiBsL,EAAjB,KACA,EAAoCnP,YAAe,GAAnD,mBAAmBijC,GAAnB,WACA,EAAwCjjC,YAAe,GAAvD,mBAAOg/B,EAAP,KAAqBC,EAArB,KACA,EAAoCj/B,WAAe,MAAnD,mBAAO6oC,EAAP,KAAmB4hB,EAAnB,KACA,EAAkDzqD,YAAe,GAAjE,mBAAO0qD,EAAP,KAA0BC,EAA1B,KACA,EAAwC3qD,WAAe,IAAvD,mBAAO4qD,EAAP,KAAqBC,EAArB,KACA,EAAwD7qD,YAAe,GAAvE,mBAAO8qD,EAAP,KAA6BC,EAA7B,KACA,EAAsC/qD,YAAe,GAArD,mBAAOquB,EAAP,KAAoBC,EAApB,KAEM08B,GAAWhrD,WAEXirD,GAAY,SAAC3sD,GAAS,IAAD,GACzB,OAAI0sD,SAAJ,IAAIA,IAAJ,UAAIA,GAAU54C,eAAd,aAAI,EAAmB84C,SAAnB,OAA4B5sD,QAA5B,IAA4BA,OAA5B,EAA4BA,EAAK5B,UAGrCiuD,GAAqB,IAGvB3qD,aAAgB,WACRgtC,GAAYzrC,OAAOC,SAASC,WACjC,CAACurC,IAEJ,IAAIxe,GAAYxuB,SAAa,CACzBkqB,KAAM,QACNzP,MAAO,YACPmQ,cAAeqjB,EACfvjB,mBAAoBujB,EACpBhjB,gBAAgB,EAChBwD,QAAS,kBAAMwU,GAAc,IAC7B7Y,YAAY,EACZI,eAAcyjB,GAAS,kBAAM2e,MAC7BriC,aAAY0jB,GAAS,kBAAM0c,GAAqB,IAChDhgC,aAAS3Q,EACT6Q,KAAM,kBACNC,UAASmjB,GAAS,kBAAMlB,GAAmB,IAC3C/hB,UAAW,WACPqhB,EAAgB,CACZN,YAAa,KACbC,UAAW,KACXC,WAAY,OAEhB98B,GAAY,IAEhBgc,YAAW8iB,GAAS,kBAAMhP,GAAgB,MAGxCmsB,GAAe,CACjB7sD,GAAI,KACJsV,OAAQ,GACRmrC,UAAW,GACX1U,QAAS,GACTiB,cAAe,EACfh7B,OAAQ,EACRE,WAAY,GACZhO,KAAM,IAAIsD,KACVk5C,YAAa,GACbnW,SAAU,KACVsB,WAAW,EACXtpC,SAAU,EACVuqD,UAAW,IAIfrrD,aAAgB,WACRiuC,EAAQ,uCACR,8BAAA1qC,EAAA,sEAC6B8kC,GAAaloC,EAAYjB,YAAa+uC,EAAQ,GAClEzmC,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAJhC,cACQ6jD,EADR,gBAO4BtiB,GAA8B7oC,EAAYjB,YAAa+uC,GAAQzmC,MAAK,SAAAvD,GACxF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAT5B,OAOQ8jD,EAPR,OAYI/8B,GAAUpc,QAAQsY,kBAAoBujB,EAAgC,IAAvBsd,EAAY1uD,QAAgBqJ,EAAe,EAAG,OAAQ/F,GAAe+F,EAAe,EAAG,SAAU/F,GAEhJksC,GAAgB,SAAAD,GAAY,kCACrBA,GADqB,IAExBL,YAAauf,EACbtf,UAAWiC,EACXC,cAAeqd,OAlBvB,2CADQ,oDAsBRz7C,GAIAu8B,EAAgB,CACZN,YAAaqf,GACbpf,UAAW,KACXC,WAAY,KACZiC,cAAe,OAGxB,CAACD,IAEJjuC,aAAgB,WACdwuB,GAAUpc,QAAU,CAClB8X,KAAM,QACNzP,MAAO,YACPmQ,cAAeqjB,EACfvjB,mBAAoBujB,EACpBhjB,gBAAgB,EAChBwD,QAAS,kBAAMwU,GAAc,IAC7B7Y,YAAY,EACZI,eAAcyjB,GAAS,kBAAM2e,MAC7BriC,aAAY0jB,GAAS,kBAAM0c,GAAqB,IAChDhgC,aAAS3Q,EACT6Q,KAAM,kBACNC,UAASmjB,GAAS,kBAAMlB,GAAmB,IAC3C/hB,UAAW,WACPqhB,EAAgB,CACZN,YAAa,KACbC,UAAW,KACXC,WAAY,OAEhB98B,GAAY,IAEhBgc,YAAW8iB,GAAS,kBAAMhP,GAAgB,OAE3C,CAAC+N,IAEJhtC,aAAgB,YACO,uCAAG,4BAAAuD,EAAA,sEAEAuI,GAAY3L,EAAYjB,aAAasI,MACzD,SAACvD,GACC,GAAIA,EAASC,GACX,OAAOD,EAASwD,UALA,OAElBme,EAFkB,OAStBilC,EAAgBjlC,GATM,2CAAH,qDAWrB4lC,GAGEn8C,SAAS6T,iBAAiB,YAAa+nC,MAOxC,IAGH,IAMI2B,GAAqB,WACrBjkB,GAAmBxoC,EAAYjB,YAAa+uC,EAAQ,GAC/CzmC,MAAK,SAAAvD,GACF,OAAIA,EAASC,GACFD,EAASwD,OAET8F,QAAQE,OAAOxJ,MAG7BuD,MAAK,SAAAE,GACFyH,GAAY,MAEfxH,OAAM,SAAAC,GACHC,QAAQD,MAAMA,OAQtB6jD,GAAwB,uCAAG,kCAAAloD,EAAA,6DAErBoI,EAAOygC,EAAaL,YAAY/3B,SAAiD,IAAtCo4B,EAAaL,YAAY/3B,SAAiB,KAAO,KAAOnT,IAAKC,SAFnF,SAGWm4C,GAAqB94C,EAAa0oC,EAAYl9B,GAHzD,kBAGpButC,OAAQC,EAHY,EAGZA,cACTrQ,EAAWsD,EAAaL,YAAYjD,SAASpkC,QAAQ,kCAA1C,qDAA2Hy0C,EAA3H,UAEnBvQ,GAA0BzoC,EAAYjB,YAAa+uC,EAAQ,EAAGpF,EAAYC,GACrEthC,MAAK,SAAAvD,GACF,OAAIA,EAASC,GACFD,EAASwD,OAET8F,QAAQE,OAAOxJ,MAG7BuD,MAAK,SAAAE,GACJqjD,EAAwBrjD,MAEzBC,OAAM,SAAAC,GACHC,QAAQD,MAAMA,MAlBO,2CAAH,qDAuC5B,OACI,gCACiC,OAA5BzH,EAAYjB,YAAuB,gBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WACzD0kC,EAAa,gBAAC,IAAD,CAAUnqC,MAAM,EAAMyF,GAAE,gCAA2B0kC,KAChEnpC,EAAW,gBAAC,IAAD,CAAUhB,MAAM,EAAMyF,GAAG,sBAChCwkC,EAAkB,gBAAC,GAAD,CAAUkI,OAAQ,EAAGjB,QAAS9F,IAC5C,gCACI,gBAAC,GAAD,CAAoB1vC,GAAG,OAEvB,uBAAKE,UAAU,eACf,gBAACwM,EAAA,EAAD,CAAWxM,UAAU,gBACjB,uBAAKA,UAAU,mBACX,gBAACmhB,GAAA,EAAD,KACI,uBAAKnhB,UAAU,UACX,uBAAKA,UAAU,SACX,0BAAcyI,EAAT+mC,EAAW,uBAA4B,+BAK5D,gBAACruB,GAAA,EAAD,KACI,uBAAKnhB,UAAU,mBACV2tC,EAAaL,aAAeK,EAAaL,YAAYxtC,IAClD,gBAAC,GAAD,CAAe0vC,OAAQA,IAE1B7B,EAAaL,aACV,gBAAC,GAAD,CACIxT,aAAc,EACdihB,YAAW,UAAKx1C,0BAAL,oCACXy1C,WAAU,UAAKvE,GAAL,sBACVwE,aAAa,oBACb1E,OAAQ,EACRuE,WAAYtL,EACZ5f,YAAaA,EACbC,eAAgBA,KAI5B,uBAAK7vB,UAAU,mBACV2tC,EAAaL,aACV,gBAAC,GAAD,CAAS36B,SAAUid,EAAapE,SAAUuE,GAAUpc,WAEvD,EAGAg6B,EAAaL,aAAevvC,OAAOgB,KAAK4uC,EAAaL,aAAalvC,OAAS,GAAMuvC,EAAaL,YAAYsf,UAAWxuD,OAAS,GAC3H,gBAAC,GAAD,CAAeyV,QAAS85B,EAAaL,YAAYsf,eAKjE,gBAAC,KAAD,CACI9sD,GAAG,cACHoe,SAAS,EACTvC,QAAS4kB,EACTj1B,OAAQlJ,IAAKC,UAEb,2BACI,uBAAKrC,UAAU,YACX,yBAAOA,UAAU,oBACjB,uBAAKA,UAAU,gBACX,yBAAOF,GAAG,UAAU2I,EAAE,mBACtB,yBAAO3I,GAAG,eAAe2I,EAAE,+BAGnC,2BACA,uBAAKzI,UAAU,iBACX,0BAAQmK,QAAS,kBAAMq2B,GAAgB,KAAS/3B,EAAE,mBAClD,0BAAQ0B,QAAS,WApFjD8/B,GAAgBvoC,EAAYjB,YAAa+uC,EAAQ,GAC5CzmC,MAAK,SAAAvD,GACF,OAAIA,EAASC,GACFD,EAASwD,OAET8F,QAAQE,OAAOxJ,MAG7BuD,MAAK,SAAAE,GACFyH,GAAY,MAEfxH,OAAM,SAAAC,GACHC,QAAQD,MAAMA,QAwEsE,OAAjB/G,IAAKC,SAAmB,MAAQ,UAIvF,gBAAC,KAAD,CACIvC,GAAG,eACHoe,SAAS,EACTvC,QAASswC,EACT3gD,OAAQlJ,IAAKC,UAEb,2BACI,uBAAKxC,IAAK0sD,GAAUvsD,UAAU,WAC1B,uBAAKA,UAAU,qBACZmsD,EAAa1pD,KAAI,SAAC1B,EAAU2B,GAAX,OAChB,uBAAK1C,UAAWe,EAASjB,KAAOsqC,EAAa,WAAa,GAAI9rC,IAAKoE,EACjEyH,QAAS,WACP6hD,EAAcjrD,EAASjB,MAGzB,yBAAqB,OAAjBsC,IAAKC,SAAmBtB,EAASkR,OAASlR,EAASmR,cAKjE,2BACA,uBAAKlS,UAAU,iBACX,0BACEmK,QAAS,WACP6hD,EAAc,MACdE,GAAqB,KACnBzjD,EAAE,mBACR,0BAAQ0B,QAAS,WA7InD6iD,KA+IoCd,GAAqB,KACF,OAAjB9pD,IAAKC,SAAmB,YAAc,cAItD,gBAAC,KAAD,CACIvC,GAAG,uBACHoe,SAAS,EACTvC,QAAS0wC,EACT/gD,OAAQlJ,IAAKC,UAEb,2BACI,uBAAKrC,UAAU,iBACX,yBAAOF,GAAG,WAAV,yBACA,yBAAOA,GAAG,gBAAV,4DAA4E,wBAAMqK,QAC9E,WACIqkC,EAAc6d,GACdC,GAAwB,KAH4C,QAA5E,MAOJ,2BACA,uBAAKtsD,UAAU,iBACX,0BAAQmK,QAAS,kBAAMmiD,GAAwB,KAA/C,gBCjW3B8B,GAAoB,SAAC5uD,GAE9B,IAAQiJ,EAAMC,cAAND,EACA4lD,EAAmC7uD,EAAnC6uD,iBAAkB9sC,EAAiB/hB,EAAjB+hB,aAE1B,EAAsBhgB,aAAiBD,GAAhCI,EAAP,oBACA,EAAkCH,YAAe,GAAjD,mBAAOyxB,EAAP,KAAkBC,EAAlB,KACA,EAA8B1xB,YAAe,GAA7C,mBAAOghB,EAAP,KAAgB3J,EAAhB,KACA,EAA0CrX,WAAe,IAAzD,mBAAOgwB,EAAP,KAAsBC,EAAtB,KACA,EAAwDjwB,WAAe,IAAvE,mBAAO0wB,EAAP,KAA6BC,EAA7B,KACA,EAAkD3wB,WAAe,IAAjE,mBAAOswB,EAAP,KAA0BC,EAA1B,KACA,EAAgDvwB,WAAe,IAA/D,mBAAOoxB,EAAP,KAAyBC,EAAzB,KACA,EAAoDrxB,WAAe,MAAnE,mBAAO+sD,EAAP,KAA2BC,EAA3B,KACA,EAAgDhtD,WAAe,MAA/D,mBAAOitD,EAAP,KAAyBC,EAAzB,KACA,EAAoEltD,WAAe,CAAEypC,OAAQ,EAAGl5B,OAAQ,IAAxG,mBAAO48C,EAAP,KAAmCC,EAAnC,KACMtjB,EAAiB9pC,WACQuc,KAAvBa,mBAERpd,aAAgB,WACRghB,IACAzR,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,uBAChDE,aAAYH,SAASC,eAAe,sBACpCG,aAAW,CAAErJ,KAAM,iBAExB,CAAC4a,IAEJhhB,aAAgB,WAAM,4CAElB,kDAAAuD,EAAA,sEACuB6J,GAAMjN,EAAYjB,aAChCsI,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAJhC,8BAO+BwE,GAAoB9L,EAAYjB,aACtDsI,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAVhC,cAOQwiC,EAPR,gBAa2Bz+B,GAAarL,EAAYjB,aAC3CsI,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAhBhC,cAaQgrB,EAbR,iBAmB0B3mB,GAAY3L,EAAYjB,aACzCsI,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAtBhC,eAmBQme,EAnBR,OAyBUskB,EAAgB/pC,EAAYX,SAAZ,iCAAiDW,EAAYX,SAASjB,IAAO,GAzBvG,UA0B4BwpC,GAAc5nC,EAAYjB,YAAa,EAAGgrC,GAC7D1iC,MAAK,SAAAvD,GAAc,GAAIA,EAASC,GAAM,OAAOD,EAASwD,UA3B/D,SA0BQ0iC,EA1BR,UA8BMA,EAAcA,EAAYppC,QAAO,SAAAC,GAE/B,OADAA,EAAKopC,UAAYppC,EAAKopC,UAA6B,OAAjBvpC,IAAKC,SAAmB,YAAc,UAA6B,OAAjBD,IAAKC,SAAmB,YAAc,WACnHE,KAEPgsD,EAAsB7iB,GACtB+iB,EAAoB/iB,IAGpBE,EAtCR,UAsCmBF,SAtCnB,aAsCmB,EAAajpC,KAAI,SAAAF,GAC9B,MAAO,CAAEiS,KAAMjS,EAAKspC,YAGhBC,EAAM,IAAIpW,IACVhiB,EAAWk4B,EAAStpC,QAAO,SAAAC,GAC/B,IAAMwpC,EAAYD,EAAIE,IAAJ,OAAQzpC,QAAR,IAAQA,OAAR,EAAQA,EAAMiS,MAGhC,OAFAs3B,EAAIG,IAAJ,OAAQ1pC,QAAR,IAAQA,OAAR,EAAQA,EAAMiS,OAENu3B,KAGJG,EAlDV,uBAkDiCV,GAlDjC,CAkDiD,CAAE1rC,IAAM,EAAGoS,OAAQ,MAAOD,OAAQ,WACzEk6B,EAnDV,uBAmD0BnY,GAnD1B,CAmDsC,CAAEl0B,IAAM,EAAGoS,OAAQ,MAAOD,OAAQ,WAC9Doe,EApDV,uBAoD4BlJ,GApD5B,CAoDuC,CAAErnB,IAAM,EAAGoS,OAAQ,MAAOD,OAAQ,WAErEuf,EAAiB9d,GACjBwe,EAAwBga,GACxBpa,EAAqBqa,GACrBvZ,EAAoBvC,GAEpBjf,aAAYR,SAASC,eAAe,sBACpC+H,GAAW,GA5Df,6CAFkB,sBAClBA,GAAW,GADO,mCAgElBvH,KACD,CAACjP,IAAKC,WAETd,aAAgB,WACToxB,EAAiBv0B,SAAWmkB,IACxB7gB,EAAYX,SACXsqC,EAAe13B,QAAQ9R,MAAQH,EAAYX,SAASjB,GAEpDmzB,GAAa,MAEvB,CAACN,EAAkBpQ,IAErB,IAAMqsC,EAAsB,CAAC,CACzB3sD,KAAuB,OAAjBG,IAAKC,SAAmB,YAAc,UAC5CR,OAAO,GACR,CACCI,KAAuB,OAAjBG,IAAKC,SAAmB,YAAc,WAC5CR,OAAO,GACR,CACDI,KAAuB,OAAjBG,IAAKC,SAAmB,QAAU,MACxCR,MAAO,OAIHgtD,EAAqB,uCAAG,4BAAA/pD,EAAA,0DACtB4pD,EADsB,gCAEajlB,GAAsB/nC,EAAYjB,YAAaiuD,EAA4B,GACzG3lD,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UALN,OAStB8lD,GAPIA,EAFkB,QAS0BxsD,QAAO,SAAAC,GAEnD,OADAA,EAAKopC,UAAYppC,EAAKopC,UAA6B,OAAjBvpC,IAAKC,SAAmB,YAAc,UAA6B,OAAjBD,IAAKC,SAAmB,YAAc,WACnHE,KAGXgsD,EAAsBO,GAEtB77B,GAAa,GAhBS,uBAkBtBs7B,EAAsBC,GAlBA,4CAAH,qDAsB3BjtD,aAAgB,WACRggB,GACAA,EAAarN,YAClB,CAAC9R,IAAKC,WAuBT,OACI,gCACKkgB,EAAU,uBAAKziB,GAAG,sBACf,gCACI,uBAAKE,UAAS,gBAAWgzB,EAAY,SAAW,KAC5C,uBAAKhzB,UAAU,yBACX,uBAAKA,UAAU,eACX,wBAAMA,UAAU,qBAChB,yBAAIyI,EAAE,+BAEV,uBAAKzI,UAAU,eACX,uBAAKA,UAAU,mBACX,gBAAC,KAAD,CACIA,UAAU,UACVqU,YAAa5L,EAAE,oCACf6C,OAAQlJ,IAAKC,SACbR,MAAO6sD,GAA8BA,EAA2BrkB,SAAWqkB,EAA2BrkB,SAAW,GACjHviB,KAAM,SAACjlB,GAAD,OAAO8rD,GACT,SAAAD,GAA0B,kCACnBA,GADmB,IAEtBrkB,SAAUxnC,EAAEhB,gBAMhC,uBAAK7B,UAAU,oBACTgzB,GACE,uBAAKhzB,UAAU,aACX,gBAAC,KAAD,CACIA,UAAU,mBACVoK,SAAS,mBACTD,QAAS,kBAAM8oB,GAAcD,KAC7B,wBAAMhzB,UAAU,qBACfyI,EAAE,2BAIduqB,GACG,uBAAKhzB,UAAU,aACX,gBAAC,KAAD,CACIA,UAAU,iCACVoK,SAAS,mBACTD,QAAS,kBAAM8oB,GAAcD,KAC7B,wBAAMhzB,UAAU,qBACfyI,EAAE,2BAIf,uBAAKzI,UAAU,aACX,gBAAC,KAAD,CAAiBoK,SAAS,mBAEtBD,QAAS,kBAAM0kD,MAEdpmD,EAAE,4BAKlBuqB,GACG,uBAAKhzB,UAAU,8BACX,gBAAC,KAAD,CACIF,GAAG,OACHsK,SAAS,WACTiK,YAAa5L,EAAE,sBACf6C,OAAQlJ,IAAKC,SACb4lB,OAAQ,SAACplB,GAAD,OAAO8rD,GACX,SAAAD,GAA0B,kCACnBA,GADmB,IAEtBliB,WAAY3pC,EAAEhB,OAASgB,EAAEhB,MAAM,GAAGyH,cAAckX,MAAM,KAAK,GAC3DksB,QAAS7pC,EAAEhB,OAASgB,EAAEhB,MAAM,GAAGyH,cAAckX,MAAM,KAAK,WAIpE,gBAAC,KAAD,CACI1gB,GAAG,QACH8sC,UAAU,EACVxiC,SAAS,WACTiK,YAAa5L,EAAE,wBACfqD,WAAYylB,EACZ3lB,OAAQ,CAAE/J,MAAO,QAEjBomB,OAAQ,SAACplB,GAAD,OAAO8rD,GACX,SAAAD,GAA0B,kCACnBA,GADmB,IAEtB7hB,MAAOhqC,EAAEhB,cAIrB,gBAAC,KAAD,CACI/B,GAAG,cACHsK,SAAS,WACTiK,YAAa5L,EAAE,+BACfqgB,iBAAe,EACfhd,WAAYmmB,EACZrmB,OAAQ,CAAE3J,KAAuB,OAAjBG,IAAKC,SAAmB,SAAW,SAAUR,MAAO,MACpEyJ,OAAQlJ,IAAKC,SACb4lB,OAAQ,SAACplB,GAAD,OAAO8rD,GACX,SAAAD,GAA0B,kCACnBA,GADmB,IAEtB5hB,cAAejqC,EAAEhB,cAK7B,gBAAC,KAAD,CACI/B,GAAG,SACHsK,SAAS,WACTiK,YAAa5L,EAAE,yBACfqgB,iBAAe,EACfhd,WAAY+lB,EACZhJ,gBAAgB,EAChBjd,OAAQ,CAAE3J,KAAwB,OAAjBG,IAAKC,SAAoB,SAAW,SAAUR,MAAO,MACtEyJ,OAAQlJ,IAAKC,SAEbR,MAAO6sD,EAA6BA,EAA2B58C,OAAS,GACxEmW,OAAQ,SAACplB,GAAD,OAAO8rD,GACX,SAAAD,GAA0B,kCACnBA,GADmB,IAEtB58C,OAAQjP,EAAEhB,cAItB,gBAAC,KAAD,CACI/B,GAAG,WACHD,IAAK,SAAAktC,GAAY,OAAI1B,EAAe13B,QAAUo5B,GAC9C3iC,SAAS,WACTiK,YAAa5L,EAAE,0BACfqgB,iBAAe,EACfhd,WAAY6mB,EACZ/mB,OAAQ,CAAE3J,KAAwB,OAAjBG,IAAKC,SAAoB,SAAW,SAAUR,MAAO,MACtEA,MAAO6sD,EAA6BA,EAA2B18C,WAAatQ,EAAYX,SAAUW,EAAYX,SAASjB,GAAK,GAC5HwL,OAAQlJ,IAAKC,SACb4lB,OAAQ,SAACplB,GAAD,OAAO8rD,GACX,SAAAD,GAA0B,kCACnBA,GADmB,IAEtB18C,WAAYnP,EAAEhB,cAI1B,gBAAC,KAAD,CACI/B,GAAG,SACHsK,SAAS,WACTiK,YAAa5L,EAAE,wBACfqgB,iBAAe,EACfhd,WAAY8iD,EACZhjD,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,SAC/ByJ,OAAQlJ,IAAKC,SACbR,MAAO6sD,GAA8BA,EAA2B/iB,UAChE1jB,OAAQ,SAACplB,GAAD,OAAO8rD,GACX,SAAAD,GAA0B,kCACnBA,GADmB,IAEtB/iB,UAAW9oC,EAAEhB,gBAOrC,uBAAK7B,UAAU,iBACX,gBAAC,KAAD,CACIF,GAAG,WACHgM,WAAYwiD,EACZ/3B,eAAgB,CAAE5uB,KAAM,QACxBkhB,gBAAgB,EAChB2N,aAAa,EACbC,cAAc,EACdC,kBAAkB,EAClB72B,IAAK,SAAC05B,GAAD,OAAU80B,EAAiB90B,IAChCjuB,OAAQlJ,IAAKC,UACb,gBAAC,KAAD,KACI,gBAAC,KAAD,CACIyZ,MAAM,OACNhI,SAlMR,SAACX,GACrB,IAAM47C,EAAoB,IAAIznD,KAAK6L,EAAKnP,MACxC,OACI,4BAAO+qD,EAAkBxnD,mBAAmBnF,IAAKC,YAgMzBqP,WAAYjJ,EAAE,sBACd/I,MAAM,QAEV,gBAAC,KAAD,CACIoc,MAAM,SACNhI,SAjMP,SAACX,GACtB,OACI,wBAAMnT,UAAU,QAAQmK,QAAS,kBAAM3K,EAAMm3B,KAAKxjB,KAAQA,EAAKiC,SAgMvC1D,WAAYjJ,EAAE,sBACd/I,MAAM,QAEV,gBAAC,KAAD,CACIoc,MAAM,UACNpK,WAAYjJ,EAAE,wBAEd/I,MAAM,QAEV,gBAAC,KAAD,CACIoc,MAAM,YACNhI,SAvMN,SAACX,GACzB,MAAuB,cAAnBA,EAAKw4B,UACC,wBAAM3rC,UAAU,cAA+B,OAAjBoC,IAAKC,SAAmB,YAAc,WAEpE,wBAAMrC,UAAU,cAA+B,OAAjBoC,IAAKC,SAAmB,YAAc,aAoMhDqP,WAAYjJ,EAAE,wBACd/I,MAAM,SAGd,gBAAC,KAAD,CAAQ0d,SAAU,CAACwZ,KAAQC,KAAMC,KAAaC,KAAQC,KAAMC,KAAMC,KAAY3Z,KAAS4Z,aJ5WtG63B,GAAgB,WAEzB,IAAQvmD,EAAMC,cAAND,EAER,EAAsBlH,aAAiBD,GAAhCI,EAAP,oBACA,EAAgCH,YAAe,GAA/C,mBAAO6D,EAAP,KAAiBsL,EAAjB,KACA,EAA8CnP,WAAe,MAA7D,mBAAO0tD,EAAP,KAAwBC,EAAxB,KACA,EAAwC3tD,WAAe,MAAvD,mBAAOggB,EAAP,KAAqB6rB,EAArB,KAEA7rC,aAAgB,WACZ,IAAImqB,EAAoBhqB,EAAYR,YACpCoqB,GAAiBI,EAAkBppB,QAAO,SAACpE,GAAD,MAAwB,oBAAjBA,EAAEiD,cAAkCsB,KAAI,SAACvE,GAAD,OAAQA,EAAEkD,gBACpG,CAACM,IAEJ,IAAMquB,EAAY,CACd0H,OAAQnM,IAAkC,KAC1C+L,OAAQ,kBAAM83B,KACd53B,OAAQ,GACRC,IAAK,kBAAM9mB,GAAY,IACvBgnB,KAAM,IAQJy3B,EAAsB,WACxB,GAAI5tC,EAAc,CACd,IAAIrU,EAAO9K,IAAKC,SACZgrC,EAAqB9rB,EACzB8rB,EAAmBvhC,WAAWrJ,KAAI,SAAU0wB,GAGxC,OAFAA,EAAEwY,UAAYxY,EAAEwY,UAAqB,OAATz+B,EAAgB,YAAc,UAAqB,OAATA,EAAgB,YAAc,WACpGimB,EAAEnvB,KAAO,IAAIsD,KAAK6rB,EAAEnvB,MAAMuD,mBAAmB2F,GACtCimB,KAEXka,EAAmBlY,gBAI3B,OACI,gCACiC,OAA5BzzB,EAAYjB,YAAuB,gBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WACrDzE,EACwB,OAApB6pD,EACI,gBAAC,IAAD,CAAU7qD,MAAM,EAAMyF,GAAG,6BAEzB,gBAAC,IAAD,CAAUzF,MAAM,EAAMyF,GAAE,mCAA8BolD,KAE1D,gCACI,gBAAC,GAAD,CAAoBnvD,GAAG,OAEvB,uBAAKE,UAAU,eACf,gBAACwM,EAAA,EAAD,CAAWxM,UAAU,gBACjB,uBAAKA,UAAU,mBACX,gBAACmhB,GAAA,EAAD,KACI,uBAAKnhB,UAAU,mBACX,uBAAKA,UAAU,SACX,0BAAKyI,EAAE,0BAGf,uBAAKzI,UAAU,mBACX,uBAAKA,UAAU,WACb,gBAAC,GAAD,CAASwrB,SAAUuE,QAKjC,gBAAC5O,GAAA,EAAD,KACI,uBAAKnhB,UAAU,UACX,gBAAC,GAAD,CACI22B,KAjDd,SAACrR,GACvB4pC,EAAmB5pC,EAAKxlB,IACxB4Q,GAAY,IAgDwB6Q,aAAcA,EACd8sC,iBAAkBjhB,UKhEjDgiB,GAAoB,SAAC5vD,GAE9B,IAAIgwC,EAAShwC,EAAMqG,MAAMiqB,OAAOhwB,GAExB2I,EAAMC,cAAND,EAER,EAAsBlH,aAAiBD,GAAhCI,EAAP,oBACA,EAA0GH,aAAiBksC,IAAnHE,EAAR,EAAQA,aAAcC,EAAtB,EAAsBA,gBAAiBS,EAAvC,EAAuCA,gBAAiBC,EAAxD,EAAwDA,mBAAoBC,EAA5E,EAA4EA,WAAYC,EAAxF,EAAwFA,cACxF,EAAgCjtC,YAAe,GAA/C,mBAAO6D,EAAP,KAAiBsL,EAAjB,KACA,EAAoCnP,YAAe,GAAnD,mBAAmBijC,GAAnB,WACA,EAAwCjjC,YAAe,GAAvD,mBAAOg/B,EAAP,KAAqBC,EAArB,KACA,EAAoCj/B,WAAe,MAAnD,mBAAO6oC,EAAP,KAAmB4hB,EAAnB,KACA,EAAkDzqD,YAAe,GAAjE,mBAAO0qD,EAAP,KAA0BC,EAA1B,KACA,EAAwC3qD,WAAe,IAAvD,mBAAO4qD,EAAP,KAAqBC,EAArB,KACA,EAAwD7qD,YAAe,GAAvE,mBAAO8qD,EAAP,KAA6BC,EAA7B,KACA,EAAsC/qD,YAAe,GAArD,mBAAOquB,EAAP,KAAoBC,EAApB,KAEM08B,GAAWhrD,WAEXirD,GAAY,SAAC3sD,GAAS,IAAD,GACvB,OAAI0sD,SAAJ,IAAIA,IAAJ,UAAIA,GAAU54C,eAAd,aAAI,EAAmB84C,SAAnB,OAA4B5sD,QAA5B,IAA4BA,OAA5B,EAA4BA,EAAK5B,UAGrCiuD,GAAqB,IAGzB3qD,aAAgB,WACRgtC,GAAYzrC,OAAOC,SAASC,WACjC,CAACurC,IAEJ,IAAIxe,GAAYxuB,SAAa,CACzBkqB,KAAM,kBACNzP,MAAO,gBACPmQ,cAAeqjB,EACfvjB,mBAAoBujB,EACpBhjB,gBAAgB,EAChBwD,QAAS,kBAAMwU,GAAc,IAC7B7Y,YAAY,EACZI,eAAcyjB,GAAS,kBAAM6f,MAC7BvjC,aAAY0jB,GAAS,kBAAM0c,GAAqB,IAChDhgC,aAAS3Q,EACT6Q,KAAM,kBACNC,UAASmjB,GAAS,kBAAMlB,GAAmB,IAC3C/hB,UAAW,WACPqhB,EAAgB,CACZN,YAAa,KACbC,UAAW,KACXC,WAAY,OAEhB98B,GAAY,IAEhBgc,YAAW8iB,GAAS,kBAAMhP,GAAgB,MAGxCmsB,GAAe,CACjB7sD,GAAI,KACJsV,OAAQ,GACRmrC,UAAW,GACX1U,QAAS,GACTiB,cAAe,EACfh7B,OAAQ,EACRE,WAAY,GACZhO,KAAM,IAAIsD,KACVk5C,YAAa,GACbnW,SAAU,KACVsB,WAAW,EACXtpC,SAAU,EACVuqD,UAAW,IAGfrrD,aAAgB,WACRiuC,EAAQ,uCACR,8BAAA1qC,EAAA,sEAC6B8kC,GAAaloC,EAAYjB,YAAa+uC,EAAQ,GAClEzmC,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAJhC,cACQ6jD,EADR,gBAO4BtiB,GAA8B7oC,EAAYjB,YAAa+uC,GAAQzmC,MAAK,SAAAvD,GACxF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAT5B,OAOQ8jD,EAPR,OAaI/8B,GAAUpc,QAAQsY,kBAA6BxkB,EAAe,EAAxB+nC,EAA2B,OAAyC,SAAjC9tC,GAEzEksC,GAAgB,SAAAD,GAAY,kCACrBA,GADqB,IAExBL,YAAauf,EACbtf,UAAWiC,EACXC,cAAeqd,OAnBvB,2CADQ,oDAuBRz7C,GAIAu8B,EAAgB,CACZN,YAAaqf,GACbpf,UAAW,KACXC,WAAY,KACZiC,cAAe,OAGxB,CAACD,IAEJjuC,aAAgB,YACO,uCAAG,4BAAAuD,EAAA,sEAEAuI,GAAY3L,EAAYjB,aAAasI,MACzD,SAACvD,GACC,GAAIA,EAASC,GACX,OAAOD,EAASwD,UALA,OAElBme,EAFkB,OAStBilC,EAAgBjlC,GATM,2CAAH,qDAWrB4lC,GAGEn8C,SAAS6T,iBAAiB,YAAa+nC,MAOxC,IAEH,IAMI6C,GAAyB,WACzBnlB,GAAmBxoC,EAAYjB,YAAa+uC,EAAQ,GAC/CzmC,MAAK,SAAAvD,GACF,OAAIA,EAASC,GACFD,EAASwD,OAET8F,QAAQE,OAAOxJ,MAG7BuD,MAAK,SAAAE,GACFyH,GAAY,MAEfxH,OAAM,SAAAC,GACHC,QAAQD,MAAMA,OAQtB6jD,GAAwB,uCAAG,kCAAAloD,EAAA,6DAE1BoI,EAAOygC,EAAaL,YAAY/3B,SAAiD,IAAtCo4B,EAAaL,YAAY/3B,SAAiB,KAAO,KAAOnT,IAAKC,SAF9E,SAGMm4C,GAAqB94C,EAAa0oC,EAAYl9B,GAHpD,kBAGzButC,OAAQC,EAHiB,EAGjBA,cACTrQ,EAAWsD,EAAaL,YAAYjD,SAASpkC,QAAQ,kCAA1C,qDAA2Hy0C,EAA3H,UAEdvQ,GAA0BzoC,EAAYjB,YAAa+uC,EAAQ,EAAGpF,EAAYC,GACrEthC,MAAK,SAAAvD,GACF,OAAIA,EAASC,GACFD,EAASwD,OAET8F,QAAQE,OAAOxJ,MAG7BuD,MAAK,SAAAE,GACJqjD,EAAwBrjD,MAEzBC,OAAM,SAAAC,GACHC,QAAQD,MAAMA,MAlBO,2CAAH,qDAuC5B,OACI,gCACiC,OAA5BzH,EAAYjB,YAAuB,gBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WACzD0kC,EAAa,gBAAC,IAAD,CAAUnqC,MAAM,EAAMyF,GAAE,mCAA8B0kC,KACnEnpC,EAAW,gBAAC,IAAD,CAAUhB,MAAM,EAAMyF,GAAG,yBAChCwkC,EAAkB,gBAAC,GAAD,CAAUkI,OAAQ,EAAGjB,QAAS9F,IAC5C,gCACI,gBAAC,GAAD,CAAoB1vC,GAAG,OAEvB,uBAAKE,UAAU,eACf,gBAACwM,EAAA,EAAD,CAAWxM,UAAU,gBACjB,uBAAKA,UAAU,mBACX,gBAACmhB,GAAA,EAAD,KACI,uBAAKnhB,UAAU,UACX,uBAAKA,UAAU,SACX,0BAAcyI,EAAT+mC,EAAW,+BAAoC,uCAKpE,gBAACruB,GAAA,EAAD,KACI,uBAAKnhB,UAAU,mBACV2tC,EAAaL,aAAeK,EAAaL,YAAYxtC,IAClD,gBAAC,GAAD,CAAe0vC,OAAQA,IAE1B7B,EAAaL,aACV,gBAAC,GAAD,CACIxT,aAAc,EACdihB,YAAW,UAAKx1C,0BAAL,wCACXy1C,WAAU,UAAKvE,GAAL,sBACVwE,aAAa,uBACb1E,OAAQ,EACRuE,WAAYtL,EACZ5f,YAAaA,EACbC,eAAgBA,KAI5B,uBAAK7vB,UAAU,mBACV2tC,EAAaL,aACV,gBAAC,GAAD,CAAS36B,SAAUid,EAAapE,SAAUuE,GAAUpc,WAEvD,EAGAg6B,EAAaL,aAAevvC,OAAOgB,KAAK4uC,EAAaL,aAAalvC,OAAS,GAAMuvC,EAAaL,YAAYsf,UAAWxuD,OAAS,GAC3H,gBAAC,GAAD,CAAeyV,QAAS85B,EAAaL,YAAYsf,eAKjE,gBAAC,KAAD,CACI9sD,GAAG,cACHoe,SAAS,EACTvC,QAAS4kB,EACTj1B,OAAQlJ,IAAKC,UAEb,2BACI,uBAAKrC,UAAU,YACX,yBAAOA,UAAU,oBACjB,uBAAKA,UAAU,gBACX,yBAAOF,GAAG,UAAU2I,EAAE,mBACtB,yBAAO3I,GAAG,eAAe2I,EAAE,+BAGnC,2BACA,uBAAKzI,UAAU,iBACX,0BAAQmK,QAAS,kBAAMq2B,GAAgB,KAAS/3B,EAAE,mBAClD,0BAAQ0B,QAAS,WApFjD8/B,GAAgBvoC,EAAYjB,YAAa+uC,EAAQ,GAC5CzmC,MAAK,SAAAvD,GACF,OAAIA,EAASC,GACFD,EAASwD,OAET8F,QAAQE,OAAOxJ,MAG7BuD,MAAK,SAAAE,GACFyH,GAAY,MAEfxH,OAAM,SAAAC,GACHC,QAAQD,MAAMA,QAwE0E,OAAjB/G,IAAKC,SAAmB,MAAQ,UAI3F,gBAAC,KAAD,CACIvC,GAAG,eACHoe,SAAS,EACTvC,QAASswC,EACT3gD,OAAQlJ,IAAKC,UAEb,2BACI,uBAAKxC,IAAK0sD,GAAUvsD,UAAU,WAC1B,uBAAKA,UAAU,qBACZmsD,EAAa1pD,KAAI,SAAC1B,EAAU2B,GAAX,OAChB,uBAAK1C,UAAWe,EAASjB,KAAOsqC,EAAa,WAAa,GAAI9rC,IAAKoE,EACjEyH,QAAS,WACP6hD,EAAcjrD,EAASjB,MAGzB,yBAAqB,OAAjBsC,IAAKC,SAAmBtB,EAASkR,OAASlR,EAASmR,cAKjE,2BACA,uBAAKlS,UAAU,iBACX,0BACEmK,QAAS,WACP6hD,EAAc,MACdE,GAAqB,KACnBzjD,EAAE,mBACR,0BAAQ0B,QAAS,WA7InD6iD,KA+IoCd,GAAqB,KACF,OAAjB9pD,IAAKC,SAAmB,YAAc,cAItD,gBAAC,KAAD,CACIvC,GAAG,uBACHoe,SAAS,EACTvC,QAAS0wC,EACT/gD,OAAQlJ,IAAKC,UAEb,2BACI,uBAAKrC,UAAU,iBACX,yBAAOF,GAAG,WAAV,yBACA,yBAAOA,GAAG,gBAAV,4DAA4E,wBAAMqK,QAC9E,WACIqkC,EAAc6d,GACdC,GAAwB,KAH4C,QAA5E,MAOJ,2BACA,uBAAKtsD,UAAU,iBACX,0BAAQmK,QAAS,kBAAMmiD,GAAwB,KAA/C,gB,UCpV3BgD,GACT,WAAYC,EAASC,EAAcC,EAAcC,EAAaC,EAAWjqD,EAAQ2K,EAAStP,GAAW,qBACjGpC,KAAK4wD,QAAUA,EACf5wD,KAAK6wD,aAAeA,EACpB7wD,KAAK8wD,aAAeA,EACpB9wD,KAAK+wD,YAAcA,EACnB/wD,KAAKgxD,UAAYA,EACjBhxD,KAAK+G,OAASA,EACd/G,KAAK0R,QAAUA,EACf1R,KAAKoC,SAAWA,GAIX6uD,GACT,WAAY9vD,EACA+vD,EACAC,EACAC,EACA3hD,EACAsE,EACAs9C,EACAC,EACAC,EACAC,EACApd,EACAjG,EACAsjB,EACAt+C,EACAE,EACAq+C,EACAC,EACAC,EACAC,EACAC,EACA7D,GAAY,qBACpBjuD,KAAKmB,GAAKA,GAAU,KACpBnB,KAAKkxD,WAAaA,GAA0B,KAC5ClxD,KAAKmxD,YAAcA,GAA4B,KAC/CnxD,KAAKoxD,YAAcA,GAA4B,KAC/CpxD,KAAKyP,MAAQA,GAAgB,KAC7BzP,KAAK+T,SAAWA,GAAsB,KACtC/T,KAAKqxD,eAAiBA,GAAkC,KACxDrxD,KAAKsxD,SAAWA,GAAsB,KACtCtxD,KAAKuxD,cAAgBA,GAAgC,KACrDvxD,KAAKwxD,UAAYA,GAAwB,KACzCxxD,KAAKo0C,SAAWA,GAAsB,KACtCp0C,KAAKmuC,cAAgBA,GAAgC,KACrDnuC,KAAKyxD,aAAeA,GAA8B,KAClDzxD,KAAKmT,OAASA,GAAkB,KAChCnT,KAAKqT,WAAaA,GAA0B,KAC5CrT,KAAK0xD,gBAAkBA,GAAoC,KAC3D1xD,KAAK2xD,SAAWA,GAAsB,KACtC3xD,KAAK4xD,OAASA,GAAkB,KAChC5xD,KAAK6xD,eAAiBA,GAAkC,KACxD7xD,KAAK8xD,cAAgBA,GAAgC,KACrD9xD,KAAKiuD,UAAYA,GAAwB,MAIpC8D,GACT,WAAY5wD,EAAI+vD,EAAYc,EAAaZ,EAAa3hD,EAAOsE,EAAU+hC,EAAQmc,EAAUC,EAAUC,EAAUjmC,EAAOwe,EAAUqH,GAAS,qBACnI/xC,KAAKmB,GAAKA,GAAU,KACpBnB,KAAKkxD,WAAaA,GAA0B,KAC5ClxD,KAAKgyD,YAAcA,GAA4B,KAC/ChyD,KAAKoxD,YAAcA,GAA4B,KAC/CpxD,KAAKyP,MAAQA,GAAgB,KAC7BzP,KAAK+T,SAAWA,GAAsB,KACtC/T,KAAK81C,OAASA,GAAkB,KAChC91C,KAAKiyD,SAAWA,GAAsB,KACtCjyD,KAAKkyD,SAAWA,GAAsB,KACtClyD,KAAKmyD,SAAWA,GAAsB,KACtCnyD,KAAKksB,MAAQA,GAAgB,KAC7BlsB,KAAK0qC,SAAWA,GAAsB,KACtC1qC,KAAK+xC,OAASA,GAAkB,MAI3BqgB,GACT,WAAYjxD,EAAIkxD,EAAaj0C,EAAUk0C,EAASC,EAAeC,EAAYzrD,GAAS,qBAChF/G,KAAKmB,GAAKA,GAAU,KACpBnB,KAAKqyD,YAAcA,GAA4B,KAC/CryD,KAAKoe,SAAWA,GAAsB,KACtCpe,KAAKsyD,QAAUA,GAAoB,KACnCtyD,KAAKuyD,cAAgBA,GAAgC,KACrDvyD,KAAKwyD,WAAaA,GAA0B,KAC5CxyD,KAAK+G,OAASA,GAAkB,GAI3B0rD,GACT,WAAYC,EAAW3wD,EAAU4lC,EAAYj/B,GAAO,qBAChD1I,KAAK0yD,UAAYA,GAAwB,KACzC1yD,KAAK+B,SAAWA,GAAsB,KACtC/B,KAAK2nC,WAAaA,GAA0B,KAC5C3nC,KAAK0I,KAAOA,GAAc,M,8CAI3B,WAAqC3C,EAAO6K,GAA5C,+BAAAzK,EAAA,6DACDwsD,EAAkB,GAClBC,EAAa,GAEZhiD,EAAQggD,SAAS+B,EAAgBltD,KAAhB,gCAA8CmL,EAAQggD,QAAQ//C,OAA9D,OACjBD,EAAQigD,cAAc8B,EAAgBltD,KAAhB,iCAA+CmL,EAAQigD,aAAahgD,OAApE,OACtBD,EAAQkgD,cAAc6B,EAAgBltD,KAAhB,4BAA0CmL,EAAQkgD,eACxElgD,EAAQmgD,cACH8B,GAAY,IAAMjiD,EAAQmgD,YAAY+B,WAAWrY,OAAO,GACxDsY,GAAc,KAAOniD,EAAQmgD,YAAYiC,WAAa,IAAIvY,OAAO,GACjEwY,EAHgB,UAGMriD,EAAQmgD,YAAY7Y,cAH1B,YAG2C6a,EAH3C,YAGyDF,EAHzD,kBAIpBF,EAAgBltD,KAAhB,6BAA2CwtD,KAE5CriD,EAAQogD,YACHkC,GAAU,IAAMtiD,EAAQogD,UAAU8B,WAAWrY,OAAO,GACpD0Y,GAAY,KAAOviD,EAAQogD,UAAUgC,WAAa,IAAIvY,OAAO,GAC7D2Y,EAHc,UAGMxiD,EAAQogD,UAAU9Y,cAHxB,YAGyCib,EAHzC,YAGqDD,EAHrD,kBAIlBP,EAAgBltD,KAAhB,6BAA2C2tD,KAE5CxiD,EAAQ7J,QAAQ4rD,EAAgBltD,KAAhB,sBAAoCmL,EAAQ7J,SAC5D6J,EAAQc,SAASihD,EAAgBltD,KAAhB,oBAAkCmL,EAAQc,UAC3Dd,EAAQxO,UAAUuwD,EAAgBltD,KAAhB,wBAAsCmL,EAAQxO,WAEhEuwD,EAAgBlzD,OAAS,IACxBmzD,EAAU,iBAAaD,EAAgB9tC,KAAK,SAAlC,OAGVwuC,EA3BD,kBA2B0BT,EA3B1B,kIA6BIltD,EAAW,+BAAgC,MAAO2tD,EAAa,KAAMttD,EAAO,OA7BhF,6C,oEAgCA,WAAmCA,EAAOD,GAA1C,eAAAK,EAAA,6DACCqJ,EAAM5N,KAAKiJ,UAAU/E,GADtB,kBAEEJ,EAAW,mCAAoC,OAAQ,GAAI8J,EAAKzJ,EAAO,OAFzE,4C,oEAKA,WAA+BA,GAA/B,SAAAI,EAAA,4DACa,oBADb,kBAEIT,EAAW,+BAAgC,MADlC,oBACkD,KAAMK,EAAO,OAF5E,4C,sBAKA,SAAeutD,GAAtB,qC,8CAAO,WAA8BvtD,EAAOD,GAArC,SAAAK,EAAA,+EACIT,EAAW,8BAA+B,OAAQ,GAAII,EAAMC,EAAO,OADvE,4C,sBAIA,SAAewtD,GAAtB,qC,8CAAO,WAAiCxtD,EAAOD,GAAxC,SAAAK,EAAA,+EACIT,EAAW,iCAAkC,OAAQ,GAAII,EAAMC,EAAO,OAD1E,4C,oEAIA,WAAoCA,EAAOD,GAA3C,SAAAK,EAAA,+EACET,EAAW,oCAAqC,OAAQ,GAAII,EAAMC,EAAO,OAD3E,4C,oEAIA,WAA8BA,EAAOytD,GAArC,SAAArtD,EAAA,+EACIT,EAAW,8BAA+B,MAAhC,qBAAqD8tD,GAAa,KAAMztD,EAAO,OAD7F,4C,oEAIA,WAAyCA,EAAOytD,EAAWp1C,GAA3D,SAAAjY,EAAA,+EACIT,EAAW,yCAA0C,MAA3C,qBAAgE8tD,EAAhE,qBAAsFp1C,GAAY,KAAMrY,EAAO,MAAM,IADnI,4C,oEAIA,WAAiCA,EAAOytD,GAAxC,SAAArtD,EAAA,+EACIT,EAAW,iCAAkC,OAAnC,qBAAyD8tD,GAAa,KAAMztD,EAAO,OADjG,4C,sBCjJA,ICNH4mB,GCIA/J,GCMA6wC,GAEA9mC,GCTA/J,GCOA6wC,GAEA9mC,GCbAA,GCAAA,GCAAA,GCAAA,GCAAA,GVOS+mC,GAAc,SAAC7yD,GAExB,IAAQiJ,EAAMC,cAAND,EAER,EAAsBlH,aAAiBD,GAAhCI,EAAP,oBACA,EAAkCH,YAAe,GAAjD,mBAAOyxB,EAAP,KAAkBC,EAAlB,KACQq/B,EAA6B9yD,EAA7B8yD,WAAY/wC,EAAiB/hB,EAAjB+hB,aAEpB,EAA4DhgB,WAAe,IAA3E,mBAAOgxD,EAAP,KAA+BC,EAA/B,KACA,EAAkDjxD,WAAe,IAAjE,mBAAOkxD,EAAP,KAA0BC,EAA1B,KACA,EAAoDnxD,WAAe,IAAnE,mBAAOoxD,EAAP,KAA2BC,EAA3B,KACA,EAAgDrxD,WAAe,IAA/D,mBAAOsxD,EAAP,KAAyBC,EAAzB,KAEA,EAA4DvxD,WAAe,IAA3E,mBAAOwxD,EAAP,KAA+BC,EAA/B,KACA,EAAkDzxD,WAAe,IAAjE,mBAAO0xD,EAAP,KAA0BC,EAA1B,KACA,EAAoD3xD,WAAe,IAAnE,mBAAO4xD,EAAP,KAA2BC,EAA3B,KACA,EAAgD7xD,WAAe,IAA/D,mBAAO8xD,EAAP,KAAyBC,EAAzB,KAEA,EAA8C/xD,WAAe,IAA7D,mBAAOgyD,EAAP,KAAwBC,EAAxB,KAEA,EAA4CjyD,WAAe,IAA3D,mBAAOkyD,GAAP,KAAuBC,GAAvB,KACA,GAA4CnyD,WAAe,IAA3D,qBAAOoyD,GAAP,MAAuBC,GAAvB,MAEA,GAAsCryD,WAAe,GAArD,qBAAOsyD,GAAP,MAAoBC,GAApB,MACA,GAA4BvyD,YAAe,GAA3C,qBAAOwyD,GAAP,MAAeC,GAAf,MAEA,GAA0CzyD,WAAe,MAAzD,qBAAO0yD,GAAP,MAAsBC,GAAtB,MAEA,GAAoC3yD,WAAe,MAAnD,qBAAO4yD,GAAP,MAAmBC,GAAnB,MACA,GAAkD7yD,WAAe,MAAjE,qBAAO8yD,GAAP,MAA0BC,GAA1B,MACA,GAAoD/yD,WAAe,MAAnE,qBAAOgzD,GAAP,MAA2BC,GAA3B,MAEA,GAA0CjzD,WAAe,MAAzD,qBAAOkzD,GAAP,MAAsBC,GAAtB,MACA,GAA4CnzD,WAAe,MAA3D,qBAAOozD,GAAP,MAAuBC,GAAvB,MACA,GAAwCrzD,WAAe,MAAvD,qBAAOszD,GAAP,MAAqBC,GAArB,MAIMC,IAFyBj3C,KAAvBa,mBAEY,WAChB,IAAIiV,EAAW,GAEfpmB,GAAoB9L,EAAYjB,aAC3BsI,MAAK,SAAAvD,GACF,GAAIA,EAASC,GAAI,CACb,IAAIgwB,EAAIjwB,EAASwD,OACjB4qB,EAASxvB,KAAKqxB,GACdA,EAAE1sB,MAAK,SAAA/E,GAAI,OAAIgxD,GAAmBhxD,UAG9C+I,GAAarL,EAAYjB,aACpBsI,MAAK,SAAAvD,GACF,GAAIA,EAASC,GAAI,CACb,IAAIgwB,EAAIjwB,EAASwD,OACjB4qB,EAASxvB,KAAKqxB,GACdA,EAAE1sB,MAAK,SAAA/E,GAAI,OAAIixD,GAAgBjxD,UAG3CqJ,GAAY3L,EAAYjB,aACnBsI,MAAK,SAAAvD,GACF,GAAIA,EAASC,GAAI,CACb,IAAIgwB,EAAIjwB,EAASwD,OACjB4qB,EAASxvB,KAAKqxB,GACdA,EAAE1sB,MAAK,SAAA/E,GAAI,OAAIkxD,GAAgBlxD,UAI3C6J,GAAiBnM,EAAYjB,aACxBsI,MAAK,SAAAvD,GACF,GAAIA,EAASC,GAAI,CACb,IAAIgwB,EAAIjwB,EAASwD,OACjB4qB,EAASxvB,KAAKqxB,GACdA,EAAE1sB,MAAK,SAAA/E,GAAI,OAAImxD,GAAanxD,YAKtCgxD,GAAqB,SAACxpB,GACxBgnB,EAA0BhnB,EAAe/oC,KAAI,SAAA0wB,GACzC,MAAO,CACHrzB,GAAIqzB,EAAErzB,GACN0U,KAAM2e,EAAElhB,YAGhB+gD,EAA0BxnB,EAAe/oC,KAAI,SAAA0wB,GACzC,MAAO,CACHrzB,GAAIqzB,EAAErzB,GACN0U,KAAM2e,EAAEjhB,YAGhB4hD,IAAe,SAAAD,GAAW,OAAIA,EAAc,MAG1CsB,GAAe,SAACC,GAClBtC,EAAoBsC,EAAQ3yD,KAAI,SAAA0wB,GAC5B,MAAO,CACHrzB,GAAIqzB,EAAErzB,GACN0U,KAAM2e,EAAElhB,YAGhBqhD,EAAoB8B,EAAQ3yD,KAAI,SAAA0wB,GAC5B,MAAO,CACHrzB,GAAIqzB,EAAErzB,GACN0U,KAAM2e,EAAEjhB,YAGhB4hD,IAAe,SAAAD,GAAW,OAAIA,EAAc,MAG1CoB,GAAkB,SAACI,GACrB3C,EAAqB2C,EAAU5yD,KAAI,SAAA0wB,GAC/B,MAAO,CACHrzB,GAAIqzB,EAAErzB,GACN0U,KAAM2e,EAAElhB,YAGhBihD,EAAqBmC,EAAU5yD,KAAI,SAAA0wB,GAC/B,MAAO,CACHrzB,GAAIqzB,EAAErzB,GACN0U,KAAM2e,EAAEjhB,YAGhB4hD,IAAe,SAAAD,GAAW,OAAIA,EAAc,MAG1CqB,GAAkB,SAACI,GACrB1C,EAAsB0C,EAAW7yD,KAAI,SAAA0wB,GACjC,MAAO,CACHrzB,GAAIqzB,EAAErzB,GACN0U,KAAM2e,EAAElhB,YAGhBmhD,EAAsBkC,EAAW7yD,KAAI,SAAA0wB,GACjC,MAAO,CACHrzB,GAAIqzB,EAAErzB,GACN0U,KAAM2e,EAAEjhB,YAGhB4hD,IAAe,SAAAD,GAAW,OAAIA,EAAc,MAiB5C0B,GAAa,SAACluD,GACd,OAAO,4BAAO,IAAIC,KAAKD,GAAME,mBAAmBnF,IAAKC,YAgGzDd,aAAgB,WACRggB,GACAA,EAAarN,YAClB,CAAC9R,IAAKC,WAET,IAuFMmzD,GAAkB,SAACxxD,GACrB,IAAIyxD,EAAezxD,EAAK0xD,QAAO,SAACC,EAAQpzD,EAAMqzD,GAC1CD,EAAO,GAAGvxD,KAAV,eAAoB7B,IACpB,IAAIszD,EAASF,EAAO,GAAGC,GAEnBxmB,EAAWyjB,EAAiBhrD,MAAK,SAAAiuD,GAAE,OAAIA,EAAGh2D,KAAO+1D,EAAO5F,YACxD7gB,IAAUymB,EAAOnwD,OAAS0pC,EAAS56B,MAEvCqhD,EAAOpG,aAAeoG,EAAO9Z,YAAY9pC,OAEzC,IAAI8jD,EAAYtD,EAAkB5qD,MAAK,SAAAmuD,GAAE,OAAIA,EAAGl2D,KAAO+1D,EAAO/jD,UAC1DikD,IAAWF,EAAOxlD,QAAU0lD,EAAUvhD,MAE1C,IAAIyhD,EAAatD,EAAmB9qD,MAAK,SAAAquD,GAAE,OAAIA,EAAGp2D,KAAO+1D,EAAO7jD,cAC5DikD,IAAYJ,EAAO90D,SAAWk1D,EAAWzhD,MAE7CmhD,EAAO,GAAGvxD,KAAV,eAAoB7B,IACpB,IAAI4zD,EAASR,EAAO,GAAGC,GAEnBvmB,EAAWgkB,EAAiBxrD,MAAK,SAAAiuD,GAAE,OAAIA,EAAGh2D,KAAOq2D,EAAOlG,YACxD5gB,IAAU8mB,EAAOzwD,OAAS2pC,EAAS76B,MAEvC2hD,EAAO1G,aAAe0G,EAAOpa,YAAY7pC,OAEzC,IAAIkkD,EAAYnD,EAAkBprD,MAAK,SAAAmuD,GAAE,OAAIA,EAAGl2D,KAAOq2D,EAAOrkD,UAC1DskD,IAAWD,EAAO9lD,QAAU+lD,EAAU5hD,MAE1C,IAAI6hD,EAAalD,EAAmBtrD,MAAK,SAAAquD,GAAE,OAAIA,EAAGp2D,KAAOq2D,EAAOnkD,cAEhE,OADIqkD,IAAYF,EAAOp1D,SAAWs1D,EAAW7hD,MACtCmhD,IACR,CAAC,GAAI,KAERjC,IAAkB,SAAAD,GAAc,OAAIgC,EAAa,MACjD7B,IAAkB,SAAAD,GAAc,OAAI8B,EAAa,OAgCrD,OA7BAl0D,aAAgB,WACR+wD,GAAcA,EAAWn1C,UACzBm1C,EAAWvhD,cACXgkD,QAEL,IAEHxzD,aAAgB,WACZwzD,OACD,CAAC3yD,IAAKC,WAETd,aAAgB,WACQ,IAAhBsyD,IAAmBG,IAAU,KAClC,CAACH,KAEJtyD,aAAgB,WACRwyD,IDnRL,SAAP,mCCoRYuC,CAAgB50D,EAAYjB,aACvBsI,MAAK,SAAAvD,GACEA,EAASC,IACTD,EAASwD,OAAOD,MAAK,SAAA/E,GACjBwvD,EAAmBxvD,GACnBwxD,GAAgBxxD,WAKrC,CAAC+vD,KAGA,gCACI,gBAAC,GAAD,CAAoBj0D,GAAG,MACvB,uBAAKE,UAAS,gBAAWgzB,EAAY,SAAW,KAC5C,uBAAKhzB,UAAU,yBACX,uBAAKA,UAAU,eACX,wBAAMA,UAAU,qBAChB,yBAAIyI,EAAE,yBAEV,uBAAKzI,UAAU,eACX,uBAAKA,UAAU,mBACX,gBAAC,KAAD,CACIF,GAAG,OACHE,UAAU,UACV4L,OAAQ,CAAE/J,MAAO,eACjBiK,WAA8B,OAAlB1J,IAAKC,SAAoBsxD,GAAiBF,GACtDp/C,YAAa5L,EAAE,8BACfyoC,cAAc,EACdtE,UAAU,EACV3kB,OAAQ,SAACplB,GAAD,OAzLb+d,EAyLkC/d,OAxLrDqxD,IACI,SAAAD,GAAa,kCACNA,GADM,IAETsC,QAAS31C,EAAI/e,WAJH,IAAC+e,OA6LP,uBAAK5gB,UAAU,mBAEX,uBAAKA,UAAU,aACX,gBAAC,KAAD,CACIA,UAAU,mBACVoK,SAAS,mBACTD,QAAS,kBAAM8oB,GAAcD,KAC7B,wBAAMhzB,UAAU,qBACfyI,EAAE,qBAeX,uBAAKzI,UAAU,aACX,gBAAC,KAAD,CAAiBoK,SAAS,mBAAmBD,QAvM5C,WACrB,GAAI8pD,GAAe,CACf,IAAIuC,EAAgB,KAUpB,GAAIvC,GAAcsC,QAAS,CACvB,IAAIE,EAAiBxC,GAAcsC,QAAQ/mD,OAAOknD,UAAU,OAAOzwD,QAAQ,mBAAoB,IAC/FuwD,EAAgBjD,EAAgBjxD,QAAO,SAAA6wB,GACnC,OAAOA,EAAE48B,YAAYvgD,OAAOknD,UAAU,OAAOzwD,QAAQ,mBAAoB,IAAIy3B,SAAS+4B,MAI9F,GAAIxC,GAAcznB,WAAY,CAC1B,IAAIxqC,EAAQw0D,GAAgCjD,EACxCoD,EAAQ,IAAIrvD,KAAK2sD,GAAcznB,WAAWh9B,QAC9CgnD,EAAgBx0D,EAAMM,QAAO,SAAA6wB,GACzB,OAAOwjC,EAAMC,WAAa,IAAItvD,KAAK6rB,EAAEk9B,iBAAiBuG,aAI9D,GAAI3C,GAAcvnB,QAAS,CACvB,IAAI1qC,EAAQw0D,GAAgCjD,EACxCsD,EAAQ,IAAIvvD,KAAK2sD,GAAcvnB,QAAQl9B,QAC3CgnD,EAAgBx0D,EAAMM,QAAO,SAAA6wB,GACzB,OAAO0jC,EAAMD,WAAa,IAAItvD,KAAK6rB,EAAEk9B,iBAAiBuG,aAI9D,GAAI3C,GAAc7D,aAAc,CAC5B,IAAIpuD,EAAQw0D,GAAgCjD,EACxCkD,EAAiBxC,GAAc7D,aAAa5gD,OAAOknD,UAAU,OAAOzwD,QAAQ,mBAAoB,IACpGuwD,EAAgBx0D,EAAMM,QAAO,SAAA6wB,GACzB,OAAOA,EAAEi9B,cAAgBj9B,EAAEi9B,aAAa5gD,OAAOknD,UAAU,OAAOzwD,QAAQ,mBAAoB,IAAIy3B,SAAS+4B,MAIjH,GAAIxC,GAAclY,YAAa,CAC3B,IAAI/5C,EAAQw0D,GAAgCjD,EACxCzzD,EAAKszB,SAAS6gC,GAAclY,aAChCya,EAAgBx0D,EAAMM,QAAO,SAAA6wB,GACzB,OAAOA,EAAE4oB,YAAYj8C,KAAOA,KAIpC,GAAIm0D,GAAcpiD,KAAM,CACpB,IAAI7P,EAAQw0D,GAAgCjD,EACxCzzD,EAAKszB,SAAS6gC,GAAcpiD,MAChC2kD,EAAgBx0D,EAAMM,QAAO,SAAA6wB,GACzB,OAAOA,EAAErhB,SAAWhS,KAI5B,GAAIm0D,GAAclzD,SAAU,CACxB,IAAIiB,EAAQw0D,GAAgCjD,EACxCzzD,EAAKszB,SAAS6gC,GAAclzD,UAChCy1D,EAAgBx0D,EAAMM,QAAO,SAAA6wB,GACzB,OAAOA,EAAEnhB,aAAelS,KAIhC,GAAIm0D,GAAcvuD,OAAQ,CACtB,IAAI1D,EAAQw0D,GAAgCjD,EACxCzzD,EAAKszB,SAAS6gC,GAAcvuD,QAChC8wD,EAAgBx0D,EAAMM,QAAO,SAAA6wB,GACzB,OAAOA,EAAE88B,WAAanwD,KAK1B01D,GADAgB,GAGgBjD,GAGpBtgC,GAAa,QAEbuiC,GAAgBjC,KAqHK9qD,EAAE,sBAKlBuqB,GACG,uBAAKhzB,UAAU,8BACX,gBAAC,KAAD,CACIF,GAAG,OACHsK,SAAS,WACTiK,YAAa5L,EAAE,gBACf6C,OAAQlJ,IAAKC,SACbymB,iBAAiB,EACjBb,OA7SL,SAACrH,GAChBwzC,GAAcxzC,EAAI/e,OAClB,IAAI80D,EAAQ/1C,EAAI6rB,UAAJ,UAAmB7rB,EAAI6rB,UAAUnjC,cAAckX,MAAM,KAAK,GAA1D,aAA0E,KAClFq2C,EAAQj2C,EAAI+rB,QAAJ,UAAiB/rB,EAAI+rB,QAAQrjC,cAAckX,MAAM,KAAK,GAAtD,aAAsE,KAClF0zC,IACI,SAAAD,GAAa,kCACNA,GADM,IAETznB,WAAYmqB,EACZjqB,QAASmqB,QAsSGh1D,MAAOsyD,KAEX,gBAAC,KAAD,CACIr0D,GAAG,QACHsK,SAAS,WACTiK,YAAa5L,EAAE,kBACfmD,OAAQ,CAAE/J,MAAO,gBACjBiK,WAA8B,OAAlB1J,IAAKC,SAAoBsxD,GAAiBF,GACtD7mB,UAAU,EACVsE,cAAc,EACdjpB,OAAQ,SAACplB,GAAD,OAhSL+d,EAgS8B/d,EA/RrDyxD,IAAqB,SAAAD,GAAiB,OAAIzzC,EAAI/e,cAC9CqyD,IACI,SAAAD,GAAa,kCACNA,GADM,IAET7D,aAAcxvC,EAAI/e,WALJ,IAAC+e,GAiSH/e,MAAOwyD,KAEX,gBAAC,KAAD,CACIv0D,GAAG,cACHsK,SAAS,WACTiK,YAAa5L,EAAE,yBACfqD,WAA8B,OAAlB1J,IAAKC,SAAoB0wD,EAAyBR,EAC9D3mD,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,MAC/ByJ,OAAQlJ,IAAKC,SACb6uC,cAAc,EACdroB,gBAAgB,EAChBC,iBAAiB,EACjBb,OAAQ,SAACplB,GAAD,OAnSJ+d,EAmS8B/d,EAlStD2xD,IAAsB,SAAAD,GAAkB,OAAI3zC,EAAI/e,cAChDqyD,IACI,SAAAD,GAAa,kCACNA,GADM,IAETlY,YAAan7B,EAAI/e,WALF,IAAC+e,GAoSJ/e,MAAO0yD,KAEX,gBAAC,KAAD,CACIz0D,GAAG,SACHsK,SAAS,WACTiK,YAAa5L,EAAE,mBACfqD,WAA8B,OAAlB1J,IAAKC,SAAoB4wD,EAAoBR,EACzD7mD,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,MAC/ByJ,OAAQlJ,IAAKC,SACb6uC,cAAc,EACdroB,gBAAgB,EAChBC,iBAAiB,EACjBb,OAAQ,SAACplB,GAAD,OAtST+d,EAsS8B/d,EArSjD6xD,IAAiB,SAAAD,GAAa,OAAI7zC,EAAI/e,cACtCqyD,IACI,SAAAD,GAAa,kCACNA,GADM,IAETpiD,KAAM+O,EAAI/e,WALA,IAAC+e,GAuSC/e,MAAO4yD,KAEX,gBAAC,KAAD,CACI30D,GAAG,WACHsK,SAAS,WACTiK,YAAa5L,EAAE,oBACfqD,WAA8B,OAAlB1J,IAAKC,SAAoB8wD,EAAqBR,EAC1D/mD,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,MAC/ByJ,OAAQlJ,IAAKC,SACb6uC,cAAc,EACdroB,gBAAgB,EAChBC,iBAAiB,EACjBb,OAAQ,SAACplB,GAAD,OAzSR+d,EAyS8B/d,EAxSlD+xD,IAAkB,SAAAD,GAAc,OAAI/zC,EAAI/e,cACxCqyD,IACI,SAAAD,GAAa,kCACNA,GADM,IAETlzD,SAAU6f,EAAI/e,WALH,IAAC+e,GA0SA/e,MAAO8yD,KAEX,gBAAC,KAAD,CACI70D,GAAG,SACHsK,SAAS,WACTiK,YAAa5L,EAAE,kBACfqD,WAA8B,OAAlB1J,IAAKC,SAAoBgxD,EAAmBR,EACxDjnD,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,MAC/ByJ,OAAQlJ,IAAKC,SACb6uC,cAAc,EACdroB,gBAAgB,EAChBC,iBAAiB,EACjBb,OAAQ,SAACplB,GAAD,OA5SV+d,EA4S8B/d,EA3ShDiyD,IAAgB,SAAAD,GAAY,OAAIj0C,EAAI/e,cACpCqyD,IACI,SAAAD,GAAa,kCACNA,GADM,IAETvuD,OAAQkb,EAAI/e,WALH,IAAC+e,GA6SE/e,MAAOgzD,OAKvB,uBAAK70D,UAAU,eACX,gBAAC,KAAD,CACIF,GAAG,WACHgM,WAA8B,OAAlB1J,IAAKC,SAAoBsxD,GAAiBF,GAEtDl9B,eAAgB,CAAE5uB,KAAM,QACxBkhB,gBAAgB,EAChB2N,aAAa,EACbC,cAAc,EACd0b,eAAe,EACfzb,kBAAkB,EAClB72B,IAAK,SAAC05B,GAAD,OAAU+4B,EAAW/4B,IAC1BgF,aAAc,CAAEC,SAAU,IAC1BlzB,OAAQlJ,IAAKC,UACb,gBAAC,KAAD,KACI,gBAAC,KAAD,CACIyZ,MAAM,kBACNhI,SAzZI,SAACX,GACzB,OAAOoiD,GAAWpiD,EAAKk9C,kBAyZH3+C,WAAYjJ,EAAE,gBACd/I,MAAM,QAEV,gBAAC,KAAD,CACIoc,MAAM,aACNhI,SAraN,SAACX,GACf,OACI,wBAAMnT,UAAU,QAAQmK,QAAS,kBAAM3K,EAAMm3B,KAAKxjB,KAAQA,EAAK08C,aAoa/Cn+C,WAAYjJ,EAAE,gBACd/I,MAAM,QAEV,gBAAC,KAAD,CACIoc,MAAM,SACNhI,SAzZJ,SAACX,GACjB,OAAsB,IAAlBA,EAAK88C,SACG,wBAAMjwD,UAAU,gBAAgBmT,EAAKzN,QACpB,IAAlByN,EAAK88C,UAAoC,IAAlB98C,EAAK88C,SAC3B,wBAAMjwD,UAAU,iBAAiBmT,EAAKzN,QAEtC,wBAAM1F,UAAU,cAAcmT,EAAKzN,SAoZ3BgM,WAAYjJ,EAAE,kBACd/I,MAAO,MAEX,gBAAC,KAAD,CACIoc,MAAM,eACNpK,WAAYjJ,EAAE,kBACd/I,MAAM,QAEV,gBAAC,KAAD,CACIoc,MAAM,YACNpK,WAAYjJ,EAAE,uBACd/I,MAAM,QAEV,gBAAC,KAAD,CACIoc,MAAM,WACNhI,SAjbH,SAACX,GAClB,OAAOA,EAAKm9C,SAAWiF,GAAWpiD,EAAKm9C,UAAY,IAib/B5+C,WAAYjJ,EAAE,oBACd/I,MAAM,QAEV,gBAAC,KAAD,CACIoc,MAAM,eACNpK,WAAYjJ,EAAE,yBACdkT,SAAS,IAGb,gBAAC,KAAD,CACIG,MAAM,UACNH,SAAS,IAGb,gBAAC,KAAD,CACIG,MAAM,WACNH,SAAS,KAIjB,gBAAC,KAAD,CAAQyB,SAAU,CAACwZ,KAAQC,KAAMC,KAAaC,KAAQC,KAAMC,KAAMC,KAAYC,YCjmBrF2/B,GAAU,WAEnB,IAAQruD,EAAMC,cAAND,EAGR,EAAsBlH,aAAiBD,GAAhCI,EAAP,oBACA,EAAgCH,YAAe,GAA/C,mBAAO6D,EAAP,KAAiBsL,EAAjB,KACA,EAAkCnP,WAAe,MAAjD,mBAAOw1D,EAAP,KAAkBC,EAAlB,KACA,EAAwCz1D,WAAe,MAAvD,mBAAOggB,EAAP,KAAqB6rB,EAArB,KAEA7rC,aAAgB,WACZ,IAAImqB,EAAoBhqB,EAAYR,YACpCoqB,GAAiBI,EAAkBppB,QAAO,SAACpE,GAAD,OAA0B,IAAnBA,EAAEmD,gBAAoBoB,KAAI,SAACvE,GAAD,OAAQA,EAAEkD,gBACtF,CAACM,IAEJ,IAAMquB,EAAY,CACd0H,OAAQnM,IAAkC,KAC1C+L,OAAQ,kBAAM4/B,KACd1/B,OAAQ,GACRC,IAAK,kBAAM9mB,GAAY,IACvBgnB,KAAM,IAQJu/B,EAAgB,WAClB,GAAI11C,EAAc,CACd,IAAIrU,EAAO9K,IAAKC,SACZgrC,EAAqB9rB,EACzB8rB,EAAmBvhC,WAAWrJ,KAAI,SAAU0wB,GAGxC,OAFAA,EAAEk9B,gBAAkB,IAAI/oD,KAAK6rB,EAAEk9B,iBAAiB9oD,mBAAmB2F,GAC/DimB,EAAEm9B,WAAUn9B,EAAEm9B,SAAW,IAAIhpD,KAAK6rB,EAAEm9B,UAAU/oD,mBAAmB2F,IAC9DimB,KAEX/pB,QAAQ1C,IAAI,qBAAsB2mC,GAClCA,EAAmBlY,gBAI3B,OACI,gCACiC,OAA5BzzB,EAAYjB,YAAuB,gBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WACzDzE,EACkB,OAAd2xD,EACI,gBAAC,IAAD,CAAU3yD,MAAM,EAAMyF,GAAG,uBAEzB,gBAAC,IAAD,CAAUzF,MAAM,EAAMyF,GAAE,6BAAwBktD,KAEhD,gCACI,gBAAC,GAAD,CAAoBj3D,GAAG,MACvB,uBAAKE,UAAU,eACf,gBAACwM,EAAA,EAAD,CAAWxM,UAAU,gBACjB,uBAAKA,UAAU,mBACX,gBAACmhB,GAAA,EAAD,KACI,uBAAKnhB,UAAU,mBACX,uBAAKA,UAAU,SACX,0BAAKyI,EAAE,oBAGf,uBAAKzI,UAAU,mBACX,uBAAKA,UAAU,WACX,gBAAC,GAAD,CAASwrB,SAAUuE,QAKnC,gBAAC5O,GAAA,EAAD,KACI,uBAAKnhB,UAAU,UACX,gBAAC,GAAD,CAAauhB,aAAcA,EAAc+wC,WAAYllB,EAAiBzW,KAhDtF,SAACrR,GACjB0xC,EAAa1xC,EAAKxlB,IAClB4Q,GAAY,Y,wCUrCPwmD,I,OAAgB,CACzB,CACI,OAAU,cACV,OAAU,iBACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAW3xD,0BAAX,wCAEJ,CACI,OAAU,gBACV,OAAU,cACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,aACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,aACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,gBACV,OAAU,kBACV,SAAY,QACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,UACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,SACV,OAAU,SACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,WACV,OAAU,WACV,SAAY,QACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,aACV,OAAU,eACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,sBACV,OAAU,oBACV,SAAY,QACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,YACV,OAAU,YACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,aACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,QACV,OAAU,QACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,mBACV,OAAU,mBACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,YACV,OAAU,eACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,aACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,aACV,OAAU,gBACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,UACV,SAAY,QACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,UACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,aACV,OAAU,aACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,WACV,OAAU,WACV,SAAY,QACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,kBACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,aACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,SACV,OAAU,SACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,QACV,OAAU,QACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,WACV,SAAY,QACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,SACV,OAAU,WACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,aACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,yBACV,OAAU,0BACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,WACV,OAAU,WACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,SACV,OAAU,SACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,iCACV,OAAU,iDACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,oBACV,OAAU,oBACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,WACV,OAAU,cACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,eACV,OAAU,eACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,UACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,WACV,OAAU,UACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,WACV,OAAU,cACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,SACV,OAAU,YACV,SAAY,KACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,aACV,OAAU,aACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,iBACV,OAAU,eACV,SAAY,QACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,2BACV,OAAU,+BACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,OACV,OAAU,QACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,QACV,OAAU,QACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,QACV,OAAU,QACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,mBACV,OAAU,gBACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,0BACV,OAAU,wBACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,WACV,OAAU,cACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,UACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,QACV,OAAU,QACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,eACV,OAAU,aACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,aACV,OAAU,aACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,aACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,OACV,OAAU,OACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,SACV,OAAU,SACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,iBACV,OAAU,qBACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,mCACV,OAAU,uCACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,YACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,WACV,OAAU,WACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,WACV,OAAU,WACV,SAAY,QACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,qBACV,OAAU,0BACV,SAAY,QACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,UACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,QACV,OAAU,QACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,cACV,OAAU,cACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,oBACV,OAAU,sBACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,WACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,aACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,WACV,OAAU,WACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,WACV,OAAU,aACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,8BACV,OAAU,4BACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,gBACV,OAAU,cACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,OACV,OAAU,OACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,eACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,SACV,OAAU,YACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,gBACV,OAAU,kBACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,mBACV,OAAU,wBACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,QACV,OAAU,WACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,SACV,OAAU,YACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,UACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,WACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,QACV,OAAU,OACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,YACV,OAAU,YACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,SACV,OAAU,YACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,YACV,OAAU,iBACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,UACV,SAAY,QACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,aACV,OAAU,YACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,OACV,OAAU,OACV,SAAY,QACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,YACV,OAAU,YACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,WACV,OAAU,WACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,SACV,OAAU,WACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,gBACV,OAAU,kBACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,SACV,OAAU,SACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,QACV,OAAU,QACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,gCACV,OAAU,6CACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,WACV,OAAU,WACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,YACV,OAAU,YACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,UACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,cACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,QACV,OAAU,WACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,YACV,OAAU,eACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,OACV,OAAU,SACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,OACV,OAAU,SACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,UACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,cACV,OAAU,cACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,SACV,OAAU,SACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,QACV,OAAU,YACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,8BACV,OAAU,kBACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,UACV,SAAY,QACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,QACV,OAAU,WACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,SACV,OAAU,SACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,SACV,OAAU,cACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,aACV,OAAU,iBACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,QACV,OAAU,YACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,WACV,OAAU,WACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,wCACV,OAAU,gDACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,0BACV,OAAU,gCACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,SACV,OAAU,SACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,SACV,OAAU,SACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,aACV,OAAU,iBACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,OACV,OAAU,OACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,SACV,OAAU,aACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,YACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,SACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,aACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,QACV,OAAU,WACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,gBACV,OAAU,gBACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,YACV,OAAU,cACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,aACV,OAAU,aACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,QACV,OAAU,QACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,aACV,OAAU,gBACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,SACV,OAAU,SACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,WACV,OAAU,aACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,WACV,OAAU,WACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,OACV,OAAU,OACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,QACV,OAAU,QACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,mBACV,OAAU,iBACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,aACV,OAAU,YACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,aACV,OAAU,gBACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,YACV,OAAU,cACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,UACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,SACV,OAAU,YACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,6CACV,OAAU,oDACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,UACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,SACV,OAAU,YACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,WACV,OAAU,cACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,aACV,OAAU,aACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,aACV,OAAU,aACV,SAAY,QACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,WACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,aACV,OAAU,gBACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,UACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,UACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,QACV,OAAU,QACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,QACV,OAAU,QACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,cACV,OAAU,mBACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,uBACV,OAAU,sBACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,gBACV,OAAU,oBACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,cACV,OAAU,mBACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,YACV,OAAU,eACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,QACV,OAAU,WACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,aACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,OACV,OAAU,OACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,iBACV,OAAU,eACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,kBACV,OAAU,wBACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,2BACV,OAAU,0BACV,SAAY,QACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,SACV,OAAU,UACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,OACV,OAAU,SACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,WACV,OAAU,eACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,QACV,OAAU,QACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,YACV,OAAU,YACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,SACV,OAAU,YACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,mBACV,OAAU,sBACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,WACV,OAAU,WACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,OACV,OAAU,OACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,cACV,OAAU,YACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,WACV,OAAU,WACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,SACV,OAAU,aACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,WACV,OAAU,WACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,cACV,OAAU,aACV,SAAY,QACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,QACV,OAAU,QACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,aACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,aACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,SACV,OAAU,YACV,SAAY,KACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,SACV,OAAU,SACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,mBACV,OAAU,oBACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,+CACV,OAAU,kDACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,wBACV,OAAU,iCACV,SAAY,QACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,cACV,OAAU,iBACV,SAAY,QACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,eACV,OAAU,kBACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,4BACV,OAAU,6BACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,mCACV,OAAU,8BACV,SAAY,QACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,QACV,OAAU,QACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,aACV,OAAU,aACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,wBACV,OAAU,+BACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,eACV,OAAU,oBACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,UACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,SACV,OAAU,YACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,aACV,OAAU,aACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,eACV,OAAU,aACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,YACV,OAAU,YACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,eACV,OAAU,eACV,SAAY,QACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,WACV,OAAU,gBACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,WACV,OAAU,eACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,kBACV,OAAU,mBACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,aACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,eACV,OAAU,mBACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,+CACV,OAAU,4CACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,cACV,OAAU,kBACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,QACV,OAAU,UACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,YACV,OAAU,YACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,QACV,OAAU,WACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,WACV,OAAU,WACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,yBACV,OAAU,uBACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,SACV,OAAU,YACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,cACV,OAAU,cACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,uBACV,OAAU,oCACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,SACV,OAAU,SACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,aACV,OAAU,iBACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,wCACV,OAAU,iDACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,WACV,OAAU,eACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,cACV,OAAU,cACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,OACV,OAAU,KACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,WACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,QACV,OAAU,QACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,sBACV,OAAU,oBACV,SAAY,QACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,aACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,SACV,OAAU,UACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,eACV,OAAU,mBACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,2BACV,OAAU,wBACV,SAAY,QACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,SACV,OAAU,SACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,SACV,OAAU,SACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,aACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,uBACV,OAAU,4BACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,iBACV,OAAU,cACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,gBACV,OAAU,iBACV,SAAY,KACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,UACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,aACV,OAAU,iBACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,UACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,8CACV,OAAU,mDACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,UACV,OAAU,YACV,SAAY,MACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,0BACV,OAAU,8BACV,SAAY,QACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,uBACV,OAAU,qBACV,SAAY,QACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,oBACV,OAAU,kBACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,QACV,OAAU,WACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,SACV,OAAU,YACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,wCAEJ,CACI,OAAU,WACV,OAAU,cACV,SAAY,OACZ,QAAW,KACX,KAAO,GAAP,OAAWA,0BAAX,0CCtoDK4xD,GAAc,SAAC33D,GAE1B,IAKIsiB,EACAC,EACAq1C,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAhBEC,EAAiBZ,GAAcrvD,MAAK,SAAA3J,GAAC,MAAiB,WAAbA,EAAE8C,UAEzCyH,EAAMC,cAAND,EACR,EAAwE6kB,eAAhEG,EAAR,EAAQA,SAAUsqC,EAAlB,EAAkBA,WAAYrqC,EAA9B,EAA8BA,kBAAmBkb,EAAjD,EAAiDA,OAAQovB,EAAzD,EAAyDA,WACrDxoB,EAAShwC,EAAMqG,MAAMiqB,OAAOhwB,GAc1B7B,EAAS2S,SAASC,eAAe,sBAGjConD,EAA0B,CAC9B7pD,MAAO,GACPsE,SAAU,IAGZ,EAAsBnR,aAAiBD,GAAhCI,EAAP,oBACA,EAAgCH,YAAe,GAA/C,mBAAO6D,EAAP,KAAiBsL,EAAjB,KACA,EAA8BnP,YAAe,GAA7C,mBAAOghB,EAAP,KAAgB3J,EAAhB,KACA,EAAsCrX,WAAe,GAArD,mBAAOsyD,EAAP,KAAoBC,EAApB,KACA,EAA4BvyD,YAAe,GAA3C,mBAAOwyD,EAAP,KAAeC,EAAf,KACA,GAAgDzyD,WAAe,QAA/D,qBAAO22D,GAAP,MAAyBC,GAAzB,MACA,GAA8C52D,WAAe,QAA7D,qBAAO62D,GAAP,MAAwBC,GAAxB,MACA,GAAkD92D,YAAe,GAAjE,qBAAO+2D,GAAP,MAA0BC,GAA1B,MAEA,GAAkCh3D,WAAe,IAAIquD,IAArD,qBAAO4I,GAAP,MAAkBC,GAAlB,MACA,GAAgDl3D,WAAe02D,GAA/D,qBAAOS,GAAP,MAAyBC,GAAzB,MACA,GAAoDp3D,WAAe,IAAnE,qBAAOq3D,GAAP,MAA2BC,GAA3B,MACA,GAA0Ct3D,YAAe,GAAzD,qBAAOu3D,GAAP,MAAsBC,GAAtB,MAEA,GAAwDx3D,WAAe,IAAvE,qBAAOy3D,GAAP,MAA6BC,GAA7B,MACA,GAAwD13D,WAAe,IAAvE,qBAAO23D,GAAP,MAA6BC,GAA7B,MAEA,GAA0C53D,YAAe,GAAzD,qBAAO63D,GAAP,MAAsBC,GAAtB,MAEA,GAA8C93D,WAAe,IAA7D,qBAAO+3D,GAAP,MAAwBC,GAAxB,MAEA,GAA4Dh4D,WAAe,IAA3E,qBAAOgxD,GAAP,MAA+BC,GAA/B,MACA,GAA4DjxD,WAAe,IAA3E,qBAAOwxD,GAAP,MAA+BC,GAA/B,MAEA,GAAkDzxD,WAAe,IAAjE,qBAAOkxD,GAAP,MAA0BC,GAA1B,MACA,GAAkDnxD,WAAe,IAAjE,qBAAO0xD,GAAP,MAA0BC,GAA1B,MAEA,GAA8C3xD,WAAe,IAA7D,qBAAOi4D,GAAP,MAAwBC,GAAxB,MACA,GAA8Cl4D,WAAe,IAA7D,qBAAOm4D,GAAP,MAAwBC,GAAxB,MAEA,GAA4Cp4D,WAAe,IAA3D,qBAAOq4D,GAAP,MAAuBC,GAAvB,MACA,GAA4Ct4D,WAAe,IAA3D,qBAAOu4D,GAAP,MAAuBC,GAAvB,MAEA,GAA8Dx4D,WAAe,IAA7E,qBAAOy4D,GAAP,MAAgCC,GAAhC,MACA,GAA8D14D,WAAe,IAA7E,qBAAO24D,GAAP,MAAgCC,GAAhC,MAEA,GAAwE54D,WAAe,IAAvF,qBAAO64D,GAAP,MAAqCC,GAArC,MACA,GAAwE94D,WAAe,IAAvF,qBAAO+4D,GAAP,MAAqCC,GAArC,MAEA,GAAoDh5D,WAAe,IAAnE,qBAAOoxD,GAAP,MAA2BC,GAA3B,MACA,GAAoDrxD,WAAe,IAAnE,qBAAO4xD,GAAP,MAA2BC,GAA3B,MAEA,GAAsE7xD,WAAe,IAArF,qBAAOi5D,GAAP,MAAoCC,GAApC,MACA,GAAwCl5D,YAAe,GAAvD,qBAAOg/B,GAAP,MAAqBC,GAArB,MACA,GAA0Cj/B,WAAe,MAAzD,qBAAOm5D,GAAP,MAAsBC,GAAtB,MACA,GAA0Cp5D,WAAe,IAAzD,qBAAOq5D,GAAP,MAAsBC,GAAtB,MACA,GAA8Bt5D,WAAe,MAA7C,qBAAO4O,GAAP,MAAgBC,GAAhB,MACA,GAAsC7O,YAAe,GAArD,qBAAoBsuB,IAApB,aACA,GAAkCtuB,WAAe,IAAjD,qBAAOu5D,GAAP,MAAkBC,GAAlB,MAEA,GAAgCx5D,YAC9B,WACE,OAAIm3D,GAAiBhmD,SAAStU,OAAS,EAC9Bs6D,GAAiBhmD,SAEnB,CAAC,CACNA,SAAU,GACVhN,OAAQ,EACR2K,QAASynD,OARf,qBAAOvwC,GAAP,MAAiBP,GAAjB,MAaA,GAAgCzlB,YAC9B,WACE,MAAO,CAAC,CACN6M,MAAO,GACP1I,OAAQ,OAJd,qBAAOs1D,GAAP,MAAiBC,GAAjB,MASMC,GAAW35D,WAEX45D,GAAiB,SAACt7D,GAAS,IAAD,GAC9B,OAAIq7D,SAAJ,IAAIA,IAAJ,UAAIA,GAAUvnD,eAAd,aAAI,EAAmB84C,SAAS5sD,EAAI5B,UAGpC08D,GAAiB,OAGbS,GAAuB,IAAIC,KAAY,CAC3CrxD,IAAKzE,qEACL+1D,QAAS,IAAIC,KACbC,aAAa,EACbr2D,QAAS,CAAC,CAAE,cAAgB,UAAhB,OAA2BzD,EAAYjB,iBAG/CsvB,GAAY,CAChB/T,MAAO,UACPmQ,aAAa,EACbF,kBAA4BxkB,EAAe,EAAxB+nC,EAA2B,OAAyC,SAAjC9tC,GACtDmqB,oBAAqB2jB,EAAS,SAAC3sC,GAAD,OAAO44D,GAAiB54D,IAAK,KAC3DqpB,QAAS,SAACrpB,GAAD,OAAO64D,GAAmB74D,IACnC0pB,UAAW,kBAAM7b,GAAY,IAC7Bgc,UAAW8iB,EAAS,SAAC3sC,GACnBA,EAAEm3B,iBACFwG,IAAgB,IACd,MAGNj/B,aAAgB,WACduP,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,iBAChDE,aAAYH,SAASC,eAAe,gBACpCG,aAAW,CAAErJ,KAAM,gBAClB,CAACyxD,KAEJ,IAAMuC,GAAa,SAAC94D,GAClBA,EAAEm3B,iBblBC,SAAP,qCamBI4hC,CAAkBl6D,EAAYjB,YAAa+uC,GACxCzmC,MAAK,SAAAvD,GACJ,OAAIA,EAASC,GACJD,EAASwD,OAET8F,QAAQE,OAAOxJ,MAGzBuD,MAAK,SAAAE,GACJyH,GAAY,MAEbxH,OAAM,SAAAC,GACLC,QAAQD,MAAMA,OAId4rD,GAAc,WAClBrnD,GAAmBhM,EAAYjB,aAC5BsI,MAAK,SAAAvD,GACAA,EAASC,IACXD,EAASwD,OAAOD,MAAK,SAAA/E,GAAI,OAAI63D,GAAiB73D,SAIpD4vC,GAAuBlyC,EAAYjB,YAAa,uDAC7CsI,MAAK,SAAAvD,GACAA,EAASC,IACXD,EAASwD,OAAOD,MAAK,SAAA/E,GACnBu1D,GAAmBv1D,GACnB8vD,GAAe,SAAAD,GAAW,OAAIA,EAAc,WAKpD7f,GAAqBtyC,EAAYjB,YAAa,0CAC3CsI,MAAK,SAAAvD,GACAA,EAASC,IACXD,EAASwD,OAAOD,MAAK,SAAA/E,GACnBy2D,GAA+Bz2D,GAC/B8vD,GAAe,SAAAD,GAAW,OAAIA,EAAc,WAKpD9mD,GAAarL,EAAYjB,aACtBsI,MAAK,SAAAvD,GACAA,EAASC,IACXD,EAASwD,OAAOD,MAAK,SAAA/E,GAAI,OAAIixD,GAAgBjxD,SAInD2J,GAAUjM,EAAYjB,aACnBsI,MAAK,SAAAvD,GACAA,EAASC,IACXD,EAASwD,OAAOD,MAAK,SAAA/E,GAAI,OAAI83D,GAAa93D,SAIhD4J,GAAUlM,EAAYjB,aACnBsI,MAAK,SAAAvD,GACAA,EAASC,IACXD,EAASwD,OAAOD,MAAK,SAAA/E,GAAI,OAAI+3D,GAAa/3D,SAIhD6J,GAAiBnM,EAAYjB,aAC1BsI,MAAK,SAAAvD,GACAA,EAASC,IACXD,EAASwD,OAAOD,MAAK,SAAA/E,GAAI,OAAIg4D,GAAoBh4D,SjFxKpD,SAAP,mCiF4KIi4D,CAAsBv6D,EAAYjB,aAC/BsI,MAAK,SAAAvD,GACAA,EAASC,IACXD,EAASwD,OAAOD,MAAK,SAAA/E,GAAI,OAAIk4D,GAAyBl4D,SAI5DuJ,GAAiB7L,EAAYjB,aAC1BsI,MAAK,SAAAvD,GACAA,EAASC,IACXD,EAASwD,OAAOD,MAAK,SAAA/E,GAAI,OAAIgxD,GAAmBhxD,SAItDqJ,GAAY3L,EAAYjB,aACrBsI,MAAK,SAAAvD,GACAA,EAASC,IACXD,EAASwD,OAAOD,MAAK,SAAA/E,GAAI,OAAIkxD,GAAgBlxD,UAK/C63D,GAAmB,SAACM,GACxBlD,GAAwBkD,EAAY15D,KAAI,SAAA0wB,GACtC,MAAO,CACLrzB,GAAIqzB,EAAErzB,GACN0U,KAAM2e,EAAElhB,YAGZknD,GAAwBgD,EAAY15D,KAAI,SAAA0wB,GACtC,MAAO,CACLrzB,GAAIqzB,EAAErzB,GACN0U,KAAM2e,EAAEjhB,YAGZ4hD,GAAe,SAAAD,GAAW,OAAIA,EAAc,MAGxCoB,GAAkB,SAACI,GACvB3C,GAAqB2C,EAAU5yD,KAAI,SAAA0wB,GACjC,MAAO,CACLrzB,GAAIqzB,EAAErzB,GACN0U,KAAM2e,EAAElhB,YAGZihD,GAAqBmC,EAAU5yD,KAAI,SAAA0wB,GACjC,MAAO,CACLrzB,GAAIqzB,EAAErzB,GACN0U,KAAM2e,EAAEjhB,YAGZ4hD,GAAe,SAAAD,GAAW,OAAIA,EAAc,MAGxCiI,GAAe,SAACM,GACpB3C,GAAmB2C,EAAQ35D,KAAI,SAAA0wB,GAC7B,MAAO,CACLrzB,GAAIqzB,EAAErzB,GACN0U,KAAM2e,EAAElhB,OACRH,OAAQqhB,EAAErhB,YAGd6nD,GAAmByC,EAAQ35D,KAAI,SAAA0wB,GAC7B,MAAO,CACLrzB,GAAIqzB,EAAErzB,GACN0U,KAAM2e,EAAEjhB,OACRJ,OAAQqhB,EAAErhB,YAGdgiD,GAAe,SAAAD,GAAW,OAAIA,EAAc,MAGxCkI,GAAe,SAACM,GACpBxC,GAAkBwC,EAAQ55D,KAAI,SAAA0wB,GAC5B,MAAO,CACLrzB,GAAIqzB,EAAErzB,GACN0U,KAAM2e,EAAElhB,OACRqqD,SAAUnpC,EAAEmpC,cAGhBvC,GAAkBsC,EAAQ55D,KAAI,SAAA0wB,GAC5B,MAAO,CACLrzB,GAAIqzB,EAAErzB,GACN0U,KAAM2e,EAAEjhB,OACRoqD,SAAUnpC,EAAEmpC,cAGhBxI,GAAe,SAAAD,GAAW,OAAIA,EAAc,MAGxCmI,GAAsB,SAACO,GAC3BtC,GAA2BsC,EAAe95D,KAAI,SAAA0wB,GAC5C,MAAO,CACLrzB,GAAIqzB,EAAErzB,GACN0U,KAAM2e,EAAElhB,YAGZkoD,GAA2BoC,EAAe95D,KAAI,SAAA0wB,GAC5C,MAAO,CACLrzB,GAAIqzB,EAAErzB,GACN0U,KAAM2e,EAAEjhB,YAGZ4hD,GAAe,SAAAD,GAAW,OAAIA,EAAc,MAGxCqI,GAA2B,SAACM,GAChCnC,GAAgCmC,EAAoB/5D,KAAI,SAAA0wB,GACtD,MAAO,CACLrzB,GAAIqzB,EAAErzB,GACN0U,KAAM2e,EAAElhB,YAGZsoD,GAAgCiC,EAAoB/5D,KAAI,SAAA0wB,GACtD,MAAO,CACLrzB,GAAIqzB,EAAErzB,GACN0U,KAAM2e,EAAEjhB,YAGZ4hD,GAAe,SAAAD,GAAW,OAAIA,EAAc,MAGxCmB,GAAqB,SAACxpB,GAC1BgnB,GAA0BhnB,EAAe/oC,KAAI,SAAA0wB,GAC3C,MAAO,CACLrzB,GAAIqzB,EAAErzB,GACN0U,KAAM2e,EAAElhB,YAGZ+gD,GAA0BxnB,EAAe/oC,KAAI,SAAA0wB,GAC3C,MAAO,CACLrzB,GAAIqzB,EAAErzB,GACN0U,KAAM2e,EAAEjhB,YAGZ4hD,GAAe,SAAAD,GAAW,OAAIA,EAAc,MAGxCqB,GAAkB,SAACI,GACvB1C,GAAsB0C,EAAW7yD,KAAI,SAAA0wB,GACnC,MAAO,CACLrzB,GAAIqzB,EAAErzB,GACN0U,KAAM2e,EAAElhB,YAGZmhD,GAAsBkC,EAAW7yD,KAAI,SAAA0wB,GACnC,MAAO,CACLrzB,GAAIqzB,EAAErzB,GACN0U,KAAM2e,EAAEjhB,YAGZ4hD,GAAe,SAAAD,GAAW,OAAIA,EAAc,MAGxC6H,GAAkB,uCAAG,WAAO74D,GAAP,SAAAiC,EAAA,sDACzBjC,EAAEm3B,iBACFnK,IAAe,GACfnC,IAAoB3kB,MAAK,SAAC0zD,GACpBA,IACFpD,IAAiB,GACjBb,GAAUjI,OAASqI,IAA0C,KAC7DJ,GAAUxI,eAAiB0I,IAAsC,KACjEF,GAAU3I,WAAa6I,GAAiB7I,WAAa6I,GAAiB7I,WAAa,KACnF2I,GAAU1I,YAAc4I,GAAiB/H,YAAc+H,GAAiB/H,YAAc,KACtF6H,GAAUzI,YAAc2I,GAAiB3I,YAAc2I,GAAiB3I,YAAc,KACtFyI,GAAUpqD,MAAQsqD,GAAiBtqD,MAAQsqD,GAAiBtqD,MAAQ,MAEpE,OAAIsqD,SAAJ,IAAIA,QAAJ,EAAIA,GAAkB54D,KACpB04D,GAAUxI,eAAet9C,SAAWgmD,IAAoBA,GAAiBhmD,SAAStU,OAAS,EAAIs6D,GAAiBhmD,SAASjQ,KAAI,SAAAsmB,GAAK,kCAC7HA,GAD6H,IAEhI1Y,QAAS0Y,EAAM1Y,QAAQpP,YACnB,GACNu3D,GAAU9lD,SAAW,KAErB8lD,GAAU9lD,SAAW6U,IAAYA,GAASnpB,OAAS,EAAImpB,GAAS9kB,KAAI,SAAAsmB,GAAK,kCACpEA,GADoE,IAEvE1Y,QAAS0Y,EAAM1Y,QAAQpP,YACnB,GACNu3D,GAAUxI,eAAet9C,SAAW,IAGtC8lD,GAAUtI,cAAgBsI,GAAUtI,cAAgBwM,KAAOlE,GAAUtI,eAAeh0C,OAAO,uBAAyB,KACpHs8C,GAAUnI,gBAAkBmI,GAAUnI,gBAAkBqM,KAAOlE,GAAUnI,iBAAiBn0C,OAAO,uBAAyB,KAE1Hs8C,GAAUhI,eAAiBsI,IAEPtpB,EAAS0iB,GAAoBD,IAErCvwD,EAAYjB,YAAaF,KAAKiJ,UAAUgvD,KACjDzvD,MAAK,SAAAvD,GACJ,OAAIA,EAASC,GACJD,EAASwD,OAET8F,QAAQE,OAAOxJ,MAGzBuD,MAAK,SAAAE,GACJyH,GAAY,GACZmf,IAAe,MAEhB3mB,OAAM,SAAAC,GACLkwD,IAAiB,GACjBjwD,QAAQD,MAAMA,GACd0mB,IAAe,OAGrBA,IAAe,MACd3mB,OAAM,SAACC,GACRC,QAAQ1C,IAAIyC,GACZ0mB,IAAe,MAvDQ,2CAAH,sDA2DlB8sC,GAAmB,Yb5TpB,SAAP,sCa6TIC,CAAqBl7D,EAAYjB,YAAaF,KAAKiJ,UAAUgvD,KAC1DzvD,MAAK,SAAAvD,GACJ,OAAIA,EAASC,GACJD,EAASwD,OAET8F,QAAQE,OAAOxJ,MAGzBuD,MAAK,WACJ2H,GAAY,MAEbxH,OAAM,SAAAC,GACLkwD,IAAiB,GACjBjwD,QAAQD,MAAMA,OAIdsyD,GAAgB,uCAAG,WAAO54D,GAAP,SAAAiC,EAAA,sDACvBjC,EAAEm3B,iBAEFtM,IAAoB3kB,MAAK,SAAC0zD,GACpBA,IACFpD,IAAiB,GACjBb,GAAUjI,OAASqI,IAA0C,KAC7DJ,GAAUxI,eAAiB0I,IAAsC,KACjEF,GAAU3I,WAAa6I,GAAiB7I,WAAa6I,GAAiB7I,WAAa,KACnF2I,GAAU1I,YAAc4I,GAAiB/H,YAAc+H,GAAiB/H,YAAc,KACtF6H,GAAUzI,YAAc2I,GAAiB3I,YAAc2I,GAAiB3I,YAAc,KACtFyI,GAAUpqD,MAAQsqD,GAAiBtqD,MAAQsqD,GAAiBtqD,MAAQ,KAEpEoqD,GAAUxI,eAAet9C,SAAWgmD,IAAoBA,GAAiBhmD,SAAStU,OAAS,EAAIs6D,GAAiBhmD,SAASjQ,KAAI,SAAAsmB,GAAK,kCAC7HA,GAD6H,IAEhI1Y,QAAS0Y,EAAM1Y,QAAQpP,YACnB,GACNu3D,GAAU9lD,SAAW,GAErB8lD,GAAUtI,cAAgBsI,GAAUtI,cAAgBwM,KAAOlE,GAAUtI,eAAeh0C,OAAO,uBAAyB,KACpHs8C,GAAUnI,gBAAkBmI,GAAUnI,gBAAkBqM,KAAOlE,GAAUnI,iBAAiBn0C,OAAO,uBAAyB,KAC1Hs8C,GAAUlI,SAAWkI,GAAUlI,SAAWoM,KAAOlE,GAAUlI,UAAUp0C,OAAO,uBAAyB,KAErGs8C,GAAUhI,eAAiBsI,GAE3B6D,SAEDzzD,OAAM,SAACC,GACRC,QAAQ1C,IAAIyC,MA5BS,2CAAH,sDAsChB0zD,GAAkB,WAClB/6C,IACFA,EAAYY,SAAWX,EACvBD,EAAYa,aA0EVm6C,GAA4B,SAACC,EAAWC,GAC5CvE,IAAa,SAAAwE,GAAG,kCAAUzE,IAAV,mBAAsBuE,EAAYC,QA2G9CE,GAAmC,SAACH,EAAWC,GACnDrE,IAAoB,SAAAwE,GAAG,kCAAUzE,IAAV,mBAA6BqE,EAAYC,QAwF5Dh5C,GAAqB,SAACjH,Ib9nBvB,SAAP,wCa+nBIqgD,CAA0B17D,EAAYjB,YAAa+uC,EAAQzyB,GACxDhU,MAAK,SAACvD,GAAD,OAAcA,EAASkV,UAC5B3R,MAAK,SAAC2R,GACL,IAAM1Q,EAAMlH,OAAO6X,IAAIC,gBAAgB,IAAIC,KAAK,CAACH,KAC3CpF,EAAO1E,SAASnR,cAAc,KACpC6V,EAAKmB,KAAOzM,EACZsL,EAAKwF,aAAa,WAAYiC,GAC9BnM,SAASnM,KAAKsW,YAAYzF,GAC1BA,EAAK0F,QACL1F,EAAK2F,WAAWC,YAAY5F,OAWlC/T,aAAgB,WACVghB,IACFzR,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,iBAChDE,aAAYH,SAASC,eAAe,gBACpCG,aAAW,CAAErJ,KAAM,eAErBk1D,OACC,CAACt6C,IAEQ,IAAIjb,KAEhB/F,aAAgB,WAAO,IAAD,8CAUpB,gCAAAuD,EAAA,sEACyBiI,GAAarL,EAAYjB,aAC7CsI,MAAK,SAAAvD,GACJ,GAAIA,EAASC,GACX,OAAOD,EAASwD,UAJxB,cACMgrB,EADN,OAOQqpC,EAAmBnG,GAAc50D,QAAO,SAAA+N,GAC5C,OAAO2jB,EAAW1xB,QAAO,SAAAC,GAAI,OAAIA,EAAK2P,SAAW7B,EAAQpP,UAAQ7C,OAAS,KAE5Ey8D,GAAiBwC,GACjBtC,GAAasC,GAXf,SAa2BzuD,GAAWlN,EAAYjB,YAAaiB,EAAYoI,QACtEf,MAAK,SAAAwI,GACJ,GAAIA,EAAI9L,GACN,OAAO8L,EAAIvI,UAhBnB,OAaQs0D,EAbR,OAmBEltD,GAAWktD,GAnBb,6CAVoB,sBACpB7E,GAAa,2BACRD,IADO,IAEVpI,aAAc1uD,EAAYhB,SAC1BsR,WAAU,OAAEtQ,QAAF,IAAEA,GAAF,UAAEA,EAAaX,gBAAf,aAAE,EAAuBjB,GACnCuwD,gBAAiB,IAAI/oD,QALH,mCA+BpB4oB,GAGEtf,SAAS6T,iBAAiB,YAAa02C,IAQzCpG,KACAnkD,SAAS6T,iBAAiB,WAAW,SAAC1gB,GACpC,GAAkB,UAAdA,EAAMzF,IAER,OADAyF,EAAMi2B,kBACC,KAGX6iC,OACC,IAEHt7D,aAAgB,WACTm5D,IACHK,GAAaH,MAEd,CAACF,KAEJn5D,aAAgB,WACdo3D,GAAoB,2BACfD,IADc,IAEjB5mD,OAAM,OAAE3B,SAAF,IAAEA,QAAF,EAAEA,GAAS2B,OACjB+Y,MAAK,OAAE1a,SAAF,IAAEA,QAAF,EAAEA,GAAS0a,MAChBwe,SAAQ,OAAEl5B,SAAF,IAAEA,QAAF,EAAEA,GAASkb,sBAEpB,CAAClb,KAGJ5O,aAAgB,WACV+1D,IAAaA,EAAYjjD,YAAc5L,EAAE,8BACzC8uD,IAAiBA,EAAgBljD,YAAc5L,EAAE,kCACjD+uD,IAAkBA,EAAiBnjD,YAAc5L,EAAE,mCACnDgvD,IAAeA,EAAcpjD,YAAc5L,EAAE,gCAC7CivD,IAAmBA,EAAkBrjD,YAAc5L,EAAE,yCACrDkvD,IAAoBA,EAAmBtjD,YAAc5L,EAAE,qCACvDmvD,IACFA,EAA0B2F,cAAgB90D,EAAE,iCAC5CmvD,EAA0B4F,gBAAkB/0D,EAAE,oCAE5CovD,IAAiBA,EAAgBxjD,YAAc5L,EAAE,uCACrDo0D,OACC,CAACz6D,IAAKC,WAETd,aAAgB,WACM,KAAhBsyD,IACErkB,EbvvBH,SAAP,qCawvBQiuB,CAAe/7D,EAAYjB,YAAa+uC,GACrCzmC,MAAK,SAAAvD,GACAA,EAASC,IACXD,EAASwD,OAAOD,MAAK,SAAA/E,GACnB,IAAIw0D,EAAY,IAAI5I,GAClB5rD,EAAKlE,GACL,KACA,KACA,KACA,KACA,KACA,KACAkE,EAAKisD,SACLjsD,EAAKksD,cACLlsD,EAAKmsD,UACLnsD,EAAK+uC,SACL/uC,EAAK8oC,cACL9oC,EAAKosD,aACLpsD,EAAK8N,OACL9N,EAAKgO,WACLhO,EAAKqsD,gBACL,MACA,EACArsD,EAAKysD,eAGP,GAAIzsD,EAAKgsD,eAAgB,CAEvB,IAAM0N,EAAc15D,EAAKgsD,eAAet9C,SAASjQ,KAAI,SAAAsmB,GAAK,kCACrDA,GADqD,IAExD1Y,QAAS6mD,GAAcrvD,MAAK,SAAAwI,GAAO,OAAIA,EAAQpP,SAAW8nB,EAAM1Y,gBAG9DstD,EAAY,IAAIjN,GAClB1sD,EAAKgsD,eAAelwD,GACpBkE,EAAKgsD,eAAeH,WACpB7rD,EAAKgsD,eAAeW,YACpB3sD,EAAKgsD,eAAeD,YACpB/rD,EAAKgsD,eAAe5hD,MACpBsvD,EACA15D,EAAKgsD,eAAevb,OACpBzwC,EAAKgsD,eAAeY,SACpB5sD,EAAKgsD,eAAea,SACpB7sD,EAAKgsD,eAAec,SACpB9sD,EAAKgsD,eAAenlC,MACpB7mB,EAAKgsD,eAAe3mB,SACpBrlC,EAAKgsD,eAAetf,QAEtB8nB,EAAUxI,eAAiB2N,EAC3B32C,GAAY02C,GACZnF,IAAqB,OAChB,CACL,IAAIoF,EAAY,IAAIjN,GAClB,KACA1sD,EAAK6rD,WACL7rD,EAAK8rD,YACL9rD,EAAK+rD,YACL/rD,EAAKoK,MACLpK,EAAK0O,UAEDgrD,EAAc15D,EAAK0O,SAASjQ,KAAI,SAAAsmB,GAAK,kCACtCA,GADsC,IAEzC1Y,QAAS6mD,GAAcrvD,MAAK,SAAAwI,GAAO,OAAIA,EAAQpP,SAAW8nB,EAAM1Y,gBAGlE2W,GAAY02C,GACZlF,EAAUxI,eAAiB2N,EAC3BpF,IAAqB,GAGvB,GAAIv0D,EAAK4oD,WAAa5oD,EAAK4oD,UAAUxuD,OAAS,EAAG,CAC/C,IAAIw/D,EAAW55D,EAAK4oD,UAAUnqD,KAAI,SAAAF,GAChC,IAAI+jC,EAAa,CACfxmC,GAAIyC,EAAKwwC,SAASjzC,GAClBkB,OAAQuB,EAAKwwC,SAAS9gC,OACtBhR,OAAQsB,EAAKwwC,SAAS7gC,QAExB,OAAO,IAAIk/C,GACT7uD,EAAKs7D,cACLt7D,EAAKuwC,QACLxM,EACA/jC,EAAKyB,SAITw0D,EAAU5L,UAAYgR,EAGxB,GAAI55D,EAAKusD,OAAQ,CACf,IAAIuN,EAAc95D,EAAKusD,OAAO9tD,KAAI,SAACF,GACjC,OAAO,IAAIwuD,GAAkB/sD,EAAKlE,GAAIyC,EAAKyuD,YAAazuD,EAAKwa,SAAU,KAAMxa,EAAK2uD,cAAe3uD,EAAK4uD,eAExG0H,IAAsB,SAAA1lC,GAAC,OAAI2qC,KAG7BrF,IAAa,SAAAwE,GAAG,OAAIzE,KACpBG,IAAoB,SAAAwE,GAAG,OAAI3E,EAAUxI,kBACrCiL,GAAYzC,EAAUxI,eAAe5hD,OACrC4lD,GAAU,GACV6I,YAKR7I,GAAU,GACV6I,SAIH,CAAChJ,IAEJtyD,aAAgB,WACVwyD,IACF3iD,aAAYR,SAASC,eAAe,gBACpC+H,GAAW,IAEbikD,OACC,CAAC9I,IAEJxyD,aAAgB,WACTu3D,IAAef,EAAW,WAC/B8E,OACC,CAAC/D,KAEJv3D,aAAgB,WACVm3D,IAAoBA,GAAiB54D,IACvCk4D,EAAW,CAAC,OAAQ,YAAa,UAAW,QAAS,YAEvD6E,OACC,CAACnE,KAEJn3D,aAAgB,WACds7D,OACC,CAACjE,KAEJ,IAaMxsB,GAAe,SAAC7pC,GAGpB,OAFgBq4D,GAAct4D,QAAO,SAAApE,GAAC,OAAIA,EAAE+C,SAAWsB,KAExCE,KAAI,SAAAvE,GAAC,OAAIA,EAAE6/D,SAStBC,GAAoB,SAAC7S,GACzB,IAAM8S,EAAerD,GAAct4D,QACjC,SAAA47D,GAAK,MAAwB,KAApB/S,EAAGltD,OAAO4D,QACG,OAAlBO,IAAKC,SAAL,OACE67D,QADF,IACEA,OADF,EACEA,EAAOl9D,OAAOyO,cAAciuB,SAASytB,EAAGltD,OAAO4D,MAAM4N,eADvD,OAEEyuD,QAFF,IAEEA,OAFF,EAEEA,EAAOj9D,OAAOwO,cAAciuB,SAASytB,EAAGltD,OAAO4D,MAAM4N,mBAI7DsrD,GAAakD,IAGf,OACE,gCAC+B,OAA5Bv8D,EAAYjB,YAAuB,gBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WAC3DzE,EAAW,gBAAC,IAAD,CAAUhB,MAAM,EAAMyF,GAAG,mBAClC,gCACE,gBAAC,GAAD,CAAoB/J,GAAG,MACvB,uBAAKE,UAAU,eACf,gBAACwM,EAAA,EAAD,CAAWxM,UAAU,gBACnB,uBAAKA,UAAU,mBACb,gBAACmhB,GAAA,EAAD,KACE,uBAAKnhB,UAAU,UACb,uBAAKA,UAAU,SACb,0BAAcyI,EAAT+mC,EAAW,qBAA0B,6BAKjD4pB,IAAiB,uBAAKt5D,GAAG,gBACzByiB,EAAU,uBAAKziB,GAAG,gBACjB,wBAAMA,GAAG,kBAAkBsS,MAAO,CAAEqF,QAAS,YAC3C,gBAAC0J,GAAA,EAAD,KACE,uBAAKnhB,UAAU,mBACb,uBAAKA,UAAU,oBACb,uBAAKA,UAAU,OACb,uBAAKA,UAAU,MACb,uBAAKA,UAAU,OAAO6jB,wBAAyB,CAAEC,OAthCnD,8lBAyhCF,uBAAK9jB,UAAU,SACb,yBAAOugB,QAAQ,IAAI9X,EAAE,gBAArB,KACA,gBAAC,KAAD,CACE7C,KAAK,OACLyO,YAAa5L,EAAE,4BACfqD,WAAYsvD,GACZ+C,UAAU,YACVvoC,MAAO,IAAIC,KACXjqB,OAAQ,CAAE/J,MAAO,cACjBe,OA9jBI,SAACuQ,GAC7B,GAAIA,EAAKqV,SAAU,CACjB,IAAIkwC,EAAmB,IAAIhI,GAAiBv9C,EAAKqV,SAAS1oB,GACxDqT,EAAKqV,SAASqnC,WACd18C,EAAKqV,SAASmoC,YACdx9C,EAAKqV,SAASunC,YACd58C,EAAKqV,SAASpa,MACd+E,EAAKqV,SAAS9V,SACdS,EAAKqV,SAASisB,OACdthC,EAAKqV,SAASooC,SACdz9C,EAAKqV,SAASqoC,SACd19C,EAAKqV,SAASsoC,SACd39C,EAAKqV,SAASqC,MACd1X,EAAKqV,SAAS6gB,UAEhBkvB,IAAqB,GACrBI,IAAoB,SAAAyF,GAAG,OAAI1F,KAC3BuC,GAAYvC,EAAiBtqD,OAC7B,IAAMsvD,EAAchF,EAAiBhmD,SAASjQ,KAAI,SAAAsmB,GAAK,kCAClDA,GADkD,IAErD1Y,QAAS6mD,GAAcrvD,MAAK,SAAAwI,GAAO,OAAIA,EAAQpP,SAAW8nB,EAAM1Y,gBAElE2W,GAAY02C,GACZjF,IAAa,SAAAwE,GAAG,kCACXzE,IADW,IAEdxI,eAAgB0I,EAChB7I,WAAY,KACZC,YAAa,KACbC,YAAa,KACb3hD,MAAO,GACPsE,SAAU,UAiiBUuV,OA5hBG,SAAC9U,GACvBA,EAAKqV,SAURmwC,IAAoB,SAAAyF,GAAG,kCAAU1F,IAAV,IAA4B7I,WAAY18C,EAAKqV,SAASqnC,WAAa18C,EAAKqV,SAASqnC,WAAa,WATrH0I,IAAqB,GACrBQ,IAAiB,GAGfJ,GADEL,GACkB,SAAA8F,GAAG,OAAInG,GAEP,SAAAmG,GAAG,kCAAU1F,IAAV,IAA4B7I,WAAY,WAqhB3ChuD,MAAO62D,IAAmBA,GAAiB7I,WAAa6I,GAAiB7I,WAAoB,KAC7FwO,UAAW,EACX/yD,OAAQlJ,IAAKC,SACbxC,IAAK4tB,EAAS,CAAE1N,UAAU,IAC1B6K,eAAgB,CAAEiD,UAAW,OAE9B+a,EAAOhjC,MACN,gCACwB,aAArBgjC,EAAOhjC,KAAK+B,MACX,yBAAO3H,UAAU,UAAUoS,MAAO,CAAEqF,QAAS,UAAYhP,EAAE,0BAKnE,uBAAKzI,UAAU,SACb,6BAAQyI,EAAE,qBAAV,KACA,gBAAC,KAAD,CACE7C,KAAK,YACL9F,GAAG,cACHuU,YAAa5L,EAAE,iCACf6C,OAAQlJ,IAAKC,SACbyJ,WAA8B,OAAlB1J,IAAKC,SAAoB62D,GAAuBF,GAC5DptD,OAAQ,CAAE/J,MAAO,KAAMI,KAAM,QAC7B4mB,gBAAgB,EAChBC,iBAAiB,EACjBjnB,MAAO62D,IAAmBA,GAAiB/H,YAAc+H,GAAiB/H,YAAqB,KAC/FlpC,SAAU6wC,GACVrwC,OAAQ,SAACplB,GAAD,OAAOq6D,GAAiC,cAAer6D,EAAE2lB,SAAW3lB,EAAE2lB,SAAS1oB,GAAK,OAC5FD,IAAK4tB,EAAS,CAAE1N,UAAU,IAC1B+H,KAAM,kBAAM4F,EAAkB,gBAE/Bkb,EAAO01B,WACN,gCAC6B,aAA1B11B,EAAO01B,UAAU32D,MAChB,yBAAO3H,UAAU,UAAUoS,MAAO,CAAEqF,QAAS,UAAYhP,EAAE,0BAKnE,uBAAKzI,UAAU,SACb,6BAAQyI,EAAE,mBAAV,KACA,gBAAC,KAAD,CACE7C,KAAK,UACLyO,YAAa5L,EAAE,wCACf6C,OAAQlJ,IAAKC,SACbyJ,WAAYwtD,GACZ1tD,OAAQ,CAAE/J,MAAO,eACjBomB,OAAQ,SAACplB,GAAD,OAAOq6D,GAAiC,cAAer6D,EAAE2lB,SAAW3lB,EAAE2lB,SAASunC,YAAc,OACrGluD,MAAO62D,IAAmBA,GAAiB3I,YAAc2I,GAAiB3I,YAAqB,KAC/FtoC,SAAU6wC,GACVz4D,IAAK4tB,EAAS,CAAE1N,UAAU,IAC1B6K,eAAgB,CAAEiD,UAAW,KAC7B/F,KAAM,kBAAM4F,EAAkB,cAE/Bkb,EAAO2mB,SACN,gCAC2B,aAAxB3mB,EAAO2mB,QAAQ5nD,MACd,yBAAO3H,UAAU,UAAUoS,MAAO,CAAEqF,QAAS,UAAYhP,EAAE,0BAKnE,uBAAKzI,UAAU,2BACZg7D,GAAS14D,QAAO,SAAAymB,GAAK,OAAqB,IAAjBA,EAAMrjB,WAC9B,uBAAK1F,UAAU,WACb,6BAAQyI,EAAE,iBAAV,MACE6vD,IACA,uBAAKt4D,UAAU,iBACbmK,QAAS,WArkBxB6wD,GAAS14D,QAAO,SAAA8L,GAAK,OAAqB,IAAjBA,EAAM1I,WAG5Cu1D,IAAY,SAAAD,GAAQ,6BAAQA,GAAR,CAAkB,CAAE5sD,MAAO,GAAI1I,OAAQ,YAukBtCs1D,GAAS58D,OAAS,GACjB48D,GAASv4D,KAAI,SAACF,EAAMG,GAAP,OAAiC,IAAhBH,EAAKmD,QACjC,uBAAKpH,IAAKoE,GACR,gBAAC,KAAD,CACEkD,KAAK,QACL9F,GAAG,QACHuU,YAAa5L,EAAE,6BACf6C,OAAQlJ,IAAKC,SACbsF,KAAK,QACL9F,MAAO62D,GAAiBtqD,MAAQ7L,EAAK6L,MAAQ,GAC7C6Z,OAAQ,SAACplB,GAAD,OA1gBd,SAACH,EAAOG,IACpBA,EAAEhB,OAGkB,IAA1Bm5D,GAASt4D,GAAOgD,QAAyC,IAA1Bs1D,GAASt4D,GAAOgD,SACjDs1D,GAASt4D,GAAOgD,OAAS,GAG3Bs1D,GAASt4D,GAAO0L,MAAQvL,EAAEhB,OACU,IAA3Bm5D,GAASt4D,GAAOgD,SACzBs1D,GAASt4D,GAAOgD,OAAS,GAEE,KAAzBs1D,GAASt4D,GAAO0L,SAEQ,IADRsqD,GAAiBtqD,MAAM9L,QAAO,SAAAi8D,GAAS,OAAIA,EAAUnwD,QAAS4sD,GAASt4D,GAAO0L,SAChFhQ,QACds6D,GAAiBtqD,MAAMhK,KAAK42D,GAASt4D,KAGzCi2D,IAAoB,SAAAgF,GAAS,kCAAUA,GAAV,IAAqBvvD,MAAO4sD,QAwfZwD,CAAkB97D,EAAOG,IACxC4kB,SAAU6wC,GACVz4D,IAAK4tB,EAAS,CAAE1N,UAAU,EAAMsO,QAAS,cACzCzD,eAAgB,CAAEiD,UAAW,KAC7B/F,KAAM,kBAAM4F,EAAkB,aAE9B4qC,IACA,uBAAKt4D,UAAU,kBACbmK,QAAS,kBAviBvB,SAACzH,GACnB,GAAuB,OAAnBs4D,GAASt4D,GACX,GAA6B,KAAzBs4D,GAASt4D,GAAO0L,MAAa,CAC/B,IAAIib,EAAMqvC,GAAiBtqD,MAAM3L,KAAI,SAAUI,GAAK,OAAOA,EAAEuL,SAAUpP,QAAQg8D,GAASt4D,GAAO0L,OAErE,IADRsqD,GAAiBtqD,MAAM9L,QAAO,SAAAi8D,GAAS,OAAIA,EAAUnwD,QAAS4sD,GAASt4D,GAAO0L,SAAO,GACvF1I,OACdgzD,GAAiBtqD,MAAMib,GAAK3jB,OAAS,EAErCgzD,GAAiBtqD,MAAMkb,OAAOD,EAAK,QAEF,IAA1B2xC,GAASt4D,GAAOgD,QACzBs1D,GAAS1xC,OAAO5mB,EAAO,GAG3Bu4D,IACE,SAAAD,GAAQ,oBAAQA,MAGlBrC,IAAoB,SAAAgF,GAAS,kCAAUA,GAAV,IAAqBvvD,MAAM,aAAK4sD,SAqhBdyD,CAAY/7D,UAMpCkmC,EAAOx6B,OACN,gCACyB,aAAtBw6B,EAAOx6B,MAAMzG,MACZ,yBAAO3H,UAAU,UAAUoS,MAAO,CAAEqF,QAAS,UAAYhP,EAAE,wBAEtC,YAAtBmgC,EAAOx6B,MAAMzG,MACZ,yBAAO3H,UAAU,UAAUoS,MAAO,CAAEqF,QAAS,UAAYhP,EAAE,6BAKnE,uBAAKzI,UAAU,2BACZunB,GAASjlB,QAAO,SAAAymB,GAAK,OAAqB,IAAjBA,EAAMrjB,WAC9B,uBAAK1F,UAAU,WACb,6BAAQyI,EAAE,mBACR6vD,IACA,uBAAKt4D,UAAU,iBACbmK,QAAS,WA3nBxBod,GAASjlB,QAAO,SAAAymB,GAAK,OAAqB,IAAjBA,EAAMrjB,WAG5CshB,IAAY,SAAAO,GAAQ,6BAAQA,GAAR,CAAkB,CAAE7U,SAAU,GAAIhN,OAAQ,EAAG2K,QAASynD,YA6nBrDvwC,GAASnpB,OAAS,GACjBmpB,GAAS9kB,KAAI,SAACF,EAAMG,GAAP,mBAAiC,IAAhBH,EAAKmD,QACjC,uBAAKpH,IAAKoE,GACR,gBAAC,KAAD,CACEkD,KAAK,QACL9F,GAAG,WACHE,UAAU,UACVsL,OAAQlJ,IAAKC,SACbiQ,WAAW,IACXG,KAAI,WAAS,OAAJlQ,QAAI,IAAJA,GAAA,UAAAA,EAAM8N,eAAN,eAAequD,UAAWn8D,EAAK8N,QAAQquD,SAAW,IAAvD,qEACJj3C,SAAU6wC,GACVz2D,MAAO62D,GAAiBhmD,SAAWnQ,EAAKmQ,SAAW,GACnDuV,OAAQ,SAACplB,GAAD,OApmBd,SAACH,EAAOG,IACpBA,EAAEhB,OAGkB,IAA1B0lB,GAAS7kB,GAAOgD,QAAyC,IAA1B6hB,GAAS7kB,GAAOgD,SACjD6hB,GAAS7kB,GAAOgD,OAAS,GAG3B6hB,GAAS7kB,GAAOgQ,SAAW7P,EAAEhB,OACO,IAA3B0lB,GAAS7kB,GAAOgD,SACzB6hB,GAAS7kB,GAAOgD,OAAS,GAEK,KAA5B6hB,GAAS7kB,GAAOgQ,YAEQ,KADRgmD,GAAiBhmD,UAAYgmD,GAAiBhmD,SAAStU,OAAS,GAAKs6D,GAAiBhmD,SAASpQ,QAAO,SAAA4mB,GAAS,OAAIA,EAAUxW,WAAY6U,GAAS7kB,GAAOgQ,aAC3JtU,QACds6D,GAAiBhmD,SAAStO,KAAKmjB,GAAS7kB,KAG5Ci2D,IAAoB,SAAAgF,GAAS,kCAAUA,GAAV,IAAqBjrD,SAAU6U,QAklBfo3C,CAAkBj8D,EAAOG,IACxC+nB,eAAgB,CAAEiD,UAAW,SAE7ByqC,IACA,uBAAKt4D,UAAU,kBACbmK,QAAS,kBAloBvB,SAACzH,GACnB,IAAI0mB,EAAI,aAAO7B,IACf,GAAmB,OAAf6B,EAAK1mB,GAAgB,CACvB,GAA4B,KAAxB0mB,EAAK1mB,GAAOgQ,SAAgB,CAC9B,IAAI2W,EAAMqvC,GAAiBhmD,SAASjQ,KAAI,SAAUI,GAAK,OAAOA,EAAE6P,YAAa1T,QAAQoqB,EAAK1mB,GAAOgQ,UAEvE,IADRgmD,GAAiBhmD,SAASpQ,QAAO,SAAA4mB,GAAS,OAAIA,EAAUxW,WAAY0W,EAAK1mB,GAAOgQ,YAAU,GAC5FhN,QACd,OAAIgzD,SAAJ,IAAIA,QAAJ,EAAIA,GAAkB54D,IACpB44D,GAAiBhmD,SAAS2W,GAAK3jB,OAAS,EAExC0jB,EAAK1mB,GAAOgD,OAAS,EAGvBgzD,GAAiBhmD,SAAS4W,OAAOD,EAAK,GAEd,IAAtBD,EAAK1mB,GAAOgD,QAChB0jB,EAAKE,OAAO5mB,EAAO,GAGvBskB,IACE,SAAAO,GAAQ,oBAAQ6B,MA8mB6BG,CAAY7mB,MAG/B,uBAAK1C,UAAU,mBAAmBmK,QAAS,kBApMjD,SAACzH,GAClB41D,IACHqC,GAAiBj4D,GAkM0Dk8D,CAAgBl8D,KAC/D,uBAAK1C,UAAU,cAAcqK,KAAS,OAAJ9H,QAAI,IAAJA,GAAA,UAAAA,EAAM8N,eAAN,eAAe0tD,OAAQ3xB,GAAY,OAAC7pC,QAAD,IAACA,OAAD,EAACA,EAAM8N,SAAUkE,IAAsB,OAAjBnS,IAAKC,SAAL,OAAwBE,QAAxB,IAAwBA,GAAxB,UAAwBA,EAAM8N,eAA9B,aAAwB,EAAerP,QAAa,OAAJuB,QAAI,IAAJA,GAAA,UAAAA,EAAM8N,eAAN,eAAepP,UAAf,OAAyBsB,QAAzB,IAAyBA,OAAzB,EAAyBA,EAAM8N,WAC1K,wBAAMrQ,UAAU,eAAhB,WAED06D,KAAkBh4D,GACjB,uBAAK7C,IAAKq7D,GAAUl7D,UAAU,gBAC5B,yBAAOoU,SAAU4pD,GAAmBh+D,UAAU,aAAaqU,YAAY,uBACtEymD,GAAUr4D,KAAI,SAAC4N,EAASnS,GAAV,OACb,uBACE8B,UAAU,4DACV1B,IAAKJ,EACLiM,QAAS,kBAlOnB,SAACkG,EAAS3N,GACpC,IAAMm8D,EAAgB,aAAOt3C,IAE7Bs3C,EAAiBn8D,GAAjB,2BACKm8D,EAAiBn8D,IADtB,IAEE2N,QAASA,EACT3K,OAAQ8pC,GAAUqvB,EAAiBn8D,GAAO5C,GAAK,EAAI,IAGrDknB,GAAY63C,GACZlE,GAAiB,MAwNkCmE,CAAoBzuD,EAAS3N,KAE5C,uBAAK1C,UAAU,cAAcqK,IAAG,OAAEgG,QAAF,IAAEA,OAAF,EAAEA,EAAS0tD,KAAMxpD,IAAsB,OAAjBnS,IAAKC,SAAL,OAAwBgO,QAAxB,IAAwBA,OAAxB,EAAwBA,EAASrP,OAAjC,OAA0CqP,QAA1C,IAA0CA,OAA1C,EAA0CA,EAASpP,SACzG,qBAAGjB,UAAU,eAAeqQ,GAAO,UAAwB,OAAjBjO,IAAKC,SAAL,OAAwBgO,QAAxB,IAAwBA,OAAxB,EAAwBA,EAASrP,OAAjC,OAA0CqP,QAA1C,IAA0CA,OAA1C,EAA0CA,EAASpP,OAA1D,mBAAoEoP,QAApE,IAAoEA,OAApE,EAAoEA,EAASquD,uBAS7HhG,IAAqBA,KAAqBA,GAAiB54D,KAC5D,gCACE,uBAAKE,UAAU,aACb,gBAAC,KAAD,CACE+nB,MAAOtf,EAAE,yBACT2L,SAAU,WA3gBjCkkD,IACHS,IAAiB,SAAAgG,GAAE,OAAKjG,OA2gBE9wC,QAAS8wC,GACTxtD,OAAQlJ,IAAKC,YAGhBy2D,IACC,gCACE,uBAAK94D,UAAU,SACb,6BAAQyI,EAAE,oBACV,gBAAC,KAAD,CACE7C,KAAK,UACLyO,YAAa5L,EAAE,+BACfqD,WAA8B,OAAlB1J,IAAKC,SAAoB4wD,GAAoBR,GACzDnnD,OAAQlJ,IAAKC,SACbuJ,OAAQ,CAAE/J,MAAO,KAAMI,KAAM,QAC7B4mB,gBAAgB,EAChBC,iBAAiB,EACjBjnB,MAAO62D,GAAiB5mD,OACxBmW,OAvlBI,SAACplB,GACjCA,EAAE2lB,UACJ4uC,EAAatrD,WAA+B,OAAlB1J,IAAKC,SAAoBq3D,GAAkBF,GACrEpC,EAAaxhC,OAAQ,IAAIC,MAAQC,MAAM,SAAU,QAASjzB,EAAE2lB,SAAS1oB,IACrEs3D,EAAa3vC,SAAU,EACvB2vC,EAAan1D,KAAO,KACpBm1D,EAAaz0C,WAEbg2C,IAAoB,SAAAwE,GAAG,kCAAUzE,IAAV,IAA4BjkB,OAAQ5xC,EAAE2lB,SAAS1oB,QACpD,IAAlB+C,EAAE2lB,SAAS1oB,GAAWq4D,IAAoB,SAAA6G,GAAG,MAAI,MAAM7G,IAAoB,SAAA6G,GAAG,MAAI,YAE9E5H,IACFA,EAAatrD,WAAa,KAC1BsrD,EAAaxhC,MAAQ,KACrBwhC,EAAa3vC,SAAU,EACvB2vC,EAAan1D,KAAO,KACpBm1D,EAAaz0C,YAGX00C,IACFA,EAAavrD,WAAa,KAC1BurD,EAAazhC,MAAQ,KACrByhC,EAAa5vC,SAAU,EACvB4vC,EAAap1D,KAAO,KACpBo1D,EAAa10C,YAGfg2C,IAAoB,SAAAwE,GAAG,kCAAUzE,IAAV,IAA4BjkB,OAAQ,KAAMmc,SAAU,KAAMC,SAAU,UAC3FsH,IAAoB,SAAA6G,GAAG,MAAI,UAC3B3G,IAAmB,SAAA2G,GAAG,MAAI,eA6jBA,uBAAKh/D,UAAS,gBAAWk4D,KACvB,6BAAQzvD,EAAE,kBACV,gBAAC,KAAD,CACE7C,KAAK,QACLyO,YAAa5L,EAAE,6BACf6C,OAAQlJ,IAAKC,SACbuJ,OAAQ,CAAE/J,MAAO,KAAMI,KAAM,QAC7B4mB,gBAAgB,EAChBC,iBAAiB,EACjBjnB,MAAO62D,GAAmBA,GAAiB9H,SAAW,KACtD3oC,OAnkBE,SAACplB,GAC/BA,EAAE2lB,UACJ6uC,EAAavrD,WAA+B,OAAlB1J,IAAKC,SAAoBy3D,GAAiBF,GACpEvC,EAAazhC,OAAQ,IAAIC,MAAQC,MAAM,WAAY,QAASjzB,EAAE2lB,SAAS1oB,IACvEu3D,EAAa5vC,SAAU,EACvB4vC,EAAap1D,KAAO,KACpBo1D,EAAa10C,WAEbg2C,IAAoB,SAAAwE,GAAG,kCAAUzE,IAAV,IAA4B9H,SAAU/tD,EAAE2lB,SAAS1oB,QACxEu4D,IAAmB,SAAA2G,GAAG,MAAI,QAEtB3H,IACFA,EAAavrD,WAAa,KAC1BurD,EAAazhC,MAAQ,KACrByhC,EAAa5vC,SAAU,EACvB4vC,EAAap1D,KAAO,KACpBo1D,EAAa10C,YAGfg2C,IAAoB,SAAAwE,GAAG,kCAAUzE,IAAV,IAA4B9H,SAAU,KAAMC,SAAU,UAC7EwH,IAAmB,SAAA2G,GAAG,MAAI,YAgjBIn/D,IAAK,SAACopD,GAAYmO,EAAenO,GACjCxhC,SAAS,KAGb,uBAAKznB,UAAS,gBAAWo4D,KACvB,6BAAQ3vD,EAAE,iBACV,gBAAC,KAAD,CACE7C,KAAK,OACLyO,YAAa5L,EAAE,4BACf6C,OAAQlJ,IAAKC,SACbuJ,OAAQ,CAAE/J,MAAO,KAAMI,KAAM,QAC7B4mB,gBAAgB,EAChBC,iBAAiB,EACjBjnB,MAAO62D,GAAmBA,GAAiB7H,SAAW,KACtDhxD,IAAK,SAACopD,GAAYoO,EAAepO,GACjCxhC,SAAS,EACTQ,OAAQ,SAACplB,GAAD,OAAOq6D,GAAiC,WAAYr6D,EAAE2lB,SAAW3lB,EAAE2lB,SAAS1oB,GAAK,UAG7F,uBAAKE,UAAS,QAAWF,GAAI,0BAC3B,6BAAQ2I,EAAE,kBACV,gBAAC,KAAD,CACE7C,KAAK,sBACLyO,YAAa5L,EAAE,6BACfqD,WAAY0uD,GACZlvD,OAAQlJ,IAAKC,SACbuJ,OAAQ,CAAE/J,MAAO,KAAMI,KAAM,QAC7Bq0B,KAAK,WACLD,kBAAkB,EAClBx0B,MAAO62D,IAAmBA,GAAiBhoB,OAASgoB,GAAiBhoB,OAAOjuC,KAAI,SAACZ,GAC/E,OAAOA,EAAM/B,MACH,KACZmoB,OAAQ,SAACplB,GAAD,OAjkBD,SAACA,GACxC,GAAIA,EAAEo8D,aAAc,CAClB,IAAIC,EAAuBr8D,EAAEhB,MAAMY,KAAI,SAACZ,GACtC,MAAO,CAAE/B,GAAI+B,MAEf82D,GAAoB,2BAAKD,IAAN,IAAwBhoB,OAAQwuB,MA4jBNC,CAAiCt8D,IAChDhD,IAAK,SAACopD,GAAY2O,EAA4B3O,GAC9Cv0C,QA1jBI,SAAC7R,GACjC+0D,IACFA,EAA0BwH,eAAgB,EAC1CxH,EAA0B2F,cAAgB90D,EAAE,iCAC5CmvD,EAA0B4F,gBAAkB/0D,EAAE,sCAwjBhB,gBAAC,KAAD,CAAQ2U,SAAU,CAAC+d,UAGvB,uBAAKn7B,UAAU,SACb,6BAAQyI,EAAE,sBACV,gBAAC,KAAD,CACE4L,YAAa5L,EAAE,iCACf5G,MAAO62D,IAAmBA,GAAiB5H,SAAW4H,GAAiB5H,SAAkB,KACzF7oC,OAAQ,SAACplB,GAAD,OAAOq6D,GAAiC,WAAYr6D,EAAEhB,MAAQgB,EAAEhB,MAAQ,OAChF+oB,eAAgB,CAAEiD,UAAW,KAC7BhuB,IAAK,SAACw/D,GAAD,OAAO9H,EAAkB8H,MAGlC,uBAAKr/D,UAAU,SACb,6BAAQyI,EAAE,uBACV,gBAAC,KAAD,CACE4L,YAAa5L,EAAE,kCACf5G,MAAO62D,IAAmBA,GAAiB7tC,MAAQ6tC,GAAiB7tC,MAAe,KACnF5C,OAAQ,SAACplB,GAAD,OAAOq6D,GAAiC,QAASr6D,EAAEhB,MAAQgB,EAAEhB,MAAQ,OAC7E+oB,eAAgB,CAAEiD,UAAW,KAC7BhuB,IAAK,SAACw/D,GAAD,OAAO7H,EAAmB6H,MAGnC,uBAAKr/D,UAAU,SACb,6BAAQyI,EAAE,oBACV,gBAAC,KAAD,CACE4L,YAAa5L,EAAE,+BACf5G,MAAO62D,IAAmBA,GAAiBrvB,SAAWqvB,GAAiBrvB,SAAkB,KACzFphB,OAAQ,SAACplB,GAAD,OAAOq6D,GAAiC,WAAYr6D,EAAEhB,MAAQgB,EAAEhB,MAAQ,OAChF+oB,eAAgB,CAAEiD,UAAW,KAC7BhuB,IAAK,SAACw/D,GAAD,OAAO5H,EAAgB4H,UAS5C,uBAAKr/D,UAAU,mBACb,uBAAKA,UAAU,eACb,uBAAKA,UAAU,0CACb,uBAAKA,UAAU,mBACf,8BAAMyI,EAAE,6BAAR,MAEF,uBAAKzI,UAAU,YACb,uBAAKA,UAAU,SACb,6BAAQyI,EAAE,kBAAV,KACA,gBAAC,KAAD,CACE7C,KAAK,gBACLwE,SAAS,SACTiK,YAAa5L,EAAE,8BACf6C,OAAQlJ,IAAKC,SACbyJ,WAA8B,OAAlB1J,IAAKC,SAAoB63D,GAA0BF,GAC/DpuD,OAAQ,CAAE/J,MAAO,KAAMI,KAAM,QAC7B4mB,gBAAgB,EAChBC,iBAAiB,EACjBjnB,MAAO22D,IAAYA,GAAUvI,SAAWuI,GAAUvI,SAAkB,KACpEhoC,OAAQ,SAACplB,GACPi6D,GAA0B,WAAYj6D,EAAE2lB,SAAW3lB,EAAE2lB,SAAS1oB,GAAK,MACnE4tB,EAAkB,kBAEpB7tB,IAAK4tB,EAAS,CAAE1N,UAAU,IAC1B+H,KAAM,kBAAM4F,EAAkB,oBAE/Bkb,EAAO02B,eACN,gCACiC,aAA9B12B,EAAO02B,cAAc33D,MACpB,yBAAO3H,UAAU,UAAUoS,MAAO,CAAEqF,QAAS,UAAYhP,EAAE,0BAKnE,uBAAKzI,UAAU,SACb,6BAAQyI,EAAE,qBACV,gBAAC,KAAD,CACE4L,YAAa5L,EAAE,gCACfqD,WAA8B,OAAlB1J,IAAKC,SAAoB8wD,GAAqBR,GAC1D7pC,iBAAiB,EACjBld,OAAQ,CAAE/J,MAAO,KAAMI,KAAM,QAC7BJ,MAAO22D,GAAUxmD,WAAawmD,GAAUxmD,WAAa,GACrD3P,SAAUD,IAAKC,SACfwmB,gBAAgB,EAChBZ,OAAQ,SAACplB,GAAD,OAAOi6D,GAA0B,aAAcj6D,EAAE2lB,SAAW3lB,EAAE2lB,SAAS1oB,GAAK,WAI1F,uBAAKE,UAAU,eACb,uBAAKA,UAAU,SACb,6BAAQyI,EAAE,2BACV,gBAAC,KAAD,CACE2B,SAAS,SACTvK,IAAK,SAAAmpD,GAAU,OAAI6O,EAAkB7O,GACrC30C,YAAa5L,EAAE,sCACf6C,OAAQlJ,IAAKC,SACbk9D,WAAW,EACXt3C,OAAQ,SAACplB,GAAD,OAAOi6D,GAA0B,gBAAiBj6D,EAAEhB,MAAQgB,EAAEhB,MAAQ,OAC9EA,MAAO22D,IAAYA,GAAUtI,cAAgBsI,GAAUtI,cAAuB,KAC9EsP,qBAAqB,OAGzB,uBAAKx/D,UAAU,SACb,6BAAQyI,EAAE,uBAAV,KACA,gBAAC,KAAD,CACE7C,KAAK,cACLyO,YAAa5L,EAAE,mCACf6C,OAAQlJ,IAAKC,SACbk9D,WAAW,EACX1/D,IAAK4tB,EAAS,CAAE1N,UAAU,IAC1BkI,OAAQ,SAACplB,GACPi6D,GAA0B,kBAAmBj6D,EAAEhB,MAAQgB,EAAEhB,MAAQ,MACjE6rB,EAAkB,gBAEpB5F,KAAM,kBAAM4F,EAAkB,gBAC9B7rB,MAAO22D,IAAYA,GAAUnI,gBAAkBmI,GAAUnI,gBAAyB,OAEnFznB,EAAO62B,aACN,gCAC+B,aAA5B72B,EAAO62B,YAAY93D,MAClB,yBAAO3H,UAAU,UAAUoS,MAAO,CAAEqF,QAAS,UAAYhP,EAAE,0BAKnE,uBAAKzI,UAAU,SACb,6BAAQyI,EAAE,uBACV,gBAAC,KAAD,CACE2B,SAAS,SACTiK,YAAa5L,EAAE,kCACf6C,OAAQlJ,IAAKC,SACbyJ,WAA8B,OAAlB1J,IAAKC,SAAoBi4D,GAA+BF,GACpExuD,OAAQ,CAAE/J,MAAO,KAAMI,KAAM,QAC7B4mB,gBAAgB,EAChBC,iBAAiB,EACjBjnB,MAAO22D,IAAYA,GAAUzlB,SAAWylB,GAAUzlB,SAAkB,KACpE9qB,OAAQ,SAACplB,GAAD,OAAOi6D,GAA0B,WAAYj6D,EAAE2lB,SAAW3lB,EAAE2lB,SAAS1oB,GAAK,UAGtF,uBAAKE,UAAU,SACb,6BAAQyI,EAAE,yBAAV,KACA,gBAAC,KAAD,CACE7C,KAAK,eACLwE,SAAS,SACTiK,YAAa5L,EAAE,qCACf6C,OAAQlJ,IAAKC,SACbyJ,WAA8B,OAAlB1J,IAAKC,SAAoB0wD,GAAyBR,GAC9D3mD,OAAQ,CAAE/J,MAAO,KAAMI,KAAM,QAC7B4mB,gBAAgB,EAChBC,iBAAiB,EACjBjnB,MAAO22D,IAAYA,GAAU1rB,cAAgB0rB,GAAU1rB,cAAuB,KAC9E7kB,OAAQ,SAACplB,GACPi6D,GAA0B,gBAAiBj6D,EAAE2lB,SAAW3lB,EAAE2lB,SAAS1oB,GAAK,MACxE4tB,EAAkB,iBAEpB7tB,IAAK4tB,EAAS,CAAE1N,UAAU,IAC1B+H,KAAM,kBAAM4F,EAAkB,mBAE/Bkb,EAAO6mB,cACN,gCACgC,aAA7B7mB,EAAO6mB,aAAa9nD,MACnB,yBAAO3H,UAAU,UAAUoS,MAAO,CAAEqF,QAAS,UAAYhP,EAAE,0BAKnE,uBAAKzI,UAAU,YACb,6BAAQyI,EAAE,yBACV,gBAAC,KAAD,CACE2B,SAAS,SACTiK,YAAa5L,EAAE,oCACf5G,MAAO22D,GAAUkH,eAAiBlwB,EAASgpB,GAAUkH,cAAgBh+D,EAAYhB,SACjF+mB,SAAS,KAGb,uBAAKznB,UAAU,YACb,6BAAQyI,EAAE,yBACV,gBAAC,KAAD,CACE2B,SAAS,SACTiK,YAAa5L,EAAE,oCACf5G,MAAO22D,GAAUpI,aAAeoI,GAAUpI,aAAe,GACzDnoC,OAAQ,SAACplB,GAAD,OAAOi6D,GAA0B,eAAgBj6D,EAAEhB,MAAQgB,EAAEhB,MAAQ,OAC7EhC,IAAK,SAACw/D,GAAD,OAAO1H,EAAqB0H,MAGrC,uBAAKr/D,UAAU,YACb,6BAAQyI,EAAE,6BACV,gBAAC,KAAD,CACE2B,SAAS,SACTiK,YAAa5L,EAAE,wCACfof,WAAW,EACX+C,eAAgB,CAAE+0C,KAAM,MACxBA,KAAM,GACN9/D,IAAK,SAACw/D,GAAD,OAAO3H,EAAoB2H,GAChCp3C,OAAQ,SAACplB,GAAD,OAAOi6D,GAA0B,YAAaj6D,EAAEhB,MAAQgB,EAAEhB,MAAQ,OAC1EA,MAAO22D,IAAYA,GAAUrI,UAAYqI,GAAUrI,UAAmB,UAK9E,uBAAKnwD,UAAU,eACb,uBAAKA,UAAU,0CACb,uBAAKA,UAAU,0BACf,0BAAKyI,EAAE,+BAET,uBAAKzI,UAAU,8BACb,uBAAKA,UAAU,WAAWH,IAAK,SAAA6iB,GAAQ,OAAIX,EAAcW,GAAU5iB,GAAG,sBACpE,yBACG2I,EAAE,yCACH,wBAAM0B,QAAS,kBA1hCzCyG,SAASiS,uBAAuB,sBAAsB,GAAGC,cAAc,UAAU9H,SAC1E,IAyhCmB,IAA2CvS,EAAE,4CAGjD,uBAAKzI,UAAU,6DACb,sBAAIA,UAAU,kBACXwvC,GAAUopB,IAAsBA,GAAmBx6D,OAAS,GAC3Dw6D,GAAmBt2D,QAAO,SAAAwC,GAAC,OAAiB,IAAbA,EAAEY,SAAiBZ,EAAEmsD,WAASxuD,KAAI,SAACF,GAChE,OAAO,sBAAIvC,UAAU,qBAAqB+jB,mBAAiB,KACzD,wBAAM/jB,UAAU,gCAAgCmK,QAAS,kBAAM6Z,GAAmBzhB,EAAKwa,YACrF,wBAAM/c,UAAU,eAAeuC,EAAKwa,UACpC,wBAAM/c,UAAU,eAAhB,QACA,wBAAMA,UAAU,sBAAsBkG,EAAY3D,EAAK4uD,WAAY,KAErE,wBAAMnxD,UAAU,4BAA4BT,MAAM,UAAU4K,QAAS,kBAnwB9E,SAAC4S,GACxB,IAAI6iD,EAAahH,GAAmBt2D,QAAO,SAAA6wB,GAAC,OAAIA,EAAEpW,WAAaA,KAC3Dxa,EAAOq2D,GAAmBt2D,QAAO,SAAA6wB,GAAC,OAAIA,EAAEpW,WAAaA,KACzDxa,EAAK,GAAGmD,OAAS,EACjBmzD,GAAsB+G,EAAW1qC,OAAO3yB,IA+vBmEs9D,CAAiBt9D,EAAKwa,mBAM3G,gBAAC,KAAD,CACEjd,GAAG,oBACHD,IAAK,SAAAokB,GAAQ,OAAInC,EAAcmC,GAC/BvB,SAAUzkB,EACVqN,OAAQlJ,IAAKC,SACb4iB,UAAU,EACVvQ,QAASmoD,GACT16D,SAziCI,SAAA4B,GAC5BA,EAAMogB,UAAU1hB,KAAI,SAAC2Z,GACnB,IAAMiI,EAAS,IAAIC,WACnBD,EAAOI,iBAAiB,QAAQ,WAC9B,IAAIq7C,EAAez7C,EAAOpb,OAAOuX,MAAM,KACnCu/C,EAAS,IAAIhP,GAAkB30C,EAAKtc,GAAIsc,EAAK0I,QAAQnd,KAAMyU,EAAK0I,QAAQlf,MAC5Em6D,EAAO9O,QAAU6O,EAAa,GAC9BC,EAAOr6D,OAAS,EAChBmzD,IAAsB,SAAAD,GAAkB,6BAAQA,GAAR,CAA4BmH,UACnE,GACH17C,EAAOQ,cAAczI,EAAK0I,aAgiCJE,SA5hCK,SAAC7R,GAC9BA,EAAKgR,UAAU1hB,KAAI,SAAC2Z,GAClBy8C,IAAsB,SAAAD,GAAkB,OAAIA,EAAmBt2D,QAAO,SAAC6wB,GAAD,OAAQA,EAAErzB,KAAOsc,EAAKtc,kBA+hC9E,uBAAKE,UAAU,mBACb,gBAAC,GAAD,CAASwrB,SAAUuE,KAEjByf,GACA,uBAAKxvC,UAAU,WACb,uBAAKA,UAAU,0CACb,uBAAKA,UAAU,uBACf,0BAAKyI,EAAE,yBAET,uBAAKzI,UAAU,8BACb,2BACGw4D,GAAU5L,WAAa4L,GAAU5L,UAAUnqD,KAAI,SAACF,EAAMG,GAAP,OAC9C,uBAAK1C,UAAU,OAAO1B,IAAKoE,GACzB,uBAAK1C,UAAU,QACb,wBAAMA,UAAU,QAAQuC,EAAK7B,UAC7B,wBAAMV,UAAU,QAAS,IAAIsH,KAAK/E,EAAK8E,MAAOE,mBAAmBnF,IAAKC,UAAtE,IAAmF,IAAIiF,KAAK/E,EAAK8E,MAAOG,mBAAmBpF,IAAKC,SAAU,CAAEmuB,QAAQ,MAEtJ,uBAAKxwB,UAAU,UACb,4BAAwB,OAAjBoC,IAAKC,SAAmBE,EAAK+jC,WAAWtlC,OAASuB,EAAK+jC,WAAWrlC,aAG3E+xC,iBAUrB,gBAAC,KAAD,CACElzC,GAAG,cACHoe,SAAS,EACTvC,QAAS4kB,GACTj1B,OAAQlJ,IAAKC,UAEb,2BACE,uBAAKrC,UAAU,YACb,yBAAOA,UAAU,oBACjB,uBAAKA,UAAU,gBACb,yBAAOF,GAAG,UAAU2I,EAAE,mBACtB,yBAAO3I,GAAG,eAAe2I,EAAE,+BAG/B,2BACA,uBAAKzI,UAAU,iBACb,0BAAQmK,QAAS,kBAAMq2B,IAAgB,KAAS/3B,EAAE,mBAClD,0BAAQ0B,QAAS,SAACtH,GAAD,OAAO84D,GAAW94D,KAAsB,OAAjBT,IAAKC,SAAmB,MAAQ,a,sEC9mDpFc,GAAe,CACjBa,KAAM,KACNyoC,UAAW,KACXE,QAAS,MAGPqzB,GAA4Bz+D,gBAAoB4B,IAEhD88D,GAA6B,SAAC,GAAkB,IAAhBx+D,EAAe,EAAfA,SAClC,EAAoDF,WAAe4B,IAAnE,mBAAO+8D,EAAP,KAA2BC,EAA3B,KACA,OACI,gBAACH,GAA0Bp+D,SAA3B,CAAoCC,MAAO,CAACq+D,EAAmBC,IAC1D1+D,ICJA2+D,GAAkB,WAE7B,IAAQ33D,EAAMC,cAAND,EACR,EAAsBlH,aAAiBD,GAAhCI,EAAP,oBACA,EAA6BH,aAAiBy+D,IAAvCE,EAAP,oBACA,EAAwB3+D,WAAe,IAAvC,mBAAOyC,EAAP,KAAagb,EAAb,KACA,EAA0Bzd,WAAe,GAAzC,mBAAO4V,EAAP,KAAckpD,EAAd,KACA,EAA4C9+D,WAAe,IAA3D,mBAAO++D,EAAP,KAAuBC,EAAvB,KACA,EAA8Bh/D,WAAe,IAA7C,mBAAOkN,EAAP,KAAgB+xD,EAAhB,KAEAj/D,aAAgB,WACd,GAAI2+D,GAAsBA,EAAmBl8D,KAAK5F,OAAS,EAAG,CAAC,IAAD,gBACxDqiE,EAAaP,EAAmBl8D,KAAKvB,KAAI,SAAAvE,GAC3C,MAAO,CACLwiE,YAA0C,OAA7Bh/D,EAAYZ,aAAwB5C,EAAE69C,YAAY7pC,OAAShU,EAAE69C,YAAY9pC,OACtF0uD,cAAeziE,EAAE69C,YAAYj8C,GAC7B8gE,uBAAwB1iE,EAAE2iE,2BAI1BC,EAAiB,CACnBH,cAAa,OAAET,QAAF,IAAEA,GAAF,UAAEA,EAAoBa,eAAtB,aAAE,EAA6BtR,aAC5CptD,SAAUD,IAAKC,SACf2+D,YAAW,OAAEd,QAAF,IAAEA,GAAF,UAAEA,EAAoBa,eAAtB,aAAE,EAA6BxR,QAC1C0R,aAAY,OAAEf,QAAF,IAAEA,GAAF,UAAEA,EAAoBa,eAAtB,aAAE,EAA6BvR,aAC3C0R,WAAU,OAAEhB,QAAF,IAAEA,GAAF,UAAEA,EAAoBa,eAAtB,aAAE,EAA6BrR,YACzCyR,QAAO,OAAEjB,QAAF,IAAEA,GAAF,UAAEA,EAAoBa,eAAtB,aAAE,EAA6BpR,UACtCyR,oBAAmB,OAAElB,QAAF,IAAEA,GAAF,UAAEA,EAAoBa,eAAtB,aAAE,EAA6Br7D,OAClD27D,OAAM,OAAEnB,QAAF,IAAEA,GAAF,UAAEA,EAAoBa,eAAtB,aAAE,EAA6B1wD,QACrCixD,WAAU,OAAEpB,QAAF,IAAEA,GAAF,UAAEA,EAAoBa,eAAtB,aAAE,EAA6BhgE,UAG3Cie,EAAQyhD,GACRD,EAAWM,GAEX,IAAIS,EAAM,EACVrB,EAAmBl8D,KAAKvB,KAAI,SAAAvE,GAC1BqjE,GAAOrjE,EAAE2iE,0BAEXR,EAASkB,MAGV,CAACrB,EAAmBl8D,KAAMtC,EAAYZ,eAEzCS,aAAgB,WAKV,IAAIigE,EAJJtB,GACFA,EAAmBl8D,KAAK5F,OAAS,IAE7B8hE,EAAmBzzB,WAAayzB,EAAmBvzB,SAInD60B,EAD+B,OAA7B9/D,EAAYZ,aACL,eAAWo/D,EAAmBzzB,UAAUllC,mBAAmB,MAA3D,eAAuE24D,EAAmBvzB,QAAQplC,mBAAmB,OAErH,aAAS24D,EAAmBzzB,UAAUllC,mBAAmB,MAAzD,mBAAsE24D,EAAmBvzB,QAAQplC,mBAAmB,OAG/Hg5D,EAAkBiB,IAElBjB,EAAkB,SAGrB,CAACL,EAAmBzzB,UAAWyzB,EAAmBvzB,QAASjrC,EAAYZ,eAE1E,IAUM2gE,EAAe,SAACtuD,GACpB,IAAM8lC,EAAY,WAChB,OAAQ9lC,GACN,IAAK,MACH,MAAO,QACT,IAAK,QACH,MAAO,QACT,QACE,SAIAuuD,EAAU,2BAAOjzD,GAAP,IAAgBwqC,UAAWA,OfoCxC,SAAP,sCelCI0oB,CAAoBjgE,EAAYjB,YAAaihE,GAAY34D,KAAzD,uCAA8D,WAAOwI,GAAP,UAAAzM,EAAA,SAAAA,EAAA,sEACzCyM,EAAImJ,OADqC,OACtDA,EADsD,OAEtDknD,EAAU,IAAI/mD,KAAK,CAACH,GAAO,CAAE/S,KAAe,QAATwL,EACrC,0EACA,sEAEAnJ,EAAMlH,OAAO6X,IAAIC,gBAAgBgnD,IACjC98D,EAAI8L,SAASnR,cAAc,MAC7BoiE,SAAF,gBAAsB5oB,KACtBn0C,EAAE2R,KAAOzM,EACTlF,EAAEkW,QACFlW,EAAEoe,SAX0D,4CAA9D,uDAYGha,MAAME,QAAQD,QAOb24D,EAAU,CACdpvB,IAAK,WAJL5vC,OAAOi/D,SAKPpvB,IAAK,kBAAM8uB,EAAa,QACxB7uB,MAAO,kBAAM6uB,EAAa,WAG5B,OACE,gCAEIz9D,GACAA,EAAK5F,OAAS,GAEd,uBAAK0B,GAAG,mBACN,2BACE,uBAAKE,UAAU,kBAAkByI,EAAE,2BACnC,uBAAKzI,UAAU,WAEXsgE,GACA,2BACE,wBAAMtgE,UAAU,uBAChB,6BAAQsgE,IAGZ,yBAAI73D,EAAE,+BAER,gBAAC,KAAD,CACE3I,GAAG,QACHJ,MAAM,MACNC,OAAO,OACPqiE,eAxEW,CACrBrmD,SAAS,EACTzE,SAAU,SACVnU,SAAU,CAAEowB,EAAG,IAAK8uC,EAAG,IACvBC,UAAW,CACTC,MAAO,UACPC,WAAY,UAmEJC,WAAW,UACXC,aAAc,CACZC,UAAW,WACXhjE,MAAO,GACPijE,eAAgB,CAAE9iE,MAAO,GACzB+iE,eAAgB,CAAE/iE,MAAO,GACzBgjE,WAAY,CAAEP,MAAO,UAAWC,WAAY,QAASx+C,KAAM,GAAI++C,cAAe,OAC9EC,qBAAsB,QAExBC,aAAc,CACZL,eAAgB,CAAE9iE,MAAO,GACzB+iE,eAAgB,CAAE/iE,MAAO,IAE3BojE,SAAU,CAAEX,MAAO,QACnB72D,OAAQlJ,IAAKC,SACbwJ,QAAS,CAAEk3D,QAAQ,IAEnB,gBAAC,KAAD,CAAQ3lD,SAAU,CAAC4lD,KAAcC,KAAQxxB,KAASyxB,KAAWC,QAC7D,gBAAC,KAAD,KACE,gBAAC,KAAD,CAAiB9qD,KAAK,UAAUzS,KAAwB,OAAlBxD,IAAKC,SAAoB,aAAe,SAAUyJ,WAAY9H,EAAMo/D,MAAM,cAAcC,MAAM,yBAAyB17D,KAAK,SAAS27D,YAAY,WAI7L,uBAAKxjE,GAAG,cACN,uBAAKE,UAAU,UACb,6BAAQyI,EAAE,0CACV,6BAAQA,EAAE,uCAEXy3D,GACCA,EAAmBl8D,KAAK5F,OAAS,GACjC8hE,EAAmBl8D,KAAKvB,KAAI,SAACvE,EAAGwE,GAC9B,OACE,uBAAKpE,IAAKoE,EAAO1C,UAAU,kBACzB,6BAAqC,OAA7B0B,EAAYZ,aAAwB5C,EAAE69C,YAAY7pC,OAAShU,EAAE69C,YAAY9pC,QACjF,6BAAQ/T,EAAE2iE,4BAKlB,uBAAK7gE,UAAU,UACb,sCACA,6BAAQmX,IAEV,gBAAC,GAAD,CAAQqU,SAAUs2C,EAASnvB,IAAI,YAAY7yC,GAAG,qB,UChL7CyjE,GAAkB,WAE3B,IA2BIC,EACAC,EA5BIh7D,EAAMC,cAAND,EACR,EAAsBlH,aAAiBD,GAAhCI,EAAP,oBACA,EAAoDH,aAAiBy+D,IAArE,mBAA2BG,GAA3B,WAEA,EAA8B5+D,WAAe,MAA7C,mBAAOguD,EAAP,KAAgBmU,EAAhB,KACA,EAAsCniE,WAAe,MAArD,mBAAOoiE,EAAP,KAAoBC,EAApB,KACA,EAAkCriE,WAAe,MAAjD,mBAAOkrC,EAAP,KAAkBo3B,EAAlB,KACA,EAA8BtiE,WAAe,MAA7C,mBAAOorC,EAAP,KAAgBm3B,EAAhB,KAEA,EAA4DviE,WAAe,IAA3E,mBAAOgxD,EAAP,KAA+BC,EAA/B,KACA,EAA4DjxD,WAAe,IAA3E,mBAAOwxD,EAAP,KAA+BC,EAA/B,KACA,EAAwCzxD,WAAe,MAAvD,mBAAOkuD,EAAP,KAAqBsU,EAArB,KAEA,EAAgDxiE,WAAe,IAA/D,mBAAOsxD,EAAP,KAAyBC,EAAzB,KACA,EAAgDvxD,WAAe,IAA/D,mBAAO8xD,EAAP,KAAyBC,EAAzB,KACA,EAA4B/xD,WAAe,MAA3C,mBAAOmE,EAAP,KAAes+D,EAAf,KAEA,EAAkDziE,WAAe,IAAjE,oBAAOkxD,GAAP,MAA0BC,GAA1B,MACA,GAAkDnxD,WAAe,IAAjE,qBAAO0xD,GAAP,MAA0BC,GAA1B,MACA,GAA8B3xD,WAAe,MAA7C,qBAAO8O,GAAP,MAAgBC,GAAhB,MAEA,GAAoD/O,WAAe,IAAnE,qBAAOoxD,GAAP,MAA2BC,GAA3B,MACA,GAAoDrxD,WAAe,IAAnE,qBAAO4xD,GAAP,MAA2BC,GAA3B,MACA,GAAsC7xD,WAAe,MAArD,qBAAO0iE,GAAP,MAAoBC,GAApB,MAEA,GAA8C3iE,WAAe,KAA7D,qBAAO4iE,GAAP,MAAwBC,GAAxB,MAmCMpP,GAAqB,SAACxpB,GACxBgnB,EAA0BhnB,EAAe/oC,KAAI,SAAA0wB,GACzC,MAAO,CACHrzB,GAAIqzB,EAAErzB,GACN0U,KAAM2e,EAAElhB,YAGhB+gD,EAA0BxnB,EAAe/oC,KAAI,SAAA0wB,GACzC,MAAO,CACHrzB,GAAIqzB,EAAErzB,GACN0U,KAAM2e,EAAEjhB,aAKdijD,GAAe,SAACC,GAClBtC,EAAoBsC,EAAQ3yD,KAAI,SAAA0wB,GAC5B,MAAO,CACHrzB,GAAIqzB,EAAErzB,GACN0U,KAAM2e,EAAElhB,YAGhBqhD,EAAoB8B,EAAQ3yD,KAAI,SAAA0wB,GAC5B,MAAO,CACHrzB,GAAIqzB,EAAErzB,GACN0U,KAAM2e,EAAEjhB,aAKd+iD,GAAkB,SAACI,GACrB3C,GAAqB2C,EAAU5yD,KAAI,SAAA0wB,GAC/B,MAAO,CACHrzB,GAAIqzB,EAAErzB,GACN0U,KAAM2e,EAAElhB,YAGhBihD,GAAqBmC,EAAU5yD,KAAI,SAAA0wB,GAC/B,MAAO,CACHrzB,GAAIqzB,EAAErzB,GACN0U,KAAM2e,EAAEjhB,aAKdgjD,GAAkB,SAACI,GACrB1C,GAAsB0C,EAAW7yD,KAAI,SAAA0wB,GACjC,MAAO,CACHrzB,GAAIqzB,EAAErzB,GACN0U,KAAM2e,EAAElhB,YAGhBmhD,GAAsBkC,EAAW7yD,KAAI,SAAA0wB,GACjC,MAAO,CACHrzB,GAAIqzB,EAAErzB,GACN0U,KAAM2e,EAAEjhB,aAKpB3Q,aAAgB,WAzFZiM,GAAoB9L,EAAYjB,aAC/BsI,MAAK,SAAAvD,GACEA,EAASC,IACTD,EAASwD,OAAOD,MAAK,SAAA/E,GAAI,OAAIgxD,GAAmBhxD,SAIxD6J,GAAiBnM,EAAYjB,aAC5BsI,MAAK,SAAAvD,GACEA,EAASC,IACTD,EAASwD,OAAOD,MAAK,SAAA/E,GAAI,OAAImxD,GAAanxD,SAIlD+I,GAAarL,EAAYjB,aACxBsI,MAAK,SAAAvD,GACEA,EAASC,IACTD,EAASwD,OAAOD,MAAK,SAAA/E,GAAI,OAAIixD,GAAgBjxD,SAIrDqJ,GAAY3L,EAAYjB,aACvBsI,MAAK,SAAAvD,GACEA,EAASC,IACTD,EAASwD,OAAOD,MAAK,SAAA/E,GAAI,OAAIkxD,GAAgBlxD,WAmEtD,IAEHzC,aAAgB,WACZiiE,EAAWnvD,YAAc5L,EAAE,oCAC3Bg7D,EAAepvD,YAAc5L,EAAE,qCAChC,CAACrG,IAAKC,WAET,IAKMgiE,GAAiB,WACrB,IAAIC,EAAe,IAAIhV,GACrBC,EACAoU,EACAlU,EACAhjB,EACAE,EACAjnC,EACA2K,GACA4zD,KhB3DD,SAAP,sCgB8DMM,CAAsB7iE,EAAYjB,YAAa6jE,GAC9Cv7D,MAAK,SAAAvD,GACAA,EAASC,IACXqJ,QAAQC,QAAQvJ,EAASwD,QAAQD,MAAK,SAAA/E,GACpCm8D,EAAsB,CACpBn8D,KAAMA,EACNyoC,UAAWA,EACXE,QAASA,EACTo0B,QAASuD,IAEXF,GAAmB,UAM3B,OACI,gCACI,uBAAKtkE,GAAG,mBACJ,uBAAKE,UAAU,gBACX,wBAAMA,UAAU,qBAChB,6BAAQyI,EAAE,oBAEd,sBAAIzI,UAAU,UACd,uBAAKA,UAAU,UACX,uBAAKA,UAAU,SACX,6BAAQyI,EAAE,oBACV,gBAAC,KAAD,CACI3I,GAAG,YACHuU,YAAa5L,EAAE,oCACfwf,OAAQ,SAACplB,GAAD,OAAO6gE,EAAW7gE,EAAEhB,QAC5BhC,IAAK,SAAA2kE,GAAG,OAAIhB,EAAagB,MAGjC,uBAAKxkE,UAAU,SACX,6BAAQyI,EAAE,wBACV,gBAAC,KAAD,CACI3I,GAAG,gBACHuU,YAAa5L,EAAE,mCACfwf,OAAQ,SAACplB,GAAD,OAAO+gE,EAAe/gE,EAAEhB,QAChChC,IAAK,SAAA0R,GAAG,OAAIkyD,EAAiBlyD,MAGrC,uBAAKvR,UAAU,SACX,6BAAQyI,EAAE,0BACV,gBAAC,KAAD,CACI3I,GAAG,gBACHuU,YAAa5L,EAAE,qCACfqD,WAAyC,OAA7BpK,EAAYZ,aAAwBiyD,EAAyBR,EACzE3mD,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,MAC/BA,MAAO4tD,EACPxnC,OAAQ,SAACplB,GAAD,OAAOkhE,EAAgBlhE,EAAEhB,QACjCinB,iBAAiB,KAGzB,uBAAK9oB,UAAU,SACX,6BAAQyI,EAAE,mBACV,gBAAC,KAAD,CACI3I,GAAG,YACH6oB,YAAY,EACZtU,YAAa5L,EAAE,kBACf6C,OAAQlJ,IAAKC,SACbymB,iBAAiB,EACjBy2C,WAAW,EACXt3C,OAAQ,SAACplB,GAAD,OAhF9BghE,GADqBjjD,EAiF8B/d,GAhFlC4pC,gBACjBq3B,EAAWljD,EAAI+rB,SAFK,IAAC/rB,MAoFP,uBAAK5gB,UAAU,SACX,6BAAQyI,EAAE,mBACV,gBAAC,KAAD,CACI3I,GAAG,WACHuU,YAAa5L,EAAE,8BACfqD,WAAyC,OAA7BpK,EAAYZ,aAAwBuyD,EAAkBR,EAClEjnD,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,MAC/BA,MAAO6D,EACPuiB,OAAQ,SAACplB,GAAD,OAAOmhE,EAAUnhE,EAAEhB,QAC3BinB,iBAAiB,KAGzB,uBAAK9oB,UAAU,SACX,6BAAQyI,EAAE,oBACV,gBAAC,KAAD,CACI3I,GAAG,YACHuU,YAAa5L,EAAE,+BACfqD,WAAyC,OAA7BpK,EAAYZ,aAAwBmyD,GAAmBR,GACnE7mD,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,MAC/BgnB,gBAAgB,EAChBhnB,MAAOwO,GACP4X,OAAQ,SAACplB,GAAD,OAAOyN,GAAWzN,EAAEhB,QAC5BinB,iBAAiB,KAGzB,uBAAK9oB,UAAU,SACX,6BAAQyI,EAAE,qBACV,gBAAC,KAAD,CACI3I,GAAG,aACHuU,YAAa5L,EAAE,gCACfqD,WAAyC,OAA7BpK,EAAYZ,aAAwBqyD,GAAoBR,GACpE/mD,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,MAC/BA,MAAOoiE,GACPh8C,OAAQ,SAACplB,GAAD,OAAOqhE,GAAerhE,EAAEhB,QAChCinB,iBAAiB,KAGzB,uBAAK9oB,UAAU,UACX,gBAAC,KAAD,CACI6T,QAASpL,EAAE,sCACXgX,gBAAgB,EAChBtV,QAAS,kBAAMk6D,MACf7kD,WAAW,EACXnU,SAAU84D,UCvQzBM,I,OAAgB,WAEzB,IAAQh8D,EAAMC,cAAND,EACR,EAA6BlH,aAAiBy+D,IAAvCE,EAAP,oBAEA,OACI,gCACA,gBAAC,GAAD,CAAoBpgE,GAAG,MACnB,uBAAKA,GAAG,aACR,gBAAC0M,EAAA,EAAD,CAAWxM,UAAU,eAAeF,GAAG,iBACnC,gBAACqhB,GAAA,EAAD,KACI,uBAAKnhB,UAAU,UACX,uBAAKA,UAAU,cACVyI,EAAE,0BAIf,gBAAC0Y,GAAA,EAAD,KACI,uBAAKnhB,UAAU,mBACX,gBAAC,GAAD,OAGAkgE,GACAA,EAAmBl8D,MACnBk8D,EAAmBl8D,KAAK5F,OAAS,GAEjC,uBAAK4B,UAAU,mBACX,gBAAC,GAAD,YdpBf0kE,GAAe,SAACllE,GAGLA,EAAZmlE,QADR,IAAIC,EAEJ,EAAsBrjE,aAAiBD,GACvC,GADA,oBAC6EC,aAAiB0xC,KAAtFE,EAAR,EAAQA,WAAYhH,EAApB,EAAoBA,UAAWmH,EAA/B,EAA+BA,OAAQE,EAAvC,EAAuCA,OAAiBE,GAAxD,EAA+CnqC,QAA/C,EAAwDmqC,kBACxD,EAAkCnyC,YAAe,GAAjD,mBAAOyxB,EAAP,KAAkBC,EAAlB,KACA,EAA8B1xB,YAAe,GAA7C,mBAAOghB,EAAP,KAAgB3J,EAAhB,KACA,EAAwCrX,WAAe,MAAvD,mBAAOsjE,EAAP,KAAqBC,EAArB,KACA,EAA4BvjE,WAAe,IAA3C,mBAAOe,EAAP,KAAeg7B,EAAf,KAIQ70B,GAFuBqV,KAAvBa,mBAEMjW,cAAND,GAERlH,aAAgB,WACZ0xB,GAAa,GACT2xC,IACAA,EAAcvwD,YAAc5L,EAAE,kCACnC,CAACrG,IAAKC,WAETd,aAAgB,WACRghB,IACAzR,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,sBAChDE,aAAYH,SAASC,eAAe,qBACpCG,aAAW,CAAErJ,KAAM,iBAExB,CAAC4a,IAEJhhB,aAAgB,WACZ,IAAMwjE,EAAcn0D,SAASC,eAAe,oBACxC6iC,GAAoBqxB,IACpB3zD,aAAY2zD,GACZnsD,GAAW,MAEhB,CAAC86B,IAEJ,IAGM3N,EAAqB,SAAAljC,GACvBy6B,EAAU,2BAAKh7B,GAAN,mBAAeO,EAAEsa,QAAQrd,GAAK+C,EAAEhB,UAmE7C,OALAN,aAAgB,WACRggB,IACAA,GAAarN,YAClB,CAAC9R,IAAKC,WAGLwiE,EAAe,gBAAC,IAAD,CAAUzgE,MAAM,EAAMyF,GAAE,sCAAiCg7D,KACpEtiD,EAAU,uBAAKziB,GAAG,qBACd,gCACI,uBAAKE,UAAS,gBAAWgzB,EAAY,SAAW,KAC5C,uBAAKhzB,UAAU,yBACX,uBAAKA,UAAU,eACX,wBAAMA,UAAU,qBAChB,yBAAIyI,EAAE,0BAEV,uBAAKzI,UAAU,eACX,uBAAKA,UAAU,mBACX,gBAAC,KAAD,CACIF,GAAG,WACHuU,YAAa5L,EAAE,+BACf5I,IAAK,SAAA22C,GAAO,OAAIouB,EAAgBpuB,GAChCx2C,UAAU,UACVioB,OAxFhB,SAAAplB,GAChBy6B,EAAU,2BAAKh7B,GAAN,mBAAeO,EAAEkB,MAAMy5B,cAAc19B,GAAK+C,EAAEhB,cA2FjC,uBAAK7B,UAAU,oBACTgzB,GACE,uBAAKhzB,UAAU,aACX,gBAAC,KAAD,CACIA,UAAU,mBACVoK,SAAS,mBACTD,QAAS,kBAAM8oB,GAAcD,KAC7B,wBAAMhzB,UAAU,qBACfyI,EAAE,sBAIduqB,GACG,uBAAKhzB,UAAU,aACX,gBAAC,KAAD,CACIA,UAAU,iCACVoK,SAAS,mBACTD,QAAS,kBAAM8oB,GAAcD,KAC7B,wBAAMhzB,UAAU,qBACfyI,EAAE,sBAIf,uBAAKzI,UAAU,aACX,gBAAC,KAAD,CACIoK,SAAS,mBACTD,QA/GjB,SAAAtH,GAEf,GADAowB,GAAa,GACT1R,GAAc,CACd,IAAIyjD,EAAY,aAAOtxB,GACjB1C,EAAc1uC,EAAO2iE,SAASz1D,OAAOC,cAEvCuhC,IACAg0B,EAAeA,EAAa1iE,QAAO,SAAAC,GAG/B,OADA6G,QAAQ1C,IAAInE,GACLA,EAAKstD,YAActtD,EAAKstD,WAAWpgD,cAAciuB,SAASsT,IAC9DzuC,EAAKwtD,aAAextD,EAAKwtD,YAAYtgD,cAAciuB,SAASsT,IAC5DzuC,EAAKmQ,UAAYnQ,EAAKmQ,SAASwyD,MAAK,SAAAC,GAAG,OAAIA,EAAIzyD,UAAYyyD,EAAIzyD,SAASjD,cAAciuB,SAASsT,UAEtG1uC,EAAO6wC,aACP6xB,EAAeA,EAAa1iE,QAAO,SAAAC,GAAI,OAAIA,EAAKouD,cAAeruD,EAAO6wC,eACtE7wC,EAAO6pC,YACP64B,EAAeA,EAAa1iE,QAAO,SAAAC,GAAI,OAAIA,EAAKkyC,SAAUnyC,EAAO6pC,cACjE7pC,EAAOgxC,SACP0xB,EAAeA,EAAa1iE,QAAO,SAAAC,GAAI,OAAIA,EAAKquD,WAAYtuD,EAAOgxC,WACnEhxC,EAAOkxC,SACPwxB,EAAeA,EAAa1iE,QAAO,SAAAC,GAAI,OAAIA,EAAKsuD,WAAYvuD,EAAOkxC,WAEvEjyB,GAAazV,WAAak5D,KA2FGv8D,EAAE,uBAMlBuqB,GACG,uBAAKhzB,UAAU,gCACX,gBAAC,KAAD,CACIF,GAAG,aACHsK,SAAS,WACTiK,YAAa5L,EAAE,uBACfqD,WAAYqnC,EACZvnC,OAAQ,CAAE3J,KAAuB,OAAjBG,IAAKC,SAAmB,SAAW,SAAUR,MAAO,MACpEA,MAAOS,EAAO6wC,WACdlrB,OAAQ8d,EACRz6B,OAAQlJ,IAAKC,SACbymB,iBAAiB,IAErB,gBAAC,KAAD,CACIhpB,GAAG,YACHsK,SAAS,WACTiK,YAAa5L,EAAE,oBACfqD,WAAYqgC,EACZvgC,OAAQ,CAAE3J,KAAwB,OAAjBG,IAAKC,SAAoB,SAAW,SAAUR,MAAO,MACtEA,MAAOS,EAAO6pC,UACdtjB,gBAAgB,EAChBZ,OAAQ8d,EACRz6B,OAAQlJ,IAAKC,SACbymB,iBAAiB,IAErB,gBAAC,KAAD,CACIhpB,GAAG,SACHsK,SAAS,WACTiK,YAAa5L,EAAE,kBACfqD,WAAYwnC,EACZ1nC,OAAQ,CAAE3J,KAAwB,OAAjBG,IAAKC,SAAoB,SAAW,SAAUR,MAAO,MACtEA,MAAOS,EAAOgxC,OACdrrB,OAAQ8d,EACRz6B,OAAQlJ,IAAKC,SACbymB,iBAAiB,IAErB,gBAAC,KAAD,CACIhpB,GAAG,SACHsK,SAAS,WACTiK,YAAa5L,EAAE,iBACfqD,WAAY0nC,EACZ5nC,OAAQ,CAAE3J,KAAyB,OAAlBG,IAAKC,SAAoB,SAAW,SAAUR,MAAO,MACtEA,MAAOS,EAAOkxC,OACdvrB,OAAQ8d,EACRz6B,OAAQlJ,IAAKC,SACbymB,iBAAiB,MAKjC,uBAAK9oB,UAAU,gBACV0zC,GACG,gBAAC,KAAD,CACI5zC,GAAG,WACHD,IAAK,SAAA05B,GAAI,OAAIhY,GAAegY,GAC5BztB,WAAY4nC,EACZnd,eAAgB,CAAE5uB,KAAM,QACxBkhB,gBAAgB,EAChB2N,aAAa,EACbC,cAAc,EACdC,kBAAkB,EAClByb,eAAe,EACf7mC,OAAQlJ,IAAKC,UACb,gBAAC,KAAD,KACI,gBAAC,KAAD,CACIyZ,MAAM,aACNpK,WAAYjJ,EAAE,iBACd/I,MAAM,MACNoU,SAjKd,SAACjR,GACnB,OACI,uBAAK7C,UAAU,cACX,wBAAMmK,QAAS,kBAAM26D,EAAgBjiE,EAAE/C,KAAKE,UAAU,sBAAtD,IAA6E6C,EAAEgtD,WAA/E,SAiKoB,gBAAC,KAAD,CACI/zC,MAAM,QACNpK,WAAYjJ,EAAE,kBACdqL,SAAU,SAACjR,GAAD,OA/JxB,SAACA,GACnB,OACI,uBAAK7C,UAAU,cACV6C,EAAEuL,MAAMhQ,OAAS,GAAKyE,EAAEuL,MAAM3L,KAAI,SAAC2L,EAAO1L,GAAR,OAC/B,wBAAMpE,IAAKoE,GAAX,IAAoB0L,EAAMA,MAA1B,SA2JqCg3D,CAAcviE,IAC/BnD,MAAM,QAEV,gBAAC,KAAD,CACIoc,MAAM,cACNpK,WAAYjJ,EAAE,yBACd/I,MAAM,QAEV,gBAAC,KAAD,CACIoc,MAAwB,OAAjB1Z,IAAKC,SAAmB,cAAgB,cAC/CqP,WAAYjJ,EAAE,uBACd/I,MAAM,QAEV,gBAAC,KAAD,CACIoc,MAAM,WACNpK,WAAYjJ,EAAE,kBACdqL,SAAU,SAACjR,GAAD,OArKxB,SAACA,GACnB,OACI,uBAAK7C,UAAU,cACV6C,EAAE6P,SAAStU,OAAS,GAAKyE,EAAE6P,SAASjQ,KAAI,SAACsmB,EAAOrmB,GAC7C,IAAM2iE,EAAiBnO,GAAcrvD,MAAK,SAAAwI,GAAO,OAAIA,EAAQpP,SAAW8nB,EAAM1Y,WAC9E,OACI,wBAAM/R,IAAKoE,EAAOyH,QAAS,kBAAM26D,EAAgBjiE,EAAE/C,KAAKE,UAAU,iBAAlE,IAAoFqlE,GAAkBA,EAAe3G,SAAW31C,EAAMrW,SAAtI,SA+JiC4yD,CAAcziE,IAC/BnD,MAAM,QAEV,gBAAC,KAAD,CACIoc,MAAwB,OAAjB1Z,IAAKC,SAAmB,cAAgB,cAC/CqP,WAAYjJ,EAAE,qBACd/I,MAAM,SAGd,gBAAC,KAAD,CAAQ0d,SAAU,CAACwZ,KAAQC,KAAMC,KAAaC,KAAQC,KAAMC,KAAMC,KAAYC,YC9PjGouC,GAAW,SAAC/lE,GACrB,IAAIs/C,EACA0mB,EAGI/8D,EAAMC,cAAND,EACR,EAAsBlH,aAAiBD,GAAhCI,EAAP,oBACM+jE,EAAelkE,aAAiB0xC,IACtC,EAAgC1xC,YAAe,GAA/C,mBAAO6D,EAAP,KAAiBsL,EAAjB,KACA,EAAwCnP,WAAe,MAAvD,mBAAqB6rC,GAArB,WACA,EAA0C7rC,WAAe,IAAzD,mBAAOmkE,EAAP,KAAsBC,EAAtB,KACA,EAA4CpkE,YAAe,GAA3D,mBAAOqkE,EAAP,KAAuBC,EAAvB,KAEAtkE,aAAgB,WACZ,IAAImqB,EAAoBhqB,EAAYR,YACpCoqB,GAAiBI,EAAkBppB,QAAO,SAACpE,GAAD,OAA0B,KAAnBA,EAAEmD,gBAAqBoB,KAAI,SAACvE,GAAD,OAAQA,EAAEkD,gBACvF,CAACM,IAEJ,IAAMquB,EAAY,CACd0H,OAAQnM,IAAkC,KAC1C+L,OAAQ,GACRE,OAAQ,kBAAMunB,EAAW18B,UACzBoV,IAAK,WACDiuC,EAAal8D,QAAQ,MACrBmH,GAAY,IAEhBgnB,KAAM,IAKVn2B,aAAgB,WACZ,IAAIukE,EAAYl1D,SAASC,eAAe,WAsBxC,GArBIi1D,GACAh1D,aAAc,CAAE7S,OAAQ6nE,IAE5Bp4D,GAAmBhM,EAAYjB,aAAasI,MAAK,SAAAvD,GACzCA,EAASC,IACTD,EAASwD,OAAOD,KAAK08D,EAAaryB,kBAE1CrmC,GAAarL,EAAYjB,aAAasI,MAAK,SAAAvD,GACnCA,EAASC,IACTD,EAASwD,OAAOD,KAAK08D,EAAapyB,iBAE1C1lC,GAAUjM,EAAYjB,aAAasI,MAAK,SAAAvD,GAChCA,EAASC,IACTD,EAASwD,OAAOD,KAAK08D,EAAalyB,cAE1C3lC,GAAUlM,EAAYjB,aAAasI,MAAK,SAAAvD,GAChCA,EAASC,IACTD,EAASwD,OAAOD,KAAK08D,EAAahyB,cAItC2e,GAAiB,CACjB,IAAM2T,GAAa,IAAIC,MAClBC,QADc,UACH1gE,+BADG,+BAEd2gE,iBAAiBF,KAAiBG,aAClCC,yBACAC,QAELN,EAAWO,GAAG,wBAAyBC,GACvCR,EAAWS,SAAQ,kBAAMp9D,QAAQ1C,IAAI,mBACrCq/D,EAAWvkB,QAAQz4C,MAAK,kBAAMK,QAAQ1C,IAAI,gBAAcwC,MAAME,QAAQD,UAE3E,IAEH5H,aAAgB,WACRkkE,EAAatyB,aACTsyB,EAAagB,kBAAoBhB,EAAagB,iBAAiBtpD,SAC/DsoD,EAAagB,iBAAiB11D,cAClC21D,OAEL,CAACjB,EAAatyB,aAEjB,IAAMuzB,EAAoB,WAGtB9yB,GAAuBlyC,EAAYjB,YADnB,8BACyCsI,MAAK,SAAAvD,GACtDA,EAASC,IACTD,EAASwD,OAAOD,MAAK,SAAAE,GACjBA,EAAOxG,KAAI,SAAAF,GACP,IAAM+7D,EAAYmH,EAAatyB,WAAWtrC,MAAK,SAAA8+D,GAAE,OAAIA,EAAG7mE,KAAOyC,EAAKouD,eAChE2N,IACA/7D,EAAKqkE,YAActI,EAAUrsD,OAC7B1P,EAAKskE,YAAcvI,EAAUpsD,QAEjC3P,EAAKukE,YAAcvkE,EAAKwkE,UAAY,MAAQ,SAC5CxkE,EAAKykE,YAAczkE,EAAKwkE,UAAY,MAAQ,QAEhDtB,EAAa9xB,oBAAoB1qC,UAK3Cs9D,EAAyB,SAAAU,GACvBA,EAAaC,QACbvB,GAAiB,SAAAD,GAAa,6BAASA,GAAT,CAAwBuB,OAExB,MAA1BA,EAAaE,UACbv2D,SAASC,eAAe,oBAAoBuB,MAAMqF,QAAU,eAC5DrG,aAAYR,SAASC,eAAe,YACpCD,SAASC,eAAe,cAAckU,UAAY,GAClD2hD,MAGA91D,SAASC,eAAe,oBAAoBuB,MAAMqF,QAAU,OAC5D1G,aAAYH,SAASC,eAAe,YACpCD,SAASC,eAAe,cAAckU,UAAYkiD,EAAaE,SAAW,MAgDtF,OALA5lE,aAAgB,WACR6wD,IACAA,GAAgBl+C,YACrB,CAAC9R,IAAKC,WAGL,gCACiC,OAA5BX,EAAYjB,YAAuB,gBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WACzDzE,EACI,gBAAC,IAAD,CAAUhB,MAAM,EAAMyF,GAAG,gCAEzB,gCACI,gBAAC,GAAD,CAAoB/J,GAAG,OACvB,uBAAKE,UAAU,eACf,gBAACwM,EAAA,EAAD,CAAWxM,UAAU,gBACjB,uBAAKA,UAAU,mBACX,gBAACmhB,GAAA,EAAD,KACI,uBAAKnhB,UAAU,mBACX,uBAAKA,UAAU,SACX,0BAAKyI,EAAE,qBAGf,uBAAKzI,UAAU,mBACX,uBAAKA,UAAU,WACX,gBAAC,GAAD,CAASwrB,SAAUuE,QAKnC,gBAAC5O,GAAA,EAAD,KACI,uBAAKnhB,UAAU,UACX,gBAAC,GAAD,CAAc2kE,QAASv3B,OAInC,gBAAC,KAAD,CACIttC,GAAG,UAAUD,IAAK,SAAAyrD,GAAO,OAAIxM,EAAawM,GAC1Cl5C,MAAO,CAAEm5C,WAAY,UACrB72C,QA/DD,WACnBoqC,EAAW3hC,QAAQ/K,MAAMm5C,WAAa,IA+DlB5jD,KAAK,OACLuP,SAAS,QACTs0C,sBAAsB,GAEtB,uBAAKxrD,UAAU,mBACX,uBAAKF,GAAG,WAAWE,UAAU,UACzB,uBAAKA,UAAU,OACX,wBAAM6jB,wBAAyB,CAAEC,OA1MtD,uuDA2MqB,yBAAIrb,EAAE,uBAAN,IAA8B,wBAAM0B,QArFjD,WAEnB,OADAyG,SAASiS,uBAAuB,sBAAsB,GAAGC,cAAc,UAAU9H,SAC1E,IAmFuFvS,EAAE,mCAGxE,gBAAC,KAAD,CACI3I,GAAG,iBACHD,IAAK,SAAAokB,GAAQ,OAAIuhD,EAAsBvhD,GACvCC,kBAAkB,cAClBxB,SAAU9R,SAASC,eAAe,YAClCvF,OAAQlJ,IAAKC,SACb4iB,UAAU,EACVD,SAtFX,WACjB6gD,GAAkB,IAsFU1jE,SA3FF,SAACU,GAC3BgjE,EAAiC,WAAfhjE,EAAEgoD,cA6FI,uBAAK7qD,UAAU,eACX,gBAAC,KAAD,CAAiBoK,SAAS,mBAAmBD,QAnFpD,YvBhJtB,SAAP,oCuBiJQi9D,CAAiC1lE,EAAY4S,kBACxCvL,MAAK,SAAAvD,GAAQ,OAAIA,EAASkV,UAAQ3R,MAAK,SAAA2R,GACpC,IAAI1Q,EAAMlH,OAAO6X,IAAIC,gBAAgBF,GACjC5V,EAAI8L,SAASnR,cAAc,KAC/BqF,EAAE2R,KAAOzM,EACTlF,EAAE+8D,SAAW,gBACbjxD,SAASnM,KAAKsW,YAAYjW,GAC1BA,EAAEkW,QACFlW,EAAEoe,cA2EuBza,EAAE,oCAGX,uBAAKzI,UAAU,aACX,gBAAC,KAAD,CAAiBH,IAAK,SAAAwnE,GAAe,OAAsBA,GAAiBvnE,GAAG,mBAAmB6S,SAAUizD,EAAgBx7D,SAAS,gBAAgBD,QA3E9J,WACnBioD,GAAgBtmD,WAAa,GACzB05D,EAAoBrhD,UAAU/lB,QvB1InC,SAAP,qCuB2IYkpE,CAAsB5lE,EAAYjB,YAAa+kE,EAAoBrhD,UAAU,GAAGW,SAC3E/b,OAAOG,MAAME,QAAQD,SAwEGV,EAAE,8BAGX,uBAAK3I,GAAG,UAAUE,UAAU,eAC5B,wBAAMF,GAAG,eACT,gBAAC,KAAD,CACIA,GAAG,eACHD,IAAK,SAAAomC,GAAa,OAAImsB,GAAkBnsB,GACxC7K,iBAtMP,CAAC,gBAAiB,iBAAkB,YAAa,WAAY,WAAY,YAuMlEtvB,WAAY45D,EACZnvC,eAAgB,CAAE5uB,KAAM,QACxB6uB,aAAa,EACbC,cAAc,EACdnrB,OAAQlJ,IAAKC,SACbwmB,gBAAgB,EAChBspB,eAAe,EACf5T,aAAc,CAAEC,SAAU,KAI1B,gBAAC,KAAD,KACI,gBAAC,KAAD,CACI1+B,GAAG,GACHgc,MAAM,eACNpK,WAAYjJ,EAAE,yBACd0pC,eAAe,KAGvB,gBAAC,KAAD,CAAQ/0B,SAAU,CAACwZ,KAAQC,KAAMC,KAAaC,KAAQC,cc1P7EuwC,GAAe,SAAC/nE,GAC3B,IAGIoe,EACA4pD,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAbJ,EAA4D36C,eAApDG,EAAR,EAAQA,SAAUC,EAAlB,EAAkBA,kBAAmBkb,EAArC,EAAqCA,OAAQovB,EAA7C,EAA6CA,WAEzC/1C,EAAYziB,EAAMqG,MAAMiqB,OAAOhwB,GAa3B2I,EAAMC,cAAND,EAEFkkD,EAAe,CACnB7sD,GAAI,KACJ+vD,WAAY,GACZc,YAAa,KACbZ,YAAa,GACb3hD,MAAO,GACPsE,SAAU,GACV+hC,OAAQ,EACRmc,SAAU,KACVC,SAAU,KACVC,SAAU,GACVjmC,MAAO,GACPwe,SAAU,GACV6+B,kBAAmB,GACnBx3B,OAAQ,GACRtgB,QAAS,GACT22C,WAAW,GAGPjP,EAAiBZ,GAAcrvD,MAAK,SAAA3J,GAAC,MAAsB,OAAlBkE,IAAKC,SAAiC,WAAbnE,EAAE8C,OAAmC,WAAb9C,EAAE+C,UAElG,EAAsBM,aAAiBD,GAAhCI,EAAP,oBACM+jE,EAAelkE,aAAiB0xC,IACtC,EAA0B1xC,aAAiBkgB,IAA3C,mBAAOE,EAAP,KAAcC,EAAd,KACA,EAAgCrgB,YAAe,GAA/C,mBAAO6D,EAAP,KAAiBsL,EAAjB,KACA,EAAwCnP,YAAe,GAAvD,mBAAOg/B,EAAP,KAAqBC,EAArB,KACA,EAA0Cj/B,WAAe,MAAzD,mBAAOm5D,EAAP,KAAsBC,EAAtB,KACA,EAA0Cp5D,WAAe,IAAzD,mBAAOq5D,EAAP,KAAsBC,GAAtB,KACA,GAAsCt5D,YAAe,GAArD,qBAAOquB,GAAP,MAAoBC,GAApB,MACA,GAAkCtuB,WAAe,IAAjD,qBAAOu5D,GAAP,MAAkBC,GAAlB,MAEA,GAAgCx5D,YAC9B,WAAO,IAAD,EACJ,OAAgB,OAAZkkE,QAAY,IAAZA,GAAA,UAAAA,EAAcljE,YAAd,eAAoBmQ,SAAStU,QAAS,EACjC,aAAIqnE,EAAaljE,KAAKmQ,UAExB,CAAC,CACNA,SAAU,GACVhN,OAAQ,EACR2K,QAASynD,OARf,qBAAOvwC,GAAP,MAAiBP,GAAjB,MAaA,GAAgCzlB,YAC9B,WAAO,IAAD,EACJ,OAAgB,OAAZkkE,QAAY,IAAZA,GAAA,UAAAA,EAAcljE,YAAd,eAAoB6L,MAAMhQ,QAAS,EAC9BqnE,EAAaljE,KAAK6L,MAEpB,CAAC,CACNA,MAAO,GACP1I,OAAQ,OAPd,qBAAOs1D,GAAP,MAAiBC,GAAjB,MAYMC,GAAW35D,WAEX45D,GAAiB,SAACt7D,GAAS,IAAD,GAC9B,OAAIq7D,SAAJ,IAAIA,IAAJ,UAAIA,GAAUvnD,eAAd,aAAI,EAAmB84C,SAAnB,OAA4B5sD,QAA5B,IAA4BA,OAA5B,EAA4BA,EAAK5B,UAGrC08D,EAAiB,OAGb5qC,GAAY,CAChB/T,MAAO,UACPmQ,aAAa,EACbK,gBAAgB,EAChBf,KAAM,uBACNQ,kBAA+BxkB,EAAe,GAA3Bwa,EAA+B,OAA0C,SAAlCvgB,GAC1DsuB,QAAS,GACTrE,WAAY,GACZc,wBAAyBxK,GAAaxa,EAAe,GAAI,SAAU/F,GACnEqqB,aAAc,GACdG,QAAS,WACP,GAAItO,EAAW8B,WAAY,CACzBmQ,IAAe,GACf,IAAM7rB,EAAOyhE,EAAaljE,KAC1ByB,EAAKosB,QAAUzO,GAASA,EAAMwB,IAAMxB,EAAMwB,IAAI3C,MAAM,KAAK,GAAK,KAC9D,IAAI2nD,EAAY,GAChB1C,EAAa53B,eAAeprC,KAAI,SAAAF,GAC9B4lE,EAAU/jE,KAAK,CAAEtE,GAAIyC,OAEvByB,EAAK0sC,OAASy3B,EACdnkE,EAAK0O,SAAW6U,GAAS9kB,KAAI,SAAAsmB,GAAK,kCAC7BA,GAD6B,IAEhC1Y,QAAS0Y,EAAM1Y,QAAQpP,YAErB0gB,GAASA,EAAMyB,OACjB0wB,GAA0BpyC,EAAYjB,YAAawhB,GAAWlZ,MAAK,SAAAvD,GAC7DA,EAASC,IACXouC,GAAuBnyC,EAAYjB,YAAauD,GAAM+E,MAAK,SAAAvD,GACzDkL,EAAYlL,EAASC,IACrBoqB,IAAe,MACd3mB,OAAM,WACP2mB,IAAe,MAGnBA,IAAe,MACd3mB,OAAM,WACP2mB,IAAe,MAIjBgkB,GAAuBnyC,EAAYjB,YAAauD,GAAM+E,MAAK,SAAAvD,GACzDkL,EAAYlL,EAASC,IACrBoqB,IAAe,MACd3mB,OAAM,WACP2mB,IAAe,QAMvBxD,QAAS,GACTE,UAAW,kBAAM7b,GAAY,IAC7Bgc,UAAWzK,EAAY,kBAAMue,GAAgB,IAAQ,IAGvDj/B,aAAgB,WACd,IAAM46B,EAAgB,CACpBrc,MAAO,CACL,WAAc,CACZC,SAAU,EAAC,EAAMtX,EAAE,yBAErB,UAAa,CACXsX,SAAU,EAAC,EAAMtX,EAAE,yBAErB,YAAe,CACbsX,SAAU,EAAC,EAAMtX,EAAE,yBAErB,MAAS,CACPsX,SAAU,EAAC,EAAMtX,EAAE,0BAGvBuX,gBAAiB,SAACC,EAAcC,GAC9BD,EAAaE,cAAcA,cAAcpF,YAAYmF,KAIzDtC,EAAa,IAAIwC,KAAc,sBAAuB+b,MAqLxD56B,aAAgB,WAAM,4CACpB,8BAAAuD,EAAA,sEACyBiI,GAAarL,EAAYjB,aAC7CsI,MAAK,SAAAvD,GACJ,GAAIA,EAASC,GACX,OAAOD,EAASwD,UAJxB,OACMgrB,EADN,OAOQqpC,EAAmBnG,GAAc50D,QAAO,SAAA+N,GAC5C,OAAO2jB,EAAW1xB,QAAO,SAAAC,GAAI,OAAIA,EAAK2P,SAAW7B,EAAQpP,UAAQ7C,OAAS,KAE5Ey8D,GAAiBwC,GACjBtC,GAAasC,GAXf,4CADoB,uBAAC,WAAD,wBAcpBntC,GAGEtf,SAAS6T,iBAAiB,YAAa02C,IAQzC,IAAIvnC,EA3MiB,WACrB,IAAIA,EAAW,GAkEf,OAjEK6xC,EAAatyB,YAChBvf,EAASxvB,KACP,IAAI0K,SAAQ,SAACC,EAASC,GACpBtB,GAAmBhM,EAAYjB,aAAasI,MAAK,SAAAvD,GAC3CA,EAASC,GACXD,EAASwD,OAAOD,MAAK,SAAAE,GACnBw8D,EAAaryB,cAAcnqC,GAC3B8F,OAIFC,WAKLy2D,EAAat5B,WAChBvY,EAASxvB,KACP,IAAI0K,SAAQ,SAACC,EAASC,GACpBjC,GAAarL,EAAYjB,aAAasI,MAAK,SAAAvD,GACrCA,EAASC,GACXD,EAASwD,OAAOD,MAAK,SAAAE,GACnBw8D,EAAapyB,aAAapqC,GAC1B8F,OAIFC,WAMLy2D,EAAanyB,QAChB1f,EAASxvB,KACP,IAAI0K,SAAQ,SAACC,EAASC,GACpBrB,GAAUjM,EAAYjB,aAAasI,MAAK,SAAAvD,GAClCA,EAASC,GACXD,EAASwD,OAAOD,MAAK,SAAAE,GACnBw8D,EAAalyB,UAAUtqC,GACvB8F,OAIFC,WAKLy2D,EAAajyB,QAChB5f,EAASxvB,KACP,IAAI0K,SAAQ,SAACC,EAASC,GACpBpB,GAAUlM,EAAYjB,aAAasI,MAAK,SAAAvD,GAClCA,EAASC,GACXD,EAASwD,OAAOD,MAAK,SAAAE,GACnBw8D,EAAahyB,UAAUxqC,GACvB8F,OAIFC,WAKH4kB,EAwIQw0C,GACft5D,QAAQylB,IAAIX,GAAU7qB,MAAK,WAEzB,GADA6Y,EAAS,MACLK,EAAW,ErChYd,SAAP,sCqCiYQomD,CAAsB3mE,EAAYjB,YAAawhB,GAAWlZ,MAAK,SAAAvD,GACzDA,EAASC,IACXD,EAASwD,OAAOD,MAAK,SAACE,GAGpB,GAFAw8D,EAAal8D,QAAQN,GAEjBA,GAAUA,EAAOyJ,SAAStU,OAAS,EAAG,CACxC,IAAM2qB,EAAQ9f,EAAOyJ,SAASjQ,KAAI,SAAAsmB,GAAK,kCAClCA,GADkC,IAErC1Y,QAAS6mD,GAAcrvD,MAAK,SAAAwI,GAAO,OAAIA,EAAQpP,SAAW8nB,EAAM1Y,gBAElE2W,GAAY+B,QAEZ/B,GAAY,CAAC,CACXtU,SAAU,GACVhN,OAAQ,EACR2K,QAASynD,KAIT7uD,GAAUA,EAAOmF,MAAMhQ,OAAS,EAClC68D,GAAYhyD,EAAOmF,OAEnB6sD,GAAY,CAAC,CACX7sD,MAAO,GACP1I,OAAQ,QAIXwD,MAAME,QAAQD,UAGrB,IAAMqd,EAAQ,UAAMjhB,0BAAN,6DAAwF7D,EAAY4S,iBAApG,6BAAyI2N,IrChYxJ,SAAgCjY,EAAK9F,GACxC,IAAIuiB,EAAM,IAAIC,eACdD,EAAIE,mBAAqB,WACC,IAAlBF,EAAIG,YACJ1iB,EAASvF,KAAK6G,WAGtBihB,EAAII,KAAK,MAAO7c,GAChByc,EAAIphB,aAAe,OACnBohB,EAAIK,OqCwXAwhD,CAAuB9hD,GAAU,SAAUhhB,GACrCA,EAASoe,MACXhC,EAAS,CAAEhc,KAAM,QAASge,KAAMpe,EAASoe,KAAMjc,KAAM,OAAQqC,IAAKwc,YAItEi/C,EAAal8D,QAAQojD,GACrB8Y,EAAa33B,kBAAkB,SAGlC,IAEHvsC,aAAgB,WACTm5D,GACHK,GAAaH,KAEd,CAACF,IAEJn5D,aAAgB,WACVimE,IACFA,EAAc17D,WAAa,GAC3B07D,EAAc17D,WAAa25D,EAAatyB,YAEtCs0B,IACFA,EAAa37D,WAAa,GAC1B27D,EAAa37D,WAAa25D,EAAat5B,WAErCu7B,IACFA,EAAU57D,WAAa,GACvB47D,EAAU57D,WAAa25D,EAAanyB,QAElCq0B,IACFA,EAAU77D,WAAa,GACvB67D,EAAU77D,WAAa25D,EAAajyB,QAElCiyB,EAAaljE,MACfgmE,OAED,CAACnmE,IAAKC,WAETd,aAAgB,WACVkkE,EAAatyB,YAAcsyB,EAAaljE,OAC1CilE,EAAc3lE,MAAQ4jE,EAAaljE,KAAKouD,eACzC,CAAC8U,EAAatyB,aAEjB5xC,aAAgB,WACVkkE,EAAat5B,WAAas5B,EAAaljE,OACzCklE,EAAa5lE,MAAQ4jE,EAAaljE,KAAKkyC,UACxC,CAACgxB,EAAat5B,YAEjB5qC,aAAgB,WACVkkE,EAAanyB,QAAUmyB,EAAaljE,MAAqC,IAA7BkjE,EAAaljE,KAAKkyC,SAChEizB,EAAU7lE,MAAQ4jE,EAAaljE,KAAKquD,YACrC,CAAC6U,EAAanyB,SAEjB/xC,aAAgB,WACVkkE,EAAajyB,QAAUiyB,EAAaljE,MAAqC,IAA7BkjE,EAAaljE,KAAKkyC,SAChEkzB,EAAU9lE,MAAQ4jE,EAAaljE,KAAKsuD,YACrC,CAAC4U,EAAajyB,SAEjBjyC,aAAgB,WACVkkE,EAAaljE,MACXkjE,EAAaljE,KAAKmuC,QACpB+0B,EAAa33B,kBAAkB23B,EAAaljE,KAAKmuC,OAAOjuC,KAAI,SAAAF,GAAI,OAAIA,EAAKzC,SAC5E,CAAC2lE,EAAaljE,OAEjBhB,aAAgB,WACVkkE,EAAaljE,MAAQkjE,EAAaljE,KAAK6L,OACzC4pD,EAAW,CAAC,YAEb,CAACyN,EAAaljE,OAEjB,IAAMimE,GAAc,SAAA3lE,GAClB,GAAIA,EAAEkB,MAAO,CACX,IAAM2jB,EAAsC,aAA/B7kB,EAAEkB,MAAMy5B,cAAc71B,KAAsB9E,EAAEkB,MAAMy5B,cAAc53B,KAAO/C,EAAEkB,MAAMy5B,cAAc19B,GAC5G2lE,EAAal8D,QAAb,2BAA0Bk8D,EAAaljE,MAAvC,mBAA8CmlB,EAAO7kB,EAAEhB,WAIrDkkC,GAAqB,SAAAljC,GACrBA,EAAEsa,UACkB,WAAlB,CAACta,EAAEsa,QAAQrd,KAA+B,IAAZ+C,EAAEhB,MAClC4jE,EAAal8D,QAAb,2BAA0Bk8D,EAAaljE,MAAvC,IAA6CkyC,OAAQ5xC,EAAEhB,MAAO+uD,SAAU,KAAMC,SAAU,QAExF4U,EAAal8D,QAAb,2BAA0Bk8D,EAAaljE,MAAvC,mBAA8CM,EAAEsa,QAAQrd,GAAK+C,EAAEhB,WAQ/Dk/B,GAAgB,WACpB+S,GAA0BpyC,EAAYjB,YAAawhB,GAAWlZ,MAAK,SAAAvD,GAC7DA,EAASC,IrC/eZ,SAAP,qCqCgfQgjE,CAAqB/mE,EAAYjB,YAAawhB,GAAWlZ,MAAK,SAAAvD,GAC5D,GAAIA,EAASC,GAAI,CACf,IAAMijE,EAAgBjD,EAAa/xB,iBAAiBpxC,QAAO,SAAAqmE,GAAW,OAAIA,EAAY7oE,KAAMmiB,KAC5FwjD,EAAa9xB,oBAAoB+0B,GACjCh4D,GAAY,WAOhB63D,GAAoB,WACxBX,EAAcvzD,YAAc5L,EAAE,kCAC9Bo/D,EAAexzD,YAAc5L,EAAE,oCAC/Bq/D,EAAWzzD,YAAc5L,EAAE,+BAC3Bs/D,EAAY1zD,YAAc5L,EAAE,iCAC5Bu/D,EAAc3zD,YAAc5L,EAAE,kCAC9Bw/D,EAAa5zD,YAAc5L,EAAE,0CAiBzB2jC,GAAe,SAAC7pC,GAGpB,OAFgBq4D,EAAct4D,QAAO,SAAApE,GAAC,OAAIA,EAAE+C,SAAWsB,KAExCE,KAAI,SAAAvE,GAAC,OAAIA,EAAE6/D,SAGtBC,GAAoB,SAAC7S,GACzB,IAAM8S,EAAerD,EAAct4D,QACjC,SAAA47D,GAAK,MAAwB,KAApB/S,EAAGltD,OAAO4D,QACG,OAAlBO,IAAKC,SAAL,OACE67D,QADF,IACEA,OADF,EACEA,EAAOl9D,OAAOyO,cAAciuB,SAASytB,EAAGltD,OAAO4D,MAAM4N,eADvD,OAEEyuD,QAFF,IAEEA,OAFF,EAEEA,EAAOj9D,OAAOwO,cAAciuB,SAASytB,EAAGltD,OAAO4D,MAAM4N,mBAI7DsrD,GAAakD,IAGf,OACE,gCAC+B,OAA5Bv8D,EAAYjB,YAAuB,gBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WAC3DzE,EAAW,gBAAC,IAAD,CAAUhB,MAAM,EAAMyF,GAAG,4BACjC47D,EAAaljE,MAAQkjE,EAAatyB,YAAcsyB,EAAat5B,WAAas5B,EAAanyB,QAAUmyB,EAAajyB,QAC/G,gCACE,gBAAC,GAAD,CAAoB1zC,GAAG,OAEvB,uBAAKE,UAAU,eACf,gBAACwM,EAAA,EAAD,CAAWxM,UAAU,gBACnB,uBAAKA,UAAU,mBACb,gBAACmhB,GAAA,EAAD,KACE,uBAAKnhB,UAAU,UACb,uBAAKA,UAAU,SACb,0BAAiByI,EAAZwZ,EAAc,qBAA0B,6BAKrD,gBAACd,GAAA,EAAD,KACE,uBAAKnhB,UAAU,qBACb,gBAAC,GAAD,CAAuBkiB,YAAY,EAAMF,WAAYyjD,EAAaljE,KAAKstD,WAAY5tC,UAAWA,KAEhG,uBAAKjiB,UAAU,4BACb,wBAAMF,GAAG,qBAAqBguB,SAnFrB,SAAAjrB,GACvBA,EAAEm3B,mBAmFc,uBAAKh6B,UAAU,eACb,uBAAKA,UAAU,0CACb,uBAAKA,UAAU,uBACf,0BAAKyI,EAAE,iCAET,uBAAKzI,UAAU,WACb,uBAAKA,UAAU,aACb,uBAAKA,UAAU,SACb,6BAAQyI,EAAE,sBAAV,KACA,gBAAC,KAAD,CACE3I,GAAG,aACHD,IAAK,SAAA22C,GAAO,OAAIoxB,EAAgBpxB,GAChC5wC,KAAK,aACLglB,eAAgB,CAAEiD,UAAW,OAC7BzjB,SAAS,SACTiK,YAAa5L,EAAE,kCACf5G,MAAO4jE,EAAaljE,KAAOkjE,EAAaljE,KAAKstD,WAAa,GAC1D5nC,OAAQugD,MAGZ,uBAAKxoE,UAAU,SACb,6BAAQyI,EAAE,uBAAV,KACA,gBAAC,KAAD,CACE3I,GAAG,cACHD,IAAK,SAAC+oE,GAAD,OAAkBpB,EAAgBoB,GACvChjE,KAAK,YACLkG,WAAY25D,EAAatyB,WACzBvnC,OAAQ,CAAE3J,KAAyB,OAAlBG,IAAKC,SAAoB,SAAW,SAAUR,MAAO,MACtEuI,SAAS,SACTkB,OAAQlJ,IAAKC,SACbgS,YAAa5L,EAAE,kCACfqgB,iBAAiB,EACjBjnB,MAAO4jE,EAAaljE,KAAOkjE,EAAaljE,KAAKouD,YAAc,KAC3D1oC,OAAQ8d,OAId,uBAAK/lC,UAAU,QACb,uBAAKA,UAAU,SACb,6BAAQyI,EAAE,yBAAV,KACA,gBAAC,KAAD,CACE3I,GAAG,cACHD,IAAK,SAAA22C,GAAO,OAAIqxB,EAAiBrxB,GACjC5wC,KAAK,cACLglB,eAAgB,CAAEiD,UAAW,OAC7BzjB,SAAS,SACTiK,YAAa5L,EAAE,oCACf5G,MAAO4jE,EAAaljE,KAAOkjE,EAAaljE,KAAKwtD,YAAc,GAC3D9nC,OAAQugD,OAId,uBAAKxoE,UAAU,WAEb,uBAAKA,UAAU,2BACZg7D,GAAS14D,QAAO,SAAA8L,GAAK,OAAqB,IAAjBA,EAAM1I,WAC9B,uBAAK1F,UAAU,kBACb,6BAAQyI,EAAE,kBAAV,KACA,uBAAKzI,UAAU,iBACbmK,QAAS,WA/YxB6wD,GAAS14D,QAAO,SAAA8L,GAAK,OAAqB,IAAjBA,EAAM1I,WAG5Cu1D,IAAY,SAAAD,GAAQ,6BAAQA,GAAR,CAAkB,CAAE5sD,MAAO,GAAI1I,OAAQ,YAgZpCs1D,GAAS58D,OAAS,GACjB48D,GAASv4D,KAAI,SAACF,EAAMG,GAAP,OAAiC,IAAhBH,EAAKmD,QACjC,uBAAKpH,IAAKoE,EAAO1C,UAAU,eACzB,gBAAC,KAAD,CACEF,GAAG,QACHD,IAAK4tB,EAAS,CAAE1N,UAAU,EAAMsO,QAAS,cACzCvG,KAAM,kBAAM4F,EAAkB,UAC9B9nB,KAAK,QACLglB,eAAgB,CAAEiD,UAAW,OAC7BzjB,SAAS,SACTiK,YAAa5L,EAAE,6BACf5G,MAAO4jE,EAAaljE,KAAK6L,MAAQ7L,EAAK6L,MAAQ,GAC9C6Z,OAAQ,SAACplB,GAAD,OArYhB,SAACH,EAAOG,IACpBA,EAAEhB,OAGkB,IAA1Bm5D,GAASt4D,GAAOgD,QAAyC,IAA1Bs1D,GAASt4D,GAAOgD,SACjDs1D,GAASt4D,GAAOgD,OAAS,GAG3Bs1D,GAASt4D,GAAO0L,MAAQvL,EAAEhB,OACU,IAA3Bm5D,GAASt4D,GAAOgD,SACzBs1D,GAASt4D,GAAOgD,OAAS,GAEE,KAAzBs1D,GAASt4D,GAAO0L,SAEQ,IADRq3D,EAAaljE,KAAK6L,MAAM9L,QAAO,SAAAi8D,GAAS,OAAIA,EAAUnwD,QAAS4sD,GAASt4D,GAAO0L,SACjFhQ,QACdqnE,EAAaljE,KAAK6L,MAAMhK,KAAK42D,GAASt4D,KAsXK87D,CAAkB97D,EAAOG,MAE1C,uBAAK7C,UAAU,kBACbmK,QAAS,kBA3ZvB,SAACzH,GACnB,GAAuB,OAAnBs4D,GAASt4D,GAAgB,CAC3B,GAA6B,KAAzBs4D,GAASt4D,GAAO0L,MAAa,CAC/B,IAAIib,EAAMo8C,EAAaljE,KAAK6L,MAAM3L,KAAI,SAAUI,GAAK,OAAOA,EAAEuL,SAAUpP,QAAQg8D,GAASt4D,GAAO0L,OAEtE,IADRq3D,EAAaljE,KAAK6L,MAAM9L,QAAO,SAAAi8D,GAAS,OAAIA,EAAUnwD,QAAS4sD,GAASt4D,GAAO0L,SAAO,GACxF1I,OACd+/D,EAAaljE,KAAK6L,MAAMib,GAAK3jB,OAAS,EAEtC+/D,EAAaljE,KAAK6L,MAAMkb,OAAOD,EAAK,GAER,IAA1B2xC,GAASt4D,GAAOgD,QACpBs1D,GAAS1xC,OAAO5mB,EAAO,GAG3Bu4D,IACE,SAAAD,GAAQ,oBAAQA,MA4Y6ByD,CAAY/7D,UAKlCkmC,EAAOx6B,OACN,gCACyB,YAAtBw6B,EAAOx6B,MAAMzG,MACZ,yBAAO3H,UAAU,UAAUoS,MAAO,CAAEqF,QAAS,UAAYhP,EAAE,6BAKnE,uBAAKzI,UAAU,2BACZunB,GAASjlB,QAAO,SAAAymB,GAAK,OAAqB,IAAjBA,EAAMrjB,WAC9B,uBAAK1F,UAAU,kBACb,6BAAQyI,EAAE,mBACV,uBAAKzI,UAAU,iBAAiBmK,QAAS,WApYnDod,GAASjlB,QAAO,SAAAoQ,GAAQ,OAAwB,IAApBA,EAAShN,WAGrDshB,IAAY,SAAA02C,GAAW,6BAClBA,GADkB,CAErB,CACEhrD,SAAU,GACVhN,OAAQ,EACR2K,QAASynD,aA+XkB,OAARvwC,SAAQ,IAARA,QAAA,EAAAA,GAAUnpB,QAAS,GAClBmpB,GAAS9kB,KAAI,SAACF,EAAMG,GAAP,qBAAiC,IAAhBH,EAAKmD,QACjC,uBAAKpH,IAAKoE,EAAO1C,UAAU,eAEzB,gBAAC,KAAD,CACEF,GAAG,WACH8F,KAAK,WACLglB,eAAgB,CAAEiD,UAAW,MAC7B7tB,UAAU,UAEV6B,OAAmB,OAAZ4jE,QAAY,IAAZA,GAAA,UAAAA,EAAcljE,YAAd,eAAoBmQ,UAAWnQ,EAAKmQ,SAAW,GACtDuV,OAAQ,SAACplB,GAAD,OA/WhB,SAACH,EAAOG,GAChC,IACIhB,EAAQgB,EAAEhB,MAEd,GAAIA,EAAO,CACT,IAAMonB,EAAiBpnB,EAAMgE,MAJX,QAIgC2d,KAAK,IAEnD+D,GAAS7kB,GAAOgQ,WAAYuW,GAA6C,IAA1B1B,GAAS7kB,GAAOgD,QAAyC,IAA1B6hB,GAAS7kB,GAAOgD,SAChG6hB,GAAS7kB,GAAOgD,OAAS,GAG3B6hB,GAAS7kB,GAAOgQ,SAAWuW,OAEO,IAA3B1B,GAAS7kB,GAAOgD,SACvB6hB,GAAS7kB,GAAOgD,OAAS,GAGK,KAA5B6hB,GAAS7kB,GAAOgQ,WAEQ,IADR+yD,EAAaljE,KAAKmQ,SAASpQ,QAAO,SAAA4mB,GAAS,OAAIA,EAAUxW,WAAY6U,GAAS7kB,GAAOgQ,YACvFtU,QACdqnE,EAAaljE,KAAKmQ,SAAStO,KAAKmjB,GAAS7kB,KA2VEi8D,CAAkBj8D,EAAOG,IACxCyP,WAAW,IACXG,KAAI,WAAS,OAAJlQ,QAAI,IAAJA,GAAA,UAAAA,EAAM8N,eAAN,eAAequD,UAAWn8D,EAAK8N,QAAQquD,SAAW,IAAvD,uEAGN,uBAAK1+D,UAAU,kBACbmK,QAAS,kBA1YvB,SAACzH,GACnB,IAAI0mB,EAAI,aAAO7B,IAEf,GAAuB,OAAnBA,GAAS7kB,GAAgB,CAC3B,GAAgC,KAA5B6kB,GAAS7kB,GAAOgQ,SAAgB,CAClC,IAAI2W,EAAM9B,GAAS9kB,KAAI,SAAUI,GAAK,OAAOA,EAAE6P,YAAa1T,QAAQuoB,GAAS7kB,GAAOgQ,UAE1D,IADR6U,GAASjlB,QAAO,SAAA4mB,GAAS,OAAIA,EAAUxW,WAAY6U,GAAS7kB,GAAOgQ,YAAU,GAC/EhN,QACd+/D,EAAaljE,KAAKmQ,SAAS2W,GAAK3jB,OAAS,EACzC0jB,EAAK1mB,GAAOgD,OAAS,GAErB+/D,EAAaljE,KAAKmQ,SAAS4W,OAAOD,EAAK,GAGX,IAA1B9B,GAAS7kB,GAAOgD,QACpB0jB,EAAKE,OAAO5mB,EAAO,GAGvBskB,GAAYoC,GAwXmCG,CAAY7mB,MAG7B,uBACE1C,UAAU,mBAAmBmK,QAAS,kBAAMwwD,EAAiBj4D,KAC7D,uBACE1C,UAAU,cACVqK,KAAS,OAAJ9H,QAAI,IAAJA,GAAA,UAAAA,EAAM8N,eAAN,eAAe0tD,OAAQ3xB,GAAY,OAAC7pC,QAAD,IAACA,OAAD,EAACA,EAAM8N,SAC/CkE,IAAuB,OAAlBnS,IAAKC,SAAL,OAAyBE,QAAzB,IAAyBA,GAAzB,UAAyBA,EAAM8N,eAA/B,aAAyB,EAAerP,QAAa,OAAJuB,QAAI,IAAJA,GAAA,UAAAA,EAAM8N,eAAN,eAAepP,UAAf,OAAyBsB,QAAzB,IAAyBA,OAAzB,EAAyBA,EAAM8N,WAEvF,wBAAMrQ,UAAU,eAAhB,WAGD06D,IAAkBh4D,GACjB,uBAAK7C,IAAKq7D,GAAUl7D,UAAU,gBAC5B,yBAAOoU,SAAU4pD,GAAmBh+D,UAAU,aAAaqU,YAAY,uBACtEymD,GAAUr4D,KAAI,SAAC4N,EAASnS,GAAV,OACb,uBACE8B,UAAU,4DACV1B,IAAKJ,EACLiM,QAAS,kBAhMrB,SAACkG,EAAS3N,GACpC,IAAMm8D,EAAgB,aAAOt3C,IAC7Bs3C,EAAiBn8D,GAAjB,2BACKm8D,EAAiBn8D,IADtB,IAEE2N,QAASA,IAGPwuD,EAAiBn8D,GAAO5C,KAC1B++D,EAAiBn8D,GAAOgD,OAAS,GAEnCshB,GAAY63C,GACZlE,EAAiB,MAqLoCmE,CAAoBzuD,EAAS3N,KAE5C,uBAAK1C,UAAU,cAAcqK,IAAG,OAAEgG,QAAF,IAAEA,OAAF,EAAEA,EAAS0tD,KAAMxpD,IAAuB,OAAlBnS,IAAKC,SAAL,OAAyBgO,QAAzB,IAAyBA,OAAzB,EAAyBA,EAASrP,OAAlC,OAA2CqP,QAA3C,IAA2CA,OAA3C,EAA2CA,EAASpP,SAC1G,qBAAGjB,UAAU,eAAeqQ,GAAO,UAAyB,OAAlBjO,IAAKC,SAAL,OAAyBgO,QAAzB,IAAyBA,OAAzB,EAAyBA,EAASrP,OAAlC,OAA2CqP,QAA3C,IAA2CA,OAA3C,EAA2CA,EAASpP,OAA3D,mBAAqEoP,QAArE,IAAqEA,OAArE,EAAqEA,EAASquD,sBASnI,uBAAK1+D,UAAU,WACb,uBAAKA,UAAU,SACb,6BAAQyI,EAAE,qBACV,gBAAC,KAAD,CACE3I,GAAG,SACH8F,KAAK,OACL/F,IAAK,SAAC+oE,GAAD,OAAkBnB,EAAemB,GACtC98D,WAAY25D,EAAat5B,UACzBvgC,OAAQ,CAAE3J,KAAyB,OAAlBG,IAAKC,SAAoB,SAAW,SAAUR,MAAO,MACtEuI,SAAS,SACTkB,OAAQlJ,IAAKC,SACbgS,YAAa5L,EAAE,+BACfqgB,iBAAiB,EACjBjnB,MAAO4jE,EAAaljE,KAAOkjE,EAAaljE,KAAKkyC,OAAS,KACtDxsB,OAAQ8d,GACRld,gBAAgB,KAGW,IAA7B48C,EAAaljE,KAAKkyC,OAClB,gCACE,uBAAKz0C,UAAU,SACb,6BAAQyI,EAAE,mBACV,gBAAC,KAAD,CACE3I,GAAG,WACH8F,KAAK,SACL/F,IAAK,SAAC+oE,GAAD,OAAkBlB,EAAYkB,GACnC98D,WAAY25D,EAAanyB,OACzB1nC,OAAQ,CAAE3J,KAAyB,OAAlBG,IAAKC,SAAoB,SAAW,SAAUR,MAAO,MACtEuI,SAAS,SACTkB,OAAQlJ,IAAKC,SACbgS,YAAa5L,EAAE,6BACfqgB,iBAAiB,EACjBjnB,MAAO4jE,EAAaljE,KAAOkjE,EAAaljE,KAAKquD,SAAW,KACxD3oC,OAAQ8d,MAGZ,uBAAK/lC,UAAU,SACb,6BAAQyI,EAAE,kBACV,gBAAC,KAAD,CACE3I,GAAG,WACH8F,KAAK,SACL/F,IAAK,SAAC+oE,GAAD,OAAkBjB,EAAYiB,GACnCC,SAAUpD,EAAaljE,OAASkjE,EAAaljE,KAAKquD,SAClD9kD,WAAY25D,EAAajyB,OAAOlxC,QAAO,SAAAwmE,GAAI,OAAIrD,EAAaljE,MAAQumE,EAAKxM,WAAamJ,EAAaljE,KAAKquD,YACxGhlD,OAAQ,CAAE3J,KAAyB,OAAlBG,IAAKC,SAAoB,SAAW,SAAUR,MAAO,MACtEuI,SAAS,SACTkB,OAAQlJ,IAAKC,SACbgS,YAAa5L,EAAE,4BACfqgB,iBAAiB,EACjBjnB,MAAO4jE,EAAaljE,KAAOkjE,EAAaljE,KAAKsuD,SAAW,KACxD5oC,OAAQ8d,OAKd,gCAEE,uBAAK/lC,UAAU,SACb,6BAAQyI,EAAE,sBACV,gBAAC,KAAD,CACE3I,GAAG,WACHD,IAAK,SAAA22C,GAAO,OAAIuxB,EAAcvxB,GAC9B5wC,KAAK,WACLglB,eAAgB,CAAEiD,UAAW,OAC7BzjB,SAAS,SACTiK,YAAa5L,EAAE,iCACf5G,MAAO4jE,EAAaljE,KAAOkjE,EAAaljE,KAAKuuD,SAAW,GACxD7oC,OAAQugD,MAGZ,uBAAKxoE,UAAU,SACb,6BAAQyI,EAAE,uBACV,gBAAC,KAAD,CACE3I,GAAG,QACHD,IAAK,SAAA22C,GAAO,OAAIwxB,EAAgBxxB,GAChC5wC,KAAK,QACLglB,eAAgB,CAAEiD,UAAW,OAC7BzjB,SAAS,SACTiK,YAAa5L,EAAE,kCACf5G,MAAO4jE,EAAaljE,KAAOkjE,EAAaljE,KAAKsoB,MAAQ,GACrD5C,OAAQugD,QAOa,IAA7B/C,EAAaljE,KAAKkyC,QAAiB,uBAAKz0C,UAAU,WAClD,uBAAKA,UAAU,SACb,6BAAQyI,EAAE,sBACV,gBAAC,KAAD,CACE3I,GAAG,WACHD,IAAK,SAAA22C,GAAO,OAAIuxB,EAAcvxB,GAC9B5wC,KAAK,WACLglB,eAAgB,CAAEiD,UAAW,OAC7BzjB,SAAS,SACTiK,YAAa5L,EAAE,iCACf5G,MAAO4jE,EAAaljE,KAAOkjE,EAAaljE,KAAKuuD,SAAW,GACxD7oC,OAAQugD,MAGZ,uBAAKxoE,UAAU,SACb,6BAAQyI,EAAE,uBACV,gBAAC,KAAD,CACE3I,GAAG,QACHD,IAAK,SAAA22C,GAAO,OAAIwxB,EAAgBxxB,GAChC5wC,KAAK,QACLglB,eAAgB,CAAEiD,UAAW,OAC7BzjB,SAAS,SACTiK,YAAa5L,EAAE,kCACf5G,MAAO4jE,EAAaljE,KAAOkjE,EAAaljE,KAAKsoB,MAAQ,GACrD5C,OAAQugD,OAId,uBAAKxoE,UAAU,QACb,uBAAKA,UAAU,SACb,6BAAQyI,EAAE,oBACV,gBAAC,KAAD,CACE3I,GAAG,WACHD,IAAK,SAAA22C,GAAO,OAAIsxB,EAAatxB,GAC7B5wC,KAAK,WACLglB,eAAgB,CAAEiD,UAAW,OAC7BzjB,SAAS,SACTiK,YAAa5L,EAAE,+BACf5G,MAAO4jE,EAAaljE,KAAOkjE,EAAaljE,KAAK8mC,SAAW,GACxDphB,OAAQugD,OAId,uBAAKxoE,UAAU,QACb,uBAAKA,UAAU,SACb,6BAAQyI,EAAE,8BACV,gBAAC,KAAD,CACE3I,GAAG,oBACHD,IAAK,SAAA22C,GAAO,OAAIyxB,EAAezxB,GAC/B5wC,KAAK,oBACLiiB,WAAS,EACT+C,eAAgB,CAAEiD,UAAW,OAAQ8xC,KAAM,MAC3Cv1D,SAAS,SACTiK,YAAa5L,EAAE,yCACf5G,MAAO4jE,EAAaljE,KAAOkjE,EAAaljE,KAAK2lE,kBAAoB,GACjEjgD,OAAQugD,WAQtB,uBAAKxoE,UAAU,mBACb,gBAAC,GAAD,CAAS2S,SAAUid,GAAapE,SAAUuE,KAC1C,uBAAK/vB,UAAU,aACb,uBAAKA,UAAU,0CACb,uBAAKA,UAAU,oBACf,0BAAKyI,EAAE,oBAET,gBAAC,GAAD,UAKR,gBAAC,KAAD,CACE3I,GAAG,cACHoe,SAAS,EACTvC,QAAS4kB,EACTj1B,OAAQlJ,IAAKC,UAEb,2BACE,uBAAKrC,UAAU,YACb,yBAAOA,UAAU,oBACjB,uBAAKA,UAAU,gBACb,yBAAOF,GAAG,UAAU2I,EAAE,mBACtB,yBAAO3I,GAAG,eAAe2I,EAAE,+BAG/B,2BACA,uBAAKzI,UAAU,iBACb,0BAAQmK,QAAS,kBAAMq2B,GAAgB,KAAS/3B,EAAE,mBAClD,0BAAQ0B,QAAS,kBAAM42B,OAAmC,OAAjB3+B,IAAKC,SAAmB,MAAQ,ab14B9EqiE,GAAe,SAACllE,GAGLA,EAAZmlE,QADR,IAAIC,EAEJ,EAAsBrjE,aAAiBD,GACvC,GADA,oBACsCC,aAAiB0xC,KAAtCS,GAAjB,EAAQnqC,QAAR,EAAiBmqC,kBACjB,EAAkCnyC,YAAe,GAAjD,mBAAOyxB,EAAP,KAAkBC,EAAlB,KACA,EAA8B1xB,YAAe,GAA7C,mBAAOghB,EAAP,KAAgB3J,EAAhB,KACA,EAAwCrX,WAAe,MAAvD,mBAAOsjE,EAAP,KAAqBC,EAArB,KACA,EAA4BvjE,WAAe,IAA3C,mBAAOe,EAAP,KAAeg7B,EAAf,KAIQ70B,GAFuBqV,KAAvBa,mBAEMjW,cAAND,GAERlH,aAAgB,WACZ0xB,GAAa,GACT2xC,IACAA,EAAcvwD,YAAc5L,EAAE,kCACnC,CAACrG,IAAKC,WAETd,aAAgB,WACRghB,IACAzR,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,sBAChDE,aAAYH,SAASC,eAAe,qBACpCG,aAAW,CAAErJ,KAAM,iBAExB,CAAC4a,IAEJhhB,aAAgB,WACZ,IAAMwjE,EAAcn0D,SAASC,eAAe,oBACxC6iC,GAAoBqxB,IACpB3zD,aAAY2zD,GACZnsD,GAAW,MAEhB,CAAC86B,IAkCJ,OALAnyC,aAAgB,WACRggB,IACAA,GAAarN,YAClB,CAAC9R,IAAKC,WAGLwiE,EAAe,gBAAC,IAAD,CAAUzgE,MAAM,EAAMyF,GAAE,6CAAwCg7D,KAC3EtiD,EAAU,uBAAKziB,GAAG,qBACd,gCACI,uBAAKE,UAAS,gBAAWgzB,EAAY,SAAW,KAC5C,uBAAKhzB,UAAU,yBACX,uBAAKA,UAAU,eACX,wBAAMA,UAAU,qBAChB,yBAAIyI,EAAE,0BAEV,uBAAKzI,UAAU,eACX,uBAAKA,UAAU,mBACX,gBAAC,KAAD,CACIF,GAAG,WACHuU,YAAa5L,EAAE,+BACf5I,IAAK,SAAA22C,GAAO,OAAIouB,EAAgBpuB,GAChCx2C,UAAU,UACVioB,OAjDhB,SAAAplB,GAChBy6B,EAAU,2BAAKh7B,GAAN,mBAAeO,EAAEkB,MAAMy5B,cAAc19B,GAAK+C,EAAEhB,cAoDjC,uBAAK7B,UAAU,oBACTgzB,GACE,uBAAKhzB,UAAU,aACX,gBAAC,KAAD,CACIA,UAAU,mBACVoK,SAAS,mBACTD,QAAS,kBAAM8oB,GAAcD,KAC7B,wBAAMhzB,UAAU,qBACfyI,EAAE,sBAIduqB,GACG,uBAAKhzB,UAAU,aACX,gBAAC,KAAD,CACIA,UAAU,iCACVoK,SAAS,mBACTD,QAAS,kBAAM8oB,GAAcD,KAC7B,wBAAMhzB,UAAU,qBACfyI,EAAE,sBAIf,uBAAKzI,UAAU,aACX,gBAAC,KAAD,CACIoK,SAAS,mBACTD,QAxEjB,SAAAtH,GAEf,GADAowB,GAAa,GACT1R,GAAc,CACd,IAAIyjD,EAAY,aAAOtxB,GACjB1C,EAAc1uC,EAAO2iE,SAASz1D,OAAOC,cACvCuhC,IACAg0B,EAAeA,EAAa1iE,QAAO,SAAAC,GAAI,OAAIA,EAAKiS,MAAQjS,EAAKiS,KAAK/E,cAAciuB,SAASsT,IAClFzuC,EAAKwtD,aAAextD,EAAKwtD,YAAYtgD,cAAciuB,SAASsT,OAGvEzvB,GAAazV,WAAak5D,KAiEGv8D,EAAE,wBAuDvB,uBAAKzI,UAAU,gBACV0zC,GACG,gBAAC,KAAD,CACI5zC,GAAG,WACHD,IAAK,SAAA05B,GAAI,OAAIhY,GAAegY,GAC5BztB,WAAY4nC,EACZnd,eAAgB,CAAE5uB,KAAM,QACxBkhB,gBAAgB,EAChB2N,aAAa,EACbC,cAAc,EACdC,kBAAkB,EAClByb,eAAe,EACf7mC,OAAQlJ,IAAKC,UACb,gBAAC,KAAD,KACI,gBAAC,KAAD,CACIyZ,MAAM,OACNpK,WAAYjJ,EAAE,wBACdqL,SAAU,SAACjR,GAAD,OArIzB,SAACA,GAClB,OACI,wBAAMsH,QAAS,kBAAM26D,EAAgBjiE,EAAE/C,KAAKE,UAAU,iBAAtD,IAAwE6C,EAAE2R,KAA1E,KAmI6Cu0D,CAAalmE,IAC9BnD,MAAM,QAQV,gBAAC,KAAD,CACIoc,MAAM,cACNpK,WAAYjJ,EAAE,+BACd/I,MAAM,QAEV,gBAAC,KAAD,CACIoc,MAAM,cACNpK,WAAYjJ,EAAE,8BACd/I,MAAM,QAEV,gBAAC,KAAD,CACIoc,MAAM,QACNpK,WAAYjJ,EAAE,8BACd/I,MAAM,SAQd,gBAAC,KAAD,CAAQ0d,SAAU,CAACwZ,KAAQC,KAAMC,KAAaC,KAAQC,KAAMC,KAAMC,KAAYC,YCnNjG6xC,GAAkB,SAACxpE,GAC5B,IAAIs/C,EAIIr2C,EAAMC,cAAND,EACR,EAAsBlH,aAAiBD,GAAhCI,EAAP,oBACM+jE,EAAelkE,aAAiB0xC,IACtC,EAAgC1xC,YAAe,GAA/C,mBAAO6D,EAAP,KAAiBsL,EAAjB,KACA,EAAwCnP,WAAe,MAAvD,mBAAqB6rC,GAArB,WACA,EAA0C7rC,WAAe,IAAzD,mBAAOmkE,EAAP,KACA,GADA,KAC4CnkE,YAAe,IAA3D,mBAAuBskE,GAAvB,WAEAtkE,aAAgB,WACZ,IAAImqB,EAAoBhqB,EAAYR,YACpCoqB,GAAiBI,EAAkBppB,QAAO,SAACpE,GAAD,OAA0B,KAAnBA,EAAEmD,gBAAqBoB,KAAI,SAACvE,GAAD,OAAQA,EAAEkD,gBACvF,CAACM,IAEJ,IAAMquB,EAAY,CACd0H,OAAQnM,IAAkC,KAC1C+L,OAAQ,GAERG,IAAK,WACDiuC,EAAal8D,QAAQ,MACrBmH,GAAY,IAEhBgnB,KAAM,IAKVn2B,aAAgB,WACZ,IAAIukE,EAAYl1D,SAASC,eAAe,WACpCi1D,GACAh1D,aAAc,CAAE7S,OAAQ6nE,MAa7B,IAEHvkE,aAAgB,WACRkkE,EAAagB,kBAAoBhB,EAAagB,iBAAiBtpD,SAC/DsoD,EAAagB,iBAAiB11D,cAClC21D,MACD,IAEH,IAAMA,EAAoB,YxB9EvB,SAAP,sCwBiFQ9yB,CAAuBlyC,EAAYjB,YADnB,wBACyCsI,MAAK,SAAAvD,GACtDA,EAASC,IACTD,EAASwD,OAAOD,MAAK,SAAAE,GACjBw8D,EAAa9xB,oBAAoB1qC,UAkEjD,OALA1H,aAAgB,WACR6wD,IACAA,GAAgBl+C,YACrB,CAAC9R,IAAKC,WAGL,gCACiC,OAA5BX,EAAYjB,YAAuB,gBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WACzDzE,EACI,gBAAC,IAAD,CAAUhB,MAAM,EAAMyF,GAAG,uCAEzB,gCACI,gBAAC,GAAD,CAAoB/J,GAAG,OACvB,uBAAKE,UAAU,eACf,gBAACwM,EAAA,EAAD,CAAWxM,UAAU,gBACjB,uBAAKA,UAAU,mBACX,gBAACmhB,GAAA,EAAD,KACI,uBAAKnhB,UAAU,mBACX,uBAAKA,UAAU,SACX,0BAAKyI,EAAE,4BAGf,uBAAKzI,UAAU,mBACX,uBAAKA,UAAU,WACX,gBAAC,GAAD,CAASwrB,SAAUuE,QAKnC,gBAAC5O,GAAA,EAAD,KACI,uBAAKnhB,UAAU,UACX,gBAAC,GAAD,CAAc2kE,QAASv3B,OAInC,gBAAC,KAAD,CACIttC,GAAG,UAAUD,IAAK,SAAAyrD,GAAO,OAAIxM,EAAawM,GAC1Cl5C,MAAO,CAAEm5C,WAAY,UACrB72C,QA/DD,WACnBoqC,EAAW3hC,QAAQ/K,MAAMm5C,WAAa,IA+DlB5jD,KAAK,OACLuP,SAAS,QACTs0C,sBAAsB,GAEtB,uBAAKxrD,UAAU,mBACX,uBAAKF,GAAG,WAAWE,UAAU,UACzB,uBAAKA,UAAU,OACX,wBAAM6jB,wBAAyB,CAAEC,OA7KtD,uuDA8KqB,yBAAIrb,EAAE,uBAAN,IAA8B,wBAAM0B,QAAS,kBAAMf,QAAQ1C,IAAI,WAAW+B,EAAE,mCAGpF,gBAAC,KAAD,CACI3I,GAAG,iBACHD,IAAK,SAAAokB,GAAQ,OAA0BA,GACvCC,kBAAkB,cAClBxB,SAAU9R,SAASC,eAAe,YAClCvF,OAAQlJ,IAAKC,SACb4iB,UAAU,EACVD,SAtFX,WACjB6gD,GAAkB,IAsFU1jE,SA3FF,SAACU,GAC3BgjE,EAAiC,WAAfhjE,EAAEgoD,cA6FI,uBAAK7qD,UAAU,eACX,gBAAC,KAAD,CAAiBoK,SAAS,mBAAmBD,QAnFpD,YxBnHtB,SAAP,oCwBoHQi9D,CAAiC1lE,EAAY4S,kBACxCvL,MAAK,SAAAvD,GAAQ,OAAIA,EAASkV,UAAQ3R,MAAK,SAAA2R,GACpC,IAAI1Q,EAAMlH,OAAO6X,IAAIC,gBAAgBF,GACjC5V,EAAI8L,SAASnR,cAAc,KAC/BqF,EAAE2R,KAAOzM,EACTlF,EAAE+8D,SAAW,gBACbjxD,SAASnM,KAAKsW,YAAYjW,GAC1BA,EAAEkW,QACFlW,EAAEoe,cA2EuBza,EAAE,oCAQX,uBAAK3I,GAAG,UAAUE,UAAU,eAC5B,wBAAMF,GAAG,eACT,gBAAC,KAAD,CACIA,GAAG,eACHD,IAAK,SAAAomC,GAAa,OAAImsB,GAAkBnsB,GACxC7K,iBAzKP,CAAC,gBAAiB,iBAAkB,YAAa,WAAY,WAAY,YA0KlEtvB,WAAY45D,EACZnvC,eAAgB,CAAE5uB,KAAM,QACxB6uB,aAAa,EACbC,cAAc,EACdnrB,OAAQlJ,IAAKC,SACbwmB,gBAAgB,EAChBspB,eAAe,EACf5T,aAAc,CAAEC,SAAU,KAI1B,gBAAC,KAAD,KACI,gBAAC,KAAD,CACI1+B,GAAG,GACHgc,MAAM,eACNpK,WAAYjJ,EAAE,yBACd0pC,eAAe,KAGvB,gBAAC,KAAD,CAAQ/0B,SAAU,CAACwZ,KAAQC,KAAMC,KAAaC,KAAQC,c,mBa9N7EiyC,GAAsB,SAACzpE,GAClC,IAGIoe,EAHJ,EAA4D0P,eAApDG,EAAR,EAAQA,SAAUC,EAAlB,EAAkBA,kBAAmBkb,EAArC,EAAqCA,OAAQovB,EAA7C,EAA6CA,WAEzC/1C,EAAYziB,EAAMqG,MAAMiqB,OAAOhwB,GAU3B2I,EAAMC,cAAND,EAEFkkD,EAAe,CACnB7sD,GAAI,KACJ0U,KAAM,GACN00D,YAAa,KACbC,YAAa,GACbt+C,MAAO,GACP6lB,OAAQ,GACRtgB,QAAS,GACThiB,MAAO,GACPsE,SAAU,GACVq0D,WAAW,GAGPjP,EAAiBZ,GAAcrvD,MAAK,SAAA3J,GAAC,MAAsB,OAAlBkE,IAAKC,SAAiC,WAAbnE,EAAE8C,OAAmC,WAAb9C,EAAE+C,UAElG,EAAsBM,aAAiBD,GAAhCI,EAAP,oBACM+jE,EAAelkE,aAAiB0xC,IACtC,EAA0B1xC,aAAiBkgB,IAA3C,mBAAOE,EAAP,KAAcC,EAAd,KACA,EAAgCrgB,YAAe,GAA/C,mBAAO6D,EAAP,KAAiBsL,EAAjB,KACA,EAAwCnP,YAAe,GAAvD,mBAAOg/B,EAAP,KAAqBC,EAArB,KACA,EAA0Cj/B,WAAe,MAAzD,mBAAOm5D,EAAP,KAAsBC,EAAtB,KACA,EAA0Cp5D,WAAe,IAAzD,mBAAOq5D,EAAP,KAAsBC,EAAtB,KACA,EAAsCt5D,YAAe,GAArD,mBAAOquB,EAAP,KAAoBC,EAApB,KACA,EAAkCtuB,WAAe,IAAjD,mBAAOu5D,EAAP,KAAkBC,EAAlB,KAEA,EAAgCx5D,YAC9B,WAAO,IAAD,EACJ,OAAgB,OAAZkkE,QAAY,IAAZA,GAAA,UAAAA,EAAcljE,YAAd,eAAoBmQ,SAAStU,QAAS,EACjCqnE,EAAaljE,KAAKmQ,SAEpB,CAAC,CACNA,SAAU,GACVhN,OAAQ,EACR2K,QAASynD,OARf,oBAAOvwC,GAAP,MAAiBP,GAAjB,MAaA,GAAgCzlB,YAC9B,WAAO,IAAD,EACJ,OAAgB,OAAZkkE,QAAY,IAAZA,GAAA,UAAAA,EAAcljE,YAAd,eAAoB6L,MAAMhQ,QAAS,EAC9BqnE,EAAaljE,KAAK6L,MAEpB,CAAC,CACNA,MAAO,GACP1I,OAAQ,OAPd,qBAAOs1D,GAAP,MAAiBC,GAAjB,MAYMC,GAAW35D,WAEX45D,GAAiB,SAACt7D,GAAS,IAAD,GAC9B,OAAIq7D,SAAJ,IAAIA,IAAJ,UAAIA,GAAUvnD,eAAd,aAAI,EAAmB84C,SAAS5sD,EAAI5B,UAGpC08D,EAAiB,OAGb5qC,GAAY,CAChB/T,MAAO,UACPmQ,aAAa,EACbK,gBAAgB,EAChBP,kBAA+BxkB,EAAe,GAA3Bwa,EAA+B,OAA0C,SAAlCvgB,GAC1DsuB,QAAS,GACTrE,WAAY,GACZF,KAAM,oBACNgB,wBAAyBxK,GAAaxa,EAAe,GAAI,SAAU/F,GACnEqqB,aAAc,GACdG,QAAS,WACP,GAAItO,EAAW8B,WAAY,CACzBmQ,GAAe,GACf,IAAM7rB,EAAOyhE,EAAaljE,KAC1ByB,EAAKosB,QAAUzO,GAASA,EAAMwB,IAAMxB,EAAMwB,IAAI3C,MAAM,KAAK,GAAK,KAC9D,IAAI2nD,EAAY,GAChB1C,EAAax3B,sBAAsBxrC,KAAI,SAAAF,GACrC4lE,EAAU/jE,KAAK,CAAEtE,GAAIyC,OAEvByB,EAAK0sC,OAASy3B,EACdnkE,EAAK0O,SAAW6U,GAAS9kB,KAAI,SAAAsmB,GAAK,kCAC7BA,GAD6B,IAEhC1Y,QAAS0Y,EAAM1Y,QAAQpP,YAErB0gB,GAASA,EAAMyB,OACjB0wB,GAA0BpyC,EAAYjB,YAAawhB,GAAWlZ,MAAK,SAAAvD,GAC7DA,EAASC,IACXouC,GAAuBnyC,EAAYjB,YAAauD,GAAM+E,MAAK,SAAAvD,GACzDkL,EAAYlL,EAASC,IACrBoqB,GAAe,MACd3mB,OAAM,WACP2mB,GAAe,MAGnBA,GAAe,MACd3mB,OAAM,WACP2mB,GAAe,MAIjBgkB,GAAuBnyC,EAAYjB,YAAauD,GAAM+E,MAAK,SAAAvD,GACzDkL,EAAYlL,EAASC,IACrBoqB,GAAe,MACd3mB,OAAM,WACP2mB,GAAe,QAKvBxD,QAAS,GACTE,UAAW,kBAAM7b,GAAY,IAC7Bgc,UAAWzK,EAAY,kBAAMue,GAAgB,IAAQ,IA8GvDj/B,aAAgB,WACd,IAAM46B,EAAgB,CACpBrc,MAAO,CACL,KAAQ,CACNC,SAAU,EAAC,EAAMtX,EAAE,yBAErB,YAAe,CACbsX,SAAU,EAAC,EAAMtX,EAAE,yBAErB,YAAe,CACbsX,SAAU,EAAC,EAAMtX,EAAE,yBAErB,MAAS,CACPsX,SAAU,EAAC,EAAMtX,EAAE,yBAErB,MAAS,CACPsX,SAAU,EAAC,EAAMtX,EAAE,0BAGvBuX,gBAAiB,SAACC,EAAcC,GAC9BD,EAAaE,cAAcA,cAAcpF,YAAYmF,KAIzDtC,EAAa,IAAIwC,KAAc,sBAAuB+b,MAGxD56B,aAAgB,WAAM,4CAGpB,8BAAAuD,EAAA,sEACyBiI,GAAarL,EAAYjB,aAC7CsI,MAAK,SAAAvD,GACJ,GAAIA,EAASC,GACX,OAAOD,EAASwD,UAJxB,OACMgrB,EADN,OAOQqpC,EAAmBnG,GAAc50D,QAAO,SAAA+N,GAC5C,OAAO2jB,EAAW1xB,QAAO,SAAAC,GAAI,OAAIA,EAAK2P,SAAW7B,EAAQpP,UAAQ7C,OAAS,KAE5Ey8D,EAAiBwC,GACjBtC,EAAasC,GAXf,4CAHoB,sBA2BpB,GA1BAz7C,EAAS,MADW,mCAgBpBsO,GAGEtf,SAAS6T,iBAAiB,YAAa02C,IAQrCl5C,EAAW,ErChTZ,SAAP,sCqCiTMomD,CAAsB3mE,EAAYjB,YAAawhB,GAAWlZ,MAAK,SAAAvD,GACzDA,EAASC,IACXD,EAASwD,OAAOD,MAAK,SAACE,GAGpB,GAFAw8D,EAAal8D,QAAQN,GAEjBA,GAAUA,EAAOyJ,SAAStU,OAAS,EAAG,CACxC,IAAM2qB,EAAQ9f,EAAOyJ,SAASjQ,KAAI,SAAAsmB,GAAK,kCAClCA,GADkC,IAErC1Y,QAAS6mD,GAAcrvD,MAAK,SAAAwI,GAAO,OAAIA,EAAQpP,SAAW8nB,EAAM1Y,gBAElE2W,GAAY+B,QAEZ/B,GAAY,CAAC,CACXtU,SAAU,GACVhN,OAAQ,EACR2K,QAASynD,KAIT7uD,GAAUA,EAAOmF,MAAMhQ,OAAS,EAClC68D,GAAYhyD,EAAOmF,OAEnB6sD,GAAY,CAAC,CACX7sD,MAAO,GACP1I,OAAQ,QAIXwD,MAAME,QAAQD,UAErB,IAAMqd,EAAQ,UAAMjhB,0BAAN,oEAA+F7D,EAAY4S,iBAA3G,6BAAgJ2N,IrC/S7J,SAAgCjY,EAAK9F,GACxC,IAAIuiB,EAAM,IAAIC,eACdD,EAAIE,mBAAqB,WACC,IAAlBF,EAAIG,YACJ1iB,EAASvF,KAAK6G,WAGtBihB,EAAII,KAAK,MAAO7c,GAChByc,EAAIphB,aAAe,OACnBohB,EAAIK,OqCuSFwhD,CAAuB9hD,GAAU,SAAUhhB,GACrCA,EAASoe,MACXhC,EAAS,CAAEhc,KAAM,QAASge,KAAMpe,EAASoe,KAAMjc,KAAM,OAAQqC,IAAKwc,YAItEi/C,EAAal8D,QAAQojD,GACrB8Y,EAAa33B,kBAAkB,MAEhC,IAEHvsC,aAAgB,WACTm5D,GACHK,EAAaH,KAEd,CAACF,IAEJn5D,aAAgB,WACVkkE,EAAaljE,MACXkjE,EAAaljE,KAAKmuC,QACpB+0B,EAAa33B,kBAAkB23B,EAAaljE,KAAKmuC,OAAOjuC,KAAI,SAAAF,GAAI,OAAIA,EAAKzC,SAC5E,CAAC2lE,EAAaljE,OAEjBhB,aAAgB,WACVkkE,EAAaljE,MAAQkjE,EAAaljE,KAAK6L,OACzC4pD,EAAW,CAAC,YAEb,CAACyN,EAAaljE,OAEjB,IAAMimE,GAAc,SAAA3lE,GAClB,GAAIA,EAAEkB,MAAO,CACX,IAAM2jB,EAAuC,aAA/B7kB,EAAEkB,MAAMy5B,cAAc71B,MAAsD,UAA/B9E,EAAEkB,MAAMy5B,cAAc71B,KAAoB9E,EAAEkB,MAAMy5B,cAAc53B,KAAO/C,EAAEkB,MAAMy5B,cAAc19B,GACxJ2lE,EAAal8D,QAAb,2BAA0Bk8D,EAAaljE,MAAvC,mBAA8CmlB,EAAO7kB,EAAEhB,WAiBrDk/B,GAAgB,WACpB+S,GAA0BpyC,EAAYjB,YAAawhB,GAAWlZ,MAAK,SAAAvD,GAC7DA,EAASC,IrCnXZ,SAAP,qCqCoXQgjE,CAAqB/mE,EAAYjB,YAAawhB,GAAWlZ,MAAK,SAAAvD,GAC5D,GAAIA,EAASC,GAAI,CACf,IAAMijE,EAAgBjD,EAAa/xB,iBAAiBpxC,QAAO,SAAAqmE,GAAW,OAAIA,EAAY7oE,KAAMmiB,KAC5FwjD,EAAa9xB,oBAAoB+0B,GACjCh4D,GAAY,WAgChB07B,GAAe,SAAC7pC,GAGpB,OAFgBq4D,EAAct4D,QAAO,SAAApE,GAAC,OAAIA,EAAE+C,SAAWsB,KAExCE,KAAI,SAAAvE,GAAC,OAAIA,EAAE6/D,SAGtBC,GAAoB,SAAC7S,GACzB,IAAM8S,EAAerD,EAAct4D,QACjC,SAAA47D,GAAK,MAAwB,KAApB/S,EAAGltD,OAAO4D,QACG,OAAlBO,IAAKC,SAAL,OACE67D,QADF,IACEA,OADF,EACEA,EAAOl9D,OAAOyO,cAAciuB,SAASytB,EAAGltD,OAAO4D,MAAM4N,eADvD,OAEEyuD,QAFF,IAEEA,OAFF,EAEEA,EAAOj9D,OAAOwO,cAAciuB,SAASytB,EAAGltD,OAAO4D,MAAM4N,mBAI7DsrD,EAAakD,IAGf,OACE,gCAC+B,OAA5Bv8D,EAAYjB,YAAuB,gBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WAC3DzE,EAAW,gBAAC,IAAD,CAAUhB,MAAM,EAAMyF,GAAG,mCAClC,gCACE,gBAAC,GAAD,CAAoB/J,GAAG,OACvB,uBAAKE,UAAU,eACf,gBAACwM,EAAA,EAAD,CAAWxM,UAAU,gBACnB,uBAAKA,UAAU,mBACb,gBAACmhB,GAAA,EAAD,KACE,uBAAKnhB,UAAU,UACb,uBAAKA,UAAU,SACb,0BAAiByI,EAAZwZ,EAAc,qBAA0B,6BAKrD,gBAACd,GAAA,EAAD,KACE,uBAAKnhB,UAAU,qBACb,gBAAC,GAAD,CAAuBkiB,YAAY,EAAMF,WAAYyjD,EAAaljE,MAAQkjE,EAAaljE,KAAKiS,KAAMyN,UAAWA,KAE/G,uBAAKjiB,UAAU,4BACb,wBAAMF,GAAG,qBAAqBguB,SAnFrB,SAAAjrB,GACvBA,EAAEm3B,mBAmFc,uBAAKh6B,UAAU,eACb,uBAAKA,UAAU,0CACb,uBAAKA,UAAU,uBACf,0BAAKyI,EAAE,iCAET,uBAAKzI,UAAU,WACb,uBAAKA,UAAU,WACb,uBAAKA,UAAU,SACb,6BAAQyI,EAAE,wBAAV,KACA,gBAAC,KAAD,CACE3I,GAAG,OACHD,IAAK,SAAA22C,GAAO,OAAoBA,GAChC5wC,KAAK,OACLglB,eAAgB,CAAEiD,UAAW,OAC7BzjB,SAAS,SACTiK,YAAa5L,EAAE,kCACf5G,MAAO4jE,EAAaljE,KAAOkjE,EAAaljE,KAAKiS,KAAO,GACpDyT,OAAQugD,MAGZ,uBAAKxoE,UAAU,SACb,kDACA,gBAAC,KAAD,CACEF,GAAG,cACHD,IAAK,SAAA22C,GAAO,OAAoBA,GAChC5wC,KAAK,cACLglB,eAAgB,CAAEiD,UAAW,OAC7BzjB,SAAS,SACTiK,YAAa5L,EAAE,4CACf5G,MAAO4jE,EAAaljE,KAAOkjE,EAAaljE,KAAK4mE,YAAc,GAC3DlhD,OAAQugD,OAId,uBAAKxoE,UAAU,WACb,uBAAKA,UAAU,SACb,6BAAQyI,EAAE,8BAAV,KACA,gBAAC,KAAD,CACE3I,GAAG,QACHD,IAAK,SAAA22C,GAAO,OAAqBA,GACjC5wC,KAAK,QACLglB,eAAgB,CAAEiD,UAAW,OAC7BzjB,SAAS,SACTiK,YAAa5L,EAAE,kCACf5G,MAAO4jE,EAAaljE,KAAOkjE,EAAaljE,KAAKsoB,MAAQ,GACrD5C,OAAQugD,MAGZ,uBAAKxoE,UAAU,SACb,6BAAQyI,EAAE,8BAAV,KACA,sBAAIzI,UAAU,aACZ,0BACE,gBAAC,KAAD,CACE+nB,MAAM,UACNniB,KAAK,cACL/D,MAAM,UACNomB,OAAQugD,GACRxgD,QAASy9C,EAAaljE,MAA0C,YAAlCkjE,EAAaljE,KAAK2mE,eAGpD,0BACE,gBAAC,KAAD,CACEnhD,MAAM,UACNniB,KAAK,cACL/D,MAAM,UACNomB,OAAQugD,GACRxgD,QAASy9C,EAAaljE,MAA0C,YAAlCkjE,EAAaljE,KAAK2mE,kBAM1D,uBAAKlpE,UAAU,WACb,uBAAKA,UAAU,2BACZg7D,GAAS14D,QAAO,SAAA8L,GAAK,OAAqB,IAAjBA,EAAM1I,WAC9B,uBAAK1F,UAAU,yBACb,6BAAQyI,EAAE,kBAAV,KACA,uBAAKzI,UAAU,iBACbmK,QAAS,WA/YxB6wD,GAAS14D,QAAO,SAAA8L,GAAK,OAAqB,IAAjBA,EAAM1I,WAG5Cu1D,IAAY,SAAAD,GAAQ,6BAAQA,GAAR,CAAkB,CAAE5sD,MAAO,GAAI1I,OAAQ,YAgZpCs1D,GAAS58D,OAAS,GACjB48D,GAASv4D,KAAI,SAACF,EAAMG,GAAP,aAAiC,IAAhBH,EAAKmD,QACjC,uBAAKpH,IAAKoE,EAAO1C,UAAU,sBACzB,gBAAC,KAAD,CACEF,GAAG,QACHD,IAAK4tB,EAAS,CAAE1N,UAAU,EAAMsO,QAAS,cACzCvG,KAAM,kBAAM4F,EAAkB,UAC9B9nB,KAAK,QACLglB,eAAgB,CAAEiD,UAAW,OAC7BzjB,SAAS,SACTiK,YAAa5L,EAAE,6BACf5G,OAAmB,OAAZ4jE,QAAY,IAAZA,GAAA,UAAAA,EAAcljE,YAAd,eAAoB6L,OAAQ7L,EAAK6L,MAAQ,GAChD6Z,OAAQ,SAACplB,GAAD,OArYhB,SAACH,EAAOG,IACpBA,EAAEhB,OAGkB,IAA1Bm5D,GAASt4D,GAAOgD,QAAyC,IAA1Bs1D,GAASt4D,GAAOgD,SACjDs1D,GAASt4D,GAAOgD,OAAS,GAG3Bs1D,GAASt4D,GAAO0L,MAAQvL,EAAEhB,OACU,IAA3Bm5D,GAASt4D,GAAOgD,SACzBs1D,GAASt4D,GAAOgD,OAAS,GAEE,KAAzBs1D,GAASt4D,GAAO0L,SAEQ,IADRq3D,EAAaljE,KAAK6L,MAAM9L,QAAO,SAAAi8D,GAAS,OAAIA,EAAUnwD,QAAS4sD,GAASt4D,GAAO0L,SACjFhQ,QACdqnE,EAAaljE,KAAK6L,MAAMhK,KAAK42D,GAASt4D,KAsXK87D,CAAkB97D,EAAOG,MAE1C,uBAAK7C,UAAU,kBACbmK,QAAS,kBA3ZvB,SAACzH,GACnB,GAAuB,OAAnBs4D,GAASt4D,GAAgB,CAC3B,GAA6B,KAAzBs4D,GAASt4D,GAAO0L,MAAa,CAC/B,IAAIib,EAAMo8C,EAAaljE,KAAK6L,MAAM3L,KAAI,SAAUI,GAAK,OAAOA,EAAE6P,YAAa1T,QAAQg8D,GAASt4D,GAAO0L,OAEzE,IADRq3D,EAAaljE,KAAK6L,MAAM9L,QAAO,SAAAi8D,GAAS,OAAIA,EAAUnwD,QAAS4sD,GAASt4D,GAAO0L,SAAO,GACxF1I,OACd+/D,EAAaljE,KAAK6L,MAAMib,GAAK3jB,OAAS,EAEtC+/D,EAAaljE,KAAK6L,MAAMkb,OAAOD,EAAK,GAER,IAA1B2xC,GAASt4D,GAAOgD,QACpBs1D,GAAS1xC,OAAO5mB,EAAO,GAG3Bu4D,IACE,SAAAD,GAAQ,oBAAQA,MA4Y6ByD,CAAY/7D,UAKlCkmC,EAAOx6B,OACN,gCACyB,YAAtBw6B,EAAOx6B,MAAMzG,MACZ,yBAAO3H,UAAU,UAAUoS,MAAO,CAAEqF,QAAS,UAAYhP,EAAE,6BAKnE,uBAAKzI,UAAU,2BACZunB,GAASjlB,QAAO,SAAAymB,GAAK,OAAqB,IAAjBA,EAAMrjB,WAC9B,uBAAK1F,UAAU,yBACb,6BAAQyI,EAAE,mBACV,uBAAKzI,UAAU,iBAAiBmK,QAAS,WApYnDod,GAASjlB,QAAO,SAAAoQ,GAAQ,OAAwB,IAApBA,EAAShN,WAGrDshB,IAAY,SAAAO,GAAQ,6BACfA,GADe,CAElB,CACE7U,SAAU,GACVhN,OAAQ,EACR2K,QAASynD,aA+XkB,OAARvwC,SAAQ,IAARA,QAAA,EAAAA,GAAUnpB,QAAS,GAClBmpB,GAAS9kB,KAAI,SAACF,EAAMG,GAAW,IAAD,UAC5B,OAAuB,IAAhBH,EAAKmD,QACV,uBAAKpH,IAAKoE,EAAO1C,UAAU,sBACzB,gBAAC,KAAD,CACEF,GAAG,WACH8F,KAAK,WACLglB,eAAgB,CAAEiD,UAAW,MAC7B7tB,UAAU,UACV6B,OAAmB,OAAZ4jE,QAAY,IAAZA,GAAA,UAAAA,EAAcljE,YAAd,eAAoBmQ,UAAWnQ,EAAKmQ,SAAW,GACtDuV,OAAQ,SAACplB,GAAD,OA/WlB,SAACH,EAAOG,GAChC,IAEIhB,EAAQgB,EAAEhB,MAEd,GAAIA,EAAO,CACT,IAAIonB,EAAiBpnB,EAAMgE,MALT,QAK8B2d,KAAK,IACjD+D,GAAS7kB,GAAOgQ,WAAYuW,GAA6C,IAA1B1B,GAAS7kB,GAAOgD,QAAyC,IAA1B6hB,GAAS7kB,GAAOgD,SAChG6hB,GAAS7kB,GAAOgD,OAAS,GAG3B6hB,GAAS7kB,GAAOgQ,SAAWuW,OAEO,IAA3B1B,GAAS7kB,GAAOgD,SACvB6hB,GAAS7kB,GAAOgD,OAAS,GAGK,KAA5B6hB,GAAS7kB,GAAOgQ,WAEQ,IADR+yD,EAAaljE,KAAKmQ,SAASpQ,QAAO,SAAA4mB,GAAS,OAAIA,EAAUxW,WAAY6U,GAAS7kB,GAAOgQ,YACvFtU,QACdqnE,EAAaljE,KAAKmQ,SAAStO,KAAKmjB,GAAS7kB,KA2VIi8D,CAAkBj8D,EAAOG,IACxCyP,WAAW,IACXG,KAAI,WAAS,OAAJlQ,QAAI,IAAJA,GAAA,UAAAA,EAAM8N,eAAN,eAAequD,UAAWn8D,EAAK8N,QAAQquD,SAAW,IAAvD,uEAEN,uBAAK1+D,UAAU,kBACbmK,QAAS,kBAxYzB,SAACzH,GACnB,IAAI0mB,EAAI,aAAO7B,IAEf,GAAuB,OAAnBA,GAAS7kB,GAAgB,CAC3B,GAAgC,KAA5B6kB,GAAS7kB,GAAOgQ,SAAgB,CAClC,IAAI2W,EAAM9B,GAAS9kB,KAAI,SAAUI,GAAK,OAAOA,EAAE6P,YAAa1T,QAAQuoB,GAAS7kB,GAAOgQ,UAE1D,IADR6U,GAASjlB,QAAO,SAAA4mB,GAAS,OAAIA,EAAUxW,WAAY6U,GAAS7kB,GAAOgQ,YAAU,GAC/EhN,QACd+/D,EAAaljE,KAAKmQ,SAAS2W,GAAK3jB,OAAS,EACzC0jB,EAAK1mB,GAAOgD,OAAS,GAErB+/D,EAAaljE,KAAKmQ,SAAS4W,OAAOD,EAAK,GAEX,IAA1B9B,GAAS7kB,GAAOgD,QACpB0jB,EAAKE,OAAO5mB,EAAO,GAGvBskB,GAAYoC,GAuXqCG,CAAY7mB,MAE7B,uBAAK1C,UAAU,mBAAmBmK,QAAS,kBAAMwwD,EAAiBj4D,KAChE,uBAAK1C,UAAU,cAAcqK,KAAS,OAAJ9H,QAAI,IAAJA,GAAA,UAAAA,EAAM8N,eAAN,eAAe0tD,OAAQ3xB,GAAY,OAAC7pC,QAAD,IAACA,OAAD,EAACA,EAAM8N,SAAUkE,IAAsB,OAAjBnS,IAAKC,SAAL,OAAwBE,QAAxB,IAAwBA,GAAxB,UAAwBA,EAAM8N,eAA9B,aAAwB,EAAerP,QAAa,OAAJuB,QAAI,IAAJA,GAAA,UAAAA,EAAM8N,eAAN,eAAepP,SAAUsB,EAAK8N,UACzK,wBAAMrQ,UAAU,eAAhB,WAED06D,IAAkBh4D,GACjB,uBAAK7C,IAAKq7D,GAAUl7D,UAAU,gBAC5B,yBAAOoU,SAAU4pD,GAAmBh+D,UAAU,aAAaqU,YAAY,uBACtEymD,EAAUr4D,KAAI,SAAC4N,EAASnS,GAAV,OACb,uBACE8B,UAAU,4DACV1B,IAAKJ,EACLiM,QAAS,kBAxMvB,SAACkG,EAAS3N,GACpC,IAAMm8D,EAAgB,aAAOt3C,IAC7Bs3C,EAAiBn8D,GAAjB,2BACKm8D,EAAiBn8D,IADtB,IAEE2N,QAASA,IAGPwuD,EAAiBn8D,GAAO5C,KAC1B++D,EAAiBn8D,GAAOgD,OAAS,GAEnCshB,GAAY63C,GACZlE,EAAiB,MA6LsCmE,CAAoBzuD,EAAS3N,KAE5C,uBAAK1C,UAAU,cAAcqK,IAAG,OAAEgG,QAAF,IAAEA,OAAF,EAAEA,EAAS0tD,KAAMxpD,IAAsB,OAAjBnS,IAAKC,SAAL,OAAwBgO,QAAxB,IAAwBA,OAAxB,EAAwBA,EAASrP,OAAjC,OAA0CqP,QAA1C,IAA0CA,OAA1C,EAA0CA,EAASpP,SACzG,qBAAGjB,UAAU,eAAb,UAAgD,OAAjBoC,IAAKC,SAAL,OAAwBgO,QAAxB,IAAwBA,OAAxB,EAAwBA,EAASrP,OAAjC,OAA0CqP,QAA1C,IAA0CA,OAA1C,EAA0CA,EAASpP,OAAlF,mBAA4FoP,QAA5F,IAA4FA,OAA5F,EAA4FA,EAASquD,0BAejI,uBAAK1+D,UAAU,mBACb,gBAAC,GAAD,CAAS2S,SAAUid,EAAapE,SAAUuE,KAC1C,uBAAK/vB,UAAU,aACb,uBAAKA,UAAU,0CACb,uBAAKA,UAAU,oBACf,0BAAKyI,EAAE,oBAET,gBAAC,GAAD,UAKR,gBAAC,KAAD,CACE3I,GAAG,cACHoe,SAAS,EACTvC,QAAS4kB,EACTj1B,OAAQlJ,IAAKC,UAEb,2BACE,uBAAKrC,UAAU,YACb,yBAAOA,UAAU,oBACjB,uBAAKA,UAAU,gBACb,yBAAOF,GAAG,UAAU2I,EAAE,mBACtB,yBAAO3I,GAAG,eAAe2I,EAAE,+BAG/B,2BACA,uBAAKzI,UAAU,iBACb,0BAAQmK,QAAS,kBAAMq2B,GAAgB,KAAS/3B,EAAE,mBAClD,0BAAQ0B,QAAS,kBAAM42B,OAAmC,OAAjB3+B,IAAKC,SAAmB,MAAQ,aCroB9E+mE,GAAa,WACtB,IAAI7nD,EAEI9Y,EAAMC,cAAND,EAER,EAAsBlH,aAAiBD,GAAhCI,EAAP,oBACA,EAAkCH,YAAe,GAAjD,mBAAOyxB,EAAP,KAAkBC,EAAlB,KACA,EAAsC1xB,WAAe,IAArD,mBAAOg0C,EAAP,KAAoBC,EAApB,KACA,EAAsCj0C,WAAe,IAArD,mBAAOk0C,EAAP,KAAoBC,EAApB,KACA,EAAoCn0C,WAAe,IAAnD,mBAAO00D,EAAP,KAAmBoT,EAAnB,KACA,EAAoC9nE,WAAe,IAAnD,mBAAO80D,EAAP,KAAmBiT,EAAnB,KACA,EAA8B/nE,YAAe,GAA7C,mBAAOghB,EAAP,KAAgB3J,EAAhB,KACA,EAA4BrX,aAA5B,mBAAO6yC,EAAP,KAAeC,EAAf,KACA,EAA0C9yC,aAA1C,mBAAOgoE,EAAP,KAAsBC,EAAtB,KACA,EAA4BjoE,WAAe,IAA3C,mBAAOe,EAAP,KAAeg7B,EAAf,KAE+Bxf,KAAvBa,mBAERpd,aAAgB,WACZ,IAAIqyB,EAAW,CACX,IAAI9kB,SAAQ,SAACC,EAASC,GAClBjC,GAAarL,EAAYjB,aAAasI,MAAK,SAAAvD,GACnCA,EAASC,GACTD,EAASwD,OAAOD,KAAKgG,GAErBC,UAGZ,IAAIF,SAAQ,SAACC,EAASC,GAClB3B,GAAY3L,EAAYjB,aAAasI,MAAK,SAAAvD,GAClCA,EAASC,GACTD,EAASwD,OAAOD,KAAKgG,GAErBC,WAKhBF,QAAQylB,IAAIX,GAAU7qB,MAAK,SAAAkR,GACvB7Q,QAAQ1C,IAAIuT,GACZ,IAAMkyB,EAAYlyB,EAAQ,GACpBlZ,EAAWkZ,EAAQ,GAErBkyB,GACAs9B,EAAct9B,GACdprC,GACA2oE,EAAa3oE,GAEjBizC,GAAqBtyC,EAAYjB,aAAasI,MAAK,SAAAvD,GAC3CA,EAASC,IACTD,EAASwD,OAAOD,MAAK,SAAAkR,GACjB,IAAIkuD,EAAY,GAChBluD,EAAQxX,KAAI,SAAAF,GACR,IAAM8N,EAAU87B,EAAUtkC,MAAK,SAAA2rB,GAAK,OAAIA,EAAM1zB,KAAOyC,EAAKkyC,UACtDpkC,IACA9N,EAAKonE,OAASt5D,EAAQ4B,OACtB1P,EAAKqnE,OAASv5D,EAAQ6B,QAE1B,IAAM23D,EAAe9oE,EAAS8G,MAAK,SAAA2rB,GAAK,OAAIA,EAAM1zB,KAAOyC,EAAKmyC,cAC1Dm1B,IACAtnE,EAAK0zD,WAAa4T,EAAa53D,OAC/B1P,EAAK8zD,WAAawT,EAAa33D,QAEnCi2D,EAAU/jE,KAAK7B,MAEnB8xC,EAAU8zB,cAK3B,IAEH5mE,aAAgB,WACRghB,IACAzR,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,mBAChDE,aAAYH,SAASC,eAAe,kBACpCG,aAAW,CAAErJ,KAAM,iBAExB,CAAC4a,IAEJhhB,aAAgB,WACZ,IAAMwjE,EAAcn0D,SAASC,eAAe,iBACxCujC,GAAU2wB,IACV3zD,aAAY2zD,GACZnsD,GAAW,MAEhB,CAACw7B,IAEJ,IAAMq1B,EAAgB,SAACznE,GACnB,IAAIuzC,EAAc,GACdE,EAAc,GAClBzzC,EAAMS,KAAI,SAAAF,GACNgzC,EAAYnxC,KAAK,CAAEtE,GAAIyC,EAAKzC,GAAI0U,KAAMjS,EAAK0P,SAC3CwjC,EAAYrxC,KAAK,CAAEtE,GAAIyC,EAAKzC,GAAI0U,KAAMjS,EAAK2P,YAE/CsjC,EAAeD,GACfG,EAAeD,IAGbi0B,EAAe,SAAC1nE,GAClB,IAAIi0D,EAAa,GACbI,EAAa,GACjBr0D,EAAMS,KAAI,SAAAF,GACN0zD,EAAW7xD,KAAK,CAAEtE,GAAIyC,EAAKzC,GAAI0U,KAAMjS,EAAK0P,SAC1CokD,EAAWjyD,KAAK,CAAEtE,GAAIyC,EAAKzC,GAAI0U,KAAMjS,EAAK2P,YAE9Cm3D,EAAcpT,GACdqT,EAAcjT,IAMZtwB,EAAqB,SAAAljC,GACvBy6B,EAAU,2BAAKh7B,GAAN,mBAAeO,EAAEsa,QAAQrd,GAAK+C,EAAEhB,UAmC7C,OALAN,aAAgB,WACRggB,GACAA,EAAarN,YAClB,CAAC9R,IAAKC,WAGLknE,EAAgB,gBAAC,IAAD,CAAUnlE,MAAM,EAAMyF,GAAE,oCAA+B0/D,KACnEhnD,EAAU,uBAAKziB,GAAG,kBACd,gCACI,uBAAKE,UAAS,gBAAWgzB,EAAY,SAAW,KAC5C,uBAAKhzB,UAAU,yBACX,uBAAKA,UAAU,eACX,wBAAMA,UAAU,qBAChB,yBAAIyI,EAAE,wBAEV,uBAAKzI,UAAU,eACX,uBAAKA,UAAU,mBACX,gBAAC,KAAD,CACIF,GAAG,UACHE,UAAU,UACV4L,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,QAC/BiK,WAAYsoC,EACZ//B,YAAa5L,EAAE,6BACfwf,OAzDT,SAAAplB,GACvBy6B,EAAU,2BAAKh7B,GAAN,IAAcwnE,QAASjnE,EAAE2lB,SAAW3lB,EAAE2lB,SAAS1oB,GAAK,SAyD7BwL,OAAQlJ,IAAKC,aAIzB,uBAAKrC,UAAU,oBACTgzB,GACE,uBAAKhzB,UAAU,aACX,gBAAC,KAAD,CACIA,UAAU,mBACVoK,SAAS,mBACTD,QAAS,kBAAM8oB,GAAcD,KAC7B,wBAAMhzB,UAAU,qBACfyI,EAAE,oBAIduqB,GACG,uBAAKhzB,UAAU,aACX,gBAAC,KAAD,CACIA,UAAU,iCACVoK,SAAS,mBACTD,QAAS,kBAAM8oB,GAAcD,KAC7B,wBAAMhzB,UAAU,qBACfyI,EAAE,oBAIf,uBAAKzI,UAAU,aACX,gBAAC,KAAD,CACIoK,SAAS,mBACTD,QA7EjB,WAEf,GADA8oB,GAAa,GACTmhB,EAAOh2C,OAAQ,CACf,IAAI4mE,EAAY,aAAO5wB,GACnB9xC,EAAOwnE,UACP9E,EAAeA,EAAa1iE,QAAO,SAAAC,GAAI,OAAIA,EAAKzC,KAAMwC,EAAOwnE,YAC7DxnE,EAAOynE,YACP/E,EAAeA,EAAa1iE,QAAO,SAAAC,GAAI,OAAIA,EAAKkyC,SAAUnyC,EAAOynE,cACjEznE,EAAO8nC,aACP46B,EAAeA,EAAa1iE,QAAO,SAAAC,GAAI,OAAIA,EAAKmyC,aAAcpyC,EAAO8nC,eAEzE7oB,EAAazV,WAAak5D,KAoEGv8D,EAAE,qBAKlBuqB,GACG,uBAAKhzB,UAAU,8BACX,gBAAC,KAAD,CACIF,GAAG,YACHsK,SAAS,WACTiK,YAAa5L,EAAE,kBACfqD,WAA8B,OAAlB1J,IAAKC,SAAoBkzC,EAAcE,EACnD7pC,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,MAC/BA,MAAOS,EAAOynE,UACdlhD,gBAAgB,EAChBZ,OAAQ8d,EACRz6B,OAAQlJ,IAAKC,SACbymB,iBAAiB,IAErB,gBAAC,KAAD,CACIhpB,GAAG,aACHsK,SAAS,WACTiK,YAAa5L,EAAE,mBACfqD,WAA8B,OAAlB1J,IAAKC,SAAoB4zD,EAAaI,EAClDzqD,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,MAC/BA,MAAOS,EAAO8nC,WACdniB,OAAQ8d,EACRz6B,OAAQlJ,IAAKC,SACbymB,iBAAiB,MAKjC,uBAAK9oB,UAAU,eACX,gBAAC,KAAD,CACIF,GAAG,WACHD,IAAK,SAAAomC,GAAa,OAAI1kB,EAAe0kB,GACrCn6B,WAAYsoC,EACZ7d,eAAgB,CAAE5uB,KAAM,QACxBkhB,gBAAgB,EAChB2N,aAAa,EACbC,cAAc,EACd6b,YA7HA,SAAAzvC,GACpB2mE,EAAiB3mE,EAAEmB,KAAKlE,KA6HJwL,OAAQlJ,IAAKC,UACb,gBAAC,KAAD,KACI,gBAAC,KAAD,CACIyZ,MAAM,OACNhI,SAAU,SAACX,GAAD,OA/GrB,SAACA,GAClB,OACI,gCACI,wBAAMnT,UAAU,gBAAgBmT,EAAKqB,OA4GGw1D,CAAa72D,IACjCzB,WAAYjJ,EAAE,eACd/I,MAAM,QAEV,gBAAC,KAAD,CACIoc,MAAwB,OAAjB1Z,IAAKC,SAAmB,SAAW,SAC1CqP,WAAYjJ,EAAE,kBAEd/I,MAAM,OAEV,gBAAC,KAAD,CACIoc,MAAwB,OAAjB1Z,IAAKC,SAAmB,aAAe,aAC9CqP,WAAYjJ,EAAE,mBACd/I,MAAM,QAEV,gBAAC,KAAD,CACIoc,MAAM,oBACNpK,WAAYjJ,EAAE,mBACd/I,MAAM,QAGd,gBAAC,KAAD,CAAQ0d,SAAU,CAACwZ,KAAQC,KAAMC,KAAaC,KAAQC,KAAMC,KAAMC,YblRjF+yC,GAAS,WAElB,IAAQxhE,EAAMC,cAAND,EAER,EAAsBlH,aAAiBD,GAAhCI,EAAP,oBACA,EAAgCH,YAAe,GAA/C,mBAAO6D,EAAP,KAAiBsL,EAAjB,KACA,EAA8BnP,YAAe,GAA7C,mBAAOghB,EAAP,KAAgB3J,EAAhB,KACA,EAAkCrX,WAAe,MAAjD,mBAAO2rC,EAAP,UAEA3rC,aAAgB,WACZ,IAAImqB,EAAoBhqB,EAAYR,YACpCoqB,GAAiBI,EAAkBppB,QAAO,SAACpE,GAAD,OAA0B,KAAnBA,EAAEmD,gBAAqBoB,KAAI,SAACvE,GAAD,OAAQA,EAAEkD,cACtFwX,GAAW,KACZ,CAAClX,IAEJ,IAAMquB,EAAY,CACd0H,OAAQnM,IAAkC,KAC1C+L,QAAQ,EACRE,OAAQ,GACRC,IAAK,kBAAM9mB,GAAY,IACvBgnB,KAAM,IAGV,OACI,gCACiC,OAA5Bh2B,EAAYjB,YAAuB,gBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WACzDzE,EACkB,OAAd8nC,EACI,gBAAC,IAAD,CAAU9oC,MAAM,EAAMyF,GAAG,8BAEzB,gBAAC,IAAD,CAAUzF,MAAM,EAAMyF,GAAE,oCAA+BqjC,KAE3D3qB,GACI,gCACI,gBAAC,GAAD,CAAoBziB,GAAG,OAEvB,uBAAKE,UAAU,eACf,gBAACwM,EAAA,EAAD,CAAWxM,UAAU,gBACjB,uBAAKA,UAAU,mBACX,gBAACmhB,GAAA,EAAD,KACI,uBAAKnhB,UAAU,mBACX,uBAAKA,UAAU,SACX,0BAAKyI,EAAE,mBAGf,uBAAKzI,UAAU,mBACX,uBAAKA,UAAU,WACX,gBAAC,GAAD,CAASwrB,SAAUuE,QAK/B,gBAAC5O,GAAA,EAAD,KACA,uBAAKnhB,UAAU,UACX,gBAAC,GAAD,Y,Uc9C3BkqE,I,OAAa,SAAC1qE,GACvB,IAAI2qE,EACAC,EACAC,EACAC,EAAU9qE,EAAMqG,MAAMiqB,OAAOhwB,GAEzB2I,EAAMC,cAAND,EAUF8hE,EAAoB,CACtBC,iBAAiB,EACjBC,iBAAiB,EACjBC,gBAAgB,EAChBC,gBAAgB,EAChBC,eAAgBN,GAGpB,EAAsB/oE,aAAiBD,GAAhCI,EAAP,oBACA,EAAgCH,YAAe,GAA/C,mBAAO6D,EAAP,KAAiBsL,EAAjB,KACA,EAAsCnP,aAAtC,mBAAOg0C,EAAP,KAAoBC,EAApB,KACA,EAAsCj0C,aAAtC,mBAAOk0C,EAAP,KAAoBC,EAApB,KACA,EAAkCn0C,aAAlC,mBAAOo0C,EAAP,KAAkBC,EAAlB,KACA,EAAkCr0C,aAAlC,mBAAOs0C,EAAP,KAAkBC,EAAlB,KACA,EAAkDv0C,WAAe,MAAjE,mBAAOspE,EAAP,KAA0BC,EAA1B,KACA,EAA0CvpE,WAAe,IAAzD,mBAAOwpE,EAAP,KAAsBC,EAAtB,KACA,EAAkCzpE,WAzBb,CACjBiT,KAAM,GACNigC,OAAQ,EACRC,WAAY,KACZu2B,SAAU,KACVC,aAAc,KACdC,eAAgB,OAmBpB,mBAAOC,EAAP,KAAkBC,EAAlB,KACA,EAA8B9pE,YAAe,GAA7C,mBAAOghB,EAAP,KAAgB3J,EAAhB,KACA,GAA0BrX,WAAegpE,GAAzC,qBAAOe,GAAP,MAAcC,GAAd,MACA,GAAwChqE,YAAe,GAAvD,qBAAOg/B,GAAP,MAAqBC,GAArB,MACA,GAAsCj/B,YAAe,GAArD,qBAAOquB,GAAP,MAAoBC,GAApB,MAEME,GAAY,CACd/T,MAAO,QACPmQ,aAAa,EACbK,gBAAgB,EAChBP,kBAA6BxkB,EAAe,GAAzB6iE,EAA6B,OAA0C,SAAlC5oE,GACxDsuB,QAAS,GACTrE,WAAY,GACZF,KAAM,qBACNgB,wBAAyB69C,GAAW7iE,EAAe,GAAI,SAAU/F,GACjEqqB,aAAc,GACdG,QAAS,WACP,GAAIm+C,EAAQ3qD,WAAY,CAClBmQ,IAAe,GACf,IAAI7rB,EAAOonE,EACPP,GACA7mE,EAAKinE,UAAW,EAChBjnE,EAAKknE,aAAeH,IAGpB/mE,EAAKinE,UAAW,EAChBjnE,EAAKmnE,eAAiBJ,GxCnBnC,SAAP,qCwCqBgBS,CAAqB9pE,EAAYjB,YAAauD,GAAM+E,MAAK,SAAAvD,GACvDkL,EAAYlL,EAASC,IACrBoqB,IAAe,MACd3mB,OAAM,WACP2mB,IAAe,QAIzBxD,QAAS,GACTE,UAAW,kBAAM7b,GAAY,IAC7Bgc,UAAW49C,EAAU,kBAAM9pC,IAAgB,IAAQ,IAGjDshC,GAAU,CACZpvB,IAAK,GACLC,IAAK,GACLC,MAAO03B,EAAU,kBAAMmB,MAAwB,IAG7CC,GAAc,IAAIrQ,KAAY,CAChCrxD,IAAsB,UAAMzE,0BAAvBslE,EAAiB,+HAEtBvP,QAAS,IAAIC,KACbC,aAAa,EACbr2D,QAAS,CAAC,CAAE,cAAgB,UAAhB,OAA2BzD,EAAYjB,iBAGvDc,aAAgB,WACZ,IAAM46B,EAAgB,CAClBrc,MAAO,CACH,KAAQ,CACJC,SAAU,EAAC,EAAMtX,EAAE,yBAEvB,OAAU,CACNsX,SAAU,EAAC,EAAMtX,EAAE,0BAG3BuX,gBAAiB,SAACC,EAAcC,GAC5BD,EAAaE,cAAcA,cAAcpF,YAAYmF,KAG7DmqD,EAAU,IAAIjqD,KAAc,oBAAqB+b,MAGrD56B,aAAgB,WACZ,IAAIqyB,EAAW,CACX,IAAI9kB,SAAQ,SAACC,EAASC,GAClBjC,GAAarL,EAAYjB,aAAasI,MAAK,SAAAvD,GACnCA,EAASC,GACTD,EAASwD,OAAOD,MAAK,SAAA/G,GACjB,IAAIm0C,EAAQ,GACRC,EAAQ,GACZp0C,EAAMS,KAAI,SAAAF,GACN4zC,EAAM/xC,KAAK,CAAEtE,GAAIyC,EAAKzC,GAAI0U,KAAMjS,EAAK0P,SACrCmkC,EAAMhyC,KAAK,CAAEtE,GAAIyC,EAAKzC,GAAI0U,KAAMjS,EAAK2P,YAEzCsjC,EAAeW,GACfT,EAAeU,GACfrnC,OAIJC,UAIZ,IAAIF,SAAQ,SAACC,EAASC,GAClB3B,GAAY3L,EAAYjB,aAAasI,MAAK,SAAAvD,GAClCA,EAASC,GACTD,EAASwD,OAAOD,MAAK,SAAA/G,GACjB,IAAIm0C,EAAQ,GACRC,EAAQ,GACZp0C,EAAMS,KAAI,SAAAF,GACN4zC,EAAM/xC,KAAK,CAAEtE,GAAIyC,EAAKzC,GAAI0U,KAAMjS,EAAK0P,SACrCmkC,EAAMhyC,KAAK,CAAEtE,GAAIyC,EAAKzC,GAAI0U,KAAMjS,EAAK2P,YAEzC0jC,EAAaO,GACbL,EAAaM,GACbrnC,OAIJC,WAKhBF,QAAQylB,IAAIX,GAAU7qB,MAAK,WACnBuhE,GxClHT,SAAP,qCwCmHgBqB,CAAoBjqE,EAAYjB,YAAa6pE,GAASvhE,MAAK,SAAAvD,GACnDA,EAASC,IACTD,EAASwD,OAAOD,KAAKsiE,WAItC,IAEH9pE,aAAgB,WACR4oE,IACAA,EAAgB91D,YAAc5L,EAAE,6BACrC,CAACrG,IAAKC,WAETd,aAAgB,WACZgqE,IAAS,SAAAD,GAAK,kCAEHA,GAFG,IAGNd,qBAAiCjvD,IAAhBg6B,EACjBk1B,qBAAiClvD,IAAhBk6B,EACjBi1B,oBAA8BnvD,IAAdo6B,EAChBg1B,oBAA8BpvD,IAAds6B,SAGzB,CAACN,EAAaE,EAAaE,EAAWE,IAEzCt0C,aAAgB,WACZ,IAAMwyD,EAASuX,GAAMd,iBAAmBc,GAAMb,iBAAmBa,GAAMZ,gBAAkBY,GAAMX,gBAAkBW,GAAMV,cACjH7F,EAAcn0D,SAASC,eAAe,aACxCkjD,GAAUgR,IACV3zD,aAAY2zD,GACZnsD,GAAW,MAEhB,CAAC0yD,KAEJ/pE,aAAgB,WACRghB,IACAzR,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,eAChDE,aAAYH,SAASC,eAAe,cACpCG,aAAW,CAAErJ,KAAM,iBAExB,CAAC4a,IAEJhhB,aAAgB,WACc,OAAtB6pE,EAAUH,UACVH,GAAsBM,EAAUH,UAChCX,GAAWc,EAAUtrE,IACrByrE,IAAS,SAAAD,GAAK,kCAAUA,GAAV,IAAiBV,eAAe,SACnD,CAACQ,IAEJ7pE,aAAgB,WACZ,IAAIqqE,EAAiB,GACI,OAArBf,IACIA,GAAqBO,EAAUF,aAC/BU,EAAiBR,EAAUF,aAAazoE,KAAI,SAAAF,GAAU,MAAO,CAAEN,KAAMM,EAAKstD,WAAY/vD,GAAIyC,EAAKzC,OAC1FsrE,EAAUD,iBACfS,EAAiBR,EAAUD,eAAe1oE,KAAI,SAAAF,GAAU,MAAO,CAAEN,KAAMM,EAAKiS,KAAM1U,GAAIyC,EAAKzC,SAEnGkrE,EAAiBY,KAClB,CAACf,IAEJtpE,aAAgB,WACR6oE,IACAA,EAAgBvoE,MAAQ,MAC7B,CAACkpE,IAEJ,IAKMhlC,GAAqB,SAAAljC,GACnBA,EAAEsa,SACFkuD,EAAa,2BAAKD,GAAN,mBAAkBvoE,EAAEsa,QAAQrd,GAAK+C,EAAEhB,UAIjDgqE,GAAqB,SAAAhpE,GACnBA,EAAE2lB,WACgBuiD,EAAcljE,MAAK,SAAAtF,GAAI,OAAIA,EAAKzC,KAAO+C,EAAE2lB,SAAS1oB,OAEhEkrE,GAAiB,SAAAD,GAAa,6BAAQA,GAAR,CAAuB,CAAE9oE,KAAM4oE,EAAoBhoE,EAAE2lB,SAASqnC,WAAahtD,EAAE2lB,SAAShU,KAAM1U,GAAI+C,EAAE2lB,SAAS1oB,WA4B/IihC,GAAgB,YxCpNnB,SAAP,sCwCqNQ+qC,CAAuBpqE,EAAYjB,YAAa6pE,GAASvhE,MAAK,SAAAvD,GAAQ,OAAIkL,EAAYlL,EAASC,QAG7FgmE,GAAsB,YxCnNzB,SAAP,wCwCoNQM,CAA2BrqE,EAAYjB,YAAa6pE,EAASloE,IAAKC,UAAU0G,MAAK,SAAAvD,GAAQ,OAAIA,EAASkV,UAAQ3R,MAAK,SAAA2R,GAC/G,IAAI1Q,EAAMlH,OAAO6X,IAAIC,gBAAgBF,GACjC5V,EAAI8L,SAASnR,cAAc,KAC/BqF,EAAE2R,KAAOzM,EACTlF,EAAE+8D,SAAW,gBACbjxD,SAASnM,KAAKsW,YAAYjW,GAC1BA,EAAEkW,QACFlW,EAAEoe,YACHha,MAAME,QAAQD,QAGrB,OACI,gCACI,gBAAC,GAAD,CAAoBrJ,GAAG,OACM,OAA5B4B,EAAYjB,YAAuB,gBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WACzDzE,EAAW,gBAAC,IAAD,CAAUhB,MAAM,EAAMyF,GAAG,0BAChC0Y,EAAU,uBAAKziB,GAAG,cACd,gCAEI,uBAAKE,UAAU,eACf,gBAACwM,EAAA,EAAD,CAAWxM,UAAU,gBACjB,uBAAKA,UAAU,mBACX,gBAACmhB,GAAA,EAAD,KACI,uBAAKnhB,UAAU,UACX,uBAAKA,UAAU,SACX,0BAAeyI,EAAV6hE,EAAY,mBAAwB,2BAKzD,gBAACnpD,GAAA,EAAD,KACI,uBAAKnhB,UAAU,qBACX,uBAAKA,UAAU,UACX,uBAAKA,UAAU,OACX,uBAAKA,UAAU,wBAI3B,uBAAKA,UAAU,4BACX,uBAAKA,UAAU,aACX,uBAAKA,UAAU,0CACX,uBAAKA,UAAU,uBACf,0BAAKyI,EAAE,sBAEX,wBAAM3I,GAAG,mBAAmBguB,SArD3C,SAAAjrB,GACrBA,EAAEm3B,mBAqDsC,uBAAKh6B,UAAU,WACX,uBAAKA,UAAU,QACX,uBAAKA,UAAU,SACX,6BAAQyI,EAAE,cAAV,KACA,gBAAC,KAAD,CACI3I,GAAG,OACHD,IAAK,SAAA22C,GAAO,OAAI2zB,EAAkB3zB,GAClC5wC,KAAK,OACLglB,eAAgB,CAAEiD,UAAW,OAC7BxZ,YAAa5L,EAAE,0BACf5G,MAAOupE,EAAU52D,KACjByT,OAxGxC,SAAAplB,GACZA,EAAEkB,OACFsnE,EAAa,2BAAKD,GAAN,mBAAkBvoE,EAAEkB,MAAMy5B,cAAc19B,GAAK+C,EAAEhB,cA0GnB,uBAAK7B,UAAU,WACX,uBAAKA,UAAU,SACX,6BAAQyI,EAAE,iBAAV,KACA,gBAAC,KAAD,CACI3I,GAAG,SACH8F,KAAK,SACLgG,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,MAC/BwS,YAAa5L,EAAE,6BACfqgB,iBAAiB,EACjBD,gBAAgB,EAChB/c,WAA8B,OAAlB1J,IAAKC,SAAoBkzC,EAAcE,EACnD5zC,MAAOupE,EAAU32B,OACjBxsB,OAAQ8d,MAGhB,uBAAK/lC,UAAU,SACX,yCACA,gBAAC,KAAD,CACIF,GAAG,aACH8L,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,MAC/BwS,YAAa5L,EAAE,8BACfqgB,iBAAiB,EACjBhd,WAA8B,OAAlB1J,IAAKC,SAAoBszC,EAAYE,EACjDh0C,MAAOupE,EAAU12B,WACjBzsB,OAAQ8d,OAIpB,uBAAK/lC,UAAU,QACX,uBAAKA,UAAU,SACX,yBAAIyI,EAAE,qBACN,0BACI,0BAAI,gBAAC,KAAD,CACA3I,GAAG,GACH8F,KAAK,QACLmiB,MAAOtf,EAAE,iBACTuf,SAAgC,IAAvBojD,EAAUH,SACnBhjD,OAAQ,SAAAplB,GAAC,OAAIioE,GAAqB,OAEtC,0BAAI,gBAAC,KAAD,CACAhrE,GAAG,GACH8F,KAAK,QACLmiB,MAAOtf,EAAE,gBACTuf,QAASojD,EAAUH,SACnBhjD,OAAQ,SAAAplB,GAAC,OAAIioE,GAAqB,UAKlD,uBAAK9qE,UAAU,QACX,uBAAKA,UAAU,SACX,6BAA6B,OAArB6qE,EAAgDpiE,EAApBoiE,EAAsB,gBAAqB,gBAAkB,IACjG,gBAAC,KAAD,CACI/qE,GAAG,OACHksE,MAAOjB,EACPkB,cAAc,IAEjBpB,GACG,gBAAC,KAAD,CACIhrE,IAAK,SAAAqsE,GAAY,OAAI9B,EAAkB8B,GACvCtmE,KAAK,OACLyO,YAAa5L,EAAE,6BACfqD,WAAY4/D,GACZvN,UAAU,YACVvoC,MAAO,IAAIC,KACXjqB,OAAQ,CAAE/J,MAAO,KAAMI,KAAM,cAC7B0zB,UA3JlC,SAAA9yB,GAC1BA,EAAEspE,sBAAuB,EACzB,IAAIC,EAAY,IAAIC,KAAU,aAAc,WAAYxpE,EAAEZ,MAAM,GAC5D2zB,EAAQ,IAAIC,KAEhBD,EAAmB,KAAV/yB,EAAEZ,KAAc2zB,EAAME,MAAMs2C,GAAax2C,EAElD/yB,EAAEkzB,WAAW21C,GAAa91C,IAqJkChzB,OAAQipE,GACRxN,UAAW,EACX/yD,OAAQlJ,IAAKC,SACbuoB,eAAgB,CAAEiD,UAAW,KAC7By+C,cAAe,SAAAzpE,GAAC,OAAIuG,QAAQD,MAAMtG,OAGnB,IAAtBgoE,GACG,gBAAC,KAAD,CACIhrE,IAAK,SAAAqsE,GAAY,OAAI9B,EAAkB8B,GACvCtmE,KAAK,SACLyO,YAAa5L,EAAE,4BACfqD,WAAY4/D,GACZvN,UAAU,YACVvoC,MAAO,IAAIC,KACXjqB,OAAQ,CAAE/J,MAAO,KAAMI,KAAM,QAC7B0zB,UAlK7B,SAAA9yB,GAC/BA,EAAEspE,sBAAuB,EACzB,IAAIC,EAAY,IAAIC,KAAU,OAAQ,WAAYxpE,EAAEZ,MAAM,GACtD2zB,EAAQ,IAAIC,KAEhBD,EAAmB,KAAV/yB,EAAEZ,KAAc2zB,EAAME,MAAMs2C,GAAax2C,EAElD/yB,EAAEkzB,WAAW21C,GAAa91C,IA4JkChzB,OAAQipE,GACRxN,UAAW,EACX/yD,OAAQlJ,IAAKC,SACbuoB,eAAgB,CAAEiD,UAAW,KAC7By+C,cAAe,SAAAzpE,GAAC,OAAIuG,QAAQD,MAAMtG,YAUlE,uBAAK7C,UAAU,mBACX,gBAAC,GAAD,CAAS2S,SAAUid,GAAapE,SAAUuE,KAC1C,gBAAC,GAAD,CAAQvE,SAAUs2C,QAI9B,gBAAC,KAAD,CACIhiE,GAAG,cACHoe,SAAS,EACTvC,QAAS4kB,GACTj1B,OAAQlJ,IAAKC,UAEb,2BACI,uBAAKrC,UAAU,YACX,yBAAOA,UAAU,oBACjB,uBAAKA,UAAU,gBACX,yBAAOF,GAAG,UAAU2I,EAAE,mBACtB,yBAAO3I,GAAG,eAAe2I,EAAE,+BAGnC,2BACA,uBAAKzI,UAAU,iBACX,0BAAQmK,QAAS,kBAAMq2B,IAAgB,KAAS/3B,EAAE,mBAClD,0BAAQ0B,QAAS,kBAAM42B,OAAmC,OAAjB3+B,IAAKC,SAAmB,MAAQ,cC7bpG+mE,GAAa,WACtB,IAAI7nD,EAEI9Y,EAAMC,cAAND,EAER,EAAsBlH,aAAiBD,GAAhCI,EAAP,oBACA,EAAkCH,YAAe,GAAjD,mBAAOyxB,EAAP,KAAkBC,EAAlB,KACA,EAAsC1xB,WAAe,IAArD,mBAAOg0C,EAAP,KAAoBC,EAApB,KACA,EAAsCj0C,WAAe,IAArD,mBAAOk0C,EAAP,KAAoBC,EAApB,KACA,EAAoCn0C,WAAe,IAAnD,mBAAO00D,EAAP,KAAmBoT,EAAnB,KACA,EAAoC9nE,WAAe,IAAnD,mBAAO80D,EAAP,KAAmBiT,EAAnB,KACA,EAA8B/nE,YAAe,GAA7C,mBAAOghB,EAAP,KAAgB3J,EAAhB,KACA,EAA4BrX,aAA5B,mBAAO6yC,EAAP,KAAeC,EAAf,KACA,EAA0C9yC,aAA1C,mBAAOgoE,EAAP,KAAsBC,EAAtB,KACA,EAA4BjoE,WAAe,IAA3C,mBAAOe,EAAP,KAAeg7B,EAAf,KAE+Bxf,KAAvBa,mBAERpd,aAAgB,WACZ,IAAIqyB,EAAW,CACX,IAAI9kB,SAAQ,SAACC,EAASC,GAClBjC,GAAarL,EAAYjB,aAAasI,MAAK,SAAAvD,GACnCA,EAASC,GACTD,EAASwD,OAAOD,KAAKgG,GAErBC,UAGZ,IAAIF,SAAQ,SAACC,EAASC,GAClB3B,GAAY3L,EAAYjB,aAAasI,MAAK,SAAAvD,GAClCA,EAASC,GACTD,EAASwD,OAAOD,KAAKgG,GAErBC,WAKhBF,QAAQylB,IAAIX,GAAU7qB,MAAK,SAAAkR,GACvB7Q,QAAQ1C,IAAIuT,GACZ,IAAMkyB,EAAYlyB,EAAQ,GACpBlZ,EAAWkZ,EAAQ,GAErBkyB,GACAs9B,EAAct9B,GACdprC,GACA2oE,EAAa3oE,GAEjBkzC,GAA4BvyC,EAAYjB,aAAasI,MAAK,SAAAvD,GAClDA,EAASC,IACTD,EAASwD,OAAOD,MAAK,SAAAkR,GACjB,IAAIkuD,EAAY,GAChBluD,EAAQxX,KAAI,SAAAF,GACR,IAAM8N,EAAU87B,EAAUtkC,MAAK,SAAA2rB,GAAK,OAAIA,EAAM1zB,KAAOyC,EAAKkyC,UACtDpkC,IACA9N,EAAKonE,OAASt5D,EAAQ4B,OACtB1P,EAAKqnE,OAASv5D,EAAQ6B,QAE1B,IAAM23D,EAAe9oE,EAAS8G,MAAK,SAAA2rB,GAAK,OAAIA,EAAM1zB,KAAOyC,EAAKmyC,cAC1Dm1B,IACAtnE,EAAK0zD,WAAa4T,EAAa53D,OAC/B1P,EAAK8zD,WAAawT,EAAa33D,QAEnCi2D,EAAU/jE,KAAK7B,MAEnB8xC,EAAU8zB,cAK3B,IAEH5mE,aAAgB,WACRghB,IACAzR,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,mBAChDE,aAAYH,SAASC,eAAe,kBACpCG,aAAW,CAAErJ,KAAM,iBAExB,CAAC4a,IAEJhhB,aAAgB,WACZ,IAAMwjE,EAAcn0D,SAASC,eAAe,iBACxCujC,GAAU2wB,IACV3zD,aAAY2zD,GACZnsD,GAAW,MAEhB,CAACw7B,IAEJ,IAAMq1B,EAAgB,SAACznE,GACnB,IAAIuzC,EAAc,GACdE,EAAc,GAClBzzC,EAAMS,KAAI,SAAAF,GACNgzC,EAAYnxC,KAAK,CAAEtE,GAAIyC,EAAKzC,GAAI0U,KAAMjS,EAAK0P,SAC3CwjC,EAAYrxC,KAAK,CAAEtE,GAAIyC,EAAKzC,GAAI0U,KAAMjS,EAAK2P,YAE/CsjC,EAAeD,GACfG,EAAeD,IAGbi0B,EAAe,SAAC1nE,GAClB,IAAIi0D,EAAa,GACbI,EAAa,GACjBr0D,EAAMS,KAAI,SAAAF,GACN0zD,EAAW7xD,KAAK,CAAEtE,GAAIyC,EAAKzC,GAAI0U,KAAMjS,EAAK0P,SAC1CokD,EAAWjyD,KAAK,CAAEtE,GAAIyC,EAAKzC,GAAI0U,KAAMjS,EAAK2P,YAE9Cm3D,EAAcpT,GACdqT,EAAcjT,IAMZtwB,EAAqB,SAAAljC,GACvBy6B,EAAU,2BAAKh7B,GAAN,mBAAeO,EAAEsa,QAAQrd,GAAK+C,EAAEhB,UAmC7C,OALAN,aAAgB,WACRggB,GACAA,EAAarN,YAClB,CAAC9R,IAAKC,WAGLknE,EAAgB,gBAAC,IAAD,CAAUnlE,MAAM,EAAMyF,GAAE,2CAAsC0/D,KAC1EhnD,EAAU,uBAAKziB,GAAG,kBACd,gCACI,uBAAKE,UAAS,gBAAWgzB,EAAY,SAAW,KAC5C,uBAAKhzB,UAAU,yBACX,uBAAKA,UAAU,eACX,wBAAMA,UAAU,qBAChB,yBAAIyI,EAAE,wBAEV,uBAAKzI,UAAU,eACX,uBAAKA,UAAU,mBACX,gBAAC,KAAD,CACIF,GAAG,UACHE,UAAU,UACV4L,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,QAC/BiK,WAAYsoC,EACZ//B,YAAa5L,EAAE,6BACfwf,OAzDT,SAAAplB,GACvBy6B,EAAU,2BAAKh7B,GAAN,IAAcwnE,QAASjnE,EAAE2lB,SAAW3lB,EAAE2lB,SAAS1oB,GAAK,SAyD7BwL,OAAQlJ,IAAKC,aAIzB,uBAAKrC,UAAU,oBACTgzB,GACE,uBAAKhzB,UAAU,aACX,gBAAC,KAAD,CACIA,UAAU,mBACVoK,SAAS,mBACTD,QAAS,kBAAM8oB,GAAcD,KAC7B,wBAAMhzB,UAAU,qBACfyI,EAAE,oBAIduqB,GACG,uBAAKhzB,UAAU,aACX,gBAAC,KAAD,CACIA,UAAU,iCACVoK,SAAS,mBACTD,QAAS,kBAAM8oB,GAAcD,KAC7B,wBAAMhzB,UAAU,qBACfyI,EAAE,oBAIf,uBAAKzI,UAAU,aACX,gBAAC,KAAD,CACIoK,SAAS,mBACTD,QA7EjB,WAEf,GADA8oB,GAAa,GACTmhB,EAAOh2C,OAAQ,CACf,IAAI4mE,EAAY,aAAO5wB,GACnB9xC,EAAOwnE,UACP9E,EAAeA,EAAa1iE,QAAO,SAAAC,GAAI,OAAIA,EAAKzC,KAAMwC,EAAOwnE,YAC7DxnE,EAAOynE,YACP/E,EAAeA,EAAa1iE,QAAO,SAAAC,GAAI,OAAIA,EAAKkyC,SAAUnyC,EAAOynE,cACjEznE,EAAO8nC,aACP46B,EAAeA,EAAa1iE,QAAO,SAAAC,GAAI,OAAIA,EAAKmyC,aAAcpyC,EAAO8nC,eAEzE7oB,EAAazV,WAAak5D,KAoEGv8D,EAAE,qBAKlBuqB,GACG,uBAAKhzB,UAAU,8BACX,gBAAC,KAAD,CACIF,GAAG,YACHsK,SAAS,WACTiK,YAAa5L,EAAE,kBACfqD,WAA8B,OAAlB1J,IAAKC,SAAoBkzC,EAAcE,EACnD7pC,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,MAC/BA,MAAOS,EAAOynE,UACdlhD,gBAAgB,EAChBZ,OAAQ8d,EACRz6B,OAAQlJ,IAAKC,SACbymB,iBAAiB,IAErB,gBAAC,KAAD,CACIhpB,GAAG,aACHsK,SAAS,WACTiK,YAAa5L,EAAE,mBACfqD,WAA8B,OAAlB1J,IAAKC,SAAoB4zD,EAAaI,EAClDzqD,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,MAC/BA,MAAOS,EAAO8nC,WACdniB,OAAQ8d,EACRz6B,OAAQlJ,IAAKC,SACbymB,iBAAiB,MAKjC,uBAAK9oB,UAAU,eACX,gBAAC,KAAD,CACIF,GAAG,WACHD,IAAK,SAAAomC,GAAa,OAAI1kB,EAAe0kB,GACrCn6B,WAAYsoC,EACZ7d,eAAgB,CAAE5uB,KAAM,QACxBkhB,gBAAgB,EAChB2N,aAAa,EACbC,cAAc,EACd6b,YA7HA,SAAAzvC,GACpB2mE,EAAiB3mE,EAAEmB,KAAKlE,KA6HJwL,OAAQlJ,IAAKC,UACb,gBAAC,KAAD,KACI,gBAAC,KAAD,CACIyZ,MAAM,OACNhI,SAAU,SAACX,GAAD,OA/GrB,SAACA,GAClB,OACI,gCACI,wBAAMnT,UAAU,gBAAgBmT,EAAKqB,OA4GGw1D,CAAa72D,IACjCzB,WAAYjJ,EAAE,eACd/I,MAAM,QAEV,gBAAC,KAAD,CACIoc,MAAwB,OAAjB1Z,IAAKC,SAAmB,SAAW,SAC1CqP,WAAYjJ,EAAE,kBAEd/I,MAAM,OAEV,gBAAC,KAAD,CACIoc,MAAwB,OAAjB1Z,IAAKC,SAAmB,aAAe,aAC9CqP,WAAYjJ,EAAE,mBACd/I,MAAM,QAEV,gBAAC,KAAD,CACIoc,MAAM,oBACNpK,WAAYjJ,EAAE,mBACd/I,MAAM,QAGd,gBAAC,KAAD,CAAQ0d,SAAU,CAACwZ,KAAQC,KAAMC,KAAaC,KAAQC,KAAMC,KAAMC,YdlRjFq1C,GAAgB,WAEzB,IAAQ9jE,EAAMC,cAAND,EAER,EAAsBlH,aAAiBD,GAAhCI,EAAP,oBACA,EAAgCH,YAAe,GAA/C,mBAAO6D,EAAP,KAAiBsL,EAAjB,KACA,EAA8BnP,YAAe,GAA7C,mBAAOghB,EAAP,KAAgB3J,EAAhB,KACA,EAAkCrX,WAAe,MAAjD,mBAAO2rC,EAAP,UAEA3rC,aAAgB,WACZ,IAAImqB,EAAoBhqB,EAAYR,YACpCoqB,GAAiBI,EAAkBppB,QAAO,SAACpE,GAAD,OAA0B,KAAnBA,EAAEmD,gBAAqBoB,KAAI,SAACvE,GAAD,OAAQA,EAAEkD,cACtFwX,GAAW,KACZ,CAAClX,IAEJ,IAAMquB,EAAY,CACd0H,OAAQnM,IAAkC,KAC1C+L,QAAQ,EACRE,OAAQ,GACRC,IAAK,kBAAM9mB,GAAY,IACvBgnB,KAAM,IAGV,OACI,gCACiC,OAA5Bh2B,EAAYjB,YAAuB,gBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WACzDzE,EACkB,OAAd8nC,EACI,gBAAC,IAAD,CAAU9oC,MAAM,EAAMyF,GAAG,qCAEzB,gBAAC,IAAD,CAAUzF,MAAM,EAAMyF,GAAE,2CAAsCqjC,KAElE3qB,GACA,gCACI,gBAAC,GAAD,CAAoBziB,GAAG,OAEvB,uBAAKE,UAAU,eACf,gBAACwM,EAAA,EAAD,CAAWxM,UAAU,gBACjB,uBAAKA,UAAU,mBACX,gBAACmhB,GAAA,EAAD,KACI,uBAAKnhB,UAAU,mBACX,uBAAKA,UAAU,SACX,0BAAKyI,EAAE,0BAGf,uBAAKzI,UAAU,mBACX,uBAAKA,UAAU,WACX,gBAAC,GAAD,CAASwrB,SAAUuE,QAKnC,gBAAC5O,GAAA,EAAD,KACI,uBAAKnhB,UAAU,UACX,gBAAC,GAAD,Ye9CvBwsE,I,OAAoB,SAAChtE,GAC9B,IAAI2qE,EACAC,EACAC,EACAC,EAAU9qE,EAAMqG,MAAMiqB,OAAOhwB,GAEzB2I,EAAMC,cAAND,EAUF8hE,EAAoB,CACtBC,iBAAiB,EACjBC,iBAAiB,EACjBC,gBAAgB,EAChBC,gBAAgB,EAChBC,eAAgBN,GAGpB,EAAsB/oE,aAAiBD,GAAhCI,EAAP,oBACA,EAAgCH,YAAe,GAA/C,mBAAO6D,EAAP,KAAiBsL,EAAjB,KACA,EAAsCnP,aAAtC,mBAAOg0C,EAAP,KAAoBC,EAApB,KACA,EAAsCj0C,aAAtC,mBAAOk0C,EAAP,KAAoBC,EAApB,KACA,EAAkCn0C,aAAlC,mBAAOo0C,EAAP,KAAkBC,EAAlB,KACA,EAAkCr0C,aAAlC,mBAAOs0C,EAAP,KAAkBC,EAAlB,KACA,EAAkDv0C,WAAe,MAAjE,mBAAOspE,EAAP,KAA0BC,EAA1B,KACA,EAA0CvpE,WAAe,IAAzD,mBAAOwpE,EAAP,KAAsBC,EAAtB,KACA,EAAkCzpE,WAzBb,CACjBiT,KAAM,GACNigC,OAAQ,EACRC,WAAY,KACZu2B,SAAU,KACVC,aAAc,KACdC,eAAgB,OAmBpB,mBAAOC,EAAP,KAAkBC,EAAlB,KACA,EAA8B9pE,YAAe,GAA7C,mBAAOghB,EAAP,KAAgB3J,EAAhB,KACA,GAA0BrX,WAAegpE,GAAzC,qBAAOe,GAAP,MAAcC,GAAd,MACA,GAAwChqE,YAAe,GAAvD,qBAAOg/B,GAAP,MAAqBC,GAArB,MACA,GAAsCj/B,YAAe,GAArD,qBAAOquB,GAAP,MAAoBC,GAApB,MAEME,GAAY,CACd/T,MAAO,QACPmQ,aAAa,EACbV,KAAM,kBACNe,gBAAgB,EAChBP,kBAA6BxkB,EAAe,GAAzB6iE,EAA6B,OAA0C,SAAlC5oE,GACxDsuB,QAAS,GACTrE,WAAY,GACZI,aAAc,GACdU,wBAAyB69C,GAAW7iE,EAAe,GAAI,SAAU/F,GACjEwqB,QAAS,WACP,GAAIm+C,EAAQ3qD,WAAY,CAClBmQ,IAAe,GACf,IAAI7rB,EAAOonE,EACPP,GACA7mE,EAAKinE,UAAW,EAChBjnE,EAAKknE,aAAeH,IAGpB/mE,EAAKinE,UAAW,EAChBjnE,EAAKmnE,eAAiBJ,GzCnBnC,SAAP,qCyCqBgBS,CAAqB9pE,EAAYjB,YAAauD,GAAM+E,MAAK,SAAAvD,GACvDkL,EAAYlL,EAASC,IACrBoqB,IAAe,MACd3mB,OAAM,WACP2mB,IAAe,QAIzBxD,QAAS,GACTE,UAAW,kBAAM7b,GAAY,IAC7Bgc,UAAW49C,EAAU,kBAAM9pC,IAAgB,IAAQ,IAGjDshC,GAAU,CACZpvB,IAAK,GACLC,IAAK,GACLC,MAAO03B,EAAU,kBAAMmB,MAAwB,IAG7CC,GAAc,IAAIrQ,KAAY,CAChCrxD,IAAsB,UAAMzE,0BAAvBslE,EAAiB,uIAEtBvP,QAAS,IAAIC,KACbC,aAAa,EACbr2D,QAAS,CAAC,CAAE,cAAgB,UAAhB,OAA2BzD,EAAYjB,iBAGvDc,aAAgB,WACZ,IAAM46B,EAAgB,CAClBrc,MAAO,CACH,KAAQ,CACJC,SAAU,EAAC,EAAMtX,EAAE,yBAEvB,OAAU,CACNsX,SAAU,EAAC,EAAMtX,EAAE,0BAG3BuX,gBAAiB,SAACC,EAAcC,GAC5BD,EAAaE,cAAcA,cAAcpF,YAAYmF,KAG7DmqD,EAAU,IAAIjqD,KAAc,oBAAqB+b,MAGrD56B,aAAgB,WACZ,IAAIqyB,EAAW,CACX,IAAI9kB,SAAQ,SAACC,EAASC,GAClBjC,GAAarL,EAAYjB,aAAasI,MAAK,SAAAvD,GACnCA,EAASC,GACTD,EAASwD,OAAOD,MAAK,SAAA/G,GACjB,IAAIm0C,EAAQ,GACRC,EAAQ,GACZp0C,EAAMS,KAAI,SAAAF,GACN4zC,EAAM/xC,KAAK,CAAEtE,GAAIyC,EAAKzC,GAAI0U,KAAMjS,EAAK0P,SACrCmkC,EAAMhyC,KAAK,CAAEtE,GAAIyC,EAAKzC,GAAI0U,KAAMjS,EAAK2P,YAEzCsjC,EAAeW,GACfT,EAAeU,GACfrnC,OAIJC,UAIZ,IAAIF,SAAQ,SAACC,EAASC,GAClB3B,GAAY3L,EAAYjB,aAAasI,MAAK,SAAAvD,GAClCA,EAASC,GACTD,EAASwD,OAAOD,MAAK,SAAA/G,GACjB,IAAIm0C,EAAQ,GACRC,EAAQ,GACZp0C,EAAMS,KAAI,SAAAF,GACN4zC,EAAM/xC,KAAK,CAAEtE,GAAIyC,EAAKzC,GAAI0U,KAAMjS,EAAK0P,SACrCmkC,EAAMhyC,KAAK,CAAEtE,GAAIyC,EAAKzC,GAAI0U,KAAMjS,EAAK2P,YAEzC0jC,EAAaO,GACbL,EAAaM,GACbrnC,OAIJC,WAKhBF,QAAQylB,IAAIX,GAAU7qB,MAAK,WACnBuhE,GzClHT,SAAP,qCyCmHgBqB,CAAoBjqE,EAAYjB,YAAa6pE,GAASvhE,MAAK,SAAAvD,GACnDA,EAASC,IACTD,EAASwD,OAAOD,KAAKsiE,WAItC,IAEH9pE,aAAgB,WACR4oE,IACAA,EAAgB91D,YAAc5L,EAAE,6BACrC,CAACrG,IAAKC,WAETd,aAAgB,WACZgqE,IAAS,SAAAD,GAAK,kCAEHA,GAFG,IAGNd,qBAAiCjvD,IAAhBg6B,EACjBk1B,qBAAiClvD,IAAhBk6B,EACjBi1B,oBAA8BnvD,IAAdo6B,EAChBg1B,oBAA8BpvD,IAAds6B,SAGzB,CAACN,EAAaE,EAAaE,EAAWE,IAEzCt0C,aAAgB,WACZ,IAAMwyD,EAASuX,GAAMd,iBAAmBc,GAAMb,iBAAmBa,GAAMZ,gBAAkBY,GAAMX,gBAAkBW,GAAMV,cACjH7F,EAAcn0D,SAASC,eAAe,aACxCkjD,GAAUgR,IACV3zD,aAAY2zD,GACZnsD,GAAW,MAEhB,CAAC0yD,KAEJ/pE,aAAgB,WACRghB,IACAzR,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,eAChDE,aAAYH,SAASC,eAAe,cACpCG,aAAW,CAAErJ,KAAM,iBAExB,CAAC4a,IAEJhhB,aAAgB,WACc,OAAtB6pE,EAAUH,UACVH,GAAsBM,EAAUH,UAChCX,GAAWc,EAAUtrE,IACrByrE,IAAS,SAAAD,GAAK,kCAAUA,GAAV,IAAiBV,eAAe,SACnD,CAACQ,IAEJ7pE,aAAgB,WACZ,IAAIqqE,EAAiB,GACI,OAArBf,IACIA,GAAqBO,EAAUF,aAC/BU,EAAiBR,EAAUF,aAAazoE,KAAI,SAAAF,GAAU,MAAO,CAAEN,KAAMM,EAAKiS,KAAM1U,GAAIyC,EAAKzC,OACpFsrE,EAAUD,iBACfS,EAAiBR,EAAUD,eAAe1oE,KAAI,SAAAF,GAAU,MAAO,CAAEN,KAAMM,EAAKiS,KAAM1U,GAAIyC,EAAKzC,SAEnGkrE,EAAiBY,KAClB,CAACf,IAEJtpE,aAAgB,WACR6oE,IACAA,EAAgBvoE,MAAQ,MAC7B,CAACkpE,IAEJ,IAKMhlC,GAAqB,SAAAljC,GACnBA,EAAEsa,SACFkuD,EAAa,2BAAKD,GAAN,mBAAkBvoE,EAAEsa,QAAQrd,GAAK+C,EAAEhB,UAIjDgqE,GAAqB,SAAAhpE,GACnBA,EAAE2lB,WACgBuiD,EAAcljE,MAAK,SAAAtF,GAAI,OAAIA,EAAKzC,KAAO+C,EAAE2lB,SAAS1oB,OAEhEkrE,GAAiB,SAAAD,GAAa,6BAAQA,GAAR,CAAuB,CAAE9oE,KAA0BY,EAAE2lB,SAAShU,KAAwB1U,GAAI+C,EAAE2lB,SAAS1oB,WA4BzIihC,GAAgB,YzCpNnB,SAAP,sCyCqNQ+qC,CAAuBpqE,EAAYjB,YAAa6pE,GAASvhE,MAAK,SAAAvD,GAAQ,OAAIkL,EAAYlL,EAASC,QAG7FgmE,GAAsB,YzCnNzB,SAAP,wCyCoNQM,CAA2BrqE,EAAYjB,YAAa6pE,EAASloE,IAAKC,UAAU0G,MAAK,SAAAvD,GAAQ,OAAIA,EAASkV,UAAQ3R,MAAK,SAAA2R,GAC/G,IAAI1Q,EAAMlH,OAAO6X,IAAIC,gBAAgBF,GACjC5V,EAAI8L,SAASnR,cAAc,KAC/BqF,EAAE2R,KAAOzM,EACTlF,EAAE+8D,SAAW,gBACbjxD,SAASnM,KAAKsW,YAAYjW,GAC1BA,EAAEkW,QACFlW,EAAEoe,YACHha,MAAME,QAAQD,QAGrB,OACI,gCACI,gBAAC,GAAD,CAAoBrJ,GAAG,OACM,OAA5B4B,EAAYjB,YAAuB,gBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WACzDzE,EAAW,gBAAC,IAAD,CAAUhB,MAAM,EAAMyF,GAAG,iCAChC0Y,EAAU,uBAAKziB,GAAG,cACd,gCAEI,uBAAKE,UAAU,eACf,gBAACwM,EAAA,EAAD,CAAWxM,UAAU,gBACjB,uBAAKA,UAAU,mBACX,gBAACmhB,GAAA,EAAD,KACI,uBAAKnhB,UAAU,UACX,uBAAKA,UAAU,SACX,0BAAeyI,EAAV6hE,EAAY,mBAAwB,2BAKzD,gBAACnpD,GAAA,EAAD,KACI,uBAAKnhB,UAAU,qBACX,uBAAKA,UAAU,UACX,uBAAKA,UAAU,OACX,uBAAKA,UAAU,wBAI3B,uBAAKA,UAAU,4BACX,uBAAKA,UAAU,aACX,uBAAKA,UAAU,0CACX,uBAAKA,UAAU,uBACf,0BAAKyI,EAAE,sBAEX,wBAAM3I,GAAG,mBAAmBguB,SArD3C,SAAAjrB,GACrBA,EAAEm3B,mBAqDsC,uBAAKh6B,UAAU,WACX,uBAAKA,UAAU,QACX,uBAAKA,UAAU,SACX,6BAAQyI,EAAE,cAAV,KACA,gBAAC,KAAD,CACI3I,GAAG,OACHD,IAAK,SAAA22C,GAAO,OAAI2zB,EAAkB3zB,GAClC5wC,KAAK,OACLglB,eAAgB,CAAEiD,UAAW,OAC7BxZ,YAAa5L,EAAE,0BACf5G,MAAOupE,EAAU52D,KACjByT,OAxGxC,SAAAplB,GACZA,EAAEkB,OACFsnE,EAAa,2BAAKD,GAAN,mBAAkBvoE,EAAEkB,MAAMy5B,cAAc19B,GAAK+C,EAAEhB,cA0GnB,uBAAK7B,UAAU,WACX,uBAAKA,UAAU,SACX,6BAAQyI,EAAE,iBAAV,KACA,gBAAC,KAAD,CACI3I,GAAG,SACH8F,KAAK,SACLgG,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,MAC/BwS,YAAa5L,EAAE,6BACfqgB,iBAAiB,EACjBD,gBAAgB,EAChB/c,WAA8B,OAAlB1J,IAAKC,SAAoBkzC,EAAcE,EACnD5zC,MAAOupE,EAAU32B,OACjBxsB,OAAQ8d,MAGhB,uBAAK/lC,UAAU,SACX,yCACA,gBAAC,KAAD,CACIF,GAAG,aACH8L,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,MAC/BwS,YAAa5L,EAAE,8BACfqgB,iBAAiB,EACjBhd,WAA8B,OAAlB1J,IAAKC,SAAoBszC,EAAYE,EACjDh0C,MAAOupE,EAAU12B,WACjBzsB,OAAQ8d,OAIpB,uBAAK/lC,UAAU,QACX,uBAAKA,UAAU,SACX,yBAAIyI,EAAE,qBACN,0BACI,0BAAI,gBAAC,KAAD,CACA3I,GAAG,GACH8F,KAAK,QACLmiB,MAAOtf,EAAE,iBACTuf,SAAgC,IAAvBojD,EAAUH,SACnBhjD,OAAQ,SAAAplB,GAAC,OAAIioE,GAAqB,OAEtC,0BAAI,gBAAC,KAAD,CACAhrE,GAAG,GACH8F,KAAK,QACLmiB,MAAOtf,EAAE,gBACTuf,QAASojD,EAAUH,SACnBhjD,OAAQ,SAAAplB,GAAC,OAAIioE,GAAqB,UAKlD,uBAAK9qE,UAAU,QACX,uBAAKA,UAAU,SACX,6BAA6B,OAArB6qE,EAAgDpiE,EAApBoiE,EAAsB,gBAAqB,gBAAkB,IACjG,gBAAC,KAAD,CACI/qE,GAAG,OACHksE,MAAOjB,EACPkB,cAAc,IAEjBpB,GACG,gBAAC,KAAD,CACIhrE,IAAK,SAAAqsE,GAAY,OAAI9B,EAAkB8B,GACvCtmE,KAAK,OACLyO,YAAa5L,EAAE,6BACfqD,WAAY4/D,GACZvN,UAAU,YACVvoC,MAAO,IAAIC,KACXjqB,OAAQ,CAAE/J,MAAO,KAAMI,KAAM,QAC7B0zB,UA3JlC,SAAA9yB,GAC1BA,EAAEspE,sBAAuB,EACzB,IAAIC,EAAY,IAAIC,KAAU,OAAQ,WAAYxpE,EAAEZ,MAAM,GACtD2zB,EAAQ,IAAIC,KAEhBD,EAAmB,KAAV/yB,EAAEZ,KAAc2zB,EAAME,MAAMs2C,GAAax2C,EAElD/yB,EAAEkzB,WAAW21C,GAAa91C,IAqJkChzB,OAAQipE,GACRxN,UAAW,EACX/yD,OAAQlJ,IAAKC,SACbuoB,eAAgB,CAAEiD,UAAW,KAC7By+C,cAAe,SAAAzpE,GAAC,OAAIuG,QAAQD,MAAMtG,OAGnB,IAAtBgoE,GACG,gBAAC,KAAD,CACIhrE,IAAK,SAAAqsE,GAAY,OAAI9B,EAAkB8B,GACvCtmE,KAAK,SACLyO,YAAa5L,EAAE,4BACfqD,WAAY4/D,GACZvN,UAAU,YACVvoC,MAAO,IAAIC,KACXjqB,OAAQ,CAAE/J,MAAO,KAAMI,KAAM,QAC7B0zB,UAlK7B,SAAA9yB,GAC/BA,EAAEspE,sBAAuB,EACzB,IAAIC,EAAY,IAAIC,KAAU,OAAQ,WAAYxpE,EAAEZ,MAAM,GACtD2zB,EAAQ,IAAIC,KAEhBD,EAAmB,KAAV/yB,EAAEZ,KAAc2zB,EAAME,MAAMs2C,GAAax2C,EAElD/yB,EAAEkzB,WAAW21C,GAAa91C,IA4JkChzB,OAAQipE,GACRxN,UAAW,EACX/yD,OAAQlJ,IAAKC,SACbuoB,eAAgB,CAAEiD,UAAW,KAC7By+C,cAAe,SAAAzpE,GAAC,OAAIuG,QAAQD,MAAMtG,YAUlE,uBAAK7C,UAAU,mBACX,gBAAC,GAAD,CAAS2S,SAAUid,GAAapE,SAAUuE,KAC1C,gBAAC,GAAD,CAAQvE,SAAUs2C,QAI9B,gBAAC,KAAD,CACIhiE,GAAG,cACHoe,SAAS,EACTvC,QAAS4kB,GACTj1B,OAAQlJ,IAAKC,UAEb,2BACI,uBAAKrC,UAAU,YACX,yBAAOA,UAAU,oBACjB,uBAAKA,UAAU,gBACX,yBAAOF,GAAG,UAAU2I,EAAE,mBACtB,yBAAO3I,GAAG,eAAe2I,EAAE,+BAGnC,2BACA,uBAAKzI,UAAU,iBACX,0BAAQmK,QAAS,kBAAMq2B,IAAgB,KAAS/3B,EAAE,mBAClD,0BAAQ0B,QAAS,kBAAM42B,OAAmC,OAAjB3+B,IAAKC,SAAmB,MAAQ,cC7bpGoqE,GAAS,SAACjtE,GAEnB,IAAQiJ,EAAMC,cAAND,EACAikE,EAAwBltE,EAAxBktE,MAAOnrD,EAAiB/hB,EAAjB+hB,aAEf,EAAsBhgB,aAAiBD,GAAhCI,EAAP,oBACA,EAAkCH,YAAe,GAAjD,mBAAOyxB,EAAP,KAAkBC,EAAlB,KACA,EAA8B1xB,YAAe,GAA7C,mBAAOghB,EAAP,KAAgB3J,EAAhB,KACA,EAA0CrX,WAAe,IAAzD,mBAAOgwB,EAAP,KAAsBC,EAAtB,KACA,EAAwDjwB,WAAe,IAAvE,mBAAO0wB,EAAP,KAA6BC,EAA7B,KACA,EAAkD3wB,WAAe,IAAjE,mBAAOswB,EAAP,KAA0BC,EAA1B,KACA,EAAgDvwB,WAAe,IAA/D,mBAAOoxB,EAAP,KAAyBC,EAAzB,KACA,EAA8BrxB,WAAe,MAA7C,mBAAOorE,EAAP,KAAgBC,EAAhB,KACA,EAA0BrrE,WAAe,MAAzC,mBAAOsrE,EAAP,KAAcC,EAAd,KACA,EAA8CvrE,WAAe,CAAEypC,OAAQ,EAAGl5B,OAAQ,IAAlF,mBAAOi7D,EAAP,KAAwBC,EAAxB,KACM3hC,EAAiB9pC,WACQuc,KAAvBa,mBAERpd,aAAgB,WACRghB,IACAzR,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,YAChDE,aAAYH,SAASC,eAAe,WACpCG,aAAW,CAAErJ,KAAM,iBAExB,CAAC4a,IAEJhhB,aAAgB,WACRggB,GACAA,EAAarN,YAClB,CAAC9R,IAAKC,WAETd,aAAgB,WAAM,4CAElB,kDAAAuD,EAAA,sEACuB6J,GAAMjN,EAAYjB,aAChCsI,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAJhC,8BAO+BwE,GAAoB9L,EAAYjB,aACtDsI,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAVhC,cAOQwiC,EAPR,gBAa2Bz+B,GAAarL,EAAYjB,aAC3CsI,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAhBhC,cAaQgrB,EAbR,iBAmB0B3mB,GAAY3L,EAAYjB,aACzCsI,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAtBhC,eAmBQme,EAnBR,OAyBUskB,EAAgB/pC,EAAYX,SAAZ,iCAAiDW,EAAYX,SAASjB,IAAO,GAzBvG,UA0B4BwpC,GAAc5nC,EAAYjB,YAAa,EAAGgrC,GAC7D1iC,MAAK,SAAAvD,GAAc,GAAIA,EAASC,GAAM,OAAOD,EAASwD,UA3B/D,SA0BQ0iC,EA1BR,UA8BMA,EAAcA,EAAYppC,QAAO,SAAAC,GAE/B,OADAA,EAAKopC,UAAYppC,EAAKopC,UAA6B,OAAjBvpC,IAAKC,SAAmB,YAAc,UAA6B,OAAjBD,IAAKC,SAAmB,YAAc,WACnHE,KAGPqqE,EAAWlhC,GACXohC,EAASphC,IAGTE,EAvCR,UAuCmBF,SAvCnB,aAuCmB,EAAajpC,KAAI,SAAAF,GAC9B,MAAO,CAAEiS,KAAMjS,EAAKspC,YAGhBC,EAAM,IAAIpW,IACVhiB,EAAWk4B,EAAStpC,QAAO,SAAAC,GAC/B,IAAMwpC,EAAYD,EAAIE,IAAJ,OAAQzpC,QAAR,IAAQA,OAAR,EAAQA,EAAMiS,MAGhC,OAFAs3B,EAAIG,IAAJ,OAAQ1pC,QAAR,IAAQA,OAAR,EAAQA,EAAMiS,OAENu3B,KAGJG,EAnDV,uBAmDiCV,GAnDjC,CAmDiD,CAAE1rC,IAAM,EAAGoS,OAAQ,MAAOD,OAAQ,WACzEk6B,EApDV,uBAoD0BnY,GApD1B,CAoDsC,CAAEl0B,IAAM,EAAGoS,OAAQ,MAAOD,OAAQ,WAC9Doe,EArDV,uBAqD4BlJ,GArD5B,CAqDuC,CAAErnB,IAAM,EAAGoS,OAAQ,MAAOD,OAAQ,WAErEuf,EAAiB9d,GACjBwe,EAAwBga,GACxBpa,EAAqBqa,GACrBvZ,EAAoBvC,GAEpBjf,aAAYR,SAASC,eAAe,WACpC+H,GAAW,GA7Df,6CAFkB,sBAClBA,GAAW,GADO,mCAiElBvH,KACD,CAACjP,IAAKC,WAETd,aAAgB,WACToxB,EAAiBv0B,SAAWmkB,IACxB7gB,EAAYX,SACXsqC,EAAe13B,QAAQ9R,MAAQH,EAAYX,SAASjB,GAEpDmzB,GAAa,MAEvB,CAACN,EAAkBpQ,IAErB,IAAM0qD,EAAW,CAAC,CACdhrE,KAAuB,OAAjBG,IAAKC,SAAmB,YAAc,UAC5CR,OAAO,GACR,CACCI,KAAuB,OAAjBG,IAAKC,SAAmB,YAAc,WAC5CR,OAAO,GACR,CACDI,KAAuB,OAAjBG,IAAKC,SAAmB,QAAU,MACxCR,MAAO,OAIHqrE,EAAU,uCAAG,4BAAApoE,EAAA,0DACXioE,EADW,gCAEatjC,GAAsB/nC,EAAYjB,YAAassE,EAAiB,GACnFhkE,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UALjB,OASXmkE,GAPIA,EAFO,QASe7qE,QAAO,SAAAC,GAE7B,OADAA,EAAKopC,UAAYppC,EAAKopC,UAA6B,OAAjBvpC,IAAKC,SAAmB,YAAc,UAA6B,OAAjBD,IAAKC,SAAmB,YAAc,WACnHE,KAIXqqE,EAAWO,GAEXl6C,GAAa,GAjBF,uBAmBX25C,EAAWC,GAnBA,4CAAH,qDA4ChB,OACI,gCACKtqD,EAAU,uBAAKziB,GAAG,WACf,gCACI,uBAAKE,UAAS,gBAAWgzB,EAAY,SAAW,KAC5C,uBAAKhzB,UAAU,yBACX,uBAAKA,UAAU,eACX,wBAAMA,UAAU,qBAChB,yBAAIyI,EAAE,oBAEV,uBAAKzI,UAAU,eACX,uBAAKA,UAAU,mBACX,gBAAC,KAAD,CACIA,UAAU,UACVqU,YAAa5L,EAAE,yBACf6C,OAAQlJ,IAAKC,SACbR,MAAOkrE,GAAmBA,EAAgB1iC,SAAW0iC,EAAgB1iC,SAAW,GAChFviB,KAAM,SAACjlB,GAAD,OAAOmqE,GACT,SAAAD,GAAe,kCACRA,GADQ,IAEX1iC,SAAUxnC,EAAEhB,gBAMhC,uBAAK7B,UAAU,oBACTgzB,GACE,uBAAKhzB,UAAU,aACX,gBAAC,KAAD,CACIA,UAAU,mBACVoK,SAAS,mBACTD,QAAS,kBAAM8oB,GAAcD,KAC7B,wBAAMhzB,UAAU,qBACfyI,EAAE,gBAIduqB,GACG,uBAAKhzB,UAAU,aACX,gBAAC,KAAD,CACIA,UAAU,iCACVoK,SAAS,mBACTD,QAAS,kBAAM8oB,GAAcD,KAC7B,wBAAMhzB,UAAU,qBACfyI,EAAE,gBAIf,uBAAKzI,UAAU,aACX,gBAAC,KAAD,CAAiBoK,SAAS,mBAEtBD,QAAS,kBAAM+iE,MAEdzkE,EAAE,iBAKlBuqB,GACG,uBAAKhzB,UAAU,8BACX,gBAAC,KAAD,CACIF,GAAG,OACHsK,SAAS,WACTiK,YAAa5L,EAAE,WACf6C,OAAQlJ,IAAKC,SACb4lB,OAAQ,SAACplB,GAAD,OAAOmqE,GACX,SAAAD,GAAe,kCACRA,GADQ,IAEXvgC,WAAY3pC,EAAEhB,OAASgB,EAAEhB,MAAM,GAAGyH,cAAckX,MAAM,KAAK,GAC3DksB,QAAS7pC,EAAEhB,OAASgB,EAAEhB,MAAM,GAAGyH,cAAckX,MAAM,KAAK,WAIpE,gBAAC,KAAD,CACI1gB,GAAG,QACH8sC,UAAU,EACVxiC,SAAS,WACTiK,YAAa5L,EAAE,aACfqD,WAAYylB,EACZ3lB,OAAQ,CAAE/J,MAAO,QAEjBomB,OAAQ,SAACplB,GAAD,OAAOmqE,GACX,SAAAD,GAAe,kCACRA,GADQ,IAEXlgC,MAAOhqC,EAAEhB,cAIrB,gBAAC,KAAD,CACI/B,GAAG,cACHsK,SAAS,WACTiK,YAAa5L,EAAE,oBACfqgB,iBAAe,EACfhd,WAAYmmB,EACZrmB,OAAQ,CAAE3J,KAAuB,OAAjBG,IAAKC,SAAmB,SAAW,SAAUR,MAAO,MACpEyJ,OAAQlJ,IAAKC,SACb4lB,OAAQ,SAACplB,GAAD,OAAOmqE,GACX,SAAAD,GAAe,kCACRA,GADQ,IAEXjgC,cAAejqC,EAAEhB,cAK7B,gBAAC,KAAD,CACI/B,GAAG,SACHsK,SAAS,WACTiK,YAAa5L,EAAE,cACfqgB,iBAAe,EACfhd,WAAY+lB,EACZjmB,OAAQ,CAAE3J,KAAwB,OAAjBG,IAAKC,SAAoB,SAAW,SAAUR,MAAO,MACtEyJ,OAAQlJ,IAAKC,SACbwmB,gBAAgB,EAEhBhnB,MAAOkrE,EAAkBA,EAAgBj7D,OAAS,GAClDmW,OAAQ,SAACplB,GAAD,OAAOmqE,GACX,SAAAD,GAAe,kCACRA,GADQ,IAEXj7D,OAAQjP,EAAEhB,cAItB,gBAAC,KAAD,CACI/B,GAAG,WACHD,IAAK,SAAAktC,GAAY,OAAI1B,EAAe13B,QAAUo5B,GAC9C3iC,SAAS,WACTiK,YAAa5L,EAAE,eACfqgB,iBAAe,EACfhd,WAAY6mB,EACZ/mB,OAAQ,CAAE3J,KAAwB,OAAjBG,IAAKC,SAAoB,SAAW,SAAUR,MAAO,MACtEA,MAAOkrE,EAAkBA,EAAgB/6D,WAAatQ,EAAYX,SAAUW,EAAYX,SAASjB,GAAK,GACtGwL,OAAQlJ,IAAKC,SACb4lB,OAAQ,SAACplB,GAAD,OAAOmqE,GACX,SAAAD,GAAe,kCACRA,GADQ,IAEX/6D,WAAYnP,EAAEhB,cAI1B,gBAAC,KAAD,CACI/B,GAAG,SACHsK,SAAS,WACTiK,YAAa5L,EAAE,aACfqgB,iBAAe,EACfhd,WAAYmhE,EACZrhE,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,SAC/ByJ,OAAQlJ,IAAKC,SACbR,MAAOkrE,GAAmBA,EAAgBphC,UAC1C1jB,OAAQ,SAACplB,GAAD,OAAOmqE,GACX,SAAAD,GAAe,kCACRA,GADQ,IAEXphC,UAAW9oC,EAAEhB,gBAOrC,uBAAK7B,UAAU,iBACX,gBAAC,KAAD,CACIF,GAAG,WACHgM,WAAY6gE,EACZp2C,eAAgB,CAAE5uB,KAAM,QACxBkhB,gBAAgB,EAChB2N,aAAa,EACbC,cAAc,EACdC,kBAAkB,EAClB72B,IAAK,SAAC05B,GAAD,OAAUmzC,EAAMnzC,IACrBjuB,OAAQlJ,IAAKC,UACb,gBAAC,KAAD,KACI,gBAAC,KAAD,CACIyZ,MAAM,OACNhI,SAlMnB,SAACX,GACV,IAAMi6D,EAAS,IAAI9lE,KAAK6L,EAAKnP,MAC7B,OACI,4BAAOopE,EAAO7lE,mBAAmBnF,IAAKC,YAgMdqP,WAAYjJ,EAAE,WACd/I,MAAM,QAEV,gBAAC,KAAD,CACIoc,MAAM,SACNhI,SAjMlB,SAACX,GACX,OACI,wBAAMnT,UAAU,QAAQmK,QAAS,kBAAM3K,EAAMm3B,KAAKxjB,KAAQA,EAAKiC,SAgMvC1D,WAAYjJ,EAAE,WACd/I,MAAM,QAEV,gBAAC,KAAD,CACIoc,MAAM,UACNpK,WAAYjJ,EAAE,aAEd/I,MAAM,QAEV,gBAAC,KAAD,CACIoc,MAAM,YACNhI,SAvMjB,SAACX,GACd,MAAuB,cAAnBA,EAAKw4B,UACC,wBAAM3rC,UAAU,cAA+B,OAAjBoC,IAAKC,SAAmB,YAAc,WAEpE,wBAAMrC,UAAU,cAA+B,OAAjBoC,IAAKC,SAAmB,YAAc,aAoMhDqP,WAAYjJ,EAAE,aACd/I,MAAM,SAGd,gBAAC,KAAD,CAAQ0d,SAAU,CAACwZ,KAAQC,KAAMC,KAAaC,KAAQC,KAAMC,KAAMC,KAAY3Z,KAAS4Z,af9WtGk2C,GAAK,WAEd,IAAQ5kE,EAAMC,cAAND,EAER,EAAsBlH,aAAiBD,GAAhCI,EAAP,oBACA,EAAgCH,YAAe,GAA/C,mBAAO6D,EAAP,KAAiBsL,EAAjB,KACA,EAAwBnP,WAAe,MAAvC,mBAAO+rE,EAAP,KAAaC,EAAb,KACA,EAAwChsE,WAAe,MAAvD,mBAAOggB,EAAP,KAAqB6rB,EAArB,KAEA7rC,aAAgB,WACZ,IAAImqB,EAAoBhqB,EAAYR,YACpCoqB,GAAiBI,EAAkBppB,QAAO,SAACpE,GAAD,OAA0B,KAAnBA,EAAEmD,gBAAqBoB,KAAI,SAACvE,GAAD,OAAQA,EAAEkD,gBACvF,CAACM,IAEJ,IAAMquB,EAAY,CACd0H,OAAQnM,IAAkC,KAC1C+L,OAAQ,kBAAMm2C,KACdj2C,OAAQ,GACRC,IAAK,kBAAM9mB,GAAY,IACvBgnB,KAAM,IAQJ81C,EAAW,WACb,GAAIjsD,EAAc,CACd,IAAIrU,EAAO9K,IAAKC,SACZgrC,EAAqB9rB,EACzB8rB,EAAmBvhC,WAAWrJ,KAAI,SAAU0wB,GAGxC,OAFAA,EAAEwY,UAAYxY,EAAEwY,UAAqB,OAATz+B,EAAgB,YAAc,UAAqB,OAATA,EAAgB,YAAc,WACpGimB,EAAEnvB,KAAO,IAAIsD,KAAK6rB,EAAEnvB,MAAMuD,mBAAmB2F,GACtCimB,KAEXka,EAAmBlY,gBAI3B,OACI,gCACiC,OAA5BzzB,EAAYjB,YAAuB,gBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WACzDzE,EACa,OAATkoE,EACI,gBAAC,IAAD,CAAUlpE,MAAM,EAAMyF,GAAG,kBAEzB,gBAAC,IAAD,CAAUzF,MAAM,EAAMyF,GAAE,wBAAmByjE,KAE3C,gCACI,gBAAC,GAAD,CAAoBxtE,GAAG,OAEvB,uBAAKE,UAAU,eACf,gBAACwM,EAAA,EAAD,CAAWxM,UAAU,gBACjB,uBAAKA,UAAU,mBACX,gBAACmhB,GAAA,EAAD,KACI,uBAAKnhB,UAAU,mBACX,uBAAKA,UAAU,SACX,0BAAKyI,EAAE,eAGf,uBAAKzI,UAAU,mBACX,uBAAKA,UAAU,WACX,gBAAC,GAAD,CAASwrB,SAAUuE,QAKnC,gBAAC5O,GAAA,EAAD,KACI,uBAAKnhB,UAAU,UACX,gBAAC,GAAD,CACI22B,KAjDzB,SAACrR,GACZioD,EAAQjoD,EAAKxlB,IACb4Q,GAAY,IAgDwB6Q,aAAcA,EACdmrD,MAAOt/B,UgBhEtCqgC,GAAS,SAACjuE,GAEnB,IAAIgwC,EAAShwC,EAAMqG,MAAMiqB,OAAOhwB,GAExB2I,EAAMC,cAAND,EAER,EAAsBlH,aAAiBD,GAAhCI,EAAP,oBACA,EAA0GH,aAAiBksC,IAAnHE,EAAR,EAAQA,aAAcC,EAAtB,EAAsBA,gBAAiBS,EAAvC,EAAuCA,gBAAiBC,EAAxD,EAAwDA,mBAAoBE,EAA5E,EAA4EA,cAAeD,EAA3F,EAA2FA,WAC3F,EAAgChtC,YAAe,GAA/C,mBAAO6D,EAAP,KAAiBsL,EAAjB,KACA,EAAoCnP,YAAe,GAAnD,mBAAmBijC,GAAnB,WACA,EAAwCjjC,YAAe,GAAvD,mBAAOg/B,EAAP,KAAqBC,EAArB,KACA,EAAoCj/B,WAAe,MAAnD,mBAAO6oC,EAAP,KAAmB4hB,EAAnB,KACA,EAAkDzqD,YAAe,GAAjE,mBAAO0qD,EAAP,KAA0BC,EAA1B,KACA,EAAwC3qD,WAAe,IAAvD,mBAAO4qD,EAAP,KAAqBC,EAArB,KACA,EAAwD7qD,YAAe,GAAvE,mBAAO8qD,EAAP,KAA6BC,EAA7B,KACA,EAAsC/qD,YAAe,GAArD,mBAAOquB,EAAP,KAAoBC,EAApB,KAEM08B,GAAWhrD,WAEjBA,aAAgB,WACRgtC,GAAYzrC,OAAOC,SAASC,WACjC,CAACurC,IAEJ,IAAMie,GAAY,SAAC3sD,GAAS,IAAD,GACzB,OAAI0sD,SAAJ,IAAIA,IAAJ,UAAIA,GAAU54C,eAAd,aAAI,EAAmB84C,SAAnB,OAA4B5sD,QAA5B,IAA4BA,OAA5B,EAA4BA,EAAK5B,UAGrCiuD,GAAqB,IAGnBn8B,GAAYxuB,SAAa,CACzBkqB,KAAM,QACNzP,MAAO,KACPmQ,cAAeqjB,EACfvjB,mBAAoBujB,EACpBhjB,gBAAgB,EAChBwD,QAAS,kBAAMwU,GAAc,IAC7B7Y,YAAY,EACZI,eAAcyjB,GAAS,kBAAMk+B,MAC7B5hD,aAAY0jB,GAAS,kBAAM0c,GAAqB,IAChDhgC,aAAS3Q,EACT6Q,KAAM,kBACNC,UAASmjB,GAAS,kBAAMlB,GAAmB,IAC3C/hB,UAAU,WACNqhB,EAAgB,CACZN,YAAa,KACbC,UAAW,KACXC,WAAW,OAEf98B,GAAY,IAEhBgc,YAAW8iB,GAAS,kBAAMhP,GAAgB,MAIxCmsB,GAAe,CACjB7sD,GAAI,KACJsV,OAAQ,GACRmrC,UAAW,GACX1U,QAAS,GACTiB,cAAe,EACfh7B,OAAQ,EACRE,WAAY,GACZhO,KAAM,IAAIsD,KACVk5C,YAAa,GACbnW,SAAU,KACVsB,WAAW,EACXtpC,SAAU,EACVuqD,UAAW,IAGfrrD,aAAgB,WACRiuC,EAAQ,uCACR,8BAAA1qC,EAAA,sEAC6B8kC,GAAaloC,EAAYjB,YAAa+uC,EAAQ,GAClEzmC,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAJhC,cACQ6jD,EADR,gBAO4BtiB,GAA8B7oC,EAAYjB,YAAa+uC,GAAQzmC,MAAK,SAAAvD,GACxF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAT5B,OAOQ8jD,EAPR,OAYI/8B,GAAUpc,QAAQsY,kBAAoBujB,EAAgC,IAAvBsd,EAAY1uD,QAAgBqJ,EAAe,GAAI,OAAQ/F,GAAe+F,EAAe,GAAI,SAAU/F,GAElJksC,GAAgB,SAAAD,GAAY,kCACrBA,GADqB,IAExBL,YAAauf,EACbtf,UAAWiC,EACXC,cAAeqd,OAlBvB,2CADQ,oDAsBRz7C,GAIAu8B,EAAgB,CACZN,YAAaqf,GACbpf,UAAW,KACXC,WAAY,KACZiC,cAAe,OAGxB,CAACD,IAEJjuC,aAAgB,YACO,uCAAG,4BAAAuD,EAAA,sEAEAuI,GAAY3L,EAAYjB,aAAasI,MACzD,SAACvD,GACC,GAAIA,EAASC,GACX,OAAOD,EAASwD,UALA,OAElBme,EAFkB,OAStBilC,EAAgBjlC,GATM,2CAAH,qDAWrB4lC,GAGEn8C,SAAS6T,iBAAiB,YAAa+nC,MAOxC,IAEH,IAMIkhB,GAAc,WACdxjC,GAAmBxoC,EAAYjB,YAAa+uC,EAAQ,GAC/CzmC,MAAK,SAAAvD,GACF,OAAIA,EAASC,GACFD,EAASwD,OAET8F,QAAQE,OAAOxJ,MAG7BuD,MAAK,SAAAE,GACFyH,GAAY,MAEfxH,OAAM,SAAAC,GACHC,QAAQD,MAAMA,OAQtB6jD,GAAwB,uCAAG,kCAAAloD,EAAA,6DAErBoI,EAAOygC,EAAaL,YAAY/3B,SAAiD,IAAtCo4B,EAAaL,YAAY/3B,SAAiB,KAAO,KAAOnT,IAAKC,SAFnF,SAGWm4C,GAAqB94C,EAAa0oC,EAAYl9B,GAHzD,kBAGpButC,OAAQC,EAHY,EAGZA,cACTrQ,EAAWsD,EAAaL,YAAYjD,SAASpkC,QAAQ,kCAA1C,qDAA2Hy0C,EAA3H,UAEnBvQ,GAA0BzoC,EAAYjB,YAAa+uC,EAAQ,EAAGpF,EAAYC,GACrEthC,MAAK,SAAAvD,GACF,OAAIA,EAASC,GACFD,EAASwD,OAET8F,QAAQE,OAAOxJ,MAG7BuD,MAAK,SAAAE,GACJqjD,EAAwBrjD,MAEzBC,OAAM,SAAAC,GACHC,QAAQD,MAAMA,MAlBO,2CAAH,qDAuC5B,OACI,gCACI,gBAAC,GAAD,CAAoBrJ,GAAG,OACM,OAA5B4B,EAAYjB,YAAuB,gBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WACzD0kC,EAAa,gBAAC,IAAD,CAAUnqC,MAAM,EAAMyF,GAAE,wBAAmB0kC,KACxDnpC,EAAW,gBAAC,IAAD,CAAUhB,MAAM,EAAMyF,GAAG,cAChCwkC,EAAkB,gBAAC,GAAD,CAAUkI,OAAQ,EAAGjB,QAAS9F,IAC5C,gCACI,uBAAKxvC,UAAU,eACf,gBAACwM,EAAA,EAAD,CAAWxM,UAAU,gBACjB,uBAAKA,UAAU,mBACX,gBAACmhB,GAAA,EAAD,KACI,uBAAKnhB,UAAU,UACX,uBAAKA,UAAU,SACX,0BAAcyI,EAAT+mC,EAAW,oBAAyB,4BAKzD,gBAACruB,GAAA,EAAD,KACI,uBAAKnhB,UAAU,mBACV2tC,EAAaL,aAAeK,EAAaL,YAAYxtC,IAClD,gBAAC,GAAD,CAAe0vC,OAAQA,IAE1B7B,EAAaL,aACV,gBAAC,GAAD,CACIxT,aAAc,GACdihB,YAAW,UAAKx1C,0BAAL,6BACXy1C,WAAU,UAAKvE,GAAL,uBACVwE,aAAa,YACb1E,OAAQ,EACRuE,WAAYtL,EACZ5f,YAAaA,EACbC,eAAgBA,KAI5B,uBAAK7vB,UAAU,mBACV2tC,EAAaL,aACV,gBAAC,GAAD,CAAS36B,SAAUid,EAAapE,SAAUuE,GAAUpc,WAEvD,EAGAg6B,EAAaL,aAAevvC,OAAOgB,KAAK4uC,EAAaL,aAAalvC,OAAS,GAAMuvC,EAAaL,YAAYsf,UAAWxuD,OAAS,GAC3H,gBAAC,GAAD,CAAeyV,QAAS85B,EAAaL,YAAYsf,eAKjE,gBAAC,KAAD,CACI9sD,GAAG,cACHoe,SAAS,EACTvC,QAAS4kB,EACTj1B,OAAQlJ,IAAKC,UAEb,2BACI,uBAAKrC,UAAU,YACX,yBAAOA,UAAU,oBACjB,uBAAKA,UAAU,gBACX,yBAAOF,GAAG,UAAU2I,EAAE,mBACtB,yBAAO3I,GAAG,eAAe2I,EAAE,+BAGnC,2BACA,uBAAKzI,UAAU,iBACX,0BAAQmK,QAAS,kBAAMq2B,GAAgB,KAAS/3B,EAAE,mBAClD,0BAAQ0B,QAAS,WAnFjD8/B,GAAgBvoC,EAAYjB,YAAa+uC,EAAQ,GAC5CzmC,MAAK,SAAAvD,GACF,OAAIA,EAASC,GACFD,EAASwD,OAET8F,QAAQE,OAAOxJ,MAG7BuD,MAAK,SAAAE,GACFyH,GAAY,MAEfxH,OAAM,SAAAC,GACHC,QAAQD,MAAMA,QAuE+D,OAAjB/G,IAAKC,SAAmB,MAAQ,UAIhF,gBAAC,KAAD,CACQvC,GAAG,eACHoe,SAAS,EACTvC,QAASswC,EACT3gD,OAAQlJ,IAAKC,UAEb,2BACI,uBAAKxC,IAAK0sD,GAAUvsD,UAAU,WAC1B,uBAAKA,UAAU,qBACZmsD,EAAa1pD,KAAI,SAAC1B,EAAU2B,GAAX,OAChB,uBAAK1C,UAAWe,EAASjB,KAAOsqC,EAAa,WAAa,GAAI9rC,IAAKoE,EACjEyH,QAAS,WACP6hD,EAAcjrD,EAASjB,MAGzB,yBAAqB,OAAjBsC,IAAKC,SAAmBtB,EAASkR,OAASlR,EAASmR,cAKjE,2BACA,uBAAKlS,UAAU,iBACX,0BACEmK,QAAS,WACP6hD,EAAc,MACdE,GAAqB,KACnBzjD,EAAE,mBACR,0BAAQ0B,QAAS,WA5IvD6iD,KA8IwCd,GAAqB,KACF,OAAjB9pD,IAAKC,SAAmB,YAAc,cAI1D,gBAAC,KAAD,CACIvC,GAAG,uBACHoe,SAAS,EACTvC,QAAS0wC,EACT/gD,OAAQlJ,IAAKC,UAEb,2BACI,uBAAKrC,UAAU,iBACX,yBAAOF,GAAG,WAAV,yBACA,yBAAOA,GAAG,gBAAV,4DAA4E,wBAAMqK,QAC9E,WACIqkC,EAAc6d,GACdC,GAAwB,KAH4C,QAA5E,MAOJ,2BACA,uBAAKtsD,UAAU,iBACX,0BAAQmK,QAAS,kBAAMmiD,GAAwB,KAA/C,gBCnU3BqhB,GAAc,SAACnuE,GAExB,IAAQiJ,EAAMC,cAAND,EACAmlE,EAAmCpuE,EAAnCouE,iBAAkBrsD,EAAiB/hB,EAAjB+hB,aAE1B,EAAsBhgB,aAAiBD,GAAhCI,EAAP,oBACA,EAAkCH,YAAe,GAAjD,mBAAOyxB,EAAP,KAAkBC,EAAlB,KACA,EAA8B1xB,YAAe,GAA7C,mBAAOghB,EAAP,KAAgB3J,EAAhB,KACA,EAA0CrX,WAAe,IAAzD,mBAAOgwB,EAAP,KAAsBC,EAAtB,KACA,EAAwDjwB,WAAe,IAAvE,mBAAO0wB,EAAP,KAA6BC,EAA7B,KACA,EAAkD3wB,WAAe,IAAjE,mBAAOswB,EAAP,KAA0BC,EAA1B,KACA,EAAgDvwB,WAAe,IAA/D,mBAAOoxB,EAAP,KAAyBC,EAAzB,KACA,EAAoDrxB,WAAe,MAAnE,mBAAOssE,EAAP,KAA2BC,EAA3B,KACA,EAAkDvsE,WAAe,MAAjE,mBAAOwsE,EAAP,KAA0BC,EAA1B,KACA,EAAoEzsE,WAAe,CAAEypC,OAAQ,EAAGl5B,OAAQ,IAAxG,mBAAOm8D,EAAP,KAAmCC,EAAnC,KACM7iC,EAAiB9pC,WACQuc,KAAvBa,mBAERpd,aAAgB,WACRghB,IACAzR,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,wBAChDE,aAAYH,SAASC,eAAe,uBACpCG,aAAW,CAAErJ,KAAM,iBAExB,CAAC4a,IAEJhhB,aAAgB,WACRggB,GACAA,EAAarN,YAClB,CAAC9R,IAAKC,WAETd,aAAgB,WAAM,4CAElB,kDAAAuD,EAAA,sEACuB6J,GAAMjN,EAAYjB,aAChCsI,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAJhC,8BAO+BwE,GAAoB9L,EAAYjB,aACtDsI,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAVhC,cAOQwiC,EAPR,gBAa2Bz+B,GAAarL,EAAYjB,aAC3CsI,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAhBhC,cAaQgrB,EAbR,iBAmB0B3mB,GAAY3L,EAAYjB,aACzCsI,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAtBhC,eAmBQme,EAnBR,OAyBUskB,EAAgB/pC,EAAYX,SAAZ,iCAAiDW,EAAYX,SAASjB,IAAO,GAzBvG,UA0B4BwpC,GAAc5nC,EAAYjB,YAAa,EAAGgrC,GAC7D1iC,MAAK,SAAAvD,GAAc,GAAIA,EAASC,GAAM,OAAOD,EAASwD,UA3B/D,SA0BQ0iC,EA1BR,UA8BMA,EAAcA,EAAYppC,QAAO,SAAAC,GAE/B,OADAA,EAAKopC,UAAYppC,EAAKopC,UAA6B,OAAjBvpC,IAAKC,SAAmB,YAAc,UAA6B,OAAjBD,IAAKC,SAAmB,YAAc,WACnHE,KAGPurE,EAAsBpiC,GACtBsiC,EAAqBtiC,IAGrBE,EAvCR,UAuCmBF,SAvCnB,aAuCmB,EAAajpC,KAAI,SAAAF,GAC9B,MAAO,CAAEiS,KAAMjS,EAAKspC,YAGhBC,EAAM,IAAIpW,IACVhiB,EAAWk4B,EAAStpC,QAAO,SAAAC,GAC/B,IAAMwpC,EAAYD,EAAIE,IAAJ,OAAQzpC,QAAR,IAAQA,OAAR,EAAQA,EAAMiS,MAGhC,OAFAs3B,EAAIG,IAAJ,OAAQ1pC,QAAR,IAAQA,OAAR,EAAQA,EAAMiS,OAENu3B,KAGJG,EAnDV,uBAmDiCV,GAnDjC,CAmDiD,CAAE1rC,IAAM,EAAGoS,OAAQ,MAAOD,OAAQ,WACzEk6B,EApDV,uBAoD0BnY,GApD1B,CAoDsC,CAAEl0B,IAAM,EAAGoS,OAAQ,MAAOD,OAAQ,WAC9Doe,EArDV,uBAqD4BlJ,GArD5B,CAqDuC,CAAErnB,IAAM,EAAGoS,OAAQ,MAAOD,OAAQ,WAErEuf,EAAiB9d,GACjBwe,EAAwBga,GACxBpa,EAAqBqa,GACrBvZ,EAAoBvC,GAEpBjf,aAAYR,SAASC,eAAe,uBACpC+H,GAAW,GA7Df,6CAFkB,sBAClBA,GAAW,GADO,mCAiElBvH,KACD,CAACjP,IAAKC,WAETd,aAAgB,WACToxB,EAAiBv0B,SAAWmkB,IACxB7gB,EAAYX,SACXsqC,EAAe13B,QAAQ9R,MAAQH,EAAYX,SAASjB,GAEpDmzB,GAAa,MAEvB,CAACN,EAAkBpQ,IAErB,IAAM4rD,EAAsB,CAAC,CACzBlsE,KAAuB,OAAjBG,IAAKC,SAAmB,YAAc,UAC5CR,OAAO,GACR,CACCI,KAAuB,OAAjBG,IAAKC,SAAmB,YAAc,WAC5CR,OAAO,GACR,CACDI,KAAuB,OAAjBG,IAAKC,SAAmB,QAAU,MACxCR,MAAO,OAIHusE,EAAsB,uCAAG,4BAAAtpE,EAAA,0DACvBmpE,EADuB,gCAEaxkC,GAAsB/nC,EAAYjB,YAAawtE,EAA4B,GAC1GllE,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UALL,OASvBqlE,GAPIA,EAFmB,QAS2B/rE,QAAO,SAAAC,GAErD,OADAA,EAAKopC,UAAYppC,EAAKopC,UAA6B,OAAjBvpC,IAAKC,SAAmB,YAAc,UAA6B,OAAjBD,IAAKC,SAAmB,YAAc,WACnHE,KAEXurE,EAAsBO,GAEtBp7C,GAAa,GAfU,uBAiBvB66C,EAAsBC,GAjBC,4CAAH,qDA0C5B,OACI,gCACKxrD,EAAU,uBAAKziB,GAAG,uBACf,gCACI,uBAAKE,UAAS,gBAAWgzB,EAAY,SAAW,KAC5C,uBAAKhzB,UAAU,yBACX,uBAAKA,UAAU,eACX,wBAAMA,UAAU,qBAChB,yBAAIyI,EAAE,gCAEV,uBAAKzI,UAAU,eACX,uBAAKA,UAAU,mBACX,gBAAC,KAAD,CACIA,UAAU,UACVqU,YAAa5L,EAAE,qCACf6C,OAAQlJ,IAAKC,SACbR,MAAOosE,GAA8BA,EAA2B5jC,SAAW4jC,EAA2B5jC,SAAW,GACjHviB,KAAM,SAACjlB,GAAD,OAAOqrE,GACT,SAAAD,GAA0B,kCACnBA,GADmB,IAEtB5jC,SAAUxnC,EAAEhB,gBAMhC,uBAAK7B,UAAU,oBACTgzB,GACE,uBAAKhzB,UAAU,aACX,gBAAC,KAAD,CACIA,UAAU,mBACVoK,SAAS,mBACTD,QAAS,kBAAM8oB,GAAcD,KAC7B,wBAAMhzB,UAAU,qBACfyI,EAAE,4BAIduqB,GACG,uBAAKhzB,UAAU,aACX,gBAAC,KAAD,CACIA,UAAU,iCACVoK,SAAS,mBACTD,QAAS,kBAAM8oB,GAAcD,KAC7B,wBAAMhzB,UAAU,qBACfyI,EAAE,4BAIf,uBAAKzI,UAAU,aACX,gBAAC,KAAD,CAAiBoK,SAAS,mBAEtBD,QAAS,kBAAMikE,MAEd3lE,EAAE,6BAKlBuqB,GACG,uBAAKhzB,UAAU,8BACX,gBAAC,KAAD,CACIF,GAAG,OACHsK,SAAS,WACTiK,YAAa5L,EAAE,uBACf6C,OAAQlJ,IAAKC,SACb4lB,OAAQ,SAACplB,GAAD,OAAOqrE,GACX,SAAAD,GAA0B,kCACnBA,GADmB,IAEtBzhC,WAAY3pC,EAAEhB,OAASgB,EAAEhB,MAAM,GAAGyH,cAAckX,MAAM,KAAK,GAC3DksB,QAAS7pC,EAAEhB,OAASgB,EAAEhB,MAAM,GAAGyH,cAAckX,MAAM,KAAK,WAIpE,gBAAC,KAAD,CACI1gB,GAAG,QACH8sC,UAAU,EACVxiC,SAAS,WACTiK,YAAa5L,EAAE,yBACfqD,WAAYylB,EACZ3lB,OAAQ,CAAE/J,MAAO,QAEjBomB,OAAQ,SAACplB,GAAD,OAAOqrE,GACX,SAAAD,GAA0B,kCACnBA,GADmB,IAEtBphC,MAAOhqC,EAAEhB,cAIrB,gBAAC,KAAD,CACI/B,GAAG,cACHsK,SAAS,WACTiK,YAAa5L,EAAE,gCACfqgB,iBAAe,EACfhd,WAAYmmB,EACZrmB,OAAQ,CAAE3J,KAAuB,OAAjBG,IAAKC,SAAmB,SAAW,SAAUR,MAAO,MACpEyJ,OAAQlJ,IAAKC,SACb4lB,OAAQ,SAACplB,GAAD,OAAOqrE,GACX,SAAAD,GAA0B,kCACnBA,GADmB,IAEtBnhC,cAAejqC,EAAEhB,cAK7B,gBAAC,KAAD,CACI/B,GAAG,SACHsK,SAAS,WACTiK,YAAa5L,EAAE,0BACfqgB,iBAAe,EACfD,gBAAgB,EAChB/c,WAAY+lB,EACZjmB,OAAQ,CAAE3J,KAAwB,OAAjBG,IAAKC,SAAoB,SAAW,SAAUR,MAAO,MACtEyJ,OAAQlJ,IAAKC,SAEbR,MAAOosE,EAA6BA,EAA2Bn8D,OAAS,GACxEmW,OAAQ,SAACplB,GAAD,OAAOqrE,GACX,SAAAD,GAA0B,kCACnBA,GADmB,IAEtBn8D,OAAQjP,EAAEhB,cAItB,gBAAC,KAAD,CACI/B,GAAG,WACHD,IAAK,SAAAktC,GAAY,OAAI1B,EAAe13B,QAAUo5B,GAC9C3iC,SAAS,WACTiK,YAAa5L,EAAE,2BACfqgB,iBAAe,EACfhd,WAAY6mB,EACZ/mB,OAAQ,CAAE3J,KAAwB,OAAjBG,IAAKC,SAAoB,SAAW,SAAUR,MAAO,MACtEA,MAAOosE,EAA6BA,EAA2Bj8D,WAAatQ,EAAYX,SAAUW,EAAYX,SAASjB,GAAK,GAC5HwL,OAAQlJ,IAAKC,SACb4lB,OAAQ,SAACplB,GAAD,OAAOqrE,GACX,SAAAD,GAA0B,kCACnBA,GADmB,IAEtBj8D,WAAYnP,EAAEhB,cAI1B,gBAAC,KAAD,CACI/B,GAAG,SACHsK,SAAS,WACTiK,YAAa5L,EAAE,yBACfqgB,iBAAe,EACfhd,WAAYqiE,EACZviE,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,SAC/ByJ,OAAQlJ,IAAKC,SACbR,MAAOosE,GAA8BA,EAA2BtiC,UAChE1jB,OAAQ,SAACplB,GAAD,OAAOqrE,GACX,SAAAD,GAA0B,kCACnBA,GADmB,IAEtBtiC,UAAW9oC,EAAEhB,gBAOrC,uBAAK7B,UAAU,iBACX,gBAAC,KAAD,CACIF,GAAG,WACHgM,WAAY+hE,EACZt3C,eAAgB,CAAE5uB,KAAM,QACxBkhB,gBAAgB,EAChB2N,aAAa,EACbC,cAAc,EACdC,kBAAkB,EAClB72B,IAAK,SAAC05B,GAAD,OAAUq0C,EAAiBr0C,IAChCjuB,OAAQlJ,IAAKC,UACb,gBAAC,KAAD,KACI,gBAAC,KAAD,CACIyZ,MAAM,OACNhI,SAlMR,SAACX,GACrB,IAAMm7D,EAAoB,IAAIhnE,KAAK6L,EAAKnP,MACxC,OACI,4BAAOsqE,EAAkB/mE,mBAAmBnF,IAAKC,YAgMzBqP,WAAYjJ,EAAE,uBACd/I,MAAM,QAEV,gBAAC,KAAD,CACIoc,MAAM,SACNhI,SAjMP,SAACX,GACtB,OACI,wBAAMnT,UAAU,QAAQmK,QAAS,kBAAM3K,EAAMm3B,KAAKxjB,KAAQA,EAAKiC,SAgMvC1D,WAAYjJ,EAAE,uBACd/I,MAAM,QAEV,gBAAC,KAAD,CACIoc,MAAM,UACNpK,WAAYjJ,EAAE,yBAEd/I,MAAM,QAEV,gBAAC,KAAD,CACIoc,MAAM,YACNhI,SAvMN,SAACX,GACzB,MAAuB,cAAnBA,EAAKw4B,UACC,wBAAM3rC,UAAU,cAA+B,OAAjBoC,IAAKC,SAAmB,YAAc,WAEpE,wBAAMrC,UAAU,cAA+B,OAAjBoC,IAAKC,SAAmB,YAAc,aAoMhDqP,WAAYjJ,EAAE,yBACd/I,MAAM,SAGd,gBAAC,KAAD,CAAQ0d,SAAU,CAACwZ,KAAQC,KAAMC,KAAaC,KAAQC,KAAMC,KAAMC,KAAY3Z,KAAS4Z,ahB5WtGo3C,GAAiB,WAE1B,IAAQ9lE,EAAMC,cAAND,EAER,EAAsBlH,aAAiBD,GAAhCI,EAAP,oBACA,EAAgCH,YAAe,GAA/C,mBAAO6D,EAAP,KAAiBsL,EAAjB,KACA,EAA8CnP,WAAe,MAA7D,mBAAOitE,EAAP,KAAwBC,EAAxB,KACA,EAAwCltE,WAAe,MAAvD,mBAAOggB,EAAP,KAAqB6rB,EAArB,KAEA7rC,aAAgB,WACZ,IAAImqB,EAAoBhqB,EAAYR,YACpCoqB,GAAiBI,EAAkBppB,QAAO,SAACpE,GAAD,OAA0B,KAAnBA,EAAE47B,gBAAqBr3B,KAAI,SAACvE,GAAD,OAAQA,EAAEkD,gBACvF,CAACM,IAEJ,IAAMquB,EAAY,CACd0H,OAAQnM,IAAkC,KAC1C+L,OAAQ,kBAAMq3C,KACdn3C,OAAQ,GACRC,IAAK,kBAAM9mB,GAAY,IACvBgnB,KAAM,IAQJg3C,EAAsB,WACxB,GAAIntD,EAAc,CACd,IAAIrU,EAAO9K,IAAKC,SACZgrC,EAAqB9rB,EACzB8rB,EAAmBvhC,WAAWrJ,KAAI,SAAU0wB,GAGxC,OAFAA,EAAEwY,UAAYxY,EAAEwY,UAAqB,OAATz+B,EAAgB,YAAc,UAAqB,OAATA,EAAgB,YAAc,WACpGimB,EAAEnvB,KAAO,IAAIsD,KAAK6rB,EAAEnvB,MAAMuD,mBAAmB2F,GACtCimB,KAEXka,EAAmBlY,gBAI3B,OACI,gCACiC,OAA5BzzB,EAAYjB,YAAuB,gBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WACzDzE,EACwB,OAApBopE,EACI,gBAAC,IAAD,CAAUpqE,MAAM,EAAMyF,GAAG,8BAEzB,gBAAC,IAAD,CAAUzF,MAAM,EAAMyF,GAAE,oCAA+B2kE,KAEvD,gCACI,gBAAC,GAAD,CAAoB1uE,GAAG,OAEvB,uBAAKE,UAAU,eACf,gBAACwM,EAAA,EAAD,CAAWxM,UAAU,gBACjB,uBAAKA,UAAU,mBACX,gBAACmhB,GAAA,EAAD,KACI,uBAAKnhB,UAAU,mBACX,uBAAKA,UAAU,SACX,0BAAKyI,EAAE,2BAGf,uBAAKzI,UAAU,mBACX,uBAAKA,UAAU,WACX,gBAAC,GAAD,CAASwrB,SAAUuE,QAKnC,gBAAC5O,GAAA,EAAD,KACI,uBAAKnhB,UAAU,UACX,gBAAC,GAAD,CACI22B,KAjDd,SAACrR,GACvBmpD,EAAmBnpD,EAAKxlB,IACxB4Q,GAAY,IAgDwB6Q,aAAcA,EACdqsD,iBAAkBxgC,UiBhEjDuhC,GAAqB,SAACnvE,GAE/B,IAAIgwC,EAAShwC,EAAMqG,MAAMiqB,OAAOhwB,GAExB2I,EAAMC,cAAND,EAER,EAAsBlH,aAAiBD,GAAhCI,EAAP,oBACA,EAA0GH,aAAiBksC,IAAnHE,EAAR,EAAQA,aAAcC,EAAtB,EAAsBA,gBAAiBS,EAAvC,EAAuCA,gBAAiBC,EAAxD,EAAwDA,mBAAoBE,EAA5E,EAA4EA,cAAeD,EAA3F,EAA2FA,WAC3F,EAAgChtC,YAAe,GAA/C,mBAAO6D,EAAP,KAAiBsL,EAAjB,KACA,EAAoCnP,YAAe,GAAnD,mBAAmBijC,GAAnB,WACA,EAAwCjjC,YAAe,GAAvD,mBAAOg/B,EAAP,KAAqBC,EAArB,KACA,EAAoCj/B,WAAe,MAAnD,mBAAO6oC,EAAP,KAAmB4hB,EAAnB,KACA,EAAkDzqD,YAAe,GAAjE,mBAAO0qD,EAAP,KAA0BC,EAA1B,KACA,EAAwC3qD,WAAe,IAAvD,mBAAO4qD,EAAP,KAAqBC,EAArB,KACA,EAAwD7qD,YAAe,GAAvE,mBAAO8qD,EAAP,KAA6BC,EAA7B,KACA,EAAsC/qD,YAAe,GAArD,mBAAOquB,EAAP,KAAoBC,EAApB,KAEM08B,GAAWhrD,WAEXirD,GAAY,SAAC3sD,GAAS,IAAD,GACzB,OAAI0sD,SAAJ,IAAIA,IAAJ,UAAIA,GAAU54C,eAAd,aAAI,EAAmB84C,SAAnB,OAA4B5sD,QAA5B,IAA4BA,OAA5B,EAA4BA,EAAK5B,UAGrCiuD,GAAqB,IAGvB3qD,aAAgB,WACRgtC,GAAYzrC,OAAOC,SAASC,WACjC,CAACurC,IAGJ,IAAIxe,GAAYxuB,SAAa,CACzBkqB,KAAM,kBACNzP,MAAO,gBACPmQ,cAAeqjB,EACfvjB,mBAAoBujB,EACpBhjB,gBAAgB,EAChBwD,QAAS,kBAAMwU,GAAc,IAC7B7Y,YAAY,EACZI,eAAcyjB,GAAS,kBAAMo/B,MAC7B9iD,aAAY0jB,GAAS,kBAAM0c,GAAqB,IAChDhgC,aAAS3Q,EACT6Q,KAAM,kBACNC,UAASmjB,GAAS,kBAAMlB,GAAmB,IAC3C/hB,UAAW,WACPqhB,EAAgB,CACZN,YAAa,KACbC,UAAW,KACXC,WAAY,OAEhB98B,GAAY,IAEhBgc,YAAW8iB,GAAS,kBAAMhP,GAAgB,MAGxCmsB,GAAe,CACjB7sD,GAAI,KACJsV,OAAQ,GACRmrC,UAAW,GACX1U,QAAS,GACTiB,cAAe,EACfh7B,OAAQ,EACRE,WAAY,GACZhO,KAAM,IAAIsD,KACVk5C,YAAa,GACbnW,SAAU,KACVsB,WAAW,EACXtpC,SAAU,EACVuqD,UAAW,IAGfrrD,aAAgB,WACRiuC,EAAQ,uCACR,8BAAA1qC,EAAA,sEAC6B8kC,GAAaloC,EAAYjB,YAAa+uC,EAAQ,GAClEzmC,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAJhC,cACQ6jD,EADR,gBAO4BtiB,GAA8B7oC,EAAYjB,YAAa+uC,GAAQzmC,MAAK,SAAAvD,GACxF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAT5B,OAOQ8jD,EAPR,OAYI/8B,GAAUpc,QAAQsY,kBAAoBujB,EAAgC,IAAvBsd,EAAY1uD,QAAgBqJ,EAAe,GAAI,OAAQ/F,GAAe+F,EAAe,GAAI,SAAU/F,GAGlJksC,GAAgB,SAAAD,GAAY,kCACrBA,GADqB,IAExBL,YAAauf,EACbtf,UAAWiC,EACXC,cAAeqd,OAnBvB,2CADQ,oDAuBRz7C,GAIAu8B,EAAgB,CACZN,YAAaqf,GACbpf,UAAW,KACXC,WAAY,KACZiC,cAAe,OAGxB,CAACD,IAEJjuC,aAAgB,YACO,uCAAG,4BAAAuD,EAAA,sEAEAuI,GAAY3L,EAAYjB,aAAasI,MACzD,SAACvD,GACC,GAAIA,EAASC,GACX,OAAOD,EAASwD,UALA,OAElBme,EAFkB,OAStBilC,EAAgBjlC,GATM,2CAAH,qDAWrB4lC,GAGEn8C,SAAS6T,iBAAiB,YAAa+nC,MAOxC,IAEH,IAMIoiB,GAAyB,WACzB1kC,GAAmBxoC,EAAYjB,YAAa+uC,EAAQ,GAC/CzmC,MAAK,SAAAvD,GACF,OAAIA,EAASC,GACFD,EAASwD,OAET8F,QAAQE,OAAOxJ,MAG7BuD,MAAK,SAAAE,GACFyH,GAAY,MAEfxH,OAAM,SAAAC,GACHC,QAAQD,MAAMA,OAQtB6jD,GAAwB,uCAAG,kCAAAloD,EAAA,6DAErBoI,EAAOygC,EAAaL,YAAY/3B,SAAiD,IAAtCo4B,EAAaL,YAAY/3B,SAAiB,KAAO,KAAOnT,IAAKC,SAFnF,SAGWm4C,GAAqB94C,EAAa0oC,EAAYl9B,GAHzD,kBAGpButC,OAAQC,EAHY,EAGZA,cACTrQ,EAAWsD,EAAaL,YAAYjD,SAASpkC,QAAQ,kCAA1C,qDAA2Hy0C,EAA3H,UAEnBvQ,GAA0BzoC,EAAYjB,YAAa+uC,EAAQ,EAAGpF,EAAYC,GACrEthC,MAAK,SAAAvD,GACF,OAAIA,EAASC,GACFD,EAASwD,OAET8F,QAAQE,OAAOxJ,MAG7BuD,MAAK,SAAAE,GACJqjD,EAAwBrjD,MAEzBC,OAAM,SAAAC,GACHC,QAAQD,MAAMA,MAlBO,2CAAH,qDAuC5B,OACI,gCACiC,OAA5BzH,EAAYjB,YAAuB,gBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WACzD0kC,EAAa,gBAAC,IAAD,CAAUnqC,MAAM,EAAMyF,GAAE,oCAA+B0kC,KACpEnpC,EAAW,gBAAC,IAAD,CAAUhB,MAAM,EAAMyF,GAAG,0BAChCwkC,EAAkB,gBAAC,GAAD,CAAUkI,OAAQ,EAAGjB,QAAS9F,IAC5C,gCACI,gBAAC,GAAD,CAAoB1vC,GAAG,OAEvB,uBAAKE,UAAU,eACf,gBAACwM,EAAA,EAAD,CAAWxM,UAAU,gBACjB,uBAAKA,UAAU,mBACX,gBAACmhB,GAAA,EAAD,KACI,uBAAKnhB,UAAU,UACX,uBAAKA,UAAU,SACX,0BAAcyI,EAAT+mC,EAAW,gCAAqC,wCAKrE,gBAACruB,GAAA,EAAD,KACI,uBAAKnhB,UAAU,mBACV2tC,EAAaL,aAAeK,EAAaL,YAAYxtC,IAClD,gBAAC,GAAD,CAAe0vC,OAAQA,IAE1B7B,EAAaL,aACV,gBAAC,GAAD,CACIxT,aAAc,GACdihB,YAAW,UAAKx1C,0BAAL,wCACXy1C,WAAU,UAAKvE,GAAL,6BACVwE,aAAa,wBACb1E,OAAQ,EACRuE,WAAYtL,EACZ5f,YAAaA,EACbC,eAAgBA,KAI5B,uBAAK7vB,UAAU,mBACV2tC,EAAaL,aACV,gBAAC,GAAD,CAAS36B,SAAUid,EAAapE,SAAUuE,GAAUpc,WAEvD,EAGAg6B,EAAaL,aAAevvC,OAAOgB,KAAK4uC,EAAaL,aAAalvC,OAAS,GAAMuvC,EAAaL,YAAYsf,UAAWxuD,OAAS,GAC3H,gBAAC,GAAD,CAAeyV,QAAS85B,EAAaL,YAAYsf,eAKjE,gBAAC,KAAD,CACI9sD,GAAG,cACHoe,SAAS,EACTvC,QAAS4kB,EACTj1B,OAAQlJ,IAAKC,UAEb,2BACI,uBAAKrC,UAAU,YACX,yBAAOA,UAAU,oBACjB,uBAAKA,UAAU,gBACX,yBAAOF,GAAG,UAAU2I,EAAE,mBACtB,yBAAO3I,GAAG,eAAe2I,EAAE,+BAGnC,2BACA,uBAAKzI,UAAU,iBACX,0BAAQmK,QAAS,kBAAMq2B,GAAgB,KAAS/3B,EAAE,mBAClD,0BAAQ0B,QAAS,WApFjD8/B,GAAgBvoC,EAAYjB,YAAa+uC,EAAQ,GAC5CzmC,MAAK,SAAAvD,GACF,OAAIA,EAASC,GACFD,EAASwD,OAET8F,QAAQE,OAAOxJ,MAG7BuD,MAAK,SAAAE,GACFyH,GAAY,MAEfxH,OAAM,SAAAC,GACHC,QAAQD,MAAMA,QAwE0E,OAAjB/G,IAAKC,SAAmB,MAAQ,UAI3F,gBAAC,KAAD,CACIvC,GAAG,eACHoe,SAAS,EACTvC,QAASswC,EACT3gD,OAAQlJ,IAAKC,UAEb,2BACI,uBAAKxC,IAAK0sD,GAAUvsD,UAAU,WAC1B,uBAAKA,UAAU,qBACZmsD,EAAa1pD,KAAI,SAAC1B,EAAU2B,GAAX,OAChB,uBAAK1C,UAAWe,EAASjB,KAAOsqC,EAAa,WAAa,GAAI9rC,IAAKoE,EACjEyH,QAAS,WACP6hD,EAAcjrD,EAASjB,MAGzB,yBAAqB,OAAjBsC,IAAKC,SAAmBtB,EAASkR,OAASlR,EAASmR,cAKjE,2BACA,uBAAKlS,UAAU,iBACX,0BACEmK,QAAS,WACP6hD,EAAc,MACdE,GAAqB,KACnBzjD,EAAE,mBACR,0BAAQ0B,QAAS,WA7InD6iD,KA+IoCd,GAAqB,KACF,OAAjB9pD,IAAKC,SAAmB,YAAc,cAItD,gBAAC,KAAD,CACIvC,GAAG,uBACHoe,SAAS,EACTvC,QAAS0wC,EACT/gD,OAAQlJ,IAAKC,UAEb,2BACI,uBAAKrC,UAAU,iBACX,yBAAOF,GAAG,WAAV,yBACA,yBAAOA,GAAG,gBAAV,4DAA4E,wBAAMqK,QAC9E,WACIqkC,EAAc6d,GACdC,GAAwB,KAH4C,QAA5E,MAOJ,2BACA,uBAAKtsD,UAAU,iBACX,0BAAQmK,QAAS,kBAAMmiD,GAAwB,KAA/C,gBCrU3BuiB,GAAiB,SAACrvE,GAE3B,IAAQiJ,EAAMC,cAAND,EACAqmE,EAAsCtvE,EAAtCsvE,oBAAqBvtD,EAAiB/hB,EAAjB+hB,aAE7B,EAAsBhgB,aAAiBD,GAAhCI,EAAP,oBACA,EAAkCH,YAAe,GAAjD,mBAAOyxB,EAAP,KAAkBC,EAAlB,KACA,EAA8B1xB,YAAe,GAA7C,mBAAOghB,EAAP,KAAgB3J,EAAhB,KACA,EAA0CrX,WAAe,IAAzD,mBAAOgwB,EAAP,KAAsBC,EAAtB,KACA,EAAwDjwB,WAAe,IAAvE,mBAAO0wB,EAAP,KAA6BC,EAA7B,KACA,EAAkD3wB,WAAe,IAAjE,mBAAOswB,EAAP,KAA0BC,EAA1B,KACA,EAAgDvwB,WAAe,IAA/D,mBAAOoxB,EAAP,KAAyBC,EAAzB,KACA,EAAuDrxB,WAAe,MAAtE,mBAAOssE,EAAP,KAA2BkB,EAA3B,KACA,EAAwDxtE,WAAe,MAAvE,mBAAOytE,EAAP,KAA6BC,EAA7B,KACA,EAA0E1tE,WAAe,CAAEypC,OAAQ,EAAGl5B,OAAQ,IAA9G,mBAAOo9D,EAAP,KAAsCC,EAAtC,KACM9jC,EAAiB9pC,WAEQuc,KAAvBa,mBAERpd,aAAgB,WACRghB,IACAzR,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,2BAChDE,aAAYH,SAASC,eAAe,0BACpCG,aAAW,CAAErJ,KAAM,iBAExB,CAAC4a,IAEJhhB,aAAgB,WACRggB,GACAA,EAAarN,YAClB,CAAC9R,IAAKC,WAETd,aAAgB,WAAM,4CAElB,kDAAAuD,EAAA,sEACuB6J,GAAMjN,EAAYjB,aAChCsI,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAJhC,8BAO+BwE,GAAoB9L,EAAYjB,aACtDsI,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAVhC,cAOQwiC,EAPR,gBAa2Bz+B,GAAarL,EAAYjB,aAC3CsI,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAhBhC,cAaQgrB,EAbR,iBAmB0B3mB,GAAY3L,EAAYjB,aACzCsI,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAtBhC,eAmBQme,EAnBR,OAyBUskB,EAAgB/pC,EAAYX,SAAZ,iCAAiDW,EAAYX,SAASjB,IAAO,GAzBvG,UA0B4BwpC,GAAc5nC,EAAYjB,YAAa,EAAGgrC,GAC7D1iC,MAAK,SAAAvD,GAAc,GAAIA,EAASC,GAAM,OAAOD,EAASwD,UA3B/D,SA0BQ0iC,EA1BR,UA8BMA,EAAcA,EAAYppC,QAAO,SAAAC,GAE/B,OADAA,EAAKopC,UAAYppC,EAAKopC,UAA6B,OAAjBvpC,IAAKC,SAAmB,YAAc,UAA6B,OAAjBD,IAAKC,SAAmB,YAAc,WACnHE,KAGPwsE,EAAyBrjC,GACzBujC,EAAwBvjC,IAGxBE,EAvCR,UAuCmBF,SAvCnB,aAuCmB,EAAajpC,KAAI,SAAAF,GAC9B,MAAO,CAAEiS,KAAMjS,EAAKspC,YAGhBC,EAAM,IAAIpW,IACVhiB,EAAWk4B,EAAStpC,QAAO,SAAAC,GAC/B,IAAMwpC,EAAYD,EAAIE,IAAJ,OAAQzpC,QAAR,IAAQA,OAAR,EAAQA,EAAMiS,MAGhC,OAFAs3B,EAAIG,IAAJ,OAAQ1pC,QAAR,IAAQA,OAAR,EAAQA,EAAMiS,OAENu3B,KAGJG,EAnDV,uBAmDiCV,GAnDjC,CAmDiD,CAAE1rC,IAAM,EAAGoS,OAAQ,MAAOD,OAAQ,WACzEk6B,EApDV,uBAoD0BnY,GApD1B,CAoDsC,CAAEl0B,IAAM,EAAGoS,OAAQ,MAAOD,OAAQ,WAC9Doe,EArDV,uBAqD4BlJ,GArD5B,CAqDuC,CAAErnB,IAAM,EAAGoS,OAAQ,MAAOD,OAAQ,WAErEuf,EAAiB9d,GACjBwe,EAAwBga,GACxBpa,EAAqBqa,GACrBvZ,EAAoBvC,GAEpBjf,aAAYR,SAASC,eAAe,0BACpC+H,GAAW,GA7Df,6CAFkB,sBAClBA,GAAW,GADO,mCAiElBvH,KACD,CAACjP,IAAKC,WAETd,aAAgB,WACToxB,EAAiBv0B,SAAWmkB,IACxB7gB,EAAYX,SACXsqC,EAAe13B,QAAQ9R,MAAQH,EAAYX,SAASjB,GAEpDmzB,GAAa,MAEvB,CAACN,EAAkBpQ,IAErB,IAAM6sD,EAAyB,CAAC,CAC5BntE,KAAuB,OAAjBG,IAAKC,SAAmB,YAAc,UAC5CR,OAAO,GACR,CACCI,KAAuB,OAAjBG,IAAKC,SAAmB,YAAc,WAC5CR,OAAO,GACR,CACDI,KAAuB,OAAjBG,IAAKC,SAAmB,QAAU,MACxCR,MAAO,OAIHwtE,EAAyB,uCAAG,4BAAAvqE,EAAA,0DAC1BoqE,EAD0B,gCAEazlC,GAAsB/nC,EAAYjB,YAAayuE,EAA+B,GAChHnmE,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UALF,OAS1BsmE,GAPIA,EAFsB,QAS8BhtE,QAAO,SAAAC,GAE3D,OADAA,EAAKopC,UAAYppC,EAAKopC,UAA6B,OAAjBvpC,IAAKC,SAAmB,YAAc,UAA6B,OAAjBD,IAAKC,SAAmB,YAAc,WACnHE,KAEXwsE,EAAyBO,GAGzBr8C,GAAa,GAhBa,uBAkB1B87C,EAAyBC,GAlBC,4CAAH,qDA2C/B,OACI,gCACKzsD,EAAU,uBAAKziB,GAAG,0BACf,gCACI,uBAAKE,UAAS,gBAAWgzB,EAAY,SAAW,KAC5C,uBAAKhzB,UAAU,yBACX,uBAAKA,UAAU,eACX,wBAAMA,UAAU,qBAChB,yBAAIyI,EAAE,mCAEV,uBAAKzI,UAAU,eACX,uBAAKA,UAAU,mBACX,gBAAC,KAAD,CACIA,UAAU,UACVqU,YAAa5L,EAAE,wCACf6C,OAAQlJ,IAAKC,SACbR,MAAOqtE,GAAiCA,EAA8B7kC,SAAW6kC,EAA8B7kC,SAAW,GAC1HviB,KAAM,SAACjlB,GAAD,OAAOssE,GACT,SAAAD,GAA6B,kCACtBA,GADsB,IAEzB7kC,SAAUxnC,EAAEhB,gBAMhC,uBAAK7B,UAAU,oBACTgzB,GACE,uBAAKhzB,UAAU,aACX,gBAAC,KAAD,CACIA,UAAU,mBACVoK,SAAS,mBACTD,QAAS,kBAAM8oB,GAAcD,KAC7B,wBAAMhzB,UAAU,qBACfyI,EAAE,+BAIduqB,GACG,uBAAKhzB,UAAU,aACX,gBAAC,KAAD,CACIA,UAAU,iCACVoK,SAAS,mBACTD,QAAS,kBAAM8oB,GAAcD,KAC7B,wBAAMhzB,UAAU,qBACfyI,EAAE,+BAIf,uBAAKzI,UAAU,aACX,gBAAC,KAAD,CAAiBoK,SAAS,mBAEtBD,QAAS,kBAAMklE,MAEd5mE,EAAE,gCAKlBuqB,GACG,uBAAKhzB,UAAU,8BACX,gBAAC,KAAD,CACIF,GAAG,OACHsK,SAAS,WACTiK,YAAa5L,EAAE,0BACf6C,OAAQlJ,IAAKC,SACb4lB,OAAQ,SAACplB,GAAD,OAAOssE,GACX,SAAAD,GAA6B,kCACtBA,GADsB,IAEzB1iC,WAAY3pC,EAAEhB,OAASgB,EAAEhB,MAAM,GAAGyH,cAAckX,MAAM,KAAK,GAC3DksB,QAAS7pC,EAAEhB,OAASgB,EAAEhB,MAAM,GAAGyH,cAAckX,MAAM,KAAK,WAIpE,gBAAC,KAAD,CACI1gB,GAAG,QACH8sC,UAAU,EACVxiC,SAAS,WACTiK,YAAa5L,EAAE,4BACfqD,WAAYylB,EACZ3lB,OAAQ,CAAE/J,MAAO,QAEjBomB,OAAQ,SAACplB,GAAD,OAAOssE,GACX,SAAAD,GAA6B,kCACtBA,GADsB,IAEzBriC,MAAOhqC,EAAEhB,cAIrB,gBAAC,KAAD,CACI/B,GAAG,cACHsK,SAAS,WACTiK,YAAa5L,EAAE,mCACfqgB,iBAAe,EACfhd,WAAYmmB,EACZrmB,OAAQ,CAAE3J,KAAuB,OAAjBG,IAAKC,SAAmB,SAAW,SAAUR,MAAO,MACpEyJ,OAAQlJ,IAAKC,SACb4lB,OAAQ,SAACplB,GAAD,OAAOssE,GACX,SAAAD,GAA6B,kCACtBA,GADsB,IAEzBpiC,cAAejqC,EAAEhB,cAK7B,gBAAC,KAAD,CACI/B,GAAG,SACHsK,SAAS,WACTiK,YAAa5L,EAAE,6BACfqgB,iBAAe,EACfhd,WAAY+lB,EACZjmB,OAAQ,CAAE3J,KAAwB,OAAjBG,IAAKC,SAAoB,SAAW,SAAUR,MAAO,MACtEyJ,OAAQlJ,IAAKC,SACbwmB,gBAAgB,EAEhBhnB,MAAOqtE,EAAgCA,EAA8Bp9D,OAAS,GAC9EmW,OAAQ,SAACplB,GAAD,OAAOssE,GACX,SAAAD,GAA6B,kCACtBA,GADsB,IAEzBp9D,OAAQjP,EAAEhB,cAItB,gBAAC,KAAD,CACI/B,GAAG,WACHD,IAAK,SAAAktC,GAAY,OAAI1B,EAAe13B,QAAUo5B,GAC9C3iC,SAAS,WACTiK,YAAa5L,EAAE,8BACfqgB,iBAAe,EACfhd,WAAY6mB,EACZ/mB,OAAQ,CAAE3J,KAAwB,OAAjBG,IAAKC,SAAoB,SAAW,SAAUR,MAAO,MACtEA,MAAOqtE,EAAgCA,EAA8Bl9D,WAAatQ,EAAYX,SAAUW,EAAYX,SAASjB,GAAK,GAClIwL,OAAQlJ,IAAKC,SACb4lB,OAAQ,SAACplB,GAAD,OAAOssE,GACX,SAAAD,GAA6B,kCACtBA,GADsB,IAEzBl9D,WAAYnP,EAAEhB,cAI1B,gBAAC,KAAD,CACI/B,GAAG,SACHsK,SAAS,WACTiK,YAAa5L,EAAE,4BACfqgB,iBAAe,EACfhd,WAAYsjE,EACZxjE,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,SAC/ByJ,OAAQlJ,IAAKC,SACbR,MAAOqtE,GAAiCA,EAA8BvjC,UACtE1jB,OAAQ,SAACplB,GAAD,OAAOssE,GACX,SAAAD,GAA6B,kCACtBA,GADsB,IAEzBvjC,UAAW9oC,EAAEhB,gBAOrC,uBAAK7B,UAAU,iBACX,gBAAC,KAAD,CACIF,GAAG,WACHgM,WAAY+hE,EACZt3C,eAAgB,CAAE5uB,KAAM,QACxBkhB,gBAAgB,EAChB2N,aAAa,EACbC,cAAc,EACdC,kBAAkB,EAClB72B,IAAK,SAAC05B,GAAD,OAAUu1C,EAAoBv1C,IACnCjuB,OAAQlJ,IAAKC,UACb,gBAAC,KAAD,KACI,gBAAC,KAAD,CACIyZ,MAAM,OACNhI,SAlMR,SAACX,GACrB,IAAMo8D,EAAuB,IAAIjoE,KAAK6L,EAAKnP,MAC3C,OACI,4BAAOurE,EAAqBhoE,mBAAmBnF,IAAKC,YAgM5BqP,WAAYjJ,EAAE,0BACd/I,MAAM,QAEV,gBAAC,KAAD,CACIoc,MAAM,SACNhI,SAjMP,SAACX,GACtB,OACI,wBAAMnT,UAAU,QAAQmK,QAAS,kBAAM3K,EAAMm3B,KAAKxjB,KAAlD,IAA4DA,EAAKiC,SAgMzC1D,WAAYjJ,EAAE,0BACd/I,MAAM,QAEV,gBAAC,KAAD,CACIoc,MAAM,UACNpK,WAAYjJ,EAAE,4BAEd/I,MAAM,QAEV,gBAAC,KAAD,CACIoc,MAAM,YACNhI,SAvMN,SAACX,GACzB,MAAuB,cAAnBA,EAAKw4B,UACC,wBAAM3rC,UAAU,cAA+B,OAAjBoC,IAAKC,SAAmB,YAAc,WAEpE,wBAAMrC,UAAU,cAA+B,OAAjBoC,IAAKC,SAAmB,YAAc,aAoMhDqP,WAAYjJ,EAAE,4BACd/I,MAAM,SAGd,gBAAC,KAAD,CAAQ0d,SAAU,CAACwZ,KAAQC,KAAMC,KAAaC,KAAQC,KAAMC,KAAMC,KAAY3Z,KAAS4Z,ajB9WtGq4C,GAAoB,WAE7B,IAAQ/mE,EAAMC,cAAND,EAER,EAAsBlH,aAAiBD,GAAhCI,EAAP,oBACA,EAAgCH,YAAe,GAA/C,mBAAO6D,EAAP,KAAiBsL,EAAjB,KACA,EAAoDnP,WAAe,MAAnE,mBAAOkuE,EAAP,KAA2BC,EAA3B,KACA,EAAwCnuE,WAAe,MAAvD,mBAAOggB,EAAP,KAAqB6rB,EAArB,KAEA7rC,aAAgB,WACZ,IAAImqB,EAAoBhqB,EAAYR,YACpCoqB,GAAiBI,EAAkBppB,QAAO,SAACpE,GAAD,OAA0B,KAAnBA,EAAEmD,gBAAqBoB,KAAI,SAACvE,GAAD,OAAQA,EAAEkD,gBACvF,CAACM,IAEJ,IAAMquB,EAAY,CACd0H,OAAQnM,IAAkC,KAC1C+L,OAAQ,kBAAMs4C,KACdp4C,OAAQ,GACRC,IAAK,kBAAM9mB,GAAY,IACvBgnB,KAAM,IAQJi4C,EAAyB,WAC3B,GAAIpuD,EAAc,CACd,IAAIrU,EAAO9K,IAAKC,SACZgrC,EAAqB9rB,EACzB8rB,EAAmBvhC,WAAWrJ,KAAI,SAAU0wB,GAGxC,OAFAA,EAAEwY,UAAYxY,EAAEwY,UAAqB,OAATz+B,EAAgB,YAAc,UAAqB,OAATA,EAAgB,YAAc,WACpGimB,EAAEnvB,KAAO,IAAIsD,KAAK6rB,EAAEnvB,MAAMuD,mBAAmB2F,GACtCimB,KAEXka,EAAmBlY,gBAI3B,OACI,gCACiC,OAA5BzzB,EAAYjB,YAAuB,gBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WACzDzE,EAC2B,OAAvBqqE,EACI,gBAAC,IAAD,CAAUrrE,MAAM,EAAMyF,GAAG,iCAEzB,gBAAC,IAAD,CAAUzF,MAAM,EAAMyF,GAAE,uCAAkC4lE,KAE1D,gCACI,gBAAC,GAAD,CAAoB3vE,GAAG,OAEvB,uBAAKE,UAAU,eACf,gBAACwM,EAAA,EAAD,CAAWxM,UAAU,gBACjB,uBAAKA,UAAU,mBACX,gBAACmhB,GAAA,EAAD,KACI,uBAAKnhB,UAAU,mBACX,uBAAKA,UAAU,SACX,0BAAKyI,EAAE,8BAGf,uBAAKzI,UAAU,mBACX,uBAAKA,UAAU,WACX,gBAAC,GAAD,CAASwrB,SAAUuE,QAKnC,gBAAC5O,GAAA,EAAD,KACI,uBAAKnhB,UAAU,UACX,gBAAC,GAAD,CACI22B,KAjDX,SAACrR,GAC1BoqD,EAAsBpqD,EAAKxlB,IAC3B4Q,GAAY,IAgDwB6Q,aAAcA,EACdutD,oBAAqB1hC,UkBhEpDwiC,GAAwB,SAACpwE,GAElC,IAAIgwC,EAAShwC,EAAMqG,MAAMiqB,OAAOhwB,GAExB2I,EAAMC,cAAND,EAER,EAAsBlH,aAAiBD,GAAhCI,EAAP,oBACA,EAA0GH,aAAiBksC,IAAnHE,EAAR,EAAQA,aAAcC,EAAtB,EAAsBA,gBAAiBS,EAAvC,EAAuCA,gBAAiBC,EAAxD,EAAwDA,mBAAoBE,EAA5E,EAA4EA,cAAeD,EAA3F,EAA2FA,WAC3F,EAAgChtC,YAAe,GAA/C,mBAAO6D,EAAP,KAAiBsL,EAAjB,KACA,EAAoCnP,YAAe,GAAnD,mBAAmBijC,GAAnB,WACA,EAAwCjjC,YAAe,GAAvD,mBAAOg/B,EAAP,KAAqBC,EAArB,KACA,EAAoCj/B,WAAe,MAAnD,mBAAO6oC,EAAP,KAAmB4hB,EAAnB,KACA,EAAkDzqD,YAAe,GAAjE,mBAAO0qD,EAAP,KAA0BC,EAA1B,KACA,EAAwC3qD,WAAe,IAAvD,mBAAO4qD,EAAP,KAAqBC,EAArB,KACA,EAAwD7qD,YAAe,GAAvE,mBAAO8qD,EAAP,KAA6BC,EAA7B,KACA,EAAsC/qD,YAAe,GAArD,mBAAOquB,EAAP,KAAoBC,EAApB,KAEM08B,GAAWhrD,WAEXirD,GAAY,SAAC3sD,GAAS,IAAD,GACzB,OAAI0sD,SAAJ,IAAIA,IAAJ,UAAIA,GAAU54C,eAAd,aAAI,EAAmB84C,SAAnB,OAA4B5sD,QAA5B,IAA4BA,OAA5B,EAA4BA,EAAK5B,UAGrCiuD,GAAqB,IAGnBn8B,GAAYxuB,SAAa,CACzBkqB,KAAM,qBACNzP,MAAO,oBACPmQ,cAAeqjB,EACfvjB,mBAAoBujB,EACpBhjB,gBAAgB,EAChBwD,QAAS,kBAAMwU,GAAc,IAC7B7Y,YAAY,EACZI,eAAcyjB,GAAS,kBAAMqgC,MAC7B/jD,aAAY0jB,GAAS,kBAAM0c,GAAqB,IAChDhgC,aAAS3Q,EACT6Q,KAAM,kBACNC,UAASmjB,GAAS,kBAAMlB,GAAmB,IAC3C/hB,UAAW,WACPqhB,EAAgB,CACZN,YAAa,KACbC,UAAW,KACXC,WAAY,OAEhB98B,GAAY,IAEhBgc,YAAW8iB,GAAS,kBAAMhP,GAAgB,MAGxCmsB,GAAe,CACjB7sD,GAAI,KACJsV,OAAQ,GACRmrC,UAAW,GACX1U,QAAS,GACTiB,cAAe,EACfh7B,OAAQ,EACRE,WAAY,GACZhO,KAAM,IAAIsD,KACVk5C,YAAa,GACbnW,SAAU,KACVsB,WAAW,EACXtpC,SAAU,EACVuqD,UAAW,IAGfrrD,aAAgB,WACRiuC,EAAQ,uCACR,8BAAA1qC,EAAA,sEAC6B8kC,GAAaloC,EAAYjB,YAAa+uC,EAAQ,GAClEzmC,MAAK,SAAAvD,GACF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAJhC,cACQ6jD,EADR,gBAO4BtiB,GAA8B7oC,EAAYjB,YAAa+uC,GAAQzmC,MAAK,SAAAvD,GACxF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAT5B,OAOQ8jD,EAPR,OAYI/8B,GAAUpc,QAAQsY,kBAAoBujB,EAAgC,IAAvBsd,EAAY1uD,QAAgBqJ,EAAe,GAAI,OAAQ/F,GAAe+F,EAAe,GAAI,SAAU/F,GAElJksC,GAAgB,SAAAD,GAAY,kCACrBA,GADqB,IAExBL,YAAauf,EACbtf,UAAWiC,EACXC,cAAeqd,OAlBvB,2CADQ,oDAsBRz7C,GAIAu8B,EAAgB,CACZN,YAAaqf,GACbpf,UAAW,KACXC,WAAY,KACZiC,cAAe,OAGxB,CAACD,IAEJjuC,aAAgB,YACO,uCAAG,4BAAAuD,EAAA,sEAEAuI,GAAY3L,EAAYjB,aAAasI,MACzD,SAACvD,GACC,GAAIA,EAASC,GACX,OAAOD,EAASwD,UALA,OAElBme,EAFkB,OAStBilC,EAAgBjlC,GATM,2CAAH,qDAWrB4lC,GAGEn8C,SAAS6T,iBAAiB,YAAa+nC,MAOxC,IAEH,IAMIqjB,GAA4B,WAC5B3lC,GAAmBxoC,EAAYjB,YAAa+uC,EAAQ,GAC/CzmC,MAAK,SAAAvD,GACF,OAAIA,EAASC,GACFD,EAASwD,OAET8F,QAAQE,OAAOxJ,MAG7BuD,MAAK,SAAAE,GACFyH,GAAY,MAEfxH,OAAM,SAAAC,GACHC,QAAQD,MAAMA,OAQtB6jD,GAAwB,uCAAG,kCAAAloD,EAAA,6DAE1BoI,EAAOygC,EAAaL,YAAY/3B,SAAiD,IAAtCo4B,EAAaL,YAAY/3B,SAAiB,KAAO,KAAOnT,IAAKC,SAF9E,SAGMm4C,GAAqB94C,EAAa0oC,EAAYl9B,GAHpD,kBAGzButC,OAAQC,EAHiB,EAGjBA,cACTrQ,EAAWsD,EAAaL,YAAYjD,SAASpkC,QAAQ,kCAA1C,qDAA2Hy0C,EAA3H,UAEhBvQ,GAA0BzoC,EAAYjB,YAAa+uC,EAAQ,EAAGpF,EAAYC,GACrEthC,MAAK,SAAAvD,GACF,OAAIA,EAASC,GACFD,EAASwD,OAET8F,QAAQE,OAAOxJ,MAG7BuD,MAAK,SAAAE,GACFqjD,EAAwBrjD,MAE3BC,OAAM,SAAAC,GACHC,QAAQD,MAAMA,MAlBS,2CAAH,qDAuC5B,OACI,gCACiC,OAA5BzH,EAAYjB,YAAuB,gBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WAC7D0kC,EAAa,gBAAC,IAAD,CAAUnqC,MAAM,EAAMyF,GAAE,uCAAkC0kC,KACvEnpC,EAAW,gBAAC,IAAD,CAAUhB,MAAM,EAAMyF,GAAG,6BAC5BwkC,EAAkB,gBAAC,GAAD,CAAUkI,OAAQ,EAAGjB,QAAS9F,IAC5C,gCACI,gBAAC,GAAD,CAAoB1vC,GAAG,OAEvB,uBAAKE,UAAU,eACf,gBAACwM,EAAA,EAAD,CAAWxM,UAAU,gBACjB,uBAAKA,UAAU,mBACX,gBAACmhB,GAAA,EAAD,KACI,uBAAKnhB,UAAU,UACX,uBAAKA,UAAU,SACX,0BAAcyI,EAAT+mC,EAAW,mCAAwC,2CAKxE,gBAACruB,GAAA,EAAD,KACI,uBAAKnhB,UAAU,mBACV2tC,EAAaL,aAAeK,EAAaL,YAAYxtC,IAClD,gBAAC,GAAD,CAAe0vC,OAAQA,IAE1B7B,EAAaL,aACV,gBAAC,GAAD,CACIxT,aAAc,GACdihB,YAAW,UAAKx1C,0BAAL,2CACXy1C,WAAU,UAAKvE,GAAL,gCACVwE,aAAa,2BACb1E,OAAQ,EACRuE,WAAYtL,EACZ5f,YAAaA,EACbC,eAAgBA,KAI5B,uBAAK7vB,UAAU,mBACV2tC,EAAaL,aACV,gBAAC,GAAD,CAAS36B,SAAUid,EAAapE,SAAUuE,GAAUpc,WAEvD,EAGAg6B,EAAaL,aAAevvC,OAAOgB,KAAK4uC,EAAaL,aAAalvC,OAAS,GAAMuvC,EAAaL,YAAYsf,UAAWxuD,OAAS,GAC3H,gBAAC,GAAD,CAAeyV,QAAS85B,EAAaL,YAAYsf,eAKjE,gBAAC,KAAD,CACI9sD,GAAG,cACHoe,SAAS,EACTvC,QAAS4kB,EACTj1B,OAAQlJ,IAAKC,UAEb,2BACI,uBAAKrC,UAAU,YACX,yBAAOA,UAAU,oBACjB,uBAAKA,UAAU,gBACX,yBAAOF,GAAG,UAAU2I,EAAE,mBACtB,yBAAO3I,GAAG,eAAe2I,EAAE,+BAGnC,2BACA,uBAAKzI,UAAU,iBACX,0BAAQmK,QAAS,kBAAMq2B,GAAgB,KAAS/3B,EAAE,mBAClD,0BAAQ0B,QAAS,WApFjD8/B,GAAgBvoC,EAAYjB,YAAa+uC,EAAQ,GAC5CzmC,MAAK,SAAAvD,GACF,OAAIA,EAASC,GACFD,EAASwD,OAET8F,QAAQE,OAAOxJ,MAG7BuD,MAAK,SAAAE,GACFyH,GAAY,MAEfxH,OAAM,SAAAC,GACHC,QAAQD,MAAMA,QAwE8E,OAAjB/G,IAAKC,SAAmB,MAAQ,UAI/F,gBAAC,KAAD,CACIvC,GAAG,eACHoe,SAAS,EACTvC,QAASswC,EACT3gD,OAAQlJ,IAAKC,UAEb,2BACI,uBAAKxC,IAAK0sD,GAAUvsD,UAAU,WAC1B,uBAAKA,UAAU,qBACZmsD,EAAa1pD,KAAI,SAAC1B,EAAU2B,GAAX,OAChB,uBAAK1C,UAAWe,EAASjB,KAAOsqC,EAAa,WAAa,GAAI9rC,IAAKoE,EACjEyH,QAAS,WACP6hD,EAAcjrD,EAASjB,MAGzB,yBAAqB,OAAjBsC,IAAKC,SAAmBtB,EAASkR,OAASlR,EAASmR,cAKjE,2BACA,uBAAKlS,UAAU,iBACX,0BACEmK,QAAS,WACP6hD,EAAc,MACdE,GAAqB,KACnBzjD,EAAE,mBACR,0BAAQ0B,QAAS,WA7IjD6iD,KA+IkCd,GAAqB,KACF,OAAjB9pD,IAAKC,SAAmB,YAAc,cAItD,gBAAC,KAAD,CACIvC,GAAG,uBACHoe,SAAS,EACTvC,QAAS0wC,EACT/gD,OAAQlJ,IAAKC,UAEb,2BACI,uBAAKrC,UAAU,iBACX,yBAAOF,GAAG,WAAV,yBACA,yBAAOA,GAAG,gBAAV,4DAA4E,wBAAMqK,QAC9E,WACIqkC,EAAc6d,GACdC,GAAwB,KAH4C,QAA5E,MAOJ,2BACA,uBAAKtsD,UAAU,iBACX,0BAAQmK,QAAS,kBAAMmiD,GAAwB,KAA/C,gBCzU3BwjB,GAA2B,SAAC,GAA4D,IAA1D92D,EAAyD,EAAzDA,KAAM4kB,EAAmD,EAAnDA,aAAcr+B,EAAqC,EAArCA,MAAOwwE,EAA8B,EAA9BA,mBAAoBC,EAAU,EAAVA,IACxF,EAAsBzuE,aAAiBD,GAAhCI,EAAP,oBACQ+G,EAAMC,cAAND,EAER,OACE,gCACQ,gBAAC,GAAD,CAAoB3I,GAAI89B,IACK,OAA5Bl8B,EAAYjB,aAAwBm9B,EACjC,gBAAC,IAAD,CAAUx5B,MAAM,EAAMyF,GAAG,WACzB,gCACA,uBAAK7J,UAAU,eACf,gBAACwM,EAAA,EAAD,CAAWxM,UAAU,gBACjB,uBAAKA,UAAU,mBACX,gBAACmhB,GAAA,EAAD,KACI,uBAAKnhB,UAAU,UACX,uBAAKA,UAAU,SACX,0BAAMT,GAASkJ,EAAE,oCAKjC,gBAAC0Y,GAAA,EAAD,KACI,gBAAC,GAAD,CAAenI,KAAMA,EAAMM,OAAQ02D,EAAKzwE,MAAOwwE,SC3B1DE,GAAuB,WAChC,OAAO,gBAAC,GAAD,CAA0BryC,aAAa,KAAK5kB,KAAK,cCM/Ck3D,I,OAAwB,SAAC1wE,GAElC,MAAsC+B,aAAiBD,GAAvD,mBACQmH,GADR,UACcC,cAAND,GAER,OACI,gCACI,uBAAKzI,UAAU,eACf,gBAACwM,EAAA,EAAD,CAAWxM,UAAU,gBACjB,uBAAKA,UAAU,mBACX,gBAACmhB,GAAA,EAAD,KACI,uBAAKnhB,UAAU,UACX,uBAAKA,UAAU,SACX,0BAAMyI,EAAE,oCAKxB,gBAAC0Y,GAAA,EAAD,KACI,uBAAKnhB,UAAU,UAEX,uBAAKA,UAAU,cACX,uBAAKA,UAAU,aACX,qBAAGA,UAAU,mBACb,4BAAOyI,EAAE,uBAEb,uBAAKzI,UAAU,mBACX,gBAAC,GAAD,CAAa0Y,YAAa,CAACM,KAAM,IAAKM,QAAQ,EAAM5U,MAAOlF,EAAMqG,MAAMiqB,OAAOprB,iBCrCjGyrE,GACT,WAAY/hE,EAAOC,GAAW,qBAC1B1P,KAAKyP,MAAQA,EACbzP,KAAK0P,SAAWA,G,UCUX+hE,GAAiB,WAE1B,MAAyE7uE,aAAiB+B,GAA1F,mBAAmBG,GAAnB,WAAkCC,EAAlC,KAAmDC,EAAnD,KACA,EAAsCpC,aAAiBD,GAAvD,mBAAOI,EAAP,KAAoBC,EAApB,KAEQ8G,EAAMC,cAAND,EAER,EAAgClH,WAAe,MAA/C,mBAAO8uE,EAAP,KAAiBC,EAAjB,KAEA,EAA4B/uE,YAAe,GAA3C,mBAAOgvE,EAAP,KAAeC,EAAf,KACA,EAA0CjvE,YAAe,GAAzD,mBAAOof,EAAP,KAAsB8vD,EAAtB,KACA,EAAgDlvE,YAAe,GAA/D,mBAAOmvE,EAAP,KAAyBC,EAAzB,KACA,EAAoCpvE,WAAe,qBAAnD,mBAAmBqvE,GAAnB,WACA,EAAsDtjD,aAAQ,CAAEC,kBAAkB,IAA1EC,EAAR,EAAQA,aAAcC,EAAtB,EAAsBA,SAAUC,EAAhC,EAAgCA,kBAI1BmjD,EAAeC,6BAEfhjD,EAAQ,uCAAG,WAAO9pB,GAAP,SAAAc,EAAA,sDACbisE,IACA9iE,GAAM,IAAIkiE,GAAOnsE,EAAKgtE,MAAOvhE,cAAezL,EAAKitE,WAC5CloE,MAAK,SAAAvD,GACF,OAAIA,EAASC,GACFD,EAASwD,OAET8F,QAAQE,OAAOxJ,MAG7BuD,MAAK,SAAAE,GACF,IAAI8I,EAAyB,OAAnB9I,EAAOlI,SAAmBkI,EAAOlI,SAAW,KACtDY,GAAe,SAAAD,GAAW,wCACnBA,GADmB,OAEtBb,UAAWoI,EAAO0vB,YAClBl4B,YAAawI,EAAOvE,MACpB4P,iBAAkBrL,EAAOqL,iBACzB5T,SAAUuI,EAAOuL,KACjB7T,UAAU,GAAD,OAAK4E,0BAAL,0CAAoE0D,EAAOqL,iBAA3E,mBAAsGrL,EAAOnJ,IACtHc,UAAWoD,EAAKgtE,MAAMvhE,cACtB3F,OAAQb,EAAOnJ,IARO,2BASXmJ,EAAO0vB,aATI,0BAUZ5mB,GAVY,4BAWV9I,EAAOioE,YAXG,6BAYTjoE,EAAOkoE,YAAcloE,EAAOkoE,WAAW/yE,OAAS,EACzD6K,EAAOkoE,WAAW1uE,KAAI,SAACF,EAAMG,GAAP,MAAkB,CACpCo3B,aAAcv3B,EAAKlB,aACnBF,WAAYoB,EAAK6uE,WACjBhwE,WAAYmB,EAAK8uE,UACjBhwE,aAAckB,EAAKlB,aACnByG,YAAavF,EAAKuF,gBAEtB,IApBkB,OAwB1B0oE,GAAU,GACV/sE,GAAc,SAAAD,GAAU,kCAAUA,GAAV,IAAsBJ,KAAM,UAGvD8F,OAAM,SAAAC,GACHC,QAAQD,MAAMA,GACdmnE,EAAYnnE,EAAMmoE,YAClB3tE,EAAmB,IACnB8sE,GAAiB,GACjBE,GAAoB,MA7Cf,2CAAH,sDAkDVI,EAAgB,WAChBH,EAAc,8BAGdW,EAAc,WACdX,EAAc,sBAGdY,EAAY,uCAAG,WAAO3uE,GAAP,iBAAAiC,EAAA,6DACfjC,EAAEm3B,iBADa,SAEatM,EAAkB,SAF/B,cAET+jD,EAFS,gBAGgB/jD,EAAkB,YAHlC,OAGTgkD,EAHS,QAIXD,GAAiBC,IACjB/tE,EAAmB,IAEvB8sE,EAAiBgB,GACjBd,EAAoBe,GACpBlkD,EAAaM,EAAbN,GATe,4CAAH,sDA8BhB,OAdAjsB,aAAgB,WACRG,EAAYjB,cACZJ,aAAakJ,QAAQ,mBAAoBhJ,KAAKiJ,UAAU9H,IACxD6vE,IACAf,GAAU,MAEf,CAAC9uE,IAEJH,aAAgB,WACRgvE,GACAnnE,QAAQ1C,IAAImqE,KAEjB,CAACN,IAGA,gCACKA,EAAS,gBAAC,IAAD,CAAUnsE,MAAM,EAAMyF,GAAIgnE,IAChC,gCACI,uBAAK7wE,UAAU,QACX,0BAAKyI,EAAE,0BACP,0BAAKA,EAAE,wBACP,wBAAMqlB,SAAU,SAACjrB,GAAD,OAAO2uE,EAAa3uE,KAChC,2BACI,yBAAO0d,QAAQ,SAAS9X,EAAE,sBAC1B,gBAAC,KAAD,CACI3I,GAAG,QACH8F,KAAK,QACLwE,SAAWuW,EAAqC,WAArB,mBAC3BiK,eA1GJ,CAAEhlB,KAAM,QAAS+B,KAAM,QAASkmB,UAAW,OA2GvCxZ,YAAa5L,EAAE,2BACf5I,IAAK4tB,EAAS,CACV1N,UAAU,EACVsO,QAAS,CACLxsB,MAAO,iDAIvB,2BACI,yBAAO0e,QAAQ,YAAY9X,EAAE,yBAC7B,gBAAC,KAAD,CACI3I,GAAG,WACHsK,SAAWsmE,EAAwC,WAArB,mBAC9B9qE,KAAK,WACLglB,eAxHD,CAAEhlB,KAAM,WAAY+B,KAAM,WAAYkmB,UAAW,OAyHhDxZ,YAAa5L,EAAE,8BACf5I,IAAK4tB,EAAS,CACV1N,UAAU,OAGnBY,GAAkB+vD,EAKjBL,GACA,uBAAKrwE,UAAU,QACX,wBAAMA,UAAU,YAAYqwE,IANhC,uBAAKrwE,UAAU,QACX,wBAAMA,UAAU,YAAYyI,EAAE,2BAQtC,uBAAKzI,UAAU,mBACX,4BAAO0D,IAEX,uBAAK1D,UAAU,UACX,gBAAC,KAAD,CAAiB2H,KAAK,SAAS7H,GAAG,iBAAiBsK,SAAS,mBACxDD,QAAS,WAnErC1G,GAAc,SAAAD,GAAU,kCAAUA,GAAV,IAAsBJ,KAAM,SAmEUqF,EAAE,0BACxC,gBAAC,KAAD,CAAyBd,KAAK,SAASnF,KAAK,SAAS1C,GAAG,WAAWsK,SAAS,aAAayJ,QAASpL,EAAE,8BAChGgX,gBAAc,EAACkyD,MAAO,kBAAMZ,GAAetvB,IAAK,kBAAM8vB,GAAa/xD,WAAS,UCnKnGoyD,GAAkB,WAE3B,MAAyErwE,aAAiB+B,GAA1F,mBAAmBG,GAAnB,WAAmDE,GAAnD,WAEQ8E,EAAMC,cAAND,EAER,EAAgClH,WAAe,MAA/C,mBAAO8uE,EAAP,KAAiBC,EAAjB,KAEA,EAA6DhjD,aAAQ,CAAEC,kBAAkB,IAAjFC,EAAR,EAAQA,aAAcC,EAAtB,EAAsBA,SAAUC,EAAhC,EAAgCA,kBAAmBC,EAAnD,EAAmDA,MAC7CkkD,EAAsB,CAAElqE,KAAM,QAASkmB,UAAW,MAAOikD,gBAAgB,GAC/E,EAA4CvwE,YAAe,GAA3D,mBAAOwwE,EAAP,KAAuBC,EAAvB,KACA,EAA+CzwE,YAAe,GAA9D,mBAAO0wE,EAAP,KAAyBllD,EAAzB,KACA,EAAwCxrB,YAAe,GAAvD,mBAAO2wE,EAAP,KAAqBC,EAArB,KAEMrkD,EAAQ,uCAAG,WAAO9pB,GAAP,SAAAc,EAAA,sDACbwJ,GAAOtK,EAAKgtE,OACPjoE,MAAK,SAAAvD,GACF,OAAIA,EAASC,IACT9B,EAAmB,6BACnBF,GAAc,SAAAD,GAAU,kCAAUA,GAAV,IAAsBJ,KAAM,OAC7CoC,EAASvD,QAET6M,QAAQE,OAAOxJ,MAG7B0D,OAAM,SAAAC,GACHC,QAAQD,MAAMA,GACdmnE,EAAYnnE,EAAMmoE,eAbb,2CAAH,sDAiBVc,EAAkB,uCAAG,kCAAAttE,EAAA,sEACO4oB,EAAkB,SADzB,cACf2kD,EADe,gBAEQ3kD,EAAkB,WAF1B,OAEfQ,EAFe,OAGfokD,EAAc3kD,EAAM,SAASle,cAC7B2e,EAAeT,EAAM,WAAWle,cAEtCuiE,EAAkBK,GAClBtlD,EAAmBmB,GAEdmkD,GAAkBnkD,IACnB8jD,GAAkB,GAClBjlD,GAAmB,IAGnBqB,IAAgBkkD,GAChBH,GAAgB,GAGf/jD,IAAgBkkD,GAAgBD,GAAiBnkD,GAClDV,EAAaM,EAAbN,GAnBiB,4CAAH,qDA2BtB,OACI,gCACI,uBAAKxtB,UAAU,QACX,0BAAKyI,EAAE,wBACP,0BAAKA,EAAE,0BACP,4BACI,2BACI,yBAAO8X,QAAQ,SAAS9X,EAAE,uBAC1B,gBAAC,KAAD,CACI7C,KAAK,QACLwE,SAAW2nE,GAAmBG,EAAoC,WAArB,mBAC7CtnD,eAAgBinD,EAChBx9D,YAAa5L,EAAE,kCACf5I,IAAK4tB,EAAS,CACV1N,UAAU,EACVsO,QAAS,CACLxsB,MAAO,iDAIvB,2BACI,yBAAO0e,QAAQ,WAAW9X,EAAE,wBAC5B,gBAAC,KAAD,CACI7C,KAAK,UACLwE,SAAW6nE,GAAqBC,EAAoC,WAArB,mBAC/CtnD,eAAgBinD,EAChBx9D,YAAa5L,EAAE,mCACf5I,IAAK4tB,EAAS,CACV1N,UAAU,EACVsO,QAAS,CACLxsB,MAAO,mDAO5BkwE,GAAmBE,EAKlB5B,GACA,uBAAKrwE,UAAU,QACX,wBAAMA,UAAU,YAAYqwE,IANhC,uBAAKrwE,UAAU,QACX,wBAAMA,UAAU,YAAYyI,EAAE,mCASpCypE,GACE,uBAAKlyE,UAAU,QACX,wBAAMA,UAAU,YAAYyI,EAAE,oCAItC,uBAAKzI,UAAU,UACX,gBAAC,KAAD,CAAiBF,GAAG,cAAcsK,SAAS,mBACvCD,QAAS,WA3DrB1G,GAAc,SAAAD,GAAU,kCAAUA,GAAV,IAAsBJ,KAAM,SA2DXqF,EAAE,sBACnC,gBAAC,KAAD,CAAyB3I,GAAG,YAAYsK,SAAS,aAAayJ,QAASpL,EAAE,qBACrE0B,QAAS,kBAAMioE,KAAsB3yD,gBAAc,EAACD,WAAS,KAErE,2BACI,gCCvHH+yD,GAAiB,WAE1B,MAAoChxE,aAAiB+B,GAArD,mBAAmBG,GAAnB,WAEQgF,EAAMC,cAAND,EAER,EAAgClH,WAAe,MAA/C,mBAAO8uE,EAAP,KAAiBC,EAAjB,KAEA,EAA6DhjD,aAAQ,CAAEC,kBAAkB,IAAjFC,EAAR,EAAQA,aAAcC,EAAtB,EAAsBA,SAAUC,EAAhC,EAAgCA,kBAAmBC,EAAnD,EAAmDA,MACnD,EAA0CpsB,YAAe,GAAzD,mBAAOqrB,EAAP,KAAsBC,EAAtB,KACA,EAA+CtrB,YAAe,GAA9D,mBAAO0wE,EAAP,KAAyBllD,EAAzB,KACA,EAA8CxrB,YAAe,GAA7D,mBAAOyrB,EAAP,KAAwBC,EAAxB,KACMW,EAAyB,CAAEhoB,KAAM,WAAY+B,KAAM,WAAYkmB,UAAW,OAG1EC,EAAQ,uCAAG,WAAO9pB,GAAP,eAAAc,EAAA,sDACPkF,EAAMlH,OAAOC,SAASM,OAG5BkL,GAFmBvE,EAAIovC,MAAMpvC,EAAIhL,QAAQ,KAAO,GAAGwhB,MAAM,KAAK,GAE5Cxc,EAAK+pB,aACtBhlB,MAAK,SAAAvD,GACF,IAAIA,EAASC,GAGT,OAAOqJ,QAAQE,OAAOxJ,GAFtB/B,GAAc,SAAAD,GAAU,kCAAUA,GAAV,IAAsBJ,KAAM,UAK3D8F,OAAM,SAAAC,GACHC,QAAQD,MAAMA,GACdmnE,EAAYnnE,EAAMmoE,YAClBzkD,GAAiB,GACjBE,GAAmB,MAhBV,2CAAH,sDAoBViB,EAAc,uCAAG,kCAAAlpB,EAAA,sEACU4oB,EAAkB,eAD5B,cACXO,EADW,gBAEYP,EAAkB,mBAF9B,OAEXQ,EAFW,OAGXC,EAAaR,EAAM,eACnBS,EAAeT,EAAM,mBAE3Bd,EAAiBoB,GACjBlB,EAAmBmB,GAEdD,GAAiBC,IAClBrB,GAAiB,GACjBE,GAAmB,IAGnBqB,IAAgBD,GAChBlB,GAAmB,GAGlBmB,IAAgBD,GAAeF,GAAgBC,GAChDV,EAAaM,EAAbN,GAnBa,4CAAH,qDAuBlB,OACI,gCACA,uBAAKxtB,UAAU,QACX,0BAAKyI,EAAE,sBACP,0BAAKA,EAAE,wBACP,4BACI,2BACI,yBAAO8X,QAAQ,eAAe9X,EAAE,yBAChC,gBAAC,KAAD,CACI7C,KAAK,cACLwE,SAAWwiB,GAAkBI,EAAuC,WAArB,mBAC/C3Y,YAAa5L,EAAE,yBACfmiB,eAAgBgD,EAChB/tB,IAAK4tB,EAAS,CACV1N,UAAU,EACVsO,QAAS,CACLxsB,MAAO,6EAIvB,2BACI,yBAAO0e,QAAQ,mBAAmB9X,EAAE,0BACpC,gBAAC,KAAD,CACI7C,KAAK,kBACLwE,SAAW6nE,GAAqBjlD,EAAuC,WAArB,mBAClD3Y,YAAa5L,EAAE,6BACfmiB,eAAgBgD,EAChB/tB,IAAK4tB,EAAS,CACV1N,UAAU,EACVsO,QAAS,CACLxsB,MAAO,8EAM5B+qB,GAAkBqlD,EAKjB5B,GACA,uBAAKrwE,UAAU,QACX,wBAAMA,UAAU,YAAYqwE,IANhC,uBAAKrwE,UAAU,QACX,wBAAMA,UAAU,YAAYyI,EAAE,qCAQpCukB,GACE,uBAAKhtB,UAAU,QACX,wBAAMA,UAAU,YAAYyI,EAAE,sCAGtC,uBAAKzI,UAAU,gBACX,gBAAC,KAAD,CAAyBF,GAAG,iBAAiBsK,SAAS,IAAIyJ,QAASpL,EAAE,sBAC7D0B,QAAS,kBAAM6jB,KAAkBvO,gBAAc,EAACD,WAAS,OC9GhEgzD,GAAiB,WAE1B,MAAqBjxE,aAAiB+B,GAA/BE,EAAP,oBACA,EAAsCjC,aAAiBD,GAAvD,mBAGMmxE,GAHN,UACc/pE,cAAND,EAE6B,IAAnBjF,EAAWJ,KAAY,QAA6B,IAAnBI,EAAWJ,KAAY,SAA8B,IAAnBI,EAAWJ,KAAY,QAAU,IAGtH,OACI,uBAAKpD,UAAS,gBAAWyyE,IACrB,uBAAKzyE,UAAU,YAQS,IAAnBwD,EAAWJ,MACR,gBAAC,GAAD,MAEgB,IAAnBI,EAAWJ,MACR,gBAAC,GAAD,MAEgB,IAAnBI,EAAWJ,MACR,gBAAC,GAAD,SC7BPsvE,GAAc,SAAC,GAAgB,IAAdC,EAAa,EAAbA,OAClBlqE,EAAMC,cAAND,EA6BFmqE,EAAiBD,EAAOrwE,QAAO,SAACyE,EAAG7I,GAAJ,OAAUA,IAAKy0E,EAAOv0E,OAAS,GAAK2I,EAAE8rE,YAAc9rE,EAAE8rE,WAAWC,UAEtG,OADAH,EAASC,EAAex0E,OAAS,EAAI,GAAKu0E,GAC/Bv0E,OAAS,EAEZ,uBAAKgU,MAAO,CAAE2gE,gBAAiB,SAC3B,gBAACvmE,EAAA,EAAD,KACI,gBAAC2U,GAAA,EAAD,KACI,uBAAKnhB,UAAU,UACX,uBAAKA,UAAU,eACV2yE,EAAOlwE,KAAI,SAACF,EAAMjE,GAAP,OApCf,SAACiE,EAAMrE,GAC5B,IAAI80E,EACEptE,EAAwB,OAAjBxD,IAAKC,SAAmBE,EAAKvB,OAASuB,EAAKtB,OAsBxD,OApBKsB,EAAKswE,YAAetwE,EAAKswE,WAAWC,SAEjCE,EADAzwE,EAAKswE,YAActwE,EAAKswE,WAAWI,OAE/B,yBAAO30E,IAAKJ,GACPuK,EAAE,cAAgB7C,IAKvB,gBAAC,OAAD,CAAMtH,IAAKJ,EAAG2L,GAAKtH,EAAKswE,YAActwE,EAAKswE,WAAWv9D,MAAS/S,EAAKyW,MAC/DvQ,EAAE,cAAgB7C,IAG3B1H,EAAI,IAAMy0E,EAAOv0E,SACjB40E,EACI,gBAAC,WAAD,CAAgB10E,IAAKJ,GAChB80E,EACD,wBAAMhzE,UAAU,gCAGzBgzE,EAaqBE,CAAiB3wE,EAAMjE,WAU5C,kCCtDF60E,GAAsB,WAC/B,OAAO,gBAAC,GAAD,CAA0Bv1C,aAAa,KAAK5kB,KAAK,6BCD/Co6D,GAAe,WACxB,OAAO,gBAAC,GAAD,CAA0Bx1C,aAAa,KAAK5kB,KAAK,uBCD/Cq6D,GAA8B,WACvC,OAAO,gBAAC,GAAD,CAA0Bz1C,aAAa,KAAK5kB,KAAK,wBCD/Cs6D,GAA6B,WACtC,OAAO,gBAAC,GAAD,CAA0B11C,aAAa,KAAK5kB,KAAK,sC,8CCUrD,WAAmDtU,GAAnD,2BAAAI,EAAA,6DAA0DmD,EAA1D,+BAAoE,GAApE,kBACE5D,EAAW,uEAAwE,MAAO4D,EAAS,KAAMvD,GAAO,IADlH,4C,oEAIA,WAAkDA,EAAO5E,GAAzD,eAAAgF,EAAA,6DACCmD,EADD,yCAC6CnI,GAD7C,kBAEEuE,EAAW,sEAAuE,MAAO4D,EAAS,KAAMvD,GAAO,IAFjH,4C,oEAKA,WAAoCA,EAAOD,GAA3C,mBAAAK,EAAA,6DACCqJ,EAAM5N,KAAKiJ,UAAU/E,GACrBH,EAAcG,EAAK3E,GAAL,yEAAqF,sEACnGyE,EAASE,EAAK3E,GAAK,MAAQ,OAH5B,kBAIEuE,EAAWC,EAAaC,EAAQ,GAAI4J,EAAKzJ,GAAO,IAJlD,4C,oEAOA,WAAqDA,EAAO5E,GAA5D,eAAAgF,EAAA,6DACCmD,EADD,yCAC6CnI,GAD7C,kBAEEuE,EAAW,yEAA0E,SAAU4D,EAAS,KAAMvD,GAAO,IAFvH,4C,oEAKA,WAAiDA,EAAO5E,EAAIuC,GAA5D,eAAAyC,EAAA,6DACCmD,EADD,yCAC6CnI,EAD7C,qBAC4DuC,GAD5D,kBAEEgC,EAAW,qEAAsE,MAAO4D,EAAS,KAAMvD,GAAO,IAFhH,4C,sBCVA,IChBH4mB,GDgBSioD,GAA6B,WACxC,IAAIhyD,EAEI9Y,EAAMC,cAAND,EAER,EAAsBlH,aAAiBD,GAAhCI,EAAP,oBACA,EAAkCH,YAAe,GAAjD,mBAAOyxB,EAAP,KAAkBC,EAAlB,KACA,EAAsC1xB,WAAe,IAArD,mBAAOg0C,EAAP,KAAoBC,EAApB,KACA,EAAsCj0C,WAAe,IAArD,mBAAOk0C,EAAP,KAAoBC,EAApB,KACA,EAAoCn0C,WAAe,IAAnD,mBAAO00D,EAAP,KAAmBoT,EAAnB,KACA,EAAoC9nE,WAAe,IAAnD,mBAAO80D,EAAP,KAAmBiT,EAAnB,KACA,EAA8B/nE,YAAe,GAA7C,mBAAOghB,EAAP,KAAgB3J,EAAhB,KACA,EAA4BrX,aAA5B,mBAAO6yC,EAAP,KAAeC,EAAf,KACA,EAAoC9yC,aAApC,mBAAOiyE,EAAP,KAAmBC,EAAnB,KACA,EAA4BlyE,WAAe,IAA3C,mBAAOe,EAAP,KAAeg7B,EAAf,KAEA/7B,aAAgB,WACd,IAAIqyB,EAAW,CACb,IAAI9kB,SAAQ,SAACC,EAASC,GACpBjC,GAAarL,EAAYjB,aAAasI,MAAK,SAAAvD,GACrCA,EAASC,GACXD,EAASwD,OAAOD,KAAKgG,GAErBC,UAGN,IAAIF,SAAQ,SAACC,EAASC,GACpB3B,GAAY3L,EAAYjB,aAAasI,MAAK,SAAAvD,GACpCA,EAASC,GACXD,EAASwD,OAAOD,KAAKgG,GAErBC,WAKRF,QAAQylB,IAAIX,GAAU7qB,MAAK,SAAAkR,GACzB,IAAMkyB,EAAYlyB,EAAQ,GACpBlZ,EAAWkZ,EAAQ,GAErBkyB,GACFs9B,EAAct9B,GACZprC,GACF2oE,EAAa3oE,GDtDd,SAAP,mCCwDM2yE,CAAoChyE,EAAYjB,aAAasI,MAAK,SAAAvD,GAC5DA,EAASC,IACXD,EAASwD,OAAOD,MAAK,SAAAkR,GACnB,IAAIkuD,EAAY,GAChBluD,EAAQxX,KAAI,SAAAF,GACV,IAAM8N,EAAU87B,EAAUtkC,MAAK,SAAA2rB,GAAK,OAAIA,EAAM1zB,KAAOyC,EAAKkyC,UACtDpkC,IACF9N,EAAKonE,OAASt5D,EAAQ4B,OACtB1P,EAAKqnE,OAASv5D,EAAQ6B,QAExB,IAAM23D,EAAe9oE,EAAS8G,MAAK,SAAA2rB,GAAK,OAAIA,EAAM1zB,KAAOyC,EAAKmyC,cAC1Dm1B,IACFtnE,EAAK0zD,WAAa4T,EAAa53D,OAC/B1P,EAAK8zD,WAAawT,EAAa33D,QAEjCi2D,EAAU/jE,KAAK7B,MAEjB8xC,EAAU8zB,cAKjB,IAEH5mE,aAAgB,WACVghB,IACFzR,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,gBAChDE,aAAYH,SAASC,eAAe,eACpCG,aAAW,CAAErJ,KAAM,iBAEpB,CAAC4a,IAEJhhB,aAAgB,WACd,IAAMwjE,EAAcn0D,SAASC,eAAe,cACxCujC,GAAU2wB,IACZ3zD,aAAY2zD,GACZnsD,GAAW,MAEZ,CAACw7B,IAEJ,IAAMq1B,EAAgB,SAACznE,GACrB,IAAIuzC,EAAc,GACdE,EAAc,GAClBzzC,EAAMS,KAAI,SAAAF,GACRgzC,EAAYnxC,KAAK,CAAEtE,GAAIyC,EAAKzC,GAAI0U,KAAMjS,EAAK0P,SAC3CwjC,EAAYrxC,KAAK,CAAEtE,GAAIyC,EAAKzC,GAAI0U,KAAMjS,EAAK2P,YAE7CsjC,EAAeD,GACfG,EAAeD,IAGXi0B,EAAe,SAAC1nE,GACpB,IAAIi0D,EAAa,GACbI,EAAa,GACjBr0D,EAAMS,KAAI,SAAAF,GACR0zD,EAAW7xD,KAAK,CAAEtE,GAAIyC,EAAKzC,GAAI0U,KAAMjS,EAAK0P,SAC1CokD,EAAWjyD,KAAK,CAAEtE,GAAIyC,EAAKzC,GAAI0U,KAAMjS,EAAK2P,YAE5Cm3D,EAAcpT,GACdqT,EAAcjT,IAMVtwB,EAAqB,SAAAljC,GACzBy6B,EAAU,2BAAKh7B,GAAN,mBAAeO,EAAEsa,QAAQrd,GAAK+C,EAAEhB,UAmC3C,OALAN,aAAgB,WACVggB,GACFA,EAAarN,YACd,CAAC9R,IAAKC,WAGPmxE,EAAa,gBAAC,IAAD,CAAUpvE,MAAM,EAAMyF,GAAE,kEAA6D2pE,KAChG,gCACE,uBAAKxzE,UAAS,gBAAWgzB,EAAY,SAAW,KAC9C,uBAAKhzB,UAAU,yBACb,uBAAKA,UAAU,eACb,wBAAMA,UAAU,qBAChB,yBAAIyI,EAAE,0BAER,uBAAKzI,UAAU,eACb,uBAAKA,UAAU,mBACb,gBAAC,KAAD,CACEF,GAAG,UACHE,UAAU,UACV4L,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,QAC/BiK,WAAYsoC,EACZ//B,YAAa5L,EAAE,+BACfwf,OAxDW,SAAAplB,GACzBy6B,EAAU,2BAAKh7B,GAAN,IAAcwnE,QAASjnE,EAAE2lB,SAAW3lB,EAAE2lB,SAAS1oB,GAAK,SAwD/CwL,OAAQlJ,IAAKC,aAInB,uBAAKrC,UAAU,oBACXgzB,GACA,uBAAKhzB,UAAU,aACb,gBAAC,KAAD,CACEA,UAAU,mBACVoK,SAAS,mBACTD,QAAS,kBAAM8oB,GAAcD,KAC7B,wBAAMhzB,UAAU,qBACfyI,EAAE,sBAIRuqB,GACC,uBAAKhzB,UAAU,aACb,gBAAC,KAAD,CACEA,UAAU,iCACVoK,SAAS,mBACTD,QAAS,kBAAM8oB,GAAcD,KAC7B,wBAAMhzB,UAAU,qBACfyI,EAAE,sBAIT,uBAAKzI,UAAU,aACb,gBAAC,KAAD,CACEoK,SAAS,mBACTD,QA5EG,WAEjB,GADA8oB,GAAa,GACTmhB,EAAOh2C,OAAQ,CACjB,IAAI4mE,EAAY,aAAO5wB,GACnB9xC,EAAOwnE,UACT9E,EAAeA,EAAa1iE,QAAO,SAAAC,GAAI,OAAIA,EAAKzC,KAAOwC,EAAOwnE,YAC5DxnE,EAAOynE,YACT/E,EAAeA,EAAa1iE,QAAO,SAAAC,GAAI,OAAIA,EAAKkyC,SAAWnyC,EAAOynE,cAChEznE,EAAO8nC,aACT46B,EAAeA,EAAa1iE,QAAO,SAAAC,GAAI,OAAIA,EAAKmyC,aAAepyC,EAAO8nC,eAExE7oB,EAAazV,WAAak5D,KAmEbv8D,EAAE,uBAKVuqB,GACC,uBAAKhzB,UAAU,8BACb,gBAAC,KAAD,CACEF,GAAG,YACHsK,SAAS,WACTiK,YAAa5L,EAAE,oBACfqD,WAA8B,OAAlB1J,IAAKC,SAAoBkzC,EAAcE,EACnD7pC,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,MAC/BA,MAAOS,EAAOynE,UACd9hD,OAAQ8d,EACRz6B,OAAQlJ,IAAKC,SACbymB,iBAAiB,EACjBD,gBAAgB,IAElB,gBAAC,KAAD,CACE/oB,GAAG,aACHsK,SAAS,WACTiK,YAAa5L,EAAE,qBACfqD,WAA8B,OAAlB1J,IAAKC,SAAoB4zD,EAAaI,EAClDzqD,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,MAC/BA,MAAOS,EAAO8nC,WACdniB,OAAQ8d,EACRz6B,OAAQlJ,IAAKC,SACbymB,iBAAiB,MAKzB,uBAAK9oB,UAAU,eACb,gBAAC,KAAD,CACEF,GAAG,WACHD,IAAK,SAAAomC,GAAa,OAAI1kB,EAAe0kB,GACrCn6B,WAAYsoC,EACZ7d,eAAgB,CAAE5uB,KAAM,QACxBkhB,gBAAgB,EAChB2N,aAAa,EACbC,cAAc,EACd6b,YA5Hc,SAAAzvC,GACtB4wE,EAAc5wE,EAAEmB,KAAKlE,KA4HbwL,OAAQlJ,IAAKC,UACb,gBAAC,KAAD,KACE,gBAAC,KAAD,CACEyZ,MAAM,OACNhI,SAAU,SAACX,GAAD,OA9GH,SAACA,GACpB,OACE,gCACE,wBAAMnT,UAAU,gBAAgBmT,EAAKqB,OA2GTw1D,CAAa72D,IACjCzB,WAAYjJ,EAAE,iBACd/I,MAAM,QAER,gBAAC,KAAD,CACEoc,MAAyB,OAAlB1Z,IAAKC,SAAoB,SAAW,SAC3CqP,WAAYjJ,EAAE,oBACd/I,MAAM,OAER,gBAAC,KAAD,CACEoc,MAAyB,OAAlB1Z,IAAKC,SAAoB,aAAe,aAC/CqP,WAAYjJ,EAAE,qBACd/I,MAAM,QAER,gBAAC,KAAD,CACEoc,MAAM,oBACNpK,WAAYjJ,EAAE,qBACd/I,MAAM,QAGV,gBAAC,KAAD,CAAQ0d,SAAU,CAACwZ,KAAQC,KAAMC,KAAaC,KAAQC,KAAMC,KAAMC,YCrRjEy8C,GAAyB,WAEpC,IAAQlrE,EAAMC,cAAND,EAER,EAAsBlH,aAAiBD,GAAhCI,EAAP,oBACA,EAAgCH,YAAe,GAA/C,mBAAO6D,EAAP,KAAiBsL,EAAjB,KACA,EAA8BnP,YAAe,GAA7C,mBAAOghB,EAAP,KAAgB3J,EAAhB,KAEArX,aAAgB,WACd,IAAImqB,EAAoBhqB,EAAYR,YACpCoqB,GAAiBI,EAAkBppB,QAAO,SAACpE,GAAD,OAA0B,KAAnBA,EAAEmD,gBAAqBoB,KAAI,SAACvE,GAAD,OAAQA,EAAEkD,cACtFwX,GAAW,KACV,CAAClX,IAEJ,IAAMquB,EAAY,CAChB0H,OAAQnM,IAAkC,KAC1C+L,QAAQ,EACRE,OAAQ,GACRC,IAAK,kBAAM9mB,GAAY,IACvBgnB,KAAM,IAGR,OACE,gCAC+B,OAA5Bh2B,EAAYjB,YAAuB,gBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WAC3DzE,EACE,gBAAC,IAAD,CAAUhB,MAAM,EAAMyF,GAAG,4DAEzB0Y,GACA,gCACE,gBAAC,GAAD,CAAoBziB,GAAG,OAEvB,uBAAKE,UAAU,eACf,gBAACwM,EAAA,EAAD,CAAWxM,UAAU,gBACnB,uBAAKA,UAAU,mBACb,gBAACmhB,GAAA,EAAD,KACE,uBAAKnhB,UAAU,mBACb,uBAAKA,UAAU,SACb,0BAAKyI,EAAE,qBAGX,uBAAKzI,UAAU,mBACb,uBAAKA,UAAU,WACb,gBAAC,GAAD,CAASwrB,SAAUuE,QAK3B,gBAAC5O,GAAA,EAAD,KACE,uBAAKnhB,UAAU,UACb,gBAAC,GAAD,YCpCL4zE,I,OAA6B,SAACp0E,GACzC,IAAI2qE,EACAC,EACAC,EACAC,EAAU9qE,EAAMqG,MAAMiqB,OAAOhwB,GAEzB2I,EAAMC,cAAND,EAUF8hE,EAAoB,CACxBC,iBAAiB,EACjBC,iBAAiB,EACjBC,gBAAgB,EAChBC,gBAAgB,EAChBC,eAAgBN,GAGlB,EAAsB/oE,aAAiBD,GAAhCI,EAAP,oBACA,EAAgCH,YAAe,GAA/C,mBAAO6D,EAAP,KAAiBsL,EAAjB,KACA,EAAsCnP,aAAtC,mBAAOg0C,EAAP,KAAoBC,EAApB,KACA,EAAsCj0C,aAAtC,mBAAOk0C,EAAP,KAAoBC,EAApB,KACA,EAAkCn0C,aAAlC,mBAAOo0C,EAAP,KAAkBC,EAAlB,KACA,EAAkCr0C,aAAlC,mBAAOs0C,EAAP,KAAkBC,EAAlB,KACA,EAA0Cv0C,WAAe,IAAzD,mBAAOwpE,EAAP,KAAsBC,EAAtB,KACA,EAAkCzpE,WAxBb,CACnBiT,KAAM,GACNigC,OAAQ,EACRC,WAAY,KACZu2B,SAAU,KACVC,aAAc,KACdC,eAAgB,OAkBlB,mBAAOC,EAAP,KAAkBC,EAAlB,KACA,EAA8B9pE,YAAe,GAA7C,mBAAOghB,EAAP,KAAgB3J,EAAhB,KACA,EAA0BrX,WAAegpE,GAAzC,mBAAOe,EAAP,KAAcC,EAAd,KACA,GAAwChqE,YAAe,GAAvD,qBAAOg/B,GAAP,MAAqBC,GAArB,MACA,GAAsCj/B,YAAe,GAArD,qBAAOquB,GAAP,MAAoBC,GAApB,MAEME,GAAY,CAChB/T,MAAO,QACPmQ,aAAa,EACbK,gBAAgB,EAChBP,kBAA6BxkB,EAAe,GAAzB6iE,EAA6B,OAA0C,SAAlC5oE,GACxDsuB,QAAS,GACTrE,WAAY,GACZF,KAAM,0CACNgB,wBAAyB69C,GAAW7iE,EAAe,GAAI,SAAU/F,GACjEqqB,aAAc,GACdG,QAAS,WACP,GAAIm+C,EAAQ3qD,WAAY,CACtBmQ,IAAe,GACf,IAAI7rB,EAAOonE,EACPd,IACFtmE,EAAKmR,OAAQ,GAEfnR,EAAKknE,aAAeH,EHxDrB,SAAP,qCGyDQS,CAAqB9pE,EAAYjB,YAAauD,GAAM+E,MAAK,SAAAvD,GACvDkL,EAAYlL,EAASC,IACrBoqB,IAAe,MACd3mB,OAAM,WACP2mB,IAAe,QAIrBxD,QAAS,GACTE,UAAW,kBAAM7b,GAAY,IAC7Bgc,UAAW49C,EAAU,kBAAM9pC,IAAgB,IAAQ,IAG/CshC,GAAU,CACdpvB,IAAK,GACLC,IAAK,GACLC,MAAO03B,EAAU,kBAAMmB,MAAwB,IAG3CC,GAAc,IAAIrQ,KAAY,CAClCrxD,IAAI,GAAD,OAAKzE,0BAAL,wBACH+1D,QAAS,IAAIC,KACbC,aAAa,EACbr2D,QAAS,CAAC,CAAE,cAAgB,UAAhB,OAA2BzD,EAAYjB,iBAGrDc,aAAgB,WACd,IAAM46B,EAAgB,CACpBrc,MAAO,CACL,KAAQ,CACNC,SAAU,EAAC,EAAMtX,EAAE,yBAErB,OAAU,CACRsX,SAAU,EAAC,EAAMtX,EAAE,0BAGvBuX,gBAAiB,SAACC,EAAcC,GAC9BD,EAAaE,cAAcA,cAAcpF,YAAYmF,KAGzDmqD,EAAU,IAAIjqD,KAAc,eAAgB+b,MAG9C56B,aAAgB,WACd,IAAIqyB,EAAW,CACb,IAAI9kB,SAAQ,SAACC,EAASC,GACpBjC,GAAarL,EAAYjB,aAAasI,MAAK,SAAAvD,GACrCA,EAASC,GACXD,EAASwD,OAAOD,MAAK,SAAA/G,GACnB,IAAIm0C,EAAQ,GACRC,EAAQ,GACZp0C,EAAMS,KAAI,SAAAF,GACR4zC,EAAM/xC,KAAK,CAAEtE,GAAIyC,EAAKzC,GAAI0U,KAAMjS,EAAK0P,SACrCmkC,EAAMhyC,KAAK,CAAEtE,GAAIyC,EAAKzC,GAAI0U,KAAMjS,EAAK2P,YAEvCsjC,EAAeW,GACfT,EAAeU,GACfrnC,OAIFC,UAIN,IAAIF,SAAQ,SAACC,EAASC,GACpB3B,GAAY3L,EAAYjB,aAAasI,MAAK,SAAAvD,GACpCA,EAASC,GACXD,EAASwD,OAAOD,MAAK,SAAA/G,GACnB,IAAIm0C,EAAQ,GACRC,EAAQ,GACZp0C,EAAMS,KAAI,SAAAF,GACR4zC,EAAM/xC,KAAK,CAAEtE,GAAIyC,EAAKzC,GAAI0U,KAAMjS,EAAK0P,SACrCmkC,EAAMhyC,KAAK,CAAEtE,GAAIyC,EAAKzC,GAAI0U,KAAMjS,EAAK2P,YAEvC0jC,EAAaO,GACbL,EAAaM,GACbrnC,OAIFC,WAKRF,QAAQylB,IAAIX,GAAU7qB,MAAK,WACrBuhE,GHrJH,SAAP,qCGsJQuJ,CAAmCnyE,EAAYjB,YAAa6pE,GAASvhE,MAAK,SAAAvD,GACpEA,EAASC,IACXD,EAASwD,OAAOD,MAAK,SAAAlG,GACnBwoE,EAAaxoE,GACbmoE,EAAiBnoE,EAAEqoE,aAAazoE,KAAI,SAAAF,GAAU,OAAO,2BAAIA,GAAX,IAAiBN,KAAMM,EAAKiS,sBAOnF,IAEHjT,aAAgB,WACV4oE,IACFA,EAAgB91D,YAAc5L,EAAE,+BACjC,CAACrG,IAAKC,WAETd,aAAgB,WACdgqE,GAAS,SAAAD,GAAK,kCAEPA,GAFO,IAGVd,qBAAiCjvD,IAAhBg6B,EACjBk1B,qBAAiClvD,IAAhBk6B,EACjBi1B,oBAA8BnvD,IAAdo6B,EAChBg1B,oBAA8BpvD,IAAds6B,SAGnB,CAACN,EAAaE,EAAaE,EAAWE,IAEzCt0C,aAAgB,WACd,IAAMwyD,EAASuX,EAAMd,iBAAmBc,EAAMb,iBAAmBa,EAAMZ,gBAAkBY,EAAMX,gBAAkBW,EAAMV,cACjH7F,EAAcn0D,SAASC,eAAe,aACxCkjD,GAAUgR,IACZ3zD,aAAY2zD,GACZnsD,GAAW,MAEZ,CAAC0yD,IAEJ/pE,aAAgB,WACVghB,IACFzR,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,eAChDE,aAAYH,SAASC,eAAe,cACpCG,aAAW,CAAErJ,KAAM,iBAEpB,CAAC4a,IAEJhhB,aAAgB,WACV+oE,GAAWc,EAAUtrE,IACvByrE,GAAS,SAAAD,GAAK,kCAAUA,GAAV,IAAiBV,eAAe,SAC/C,CAACQ,IAEJ7pE,aAAgB,WACV6oE,IACFA,EAAgBvoE,MAAQ,MACzB,CAACkpE,IAEJ,IAKMhlC,GAAqB,SAAAljC,GACrBA,EAAEsa,SACJkuD,EAAa,2BAAKD,GAAN,mBAAkBvoE,EAAEsa,QAAQrd,GAAK+C,EAAEhB,UA2B7Ck/B,GAAgB,YHrOjB,SAAP,sCGsOI+yC,CAAsCpyE,EAAYjB,YAAa6pE,GAASvhE,MAAK,SAAAvD,GAAQ,OAAIkL,EAAYlL,EAASC,QAG1GgmE,GAAsB,YHpOvB,SAAP,wCGqOIsI,CAAkCryE,EAAYjB,YAAa6pE,EAASloE,IAAKC,UAAU0G,MAAK,SAAAvD,GAAQ,OAAIA,EAASkV,UAAQ3R,MAAK,SAAA2R,GACxH,IAAI1Q,EAAMlH,OAAO6X,IAAIC,gBAAgBF,GACjC5V,EAAI8L,SAASnR,cAAc,KAC/BqF,EAAE2R,KAAOzM,EACTlF,EAAE+8D,SAAW,gBACbjxD,SAASnM,KAAKsW,YAAYjW,GAC1BA,EAAEkW,QACFlW,EAAEoe,YACDha,MAAME,QAAQD,QAGnB,OACE,gCACE,gBAAC,GAAD,CAAoBrJ,GAAG,OACM,OAA5B4B,EAAYjB,YAAuB,gBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WAC3DzE,EAAW,gBAAC,IAAD,CAAUhB,MAAM,EAAMyF,GAAG,iCAClC0Y,EAAU,uBAAKziB,GAAG,cAChB,gCACE,uBAAKE,UAAU,eACf,gBAACwM,EAAA,EAAD,CAAWxM,UAAU,gBACnB,uBAAKA,UAAU,mBACb,gBAACmhB,GAAA,EAAD,KACE,uBAAKnhB,UAAU,UACb,uBAAKA,UAAU,SACb,0BAAeyI,EAAV6hE,EAAY,qBAA0B,6BAKnD,gBAACnpD,GAAA,EAAD,KACE,uBAAKnhB,UAAU,qBACb,uBAAKA,UAAU,UACb,uBAAKA,UAAU,OACb,uBAAKA,UAAU,wBAIrB,uBAAKA,UAAU,4BACb,uBAAKA,UAAU,aACb,uBAAKA,UAAU,0CACb,uBAAKA,UAAU,uBACf,0BAAKyI,EAAE,wBAET,wBAAM3I,GAAG,cAAcguB,SApDlB,SAAAjrB,GACvBA,EAAEm3B,mBAoDkB,uBAAKh6B,UAAU,WACb,uBAAKA,UAAU,QACb,uBAAKA,UAAU,SACb,6BAAQyI,EAAE,gBAAV,KACA,gBAAC,KAAD,CACE3I,GAAG,OACHD,IAAK,SAAA22C,GAAO,OAAI2zB,EAAkB3zB,GAClC5wC,KAAK,OACLglB,eAAgB,CAAEiD,UAAW,OAC7BxZ,YAAa5L,EAAE,4BACf5G,MAAOupE,EAAU52D,KACjByT,OA9FV,SAAAplB,GACdA,EAAEkB,OACJsnE,EAAa,2BAAKD,GAAN,mBAAkBvoE,EAAEkB,MAAMy5B,cAAc19B,GAAK+C,EAAEhB,cAgGvC,uBAAK7B,UAAU,WACb,uBAAKA,UAAU,SACb,6BAAQyI,EAAE,mBAAV,KACA,gBAAC,KAAD,CACE3I,GAAG,SACH8F,KAAK,SACLgG,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,MAC/BwS,YAAa5L,EAAE,6BACfqgB,iBAAiB,EACjBhd,WAA8B,OAAlB1J,IAAKC,SAAoBkzC,EAAcE,EACnD5zC,MAAOupE,EAAU32B,OACjB5rB,gBAAgB,EAChBZ,OAAQ8d,MAGZ,uBAAK/lC,UAAU,SACb,yCACA,gBAAC,KAAD,CACEF,GAAG,aACH8L,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,MAC/BwS,YAAa5L,EAAE,gCACfqgB,iBAAiB,EACjBhd,WAA8B,OAAlB1J,IAAKC,SAAoBszC,EAAYE,EACjDh0C,MAAOupE,EAAU12B,WACjBzsB,OAAQ8d,OAId,uBAAK/lC,UAAU,QACb,uBAAKA,UAAU,SACb,6BAAQyI,EAAE,oBACV,gBAAC,KAAD,CACE3I,GAAG,OACHksE,MAAOjB,EACPkB,cAAc,IAEhB,gBAAC,KAAD,CACEpsE,IAAK,SAAAqsE,GAAY,OAAI9B,EAAkB8B,GACvCtmE,KAAK,OACLyO,YAAa5L,EAAE,+BACfqD,WAAY4/D,GACZvN,UAAU,YACVvoC,MAAO,IAAIC,KACXjqB,OAAQ,CAAE/J,MAAO,KAAMI,KAAM,QAC7B0zB,UA1HA,SAAA9yB,GAC5BA,EAAEspE,sBAAuB,EACzB,IAAIC,EAAY,IAAIC,KAAU,OAAQ,WAAYxpE,EAAEZ,MAAM,GACtD2zB,EAAQ,IAAIC,KAEhBD,EAAoB,KAAX/yB,EAAEZ,KAAe2zB,EAAME,MAAMs2C,GAAax2C,EAEnD/yB,EAAEkzB,WAAW21C,GAAa91C,IAoHEhzB,OApIH,SAAAC,GACrBA,EAAE2lB,WACcuiD,EAAcljE,MAAK,SAAAtF,GAAI,OAAIA,EAAKzC,KAAO+C,EAAE2lB,SAAS1oB,OAElEkrE,GAAiB,SAAAD,GAAa,6BAAQA,GAAR,CAAuB,CAAE9oE,KAAMY,EAAE2lB,SAAShU,KAAM1U,GAAI+C,EAAE2lB,SAAS1oB,WAiIrEu+D,UAAW,EACX/yD,OAAQlJ,IAAKC,SACbuoB,eAAgB,CAAEiD,UAAW,KAC7By+C,cAAe,SAAAzpE,GAAC,OAAIuG,QAAQD,MAAMtG,YAQhD,uBAAK7C,UAAU,mBACb,gBAAC,GAAD,CAAS2S,SAAUid,GAAapE,SAAUuE,KAC1C,gBAAC,GAAD,CAAQvE,SAAUs2C,QAIxB,gBAAC,KAAD,CACEhiE,GAAG,cACHoe,SAAS,EACTvC,QAAS4kB,GACTj1B,OAAQlJ,IAAKC,UAEb,2BACE,uBAAKrC,UAAU,YACb,yBAAOA,UAAU,oBACjB,uBAAKA,UAAU,gBACb,yBAAOF,GAAG,UAAU2I,EAAE,mBACtB,yBAAO3I,GAAG,eAAe2I,EAAE,+BAG/B,2BACA,uBAAKzI,UAAU,iBACb,0BAAQmK,QAAS,kBAAMq2B,IAAgB,KAAS/3B,EAAE,mBAClD,0BAAQ0B,QAAS,kBAAM42B,OAAoC,OAAlB3+B,IAAKC,SAAoB,MAAQ,cC/YjF2xE,GAAS,WAClB,IAAQvrE,EAAMC,cAAND,EAER,OAAO,gBAAC,GAAD,CAA0Bm1B,aAAa,KAAK5kB,KAAK,UACpD+2D,mBAAoBtnE,EAAE,2BACtBlJ,MAAOkJ,EAAE,8BCLJwrE,GAAmB,WAC5B,IAAQxrE,EAAMC,cAAND,EAER,OAAO,gBAAC,GAAD,CAA0Bm1B,aAAa,KAAK5kB,KAAK,qBACpD+2D,mBAAoBtnE,EAAE,sCACtBlJ,MAAOkJ,EAAE,yCCLJyrE,GAAiB,WAC1B,IAAQzrE,EAAMC,cAAND,EAER,OAAO,gBAAC,GAAD,CAA0Bm1B,aAAa,KAAK5kB,KAAK,uBACpD+2D,mBAAoBtnE,EAAE,oCACtBlJ,MAAOkJ,EAAE,uCCLJ0rE,GAAoB,WAC7B,IAAQ1rE,EAAMC,cAAND,EAER,OAAO,gBAAC,GAAD,CACHm1B,aAAa,KACb5kB,KAAK,qBACL+2D,mBAAoBtnE,EAAE,uCACtBlJ,MAAOkJ,EAAE,0CCLJ2rE,GAAsB,WAC/B,IAAQ3rE,EAAMC,cAAND,EAER,OAAO,gBAAC,GAAD,CACHm1B,aAAa,KACb5kB,KAAK,2BACL+2D,mBAAoBtnE,EAAE,yCACtBlJ,MAAOkJ,EAAE,4CCTJ4rE,GAA0B,WACnC,IAAQ5rE,EAAMC,cAAND,EAER,OAAO,gBAAC,GAAD,CACHm1B,aAAa,KACb5kB,KAAK,+BACL+2D,mBAAoBtnE,EAAE,qCACtBlJ,MAAOkJ,EAAE,wCCPJ6rE,GAAkB,WAC3B,IAAQ7rE,EAAMC,cAAND,EAER,OAAO,gBAAC,GAAD,CACHm1B,aAAa,KACb5kB,KAAK,qBACL+2D,mBAAoBtnE,EAAE,qCACtBlJ,MAAOkJ,EAAE,wCCPJ8rE,GAAmB,WAC5B,IAAQ9rE,EAAMC,cAAND,EAER,OAAO,gBAAC,GAAD,CACHm1B,aAAa,KACb5kB,KAAK,uBACL+2D,mBAAoBtnE,EAAE,sCACtBlJ,MAAOkJ,EAAE,yCCRJ+rE,GAA0B,WACnC,OAAO,gBAAC,GAAD,CAA0B52C,aAAa,KAAK5kB,KAAK,yBCD/Cy7D,GAAc,WACvB,OAAO,gBAAC,GAAD,CAA0B72C,aAAa,KAAK5kB,KAAK,kBCE/C07D,GAAuB,WAChC,OAAO,gBAAC,GAAD,CAA0B92C,aAAa,KAAK5kB,KAAK,iCCJ/C27D,GAAS,WAClB,OAAO,gBAAC,GAAD,CAA0B/2C,aAAa,KAAK5kB,KAAK,YCD/C47D,GAAS,WAClB,OAAO,gBAAC,GAAD,CAA0Bh3C,aAAa,KAAK5kB,KAAK,eCD/C67D,GAAQ,WACjB,OAAO,gBAAC,GAAD,CAA0Bj3C,aAAa,KAAK5kB,KAAK,WCD/C87D,GAAS,WAClB,OAAO,gBAAC,GAAD,CAA0Bl3C,aAAa,KAAK5kB,KAAK,YCD/C+7D,GAAY,WACrB,OAAO,gBAAC,GAAD,CAA0Bn3C,aAAa,KAAK5kB,KAAK,kBCD/Cg8D,GAAQ,WACjB,OAAO,gBAAC,GAAD,CAA0Bp3C,aAAa,KAAK5kB,KAAK,cCD/Ci8D,GAAU,WACnB,OAAO,gBAAC,GAAD,CAA0Br3C,aAAa,KAAK5kB,KAAK,gBCD/Ck8D,GAAa,WACtB,OAAO,gBAAC,GAAD,CAA0Bt3C,aAAa,KAAK5kB,KAAK,4BCD/Cm8D,GAAe,WACxB,OAAO,gBAAC,GAAD,CAA0Bv3C,aAAa,KAAK5kB,KAAK,uBCD/Co8D,GAAO,WAChB,OAAO,gBAAC,GAAD,CAA0Bx3C,aAAa,KAAK5kB,KAAK,YCD/Cq8D,GAAW,WACpB,OAAO,gBAAC,GAAD,CAA0Bz3C,aAAa,KAAK5kB,KAAK,cCD/Cs8D,GAAY,WACrB,OAAO,gBAAC,GAAD,CAA0B13C,aAAa,KAAK5kB,KAAK,eCD/Cu8D,GAAc,WACvB,OAAO,gBAAC,GAAD,CAA0B33C,aAAa,KAAK5kB,KAAK,iBCD/Cw8D,GAAO,WAChB,OAAO,gBAAC,GAAD,CAA0B53C,aAAa,KAAK5kB,KAAK,U,uCCGtDy8D,GAAc,IAAIC,KAClBC,GAAK,IAAIC,KAAoB,CAC/BC,OAAQ,CACJC,mBAAmB,GAAD,OAAKvwE,wCACvBwwE,WAAY,CAACN,IACbO,gBAAgB,gBACXP,GAAYQ,WAAa,CAAEC,QAASC,UAIjDR,GAAGS,kBAGwBT,GAAGU,YADf,IChBTC,GAAqB73D,wBAAcg3D,IAEnCc,GAA6B,SAAC,GAAkB,IAAhB90E,EAAe,EAAfA,SAClC,OACI,kBAAC60E,GAAmB10E,SAApB,CAA6BC,MAAO4zE,IAC/Bh0E,ICLP+0E,GAAsB/3D,wBAAc,IAEpCg4D,GAAuB,SAAC,GAAkB,IAAhBh1E,EAAe,EAAfA,SAC5B,EAAsC2G,mBAAS,MAA/C,mBAAOsuE,EAAP,KAAoBC,EAApB,KACA,EAA4CvuE,oBAAS,GAArD,mBAAOwuE,EAAP,KAAuBC,EAAvB,KAEA,EAAwCzuE,mBAAS,IAAjD,mBAAO+jD,EAAP,KAAqBC,EAArB,KACA,EAA0ChkD,mBAAS,IAAnD,mBAAO4d,EAAP,KAAsBC,EAAtB,KACA,EAAwC7d,mBAAS,IAAjD,mBAAO0uE,EAAP,KAAqBC,EAArB,KACA,EAAoC3uE,mBAAS,IAA7C,mBAAO4uE,EAAP,KAAmBC,EAAnB,KACA,EAA0B7uE,mBAAS,IAAnC,mBAAOuG,EAAP,KAAcgC,EAAd,KAIA,GAFcjI,cAAND,EAEkCL,mBAAS,CAC/CvG,MAAO,MADX,mBAAOq1E,EAAP,KAAsBC,EAAtB,KAIA,EAA4C/uE,mBAAS,CACjDvG,MAAO,KADX,mBAAOu1E,EAAP,KAAuBC,EAAvB,KA2BA,OACI,kBAACb,GAAoB50E,SAArB,CAA8BC,MAAO,CACjCy1E,kBAzBkB,SAACx3E,GACvB,IAAMy3E,EAAmB,uBAAIL,EAAcr1E,OAAlB,aAA4Bu1E,EAAev1E,QAAOgG,MAAK,SAAAq9C,GAAK,OAAIA,EAAMplD,KAAMA,KAErG62E,EAAeY,IAuBXb,cACAC,iBACAa,UAtBU,SAAC13E,GACf,IAAKA,EAGD,OAFA62E,EAAe,WACfE,GAAkB,GAGtB,IAAMU,EAAmB,uBAAIL,EAAcr1E,OAAlB,aAA4Bu1E,EAAev1E,QAAOgG,MAAK,SAAAq9C,GAAK,OAAIA,EAAMplD,KAAMA,KAErG62E,EAAeY,GACfV,GAAkB,IAcdY,mBAXmB,SAAC97D,GACxBk7D,EAAkBl7D,GAClBg7D,EAAe,OAUXC,iBACAzqB,eACAC,kBACApmC,gBACAC,mBACA6wD,eACAC,kBACAC,aACAC,gBACAtoE,QACAgC,WACAumE,gBACAC,mBACAC,iBACAC,sBAEC51E,IAKPi2E,GAAkB,WACpB,IAAMtkE,EAAUjL,qBAAWquE,IAE3B,IAAKpjE,EACD,MAAM,IAAIukE,MAAM,0DAGpB,OAAOvkE,GCjFLjQ,GAAe,CACnBa,KAAM,KACNyoC,UAAW,KACXE,QAAS,MAGLirC,GAA0Br2E,gBAAoB4B,IAE9C00E,GAA2B,SAAC,GAAkB,IAAhBp2E,EAAe,EAAfA,SAClC,EAAgDF,WAAe4B,IAA/D,mBAAO20E,EAAP,KAAyBC,EAAzB,KACA,OACE,gBAACH,GAAwBh2E,SAAzB,CAAkCC,MAAO,CAACi2E,EAAkBC,IACzDt2E,ICZA,SAAeu2E,GAAtB,qC,8CAAO,WAAwBtzE,EAAOD,GAA/B,SAAAK,EAAA,+EACIT,EAAW,2BAA4B,OAAQ,GAAII,EAAMC,GAAO,IADpE,4C,sBAIA,SAAeuzE,GAAtB,qC,8CAAO,WAA2BvzE,EAAOD,GAAlC,SAAAK,EAAA,+EACIT,EAAW,8BAA+B,OAAQ,GAAII,EAAMC,GAAO,IADvE,4C,sBAIP,SAASwzE,GAAT,GAA8E,IAAxD3oE,EAAuD,EAAvDA,QAAmB4oE,GAAoC,EAA9CC,SAA8C,EAApCD,SAASE,EAA2B,EAA3BA,SAAUC,EAAiB,EAAjBA,cACpDhnB,EAAkB,GAClBC,EAAa,GAEjB,GAAIhiD,EAAS,CAMT,GAJIA,EAAQ6F,QAAQk8C,EAAgBltD,KAAhB,qCAAmDmL,EAAQ6F,OAAO5F,OAAOC,cAAzE,OAChBF,EAAQgpE,YAAYjnB,EAAgBltD,KAAhB,2BAAyCmL,EAAQgpE,WAAWz4E,KAChFyP,EAAQipE,WAAWlnB,EAAgBltD,KAAhB,qCAAmDmL,EAAQipE,UAAU14E,KAExFyP,EAAQkpE,WAAalpE,EAAQkpE,UAAUhsC,UAAW,CAClD,IAAI+kB,GAAY,IAAMjiD,EAAQkpE,UAAUhsC,UAAUglB,WAAWrY,OAAO,GAChEsY,GAAc,KAAOniD,EAAQkpE,UAAUhsC,UAAUklB,WAAa,IAAIvY,OAAO,GACzEwY,EAAgB,UAAMriD,EAAQkpE,UAAUhsC,UAAUoK,cAAlC,YAAmD6a,EAAnD,YAAiEF,EAAjE,kBACpBF,EAAgBltD,KAAhB,uBAAqCwtD,IAErC,IAAIC,GAAU,IAAMtiD,EAAQkpE,UAAU9rC,QAAQ8kB,WAAWrY,OAAO,GAC5D0Y,GAAY,KAAOviD,EAAQkpE,UAAU9rC,QAAQglB,WAAa,IAAIvY,OAAO,GACrE2Y,EAAc,UAAMxiD,EAAQkpE,UAAU9rC,QAAQkK,cAAhC,YAAiDib,EAAjD,YAA6DD,EAA7D,kBAClBP,EAAgBltD,KAAhB,uBAAqC2tD,IAGzC,GAAIxiD,EAAQmpE,YAAcnpE,EAAQmpE,WAAWjsC,UAAW,CACpD,IAAI+kB,GAAY,IAAMjiD,EAAQmpE,WAAWjsC,UAAUglB,WAAWrY,OAAO,GACjEsY,GAAc,KAAOniD,EAAQmpE,WAAWjsC,UAAUklB,WAAa,IAAIvY,OAAO,GAC1EwY,EAAgB,UAAMriD,EAAQmpE,WAAWjsC,UAAUoK,cAAnC,YAAoD6a,EAApD,YAAkEF,EAAlE,kBACpBF,EAAgBltD,KAAhB,wBAAsCwtD,IAEtC,IAAIC,GAAU,IAAMtiD,EAAQmpE,WAAW/rC,QAAQ8kB,WAAWrY,OAAO,GAC7D0Y,GAAY,KAAOviD,EAAQmpE,WAAW/rC,QAAQglB,WAAa,IAAIvY,OAAO,GACtE2Y,EAAc,UAAMxiD,EAAQmpE,WAAW/rC,QAAQkK,cAAjC,YAAkDib,EAAlD,YAA8DD,EAA9D,kBAClBP,EAAgBltD,KAAhB,wBAAsC2tD,IAGtCxiD,EAAQsC,MAAMy/C,EAAgBltD,KAAhB,qBAAmCmL,EAAQsC,KAAK/R,KAC9DyP,EAAQxO,UAAUuwD,EAAgBltD,KAAhB,yBAAuCmL,EAAQxO,SAASjB,KAC1EyP,EAAQixC,aAAa8Q,EAAgBltD,KAAhB,4BAA0CmL,EAAQixC,YAAY1gD,KACnFyP,EAAQopE,mBAAmBrnB,EAAgBltD,KAAhB,kCAAgDmL,EAAQopE,kBAAkB74E,KACrGyP,EAAQqpE,kBAAkBtnB,EAAgBltD,KAAhB,+CAA6DmL,EAAQqpE,iBAAiBppE,OAAOC,cAA7F,OAgBlC,OAZI0oE,EACA7mB,EAAgBltD,KAAhB,6BACOi0E,GACP/mB,EAAgBltD,KAAhB,6BAGAktD,EAAgBlzD,OAAS,IACzBmzD,EAAU,iBAAaD,EAAgB9tC,KAAK,SAAlC,MAGI+tC,IAAe+mB,EAAf,kBAA0C/mB,EAA1C,4BAAiF,2BAKhG,SAAesnB,GAAtB,qC,8CAAO,WAAmCn0E,EAAOD,GAA1C,SAAAK,EAAA,+EACIT,EAAW,uCAAwC,OAAQ,GAAII,EAAMC,IADzE,4C,sBAIA,SAAeo0E,GAAtB,mC,8CAAO,mCAAAh0E,EAAA,6DAA+BJ,EAA/B,EAA+BA,MAAO6K,EAAtC,EAAsCA,QAAS+oE,EAA/C,EAA+CA,cAE/B,+BAEbS,EAAeb,GAAW,CAC5B3oE,UACA+oE,gBACAH,SAAS,IAPV,kBAUI9zE,EAAWi0E,GARC,+BAQ2C,MAAQA,EAA+B,GAAfS,EAAmB,KAAMr0E,GAAO,GAAO,IAAS4zE,IAVnI,4C,sBAaA,SAAeU,GAAtB,mC,8CAAO,mCAAAl0E,EAAA,6DAAgCJ,EAAhC,EAAgCA,MAAO6K,EAAvC,EAAuCA,QAAS+oE,EAAhD,EAAgDA,cAEhC,gCAEbS,EAAeb,GAAW,CAC5B3oE,UACA+oE,gBACAD,UAAU,IAPX,kBAUIh0E,EAAWi0E,GARC,gCAQ2C,MAAQA,EAA+B,GAAfS,EAAmB,KAAMr0E,GAAO,GAAO,IAAS4zE,IAVnI,4C,oEAyBA,WAA8C5zE,EAAO5E,GAArD,SAAAgF,EAAA,+EAEIT,EAAW,kCAAmC,MAApC,iBAAqDK,EAArD,qBAAuE5E,GAAM,KAAM4E,EAAO,MAAM,IAF9G,4C,sBAeA,SAAeu0E,GAAtB,qC,8CAAO,WAAkCv0E,EAAOu7C,GAAzC,eAAAn7C,EAAA,6DACGo0E,EAAQ,YAAcj5B,EADzB,kBAEI57C,EAAW,+BAAgC,OAAQ60E,EAAO,KAAMx0E,GAAO,IAF3E,4C,sBAKA,SAAey0E,GAAtB,mC,8CAAO,WAAgCz0E,GAAhC,SAAAI,EAAA,+EACIT,EAAW,oCAAqC,MAAO,GAAI,KAAMK,GAAO,IAD5E,4C,sBC9HP,ICgBI4mB,GCsBAA,GFjBW8tD,GArBM,SAAC,GAA+C,IAA7C/oE,EAA4C,EAA5CA,QAASgpE,EAAmC,EAAnCA,SAAU1tE,EAAyB,EAAzBA,SAAU5K,EAAe,EAAfA,SACzC0H,EAAMC,cAAND,EAER,OACI,yBAAKzI,UAAU,eACX,yBAAKA,UAAU,eACX,+BAAQyI,EAAE,0BACV,+BAAQA,EAAE,0BACV,+BAAQA,EAAE,yBACV,+BAAQA,EAAE,2BAEd,yBAAKzI,UAAU,gBACX,+BAAQq5E,GACR,+BAAQ1tE,GACR,+BAAQ0E,GACR,+BAAQtP,MGIXu4E,GAAS,SAAC95E,GAEnB,MAaIk4E,KAZAF,EADJ,EACIA,UACAN,EAFJ,EAEIA,cACAC,EAHJ,EAGIA,iBACAE,EAJJ,EAIIA,kBACAD,EALJ,EAKIA,eACAV,EANJ,EAMIA,YACAY,EAPJ,EAOIA,kBACAnrB,EARJ,EAQIA,aACAnmC,EATJ,EASIA,cACA8wD,EAVJ,EAUIA,aACAE,EAXJ,EAWIA,WACAroE,EAZJ,EAYIA,MAGJ,EAAsBxG,qBAAW7G,GAA1BI,EAAP,oBAEQ+G,EAAMC,cAAND,EAER,EAAkCL,oBAAS,GAA3C,mBAAO4qB,EAAP,KAAkBC,EAAlB,KACA,EAAgD7qB,oBAAS,GAAzD,mBAAOmxE,EAAP,KAAyBC,EAAzB,KACA,EAAsDpxE,oBAAS,GAA/D,mBAAOqxE,EAAP,KAA4BC,EAA5B,KACA,EAAoCtxE,mBAAS,IAA7C,mBAAOuxE,EAAP,KAAmBC,EAAnB,KAEA,EAA4DxxE,oBAAS,GAArE,mBAAOyxE,EAAP,KAA+BC,EAA/B,KACA,EAA8D1xE,oBAAS,GAAvE,mBAAO2xE,EAAP,KAAgCC,EAAhC,KAEA,EAA0C5xE,oBAAS,GAAnD,oBAAOgxD,GAAP,MAAsBC,GAAtB,MAEA,GAAsCjxD,oBAAS,GAA/C,qBAAOyqB,GAAP,MAAoBC,GAApB,MAEQnU,GAAuBb,KAAvBa,mBAER,GAA8BvW,mBAAS,IAAvC,qBAAOmH,GAAP,MAAgBwjB,GAAhB,MAEA,GAAsC3qB,mBAAS,IAA/C,qBAAO6xE,GAAP,MAAoBC,GAApB,MAEMC,GAAe,SAACr6E,GAElB,IAAM4C,EAAQu3E,GAAY3mD,WAAU,SAAAtxB,GAAK,OAAIA,IAASlC,KAChDkC,EAAK,aAAOi4E,KAEH,IAAXv3E,GACAV,EAAMsnB,OAAO5mB,EAAO,GACpBw3E,GAAel4E,GACf4O,SAASC,eAAT,eAAgC/Q,IAAME,UAAY,sCAElDk6E,IAAe,SAAAl4E,GAAK,6BAAQA,GAAR,CAAelC,OACnC8Q,SAASC,eAAT,eAAgC/Q,IAAME,UAAY,sCAc1D6I,qBAAU,WACNO,QAAQ1C,IAAI6I,MACb,CAACA,KAEJ,IAAM6qE,GAAa,SAAC73E,GAChB,MAAO,CACH82E,SAAU92E,EAAKi+C,aAAej+C,EAAKi+C,YAAYhsC,KAC/CnE,QAA0B,OAAjBjO,IAAKC,SAAmBE,EAAKsP,MAAQtP,EAAKsP,KAAKI,OAAS1P,EAAKsP,MAAQtP,EAAKsP,KAAKK,OACxFvG,SAA2B,OAAjBvJ,IAAKC,SAAmBE,EAAK83E,sBAAwB93E,EAAK83E,qBAAqBpoE,OAAS1P,EAAK83E,sBAAwB93E,EAAK83E,qBAAqBnoE,OACzJnR,SAA2B,OAAjBqB,IAAKC,SAAmBE,EAAKxB,UAAYwB,EAAKxB,SAASkR,OAAS1P,EAAKxB,UAAYwB,EAAKxB,SAASmR,SAIjHrJ,qBAAU,WACNiI,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,wBAChDE,aAAYH,SAASC,eAAe,uBACpCG,aAAW,CAAErJ,KAAM,cAEnBmJ,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,yBAChDE,aAAYH,SAASC,eAAe,wBACpCG,aAAW,CAAErJ,KAAM,cAEnBmJ,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,iBAChDE,aAAYH,SAASC,eAAe,gBACpCG,aAAW,CAAErJ,KAAM,gBAEpB,CAACoyE,EAAyBF,EAAwBzgB,KAErD,IAAMkhB,GAAM,uCAAG,kCAAAx1E,EAAA,6DAEXk1E,GAA2B,GAC3BF,GAA0B,GAHf,KAKmChrE,QALnC,SAKqDA,QAAQylB,IAAI,CACxEukD,GAAc,CACVvpE,WACA7K,MAAOhD,EAAYjB,cAEvBu4E,GAAe,CACXzpE,WACA7K,MAAOhD,EAAYjB,gBAExBsI,MAAK,SAAAvD,GACJ,OAAOA,EAAS/C,KAAI,SAAA8O,GAChB,GAAIA,EAAI9L,GACJ,OAAO8L,EAAIvI,aAjBZ,wCAK2CurB,IAL3C,mDAKJ2iD,EALI,KAKWE,EALX,KAqBXD,EAAiBD,GACjBG,EAAkBD,GAClB4C,GAA2B,GAC3BF,GAA0B,GAC1B7mD,GAAa,GAzBF,4CAAH,qDA4BN7e,GAAW,SAACvR,GACVA,GAAKA,EAAEkB,OACPgvB,GAAW,2BACJxjB,IADG,mBAEL1M,EAAEkB,MAAM9F,OAAO2H,KAAO/C,EAAEhB,UAI/B04E,GAAe,uCAAG,4BAAAz1E,EAAA,6DACpBg1E,GAA0B,GADN,SAEYhB,GAAc,CAC1Cp0E,MAAOhD,EAAYjB,YACnB63E,cAAepB,EAAc,qBAC9BnuE,MAAK,SAAAwI,GACJ,GAAIA,EAAI9L,GACJ,OAAO8L,EAAIvI,UAPC,OAEdwxE,EAFc,OAUpBrD,GAAiB,SAAAsD,GAAM,kCAChBD,GADgB,IAEnB34E,MAAM,GAAD,oBACE44E,EAAO54E,OADT,aAEE24E,EAAkB34E,aAG7Bi4E,GAA0B,GAjBN,2CAAH,qDAoBfY,GAAgB,uCAAG,4BAAA51E,EAAA,6DACrBk1E,GAA2B,GADN,SAEYhB,GAAe,CAC5Ct0E,MAAOhD,EAAYjB,YACnB63E,cAAelB,EAAe,qBAC/BruE,MAAK,SAAAwI,GACJ,GAAIA,EAAI9L,GACJ,OAAO8L,EAAIvI,UAPE,OAEf2xE,EAFe,OAUrBtD,GAAkB,SAAAoD,GAAM,kCACjBE,GADiB,IAEpB94E,MAAM,GAAD,oBACE44E,EAAO54E,OADT,aAEE84E,EAAmB94E,aAG9Bm4E,GAA2B,GAjBN,2CAAH,qDAoBhBY,GAAuB,SAAC/3E,EAAG+C,GACzB/C,GAAKA,EAAE2lB,WAAa3lB,EAAE2lB,SAAS1oB,IAGnCizB,GAAW,2BACJxjB,IADG,mBAEL3J,EAAO/C,EAAE2lB,aAIZqyD,GAAiB,SAACh4E,EAAG+C,GACvBmtB,GAAW,2BACJxjB,IADG,mBAEL3J,EAAO/C,EAAE2lB,aAIZsyD,GAAe,SAACj4E,EAAG+C,GACrBmtB,GAAW,2BACJxjB,IADG,mBAEL3J,EAAO,CACJ6mC,UAAW5pC,EAAE4pC,UACbE,QAAS9pC,EAAE8pC,aAKjBouC,GAAc,WAChBvB,GAAoB,GACpBE,GAAuB,IAGrBsB,GAAMloE,uBAAY,SAAC5U,GACrB,OACI,yBAAKmM,IAAG,UAAK9E,0BAAL,oDAA8E7D,EAAY4S,iBAA1F,qBAAuHpW,EAAE4B,GAAzH,iBAAoIwH,KAAK2zE,OAAS1mE,IAAI,OAEnK,IAcGguB,GAAa,uCAAG,WAAOziC,GAAP,2CAAAgF,EAAA,6DAElB00E,GAAoB,GACpBE,GAAuB,GACvBrgB,IAAiB,GAEX6hB,EAAa,aAAIhE,EAAcr1E,OAAOyxB,WAAU,SAAA4xB,GAAK,OAAIA,EAAMplD,KAAM42E,EAAY52E,MACjFq7E,EAPY,aAOMjE,EAAcr1E,OAChCu5E,EARY,eAQQhE,GAEpBiE,EAAgBrE,EAAWnvE,MAAK,SAAAnC,GAAM,OAAIA,EAAO5F,KAAMA,KAE7Dq7E,EAAYD,GAAZ,2BACOC,EAAYD,IADnB,IAEIvC,kBAAmB0C,EACnB1B,aACAjB,WAAY,IAAIpxE,OAGdg0E,EAAU,CACZx7E,GAAIq7E,EAAYD,GAAYp7E,GAC5By7E,SAAgB,IAANz7E,EACV65E,cAtBc,UAyBAd,GAAoBn3E,EAAYjB,YAAaF,KAAKiJ,UAAU8xE,IAAUvyE,MAAK,SAAAwI,GACzF,GAAIA,EAAI9L,GACJ,OAAO8L,EAAIvI,UA3BD,uCA+BJ,IAANlJ,EA/BU,sBAgCgBq7E,EAAY7xD,OAAO4xD,EAAY,GAhC/C,mBAgCHM,EAhCG,KAkCVrE,GAAiB,SAAAsE,GAAK,kCAAUA,GAAV,IAAiB55E,MAAOs5E,QAE1CjE,EAAc,mBApCR,wBAqCAwE,EAAaxE,EAAcr1E,MAAMzD,OAAS,GAE5Cu9E,EAAazE,EAAc,mBAAmB12D,MAAM,UAE7C,GAAKk7D,EAEhBC,EAAaA,EAAWn4D,KAAK,SA3CvB,UA6C0Bs1D,GAAc,CAC1Cp0E,MAAOhD,EAAYjB,YACnB63E,cAAeqD,IAChB5yE,MAAK,SAAAwI,GACJ,GAAIA,EAAI9L,GACJ,OAAO8L,EAAIvI,UAlDb,SA6CAwxE,EA7CA,SAqDmBA,EAAkB34E,OAAS24E,EAAkB34E,MAAMzD,OAAS,GAE7Ek6E,EAFgF,UAE7D/yE,0BAF6D,sHAE8E41E,EAAY/8E,OAAS,GAEnLo8E,EAAkB34E,MAAMzD,QAAU,IAClCk6E,EAAgB,KAGdsD,EAR8E,2BAS7E1E,GAT6E,IAUhFr1E,MAAM,GAAD,oBACEs5E,GADF,CAEDX,EAAkB34E,MAAM,QAItB,mBAAqBy2E,EAE/BnB,EAAiByE,IAEjBzE,GAAiB,SAAAsD,GAAM,MAAK,CACxBnC,cAAe,GACfz2E,MAAM,aACC44E,EAAO54E,WA5EhB,QAkFNy2E,EAlFM,UAkFa/yE,0BAlFb,uHAkFyJ61E,EAAav5E,MAAMzD,QAEtLg9E,EAAa,mBAAqB9C,EAE5BuD,EAAgBT,EAAav5E,MAAMu5E,EAAav5E,MAAMzD,OAAS,GAAGq6E,UAEpE,IAAInxE,KAAKk0E,EAAgB/C,WAAa,IAAInxE,KAAKu0E,IAAkBT,GAAgBA,EAAav5E,OAASu5E,EAAav5E,MAAMzD,OAAS,IAAK,IACxIg9E,EAAav5E,MAAMi6E,QAAQN,GAE3BJ,EAAav5E,MAAM4gD,MAEnB24B,EAAav5E,MAAMk6E,MAAK,SAACj3E,EAAGk3E,GAAJ,OAAU,IAAI10E,KAAK00E,EAAEvD,WAAa,IAAInxE,KAAKxC,EAAE2zE,eAGrE2C,GAAgBA,EAAav5E,OAASu5E,EAAav5E,MAAMzD,OAAS,IAAM,IACxEg9E,EAAav5E,MAAMi6E,QAAQN,GAE3BJ,EAAav5E,MAAMk6E,MAAK,SAACj3E,EAAGk3E,GAAJ,OAAU,IAAI10E,KAAK00E,EAAEvD,WAAa,IAAInxE,KAAKxC,EAAE2zE,cAErE2C,EAAa,mBAAqB,IAItC/D,EAAkB+D,GAElBz8D,GAAmB,CACfP,QAAS,UACTC,QAAS,UACTC,UAAW,gCACXC,UAAW,8BACX5W,KAAM,UACNuR,KAAM,eACNuB,MAAM,IAlHA,wBAqHVkE,GAAmB,CACfP,QAAS,UACTC,QAAS,UACTC,UAAW,iCACXC,UAAW,8BACX5W,KAAM,QACNuR,KAAM,uBACNuB,MAAM,IAIV08D,GAAiB,SAAAjyB,GAAK,kCACfA,GADe,IAElBrjD,MAAM,aACCs5E,QAnID,gCAyId3B,GAAoB,GACpBE,GAAuB,GAEvB/6D,GAAmB,CACfP,QAAS,OACTC,QAAS,QACTC,UAAW,iDACXC,UAAW,+DACX5W,KAAM,QACNuR,KAAM,2BACNuB,MAAM,IAnJI,QAyJlB4+C,IAAiB,GAzJC,4CAAH,sDA4JnB,OACI,oCACI,kBAAC7sD,EAAA,EAAD,KACI,kBAAC2U,GAAA,EAAD,KACI,yBAAKnhB,UAAU,UACX,yBAAKA,UAAS,gBAAWgzB,EAAY,SAAW,KAC5C,yBAAKhzB,UAAU,yBACX,yBAAKA,UAAU,eACX,0BAAMA,UAAU,qBAChB,2BAAIyI,EAAE,kBAEV,yBAAKzI,UAAU,eACX,yBAAKA,UAAU,mBACX,kBAAC,KAAD,CACIF,GAAG,SACH8F,KAAK,SACL5F,UAAU,UACVqU,YAA8B,OAAjBjS,IAAKC,SAAmB,2BAA0B,qBAC/D4lB,OAAQ7T,OAInBglD,IAAiB,yBAAKt5D,GAAG,gBAC1B,yBAAKE,UAAU,oBACTgzB,GACE,yBAAKhzB,UAAU,aACX,kBAAC,KAAD,CAAiBA,UAAU,mBAAmBoK,SAAS,mBAAmBD,QAAS,kBAAM8oB,GAAcD,KAAY,0BAAMhzB,UAAU,qBAA2ByI,EAAE,0BAGvKuqB,GACG,yBAAKhzB,UAAU,aACX,kBAAC,KAAD,CAAiBA,UAAU,iCAAiCoK,SAAS,mBAAmBD,QAAS,kBAAM8oB,GAAcD,KAAY,0BAAMhzB,UAAU,qBAA2ByI,EAAE,0BAGtL,yBAAKzI,UAAU,aACX,kBAAC,KAAD,CACImK,QAASmwE,GACTlwE,SAAS,oBAER3B,EAAE,4BAKlBuqB,GACG,yBAAKhzB,UAAU,mCACX,kBAAC,KAAD,CACIF,GAAG,UACHsK,SAAS,WACTiK,YAAa5L,EAAE,4BACfqD,WAAY6C,EACZ/C,OAAQ,CAAE/J,MAAO,QACjBA,MAAO0N,IAAWA,GAAQgpE,YAAchpE,GAAQgpE,WAAW/jE,KAC3DyT,OAAQ,SAACplB,GAAD,OAAO+3E,GAAqB/3E,EAAG,iBAE3C,kBAAC,KAAD,CACI/C,GAAG,YACHsK,SAAS,WACTiK,YAAa5L,EAAE,gCACfqD,WAAYgrE,EACZlrE,OAAQ,CAAE3J,KAAuB,OAAjBG,IAAKC,SAAmB,SAAW,SAAUR,MAAO,MACpEA,MAAO0N,IAAWA,GAAQipE,WAAajpE,GAAQipE,UAAU14E,GACzDmoB,OAAQ,SAACplB,GAAD,OAAOg4E,GAAeh4E,EAAG,cACjCimB,iBAAe,IAGnB,kBAAC,KAAD,CACIhpB,GAAG,YACH8F,KAAK,YACLwE,SAAS,WACTiK,YAAa5L,EAAE,gCACf82D,WAAW,EACXz2C,iBAAiB,EACjB7c,kBAAmB4mB,GACnBne,QAAS,kBAAMoe,IAAe,IAC9B7K,OAAQ,SAACplB,GAAD,OAAOi4E,GAAaj4E,EAAG,gBAEnC,kBAAC,KAAD,CACI/C,GAAG,OACH8F,KAAK,OACLwE,SAAS,WACTiK,YAAa5L,EAAE,+BACfqD,WAAYka,EACZpa,OAAQ,CAAE3J,KAAuB,OAAjBG,IAAKC,SAAmB,SAAW,SAAUR,MAAO,MACpEA,MAAO0N,IAAWA,GAAQsC,MAAQtC,GAAQsC,KAAK/R,GAC/CmoB,OAAQ,SAACplB,GAAD,OAAOg4E,GAAeh4E,EAAG,SACjCimB,iBAAe,IAGnB,kBAAC,KAAD,CACIhpB,GAAG,WACH8F,KAAK,WACLwE,SAAS,WACTiK,YAAY,WACZvI,WAAYqgD,EACZvgD,OAAQ,CAAE3J,KAAuB,OAAjBG,IAAKC,SAAmB,SAAW,SAAUR,MAAO,MACpEA,MAAO0N,IAAWA,GAAQxO,UAAYwO,GAAQxO,SAASjB,GACvDmoB,OAAQ,SAACplB,GAAD,OAAOg4E,GAAeh4E,EAAG,aACjCimB,iBAAe,IAGnB,kBAAC,KAAD,CACIhpB,GAAG,cACH8F,KAAK,cACLwE,SAAS,WACTiK,YAAa5L,EAAE,gCACfqD,WAAY6C,EACZ/C,OAAQ,CAAE/J,MAAO,QACjBA,MAAO0N,IAAWA,GAAQixC,aAAejxC,GAAQixC,YAAYhsC,KAC7DyT,OAAQ,SAACplB,GAAD,OAAO+3E,GAAqB/3E,EAAG,kBAE3C,kBAAC,KAAD,CACI/C,GAAG,oBACH8F,KAAK,oBACLwE,SAAS,WACTiK,YAAY,SACZvI,WAAYkrE,EACZprE,OAAQ,CAAE3J,KAAuB,OAAjBG,IAAKC,SAAmB,SAAW,SAAUR,MAAO,MACpEA,MAAO0N,IAAWA,GAAQopE,mBAAqBppE,GAAQopE,kBAAkB74E,GACzEmoB,OAAQ,SAACplB,GAAD,OAAOg4E,GAAeh4E,EAAG,sBACjCimB,iBAAe,IAEnB,kBAAC,KAAD,CACIhpB,GAAG,aACH8F,KAAK,aACLwE,SAAS,WACTiK,YAAa5L,EAAE,oCACf82D,WAAW,EACXz2C,iBAAiB,EACjBpU,QAAS,kBAAMoe,IAAe,IAC9B7mB,kBAAmB4mB,GACnB5K,OAAQ,SAACplB,GAAD,OAAOi4E,GAAaj4E,EAAG,iBAEnC,kBAAC,KAAD,CACI/C,GAAG,OACH8F,KAAK,mBACLwE,SAAS,WACTiK,YAAa5L,EAAE,4BACf5G,MAAO0N,IAAWA,GAAQqpE,iBAC1B3wD,OAAQ7T,UAQpC,kBAAC5H,EAAA,EAAD,CAAWyvE,OAAO,GACd,kBAAC96D,GAAA,EAAD,KAEQ+1D,GAAiBA,EAAcr1E,MAAMzD,OAAS,GAC9C,oCACI,yBAAK4B,UAAU,kBACX,kBAACwM,EAAA,EAAD,KACI,kBAAC2U,GAAA,EAAD,KACI,wBAAInhB,UAAU,cAAcyI,EAAE,iCAC9B,yBAAKzI,UAAU,mBACVk3E,EAAcr1E,MAAMY,KAAI,SAACvE,EAAGwE,GAAJ,OACrB,yBAAKpE,IAAKoE,EAAO5C,GAAE,eAAU4C,GAAS1C,UAAU,eAC5C,yBAAKmK,QAAS,kBAAMqtE,EAAUt5E,EAAE4B,KAAKE,UAAU,aAC3C,kBAACg7E,GAAD,CAAKl7E,GAAI5B,EAAE4B,KACX,yBAAKE,UAAU,iBAEnB,yBAAKA,UAAU,gBACX,yBAAKmK,QAAS,kBAAMgwE,GAAaj8E,EAAE4B,KAAKE,UAAU,iBAC9C,0BAAMA,UAAU,YAAY9B,EAAEkX,QAC9B,0BAAMtV,GAAE,eAAU5B,EAAE4B,IAAME,UAAU,gCAExC,yBAAKA,UAAU,gBACX,yBAAKqK,IAAG,UAAK9E,0BAAL,0CAAoE7D,EAAY4S,iBAAhF,mBAA2GpW,EAAEq6E,WAAWz4E,GAAxH,gBAA0IyU,IAAI,KAEtJ,6BACI,+BAAQrW,EAAEq6E,WAAW/jE,MACrB,8BAAOpN,EAAYlJ,EAAEu6E,aAEzB,2BAAOz4E,UAAS,iBA/ehDgB,EA+e0E9C,EAAEy6E,kBAAkB1mE,OA9enG,CACX,SAAY,gBACZ,UAAa,mBACb,SAAY,gBAGFjR,MAweiI,OAAjBoB,IAAKC,SAAmBnE,EAAEy6E,kBAAkB1mE,OAAS/T,EAAEy6E,kBAAkBzmE,SAEtJ+nE,GAAY3mD,WAAU,SAAAtxB,GAAK,OAAIA,IAAS9D,EAAE4B,OAAO,GAAK,kBAAC,GAAiBs6E,GAAWlD,EAAcr1E,MAAMa,MAG/F+E,EAAe,GAAI,WAAY/F,IAC5BxD,EAAEsiD,YAAY1gD,KAAM4B,EAAYoI,QACpCrC,EAAe,GAAI,QAAS/F,KAEF,IAA3BxD,EAAEy6E,kBAAkB74E,IACvB,yBAAKE,UAAU,iBACX,4BAAQA,UAAU,kDAAkDmK,QAAS,kBAlWhHrK,EAkWsI5B,EAAE4B,GAjW7J85E,EAAc,IACdF,GAAuB,QACvBpC,EAAkBx3E,GAHE,IAACA,IAkW8I2I,EAAE,4BAC7G,4BAAQzI,UAAU,+CAA+CmK,QAAS,kBA7V9GrK,EA6VmI5B,EAAE4B,GA5VzJ85E,EAAc,IACdJ,GAAoB,QACpBlC,EAAkBx3E,GAHC,IAACA,IA6V2I2I,EAAE,4BA3f9I,IAACzH,OAogBQ,kBAACmgB,GAAA,EAAD,KACK04D,GACG,yBAAK/5E,GAAG,qBAAqBE,UAAU,aAG/C,kBAACmhB,GAAA,EAAD,KACK+1D,GAAiBA,EAAc,oBAC5B,yBAAKl3E,UAAU,eACX,4BAAQmK,QAAS,kBAAMowE,OAAoB9xE,EAAE,iCAUjF,kBAAC+D,EAAA,EAAD,KACI,kBAAC2U,GAAA,EAAD,KACI,yBAAKnhB,UAAU,mBACX,2BAAOA,UAAU,cAAcyI,EAAE,wBACjC,6BACI,yBAAKzI,UAAU,YACVo3E,GAAkBA,EAAev1E,OAASu1E,EAAev1E,MAAMzD,OAAS,EACrEg5E,EAAev1E,MAAMY,KAAI,SAACvE,EAAGwE,GAAJ,OACrB,yBAAKpE,IAAKoE,EAAO5C,GAAE,eAAU4C,GAAS1C,UAAU,eAC5C,yBAAKmK,QAAS,kBAAMqtE,EAAUt5E,EAAE4B,KAAKE,UAAU,aAC3C,kBAACg7E,GAAD,CAAKl7E,GAAI5B,EAAE4B,KACX,yBAAKE,UAAU,iBAEnB,yBAAKA,UAAU,gBACX,yBAAKmK,QAAS,kBAAMgwE,GAAaj8E,EAAE4B,KAAKE,UAAU,iBAC9C,0BAAMA,UAAU,YAAY9B,EAAEkX,QAAc,0BAAMtV,GAAE,eAAU5B,EAAE4B,IAAME,UAAU,gCAEpF,yBAAKA,UAAU,gBACX,yBAAKqK,IAAG,UAAK9E,0BAAL,0CAAoE7D,EAAY4S,iBAAhF,mBAA2GpW,EAAEq6E,WAAWz4E,GAAxH,gBAA0IyU,IAAI,KACtJ,6BACI,+BAAQrW,EAAEq6E,WAAW/jE,MACrB,8BAAOpN,EAAYlJ,EAAEu6E,aAEzB,2BAAOz4E,UAAU,uBAAwC,OAAjBoC,IAAKC,SAAmBnE,EAAEy6E,kBAAkB1mE,OAAS/T,EAAEy6E,kBAAkBzmE,SAEpH+nE,GAAY3mD,WAAU,SAAAtxB,GAAK,OAAIA,IAAS9D,EAAE4B,OAAO,GAAK,kBAAC,GAAiBs6E,GAAWhD,EAAev1E,MAAMa,UAKrH,uBAAG1C,UAAU,YAAYyI,EAAE,2BAGlCsxE,GAA2B,yBAAKj6E,GAAG,sBAAsBE,UAAU,YAEnEo3E,GAAkBA,EAAe,oBAC9B,yBAAKp3E,UAAU,eACX,4BAAQmK,QAAS,kBAAMuwE,OAAqBjyE,EAAE,+BAQtE,kBAAC,KAAD,CACI3I,GAAG,eACHE,UAAU,eACVke,SAAS,EACTvC,QAAS49D,EAETjuE,OAAQlJ,IAAKC,UAEb,6BACI,yBAAKrC,UAAU,mBACX,2BAAOA,UAAU,sBACjB,yBAAKA,UAAU,gBACX,2BAAOA,UAAU,sBAAsByI,EAAE,yBACzC,2BAAO3I,GAAG,eAAe2I,EAAE,iCAGnC,6BACA,yBAAKzI,UAAU,WACX,8BAAOyI,EAAE,yBACT,kBAAC,KAAD,CACI3I,GAAG,WACH+nB,WAAW,EACXhmB,MAAO83E,EACP1xD,OAAQ,SAACplB,GAAD,OAAO+2E,EAAc/2E,EAAEhB,QAC/BwS,YAA8B,OAAjBjS,IAAKC,SAAmB,+BAA8B,iCAI/E,yBAAK2Z,MAAM,4BACP,4BAAQ7R,QAAS,kBAAM4wE,MAAe/+D,MAAM,yCAAyCkgE,cAAY,QAAjG,YACA,4BAAQ/xE,QAAS,kBAAMo4B,GAAc,IAAIvmB,MAAM,yCAAyCkgE,cAAY,QAApG,aAIR,kBAAC,KAAD,CACIp8E,GAAG,kBACHE,UAAU,eACVke,SAAS,EACTvC,QAAS89D,EAETnuE,OAAQlJ,IAAKC,UAEb,6BACI,yBAAKrC,UAAU,sBACX,2BAAOA,UAAU,yBACjB,yBAAKA,UAAU,gBACX,2BAAOA,UAAU,qBAAqByI,EAAE,4BACxC,2BAAO3I,GAAG,eAAe2I,EAAE,oCAGnC,6BACA,yBAAKzI,UAAU,WACX,8BAAOyI,EAAE,yBACT,kBAAC,KAAD,CACI3I,GAAG,WACH+nB,WAAW,EACXI,OAAQ,SAACplB,GAAD,OAAO+2E,EAAc/2E,EAAEhB,QAC/BwS,YAA8B,OAAjBjS,IAAKC,SAAmB,+BAA8B,iCAI/E,yBAAK2Z,MAAM,+BACP,4BAAQ7R,QAAS,kBAAM4wE,MAAe/+D,MAAM,yCAAyCkgE,cAAY,QAAjG,YACA,4BAAQ/xE,QAAS,kBAAMo4B,GAAc,IAAIvmB,MAAM,0DAA0DkgE,cAAY,QAArH,gBC9rBPC,GAAa,SAAC,GAAgB,IA4CnCC,EAyMAn5C,EArPqB7gB,EAAa,EAAbA,OAEzB,EAAsBja,qBAAW7G,GAA1BI,EAAP,oBAEM0jB,EAAsBrV,iBAAO,MAC7BssE,EAAuBtsE,iBAAO,MAC9BusE,EAA0BvsE,iBAAO,MACjCsV,EAAuBtV,iBAAO,MAC9BwsE,EAAyBxsE,iBAAO,MACtC,EAAgC3H,mBAAS,IAAzC,mBAAOo0E,EAAP,KAAiBC,EAAjB,KAEA,EAAwCr0E,mBAAS,MAAjD,mBAAOs0E,EAAP,KAAqBC,EAArB,KACA,EAAkCv0E,qBAAlC,mBAAOw0E,EAAP,KAAkBC,EAAlB,KACA,EAAgCz0E,mBAAS,IAAzC,mBAAOkzC,EAAP,KAAiBC,EAAjB,KACA,EAAkCnzC,oBAAS,GAA3C,mBAAOunB,EAAP,KAAkB1R,EAAlB,KACA,EAA8C7V,oBAAS,GAAvD,mBAAOixB,EAAP,KAAwBC,EAAxB,KACA,EAAgDlxB,oBAAS,GAAzD,mBAAO6zB,EAAP,KAAyB+F,EAAzB,KACA,EAAgD55B,oBAAS,GAAzD,mBAAOmxE,EAAP,KACA,IADA,KAC0CnxE,oBAAS,IAAnD,qBAAO00E,GAAP,MAAsBC,GAAtB,MACA,GAAgC30E,oBAAS,GAAzC,qBAAO40E,GAAP,MAAiBC,GAAjB,MACA,GAAsC70E,mBAAS,IAA/C,qBAAO80E,GAAP,MAAoBC,GAApB,MACA,GAA8C57E,IAAM6G,SAAS,KAA7D,qBAAOg1E,GAAP,MAAwBC,GAAxB,MACA,GAAoCj1E,oBAAS,GAA7C,qBAAOk1E,GAAP,MAAmBC,GAAnB,MAEA,GAA0Cn1E,oBAAS,GAAnD,qBAAOgxD,GAAP,MAAsBC,GAAtB,MACA,GAA8CjxD,oBAAS,GAAvD,qBAAOo1E,GAAP,MAAwBC,GAAxB,MAEQ9+D,GAAuBb,KAAvBa,mBAER,GAaI+4D,KAZAD,GADJ,GACIA,mBACAf,GAFJ,GAEIA,YACA1wD,GAHJ,GAGIA,cACAmmC,GAJJ,GAIIA,aACA2qB,GALJ,GAKIA,aACAE,GANJ,GAMIA,WACAroE,GAPJ,GAOIA,MACAioE,GARJ,GAQIA,eACAQ,GATJ,GASIA,eACAC,GAVJ,GAUIA,kBACAH,GAXJ,GAWIA,cACAC,GAZJ,GAYIA,iBAIEuG,GAAW3tE,iBAAO,MAElB4tE,GAAU,uCAAG,WAAMC,GAAN,iCAAA94E,EAAA,yDAEVs0D,GAFU,qBAIP4jB,GAJO,oBAMHY,EAAOp9B,YAAY1gD,KAAM42E,GAAY6B,WAAWz4E,GAN7C,uBAOH+9E,GAAS,cAAe,YAPrB,iCAWPxkB,IAAiB,GAEXykB,EAAapB,EAAe,CAC9B9D,iBAAkB8D,GAAgBA,EAAa92E,KAC/Cm4E,oBAAqBrB,GAAgBA,EAAa/0E,KAClDq2E,oBAAqBtB,GAAgBA,EAAa94D,KAClDq6D,oBAAqBvB,GAAgB,IAAIp1E,KAAK,IAAOo1E,EAAarxE,UAAU/B,cAAc62C,OAAO,GAAI,IACrG,GAEE+9B,EApBC,mDAqBAxH,IACAkH,GACAE,GAvBA,IAwBHK,kBAAmBrB,GAAgBc,EAAOzjE,OAAOqG,MAAM,KAAK,GAAK,GACjEm4D,kBAAmB3B,GAAWnvE,MAAK,SAAAnC,GAAM,OAAiB,IAAbA,EAAO5F,MACpDu6E,qBAAsBuD,EAAOpF,YA1B1B,mBA8BiBP,GAAYv2E,EAAYjB,YAAaF,KAAKiJ,UAAU00E,IAAen1E,MAAK,SAAAvD,GACxF,GAAIA,EAASC,GACT,OAAOD,EAASwD,UAhCrB,QA8BGk8C,EA9BH,OAoCHg5B,EAAap+E,GAAKolD,EAAMplD,GApCrB,kDAsCH6e,GAAmB,CACfP,QAAS,OACTC,QAAS,QACTC,UAAW,0CACXC,UAAW,gDACXrF,KAAM,6BA3CP,QA+CDklE,EA/CC,aA+CsBlH,GAAcr1E,OACrCw8E,EAAoB,aAAInH,GAAcr1E,OAAOyxB,WAAU,SAAAmnD,GAAM,OAAIA,EAAO36E,KAAM42E,GAAY52E,MAEhGs+E,EAAiBC,GAAqBH,EAEtC/G,IAAiB,SAAAsE,GAAK,kCAAUA,GAAV,IAAiB55E,MAAOu8E,OAC9C/kB,IAAiB,GAEjB16C,GAAmB,CACfP,QAAS,UACTC,QAAS,UACTE,UAAW,6BACXD,UAAW,iCA3DR,2BAgEHs/D,EAAOp9B,YAAY1gD,KAAM4B,EAAYoI,OAhElC,wBAiEH+zE,GAAS,cAAe,YAjErB,kCAqEPxkB,IAAiB,GAEXilB,EAvEC,2BAwEAV,GAxEA,IAyEHnF,UAAW,IAAInxE,KACfixE,WAAY,CACRnqE,MAAO1M,EAAYd,UACnB4T,KAAM9S,EAAYhB,SAClBZ,GAAI4B,EAAYoI,QAEpB6uE,kBAAmB3B,GAAWnvE,MAAK,SAAAnC,GAAM,OAAiB,IAAbA,EAAO5F,MACpDu6E,qBAAsBuD,EAAOpF,UAC7BI,iBAAkB8D,EAAa92E,KAC/Bm4E,oBAAqBrB,EAAa/0E,KAClCq2E,oBAAqBtB,EAAa94D,KAClCq6D,oBAAqB,IAAI32E,KAAK,IAAOo1E,EAAarxE,UAAU/B,cAAc62C,OAAO,GAAI,GACrFq8B,WACA2B,kBAAmBP,EAAOzjE,OAAOqG,MAAM,KAAK,KAtFzC,UAyFaw3D,GAASt2E,EAAYjB,YAAaF,KAAKiJ,UAAU80E,IAAoBv1E,MAAK,SAAAvD,GAC1F,GAAIA,EAASC,GACT,OAAOD,EAASwD,OAEhB2V,GAAmB,CACfP,QAAS,OACTC,QAAS,QACTC,UAAW,+BACXC,UAAW,+BACXpV,MAAO,SAlGZ,WAyFD+7C,EAzFC,OAuGPo5B,EAAkBx+E,GAAKolD,EAAMplD,GAEvBs+E,EAzGC,eAyGuBlH,IAC1BoB,EA1GG,UA0GgB/yE,0BA1GhB,sHA0G2J64E,EAAiBv8E,MAAMzD,UAErLggF,GAAoBA,EAAiBv8E,OAASu8E,EAAiBv8E,MAAMzD,OAAS,GAAKggF,EAAiBv8E,MAAMzD,OAAS,IAAK,GA5GrH,wBA6GHggF,EAAiBv8E,MAAM4gD,MA7GpB,UA+G6Bq2B,GAAc,CAC1Cp0E,MAAOhD,EAAYjB,YACnB63E,kBACDvvE,MAAK,SAAAwI,GACJ,GAAIA,EAAI9L,GACJ,OAAO8L,EAAIvI,UApHhB,SA+GGwxE,EA/GH,SAuHsBA,EAAkB34E,OAA4C,IAAnC24E,EAAkB34E,MAAMzD,SACxEk6E,EAAgB,IAGpB8F,EAAiB,mBAAqB9F,EA3HnC,QA8HP8F,EAAiBv8E,MAAMi6E,QAAQwC,GAE/BnH,GAAiBiH,GACjB/kB,IAAiB,GAEjB16C,GAAmB,CACfP,QAAS,UACTC,QAAS,UACTE,UAAW,2BACXD,UAAW,iCAvIR,QA2IXm5D,IAAmB,GA3IR,0DAAH,sDA+IV8G,GAAW,SAACp1E,GAEd,OADAC,QAAQ1C,IAAIyC,GACJA,EAAMxB,MACV,IAAK,WAKL,IAAK,WACD,OACI,yBAAK3H,UAAU,SAASyI,GAAE,wBAGlC,IAAK,WACD,OACI,yBAAKzI,UAAU,SAASyI,GAAE,0BAgB1C,GAA0E6kB,aAAQ,CAC9EgJ,KAAM,WACNunB,eAAgB,WAChBC,cAAe,CACX1oC,OAAQshE,IAAeA,GAAYthE,OACnCorC,YAAak2B,IAAeA,GAAYl2B,YACxC2P,UAAWumB,IAAeA,GAAYvmB,UACtCt+C,KAAM6kE,IAAeA,GAAY7kE,KACjC2mE,UAAW9B,IAAeA,GAAY2D,qBACtCt5E,SAAU21E,IAAeA,GAAY31E,SACrC44E,WAAYjD,IAAeA,GAAYiD,WACvCx/D,OAAQ,IAEZ4jC,cAAUxiC,EACVnI,aAASmI,EACTyiC,aAAc,aACdC,kBAAkB,EAClBC,kBAAkB,IAjBdzwB,GAAR,GAAQA,SAAUD,GAAlB,GAAkBA,aAAcgxD,GAAhC,GAAgCA,UAAWC,GAA3C,GAA2CA,SAAU71C,GAArD,GAAqDA,OAAQi1C,GAA7D,GAA6DA,SAoBvDxT,GAAUt6D,iBAAO,MAEjBgS,GAAchS,iBAAO,MAInBtH,GAAMC,cAAND,EAERI,qBAAU,WACNoV,GAAa,KACd,CAAC24D,KAEJ,IAsGIt3D,GAtGEggC,GAAgB,CAClBC,QAAQ,GAAD,OAAKh6C,0BAAL,iEAA2Fi3E,GAAsB9F,IAAeA,GAAY52E,IACnJ4+E,UAAU,GAAD,OAAKn5E,0BAAL,2DAAqFi3E,GAAsB9F,IAAeA,GAAY52E,IAC/I6+E,UAAWvB,IAiDTwB,IA5CSJ,KA4CQK,mBAAQ,WAC3B,OAAQnI,IACJA,GAAY6B,WAAWz4E,KAAO4B,EAAYoI,QACzCpI,EAAYb,WACT4G,EAAe,GAAI,QAAS/F,KACrC,CAACg1E,MAEEoI,GAAaD,mBAAQ,WACvB,OAAOnI,IAAmD,IAApCA,GAAYiC,kBAAkB74E,KACrD,CAAC42E,KAEEh0C,GAAoB,WAEtB,QAAIg0C,IAAejvE,EAAe,GAAI,OAAQ/F,IAAiBk9E,KAAoBE,QAEvEpI,IAAejvE,EAAe,GAAI,SAAU/F,KAAiBs7E,KAmB7En0E,qBAAU,WACF6tE,IACAuG,IAAY,GACZwB,GAAS,SAAU,YLzPxB,SAAP,qCK0PYM,CAA+Br9E,EAAY4S,iBAAkBoiE,GAAY52E,IACpEiJ,MAAK,SAACvD,GAAD,OAAcA,EAASkV,UAC5B3R,MAAK,SAAC2R,GACH,IAAM1Q,EAAMlH,OAAO6X,IAAIC,gBAAgB,IAAIC,KAAK,CAACH,KACjDmiE,EAAaniE,GACb6gC,EAAYvxC,OAGpByyE,EAAY31E,OAEjB,IAKCwY,GADAo3D,GACe,CACX,CACI/uE,KAAM,SACN4X,YAAa,CACTC,WAAW,EACX3L,QAA0B,OAAjBzR,IAAKC,SAAmB,UAAY,SAC7C+H,SAAS,gBAAD,SAAoB3C,EAAe,GAAI,SAAU/F,MAAkBo9E,IAAcr3E,EAAe,GAAI,QAAS/F,KAAkBk9E,IAAmBlI,KAAgB,WAE9K17D,MAAO,WACHse,EAAmB,UAG3B,CACI3xB,KAAM,SACN4X,YAAa,CACTC,WAAW,EACX3L,QAA0B,OAAjBzR,IAAKC,SAAmB,SAAW,OAC5C+H,SAAS,cAAD,SAAkB3C,EAAe,GAAI,OAAQ/F,IAAiBk9E,KAAoBE,IAAcpI,KAAgB,WAE5H17D,MAAO,YACFo+C,IAAiB5rC,GAAamwD,GAAbnwD,MAKf,CACX,CACI7lB,KAAM,SACN4X,YAAa,CACTC,WAAW,EACX3L,QAA0B,OAAjBzR,IAAKC,SAAmB,SAAW,OAC5C+H,SAAU,cAEd4Q,MAAO,WACHwS,GAAamwD,GAAbnwD,MAMhB,IA0BMmV,GAAc,WAEhB,OADA/xB,SAASiS,uBAAuB,sBAAsB,GAAGC,cAAc,UAAU9H,SAC1E,GAWXnS,qBAAU,WACNiI,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,kBAChDE,aAAYH,SAASC,eAAe,iBACpCG,aAAW,CAAErJ,KAAM,cAGnBmJ,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,iBAChDE,aAAYH,SAASC,eAAe,gBACpCG,aAAW,CAAErJ,KAAM,gBACpB,CAACyxD,KAEJvwD,qBAAU,WACF6tE,IAAeA,GAAY7kE,MAA+B,IAAvB6kE,GAAY7kE,KAAK/R,GACpDulB,EAAqB1R,QAAQ8T,SAAU,EAEvCpC,EAAqB1R,QAAQ8T,SAAU,IAE5C,CAACivD,KAEJ,IAAM31C,GAAa,uCAAG,sDAAAj8B,EAAA,sEACZm0E,GAAmBv3E,EAAYjB,YAAai2E,GAAY52E,IAD5C,UAGsB,IAApC42E,GAAYiC,kBAAkB74E,GAHhB,oBAIR4C,EAAQ,aAAI00E,GAAev1E,OAAOyxB,WAAU,SAAA4xB,GAAK,OAAIA,EAAMplD,KAAM42E,GAAY52E,OAC7Ek/E,EALQ,aAKgB5H,GAAev1E,QAE3BynB,OAAO5mB,EAAO,GAEhC20E,IAAkB,SAAAoE,GAAK,kCAAUA,GAAV,IAAiB55E,MAAOm9E,QAE3C5H,GAAe,mBAXL,wBAYJsE,EAAatE,GAAev1E,MAAMzD,OAAS,GAE7Cu9E,EAAavE,GAAe,mBAAmB52D,MAAM,UAE9C,GAAKk7D,EAEhBC,EAAaA,EAAWn4D,KAAK,SAlBnB,UAoBiBw1D,GAAe,CACtCt0E,MAAOhD,EAAYjB,YACnB63E,cAAeqD,IAChB5yE,MAAK,SAAAwI,GACJ,GAAIA,EAAI9L,GACJ,OAAO8L,EAAIvI,UAzBT,SAoBJi2E,EApBI,SA4BUA,EAAap9E,OAASo9E,EAAap9E,MAAMzD,OAAS,GAE9Dk6E,EAFiE,UAE9C/yE,0BAF8C,uHAE8Fy5E,EAAkB5gF,OAAS,GAE1L6gF,EAAap9E,MAAMzD,QAAU,IAC7Bk6E,EAAgB,KAGdsD,EAR+D,2BAS9DxE,IAT8D,IAUjEv1E,MAAM,GAAD,oBACEm9E,GADF,CAEDC,EAAap9E,MAAM,QAIjB,mBAAqBy2E,EAE/BjB,GAAkBuE,IAElBvE,IAAkB,SAAAoD,GAAM,MAAK,CACzBnC,cAAe,GACfz2E,MAAM,aACC44E,EAAO54E,WAnDZ,mCA0DRa,EAAQ,aAAIw0E,GAAcr1E,OAAOyxB,WAAU,SAAA4xB,GAAK,OAAIA,EAAMplD,KAAM42E,GAAY52E,OAC5Es+E,EA3DQ,aA2DelH,GAAcr1E,QAE1BynB,OAAO5mB,EAAO,GAE/By0E,IAAiB,SAAAsE,GAAK,kCAAUA,GAAV,IAAiB55E,MAAOu8E,QAE1ClH,GAAc,mBAjEJ,wBAkEJwE,EAAaxE,GAAcr1E,MAAMzD,OAAS,GAE5Cu9E,EAAazE,GAAc,mBAAmB12D,MAAM,UAE7C,GAAKk7D,EAEhBC,EAAaA,EAAWn4D,KAAK,SAxEnB,UA0EsBs1D,GAAc,CAC1Cp0E,MAAOhD,EAAYjB,YACnB63E,cAAeqD,IAChB5yE,MAAK,SAAAwI,GACJ,GAAIA,EAAI9L,GACJ,OAAO8L,EAAIvI,UA/ET,SA0EJwxE,EA1EI,SAkFeA,EAAkB34E,OAAS24E,EAAkB34E,MAAMzD,OAAS,GAE7Ek6E,EAFgF,UAE7D/yE,0BAF6D,sHAE8E64E,EAAiBhgF,OAAS,GAExLo8E,EAAkB34E,MAAMzD,QAAU,IAClCk6E,EAAgB,KAGdsD,EAR8E,2BAS7E1E,IAT6E,IAUhFr1E,MAAM,GAAD,oBACEu8E,GADF,CAED5D,EAAkB34E,MAAM,QAItB,mBAAqBy2E,EAE/BnB,GAAiByE,IAEjBzE,IAAiB,SAAAsD,GAAM,MAAK,CACxBnC,cAAe,GACfz2E,MAAM,aACC44E,EAAO54E,WAzGZ,QAgHlBmgC,GAAoB,GAhHF,4CAAH,qDAmHbk9C,GAAa,uCAAG,WAAO/rE,GAAP,iBAAArO,EAAA,sDACdkF,EAAM2Q,IAAIC,gBAAgBzH,EAAKiJ,KAAK0I,UAEpCT,EAAS,IAAIC,YACV66D,OAAS,WACZ,IAAIC,EAAM,IAAIC,MAAMh7D,EAAOpb,QAC3Bm2E,EAAIE,iBAAmB,WACnB3C,EAAgB,2BAAKxpE,EAAKiJ,MAAX,IAAiB/Q,SAAU+zE,EAAI/zE,YAC9CkwC,EAAYvxC,GACZyzE,IAAmB,KAG3Bp5D,EAAOQ,cAAc1R,EAAKiJ,KAAK0I,SAZb,2CAAH,sDAgBby6D,GAAgB,SAAC18E,GACnBA,EAAE0mD,eAAe3vC,iBAAiB,gBAAiB,UAAYlY,EAAYjB,aACvEy8E,GAAY9+E,OAAS,GAAGyE,EAAE0mD,eAAe3vC,iBAAiB,cAAesjE,GAAY15D,KAAK,OAkB5FgE,GAAsB,WACnBkb,KAYGg0C,KACIA,IAAeA,GAAY7kE,MAAQ6kE,GAAY7kE,KAAK/R,IAA6B,IAAvB42E,GAAY7kE,KAAK/R,GAC3EulB,EAAqB1R,QAAQ8T,SAAU,EAEvCpC,EAAqB1R,QAAQ8T,SAAU,EAE3CrC,EAAoBzR,QAAQ8T,SAAU,EACtC40D,EAAqB1oE,QAAQ8T,SAAU,EACvC60D,EAAwB3oE,QAAQ8T,SAAU,GAnB1CivD,KACIA,IAAeA,GAAY7kE,MAAQ6kE,GAAY7kE,KAAK/R,IAA6B,IAAvB42E,GAAY7kE,KAAK/R,GAC3EulB,EAAqB1R,QAAQ8T,SAAU,EAEvCpC,EAAqB1R,QAAQ8T,SAAU,EAE3CrC,EAAoBzR,QAAQ8T,SAAU,EACtC40D,EAAqB1oE,QAAQ8T,SAAU,EACvC60D,EAAwB3oE,QAAQ8T,SAAU,IAgBtD5e,qBAAU,WACN4kB,GAAS,cAAe,CACpB/N,SAAU,SAAC7d,GAAD,OAAWA,KAAWA,EAAM/B,IAAM,uBAEhD2tB,GAAS,OAAQ,CACb1N,UAAU,IAEd0N,GAAS,YAAa,CAClB1N,UAAU,IAEd0N,GAAS,WAAY,CACjB1N,UAAU,MAEf,CAAC0N,KAEJ,IAAMy5B,GAAiBp0C,uBAAY,YAAmB,IAAhBwoC,EAAe,EAAfA,SAClC,OACI,oCACI,2BAAOkkC,OAAQ,kBAAMjC,IAAc,IAAQkC,QAAS,kBAAMlC,IAAc,IAAO19E,IAAK69E,GAAUv2B,QAAQ,WAAWE,YAAa,YAAaj1C,MAAO,CAAEk1C,SAAU,OAAQ5nD,MAAO,QAAUM,UAAW,cAAewrB,UAAQ,EAAC1rB,GAAG,QAAQynD,iBAAkB,kBArDjP,WACd,IAAItC,EAASr0C,SAASkS,cAAc,WAChCoiC,EAAQt0C,SAASkS,cAAc,UAC/BmiC,IACAA,EAAOvlD,MAAQwlD,EAAMyC,WACrB1C,EAAOtlD,OAASulD,EAAM0C,aAgD2OJ,KACzP,4BAAQn9C,IAAKixC,EAAU3zC,KAAK,gBAE7Bm3E,KAAgB9B,KAAav1E,EAAe,GAAI,OAAQ/F,IAAgB+F,EAAe,GAAI,SAAU/F,KAAmB,4BAAQ1B,UAAU,gBAAgBmK,QAAS,SAACtH,GAAD,OAhQvJ,SAACA,GACxBA,EAAEm3B,iBACF,IAAIirB,EAASr0C,SAASkS,cAAc,WAChCoiC,EAAQt0C,SAASkS,cAAc,UACnCmiC,EAAOvlD,MAAQ,IACfulD,EAAOtlD,OAAS,IACAslD,EAAO6C,WAAW,MAExBC,UAAU7C,EAAO,EAAG,EAAG,IAAK,KAEtCu5B,GAAS,SAAUx5B,EAAOy6B,YAAa,CACnCC,gBAAgB,IAGpB5C,IAAiB,GACjBR,EAAuB5oE,QAAQvB,MAAMqF,QAAU,QAiPsIgwC,CAAqB5kD,IAAI8E,KAAK,UAA2B,OAAjBvF,IAAKC,SAAmB,0BAA4B,uBAGlR,IAEH,OACI,oCACI,kBAAC,KAAD,CACIvC,GAAG,cACHJ,MAAM,QACNwe,SAAS,EACTmC,QAASf,GACT3D,QAASgU,EACTrP,eAAe,EACfqD,YAAavB,EAAO3W,MACpBA,MA7PM,WACdgsE,IAAmB,GACnB,IAAM10D,EAAanS,SAASC,eAAe,gBAAkBD,SAASC,eAAe,eAAemS,cAAc,GAClH,GAAmB,OAAfD,GAA+C,OAAxBA,EAAWE,UAAsD,qBAAzBF,EAAWE,SAC1E,OAAOF,EAAWE,YA0Pd3X,OAAQlJ,IAAKC,UAEb,0BAAMvC,GAAG,gBAAgBD,IAAKwqE,GAASv8C,SAAUN,GAAamwD,KAC1D,yBAAK99E,IAAKkiB,GAAa/hB,UAAS,iBAAYs7C,GAAY,UAAYx7C,GAAG,gBACnE,yBAAKE,UAAU,QACT02E,IAAe8G,GACb,oCACI,0BAAM35D,wBAAyB,CAAEC,OAvqBlD,uuDAwqBmC,OAAjB1hB,IAAKC,SACF,iEACoC,0BAAM8H,QAAS,kBAAMw4B,OAArB,iBAChC,0BAAM3iC,UAAU,mBAAhB,8CAIJ,mDACyB,0BAAMmK,QAAS,kBAAMw4B,OAArB,WACrB,0BAAM3iC,UAAU,mBAAhB,mCAIN,yBAAKF,GAAG,mBAM1B,oCACI,yBAAKA,GAAG,kBAGR,kBAAC,KAAD,CACIA,GAAG,cACH8F,KAAK,SACL+B,KAAK,OACLyC,SAAUkxC,GAAY,SACtBgE,cAAeA,GACfp7B,kBAAkB,OAClBxB,SAAUX,IAAeA,GAAYpO,QACrCiX,eAAgB,CAAEgZ,SAAU,KAC5BvoB,YAAa,IACb/P,OAAQlJ,IAAKC,SACbu9E,YArcL,EAscK56D,SAlcH,SAAC7R,GACdA,GAAQA,EAAKo2C,iBACbp2C,EAAK63C,aAAc,IAicH60B,aAAc,SAAC1sE,GACXA,EAAKo2C,eAAe3vC,iBAAiB,gBAAiB,UAAYlY,EAAYjB,cAElFq/E,QAhcN,SAAC3sE,GAIXipE,EAHe,OAAfjpE,EAAKpP,QAAmB8c,UAAUk/D,QAgclBr1B,UAAW60B,GACXS,eAAgBT,GAChBU,aAnbA,SAAC9sE,GAErBA,EAAKkH,OAAS+hE,EAEd,IAAI8D,EAAoBC,aAAY,WAC5Bt/D,UAAUk/D,QAAU98C,GAAaA,EAAU9e,UAAU,IAA2C,IAArC8e,EAAU9e,UAAU,GAAGC,YAClF6e,EAAUm9C,OAAOn9C,EAAU9e,WAC3Bk8D,MAEKjE,GAAiBn5C,GAAaA,EAAU9e,UAAU,IAA2C,IAArC8e,EAAU9e,UAAU,GAAGC,YAChF6e,EAAUq9C,MAAMr9C,EAAU9e,aAGnC,KAEGk8D,EAAmB,WACrBE,cAAcL,KAoaEM,kBApYC,SAAC39E,GACtB,IAAI87E,EAAY97E,EAAEgiD,SAASjhC,KAAO,GAElCy5D,IAAmB,SAAAD,GAAe,OAAsBuB,MAkYpC8B,aA1YF,SAAC59E,GAEnBs6E,IAAe,SAAAD,GAAW,6BAAQA,GAAR,CAAqBr6E,EAAEkB,MAAMy5B,cAAch4B,eAyYjDmlD,QAAUu0B,GACVwB,SA/bL,SAACvtE,GAIZipE,EAHe,OAAfjpE,EAAKpP,QAAmB8c,UAAUk/D,QA+blB96D,UAAU,EACVplB,IAAK,SAAAgkC,GAAM,OAAIZ,EAAYY,MAInC,yBAAK7jC,UAAU,kBAEPs7C,GAAY,kBAAC4L,GAAD,CACR5L,SAAUA,IAGjBgiC,IAAc,yBAAKt9E,UAAU,cAAcmK,QAAS,WACjDuzE,GAAS/pE,QAAQgtE,UAErB,4BAAQjhF,MAAM,MAAMC,OAAO,MAAMyS,MAAO,CAAEqF,QAAS,QAAU3X,GAAG,YAGnEw7C,GACG,oCACI,yBAAKt7C,UAAU,cACX,6BACI,+BAAQyI,GAAE,yBACV,8BAAOi0E,EAAeA,EAAa92E,KAAO8wE,IAAeA,GAAYkC,mBAEzE,6BACI,+BAAQnwE,GAAE,wBACV,8BAAOi0E,EAAeA,EAAa/0E,KAAO+uE,IAAeA,GAAYqH,sBAEzE,6BACI,+BAAQt1E,GAAE,sBACV,8BAAOi0E,EAAex2E,EAAYw2E,EAAa94D,MAAQ8yD,IAAexwE,EAAYwwE,GAAYsH,uBAElG,6BACI,+BAAQv1E,GAAE,8BACV,8BAAOi0E,EAAe,IAAIp1E,KAAK,IAAOo1E,EAAarxE,UAAU/B,cAAc62C,OAAO,GAAI,GAAKu2B,IAAeA,GAAYuH,uBAI9H,yBAAKj+E,UAAU,cACX,6BACI,+BAAyB,OAAjBoC,IAAKC,SAAmB,kBAAoB,aACpD,uBAEIpE,OAAO,SACP+B,UAAU,OACVmK,QAAS,kBA/iBlB,WACvB,IAAMH,EAAMlH,OAAO6X,IAAIC,gBAAgB,IAAIC,KAAK,CAAC+hE,KAC3CtnE,EAAO1E,SAASnR,cAAc,KACpC6V,EAAKmB,KAAOzM,EACZsL,EAAKwF,aAAa,WAAlB,UAAiC47D,GAAYthE,OAA7C,YAAuDshE,GAAYqH,sBACnEntE,SAASnM,KAAKsW,YAAYzF,GAC1BA,EAAK0F,QACL1F,EAAK2F,WAAWC,YAAY5F,GAwiBmB0O,KAEdvb,GAAE,kCAGRi6B,OAAyBs6C,KAAav1E,EAAe,GAAI,OAAQ/F,IAAgB+F,EAAe,GAAI,SAAU/F,MAAmB,4BAAQiG,KAAK,SAASwC,QAAS,kBAzV3LoxC,EAAY,IACZkjC,GAAS,SAAU,IACnBlB,IAAc,QACdE,IAAmB,KAuV2B,OAAjBr7E,IAAKC,SAAmB,kBAAiB,kBAM1D,uBAAG+P,MAAO,CAAEqF,QAAS,OAAQmpE,UAAW,IAAM5gF,UAAW,yBAA0BH,IAAK08E,GAAyB9zE,GAAE,wCAElHmgC,GAAOzuB,QAAU,uBAAGna,UAAW,uDAAwDyI,GAAE,4BAE1F,yBAAKzI,UAAU,SACX,2BAAOugB,QAAQ,UAA2B,OAAjBne,IAAKC,SAAmB,SAAW,QAA5D,IAAqE,2BAAOrC,UAAU,WAAjB,MACrE,yBAAKA,UAAU,iBACX,2BACIH,IAAK4tB,GAAS,CACV1N,UAAU,EACVgpC,IAAK,EACL83B,IAAK,MAET/gF,GAAG,SACH8F,KAAK,SACL5F,UAAW4oC,GAAOxzB,OAAS,QAAU,GACrCwS,UAAU,MACVjgB,KAAK,OACLgL,SAAUqqE,IAAYt6C,KAGtBruB,YAA8B,OAAjBjS,IAAKC,SAAmB,0CAAsC,kCAG/E,0BAAMrC,UAAU,kBAEnB4oC,IAAUA,GAAOxzB,QAAUmpE,GAAS31C,GAAOxzB,SAG/CshE,IAAeA,GAAY2B,UACxB,yBAAKv4E,GAAG,kBACJ,+BAAQ2I,GAAE,2BACV,yBAAK3I,GAAG,oBAAoBE,UAAU,gBAElC,6BACI,+BAAQ02E,GAAY6B,WAAW3yE,MAC/B,8BAAO8wE,GAAYoK,aAMnC,yBAAK9gF,UAAU,eACX,yBAAKA,UAAU,cACX,yBAAKA,UAAU,SACX,2BAAOugB,QAAQ,eAAe9X,GAAE,yBAAhC,IAA0D,2BAAOuT,MAAM,WAAb,MAC1D,kBAAC,KAAD,CACIlc,GAAG,cACH8F,KAAK,cACLwE,SAAQ,UAAO00E,IAAgB9B,KAAav1E,EAAe,GAAI,OAAQ/F,KAAgB+F,EAAe,GAAI,SAAU/F,GAA+B,GAAb,WAA9H,YAAiJknC,GAAO4X,YAAc,QAAU,IACxL10C,WAAY6C,GACZ9M,MAAO60E,IAAeA,GAAYl2B,aAAek2B,GAAYl2B,YAAYhsC,KACzE5I,OAAQ,CAAE/J,MAAO,QACjB6S,QAAS8S,GACT3nB,IAAKy8E,EACLhxE,OAAQlJ,IAAKC,SACbgS,YAA8B,OAAjBjS,IAAKC,SAAmB,6BAA+B,iCACpEuoB,eAAgB,CAAEgZ,SAAU,KAC5B3b,OAAQ,SAAC9U,GAAD,OAAUsrE,GAAS,cAAetrE,EAAKqV,aAElDogB,IAAUA,GAAO4X,aAAe+9B,GAAS31C,GAAO4X,cAGrD,yBAAKxgD,UAAU,SACX,2BAAOugB,QAAQ,QAAQ9X,GAAE,wBAAzB,IAAkD,2BAAOuT,MAAM,WAAb,MAClD,kBAAC,KAAD,CACIlc,GAAG,OACH8F,KAAK,OACL/F,IAAK,SAAAA,GAAG,OAAIulB,EAAoBzR,QAAU9T,GAC1CuK,SAAQ,UAAO00E,IAAgB9B,KAAav1E,EAAe,GAAI,OAAQ/F,KAAgB+F,EAAe,GAAI,SAAU/F,GAA+B,GAAb,WAA9H,YAAiJknC,GAAOv4B,QAAU,QAAU,IACpLvE,WAAYka,GACZpa,OAAQ,CAAE3J,KAAuB,OAAjBG,IAAKC,SAAmB,SAAW,SAAUR,MAAO,MACpEyJ,OAAQlJ,IAAKC,SACbqS,QAAS8S,GACTqB,gBAAgB,EAChBhnB,MAAO60E,IAAeA,GAAY7kE,MAAQ6kE,GAAY7kE,KAAK/R,GAC3DuU,YAA8B,OAAjBjS,IAAKC,SAAmB,sBAAqB,iBAC1DuoB,eAAgB,CAAEgZ,SAAU,KAC5B3b,OAAQ,SAAC9U,GACLsrE,GAAS,OAAQtrE,EAAKqV,UAClBrV,GAAQA,EAAKqV,UAAgC,IAApBrV,EAAKqV,SAAS1oB,GACvCulB,EAAqB1R,QAAQ8T,SAAU,GAEvCpC,EAAqB1R,QAAQ8T,SAAU,EACvCpC,EAAqB1R,QAAQ9R,MAAQ,KACrC48E,GAAS,WAAY,UAIhC71C,IAAUA,GAAO/2B,MAAQ0sE,GAAS31C,GAAO/2B,QAKlD,yBAAK7R,UAAU,eACX,yBAAKA,UAAU,SACX,2BAAOugB,QAAQ,aAAa9X,GAAE,yBAA9B,IAAwD,2BAAOuT,MAAM,WAAb,MACxD,kBAAC,KAAD,CACIlc,GAAG,YACH8F,KAAK,YACL/F,IAAK,SAAAA,GAAG,OAAIw8E,EAAqB1oE,QAAU9T,GAC3CuK,SAAQ,UAAO00E,IAAgB9B,KAAav1E,EAAe,GAAI,OAAQ/F,KAAgB+F,EAAe,GAAI,SAAU/F,GAA+B,GAAb,WAA9H,YAAiJknC,GAAO4vC,UAAY,QAAU,IACtL1sE,WAAYgrE,GACZlrE,OAAQ,CAAE3J,KAAuB,OAAjBG,IAAKC,SAAmB,SAAW,SAAUR,MAAO,MACpEyJ,OAAQlJ,IAAKC,SACbqS,QAAS8S,GACT3lB,MAAO60E,IAAeA,GAAY2D,sBAAwB3D,GAAY2D,qBAAqBv6E,GAC3FuU,YAA8B,OAAjBjS,IAAKC,SAAmB,0BAA4B,oBACjEuoB,eAAgB,CAAEgZ,SAAU,KAC5B3b,OAAQ,SAAC9U,GAAD,OAAUsrE,GAAS,YAAatrE,EAAKqV,aAEhDogB,IAAUA,GAAO4vC,WAAa+F,GAAS31C,GAAO4vC,YAGnD,yBAAKx4E,UAAU,SACX,2BAAOugB,QAAQ,YAAY9X,GAAE,0BAC7B,kBAAC,KAAD,CACI3I,GAAG,WACH8F,KAAK,WACL/F,IAAK,SAAAA,GAAG,OAAIwlB,EAAqB1R,QAAU9T,GAC3CuK,SAAQ,WAAM00E,IAAc,yBAApB,YAAkDA,IAAgB9B,KAAav1E,EAAe,GAAI,OAAQ/F,KAAgB+F,EAAe,GAAI,SAAU/F,GAA+B,GAAb,WAAzK,YAA4LknC,GAAO7nC,SAAW,QAAU,IAChO+K,WAAYqgD,GACZvgD,OAAQ,CAAE3J,KAAuB,OAAjBG,IAAKC,SAAmB,SAAW,SAAUR,MAAO,MACpEyJ,OAAQlJ,IAAKC,SACbqS,QAAS8S,GACT3lB,MAAO60E,IAAeA,GAAY31E,UAAY21E,GAAY31E,SAASjB,GACnEuU,YAA8B,OAAjBjS,IAAKC,SAAmB,yBAA2B,oBAChEuoB,eAAgB,CAAEgZ,SAAU,KAC5Bnc,SAAS,EACTQ,OAAQ,SAAC9U,GAAD,OAAUsrE,GAAS,WAAYtrE,EAAKqV,aAE/CogB,IAAUA,GAAO7nC,UAAYw9E,GAAS31C,GAAO7nC,aAKzDq4D,IAAiB,yBAAKt5D,GAAG,gBAE1B,2BAAOD,IAAK4tB,GAAS,CACjB1N,SAAU,uBACVpY,KAAK,OAAO7H,GAAG,SAAS8F,KAAK,SAASwM,MAAO,CAAEqF,QAAS,UAE5D,yBAAKzX,UAAU,SACX,2BAAOugB,QAAQ,aAAa9X,GAAE,4BAA9B,IAA2D,2BAAOuT,MAAM,WAAb,MAC3D,yBAAKhc,UAAU,iBACX,8BACIF,GAAG,YACH8F,KAAK,YACL/F,IAAK4tB,GAAS,CACV1N,UAAU,IAEdpN,SAAUqqE,IAAYt6C,KACtB1iC,UAAW4oC,GAAOunB,UAAY,QAAU,GACxCvoC,UAAU,MACVjgB,KAAK,OAEL0M,YAA8B,OAAjBjS,IAAKC,SAAmB,qDAA8C,+CAGvF,0BAAMrC,UAAU,kBAEnB4oC,IAAUA,GAAOunB,WAAaouB,GAAS31C,GAAOunB,YAIlDumB,IAAeA,GAAYiD,YACxB,yBAAK35E,UAAU,SACX,2BAAOugB,QAAQ,UAAU9X,GAAE,0BAC3B,yBAAKzI,UAAU,iBACX,8BACIF,GAAG,aACH8F,KAAK,aACL/F,IAAK4tB,GAAS,CACV1N,UAAU,IAEd/f,UAAS,UAAK4oC,GAAO+wC,WAAa,QAAU,IAC5ChyE,KAAK,OACLgL,UAAU,EAEV0B,YAA8B,OAAjBjS,IAAKC,SAAmB,+BAA8B,6BAGvE,0BAAMrC,UAAU,iBACf4oC,IAAUA,GAAOunB,WAAaouB,GAAS31C,GAAOunB,eAOnE,kBAAC,KAAD,CACIrwD,GAAG,cACHoe,SAAS,EACTvC,QAAS0d,EACT/tB,OAAQlJ,IAAKC,UAEb,6BACI,yBAAKrC,UAAU,YACVu5E,EACG,2BAAOv5E,UAAU,sBAEjB,2BAAOA,UAAU,oBAErB,yBAAKA,UAAU,gBACVu5E,EACG,2BAAOv5E,UAAU,sBAAsByI,GAAE,yBAEzC,2BAAOzI,UAAU,qBAAqByI,GAAE,mBAE3C8wE,EACG,2BAAOz5E,GAAG,eAAe2I,GAAE,+BAE3B,2BAAO3I,GAAG,eAAe2I,GAAE,+BAKvC,6BACEwzB,EAME,yBAAKj8B,UAAU,kBACX,yBAAKA,UAAU,gBACX,0BAAMA,UAAU,6BAEpB,+BAAQyI,GAAE,6BACV,4BAAQ0B,QAAS,kBAlarCmvB,GAAmB,QAEnBlX,EAAO3W,UAgamDhD,GAAE,kBAV5C,yBAAKzI,UAAU,iBACX,4BAAQmK,QAAS,kBAAMmvB,GAAmB,KAAS7wB,GAAE,mBACrD,4BAAQ0B,QAAS42B,IAAgBt4B,GAAE,yBHt+BlDs4E,I,OAAe,WAExB,MAAsB54E,qBAAW7G,GAA1BI,EAAP,oBACA,EAA0C0G,oBAAS,GAAnD,mBAAO44E,EAAP,KAAsBC,EAAtB,KAEA,EAaIvJ,KAZAF,EADJ,EACIA,UACAZ,EAFJ,EAEIA,eACA74D,EAHJ,EAGIA,mBACA05D,EAJJ,EAIIA,mBACAV,EALJ,EAKIA,gBACA9wD,EANJ,EAMIA,iBACAgxD,EAPJ,EAOIA,cACA7qB,EARJ,EAQIA,gBACAz7C,EATJ,EASIA,SAEAwmE,GAXJ,EAUIx4D,mBAVJ,EAWIw4D,kBACAE,EAZJ,EAYIA,kBAGI5uE,EAAMC,cAAND,EAERI,qBAAU,WACN,IAAI6iB,EAAoBhqB,EAAYR,YACpCoqB,GAAiBI,EAAkBppB,QAAO,SAACpE,GAAD,OAA0B,KAAnBA,EAAEmD,gBAAqBoB,KAAI,SAACvE,GAAD,OAAQA,EAAEkD,gBACvF,CAACM,IAEJ,IAAMquB,EAAY,CACd0H,OAAQnM,IAAkC,KAC1C+L,OAAQ,GACRE,OAAQ,GACRC,IAAK,kBAAMggD,KACX9/C,KAAM,IAGJpR,EAAQ,CACV7a,MAAO,kBAAMgsE,GAAmB,KA2DpC,OAxDA5uE,qBAAU,WAAM,4CACZ,4CAAA/D,EAAA,kEAUcgK,QAVd,SAWcA,QAAQylB,IACV,CACIukD,GAAc,CACVp0E,MAAOhD,EAAYjB,cAEvBu4E,GAAe,CACXt0E,MAAOhD,EAAYjB,cAEvBsM,GAAarL,EAAYjB,aACzB4M,GAAY3L,EAAYjB,aACxBqN,GAAcpM,EAAYjB,aAC1BuN,GAAUtM,EAAYjB,aACtB04E,GAAiBz3E,EAAYjB,eAEnCsI,MAAK,SAAAvD,GACH,OAAOA,EAAS/C,KAAI,SAAA8O,GAChB,GAAIA,EAAI9L,GACJ,OAAO8L,EAAIvI,aA5B/B,wCAUsBurB,IAVtB,mDAGQ2iD,EAHR,KAIQE,EAJR,KAKQpxD,EALR,KAMQmmC,EANR,KAOQ2qB,EAPR,KAQQE,EARR,KASQkK,EATR,KAqCIj7D,EAAiBD,GACjBomC,EAAgBD,GAChB8qB,EAAcD,GACdD,EAAgBD,GAChBnmE,EAASuwE,GACT7J,EAAkBD,GAClBD,EAAiBD,GACjB+J,GAAiB,GA5CrB,6CADY,uBAAC,WAAD,wBA+CZE,KACD,IAEHt4E,qBAAU,WACNiI,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,yBAChDE,aAAYH,SAASC,eAAe,wBACpCG,aAAW,CAAErJ,KAAM,gBACpB,CAACq5E,IAGA,oCACiC,OAA5Bt/E,EAAYjB,YAAuB,kBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WACzD,oCACI,kBAAC,GAAD,CAAoB/J,GAAG,OACvB,kBAAC,GAAD,CAAcgwB,OAAQ/R,IACrBijE,GACG,oCACI,yBAAKhhF,UAAU,eACf,kBAACwM,EAAA,EAAD,CAAWxM,UAAU,gBACjB,yBAAKA,UAAU,mBACX,kBAACmhB,GAAA,EAAD,KACI,yBAAKnhB,UAAU,mBACX,yBAAKA,UAAU,SACX,4BAAKyI,EAAE,yBAGf,yBAAKzI,UAAU,mBACX,yBAAKA,UAAU,WACX,kBAAC,GAAD,CACIwrB,SAAUuE,SAOlC,kBAAC,GAAD,OAGP6mD,GACG,kBAAC,GAAD,CACIx0D,OAAQkE,KAGb06D,GAAiB,yBAAKlhF,GAAG,4B,oBIrJzC,SAAeshF,GAAtB,mC,8CAAO,WAAsC18E,GAAtC,SAAAI,EAAA,4DAEW,oBAFX,kBAIET,EACL,wEACA,MAJc,oBAMd,KACAK,GACA,IAVG,4C,sBAcA,SAAe28E,GAAtB,qC,8CAAO,WAAyC38E,EAAOD,GAAhD,eAAAK,EAAA,6DACCqJ,EAAM5N,KAAKiJ,UAAU/E,GADtB,kBAEEJ,EACL,sEACA,OACA,GACA8J,EACAzJ,GACA,IARG,4C,sBAYA,SAAe48E,GAAtB,qC,8CAAO,WAAsC58E,EAAOD,GAA7C,eAAAK,EAAA,6DACCqJ,EAAM5N,KAAKiJ,UAAU/E,GADtB,kBAGEJ,EACL,mEACA,OACA,GACA8J,EACAzJ,GACA,IATG,4C,sBHeA,IAAM68E,GAAW,WACtB,MAAsBhgF,aAAiBD,GAAhCI,EAAP,oBACQ+G,EAAMC,cAAND,EACR,EAA0ClH,WAAe,IAAzD,mBAAOigF,EAAP,KAAsBC,EAAtB,KACA,EAA0ClgF,YAAe,GAAzD,mBAAOmgF,EAAP,KAAsBC,EAAtB,KACA,EAAkCpgF,WAAe,IAAjD,mBAAOqgF,EAAP,KAAkBC,EAAlB,KACA,EAAkCtgF,aAAlC,mBAAOugF,EAAP,KAAkBC,EAAlB,KACA,EAA0CxgF,WAAe,IAAzD,mBAAOygF,EAAP,KAAsBC,EAAtB,KACM1gE,EAAehgB,WACf2gF,EAAiB3gF,WACvB,EAAoDA,WAAe,CACjEkZ,MAAM,IADR,mBAAOsD,EAAP,KAA2BypB,EAA3B,KAIA,EAA8Dla,aAAQ,CACpEgJ,KAAM,WACNunB,eAAgB,WAChBC,cAAe,CACb3oC,OAAO,GAET4oC,cAAUxiC,EACVnI,aAASmI,EACTyiC,aAAc,aACdC,kBAAkB,EAClBC,kBAAkB,IAVZzwB,EAAR,EAAQA,SAAUD,EAAlB,EAAkBA,aAAcob,EAAhC,EAAgCA,OAAQr6B,EAAxC,EAAwCA,MAAxC,EAA+CypD,WAuB/Cz2D,aAAgB,WACdggB,EAAa5N,QAAQO,YACpB,CAAC9R,IAAKC,WAETd,aAAgB,WACd4gF,MACC,IAEH5gF,aAAgB,WACd,GAAIqgF,EAAW,CACb,IAAIQ,EAAQ5uE,YAAW,WACrBquE,EAAa,MACZ,KACH,OAAO,WACLtuE,aAAa6uE,OAGhB,CAACR,IAEJ,IAAMO,EAAkB,uCAAG,sBAAAr9E,EAAA,sEACnBs8E,GAAuB1/E,EAAYjB,aAAasI,MAAK,SAACvD,GACtDA,EAASC,IACXD,EAASwD,OAAOD,MAAK,SAAC/E,GACpBy9E,EAAiBz9E,SAJE,2CAAH,qDAUxBzC,aAAgB,WACd,IAAImqB,EAAoBhqB,EAAYR,YACpCoqB,GAAiBI,EAAkBppB,QAAO,SAACpE,GAAD,OAA0B,KAAnBA,EAAEmD,gBAAqBoB,KAAI,SAACvE,GAAD,OAAQA,EAAEkD,gBACrF,CAACM,IAEJ,IAwBM2gF,EAAe,SAAClvE,GACpB,OAAO1L,EAAe,GAAI,OAAQ/F,IAChC,uBAAK1B,UAAU,aACb,wBAAMmK,QAAS,kBAfJ,SAACgJ,GAChB8uE,EAAiB,QACjBF,EAAa5uE,GACbwuE,GAAiB,GAYQW,CAASnvE,IAAOnT,UAAU,uBAc/C2e,EAAqB,SAAChX,EAAMqgC,GACpB,YAARrgC,EACF6/B,EAAsB,CACpBjoC,MAAOkJ,EAAE,uBACTgT,QAAShT,EAAE,yBACXd,KAAM,UACNuR,KAAM,eACNuB,MAAM,IAES,UAAR9S,EACT6/B,EAAsB,CACpBjoC,MAAOkJ,EAAE,mCACTgT,QAAShT,EAAE,6BACXd,KAAM,QACNuR,KAAM,2BACNuB,MAAM,IAES,YAAR9S,EACT6/B,EAAsB,CACpBjoC,MAAOkJ,EAAE,uBACTgT,QAAShT,EAAE,yBACXd,KAAM,UACNuR,KAAM,eACNuB,MAAM,IAES,iBAAR9S,GACT6/B,EAAsB,CACpBjoC,MAAOkJ,EAAE,mCACTgT,QAASusB,EACTrgC,KAAM,QACNuR,KAAM,2BACNuB,MAAM,KAKN8nE,EAAa,uCAAG,WAAOv+E,GAAP,iBAAAc,EAAA,6DACdktC,EADc,+BAAAltC,EAAA,MACJ,WAAO09E,GAAP,eAAA19E,EAAA,6DACRd,EAAO,CACXwQ,KAAMguE,EAAUhuE,KAChBW,OAAO,GAETssE,GAAiB,SAACgB,GAChB,IAAMC,EAAaD,EAEnB,OADAC,EAAW5G,QAAQ93E,GACZ0+E,KAETnhE,EAAa5N,QAAQO,UAVP,SAWDotE,GAAuB5/E,EAAYjB,YAAauD,GAX/C,mFADI,sDAepBud,EAAa5N,QAAQO,UACrBguE,EAAevuE,QAAQszC,OAhBH,SAiBFjV,EAAQhuC,GAjBN,SAiBduN,EAjBc,QAkBZ9L,IAAqB,MAAd8L,EAAI7L,QAA+B,MAAd6L,EAAI7L,QAItCiZ,EAAmB,SACnBvV,QAAQ1C,IAAI6K,KAJZ2wE,EAAevuE,QAAQszC,OACvBtoC,EAAmB,YAKrBpQ,IAzBoB,2CAAH,sDA4Bbo0E,EAAU,uCAAG,WAAOH,GAAP,eAAA19E,EAAA,sDAGX89E,EAAgB,CACpB9iF,GAAIgiF,EAAUhiF,GACd0U,KAAMguE,EAAUhuE,KAChBW,MAA0B,QAAnBqtE,EAAUrtE,OAInB,IACEksE,GAA0B3/E,EAAYjB,YAAamiF,GAAe75E,KAAlE,uCACE,WAAOvD,GAAP,iBAAAV,EAAA,0DACMU,EAASC,IAAyB,MAAnBD,EAASE,OAD9B,gBAEI+7E,EACElgE,EAAa5N,QAAQ7H,WAAWrJ,KAAI,SAACF,GAEnC,OADIA,EAAKzC,KAAMgiF,EAAUhiF,KAAIyC,EAAOqgF,GAC7BrgF,MAGXgf,EAAa5N,QAAQO,UACrByK,EAAmB,WACnBgjE,GAAiB,GAVrB,uCAYsBn8E,EAASwD,OAZ/B,OAYU65E,EAZV,OAaU76C,EAAMznC,KAAKiJ,UAAUq5E,EAAIC,UAA4B,+FAAhBD,EAAIC,SAC3B,OAAlB1gF,IAAKC,SAAmBwgF,EAAIC,SAAW,8EADd,iGAEiED,EAAIh6C,cAChGlqB,EAAmB,eAAgBqpB,GACnC5+B,QAAQ1C,IAAIm8E,GAjBhB,QAmBEt0E,IAnBF,4CADF,uDAuBA,MAAOpF,GAERC,QAAQ1C,IAAIyC,GACXwV,EAAmB,eAAgBxV,GArCpB,2CAAH,sDA6ChB,OACE,gCACE,gBAAC,GAAD,CAAoBrJ,GAAG,OACvB,uBAAKE,UAAU,mBACb,gBAACmhB,GAAA,EAAD,KACE,uBAAKnhB,UAAU,oBACb,uBAAKA,UAAU,SACb,0BAAKyI,EAAE,gCAGX,uBAAKzI,UAAU,mBACb,uBAAKA,UAAU,WACb,gBAAC,GAAD,CACEwrB,SAAU,CACRiM,OAAQnM,IAAkC,KAC1CkM,IAAK,WACHyqD,EAAiB,OACjBC,EAAevuE,QAAQ8G,eAQrC,gBAAC,GAAD,CAAcqV,OAAQ/R,IACtB,uBAAKje,GAAG,UACN,uBAAKE,UAAU,cACb,wBAAMA,UAAU,oBAChB,6BAAQyI,EAAE,uCAGZ,gBAAC,KAAD,CACE3I,GAAG,iBACHJ,MAAM,QACN0K,SAAU,SACV8T,SAAS,EACTvC,QAAS+lE,EACT7hF,IAAKqiF,EACL5hE,eAAe,EACf7U,MA5KW,WACjB8C,IACAwzE,EAAa,MACbJ,GAAiB,IA0KXr2E,OAAQlJ,IAAKC,UAEb,wBAAMvC,GAAG,gBAAgBguB,SAAUN,GAhD1B,SAACxpB,GACK,QAAjBg+E,EAAwBO,EAAcv+E,GAChB,SAAjBg+E,GAAyBW,EAAW3+E,MAE/B,SAAC4kC,EAAQ/lC,GAAT,OAAeuG,QAAQ1C,IAAIkiC,EAAQ/lC,OA6CzC,uBAAK7C,UAAU,SACb,yBAAOugB,QAAQ,QAAQ9X,EAAE,oCACzB,uBAAKzI,UAAU,iBACb,gBAAC,KAAD,CACEF,GAAG,OACH8F,KAAK,OACLma,UAAU,EACV6K,eAAgB,CAAEiD,UAAW,OAC7BxZ,YAAa5L,EAAE,wCACfs6E,gBAAiB,CAAEhjE,UAAU,GAC7BpY,KAAK,OACL9H,IAAK4tB,EAAS,CAAE1N,UAAU,IAC1Ble,MAAOigF,GAAaA,EAAUttE,QAGjCo0B,EAAOp0B,MAAQ,qBAAGxU,UAAU,SAASyI,EAAE,yBAGxB,SAAjBu5E,GACC,uBAAKhiF,UAAU,SACb,yBAAOugB,QAAQ,QAAQnO,MAAO,CAAEs5C,QAAS,qBACtCjjD,EAAE,sCAEL,uBAAKzI,UAAU,iBACb,gBAAC,KAAD,CACEF,GAAG,QACH+B,MAAOigF,EAAaA,EAAU3sE,MAAQ,MAAQ,KAAQ,KACtDvP,KAAK,QACLm9E,gBAAiB,CAAEhjE,UAAU,GAC7BnU,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,SAC/BwS,YAAa5L,EAAE,yCACfqD,WAAY,CACV,CAAE7J,KAAMwG,EAAE,2BAA4B5G,MAAO,OAC7C,CAAEI,KAAMwG,EAAE,0BAA2B5G,MAAO,OAE9ChC,IAAK4tB,EAAS,CAAE1N,UAAU,OAG7B6oB,EAAOzzB,OACN,qBAAGnV,UAAU,SAASyI,EAAE,yBAI9B,uBAAKzI,UAAU,eACK,QAAjBgiF,GACC,gBAAC,KAAD,CAAiB53E,SAAS,YAAYzC,KAAK,UACxCc,EAAE,iBAIW,SAAjBu5E,GACC,gBAAC,KAAD,CAAiB53E,SAAS,YAAYzC,KAAK,UACxCc,EAAE,oBAOb,gBAAC,KAAD,CACE3I,GAAG,kBACHs7B,iBA3SiB,CACvB,gBACA,iBACA,YACA,WACA,WACA,YAsSMtvB,WAAY01E,EACZjrD,eAAgB,CAAE5uB,KAAM,QACxB6uB,aAAa,EACb32B,IAAK0hB,EACLgd,aAAc,CACZC,SAAU,GACVwkD,WAAW,GAEbvsD,cAAc,EACd5N,gBAAgB,EAChBvd,OAAQlJ,IAAKC,SACbq0B,kBAAkB,EAClBusD,gBAAgB,EAChBC,eAAgB,SAACrgF,GA7OF,IAACsQ,EACG,eADHA,EA8OCtQ,GA7OdytC,aAAoD,QAArBn9B,EAAKm9B,aACvC6yC,IAAQC,WACVjwE,EAAKuQ,OAAO/jB,OAASmD,OAAOugF,YAAc,GAAK,KAC/ClwE,EAAKuQ,OAAOf,cA6OV,gBAAC,KAAD,KACE,gBAAC,KAAD,CACEjR,WAAYjJ,EAAE,mCACdqT,MAAM,OACNpc,MAAM,MACNqjF,gBAAiB,CAAEhjE,UAAU,KAE/B,gBAAC,KAAD,CACErO,WAAYjJ,EAAE,qCACdnG,OAAQ,CAAEqF,KAAM,YAChB27E,mBAAoB,SAAAnwE,GAAI,OAAIA,EAAKgC,MAAQ1M,EAAE,2BAA6BA,EAAE,2BAC1EqL,SAAU,SAACX,GAAD,OA5RD,SAACA,GACpB,OACE,gCACGA,EAAKgC,MACJ,wBAAMnV,UAAU,cAAcyI,EAAE,4BAEhC,wBAAMzI,UAAU,aAAayI,EAAE,4BAsRP86E,CAAapwE,IACjC2I,MAAM,QACNpc,MAAM,MACN8jF,SAAS,gBAEX,gBAAC,KAAD,CACE1vE,SAAU,SAACX,GAAD,OAAUkvE,EAAalvE,IACjCzT,MAAM,KACNgS,WAAYjJ,EAAE,+BAGlB,gBAAC,KAAD,CACE2U,SAAU,CACRqmE,KACAzsD,KACAH,KACAE,KACAxZ,KACA0Z,KACAE,KACAusD,KACAnmE,KACAuZ,KACAF,YI5ZD+sD,I,OAAsB,WACjC,MAAsBpiF,aAAiBD,GAAhCI,EAAP,oBAEcgH,cAAND,EAER,OACE,gCAC+B,OAA5B/G,EAAYjB,YACX,gBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WAEzB,gCACE,uBAAK7J,UAAU,eACf,gBAACwM,EAAA,EAAD,CAAWxM,UAAU,gBACnB,gBAACmhB,GAAA,EAAD,KACE,uBAAKnhB,UAAU,UACb,gBAAC,GAAD,aCtBT,SAAe4jF,GAAtB,mC,8CAAO,WAAqCl/E,GAArC,SAAAI,EAAA,4DAEW,oBAFX,kBAIET,EACL,wEACA,MAJc,oBAMd,KACAK,GACA,IAVG,4C,sBAcA,SAAem/E,GAAtB,qC,8CAAO,WAAwCn/E,EAAOD,GAA/C,eAAAK,EAAA,6DACCqJ,EAAM5N,KAAKiJ,UAAU/E,GADtB,kBAEEJ,EACL,sEACA,OACA,GACA8J,EACAzJ,GACA,IARG,4C,sBAYA,SAAeo/E,GAAtB,qC,8CAAO,WAAqCp/E,EAAOD,GAA5C,eAAAK,EAAA,6DACCqJ,EAAM5N,KAAKiJ,UAAU/E,GADtB,kBAEEJ,EACL,mEACA,OACA,GACA8J,EACAzJ,GACA,IARG,4C,0BCiBH4mB,G,UAESy4D,GAAS,SAACvkF,GAErBwkF,aAAgB,OAChB,MAAsBziF,aAAiBD,GAAhCI,EAAP,oBACQ+G,EAAMC,cAAND,EACF8Y,EAAehgB,SAAa,MAElC,EAA0CA,YAAe,GAAzD,mBAAOmgF,EAAP,KAAsBC,EAAtB,KAIA,GAF+B7jE,KAAvBa,mBAE4Bpd,WAAe,KAAnD,mBAAO0iF,EAAP,KAAmBC,EAAnB,KACA,EAAwE52D,aAAQ,CAC9EgJ,KAAM,WACNunB,eAAgB,WAChBC,cAAe,GACfC,cAAUxiC,EACVnI,aAASmI,EACTyiC,aAAc,aACdC,kBAAkB,EAClBC,kBAAkB,IARZzwB,EAAR,EAAQA,SAAUD,EAAlB,EAAkBA,aAAcob,EAAhC,EAAgCA,OAAQr6B,EAAxC,EAAwCA,MAAOypD,EAA/C,EAA+CA,WAAYymB,EAA3D,EAA2DA,SAU3D,EAAkCl9E,aAAlC,mBAAOugF,EAAP,KAAkBC,EAAlB,KACMG,EAAiB3gF,WACvB,EAAoDA,WAAe,CACjEkZ,MAAM,IADR,mBAAOsD,EAAP,KAA2BypB,EAA3B,KAGA,EAA0CjmC,WAAe,IAAzD,mBAAOigF,EAAP,KAAsBC,EAAtB,KACA,EAAgClgF,WAAe,MAA/C,mBAAO4iF,EAAP,KAAiBC,EAAjB,KACA,EAA8B7iF,YAAe,GAA7C,mBAAOghB,EAAP,KAAgB8hE,EAAhB,KAWA9iF,aAAgB,WACd+iF,MACC,IAEH/iF,aAAgB,WACdggB,EAAa5N,QAAQO,YACpB,CAAC9R,IAAKC,WAETd,aAAgB,WACVghB,IACFzR,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,aAChDE,aAAYH,SAASC,eAAe,YACpCG,aAAW,CAAErJ,KAAM,iBAEpB,CAAC4a,IAoBJhhB,aAAgB,WACd,IAAImqB,EAAoBhqB,EAAYR,YACpCoqB,GAAiBI,EAAkBppB,QAAO,SAACpE,GAAD,OAA0B,KAAnBA,EAAEmD,gBAAqBoB,KAAI,SAACvE,GAAD,OAAQA,EAAEkD,cACtFgI,QAAQ1C,IAAI4kB,MACX,CAAC5pB,IAEJ,IAcM6iF,EAAQ,SAAAC,GACZ,OAAO79E,WAAW69E,GAAOC,eAAe,QAAS,CAAEryE,MAAO,WAAYsyE,SAAU,SAW5E1hD,EAAe,CACnB,CACE/gC,KAAuB,OAAjBG,IAAKC,SAAmB,MAAQ,MACtCR,MAAO,OAET,CACEI,KAAuB,OAAjBG,IAAKC,SAAmB,SAAQ,KACtCR,MAAO,OAKLyiF,EAAc,uCAAG,sBAAAx/E,EAAA,sEACf8+E,GAAsBliF,EAAYjB,aAAasI,MAAK,SAACvD,GACrDA,EAASC,IACXD,EAASwD,OAAOD,MAAK,SAAC/E,GACpBy9E,EAAiBz9E,SAJF,2CAAH,qDAad2gF,EAAa,WACjB5C,EAAa,MACbtD,EAAS,YAAa,MACtBA,EAAS,QAAS,MAClBA,EAAS,MAAO,MAChBzmB,IACAzpD,IACAozE,GAAiB,GACjBO,EAAevuE,QAAQszC,QAKnBq7B,GAAW,SAACnvE,GAChB+wE,EAAc,QACdzF,EAAS,YAAatrE,EAAKyxE,WAC3BnG,EAAS,QAAStrE,EAAK0xE,OACvB9C,EAAa5uE,GACbwuE,GAAiB,GACjBO,EAAevuE,QAAQ8G,QAYnBqqE,GAAsB,SAACn9E,EAAMqgC,GACrB,YAARrgC,EACF6/B,EAAsB,CACpBjoC,MAAOkJ,EAAE,uBACTgT,QAAShT,EAAE,yBACXd,KAAM,UACNuR,KAAM,eACNuB,MAAM,IAES,UAAR9S,EACT6/B,EAAsB,CACpBjoC,MAAOkJ,EAAE,mCACTgT,QAAShT,EAAE,6BACXd,KAAM,QACNuR,KAAM,2BACNuB,MAAM,IAES,YAAR9S,EACT6/B,EAAsB,CACpBjoC,MAAOkJ,EAAE,uBACTgT,QAAShT,EAAE,yBACXd,KAAM,UACNuR,KAAM,eACNuB,MAAM,IAES,iBAAR9S,GACT6/B,EAAsB,CACpBjoC,MAAOkJ,EAAE,mCACTgT,QAASusB,EACTrgC,KAAM,QACNuR,KAAM,2BACNuB,MAAM,KAONsqE,GAAU,uCAAG,WAAOvC,GAAP,mBAAA19E,EAAA,6DACjBu/E,GAAW,GACXD,EAAY,MACNxB,EAAgB,CACpBoC,IAAK5xD,SAASovD,EAAUwC,KACxBJ,UAAWpC,EAAUoC,WALN,kBASAd,GACbpiF,EAAYjB,YACZmiF,GAXa,YASfqC,EATe,QAcJx/E,IAAwB,MAAjBw/E,EAAOv/E,QAAkC,MAAjBu/E,EAAOv/E,OAdlC,iBAebu/E,EAAOj8E,OAAOD,MAAK,SAACwI,GAClBkwE,GAAiB,SAACgB,GAChB,IAAMC,EAAaD,EAGnB,OAFAG,EAAc9iF,GAAKyR,EAAIzR,GACvB4iF,EAAW5G,QAAQ8G,GACZF,QAGXnhE,EAAa5N,QAAQO,UACrBguE,EAAevuE,QAAQszC,OACvB69B,GAAoB,WACpBnD,GAAiB,GACjBpzE,IA3Ba,yCA6BG02E,EAAOj8E,OA7BV,QA6BPq2D,EA7BO,OA8Bbj2D,QAAQ1C,IAAI24D,GACRA,EAAEyjB,UAAYzjB,EAAE9/D,OAClBulF,GAAoB,eAAgBzlB,EAAEyjB,UAAYzjB,EAAE9/D,OACpD6kF,EAAY/kB,EAAEyjB,WAEdsB,EAAY37E,EAAE,kCAnCH,QAsCf47E,GAAW,GAtCI,kDAwCfA,GAAW,GACXj7E,QAAQ1C,IAAR,MACI,KAAEo8E,UAAY,KAAEvjF,OAClBulF,GAAoB,eAAgB,KAAEhC,UAAY,KAAEvjF,OACpD6kF,EAAY,KAAEtB,WAEdsB,EAAY37E,EAAE,kCA9CD,0DAAH,sDAmDVk6E,GAAU,uCAAG,WAAOH,GAAP,mBAAA19E,EAAA,6DACjBu/E,GAAW,GACXD,EAAY,MACNxB,EAAgB,CACpB9iF,GAAIgiF,EAAUhiF,GACdklF,IAAK5xD,SAASovD,EAAUwC,KACxBJ,UAAWpC,EAAUoC,UACrBzvE,MAA0B,QAAnBqtE,EAAUrtE,OAPF,kBAUC0uE,GACdniF,EAAYjB,YACZmiF,GAZa,YAUTvjB,EAVS,QAeT55D,IAAkB,MAAZ45D,EAAE35D,OAfC,iBAgBb25D,EAAEr2D,OAAOD,MAAK,SAACwI,GACb,IAAM2zE,EAAmB3jE,EAAa5N,QAAQ7H,WAAWrJ,KACvD,SAACF,GAEC,OADIA,EAAKzC,KAAMgiF,EAAUhiF,KAAIyC,EAAOgP,GAC7BhP,KAGXk/E,EAAiByD,GACjB3jE,EAAa5N,QAAQ7H,WAAao5E,EAClC3jE,EAAa5N,QAAQO,aAGvBguE,EAAevuE,QAAQszC,OACvB69B,GAAoB,WACpBnD,GAAiB,GACjBgD,IA/Ba,yCAiCKtlB,EAAEr2D,OAjCP,QAiCPuI,EAjCO,OAkCb6yE,EAAY7yE,GACZnI,QAAQ1C,IAAI6K,GACZA,EAAIuxE,UAAYgC,GAAoB,eAAgBvzE,EAAIuxE,UApC3C,QAsCfuB,GAAW,GAtCI,kDAwCfA,GAAW,GACXD,EAAY,EAAD,IACXh7E,QAAQ1C,IAAR,OACI,KAAEo8E,UAAY,KAAEvjF,QAClBulF,GAAoB,eAAgB,KAAEhC,UAAY,KAAEvjF,OA5CvC,0DAAH,sDAwDhB,OACE,gCACE,gBAAC,GAAD,CAAcuwB,OAAQ/R,IACtB,gBAAC,GAAD,CAAoBje,GAAG,OAEvB,uBAAKE,UAAU,mBACb,gBAACmhB,GAAA,EAAD,KACE,uBAAKnhB,UAAU,mBACb,uBAAKA,UAAU,SACb,0BAAKyI,EAAE,+BAGX,uBAAKzI,UAAU,mBACb,uBAAKA,UAAU,WACb,gBAAC,GAAD,CACEwrB,SAAU,CACRiM,OAAQnM,IAAkC,KAC1CkM,IAAK,WACH0sD,EAAc,OACdhC,EAAevuE,QAAQ8G,eASrC,uBAAK3a,GAAG,UACN,uBAAKE,UAAU,cACb,wBAAMA,UAAU,oBAChB,6BAAyB,OAAjBoC,IAAKC,SAAmB,SAAW,UAG7C,gBAAC,KAAD,CACEvC,GAAG,kBACHoe,SAAS,EACTvC,QAAS+lE,EACT7hF,IAAKqiF,EACLz2E,MAAOk5E,EACPrkE,eAAe,EACfhV,OAAQlJ,IAAKC,UAEb,wBACErC,UAAU,YACVF,GAAG,gBACHguB,SAAUN,GApDH,SAACxpB,GACE,QAAdigF,EAAqBc,GAAW/gF,GACb,SAAdigF,GAAsBtB,GAAW3+E,MAE5B,SAAC4kC,EAAQ/lC,GAAT,OAAeuG,QAAQ1C,IAAIkiC,EAAQ/lC,OAmDzC,uBAAK7C,UAAU,YACE,SAAdikF,GACC,uBAAKjkF,UAAU,SACb,yBAAOugB,QAAQ,MAAf,MACA,uBAAKvgB,UAAU,iBACb,gBAAC,KAAD,CACEF,GAAG,KACH8F,KAAK,KACL6hB,SAAS,EACT5nB,IAAK4tB,EAAS,CACZ1N,UAAU,IAEZpY,KAAK,SACL9F,MAAOigF,GAAaA,EAAUhiF,QAQxC,uBAAKE,UAAU,SACb,yBAAOugB,QAAQ,aACK,OAAjBne,IAAKC,SAAmB,iBAAgB,YAE3C,uBAAKrC,UAAU,iBACb,gBAAC,KAAD,CACE4F,KAAK,YACL9F,GAAG,YACHoc,OAAO,KACP7H,YACmB,OAAjBjS,IAAKC,SACD,4CACA,iCAENuoB,eAAgB,CAAEhD,UAAW,IAC7B5nB,UAAW4oC,EAAOg8C,WAAa,QAC/B/kF,IAAK4tB,EAAS,CACZ1N,UAAU,EACV6H,UAAW,GACXy2C,UAAW,OAMhBz1B,GAAUA,EAAOg8C,WAChB,qBAAG5kF,UAAU,SAASyI,EAAE,wBAEzBmgC,GAAUA,EAAOg8C,WAAuC,cAA1Bh8C,EAAOg8C,UAAUj9E,MAC9C,qBAAG3H,UAAU,SAAS,gCAEvB4oC,GAAUA,EAAOg8C,WAAuC,cAA1Bh8C,EAAOg8C,UAAUj9E,MAC9C,qBAAG3H,UAAU,SAAS,iCAKX,SAAdikF,GACC,uBAAKjkF,UAAU,SACb,yBAAOugB,QAAQ,SACK,OAAjBne,IAAKC,SAAmB,UAAY,aAEvC,uBAAKrC,UAAU,iBACb,gBAAC,KAAD,CACEF,GAAG,QACH8F,KAAK,QACL6hB,SAAS,EACT5nB,IAAK4tB,EAAS,CACZ1N,UAAU,EACV6H,UAAW,GACXy2C,UAAW,IAEbniD,OAAO,KAEPvU,KAAK,OACL0M,YACmB,OAAjBjS,IAAKC,SACD,qCACA,kCAENR,MACEigF,GACAA,EAAU+C,SAIfj8C,EAAOi8C,OACN,qBAAG7kF,UAAU,SAASyI,EAAE,wBAEzBmgC,EAAOi8C,OAA+B,cAAtBj8C,EAAOi8C,MAAMl9E,MAC5B,qBAAG3H,UAAU,SAAS,gCAEvB4oC,EAAOi8C,OAA+B,cAAtBj8C,EAAOi8C,MAAMl9E,MAC5B,qBAAG3H,UAAU,SAAS,iCAM5B,uBAAKA,UAAU,SACb,yBAAOugB,QAAQ,OACK,OAAjBne,IAAKC,SAAmB,QAAU,UAErC,uBAAKrC,UAAU,iBACb,gBAAC,KAAD,CACEF,GAAG,MACH8F,KAAK,MACL0F,OAAQlJ,IAAKC,SACbgS,YACmB,OAAjBjS,IAAKC,SAAmB,eAAiB,YAE3CxC,IAAK4tB,EAAS,CACZ1N,UAAU,EACV6H,UAAW,EACXy2C,UAAW,IAEb5rD,KAAK,uBACL5Q,MAAOigF,GAAaA,EAAUkD,IAAI79E,cAGrCyhC,EAAOo8C,KACN,qBAAGhlF,UAAU,SAASyI,EAAE,wBAEzBmgC,EAAOo8C,KAA2B,cAApBp8C,EAAOo8C,IAAIr9E,MACxB,qBAAG3H,UAAU,SAAS,gCAEvB4oC,EAAOo8C,KAA2B,cAApBp8C,EAAOo8C,IAAIr9E,MACxB,qBAAG3H,UAAU,SAAS,gCAEvBmkF,GACC,qBAAGnkF,UAAU,SAASmkF,IAMX,SAAdF,GACC,uBAAKjkF,UAAU,SACb,yBAAOugB,QAAQ,SACK,OAAjBne,IAAKC,SAAmB,UAAY,YAEvC,uBAAKrC,UAAU,iBACb,gBAAC,KAAD,CACEF,GAAG,QACH8F,KAAK,QACL/F,IAAK4tB,EAAS,CAAE1N,UAAU,IAC1B3V,SAAS,WACT0B,WAAYk3B,EACZp3B,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,SAC/ByJ,OAAQlJ,IAAKC,SAEbR,MAAOigF,EAAaA,EAAU3sE,MAAQ,MAAQ,KAAQ,KACtDd,YACmB,OAAjBjS,IAAKC,SACD,qBACA,kBAGPumC,EAAOo8C,KACN,qBAAGhlF,UAAU,SAASyI,EAAE,0BAMhC,uBAAKzI,UAAU,eACb,0BACE2H,KAAK,SACLgL,SAAU4P,EACVviB,UAAW,mCAEVyI,EAAE,mBAIR8Z,GAAW,uBAAKnQ,MAAO,CAAEm0B,OAAQ,SAAWzmC,GAAG,aAGlD,gBAAC,KAAD,CACEA,GAAG,wBACHgM,WAAY01E,EACZpmD,iBA5fiB,CACvB,gBACA,iBACA,YACA,WACA,WACA,YAufM7E,eAAgB,CAAE5uB,KAAM,YACxB6uB,aAAa,EACbC,cAAc,EACd5N,gBAAgB,EAChBhpB,IAAK0hB,EACLgd,aAAc,CACZC,SAAU,GACVwkD,WAAW,GAEb13E,OAAQlJ,IAAKC,UAEb,gBAAC,KAAD,KACE,gBAAC,KAAD,CAAiBqP,WAAY,KAAMoK,MAAM,KAAKpc,MAAM,QACpD,gBAAC,KAAD,CACEgS,WAAYjJ,EAAE,kCACdqT,MAAM,MACNpc,MAAM,QAER,gBAAC,KAAD,CACEgS,WAAYjJ,EAAE,oCACdqT,MAAM,YACNpc,MAAM,MACN4C,OAAQ,CAAEqF,KAAM,QAChBmM,SA5cc,SAAC9P,GACzB,OAAO,4BAAOA,EAAK4gF,WAAaL,EAAMvgF,EAAK4gF,eA6cnC,gBAAC,KAAD,CACElzE,WAAYjJ,EAAE,qCACdqT,MAAM,QACNxZ,OAAQ,CAAEqF,KAAM,QAChBmM,SAtdU,SAAC9P,GACrB,OAAO,4BAAOA,EAAK6gF,OAASN,EAAMvgF,EAAK6gF,SAsd7BnlF,MAAM,QAER,gBAAC,KAAD,CACEgS,WAAYjJ,EAAE,oCACd66E,mBAAoB,SAAAnwE,GAAI,OAAIA,EAAKgC,MAAQ1M,EAAE,2BAA6BA,EAAE,2BAC1EqL,SAAU,SAACX,GAAD,OApgBD,SAACA,GACpB,OACE,iCACiB,IAAdA,EAAKgC,MACJ,wBAAMnV,UAAU,cACI,OAAjBoC,IAAKC,SAAmB,MAAQ,OAGnC,wBAAMrC,UAAU,aACI,OAAjBoC,IAAKC,SAAmB,SAAQ,OA2fXkhF,CAAapwE,IACjC2I,MAAM,QACNpc,MAAM,QAER,gBAAC,KAAD,CACEoU,SAAU,SAACX,GAAD,OAnfD,SAACA,GACpB,OAAO1L,EAAe,GAAI,OAAQ/F,IAChC,uBAAK1B,UAAU,aACb,wBACEmK,QAAS,WACPm4E,GAASnvE,IAGXnT,UAAU,sBA2ecqiF,CAAalvE,IACjCzT,MAAM,QAGV,gBAAC,KAAD,CACE0d,SAAU,CAACwZ,KAAQC,KAAMC,KAAaC,KAAQC,KAAMC,KAAM1Z,YC5mBzD4nE,I,OAAqB,WAChC,MAAsB5jF,aAAiBD,GAAhCI,EAAP,oBACA,EAA0CH,YAAe,GAAzD,mBACA,GADA,UACoCA,WAAe,OAAnD,6BAEcmH,cAAND,EAcR,OACE,gCAC+B,OAA5B/G,EAAYjB,YACX,gBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WAEzB,gCACE,uBAAK7J,UAAU,eAEf,gBAACwM,EAAA,EAAD,CAAWxM,UAAU,gBACnB,gBAACmhB,GAAA,EAAD,KACE,uBAAKnhB,UAAU,UACb,gBAAC,GAAD,aCvCVolF,GAAmB3mE,wBAAc,IAEjC4mE,GAAmB,SAAC,GAAkB,IAAhB5jF,EAAe,EAAfA,SACxB,EAAkC2G,qBAAlC,mBAAO05E,EAAP,KAAkBC,EAAlB,KACA,EAA0C35E,oBAAS,GAAnD,mBAAOs5E,EAAP,KAAsBC,EAAtB,KACA,EAAkCv5E,mBAAS,IAA3C,mBAAOk9E,EAAP,KAAkBC,EAAlB,KACA,EAAkCn9E,mBAAS,IAA3C,mBAAO6e,EAAP,KAAkBye,EAAlB,KAYA,OACI,kBAAC0/C,GAAiBxjF,SAAlB,CAA2BC,MAAO,CAC9B6/E,gBACAC,mBACA2D,YACAC,eACAzD,YACA76D,YACAye,eACA48C,SAnBS,SAACnvE,GACdwuE,GAAiB,GAGbI,EADA5uE,GAGa,SAeZ1R,IAKP+jF,GAAc,WAChB,IAAMpyE,EAAUjL,qBAAWi9E,IAE3B,IAAKhyE,EACD,MAAM,IAAIukE,MAAM,kDAGpB,OAAOvkE,GCzCJ,SAAeqyE,GAAtB,mC,8CAAO,WAA4B/gF,GAA5B,SAAAI,EAAA,+EACIT,EAAW,gEAAiE,MAAO,yBAA0B,KAAMK,GAAO,IAD9H,4C,sBAIA,SAAeghF,GAAtB,qC,8CAAO,WAAmChhF,EAAOihF,GAA1C,eAAA7gF,EAAA,6DACGgrB,EADH,sBAC2B61D,EAD3B,yCAGIthF,EAAW,uEAAwE,MAAOyrB,EAAQ,KAAMprB,GAAO,IAHnH,4C,sBAMA,SAAestC,GAAtB,qC,8CAAO,WAAuBttC,EAAOD,GAA9B,SAAAK,EAAA,+EACIT,EAAW,2DAA4D,OAAQ,GAAII,EAAMC,GAAO,IADpG,4C,sBAIA,SAAei+E,GAAtB,qC,8CAAO,WAA0Bj+E,EAAOD,GAAjC,SAAAK,EAAA,+EACIT,EAAW,8DAA+D,OAAQ,GAAII,EAAMC,GAAO,IADvG,4C,sBAIA,SAAei3D,GAAtB,qC,8CAAO,WAA0Bj3D,EAAO5E,GAAjC,eAAAgF,EAAA,6DACGgrB,EADH,sBAC2BhwB,GAD3B,kBAEIuE,EAAW,+DAAgE,OAAQyrB,EAAQ,KAAMprB,GAAO,IAF5G,4C,sBCNPkhF,aAAW,MACX5B,aAAgB,OAEhB,ICJI14D,GDkPWu6D,GA9OQ,WAEnB,MAAsB19E,qBAAW7G,GAA1BI,EAAP,oBAEA,EAA2F8jF,KAAnF9D,EAAR,EAAQA,cAAeI,EAAvB,EAAuBA,UAAWH,EAAlC,EAAkCA,iBAAkB2D,EAApD,EAAoDA,UAAWC,EAA/D,EAA+DA,aAAct+D,EAA7E,EAA6EA,UAErExe,EAAMC,cAAND,EAEAkW,EAAuBb,KAAvBa,mBAER,EAAqD2O,aAAQ,CACzDgJ,KAAM,WACNunB,eAAgB,WAChBC,cAAe,CACXgoC,SAAUhE,GAAaA,EAAUgE,SACjCC,QAASjE,GAAaA,EAAUiE,QAChCC,eAAgBlE,GAAaA,EAAUkE,eACvCC,YAAanE,GAAaA,EAAUmE,YACpCzB,MAAO1C,GAAaA,EAAU0C,OAElCzmC,cAAUxiC,EACVnI,aAASmI,EACTyiC,aAAc,aACdC,kBAAkB,EAClBC,kBAAkB,IAddzwB,EAAR,EAAQA,SAAUD,EAAlB,EAAkBA,aAAcixD,EAAhC,EAAgCA,SAAU71C,EAA1C,EAA0CA,OAiB1C//B,qBAAU,WACN4kB,EAAS,UAAW,CAChB1N,UAAU,IAEd0N,EAAS,QAAS,CACd1N,UAAU,IAEd0N,EAAS,cAAe,CACpB1N,UAAU,IAEd0N,EAAS,iBAAkB,CACvB1N,UAAU,MAEf,CAAC0N,IAEJ,IAAM8U,EAAgB,SAACv+B,GACnB29E,GAAiB,GAEjBv4E,QAAQ1C,IAAI1C,GAER89E,EACAoE,EAAeliF,GAEfmiF,EAAeniF,IAIjBu6E,EAAW,SAACp1E,GACd,OAAQA,EAAMxB,MACV,IAAK,WACD,OACI,yBAAK3H,UAAU,SAASyI,EAAE,0BAMtC6W,EAAe,CACf,CACI3X,KAAM,SACN4X,YAAa,CACTC,WAAW,EACX3L,QAA0B,OAAjBzR,IAAKC,SAAmB,SAAW,OAC5C+H,SAAU,cAEd4Q,MAAO,WACHwS,EAAa+U,EAAb/U,MAKN24D,EAAc,uCAAG,WAAOniF,GAAP,iBAAAc,EAAA,6DACbvC,EADa,2BAEZyB,GAFY,IAGfgiF,eAAe,GAAD,OAAKhiF,EAAKgiF,eAAenvC,cAAzB,YAA0C7yC,EAAKgiF,eAAer0B,WAAa,EAA3E,YAAgF3tD,EAAKgiF,eAAev0B,WAClHw0B,YAAY,GAAD,OAAKjiF,EAAKiiF,YAAYpvC,cAAtB,YAAuC7yC,EAAKiiF,YAAYt0B,WAAa,EAArE,YAA0E3tD,EAAKiiF,YAAYx0B,WACtG+yB,MAAOt7C,OAAOllC,EAAKwgF,SALJ,SAQGxyC,GAAQtwC,EAAYjB,YAAaF,KAAKiJ,UAAUjH,IAAOwG,KAAvD,+BAAAjE,EAAA,MAA4D,WAAMyM,GAAN,SAAAzM,EAAA,0DAC1EyM,EAAI9L,GADsE,yCAEnE8L,EAAIvI,QAF+D,OAI1E2V,EAAmB,CACfxV,MAAOoI,EAAI9L,KAL2D,2CAA5D,uDARH,QAQb6iC,EARa,SAkBJA,EAAQxoC,KACnBwoC,EAAQ09C,eAAiB,IAAI1+E,KAAK/E,EAAKyjF,gBACvC19C,EAAQ29C,YAAc,IAAI3+E,KAAK/E,EAAK0jF,aAEpCV,GAAa,SAAA9J,GAAK,6BAAQA,GAAR,CAAenzC,QAtBlB,2CAAH,sDA0Bd49C,EAAc,uCAAG,WAAOliF,GAAP,qBAAAc,EAAA,6DACbvC,EADa,uCAEZu/E,GACA99E,GAHY,IAIf+hF,QAAS/hF,EAAK+hF,QAAU/hF,EAAK+hF,QAAUjE,EAAUiE,QACjDC,eAAe,GAAD,OAAKhiF,EAAKgiF,eAAenvC,cAAzB,YAA0C7yC,EAAKgiF,eAAer0B,WAAa,EAA3E,YAAgF3tD,EAAKgiF,eAAev0B,WAClHw0B,YAAY,GAAD,OAAKjiF,EAAKiiF,YAAYpvC,cAAtB,YAAuC7yC,EAAKiiF,YAAYt0B,WAAa,EAArE,YAA0E3tD,EAAKiiF,YAAYx0B,WACtG+yB,MAAOt7C,OAAOllC,EAAKwgF,SAPJ,SAUG7B,GAAWjhF,EAAYjB,YAAaF,KAAKiJ,UAAUjH,IAAOwG,KAA1D,uCAA+D,WAAMwI,GAAN,SAAAzM,EAAA,0DAC7EyM,EAAI9L,GADyE,yCAEtE8L,EAAIvI,QAFkE,OAI7E2V,EAAmB,CACfxV,MAAOoI,EAAI9L,KAL8D,2CAA/D,uDAVH,QAUb6iC,EAVa,SAoBJA,EAAQxoC,KACbsmF,EADiB,aACEd,GACnB5iF,EAAQ0jF,EAAa9yD,WAAU,SAAA+yD,GAAQ,OAAIA,EAASvmF,KAAMgiF,EAAUhiF,MAE1EsmF,EAAa1jF,GAAS4lC,EAEtBi9C,EAAaa,IA1BE,2CAAH,sDAkCpB,OAJAv9E,qBAAU,WACNO,QAAQ1C,IAAIo7E,KACb,CAACA,IAIA,kBAAC,KAAD,CACIhiF,GAAG,YACHJ,MAAM,QACNwe,SAAS,EACTmC,QAASf,EACT3D,QAAS+lE,EACTphE,eAAe,EACf7U,MAAO,kBAAMk2E,GAAiB,IAC9Br2E,OAAQlJ,IAAKC,UAEb,8BACI,yBAAKrC,UAAU,SACX,2BAAOugB,QAAQ,YAA6B,OAAjBne,IAAKC,SAAmB,aAAe,cAClE,yBAAKrC,UAAU,iBACX,kBAAC,KAAD,CACIF,GAAG,WACH8F,KAAK,WAELglB,eAAgB,CAAEiD,UAAW,OAC7BhuB,IAAK4tB,EAAS,CACV1N,UAAU,IAEdpY,KAAK,OACL9F,MAAOigF,GAAaA,EAAUgE,WAEjCl9C,GAAUA,EAAOk9C,UAAYvH,EAAS31C,EAAOk9C,YAItD,yBAAK9lF,UAAU,SACX,2BAAOugB,QAAQ,UAA2B,OAAjBne,IAAKC,SAAmB,eAAc,YAC/D,yBAAKrC,UAAU,iBACX,kBAAC,KAAD,CACIF,GAAG,UACH8F,KAAK,UACLgiB,UAAU,KACVhc,OAAQ,CAAE/J,MAAO,QACjBiK,WAAYmb,EACZplB,MAAOigF,GAAaA,EAAUiE,SAAWjE,EAAUiE,QAAQvxE,KAC3DyT,OAAQ,SAAC9U,GAAD,OAAUsrE,EAAS,UAAWtrE,EAAKqV,aAE9CogB,GAAUA,EAAOm9C,SAAWxH,EAAS31C,EAAOm9C,WAIrD,yBAAK/lF,UAAU,eACX,yBAAKA,UAAU,SACX,2BAAOugB,QAAQ,WAA4B,OAAjBne,IAAKC,SAAmB,0BAAyB,mBAC3E,6BACI,kBAAC,KAAD,CACIvC,GAAG,iBACH8F,KAAK,iBACL+iB,YAAY,EAEZ9mB,MAAOigF,GAAa,IAAIx6E,KAAKw6E,EAAUkE,gBACvC16E,OAAQlJ,IAAKC,SACb4lB,OAAQ,SAAA9U,GAAI,OAAIsrE,EAAS,iBAAkBtrE,EAAKtR,UAEnD+mC,GAAUA,EAAOo9C,gBAAkBzH,EAAS31C,EAAOo9C,kBAI5D,yBAAKhmF,UAAU,SACX,2BAAOugB,QAAQ,WAA4B,OAAjBne,IAAKC,SAAmB,uBAAsB,iBACxE,6BACI,kBAAC,KAAD,CACIvC,GAAG,cACH8F,KAAK,cACL+iB,YAAY,EAGZ9mB,MAAOigF,GAAa,IAAIx6E,KAAKw6E,EAAUmE,aACvC36E,OAAQlJ,IAAKC,SACb4lB,OAAQ,SAAA9U,GAAI,OAAIsrE,EAAS,cAAetrE,EAAKtR,UAEhD+mC,GAAUA,EAAOq9C,aAAe1H,EAAS31C,EAAOq9C,eAIzD,yBAAKjmF,UAAU,SACX,2BAAOugB,QAAQ,SAA0B,OAAjBne,IAAKC,SAAmB,UAAY,WAC5D,6BACI,kBAAC,KAAD,CACIvC,GAAG,QACHoc,OAAO,KACPra,MAAOigF,GAAa54C,OAAO44C,EAAU0C,OACrC5+E,KAAK,QACLqiB,OAAQ,SAAA9U,GAAI,OAAIsrE,EAAS,QAAStrE,EAAKtR,UAE1C+mC,GAAUA,EAAO47C,OAASjG,EAAS31C,EAAO47C,aExO1D8B,GAAkB,WAE3B,IAaI/kE,EACAglE,EAdJ,EAAsBp+E,qBAAW7G,GAA1BI,EAAP,oBAEA,EAAgD0G,mBAAS,IAAzD,mBAAOo+E,EAAP,KAAyBC,EAAzB,KACA,EAAwDr+E,mBAAS,IAAjE,mBAA6Bs+E,GAA7B,WACA,EAA8Ct+E,oBAAS,GAAvD,mBAAOixB,EAAP,KAAwBC,EAAxB,KACA,EAAgClxB,oBAAU,GAA1C,mBAAOu+E,EAAP,KAAiBC,EAAjB,KACA,EAAgDx+E,oBAAS,GAAzD,mBAAO6zB,EAAP,KAAyB+F,EAAzB,KAEA,EAA4DwjD,KAApDlD,EAAR,EAAQA,SAAUgD,EAAlB,EAAkBA,UAAWC,EAA7B,EAA6BA,aAAc7/C,EAA3C,EAA2CA,aACnC/mB,EAAuBb,KAAvBa,mBAEAlW,EAAMC,cAAND,EAKRI,qBAAU,WAAM,4CACZ,gCAAA/D,EAAA,0DACQ2C,EAAe,GAAI,GAAI/F,GAD/B,iCAEgC+jF,GAAa/jF,EAAYjB,aAAasI,KAAtC,uCAA2C,WAAMwI,GAAN,SAAAzM,EAAA,0DAC3DyM,EAAI9L,GADuD,yCAEpD8L,EAAIvI,QAFgD,OAI3D2V,EAAmB,CACfxV,MAAOoI,EAAI7L,SAL4C,2CAA3C,uDAFhC,cAEc4/E,EAFd,OAYcuB,EAAoBvB,GAAaA,EAAUlnF,OAAS,GAAKknF,EAAUhjF,QAAO,SAAAC,GAG5E,OAFAA,EAAKyjF,eAAiB,IAAI1+E,KAAK/E,EAAKyjF,gBACpCzjF,EAAK0jF,YAAc,IAAI3+E,KAAK/E,EAAK0jF,aAC1B1jF,KAfnB,SAkBgC6e,GAAa1f,EAAYjB,aAAasI,KAAtC,uCAA2C,WAAMwI,GAAN,eAAAzM,EAAA,0DAC3DyM,EAAI9L,GADuD,yCAEpD8L,EAAIvI,QAFgD,QAIvD89E,EAAe,IAENxoE,UAAY,iCACzBwoE,EAAavoE,UAAY,sCAEzBI,EAAmB,CACfxV,OAAO,EACPiV,QAAS,kBACTC,QAAS,uBACTC,UAAU,GAAD,OAAKwoE,EAAaxoE,WAC3BC,UAAU,GAAD,OAAKuoE,EAAavoE,aAd4B,2CAA3C,uDAlBhC,QAkBc0I,EAlBd,SAsCYye,EAAaze,GAEb4/D,GACAtB,EAAasB,GAzCzB,6CADY,uBAAC,WAAD,wBA8CZ32D,KACD,IAEH,IAAMkL,EAAmB,CAAC,gBAAiB,iBAAkB,YAAa,WAAY,WAAY,YAC5F2rD,EAAc,CAAEC,cAAc,EAAMC,aAAa,EAAMC,eAAe,GACtEC,EAAiB,CAAC,MAAO,OAAQ,SAAU,SAAU,UA2BrD9E,EAAe,SAAClvE,GAClB,OACI,yBAAKnT,UAAU,aACVyH,EAAe,GAAI,OAAQ/F,IAAgB,0BAAMyI,QAAS,kBAAMm4E,EAASnvE,IAAOnT,UAAU,qBAC1FyH,EAAe,GAAI,SAAU/F,IAAgB,0BAAMyI,QAAS,kBATrDrK,EASsEqT,EAAKrT,GAR3Fw5B,GAAmB,QACnBstD,EAAY9mF,GAFG,IAACA,GASgFE,UAAU,sBAKxGonF,EAAiB,uCAAG,WAAOtnF,GAAP,iBAAAgF,EAAA,sEACS4gF,GAAoBhkF,EAAYjB,YAAaX,GAAIiJ,KAAjD,uCAAsD,WAAMwI,GAAN,SAAAzM,EAAA,0DAC7EyM,EAAI9L,GADyE,yCAEtE8L,EAAIvI,QAFkE,OAI7E2V,EAAmB,CACfxV,MAAOoI,EAAI9L,KAL8D,2CAAtD,uDADT,OAChB4hF,EADgB,QAWhB/B,EAXgB,aAWA+B,IAEZ/kF,QAAO,SAAAglF,OAIjBZ,EAAwBW,GACxBZ,EAAoBnB,GAlBE,2CAAH,sDAqBjBvkD,EAAa,uCAAG,8BAAAj8B,EAAA,sEACZ62D,GAAWj6D,EAAYjB,YAAakmF,GADxB,OAGZY,EAHY,aAGOjC,GACnB5iF,EAAQ6kF,EAAaj0D,WAAU,SAAA+yD,GAAQ,OAAIA,EAASvmF,KAAM6mF,KAEhEY,EAAaj+D,OAAO5mB,EAAO,GAE3B6iF,EAAagC,GAEbvlD,GAAoB,GAVF,2CAAH,qDAoDnBzgC,IAAMsH,WAAU,WACZm7E,aAAgB,OACZziE,GACAA,EAAarN,UACbqyE,GACAA,EAAYryE,YACjB,CAAC9R,IAAKC,WAIT,OACI,yBAAKvC,GAAG,aAKJ,kBAAC,KAAD,CACIA,GAAG,qBACHE,UAAU,oBACV8L,WAAYw5E,EACZkC,aAAcT,EACd3rD,iBAAkBA,EAClBqsD,QAASN,EACT70C,YAAa,SAACo1C,GAAD,OAASN,EAAkBM,EAAI1jF,KAAKlE,KACjDy2B,eAAgB,CAAE5uB,KAAM,YACxB6uB,aAAa,EACb3N,gBAAgB,EAChB4N,cAAc,EACdnrB,OAAQlJ,IAAKC,SACbxC,IAAK,SAAA05B,GAAI,OAAIhY,EAAegY,IAE5B,kBAAC,KAAD,KACI,kBAAC,KAAD,CAAiB7nB,WAAYjJ,EAAE,oCAAqCqL,SAAU,SAACX,GAAD,OA3IrE,SAACA,GACtB,OACI,oCACKA,EAAK2yE,UACF,0BAAM9lF,UAAU,YAAYmT,EAAK2yE,WAuIuD6B,CAAiBx0E,IAAO2I,MAAM,WAAWpc,MAAM,QACvI,kBAAC,KAAD,CAAiBgS,WAAYjJ,EAAE,iCAAkCqT,MAAM,eAAepc,MAAM,QAC5F,kBAAC,KAAD,CACIwc,OAAyB,OAAjB9Z,IAAKC,SAAmB,aAAe,aAC/CqP,WAAYjJ,EAAE,gCACdqT,MAAM,iBACNpc,MAAM,QACV,kBAAC,KAAD,CACIwc,OAAyB,OAAjB9Z,IAAKC,SAAmB,aAAe,aAC/CqP,WAAYjJ,EAAE,8BACdqT,MAAM,cACNpc,MAAM,QAEV,kBAAC,KAAD,CACIgS,WAAYjJ,EAAE,gCACdqT,MAAM,QACNnU,KAAK,SACLuU,OAAQ,CACJwoE,SAAU,MACVxoE,OAAQ,MAEZ5Z,OAAQ,CAAEqF,KAAM,QAChBjI,MAAM,QAEV,kBAAC,KAAD,CACIgS,WAAYjJ,EAAE,kCACdqT,MAAM,QACNnU,KAAK,SACLrF,OAAQ,CAAEqF,KAAM,QAChBuU,OAAQ,CACJwoE,SAAU,MACVxoE,OAAQ,MAEZxc,MAAM,QAEV,kBAAC,KAAD,CAAiBoU,SAAU,SAACX,GAAD,OAAUkvE,EAAalvE,IAAOzT,MAAM,QAEnE,kBAAC,KAAD,CAAQ0d,SAAU,CAACwZ,KAAQC,KAAMC,KAAaC,KAAQC,SAG1D,yBAAKh3B,UAAU,eACX,0BAAMA,UAAU,uBAChB,4BAAsB,OAAjBoC,IAAKC,SAAmB,mCAA4B,mBAG7D,kBAAC,KAAD,CACIyJ,WAAY06E,EACZgB,aAAcT,EACd3rD,iBAAkBA,EAClBqsD,QAASN,EACT5wD,eAAgB,CAAE5uB,KAAM,QACxB6uB,aAAa,EACb3N,gBAAgB,EAChB4N,cAAc,EACdnrB,OAAQlJ,IAAKC,SACbxC,IAAK,SAAA05B,GAAI,OAAIgtD,EAAchtD,IAE3B,kBAAC,KAAD,KACI,kBAAC,KAAD,CAAiB7nB,WAAYjJ,EAAE,+BAAgCqT,MAAM,wBAAwBpc,MAAM,QACnG,kBAAC,KAAD,CAAiBgS,WAAYjJ,EAAE,gCAAiCqT,MAAM,yBAAyBpc,MAAM,QACrG,kBAAC,KAAD,CAAiBoU,SAAU,SAACX,GAAD,OA7LvB,SAAAA,GAChB,OACI,oCAEQA,EAAKnP,MAAQ,8BAAO,IAAIsD,KAAK6L,EAAKnP,MAAMuD,mBAAmBnF,IAAKC,YAyL3BulF,CAAYz0E,IAAOzB,WAAYjJ,EAAE,+BAAgCqT,MAAM,OAAOpc,MAAM,QACzH,kBAAC,KAAD,CAAiBgS,WAAYjJ,EAAE,iCAAkCqT,MAAM,kBAAkBpc,MAAM,QAC/F,kBAAC,KAAD,CAAiBgS,WAAYjJ,EAAE,gCAAiCqT,MAAM,UAAUpc,MAAM,QACtF,kBAAC,KAAD,CAAiBoU,SArHT,SAACwzE,GACrB,OAAQA,EAAiBO,UACrB,IAAK,OACD,OAAO,8BAAO,IAAIvgF,KAAKggF,EAAiBQ,aAAavgF,sBAEzD,IAAK,UACD,OAAO,8BAAOwgF,KAAKC,aAAa,KAAM,CAClC51E,MAAO,WACPsyE,SAAU,QACXxoE,OAAOorE,EAAiBQ,cAE/B,QACI,OAAO,8BAAOR,EAAiBQ,eAyGiBp2E,WAAYjJ,EAAE,sCAAuCqT,MAAM,cAAcpc,MAAM,QAC3H,kBAAC,KAAD,CAAiBoU,SAvIX,SAACwzE,GACnB,OAAQA,EAAiBO,UACrB,IAAK,OACD,OAAO,8BAAO,IAAIvgF,KAAKggF,EAAiBW,WAAW1gF,sBAEvD,IAAK,UACD,OAAO,8BAAOwgF,KAAKC,aAAa,KAAM,CAClC51E,MAAO,WACPsyE,SAAU,QACXxoE,OAAOorE,EAAiBW,YAE/B,QACI,OAAO,8BAAOX,EAAiBW,aA2Hev2E,WAAYjJ,EAAE,oCAAqCqT,MAAM,YAAYpc,MAAM,SAEzH,kBAAC,KAAD,CAAQ0d,SAAU,CAACwZ,KAAQC,KAAMC,KAAaC,KAAQC,SAG1D,kBAAC,GAAD,MAEA,kBAAC,KAAD,CACIl3B,GAAG,cACHoe,SAAS,EACTvC,QAAS0d,EACT/tB,OAAQlJ,IAAKC,UAEb,6BACI,yBAAKrC,UAAU,YACX,2BAAOA,UAAU,oBACjB,yBAAKA,UAAU,gBAEPi8B,EACI,2BAAOj8B,UAAU,qBAAqByI,EAAE,mBAExC,2BAAO3I,GAAG,eAAe2I,EAAE,+BAI3C,6BACEwzB,EAME,yBAAKj8B,UAAU,kBACX,yBAAKA,UAAU,gBACX,0BAAMA,UAAU,6BAEpB,+BAAQyI,EAAE,6BACV,4BAAQ0B,QAAS,kBAzIrCmvB,GAAmB,QACnB0I,GAAoB,KAwI4Cv5B,EAAE,kBAVlD,yBAAKzI,UAAU,iBACX,4BAAQmK,QAAS,kBAAMmvB,GAAmB,KAAS7wB,EAAE,mBACrD,4BAAQ0B,QAAS42B,GAAgBt4B,EAAE,yBD9SlDy/E,I,OAAkB,WAE3B,MAAsB//E,qBAAW7G,GAA1BI,EAAP,oBAEQ4gF,EAAakD,KAAblD,SAEA75E,EAAMC,cAAND,EAERI,qBAAU,WACN,IAAI6iB,EAAoBhqB,EAAYR,YACpCoqB,GAAiBI,EAAkBppB,QAAO,SAACpE,GAAD,OAA0B,KAAnBA,EAAEmD,gBAAqBoB,KAAI,SAACvE,GAAD,OAAQA,EAAEkD,cACtFgI,QAAQ1C,IAAI4kB,MACb,CAAC5pB,IAEJ,IAAMquB,EAAY,CACd0H,OAAQnM,IAAkC,KAC1Ca,aAAa,EACbI,WAAW,EACXiL,IAAK,kBAAM8qD,MAGf,OACI,oCACiC,OAA5B5gF,EAAYjB,YAAuB,kBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WACzD,oCACI,kBAAC,GAAD,CAAoB/J,GAAG,OACvB,yBAAKE,UAAU,eACf,kBAACwM,EAAA,EAAD,CAAWxM,UAAU,yBACjB,yBAAKA,UAAU,mBACX,kBAACmhB,GAAA,EAAD,KACI,yBAAKnhB,UAAU,mBACX,yBAAKA,UAAU,SACX,4BAAKyI,EAAE,4BAGf,yBAAKzI,UAAU,mBACX,yBAAKA,UAAU,WACX,kBAAC,GAAD,CAASwrB,SAAUuE,QAKnC,kBAAC5O,GAAA,EAAD,KACI,yBAAKnhB,UAAU,oBACX,kBAAC,GAAD,a,+CEzDzB,SAAemoF,GAAtB,mC,8CAAO,WAAmCzjF,GAAnC,SAAAI,EAAA,+EACIT,EAAW,iEAAkE,MAAO,GAAI,KAAMK,GAAO,IADzG,4C,sBCOA,IAAM0jF,GAAc,WAEvB,IAMI7mE,EANJ,EAAsBhgB,IAAM4G,WAAW7G,GAAhCI,EAAP,oBAEA,EAA0B0G,mBAAS,IAAnC,mBAAOpG,EAAP,KAAcqmF,EAAd,KAEQ5/E,EAAMC,cAAND,EAIAkW,EAAuBb,KAAvBa,mBAQR9V,qBAAU,WACF0Y,GACAA,EAAarN,YAClB,CAAC9R,IAAKC,WAET,IAMMimF,EAAc,SAACn1E,GACjB,OACI,0BAAMnT,UAAU,YAA6B,OAAjBoC,IAAKC,SAAmB,OAAS,MAA7D,KAAuE8Q,EAAKo1E,IAAK9D,eAAeriF,IAAKC,YA2B7G,OAvBAwG,qBAAU,WAAM,4CACZ,8BAAA/D,EAAA,sEACmCqjF,GAAoBzmF,EAAYjB,aAAasI,KAA7C,uCAAkD,WAAMwI,GAAN,SAAAzM,EAAA,0DACzEyM,EAAI9L,GADqE,yCAElE8L,EAAIvI,QAF8D,OAIzE2V,EAAmB,CACfxV,MAAOoI,EAAI9L,KAL0D,2CAAlD,uDADnC,OACU+iF,EADV,OAWUC,EAA2BD,EAAiBlmF,QAAO,SAAAC,GAGrD,OAFAA,EAAKmmF,cAAgB,IAAIphF,KAAK/E,EAAKmmF,eACnCnmF,EAAKomF,WAAcpmF,EAAKomF,WAAiBpmF,EAAKomF,WAAT,EAC9BpmF,KAGX8lF,EAASI,GAjBb,4CADY,uBAAC,WAAD,wBAoBZv4D,KACD,IAGC,yBAAKpwB,GAAG,cAAcE,UAAU,iBAC5B,6BACI,kBAAC,KAAD,CACIF,GAAG,kBACHgM,WAAY9J,EACZu0B,eAAgB,CAAE5uB,KAAM,YACxB6uB,aAAa,EACbC,cAAc,EACdmyD,eAAe,EACf//D,gBAAgB,EAChBvd,OAAQlJ,IAAKC,SACbxC,IAAK,SAAA05B,GAAI,OAAIhY,EAAegY,IAE5B,kBAAC,KAAD,KACI,kBAAC,KAAD,CAAiBzd,MAAM,WAAWhI,SA7D5B,SAACX,GACvB,OACI,0BAAMnT,UAAU,YAAYmT,EAAK2yE,WA2D0Cp0E,WAAYjJ,EAAE,sCAAuC/I,MAAM,QAC1H,kBAAC,KAAD,CAAiBoc,MAAM,UAAUpK,WAAYjJ,EAAE,mCAAoC/I,MAAM,QACzF,kBAAC,KAAD,CAAiBoc,MAAM,cAAcpK,WAAYjJ,EAAE,iCAAkC/I,MAAM,QAC3F,kBAAC,KAAD,CAAiBoc,MAAM,gBAAgBI,OAAyB,OAAjB9Z,IAAKC,SAAmB,aAAe,aAAcqP,WAAYjJ,EAAE,mCAAoC/I,MAAM,QAC5J,kBAAC,KAAD,CAAiBoc,MAAM,oBAAoBnU,KAAK,SAASuU,OAAQ,CAC7DwoE,SAAU,MACVxoE,OAAQ,MACTxK,WAAYjJ,EAAE,4CAA6C/I,MAAM,QACpE,kBAAC,KAAD,CAAiBoc,MAAM,iBAAiBnU,KAAK,SAASuU,OAAQ,CAC1DwoE,SAAU,MACVxoE,OAAQ,MACTxK,WAAYjJ,EAAE,uCAAwC/I,MAAM,QAC/D,kBAAC,KAAD,CACIoc,MAAM,aACNnU,KAAK,SACLuU,OAAQ,CACJwoE,SAAU,MACVxoE,OAAQ,MAEZxK,WAAYjJ,EAAE,iCACd/I,MAAM,SAGd,kBAAC,KAAD,KACI,kBAAC,KAAD,KACI,kBAAC,KAAD,KACI,kBAAC,KAAD,CAA0Boc,MAAM,oBAAoBI,OAAO,KAAKvU,KAAK,MAAMkhF,eA5EzE,SAAC11E,GAC3B,OACI,0BAAMnT,UAAU,YAAhB,cAAwCmT,EAAKo1E,IAAK9D,eAAeriF,IAAKC,cA2ElD,kBAAC,KAAD,CAA0ByZ,MAAM,iBAAiBI,OAAO,KAAKvU,KAAK,MAAMkhF,eAAgBP,IACxF,kBAAC,KAAD,CAA0BxsE,MAAM,aAAaI,OAAO,KAAKvU,KAAK,MAAMkhF,eAAgBP,OAKhG,kBAAC,KAAD,CAAQlrE,SAAU,CAAC2Z,KAAQC,KAAM8xD,KAAOC,KAAWlyD,YCvG1DmyD,GAAoB,WAE7B,IAAQvgF,EAAMC,cAAND,EAIR,GAF+BqV,KAAvBa,mBAEcpd,aAAiBD,IAAhCI,EAAP,oBAEA,OACI,gCACiC,OAA5BA,EAAYjB,YAAuB,gBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WACzD,gCACI,gBAAC,GAAD,CAAoB/J,GAAG,OAEvB,uBAAKE,UAAU,eACf,gBAACwM,EAAA,EAAD,CAAWxM,UAAU,gBACjB,uBAAKA,UAAU,mBACX,gBAACmhB,GAAA,EAAD,KACI,uBAAKnhB,UAAU,UACX,uBAAKA,UAAU,SACX,0BAAKyI,EAAE,gCAKvB,gBAAC0Y,GAAA,EAAD,KACI,uBAAKnhB,UAAU,UACX,gBAAC,GAAD,Y,UCrCzB,SAAeipF,GAAtB,qC,8CAAO,WAAyCvkF,EAAOwkF,GAAhD,SAAApkF,EAAA,+EAEET,EACL,uEACA,MACA,GACA,KACAK,GACA,EACA,KACA,KACAwkF,IAXG,4C,sBAeA,SAAeC,GAAtB,uC,8CAAO,WAA4CzkF,EAAO5E,EAAIopF,GAAvD,eAAApkF,EAAA,6DACCmD,EADD,+BACmCmrB,SAAStzB,IAD5C,kBAEEuE,EACL,sEACA,MACA4D,EACA,KACAvD,GACA,EACA,KACA,KACAwkF,IAXG,4C,sBAeA,SAAeE,GAAtB,qC,8CAAO,WAA6C1kF,EAAOwkF,GAApD,SAAApkF,EAAA,+EACET,EACL,4CACA,MACA,GACA,KACAK,GACA,EACA,KACA,KACAwkF,IAVG,4C,sBAaA,SAAeG,GAAtB,qC,8CAAO,WAA8C3kF,EAAOwkF,GAArD,SAAApkF,EAAA,+EACET,EACL,6CACA,MACA,GACA,KACAK,GACA,EACA,KACA,KACAwkF,IAVG,4C,sBAaA,SAAeI,GAAtB,qC,8CAAO,WAA8C5kF,EAAOwkF,GAArD,uBAAApkF,EAAA,6DACDykF,EAAQ,IAAIjiF,KACZkiF,GAAoB,IAAMD,EAAM93B,WAAWrY,OAAO,GAClDsY,GAAc,KAAO63B,EAAM53B,WAAa,IAAIvY,OAAO,GACnD2Y,EAJC,UAImBw3B,EAAM1yC,cAJzB,YAI0C6a,EAJ1C,YAIwD83B,EAJxD,kBAMCvhF,EAND,uDAM2D8pD,EAN3D,+BAMgGA,GAErG3oD,QAAQ1C,IAAIuB,GARP,kBAUE5D,EACL,gEACA,MACA4D,EACA,KACAvD,GACA,EACA,KACA,KACAwkF,IAnBG,4C,sBAsBA,SAAeO,GAAtB,qC,8CAAO,WAAmC/kF,EAAOwkF,GAA1C,SAAApkF,EAAA,+EACET,EACL,gEACA,MACA,GACA,KACAK,GACA,EACA,KACA,KACAwkF,IAVG,4C,sBA0BA,SAAe9H,GAAtB,qC,8CAAO,WAAsC18E,EAAOwkF,GAA7C,SAAApkF,EAAA,uGAEET,EACL,wEACA,MAJG,yBAMH,KACAK,GACA,EACA,KACA,KACAwkF,IAXG,4C,sBAgBA,SAAetF,GAAtB,qC,8CAAO,WAAqCl/E,EAAOwkF,GAA5C,SAAApkF,EAAA,uGAEET,EACL,wEACA,MAJG,yBAMH,KACAK,GACA,EACA,KACA,KACAwkF,IAXG,4C,sBAgBA,SAAeQ,GAAtB,uC,8CAAO,WAAuChlF,EAAOD,EAAMykF,GAApD,eAAApkF,EAAA,6DACCqJ,EAAM5N,KAAKiJ,UAAU/E,GADtB,kBAEEJ,EACL,qEACA,OACA,GACA8J,EACAzJ,GACA,EACA,KACA,KACAwkF,IAXG,4C,sBAeA,SAAeS,GAAtB,uC,8CAAO,WAAoCjlF,EAAOD,EAAMykF,GAAjD,eAAApkF,EAAA,6DACCqJ,EAAM5N,KAAKiJ,UAAU/E,GADtB,kBAEEJ,EACL,kEACA,OACA,GACA8J,EACAzJ,GACA,EACA,KACA,KACAwkF,IAXG,4C,sBAkBA,SAAellE,GAAtB,yC,8CAAO,WAAkCtf,EAAOyhC,EAAQyjD,EAASV,GAA1D,eAAApkF,EAAA,6DACCmD,EADD,qCACyCk+B,EADzC,gDACuFyjD,GAC5FxgF,QAAQ1C,IAAI,gEAAkEuB,GAFzE,kBAGE5D,EACL,gEAAkE4D,EAClE,MACA,GACA,KACAvD,GACA,EACA,KACA,KACAwkF,IAZG,4C,sBC1IA,IAAMW,GAAkB,SAACrqF,GAC9BomF,aAAW,MACX5B,aAAgB,OAChB,IAAQ8F,EAAuDtqF,EAAvDsqF,iBAAkBvoE,EAAqC/hB,EAArC+hB,aAAcwoE,EAAuBvqF,EAAvBuqF,mBACxC,EAAsBxoF,aAAiBD,GAAhCI,EAAP,oBACQ+G,EAAMC,cAAND,EACR,EAA0BlH,WAAe,IAAzC,mBAAOS,EAAP,KAAcqmF,EAAd,KACA,EAA8B9mF,YAAe,GAA7C,mBAAOghB,EAAP,KAAgB8hE,EAAhB,KACA,EAAsC9iF,WAAe,IAArD,mBAAKyoF,EAAL,KAAmBC,EAAnB,KAEM3F,EAAc,uCAAG,sBAAAx/E,EAAA,6DACrBu/E,GAAW,GADU,SAEf4E,GAA0BvnF,EAAYjB,aAAasI,MACvD,SAACvD,GACKA,EAASC,IACXD,EAASwD,OAAOD,MAAK,SAAC/E,GACpBqkF,EAASrkF,GACTimF,EAAgBjmF,GAChBud,EAAa5N,QAAQ7H,WAAa9H,EAClCqgF,GAAW,MACVn7E,OAAM,SAAA25E,GACPwB,GAAW,GACXj7E,QAAQ1C,IAAIm8E,SAZC,2CAAH,qDAmBpBthF,aAAgB,WACdwoF,EAAmB/nF,KAClB,CAACA,IAEJT,aAAgB,WACVghB,IACFzR,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,aAChDE,aAAYH,SAASC,eAAe,YACpCG,aAAW,CAAErJ,KAAM,iBAEpB,CAAC4a,IAEJhhB,aAAgB,WACd+iF,IACA/iE,EAAa5N,QAAQO,YACpB,CAAC9R,IAAKC,WAET,IA+EM6nF,EAAmC,SAAC/2E,GACxC,OAAIA,EAAKg3E,qBACC,4BAAwB,OAAjB/nF,IAAKC,SAAmB,MAAQ,OAEvC,4BAAwB,OAAjBD,IAAKC,SAAmB,SAAQ,OAK7C+nF,EAAY,SAACj3E,GACjB,OACE,wBAAMnT,UAAU,YACI,OAAjBoC,IAAKC,SAAmB,OAAS,MADpC,IAC4C,IACzC8Q,EAAKo1E,IAAI9D,eAAe,QAAS,CAChCryE,MAAO,WACPsyE,SAAU,UAkFlB,OACE,uBAAK5kF,GAAG,kBAAkBE,UAAU,iBACjCuiB,GAAW,uBAAKnQ,MAAO,CAAEm0B,OAAQ,SAAWzmC,GAAG,YAC/CkC,GACC,gBAAC,KAAD,CACElC,GAAG,kBACHgM,WAAY9J,EACZu0B,eAAgB,CAAE5uB,KAAM,YACxB6uB,aAAa,EACb3N,gBAAgB,EAChB4N,cAAc,EACd0b,eAAe,EACfy2C,eAAe,EACflyD,kBAAkB,EAClBwsD,eAjCe,SAAC/vE,GACtB,IAAMk3E,EAAmB,uCAAG,4BAAAvlF,EAAA,sDAC1B,IACQ9C,EAAQmR,EAAKwsD,KAAKl9D,KAAI,SAAAF,GAE1B,OADgBA,EAAKyB,QAGvBoF,QAAQ1C,IAAI,OAAQ1E,GACpBioF,EAAgBjoF,GAChB,MAAOmH,GACPC,QAAQ1C,IAAIyC,GATY,2CAAH,qDAYrBgK,IAAyB,WAAfA,EAAKqpB,QAAwBrpB,EAAKm9B,aAAen9B,EAAKm9B,aAAen9B,EAAKwsD,MAA6B,YAArBxsD,EAAKm9B,aACnG+5C,IACSl3E,GAAuB,iBAAfA,EAAKqpB,QACtBytD,EAAgBjoF,IAkBZu8B,aAAc,CAAE+rD,UAAW,EAAGtH,WAAW,GACzC5nD,iBA5CiB,CACvB,gBACA,iBACA,YACA,WACA,WACA,YAuCM9vB,OAAQlJ,IAAKC,SACbxC,IAAK0hB,EACLtV,mBAAmB,GAEnB,gBAAC,KAAD,KACE,gBAAC,KAAD,CACEyF,WAAYjJ,EAAE,iCACdqL,SAAU,SAACX,GAAD,OAhID,SAACA,GACpB,OACE,wBAAMhJ,QAAS,kBAAM2/E,EAAiB32E,EAAKrT,KAAKE,UAAU,gBACvDmT,EAAKqB,MA6HoBw1D,CAAa72D,IACjC2I,MAAM,OACNpc,MAAM,QAER,gBAAC,KAAD,CACEgS,WAAYjJ,EAAE,mCACdqT,MAAM,UACNpc,MAAM,QAER,gBAAC,KAAD,CACEgS,WAAYjJ,EAAE,iCACdqT,MAAM,cACNpc,MAAM,QAER,gBAAC,KAAD,CACEgS,WAAYjJ,EAAE,mCACdqT,MAAM,cACNpc,MAAM,QAER,gBAAC,KAAD,CACEgS,WAAYjJ,EAAE,qCACdqT,MAAM,eACNpc,MAAM,QAER,gBAAC,KAAD,CACEgS,WAAYjJ,EAAE,uCACdqT,MAAM,gBACNxZ,OAAQ,CAAEqF,KAAM,QAEhBjI,MAAM,MACNwc,OAAQ,OAEV,gBAAC,KAAD,CACExK,WAAYjJ,EAAE,kCACdqT,MAAM,aACNxZ,OAAQ,CAAEqF,KAAM,QAChBjI,MAAM,MACNwc,OAAQ,OAGV,gBAAC,KAAD,CACExK,WAAYjJ,EAAE,uCACdqT,MAAM,kBACNxZ,OAAQ,CAAEqF,KAAM,QAChBjI,MAAM,MACNwc,OAAQ,OAGV,gBAAC,KAAD,CACExK,WAAYjJ,EAAE,kCAEdqT,MAAM,aACNxZ,OAAQ,CAAEqF,KAAM,QAChBjI,MAAM,MACNwc,OAAQ,OAGV,gBAAC,KAAD,CACExK,WAAYjJ,EAAE,0CACdqT,MAAM,oBACNxZ,OAAQ,CAAEqF,KAAM,QAChBjI,MAAM,MACNwc,OAAQ,OAIV,gBAAC,KAAD,CACExK,WAAYjJ,EAAE,qCACdqT,MAAM,iBACNxZ,OAAQ,CAAEqF,KAAM,QAChBjI,MAAM,MACNwc,OAAQ,OAGV,gBAAC,KAAD,CACExK,WAAYjJ,EAAE,oCACdqT,MAAM,sBACNxZ,OAAQ,CAAEqF,KAAM,QAChBjI,MAAM,MACNwc,OAAQ,OAGV,gBAAC,KAAD,CACExK,WAAYjJ,EAAE,qCACdqT,MAAM,iBACNxZ,OAAQ,CAAEqF,KAAM,QAChBjI,MAAM,MACNwc,OAAQ,OAGV,gBAAC,KAAD,CACExK,WAAYjJ,EAAE,mDACdqT,MAAM,uBACNpc,MAAM,MACN4jF,mBAAoB4G,EACpBp2E,SAAUo2E,IAEZ,gBAAC,KAAD,CACEx4E,WAAYjJ,EAAE,mCACdqT,MAAM,qBACNpc,MAAM,SAKV,gBAAC,KAAD,KACE,gBAAC,KAAD,KACE,gBAAC,KAAD,KACE,gBAAC,KAAD,CACEoc,MAAM,gBACNnU,KAAK,MACLkhF,eAAgBuB,IAElB,gBAAC,KAAD,CACEtuE,MAAM,aACNnU,KAAK,MACLkhF,eAAgBuB,IAElB,gBAAC,KAAD,CACEtuE,MAAM,aACNnU,KAAK,MACLkhF,eAAgBuB,IAElB,gBAAC,KAAD,CACEtuE,MAAM,kBACNnU,KAAK,MACLkhF,eAAgBuB,IAElB,gBAAC,KAAD,CACEtuE,MAAM,oBACNnU,KAAK,MACLkhF,eAAgBuB,IAElB,gBAAC,KAAD,CACEtuE,MAAM,iBACNnU,KAAK,MACLkhF,eAAgBuB,IAElB,gBAAC,KAAD,CACEtuE,MAAM,sBACNnU,KAAK,MACLkhF,eAAgBuB,IAElB,gBAAC,KAAD,CACEtuE,MAAM,iBACNnU,KAAK,MACLkhF,eAAgBuB,MAKtB,gBAAC,KAAD,KACE,gBAAC,KAAD,KACE,gBAAC,KAAD,CACEtuE,MAAM,iBACNnU,KAAK,MACLkhF,eAxTO,SAAC11E,GACtB,GAAI1L,EAAe,GAAI,QAAS/F,GAAc,CAC5C,IAAM6oF,EA9CkB,WAE1B,IAAMC,EAAmB,SAACC,GACxB,OAAOA,EAAEhG,eAAeriF,IAAKC,SAAU,CACrC+P,MAAO,WACPsyE,SAAU,SAIVE,EAAY,EACZ8F,EAAY,EACZvzE,EAAQ,EACRwzE,EAAsB,GACtBloF,EAAM,IAAImoF,IAEd,GAAIZ,GAAgBA,EAAa5rF,OAAS,EAAG,CAAC,IAAD,iBACxB4rF,GADwB,IAC3C,2BAAiC,CAAC,IAAvBznF,EAAsB,QAC3BA,EAAKsoF,gBAAkBtoF,EAAKsoF,eAAe7F,MAAQviF,EAAIupC,IAAIzpC,EAAKsoF,eAAe7F,OACjFviF,EAAIqpC,IAAIvpC,EAAKsoF,eAAe7F,KAAK,GACjC2F,EAAoBvmF,KAApB,eACK7B,MALkC,8BAU3CooF,EAAoB1mF,SAAQ,SAAC1B,GAC3BqiF,GAAariF,EAAKsoF,eAAejG,aAEnCoF,EAAa/lF,SAAQ,SAAC1B,GACjBA,EAAKuoF,iBAAgBJ,GAAanoF,EAAKuoF,mBAE5C3zE,EAAQytE,EAAY8F,EAGtB,MAAO,CACL9F,UAAWA,EACXmG,kBAAmBP,EAAiB5F,GACpC8F,UAAWA,EACXM,kBAAmBR,EAAiBE,GACpCvzE,MAAOA,EACP8zE,cAAeT,EAAiBrzE,IAMd+zE,GAClB,OACE,uBAAKlrF,UAAU,iBACb,wBAAMA,UAAU,eACI,OAAjBoC,IAAKC,SACJ,qCAAoC,+BAA+B,2BACrE,wBAAMrC,UAAS,uBAAkBuqF,EAAUpzE,MAAQ,EAAI,MAAQ,KAC5DozE,EAAUU,gBAIf,4BACoB,OAAjB7oF,IAAKC,SAAmB,eAAc,SADzC,MACsDkoF,EAAUQ,mBAEhE,4BACoB,OAAjB3oF,IAAKC,SAAmB,YAAc,UADzC,MACuDkoF,EAAUS,oBAMrE,MAAO,SAuSH,gBAAC,KAAD,CACE5tE,SAAU,CACR2Z,KACAF,KACAG,KACA+xD,KACAjyD,KACAgyD,KACA3xD,KACAP,WCpbDu0D,I,OAAoB,WAC/B,MAAsB5pF,aAAiBD,GAAhCI,EAAP,oBACA,EAAgCH,YAAe,GAA/C,mBAAO6D,EAAP,KAAiBsL,EAAjB,KACA,EAAgDnP,YAAe,GAA/D,mBACA,GADA,UAC0CA,WAAe,OAAzD,mBAAO6pF,EAAP,KAAsBtB,EAAtB,KACA,EAA4CvoF,WAAe,IAA3D,mBAAO+pB,EAAP,KAAuByM,EAAvB,KACA,EAA8Cx2B,WAAe,IAA7D,mBAAO8pF,EAAP,KAAwBtB,EAAxB,KACI7T,EAAUoV,cACV/pE,EAAehgB,SAAa,MAExBkH,EAAMC,cAAND,EAERlH,aAAgB,WACO,OAAjB6pF,GACF16E,GAAY,KAEb,CAAC06E,IAEJ,IAAMr7D,EAAY,CAChB0H,OAAQnM,GAAkC,KAC1C+L,OAAQ,kBAAMk0D,KACdh0D,OAAQ,GACRC,MAAK/vB,EAAe,GAAI,QAAS/F,IAAe,kBAAMgP,GAAY,IAClEgnB,KAAM,IAGRn2B,aAAgB,WACd,IAAImqB,EAAoBhqB,EAAYR,YACpC62B,EAAkBrM,EAAkBppB,QAAO,SAACpE,GAAD,OAA0B,KAAnBA,EAAEmD,gBAAqBoB,KAAI,SAACvE,GAAD,OAAQA,EAAEkD,iBACtF,CAACM,IAEJH,aAAgB,WACd6H,QAAQ1C,IAAIwvE,KACX,IAEH,IAAMqO,EAAQ,SAAAC,GACZ,OAAO79E,WAAW69E,GAAOC,eAAe,QAAS,CAAEryE,MAAO,WAAYsyE,SAAU,SAG5E6G,EAAgB,WACpB,GAAIhqE,EAAa5N,QAAS,CACxB,IAWM63E,EAAwB,CAC5B1/E,WAZYu/E,EAAgB/oF,QAAO,SAACC,GASpC,OARAA,EAAKkpF,cAAgBlH,EAAMhiF,EAAKkpF,eAChClpF,EAAKmpF,WAAanH,EAAMhiF,EAAKmpF,YAC7BnpF,EAAKopF,gBAAkBpH,EAAMhiF,EAAKopF,iBAClCppF,EAAKqpF,WAAarH,EAAMhiF,EAAKqpF,YAC7BrpF,EAAKspF,kBAAoBtH,EAAMhiF,EAAKspF,mBACpCtpF,EAAKupF,eAAiBvH,EAAMhiF,EAAKupF,gBACjCvpF,EAAKwpF,oBAAsBxH,EAAMhiF,EAAKwpF,qBACtCxpF,EAAKuoF,eAAiBvG,EAAMhiF,EAAKuoF,gBAC1BvoF,MAMTgf,EAAa5N,QAAQwhB,YAAYq2D,KAIrC,OACE,gCAC+B,OAA5B9pF,EAAYjB,YACX,gBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WACvBzE,EACgB,OAAlBgmF,EACE,gBAAC,IAAD,CAAUhnF,MAAM,EAAMyF,GAAG,+CAEzB,gBAAC,IAAD,CAAUzF,MAAM,EACdyF,GAAE,qDAAgDuhF,KAItD,gCACE,gBAAC,GAAD,CAAoBtrF,GAAG,OACvB,uBAAKE,UAAU,eACf,gBAACwM,EAAA,EAAD,CAAWxM,UAAU,gBACnB,uBAAKA,UAAU,mBACb,gBAACmhB,GAAA,EAAD,KACE,uBAAKnhB,UAAU,mBACb,uBAAKA,UAAU,SACb,0BAAKyI,EAAE,8BAGX,uBAAKzI,UAAU,mBACb,uBAAKA,UAAU,WACb,gBAAC,GAAD,CAASwrB,SAAUuE,QAK3B,gBAAC5O,GAAA,EAAD,KACE,uBAAKnhB,UAAU,oBACb,gBAAC,GAAD,CACE8pF,iBAAkBA,EAClBvoE,aAAcA,EACdwoE,mBAAoBA,WC5GhC5mF,GAAe,CACnBrD,GAAI,EACJ0U,KAAM,KACNuxE,QAAS,CACPjmF,GAAI,KACJ0U,KAAM,MAERw3E,YAAa,CACXlsF,GAAI,KACJ0U,KAAM,KACNW,OAAO,GAET01E,eAAgB,CACd/qF,GAAI,KACJklF,IAAK,KACLJ,UAAW,KACXC,MAAO,KACP1vE,OAAO,GAET82E,YAAa,KACbC,YAAa,KACbC,aAAc,KACdhC,sBAAsB,EACtBiC,YAAa,KACbC,UAAW,KACXl3E,OAAO,EACPqnE,SAAU,KACVjsB,OAAQ,GACR+7B,WAAY,GACZC,OAAQ,GACR3/B,UAAW,GACX4/B,sBAAsB,GAGlBC,GAA2BlrF,kBAE3BmrF,GAA4B,SAAC,GAAkB,IAAhBjrF,EAAe,EAAfA,SACnC,EAA4CF,WAAe4B,IAA3D,mBAAOwpF,EAAP,KAAuBC,EAAvB,KAMA,OACE,gBAACH,GAAyB7qF,SAA1B,CACEC,MAAO,CAAC8qF,EAAgBC,EANA,WAC1BA,EAAkBzpF,OAMf1B,ICpCMorF,GAAc,SAAC,GAAwC,IAAvCC,EAAsC,EAAtCA,uBAAwBjtE,EAAc,EAAdA,QACnD,EAAsBte,aAAiBD,GAAhCI,EAAP,oBACA,EAA4CH,aAAiBkrF,IAA7D,mBAAOE,EAAP,KAAuBC,EAAvB,KACA,EAAoCrrF,WAAe,MAAnD,mBAAOwrF,EAAP,KAAmB34B,EAAnB,KACA,EAAgC7yD,WAAe,MAA/C,mBAAOyrF,EAAP,KAAiBC,EAAjB,KACQxkF,EAAMC,cAAND,EACR,EAA+D6kB,aAAQ,CAAEgJ,KAAM,SAAUunB,eAAgB,WAAjGpwB,EAAR,EAAQA,SAAUD,EAAlB,EAAkBA,aAAcob,EAAhC,EAAgCA,OAAQ61C,EAAxC,EAAwCA,SAAUZ,EAAlD,EAAkDA,SAClDt8E,aAAgB,WAEd,GAAIwrF,GAAcA,EAAW,IAAMA,EAAW,GAAI,CAChD,IAAIG,EAAWH,EAAW,GAAGn2B,UAAYm2B,EAAW,GAAGn2B,UAEvDq2B,EADeC,EAAQ,MACA,QAEvBD,EANW,KAQZ,CAACF,IAEJxrF,aAAgB,WACdorF,GAAkBA,EAAe5G,SAAW4G,EAAe5G,QAAQjmF,IAAM2+E,EAAS,aAAckO,EAAe5G,QAAQjmF,IACvH6sF,GAAkBA,EAAeX,aAAeW,EAAeX,YAAYlsF,IAAM2+E,EAAS,iBAAkBkO,EAAeX,YAAYlsF,IACvI6sF,GAAkBA,EAAe9B,gBAAkB8B,EAAe9B,eAAe/qF,IAAM2+E,EAAS,eAAgBkO,EAAe9B,eAAe/qF,IAC9I6sF,GAAkBA,EAAexC,sBAAwB1L,EAAS,uBAAwBkO,EAAexC,wBACxG,CAACwC,EAAgB9sE,IAEpB,IAqCMstE,EAAU1lF,EAAe,GAAI,QAAS/F,GAE5C,OACE,2BACE,uBAAK1B,UAAU,oBACb,uBAAKA,UAAU,QACb,wBAAMA,UAAU,mBAChB,0BAAsB,OAAjBoC,IAAKC,SAAmB,QAAU,UAI3C,wBAAMyrB,SAAUN,GAhDH,SAACxpB,GAChB,IAAKA,EAAKkoF,cAAgBloF,EAAKmoF,aAG7B,OAFAtO,EAAS,cAAe,iBACxBA,EAAS,eAAgB,YAI3B,IAAImO,EAAc,KAEdhoF,GAAQA,EAAKgoF,aAAehoF,EAAKgoF,YAAYlsF,KAC/CksF,EAAc,CACZlsF,GAAIkE,EAAKgoF,YAAYlsF,KAIzB,IAAM8gB,EAAM,CACVpM,KAAMxQ,EAAKwQ,KACXuxE,QAAS,CACPjmF,GAAIkE,EAAK+hF,QAAQjmF,IAEnBksF,cACAnB,eAAgB,CACd/qF,GAAIkE,EAAK4gF,UAAU9kF,IAErBmsF,YAAajoF,EAAKioF,YAClBC,YAAaloF,EAAKkoF,YAClBC,aAAcnoF,EAAKmoF,aACnBhC,qBAAsBnmF,EAAKmmF,qBAC3BiC,YAAapoF,EAAKopF,OAAO,GACzBf,UAAWroF,EAAKopF,OAAO,GACvBj4E,OAAO,GAETy3E,GAAkB,SAACS,GAAD,mBAAC,eAAoBA,GAAczsE,MACrDksE,GAAuB,MAGT,SAAClkD,EAAQ/lC,GAAT,OAAeuG,QAAQ1C,IAAIkiC,EAAQ/lC,MAYE/C,GAAG,aAClD,uBAAKE,UAAU,2BAEb,uBAAKA,UAAU,YACb,uBAAKA,UAAU,SACb,yBAAOugB,QAAQ,UACK,OAAjBne,IAAKC,SAAmB,qBAAiB,cAC1C,yBAAO2Z,MAAM,WAAW,IAAxB,MAEF,uBAAKhc,UAAU,iBACb,gBAAC,KAAD,CACEF,GAAG,OACH8F,KAAK,OACL6hB,QAAShgB,EAAe,GAAI,QAAS/F,GACrCkpB,eAAgB,CAAEhD,UAAW,KAC7B/lB,MAAO8qF,EAAen4E,KACtB3U,IAAK4tB,EAAS,CACZ1N,UAAU,IAEZpY,KAAK,OACL0M,YAA8B,OAAjBjS,IAAKC,SAAmBoG,EAAE,4CAA8C,qBAEtFmgC,EAAOp0B,MACN,qBAAGxU,UAAU,SAASyI,EAAE,2BAMhC,uBAAKzI,UAAU,aAEb,uBAAKA,UAAU,SACb,yBAAOugB,QAAQ,UACK,OAAjBne,IAAKC,SAAmB,aAAY,SACrC,yBAAO2Z,MAAM,WAAW,IAAxB,MAEF,uBAAKhc,UAAU,iBAEb,gBAAC,KAAD,CACEF,GAAG,UACHsK,SAAU+iF,EAAU,WAAa,GACjC1lE,QAAShgB,EAAe,GAAI,QAAS/F,GACrCkK,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,SAC/B+D,KAAK,aACLkG,WAAY+T,EAAQkmE,QACpBj9D,iBAAiB,EACjBjnB,MAAO8qF,EAAe5G,QAAQjmF,GAC9BD,IAAK4tB,EAAS,CACZ1N,UAAU,IAEZ1L,YAAa5L,EAAE,0CAEhBmgC,EAAOm9C,SACN,qBAAG/lF,UAAU,SAASyI,EAAE,0BAM9B,uBAAKzI,UAAU,SACb,yBAAOugB,QAAQ,UACK,OAAjBne,IAAKC,SAAmB,kBAAiB,gBAC1C,yBAAO2Z,MAAM,WAAW,MAE1B,uBAAKhc,UAAU,iBACb,gBAAC,KAAD,CACEF,GAAG,cACH8F,KAAK,iBACLwE,SAAU+iF,EAAU,WAAa,GACjC1lE,QAAShgB,EAAe,GAAI,QAAS/F,GACrCkK,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,SAC/BiK,WAAY+T,EAAQqe,MACpBpV,iBAAiB,EACjBjnB,MAAO8qF,GAAkBA,EAAeX,aAAeW,EAAeX,YAAYlsF,GAClFD,IAAK4tB,EAAS,CACZ1N,UAAU,IAEZ1L,YAAa5L,EAAE,gDAEhBmgC,EAAOojD,aACN,qBAAGhsF,UAAU,SAASyI,EAAE,0BAM9B,uBAAKzI,UAAU,SACb,yBAAOugB,QAAQ,UACK,OAAjBne,IAAKC,SAAmB,iBAAgB,cACzC,yBAAO2Z,MAAM,WAAW,MAE1B,uBAAKhc,UAAU,iBACb,gBAAC,KAAD,CACEF,GAAG,cACHsK,SAAU+iF,EAAU,WAAa,GACjC1lE,QAAShgB,EAAe,GAAI,QAAS/F,GACrCkpB,eAAgB,CAAEhD,UAAW,KAC7BhiB,KAAK,cACL/D,MAAO8qF,GAAkBA,EAAeV,YACxCpsF,IAAK4tB,EAAS,CACZ1N,UAAU,IAEZ1L,YAA8B,OAAjBjS,IAAKC,SAAmBoG,EAAE,6CAA+C,2CAEvFmgC,EAAOqjD,aACN,qBAAGjsF,UAAU,SAASyI,EAAE,2BAMhC,uBAAKzI,UAAU,aAEb,uBAAKA,UAAU,SACb,yBAAOugB,QAAQ,UACK,OAAjBne,IAAKC,SAAmB,kBAAoB,cAC7C,yBAAO2Z,MAAM,WAAW,MAE1B,uBAAKhc,UAAU,iBACb,gBAAC,KAAD,CACEF,GAAG,cACH2nB,QAAShgB,EAAe,GAAI,QAAS/F,GACrCkE,KAAK,cACLglB,eAAgB,CAAEhD,UAAW,IAC7B/lB,MAAO8qF,GAAkBA,EAAeT,YACxCrsF,IAAK4tB,EAAS,CACZ1N,UAAU,IAEZ1L,YAAa5L,EAAE,wCAEhBmgC,EAAOsjD,aACN,qBAAGlsF,UAAU,SAASyI,EAAE,sCAM9B,uBAAKzI,UAAU,SACb,yBAAOugB,QAAQ,UACK,OAAjBne,IAAKC,SAAmB,gBAAkB,iBAC3C,yBAAO2Z,MAAM,WAAW,MAE1B,uBAAKhc,UAAU,iBACb,gBAAC,KAAD,CACEynB,QAAShgB,EAAe,GAAI,QAAS/F,GACrC5B,GAAG,eACH8F,KAAK,eACL+B,KAAK,OACLijB,eAAgB,CAAEhD,UAAW,IAC7B/lB,MAAO8qF,GAAkBA,EAAeR,aACxCtsF,IAAK4tB,EAAS,CACZ1N,UAAU,IAEZ1L,YAAa5L,EAAE,iDAEhBmgC,EAAOujD,cACN,qBAAGnsF,UAAU,SAASyI,EAAE,sCAM9B,uBAAKzI,UAAU,eACb,gBAAC,KAAD,CACEF,GAAG,uBACH8F,KAAK,uBACL+M,UAAWlL,EAAe,GAAI,QAAS/F,GACvCpD,IAAK,0BACLuB,IAAK4tB,EAAS,CACZ1N,UAAU,IAEZiI,QAAS2kE,GAAkBA,EAAexC,qBAC1C/1E,SAAU,SAACvR,GACT47E,EAAS,uBAAwB57E,EAAE5E,OAAO+pB,YAG9C,4BACoB,OAAjB5lB,IAAKC,SACF,+BACA,+BAELumC,EAAOuhD,sBACN,qBAAGnqF,UAAU,SAASyI,EAAE,0BAK9B,uBAAKzI,UAAU,aAEb,uBAAKA,UAAU,SACb,yBAAOugB,QAAQ,UACK,OAAjBne,IAAKC,SAAmB,aAAY,SACrC,yBAAO2Z,MAAM,WAAW,IAAxB,MAEF,uBAAKhc,UAAU,iBACb,gBAAC,KAAD,cACEF,GAAG,SACHsK,SAAU+iF,EAAU,WAAa,GACjC1lE,QAAShgB,EAAe,GAAI,QAAS/F,GACrC2S,YAAa5L,EAAE,0BACf7C,KAAK,SACL6mC,UACEkgD,GACAA,EAAeP,aACf,IAAI9kF,KAAKqlF,EAAeP,aAE1Bz/C,QACEggD,GACAA,EAAeN,WACf,IAAI/kF,KAAKqlF,EAAeN,WAG1BxsF,IAAK4tB,EAAS,CACZ1N,UAAU,IAEZkI,OAAQ,SAACplB,GAAD,OAAOuxD,EAAcvxD,EAAEhB,QAC/BinB,iBAAiB,EACjBxd,OAAQlJ,IAAKC,SACbR,MAAOkrF,GAvBT,cAwBgC,OAAjB3qF,IAAKC,SAAmBoG,EAAE,wCAA0C,kBAElFmgC,EAAOwkD,QACN,qBAAGptF,UAAU,SAASyI,EAAE,0BAM9B,uBAAKzI,UAAU,SACb,yBAAOugB,QAAQ,UACK,OAAjBne,IAAKC,SAAmB,gBAAY,WACrC,yBAAO2Z,MAAM,WAAW,IAAxB,MAEF,uBAAKhc,UAAU,iBACb,gBAAC,KAAD,CACEF,GAAG,WACHsK,SAAU+iF,EAAU,WAAa,GACjC1lE,QAAShgB,EAAe,GAAI,QAAS/F,GACrCkE,KAAK,WACLijE,UAAU,EACVhnE,MAAOkrF,GAAcC,EAErB34E,YAA8B,OAAjBjS,IAAKC,SAAmB,wBAAuB,gBAC5DxC,IAAK4tB,EAAS,CACZ1N,UAAU,MAGb6oB,EAAOv9B,UACN,qBAAGrL,UAAU,SAASyI,EAAE,0BAM9B,uBAAKzI,UAAU,SACb,yBAAOugB,QAAQ,aACK,OAAjBne,IAAKC,SAAmB,sBAAqB,cAC9C,yBAAO2Z,MAAM,WAAW,IAAxB,MAEF,uBAAKhc,UAAU,iBACb,gBAAC,KAAD,CACEF,GAAG,YACH8F,KAAK,eACLwE,SAAU+iF,EAAU,WAAa,GACjC1lE,QAAShgB,EAAe,GAAI,QAAS/F,GACrCkK,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,SAC/BiK,WAAY+T,EAAQytE,KACpBzrF,MAAO8qF,EAAe9B,eAAe/qF,GACrCuU,YAAa5L,EAAE,4CACf5I,IAAK4tB,EAAS,CACZ1N,UAAU,MAGb6oB,EAAOg8C,WACN,qBAAG5kF,UAAU,SAASyI,EAAE,+BCrU7B8kF,GAAc,SAAC/tF,GAC1BomF,aAAW,MACX5B,aAAgB,OAEhB,IAAQhgF,EAA8BxE,EAA9BwE,KAAM6b,EAAwBrgB,EAAxBqgB,QAAS2tE,EAAehuF,EAAfguF,WACvB,EAA4CjsF,aAAiBkrF,IAA7D,mBAAOE,EAAP,KAAuBC,EAAvB,KACQnkF,EAAMC,cAAND,EACF8Y,EAAehgB,SAAa,MAClC,EAA0CA,YAAe,GAAzD,mBAAOmgF,EAAP,KAAsBC,EAAtB,KACMO,EAAiB3gF,WAEvB,EAAgCA,WAAe,IAA/C,mBAAOksF,EAAP,KAAiBC,EAAjB,KACA,EAA8BnsF,YAAe,GAA7C,mBAAOghB,EAAP,KAAgB8hE,EAAhB,KACA,EAAoC9iF,WAAe,IAAnD,mBAAO0iF,EAAP,KAAmBC,EAAnB,KACA,EAAgC3iF,WAAe,MAA/C,mBAAO4iF,EAAP,KACA,GADA,KACwE72D,aAAQ,CAC9EgJ,KAAM,WACNunB,eAAgB,WAChBG,aAAc,MACdC,kBAAkB,EAClBC,kBAAkB,KALZzwB,EAAR,EAAQA,SAAUD,EAAlB,EAAkBA,aAAcob,EAAhC,EAAgCA,OAAQr6B,EAAxC,EAAwCA,MAAOkwE,EAA/C,EAA+CA,SAAUzmB,EAAzD,EAAyDA,WASzD,EAAoDz2D,WAAe,CAAEkZ,MAAM,IAA3E,mBAAOsD,EAAP,KAA2BypB,EAA3B,KAGAjmC,aAAgB,WACA,IAEb,CAACksF,IAEJlsF,aAAgB,WACd6H,QAAQ1C,IAAI8mF,KACX,CAACA,IAEJjsF,aAAgB,WACVghB,IACFzR,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,aAChDE,aAAYH,SAASC,eAAe,YACpCG,aAAW,CAAErJ,KAAM,iBAEpB,CAAC4a,IAEJhhB,aAAgB,YACO,IAAjBmgF,IACF1pB,IACAymB,EAAS,KAAM,MACfA,EAAS,eAAgB,MACzBA,EAAS,gBAAiB,MAC1BA,EAAS,aAAc,MACvBA,EAAS,aAAc,MACvBA,EAAS,aAAc,SAExB,CAACiD,IAEJngF,aAAgB,WACdggB,EAAa5N,QAAQO,YACpB,CAAC9R,IAAKC,WAGT,IAAMsrF,EAA6B,SAACpB,GAClC,OAAOA,EAAO9pF,KAAI,SAACF,GACjB,IAAIqrF,EAAW/tE,EAAQguE,WAAWvrF,QAAO,SAACpE,GAAD,OAAOA,EAAE2D,QAASU,EAAKurF,UAAUhuF,MAC1E,OAAI8tF,EAAS,GACJ,2BACFrrF,GADL,IAEEurF,UAAU,2BACLvrF,EAAKurF,WADD,IAEP77E,OAAQ27E,EAAS,GAAG3rF,SAGdM,MAGhBhB,aAAgB,WACd,GAAIorF,EAAeJ,OAAOnuF,OAAS,GAAKyhB,EAAQguE,WAAWzvF,OAAS,EAAG,CACrE,IAAImuF,EAASI,EAAeJ,OAE5BA,GADAA,EAASoB,EAA2BpB,IACpBjqF,QAAO,SAAAC,GAAI,OAAIA,EAAK4S,SACpCu4E,EAAYnB,GACZhrE,EAAa5N,QAAQ7H,WAAaygF,EAClChrE,EAAa5N,QAAQO,aAEtB,CAACy4E,EAAgB9sE,IAMpB,IAAMlB,EAAqB,SAAChX,EAAMqgC,EAAKC,EAAUC,EAAYC,EAAeC,GAC9D,YAARzgC,EACF6/B,EAAsB,CACpBjoC,MAAwB,OAAjB6C,IAAKC,SAAmB,eAAiB,cAChDsF,KAAM,QACN8T,QAA0B,OAAjBrZ,IAAKC,SAAmB,4CAA8C,6CAC/EikC,WAAY,UACZM,kBAAmBsB,EACnBvB,qBAAsBwB,EACtBjvB,KAAM,kBACNuB,MAAM,IAES,UAAR9S,GACT6/B,EAAsB,CACpB/sB,MAAM,KAyBN6tE,EAAc,SAACn1E,GACnB,OACE,wBAAMnT,UAAU,YACI,OAAjBoC,IAAKC,SAAmB,OAAS,MADpC,KAC8CkiF,EAAMpxE,EAAKo1E,OAS7DhnF,aAAgB,WACVggB,EAAa5N,SACf4N,EAAa5N,QAAQO,YACtB,CAAC9R,IAAKC,WAET,IAQMggF,EAAe,SAAClvE,GACpB,OACE,uBAAKnT,UAAU,aACb,wBACEoS,MAAO,CAAEq5C,OAAQ,UAAWC,QAAS,OAAQC,YAAa,OAC1DxhD,QAAS,WACPm4E,GAASnvE,IAGXnT,UAAU,qBAEZ,wBACEoS,MAAO,CAAEq5C,OAAQ,UAAWC,QAAS,QACrCvhD,QAAS,WAQPwU,EAAmB,UAAW,EAAM,GAAM,YAJzB,SAACxL,GAChBwvE,GAAWxvE,GAAM,GACjBwL,EAAmB,SAE6BqqB,CAAS71B,MAPvC,WAClBwL,EAAmB,aASvB3e,UAAU,sBAKZukF,EAAQ,SAAAC,GACZ,OAAO79E,WAAW69E,GAAOC,eAAe,QAAS,CAAEryE,MAAO,WAAYsyE,SAAU,SAe5EpC,GAAW,SAACnvE,GAChB+wE,EAAc,QACdlsB,IACAkqB,EAAevuE,QAAQ8G,OACvBgkE,EAAS,KAAMtrE,EAAKrT,IACpB2+E,EAAS,eAAgBtrE,EAAK26E,UAAUhuF,IACxC2+E,EAAS,gBAAiBtrE,EAAKs4E,eAC/BhN,EAAS,aAActrE,EAAKu4E,YAC5BjN,EAAS,aAActrE,EAAKw1E,YAC5BlK,EAAS,aAActrE,EAAK46E,aAkDxBpL,GAAa,SAAC3+E,EAAMgqF,GACxB3J,GAAW,GACX,IAAM4J,EAA0BpuE,EAAQguE,WAAWvrF,QAAO,SAACpE,GAAD,OAAOA,EAAE2D,QAASmC,EAAK8pF,UAAUhuF,MAAK,GAC1FouF,EAAavoF,EAAkB,MAC/BwoF,EAAiBX,GAAcU,EAAa,EAAIlqF,EAAKmqF,eAE3D/kF,QAAQ1C,IAAIynF,GAEZ,IAAMvtE,EAAM,CACV9gB,GAAIsuF,MAAMpqF,EAAKlE,IAAMkE,EAAKlE,GAAKszB,SAASpvB,EAAKlE,IAC7CguF,UAAW,CACThuF,GAAIkE,EAAK8pF,UAAUhuF,GACnBmS,OAAQg8E,EAA0BA,EAAwBhsF,KAAO+B,EAAK8pF,UAAU77E,QAAUjO,EAAK8pF,UAAU57E,QAE3Gu5E,cAAeznF,EAAKynF,cACpBC,WAAY1nF,EAAK0nF,WACjB/C,WAAY3kF,EAAK2kF,WACjBoF,WAAY/pF,EAAK+pF,WACjBI,eAAgBA,EAChBh5E,OAAO64E,GAGLK,EAAY,GAChBzB,GAAkB,SAACS,GAMjB,OAJAgB,GADAA,EAAYV,EAA2BN,EAAUd,SAC3B9pF,KAAI,SAACF,GAEzB,OADIA,EAAKzC,KAAM8gB,EAAI9gB,KAAMyC,EAAOqe,GACzBre,KAEF,2BACF8qF,GADL,IAEEd,OAAQ8B,OAIZ9sE,EAAa5N,QAAQ7H,WAAauiF,EAAU/rF,QAAO,SAAAC,GAAI,OAAIA,EAAK4S,SAChEoM,EAAa5N,QAAQO,UACrBmwE,GAAW,GACXnC,EAAevuE,QAAQszC,OACvB06B,GAAiB,GACjBpgE,EAAa5N,QAAQO,WAevB,OACE,2BAEE,uBAAKlU,UAAU,oBACb,uBAAKA,UAAU,SACb,wBAAMA,UAAU,oBAChB,0BAAsB,OAAjBoC,IAAKC,SAAmB,SAAW,UAE1C,uBAAKrC,UAAU,YACf,uBAAKA,UAAU,QACb,0BACEF,GAAG,SACHqK,QAAS,WACP+5E,EAAc,OACdvC,GAAiB,GACjBO,EAAevuE,QAAQ8G,SAEzB,wBAAMza,UAAU,yBACE,OAAjBoC,IAAKC,SAAmB,aAAe,cAK9C,gBAAC,KAAD,CACEvC,GAAG,kBACHoe,SAAS,EACTvC,QAAS+lE,EACT7hF,IAAKqiF,EACLz2E,MAlIa,WACjBgzE,EAAS,KAAM,MACfA,EAAS,eAAgB,MACzBA,EAAS,gBAAiB,MAC1BA,EAAS,aAAc,MACvBA,EAAS,aAAc,MACvBA,EAAS,aAAc,OA6HnBn+D,eAAe,EACfhV,OAAQlJ,IAAKC,UAEb,wBACErC,UAAU,YACVF,GAAG,gBACHguB,SAAUN,GA5CD,SAACxpB,GACE,QAAdigF,EAlFiB,SAACjgF,GACtBqgF,GAAW,GACX,IAAMzjE,EAAM,CACV9gB,GAAIgH,IACJgnF,UAAW,CACThuF,GAAIkE,EAAK8pF,UAAUhuF,GACnBmS,OAAQ4N,EAAQguE,WAAWvrF,QACzB,SAACpE,GAAD,OAAOA,EAAE2D,QAASmC,EAAK8pF,UAAUhuF,MACjC,GAAGmC,MAEPwpF,cAAeznF,EAAKynF,cACpBC,WAAY1nF,EAAK0nF,WACjB/C,WAAY3kF,EAAK2kF,WAAa3kF,EAAK2kF,WAAa,EAChDoF,WAAY/pF,EAAK+pF,WAAa/pF,EAAK+pF,WAAa,GAChDI,eAAgB,EAChBh5E,OAAO,GAGLk5E,EAAY,GAChBzB,GAAkB,SAACS,GAGjB,OAFAgB,EAAYV,EAA2BN,EAAUd,SACvCzQ,QAAQl7D,GACX,2BACFysE,GADL,IAEEd,OAAQ8B,OAIZ9sE,EAAa5N,QAAQ7H,WAAauiF,EAAU/rF,QAAO,SAAAC,GAAI,OAAIA,EAAK4S,SAChEoM,EAAa5N,QAAQO,UACrBmwE,GAAW,GACXnC,EAAevuE,QAAQszC,OACvB06B,GAAiB,GACjBpgE,EAAa5N,QAAQO,UAiDIo6E,CAAetqF,GACjB,SAAdigF,GAAsBtB,GAAW3+E,GAC1CuK,OAEc,SAACq6B,EAAQ/lC,GAAT,OAAeuG,QAAQ1C,IAAIkiC,EAAQ/lC,OA0C3C,uBAAK7C,UAAU,QAAQoS,MAAO,CAAEqF,QAAQ,GAAD,OAAmB,SAAdwsE,EAAuB,QAAU,UAC3E,yBAAO1jE,QAAQ,OAAf,MACA,uBAAKvgB,UAAU,iBACb,gBAAC,KAAD,CACEF,GAAG,MACH8F,KAAK,KACL6hB,SAAS,EACT5nB,IAAK4tB,EAAS,CACZ1N,UAAU,IAEZpY,KAAK,SAGNihC,EAAO9oC,IAAM,qBAAGE,UAAU,SAASyI,EAAE,0BAI1C,uBAAKzI,UAAW,OAEd,uBAAKA,UAAU,yBACb,yBAAOugB,QAAQ,aACK,OAAjBne,IAAKC,SAAmB,mBAAkB,aAC3C,yBAAO2Z,MAAM,WAAW,IAAxB,MAEF,uBAAKhc,UAAU,iBACb,gBAAC,KAAD,CACEF,GAAG,YACH8F,KAAK,eACL/F,IAAK4tB,EAAS,CAAE1N,UAAU,IAC1BjU,WAAY+T,GAAWA,EAAQguE,WAC/BjiF,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,SAC/ByJ,OAAQlJ,IAAKC,SAEbgS,YACmB,OAAjBjS,IAAKC,SACD,+BACA,sBAGPumC,EAAOklD,WACN,qBAAG9tF,UAAU,SAASyI,EAAE,0BAK9B,uBAAKzI,UAAU,yBACb,yBAAOugB,QAAQ,iBAAkC,OAAjBne,IAAKC,SAAmB,0BAAsB,kBAC5E,yBAAO2Z,MAAM,WAAW,IAAxB,MAEF,uBAAKhc,UAAU,iBACb,gBAAC,KAAD,CACE4F,KAAK,gBACL9F,GAAG,gBACHoc,OAAO,KACP7H,YACmB,OAAjBjS,IAAKC,SACD,oDACA,eAENuoB,eAAgB,CAAEhD,UAAW,IAG7B/nB,IAAK4tB,EAAS,CACZ1N,UAAU,EACV6H,UAAW,GACXy2C,UAAW,EACXtV,IAAK,MAGRngB,EAAO6iD,eACwB,aAA9B7iD,EAAO6iD,cAAc9jF,MACnB,qBAAG3H,UAAU,SAASyI,EAAE,wBAE3BmgC,EAAO6iD,eACwB,cAA9B7iD,EAAO6iD,cAAc9jF,MACnB,qBAAG3H,UAAU,SAASyI,EAAE,wBAE3BmgC,EAAO6iD,eACwB,QAA9B7iD,EAAO6iD,cAAc9jF,MACnB,qBAAG3H,UAAU,SAASyI,EAAE,mBAE3BmgC,EAAO6iD,eACwB,cAA9B7iD,EAAO6iD,cAAc9jF,MACnB,qBAAG3H,UAAU,SAASyI,EAAE,wBAE3B07E,GACCA,EAASv7C,QACTu7C,EAASv7C,OAAO6iD,eACd,qBAAGzrF,UAAU,SAASmkF,EAASv7C,OAAO6iD,kBAMhD,uBAAKzrF,UAAW,OAEd,uBAAKA,UAAU,yBACb,yBAAOugB,QAAQ,cAA+B,OAAjBne,IAAKC,SAAmB,oBAAmB,aACtE,yBAAO2Z,MAAM,WAAW,IAAxB,MAEF,uBAAKhc,UAAU,iBACb,gBAAC,KAAD,CACE4F,KAAK,aACL9F,GAAG,aACHoc,OAAO,KACP7H,YACmB,OAAjBjS,IAAKC,SACD,iDACA,eAENuoB,eAAgB,CAAEhD,UAAW,IAE7B/nB,IAAK4tB,EAAS,CACZ1N,UAAU,EACV6H,UAAW,GACXy2C,UAAW,EACXtV,IAAK,MAGRngB,EAAO8iD,YACqB,aAA3B9iD,EAAO8iD,WAAW/jF,MAChB,qBAAG3H,UAAU,SAASyI,EAAE,wBAE3BmgC,EAAO8iD,YACqB,cAA3B9iD,EAAO8iD,WAAW/jF,MAChB,qBAAG3H,UAAU,SAASyI,EAAE,wBAE3BmgC,EAAO8iD,YACqB,QAA3B9iD,EAAO8iD,WAAW/jF,MAChB,qBAAG3H,UAAU,SAASyI,EAAE,mBAE3BmgC,EAAO8iD,YACqB,cAA3B9iD,EAAO8iD,WAAW/jF,MAChB,qBAAG3H,UAAU,SAASyI,EAAE,wBAE3B07E,GAAYA,EAASv7C,QAAUu7C,EAASv7C,OAAO8iD,YAC9C,qBAAG1rF,UAAU,SAASmkF,EAASv7C,OAAO8iD,cAK5C,uBAAK1rF,UAAU,yBACb,yBAAOugB,QAAQ,eAAgC,OAAjBne,IAAKC,SAAmB,gBAAe,QAGrE,uBAAKrC,UAAU,iBACb,gBAAC,KAAD,CACE4F,KAAK,aACL9F,GAAG,cACHoc,OAAO,KACP7H,YACmB,OAAjBjS,IAAKC,SACD,qCACA,eAENuoB,eAAgB,CAAEhD,UAAW,IAC7B/nB,IAAK4tB,EAAS,CACZ1N,UAAU,EACV6H,UAAW,GACXy2C,UAAW,EACXtV,IAAK,MAIRngB,EAAO+/C,YACqB,aAA3B//C,EAAO+/C,WAAWhhF,MAChB,qBAAG3H,UAAU,SAASyI,EAAE,wBAE3BmgC,EAAO+/C,YACqB,cAA3B//C,EAAO+/C,WAAWhhF,MAChB,qBAAG3H,UAAU,SAASyI,EAAE,wBAE3BmgC,EAAO+/C,YACqB,QAA3B//C,EAAO+/C,WAAWhhF,MAChB,qBAAG3H,UAAU,SAASyI,EAAE,mBAE3BmgC,EAAO+/C,YACqB,cAA3B//C,EAAO+/C,WAAWhhF,MAChB,qBAAG3H,UAAU,SAASyI,EAAE,wBAE3B07E,GAAYA,EAASv7C,QAAUu7C,EAASv7C,OAAO+/C,YAC9C,qBAAG3oF,UAAU,SAASmkF,EAASv7C,OAAO+/C,eAO9C,uBAAK3oF,UAAU,SACb,yBAAOugB,QAAQ,SAA0B,OAAjBne,IAAKC,SAAmB,mBAAe,QAC/D,uBAAKrC,UAAU,iBACb,gBAAC,KAAD,CACEF,GAAG,aACH8F,KAAK,aACL6hB,SAAS,EACTI,WAAW,EACX+C,eAAgB,CAAEhD,UAAW,KAC7B/nB,IAAK4tB,EAAS,CACZ1N,UAAU,MAIb6oB,EAAOmlD,YACN,qBAAG/tF,UAAU,SAASyI,EAAE,0BAK9B,uBAAKzI,UAAU,eACb,0BACE2H,KAAK,SACLykB,KAAK,gBACLzZ,SAAU4P,EACVviB,UAAW,mCAEVyI,EAAE,mBAIR8Z,GAAW,uBAAKnQ,MAAO,CAAEm0B,OAAQ,SAAWzmC,GAAG,aAGjDkE,GACC,gBAAC,KAAD,CACE8H,WAAY2hF,EACZryD,iBA1iBiB,CAAC,gBAAiB,iBAAkB,YAAa,WAAY,WAAY,YA2iB1F7E,eAAgB,CAAE5uB,KAAM,YACxB6uB,aAAa,EACbC,cAAc,EACd0b,eAAe,EACftpB,gBAAgB,EAChBvd,OAAQlJ,IAAKC,SACbxC,IAAK0hB,GAEL,gBAAC,KAAD,KACE,gBAAC,KAAD,CACE7P,WAAW,KACXoK,MAAM,KACNpc,MAAM,QACR,gBAAC,KAAD,CACEgS,WAAYjJ,EAAE,uBACdqT,MAAM,mBACNpc,MAAM,QAER,gBAAC,KAAD,CACEgS,WAAYjJ,EAAE,uCAGdyT,OAAQ,KACRJ,MAAM,gBACNpc,MAAM,QAER,gBAAC,KAAD,CACEgS,WAAYjJ,EAAE,kCAEdyT,OAAQ,KACRJ,MAAM,aACNpc,MAAM,QAER,gBAAC,KAAD,CACEgS,WAAYjJ,EAAE,iCAGdyT,OAAQ,KACRJ,MAAM,aACNpc,MAAM,QAER,gBAAC,KAAD,CACEgS,WAAYjJ,EAAE,qCACdqT,MAAM,aACNpc,MAAM,QAER,gBAAC,KAAD,CACEgS,WAAYjJ,EAAE,4BACdqL,SAAU,SAACX,GAAD,OAAUkvE,EAAalvE,IACjCzT,MAAM,SAKV,gBAAC,KAAD,KACE,gBAAC,KAAD,KACE,gBAAC,KAAD,KACE,gBAAC,KAAD,CACEoc,MAAM,gBACNnU,KAAK,MACLkhF,eAAgBP,IAElB,gBAAC,KAAD,CACExsE,MAAM,aACNnU,KAAK,MACLkhF,eAAgBP,IAElB,gBAAC,KAAD,CACExsE,MAAM,aACNnU,KAAK,MACLkhF,eAAgBP,MAKtB,gBAAC,KAAD,KACE,gBAAC,KAAD,KACE,gBAAC,KAAD,CACExsE,MAAM,aACNnU,KAAK,MACLkhF,eAliBS,SAAC11E,GAWxB,OACE,wBAAMnT,UAAU,YAAhB,gBACgBukF,EAZS,WACzB,IAAIgK,EAAc,EAOlB,OANe5B,EAAeJ,OAAOjqF,QAAO,SAAAC,GAAI,OAAIA,EAAK4S,SAClD1S,KAAI,SAACvE,GACVqwF,GAAerwF,EAAEutF,cACjB8C,GAAerwF,EAAEwtF,WACjB6C,GAAerwF,EAAEyqF,cAEZ4F,EAIeC,WA2hBlB,gBAAC,KAAD,CACEpxE,SAAU,CACRwZ,KACAC,KACAC,KACAC,KACAC,KACAC,KACA1Z,KACAwrE,SAMPhrE,EAAmBtD,MAAQ,gBAAC,GAAD,CAAcqV,OAAQ/R,MCnqB3C0wE,GAAc,SAAC,GAAuC,IAArC5uE,EAAoC,EAApCA,QAAS28D,EAA2B,EAA3BA,SAAUgR,EAAiB,EAAjBA,WAC/C,EAA4CjsF,aAAiBkrF,IAA7D,mBAAOE,EAAP,KAAuBC,EAAvB,KACA,EAAsBrrF,aAAiBD,GAAhCI,EAAP,oBAEA,EAC6E4rB,aAAQ,CACjFgJ,KAAM,SACNunB,eAAgB,SAChBC,cAAe,CAAE4wC,MAAO,KAAMC,KAAM,CAAE7uF,GAAI,KAAM0U,KAAM,SAHxDiZ,EADF,EACEA,SAAUD,EADZ,EACYA,aAAcob,EAD1B,EAC0BA,OAAQ61C,EADlC,EACkCA,SAAUzmB,EAD5C,EAC4CA,WAAYzpD,EADxD,EACwDA,MAAOsvE,EAD/D,EAC+DA,SAKvDp1E,EAAMC,cAAND,EAWF8Y,EAAehgB,SAAa,MAC5B2gF,EAAiB3gF,WAEvB,EAAkCA,YAAe,GAAjD,mBAAOouB,EAAP,KAAkB1R,EAAlB,KACA,EAA8B1c,YAAe,GAA7C,mBAAOghB,EAAP,KAAgB3J,EAAhB,KACA,EAAgCrX,YAAe,GAA/C,mBAAOqtF,EAAP,KAAiBC,EAAjB,KAEA,EAAsCttF,WAAe,IAArD,mBAAO27E,EAAP,KAAoBC,EAApB,KACA,EAAgC57E,WAAe,IAA/C,mBAAOksF,EAAP,KAAiBC,EAAjB,KACA,EAA8CnsF,WAAe,KAA7D,mBAAO67E,GAAP,KAAwBC,GAAxB,KACA,GAAwC97E,WAAe,MAAvD,qBAAOm7E,GAAP,MAAqBC,GAArB,MACA,GAAoCp7E,WAAe,IAAnD,qBAAO0iF,GAAP,MAAmBC,GAAnB,MACA,GAAwC3iF,WAAe,IAAvD,qBAAOutF,GAAP,MAAqBC,GAArB,MAEA,GAAoDxtF,WAAe,CACjEkZ,MAAM,IADR,qBAAOsD,GAAP,MAA2BypB,GAA3B,MAMAjmC,aAAgB,WACdggB,EAAa5N,QAAQO,YACpB,CAAC9R,IAAKC,WAETd,aAAgB,WACdggB,EAAa5N,QAAQO,YACpB,CAACy4E,IAEJprF,aAAgB,WACVghB,IACFzR,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,aAChDE,aAAYH,SAASC,eAAe,YACpCG,aAAW,CAAErJ,KAAM,iBAEpB,CAAC4a,IAGJhhB,aAAgB,WACVqtF,IACF99E,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,cAChDE,aAAYH,SAASC,eAAe,aACpCG,aAAW,CAAErJ,KAAM,iBAEpB,CAACinF,IAGJ,IAAMI,GAA8B,SAACz+B,EAAQ0+B,GAC3C,OAAO1+B,EAAO9tD,KAAI,SAACF,GACjB,IAAM2sF,EAAarvE,EAAQna,OAAOpD,QAAO,SAACpE,GAAD,OAAOA,EAAE2D,QAASU,EAAKmD,OAAO5F,MACjE8tF,EAAW/tE,EAAQsvE,MAAM7sF,QAAO,SAACpE,GAAD,OAAOA,EAAE2D,QAASU,EAAKosF,KAAK7uF,MAClE,OAAO,2BACFyC,GADL,IAEEmD,OAAO,2BACFnD,EAAKmD,QADJ,IAEJ8O,KAAMjS,EAAKmD,OAAO8O,KAAOjS,EAAKmD,OAAO8O,KAAO06E,EAAW9wF,OAAS,EAAI8wF,EAAW,GAAGjtF,KAAO,KAE3F0sF,KAAK,2BACApsF,EAAKosF,MADN,IAEFn6E,KAAMjS,EAAKosF,KAAKn6E,KAAOjS,EAAKosF,KAAKn6E,KAAOo5E,EAASxvF,OAAS,EAAIwvF,EAAS,GAAG3rF,KAAO,WAOzFV,aAAgB,WACd,GAAIorF,EAAep8B,OAAOnyD,OAAS,GAAKyhB,EAAQsvE,MAAM/wF,OAAS,GAAKyhB,EAAQna,OAAOtH,OAAS,EAAG,CAC7F,IAAImyD,EAASo8B,EAAep8B,OAE5BA,GADAA,EAASy+B,GAA4Bz+B,IACrBjuD,QAAO,SAAAC,GAAI,OAAIA,EAAK4S,SACpCu4E,EAAYn9B,GACZhvC,EAAa5N,QAAQ7H,WAAaykD,EAClChvC,EAAa5N,QAAQO,aAEtB,CAACy4E,EAAgB9sE,EAAQna,OAAQma,EAAQsvE,QAE5C5tF,aAAgB,YACG,IAAbouB,GACF8uD,EAAS,eAAgB,QAE1B,CAAC9uD,IAGJ,IAyWIysD,GAzWEkG,GAAW,SAACnvE,GACZA,GACFsrE,EAAS,UAAWtrE,EAAKw7E,KAAK7uF,GAAI,CAAE6/E,gBAAgB,IACpDlB,EAAS,KAAMtrE,EAAKrT,GAAKqT,EAAKrT,GAAKqT,EAAKqpE,SAAU,CAChDmD,gBAAgB,IAElBlB,EAAS,SAAUtrE,EAAKzN,OAAO5F,GAAI,CAAE6/E,gBAAgB,IACrDlB,EAAS,cAAetrE,EAAKi8E,YAAa,CAAEzP,gBAAgB,KAE5DoP,GAAgBjoF,KAElBmX,GAAa,GACbikE,EAAevuE,QAAQ8G,QA4BnB40E,GAAa,uCAAG,WAAOl8E,EAAMm8E,GAAb,iBAAAxqF,EAAA,sDACdhF,EAAKgvF,IAA8B37E,EAAKrT,GACxCyvF,EAAW5C,EAAe7sF,GAAK6sF,EAAe7sF,GAAK08E,EACzDqS,GAAY,GACZ7qE,GAAmBtiB,EAAYjB,YAAa8uF,EAAUzvF,GAAIiJ,MAAK,SAACvD,GAAD,OAAcA,EAASkV,UACnF3R,MAAK,SAAC2R,GACLtR,QAAQ1C,IAAIgU,GACZ,IAAM1Q,EAAMlH,OAAO6X,IAAIC,gBAAgB,IAAIC,KAAK,CAACH,KAC3CpF,EAAO1E,SAASnR,cAAc,KACpC6V,EAAKmB,KAAOzM,EACZsL,EAAKwF,aAAa,WAAlB,UAAiC3H,EAAKi8E,cACtCx+E,SAASnM,KAAKsW,YAAYzF,GAC1BA,EAAK0F,QACL1F,EAAK2F,WAAWC,YAAY5F,GAC5Bu5E,GAAY,MAdI,2CAAH,wDAiCbxM,GAAe,SAAClvE,GACpB,IAAMg6E,EAAU1lF,EAAe,GAAI,QAAS/F,GAC5C,OACE,uBAAK1B,UAAU,cAIVmtF,GAA6B,IAAlBh6E,EAAKzN,OAAO5F,KACxB,wBACEsS,MAAO,CAAEq5C,OAAQ,UAAWC,QAAS,OAAQC,YAAa,OAC1DxhD,QAAS,WACP+5E,GAAc,QACd5B,GAASnvE,IAEXnT,UAAU,qBAOXmtF,GAA6B,IAAlBh6E,EAAKzN,OAAO5F,KAAYqT,EAAKqpE,UACzC,wBACEpqE,MAAO,CAAEq5C,OAAQ,UAAWC,QAAS,QACrCvhD,QAAS,WACPqlF,GAAgBr8E,IAElBnT,UAAU,uBAMXmtF,GAA6B,IAAlBh6E,EAAKzN,OAAO5F,KACxB,wBACEsS,MAAO,CAAEq5C,OAAQ,UAAWC,QAAS,QACrCvhD,QAAS,WAQPwU,GAAmB,gBAAiB,KAAM,MAAM,YAJ/B,SAACxL,GAChBwvE,GAAWxvE,GAAM,GACjBwL,GAAmB,SAEmCqqB,CAAS71B,MAP7C,WAClBwL,GAAmB,WAMkE,KAEzF3e,UAAU,sBAgBdu1D,GAAa,SAACluD,GAClB,OAAO,4BAAO,IAAIC,KAAKD,GAAMo9E,eAAeriF,IAAKC,YAK7Csc,GAAqB,SAAChX,EAAMqgC,EAAKC,EAAUC,EAAYC,EAAeC,GAC9D,aAARzgC,EACF6/B,GAAsB,CACpBjoC,MAAOkJ,EAAE,+BACTgT,QAAShT,EAAE,0BACXd,KAAM,UACN2+B,WAAY,WACZI,gBAAiBwB,EACjBzB,gBAAiB0B,EACjBjvB,KAAM,eACNuB,MAAM,EACN+rB,aAAcyB,IAEC,aAARtgC,EACT6/B,GAAsB,CACpBjoC,MAAOkJ,EAAE,+BACTgT,QAAShT,EAAE,0BACXd,KAAM,UACNuR,KAAM,eACNuB,MAAM,EACN+rB,aAAcyB,IAEC,aAARtgC,EACT6/B,GAAsB,CACpBjoC,MAAOkJ,EAAE,+BACTgT,QAAShT,EAAE,0BACXd,KAAM,QACNuR,KAAM,uBACNuB,MAAM,IAES,YAAR9S,EACT6/B,GAAsB,CACpBjoC,MAAkCkJ,EAAZ,YAAf2/B,EAA6B,sCAA2C,uCAC/EzgC,KAAqB,YAAfygC,EAA2B,UAAY,QAC7C9B,WAAY,UACZM,kBAAmBsB,EACnBvB,qBAAsBwB,EACtBjvB,KAAqB,YAAfkvB,EAA2B,oBAAsB,uBACvD3tB,MAAM,IAGO,UAAR9S,EACP6/B,GAAsB,CACpBjoC,MAAOkJ,EAAE,mCACTgT,QAAShT,EAAE,6BACXd,KAAM,QACNuR,KAAM,2BACNuB,MAAM,IAGO,UAAR9S,EACP6/B,GAAsB,CACpB/sB,MAAM,IAES,kBAAR9S,GACT6/B,GAAsB,CACpBjoC,MAAwB,OAAjB6C,IAAKC,SAAmB,eAAiB,cAChDsF,KAAM,QACN8T,QAA0B,OAAjBrZ,IAAKC,SAAmB,4CAA8C,6CAC/EikC,WAAY,UACZM,kBAAmBsB,EACnBvB,qBAAsBwB,EACtBjvB,KAAM,kBACNuB,MAAM,KA0CNkoE,GAAa,SAAC3+E,EAAMgqF,GACxBp1E,GAAW,GAEXg0E,GAAkB,SAACS,GACjB,IAAIoC,EAAY,GACVC,IAAWtB,MAAMpqF,EAAKlE,IACxBgpC,EAAS9kC,EAAKlE,GAGhBgpC,GADG4mD,GAAY1rF,EAAKlE,GACXszB,SAASpvB,EAAKlE,GAAGqH,YAEjBnD,EAAKw4E,SAGhB,IAAM0R,EAAavoF,EAAkB,MAC/BgqF,EAAYtC,EAAU98B,OAAOjuD,QAAO,SAAApE,GAAC,OAAIA,EAAE4B,KAAOgpC,GAAU5qC,EAAEs+E,WAAa1zC,KAAQ,GACnFqlD,EAAiBX,GAAcU,EAAa,EAAIyB,EAAUxB,eAC1DyB,EAAgB/vE,EAAQsvE,MAAM7sF,QAAO,SAACpE,GAAD,OAAOA,EAAE2D,QAASmC,EAAK2qF,KAAK7uF,MAAI,GAEvE8gB,EAAG,2BACF+uE,GADE,IAELxB,eAAgBA,EAChBQ,KAAM,CACJ7uF,GAAIkE,EAAK2qF,KAAK7uF,GACd0U,KAAMo7E,EAAgBA,EAAc3tF,KAAO+B,EAAK2qF,KAAKn6E,MAEvD1U,GAAIgpC,EACJ3zB,OAAO64E,GAA0B2B,EAAUx6E,QAc7C,OAXAs6E,EAAYpC,EAAU98B,OAAO9tD,KAAI,SAACF,GAEhC,OADIA,EAAKzC,KAAM8gB,EAAI9gB,KAAMyC,EAAOqe,GACzBre,KAEJirF,GAAeU,IAAcF,IAChCyB,EAAYpC,EAAU98B,OAAOjuD,QAAO,SAACC,GACnC,OAAOA,EAAKzC,KAAO8gB,EAAI9gB,OAI3B2vF,EAAYT,GAA4BS,GACjC,2BACFpC,GADL,IAEE98B,OAAQk/B,OAIZvN,EAAevuE,QAAQszC,OACvBruC,GAAW,IAEP42E,GAAkB,SAACr8E,GACvB,IAAM08E,EAAmB,SAAC7rF,EAAM0B,GAC9B,IAAMiqF,EAAYpuE,EAAa5N,QAAQ7H,WAAWxJ,QAAO,SAAApE,GAAC,OAAIA,EAAE4B,KAAOkE,EAAKlE,IAAM5B,EAAEs+E,WAAax4E,EAAKlE,MAAI,GACpGouF,EAAavoF,EAAkB,MAC/BwoF,EAAiBX,GAAcU,EAAa,EAAIyB,EAAUxB,eAC5DvtE,EAAG,2BACF+uE,GADE,IAELjqF,OAAO,eAAMA,GACbyoF,eAAgBA,IAEdsB,EAAY,GAChB7C,GAAkB,SAACS,GAMjB,OAJAoC,GADAA,EAAYT,GAA4B3B,EAAU98B,SAC5B9tD,KAAI,SAACF,GAEzB,OADIA,EAAKzC,KAAM8gB,EAAI9gB,KAAIyC,EAAOqe,GACvBre,KAEF,2BACF8qF,GADL,IAEE98B,OAAQk/B,QAKR1mD,EAAc,WAClBpqB,GAAmB,UAGfmxE,EAAiB,SAAC38E,GAKtBwL,GAAmB,UAAW,KAAM,MAAM,WAHxCkxE,EAG6D18E,EAHtC,CAAErT,GAAI,EAAGmS,OAAQ,WAAYC,OAAQ,WAAYiD,OAAO,IAC/EwJ,GAAmB,WAEmDoqB,EAAa,YAGjFgnD,EAAiB,SAAC58E,GAKtBwL,GAAmB,UAAW,KAAM,MAAM,WAHxCkxE,EAG8D18E,EAHvC,CAAErT,GAAI,EAAGmS,OAAQ,YAAaC,OAAQ,WAAYiD,OAAO,IAChFwJ,GAAmB,WAEoDoqB,EAAa,YAExFpqB,GAAmB,WAAY,KAAM,MAAM,WAAQmxE,EAAe38E,MAAS,WAAQ48E,EAAe58E,OAW9FlV,GAAS2S,SAASC,eAAe,oBACjCyuC,GAAgB,CACpBC,QAAQ,GAAD,OAAKh6C,0BAAL,wGAAkIioF,GAA0BhR,EAA5J,gDAA4MsS,IACnNpQ,UAAU,GAAD,OAAKn5E,0BAAL,uGAAiIioF,GAA0BhR,EAA3J,gDAA2MsS,IACpNnQ,UAAWvB,IAWPz6C,IALYphC,SAAa,MAKX,WAKlB,OAJAqP,SACGiS,uBAAuB,sBAAsB,GAC7CC,cAAc,UACd9H,SACI,IAqBHukE,GAAgB,SAAC18E,GACrBA,EAAE0mD,eAAe3vC,iBACf,gBACA,UAAYlY,EAAYjB,aAEtBy8E,EAAY9+E,OAAS,GACvByE,EAAE0mD,eAAe3vC,iBAAiB,cAAesjE,EAAY15D,KAAK,OAYhE07D,GAAa,uCAAG,WAAO/rE,GAAP,SAAArO,EAAA,sDACE,WAAlBqO,EAAK03C,WAAsC,YAAb13C,EAAKvN,OACrC+2E,GAAgBxpE,EAAKiJ,MACrBqiE,EAAS,QAAStrE,EAAKiJ,MACvB47C,EAAW,UAJO,2CAAH,sDAqBnB,OACE,uBAAKl4D,GAAG,sBACN,uBAAKE,UAAU,oBACb,uBAAKA,UAAU,SACb,wBAAMA,UAAU,0BAChB,0BAAsB,OAAjBoC,IAAKC,SAAmB,SAAW,gBAE1C,uBAAKrC,UAAU,YACf,uBAAKA,UAAU,QACb,0BACEF,GAAG,SACHqK,QAAS,WACP+5E,GAAc,OACd5B,OAEF,wBAAMtiF,UAAU,yBACE,OAAjBoC,IAAKC,SAAmB,aAAe,oBAM9C,gBAAC,KAAD,CACEvC,GAAG,kBACHoe,SAAS,EACTvC,QAASgU,EACT9vB,IAAKqiF,EACLz2E,MA1ba,WACjBgzE,EAAS,KAAM,MACfA,EAAS,UAAW,MACpBA,EAAS,SAAU,MACnBA,EAAS,cAAe,OAubpBn+D,eAAe,EACfhV,OAAQlJ,IAAKC,UAEb,wBAAMyrB,SAAUN,GAtHL,SAACxpB,GACE,QAAdigF,GAtIuB,SAACjgF,GAC5B4U,GAAW,GACX,IAAInK,EAAU,CACZ3O,GAAIkE,EAAKlE,GACTsvF,YAAa1S,GAAa53D,QAAQlf,KAClCF,OAAQ,CACN5F,GAAI,EACJ0U,KAAM,YAERm6E,KAAM,CACJ7uF,GAAIkE,EAAK2qF,KAAK7uF,GACd0U,KAAMqL,EAAQsvE,MAAM7sF,QAAO,SAACpE,GAAD,OAAOA,EAAE2D,QAASmC,EAAK2qF,KAAK7uF,MAAI,GAAGmC,MAEhEksF,eAAgB,EAChB3R,SAAUx4E,EAAKlE,GACfqV,OAAO,GAGL66E,EAAc,GAClBtC,GAAY,SAACjL,GAGX,OAFAA,EAAU3G,QAAQrtE,GAClBuhF,EAAcvN,EAAUngF,QAAO,SAAAC,GAAI,OAAIA,EAAK4S,YAI9Cy3E,GAAkB,SAACS,GACjB,OAAO,2BACFA,GADL,IAEE98B,OAAQy/B,OAGZzuE,EAAa5N,QAAQ7H,WAAakkF,EAClCzuE,EAAa5N,QAAQO,UACrBguE,EAAevuE,QAAQszC,OACvBruC,GAAW,GAoGcq3E,CAAqBjsF,GACvB,SAAdigF,IAAsBtB,GAAW3+E,GAC1CuK,OAEc,SAACq6B,EAAQ/lC,GAAT,OAAwBA,KAiHe/C,GAAG,eAElD,uBAAKE,UAAU,YACb,uBAAKA,UAAU,SACb,yBAAOugB,QAAQ,OAAf,MACA,uBAAKvgB,UAAU,iBACb,gBAAC,KAAD,CACEF,GAAG,MACH8F,KAAK,KACL6hB,SAAS,EACT5nB,IAAK4tB,EAAS,CACZ1N,UAAU,IAEZpY,KAAK,OACL9F,MAAOitF,QAOf,uBAAK9uF,UAAU,YACb,uBAAKA,UAAU,SACb,yBAAOugB,QAAQ,SACK,OAAjBne,IAAKC,SAAmB,OAAS,OAClC,yBAAO2Z,MAAM,WAAW,IAAxB,MAEF,uBAAKhc,UAAU,iBACb,gBAAC,KAAD,CACEF,GAAG,OACH8F,KAAK,UACL/F,IAAK4tB,EAAS,CACZ1N,UAAU,IAEZjU,WAAY+T,EAAQsvE,MACpBvjF,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,SAC/ByJ,OAAQlJ,IAAKC,SACbgS,YACmB,OAAjBjS,IAAKC,SAAmB,mBAAqB,cAE/CuoB,eAAgB,CAAEgZ,SAAU,OAE7BgF,EAAO+lD,MACN,qBAAG3uF,UAAU,SAASyI,EAAE,2BAOjB,QAAdw7E,IACC,uBAAKjkF,UAAU,SACb,yBAAOugB,QAAQ,UACK,OAAjBne,IAAKC,SAAmB,UAAY,OACrC,yBAAO2Z,MAAM,WAAW,IAAxB,MAEF,uBAAKhc,UAAU,iBACb,uBAAKA,UAAU,SAASF,GAAG,oBACzB,uBAAKE,UAAU,OACb,wBAAM6jB,wBAAyB,CAAEC,OA7JjD,uuDA8JkC,OAAjB1hB,IAAKC,SACJ,+DAEE,wBAAM8H,QAAS,kBAAMw4B,OAArB,kBAGF,iDAEE,wBAAMx4B,QAAS,kBAAMw4B,OAArB,cAKR,yBACEh7B,KAAK,OACL9H,IAAK4tB,EAAS,CACZ1N,UAAU,IAGZna,KAAM,QACNwM,MAAO,CAAEqF,QAAS,UAEpB,gBAAC,KAAD,CACE3X,GAAG,SACH8F,KAAK,SACL+B,KAAK,OACL23C,cAAeA,GACf58B,SAAUzkB,GACV2sB,eAAgB,CAAEgZ,SAAU,KAC5BvoB,YAAa,IACb/P,OAAQlJ,IAAKC,SACbu9E,YAAY,EACZ56D,SArLK,SAAC7R,GACpBsrE,EAAS,QAAS,MAClB9B,GAAgB,MAChBkB,EAAS,SACT1qE,EAAK63C,aAAc,EACf73C,GAAQA,EAAKo2C,gBACfp2C,EAAKo2C,eAAe3vC,iBAClB,gBACA,UAAYlY,EAAYjB,cA8Kdq/E,QA1KE,SAAC3sE,GAIfipE,GAHiB,OAAfjpE,EAAKpP,QAAmB8c,UAAUk/D,QA0KxBr1B,UAAW60B,GACXS,eAAgBT,GAChBU,aA9JQ,SAAC9sE,GACvBA,EAAKkH,OAAS+hE,IA8JAoE,kBA1MS,SAAC39E,GACxB,IAAI87E,EAAY97E,EAAEgiD,SAASjhC,KAAO,GAClCy5D,IAAmB,SAACD,GAAD,OAAwCuB,MAyM7C8B,aA5JM,SAAC59E,GACrBs6E,GAAe,SAACD,GAAD,6BACVA,GADU,CAEbr6E,EAAEkB,MAAMy5B,cAAch4B,eA0JVmlD,QAASu0B,GACTwB,SAjJG,SAACvtE,GAIhBipE,GAHiB,OAAfjpE,EAAKpP,QAAmB8c,UAAUk/D,QAiJxB96D,UAAU,KAGb2jB,EAAO8lD,OACN,qBAAG1uF,UAAU,SAASyI,EAAE,yBAK9B,uBAAKzI,UAAU,eACb,0BACE2H,KAAK,SACLgL,SAAU4P,EACV6J,KAAK,cACLpsB,UAAW,mCAEVyI,EAAE,mBAIR8Z,GAAW,uBAAKnQ,MAAO,CAAEm0B,OAAQ,SAAWzmC,GAAG,aAGjD6sF,GACC,gBAAC,KAAD,CACE7gF,WAAY2hF,EACZryD,iBAzqBiB,CACvB,gBACA,iBACA,YACA,WACA,WACA,YAoqBM7E,eAAgB,CAAE5uB,KAAM,YACxB6uB,aAAa,EACbC,cAAc,EACd5N,gBAAgB,EAChBspB,eAAe,EACf5T,aAAc,CACZC,SAAU,GACVwkD,WAAW,GAEbnjF,IAAK0hB,EACLjW,OAAQlJ,IAAKC,UAEb,gBAAC,KAAD,KACE,gBAAC,KAAD,CACEqP,WAAW,KACXw+E,cAAc,EACdp0E,MAAM,KACNpc,MAAM,OAER,gBAAC,KAAD,CACEgS,WAAYjJ,EAAE,6BACdqT,MAAM,cACNhI,SAriBgB,SAACX,GAC3B,OACE,wBACEf,MAAO,CAAEq5C,OAAQ,UAAW0W,MAAO,WACnCh4D,QAAS,kBAAMklF,GAAcl8E,KAAQA,EAAKi8E,cAkiBpC1vF,MAAM,QAER,gBAAC,KAAD,CACEgS,WAAW,SACXoC,SAAU,SAACX,GAAD,OAjlBC,SAACA,GACtB,OACE,wBACEnT,UACoB,IAAlBmT,EAAKzN,OAAO5F,GACR,kBACkB,IAAlBqT,EAAKzN,OAAO5F,GAAU,oBAAsB,oBAG/B,IAAlBqT,EAAKzN,OAAO5F,GAA2B,OAAjBsC,IAAKC,SAAmB,WAAa,WAAa,GACtD,IAAlB8Q,EAAKzN,OAAO5F,GAA2B,OAAjBsC,IAAKC,SAAmB,WAAa,UAAY,GACrD,IAAlB8Q,EAAKzN,OAAO5F,GAA2B,OAAjBsC,IAAKC,SAAmB,YAAc,WAAa,IAskBhD8tF,CAAeh9E,IACnC2I,MAAM,cACNpc,MAAM,QAER,gBAAC,KAAD,CACEgS,WAAYjJ,EAAE,6BACdqT,MAAM,YACNpc,MAAM,QAER,gBAAC,KAAD,CACEgS,WAAYjJ,EAAE,mCACdqT,MAAM,4BACNpc,MAAM,QAER,gBAAC,KAAD,CACEgS,WAAYjJ,EAAE,qCACdqT,MAAM,sBACNpc,MAAM,MACNiI,KAAM,OACNrF,OAAQ,CAAEqF,KAAM,QAChBmM,SA1f6B,SAACX,GACxC,OAAOA,EAAKi9E,oBAAsB76B,GAAWpiD,EAAKi9E,qBAAuB,MA2fjE,gBAAC,KAAD,CACE1+E,WAAYjJ,EAAE,kCACdqT,MAAM,iBACNpc,MAAM,QAER,gBAAC,KAAD,CACEgS,WAAYjJ,EAAE,oCACdqT,MAAM,WACNpc,MAAM,MACNiI,KAAM,OACNrF,OAAQ,CAAEqF,KAAM,QAChBmM,SA1gBqB,SAACX,GAChC,OAAOA,EAAKk9E,SAAW96B,GAAWpiD,EAAKk9E,UAAY,MA2gB3C,gBAAC,KAAD,CACE3+E,WAAYjJ,EAAE,4BACdqL,SAAU,SAACX,GAAD,OAAUkvE,GAAalvE,IACjCzT,MAAM,SAGV,gBAAC,KAAD,CACE0d,SAAU,CAACwZ,KAAQC,KAAMC,KAAaC,KAAQC,KAAMC,SAIzD23D,GAAY,uBAAKx8E,MAAO,CAAEm0B,OAAQ,SAAWzmC,GAAG,aAE/Cie,GAAmBtD,MAAQ,gBAAC,GAAD,CAAcqV,OAAQ/R,OClxB5CuyE,GAAiB,SAAC9wF,GAC3B,MAAsB+B,aAAiBD,GAAhCI,EAAP,oBAEAsiF,aAAgB,OAChB4B,aAAW,MAC2BpmF,EAA9BwE,KAAR,IAAc6b,EAAwBrgB,EAAxBqgB,QAAS2tE,EAAehuF,EAAfguF,WACvB,EAA4CjsF,aAAiBkrF,IAA7D,mBAAOE,EAAP,KAAuBC,EAAvB,KACQnkF,EAAMC,cAAND,EACF8Y,EAAehgB,SAAa,MAClC,EAA0CA,YAAe,GAAzD,mBAAOmgF,EAAP,KAAsBC,EAAtB,KACMO,EAAiB3gF,WACvB,EAAgCA,WAAe,IAA/C,mBAAOksF,EAAP,KAAiBC,EAAjB,KACA,EAA8BnsF,YAAe,GAA7C,mBAAOghB,EAAP,KAAgB8hE,EAAhB,KACA,EAAoC9iF,WAAe,IAAnD,mBAAO0iF,EAAP,KAAmBC,EAAnB,KACA,EAAgC3iF,WAAe,MAA/C,mBAAO4iF,EAAP,KACA,GADA,KACoD5iF,WAAe,CAAEkZ,MAAM,KAA3E,mBAAOsD,EAAP,KAA2BypB,EAA3B,KACA,EAAwEla,aAAQ,CAC5EgJ,KAAM,WACNunB,eAAgB,WAChBG,aAAc,MACdC,kBAAkB,EAClBC,kBAAkB,IALdzwB,EAAR,EAAQA,SAAUD,EAAlB,EAAkBA,aAAcob,EAAhC,EAAgCA,OAAQr6B,EAAxC,EAAwCA,MAAOkwE,EAA/C,EAA+CA,SAAUzmB,EAAzD,EAAyDA,WAWzDz2D,aAAgB,WACRghB,IACAzR,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,aAChDE,aAAYH,SAASC,eAAe,YACpCG,aAAW,CAAErJ,KAAM,iBAExB,CAAC4a,IAEJhhB,aAAgB,YACS,IAAjBmgF,IACA1pB,IACAymB,EAAS,KAAM,MACfA,EAAS,cAAe,MACxBA,EAAS,gBAAiB,MAC1BA,EAAS,aAAc,MACvBA,EAAS,aAAc,MACvBA,EAAS,gBAAiB,SAE/B,CAACiD,IAEJngF,aAAgB,WACZggB,EAAa5N,QAAQO,YACtB,CAAC9R,IAAKC,WAET,IAAMkuF,EAA4B,SAACC,GAC/B,OAAOA,EAAU/tF,KAAI,SAACF,GAClB,IAAIqrF,EAAW/tE,EAAQ4wE,aAAanuF,QAAO,SAACpE,GAAD,OAAOA,EAAE2D,QAASU,EAAKujF,SAAShmF,MAC3E,OAAI8tF,EAAS,GACF,2BACArrF,GADP,IAEIujF,SAAS,2BACFvjF,EAAKujF,UADJ,IAEJtxE,KAAMo5E,EAAS,GAAG3rF,SAGlBM,MAGpBhB,aAAgB,WAEZ,GAAIorF,EAAeL,WAAWluF,OAAS,EAAG,CACtC,IAAIkuF,EAAaK,EAAeL,WAEhCA,GADAA,EAAaiE,EAA0BjE,IACfhqF,QAAO,SAAAC,GAAI,OAAIA,EAAK4S,SAC5Cu4E,EAAYpB,GACZ/qE,EAAa5N,QAAQ7H,WAAawgF,EAClC/qE,EAAa5N,QAAQO,aAE1B,CAACy4E,EAAgB9sE,IAIpB,IAAMlB,EAAqB,SAAChX,EAAMqgC,EAAKC,EAAUC,EAAYC,EAAeC,GAC5D,YAARzgC,EACA6/B,EAAsB,CAClBjoC,MAAwB,OAAjB6C,IAAKC,SAAmB,eAAiB,cAChDsF,KAAM,QACN8T,QAA0B,OAAjBrZ,IAAKC,SAAmB,4CAA8C,6CAC/EikC,WAAY,UACZM,kBAAmBsB,EACnBvB,qBAAsBwB,EACtBjvB,KAAM,kBACNuB,MAAM,IAEK,UAAR9S,GACP6/B,EAAsB,CAClB/sB,MAAM,KA+DZ6tE,EAAc,SAACn1E,GACjB,OACI,wBAAMnT,UAAU,aAAYoC,IAAKC,SAAmB,SAApD,KAAyEkiF,GAAMpxE,EAAKo1E,OAI5FhnF,aAAgB,WACRggB,EAAa5N,SACb4N,EAAa5N,QAAQO,YAC1B,CAAC9R,IAAKC,WAET,IAAMggF,GAAe,SAAClvE,GAClB,OAEI,uBAAKnT,UAAU,aAEPyH,EAAe,GAAI,QAAS/F,IAAgB,wBACxC0Q,MAAO,CAAEq5C,OAAQ,UAAWC,QAAS,OAAQC,YAAa,QAC1DxhD,QAAS,WACLm4E,GAASnvE,IAEbnT,UAAU,qBAIdyH,EAAe,GAAI,QAAS/F,IAAgB,wBACxC0Q,MAAO,CAAEq5C,OAAQ,UAAWC,QAAS,QACrCvhD,QAAS,WAQLwU,EAAmB,UAAW,EAAM,GAAM,YAJzB,SAACxL,GACdwvE,GAAWxvE,GAAM,GACjBwL,EAAmB,SAE2BqqB,CAAS71B,MAPvC,WAChBwL,EAAmB,aAQ3B3e,UAAU,sBAYxBukF,GAAQ,SAAAC,GACV,OAAOuD,KAAKC,aAAa5lF,IAAKC,SAAU,CACpC+P,MAAO,WACPsyE,SAAU,QACXxoE,OAAOsoE,IAuBRlC,GAAW,SAACnvE,GACd+wE,EAAc,QACdlsB,IACAymB,EAAS,KAAMtrE,EAAKrT,IACpB2+E,EAAS,cAAetrE,EAAK2yE,SAAShmF,IACtC2+E,EAAS,gBAAiBtrE,EAAKu9E,eAC/BjS,EAAS,aAActrE,EAAKw9E,YAC5BlS,EAAS,aAActrE,EAAKw1E,YAC5BlK,EAAS,gBAAiBtrE,EAAKu1E,eAC/B/G,GAAiB,GACjBO,EAAevuE,QAAQ8G,QAiDrBkoE,GAAa,SAAC3+E,EAAMgqF,GACtB3J,GAAW,GAEX,IAAMuM,EAAmB/wE,EAAQ2wE,UAAUluF,QAAO,SAACpE,GAAD,OAAOA,EAAE2D,QAASmC,EAAK8hF,SAAShmF,MAChF,GAEI8gB,EAAM,CACR9gB,GAAIkE,EAAKlE,GACTqV,OAAO64E,EACPG,eAAgBX,EAAa,EAAIxpF,EAAKmqF,eACtCrI,SAAU,CACNhmF,GAAIkE,EAAK8hF,SAAShmF,GAClB0U,KAAMo8E,EAAmBA,EAAiB3uF,KAAO+B,EAAK8hF,SAAStxE,MAEnEk0E,cAAe1kF,EAAK0kF,cACpBC,WAAY3kF,GAAQA,EAAK2kF,WAAa3kF,EAAK2kF,WAAa,EACxDgI,WAAY3sF,GAAQA,EAAK2sF,WAAa3sF,EAAK2sF,WAAa,EACxDD,cAAe1sF,GAAQA,EAAK0sF,cAAgB1sF,EAAK0sF,cAAgB,GAGjEG,EAAgB,GACpBjE,GAAkB,SAACS,GAMf,OAJAwD,GADAA,EAAgBN,EAA0BlD,EAAUf,aACtB7pF,KAAI,SAACF,GAE/B,OADIA,EAAKzC,KAAM8gB,EAAI9gB,KAAMyC,EAAOqe,GACzBre,KAEJ,2BACA8qF,GADP,IACkBf,WAAYuE,OAIlCtvE,EAAa5N,QAAQ7H,WAAa+kF,EAAcvuF,QAAO,SAAAC,GAAI,OAAIA,EAAK4S,SACpEoM,EAAa5N,QAAQO,UACrBqN,EAAa5N,QAAQO,UACrBmwE,GAAW,GACXnC,EAAevuE,QAAQszC,OACvB06B,GAAiB,IAIrBpgF,aAAgB,WACZ6H,QAAQ1C,IAAIkiC,KACb,CAACA,IAmDJ,OACI,2BAEI,uBAAK5oC,UAAU,oBACX,uBAAKA,UAAU,SACX,wBAAMA,UAAU,sBAChB,0BAAsB,OAAjBoC,IAAKC,SAAmB,yBAA2B,oBAE5D,uBAAKrC,UAAU,YAEXyH,EAAe,GAAI,QAAS/F,IAAgB,uBAAK1B,UAAU,QACvD,0BACIF,GAAG,SACHqK,QAAS,WACL+5E,EAAc,OACdvC,GAAiB,GACjBO,EAAevuE,QAAQ8G,SAE3B,wBAAMza,UAAU,yBACE,OAAjBoC,IAAKC,SAAmB,iBAAmB,iBAO5D,gBAAC,KAAD,CACIvC,GAAG,kBACHoe,SAAS,EACTvC,QAAS+lE,EACT7hF,IAAKqiF,EACLz2E,MA3KO,WACfgzE,EAAS,KAAM,MACfA,EAAS,cAAe,MACxBA,EAAS,gBAAiB,MAC1BA,EAAS,aAAc,MACvBA,EAAS,aAAc,MACvBA,EAAS,gBAAiB,OAsKlBn+D,eAAe,EACfhV,OAAQlJ,IAAKC,UAEb,wBACIrC,UAAU,YACVF,GAAG,0BACHguB,SAAUN,GApFT,SAACxpB,GACI,QAAdigF,EAnFe,SAACjgF,GACpBqgF,GAAW,GACX,IAAMzjE,EAAM,CACRzL,OAAO,EACPrV,GAAIgH,IACJqnF,eAAgB,EAChBrI,SAAU,CACNhmF,GAAIkE,EAAK8hF,SAAShmF,GAClB0U,KAAMqL,EAAQ2wE,UAAUluF,QACpB,SAACpE,GAAD,OAAOA,EAAE2D,QAASmC,EAAK8hF,SAAShmF,MAClC,GAAGmC,MAETymF,cAAe1kF,EAAK0kF,cACpBC,WAAY3kF,GAAQA,EAAK2kF,WAAa3kF,EAAK2kF,WAAa,EACxDgI,WAAY3sF,GAAQA,EAAK2sF,WAAa3sF,EAAK2sF,WAAa,EACxDD,cAAe1sF,GAAQA,EAAK0sF,cAAgB1sF,EAAK0sF,cAAgB,GAGjEG,EAAgB,GACpBjE,GAAkB,SAACS,GAGf,OAFAwD,EAAgBN,EAA0BlD,EAAUf,aACtCxQ,QAAQl7D,GACf,2BACAysE,GADP,IAEIf,WAAYuE,OAIpBtvE,EAAa5N,QAAQ7H,WAAa+kF,EAAcvuF,QAAO,SAAAC,GAAI,OAAIA,EAAK4S,SACpEoM,EAAa5N,QAAQO,UACrBmwE,GAAW,GACXnC,EAAevuE,QAAQszC,OACvB06B,GAAiB,GAmDQ2M,CAAetqF,GACjB,SAAdigF,GAAsBtB,GAAW3+E,GAC1CuK,OAEY,SAACq6B,EAAQ/lC,GAAT,OAAeuG,QAAQ1C,IAAIkiC,EAAQ/lC,OAkFnC,uBAAK7C,UAAU,SACX,yBAAOugB,QAAQ,MAAf,MACA,uBAAKvgB,UAAU,iBACX,gBAAC,KAAD,CACIF,GAAG,KACH8F,KAAK,KACL6hB,SAAS,EACT5nB,IAAK4tB,EAAS,CACV1N,UAAU,IAEdpY,KAAK,WAGRihC,EAAO9oC,IAAM,qBAAGE,UAAU,SAASyI,EAAE,0BAI9C,uBAAKzI,UAAW,OAEZ,uBAAKA,UAAU,yBACX,yBAAOugB,QAAQ,aACO,OAAjBne,IAAKC,SAAmB,aAAe,mBAE5C,uBAAKrC,UAAU,iBACX,gBAAC,KAAD,CACIF,GAAG,WACH8F,KAAK,cACL/F,IAAK4tB,EAAS,CAAE1N,UAAU,IAC1BjU,WAAY+T,IAA2B,SAAfokE,EAAwBpkE,EAAQ4wE,aAAe5wE,EAAQ2wE,WAC/E5kF,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,SAC/ByJ,OAAQlJ,IAAKC,SAEbgS,YACqB,OAAjBjS,IAAKC,SACC,uBACA,kBAEVwkB,KAAqB,SAAfo9D,EAhHV,SAACphF,GACzB,IAAIiuF,EAAc19D,SAASvwB,EAAEkuF,MAAM5zE,QAAQ2F,cAAc,yBAAyBsiC,aAAa,eAC3F4rC,EAAWnuF,EAAEkuF,MAAM5zE,QAAQqpC,iBAAiB,gBAE5C3mC,EAAQ2wE,UAAUpyF,OAAS,EAC3B4yF,EAAS/sF,SAAQ,SAACgtF,GACd,IAAIC,EAAQ99D,SAAS69D,EAAI7rC,aAAa,eACtBvlC,EAAQ2wE,UAAUtrB,MAAK,SAAA3iE,GAAI,OAAIA,EAAKV,QAAUqvF,OAGtDJ,IAAgBI,GAChBD,EAAIjqC,UAAU/a,IAAI,cAClBglD,EAAIjqC,UAAU/a,IAAI,aAClBglD,EAAIjqC,UAAU9jC,OAAO,WAErB+tE,EAAIjqC,UAAU/a,IAAI,cAK9B+kD,EAAS/sF,SAAQ,SAACgtF,GACd,IAAIC,EAAQ99D,SAAS69D,EAAI7rC,aAAa,eAElC0rC,IAAgBI,GAChBD,EAAIjqC,UAAU/a,IAAI,cAClBglD,EAAIjqC,UAAU/a,IAAI,aAClBglD,EAAIjqC,UAAU9jC,OAAO,WAErB+tE,EAAIjqC,UAAU/a,IAAI,cAoFkD,OAEvDrD,EAAOk9C,UACJ,qBAAG9lF,UAAU,SAASyI,EAAE,0BAKpC,uBAAKzI,UAAU,yBACX,yBAAOugB,QAAQ,iBAAkC,OAAjBne,IAAKC,SAAmB,2BAAuB,qBAC/E,uBAAKrC,UAAU,iBACX,gBAAC,KAAD,CACI4F,KAAK,gBACL9F,GAAG,gBACHoc,OAAO,KACP7H,YACqB,OAAjBjS,IAAKC,SACC,qCACA,eAEVuoB,eAAgB,CAAEhD,UAAW,IAG7B/nB,IAAK4tB,EAAS,CACV1N,UAAU,EACV6H,UAAW,GACXy2C,UAAW,EACXtV,IAAK,MAOZngB,EAAO8nD,eAC0B,cAA9B9nD,EAAO8nD,cAAc/oF,MACjB,qBAAG3H,UAAU,SAASyI,EAAE,wBAE/BmgC,EAAO8nD,eAC0B,QAA9B9nD,EAAO8nD,cAAc/oF,MACjB,qBAAG3H,UAAU,SAASyI,EAAE,mBAE/BmgC,EAAO8nD,eAC0B,cAA9B9nD,EAAO8nD,cAAc/oF,MACjB,qBAAG3H,UAAU,SAASyI,EAAE,wBAE/B07E,GACGA,EAASv7C,QACTu7C,EAASv7C,OAAO8nD,eACZ,qBAAG1wF,UAAU,SAASmkF,EAASv7C,OAAO8nD,kBAM1D,uBAAK1wF,UAAW,OAEZ,uBAAKA,UAAU,yBACX,yBAAOugB,QAAQ,cAA+B,OAAjBne,IAAKC,SAAmB,qBAAoB,gBACzE,uBAAKrC,UAAU,iBACX,gBAAC,KAAD,CACI4F,KAAK,aACL9F,GAAG,aACHoc,OAAO,KACP7H,YACqB,OAAjBjS,IAAKC,SACC,iDACA,eAEVuoB,eAAgB,CAAEhD,UAAW,IAE7B/nB,IAAK4tB,EAAS,CACV1N,UAAU,EACV6H,UAAW,GACXy2C,UAAW,EACXtV,IAAK,MAOZngB,EAAO+nD,YACuB,cAA3B/nD,EAAO+nD,WAAWhpF,MACd,qBAAG3H,UAAU,SAASyI,EAAE,wBAE/BmgC,EAAO+nD,YACuB,QAA3B/nD,EAAO+nD,WAAWhpF,MACd,qBAAG3H,UAAU,SAASyI,EAAE,mBAE/BmgC,EAAO+nD,YACuB,cAA3B/nD,EAAO+nD,WAAWhpF,MACd,qBAAG3H,UAAU,SAASyI,EAAE,wBAE/B07E,GAAYA,EAASv7C,QAAUu7C,EAASv7C,OAAO+nD,YAC5C,qBAAG3wF,UAAU,SAASmkF,EAASv7C,OAAO+nD,cAKlD,uBAAK3wF,UAAU,yBACX,yBAAOugB,QAAQ,cAA+B,OAAjBne,IAAKC,SAAmB,gBAAe,QACpE,uBAAKrC,UAAU,iBACX,gBAAC,KAAD,CACI4F,KAAK,aACL9F,GAAG,aACHoc,OAAO,KACP7H,YACqB,OAAjBjS,IAAKC,SACC,qCACA,eAEVuoB,eAAgB,CAAEhD,UAAW,IAE7B/nB,IAAK4tB,EAAS,CACV1N,UAAU,EACV6H,UAAW,GACXy2C,UAAW,EACXtV,IAAK,MAIZngB,EAAO+/C,YACuB,aAA3B//C,EAAO+/C,WAAWhhF,MACd,qBAAG3H,UAAU,SAASyI,EAAE,wBAE/BmgC,EAAO+/C,YACuB,cAA3B//C,EAAO+/C,WAAWhhF,MACd,qBAAG3H,UAAU,SAASyI,EAAE,wBAE/BmgC,EAAO+/C,YACuB,QAA3B//C,EAAO+/C,WAAWhhF,MACd,qBAAG3H,UAAU,SAASyI,EAAE,mBAE/BmgC,EAAO+/C,YACuB,cAA3B//C,EAAO+/C,WAAWhhF,MACd,qBAAG3H,UAAU,SAASyI,EAAE,wBAE/B07E,GAAYA,EAASv7C,QAAUu7C,EAASv7C,OAAO+/C,YAC5C,qBAAG3oF,UAAU,SAASmkF,EAASv7C,OAAO+/C,eAMtD,uBAAK3oF,UAAU,OAEX,uBAAKA,UAAU,eACX,yBAAOugB,QAAQ,iBAAkC,OAAjBne,IAAKC,SAAmB,mBAAqB,kBAC7E,uBAAKrC,UAAU,iBACX,gBAAC,KAAD,CACIF,GAAG,gBACH8F,KAAK,gBACL/F,IAAK4tB,EAAS,CACV1N,UAAU,EACVoxE,aAAa,IAEjB98E,YAAa5L,EAAE,0BACf82D,WAAW,EACXC,qBAAqB,IACrB34C,KArRT,SAAC1T,GACpBA,EAAK49E,MAAMK,QAAQ,IACnBj+E,EAAK49E,MAAMM,SAAS,OAqRKzoD,EAAO8/C,eACJ,qBAAG1oF,UAAU,SAASyI,EAAE,2BAMxC,uBAAKzI,UAAU,eACX,0BACI2H,KAAK,SACLykB,KAAK,0BACLzZ,SAAU4P,EACVviB,UAAW,mCAEVyI,EAAE,mBAId8Z,GAAW,uBAAKnQ,MAAO,CAAEm0B,OAAQ,SAAWzmC,GAAG,aAGpD,gBAAC,KAAD,CACIgM,WAAY2hF,EACZryD,iBAtoBa,CAAC,gBAAiB,iBAAkB,YAAa,WAAY,WAAY,YAuoBtF7E,eAAgB,CAAE5uB,KAAM,YACxB6uB,aAAa,EACbC,cAAc,EACd0b,eAAe,EACfm/C,aAAc,CACVz1E,QAAS,CAAC,CAAEC,MAAO,gBAAiBy1E,UAAW,gBAEnD1oE,gBAAgB,EAChBvd,OAAQlJ,IAAKC,SACbxC,IAAK0hB,GAEL,gBAAC,KAAD,KACI,gBAAC,KAAD,CACI7P,WAAW,KACXoK,MAAM,KACNpc,MAAM,QACV,gBAAC,KAAD,CACIgS,WAAYjJ,EAAE,sCACdqT,MAAM,gBACNhI,SA1bK,SAAC9P,GACtB,OAAO,4BAAOA,EAAK8hF,SAAStxE,OA0bZ9U,MAAM,QACV,gBAAC,KAAD,CACIgS,WAAYjJ,EAAE,4CAEdyT,OAAQ,KACRJ,MAAM,gBACNpc,MAAM,QACV,gBAAC,KAAD,CACIgS,WAAYjJ,EAAE,uCAEdyT,OAAQ,KACRJ,MAAM,aACNpc,MAAM,QACV,gBAAC,KAAD,CACIgS,WAAYjJ,EAAE,iCAGdyT,OAAQ,KACRJ,MAAM,aACNpc,MAAM,QAEV,gBAAC,KAAD,CACIgS,WAAYjJ,EAAE,mCACdqT,MAAM,gBACNpc,MAAM,MACNiI,KAAM,OACNrF,OAAQ,CAAEqF,KAAM,QAChBuU,OAA0B,OAAlB9Z,IAAKC,SAAoB,QAAU,UAI3CoF,EAAe,GAAI,QAAS/F,IAC5B,gBAAC,KAAD,CACIgQ,WAAYjJ,EAAE,4BACdqL,SAAU,SAACX,GAAD,OAAUkvE,GAAalvE,IACjCzT,MAAM,SAIlB,gBAAC,KAAD,KACI,gBAAC,KAAD,KACI,gBAAC,KAAD,KACI,gBAAC,KAAD,CAA0Boc,MAAM,gBAAgBnU,KAAK,MAAMkhF,eAAgBP,IAC3E,gBAAC,KAAD,CAA0BxsE,MAAM,aAAanU,KAAK,MAAMkhF,eAAgBP,IACxE,gBAAC,KAAD,CAA0BxsE,MAAM,aAAanU,KAAK,MAAMkhF,eAAgBP,MAIhF,gBAAC,KAAD,KACI,gBAAC,KAAD,KACI,gBAAC,KAAD,CAA0BxsE,MAAM,gBAAgBnU,KAAK,MAAMkhF,eAtkB1D,SAAC11E,GActB,OACI,wBAAMnT,UAAU,YAAhB,gBAAyCukF,GAdd,WAC3B,IAAIgK,EAAc,EACd5B,GAAkBA,EAAeL,YAAcK,EAAeL,WAAWluF,OAAS,GAC/DuuF,EAAeL,WAAWhqF,QAAO,SAAAC,GAAI,OAAIA,EAAK4S,SACtD1S,KAAI,SAACvE,GAAO,IAAD,EAClBqwF,GAAerwF,EAAEwyF,cACjBnC,GAAerwF,EAAEyyF,WACjBpC,GAAW,UAAIrwF,EAAEyqF,kBAAN,QAAoB,KAGvC,OAAO4F,EAIwCiD,UA2jBvC,gBAAC,KAAD,KACI,gBAAC,KAAD,KACI,gBAAC,KAAD,CAA0B11E,MAAM,gBAAgBnU,KAAK,MAAMkhF,eAhnB3D,SAAC11E,GA+BrB,OACI,wBAAMnT,UAAU,YAA6B,OAAjBoC,IAAKC,SAAmB,QAAU,UAA9D,KAA2EkiF,GAPrD,WACtB,IAAMkN,EAzBqB,WAC3B,IAAIlD,EAAc,EACd5B,GAAkBA,EAAeL,YAAcK,EAAeL,WAAWluF,OAAS,GAC/DuuF,EAAeL,WAAWhqF,QAAO,SAAAC,GAAI,OAAIA,EAAK4S,SACtD1S,KAAI,SAACvE,GAAO,IAAD,EAClBqwF,GAAerwF,EAAEwyF,cACjBnC,GAAerwF,EAAEyyF,WACjBpC,GAAW,UAAIrwF,EAAEyqF,kBAAN,QAAoB,KAGvC,OAAO4F,EAeUiD,GAEjB,OAfuB,WACvB,IAAIjD,EAAc,EACd5B,GAAkBA,EAAeJ,QAAUI,EAAeJ,OAAOnuF,OAAS,GAC3DuuF,EAAeJ,OAAOjqF,QAAO,SAAAC,GAAI,OAAIA,EAAK4S,SAClD1S,KAAI,SAACvE,GAAO,IAAD,EACdqwF,GAAerwF,EAAEutF,cACjB8C,GAAerwF,EAAEwtF,WACjB6C,GAAW,UAAIrwF,EAAEyqF,kBAAN,QAAoB,KAGvC,OAAO4F,EAIYC,GACCiD,EAI6DC,WAqlB7E,gBAAC,KAAD,CAAQt0E,SAAU,CAACwZ,KAAQC,KAAMC,KAAaC,KAAQC,KAAMC,KAAM1Z,KAASwrE,SAI9EhrE,EAAmBtD,MAAQ,gBAAC,GAAD,CAAcqV,OAAQ/R,MCruBjD4zE,GAAkB,SAAC,GAAsC,EAApC9xE,QAAqC,IAA5B+xE,EAA2B,EAA3BA,qBAG/BnpF,EAAMC,cAAND,EAGR,EAGIlH,aAAiBkrF,IAFjBE,EADJ,oBAMAprF,aAAgB,WACRqwF,GAAwBA,EAAqBj+E,SAC7Ci+E,EAAqBj+E,QAAQO,YAElC,CAAC9R,IAAKC,WAETd,aAAgB,WACRqwF,GAAwBA,EAAqBj+E,SAC7Ci+E,EAAqBj+E,QAAQO,YAElC,CAACy4E,EAAe//B,YAEnB,IAIM2I,EAAa,SAACluD,GAChB,OAAO,4BAAO,IAAIC,KAAKD,GAAMo9E,eAAeriF,IAAKC,YAIrD,OACI,uBAAKvC,GAAG,0BACJ,uBAAKE,UAAU,eACX,uBAAKA,UAAU,QACX,wBAAMA,UAAU,uBAChB,0BAAsB,OAAjBoC,IAAKC,SAAmB,mCAA4B,oBAIjE,gBAAC,KAAD,CACIyJ,WAAY6gF,EAAe//B,UAC3BxxB,iBAlCa,CAAC,gBAAiB,iBAAkB,YAAa,WAAY,WAAY,YAmCtF7E,eAAgB,CAAE5uB,KAAM,YACxB6uB,aAAa,EACbC,cAAc,EACd5N,gBAAgB,EAChBspB,eAAe,EACfm/C,aAAc,CACVz1E,QAAS,CAAC,CAAEC,MAAO,OAAQy1E,UAAW,gBAE1CjmF,OAAQlJ,IAAKC,SACbxC,IAAK+xF,GAEL,gBAAC,KAAD,KAEI,gBAAC,KAAD,CACIlgF,WAAYjJ,EAAE,+BACdqT,MAAM,OACNnU,KAAM,OACNrF,OAAQ,CAAEqF,KAAM,QAChBmM,SAvCa,SAACX,GAC9B,OAAOA,EAAKnP,KAAOuxD,EAAWpiD,EAAKnP,MAAQ,IAuC3BtE,MAAM,QACV,gBAAC,KAAD,CACIgS,WAAYjJ,EAAE,iCACdqT,MAAK,UAAsB,OAAjB1Z,IAAKC,SAAmB,kBAAoB,mBACtD3C,MAAM,QACV,gBAAC,KAAD,CACIgS,WAAYjJ,EAAE,gCACdqT,MAAK,UAAsB,OAAjB1Z,IAAKC,SAAmB,UAAY,WAC9C3C,MAAM,QACV,gBAAC,KAAD,CACIgS,WAAYjJ,EAAE,sCACdqT,MAAM,iBACNpc,MAAM,QACV,gBAAC,KAAD,CACIgS,WAAYjJ,EAAE,oCACdqT,MAAM,eAAepc,MAAM,QAC/B,gBAAC,KAAD,CACIgS,WAAYjJ,EAAE,+BACdqT,MAAM,wBACNpc,MAAM,QACV,gBAAC,KAAD,CACIgS,WAAYjJ,EAAE,gCACdqT,MAAM,yBACNpc,MAAM,SAEd,gBAAC,KAAD,CAAQ0d,SAAU,CAACwZ,KAAQC,KAAMC,KAAaC,KAAQC,WClEzD66D,GAAwB,SAAC,GAAoB,IAAlBrE,EAAiB,EAAjBA,WACtC,EAAsBjsF,aAAiBD,GAAhCI,EAAP,oBACA,EAAgCH,WAAe,IAA/C,mBAAOi7E,EAAP,KAAiBC,EAAjB,KACA,EAA8Bl7E,WAAe,CAC3CwkF,QAAS,GACT7nD,MAAO,GACPovD,KAAM,GACN6B,MAAO,GACPzpF,OAAQ,GACRmoF,WAAY,GACZ2C,UAAW,GACXC,aAAc,KARhB,mBAAO5wE,EAAP,KAAgBiyE,EAAhB,KAUA,EAA8CvwF,WAAe,CAC3DwkF,QAAS,GACT7nD,MAAO,GACPovD,KAAM,GACN6B,MAAO,GACPzpF,OAAQ,GACRmoF,WAAY,GACZ2C,UAAW,GACXC,aAAc,KARhB,mBAAOsB,EAAP,KAAwBC,EAAxB,KAUQvpF,EAAMC,cAAND,EACR,EAAsDlH,YAAe,GAArE,mBAAO0wF,EAAP,KAA4BnF,EAA5B,KACA,EAAoDvrF,WAAe,CACjEkZ,MAAM,IADR,mBAAOsD,EAAP,KAA2BypB,EAA3B,KAGA,EAA4CjmC,WAAe,IAA3D,mBAAuBw2B,GAAvB,WACA,EAAgCx2B,YAAe,GAA/C,mBAAO6D,EAAP,KAAiBsL,EAAjB,KACA,EAA8BnP,YAAe,GAA7C,mBAAOghB,EAAP,KAAgB8hE,EAAhB,KACA,EAAsC9iF,YAAe,GAArD,mBAAOquB,EAAP,KAAoBC,EAApB,KACA,EAIItuB,aAAiBkrF,IAJrB,mBACEE,EADF,KAEEC,GAFF,KAGEsF,GAHF,KAKMN,GAAuBrwF,SAAa,MAC1CA,aAAgB,WACd,IAAM4wF,EAAkB,IAAIC,gBAC5BC,KACA,IAAMpyC,EAAOn5C,IAEb,OADA21E,EAAYx8B,GACL,WACLkyC,EAAgBG,WAEjB,IAEH/wF,aAAgB,WACVisF,IACFnJ,GAAW,GACXkO,QAED,CAAC/E,IAGJjsF,aAAgB,WACVghB,IACFzR,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,iBAChDE,aAAYH,SAASC,eAAe,gBACpCG,aAAW,CAAErJ,KAAM,iBAEpB,CAAC4a,IAGJhhB,aAAgB,WACVqwF,IAAwBA,GAAqBj+E,UAC/Ci+E,GAAqBj+E,QAAQ7H,WAAa6gF,EAAe//B,UACzDglC,GAAqBj+E,QAAQO,aAE9B,CAACy4E,IAGJprF,aAAgB,WACd,GAAIwwF,EAAgBrsF,OAAOtH,OAAS,GAAK2zF,EAAgB5C,MAAM/wF,OAAS,GAAK2zF,EAAgBlE,WAAWzvF,OAAS,EAAG,CAClH,IAAMo0F,EAAU,2BACX3yE,GADW,IAEd,OAAU8lB,GAAmBosD,EAAgBrsF,OAAQ,CAAEmgC,QAA0B,OAAjBzjC,IAAKC,SAAmB,SAAW,SAAUR,MAAO,OACpH,MAAS8jC,GAAmBosD,EAAgB5C,MAAO,CAAEtpD,QAA0B,OAAjBzjC,IAAKC,SAAmB,SAAW,SAAUR,MAAO,OAClH,WAAc8jC,GAAmBosD,EAAgBlE,WAAY,CAAEhoD,QAA0B,OAAjBzjC,IAAKC,SAAmB,SAAW,SAAUR,MAAO,SAE9HiwF,EAAWU,GACX5F,IAAkB,SAAAnK,GAAS,kCAEtBA,GAFsB,IAGzB71B,UAAW6lC,GAAyBhQ,EAAW+P,WAIlD,CAACpwF,IAAKC,WAETd,aAAgB,WACV0wF,IAAwBzE,EAC1BkF,KACST,GAAuBzE,GAChCmF,OAED,CAACV,IAEJ1wF,aAAgB,WACVse,GAAWA,EAAQna,QAAUma,EAAQna,OAAOtH,OAAS,GACvDyhB,EAAQsvE,OAAStvE,EAAQsvE,MAAM/wF,OAAS,GACxCyhB,EAAQguE,YAAchuE,EAAQguE,WAAWzvF,OAAS,GAClDuuF,GAAkBA,EAAe//B,WAAa+/B,EAAe//B,UAAUxuD,OAAS,IACzC,IAAvCuuF,EAAeH,sBAEfI,IAAkB,SAAAnK,GAChB,OAAO,2BACFA,GADL,IAEE+J,sBAAsB,EACtB5/B,UAAW6lC,GAAyBhQ,EAAW5iE,UAIpD,CAACA,EAAS8sE,IAIb,IAAM8F,GAA2B,SAACG,EAAUC,GAE1C,IAAMC,EAAc,SAACxL,EAAkByL,EAAQF,GAC7C,IAAMhxF,EAAQylF,EAAiByL,GAAUzL,EAAiByL,GAAU,GACpE,OAAQzL,EAAiBO,UACvB,IAAK,OACH,OAAO,IAAIvgF,KAAKzF,GAAO0F,mBAAmBnF,IAAKC,UAEjD,IAAK,UACH,OAAO0lF,KAAKC,aAAa5lF,IAAKC,SAAU,CACtC+P,MAAO,WACPsyE,SAAU,QACTxoE,OAAOra,GAEZ,IAAK,8BACH,IAAImxF,EAAYH,EAAWntF,OACzBmtF,EAAWntF,OAAOpD,QAAO,SAAAC,GAAI,OAAIA,EAAKV,QAASA,KAAS,GAE1D,OADAmxF,EAAYA,EAAU50F,OAAS,EAAI40F,EAAU,GAAG/wF,KAAOJ,EAGzD,IAAK,4BACH,IAAImxF,EAAYH,EAAWhF,WACzBgF,EAAWhF,WAAWvrF,QAAO,SAAAC,GAAI,OAAIA,EAAKV,QAASA,KAAS,GAE9D,OADAmxF,EAAYA,EAAU50F,OAAS,EAAI40F,EAAU,GAAG/wF,KAAOJ,EAGzD,IAAK,oCACH,IAAImxF,EAAYH,EAAWntF,OACzBmtF,EAAWntF,OAAOpD,QAAO,SAAAC,GAAI,OAAIA,EAAKV,QAASA,KAAS,GAE1D,OADAmxF,EAAYA,EAAU50F,OAAS,EAAI40F,EAAU,GAAG/wF,KAAOJ,EAGzD,IAAK,6BACH,IAAImxF,EAAYH,EAAWhF,WACzBgF,EAAWhF,WAAWvrF,QAAO,SAAAC,GAAI,OAAIA,EAAKV,QAASA,KAAS,GAE9D,OADAmxF,EAAYA,EAAU50F,OAAS,EAAI40F,EAAU,GAAG/wF,KAAOJ,EAIzD,IAAK,kCACH,IAAImxF,EAAYH,EAAW1D,MACzB0D,EAAW1D,MAAM7sF,QAAO,SAAAC,GAAI,OAAIA,EAAKV,QAASA,KAAS,GAEzD,OADAmxF,EAAYA,EAAU50F,OAAS,EAAI40F,EAAU,GAAG/wF,KAAOJ,EAGzD,IAAK,UACH,MAAwB,OAAjBO,IAAKC,SAAmBR,EAAiB,QAATA,EAAiB,MAAQ,KAElE,QACE,OAAOA,IAoBb,OAhBA+wF,EAAShmC,UAAYgmC,EAAShmC,UAAUnqD,KAAI,SAAAF,GAC1C,OAAO,2BACFA,GADL,IAEE0wF,QAAS1wF,EAAK0wF,QACdC,QAAS3wF,EAAK2wF,QACdjL,UAAW1lF,EAAK0lF,UAChBH,YAAavlF,EAAKulF,YAClBqL,aAAcL,EAAYvwF,EAAM,YAAaswF,GAC7CO,eAAgBN,EAAYvwF,EAAM,cAAeswF,GACjD7uF,KAAM,IAAIsD,KAAK/E,EAAKyB,MACpBlE,GAAIyC,EAAKzC,GACTizC,SAAUxwC,EAAKwwC,SACf80C,SAAUtlF,EAAKslF,SACfwL,iBAAkB9wF,EAAK8wF,sBAGpBT,EAAShmC,WAGZ2lC,GAAQ,uCAAG,kCAAAztF,EAAA,6DACTwuF,EAAuC,SAACV,GAgB5C,OAfIA,EAAStG,aACXsG,EAAStG,WAAasG,EAAStG,WAAW7pF,KAAI,SAAAF,GAG5C,OAFAA,EAAKmmF,cAAiBnmF,EAAKmmF,eAAwC,wBAAvBnmF,EAAKmmF,cACxC,IAAIphF,KAAK/E,EAAKmmF,eAArB,KACKnmF,MAGPqwF,EAASriC,SACXqiC,EAASriC,OAASqiC,EAASriC,OAAO9tD,KAAI,SAAAF,GAIpC,OAHAA,EAAK6tF,oBAAuB7tF,EAAK6tF,qBAAoD,wBAA7B7tF,EAAK6tF,oBACpD,IAAI9oF,KAAK/E,EAAK6tF,qBAArB,KACF7tF,EAAK8tF,SAAY9tF,EAAK8tF,UAA8B,wBAAlB9tF,EAAK8tF,SAA4C,IAAI/oF,KAAK/E,EAAK8tF,UAArB,KACrE9tF,MAGJqwF,GAjBM,SAmBQzJ,GACrBznF,EAAYjB,YACZ+sF,GArBa,UAuBQ,OAJjBhoF,EAnBS,QAuBFE,OAvBE,iCAwBQF,EAASwD,OAxBjB,OAwBT4pF,EAxBS,OAyBbA,EAAWU,EAAqCV,GAChDhG,IAAkB,SAAAnK,GAAS,kCAAUA,GAAcmQ,MACnDxpF,QAAQ1C,IAAI,WAAYksF,GA3BX,wBA6BP5qD,EAAwB,OAAlB5lC,IAAKC,SAAoB,+EAAkE,mEACvGsc,GAAmB,eAAgBqpB,GAAK,WAAQt3B,GAAY,MAC5DtH,QAAQ1C,IAAIlB,GA/BC,QAiCf6+E,GAAW,GAjCI,4CAAH,qDAsCR1+C,GAAqB,SAAC3hC,EAAM4hC,GAChC,OAAI5hC,EAAK5F,OAAS,EACT4F,EAAKvB,KAAI,SAACvE,GACf,MAAO,CACL+D,KAAM/D,EAAE0nC,EAAOC,SACfhkC,MAAO3D,EAAE0nC,EAAO/jC,WAIbmC,GAGLquF,GAAwB,WAE5B,IAAMkB,EAAkB,uCAAG,WAAOC,EAAIC,EAAW7tD,GAAtB,eAAA9gC,EAAA,sEACJ0uF,EAAG9xF,EAAYjB,aADX,cACrB+E,EADqB,gBAERA,EAASwD,OAFD,cAEzBxD,EAFyB,yBAGlB,CAAEA,WAAUiuF,YAAW7tD,WAHL,2CAAH,0DAKpBhS,EAAW,GAEfA,EAASxvB,KAAKmvF,EAAmBlK,GAAgC,SAAU,CAAExjD,QAA0B,OAAjBzjC,IAAKC,SAAmB,SAAW,SAAUR,MAAO,QAC1I+xB,EAASxvB,KAAKmvF,EAAmBnK,GAA+B,QAAS,CAAEvjD,QAA0B,OAAjBzjC,IAAKC,SAAmB,SAAW,SAAUR,MAAO,QACxI+xB,EAASxvB,KAAKmvF,EAAmB9lF,GAAe,aAAc,CAAEo4B,QAA0B,OAAjBzjC,IAAKC,SAAmB,SAAW,SAAUR,MAAO,QAC7H+xB,EAASxvB,KAAKmvF,EAAmBnS,GAAwB,QAAS,CAAEv7C,QAAS,OAAQhkC,MAAO,QAC5F+xB,EAASxvB,KAAKmvF,EAAmBnyE,GAAc,UAAW,CAAEykB,QAAS,OAAQhkC,MAAO,QACpF+xB,EAASxvB,KAAKmvF,EAAmB3P,GAAuB,OAAQ,CAAE/9C,QAAS,MAAOhkC,MAAO,QACzF+xB,EAASxvB,KAAKmvF,EAAmBjK,GAAgC,YAAa,CAAEzjD,QAAS,WAAYhkC,MAAO,QAC5G+xB,EAASxvB,KAAKmvF,EAAmB9J,GAAqB,eAAgB,CAAE5jD,QAAS,WAAYhkC,MAAO,QAGpGiN,QAAQylB,IAAIX,GAAU7qB,KAAtB,uCAA2B,WAAM2qF,GAAN,eAAA5uF,EAAA,sDACzB,IACEktF,GAAmB,SAACvP,GAClB,IAAMkR,EAAcD,EAAUjxF,KAAI,SAAAF,GAAI,uBAAQA,EAAKkxF,UAAYlxF,EAAKiD,aAC9Dob,EAAM,GAEZ,OADA+yE,EAAY1vF,SAAQ,SAAA1B,GAAU,IAAMqxF,EAAS71F,OAAOgB,KAAKwD,GAAM,GAAIqe,EAAIgzE,GAAUrxF,EAAKqxF,MAC/EhzE,KAEHA,EAAM,GACZkxE,GAAW,SAACrP,GAKV,OAJoBiR,EAAUjxF,KAAI,SAAAF,GAAI,uBAChCA,EAAKkxF,UAAY9tD,GAAmBpjC,EAAKiD,SAAUjD,EAAKqjC,YAClD3hC,SAAQ,SAAA1B,GAAU,IAAMqxF,EAAS71F,OAAOgB,KAAKwD,GAAM,GAAIqe,EAAIgzE,GAAUrxF,EAAKqxF,MACtFxqF,QAAQ1C,IAAI,UAAWka,GAChBA,KAET,MAAOzX,GACPC,QAAQ1C,IAAIyC,GAjBW,2CAA3B,uDAmBGD,OAAM,SAAA25E,GACPz5E,QAAQ1C,IAAI,2CAA4Cm8E,OAItDgR,GAAsB,WAC1B,IAAMvrD,EAAUqkD,EAuChB,OArCKa,GAAellD,EAAQk0C,WAC1Bl0C,EAAQk0C,SAAWA,GAEhBgR,UACIllD,EAAQxoC,GAKjBwoC,EAAQioB,OAASjoB,EAAQioB,OAAO9tD,KAAI,SAACuB,GAKnC,OAJIoqF,MAAMpqF,EAAKlE,WACNkE,EAAKlE,GAEZkE,EAAKlE,GAAKszB,SAASpvB,EAAKlE,IACnBkE,KAGTskC,EAAQikD,OAASjkD,EAAQikD,OAAO9pF,KAAI,SAACuB,GAKnC,OAJIoqF,MAAMpqF,EAAKlE,WACNkE,EAAKlE,GAEZkE,EAAKlE,GAAKszB,SAASpvB,EAAKlE,IACnBkE,KAITskC,EAAQgkD,WAAahkD,EAAQgkD,WAAW7pF,KAAI,SAACuB,GAK3C,OAJIoqF,MAAMpqF,EAAKlE,WACNkE,EAAKlE,GAEZkE,EAAKlE,GAAKszB,SAASpvB,EAAKlE,IACnBkE,MAGRyD,EAAe,GAAI,QAAS/F,WAAuB4mC,EAAQgkD,kBACrDhkD,EAAQskB,iBACRtkB,EAAQkkD,qBACRlkD,GAGH3pB,GAAqB,SAAChX,EAAMqgC,EAAKC,GACzB,YAARtgC,EACF6/B,EAAsB,CACpBjoC,MAAOkJ,EAAE,uBACTgT,QAAShT,EAAE,yBACXd,KAAM,UACNuR,KAAM,eACNuB,MAAM,EACN+rB,aAAcyB,IAEC,UAARtgC,EACT6/B,EAAsB,CACpBjoC,MAAOkJ,EAAE,mCACTgT,QAAShT,EAAE,6BACXd,KAAM,QACNuR,KAAM,2BACNuB,MAAM,IAES,YAAR9S,EACT6/B,EAAsB,CACpBjoC,MAAOkJ,EAAE,uBACTgT,QAAShT,EAAE,yBACXd,KAAM,UACNuR,KAAM,eACNuB,MAAM,EACN+rB,aAAcyB,IAEC,iBAARtgC,GACT6/B,EAAsB,CACpBjoC,MAAOkJ,EAAE,mCACTgT,QAASusB,EACTrgC,KAAM,QACNuR,KAAM,2BACNuB,MAAM,EACN+rB,aAAcyB,KAKdyqD,GAAkB,uCAAG,gCAAA5tF,EAAA,6DACzB+qB,GAAe,GACfw0D,GAAW,GACL9hF,EAAOsxF,KAHY,SAIJlK,GAAqBjoF,EAAYjB,YAAa8B,GAJ1C,YAInB0G,EAJmB,QAKdxD,GALc,iBAMvB4+E,GAAW,GACX6N,KACA9oF,QAAQ1C,IAAI,aAAcnE,GAC1BuqF,GAAuB,GACvBnuE,GAAmB,UAAW,IAAI,WAAQjO,GAAY,MACtDmf,GAAe,GAXQ,+BAavBw0D,GAAW,GACX1lE,GAAmB,SAdI,UAeL1V,EAAOD,OAfF,QAejB65E,EAfiB,OAgBvBz5E,QAAQ1C,IAAIm8E,GACZlkE,GAAmB,eAAgBpe,KAAKiJ,UAAUq5E,EAAIj6C,OAASi6C,EAAIj6C,OAAjB,iGAC0Ci6C,EAAIh6C,eAAgB,WAAQn4B,GAAY,MACpImf,GAAe,GAnBQ,4CAAH,qDAuBlB8iE,GAAkB,uCAAG,gCAAA7tF,EAAA,6DACzB+qB,GAAe,GACfw0D,GAAW,GACL9hF,EAAOsxF,KAHY,SAIJnK,GAAwBhoF,EAAYjB,YAAa8B,GAJ7C,YAInB0G,EAJmB,QAKdxD,GALc,iBAMvB4+E,GAAW,GACXj7E,QAAQ1C,IAAI,eAAgBnE,GAC5BuqF,GAAuB,GACvBnuE,GAAmB,UAAW,IAAI,WAAQjO,GAAY,MACtDmf,GAAe,GAVQ,+BAYvBw0D,GAAW,GACX1lE,GAAmB,SAbI,UAcL1V,EAAOD,OAdF,QAcjB65E,EAdiB,OAevBz5E,QAAQ1C,IAAIm8E,GACZlkE,GAAmB,eACjBpe,KAAKiJ,UAAUq5E,EAAIj6C,OAASi6C,EAAIj6C,OAAjB,iGAC6Ei6C,EAAIh6C,eAChG,WAAQn4B,GAAY,MAEtBmf,GAAe,GArBQ,4CAAH,qDAyBxBtuB,aAAgB,WACd,IAAImqB,EAAoBhqB,EAAYR,YACpC62B,EAAkBrM,EAAkBppB,QAAO,SAACpE,GAAD,OAA0B,KAAnBA,EAAEmD,gBAAqBoB,KAAI,SAACvE,GAAD,OAAQA,EAAEkD,iBACtF,CAACM,IAGJ,IAAMquB,GAAY,CAChB/T,MAAO,WACPoQ,KAAM,YACNH,kBAAmBuhE,EAAc/lF,EAAe,GAAI,OAAQ/F,IAAgBA,EAAYwvE,WAAczpE,EAAe,GAAI,SAAU/F,GACnIyqB,aAAa,EACbD,QAAS,aACTK,UAAW,WACLzpB,OAAOgxF,QAAQ,kFACjBpjF,GAAY,KAKlB,OACE,gCACGtL,EACC,gBAAC,IAAD,CAAUhB,MAAM,EAAMyF,GAAE,2CAExB,gCACG0Y,GAAW,uBAAKnQ,MAAO,CAAEm0B,OAAQ,SAAWzmC,GAAG,gBAChD,gBAAC,GAAD,CAAcgwB,OAAQ/R,IAEtB,uBAAK/d,UAAU,mBACb,uBAAKF,GAAG,yBACL+f,GAAW,gBAAC,GAAD,CAAaA,QAASA,EAASitE,uBAAwBA,KACjEH,EAAe7sF,IAAoB,OAAd0tF,IAAuBhR,GAAY,gBAAC,GAAD,CAAa38D,QAASA,EAAS2tE,WAAYA,EAAYhR,SAAUA,KACzHmQ,EAAe7sF,IAAoB,OAAd0tF,IAAuB,gBAAC,GAAD,CAAaxpF,KAAM2oF,EAAeJ,OAAQ1sE,QAASA,EAAS2tE,WAAYA,IACrHA,GAAc/lF,EAAe,GAAI,OAAQ/F,IAAgB,gBAAC,GAAD,CAAgBsC,KAAM2oF,EAAeL,WAAYzsE,QAASA,EAAS2tE,WAAYA,IACxIA,GAAc/lF,EAAe,GAAI,OAAQ/F,IAAgB,gBAAC,GAAD,CAAiBme,QAASkyE,EAAiBH,qBAAsBA,OAI/H,uBAAK5xF,UAAU,mBACb,gBAAC,GAAD,CAAS2S,SAAUid,EAAapE,SAAUuE,SC1dzCgkE,GAAwB,SAACv0F,GACpC,MAAsB+B,aAAiBD,GAAhCI,EAAP,oBACA,EAAgCH,YAAe,GAA/C,mBAAO6D,EAAP,KACA,GADA,KACoC7D,WAAe,OAAnD,mBAAOisF,EAAP,KAAmBwG,EAAnB,KAEQvrF,EAAMC,cAAND,EASR,OAPAlH,aAAgB,WAEd,OADAyyF,EAAcx0F,EAAMqG,MAAMiqB,OAAOhwB,IAC1B,WACLk0F,EAAc,SAEf,IAGD,gCAC+B,OAA5BtyF,EAAYjB,YACX,gBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WACvBzE,EACF,gBAAC,IAAD,CAAUhB,MAAM,EAAMyF,GAAG,2CAEzB,gCACE,gBAAC,GAAD,KACE,uBAAK7J,UAAU,eACf,gBAACwM,EAAA,EAAD,CAAWxM,UAAU,gBACnB,uBAAKA,UAAU,mBACb,gBAACmhB,GAAA,EAAD,KACE,uBAAKnhB,UAAU,mBACb,uBAAKA,UAAU,SACb,0BAGMyI,EAFF+kF,EAEI,mCADA,oCAOhB,gBAACrsE,GAAA,EAAD,KACE,gBAAC,GAAD,CAAuBqsE,WAAYA,UC1CtCyG,GAAkB,SAAC,GAAmD,IAAjDC,EAAgD,EAAhDA,YAAaC,EAAmC,EAAnCA,eAAgB5yE,EAAmB,EAAnBA,aAE3D,EAAsBpZ,qBAAW7G,GAA1BI,EAAP,oBAEA,EAA0B0G,mBAAS,IAAnC,mBAAOuG,EAAP,KAAcgC,EAAd,KAEA9H,qBAAU,WAAM,4CACZ,4BAAA/D,EAAA,sEACwB6K,GAAqBjO,EAAYjB,aAAasI,MAAK,SAAAwI,GACnE,GAAIA,EAAI9L,GACJ,OAAO8L,EAAIvI,UAHvB,OACU2F,EADV,OAMIgC,EAAShC,GANb,4CADY,uBAAC,WAAD,wBASZ8C,KACD,IAEHlQ,IAAMsH,WAAU,WACR0Y,GACAA,EAAarN,YAClB,CAAC9R,IAAKC,WAET,IAAQoG,EAAMC,cAAND,EAERI,qBAAU,WACFqrF,GACAA,EAAYhgF,YAEjB,CAAC9R,IAAKC,WAuCT,OACI,oCACI,yBAAKvC,GAAG,kBAAkBE,UAAU,iBAChC,kBAAC,KAAD,CACIF,GAAG,eACHgM,WAAY6C,EACZ6nB,aAAa,EACbC,cAAc,EACdmyD,eAAe,EACf//D,gBAAgB,EAChBspB,eAAe,EACfzb,kBAAkB,EAClBusD,gBAAgB,EAChB1sD,eAAgB,CAAE5uB,KAAM,YACxB2D,OAAQlJ,IAAKC,SACbxC,IAAK,SAAA05B,GAAI,OAAI46D,EAAe56D,KAE5B,kBAAC,KAAD,KACI,kBAAC,KAAD,CAAiBzd,MAAM,OAAOhI,SAAU,SAACX,GAAD,OAvDvC,SAACA,GAClB,OACI,yBAAKnT,UAAU,mBACX,kBAAC,OAAD,CAAMoS,MAAO,CACTqF,QAAS,OACTpF,WAAY,UACbxI,GAAE,mBAAcsJ,EAAKrT,KACpB,yBAAKuK,IAAG,UAAK9E,0BAAL,sDAAsE7D,EAAY4S,iBAAlF,mBAA6GnB,EAAKrT,GAAlH,gBAAoIyU,IAAI,KAChJ,+BAAQpB,EAAKqB,QA+CyCw1D,CAAa72D,IAAOzB,WAAYjJ,EAAE,wBAAyB/I,MAAM,QACnH,kBAAC,KAAD,CAAiBoc,MAAM,sBAAsBhI,SAAU,SAACX,GAAD,OA9BlD,SAACA,GACtB,OACI,yBAAKnT,UAAU,uBACX,kBAAC,OAAD,CAAM6J,GAAE,mBAAcsJ,GAAQA,EAAKihF,gBAAkBjhF,EAAKihF,eAAet0F,KACpEqT,GAAQA,EAAKihF,gBAAkB,yBAAK/pF,IAAG,UAAK9E,0BAAL,sDAAsE7D,EAAY4S,iBAAlF,mBAA6GnB,EAAKihF,eAAet0F,GAAjI,gBAAmJyU,IAAI,KAC9LpB,GAAQA,EAAKihF,gBAAkB,+BAAQjhF,EAAKihF,eAAe5/E,QAyBS6/E,CAAiBlhF,IAAOzB,WAAYjJ,EAAE,4BAA6B/I,MAAM,QAC1I,kBAAC,KAAD,CAAiBoc,MAAwB,OAAjB1Z,IAAKC,SAAmB,sBAAwB,sBAAuBqP,WAAYjJ,EAAE,8BAA+B/I,MAAM,OAClJ,kBAAC,KAAD,CAAiBoc,MAAwB,OAAjB1Z,IAAKC,SAAmB,kBAAoB,kBAAmBqP,WAAYjJ,EAAE,0BAA2B/I,MAAM,OACtI,kBAAC,KAAD,CAAiBoc,MAAwB,OAAjB1Z,IAAKC,SAAmB,cAAgB,cAAeqP,WAAYjJ,EAAE,wBAAyB/I,MAAM,OAC5H,kBAAC,KAAD,CAAiBoc,MAAM,QAAQpK,WAAYjJ,EAAE,8BAA+B/I,MAAM,OAClF,kBAAC,KAAD,CAAiBoc,MAAwB,OAAjB1Z,IAAKC,SAAmB,cAAgB,cAAeqP,WAAYjJ,EAAE,2BAA4B/I,MAAM,OAC/H,kBAAC,KAAD,CAAiBoc,MAAwB,OAAjB1Z,IAAKC,SAAmB,kBAAoB,kBAAmBqP,WAAW,WAAWhS,MAAM,OACnH,kBAAC,KAAD,CAAiBoc,MAAM,QAAQpK,WAAW,SAAShS,MAAM,QAG7D,kBAAC,KAAD,CAAQ0d,SAAU,CAAC4Z,KAAM8xD,KAAOjyD,KAAMD,KAAQG,KAAQI,KAAausD,YCjG1E4Q,I,OAAe,SAAC90F,GAEzB,MAAsB+B,aAAiBD,GAAhCI,EAAP,oBACA,EAAwCH,WAAe,MAAvD,mBAAOggB,EAAP,KAAqB6rB,EAArB,KAEQ3kC,EAAMC,cAAND,EAsBFsnB,EAAY,CACdsH,OAAQ,kBArBgB,WACxB,GAAI9V,EAAc,CACd,IAAIrU,EAAO9K,IAAKC,SACZgrC,EAAqB9rB,EACzB8rB,EAAmBvhC,WAAWrJ,KAAI,SAAU0wB,GAGxC,OAFAA,EAAEk9B,gBAAkB,IAAI/oD,KAAK6rB,EAAEk9B,iBAAiB9oD,mBAAmB2F,GAC/DimB,EAAEm9B,WAAUn9B,EAAEm9B,SAAW,IAAIhpD,KAAK6rB,EAAEm9B,UAAU/oD,mBAAmB2F,IAC9DimB,KAEXka,EAAmBlY,eAYTo/D,IACdj9D,UAAW,kBATW,WACtB,GAAI/V,EAAc,CACHnf,IAAKC,SAChBkf,EAAaizE,aAMAC,KAGrB,OACI,uBAAK30F,GAAG,gBACyB,OAA5B4B,EAAYjB,YAAuB,gBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WACzD,gCACI,uBAAK7J,UAAU,eACf,gBAACwM,EAAA,EAAD,CAAWxM,UAAU,gBACjB,uBAAKA,UAAU,mBACX,gBAACmhB,GAAA,EAAD,KACI,uBAAKnhB,UAAU,mBACX,uBAAKA,UAAU,SACX,0BAAKyI,EAAE,qBAGf,uBAAKzI,UAAU,mBACX,uBAAKA,UAAU,WACX,gBAAC,GAAD,CAASwrB,SAAUuE,QAKnC,gBAAC5O,GAAA,EAAD,KACI,uBAAKnhB,UAAU,UACX,gBAAC,GAAD,CAAiBk0F,YAAa3yE,EAAc4yE,eAAgB/mD,WC9DtFsnD,I,OAAsBj2E,wBAAc,KAEpCk2E,GAAuB,SAAC,GAAkB,IAAhBlzF,EAAe,EAAfA,SAC5B,EAAkC2G,qBAAlC,mBAAO05E,EAAP,KAAkBC,EAAlB,KACA,EAA0C35E,oBAAS,GAAnD,mBAAOs5E,EAAP,KAAsBC,EAAtB,KACA,EAAkDv5E,mBAAS,IAA3D,mBAAOwsF,EAAP,KAA0BC,EAA1B,KACA,EAAkCzsF,mBAAS,IAA3C,mBAAO0sF,EAAP,KAAkBC,EAAlB,KACA,EAAgC3sF,mBAAS,IAAzC,mBAAOo0E,EAAP,KAAiBC,EAAjB,KAYA,OACI,kBAACiY,GAAoB9yF,SAArB,CAA8BC,MAAO,CACjC6/E,gBACAC,mBACAG,YACAC,eACA6S,oBACAC,uBACAvS,SAlBS,SAACnvE,GACdwuE,GAAiB,GAGbI,EADA5uE,GAGa,OAab2hF,YACAC,eACAvY,WACAC,gBAECh7E,IAKPuzF,GAAkB,WACpB,IAAM5hF,EAAUjL,qBAAWusF,IAE3B,IAAKthF,EACD,MAAM,IAAIukE,MAAM,sDAGpB,OAAOvkE,GC7CJ,SAAe6hF,GAAtB,mC,8CAAO,WAAgCvwF,GAAhC,SAAAI,EAAA,+EACIT,EAAW,sCAAuC,MAAO,GAAI,KAAMK,GAAO,IAD9E,4C,sBAIA,SAAewwF,GAAtB,qC,8CAAO,WAAoCxwF,EAAOywF,GAA3C,SAAArwF,EAAA,+EACIT,EAAW,wCAAyC,MAA1C,2BAAqE8wF,GAAY,KAAMzwF,GAAO,IAD5G,4C,sBAIA,SAAestC,GAAtB,qC,8CAAO,WAAuBttC,EAAOD,GAA9B,SAAAK,EAAA,+EACIT,EAAW,gCAAiC,OAAQ,GAAII,EAAMC,GAAO,IADzE,4C,sBAIA,SAAei+E,GAAtB,qC,8CAAO,WAA0Bj+E,EAAOD,GAAjC,SAAAK,EAAA,+EACIT,EAAW,mCAAoC,OAAQ,GAAII,EAAMC,GAAO,IAD5E,4C,sBAIA,SAAe0wF,GAAtB,qC,8CAAO,WAA6B1wF,EAAO5E,GAApC,SAAAgF,EAAA,+EACIT,EAAW,oCAAqC,OAAtC,qBAA4DvE,GAAM,KAAM4E,GAAO,IAD7F,4C,sBCJP,ICHI4mB,GCeAA,GF4WW+pE,GAxXW,WAEtB,IA2EIpyD,EACAm5C,EA5EEn+E,EAAS2S,SAASC,eAAe,oBAEvC,EAAsB1I,qBAAW7G,GAA1BI,EAAP,oBACA,EAA8CH,IAAM6G,SAAS,KAA7D,mBAAOg1E,EAAP,KAAwBC,EAAxB,KACA,EAAwCj1E,mBAAS,MAAjD,mBAAOs0E,EAAP,KAAqBC,EAArB,KACA,EAAwCv0E,oBAAS,GAAjD,mBAAOktF,EAAP,KAAqBC,EAArB,KACA,EAAsCntF,mBAAS,IAA/C,mBAAO80E,EAAP,KAAoBC,EAApB,KAEA,EAAgJ6X,KAAxIrT,EAAR,EAAQA,iBAAkBD,EAA1B,EAA0BA,cAAeI,EAAzC,EAAyCA,UAAWC,EAApD,EAAoDA,aAAc+S,EAAlE,EAAkEA,UAAWD,EAA7E,EAA6EA,qBAAsBD,EAAnG,EAAmGA,kBAAmBpY,EAAtH,EAAsHA,SAAUC,EAAhI,EAAgIA,YAExH99D,EAAuBb,KAAvBa,mBAEAlW,EAAMC,cAAND,EAEF85B,EAAgB,SAACv+B,GACnB29E,GAAiB,GAEjBv4E,QAAQ1C,IAAI1C,GACR89E,EACA0T,EAAuBxxF,GAEvByxF,EAAoBzxF,IAKtByxF,EAAmB,uCAAG,WAAMzxF,GAAN,iBAAAc,EAAA,6DAClBvC,EADkB,2BAEjByB,GAFiB,IAGpBmR,OAAO,EACPi6E,YAAa1S,GAAgBA,EAAa92E,OAJtB,SAOFosC,GAAQtwC,EAAYjB,YAAaF,KAAKiJ,UAAUjH,IAAOwG,KAAvD,+BAAAjE,EAAA,MAA4D,WAAMyM,GAAN,SAAAzM,EAAA,0DAC1EyM,EAAI9L,GADsE,yCAEnE8L,EAAIvI,QAF+D,OAI1E2V,EAAmB,CACfxV,MAAOoI,EAAI9L,KAL2D,2CAA5D,uDAPE,OAOlB6iC,EAPkB,OAiBxBusD,GAAqB,SAAApZ,GAAK,6BAAQA,GAAR,CAAenzC,OAjBjB,2CAAH,sDAoBnBktD,EAAsB,uCAAG,WAAMxxF,GAAN,qBAAAc,EAAA,6DACrBvC,EADqB,2BAEpByB,GAFoB,IAGvBlE,GAAIgiF,EAAUhiF,GACdqV,OAAO,EACPi6E,YAAa1S,GAAgBA,EAAa92E,OALnB,SAQL+8E,GAAWjhF,EAAYjB,YAAaF,KAAKiJ,UAAUjH,IAAOwG,KAA1D,uCAA+D,WAAMwI,GAAN,SAAAzM,EAAA,0DAC7EyM,EAAI9L,GADyE,yCAEtE8L,EAAIvI,QAFkE,OAI7E2V,EAAmB,CACfxV,MAAOoI,EAAI9L,KAL8D,2CAA/D,uDARK,QAQrB6iC,EARqB,SAkBZA,EAAQxoC,KACb41F,EADiB,aACWd,GAC5BlyF,EAAQgzF,EAAsBpiE,WAAU,SAAAqiE,GAAW,OAAIA,EAAY71F,KAAMgiF,EAAUhiF,MAEzF41F,EAAsBhzF,GAAS4lC,EAE/BusD,EAAqBa,IAxBE,2CAAH,sDAmFtBnW,EAAgB,SAAC18E,GAEfogC,GADoB,CAAC,MAAO,MAAO,OAAQ,OAAQ,MAAO,MAAO,OACpCp7B,MAAK,SAAAuU,GAAI,OAAIA,IAAQvZ,EAAE+yF,SAASjuF,SAC7D9E,EAAE0mD,eAAe3vC,iBAAiB,gBAAiB,UAAYlY,EAAYjB,aACvEy8E,EAAY9+E,OAAS,GAAGyE,EAAE0mD,eAAe3vC,iBAAiB,cAAesjE,EAAY15D,KAAK,MAC9Fq6D,EAAS,aAAc,MAEvBA,EAAS,aAAc,aACnB56C,GACAA,EAAUhgB,aAoBhBq8B,EAAgB,CAClBC,QAAQ,GAAD,OAAKh6C,0BAAL,sEAAgGi3E,GAAsBsF,GAAaA,EAAUhiF,IACpJ4+E,UAAU,GAAD,OAAKn5E,0BAAL,gEAA0Fi3E,GAAsBsF,GAAaA,EAAUhiF,IAChJ6+E,UAAWvB,GAKf,EAAsE9vD,aAAQ,CAC1EgJ,KAAM,WACNunB,eAAgB,WAChBC,cAAe,CACX1oC,OAAQ0sE,GAAaA,EAAU1sE,OAC/B+6C,UAAW2xB,GAAaA,EAAU3xB,UAClC0lC,SAAU/T,GAAaA,EAAU+T,SACjCC,WAAY,IAEhB/3C,cAAUxiC,EACVnI,aAASmI,EACTyiC,aAAc,aACdC,kBAAkB,EAClBC,kBAAkB,IAbdzwB,EAAR,EAAQA,SAAUD,EAAlB,EAAkBA,aAAcixD,EAAhC,EAAgCA,SAAU71C,EAA1C,EAA0CA,OAAQi1C,EAAlD,EAAkDA,SAgB9Cv+D,IAhBJ,EAA4D/Q,MAgBzC,CACf,CACI5G,KAAM,SACN4X,YAAa,CACTC,WAAW,EACX3L,QAA0B,OAAjBzR,IAAKC,SAAmB,SAAW,OAC5C+H,SAAU,cAEd4Q,MAAO,WACHwS,EAAa+U,EAAb/U,OA2BN+wD,GAAW,SAACp1E,GACd,OAAQA,EAAMxB,MACV,IAAK,WACD,OACI,yBAAK3H,UAAU,SAASyI,EAAE,wBAGlC,IAAK,YACD,OACI,yBAAKzI,UAAU,SAASyI,EAAE,qCAoB1C,OAdAI,qBAAU,WACDi5E,EAEMA,GAAaA,EAAUsN,aAC9B3Q,EAAS,aAAc,iBAFvBhC,EAAY31E,OAIjB,CAACg7E,IAEJj5E,qBAAU,WACN4kB,EAAS,WAAY,CACjB1N,UAAU,MAEf,CAAC0N,IAGA,kBAAC,KAAD,CACI3tB,GAAG,kBACHJ,MAAM,QACNwe,SAAS,EACTmC,QAASf,GACT3D,QAAS+lE,EACTphE,eAAe,EACf7U,MAAO,kBAAMk2E,GAAiB,IAC9Br2E,OAAQlJ,IAAKC,UAEb,8BACI,yBAAKrC,UAAU,SACX,2BAAOugB,QAAQ,SAAS9X,EAAE,6BAA1B,MACA,yBAAKzI,UAAU,iBACX,kBAAC,KAAD,CACIF,GAAG,SACH8F,KAAK,SACL/F,IAAK4tB,EAAS,CACV1N,UAAU,IAEd6K,eAAgB,CAAEiD,UAAW,OAC7BlmB,KAAK,OACL0M,YAA8B,OAAjBjS,IAAKC,SAAmB,6BAA4B,0BACjER,MAAOigF,GAAaA,EAAU1sE,SAEjCwzB,GAAUA,EAAOxzB,QAAUmpE,GAAS31C,EAAOxzB,UAIpD,yBAAKpV,UAAU,SACX,2BAAOugB,QAAQ,eAAe9X,EAAE,oCAChC,yBAAKzI,UAAU,iBACX,kBAAC,KAAD,CACIF,GAAG,YACH8F,KAAK,YACL/F,IAAK4tB,EAAS,CACV1N,UAAU,IAEd6K,eAAgB,CAAEiD,UAAW,OAC7BlmB,KAAK,OACL0M,YAA8B,OAAjBjS,IAAKC,SAAmB,sCAAkC,8BACvEwlB,WAAW,EACXhmB,MAAOigF,GAAaA,EAAU3xB,WAAa2xB,EAAU3xB,YAGxDvnB,GAAUA,EAAOunB,WAAaouB,GAAS31C,EAAOunB,aAIvD,2BAAOtwD,IAAK4tB,EAAS,CACjB1N,UAAU,IACVpY,KAAK,OAAO7H,GAAG,aAAa8F,KAAK,aAAawM,MAAO,CAAEqF,QAAS,UAEpE,yBAAKzX,UAAU,SACX,2BAAOugB,QAAQ,QAAQ9X,EAAE,6BACzB,yBAAKzI,UAAU,iBACX,kBAAC,KAAD,CACIF,GAAG,WACH8F,KAAK,WACLkG,WAAYgpF,EACZltE,UAAU,KACVjgB,KAAK,OACLiE,OAAQ,CAAE3J,KAAuB,OAAjBG,IAAKC,SAAmB,SAAW,SAAUR,MAAO,MACpEwS,YAA8B,OAAjBjS,IAAKC,SAAmB,sBAAqB,cAC1DR,MAAOigF,GAAaA,EAAU+T,UAAY/T,EAAU+T,SAAS/1F,GAC7DmoB,OAAQ,SAAC9U,GAAD,OAAUsrE,EAAS,WAAYtrE,EAAKqV,aAE/CogB,GAAUA,EAAOitD,UAAYtX,GAAS31C,EAAOitD,YAGtD,yBAAK71F,UAAU,SACX,2BAAOugB,QAAQ,QAAQ9X,EAAE,kCAAzB,MACA,yBAAK5I,IAAK,SAAA6jC,GAAW,OAAkBA,GAAa1jC,UAAU,SAASF,GAAG,oBACtE,yBAAKE,UAAU,OACX,2BAAqB,OAAjBoC,IAAKC,SAAmB,sCAAqC,wBAAwB,0BAAM8H,QAAS,kBA5O5HyG,SAASiS,uBAAuB,sBAAsB,GAAGC,cAAc,UAAU9H,SAC1E,IA2OsG,IAAuD,OAAjB5Y,IAAKC,SAAmB,eAAiB,cAKnLy/E,GAAaA,EAAUsN,cAAgBkG,GACpC,yBAAKt1F,UAAU,6DACX,wBAAIA,UAAU,kBACV,wBAAIA,UAAU,qBAAqB+jB,mBAAiB,KAChD,0BAAM/jB,UAAU,gCAAgCmK,QAAS,kBAvIzD4S,EAuIkF+kE,EAAUsN,YAvIlF+F,EAuI+FrT,EAAUhiF,GAtI3IsJ,QAAQ1C,IAAIqW,EAAUo4E,QACtBD,GAAqBxzF,EAAYjB,YAAa00F,GACzCpsF,MAAK,SAACvD,GAAD,OAAcA,EAASkV,UAC5B3R,MAAK,SAAC2R,GACH,IAAM1Q,EAAMlH,OAAO6X,IAAIC,gBAAgB,IAAIC,KAAK,CAACH,KAC3CpF,EAAO1E,SAASnR,cAAc,KACpC6V,EAAKmB,KAAOzM,EACZsL,EAAKwF,aAAa,WAAYiC,GAC9BnM,SAASnM,KAAKsW,YAAYzF,GAC1BA,EAAK0F,QACL1F,EAAK2F,WAAWC,YAAY5F,MAXb,IAACyH,EAAUo4E,IAwIN,0BAAMn1F,UAAU,eAAe8hF,EAAUsN,cAE7C,0BAAMpvF,UAAU,4BAA4BT,MAAM,UAAU4K,QAAS,kBA3HxE,WACrBs0E,EAAS,aAAc,MACvB,IAAMsX,EAAY,eAAQjU,GAC1BiU,EAAa3G,YAAc,GAC3BrN,EAAagU,GAuHsFl2B,SAM3F,yBAAK//D,GAAG,kBAER,kBAAC,KAAD,CACIA,GAAG,cACH8F,KAAK,SACL+B,KAAK,OACL23C,cAAeA,EAEf58B,SAAUzkB,EACV2sB,eAAgB,CAAEgZ,SAAU,KAC5BvoB,YAAa,IACb/P,OAAQlJ,IAAKC,SACb2iB,SAzMK,SAAC7R,GACd,GAyMQ2sE,QAlNE,SAAC3sE,GAIXipE,EAHe,OAAfjpE,EAAKpP,QAAmB8c,UAAUk/D,QAkN1Br1B,UAAW60B,EACXS,eAAgBT,EAChBU,aAvPQ,SAAC9sE,GAErBA,EAAKkH,OAAS+hE,EAEd,IAAI8D,EAAoBC,aAAY,WAC5Bt/D,UAAUk/D,QAAU98C,GAAaA,EAAU9e,UAAU,IAA2C,IAArC8e,EAAU9e,UAAU,GAAGC,YAClF6e,EAAUm9C,OAAOn9C,EAAU9e,WAC3Bk8D,MAEKjE,GAAiBn5C,GAAaA,EAAU9e,UAAU,IAA2C,IAArC8e,EAAU9e,UAAU,GAAGC,YAChF6e,EAAUq9C,MAAMr9C,EAAU9e,aAGnC,KAEGk8D,EAAmB,WACrBE,cAAcL,KAwONM,kBA9PS,SAAC39E,GACtB,IAAI87E,EAAY97E,EAAEgiD,SAASjhC,KAAO,GAElCy5D,GAAmB,SAAAD,GAAe,OAAsBuB,MA4P5C8B,aA5QM,SAAC59E,GAEnBs6E,GAAe,SAAAD,GAAW,6BAAQA,GAAR,CAAqBr6E,EAAEkB,MAAMy5B,cAAch4B,eA2QzDmlD,QAzRM,SAACx3C,GAEnBsrE,EAAS,cAAc,GACvB9B,EAAgBxpE,EAAKiJ,KAAK0I,SAC1BywE,GAAgB,IAsRJ7U,SAzQG,SAACvtE,GAIZipE,EAHe,OAAfjpE,EAAKpP,QAAmB8c,UAAUk/D,QAyQ1B96D,UAAU,EACVplB,IAAK,SAAAgkC,GAAM,OAAIZ,EAAYY,KAG9B+E,GAAUA,EAAOktD,YAAcvX,GAAS31C,EAAOktD,YAEhD,iCG3WHE,GAAsB,SAACx2F,GAEhC,MAAsB+B,IAAM4G,WAAW7G,GAAhCI,EAAP,oBAEQ+G,EAAMC,cAAND,EAER,EAAgHusF,KAAxG1S,EAAR,EAAQA,SAAoCuS,GAA5C,EAAkB/S,UAAlB,EAA6BJ,cAA7B,EAA4CmT,sBAAsBD,EAAlE,EAAkEA,kBAAmBG,EAArF,EAAqFA,aAE7Ep2E,GAFR,EAAmG69D,SAEpE1+D,KAAvBa,oBAER,EAA8CvW,oBAAS,GAAvD,mBAAOixB,EAAP,KAAwBC,EAAxB,KACA,EAAgDlxB,oBAAS,GAAzD,mBAAO6zB,EAAP,KAAyB+F,EAAzB,KACA,EAAgD55B,oBAAU,GAA1D,mBAAO6tF,EAAP,KAAyBC,EAAzB,KAEArtF,qBAAU,WAAM,4CACZ,8BAAA/D,EAAA,sEACgCmwF,GAAiBvzF,EAAYjB,aAAasI,MAAK,SAAAwI,GACvE,GAAIA,EAAI9L,GACJ,OAAO8L,EAAIvI,OAEX2V,EAAmB,CACfxV,MAAOoI,EAAI7L,YAN3B,cACUywF,EADV,gBAW4BtpF,GAAanL,EAAYjB,aAAasI,MAAK,SAAAwI,GAC/D,GAAIA,EAAI9L,GACJ,OAAO8L,EAAIvI,OAEX2V,EAAmB,CACfxV,MAAOoI,EAAI7L,YAhB3B,OAWUovF,EAXV,OAqBIC,EAAaD,GACbD,EAAqBsB,GAtBzB,4CADY,uBAAC,WAAD,wBAyBZjmE,KAED,IAEH,IAWI3O,EAEJ1Y,qBAAU,WACF0Y,GACAA,EAAarN,YAClB,CAAC9R,IAAKC,WAET,IAAMggF,EAAe,SAAClvE,GAClB,OACI,yBAAKnT,UAAU,aACTyH,EAAe,GAAI,SAAU/F,IAC3B,0BAAMyI,QAAS,kBAtBNrK,EAsB4BqT,EAAKrT,GArBtDo2F,EAAoBp2F,QACpBw5B,GAAmB,GAFC,IAACx5B,GAsBsCE,UAAU,oBAE3DyH,EAAe,GAAI,OAAQ/F,IACzB,0BAAMyI,QAAS,kBAAMm4E,EAASnvE,IAAOnT,UAAU,uBAkBzD+gC,EAAa,uCAAG,WAAOjhC,GAAP,SAAAgF,EAAA,sEACZswF,GAAc1zF,EAAYjB,YAAaX,GAAIiJ,MAAK,SAAAwI,GAClD,GAAIA,EAAI9L,GAAI,CACRu8B,GAAoB,GACpB,IAAMhgC,EAAK,aAAO4yF,GACZlyF,EAAQV,EAAMsxB,WAAU,SAAA/wB,GAAI,OAAIA,EAAKzC,KAAMA,KAEjDkC,EAAMsnB,OAAO5mB,EAAO,GACpBmyF,EAAqB7yF,QAGrBs3B,GAAmB,GACnB3a,EAAmB,CACfxV,MAAOoI,EAAI7L,YAbL,2CAAH,sDAmBbse,EAAqB,SAAC,GAA4B,IAA1BjH,EAAyB,EAAzBA,SAAUo4E,EAAe,EAAfA,SACpCD,GAAqBxzF,EAAYjB,YAAa00F,GACzCpsF,MAAK,SAACvD,GAAD,OAAcA,EAASkV,UAC5B3R,MAAK,SAAC2R,GACH,IAAM1Q,EAAMlH,OAAO6X,IAAIC,gBAAgB,IAAIC,KAAK,CAACH,KAC3CpF,EAAO1E,SAASnR,cAAc,KACpC6V,EAAKmB,KAAOzM,EACZsL,EAAKwF,aAAa,WAAYiC,GAC9BnM,SAASnM,KAAKsW,YAAYzF,GAC1BA,EAAK0F,QACL1F,EAAK2F,WAAWC,YAAY5F,OAUxC,OACI,yBAAKxV,GAAG,uBACJ,kBAAC,KAAD,CACIA,GAAG,sBACHE,UAAU,oBACV8L,WAAY8oF,EACZp+D,aAAa,EACbC,cAAc,EACd5N,gBAAgB,EAChB0N,eAAgB,CAAE5uB,KAAM,YACxB2D,OAAQlJ,IAAKC,SACbxC,IAAK,SAAA05B,GAAI,OAAIhY,EAAegY,IAE5B,kBAAC,KAAD,KACI,kBAAC,KAAD,CAAiB7nB,WAAYjJ,EAAE,6BAA8BqT,MAAM,SAASpc,MAAM,QAClF,kBAAC,KAAD,CAAiBgS,WAAYjJ,EAAE,mCAAoCqT,MAAM,YAAYpc,MAAM,QAC3F,kBAAC,KAAD,CAAiBgS,WAAYjJ,EAAE,4BAA6BqL,SAtBvD,SAAAX,GAAI,OACrB,oCACMA,EAAK0iF,UAAY,8BAAwB,OAAjBzzF,IAAKC,SAAmB8Q,EAAK0iF,SAAS5jF,OAASkB,EAAK0iF,SAAS3jF,UAoBK4J,MAAM,kBAAkBpc,MAAM,QAClH,kBAAC,KAAD,CAAiBgS,WAAYjJ,EAAE,4BAA6BqL,SApEvD,SAACX,GAClB,OACI,uBAAGsD,KAAK,GAAGtM,QAAS,SAACtH,GACjBA,EAAEm3B,iBACFhW,EAAmB,CACfjH,SAAU5J,GAAQA,EAAKi8E,YACvB+F,SAAUhiF,EAAKrT,OAJvB,qBAkE4Fgc,MAAM,OAAOpc,MAAM,QACvG,kBAAC,KAAD,CAAiBoU,SAAU,SAACX,GAAD,OAAUkvE,EAAalvE,IAAOzT,MAAM,QAEnE,kBAAC,KAAD,CAAQ0d,SAAU,CAACwZ,KAAQC,KAAMC,KAAaC,KAAQC,SAG1D,kBAAC,GAAD,MAEA,kBAAC,KAAD,CACIl3B,GAAG,cACHoe,SAAS,EACTvC,QAAS0d,EACT/tB,OAAQlJ,IAAKC,UAEb,8BACM45B,GACE,yBAAKj8B,UAAU,YACX,2BAAOA,UAAU,oBACjB,yBAAKA,UAAU,gBACX,2BAAOA,UAAU,qBAAqByI,EAAE,mBACxC,2BAAO3I,GAAG,eAAe2I,EAAE,8BAE/B,8BAINwzB,EAME,yBAAKj8B,UAAU,kBACX,yBAAKA,UAAU,gBACX,0BAAMA,UAAU,6BAEpB,+BAAQyI,EAAE,6BACV,4BAAQ0B,QAAS,kBAlIrCmvB,GAAmB,GACnB0I,GAAoB,QACpBk0D,GAAqB,KAgIqCztF,EAAE,kBAV5C,yBAAKzI,UAAU,iBACX,4BAAQmK,QAAS,kBAAMmvB,GAAmB,KAAS7wB,EAAE,mBACrD,4BAAQ0B,QAAS,kBAAM42B,EAAck1D,KAAoBxtF,EAAE,yBFlL1E2tF,GAAmB,WAE5B,MAAsBjuF,qBAAW7G,GAA1BI,EAAP,oBAEQ+G,EAAMC,cAAND,EAEA65E,EAAa0S,KAAb1S,SAERz5E,qBAAU,WACN,IAAI6iB,EAAoBhqB,EAAYR,YACpCoqB,GAAiBI,EAAkBppB,QAAO,SAACpE,GAAD,OAA0B,KAAnBA,EAAEmD,gBAAqBoB,KAAI,SAACvE,GAAD,OAAQA,EAAEkD,cACtFgI,QAAQ1C,IAAI4kB,MACb,CAAC5pB,IAEJ,IAAMquB,EAAY,CACd0H,OAAQnM,IAAkC,KAC1C+L,OAAQ,GACRE,OAAQ,GACRC,IAAK,kBAAM8qD,KACX5qD,KAAM,IAKV,OAFAtuB,QAAQ1C,IAAIqpB,GAGR,yBAAKjwB,GAAG,gBACyB,OAA5B4B,EAAYjB,YAAuB,kBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WACzD,oCACI,yBAAK7J,UAAU,eACf,kBAACwM,EAAA,EAAD,CAAWxM,UAAU,gBACjB,yBAAKA,UAAU,mBACX,kBAACmhB,GAAA,EAAD,KACI,yBAAKnhB,UAAU,mBACX,yBAAKA,UAAU,SACX,4BAAKyI,EAAE,yBAGf,yBAAKzI,UAAU,mBACX,yBAAKA,UAAU,WACX,kBAAC,GAAD,CAASwrB,SAAUuE,QAKnC,kBAAC5O,GAAA,EAAD,KACI,yBAAKnhB,UAAU,UACX,kBAAC,GAAD,Y,wFGzDnBq2F,GAAb,yKACI,WACI,IAAMC,EAAW,+DAAsB53F,MAAMC,KAAMR,WACnD,OAAIm4F,EAASrtF,QAAUqtF,EAASC,MACrB,CAAEttF,OAAQqtF,EAASrtF,OAAQstF,MAAOD,EAASC,OAE3CD,MANnB,GAAqC/6B,MCYxBi7B,GAAY,WAErB,IAGIC,EACAC,EACAn1E,EACAo1E,EANJ,EAAsBp1F,aAAiBD,GAAhCI,EAAP,oBACQ+G,EAAMC,cAAND,EAUFmuF,EAAUrxF,2BACVmmE,EAAc,IAAIrQ,KAAY,CAChCC,QAAS,IAAI+6B,GACbQ,SAAUD,EAAU,sCACpB5sF,IAAK4sF,EAAU,iBACfzxF,QAAS,CAAC,CAAE,cAAiB,UAAYzD,EAAYjB,gBAkBrD80D,EAAa,SAACpiD,GACd,OAAO,4BAAO,IAAI7L,KAAK6L,EAAK2jF,cAAcvvF,mBAAmBnF,IAAKC,YAehE00F,EAAY,CACdC,OAAQ,WAEJ,OADAP,EAAU7lF,SAASnR,cAAc,UAGrCw3F,QAAS,WACLP,EAAOO,WAEXC,KAAM,WACF,OAAOR,EAAOz0F,MAElBk1F,MAAO,SAAChkF,IACJujF,EAAS,IAAIU,KAAa,CACtBtrF,WAAY,CAAC,CAAE7J,KAAM,MAAOJ,MAAO,GAAK,CAAEI,KAAM,SAAOJ,MAAO,IAC9DI,KAAMkR,EAAKkkF,QAAQlkF,EAAKq+B,OAAO11B,OAC/BlQ,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,SAC/By1F,eAAgB,WAEbC,SAASd,KAoClBe,EAAkB,SAACtG,GACrB,IAAIuG,EAAW7mF,SAASC,eAAeqgF,GACnCwG,EAAW9mF,SAASnR,cAAc,YACtCi4F,EAAS71F,MAAQ41F,EAASE,YAC1B/mF,SAASnM,KAAKsW,YAAY28E,GAC1BA,EAAS90F,SACT80F,EAASE,kBAAkB,EAAG,OAE9BhnF,SAAS+4C,YAAY,QAEjB8tC,EAASryC,aAAa,mBACtBuxC,EAAgBlrF,SAGhBkrF,EAAgB9vE,KAAK4wE,GACrBjkF,YAAW,WACPmjF,EAAgBlrF,UACjB,MAEPisF,EAASx0E,UAQb,OALA3hB,aAAgB,WACRggB,GACAA,EAAarN,YAClB,CAAC9R,IAAKC,WAGL,gCACiC,OAA5BX,EAAYjB,YAAuB,gBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WACzD,gCACI,uBAAK7J,UAAU,eACf,gBAACwM,EAAA,EAAD,CAAWxM,UAAU,gBACjB,uBAAKA,UAAU,mBACX,gBAACmhB,GAAA,EAAD,KACI,uBAAKnhB,UAAU,UACX,uBAAKA,UAAU,SACX,0BAAKyI,EAAE,wBAKvB,gBAAC0Y,GAAA,EAAD,KACI,uBAAKnhB,UAAU,UACX,gBAAC,KAAD,CACIF,GAAG,YACHD,IAAK,SAAA05B,GAAI,OAAIhY,EAAegY,GAC5BztB,WAAY4/D,EACZ8b,aA/IZ,CAAER,cAAc,GAgJJ5rD,iBAjJP,CAAC,gBAAiB,iBAAkB,YAAa,WAAY,WAAY,YAkJlEqsD,QAhJT,CAAC,iBAiJQlxD,eAAgB,CAAE5uB,KAAM,YACxB42B,aAAc,CAAEC,SAAU,GAC1BhI,aAAa,EACbC,cAAc,EACd5N,gBAAgB,EAChBvd,OAAQlJ,IAAKC,SACbw1F,eAAe,EACf1lD,eAAe,EACf2lD,mBAAmB,EACnBC,gBA5FN,SAACl1F,GACvBA,EAAEm1F,aAAaC,eAAiBp1F,EAAEm1F,aAAaC,eAAex1F,KAAI,SAAAZ,GAG9D,OAFAA,EAAMq2F,UAAgC,QAApBr2F,EAAMq2F,UACxBr2F,EAAMs2F,gBAA4C,QAA1Bt2F,EAAMs2F,gBACvBt2F,MAyFiBu2F,gBArFR,SAACjlF,GACjBA,EAAKlK,QACLkK,EAAKlK,OAAOxG,KAAI,SAACZ,GACbA,EAAMq2F,UAAYr2F,EAAMq2F,UAAY,MAAQ,SAC5Cr2F,EAAMs2F,gBAAkBt2F,EAAMs2F,gBAAkB,MAAQ,SACxDt2F,EAAMi1F,aAAej1F,EAAMi1F,aAAaxtF,kBAiFpBgoF,aApJX,CACjBz1E,QAAS,CAAC,CAAEC,MAAO,YAAay1E,UAAW,gBAqJf,gBAAC,KAAD,KACI,gBAAC,KAAD,CAAiB7/E,WAAYjJ,EAAE,uBAAwBqT,MAAM,KAAKkrE,cAAc,EAAOkJ,cAAc,EAAMxwF,MAAM,OACjH,gBAAC,KAAD,CAAiBgS,WAAYjJ,EAAE,yBAA0BqT,MAAM,OAAOkrE,cAAc,EAAOtnF,MAAM,QACjG,gBAAC,KAAD,CAAiBgS,WAAYjJ,EAAE,yBAA0BqT,MAAM,SAASkrE,cAAc,EAAOtnF,MAAM,QACnG,gBAAC,KAAD,CAAiBgS,WAAYjJ,EAAE,4BAA6BqT,MAAM,WAAWkrE,cAAc,EAAOtnF,MAAM,QACxG,gBAAC,KAAD,CAAiBgS,WAAYjJ,EAAE,gCAAiCqT,MAAM,aAAahI,SAAU,SAACX,GAAD,OAnFlGrT,EAmFkIqT,EAAKrT,GAnFnIu4F,EAmFuIllF,EAAKklF,WAlFpK,2BACH,wBAAMv4F,GAAE,sBAAiBA,IAAOu4F,GAChC,gBAAC,KAAD,CAAkBr4F,UAAU,OACxBH,IAAK,SAAA4I,GAAC,OAAIkuF,EAAkBluF,GAC5BoL,QAA0B,OAAjBzR,IAAKC,SAAmB,UAAY,SAC7Ci2F,QAAQ,SACRr6F,OAAM,0BAAqB6B,GAC3By4F,UAAU,GACV,qBAAGz4F,GAAE,0BAAqBA,GAAM2W,KAAI,cAAiBtM,QAAS,kBAAMqtF,EAAgB,eAAD,OAAgB13F,MAAyB,OAAjBsC,IAAKC,SAAmB,SAAW,UAT5H,IAACvC,EAAIu4F,GAmFyJrR,cAAc,EAAOtnF,MAAM,QACnL,gBAAC,KAAD,CAAiBgS,WAAYjJ,EAAE,yBAA0BqT,MAAM,eAAekrE,cAAc,EAAOtnF,MAAM,QACzG,gBAAC,KAAD,CAAiBgS,WAAYjJ,EAAE,6BAA8BqL,SAAU,SAACX,GAAD,OAzJrF6pD,EAyJ4G7pD,EAAK+kF,UAvJ/H,gCACmB,QAAdl7B,EACG,wBAAMh9D,UAAU,cAA+B,OAAjBoC,IAAKC,SAAmB,MAAQ,OAE9D,wBAAMrC,UAAU,aAA8B,OAAjBoC,IAAKC,SAAmB,SAAQ,OANxD,IAAC26D,GAyJ6HlhD,MAAM,YAAY0nE,SAAS,eAAe7sD,KAAMogE,EAAW/P,cAAc,EAAM1D,mBAAoB,SAACnwE,GAAD,OAzI5N6pD,EAyIyP7pD,EAAK+kF,UAvIhR,gCACKl7B,EACG,wBAAMh9D,UAAU,cAA+B,OAAjBoC,IAAKC,SAAmB,MAAQ,OAE9D,wBAAMrC,UAAU,aAA8B,OAAjBoC,IAAKC,SAAmB,SAAQ,OANpD,IAAC26D,GAyI0Qt9D,MAAM,QACtQ,gBAAC,KAAD,CAAiBgS,WAAYjJ,EAAE,yBAA0BqT,MAAM,eAAehI,SAAUyhD,EAAY+tB,mBAAoB/tB,EAAYyxB,cAAc,EAAOtnF,MAAM,QAGnK,gBAAC,KAAD,CAAQ0d,SAAU,CAACwZ,KAAQC,KAAMC,KAAaC,KAAQC,KAAMC,KAAM1Z,KAASi7E,eHvKlGC,I,OAAY,WAEvB,MAAsBl3F,aAAiBD,GAAhCI,EAAP,oBACA,EAAkCH,YAAe,GAAjD,mBAAOyxB,EAAP,KAAkBC,EAAlB,KACA,EAAwD1xB,WAAe,CACrE8oC,SAAU,GACVmC,WAAY,GACZE,QAAS,GACTqP,YAAa,GACbh7C,SAAU,GACV8rC,MAAO,GACPh7B,KAAM,GACN2W,SAAU,CACRkwE,MAAO,GACP/J,KAAM,MAVV,mBAAOgK,EAAP,KAA6BC,EAA7B,KAaA,EAAwCr3F,WAAe,IAAvD,mBAAOs3F,EAAP,KAAqBC,EAArB,KACA,EAAoCv3F,WAAe,MAAnD,mBAAOw3F,EAAP,KAAmBC,EAAnB,KACA,EAAkCz3F,WAAe,MAAjD,mBAAO03F,EAAP,KAAkBC,EAAlB,KACA,EAAoC33F,WAAe,MAAnD,mBAAO43F,EAAP,KAAmBC,EAAnB,KACA,EAAkD73F,WAAe,MAAjE,mBAAO83F,EAAP,KAA0BC,EAA1B,KACA,EAAwC/3F,WAAe,MAAvD,mBAAOg4F,EAAP,KAAqBC,EAArB,KACA,EAA0Cj4F,WAAe,MAAzD,mBAAOk4F,EAAP,KAAsBC,EAAtB,KACA,EAAoCn4F,WAAe,MAAnD,mBACA,GADA,UAC0DA,WAAe,KAAzE,mBAAOo4F,EAAP,KAA8BC,GAA9B,KACA,GAAgDr4F,WAAe,IAA/D,qBAAOs4F,GAAP,MAAyBC,GAAzB,MACA,GAAkDv4F,WAAe,IAAjE,qBAAOw4F,GAAP,MAA0BC,GAA1B,MACA,GAA4Cz4F,WAAe,IAA3D,qBAAuB04F,IAAvB,aACA,GAAwC14F,WAAe,MAAvD,qBAAOggB,GAAP,MAAqB6rB,GAArB,MAIQ3kC,IAFM6iF,cAEA5iF,cAAND,GAERlH,aAAgB,WACd,IAAImqB,EAAoBhqB,EAAYR,YACpCoqB,GAAiBI,EAAkBppB,QAAO,SAACpE,GAAD,MAAwB,aAAjBA,EAAEiD,cAA2BsB,KAAI,SAACvE,GAAD,OAAQA,EAAEkD,gBAC3F,CAACM,IAEJ,IAAMquB,GAAY,CAChB0H,OAAQnM,IAAkC,KAC1C+L,OAAQ,kBAAMW,MACdT,OAAQ,GACRC,IAAK,GACLE,KAAM,IAGFM,GAAgB,WACpB,GAAIzW,GAAc,CAChB,IAAIrU,EAAO9K,IAAKC,SACZgrC,EAAqB9rB,GACzB8rB,EAAmBvhC,WAAWrJ,KAAI,SAAA0wB,GAEhC,OADAA,EAAEnvB,KAAO,IAAIsD,KAAK6rB,EAAEnvB,MAAMuD,mBAAmB2F,GACtCimB,KAETka,EAAmBlY,gBASjBmW,GAAiB,SAAC9W,EAAK+W,EAAM1hC,GAEjC,OADA2qB,EAAIlL,OAAOzf,EAAI,EAAG2qB,EAAIlL,OAAOiiB,EAAM,GAAG,IAC/B/W,GAGL+gC,GAAa,SAACpiD,GAChB,OAAO,4BAAO,IAAI7L,KAAK6L,EAAKnP,MAAMuD,mBAAmBnF,IAAKC,YAStD63F,GAAc,SAACp6F,GACnBsR,aAAYR,SAASC,eAAT,mBAAoC/Q,EAApC,QAGRq6F,GAAc,SAACr6F,EAAIs6F,IAVL,SAACt6F,GACnBgR,aAAc,CAAE7S,OAAQ2S,SAASC,eAAT,mBAAoC/Q,EAApC,QACxBiR,aAAYH,SAASC,eAAT,mBAAoC/Q,EAApC,OACZkR,aAAW,CAAErJ,KAAM,cAQnB0yF,CAAYv6F,GACZuE,EAAW,0CACP,MADM,kBAEKvE,GACX,KACA4B,EAAYjB,aAAasI,KAJ7B,uCAIkC,WAAOwI,GAAP,mBAAAzM,EAAA,sEACXyM,EAAImJ,OADO,OACxBA,EADwB,OAExBknD,EAAU,IAAI/mD,KAAK,CAACH,GAAO,CAAE/S,KAAM,oBACnC2yF,EAAUx3F,OAAO6X,IAAIC,gBAAgBgnD,GAE9BhxD,SAASnR,cAAc,KAC/BgX,KAAO6jF,EACZx3F,OAAO+jB,KAAKyzE,EAAS,UAErBJ,GAAYp6F,GATkB,2CAJlC,wDAiBIy6F,GAAa,SAACpnF,GAClB,IAAIlR,EAAO,GACX,OAAQkR,EAAKw7E,MAAQx7E,EAAK63B,QACxB,KAAK,EACH/oC,EAAOwG,GAAE,qBACT,MACF,KAAK,EACHxG,EAAOwG,GAAE,mBACT,MACF,KAAK,EACHxG,EAAOwG,GAAE,4BACT,MACF,KAAK,EACHxG,EAAOwG,GAAE,gBACT,MACF,KAAK,EACHxG,EAAOwG,GAAE,0BACT,MACF,KAAK,EACHxG,EAAOwG,GAAE,yBAGb,OACE,0CACMxG,KA0RVV,aAAgB,WAAM,4CACpB,4DAAAuD,EAAA,sEAOYgK,QAAQylB,IAAI,CACpBlwB,EACE,uCACA,MACA,GACA,KACA3C,EAAYjB,aAEd+M,GAAoB9L,EAAYjB,aAC/BsI,MAAK,SAAAvD,GACJ,GAAIA,EAASC,GACX,OAAOD,EAASwD,UAGpB+D,GAAarL,EAAYjB,aACxBsI,MAAK,SAAAvD,GACJ,GAAIA,EAASC,GACX,OAAOD,EAASwD,UAGpBqE,GAAY3L,EAAYjB,aACvBsI,MAAK,SAAAvD,GACJ,GAAIA,EAASC,GACX,OAAOD,EAASwD,UAGpB2F,GAAMjN,EAAYjB,aACjBsI,MAAK,SAAAvD,GACJ,GAAIA,EAASC,GACX,OAAOD,EAASwD,YApCxB,0CAEIwxF,EAFJ,KAGIhvD,EAHJ,KAIIxX,EAJJ,KAKI7M,EALJ,KAMI0M,EANJ,eAgDY/kB,QAAQylB,IAAI,CACpB+U,GAAc5nC,EAAYjB,YAAa,EAAG,IAC1C6oC,GAAc5nC,EAAYjB,YAAa,EAAG,IAC1C6oC,GAAc5nC,EAAYjB,YAAa,EAAG,IAC1C6oC,GAAc5nC,EAAYjB,YAAa,EAAG,IAC1C6oC,GAAc5nC,EAAYjB,YAAa,EAAG,IAC1C6oC,GAAc5nC,EAAYjB,YAAa,EAAG,MAtD9C,2CA0CIg6F,EA1CJ,KA2CIC,EA3CJ,KA4CIC,EA5CJ,KA6CIC,EA7CJ,KA8CIC,EA9CJ,KA+CIC,EA/CJ,iCA0DaN,EAAcxxF,OA1D3B,mEA2DayxF,EAAgBzxF,OA3D7B,mEA4Da0xF,EAAmB1xF,OA5DhC,oEA6Da2xF,EAAsB3xF,OA7DnC,wEA8Da4xF,EAAW5xF,OA9DxB,wEA+Da6xF,EAAsB7xF,OA/DnC,wEAgEa8xF,EAAyB9xF,OAhEtC,6CAyDM+xF,EAzDN,+DAmEkBt4F,KAAI,SAAAvE,GAClB,GAAIA,EAAE2tC,QAGJ,OAFA3tC,EAAC,MAAYA,EAAC,eACPA,EAAC,QACDA,KAIX68F,EAAgBt4F,KAAI,SAAAvE,GAClB,OAAQA,EAAE6C,UACR,IAAK,KACH,OAAO7C,EAAE6C,SAAW,oBACtB,IAAK,KACH,OAAO7C,EAAE6C,SAAW,eACtB,IAAK,KACH,OAAO7C,EAAE6C,SAAW,cACtB,IAAK,KACH,OAAO7C,EAAE6C,SAAW,UACtB,QACE,WAIaizB,EACnBoY,EAAed,GAAetX,EAAY,EAAG,GAE7C4lE,GAAyBpuD,GACzBsuD,GAAoB1tD,GACpB4tD,GAAqB7yE,GACrB8yE,GAAkBpmE,GAClBilE,EAAgBiC,GAChB/B,EAAc+B,GAlGhB,6CADoB,uBAAC,WAAD,wBAqGpB1pF,KACC,IAEH9P,aAAgB,WACVggB,IACFA,GAAarN,YACd,CAAC9R,IAAKC,WAET,IAAM24F,GAAY,CAChB,CAAEtC,MAAyB,OAAlBt2F,IAAKC,SAAoB,UAAY,WAAYssF,KAAM,GAChE,CAAE+J,MAAyB,OAAlBt2F,IAAKC,SAAoB,QAAU,aAAcssF,KAAM,GAChE,CAAE+J,MAAyB,OAAlBt2F,IAAKC,SAAoB,iBAAmB,iBAAkBssF,KAAM,GAC7E,CAAE+J,OAAOt2F,IAAKC,SAAoB,SAAmBssF,KAAM,GAC3D,CAAE+J,MAAyB,OAAlBt2F,IAAKC,SAAoB,mBAAqB,kBAAmBssF,KAAM,GAChF,CAAE+J,MAAyB,OAAlBt2F,IAAKC,SAAoB,kBAAoB,qBAAsBssF,KAAM,IAGpF,OACE,gCAC+B,OAA5BjtF,EAAYjB,YAAuB,gBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WAC3D,gCACE,uBAAK7J,UAAU,eACf,gBAACwM,EAAA,EAAD,CAAWxM,UAAU,gBACnB,uBAAKA,UAAU,mBACb,gBAACmhB,GAAA,EAAD,KACE,uBAAKnhB,UAAU,mBACb,uBAAKA,UAAU,SACb,0BAAKyI,GAAE,sBAGX,uBAAKzI,UAAU,mBACX,uBAAKA,UAAU,WACX,gBAAC,GAAD,CAASwrB,SAAUuE,SAK/B,gBAAC5O,GAAA,EAAD,KACE,uBAAKnhB,UAAU,UACb,uBAAKA,UAAS,gBAAWgzB,EAAY,SAAW,KAC9C,uBAAKhzB,UAAU,yBACb,uBAAKA,UAAU,eACb,wBAAMA,UAAU,qBAChB,yBAAIyI,GAAE,0BAER,uBAAKzI,UAAU,eACb,uBAAKA,UAAU,mBACb,gBAAC,KAAD,CACEA,UAAU,UACVqU,YAAa5L,GAAE,gCACf6C,OAAQlJ,IAAKC,SACbR,MAAO82F,GAAwBA,EAAqBtuD,SAAWsuD,EAAqBtuD,SAAW,GAC/FviB,KAAM,SAACjlB,GAAD,OAAO+1F,GACX,SAAAD,GAAoB,kCACfA,GADe,IAElBtuD,SAAUxnC,EAAEhB,gBAMtB,uBAAK7B,UAAU,mBACb,uBAAKA,UAAU,aACb,gBAAC,KAAD,CACEA,UAAU,mBACVoK,SAAS,mBACTD,QAAS,kBAAM8oB,GAAcD,KAC7B,wBAAMhzB,UAAU,qBACfyI,GAAE,sBAGP,uBAAKzI,UAAU,aACb,gBAAC,KAAD,CAAiBoK,SAAS,mBACxBD,QAxRA,WAAO,IAAD,EAC5B,IACsB,OAApBwuF,QAAoB,IAApBA,OAAA,EAAAA,EAAsBtuD,YAAtB,OACGsuD,QADH,IACGA,GADH,UACGA,EAAsBnwE,gBADzB,aACG,EAAgCmmE,QADnC,OAEGgK,QAFH,IAEGA,OAFH,EAEGA,EAAsBnsD,cAFzB,OAGGmsD,QAHH,IAGGA,OAHH,EAGGA,EAAsBjsD,WAHzB,OAIGisD,QAJH,IAIGA,OAJH,EAIGA,EAAsB58C,eAJzB,OAKG48C,QALH,IAKGA,OALH,EAKGA,EAAsB9mF,QALzB,OAMG8mF,QANH,IAMGA,OANH,EAMGA,EAAsB53F,YANzB,OAOG43F,QAPH,IAOGA,OAPH,EAOGA,EAAsB9rD,OACzB,CACA,IAAIouD,EAAmBpC,EAQvBoC,EA7B4B,SAACA,GAC/B,GAAItC,EAAqBjsD,QAAS,CAChC,IAAIA,EAAU,IAAIplC,KAAJ,OAASqxF,QAAT,IAASA,OAAT,EAASA,EAAsBjsD,QAAQl9B,QACrD,OAAOyrF,EAAiB34F,QAAO,SAAA6wB,GAC7B,OAAOuZ,EAAQkqB,WAAa,IAAItvD,KAAK6rB,EAAEnvB,MAAM4yD,aAGjD,OAAOqkC,EAsBcC,CADnBD,EAtC+B,SAACA,GAClC,GAAItC,EAAqBnsD,WAAY,CACnC,IAAIA,EAAa,IAAIllC,KAAJ,OAASqxF,QAAT,IAASA,OAAT,EAASA,EAAsBnsD,WAAWh9B,QAC3D,OAAOyrF,EAAiB34F,QAAO,SAAA6wB,GAC7B,OAAOqZ,EAAWoqB,WAAa,IAAItvD,KAAK6rB,EAAEnvB,MAAM4yD,aAGpD,OAAOqkC,EA+BcE,CADnBF,EApD0B,SAACA,GAC7B,cAAItC,QAAJ,IAAIA,OAAJ,EAAIA,EAAsB9rD,OACjBouD,EAAiB34F,QAAO,SAAAC,GAC7B,OAAQ,OAAJA,QAAI,IAAJA,OAAA,EAAAA,EAAMsqC,QAAyB,MAAZ,OAAJtqC,QAAI,IAAJA,OAAA,EAAAA,EAAMsqC,QACf,OAAJtqC,QAAI,IAAJA,OAAA,EAAAA,EAAMsqC,UAAN,OAAgB8rD,QAAhB,IAAgBA,OAAhB,EAAgBA,EAAsB9rD,OACjCtqC,OADT,EAIOA,KAIN04F,EAwCcG,CADnBH,EAlE6B,SAACA,GAChC,cAAItC,QAAJ,IAAIA,OAAJ,EAAIA,EAAsB53F,UACjBk6F,EAAiB34F,QAAO,SAAAC,GAC7B,OAAQ,OAAJA,QAAI,IAAJA,OAAA,EAAAA,EAAMxB,WAA+B,MAAf,OAAJwB,QAAI,IAAJA,OAAA,EAAAA,EAAMxB,WAClB,OAAJwB,QAAI,IAAJA,OAAA,EAAAA,EAAMxB,aAAN,OAAmB43F,QAAnB,IAAmBA,OAAnB,EAAmBA,EAAsB53F,UACpCwB,OADT,EAIOA,KAIN04F,EAsDcI,CADnBJ,EAhF4B,SAACA,GAC/B,cAAItC,QAAJ,IAAIA,OAAJ,EAAIA,EAAsB9mF,MACjBopF,EAAiB34F,QAAO,SAAAC,GAC7B,cAAIA,QAAJ,IAAIA,OAAJ,EAAIA,EAAMsP,OACA,OAAJtP,QAAI,IAAJA,OAAA,EAAAA,EAAMsP,SAAN,OAAe8mF,QAAf,IAAeA,OAAf,EAAeA,EAAsB9mF,MAChCtP,OADT,EAIOA,KAIN04F,EAoEcK,CADnBL,EA9FiC,SAACA,GACpC,cAAItC,QAAJ,IAAIA,OAAJ,EAAIA,EAAsB58C,aACjBk/C,EAAiB34F,QAAO,SAAAC,GAC7B,cAAIA,QAAJ,IAAIA,OAAJ,EAAIA,EAAMw5C,cACA,OAAJx5C,QAAI,IAAJA,OAAA,EAAAA,EAAMw5C,gBAAN,OAAsB48C,QAAtB,IAAsBA,OAAtB,EAAsBA,EAAsB58C,aACvCx5C,OADT,EAIOA,KAIN04F,EAkFcM,CADnBN,EA5G0B,SAACA,GAAsB,IAAD,EAClD,iBAAItC,EAAqBnwE,gBAAzB,aAAI,EAA+BmmE,MAC1BsM,EAAiB34F,QAAO,SAAAC,GAC7B,OAAQ,OAAJA,QAAI,IAAJA,OAAA,EAAAA,EAAMosF,QAAN,OAAcpsF,QAAd,IAAcA,OAAd,EAAcA,EAAMyoC,SACd,OAAJzoC,QAAI,IAAJA,OAAA,EAAAA,EAAMosF,SAAN,OAAegK,QAAf,IAAeA,GAAf,UAAeA,EAAsBnwE,gBAArC,aAAe,EAAgCmmE,QAAY,OAAJpsF,QAAI,IAAJA,OAAA,EAAAA,EAAMyoC,WAAN,OAAiB2tD,QAAjB,IAAiBA,GAAjB,UAAiBA,EAAsBnwE,gBAAvC,aAAiB,EAAgCmmE,MACnGpsF,OADT,EAIOA,EALwB,IAAD,OAS7B04F,EAgGcO,CADnBP,EA1H0B,SAACA,GAC7B,OAAItC,EAAqBtuD,SAChB4wD,EAAiB34F,QAAO,SAAAC,GAC7B,cAAIA,QAAJ,IAAIA,OAAJ,EAAIA,EAAM6S,SACR,OAAI7S,QAAJ,IAAIA,GAAJ,UAAIA,EAAM6S,cAAV,aAAI,EAAc3F,cAAciuB,SAA5B,OAAqCi7D,QAArC,IAAqCA,GAArC,UAAqCA,EAAsBtuD,gBAA3D,aAAqC,EAAgC56B,gBAChElN,OADT,EAIOA,EALU,IAAD,OASf04F,EA8GcQ,CAAsBR,UAQzCjC,EAAciC,GACdhoE,GAAa,QAEb+lE,EAAcH,GACd5lE,GAAa,KAkQQxqB,GAAE,uBAKVuqB,GACC,uBAAKhzB,UAAU,8BACb,gBAAC,KAAD,CACEF,GAAG,OACHsK,SAAS,WACTiK,YAAa5L,GAAE,iBACf6C,OAAQlJ,IAAKC,SACbymB,iBAAe,EACfjnB,MAAOo3F,GAAwB,GAC/BhxE,OAAQ,SAACkjC,GAAD,OA5QL,SAACA,GACxB+tC,EAAa/tC,EAAGtpD,OAEhB,IAAI80D,EAAQxL,EAAG1e,UAAH,UAAkB0e,EAAG1e,UAAUnjC,cAAckX,MAAM,KAAK,GAAxD,aAAwE,KAChFq2C,EAAQ1L,EAAGxe,QAAH,UAAgBwe,EAAGxe,QAAQrjC,cAAckX,MAAM,KAAK,GAApD,aAAoE,KAEhFo4E,GACE,SAAAD,GAAoB,kCACfA,GADe,IAElBnsD,WAAYmqB,EACZjqB,QAASmqB,OAkQuB6kC,CAAiBvwC,MAEnC,gBAAC,KAAD,CACE/gD,SAAS,WACTiK,YAAa5L,GAAE,+BACfqD,WAAYkvF,GACZlyE,iBAAe,EACfD,gBAAgB,EAChBjd,OAAQ,CAAE/J,MAAO,SACjByJ,OAAQlJ,IAAKC,SACbR,MAAOs3F,GAA0B,GACjClxE,OAxQI,SAACkjC,GACzB,IAAQ3iC,EAAoB2iC,EAApB3iC,SAAU3mB,EAAUspD,EAAVtpD,MAClBu3F,EAAcv3F,GAEd+2F,GACE,SAAAD,GAAoB,kCACfA,GADe,IAElBnwE,SAAU,CACRkwE,OAAe,OAARlwE,QAAQ,IAARA,OAAA,EAAAA,EAAUkwE,QAAS,GAC1B/J,MAAc,OAARnmE,QAAQ,IAARA,OAAA,EAAAA,EAAUmmE,OAAQ,YAiQZ,gBAAC,KAAD,CACEvkF,SAAS,WACTiK,YAAa5L,GAAE,sCACfqD,WAAY6tF,EACZ7wE,iBAAe,EACfD,gBAAgB,EAChBjd,OAAQ,CAAE3J,KAAM,SAAUJ,MAAO,MACjCyJ,OAAQlJ,IAAKC,SACbR,MAAOw3F,GAAwC,GAC/CpxE,OApQW,SAACkjC,GAChC,IAAQtpD,EAAoBspD,EAApBtpD,MAAO2mB,EAAa2iC,EAAb3iC,SACf8wE,EAAqBz3F,GAErB+2F,GACE,SAAAD,GAAoB,kCACfA,GADe,IAElB58C,YAAW,OAAEvzB,QAAF,IAAEA,OAAF,EAAEA,EAAUvW,eA+PT,gBAAC,KAAD,CACE7H,SAAS,WACTiK,YAAa5L,GAAE,iCACfqD,WAAY+tF,GACZhxE,gBAAgB,EAChBC,iBAAe,EACfld,OAAQ,CAAE3J,KAAM,SAAUJ,MAAO,MACjCyJ,OAAQlJ,IAAKC,SACbR,MAAO03F,GAA8B,GACrCtxE,OAnQM,SAACkjC,GAC3B,IAAQtpD,EAAoBspD,EAApBtpD,MAAO2mB,EAAa2iC,EAAb3iC,SACfgxE,EAAgB33F,GAEhB+2F,GACE,SAAAD,GAAoB,kCACfA,GADe,IAElB9mF,KAAI,OAAE2W,QAAF,IAAEA,OAAF,EAAEA,EAAUvW,eA8PF,gBAAC,KAAD,CACE7H,SAAS,WACTiK,YAAa5L,GAAE,kCACfqD,WAAYiuF,GACZlxE,gBAAgB,EAChBC,iBAAe,EACfld,OAAQ,CAAE3J,KAAM,SAAUJ,MAAO,MACjCyJ,OAAQlJ,IAAKC,SACbR,MAAO43F,GAAgC,GACvCxxE,OAlQO,SAACkjC,GAC5B,IAAQtpD,EAAoBspD,EAApBtpD,MAAO2mB,EAAa2iC,EAAb3iC,SACfkxE,EAAiB73F,GAEjB+2F,GACE,SAAAD,GAAoB,kCACfA,GADe,IAElB53F,SAAQ,OAAEynB,QAAF,IAAEA,OAAF,EAAEA,EAAUvW,iBA4QZ,gBAAC,KAAD,CACEnS,GAAG,YACHD,IAAK,SAACgD,GAAD,OAAOuqC,GAAgBvqC,IAC5BiJ,WAAYitF,EACZvR,aA3lBI,CAAER,cAAc,GA4lBpB5rD,iBA7lBS,CAAC,gBAAiB,iBAAkB,YAAa,WAAY,WAAY,YA8lBlFqsD,QA5lBO,CAAC,iBA6lBRlxD,eAAgB,CAAE5uB,KAAM,YACxB42B,aAAc,CAAEC,SAAU,GAC1BhI,aAAa,EACbC,cAAc,EACd5N,gBAAgB,EAChB6N,kBAAkB,EAClBprB,OAAQlJ,IAAKC,SACbw1F,eAAe,EACf1lD,eAAe,EACf2lD,mBAAmB,EACnB1lD,YA7eQ,SAAAj/B,GAEC,wBAArBA,EAAKm9B,aACgB,sBAArBn9B,EAAKm9B,cAELn9B,EAAKwoF,kBAAoB,QA0eb,gBAAC,KAAD,KACE,gBAAC,KAAD,CAAiBjqF,WAAYjJ,GAAE,uBAAwBqT,MAAM,KAAKkrE,cAAc,EAAOkJ,cAAc,EAAMxwF,MAAM,OACjH,gBAAC,KAAD,CAAiBgS,WAAYjJ,GAAE,wBAAyBqT,MAAM,MAAMkrE,cAAc,EAAOtnF,MAAM,QAC/F,gBAAC,KAAD,CAAiBgS,WAAYjJ,GAAE,yBAA0BqT,MAAM,OAAOI,OAA0B,OAAlB9Z,IAAKC,SAAoB,aAAe,aAAcyR,SAAUyhD,GAAY+tB,mBAAoB/tB,GAAYyxB,cAAc,EAAOtnF,MAAM,QACrN,gBAAC,KAAD,CAAiBgS,WAAYjJ,GAAE,2BAA4BqT,MAAM,SAASkrE,cAAc,EAAOtnF,MAAM,QACrG,gBAAC,KAAD,CAAiBgS,WAAYjJ,GAAE,gCAAiCqT,MAAM,cAAckrE,cAAc,EAAOtnF,MAAM,QAC/G,gBAAC,KAAD,CAAiBgS,WAAYjJ,GAAE,6BAA8BqT,MAAM,WAAWkrE,cAAc,EAAOtnF,MAAM,QACzG,gBAAC,KAAD,CAAiBgS,WAAYjJ,GAAE,yBAA0BqT,MAAM,OAAOkrE,cAAc,EAAOtnF,MAAM,QACjG,gBAAC,KAAD,CAAiBgS,WAAYjJ,GAAE,0BAA2BqT,MAAM,QAAQkrE,cAAc,EAAOtnF,MAAM,QACnG,gBAAC,KAAD,CAAiBgS,WAAYjJ,GAAE,yBAA0BqT,MAAM,OAAOhI,SAAUymF,GAAYjX,mBAAoBiX,GAAYvT,cAAc,EAAOtnF,MAAM,QACvJ,gBAAC,KAAD,CAAiBgS,WAAYjJ,GAAE,wBAAyBqT,MAAM,MAAMhI,SA1hBrE,SAACX,GAChB,IAAIrT,EAAKqT,EAAKrT,GACd,OACE,uBAAKsS,MAAO,CAAE8E,SAAU,cACpB/D,EAAK63B,QACL,gCACE,gBAAC,KAAD,CACElrC,GAAG,MACHsK,SAAS,mBACTD,QAAS,kBAAMgwF,GAAYr6F,EAAIqT,EAAKinF,OAEpC,uBAAKp6F,UAAU,mBAEjB,uBAAKoS,MAAO,CAAEm0B,OAAQ,SAAWzmC,GAAE,mBAAcA,EAAd,QAGtCqT,EAAK63B,QACJ,gCACE,gBAAC,KAAD,CACElrC,GAAG,YACHsK,SAAS,mBAETD,QAAS,kBAAMrH,OAAO+jB,KAAP,iBAzCT,SAAC1T,GACjB,OAAQA,GACN,KAAK,EACH,MAAO,eACT,KAAK,EACH,MAAO,iBACT,KAAK,EACH,MAAO,oBACT,KAAK,EACH,MAAO,SACT,KAAK,EACH,MAAO,qBACT,KAAK,EACH,MAAO,wBACT,QACE,MAAO,IA0BoCyoF,CAAUzoF,EAAK63B,QAArC,YAAgD73B,EAAKrT,IAAK,YAEzE,uBAAKE,UAAU,oBAEjB,uBAAKoS,MAAO,CAAEm0B,OAAQ,SAAWzmC,GAAE,mBAAcA,EAAd,UAggB+DknF,cAAc,EAAOn+D,gBAAgB,EAAOnpB,MAAM,QAE9I,gBAAC,KAAD,CAAQ0d,SAAU,CAACwZ,KAAQC,KAAMC,KAAaC,KAAQC,KAAMC,KAAM1Z,KAASi7E,KAAerhE,gB,qBI/rB/F0kE,GAAY,WACvB,IA0BIvwE,EA1BJ,EAA4C/pB,WAAe,IAA3D,mBAAOu6F,EAAP,KAAuBC,EAAvB,KACA,EAAgDx6F,YAAe,GAA/D,mBAAOy6F,EAAP,KAAyBC,EAAzB,KACA,EAAwC16F,WAAe,MAAvD,mBAAOggB,EAAP,KAAqB6rB,EAArB,KACA,EAAsB7rC,aAAiBD,GAAhCI,EAAP,oBACA,EAAgCH,YAAe,GAA/C,mBAAO6D,EAAP,KAAiBsL,EAAjB,KACA,EAAgDnP,WAAe,IAA/D,mBAAOoxB,EAAP,KAAyBC,EAAzB,KACA,EAAsCrxB,WAAe,MAArD,mBAAO26F,EAAP,KAAoBC,EAApB,KACA,EAA4C56F,WAAe,MAA3D,mBAAOozD,EAAP,KAAuBC,EAAvB,KACA,EAA8CrzD,WAAe,IAA7D,mBAAO66F,EAAP,KAAwBC,EAAxB,KAEIC,EAAe/6F,WAkBXkH,EAAMC,cAAND,EAuBRlH,aAAgB,WAAM,4CACpB,8BAAAuD,EAAA,sEAEyBw1C,GAAkB54C,EAAYjB,aAAasI,MAAK,SAAAvD,GACrE,GAAIA,EAASC,GACX,OAAOD,EAASwD,UAJtB,cAEMuzF,EAFN,OAQER,EAAkBQ,GAClBF,EAAmBE,GATrB,SAWwBlvF,GAAY3L,EAAYjB,aAC3CsI,MAAK,SAAAvD,GACJ,GAAIA,EAASC,GACX,OAAOD,EAASwD,UAdxB,OAWMme,EAXN,OAiBEyL,EAAoBzL,GACpBm1E,EAAa3oF,QAAUwT,EACnB5F,GACFA,EAAarN,UApBjB,6CADoB,uBAAC,WAAD,wBAyBpB7C,KACC,CAACjP,IAAKC,WAETd,aAAgB,WACVu6F,GAAkBlrF,SAASC,eAAe,mBAC5CO,aAAYR,SAASC,eAAe,kBACpCorF,GAAoB,MAErB,CAACH,IAEJv6F,aAAgB,WACVy6F,GAAoBprF,SAASC,eAAe,mBAC9CC,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,mBAChDE,aAAYH,SAASC,eAAe,kBACpCG,aAAW,CAAErJ,KAAM,iBAEpB,CAACq0F,IAEJz6F,aAAgB,WACd,IAAImqB,EAAoBhqB,EAAYR,YACpCoqB,EAAiBI,EAAkBppB,QAAO,SAACpE,GAAD,MAAwB,cAAjBA,EAAEiD,cAA4BsB,KAAI,SAACvE,GAAD,OAAQA,EAAEkD,gBAC5F,CAACM,IAEJH,aAAgB,WACVggB,GACFA,EAAarN,YACd,CAAC9R,IAAKC,SAAUswB,IAEnB,IAAM5C,EAAY,CAChB0H,OAAQnM,GAAkC,KAC1CiM,OAAQ,GACRC,IAAK,kBAAM9mB,GAAY,IACvBgnB,KAAM,IAGF8kE,EAAgB,SAACl3E,GACrB62E,EAAe72E,EAAKxlB,IACpB4Q,GAAY,IAEd,OACE,gCAC+B,OAA5BhP,EAAYjB,YAAuB,gBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WAC3DzE,EACkB,OAAhB82F,EAEE,gBAAC,IAAD,CAAU93F,MAAM,EAAMyF,GAAG,yBAEzB,gBAAC,IAAD,CAAUzF,MAAM,EAAMyF,GAAE,+BAA0BqyF,KAEpD,gCACE,gBAAC,GAAD,CAAoBp8F,GAAG,OACvB,uBAAKE,UAAU,eACf,gBAACwM,EAAA,EAAD,CAAWxM,UAAU,gBACnB,uBAAKA,UAAU,mBACb,gBAACmhB,GAAA,EAAD,KACE,uBAAKnhB,UAAU,mBACb,uBAAKA,UAAU,SACb,0BAAKyI,EAAE,0BAGX,uBAAKzI,UAAU,mBACb,uBAAKA,UAAU,WACb,gBAAC,GAAD,CAASwrB,SAAUuE,QAM3B,uBACE/vB,UAAU,gBAEV,uBAAKA,UAAU,yBACb,uBAAKA,UAAU,eACb,wBAAMA,UAAU,qBAChB,yBAAIyI,EAAE,0BAER,uBAAKzI,UAAU,eACb,uBAAKA,UAAU,mBACb,gBAAC,KAAD,CACEA,UAAU,UACVqU,YAAa5L,EAAE,gCACfwf,OAAQ,SAACplB,GA9H7B+xD,EA8H+C/xD,EA9HzBhB,YAkIR,uBAAK7B,UAAU,mBACb,uBAAKA,UAAU,aACb,gBAAC,KAAD,CAAiBoK,SAAS,mBACxBD,QAlII,WAAO,IAAD,EAC1BqsD,EAAa,aAAOslC,GACxBtlC,EAAa,UAAGA,SAAH,aAAG,EAAel0D,QAAO,SAAA6wB,GAEpC,IAAMspE,EAAuB,SAACt/E,EAASu/E,GACrC,OAAOv/E,EAAQ1N,cAAciuB,SAASg/D,EAAcjtF,gBAGtD,OAAOgtF,EAAqBtpE,EAAEpyB,SAASmR,OAAQyiD,GAC3CxhC,EAAEpyB,SAASmR,OAAOzC,cAClBgtF,EAAqBtpE,EAAEpyB,SAASkR,OAAQ0iD,IACvCxhC,EAAEpyB,SAASkR,OAAOxC,iBAGzB4sF,EAAmB7lC,KAsHE/tD,EAAE,wBAMZuzF,EAAmB,uBAAKl8F,GAAG,gBAAgBE,UAAU,kBACpD,gCACG87F,GACC,gBAAC36E,GAAA,EAAD,KACE,uBAAKnhB,UAAU,UACb,gBAAC,KAAD,CACEF,GAAG,WACHgM,WAAYswF,EACZ7lE,eAAgB,CAAE5uB,KAAM,QACxBkhB,gBAAgB,EAChB2N,aAAa,EACbC,cAAc,EACdC,kBAAkB,EAClB72B,IAAK,SAAC05B,GAAD,OAAU6T,EAAgB7T,IAC/BjuB,OAAQlJ,IAAKC,UAEb,gBAAC,KAAD,KACE,gBAAC,KAAD,CACEyZ,MAAM,WACNhI,SAAU,SAACjR,GAAD,OAnLd,SAACsQ,GAAU,IAAD,IAChC,OACE,wBAAMnT,UAAU,QAAQmK,QAAS,kBAAMqyF,EAAcrpF,KACjC,OAAlB/Q,IAAKC,SAAL,OACI8Q,QADJ,IACIA,GADJ,UACIA,EAAMpS,gBADV,aACI,EAAgBkR,OADpB,OAEIkB,QAFJ,IAEIA,GAFJ,UAEIA,EAAMpS,gBAFV,aAEI,EAAgBmR,QA8KmByqF,CAAkB95F,IACnC6O,WAAYjJ,EAAE,sBACd/I,MAAM,QAER,gBAAC,KAAD,CACEoc,MAAK,UAAuB,OAAlB1Z,IAAKC,SAAoB,WAAa,YAChDyR,SA/KP,SAACX,GACpB,OAAQ,4BAAyB,OAAlB/Q,IAAKC,SAAoB8Q,EAAKomC,SAAWpmC,EAAKqmC,WA+KnC9nC,WAAYjJ,EAAE,mBACd/I,MAAM,SAGV,gBAAC,KAAD,CAAQ0d,SAAU,CAACwZ,KAAQC,KAAMC,KAAaC,KAAQC,KAAMC,KAAMC,KAAY3Z,KAAS4Z,gBC6HlGylE,GA/UQ,SAAC,GAA2E,IAI3F96E,EACAR,EALkB5e,EAAwE,EAAxEA,MAAOm6F,EAAiE,EAAjEA,uBAAwBC,EAAyC,EAAzCA,oBAAqBt4D,EAAoB,EAApBA,cAQ1E,EAA0BjjC,WAAe,IAAzC,mBAAOogB,EAAP,KACA,GADA,KACoCpgB,YAAe,IAAnD,mBAAO8gB,EAAP,KAAmBC,EAAnB,KACA,EAAsB/gB,aAAiBD,GAAhCI,EAAP,oBACA,EAAoCH,WAAe,MAAnD,mBACA,GADA,UAC8BA,YAAe,IAA7C,mBAAOghB,EAAP,KAAgB3J,EAAhB,KAEQnQ,EAAMC,cAAND,EACF6W,EAAe,CAAC,CAClB,MAAS,WACLkD,IACAC,IACAH,GAAc,IAElB/C,YAAa,CACTC,WAAW,EACX3L,QAASpL,EAAE,mBA6FbxK,EAAS2S,SAASC,eAAe,eAEvCtP,aAAgB,WACRogB,GACIG,IACAA,EAAYY,cAnHpBX,EAoHQD,EAAYa,cAGrB,CAAChB,IAEJpgB,aAAgB,WACR8gB,IACAf,EAAUjB,QAAUf,KACzB,CAAC+C,IAcJ9gB,aAAgB,WACZuP,aAAc,CAAE7S,OAAQ2S,SAASC,eAAe,kBAChDE,aAAYH,SAASC,eAAe,iBACpCG,aAAW,CAAErJ,KAAM,gBACpB,CAAC4a,IAEJ,IAAME,EAAc,WAChB,IAAMM,EAAanS,SAASC,eAAe,gBAAkBD,SAASC,eAAe,eAAemS,cAAc,GAClH,GAAmB,OAAfD,GAA+C,OAAxBA,EAAWE,UAAsD,qBAAzBF,EAAWE,SAC1E,OAAOF,EAAWE,YAcpBT,EAAc,WAChBpZ,QAAQ1C,IAAI,gBA4FhB,OACI,gBAAC,KAAD,CAAiB5G,GAAG,gBAChBD,IAAK,SAAA6jB,GAAM,OAAIpC,EAAYoC,GAK3B/H,SAAS,EACT2E,eAAe,EACf5gB,MAAM,MAENwe,SAAS,EACT9L,MAAO,CAAEq4C,UAAW,MACpB,uBAAK3qD,GAAG,oBACJ,uBAAKA,GAAG,mBACJ,uBAAKE,UAAU,gBACX,uBAAKA,UAAU,iCACX,uBAAKoS,MAAO,CAAE1S,MAAO,SACjB,uBAAKM,UAAU,iBAAiBoS,MAAO,CAAE1S,MAAO,SAE5C,uBAAKM,UAAU,aAAaF,GAAG,eAC3B,uBAAKE,UAAU,OACX,wBAAM6jB,wBAAyB,CAAEC,OAxRtD,uuDAyRqB,yBACsB,OAAjB1hB,IAAKC,SAAmB,sCAAqC,wBAC9D,wBAAM8H,QAAS,kBAvCvDyG,SAASiS,uBAAuB,sBAAsB,GAAGC,cAAc,UAAU9H,SAC1E,IAsCiC,IAAuD,OAAjB5Y,IAAKC,SAAmB,eAAiB,WAGnF,wBAAMvC,GAAG,kBAAkBE,UAAU,aACrC,wBAAMF,GAAG,iBAAiBE,UAAU,aACpC,wBAAMA,UAAU,cAGxB,gBAAC,KAAD,cACIF,GAAG,aACH8F,KAAK,aACL+B,KAAK,OACL+a,SAAUzkB,EACV4B,IAAK,SAAAokB,GAAQ,OAAInC,EAAcmC,GAC/BgB,UAAU,EAGVvQ,QAjJZ,WAChBiN,IACAG,EAAY0C,MAAQ7C,EAAMwB,KAAOxB,EAAM3X,IAAM,CAAC2X,GAAS,MAEvDG,IACAA,EAAYY,cA5JhBX,EA6JID,EAAYa,aA6IgBxgB,SAzMX,SAAAU,GACrB+N,SAASkS,cAAc,yBAAyBiC,UAAY,GAC1B,MAA9BliB,EAAEshB,UAAU,GAAGC,aACfvhB,EAAEwX,QAAS,EACXzJ,SAASkS,cAAc,yBAAyBiC,UAAYliB,EAAEshB,UAAU,GAAGze,SAsM/CglD,UAjMd,SAAC7nD,GACnBA,EAAE0mD,eAAe3vC,iBAAiB,gBAAiB,UAAYlY,EAAYjB,cAiM3CkqD,QAAS,SAAC9nD,GAAD,OAvRnB,SAACA,GACvBuG,QAAQ1C,IAAI7D,GAsRoCkoD,CAAoBloD,IACpCmiB,SAAU,SAAAniB,GA1N1CuG,QAAQ1C,IAAI,gBA2NoBq2F,aAAc,SAACl6F,GAAD,OAAOuG,QAAQ1C,IAAI7D,KAfrC,YAgBc,SAACA,GAlHjB,IAAAkB,EACW,OADXA,EAkH6ClB,GAjH7DshB,UAAU,GAAGC,aACnBxL,GAAW,GACX7U,EAAMogB,UAAU1hB,KAAI,SAAC2Z,GAEjB,IAAM4gF,EAAW,aAAOF,GAElBz4E,EAAS,IAAIC,WAEnBD,EAAOI,iBAAiB,QAAQ,WAO5Bu4E,EAAYt6F,GAAOw3C,SAAW71B,EAAOpb,OACrC4zF,EAAuBG,GACvBx4D,GAAc,MAEf,GACHngB,EAAOQ,cAAczI,EAAK0I,qBAqGtB,uBAAK9kB,UAAU,QAAQF,GAAI,yBAA0BsS,MAAO,CAAEqF,QAAS,SACnE,yBAAO8I,QAAQ,mBAAmB9X,EAAE,8BACpC,gBAAC,KAAD,CACI3I,GAAG,kBAEH8F,KAAK,kBACLyO,YAAa5L,EAAE,yCACfmiB,eAAgB,CAAEiD,UAAW,WCvT5CovE,I,OAAgB,SAACz9F,GAC5B,IAAIgwC,EAAShwC,EAAMqG,MAAMiqB,OAAOhwB,GACxB2I,EAAMC,cAAND,EAER,EAAsBlH,aAAiBD,GAAhCI,EAAP,oBACA,EAAgCH,YAAe,GAA/C,mBAAO6D,EAAP,KAAiBsL,EAAjB,KACA,EAAwCnP,YAAe,GAAvD,mBAAOg/B,EAAP,KAAqBC,EAArB,KACA,EAAgDj/B,WAAe,IAA/D,mBAAOoxB,EAAP,KAAyBC,EAAzB,KACA,EAAoCrxB,YAAe,GAAnD,mBAAOgjC,EAAP,KAAmBC,EAAnB,KACA,EAAwCjjC,YAAgB,GAAxD,mBAAO27F,EAAP,KAAqBC,EAArB,KACA,EAAoC57F,WAAe,CACjDU,KAAwB,OAAlBG,IAAKC,SAAoB,eAAc,aAC7CR,MAAO,IAFT,mBAAO2rC,EAAP,KAAmB4vD,EAAnB,KAIA,EAAsD77F,WAAe,CAAC,CACpE87F,QAAQ,EACR7lE,KAAK,KAFP,mBAAOslE,EAAP,KAA4BD,EAA5B,KAIA,EAAwCt7F,WAAe,IAAvD,mBAAO+7F,EAAP,KAAqBC,EAArB,KACA,EAAqCh8F,YAAe,GAApD,mBAAMquB,EAAN,KAAmBC,EAAnB,KACA,EAA0CtuB,WACxC,CACEg4C,SAAU,GACVC,SAAU,GACVC,MAAO,GACPC,MAAO,GACP1nC,WAAY,GACZ2nC,cAAe,CACb,CACEjnC,SAAU,GACVqnC,QAAS,GACTvlC,KAAM,GACNpG,MAAO,GACP1I,OAAQ,MAbhB,mBAAO83F,GAAP,KAAsBC,GAAtB,KAmBA,GAA4DnwE,eAApDG,GAAR,GAAQA,SAAUC,GAAlB,GAAkBA,kBAAmBkb,GAArC,GAAqCA,OAAQovB,GAA7C,GAA6CA,WAEzCjoC,GAAY,CACd9D,kBAA4BxkB,EAAe,GAAxB+nC,EAA4B,OAA0C,SAAlC9tC,GACvDyqB,aAAa,EACbK,gBAAgB,EAEhBb,YAAY,EACZO,QAAS,SAACrpB,GACRA,EAAEm3B,iBACFnK,GAAe,GACf,IAEMyrD,EAFsB,aAAOwhB,GAEIr6F,KAAI,SAAAi7F,GACzC,OAAO,2BACFA,GADL,IAEExjD,SAAUwjD,EAAOlmE,IAAP,OAAakmE,QAAb,IAAaA,OAAb,EAAaA,EAAQxjD,SAAS15B,MAAM,KAAK,GAAK,QAI5Do6B,GAAyBl5C,EAAYjB,YAAb,YAAC,eACpB+8F,IADmB,IAEtB5jD,aAAa,aAAK0hC,MACjBvyE,MAAK,SAAAvD,GACNkL,EAAYlL,EAASC,IACrBoqB,GAAe,MACd3mB,OAAM,WACP2mB,GAAe,OAInBzD,KAAM,oBAENG,UAAW,WACT7b,GAAY,IAEdgc,YAAW8iB,GAAS,kBAAMhP,GAAgB,KAGtCye,GAAgB,CAAC,CACrBh9C,KAAwB,OAAlBG,IAAKC,SAAoB,eAAc,aAC7CR,MAAO,GACN,CACDI,KAAwB,OAAlBG,IAAKC,SAAoB,YAAW,UAC1CR,MAAO,IAGHk/B,GAAgB,Y9HxDjB,SAAP,sC8HyDI48D,CAAgBj8F,EAAYjB,YAAa+uC,GAAQzmC,MAAK,SAAAvD,GAChDA,EAASC,IACXiL,GAAY,OAKlBnP,aAAgB,WAAM,4CACpB,sBAAAuD,EAAA,sDACEirB,GAAY,CACV9D,kBAA4BxkB,EAAe,GAAxB+nC,EAA4B,OAA0C,SAAlC9tC,GACvDyqB,aAAa,EACbK,gBAAgB,EAEhBb,YAAY,EACZO,QAAS,SAACrpB,GACRA,EAAEm3B,iBACFnK,GAAe,GACf+qB,GAAyBl5C,EAAYjB,YAAb,YAAC,eACpB+8F,IADmB,IAEtB5jD,aAAa,aAAKkjD,MACjB/zF,MAAK,SAAAvD,GACNkL,EAAYlL,EAASC,IACrBoqB,GAAe,MACd3mB,OAAM,WACP2mB,GAAe,OAInBzD,KAAM,oBAENG,UAAW,WACT7b,GAAY,IAEdgc,YAAW8iB,GAAS,kBAAMhP,GAAgB,KA1B9C,4CADoB,uBAAC,WAAD,wBA8BpBnvB,KACC,CAACmsF,GAAeV,IAEnBv7F,aAAgB,WAAM,4CACpB,gCAAAuD,EAAA,sEACwBuI,GAAY3L,EAAYjB,aAAasI,MACzD,SAACvD,GACC,GAAIA,EAASC,GACX,OAAOD,EAASwD,UAJxB,cACMme,EADN,OAQEyL,EAAoBzL,GARtB,SAS0BpZ,GAAgBrM,EAAYjB,aAAasI,MAC/D,SAACvD,GACC,GAAIA,EAASC,GACX,OAAOD,EAASwD,UAZxB,UASM40F,EATN,OAgBEL,EAAgBK,IACZpuD,EAjBN,kCAkB2BmL,GAAiBj5C,EAAYjB,YAAa+uC,GAAQzmC,MAAK,SAAAwI,GAC5E,GAAIA,EAAI9L,GACN,OAAO8L,EAAIvI,UApBnB,QAkBQuzF,EAlBR,OAwBIM,EAAsB,OAACN,QAAD,IAACA,OAAD,EAACA,EAAY3iD,cACnC6jD,GAAiBlB,GAzBrB,6CADoB,uBAAC,WAAD,wBA8BpBlrF,KACC,CAACjP,IAAKC,WAETd,aAAgB,WACVi8F,IAAiBA,GAAcpvF,OACjC4pD,GAAW,CAAC,QAAS,QAAS,WAAY,WAAY,YAEvD,CAACwlC,KAEJ,IAgEIK,GAAoB,SAAC/hF,EAAOjZ,EAAGH,GACjC,IAAMb,EAAQgB,EAAEhB,MAEVM,EAAQ,aAAO26F,GAErB36F,EAASO,GAAT,2BACKP,EAASO,IADd,mBAEGoZ,EAAQja,IAGXg7F,EAAuB16F,IAGrBqmE,GAAc,SAAC1sD,EAAOjZ,GACxB,IAAMhB,EAAQgB,EAAEhB,MAEhB47F,IAAiB,SAACD,GAAD,mBAAC,eACbA,GADY,mBAEd1hF,EAAQja,QAITi8F,GAAkB,SAAChiF,EAAOjZ,EAAGH,GAC/B,IAAMb,EAAQgB,EAAEhB,MACVk8F,EAAgB,eAAQP,IACxBQ,EAAeD,EAAiBpkD,cAAcj3C,GAExB,IAAxBs7F,EAAat4F,SACfq4F,EAAiBpkD,cAAcj3C,GAAOoZ,GAASja,GAGrB,IAAxBm8F,EAAat4F,SACfq4F,EAAiBpkD,cAAcj3C,GAAOgD,OAAS,GAGjD+3F,GAAiBM,IAkCbE,GAAiB,uCAAG,WAAOp7F,EAAGH,GAAV,uBAAAoC,EAAA,sDAClB3C,EADkB,aACH26F,GAEfoB,EAHkB,aAGMZ,GAHN,EAKPY,EAAkB57F,QAAO,SAAA6wB,GAAC,OAAIA,EAAErzB,KAAM+C,EAAEhB,SALjC,mBAKjB+J,EALiB,KAOxBzJ,EAASO,GAAT,2BACKP,EAASO,IACTkJ,GAGLixF,EAAuB16F,GAZC,2CAAH,wDA2HvB,OACE,2BAC+B,OAA5BT,EAAYjB,YACX,gBAAC,IAAD,CAAU2D,MAAM,EAAMyF,GAAG,WACvBzE,EACF,gBAAC,IAAD,CAAUhB,MAAM,EAAMyF,GAAG,qBAEzB,2BACE,gBAAC,GAAD,CAAoB/J,GAAG,OAEvB,uBAAKE,UAAU,eACf,gBAACwM,EAAA,EAAD,CAAWxM,UAAU,gBACnB,uBAAKA,UAAU,mBACb,gBAACmhB,GAAA,EAAD,KACE,uBAAKnhB,UAAU,UACb,uBAAKA,UAAU,SACb,0BAEMyI,EADH+mC,EACK,uBACA,+BAMhB,gBAACruB,GAAA,EAAD,KACE,uBAAKnhB,UAAU,mBACb,uBAAKA,UAAU,WACb,wBAAMF,GAAG,qBACP,uBAAKE,UAAU,OACb,uBAAKA,UAAU,QACb,gBAAC,KAAD,CACEF,GAAG,SACH8F,KAAK,SACLwE,SAAS,WACT0B,WAAYmzC,GACZrzC,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,SAC/ByJ,OAAQlJ,IAAKC,SACbuoB,eAAgB,CAAE7K,UAAU,GAC5B1L,YAAa5L,EAAE,kBACf5G,MAAO2rC,EAAW3rC,MAClBomB,OAAQ,SAACplB,GAAD,OAzSb,SAACA,GAClB,IAAMylC,EAAUzlC,EAAE2lB,SAClB40E,EAAc,eACT90D,IAsSgCyN,CAAWlzC,QAIhC,uBAAK7C,UAAU,OACb,uBAAKA,UAAU,WACb,uBAAKA,UAAU,SACb,6BACGyI,EAAE,mBADL,KAGA,gBAAC,KAAD,CACE3I,GAAG,QACH8F,KAAK,QACLyO,YAAa5L,EACX,+BAEFmiB,eAAgB,CACdiD,UAAW,KAEbhsB,MACsB,iBAApB2rC,EAAWvrC,MAA4C,eAApBurC,EAAWvrC,KAC1Cu7F,GAAcjkD,SACdikD,GAAchkD,SAEpBvxB,OAAQ,SAACpmB,GAAD,OACN2mE,GACsB,iBAApBh7B,EAAWvrC,MAA4C,eAApBurC,EAAWvrC,KAC1C,WACA,WAEJJ,IAGJhC,IAAK4tB,GAAS,CACZ1N,UAAU,IAEZ+H,KAAM,kBACJ4F,GACuB,iBAApB8f,EAAWvrC,MAA4C,eAApBurC,EAAWvrC,KAC3C,WACA,eAKT2mC,GAAO2Q,UACN,gCAGI,aAFD3Q,GAAO2Q,SACL5xC,MAEC,yBACE3H,UAAU,UACVoS,MAAO,CACLqF,QACE,UAGHhP,EACC,yBAMXmgC,GAAO4Q,UACN,gCAGI,aAFD5Q,GAAO4Q,SACL7xC,MAEC,yBACE3H,UAAU,UACVoS,MAAO,CACLqF,QACE,UAGHhP,EACC,0BAOd,uBAAKzI,UAAU,SACb,6BACGyI,EAAE,iBADL,KAGA,gBAAC,KAAD,CACE3I,GAAG,MACH8F,KAAK,MACLglB,eAAgB,CACdiD,UAAW,OAEbzjB,SAAS,SACTiK,YAAa5L,EACX,6BAEF5G,MACsB,iBAApB2rC,EAAWvrC,MAA4C,eAApBurC,EAAWvrC,KAC1Cu7F,GAAc/jD,MACd+jD,GAAc9jD,MAEpBzxB,OAAQ,SAACpmB,GAAD,OACN2mE,GACsB,iBAApBh7B,EAAWvrC,MAA4C,eAApBurC,EAAWvrC,KAC1C,QACA,QACJJ,IAGJhC,IAAK4tB,GAAS,CACZ1N,UAAU,IAEZ+H,KAAM,kBACJ4F,GACsB,iBAApB8f,EAAWvrC,MAA4C,eAApBurC,EAAWvrC,KAC1C,QACA,YAIT2mC,GAAO5+B,KACN,gCAEI,aADD4+B,GAAO5+B,IAAIrC,MAER,yBACE3H,UAAU,UACVoS,MAAO,CACLqF,QACE,UAGHhP,EACC,yBAMXmgC,GAAO8Q,OACN,gCAEI,aADD9Q,GAAO8Q,MAAM/xC,MAEV,yBACE3H,UAAU,UACVoS,MAAO,CACLqF,QACE,UAGHhP,EACC,2BAQhB,uBAAKzI,UAAU,SACb,6BACGyI,EAAE,sBADL,KAGA,gBAAC,KAAD,CACE3I,GAAG,WACH8F,KAAK,WACLwE,SAAS,SACTiK,YAAa5L,EACX,kCAEFqD,WACE6mB,EAEF7J,iBAAe,EACfld,OAAQ,CACN3J,KACoB,OAAlBG,IAAKC,UAAyC,iBAApBmrC,EAAWvrC,MAA4C,eAApBurC,EAAWvrC,KACpE,SACA,SACNJ,MAAO,MAETA,MAAK,OACH27F,SADG,IACHA,QADG,EACHA,GAAe9oD,WAEjBppC,OAAQlJ,IAAKC,SACb4lB,OAAQ,SAACpmB,GAAD,OACN2mE,GACE,aACA3mE,IAGJhC,IAAK4tB,GAAS,CACZ1N,UAAU,IAEZ+H,KAAM,kBACJ4F,GACE,iBAILkb,GAAO52B,YACN,gCAGI,aAFD42B,GAAO52B,WACLrK,MAEC,yBACE3H,UAAU,UACVoS,MAAO,CACLqF,QACE,UAGHhP,EACC,0BAOd,uBAAKzI,UAAU,SACZw9F,GAAc7jD,cAAcr3C,QAC3B,SAAC66C,GAAD,OAAoC,IAArBA,EAAUz3C,WAEvB,uBAAK1F,UAAU,gBACb,uBACEA,UAAU,iBACVmK,QAAS,WA3fnBqzF,GAAc7jD,cAAcr3C,QAAO,SAAA66C,GAAS,OAAyB,IAArBA,EAAUz3C,WAG1E+3F,IAAiB,SAAAD,GAAa,kCACzBA,GADyB,IAE5B7jD,cAAc,GAAD,oBAAM6jD,EAAc7jD,eAApB,CACb,CACEjnC,SAAU,GACVqnC,QAAS,GACTvlC,KAAM,GACNpG,MAAO,GACP1I,OAAQ,cAsfO83F,GAAc7jD,cAAcv7C,OAAS,GACpCo/F,GAAc7jD,cAAcl3C,KAC1B,SAACF,EAAMG,GAAP,OACkB,IAAhBH,EAAKmD,QACH,qCAAI,uBAAK1F,UAAU,eACjB,uBAAKA,UAAU,WACb,uBAAKA,UAAU,SACb,6BACGyI,EACC,mBAGJ,gBAAC,KAAD,CACE3I,GAAG,OACH8F,KAAK,OACLyO,YAAa5L,EACX,8BAEFmiB,eAAgB,CACdiD,UAAW,KAEb5F,OAAQ,SACNpmB,GADM,OAGNi8F,GACE,OACAj8F,EACAa,IAGJb,MACEU,EAAKiS,QAIX,uBAAKxU,UAAU,SACb,6BACGyI,EAAE,oBAEL,gBAAC,KAAD,CACE3I,GAAG,QACH8F,KAAK,QACLglB,eAAgB,CACdiD,UAAW,OAEbzjB,SAAS,SACTiK,YAAa5L,EACX,+BAEF5I,IAAK4tB,GAAS,CACZ1N,UAAU,EACVsO,QAAS,cAEXvG,KAAM,kBACJ4F,GACE,UAGJzF,OAAQ,SAACpmB,GAAD,OACNi8F,GACE,QACAj8F,EACAa,IAGJb,MAAOU,EAAK6L,QAEbw6B,GAAOx6B,OACN,gCAEI,YADDw6B,GAAOx6B,MAAMzG,MAEV,yBACE3H,UAAU,UACVoS,MAAO,CACLqF,QACE,UAGHhP,EACC,8BAQhB,uBAAKzI,UAAU,WACb,uBAAKA,UAAU,SACb,6BACGyI,EAAE,oBAEL,gBAAC,KAAD,CACE3I,GAAG,QACH8F,KAAK,QACLglB,eAAgB,CACdiD,UAAW,MAEbxZ,YAAa5L,EACX,+BAEF5G,MACEU,EAAKmQ,SAEPuV,OAAQ,SAACpmB,GAAD,OACNi8F,GACE,WACAj8F,EACAa,IAGJ4P,WAAW,IACXG,KAAK,iFAGT,uBAAKzS,UAAU,SACb,6BACGyI,EAAE,wBAEL,gBAAC,KAAD,CACE3I,GAAG,YACH8F,KAAK,YACLglB,eAAgB,CACdiD,UAAW,MAEbxZ,YAAa5L,EACX,mCAEF5G,MACEU,EAAKw3C,QAEP9xB,OAAQ,SAACpmB,GAAD,OACNi8F,GACE,UACAj8F,EACAa,IAGJ4P,WAAW,IACXG,KAAK,mFAKV+qF,GAAc7jD,cAAcv7C,OAAS,GACpC,uBAAK4B,UAAU,iBACb,uBAAKA,UAAU,kBACbmK,QAAS,kBAhkBvB,SAACzH,GACvB,IAAMq7F,EAAgB,eAAQP,IACxBQ,EAAeD,EAAiBpkD,cAEX,OAAvBqkD,EAAat7F,KACoB,IAA/Bs7F,EAAat7F,GAAOgD,OACtBs4F,EAAat7F,GAAOgD,OAAS,EAE7Bs4F,EAAa10E,OAAO5mB,EAAO,IAI/Bq7F,EAAiBpkD,cAAgBqkD,EAEjCP,GAAiBM,GAkjBkCI,CAAgBz7F,YASjD,uBAAK1C,UAAU,eAAeoS,MAAO,CACnC1S,MAAO,OACPC,OAAQ,SAER,uBACEK,UAAU,iBACVmK,QAAS,WA7qB/B0yF,GAAuB,SAAAuB,GAAc,6BAChCA,GADgC,CAEnC,CACEf,QAAQ,EACR7lE,KAAK,YA8qBS,uBAAKx3B,UAAU,QAAQoS,MAAO,CAC5BqF,QAAS,OACT4mF,IAAK,OACL3mF,cAAe,WAEdolF,EAAoB1+F,OAAS,GAC5B0+F,EAAoBr6F,KAAI,SAACy7F,EAAmBx7F,GAApB,OACtB,uBAAK0P,MAAO,CACVksF,eAAgB,gBAChB7mF,QAAS,OACTpF,WAAY,WAEZ,uBAAKD,MAAO,CACVmsF,KAAM,IACN7yC,QAAS,aACT8yC,UAAW,eAERN,EAAkB1mE,KAAQ0mE,EAAkBb,QAAYa,EAAkBp+F,GAM3E,2BACGo+F,EAAkBb,SAAWa,EAAkBp+F,IAC9C,gCACE,2BACE,gBAAC,KAAD,CACEA,GAAG,cACH8F,KAAK,iBACLkG,WAAYwxF,EACZ1xF,OAAQ,CAAE3J,KAAM,SAAUJ,MAAO,MACjCyJ,OAAQlJ,IAAKC,SACb4lB,OAAQ,SAACplB,GAAD,OAAOo7F,GAAkBp7F,EAAGH,IACpCb,MAAOi7F,EAAoBp6F,GAAO5C,GAClCuU,YACoB,OAAlBjS,IAAKC,SACD,0BACA,4BAObkiC,GACC,gBAAC,GAAD,CACEC,cAAeA,EACf9hC,MAAOw6F,EACPL,uBAAwBA,EACxBC,oBAAqBA,IAGxBoB,EAAkBp+F,IACjB,uBAAKE,UAAU,uBACb,uBAAKA,UAAU,gBACZ0C,EAAQ,GAAK,wBAAM1C,UAAU,WAAWmK,QAAS,kBAzsB3E,SAACyrD,GACd,IAAMphC,EAAMsoE,EACN2B,EAAM,uBAAOjqE,EAAI4kB,MAAM,EAAGwc,EAAI,IAAxB,CAA4BphC,EAAIohC,GAAMphC,EAAIohC,EAAM,IAAhD,aAAuDphC,EAAI4kB,MAAMwc,EAAI,KACjFinC,EAAuB4B,GAssBuEC,CAAOh8F,KAAjD,KACbA,EAAQo6F,EAAoB1+F,OAAS,GAAK,wBAAM4B,UAAU,aAAamK,QAAS,kBA/sBxG,SAACyrD,GAChB,IAAMphC,EAAMsoE,EACN2B,EAAM,uBAAOjqE,EAAI4kB,MAAM,EAAGwc,IAApB,CAA0BphC,EAAIohC,EAAM,GAAIphC,EAAIohC,IAA5C,aAAqDphC,EAAI4kB,MAAMwc,EAAI,KAC/EinC,EAAuB4B,GA4sBsGE,CAASj8F,KAArD,MAE7C,uBAAK1C,UAAU,OAAOqK,IAAG,UAAK9E,0BAAL,+BAA+D24F,EAAkBp+F,GAAjF,sBACzB,uBAAKE,UAAU,SACb,6BAAQyI,EAAE,mBAAV,KACA,gBAAC,KAAD,CACE3I,GAAG,QACH8F,KAAK,QACLglB,eAAgB,CACdiD,UAAW,OAEbzjB,SAAS,SACTiK,YAAa5L,EACX,+BAEFwf,OAAQ,SAACpmB,GAAD,OAAWg8F,GAAkB,SAAUh8F,EAAOa,IACtDb,MAAOq8F,EAAkB9oF,UAG7B,uBAAKpV,UAAU,SAEb,6BAAQyI,EAAE,iBAAV,KACA,gBAAC,KAAD,CACE3I,GAAG,MACH8F,KAAK,MACLglB,eAAgB,CACdiD,UAAW,OAEbzjB,SAAS,SACTiK,YAAa5L,EACX,+BAEFwf,OAAQ,SAACpmB,GAAD,OAAWg8F,GAAsC,iBAApBrwD,EAAWvrC,KAAuB,MAAQ,QAASJ,EAAOa,IAC/Fb,MAA2B,iBAApB2rC,EAAWvrC,MAA4C,eAApBurC,EAAWvrC,KACjDi8F,EAAkBl0F,IAClBk0F,EAAkBxkD,MAAQwkD,EAAkBxkD,MAAQ,OAM/DwkD,EAAkB1mE,KACjB,uBAAKx3B,UAAU,sBAAsBoS,MAAO,CAC1CisF,IAAK,UAEJ,OAACH,QAAD,IAACA,OAAD,EAACA,EAAmBhkD,UAMnB,uBAAKl6C,UAAU,OAAOqK,IAAG,OAAE6zF,QAAF,IAAEA,OAAF,EAAEA,EAAmBhkD,WAL9C,qBAAGzjC,KAAK,GAAGtM,QAAS,SAAAtH,GAClBA,EAAEm3B,iBACFwK,GAAc,GACd24D,EAAgBz6F,KAHlB,sBAMF,uBAAK1C,UAAU,SACb,uCACA,gBAAC,KAAD,CACEF,GAAG,QACH8F,KAAK,QACLglB,eAAgB,CACdiD,UAAW,OAEbzjB,SAAS,SACTiK,YAAa5L,EACX,+BAEFwf,OAAQ,SAACpmB,GAAD,OAAWg8F,GAAkB,SAAUh8F,EAAOa,IACtDb,MAAOq8F,EAAkB9oF,UAG7B,uBAAKpV,UAAU,SAEb,oCACA,gBAAC,KAAD,CACEF,GAAG,MACH8F,KAAK,MACLglB,eAAgB,CACdiD,UAAW,OAEbzjB,SAAS,SACTiK,YAAa5L,EACX,6BAEFwf,OAAQ,SAACpmB,GAAD,OAAWg8F,GAAkB,MAAOh8F,EAAOa,IACnDb,MAA2B,iBAApB2rC,EAAWvrC,MAA4C,eAApBurC,EAAWvrC,KACjDi8F,EAAkBl0F,IAClBk0F,EAAkBxkD,MAAQwkD,EAAkBxkD,MAAQ,MAG5D,uBAAK15C,UAAU,SAEb,8CACA,gBAAC,KAAD,CACEF,GAAG,MACH8F,KAAK,MACLglB,eAAgB,CACdiD,UAAW,OAEbzjB,SAAS,SACTiK,YAAa5L,EACX,qCAEFwf,OAAQ,SAACpmB,GAAD,OAAWg8F,GAAkB,QAASh8F,EAAOa,IACrDb,MAAOq8F,EAAkBxkD,WA5InC,uBAAK15C,UAAU,gBACb,0BAAQA,UAAU,sCAAsCmK,QAAS,kBAtpB5E,SAACzH,GAEtB,IAAMP,EAAQ,aAAO26F,GAErB36F,EAASO,GAAO26F,QAAS,EAEzBR,EAAuB16F,GAgpBgFy8F,CAAel8F,KAAS+F,EAAE,2BACjG,0BAAQzI,UAAU,yCAAyCmK,QAAS,kBA/pBpF,SAACzH,GACjB,IAAMP,EAAQ,aAAO26F,GAErB36F,EAASO,GAAO80B,KAAM,EAEtBqlE,EAAuB16F,GA0pBmF08F,CAAUn8F,KAAS+F,EAAE,uBAkJrG,uBAAKzI,UAAU,gBAAgBoS,MAAO,CACpC0sF,OAAQ,MAER,uBAAK9+F,UAAU,kBACbmK,QAAS,kBA7uBf,SAACzH,GACzB,IAAMs6F,EAAc,aAAIF,GAAqBx6F,QAAO,SAACy8F,EAAeC,GAAhB,OAA6Bt8F,IAAUs8F,KAE3FnC,EAAuBG,GA0uBsBiC,CAAkBv8F,aAQ/C,uBAAK1C,UAAU,eACb,uBAAK6jB,wBAAyB,CAAEC,OAxsB5B,WACtB,IAAMo7E,EAA+B,iBAApB1xD,EAAWvrC,MAA4C,eAApBurC,EAAWvrC,KAuF/D,MAtFU,4hBAgBMi9F,EAAW1B,GAAcjkD,SACvBikD,GAAchkD,SAjBtB,yDAmBMgkD,GAAc7jD,cAAcr3C,QAAO,SAAApE,GAAC,OAAIA,EAAEsW,MAAQtW,EAAEwU,UAAYxU,EAAEkQ,OAASlQ,EAAE67C,WAASt3C,KAAI,SAACu3C,GAAD,oEAErFA,EAAYxlC,MAAQwlC,EAAYxlC,KAFqD,4FAKrFwlC,EAAYtnC,WAAasnC,EAAYxlC,MAAQ,WAAawlC,EAAYtnC,SALe,4FAQrFsnC,EAAYD,UAAaC,EAAYtnC,SAAY,UAAesnC,EAAYxlC,MAAQ,WAAcwlC,EAAYD,QARzB,+DAUvFC,EAAYxlC,MAAQwlC,EAAYtnC,UAAYsnC,EAAYD,UAAYC,EAAY5rC,OAAjF,SAVwF,iDAWxE4rC,EAAY5rC,MAX4D,qDAYrF4rC,EAAY5rC,OAAS4rC,EAAY5rC,MAZoD,iCAc1FoV,KAAK,SAjCX,kKAqCU07E,EAAW1B,GAAc/jD,OAAS+jD,GAAc/jD,MAC9C+jD,GAAc9jD,MAAQ8jD,GAAc9jD,MACpC,GAvCZ,+JA8CIojD,EAAoBx6F,QAAO,SAAA47F,GAAiB,OAAIgB,EAAWhB,EAAkBl0F,IAAMk0F,EAAkBxkD,SACpGj3C,KAAI,SAAAy7F,GAAiB,kTAQlBA,EAAkBp+F,GAAlB,oBACayF,0BADb,+BACuE24F,EAAkBp+F,GADzF,+KAKsB,OAAjBo+F,QAAiB,IAAjBA,OAAA,EAAAA,EAAmBhkD,WAAnB,sDAEMgkD,QAFN,IAEMA,OAFN,EAEMA,EAAmBhkD,SAFzB,0JALL,+BARkB,mTA0BWglD,EAAWhB,EAAkBl0F,IAAMk0F,EAAkBxkD,MA1BhE,+DA4Bbl2B,KAAK,SA3ElB,8MAssBgD0gC,UAKhD,uBAAKlkD,UAAU,mBACb,gBAAC,GAAD,CAAS2S,SAAUid,EAAapE,SAAUuE,QAKhD,gBAAC,KAAD,CACEjwB,GAAG,cACHoe,SAAS,EACTvC,QAAS4kB,EACTj1B,OAAQlJ,IAAKC,UAEb,2BACE,uBAAKrC,UAAU,YACb,yBAAOA,UAAU,oBACjB,uBAAKA,UAAU,gBACb,yBAAOF,GAAG,UAAU2I,EAAE,mBACtB,yBAAO3I,GAAG,eAAe2I,EAAE,+BAG/B,2BACA,uBAAKzI,UAAU,iBACb,0BAAQmK,QAAS,kBAAMq2B,GAAgB,KAAS/3B,EAAE,mBAClD,0BAAQ0B,QAAS,kBAAM42B,OAAoC,OAAlB3+B,IAAKC,SAAoB,MAAQ,cC3jC7E+9D,GAAkB,SAAC,GAAc,IAAD,IAAZp1B,EAAY,EAAZA,OAEvBviC,EAAMC,cAAND,EACR,EAAsBlH,aAAiBD,GAAhCI,EAAP,oBACA,EAA2BH,aAAiBq2E,IAArCE,EAAP,oBACA,EAAwBv2E,WAAe,IAAvC,mBAAOyC,EAAP,KAAagb,EAAb,KACA,EAA0Bzd,WAAe,GAAzC,mBAAO4V,EAAP,KAAckpD,EAAd,KACA,EAA4C9+D,WAAe,IAA3D,mBAAO++D,EAAP,KAAuBC,EAAvB,KACA,EAA8Bh/D,WAAe,IAA7C,mBAAOkN,EAAP,KAAgB+xD,EAAhB,KAEAj/D,aAAgB,WACd,GAAIu2E,GAAoBA,EAAiB9zE,KAAK5F,OAAS,EAAG,CAAC,IAAD,cAEpDqiE,EAAaqX,EAAiB9zE,KAAK,GAAGm7F,YAAY18F,KAAI,SAAAvE,GAExD,MAAO,CACLwiE,YAAaxiE,EAAEqB,MACfqhE,uBAAwB1iE,EAAEkhG,aAI1Bt+B,EAAgB,CAClBH,cAAa,OAAEmX,QAAF,IAAEA,GAAF,UAAEA,EAAkB/W,eAApB,aAAE,EAA2BtR,aAC1CptD,SAAUD,IAAKC,SACf6+D,WAAU,OAAE4W,QAAF,IAAEA,GAAF,UAAEA,EAAkB/W,eAApB,aAAE,EAA2BrR,YACvCyR,QAAO,OAAE2W,QAAF,IAAEA,GAAF,UAAEA,EAAkB/W,eAApB,aAAE,EAA2BpR,UACpCyR,oBAAmB,OAAE0W,QAAF,IAAEA,GAAF,UAAEA,EAAkB/W,eAApB,aAAE,EAA2Br7D,OAChD27D,OAAM,OAAEyW,QAAF,IAAEA,GAAF,UAAEA,EAAkB/W,eAApB,aAAE,EAA2B1wD,QACnCixD,WAAU,OAAEwW,QAAF,IAAEA,GAAF,UAAEA,EAAkB/W,eAApB,aAAE,EAA2BhgE,SACvCiqC,OAAQA,EACRq0D,KAAwB,OAAlBj9F,IAAKC,SACXi9F,UAAS,OAAExnB,QAAF,IAAEA,GAAF,UAAEA,EAAkB/W,eAApB,aAAE,EAA2Br7D,QAGxCsZ,EAAQyhD,GACRD,EAAWM,GAEX,IAAIS,EAAM,EACVuW,EAAiB9zE,KAAK,GAAGm7F,YAAY18F,KAAI,SAAAvE,GACvCqjE,GAAOrjE,EAAEkhG,YAEX/+B,EAASkB,MAGV,CAACuW,EAAiB9zE,KAAMtC,EAAYZ,eAEvCS,aAAgB,WAE2B,IAAD,IADxC,GAAIu2E,IACc,OAAhBA,QAAgB,IAAhBA,OAAA,EAAAA,EAAkB/W,QAAQ3iE,QAAS,EAEnC,IAAoB,OAAhB05E,QAAgB,IAAhBA,GAAA,UAAAA,EAAkB/W,eAAlB,eAA2BrR,eAA3B,OAA0CooB,QAA1C,IAA0CA,GAA1C,UAA0CA,EAAkB/W,eAA5D,aAA0C,EAA2BpR,WAAW,CAClF,IAAI6R,EAEmC,IAEhC,IAFP,GAAiC,OAA7B9/D,EAAYZ,aACd0gE,EAAS,sBAAWsW,QAAX,IAAWA,GAAX,UAAWA,EAAkB/W,eAA7B,aAAW,EAA2BrR,YAAYnoD,mBAAmB,MAArE,sBAAiFuwE,QAAjF,IAAiFA,GAAjF,UAAiFA,EAAkB/W,eAAnG,aAAiF,EAA2BpR,UAAUpoD,mBAAmB,YAElJi6D,EAAS,oBAASsW,QAAT,IAASA,GAAT,UAASA,EAAkB/W,eAA3B,aAAS,EAA2BrR,YAAYnoD,mBAAmB,MAAnE,0BAAgFuwE,QAAhF,IAAgFA,GAAhF,UAAgFA,EAAkB/W,eAAlG,aAAgF,EAA2BpR,UAAUpoD,mBAAmB,OAGnJg5D,EAAkBiB,QAElBjB,EAAkB,QAGrB,QAACuX,QAAD,IAACA,GAAD,UAACA,EAAkB/W,eAAnB,aAAC,EAA2BrR,YAA5B,OAAyCooB,QAAzC,IAAyCA,GAAzC,UAAyCA,EAAkB/W,eAA3D,aAAyC,EAA2BpR,UAAWjuD,EAAYZ,eAE9F,IAUM2gE,EAAe,SAACtuD,GACpB,IAAM8lC,EAAY,WAKhB,MAJgB,CACd,IAAO,QACP,MAAS,SAEM9lC,IAGbuuD,EAAU,2BAAOjzD,GAAP,IAAgBwqC,UAAWA,OnJ5CxC,SAAP,wCmJ8CIsmD,CAAkB79F,EAAYjB,YAAaihE,EAAY12B,GAAQjiC,KAA/D,uCAAoE,WAAOwI,GAAP,UAAAzM,EAAA,SAAAA,EAAA,sEAC/CyM,EAAImJ,OAD2C,OAC5DA,EAD4D,OAE5DknD,EAAU,IAAI/mD,KAAK,CAACH,GAAO,CAAE/S,KAAe,QAATwL,EACrC,0EACA,sEAEAnJ,EAAMlH,OAAO6X,IAAIC,gBAAgBgnD,IACjC98D,EAAI8L,SAASnR,cAAc,MAC7BoiE,SAAF,gBAAsB5oB,KACtBn0C,EAAE2R,KAAOzM,EACTlF,EAAEkW,QACFlW,EAAEoe,SAXgE,4CAApE,uDAYGha,MAAME,QAAQD,QAOb24D,EAAU,CACdpvB,IAAK,WAJL5vC,OAAOi/D,SAKPpvB,IAAK,kBAAM8uB,EAAa,QACxB7uB,MAAO,kBAAM6uB,EAAa,WAY5B,OACE,gCAEIz9D,GACAA,EAAK5F,OAAS,GACd,uBAAK0B,GAAG,mBACN,2BACE,uBAAKE,UAAU,kBAAkByI,EAAE,yBACnC,uBAAKzI,UAAU,WAEXsgE,GACA,2BACE,wBAAMtgE,UAAU,uBAChB,6BAAQsgE,IAGZ,yBAAI73D,EAAE,GAAD,OAxBJ,CACT+2F,EAAE,kCACFC,EAAE,oCACFC,EAAE,oCAEQ10D,OAqBJ,gBAAC,KAAD,CACElrC,GAAG,QACHJ,MAAM,MACNC,OAAO,OACPqiE,eA7EW,CACrBrmD,SAAS,EACTzE,SAAU,SACVnU,SAAU,CAAEowB,EAAG,IAAK8uC,EAAG,IACvBC,UAAW,CACTC,MAAO,UACPC,WAAY,UAwEJC,WAAW,UACXC,aAAc,CACZC,UAAW,WACXhjE,MAAO,GACPijE,eAAgB,CAAE9iE,MAAO,GACzB+iE,eAAgB,CAAE/iE,MAAO,GACzBgjE,WAAY,CAAEP,MAAO,UAAWC,WAAY,QAASx+C,KAAM,GAAI++C,cAAe,OAC9EC,qBAAsB,QAExBC,aAAc,CACZL,eAAgB,CAAE9iE,MAAO,GACzB+iE,eAAgB,CAAE/iE,MAAO,IAE3BojE,SAAU,CAAEX,MAAO,QACnB72D,OAAQlJ,IAAKC,SACbwJ,QAAS,CAAEk3D,QAAQ,IAEnB,gBAAC,KAAD,CAAQ3lD,SAAU,CAAC4lD,KAAcC,KAAQxxB,KAASyxB,KAAWC,QAC7D,gBAAC,KAAD,KACE,gBAAC,KAAD,CAAiB9qD,KAAK,UAAUzS,KAAwB,OAAlBxD,IAAKC,SAAoB,aAAe,SAAUyJ,WAAY9H,EAAMo/D,MAAM,cAAcC,MAAM,yBAAyB17D,KAAK,SAAS27D,YAAY,WAI7L,uBAAKxjE,GAAG,cACN,uBAAKE,UAAU,UACb,6BAAQyI,EAAE,wCACV,6BAAQA,EAAE,qCAEXzE,GACCA,EAAK5F,OAAS,GACd4F,EAAKvB,KAAI,SAACvE,EAAGwE,GACX,OACE,uBAAKpE,IAAKoE,EAAO1C,UAAU,kBACzB,6BAAQ9B,EAAEwiE,aACV,6BAAQxiE,EAAE0iE,4BAKlB,uBAAK5gE,UAAU,UACb,sCACA,6BAAQmX,IAEV,gBAAC,GAAD,CAAQqU,SAAUs2C,EAASnvB,IAAI,YAAY7yC,GAAG,qBCxL7CyjE,GAAkB,SAAC,GAAgB,IAAdv4B,EAAa,EAAbA,OACxBviC,EAAMC,cAAND,EACR,EAAsBlH,aAAiBD,GAAhCI,EAAP,oBACA,EAAgDH,aAAiBq2E,IAAjE,mBAAyBG,GAAzB,WACA,EAAwDx2E,WAAe,IAAvE,mBAAO0wB,EAAP,KAA6BC,EAA7B,KACA,EAAkD3wB,WAAe,IAAjE,mBAAOswB,EAAP,KAA0BC,EAA1B,KACA,EAAgDvwB,WAAe,IAA/D,mBAAOoxB,EAAP,KAAyBC,EAAzB,KACA,EAAoDrxB,WAAe,CACjEypC,OAAQA,EACRq0D,KAAwB,OAAlBj9F,IAAKC,SACXyqC,cAAe,KACfN,WAAY,KACZE,QAAS,KACTf,UAAW,KACX75B,OAAQ,KACRE,WAAY,OARd,mBAAO2tF,EAAP,KAA2BC,EAA3B,KAWA,EAA8Cr+F,WAAe,KAA7D,mBAAO4iE,EAAP,KAAwBC,EAAxB,KAEMrP,EAAW,uCAAG,gCAAAjwD,EAAA,sEACS0I,GAAoB9L,EAAYjB,aACxDsI,MAAK,SAAAvD,GACJ,GAAIA,EAASC,GACX,OAAOD,EAASwD,UAJJ,cACdwiC,EADc,gBAOKz+B,GAAarL,EAAYjB,aAC7CsI,MAAK,SAAAvD,GACJ,GAAIA,EAASC,GACX,OAAOD,EAASwD,UAVJ,cAOdgrB,EAPc,gBAaI3mB,GAAY3L,EAAYjB,aAC3CsI,MAAK,SAAAvD,GACJ,GAAIA,EAASC,GACX,OAAOD,EAASwD,UAhBJ,OAadme,EAbc,OAoBlB+K,EAAwBsZ,GACxB1Z,EAAqBkC,GACrBpB,EAAoBzL,GAtBF,4CAAH,qDAyBjB5lB,aAAgB,WACdwzD,MACC,CAAC3yD,IAAKC,WAET,IA2BMgqC,EAAgB,CACpB,CACEpqC,KAAwB,OAAlBG,IAAKC,SAAoB,YAAc,UAC7CR,OAAO,GACN,CACDI,KAAwB,OAAlBG,IAAKC,SAAoB,YAAc,WAC7CR,OAAO,IAIX,OACE,gCACE,uBAAK/B,GAAG,mBACN,uBAAKE,UAAU,gBACb,wBAAMA,UAAU,qBAChB,6BAAQyI,EAAE,yBAEZ,sBAAIzI,UAAU,UACd,uBAAKA,UAAU,UACb,uBAAKA,UAAU,SACb,6BAAQyI,EAAE,8BACV,gBAAC,KAAD,CACE3I,GAAG,gBACHuU,YAAa5L,EAAE,yCACfqD,WAAYmmB,EACZrmB,OAAQ,CAAE3J,KAAwB,OAAlBG,IAAKC,SAAoB,SAAW,SAAUR,MAAO,MACrEA,MAAO89F,EAAqBA,EAAmB7yD,cAAgB,GAC/D7kB,OAAQ,SAACplB,GAAD,OAAO+8F,GACb,SAAAD,GAAkB,kCACbA,GADa,IAEhB7yD,cAAejqC,EAAEhB,YAGrBinB,iBAAiB,KAGrB,uBAAK9oB,UAAU,SACb,6BAAQyI,EAAE,uBACV,gBAAC,KAAD,CACE3I,GAAG,YACH6oB,YAAY,EACZtU,YAAa5L,EAAE,sBACf6C,OAAQlJ,IAAKC,SACbymB,iBAAiB,EACjBy2C,WAAW,EACXt3C,OAAQ,SAACplB,GAAD,OAAO+8F,GACb,SAAAD,GAAkB,kCACbA,GADa,IAEhBnzD,WAAY3pC,EAAE4pC,WAAa5pC,EAAE4pC,UAAUnjC,cAAckX,MAAM,KAAK,GAChEksB,QAAS7pC,EAAE8pC,SAAW9pC,EAAE8pC,QAAQrjC,cAAckX,MAAM,KAAK,YAKjE,uBAAKxgB,UAAU,SACb,6BAAQyI,EAAE,uBACV,gBAAC,KAAD,CACE3I,GAAG,WACHuU,YAAa5L,EAAE,kCACfqD,WAAYugC,EACZzgC,OAAQ,CAAE3J,KAAM,OAAQJ,MAAO,SAC/BA,MAAO89F,EAAqBA,EAAmBh0D,UAAY,GAC3D1jB,OAAQ,SAACplB,GAAD,OAAO+8F,GACb,SAAAD,GAAkB,kCACbA,GADa,IAEhBh0D,UAAW9oC,EAAEhB,YAGjBinB,iBAAiB,KAGrB,uBAAK9oB,UAAU,SACb,6BAAQyI,EAAE,wBACV,gBAAC,KAAD,CACE3I,GAAG,YACHuU,YAAa5L,EAAE,mCACfqD,WAAY+lB,EACZjmB,OAAQ,CAAE3J,KAAyB,OAAlBG,IAAKC,SAAqB,SAAW,SAAUR,MAAO,MACvEgnB,gBAAgB,EAChBhnB,MAAO89F,EAAqBA,EAAmB7tF,OAAS,GACxDmW,OAAQ,SAACplB,GAAD,OAAO+8F,GACb,SAAAD,GAAkB,kCACbA,GADa,IAEhB7tF,OAAQjP,EAAEhB,YAGdinB,iBAAiB,KAGrB,uBAAK9oB,UAAU,SACb,6BAAQyI,EAAE,yBACV,gBAAC,KAAD,CACE3I,GAAG,aACHuU,YAAa5L,EAAE,oCACfqD,WAAY6mB,EACZ/mB,OAAQ,CAAE3J,KAAyB,OAAlBG,IAAKC,SAAqB,SAAW,SAAUR,MAAO,MACvEA,MAAO89F,EAAqBA,EAAmB3tF,WAAa,GAC5DiW,OAAQ,SAACplB,GAAD,OAAO+8F,GACb,SAAAD,GAAkB,kCACbA,GADa,IAEhB3tF,WAAYnP,EAAEhB,YAGlBinB,iBAAiB,KAGrB,uBAAK9oB,UAAU,UACb,gBAAC,KAAD,CACE6T,QAASpL,EAAE,oCACXgX,gBAAgB,EAChBtV,QAzIW,WACrB,IAAIm6D,EAAe,CACjB7U,aAAckwC,EAAmB7yD,cACjC4iB,YAAaiwC,EAAmBnzD,WAChCmjB,UAAWgwC,EAAmBjzD,QAC9BhnC,OAAQi6F,EAAmBh0D,UAC3Bt7B,QAASsvF,EAAmB7tF,OAC5B/Q,SAAU4+F,EAAmB3tF,YAK/By3B,GAAsB/nC,EAAYjB,YAAak/F,EAAoB30D,GAFnD,GAGbjiC,MAAK,SAAAvD,GACAA,EAASC,IACXqJ,QAAQC,QAAQvJ,EAASwD,QAAQD,MAAK,SAAA/E,GAEpC+zE,EAAoB,CAClB/zE,KAAMA,EACN+8D,QAASuD,IAEXF,EAAmB,UAqHjB5kD,WAAW,EACXnU,SAAU84D,SCjMX07B,I,OAAgB,WAE3B,IAAQp3F,EAAMC,cAAND,EACR,EAA2BlH,aAAiBq2E,IAArCE,EAAP,oBAIA,OACE,gCACE,gBAAC,GAAD,CAAoBh4E,GAAG,MACvB,uBAAKA,GAAG,aACR,gBAAC0M,EAAA,EAAD,CAAWxM,UAAU,eAAeF,GAAG,iBACrC,gBAACqhB,GAAA,EAAD,KACE,uBAAKnhB,UAAU,UACb,uBAAKA,UAAU,cACZyI,EAAE,gCAIT,gBAAC0Y,GAAA,EAAD,KACE,uBAAKnhB,UAAU,mBACb,gBAAC,GAAD,CAAiBgrC,OAhBZ,KAmBL8sC,GACAA,EAAiB9zE,MACjB8zE,EAAiB9zE,KAAK5F,OAAS,GAE/B,uBAAK4B,UAAU,mBACb,gBAAC,GAAD,CAAiBgrC,OAxBd,UCJJ80D,GAAmB,WAE9B,IAAQr3F,EAAMC,cAAND,EACR,EAA2BlH,aAAiBq2E,IAArCE,EAAP,oBAGA,OACE,gCACE,gBAAC,GAAD,CAAoBh4E,GAAG,MACvB,uBAAKA,GAAG,aACR,gBAAC0M,EAAA,EAAD,CAAWxM,UAAU,eAAeF,GAAG,iBACrC,gBAACqhB,GAAA,EAAD,KACE,uBAAKnhB,UAAU,UACb,uBAAKA,UAAU,cACZyI,EAAE,kCAIT,gBAAC0Y,GAAA,EAAD,KACE,uBAAKnhB,UAAU,mBACb,gBAAC,GAAD,CAAiBgrC,OAhBZ,KAmBL8sC,GACAA,EAAiB9zE,MACjB8zE,EAAiB9zE,KAAK5F,OAAS,GAE/B,uBAAK4B,UAAU,mBACb,gBAAC,GAAD,CAAiBgrC,OAxBd,SCJJ+0D,GAAiB,WAE5B,IAAQt3F,EAAMC,cAAND,EACR,EAA2BlH,aAAiBq2E,IAArCE,EAAP,oBAGA,OACE,gCACE,gBAAC,GAAD,CAAoBh4E,GAAG,MACvB,uBAAKA,GAAG,aACR,gBAAC0M,EAAA,EAAD,CAAWxM,UAAU,eAAeF,GAAG,iBACrC,gBAACqhB,GAAA,EAAD,KACE,uBAAKnhB,UAAU,UACb,uBAAKA,UAAU,cACZyI,EAAE,iCAIT,gBAAC0Y,GAAA,EAAD,KACE,uBAAKnhB,UAAU,mBACb,gBAAC,GAAD,CAAiBgrC,OAhBZ,KAmBL8sC,GACAA,EAAiB9zE,MACjB8zE,EAAiB9zE,KAAK5F,OAAS,GAE/B,uBAAK4B,UAAU,mBACb,gBAAC,GAAD,CAAiBgrC,OAxBd,S,YCmGXg1D,GAAiB,CACrBC,MAAM,GAAD,OAAK16F,gBAGZ26F,KAAWC,WAAWH,IAEtBI,YACEC,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,MAGVjgD,IAAK/uC,KAAKgvF,EAAQ,MAElBjgD,IAAK/uC,KAAKgvF,EAAQ,MAClBjgD,IAAK/uC,KAAKgvF,EAAQ,MAElB,IAAMC,GAAe,SAAC9gG,EAAO+gG,GAC3B,IAAM5tB,EvMlGG,CACH,CAAE35D,KAAM,SAAUhY,OAAQ,SAC1B,CAAEgY,KAAM,IAAKhY,OAAQ,GAAI6xE,WAAY,CAAEC,QAAQ,IAC/C,CAAE95D,KAAM,WAAYhY,OAAQ,QAAS6xE,WAAY,CAAEC,QAAQ,IAC3D,CAAE95D,KAAM,eAAgBhY,OAAQ,QAAS6xE,WAAY,CAAEI,QAAQ,IAC/D,CAAEj6D,KAAM,wBAAyBhY,OAAQ,OAAQ6xE,WAAY,CAAEC,QAAQ,IACvE,CAAE95D,KAAM,0BAA2BhY,OAAQ,QAAS6xE,WAAY,CAAEI,QAAQ,IAC1E,CAAEj6D,KAAM,mCAAoChY,OAAQ,kBAAmB6xE,WAAY,CAAEv9D,KAAM,4BAC3F,CAAE0D,KAAM,mBAAoBhY,OAAQ,QAAS6xE,WAAY,CAAEI,QAAQ,IACnE,CAAEj6D,KAAM,4BAA6BhY,OAAQ,WAAY6xE,WAAY,CAAEv9D,KAAM,qBAC7E,CAAE0D,KAAM,oBAAqBhY,OAAQ,QAAS6xE,WAAY,CAAEI,QAAQ,IACpE,CAAEj6D,KAAM,mBAAoBhY,OAAQ,QAAS6xE,WAAY,CAAEI,QAAQ,IACnE,CAAEj6D,KAAM,mBAAoBhY,OAAQ,QAASC,OAAQ,QAAS4xE,WAAY,CAAEI,QAAQ,IACpF,CAAEj6D,KAAM,4BAA6BhY,OAAQ,cAAeC,OAAQ,YAAa4xE,WAAY,CAAEv9D,KAAM,qBACrG,CAAE0D,KAAM,kBAAmBhY,OAAQ,WAAYC,OAAQ,QAAS4xE,WAAY,CAAEI,QAAQ,IACtF,CAAEj6D,KAAM,2BAA4BhY,OAAQ,WAAYC,OAAQ,iBAAkB4xE,WAAY,CAAEv9D,KAAM,oBACtG,CAAE0D,KAAM,0BAA2BhY,OAAQ,gBAAcC,OAAQ,UAAW4xE,WAAY,CAAEv9D,KAAM,oBAChG,CAAE0D,KAAM,iBAAkBhY,OAAQ,WAAYC,OAAQ,QAAS4xE,WAAY,CAAEI,QAAQ,IACrF,CAAEj6D,KAAM,oBAAqBhY,OAAQ,WAAYC,OAAQ,QAAS4xE,WAAY,CAAEI,QAAQ,IACxF,CAAEj6D,KAAM,4BAA6BhY,OAAQ,gBAAcC,OAAQ,UAAW4xE,WAAY,CAAEv9D,KAAM,sBAClG,CAAE0D,KAAM,6BAA8BhY,OAAQ,QAASC,OAAQ,aAAc4xE,WAAY,CAAEv9D,KAAM,sBACjG,CAAE0D,KAAM,uBAAwBhY,OAAQ,WAAYC,OAAQ,QAAS4xE,WAAY,CAAEI,QAAQ,IAC3F,CAAEj6D,KAAM,+BAAgChY,OAAQ,gBAAcC,OAAQ,UAAW4xE,WAAY,CAAEv9D,KAAM,yBACrG,CAAE0D,KAAM,gCAAiChY,OAAQ,kBAAmBC,OAAQ,iBAAkB4xE,WAAY,CAAEv9D,KAAM,yBAClH,CAAE0D,KAAM,iBAAkBhY,OAAQ,WAAYC,OAAQ,QAAS4xE,WAAY,CAAEI,QAAQ,IACrF,CAAEj6D,KAAM,0BAA2BhY,OAAQ,cAAeC,OAAQ,UAAW4xE,WAAY,CAAEv9D,KAAM,mBACjG,CAAE0D,KAAM,yBAA0BhY,OAAQ,cAAeC,OAAQ,UAAW4xE,WAAY,CAAEv9D,KAAM,mBAChG,CAAE0D,KAAM,0BAA2BhY,OAAQ,WAAYC,OAAQ,QAAS4xE,WAAY,CAAEI,QAAQ,IAC9F,CAAEj6D,KAAM,mCAAoChY,OAAQ,uBAAwBC,OAAQ,sBAAuB4xE,WAAY,CAAEv9D,KAAM,4BAC/H,CAAE0D,KAAM,wBAAyBhY,OAAQ,WAAYC,OAAQ,QAAS4xE,WAAY,CAAEI,QAAQ,IAC5F,CAAEj6D,KAAM,iCAAkChY,OAAQ,qBAAsBC,OAAQ,qBAAsB4xE,WAAY,CAAEv9D,KAAM,0BAC1H,CAAE0D,KAAM,iCAAkChY,OAAQ,WAAYC,OAAQ,QAAS4xE,WAAY,CAAEI,QAAQ,IACrG,CAAEj6D,KAAM,0CAA2ChY,OAAQ,oBAAqBC,OAAQ,oBAAqB4xE,WAAY,CAAEv9D,KAAM,mCACjI,CAAE0D,KAAM,+BAAgChY,OAAQ,WAAYC,OAAQ,QAAS4xE,WAAY,CAAEI,QAAQ,IACnG,CAAEj6D,KAAM,wCAAyChY,OAAQ,kBAAmBC,OAAQ,kBAAmB4xE,WAAY,CAAEv9D,KAAM,iCAC3H,CAAE0D,KAAM,YAAahY,OAAQ,WAAYC,OAAQ,QAAS4xE,WAAY,CAAEI,QAAQ,IAChF,CAAEj6D,KAAM,qBAAsBhY,OAAQ,QAASC,OAAQ,QAAS4xE,WAAY,CAAEv9D,KAAM,cACpF,CAAE0D,KAAM,wBAAyBhY,OAAQ,WAAYC,OAAQ,QAAS4xE,WAAY,CAAEI,QAAQ,IAC5F,CAAEj6D,KAAM,iCAAkChY,OAAQ,oBAAqBC,OAAQ,kBAAmB4xE,WAAY,CAAEv9D,KAAM,0BACtH,CAAE0D,KAAM,2BAA4BhY,OAAQ,WAAYC,OAAQ,QAAS4xE,WAAY,CAAEI,QAAQ,IAC/F,CAAEj6D,KAAM,oCAAqChY,OAAQ,kBAAmBC,OAAQ,qBAAsB4xE,WAAY,CAAEv9D,KAAM,6BAC1H,CAAE0D,KAAM,yBAA0BhY,OAAQ,WAAYC,OAAQ,QAAS4xE,WAAY,CAAEI,QAAQ,IAC7F,CAAEj6D,KAAM,gCAAiChY,OAAQ,4BAA6BC,OAAQ,mBAAoB4xE,WAAY,CAAEI,QAAQ,IAChI,CAAEj6D,KAAM,oCAAqChY,OAAQ,0BAA2BC,OAAQ,wBAAyB4xE,WAAY,CAAEI,QAAQ,IACvI,CAAEj6D,KAAM,gBAAiBhY,OAAQ,oBAAqBC,OAAQ,oBAAqB4xE,WAAY,CAAEI,QAAQ,IACzG,CAAEj6D,KAAM,uBAAwBhY,OAAQ,qBAAmBC,OAAQ,gBAAiB4xE,WAAY,CAAEI,QAAQ,IAC1G,CAAEj6D,KAAM,gCAAiChY,OAAQ,qBAAmBC,OAAQ,gBAAiB4xE,WAAY,CAAEI,QAAQ,IACnH,CAAEj6D,KAAM,0CAA2ChY,OAAQ,mCAA8BC,OAAQ,+BAAgC4xE,WAAY,CAAEI,QAAQ,IACvJ,CAAEj6D,KAAM,yCAA0ChY,OAAQ,uBAAqBC,OAAQ,kBAAmB4xE,WAAY,CAAEI,QAAQ,IAChI,CAAEj6D,KAAM,4CAA6ChY,OAAQ,qBAAsBC,OAAQ,qBAAsB4xE,WAAY,CAAEI,QAAQ,IACvI,CAAEj6D,KAAM,iCAAkChY,OAAQ,UAAWC,OAAQ,SAAU4xE,WAAY,CAAEI,QAAQ,IACrG,CAAEj6D,KAAM,2CAA4ChY,OAAQ,qBAAsBC,OAAQ,oBAAqB4xE,WAAY,CAAEI,QAAQ,IACrI,CAAEj6D,KAAM,kDAAmDhY,OAAQ,+BAAgCC,OAAQ,4BAA6B4xE,WAAY,CAAEI,QAAQ,IAC9J,CAAEj6D,KAAM,0CAA2ChY,OAAQ,qBAAsBC,OAAQ,mBAAoB4xE,WAAY,CAAEI,QAAQ,IACnI,CAAEj6D,KAAM,8CAA+ChY,OAAQ,2BAAsBC,OAAQ,uBAAwB4xE,WAAY,CAAEI,QAAQ,IAC3I,CAAEj6D,KAAM,2CAA4ChY,OAAQ,uBAAqBC,OAAQ,oBAAqB4xE,WAAY,CAAEI,QAAQ,IACpI,CAAEj6D,KAAM,+BAAgChY,OAAQ,0CAAqCC,OAAQ,sCAAuC4xE,WAAY,CAAEI,QAAQ,IAC1J,CAAEj6D,KAAM,+DAAgEhY,OAAQ,mCAA8BC,OAAQ,+BAAgC4xE,WAAY,CAAEv9D,KAAM,iCAC1K,CAAE0D,KAAM,2CAA4ChY,OAAQ,sBAAuBC,OAAQ,2BAA4B4xE,WAAY,CAAEI,QAAQ,IAC7I,CAAEj6D,KAAM,0CAA2ChY,OAAQ,sBAAuBC,OAAQ,2BAA4B4xE,WAAY,CAAEI,QAAQ,IAC5I,CAAEj6D,KAAM,uCAAwChY,OAAQ,sBAAuBC,OAAQ,2BAA4B4xE,WAAY,CAAEI,QAAQ,IACzI,CAAEj6D,KAAM,yCAA0ChY,OAAQ,sBAAuBC,OAAQ,2BAA4B4xE,WAAY,CAAEI,QAAQ,IAC3I,CAAEj6D,KAAM,yCAA0ChY,OAAQ,sBAAuBC,OAAQ,2BAA4B4xE,WAAY,CAAEI,QAAQ,IAC3I,CAAEj6D,KAAM,kDAAmDhY,OAAQ,8BAA4BC,OAAQ,qBAAsB4xE,WAAY,CAAEv9D,KAAM,2CACjJ,CAAE0D,KAAM,uCAAwChY,OAAQ,sBAAuBC,OAAQ,2BAA4B4xE,WAAY,CAAEI,QAAQ,IACzI,CAAEj6D,KAAM,mCAAoChY,OAAQ,sBAAuBC,OAAQ,2BAA4B4xE,WAAY,CAAEI,QAAQ,IACrI,CAAEj6D,KAAM,wBAAyBhY,OAAQ,wCAAsCC,OAAQ,0BAA2B4xE,WAAY,CAAEI,QAAQ,IAExI,CAAEj6D,KAAM,aAAchY,OAAQ,YAAUC,OAAQ,YAAa4xE,WAAY,CAAEI,QAAQ,IACnF,CAAEj6D,KAAM,oBAAqBhY,OAAQ,SAAUC,OAAQ,SAAU4xE,WAAY,CAAEI,QAAQ,IACvF,CAAEj6D,KAAM,oBAAqBhY,OAAQ,YAAUC,OAAQ,SAAU4xE,WAAY,CAAEI,QAAQ,IACvF,CAAEj6D,KAAM,mBAAoBhY,OAAQ,QAASC,OAAQ,QAAS4xE,WAAY,CAAEI,QAAQ,IACpF,CAAEj6D,KAAM,oBAAqBhY,OAAQ,SAAUC,OAAQ,SAAU4xE,WAAY,CAAEI,QAAQ,IACvF,CAAEj6D,KAAM,uBAAwBhY,OAAQ,eAAaC,OAAQ,YAAa4xE,WAAY,CAAEI,QAAQ,IAChG,CAAEj6D,KAAM,kBAAmBhY,OAAQ,SAAOC,OAAQ,OAAQ4xE,WAAY,CAAEI,QAAQ,IAChF,CAAEj6D,KAAM,mBAAoBhY,OAAQ,WAASC,OAAQ,QAAS4xE,WAAY,CAAEI,QAAQ,IACpF,CAAEj6D,KAAM,sBAAuBhY,OAAQ,aAAWC,OAAQ,WAAY4xE,WAAY,CAAEI,QAAQ,IAC5F,CAAEj6D,KAAM,8BAA+BhY,OAAQ,yBAAuBC,OAAQ,sBAAuB4xE,WAAY,CAAEI,QAAQ,IAC3H,CAAEj6D,KAAM,0BAA2BhY,OAAQ,oBAAkBC,OAAQ,gBAAiB4xE,WAAY,CAAEI,QAAQ,IAC5G,CAAEj6D,KAAM,sBAAuBhY,OAAQ,WAAYC,OAAQ,WAAY4xE,WAAY,CAAEI,QAAQ,IAC7F,CAAEj6D,KAAM,kBAAmBhY,OAAQ,OAAQC,OAAQ,OAAQ4xE,WAAY,CAAEI,QAAQ,IACjF,CAAEj6D,KAAM,uBAAwBhY,OAAQ,YAAaC,OAAQ,YAAa4xE,WAAY,CAAEI,QAAQ,IAChG,CAAEj6D,KAAM,yBAA0BhY,OAAQ,WAASC,OAAQ,cAAe4xE,WAAY,CAAEI,QAAQ,IAEhG,CAAEj6D,KAAM,iBAAkBhY,OAAQ,QAClC,CAAEgY,KAAM,yBAA0BhY,OAAQ,OAAQC,OAAQ,OAAQ4xE,WAAY,CAAEv9D,KAAM,MACtF,CAAE0D,KAAM,SAAUhY,OAAQ,SuMa7BsB,QAAO,gBAAG0W,EAAH,EAAGA,KAAH,OAAgD,IAAlCxZ,EAAMqG,MAAMmT,KAAKha,QAAQga,MAC9CvW,KAAI,gBAAGuW,EAAH,EAAGA,KAASwnF,EAAZ,sCACHxnF,KAAMjb,OAAOgB,KAAKS,EAAMqG,MAAMiqB,QAAQ1xB,OAClCL,OAAOgB,KAAKS,EAAMqG,MAAMiqB,QAAQ4lC,QAChC,SAAC18C,EAAMkgE,GAAP,OACElgE,EAAK/S,QAAL,WAAiBizE,GAAS15E,EAAMqG,MAAMiqB,OAAOopD,MAC/ClgE,GAEAA,GACDwnF,MAEP,OACE,gCACE,gBAAC,GAAD,CAAa7tB,OAAQA,IACrB,gBAAC4tB,EAAc/gG,KAmINihG,GA9HH,WAIV,OAHA39F,OAAO49F,UAAUt8F,KAAK,CACpBL,MAAO,aAGP,gBAAC,wBAAD,KACE,gBAAC,GAAD,KACE,gBAAC,EAAD,KACE,gBAAC,EAAD,KACE,gBAAC,GAAD,KACE,gBAAC,GAAD,KACE,gBAAC,GAAD,KACE,gBAAC,IAAD,CAAOiV,KAAK,SAASg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOgzE,OAC5D,gBAAC,IAAD,CAAOmuB,OAAK,EAAC3nF,KAAK,IAAIg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOwhB,OAC7D,gBAAC,IAAD,CAAO2/E,OAAK,EAAC3nF,KAAK,gBAAgBg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAO+vB,OACzE,gBAAC,IAAD,CAAOoxE,OAAK,EAAC3nF,KAAK,eAAeg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOo4B,OACxE,gBAAC,GAAD,KACE,gBAAC,IAAD,CAAO+oE,OAAK,EAAC3nF,KAAK,iCAAiCg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOwpE,OAC1F,gBAAC,IAAD,CAAO23B,OAAK,EAAC3nF,KAAK,0CAA0Cg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOypE,QAErG,gBAAC,IAAD,CAAO03B,OAAK,EAAC3nF,KAAK,+BAA+Bg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAO+sE,OACxF,gBAAC,IAAD,CAAOo0B,OAAK,EAAC3nF,KAAK,wCAAwCg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOgtE,OACjG,gBAAC,IAAD,CAAOm0B,OAAK,EAAC3nF,KAAK,wBAAwBg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAO+7B,OACjF,gBAAC,IAAD,CAAOolE,OAAK,EAAC3nF,KAAK,0BAA0Bg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOq/B,OACnF,gBAAC,IAAD,CAAO8hE,OAAK,EAAC3nF,KAAK,mCAAmCg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOw/B,OAC5F,gBAAC,IAAD,CAAO2hE,OAAK,EAAC3nF,KAAK,mBAAmBg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAO0mC,OAC5E,gBAAC,IAAD,CAAOy6D,OAAK,EAAC3nF,KAAK,4BAA4Bg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOqnC,OACrF,gBAAC,IAAD,CAAO85D,OAAK,EAAC3nF,KAAK,oBAAoBg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAO4kC,OAC7E,gBAAC,IAAD,CAAOu8D,OAAK,EAAC3nF,KAAK,mBAAmBg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOg3F,OAC5E,gBAAC,IAAD,CAAOmK,OAAK,EAAC3nF,KAAK,mBAAmBg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOq8F,OAC5E,gBAAC,IAAD,CAAO8E,OAAK,EAAC3nF,KAAK,4BAA4Bg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOy9F,OACrF,gBAAC,GAAD,KACE,gBAAC,IAAD,CAAO0D,OAAK,EAAC3nF,KAAK,0BAA0Bg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOqgG,OACnF,gBAAC,IAAD,CAAOc,OAAK,EAAC3nF,KAAK,4BAA4Bg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOsgG,OACrF,gBAAC,IAAD,CAAOa,OAAK,EAAC3nF,KAAK,+BAA+Bg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOugG,QAE1F,gBAAC,GAAD,KACE,gBAAC,IAAD,CAAOY,OAAK,EAAC3nF,KAAK,kBAAkBg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOytC,OAC3E,gBAAC,IAAD,CAAO0zD,OAAK,EAAC3nF,KAAK,2BAA2Bg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOusD,OACpF,gBAAC,IAAD,CAAO40C,OAAK,EAAC3nF,KAAK,oBAAoBg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOsuD,OAC7E,gBAAC,IAAD,CAAO6yC,OAAK,EAAC3nF,KAAK,6BAA6Bg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAO0uD,OACtF,gBAAC,IAAD,CAAOyyC,OAAK,EAAC3nF,KAAK,uBAAuBg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOwvD,OAChF,gBAAC,IAAD,CAAO2xC,OAAK,EAAC3nF,KAAK,gCAAgCg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAO4vD,OACzF,gBAAC,IAAD,CAAOuxC,OAAK,EAAC3nF,KAAK,YAAYg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAO6tE,OACrE,gBAAC,IAAD,CAAOszB,OAAK,EAAC3nF,KAAK,qBAAqBg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOiuE,OAC9E,gBAAC,IAAD,CAAOkzB,OAAK,EAAC3nF,KAAK,wBAAwBg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAO+uE,OACjF,gBAAC,IAAD,CAAOoyB,OAAK,EAAC3nF,KAAK,iCAAiCg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOmvE,OAC1F,gBAAC,IAAD,CAAOgyB,OAAK,EAAC3nF,KAAK,2BAA2Bg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOgwE,OACpF,gBAAC,IAAD,CAAOmxB,OAAK,EAAC3nF,KAAK,oCAAoCg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOowE,OAC7F,gBAAC,IAAD,CAAO+wB,OAAK,EAAC3nF,KAAK,iBAAiBg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOi5F,QAE5E,gBAAC,IAAD,CAAOkI,OAAK,EAAC3nF,KAAK,oCAAoCg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAO2zE,OAC7F,gBAAC,IAAD,CAAOwtB,OAAK,EAAC3nF,KAAK,gBAAgBg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAO4zE,OAEzE,gBAAC,IAAD,CAAOutB,OAAK,EAAC3nF,KAAK,oBAAoBg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOm1E,OAC7E,gBAAC,IAAD,CAAOgsB,OAAK,EAAC3nF,KAAK,oBAAoBg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOo1E,OAC7E,gBAAC,IAAD,CAAO+rB,OAAK,EAAC3nF,KAAK,mBAAmBg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOq1E,OAC5E,gBAAC,IAAD,CAAO8rB,OAAK,EAAC3nF,KAAK,oBAAoBg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOs1E,OAC7E,gBAAC,IAAD,CAAO6rB,OAAK,EAAC3nF,KAAK,uBAAuBg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOu1E,OAChF,gBAAC,IAAD,CAAO4rB,OAAK,EAAC3nF,KAAK,kBAAkBg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAO41E,OAC3E,gBAAC,IAAD,CAAOurB,OAAK,EAAC3nF,KAAK,mBAAmBg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOw1E,OAC5E,gBAAC,IAAD,CAAO2rB,OAAK,EAAC3nF,KAAK,sBAAsBg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOy1E,OAC/E,gBAAC,IAAD,CAAO0rB,OAAK,EAAC3nF,KAAK,8BAA8Bg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAO01E,OACvF,gBAAC,IAAD,CAAOyrB,OAAK,EAAC3nF,KAAK,0BAA0Bg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAO21E,OACnF,gBAAC,IAAD,CAAOwrB,OAAK,EAAC3nF,KAAK,sBAAsBg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAO61E,OAC/E,gBAAC,IAAD,CAAOsrB,OAAK,EAAC3nF,KAAK,kBAAkBg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOg2E,OAC3E,gBAAC,IAAD,CAAOmrB,OAAK,EAAC3nF,KAAK,uBAAuBg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAO81E,OAChF,gBAAC,IAAD,CAAOqrB,OAAK,EAAC3nF,KAAK,yBAAyBg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAO+1E,OAElF,gBAAC,IAAD,CAAOorB,OAAK,EAAC3nF,KAAK,iBAAiBg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOs3D,OAC1E,gBAAC,IAAD,CAAO6pC,OAAK,EAAC3nF,KAAK,0BAA0Bg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAO23D,OACnF,gBAAC,GAAD,KACE,gBAAC,IAAD,CAAOwpC,OAAK,EAAC3nF,KAAK,0BAA0Bg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAO+lE,OACnF,gBAAC,IAAD,CAAOo7B,OAAK,EAAC3nF,KAAK,mCAAmCg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAO+nE,SAGhG,gBAAC,GAAD,KACE,gBAAC,IAAD,CAAOo5B,OAAK,EAAC3nF,KAAK,yBAAyBg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOilE,QAEpF,gBAAC,IAAD,CAAOk8B,OAAK,EAAC3nF,KAAK,wBAAwBg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOyqE,OACjF,gBAAC,IAAD,CAAO02B,OAAK,EAAC3nF,KAAK,iCAAiCg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAO0qE,OAC1F,gBAAC,IAAD,CAAOy2B,OAAK,EAAC3nF,KAAK,yBAAyBg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOywE,OAClF,gBAAC,GAAD,KACE,gBAAC,IAAD,CAAO0wB,OAAK,EAAC3nF,KAAK,uBAAuBg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOuhF,QAElF,gBAAC,IAAD,CAAO4f,OAAK,EAAC3nF,KAAK,gCAAgCg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAO6zE,OACzF,gBAAC,IAAD,CAAOstB,OAAK,EAAC3nF,KAAK,0CAA0Cg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAO8zE,OACnG,gBAAC,IAAD,CAAOqtB,OAAK,EAAC3nF,KAAK,yCAAyCg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAO00E,OAClG,gBAAC,IAAD,CAAOysB,OAAK,EAAC3nF,KAAK,4CAA4Cg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAO20E,OACrG,gBAAC,IAAD,CAAOwsB,OAAK,EAAC3nF,KAAK,iCAAiCg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOw0E,OAC1F,gBAAC,IAAD,CAAO2sB,OAAK,EAAC3nF,KAAK,2CAA2Cg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOy0E,OACpG,gBAAC,IAAD,CAAO0sB,OAAK,EAAC3nF,KAAK,8CAA8Cg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAO40E,OACvG,gBAAC,IAAD,CAAOusB,OAAK,EAAC3nF,KAAK,kDAAkDg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAO60E,OAC3G,gBAAC,IAAD,CAAOssB,OAAK,EAAC3nF,KAAK,0CAA0Cg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAO80E,OACnG,gBAAC,IAAD,CAAOqsB,OAAK,EAAC3nF,KAAK,2CAA2Cg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAO+0E,OACpG,gBAAC,IAAD,CAAOosB,OAAK,EAAC3nF,KAAK,+BAA+Bg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOm0E,OACxF,gBAAC,IAAD,CAAOgtB,OAAK,EAAC3nF,KAAK,+DAA+Dg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOo0E,OACxH,gBAAC,IAAD,CAAO+sB,OAAK,EAAC3nF,KAAK,2CAA2Cg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOmkF,OACpG,gBAAC,IAAD,CAAOgd,OAAK,EAAC3nF,KAAK,0CAA0Cg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAO2lF,OACnG,gBAAC,GAAD,KACE,gBAAC,IAAD,CAAOwb,OAAK,EAAC3nF,KAAK,uCAAuCg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAO0oF,QAElG,gBAAC,IAAD,CAAOyY,OAAK,EAAC3nF,KAAK,yCAAyCg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOwpF,OAClG,gBAAC,IAAD,CAAO2X,OAAK,EAAC3nF,KAAK,yCAAyCg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAO2rF,OAClG,gBAAC,IAAD,CAAOwV,OAAK,EAAC3nF,KAAK,kDAAkDg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOu0F,OAC3G,gBAAC,IAAD,CAAO4M,OAAK,EAAC3nF,KAAK,uCAAuCg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOg1E,OAChG,gBAAC,IAAD,CAAOmsB,OAAK,EAAC3nF,KAAK,mCAAmCg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOi1E,OAE5F,gBAAC,IAAD,CAAOksB,OAAK,EAAC3nF,KAAK,iBAAiBg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAO80F,OAC1E,gBAAC,GAAD,KACE,gBAAC,IAAD,CAAOqM,OAAK,EAAC3nF,KAAK,yBAAyBg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAO42F,WAM1F,gBAAC,IAAD,CAAOuK,OAAK,EAAC3nF,KAAK,gCAAgCg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAO0wE,OACzF,gBAAC,GAAD,KACE,gBAAC,IAAD,CAAOywB,OAAK,EAAC3nF,KAAK,wBAAwBg6D,OAAQ,SAACxzE,GAAD,OAAW8gG,GAAa9gG,EAAOk1E,YCrQvFksB,GAAcC,QACW,cAA7B/9F,OAAOC,SAAS+9F,UAEa,UAA7Bh+F,OAAOC,SAAS+9F,UAEhBh+F,OAAOC,SAAS+9F,SAASj7F,MACvB,2DA6BJ,SAASk7F,GAAiBC,GACxBngF,UAAUogF,cACPxzE,SAASuzE,GACTj4F,MAAK,SAAAm4F,GACJA,EAAaC,cAAgB,WAC3B,IAAMC,EAAmBF,EAAaG,WACtCD,EAAiBE,cAAgB,WACA,cAA3BF,EAAiB3lB,QACf56D,UAAUogF,cAAcM,WAK1Bn4F,QAAQ1C,IAAI,6CAKZ0C,QAAQ1C,IAAI,4CAMrBwC,OAAM,SAAAC,GACLC,QAAQD,MAAM,4CAA6CA,M,kCCjE3Dq4F,GAAQnhG,aAAaC,QAAQ,qBAAuBC,KAAKC,MAAMH,aAAaC,QAAQ,qBACpFmhG,GAAUD,IAASA,GAAM1gG,aAAew9B,OAAOkjE,GAAM1gG,eACL,IAAlDw9B,OAAOzd,UAAU/f,cAAc9B,QAAQ,QAA8D,IAA9Cs/B,OAAOzd,UAAUxe,UAAUrD,QAAQ,MAAe,KAAO,KAI9G0iG,GAAY,CACdC,GAAIC,GACJhoE,GAAIioE,IAGRz/F,IACK0/F,IAAIC,MACJC,KAAK,CACFN,aAEAO,IAAKR,GAELS,cAAc,EAEdC,cAAe,CACXC,aAAa,KAIVhgG,EAAf,E,qBClBAi+F,EAAQ,KAAUxqB,SAElB,IAAMwsB,GAAUzxF,SAAS4zC,qBAAqB,QAAQ,GAAGY,aAAa,QAChEk9C,GAAc1xF,SAASC,eAAe,QAE5C0xF,IAASvvB,OACL,kBAAC,gBAAD,CAAewvB,SAAUH,IACrB,kBAAC,GAAD,OAENC,IFDa,WACb,GAA6C,kBAAmBzhF,UAAW,CAGzE,GADkB,IAAIlG,IAAIpV,GAAwBzC,OAAOC,UAC3C0/F,SAAW3/F,OAAOC,SAAS0/F,OAIvC,OAGF3/F,OAAO2hB,iBAAiB,QAAQ,WAC9B,IAAMu8E,EAAK,UAAMz7F,GAAN,sBAEPq7F,GAwCV,SAAkCI,GAEhC17F,MAAM07F,GACHj4F,MAAK,SAAAvD,GAGkB,MAApBA,EAASE,SACuD,IAAhEF,EAASL,QAAQu9F,IAAI,gBAAgB1jG,QAAQ,cAG7C6hB,UAAUogF,cAAc0B,MAAM55F,MAAK,SAAAm4F,GACjCA,EAAanpC,aAAahvD,MAAK,WAC7BjG,OAAOC,SAASC,eAKpB+9F,GAAgBC,MAGnB93F,OAAM,WACLE,QAAQ1C,IACN,oEA5DAk8F,CAAwB5B,GAGxBD,GAAgBC,OEhBxB6B,K","file":"static/js/main.d6cd000e.chunk.js","sourcesContent":["var _defs, _g;\n\nvar _excluded = [\"svgRef\", \"title\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from \"react\";\n\nvar SvgLogoVale = function SvgLogoVale(_ref) {\n var svgRef = _ref.svgRef,\n title = _ref.title,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 76.608,\n height: 26.657,\n viewBox: \"0 0 76.608 26.657\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", null, \".a{clip-path:url(#a);}.b{fill:#008f83;}.c{fill:#f3c108;}.d{fill:#77787b;}\"), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"a\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 76.608,\n height: 26.657,\n transform: \"translate(0)\"\n })))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n transform: \"translate(-635.74 -267.63)\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n className: \"a\",\n transform: \"translate(635.74 267.63)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"b\",\n d: \"M734.733,274.085c2.265,1.925,4.449,3.532,6.8,3.532a8.049,8.049,0,0,0,6.337-2.7l-14.579,19.365L715.43,270.4a11.933,11.933,0,0,1,7.775-2.777c4.574,0,8.142,3.588,11.528,6.465\",\n transform: \"translate(-708.506 -267.621)\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"a\",\n transform: \"translate(635.74 267.63)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"c\",\n d: \"M954.4,281.792a6.708,6.708,0,0,0-3.887-1.382c-4.443,0-7.22,4.442-12.908,5.354,2.265,1.925,4.449,3.532,6.8,3.532a8.049,8.049,0,0,0,6.337-2.7Z\",\n transform: \"translate(-911.373 -279.3)\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"a\",\n transform: \"translate(635.74 267.63)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"d\",\n d: \"M1138.256,423.7h-1.782l-2.317,6.257c-.134.362-.215.6-.215.6h-.027s-1.822-4.581-2.76-6.859h-1.875l3.295,8.052a2.069,2.069,0,0,0,1.969,1.245Z\",\n transform: \"translate(-1086.399 -410.14)\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"a\",\n transform: \"translate(635.74 267.63)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"d\",\n d: \"M1368.454,432.863v-1.447h-4.08V423.7H1362.7v9.163Z\",\n transform: \"translate(-1299.539 -410.14)\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"a\",\n transform: \"translate(635.74 267.63)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"d\",\n d: \"M1456.828,432.863v-1.447h-3.873v-2.626h3.272V427.4h-3.272v-2.25h2.229a1.654,1.654,0,0,0,1.846-1.447h-5.749v9.164h5.548Z\",\n transform: \"translate(-1380.423 -410.14)\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"a\",\n transform: \"translate(635.74 267.63)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"d\",\n d: \"M1245.279,432.863l-3.644-9.163h-1.593l-3.792,9.163h1.791l.916-2.331h3.536l.912,2.331Zm-3.335-3.778h-2.4l1.193-3.094.013-.054Z\",\n transform: \"translate(-1184.075 -410.14)\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"a\",\n transform: \"translate(635.74 267.63)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"b\",\n d: \"M-680.071,480.955h-.489v-.385h1.474a1.941,1.941,0,0,1,.984.2,1.1,1.1,0,0,1,.557,1.015,1.255,1.255,0,0,1-1.3,1.334h-.716l-.012,1.352h.545v.386h-1.535v-.386h.465Zm.513,1.773h.574a.831.831,0,0,0,.911-.893.807.807,0,0,0-.385-.765,1.313,1.313,0,0,0-.7-.116h-.386Z\",\n transform: \"translate(566.194 -462.069)\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"a\",\n transform: \"translate(635.74 267.63)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"b\",\n d: \"M-639.306,493.673h-.453v-.758a2.975,2.975,0,0,1,1.108-.244c.813,0,1.248.3,1.248,1.137,0,.275-.036,1.138-.036,1.706h.453v.386h-.905v-.129a3.273,3.273,0,0,1,.062-.557h-.012a1.019,1.019,0,0,1-1.059.758.872.872,0,0,1-.978-.9c0-.881.943-.967,2-.967v-.226c0-.593-.226-.819-.722-.819a1.954,1.954,0,0,0-.7.129v.488Zm1.425.778c-.746,0-1.5,0-1.5.593a.54.54,0,0,0,.594.545c.342,0,.905-.19.905-1.138\",\n transform: \"translate(529.049 -473.118)\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"a\",\n transform: \"translate(635.74 267.63)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"b\",\n d: \"M-600.271,493.321h-.539v-.385h1.04v.17c0,.184-.036.557-.067.813h.018c.122-.465.288-1.039,1.07-1.039a1.257,1.257,0,0,1,.319.049l-.05.452a1.13,1.13,0,0,0-.342-.049c-.648,0-.936.637-.948,1.193l-.024,1.181h.532v.386h-1.481v-.386h.447Z\",\n transform: \"translate(493.373 -473.309)\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"a\",\n transform: \"translate(635.74 267.63)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"b\",\n d: \"M-569.046,493.673h-.453v-.758a2.971,2.971,0,0,1,1.108-.244c.813,0,1.248.3,1.248,1.137,0,.275-.036,1.138-.036,1.706h.453v.386h-.905v-.129a3.267,3.267,0,0,1,.062-.557h-.012a1.018,1.018,0,0,1-1.058.758.872.872,0,0,1-.979-.9c0-.881.942-.967,2-.967v-.226c0-.593-.227-.819-.721-.819a1.954,1.954,0,0,0-.7.129v.488Zm1.426.778c-.746,0-1.5,0-1.5.593a.54.54,0,0,0,.593.545c.341,0,.905-.19.905-1.138\",\n transform: \"translate(464.893 -473.118)\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"a\",\n transform: \"translate(635.74 267.63)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"b\",\n d: \"M-510.748,493.52h1.01c0,.574-.024,1.144-.024,1.865,0,.459.085.948.7.948.917,0,.93-1,.93-1.449V493.9h-.5v-.385h1.01l-.024,2.772h.441v.385h-.937a3.451,3.451,0,0,1,.018-.38l.049-.317h-.012a1.166,1.166,0,0,1-1.064.771c-.905,0-1.113-.575-1.113-1.291,0-.574.018-1.063.024-1.554h-.508v-.386Z\",\n transform: \"translate(411.138 -473.894)\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"a\",\n transform: \"translate(635.74 267.63)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"b\",\n d: \"M-463.79,495.524h.4l.024-2.385h-.508v-.386h1.01a3.2,3.2,0,0,1-.019.379l-.049.319h.012a1.158,1.158,0,0,1,1.119-.771.887.887,0,0,1,.954.74h.012a1.066,1.066,0,0,1,1.07-.74c.869,0,1.083.587,1.083,1.186,0,.539-.025,1.169-.025,1.658h.465v.385h-1.37v-.385h.4c.005-.513.024-1.022.024-1.529,0-.459-.1-.9-.685-.9-.409,0-.9.269-.905,1.125l-.012,1.3h.453v.385h-1.376v-.385h.4c.006-.514.024-1.022.024-1.529,0-.459-.1-.9-.685-.9-.409,0-.9.269-.905,1.125l-.012,1.3h.459v.385h-1.37v-.383Z\",\n transform: \"translate(368.331 -473.127)\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"a\",\n transform: \"translate(635.74 267.63)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"b\",\n d: \"M-372.711,495.524h.4l.025-2.385h-.508v-.386h1.01a3.41,3.41,0,0,1-.018.379l-.049.319h.012a1.158,1.158,0,0,1,1.119-.771.888.888,0,0,1,.954.74h.012a1.066,1.066,0,0,1,1.07-.74c.869,0,1.083.587,1.083,1.186,0,.539-.025,1.169-.025,1.658h.465v.385h-1.37v-.385h.4c.006-.513.024-1.022.024-1.529,0-.459-.1-.9-.685-.9-.41,0-.9.269-.905,1.125l-.012,1.3h.453v.385h-1.376v-.385h.4c.006-.514.024-1.022.024-1.529,0-.459-.1-.9-.686-.9-.409,0-.9.269-.905,1.125l-.012,1.3h.459v.385h-1.37Z\",\n transform: \"translate(285.165 -473.127)\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"a\",\n transform: \"translate(635.74 267.63)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"b\",\n d: \"M-303.419,493.52h1.01c0,.574-.025,1.144-.025,1.865,0,.459.085.948.7.948.918,0,.93-1,.93-1.449V493.9h-.5v-.385h1.01l-.024,2.772h.44v.385h-.936a3.483,3.483,0,0,1,.018-.38l.049-.317h-.012a1.168,1.168,0,0,1-1.064.771c-.905,0-1.113-.575-1.113-1.291,0-.574.018-1.063.024-1.554h-.507v-.386Z\",\n transform: \"translate(221.822 -473.894)\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"a\",\n transform: \"translate(635.74 267.63)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"b\",\n d: \"M-254.313,495.524h.4c0-.489.024-1,.024-1.511,0-.306-.012-.917-.716-.917-.447,0-.937.269-.937,1.125l-.012,1.3h.459v.385h-1.37v-.385h.4l.024-2.385h-.507v-.386h1.01a3.418,3.418,0,0,1-.018.379l-.049.319h.012a1.16,1.16,0,0,1,1.12-.771c.869,0,1.083.587,1.083,1.186,0,.539-.025,1.169-.025,1.658h.465v.385h-1.37v-.385Z\",\n transform: \"translate(179.015 -473.127)\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"a\",\n transform: \"translate(635.74 267.63)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"b\",\n d: \"M-205.291,480.028h.471v.386h-.972a3.274,3.274,0,0,1,.062-.636l-.012-.011a1.073,1.073,0,0,1-1.058.721c-.722,0-1.309-.508-1.309-1.523a1.6,1.6,0,0,1,1.677-1.78,1.4,1.4,0,0,1,.654.141l.012-1.229h-.631v-.386h1.132Zm-.489-2.288a1.221,1.221,0,0,0-.618-.141c-.746,0-1.187.483-1.187,1.37,0,.587.275,1.1.887,1.1.765,0,.918-.71.918-1.328Z\",\n transform: \"translate(134.793 -457.631)\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"a\",\n transform: \"translate(635.74 267.63)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"b\",\n d: \"M-162.19,492.67a1.458,1.458,0,0,1,1.529,1.566,1.548,1.548,0,0,1-1.529,1.738,1.458,1.458,0,0,1-1.53-1.566,1.549,1.549,0,0,1,1.53-1.738m0,2.887c.672,0,1-.55,1-1.235s-.331-1.236-1-1.236-1,.55-1,1.236.33,1.235,1,1.235\",\n transform: \"translate(94.26 -473.118)\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"a\",\n transform: \"translate(635.74 267.63)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"b\",\n d: \"M-98.672,495.811a3.189,3.189,0,0,1-.911.152,1.5,1.5,0,0,1-1.646-1.651,1.535,1.535,0,0,1,1.579-1.653,3.047,3.047,0,0,1,1.022.159v.825h-.453v-.5a1.929,1.929,0,0,0-.526-.073c-.911,0-1.095.721-1.095,1.236a1.143,1.143,0,0,0,1.2,1.235,2.746,2.746,0,0,0,.856-.176Z\",\n transform: \"translate(37.199 -473.109)\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"a\",\n transform: \"translate(635.74 267.63)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"b\",\n d: \"M-62.61,492.67a1.458,1.458,0,0,1,1.529,1.566,1.548,1.548,0,0,1-1.529,1.738,1.458,1.458,0,0,1-1.53-1.566,1.55,1.55,0,0,1,1.53-1.738m0,2.887c.672,0,1-.55,1-1.235s-.331-1.236-1-1.236-1,.55-1,1.236.33,1.235,1,1.235\",\n transform: \"translate(3.331 -473.118)\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"a\",\n transform: \"translate(635.74 267.63)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"b\",\n d: \"M-22.1,495.524h.4l.024-2.385h-.507v-.386h1.01a3.421,3.421,0,0,1-.018.379l-.049.319h.012a1.158,1.158,0,0,1,1.119-.771.887.887,0,0,1,.954.74h.012a1.066,1.066,0,0,1,1.07-.74c.869,0,1.083.587,1.083,1.186,0,.539-.025,1.169-.025,1.658h.465v.385h-1.371v-.385h.4c.005-.513.024-1.022.024-1.529,0-.459-.1-.9-.686-.9-.41,0-.9.269-.905,1.125l-.012,1.3h.453v.385h-1.375v-.385h.4c.006-.514.024-1.022.024-1.529,0-.459-.1-.9-.685-.9-.409,0-.9.269-.905,1.125l-.012,1.3h.459v.385H-22.1Z\",\n transform: \"translate(-34.983 -473.127)\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"a\",\n transform: \"translate(635.74 267.63)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"b\",\n d: \"M71.116,495.524h.4c0-.489.025-1,.025-1.511,0-.306-.012-.917-.716-.917-.447,0-.936.269-.936,1.125l-.013,1.3h.458v.385H68.969v-.385h.4l.025-2.385H68.89v-.386H69.9a3.221,3.221,0,0,1-.018.379l-.05.319h.013a1.158,1.158,0,0,1,1.119-.771c.869,0,1.083.587,1.083,1.186,0,.539-.024,1.169-.024,1.658h.465v.385h-1.37Z\",\n transform: \"translate(-118.14 -473.127)\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"a\",\n transform: \"translate(635.74 267.63)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"b\",\n d: \"M118.339,492.67a1.458,1.458,0,0,1,1.529,1.566,1.549,1.549,0,0,1-1.529,1.738,1.457,1.457,0,0,1-1.529-1.566,1.548,1.548,0,0,1,1.529-1.738m0,2.887c.673,0,1-.55,1-1.235s-.33-1.236-1-1.236-1,.55-1,1.236.33,1.235,1,1.235\",\n transform: \"translate(-161.897 -473.118)\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"a\",\n transform: \"translate(635.74 267.63)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"b\",\n d: \"M154.87,493.52h1.3v.385h-.379l.728,2.025a1.91,1.91,0,0,1,.066.269h.012a1.8,1.8,0,0,1,.068-.269l.746-2.025H157v-.385h1.261v.385h-.349l-1.089,2.772h-.5l-1.1-2.772h-.355Z\",\n transform: \"translate(-196.65 -473.894)\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"a\",\n transform: \"translate(635.74 267.63)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"b\",\n d: \"M199.96,492.67a1.457,1.457,0,0,1,1.529,1.566,1.548,1.548,0,0,1-1.529,1.738,1.458,1.458,0,0,1-1.53-1.566,1.549,1.549,0,0,1,1.53-1.738m0,2.887c.672,0,1-.55,1-1.235s-.331-1.236-1-1.236-1,.55-1,1.236.33,1.235,1,1.235\",\n transform: \"translate(-236.425 -473.118)\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"a\",\n transform: \"translate(635.74 267.63)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"b\",\n d: \"M243.493,493.619h-.453l-.024-.447a1.074,1.074,0,0,0-.557-.116c-.318,0-.728.1-.728.483,0,.343.306.447.771.527.8.135,1.138.379,1.138.9,0,.563-.38,1.009-1.292,1.009a3.141,3.141,0,0,1-1.082-.189l-.024-.808h.453l.024.472a1.927,1.927,0,0,0,.716.14c.33,0,.727-.14.727-.525,0-.312-.324-.423-.666-.5-.844-.184-1.266-.33-1.266-.948,0-.508.336-.948,1.242-.948a3.262,3.262,0,0,1,1,.189Z\",\n transform: \"translate(-275.507 -473.118)\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"a\",\n transform: \"translate(635.74 267.63)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"b\",\n d: \"M294.062,493.52h1.3v.385h-.379l.728,2.025a2.026,2.026,0,0,1,.066.269h.012a1.8,1.8,0,0,1,.068-.269l.746-2.025h-.41v-.385h1.26v.385H297.1l-1.089,2.772h-.5l-1.1-2.772h-.354v-.385Z\",\n transform: \"translate(-323.747 -473.894)\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"a\",\n transform: \"translate(635.74 267.63)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"b\",\n d: \"M339.354,493.673H338.9v-.758a2.975,2.975,0,0,1,1.108-.244c.813,0,1.248.3,1.248,1.137,0,.275-.036,1.138-.036,1.706h.453v.386h-.905v-.129a3.274,3.274,0,0,1,.062-.557h-.012a1.019,1.019,0,0,1-1.059.758.872.872,0,0,1-.978-.9c0-.881.943-.967,2-.967v-.226c0-.593-.226-.819-.721-.819a1.95,1.95,0,0,0-.7.129v.488Zm1.425.778c-.746,0-1.5,0-1.5.593a.54.54,0,0,0,.593.545c.342,0,.905-.19.905-1.138\",\n transform: \"translate(-364.581 -473.118)\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"a\",\n transform: \"translate(635.74 267.63)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"b\",\n d: \"M377.592,476.095h-.612v-.385h1.113l-.024,4.317h.5v.387h-1.455v-.387h.452Z\",\n transform: \"translate(-399.462 -457.631)\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"a\",\n transform: \"translate(635.74 267.63)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"b\",\n d: \"M402.789,492.67a1.458,1.458,0,0,1,1.53,1.566,1.549,1.549,0,0,1-1.53,1.738,1.457,1.457,0,0,1-1.529-1.566,1.549,1.549,0,0,1,1.529-1.738m0,2.887c.673,0,1-.55,1-1.235s-.33-1.236-1-1.236-1,.55-1,1.236.331,1.235,1,1.235\",\n transform: \"translate(-421.633 -473.118)\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"a\",\n transform: \"translate(635.74 267.63)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"b\",\n d: \"M443.389,493.321h-.539v-.385h1.04v.17c0,.184-.037.557-.068.813h.018c.123-.465.288-1.039,1.071-1.039a1.243,1.243,0,0,1,.318.049l-.049.452a1.131,1.131,0,0,0-.342-.049c-.649,0-.937.637-.948,1.193l-.025,1.181h.533v.386h-1.48v-.386h.447Z\",\n transform: \"translate(-459.609 -473.309)\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"a\",\n transform: \"translate(635.74 267.63)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"b\",\n d: \"M474.7,494.364a1.082,1.082,0,0,0,1.2,1.193,2.158,2.158,0,0,0,.949-.238l-.018.434a2.876,2.876,0,0,1-1.04.22,1.658,1.658,0,0,1-.153-3.3c1.248,0,1.364,1.132,1.364,1.694Zm1.774-.385a.853.853,0,0,0-.838-.924.93.93,0,0,0-.937.924Z\",\n transform: \"translate(-488.208 -473.118)\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"a\",\n transform: \"translate(635.74 267.63)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"b\",\n d: \"M516.563,493.619h-.453l-.023-.447a1.076,1.076,0,0,0-.557-.116c-.318,0-.728.1-.728.483,0,.343.306.447.771.527.8.135,1.137.379,1.137.9,0,.563-.379,1.009-1.29,1.009a3.156,3.156,0,0,1-1.084-.189l-.024-.808h.453l.024.472a1.92,1.92,0,0,0,.716.14c.33,0,.728-.14.728-.525,0-.312-.324-.423-.668-.5-.844-.184-1.265-.33-1.265-.948,0-.508.336-.948,1.242-.948a3.26,3.26,0,0,1,1,.189Z\",\n transform: \"translate(-524.851 -473.118)\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n className: \"a\",\n transform: \"translate(635.74 267.63)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n className: \"b\",\n d: \"M545.73,521.96a.379.379,0,1,1-.38.38.382.382,0,0,1,.38-.38\",\n transform: \"translate(-553.203 -499.863)\"\n })))));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n return /*#__PURE__*/React.createElement(SvgLogoVale, _extends({\n svgRef: ref\n }, props));\n});\nexport default __webpack_public_path__ + \"static/media/logo_vale.a9a6c3b5.svg\";\nexport { ForwardRef as ReactComponent };","import * as React from 'react';\r\n\r\n\r\nconst initialState = {\r\n accessToken: null,\r\n userName: null,\r\n userPhoto: null,\r\n userEmail: null,\r\n userAdmin: false,\r\n userLanguage: null,\r\n regional: {\r\n id: null,\r\n namePt: null,\r\n nameEn: null\r\n },\r\n permissions: [{\r\n accessArea: null,\r\n permission: null,\r\n idAreaAcesso: null\r\n }]\r\n\r\n};\r\nconst userCacheItem = localStorage.getItem(\"NovoCGCUserCache\") ? JSON.parse(localStorage.getItem(\"NovoCGCUserCache\")) : initialState;\r\nconst GlobalStateContext = React.createContext(userCacheItem);\r\n\r\nconst GlobalStateProvider = ({ children }) => {\r\n const [globalState, setGlobalState] = React.useState(userCacheItem);\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport { GlobalStateContext, GlobalStateProvider };\r\n\r\n\r\n","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { setCulture, setCurrencyCode } from '../../../node_modules/@syncfusion/ej2-base';\r\nimport { GlobalStateContext } from './GlobalState';\r\nimport { DropDownButtonComponent, ItemModel } from '@syncfusion/ej2-react-splitbuttons';\r\nimport { MenuComponent } from '@syncfusion/ej2-react-navigations';\r\nimport './general.css';\r\n\r\n\r\nexport const LanguageComponent = () => {\r\n let dropdownBtnRef;\r\n const [globalState, setGlobalState] = React.useContext(GlobalStateContext);\r\n\r\n const items = [{\r\n id: \"pt\",\r\n text: 'Português - BR',\r\n iconCss: 'e-ddb-icons e-ptBr',\r\n selected: i18n.language === 'pt'\r\n },\r\n {\r\n id: \"en\",\r\n text: 'English - US',\r\n iconCss: 'e-ddb-icons e-enUS',\r\n selected: i18n.language === 'en'\r\n }];\r\n\r\n let onLanguageSelect = (e) => {\r\n setGlobalState(globalState => ({\r\n ...globalState,\r\n userLanguage: e.item.id\r\n }))\r\n // setCulture(e.item.id);\r\n window.location.reload();\r\n i18n.changeLanguage(e.item.id);\r\n\r\n };\r\n\r\n React.useEffect(() => {\r\n dropdownBtnRef.items = items.filter(item => !item.selected);\r\n\r\n }, [i18n.language]);\r\n\r\n return (\r\n <>\r\n \r\n dropdownBtnRef = dropdownButton}\r\n target=\"#languageDropdown\"\r\n className=\"choosenLanguage\"\r\n select={(e) => { onLanguageSelect(e) }}\r\n >\r\n item.selected)[0].iconCss} e-icon-left`}>\r\n {items.filter(item => item.selected)[0].text}\r\n \r\n \r\n );\r\n}\r\n","import * as React from 'react';\r\n\r\nlet numberStep = () => {\r\n let url = window.location.search;\r\n if (url.indexOf('_token') > -1) {\r\n return 3;\r\n } else {\r\n return 1;\r\n }\r\n}\r\n\r\nconst initialState = {\r\n step: numberStep()\r\n};\r\nconst LoginStateContext = React.createContext(initialState);\r\n\r\nconst LoginStateProvider = ({ children }) => {\r\n const [loginState, setLoginState] = React.useState(initialState);\r\n const [redirectMessage, setRedirectMessage] = React.useState(\"\");\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport { LoginStateContext, LoginStateProvider };","export const EventEmitter = {\r\n events: {},\r\n dispatch: function (event, data) {\r\n if (!this.events[event]) return;\r\n this.events[event].forEach(callback => callback(data));\r\n },\r\n subscribe: function (event, callback) {\r\n if (!this.events[event]) this.events[event] = [];\r\n this.events[event].push(callback);\r\n }\r\n}","import { EventEmitter } from './Events';\r\nimport i18n from 'i18next';\r\n\r\nconst hostURL = process.env.REACT_APP_API_URL + '/';\r\n//const hostURL = \"https://novocgc-api.azurewebsites.net/\";\r\n// const hostURL = 'https://localhost:5001/';\r\n\r\nexport async function requestAPI(endPointURL, method, queryString, body, token, isFormData, test, hasPaginationUrl) {\r\n\r\n var myHeaders = new Headers();\r\n if (!isFormData)\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n if (token)\r\n myHeaders.append(\"Authorization\", \"Bearer \" + token);\r\n\r\n var requestOptions = {\r\n method: method,\r\n headers: myHeaders,\r\n redirect: 'follow'\r\n };\r\n if (body)\r\n requestOptions.body = body;\r\n\r\n if (test)\r\n requestOptions.responseType = 'arraybuffer';\r\n const response = await fetch(`${!hasPaginationUrl ? hostURL : \"\"}${endPointURL}${queryString}`, requestOptions);\r\n if (!response.ok && response.status === 401)\r\n EventEmitter.dispatch('logout');\r\n return response;\r\n}\r\nexport const getURLParamsByKey = (name) => {\r\n var match = RegExp('[?&]' + name + '=([^&]*)').exec(window.location.search);\r\n return match && decodeURIComponent(match[1].replace(/\\+/g, ' '));\r\n};\r\nexport function getRoutes() {\r\n return [\r\n { path: \"/login\", namePt: \"Login\" },\r\n { path: \"/\", namePt: \"\", breadcrumb: { ignore: true } },\r\n { path: \"/profile\", namePt: \"Admin\", breadcrumb: { ignore: true } },\r\n { path: \"/admin/users\", namePt: \"Admin\", breadcrumb: { noLink: true } },\r\n { path: \"/admin/usersItem/:id?\", namePt: \"User\", breadcrumb: { ignore: true } },\r\n { path: \"/admin/profiletemplates\", namePt: \"Admin\", breadcrumb: { noLink: true } },\r\n { path: \"/admin/profiletemplatesItem/:id?\", namePt: \"profileTemplate\", breadcrumb: { link: \"/admin/profiletemplates\" } },\r\n { path: \"/admin/Suppliers\", namePt: \"Admin\", breadcrumb: { noLink: true } },\r\n { path: \"/admin/SuppliersItem/:id?\", namePt: \"supplier\", breadcrumb: { link: \"/admin/Suppliers\" } },\r\n { path: \"/admin/bannerhome\", namePt: \"Admin\", breadcrumb: { noLink: true } },\r\n { path: \"/admin/errorlogs\", namePt: \"Admin\", breadcrumb: { noLink: true } },\r\n { path: \"/admin/signature\", namePt: \"Admin\", nameEn: \"Admin\", breadcrumb: { noLink: true } },\r\n { path: \"/admin/signatureItem/:id?\", namePt: \"Assinaturas\", nameEn: \"Signature\", breadcrumb: { link: \"/admin/signature\" } },\r\n { path: \"/press/releases\", namePt: \"Imprensa\", nameEn: \"Press\", breadcrumb: { noLink: true } },\r\n { path: \"/press/releasesItem/:id?\", namePt: \"Releases\", nameEn: \"Press Releases\", breadcrumb: { link: \"/press/releases\" } },\r\n { path: \"/press/releases/reports\", namePt: \"Relatórios\", nameEn: \"Reports\", breadcrumb: { link: \"/press/releases\" } },\r\n { path: \"/press/archive\", namePt: \"Imprensa\", nameEn: \"Press\", breadcrumb: { noLink: true } },\r\n { path: \"/press/statements\", namePt: \"Imprensa\", nameEn: \"Press\", breadcrumb: { noLink: true } },\r\n { path: \"/press/statements/reports\", namePt: \"Relatórios\", nameEn: \"Reports\", breadcrumb: { link: \"/press/statements\" } },\r\n { path: \"/press/statementsItem/:id?\", namePt: \"Notas\", nameEn: \"Statements\", breadcrumb: { link: \"/press/statements\" } },\r\n { path: \"/press/positionpaper\", namePt: \"Imprensa\", nameEn: \"Press\", breadcrumb: { noLink: true } },\r\n { path: \"/press/positionpaper/reports\", namePt: \"Relatórios\", nameEn: \"Reports\", breadcrumb: { link: \"/press/positionpaper\" } },\r\n { path: \"/press/positionpaperItem/:id?\", namePt: \"Posicionamentos\", nameEn: \"Position Paper\", breadcrumb: { link: \"/press/positionpaper\" } },\r\n { path: \"/press/liaison\", namePt: \"Imprensa\", nameEn: \"Press\", breadcrumb: { noLink: true } },\r\n { path: \"/press/liaisonItem/:id?\", namePt: \"Atendimento\", nameEn: \"Liaison\", breadcrumb: { link: \"/press/liaison\" } },\r\n { path: \"/press/liaison/reports\", namePt: \"Atendimento\", nameEn: \"Liaison\", breadcrumb: { link: \"/press/liaison\" } },\r\n { path: \"/press/mailing/contacts\", namePt: \"Imprensa\", nameEn: \"Press\", breadcrumb: { noLink: true } },\r\n { path: \"/press/mailing/contactsItem/:id?\", namePt: \"Contatos Jornalistas\", nameEn: \"Journalist Contacts\", breadcrumb: { link: \"/press/mailing/contacts\" } },\r\n { path: \"/press/mailing/groups\", namePt: \"Imprensa\", nameEn: \"Press\", breadcrumb: { noLink: true } },\r\n { path: \"/press/mailing/groupsItem/:id?\", namePt: \"Grupos Jornalistas\", nameEn: \"Journalists Groups\", breadcrumb: { link: \"/press/mailing/groups\" } },\r\n { path: \"/press/generalMailing/contacts\", namePt: \"Imprensa\", nameEn: \"Press\", breadcrumb: { noLink: true } },\r\n { path: \"/press/generalMailing/contactsItem/:id?\", namePt: \"Contatos Internos\", nameEn: \"Internal Contacts\", breadcrumb: { link: \"/press/generalMailing/contacts\" } },\r\n { path: \"/press/generalMailing/groups\", namePt: \"Imprensa\", nameEn: \"Press\", breadcrumb: { noLink: true } },\r\n { path: \"/press/generalMailing/groupsItem/:id?\", namePt: \"Grupos Internos\", nameEn: \"Internal Groups\", breadcrumb: { link: \"/press/generalMailing/groups\" } },\r\n { path: \"/press/qa\", namePt: \"Imprensa\", nameEn: \"Press\", breadcrumb: { noLink: true } },\r\n { path: \"/press/qaItem/:id?\", namePt: \"Q & A\", nameEn: \"Q & A\", breadcrumb: { link: \"/press/qa\" } },\r\n { path: \"/press/webcastnotices\", namePt: \"Imprensa\", nameEn: \"Press\", breadcrumb: { noLink: true } },\r\n { path: \"/press/webcastnoticesItem/:id?\", namePt: \"Avisos de Webcast\", nameEn: \"Webcast notices\", breadcrumb: { link: \"/press/webcastnotices\" } },\r\n { path: \"/press/assignmentnotices\", namePt: \"Imprensa\", nameEn: \"Press\", breadcrumb: { noLink: true } },\r\n { path: \"/press/assignmentnoticesItem/:id?\", namePt: \"Avisos de Pauta\", nameEn: \"Assignment Notices\", breadcrumb: { link: \"/press/assignmentnotices\" } },\r\n { path: \"/press/shareddocuments\", namePt: \"Imprensa\", nameEn: \"Press\", breadcrumb: { noLink: true } },\r\n { path: \"/publicSharedDocuments/:token\", namePt: \"Documentos Compartilhados\", nameEn: \"Shared Documents\", breadcrumb: { noLink: true } },\r\n { path: \"/planningresearch/shareddocuments\", namePt: \"Planejamento e Pesquisa\", nameEn: \"Planning and Research\", breadcrumb: { noLink: true } },\r\n { path: \"/eventsvisits\", namePt: \"Eventos e Visitas\", nameEn: \"Events and Visits\", breadcrumb: { noLink: true } },\r\n { path: \"/digitalmedia/videos\", namePt: \"Mídias Digitais\", nameEn: \"Digital Media\", breadcrumb: { noLink: true } },\r\n { path: \"/digitalmedia/shareddocuments\", namePt: \"Mídias Digitais\", nameEn: \"Digital Media\", breadcrumb: { noLink: true } },\r\n { path: \"/communicationemployees/shareddocuments\", namePt: \"Comunicação com Empregados\", nameEn: \"Communication with Employees\", breadcrumb: { noLink: true } },\r\n { path: \"/communicationemployees/globalcalendar\", namePt: \"Calendário Global\", nameEn: \"Global Calendar\", breadcrumb: { noLink: true } },\r\n { path: \"/communicationemployees/internalcampaigns\", namePt: \"Campanhas Internas\", nameEn: \"Internal Campaigns\", breadcrumb: { noLink: true } },\r\n { path: \"/communicationemployees/events\", namePt: \"Eventos\", nameEn: \"Events\", breadcrumb: { noLink: true } },\r\n { path: \"/communicationemployees/globalguidelines\", namePt: \"Guidelines Globais\", nameEn: \"Global Guidelines\", breadcrumb: { noLink: true } },\r\n { path: \"/communicationemployees/internalresearchresults\", namePt: \"Resultado Pesquisas Internas\", nameEn: \"Internal Research Results\", breadcrumb: { noLink: true } },\r\n { path: \"/communicationemployees/specialprojects\", namePt: \"Projetos Especiais\", nameEn: \"Special Projects\", breadcrumb: { noLink: true } },\r\n { path: \"/communicationemployees/directcommunication\", namePt: \"Comunicação Direta\", nameEn: \"Direct Communication\", breadcrumb: { noLink: true } },\r\n { path: \"/communicationemployees/internalvehicles\", namePt: \"Veículos Internos\", nameEn: \"Internal Vehicles\", breadcrumb: { noLink: true } },\r\n { path: \"/communicationemployeesGroup\", namePt: \"Grupos Comunicação com Empregados\", nameEn: \"Communication with Employees Groups\", breadcrumb: { noLink: true } },\r\n { path: \"/communicationemployeesGroup/communicationemployeesItem/:id?\", namePt: \"Comunicação com Empregados\", nameEn: \"Communication with Employees\", breadcrumb: { link: \"/communicationemployeesGroup\" } },\r\n { path: \"/brandingadvertising/manageinternalareas\", namePt: \"Marca e Publicidade\", nameEn: \"Branding and Advertising\", breadcrumb: { noLink: true } },\r\n { path: \"/brandingadvertising/manageannualbudget\", namePt: \"Marca e Publicidade\", nameEn: \"Branding and Advertising\", breadcrumb: { noLink: true } },\r\n { path: \"/brandingadvertising/managecontracts\", namePt: \"Marca e Publicidade\", nameEn: \"Branding and Advertising\", breadcrumb: { noLink: true } },\r\n { path: \"/brandingadvertising/measurementreport\", namePt: \"Marca e Publicidade\", nameEn: \"Branding and Advertising\", breadcrumb: { noLink: true } },\r\n { path: \"/brandingadvertising/advertisingbudget\", namePt: \"Marca e Publicidade\", nameEn: \"Branding and Advertising\", breadcrumb: { noLink: true } },\r\n { path: \"/brandingadvertising/advertisingbudgetItem/:id?\", namePt: \"Orçamento de Publicidade\", nameEn: \"Advertising Budget\", breadcrumb: { link: \"/brandingadvertising/advertisingbudget\" } },\r\n { path: \"/brandingadvertising/shareddocuments\", namePt: \"Marca e Publicidade\", nameEn: \"Branding and Advertising\", breadcrumb: { noLink: true } },\r\n { path: \"/brandingadvertising/brandcenter\", namePt: \"Marca e Publicidade\", nameEn: \"Branding and Advertising\", breadcrumb: { noLink: true } },\r\n { path: \"/publicShareDocuments\", namePt: \"Documentos Públicos Compartilhados\", nameEn: \"Public Shared Documents\", breadcrumb: { noLink: true } },\r\n\r\n { path: \"/countries\", namePt: \"Países\", nameEn: \"Countries\", breadcrumb: { noLink: true } },\r\n { path: \"/countries/brazil\", namePt: \"Brasil\", nameEn: \"Brazil\", breadcrumb: { noLink: true } },\r\n { path: \"/countries/canada\", namePt: \"Canadá\", nameEn: \"Canada\", breadcrumb: { noLink: true } },\r\n { path: \"/countries/china\", namePt: \"China\", nameEn: \"China\", breadcrumb: { noLink: true } },\r\n { path: \"/countries/global\", namePt: \"Global\", nameEn: \"Global\", breadcrumb: { noLink: true } },\r\n { path: \"/countries/indonesia\", namePt: \"Indonésia\", nameEn: \"Indonesia\", breadcrumb: { noLink: true } },\r\n { path: \"/countries/oman\", namePt: \"Omã\", nameEn: \"Oman\", breadcrumb: { noLink: true } },\r\n { path: \"/countries/japan\", namePt: \"Japão\", nameEn: \"Japan\", breadcrumb: { noLink: true } },\r\n { path: \"/countries/malaysia\", namePt: \"Malásia\", nameEn: \"Malaysia\", breadcrumb: { noLink: true } },\r\n { path: \"/countries/mozambiquemalawi\", namePt: \"Moçambique / Malawi\", nameEn: \"Mozambique / Malawi\", breadcrumb: { noLink: true } },\r\n { path: \"/countries/newcaledonia\", namePt: \"Nova Caledônia\", nameEn: \"New Caledonia\", breadcrumb: { noLink: true } },\r\n { path: \"/countries/paraguay\", namePt: \"Paraguai\", nameEn: \"Paraguay\", breadcrumb: { noLink: true } },\r\n { path: \"/countries/peru\", namePt: \"Peru\", nameEn: \"Peru\", breadcrumb: { noLink: true } },\r\n { path: \"/countries/singapore\", namePt: \"Singapura\", nameEn: \"Singapore\", breadcrumb: { noLink: true } },\r\n { path: \"/countries/switzerland\", namePt: \"Suiça\", nameEn: \"Switzerland\", breadcrumb: { noLink: true } },\r\n\r\n { path: \"/home/whoiswho\", namePt: \"Home\" },\r\n { path: \"/home/messagehouseItem\", namePt: \"Home\", nameEn: \"Home\", breadcrumb: { link: \"/\" } },\r\n { path: \"/teste\", namePt: \"Home\" }\r\n ];\r\n}\r\n\r\nexport function formatBytes(bytes, decimals = 2) {\r\n if (bytes === 0) return '0 Bytes';\r\n\r\n const k = 1024;\r\n const dm = decimals < 0 ? 0 : decimals;\r\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\r\n\r\n const i = Math.floor(Math.log(bytes) / Math.log(k));\r\n\r\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\r\n}\r\n\r\nexport function uuidv4() {\r\n return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c =>\r\n (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)\r\n );\r\n}\r\n\r\nexport function toDataUrl(url, callback) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.onload = function () {\r\n var reader = new FileReader();\r\n reader.onloadend = function () {\r\n callback(reader.result);\r\n }\r\n reader.readAsDataURL(xhr.response);\r\n };\r\n xhr.open('GET', url);\r\n xhr.responseType = 'blob';\r\n xhr.send();\r\n}\r\n\r\nexport function getDateTime(date) {\r\n return `${new Date(date).toLocaleDateString()} ${new Date(date).toLocaleTimeString()}`;\r\n}\r\n\r\nexport function hasPermissions(areaId, type, globalState) {\r\n\r\n if (globalState.userAdmin) {\r\n return true;\r\n }\r\n\r\n const isAreaAdmin = globalState.permissions.find(permission => permission.idAreaAcesso ===areaId && permission.idPermissao ===1);\r\n\r\n if (isAreaAdmin) {\r\n return true;\r\n }\r\n\r\n let editPermissionId;\r\n\r\n switch (type) {\r\n case \"Create\": {\r\n editPermissionId = 3;\r\n break;\r\n }\r\n case \"Edit\": {\r\n editPermissionId = 4;\r\n break;\r\n }\r\n case \"Delete\": {\r\n editPermissionId = 5;\r\n break;\r\n }\r\n case \"Approval\": {\r\n editPermissionId = 6;\r\n }\r\n }\r\n\r\n let hasPermission;\r\n\r\n if (type) {\r\n hasPermission = globalState.permissions.find(permission => permission.idAreaAcesso ===areaId && permission.idPermissao ===editPermissionId);\r\n } else {\r\n hasPermission = globalState.permissions.find(permission => permission.idAreaAcesso ===areaId);\r\n }\r\n\r\n if (!hasPermission) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n\r\n};\r\n","import { requestAPI } from '../components/utilities/Utils';\r\n\r\nexport async function menu(token, admin = \"\") {\r\n const qstring = admin ? '?$Filter=menuAdmin' : '?$Filter=not(menuAdmin)';\r\n return requestAPI(\"_api/Menu/GetMenu\", \"GET\", qstring, null, token, false);\r\n}","import React, { useEffect } from 'react';\r\nimport './menu.css';\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from 'react-i18next';\r\nimport { LoginStateContext } from '../login/LoginState';\r\nimport { DropDownButtonComponent, ItemModel } from '@syncfusion/ej2-react-splitbuttons';\r\nimport { Collapse, Container, Navbar, NavbarBrand, NavbarToggler, NavItem, NavLink } from 'reactstrap';\r\nimport { Link, Redirect } from 'react-router-dom';\r\nimport { EventEmitter } from '../utilities/Events'\r\n\r\nimport { menu } from '../../services/MenuSVC';\r\n\r\nimport { LanguageComponent } from '../general/LanguageComponent.js';\r\nimport { GlobalStateContext } from '../general/GlobalState';\r\n\r\nexport const AdminMenu = () => {\r\n\r\n const [loginState, setLoginState] = React.useContext(LoginStateContext);\r\n const [globalState, setGlobalState] = React.useContext(GlobalStateContext);\r\n const [itemsAdmin, setItemsAdmin] = React.useState([]);\r\n const [photoUser, setPhotoUser] = React.useState(null);\r\n const [profile, setProfile] = React.useState([]);\r\n\r\n const { t } = useTranslation();\r\n\r\n const logout = () => {\r\n setGlobalState(globalState => ({ ...globalState, accessToken: null }));\r\n localStorage.removeItem(\"NovoCGCUserCache\");\r\n setLoginState(loginState => ({ ...loginState, step: 1 }));\r\n };\r\n\r\n React.useEffect(() => {\r\n EventEmitter.subscribe('logout', () => logout());\r\n EventEmitter.subscribe('updateMyPhoto', () => updateUserPhoto());\r\n menu(globalState.accessToken, true)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n })\r\n .then(result => {\r\n setItemsAdmin(result);\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n })\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n if (globalState)\r\n updateUserPhoto();\r\n\r\n }, [globalState]);\r\n\r\n const updateUserPhoto = () => {\r\n let version = new Date().toISOString();\r\n setPhotoUser(`${globalState.userPhoto}&sizeType=31&v=${version}`);\r\n localStorage.setItem(\"NovoCGCUserCache\", JSON.stringify(globalState));\r\n }\r\n\r\n\r\n const userName = globalState.userName;\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n {userName}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n )\r\n}\r\n","import React from 'react';\r\nimport i18n from 'i18next';\r\nimport { GlobalStateContext } from '../general/GlobalState';\r\nimport { MenuComponent } from '@syncfusion/ej2-react-navigations';\r\nimport { menu } from '../../services/MenuSVC';\r\nimport './menu.css';\r\n\r\n\r\nexport const MainMenu = () => {\r\n \r\n const [globalState, setGlobalState] = React.useContext(GlobalStateContext);\r\n const [itemsMain, setItemsMain] = React.useState([]);\r\n const [subItemsMain, setSubItemsMain] = React.useState([]);\r\n\r\n let animation = { duration: 800 };\r\n\r\n React.useEffect(() => {\r\n menu(globalState.accessToken, false)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n })\r\n .then(result => {\r\n setSubItemsMain(result);\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n })\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n setItemsMain(\r\n subItemsMain && subItemsMain.map((firstItem, firstIndex) => (\r\n {\r\n iconCss: `mdl2 mdl2-${firstItem.classeIcone}`,\r\n items:\r\n firstItem.childs.map((secondItem, secondIndex) => (\r\n {\r\n items:\r\n secondItem.childs.map((thirdItem, thirdIndex) => (\r\n {\r\n text: i18n.language ===\"pt\" ? thirdItem.nomePT : thirdItem.nomeEN,\r\n url: thirdItem.url\r\n }\r\n )),\r\n text: i18n.language ===\"pt\" ? secondItem.nomePT : secondItem.nomeEN,\r\n url: secondItem.url\r\n }\r\n )),\r\n text: i18n.language ===\"pt\" ? firstItem.nomePT : firstItem.nomeEN,\r\n }\r\n ))\r\n );\r\n }, [i18n.language, subItemsMain]);\r\n\r\n return (\r\n \r\n )\r\n}","import * as React from 'react';\r\nimport * as ReactDom from 'react-dom';\r\nimport i18n from 'i18next';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { GlobalStateContext } from '../general/GlobalState';\r\nimport { Animation, enableRipple } from '@syncfusion/ej2-base';\r\nimport { ListViewComponent } from '@syncfusion/ej2-react-lists';\r\nimport { menu } from '../../services/MenuSVC';\r\nimport './menu.css';\r\nenableRipple(true);\r\n\r\nlet listObj;\r\n\r\nexport const MainMenuMobile = (props) => {\r\n\r\n const { close } = props;\r\n\r\n const [globalState, setGlobalState] = React.useContext(GlobalStateContext);\r\n const [itemsMain, setItemsMain] = React.useState([]);\r\n\r\n const { t } = useTranslation();\r\n\r\n let listViewDisplay = { display: 'none' };\r\n let closeSpanDisplay = { display: 'none' };\r\n\r\n React.useEffect(() => {\r\n menu(globalState.accessToken, false)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n })\r\n .then(result => {\r\n setItemsMain(\r\n result && result.map((firstItem, firstIndex) => (\r\n {\r\n iconCss: `mdl2 mdl2-${firstItem.classeIcone}`,\r\n child:\r\n firstItem.childs.map((secondItem, secondIndex) => (\r\n {\r\n child:\r\n secondItem.childs.map((thirdItem, thirdIndex) => (\r\n {\r\n text: i18n.language ===\"pt\" ? thirdItem.nomePT : thirdItem.nomeEN,\r\n url: thirdItem.url,\r\n category: i18n.language ===\"pt\" ? secondItem.nomePT : secondItem.nomeEN\r\n }\r\n )),\r\n text: i18n.language ===\"pt\" ? secondItem.nomePT : secondItem.nomeEN,\r\n url: secondItem.url,\r\n category: i18n.language ===\"pt\" ? firstItem.nomePT : firstItem.nomeEN\r\n }\r\n )),\r\n text: i18n.language ===\"pt\" ? firstItem.nomePT : firstItem.nomeEN,\r\n }\r\n ))\r\n );\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n })\r\n }, [i18n.language]);\r\n\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n )\r\n}","import React from 'react';\r\nimport { ReactComponent as ReactLogo } from '../../css/imgs/logo_vale.svg';\r\nimport { Collapse, Container, Navbar, NavbarBrand, NavbarToggler, NavItem, NavLink } from 'reactstrap';\r\nimport { Link, Redirect } from 'react-router-dom';\r\nimport { LanguageComponent } from '../general/LanguageComponent.js';\r\nimport { GlobalStateContext } from '../general/GlobalState';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { AdminMenu } from './AdminMenu';\r\nimport { MainMenu } from './MainMenu';\r\nimport './menu.css';\r\nimport { MainMenuMobile } from './MainMenuMobile';\r\n\r\nexport const NavMenu = () => {\r\n const [globalState, setGlobalState] = React.useContext(GlobalStateContext);\r\n const [collapsed, setCollapsed, toLogin, setToLogin] = React.useState(false);\r\n\r\n const { t } = useTranslation();\r\n\r\n const toggleNavbar = () => {\r\n setCollapsed(!collapsed);\r\n };\r\n\r\n const logout = () => {\r\n setGlobalState(globalState => ({ ...globalState, accessToken: null }));\r\n localStorage.removeItem(\"NovoCGCUserCache\");\r\n };\r\n \r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n {globalState.accessToken &&\r\n \r\n }\r\n \r\n {globalState.accessToken ?\r\n <>\r\n {t('Generic:title')}\r\n {t('Generic:initials')}\r\n \r\n :\r\n <>\r\n {t('Generic:title')}\r\n {t('Generic:initials')}\r\n \r\n }\r\n
\r\n
\r\n \r\n {globalState.accessToken &&\r\n \r\n }\r\n
\r\n
\r\n
\r\n {globalState.accessToken &&\r\n \r\n \r\n {collapsed ?\r\n \r\n :\r\n \r\n }\r\n \r\n \r\n }\r\n
\r\n );\r\n}","import React from 'react';\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { Container } from 'reactstrap';\r\nimport { NavMenu } from '../components/menu/NavMenu';\r\nimport { GlobalStateContext } from './general/GlobalState';\r\n\r\nexport const Layout = ({ children }) => {\r\n const [globalState, setGlobalState] = React.useContext(GlobalStateContext);\r\n\r\n return (\r\n <>\r\n { }\r\n {children}\r\n \r\n );\r\n}","import { requestAPI } from '../components/utilities/Utils';\r\n\r\nexport async function getSupplierTypes(token) {\r\n return requestAPI(\"_api/System/GetSupplierTypes\", \"GET\", \"\", null, token, false);\r\n}\r\n\r\nexport async function getDICIAreas(token) {\r\n return requestAPI(\"_api/System/GetDICIAreas\", \"GET\", \"\", null, token, false);\r\n}\r\n\r\nexport async function getAccessAreas(token) {\r\n return requestAPI(\"_api/System/GetAccessAreas\", \"GET\", \"\", null, token, false);\r\n}\r\n\r\nexport async function getCountries(token) {\r\n return requestAPI(\"_api/System/GetCountries\", \"GET\", \"\", null, token, false);\r\n}\r\n\r\nexport async function getPermissions(token) {\r\n return requestAPI(\"_api/System/GetPermissions\", \"GET\", \"\", null, token, false);\r\n}\r\n\r\nexport async function getProfileAreas(token, lang) {\r\n const qstring = `?$orderby=${lang === 'pt' ? 'nomePt' : 'nomeEn'}`;\r\n return requestAPI(\"_api/System/GetProfileAreas\", \"GET\", qstring, null, token, false);\r\n}\r\n\r\nexport async function getProfileDepartments(token, lang) {\r\n const qstring = `?$orderby=${lang === 'pt' ? 'nomePt' : 'nomeEn'}`;\r\n return requestAPI(\"_api/System/GetProfileDepartments\", \"GET\", qstring, null, token, false);\r\n}\r\n\r\nexport async function getProfileManagement(token, lang) {\r\n const qstring = `?$orderby=${lang === 'pt' ? 'nomePt' : 'nomeEn'}`;\r\n return requestAPI(\"_api/System/GetProfileManagement\", \"GET\", qstring, null, token, false);\r\n}\r\n\r\nexport async function getRegional(token) {\r\n return requestAPI(\"_api/System/GetRegional\", \"GET\", \"\", null, token, false);\r\n}\r\n\r\nexport async function getSupplierDescriptions(token) {\r\n return requestAPI(\"_api/System/GetSupplierDescriptions\", \"GET\", \"\", null, token, false);\r\n}\r\n\r\nexport async function getUserTypes(token) {\r\n return requestAPI(\"_api/System/GetUserTypes\", \"GET\", \"\", null, token, false);\r\n}\r\n\r\nexport async function getBusinessAreas(token) {\r\n return requestAPI(\"_api/System/GetBusinessAreas\", \"GET\", \"\", null, token, false);\r\n}\r\n\r\nexport async function getAllBusinessAreas(token) {\r\n return requestAPI(\"_api/System/GetAllBusinessAreas\", \"GET\", \"\", null, token, false);\r\n}\r\n\r\nexport async function getMailingStatus(token) {\r\n return requestAPI(\"_api/System/GetMailingStatus\", \"GET\", \"\", null, token, false);\r\n}\r\n\r\nexport async function getReportMailingStatus(token) {\r\n return requestAPI(\"_api/System/GetReportMailingStatus\", \"GET\", \"\", null, token, false);\r\n}\r\n\r\nexport async function getMediaTypes(token) {\r\n return requestAPI(\"_api/System/GetMediaTypes\", \"GET\", \"\", null, token, false);\r\n}\r\n\r\nexport async function getPressMediaTypes(token) {\r\n return requestAPI(\"_api/System/GetPressMediaTypes\", \"GET\", \"\", null, token, false);\r\n}\r\n\r\nexport async function getStates(token) {\r\n return requestAPI(\"_api/System/GetStates\", \"GET\", \"\", null, token, false);\r\n}\r\n\r\nexport async function getCities(token) {\r\n return requestAPI(\"_api/System/GetCities\", \"GET\", \"\", null, token, false);\r\n}\r\n\r\nexport async function getLiaisonActionTypes(token) {\r\n return requestAPI(\"_api/System/GetLiaisonActionTypes\", \"GET\", \"\", null, token, false);\r\n}\r\n\r\nexport async function getLiaisonStatus(token) {\r\n return requestAPI(\"_api/System/GetLiaisonStatus\", \"GET\", \"\", null, token, false);\r\n}\r\n\r\nexport async function getCategories(token) {\r\n return requestAPI(\"_api/System/GetCoreVideoCategories\", \"GET\", \"\", null, token, false);\r\n}\r\n\r\nexport async function getSocialMedias(token) {\r\n return requestAPI(\"_api/System/GetSocialMedias\", \"GET\", \"\", null, token, false);\r\n}\r\n\r\nexport async function getStatus(token) {\r\n return requestAPI(\"_api/System/GetCoreVideoStatus\", \"GET\", \"\", null, token, false);\r\n}\r\n","import { requestAPI } from '../components/utilities/Utils';\r\n\r\nexport async function login(loginModel) {\r\n const raw = JSON.stringify({ \"Email\": loginModel.email, \"Senha\": loginModel.password });\r\n return requestAPI(\"_api/Users/Token\", \"POST\", \"\", raw, null, false);\r\n}\r\n\r\nexport async function forgot(userEmail) {\r\n const qstring = \"?_userEmail=\" + userEmail;\r\n return requestAPI(\"_api/Users/ForgotPassword\", \"POST\", qstring, null, null, false);\r\n}\r\n\r\nexport async function reset(token, newPassword) {\r\n const newData = encodeURIComponent(newPassword);\r\n const qstring = `?_token=${token}&_newPassword=${newData}`;\r\n return requestAPI(\"_api/Users/ResetPassword\", \"POST\", qstring, null, null, false);\r\n}\r\n\r\nexport async function users(token) {\r\n return requestAPI(\"_api/Users/GetUsers\", \"GET\", \"?$orderby=nome\", null, token, false);\r\n}\r\n\r\nexport async function getProfile(token, userId) {\r\n return requestAPI(\"_api/Users/GetProfile\", \"GET\", userId ? `?userId=${userId}` : \"\", null, token, false);\r\n}\r\n\r\nexport function getProfilePhoto(url, callback) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.onreadystatechange = function () {\r\n if (xhr.readyState ===4) {\r\n callback(this.response)\r\n }\r\n }\r\n xhr.open('GET', url);\r\n xhr.responseType = 'blob';\r\n xhr.send();\r\n}\r\n\r\nexport async function usersFull(token, userId) {\r\n const filter = userId ? `?$filter=userId eq ${userId}` : \"\";\r\n\r\n return new Promise((resolve, reject) => {\r\n requestAPI(\"_api/Users/GetUsersFull\", \"GET\", filter, null, token, false)\r\n .then(response => {\r\n if (response.ok)\r\n resolve(response.json());\r\n else\r\n reject(null);\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n reject(null);\r\n });\r\n });\r\n}\r\n\r\nexport async function addOrUpdateUsersFull(token, body) {\r\n const raw = JSON.stringify(body);\r\n const endPointURL = body.userId ? \"_api/Users/UpdateUserFull\" : \"_api/Users/AddUserFull\"\r\n return requestAPI(endPointURL, \"POST\", \"\", raw, token, false);\r\n}\r\n\r\nexport async function getMyProfile(token) {\r\n return requestAPI(\"_api/Users/GetMyProfile\", \"GET\", \"\", null, token, false);\r\n}\r\n\r\nexport async function updateMyProfile(token, body) {\r\n const raw = JSON.stringify(body);\r\n return requestAPI(\"_api/Users/UpdateMyProfile\", \"POST\", \"\", raw, token, false);\r\n}\r\n\r\nexport async function update_password(token, newPassword) {\r\n const newData = encodeURIComponent(newPassword);\r\n const qstring = `?_newPassword=${newData}`;\r\n return requestAPI(\"_api/Users/UpdatePassword\", \"POST\", qstring, null, token, false);\r\n}\r\n\r\nexport async function fullReset(token, userId) {\r\n const qstring = `?userId=${userId}`;\r\n return requestAPI(\"_api/Users/ResetUserFullPassword\", \"POST\", qstring, null, token, false);\r\n}\r\n\r\nexport async function deleteUser(token, id) {\r\n const qstring = `?userId=${id}`;\r\n return requestAPI(\"_api/Users/DeleteUserFull\", \"DELETE\", qstring, null, token, false);\r\n}\r\n\r\nexport async function getFilteredUsers(token, username) {\r\n let filters = username ? `?$apply=filter(contains(tolower(nome),'${username.trim().toLowerCase()}'))&orderBy=nome desc&$top=10` : \"?$top=10\";\r\n return requestAPI(\"_api/Users/GetWhoIsWhoUsers\", \"GET\", filters, null, token, false);\r\n};\r\n\r\nexport async function getHorizontalUsers(token, id) {\r\n const qString = \"?fullName=false&$top=17\";\r\n return requestAPI(\"_api/Users/GetWhoIsWhoUsers\", \"GET\", qString, null, token, false);\r\n};\r\n\r\nexport async function getWhoisWhoUsersFull(token) {\r\n return requestAPI(\"_api/Users/GetWhoIsWhoUsersFull\", \"GET\", \"\", null, token, false);\r\n};\r\n\r\nexport async function getChartObj(token, userId) {\r\n const filters = userId && `?userId=${userId}`\r\n return requestAPI(\"_api/Users/GetWhoIsWhoDataChart\", \"GET\", filters, null, token, false);\r\n};\r\n","import React, { useEffect, useState, useContext, useCallback, useRef, useMemo } from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { GlobalStateContext } from \"../general/GlobalState\";\r\nimport { TabComponent, TabItemDirective, TabItemsDirective } from '@syncfusion/ej2-react-navigations';\r\nimport { MaskedTextBoxComponent } from '@syncfusion/ej2-react-inputs';\r\nimport { getCountries, getRegional } from \"../../services/SystemSVC\";\r\nimport { getMyProfile, getWhoIsWhoUsers } from \"../../services/UsersSVC\";\r\nimport { createSpinner, setSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\r\nimport { Redirect, Link } from \"react-router-dom\";\r\nimport './home.css';\r\n\r\nimport { getFilteredUsers } from '../../services/UsersSVC';\r\n\r\nexport const UserHome = (props) => {\r\n\r\n const tab = useRef(null);\r\n const inputRef = useRef(null);\r\n const formRef = useRef(null);\r\n\r\n const [loadingUser, setLoadingUser] = useState(true);\r\n const [globalState, setGlobalState] = useContext(GlobalStateContext);\r\n const [profile, setProfile] = useState(null);\r\n const [country, setCountry] = useState(null);\r\n const [region, setRegion] = useState(null);\r\n const [photoUser, setPhotoUser] = useState(null);\r\n const [nameUser, setNameUser] = useState(null);\r\n const [fillUsersDataFull, setFillUsersDataFull] = useState([]);\r\n const [redirect, setRedirect] = useState(false);\r\n const [users, setUsers] = useState(null);\r\n const [userNameInput, setUserNameInput] = useState(\"\");\r\n\r\n //const [contentText1, setContentText1] = useState(null);\r\n\r\n const { t } = useTranslation();\r\n\r\n useEffect(() => {\r\n if (loadingUser && document.getElementById('loadUserHome')) {\r\n createSpinner({ target: document.getElementById('loadUserHome') })\r\n showSpinner(document.getElementById('loadUserHome'));\r\n setSpinner({ type: 'Bootstrap' });\r\n }\r\n }, [loadingUser]);\r\n\r\n useEffect(() => {\r\n setLoadingUser(true);\r\n async function load() {\r\n let _profile = await getMyProfile(globalState.accessToken)\r\n .then(response => { if (response.ok) { return response.json() } });\r\n let _country = await getCountries(globalState.accessToken)\r\n .then(response => { if (response.ok) { return response.json() } });\r\n let _region = await getRegional(globalState.accessToken)\r\n .then(response => { if (response.ok) { return response.json() } });\r\n\r\n setProfile(_profile);\r\n setCountry(_country);\r\n setRegion(_region);\r\n\r\n if (document.getElementById('loadUserHome')) {\r\n hideSpinner(document.getElementById('loadUserHome'));\r\n setLoadingUser(false);\r\n }\r\n }\r\n load();\r\n }, [i18n.language]);\r\n\r\n useEffect(() => {\r\n if (profile && country && region) {\r\n renderTabProfile();\r\n }\r\n }, [profile]);\r\n\r\n useEffect(() => {\r\n async function getUsers() {\r\n const whoIsWhoUsers = await getFilteredUsers(globalState.accessToken).then(res => {\r\n if (res.ok)\r\n return res.json();\r\n });\r\n\r\n setUsers(whoIsWhoUsers);\r\n }\r\n getUsers();\r\n }, []);\r\n\r\n\r\n const headerText = [\r\n { text: `
${t('UserHome:my_profile')}` },\r\n { text: `
${t('UserHome:who_is_who')}` }\r\n ];\r\n\r\n const renderTabProfile = () => {\r\n\r\n const birth = new Date(profile.dataNascimento);\r\n const pais = profile.idPais && country.filter(i => i.id ===profile.idPais);\r\n const reg = profile.idRegional && region.filter(i => i.id ===profile.idRegional);\r\n\r\n return (\r\n
\r\n
\r\n \r\n
{profile.email}
\r\n
\r\n {profile.dataNascimento &&\r\n
\r\n \r\n
{birth.toLocaleDateString(i18n.language)}
\r\n
\r\n }\r\n {profile.idPais &&\r\n
\r\n \r\n
{pais ? (i18n.language) ===\"pt\" ? pais[0].nomePt : pais[0].nomeEn : \"\"}
\r\n
\r\n }\r\n {profile.idPais && profile.idPais ===6 && reg &&\r\n
\r\n \r\n
{(i18n.language) ===\"pt\" ? reg[0].nomePt : reg[0].nomeEn}
\r\n
\r\n }\r\n {profile.usuarioTelefone.length > 0 &&\r\n
\r\n \r\n
\r\n {profile.usuarioTelefone.map((item, index) => (\r\n

\r\n \r\n

\r\n ))}\r\n
\r\n
\r\n }\r\n
\r\n {t('UserHome:edit')}\r\n
\r\n )\r\n\r\n }\r\n\r\n const debounce = (func, wait, immediate) => {\r\n var timeout;\r\n\r\n return (...args) => {\r\n var context = this;\r\n\r\n var later = () => {\r\n timeout = null;\r\n if (!immediate) func.apply(context, args);\r\n };\r\n\r\n var callNow = immediate && !timeout;\r\n\r\n clearTimeout(timeout);\r\n\r\n timeout = setTimeout(later, wait);\r\n\r\n if (callNow) func.apply(context, args);\r\n };\r\n }\r\n\r\n const getNewUsers = useCallback(\r\n debounce(async (name) => {\r\n const newUsers = await getFilteredUsers(globalState.accessToken, name).then(res => {\r\n if (res.ok)\r\n return res.json();\r\n });\r\n if (tab && tab.current) {\r\n\r\n const items = [\r\n {\r\n header: headerText[0],\r\n content: {\r\n template: renderTabProfile\r\n }\r\n },\r\n {\r\n header: headerText[1],\r\n content: {\r\n template: renderTabWhoisWho,\r\n data: { users: newUsers }\r\n }\r\n }\r\n ]\r\n\r\n tab.current.addTab([items[1]], 1);\r\n tab.current.removeTab(2);\r\n tab.current.refresh();\r\n inputRef.current.value = name;\r\n inputRef.current.focus();\r\n }\r\n }, 500),\r\n []\r\n );\r\n\r\n const renderTabWhoisWho = ({ users }) => {\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n getNewUsers(args.target.value)}\r\n className=\"e-input\"\r\n ref={inputRef}\r\n name=\"input\"\r\n type=\"text\"\r\n placeholder={i18n.language ===\"pt\" ? \"Busque no Who is who...\" : \"Search Who's who ...\"} />\r\n
\r\n
\r\n\r\n
\r\n {users && users.length > 0 &&\r\n users.map((i, index) => {\r\n return (\r\n
\r\n \r\n \"\"\r\n \r\n \r\n
\r\n );\r\n })\r\n }\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n )\r\n };\r\n\r\n const whoRedirect = () => {\r\n setRedirect(true);\r\n }\r\n\r\n useEffect(() => {\r\n let version = new Date().toISOString();\r\n setPhotoUser(`${globalState.userPhoto}&sizeType=62&v=${version}`);\r\n\r\n setNameUser(globalState.userName);\r\n }, [globalState]);\r\n\r\n return (\r\n loadingUser ?
:\r\n redirect ? :\r\n
\r\n {profile && country && region &&\r\n <>\r\n
\r\n
\r\n \r\n
\r\n
\r\n

{t('UserHome:message')}

\r\n

{profile.nome}

\r\n
\r\n
\r\n
\r\n {profile && country && region &&\r\n {\r\n const items = [\r\n {\r\n header: headerText[0],\r\n content: {\r\n template: renderTabProfile\r\n }\r\n },\r\n {\r\n header: headerText[1],\r\n content: {\r\n template: renderTabWhoisWho,\r\n data: { users: users }\r\n }\r\n }\r\n ]\r\n\r\n tab && tab.current && tab.current.addTab(items);\r\n tab && tab.current && tab.current.refresh();\r\n }} ref={tab} className=\"mainTab\">\r\n \r\n }\r\n
\r\n \r\n }\r\n
\r\n );\r\n}\r\n","import { requestAPI } from '../components/utilities/Utils';\r\n\r\nexport async function getBanners(token, idioma) {\r\n const qstring = idioma ? `?$filter=IdIdioma eq ${idioma}&$orderby=ativo desc, id desc` : '?$orderby=ativo desc, id desc';\r\n return requestAPI(\"_api/BannerHome/GetBannersHome\", \"GET\", qstring, null, token, false);\r\n}\r\n\r\nexport async function updateBanners(token, body) {\r\n const raw = JSON.stringify(body);\r\n return requestAPI(\"_api/BannerHome/UpdateBannerHome\", \"POST\", \"\", raw, token, false);\r\n}\r\n\r\nexport async function addBanners(token, body) {\r\n const raw = JSON.stringify(body);\r\n return requestAPI(\"_api/BannerHome/AddBannerHome\", \"POST\", \"\", raw, token, false);\r\n}\r\n\r\nexport async function deleteBanners(token, id) {\r\n const qstring = `?bannerId=${id}`;\r\n return requestAPI(\"_api/BannerHome/DeleteBannerHome\", \"DELETE\", qstring, null, token, false);\r\n}","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from 'react-i18next';\r\nimport { GlobalStateContext } from \"../general/GlobalState\";\r\nimport { Carousel, CarouselItem, CarouselIndicators, CarouselCaption } from 'reactstrap';\r\nimport { getBanners } from \"../../services/BannerHomeSVC\";\r\nimport './home.css';\r\n\r\nexport const BannerHome = (props) => {\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [banner, setBanner] = React.useState([]);\r\n\r\n const { t } = useTranslation();\r\n\r\n React.useEffect(() => {\r\n\r\n async function load() {\r\n let _banner = await getBanners(globalState.accessToken, i18n.language ===\"pt\" ? 1 : 2)\r\n .then(response => { if (response.ok) { return response.json() } });\r\n\r\n let _findBanners;\r\n let _arrayBanners = [];\r\n\r\n if (_banner) {\r\n _findBanners = _banner.filter(item => item.ativo === true);\r\n }\r\n\r\n let version = new Date().toISOString();\r\n\r\n _findBanners.map((item) => {\r\n _arrayBanners.push(\r\n {\r\n src: `${process.env.REACT_APP_API_URL}/_api/BannerHome/GetBannerHome?token=${globalState.tokenLightWeight}&IdBannerHome=${item.id}&version=${version}`,\r\n titulo: item.titulo,\r\n chamada: item.chamada,\r\n link: item.link,\r\n id: item.id,\r\n status: item.ativo,\r\n language: item.idIdioma\r\n }\r\n )\r\n });\r\n\r\n setBanner(_arrayBanners);\r\n\r\n }\r\n load();\r\n }, [i18n.language]);\r\n\r\n const [activeIndex, setActiveIndex] = React.useState(0);\r\n const [animating, setAnimating] = React.useState(false);\r\n\r\n const next = () => {\r\n if (animating) return;\r\n const nextIndex = activeIndex === banner.length - 1 ? 0 : activeIndex + 1;\r\n setActiveIndex(nextIndex);\r\n }\r\n\r\n const previous = () => {\r\n if (animating) return;\r\n const nextIndex = activeIndex === 0 ? banner.length - 1 : activeIndex - 1;\r\n setActiveIndex(nextIndex);\r\n }\r\n\r\n const goToIndex = (newIndex) => {\r\n if (animating) return;\r\n setActiveIndex(newIndex);\r\n }\r\n\r\n return (\r\n \r\n \r\n {banner && banner.map((i) => (\r\n setAnimating(true)}\r\n onExited={() => setAnimating(false)}\r\n key={i.id}\r\n >\r\n \r\n {i.link ?\r\n \r\n {i.title}\r\n \r\n :\r\n {i.title}\r\n }\r\n \r\n ))}\r\n \r\n );\r\n}","import React, { useState, useEffect, useContext, useRef } from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { GlobalStateContext } from \"../general/GlobalState\";\r\nimport { Redirect, Link } from \"react-router-dom\";\r\nimport './home.css';\r\n\r\nimport { getHorizontalUsers } from '../../services/UsersSVC';\r\n\r\nexport const WhoIsWhoHome = () => {\r\n\r\n const [redirect, setRedirect] = useState(false);\r\n\r\n const [globalState] = useContext(GlobalStateContext)\r\n const [users, setUsers] = useState(null);\r\n const [scrollingLeft, setScrollingLeft] = useState(false);\r\n const [scrollingRight, setScrollingRight] = useState(true);\r\n const containerRef = useRef(null);\r\n\r\n const { t } = useTranslation();\r\n\r\n useEffect(() => {\r\n async function getUsers() {\r\n const paginationUsers = await getHorizontalUsers(globalState.accessToken, globalState.userId).then(res => {\r\n if (res.ok)\r\n return res.json();\r\n });\r\n\r\n setUsers(paginationUsers);\r\n }\r\n getUsers();\r\n }, []);\r\n\r\n const whoRedirect = () => {\r\n setRedirect(true);\r\n }\r\n\r\n const prevSlide = () => {\r\n let container = containerRef.current;\r\n let scrollWidth = container.clientWidth;\r\n if (container.children && (container.children[0].clientWidth < container.clientWidth))\r\n scrollWidth /= 2;\r\n container.scrollLeft -= scrollWidth;\r\n \r\n scrollEnd((container.scrollLeft - scrollWidth), container.clientWidth);\r\n }\r\n\r\n const nextSlide = () => {\r\n let container = containerRef.current;\r\n let scrollWidth = container.clientWidth;\r\n if (container.children && (container.children[0].clientWidth < container.clientWidth))\r\n scrollWidth /= 2;\r\n container.scrollLeft += scrollWidth;\r\n \r\n scrollEnd((container.scrollLeft + scrollWidth), container.clientWidth);\r\n }\r\n\r\n const scrollEnd = (position, total) => {\r\n if(position <= 0) {\r\n setScrollingLeft(false);\r\n setScrollingRight(true);\r\n }\r\n \r\n if(position > 0 && position < total) {\r\n setScrollingLeft(true);\r\n setScrollingRight(true);\r\n }\r\n\r\n if(position >= total) {\r\n setScrollingLeft(true);\r\n setScrollingRight(false);\r\n }\r\n }\r\n\r\n return (\r\n redirect ? :\r\n
\r\n
\r\n \r\n

{i18n.language ===\"pt\" ? \"Explore o Quem é Quem\" : \"Explore Who is Who\"}

\r\n
\r\n
\r\n {scrollingLeft &&\r\n prevSlide()} />\r\n }\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n {\r\n users && users.length > 0 && users.map((i, index) => {\r\n return (\r\n
\r\n \r\n \"\"\r\n \r\n \r\n
\r\n\r\n );\r\n })\r\n }\r\n
\r\n {users && scrollingRight && nextSlide()} />}\r\n
\r\n
\r\n );\r\n}","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { GlobalStateContext } from \"../general/GlobalState\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport './home.css';\r\nimport { hasPermissions } from \"../utilities/Utils\";\r\n\r\n\r\nexport const MessageHouse = () => {\r\n\r\n const [globalState] = React.useContext(GlobalStateContext)\r\n const [redirect, setRedirect] = React.useState(false);\r\n\r\n const { t } = useTranslation();\r\n\r\n const messageRedirect = () => {\r\n setRedirect(true);\r\n }\r\n\r\n return (\r\n redirect ? :\r\n hasPermissions(57, \"\", globalState) &&\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 \r\n \r\n \r\n \r\n
\r\n {t('MessageHouse:title')}\r\n \r\n
\r\n
\r\n \r\n );\r\n}","import { requestAPI } from '../components/utilities/Utils';\r\n\r\nexport async function grantTemporaryAcess(token, body) {\r\n const raw = JSON.stringify(body);\r\n return requestAPI(\"_api/SharedDocuments/SharedDocumentsGrantTemporaryAcess\", \"POST\", \"\", raw, token, false);\r\n}\r\n\r\nexport async function sharePublicAccess(token, body) {\r\n const raw = JSON.stringify(body);\r\n return requestAPI(\"_api/SharedDocuments/SharedDocumentsCopyToPublicFolder\", \"POST\", \"\", raw, token, false);\r\n}\r\n\r\nexport async function downloadFile(isPublic, token, qstring, body) {\r\n const endPointURL = isPublic\r\n ?\r\n body.token \r\n ? \"_api/SharedDocuments/PublicSharedDocumentsDownload\"\r\n : \"_api/SharedDocuments/PublicSharedDocumentsDownloadTokenless\"\r\n : \"_api/SharedDocuments/SharedDocumentsDownload\";\r\n var form_data = new FormData();\r\n form_data.append('downloadInput', JSON.stringify(body));\r\n return requestAPI(endPointURL, \"POST\", qstring, form_data, token, true);\r\n}\r\n","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from 'react-i18next';\r\nimport { GlobalStateContext } from '../general/GlobalState';\r\nimport { FileManagerComponent, Inject, NavigationPane, DetailsView, Toolbar } from '@syncfusion/ej2-react-filemanager';\r\nimport { ToastComponent } from '@syncfusion/ej2-react-notifications';\r\nimport { downloadFile } from \"../../services/SharedDocumentsSVC\";\r\nimport { sharePublicAccess } from \"../../services/SharedDocumentsSVC\";\r\n\r\nlet fileManagerObj;\r\nfunction FileManager({ parentProps, data, modal, setLoading, setUrl, setShowCopyPaste }) {\r\n const [globalState, setGlobalState] = React.useContext(GlobalStateContext);\r\n const toastInstance = React.useRef(null);\r\n\r\n const { t } = useTranslation();\r\n\r\n const qstring = parentProps.path !=='/' ? `?path=/${parentProps.path}` : '';\r\n\r\n const beforeSend = (args) => {\r\n if (fileManagerObj)\r\n console.log('path', fileManagerObj.path);\r\n // if (parentProps.path !== \"/\") {\r\n // let data = JSON.parse(args.ajaxSettings.data);\r\n // if(Array.isArray(data)){\r\n\r\n // if(data.length){\r\n // let dataObj = data[0];\r\n // if (!dataObj.path.includes(parentProps.path)) {\r\n // dataObj.path = dataObj.path.replace('/', `/${parentProps.path}/`);\r\n // }\r\n // args.ajaxSettings.data = JSON.stringify(data);\r\n // }\r\n // }\r\n // else{\r\n // if (!data.path.includes(parentProps.path)) {\r\n // data.path = data.path.replace('/', `/${parentProps.path}/`);\r\n // }\r\n // args.ajaxSettings.data = JSON.stringify({\r\n // ...data,\r\n // path: data.path\r\n // })\r\n // }\r\n\r\n // }\r\n\r\n args.ajaxSettings.beforeSend = function (args) {\r\n args.httpRequest.setRequestHeader(\"Authorization\", \"Bearer \" + globalState.accessToken);\r\n args.httpRequest.setRequestHeader(\"lang\", i18n.language);\r\n }\r\n };\r\n\r\n function getParameterByName(name, url = window.location.href) {\r\n name = name.replace(/[\\[\\]]/g, '\\\\$&');\r\n var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),\r\n results = regex.exec(url);\r\n if (!results) return null;\r\n if (!results[2]) return '';\r\n return decodeURIComponent(results[2].replace(/\\+/g, ' '));\r\n }\r\n\r\n const beforeLoadImage = (args) => {\r\n const token = parentProps.token || globalState.tokenLightWeight;\r\n args.imageUrl = `${args.imageUrl}'&token=${token}`;\r\n\r\n const pathQString = getParameterByName('path', args.imageUrl);\r\n if (pathQString.indexOf(`/${parentProps.path}`) !== 0) {\r\n const imgUrl = args.imageUrl.replace(pathQString, `/${parentProps.path}${pathQString}`);\r\n args.imageUrl = `${imgUrl}&token=${token}`;\r\n }\r\n };\r\n\r\n const beforeDownload = (args) => {\r\n console.log({...args})\r\n args.cancel = true;\r\n const token = parentProps.token ? null : globalState.accessToken;\r\n const filename = args.data.data.length ===1 && args.data.data[0].isFile ? args.data.data[0].name : \"Files.zip\";\r\n args.data.token = parentProps.token;\r\n\r\n downloadFile(parentProps.public, token, qstring, args.data)\r\n .then((response) => {\r\n if (response.ok) {\r\n toastInstance.current.show(toasts[0]);\r\n response.blob().then((blob) => {\r\n toastInstance.current.show(toasts[1]);\r\n const url = window.URL.createObjectURL(new Blob([blob]));\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.setAttribute('download', filename);\r\n document.body.appendChild(link);\r\n link.click();\r\n link.parentNode.removeChild(link);\r\n });\r\n }\r\n });\r\n };\r\n\r\n const failed = (args) => {\r\n if (args.error !== undefined && args.error.code === \"401\") {\r\n args.error.message = \"Você não tem permissão para executar esta ação.\";\r\n }\r\n\r\n }\r\n\r\n const menuOpen = (args) => {\r\n if (fileManagerObj.selectedItems.length > 1 || (args.fileDetails.length === 1 && args.fileDetails[0].name === 'CGC')) {\r\n fileManagerObj.disableMenuItems([\"Share\"]);\r\n }\r\n\r\n for (const i in args.items) {\r\n if (args.items[i].id === fileManagerObj.element.id + '_cm_share') {\r\n args.items[i].iconCss = 'e-icons e-fe-share';\r\n }\r\n\r\n if (args.items[i].id === fileManagerObj.element.id + '_cm_generate') {\r\n args.items[i].iconCss = 'e-icons e-create-link';\r\n }\r\n }\r\n }\r\n\r\n const menuClick = (args) => {\r\n if (args.item.id === 'azure-file_cm_share') {\r\n const fileDetails = args.fileDetails[0];\r\n const filePath = fileDetails.filterPath + fileDetails.name;\r\n const isFolder = fileDetails.type === \"Directory\";\r\n data({ caminho: filePath, pasta: isFolder });\r\n modal(true);\r\n }\r\n\r\n if (args.item.id === 'azure-file_cm_generate') {\r\n const fileDetails = args.fileDetails[0];\r\n const filePath = fileDetails.filterPath\r\n const isFolder = fileDetails.type === \"Directory\";\r\n\r\n setLoading(true);\r\n\r\n sharePublicAccess(globalState.accessToken, { caminho: filePath, fileName: fileDetails.name, pasta: isFolder }).then(async response => {\r\n if (response.ok) {\r\n const url = await response.text();\r\n setUrl(url);\r\n setLoading(false);\r\n setShowCopyPaste(true);\r\n }\r\n });\r\n }\r\n }\r\n\r\n const toasts = [\r\n { title: i18n.language ==='pt' ? 'Download iniciado !' : 'Download started !', content: i18n.language ==='pt' ? 'Esta operação pode durar alguns minutos dependendo do tamanho do arquivo selecionado.': 'This operation may take a few minutes depending on the size of the selected file.', cssClass: 'e-toast-warning', icon: 'e-warning toast-icons' },\r\n { title: i18n.language ==='pt' ? 'Download concluído !' : 'Download completed !', content: i18n.language ==='pt' ? 'Download concluído com sucesso.' : 'Download completed successfully.' , cssClass: 'e-toast-success' }\r\n ];\r\n\r\n const publicContextMenuSettings = {\r\n file: ['Open', '|', 'Download'],\r\n folder: ['Open', '|', 'Download'],\r\n layout: ['SortBy', 'View', 'Refresh', '|', 'Details', '|', 'SelectAll']\r\n };\r\n\r\n const contextMenuSettings = {\r\n file: ['Open', '|', 'Cut', 'Copy', '|', 'Delete', 'Rename', '|', 'Details', '|', 'Share', 'Generate'],\r\n folder: ['Open', '|', 'Cut', 'Copy', 'Paste', '|', 'Delete', 'Rename', '|', 'Details', '|', 'Share'],\r\n layout: ['SortBy', 'View', 'Refresh', '|', 'Paste', '|', 'NewFolder', 'Upload', '|', 'Details', '|', 'SelectAll'],\r\n };\r\n\r\n return (\r\n <>\r\n fileManagerObj = fileManager}\r\n ajaxSettings={{\r\n url: parentProps.public\r\n ? parentProps.token\r\n ? `${process.env.REACT_APP_API_URL}/_api/SharedDocuments/GetPublicSharedDocuments?token=${parentProps.token}`\r\n : `${process.env.REACT_APP_API_URL}/_api/SharedDocuments/GetPublicSharedDocumentsTokenless`\r\n : `${process.env.REACT_APP_API_URL}/_api/SharedDocuments/SharedDocumentsOperations${qstring}`,\r\n getImageUrl: parentProps.public\r\n ? parentProps.token\r\n ? `${process.env.REACT_APP_API_URL}/_api/SharedDocuments/PublicSharedDocumentsGetImage`\r\n : `${process.env.REACT_APP_API_URL}/_api/SharedDocuments/PublicSharedDocumentsGetImageTokenless`\r\n : `${process.env.REACT_APP_API_URL}/_api/SharedDocuments/SharedDocumentsGetImage`,\r\n uploadUrl: `${process.env.REACT_APP_API_URL}/_api/SharedDocuments/SharedDocumentsUpload${qstring}`,\r\n //downloadUrl: parentProps.public ? `${process.env.REACT_APP_API_URL}/_api/SharedDocuments/PublicSharedDocumentsDownload`\r\n // :`${process.env.REACT_APP_API_URL}/_api/SharedDocuments/SharedDocumentsDownload`\r\n }}\r\n locale={i18n.language}\r\n path={parentProps.path}\r\n allowDragAndDrop={!parentProps.public}\r\n beforeSend={beforeSend}\r\n beforeImageLoad={beforeLoadImage}\r\n beforeDownload={beforeDownload}\r\n uploadSettings={{ minFileSize: 0, maxFileSize: 5e+8 }}\r\n failure={failed}\r\n toolbarSettings={{ visible: !parentProps.public }}\r\n detailsViewSettings={{\r\n columns: [{ field: 'name', headerText: t('MyDocuments:column_name'), customAttributes: { class: 'e-fe-grid-name' }, minWidth: 30, template: '${name}' },\r\n { field: '_fm_modified', headerText: 'DateModified', type: 'dateTime', format: 'MMMM dd, yyyy HH:mm', width: '0' },\r\n { field: 'size', headerText: 'Size', width: '0', template: '${size}' }]\r\n }}\r\n contextMenuSettings={parentProps.public ? publicContextMenuSettings : contextMenuSettings}\r\n menuClick={menuClick}\r\n menuOpen={menuOpen}\r\n >\r\n \r\n \r\n toastInstance.current = toast} position={{ X: 'Right' }} />\r\n \r\n )\r\n}\r\nexport default React.memo(FileManager, (prev, next) => prev.value === next.value);\r\n","import React from 'react';\r\nimport './MessageModal.css';\r\nimport i18n from 'i18next';\r\nimport { DialogComponent } from '@syncfusion/ej2-react-popups';\r\nimport { useModal } from '../../../hooks/Modal';\r\n\r\nfunction MessageModal(props) {\r\n const [show, setshow] = React.useState();\r\n\r\n const { modalMessageParams, setOpenModal, setModalMessageParams } = useModal();\r\n\r\n React.useEffect(() => {\r\n if (modalMessageParams)\r\n setshow(modalMessageParams.show);\r\n }, [modalMessageParams]);\r\n\r\n return show ? (\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n {i18n.language ===\"pt\" ? modalMessageParams && modalMessageParams.title.titlePt : modalMessageParams && modalMessageParams.title.titleEn}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n {\r\n setshow(false);\r\n setModalMessageParams({ ...modalMessageParams, show: false });\r\n }}\r\n >\r\n {i18n.language ==='pt' ? 'Sair' : 'Exit'}\r\n \r\n
\r\n
\r\n \r\n ) : null;\r\n}\r\n\r\nexport default MessageModal;\r\n","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from 'react-i18next';\r\nimport { GlobalStateContext } from '../general/GlobalState';\r\nimport { DialogComponent } from \"@syncfusion/ej2-react-popups\";\r\nimport { grantTemporaryAcess } from \"../../services/SharedDocumentsSVC\";\r\nimport { FormValidator } from '@syncfusion/ej2-react-inputs';\r\nimport { Redirect } from \"react-router-dom\";\r\nimport FileManager from \"../utilities/SharedDocument\"\r\nimport { createSpinner, showSpinner, setSpinner, hideSpinner } from \"@syncfusion/ej2-react-popups\";\r\n\r\nimport './home.css';\r\nimport { useModal } from \"../../hooks/Modal\";\r\n\r\nlet formObject;\r\nexport const FolderManager = (props) => {\r\n const [globalState, setGlobalState] = React.useContext(GlobalStateContext);\r\n const { buildDialogMessage } = useModal();\r\n const { t } = useTranslation();\r\n\r\n const [showModal, setShowModal] = React.useState(false);\r\n const [showCopyPaste, setShowCopyPaste] = React.useState(false);\r\n const [url, setUrl] = React.useState(\"\");\r\n const [data, setData] = React.useState(null);\r\n const [isLoading, setIsLoading] = React.useState(false);\r\n const [isLoadingFile, setIsLoadingFile] = React.useState(false);\r\n const [response, setResponse] = React.useState(\"\");\r\n\r\n React.useEffect(() => {\r\n if (isLoadingFile) {\r\n createSpinner({ target: document.getElementById('loadingFile') })\r\n showSpinner(document.getElementById('loadingFile'));\r\n setSpinner({ type: 'Bootstrap' });\r\n }\r\n }, [isLoadingFile]);\r\n\r\n const modalButtons = [\r\n {\r\n type: \"submit\",\r\n buttonModel: {\r\n isPrimary: true,\r\n content: t(\"MyDocuments:share\"),\r\n enableProgress: true\r\n },\r\n click: () => {\r\n if (formObject.validate()) {\r\n if (data && data.emails && data.emails.length) {\r\n setIsLoading(true);\r\n grantTemporaryAcess(globalState.accessToken, data)\r\n .then(response => {\r\n setShowModal(false);\r\n // setIsLoading(false);\r\n buildDialogMessage({\r\n messagePt: \"Compartilhamento feito com sucesso\",\r\n messageEn: \"Sharing done sucessfully\",\r\n titlePt: \"Sucesso\",\r\n titleEn: \"Success\"\r\n })\r\n })\r\n .catch(e => {\r\n setResponse(\"Ocorreu um erro no compartilhamento\");\r\n });\r\n } else {\r\n setResponse(\"Email(s) não encontrado(s)\");\r\n }\r\n }\r\n }\r\n }\r\n ];\r\n\r\n React.useEffect(() => {\r\n setIsLoading(false);\r\n setResponse(\"\");\r\n }, [showModal]);\r\n\r\n const modalClose = () => {\r\n document.getElementById('emails').value = '';\r\n setShowModal(false);\r\n }\r\n const emailsOnChange = (e) => {\r\n if (e.target.value) {\r\n const emails = e.target.value.split(';')\r\n let emailsList = [];\r\n emails.map(email => {\r\n const mail = email.trim();\r\n if (validateEmail(mail))\r\n emailsList.push(mail);\r\n });\r\n if (emailsList.length)\r\n setData(obj => ({ ...obj, emails: emailsList }));\r\n }\r\n }\r\n\r\n function validateEmail(email) {\r\n const re = /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n return re.test(email);\r\n }\r\n\r\n React.useEffect(() => {\r\n const options = {\r\n rules: {\r\n 'emails': {\r\n required: [true, t('Validation:required')]\r\n }\r\n },\r\n customPlacement: (inputElement, errorElement) => {\r\n inputElement.parentElement.parentElement.appendChild(errorElement);\r\n }\r\n };\r\n formObject = new FormValidator('#formSharedDocument', options);\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n createSpinner({ target: document.getElementById('loading') })\r\n showSpinner(document.getElementById('loading'));\r\n setSpinner({ type: 'Bootstrap' });\r\n }, [isLoading]);\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n

\r\n {props.title || t('MyDocuments:title')}\r\n

\r\n
\r\n \r\n
\r\n \r\n
\r\n {!isLoading &&
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
}\r\n\r\n {response && !isLoading &&
\r\n {response}\r\n
}\r\n\r\n {isLoading &&
}\r\n
\r\n \r\n setShowCopyPaste(false)}\r\n locale={i18n.language}\r\n >\r\n
\r\n URL para compartilhamento\r\n
\r\n
{url}
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n {isLoadingFile &&
\r\n
\r\n
}\r\n \r\n );\r\n};\r\n","import React, { useContext, createContext, useState } from 'react';\r\nimport MessageModal from '../components/utilities/MessageModal/MessageModal';\r\n\r\nconst ModalContext = createContext(null);\r\n\r\nconst ModalProvider = ({ children }) => {\r\n const [modalMessageParams, setModalMessageParams] = useState({});\r\n\r\n const buildDialogMessage = ({\r\n error,\r\n titlePt,\r\n titleEn,\r\n messagePt,\r\n icon,\r\n type,\r\n messageEn\r\n }) => {\r\n\r\n if (modalMessageParams && !modalMessageParams.show) {\r\n if (error) {\r\n switch (error) {\r\n case 401: {\r\n messagePt = \"Você não tem permissão para essa requisição\";\r\n messageEn = \"You do not have permission to this request\";\r\n titlePt = \"Um erro ocorreu\";\r\n titleEn = \"An error has ocurred\";\r\n break;\r\n }\r\n case 403: {\r\n messagePt = \"Você não tem permissão para essa requisição\";\r\n messageEn = \"You do not have permission to this request\";\r\n titlePt = \"Um erro ocorreu\";\r\n titleEn = \"An error has ocurred\";\r\n break;\r\n }\r\n case 500: {\r\n messagePt = \"Um erro ocorreu ao fazer a requisição\";\r\n messageEn = \"An error has ocurred while making the request\";\r\n titlePt = \"Um erro ocorreu\";\r\n titleEn = \"An error has ocurred\";\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (!icon && error) {\r\n icon = 'e-icon-dlg-close e-icons';\r\n } else if (!icon && !error) {\r\n icon = 'mdl2-confirm';\r\n }\r\n\r\n setModalMessageParams({\r\n title: {\r\n titlePt,\r\n titleEn,\r\n },\r\n message: {\r\n messagePt,\r\n messageEn\r\n },\r\n icon,\r\n show: true,\r\n error: error ? error : null\r\n });\r\n }\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n\r\n \r\n \r\n )\r\n};\r\n\r\nconst useModal = () => {\r\n const context = useContext(ModalContext);\r\n\r\n if (!context && false) {\r\n throw new Error('useModal must be within an ModalProvider');\r\n }\r\n\r\n return context;\r\n};\r\n\r\nexport { useModal, ModalProvider };\r\n","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { Container, Row } from \"reactstrap\";\r\nimport { GlobalStateContext } from '../general/GlobalState'\r\nimport { UserHome } from '../home/UserHome';\r\nimport { BannerHome } from '../home/BannerHome';\r\nimport { WhoIsWhoHome } from '../home/WhoIsWhoHome';\r\nimport { MessageHouse } from '../home/MessageHouse';\r\nimport { FolderManager } from \"../home/FolderManager\";\r\nimport { getBanners } from \"../../services/BannerHomeSVC\";\r\n\r\nexport const Home = () => {\r\n\r\n const [redirect, setRedirect] = React.useState(false);\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n\r\n const [checkBanners, setCheckBanners] = React.useState(false);\r\n\r\n const { t } = useTranslation();\r\n\r\n React.useEffect(() => {\r\n\r\n setCheckBanners(false);\r\n async function load() {\r\n let _banner = await getBanners(globalState.accessToken, i18n.language ===\"pt\" ? 1 : 2)\r\n .then(response => { if (response.ok) { return response.json() } });\r\n\r\n let _findBanners = [];\r\n\r\n if (_banner) {\r\n _findBanners = _banner.filter(item => item.ativo === true);\r\n }\r\n\r\n if (_findBanners && _findBanners.length > 0) {\r\n setCheckBanners(true);\r\n }\r\n }\r\n load();\r\n }, [i18n.language]);\r\n\r\n return (\r\n globalState.accessToken === null ? :\r\n redirect ? : (\r\n
\r\n \r\n \r\n
\r\n setRedirect(true)} />\r\n \r\n
\r\n
\r\n {checkBanners &&\r\n \r\n }\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n )\r\n );\r\n}","import { requestAPI } from '../components/utilities/Utils';\r\n\r\nexport async function getSuppliers(token) {\r\n return requestAPI(\"_api/Supplier/GetSuppliers\", \"GET\", \"?$orderby=nome\", null, token, false);\r\n}\r\n\r\nexport async function addSupplier(token, body) {\r\n const raw = JSON.stringify(body);\r\n return requestAPI(\"_api/Supplier/AddSupplier\", \"POST\", \"\", raw, token, false);\r\n}\r\n\r\nexport async function addOrUpdateSupplier(token, body) {\r\n const raw = JSON.stringify(body);\r\n const endPointURL = body.id ? \"_api/Supplier/UpdateSupplier\" : \"_api/Supplier/AddSupplier\"\r\n return requestAPI(endPointURL, \"POST\", \"\", raw, token, false);\r\n}\r\n\r\nexport async function deleteSupplier(token, id) {\r\n const qstring = `?supplierId=${id}`;\r\n return requestAPI(\"_api/Supplier/DeleteSupplier\", \"DELETE\", qstring, null, token, false);\r\n}\r\n","import * as React from 'react';\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from 'react-i18next';\r\nimport { ProfilePhotoContext } from \"./ProfilePhotoContext\"\r\nimport { createSpinner, DialogComponent, setSpinner, showSpinner } from \"@syncfusion/ej2-react-popups\";\r\nimport { UploaderComponent } from \"@syncfusion/ej2-react-inputs\";\r\nimport './profilePhoto.css';\r\n\r\nconst uploadIcon = '';\r\n\r\nlet dialogRef;\r\nexport const ProfilePhotoComponent = ({ journalist, idContact, showAvatar, hasPermissionToEdit, status, toggle }) => {\r\n let uploaderRef;\r\n let dropAreaRef;\r\n\r\n const [photo, setPhoto] = React.useContext(ProfilePhotoContext);\r\n const [openDialog, setOpenDialog] = React.useState(false);\r\n const [cachePhoto, setCachePhoto] = React.useState(null);\r\n const [loading, setLoading] = React.useState(false);\r\n\r\n const { t } = useTranslation();\r\n const modalButtons = [{\r\n 'click': () => {\r\n updatePhoto();\r\n removeFiles();\r\n setOpenDialog(false);\r\n },\r\n buttonModel: {\r\n isPrimary: true,\r\n content: t('Actions:save')\r\n }\r\n }];\r\n\r\n const target = document.getElementById(\"uploadPhoto\");\r\n\r\n React.useEffect(() => {\r\n setOpenDialog(status);\r\n }, [status]);\r\n\r\n React.useEffect(() => {\r\n if (photo) {\r\n if (uploaderRef) {\r\n uploaderRef.dropArea = dropAreaRef;\r\n uploaderRef.dataBind();\r\n }\r\n }\r\n }, [photo]);\r\n\r\n React.useEffect(() => {\r\n if (openDialog)\r\n dialogRef.buttons = modalButtons;\r\n }, [openDialog]);\r\n\r\n const uploadPhoto = () => {\r\n document.getElementsByClassName(\"e-file-select-wrap\")[0].querySelector(\"button\").click();\r\n return false;\r\n }\r\n\r\n const onClose = () => {\r\n removeFiles();\r\n if (photo.remove || !photo.b64) {\r\n setPhoto(photo => ({\r\n name: photo.name,\r\n size: photo.size,\r\n type: photo.type,\r\n url: photo.url\r\n }));\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n createSpinner({ target: document.getElementById('loadingPhoto') });\r\n showSpinner(document.getElementById('loadingPhoto'));\r\n setSpinner({ type: 'Bootstrap' });\r\n }, [loading]);\r\n\r\n const removeFiles = () => {\r\n const clearThumb = document.getElementById(\"uploadPhoto\") && document.getElementById(\"uploadPhoto\").ej2_instances[0];\r\n if (clearThumb !== null && clearThumb.clearAll !== null && typeof (clearThumb.clearAll) !== \"undefined\") {\r\n return clearThumb.clearAll();\r\n }\r\n }\r\n\r\n const uploaderCreated = () => {\r\n if (photo) {\r\n uploaderRef.files = photo.b64 || photo.url ? [photo] : null;\r\n }\r\n if (uploaderRef) {\r\n uploaderRef.dropArea = dropAreaRef;\r\n uploaderRef.dataBind();\r\n }\r\n }\r\n\r\n const updatePhoto = () => {\r\n setPhoto(photo => {\r\n if (photo.remove) {\r\n if (photo.url)\r\n return { ...photo, b64: null, url: null, delete: true, changed: true };\r\n else\r\n return { ...photo, b64: null, url: null, changed: true };\r\n }\r\n return { ...photo, changed: true }\r\n });\r\n }\r\n\r\n // const onCreated = () => {\r\n // if (uploaderRef) {\r\n // uploaderRef.dropArea = dropAreaRef;\r\n // uploaderRef.dataBind();\r\n // }\r\n // }\r\n\r\n const onRemovingAttachsFiles = (args) => {\r\n setPhoto(photo => {\r\n return { ...photo, remove: true }\r\n });\r\n removeFiles();\r\n };\r\n\r\n const onSetAttachmentsFiles = event => {\r\n if (event.filesData[0].statusCode ===\"1\") {\r\n setLoading(true);\r\n event.filesData.map((file) => {\r\n const reader = new FileReader();\r\n const firstFile = document.getElementById(\"uploadPhoto\").files[0];\r\n reader.addEventListener(\"load\", function () {\r\n const name = firstFile.name;\r\n const i = name.lastIndexOf('.');\r\n const fileName = name.substring(0, i);\r\n const ext = name.substring(i + 1);\r\n\r\n setPhoto(photo => ({ ...photo, name: fileName, remove: false, size: firstFile.size, type: ext, b64: reader.result }));\r\n setLoading(false);\r\n }, false);\r\n reader.readAsDataURL(file.rawFile);\r\n });\r\n } else {\r\n document.getElementById(\"validateImage\").innerHTML = \"O tamanho do arquivo é muito grande\";\r\n }\r\n\r\n document.getElementById(\"validateImage\").innerHTML = \"\";\r\n }\r\n\r\n const downloadAttachment = ({ fileName, url }) => {\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.setAttribute('download', fileName);\r\n document.body.appendChild(link);\r\n link.click();\r\n link.parentNode.removeChild(link);\r\n };\r\n\r\n const removeAttachment = () => {\r\n setPhoto(photo => {\r\n if (photo.b64 && photo.url)\r\n return { ...photo, b64: null };\r\n else\r\n return { ...photo, remove: true }\r\n });\r\n removeFiles();\r\n };\r\n\r\n var getBriefName = journalist && journalist.match(/(^\\S\\S?|\\b\\S)?/g).join(\"\").match(/(^\\S|\\S$)?/g).join(\"\").toUpperCase();\r\n\r\n const beforeClose = () => {\r\n setOpenDialog(false);\r\n toggle && toggle.close();\r\n };\r\n\r\n return (\r\n
\r\n {showAvatar && idContact && !photo ?\r\n
setOpenDialog(true)}>\r\n
\r\n {getBriefName &&\r\n {getBriefName}\r\n }\r\n
\r\n
\r\n \r\n
\r\n
\r\n :\r\n showAvatar &&\r\n
setOpenDialog(true)}>\r\n
\r\n {\r\n photo && ((photo.changed && photo.b64) || !photo.changed && photo.url) ? :
\r\n }\r\n
\r\n
\r\n }\r\n\r\n dialogRef = dialog}\r\n // className={photo && !photo.b64 ? \"preload\": null}\r\n width=\"662px\"\r\n isModal={true}\r\n // buttons={modalButtons}\r\n visible={openDialog}\r\n showCloseIcon={true}\r\n beforeClose={beforeClose}\r\n close={onClose}\r\n locale={i18n.language}\r\n >\r\n\r\n
\r\n
dropAreaRef = dropArea}>\r\n {(photo && ((photo.b64 && !photo.remove) || (photo.changed ===null && photo.url && !photo.remove))) ?\r\n
\r\n uploadPhoto()}>\r\n \r\n \r\n
\r\n :\r\n
\r\n \r\n

{t('Photo:uploadMessage')} uploadPhoto()}>{t('Photo:uploadMessageLastPart')}

\r\n
\r\n }\r\n\r\n
\r\n\r\n
\r\n {loading &&\r\n
}\r\n
\r\n\r\n
\r\n {photo && photo.name && !photo.remove &&\r\n
\r\n
    \r\n
  • \r\n downloadAttachment(photo.name, photo.url)}>\r\n {photo.name}.png\r\n \r\n onRemovingAttachsFiles()} />\r\n
  • \r\n
\r\n
\r\n }\r\n
\r\n\r\n uploaderRef = uploader}\r\n allowedExtensions=\".jpg, .png, .jpeg\"\r\n dropArea={target}\r\n maxFileSize={3000000}\r\n locale={i18n.language}\r\n selected={onSetAttachmentsFiles}\r\n removing={onRemovingAttachsFiles}\r\n multiple={false}\r\n created={uploaderCreated}\r\n >\r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n );\r\n}","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation, getInitialProps } from 'react-i18next';\r\nimport { GlobalStateContext } from '../general/GlobalState';\r\nimport { TextBoxComponent, MaskedTextBoxComponent } from '@syncfusion/ej2-react-inputs';\r\nimport { CheckBoxSelection, Inject, MultiSelectComponent, DropDownTreeComponent, DropDownListComponent } from \"@syncfusion/ej2-react-dropdowns\";\r\nimport { GridComponent, ColumnsDirective, ColumnDirective, Filter, Sort, ContextMenu, Page, Resize, Edit, Toolbar, ExcelExport } from \"@syncfusion/ej2-react-grids\";\r\nimport { CheckBoxComponent, ButtonComponent } from \"@syncfusion/ej2-react-buttons\";\r\nimport { createSpinner, setSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\r\nimport { getPermissions } from '../../services/SystemSVC';\r\nimport { getAccessAreas } from '../../services/SystemSVC';\r\nimport { getProfileTemplate } from '../../services/ProfileTemplateSVC';\r\nimport { DialogComponent } from \"@syncfusion/ej2-react-popups\";\r\n\r\nlet gridInstance;\r\nlet modalDelete;\r\n\r\nexport const Permissions = (props) => {\r\n\r\n const { info, changeUser } = props;\r\n\r\n const contextMenuItems = ['SortAscending', 'SortDescending', 'FirstPage', 'PrevPage', 'LastPage', 'NextPage'];\r\n\r\n const [gridItems, setGridItems] = React.useState([]);\r\n const [loadingPermissions, setLoadingPermissions] = React.useState(true);\r\n const [changePermission, setChangePermission] = React.useState(info && info.adminGlobal);\r\n const [globalState, setGlobalState] = React.useContext(GlobalStateContext);\r\n const [profileTemplates, setProfileTemplates] = React.useState([]);\r\n const [rawAreas, setRawAreas] = React.useState([]);\r\n const [comboPermission, setComboPermission] = React.useState([]);\r\n const [areaData, setAreaData] = React.useState([]);\r\n const [admin, setAdmin] = React.useState(info.adminGlobal);\r\n const [areaObj, setAreaObj] = React.useState({});\r\n const [permissionObj, setPermissionObj] = React.useState({});\r\n const [openModalDelete, setOpenModalDelete] = React.useState(false);\r\n const [grid, setGrid] = React.useState([]);\r\n\r\n const [accessArea, setAccessArea] = React.useState(null);\r\n\r\n let valuesArea;\r\n let valuesPermissions;\r\n\r\n\r\n modalDelete = [\r\n {\r\n type: \"submit\",\r\n buttonModel: {\r\n isPrimary: true,\r\n content: i18n.language ===\"pt\" ? \"Cancelar\" : \"Cancel\",\r\n cssClass: \"pemissionDelete\"\r\n },\r\n click: () => {\r\n setOpenModalDelete(false);\r\n }\r\n },\r\n {\r\n type: \"submit\",\r\n buttonModel: {\r\n isPrimary: true,\r\n content: i18n.language ===\"pt\" ? \"Sim\" : \"Yes\",\r\n cssClass: \"pemissionSave\"\r\n },\r\n click: () => {\r\n deleteRow();\r\n }\r\n }\r\n ]\r\n\r\n const { t } = useTranslation();\r\n\r\n React.useEffect(() => {\r\n if (loadingPermissions) {\r\n createSpinner({ target: document.getElementById('loadPermissions') })\r\n showSpinner(document.getElementById('loadPermissions'));\r\n setSpinner({ type: 'Bootstrap' });\r\n }\r\n }, [loadingPermissions]);\r\n\r\n React.useEffect(() => {\r\n if (info) {\r\n setGridItems(info.permissions);\r\n }\r\n }, [i18n.language]);\r\n\r\n React.useEffect(() => {\r\n if (gridItems) {\r\n info.permissions = gridItems;\r\n // gridInstance.refresh();\r\n }\r\n }, [gridItems]);\r\n\r\n React.useEffect(() => {\r\n if (gridInstance)\r\n gridInstance.refresh();\r\n }, [i18n.language]);\r\n\r\n React.useEffect(() => {\r\n setLoadingPermissions(true);\r\n async function load() {\r\n let _profileTemplates = await getProfileTemplate(globalState.accessToken)\r\n .then(response => { if (response.ok) { return response.json(); } });\r\n let _areas = await getAccessAreas(globalState.accessToken)\r\n .then(response => { if (response.ok) { return response.json(); } });\r\n let _permission = await getPermissions(globalState.accessToken)\r\n .then(response => { if (response.ok) { return response.json(); } });\r\n if (_profileTemplates && _areas) {\r\n _profileTemplates.map((pt) => {\r\n pt.permissions.map((pe) => {\r\n let area = _areas.filter(i => i.id ===pe.idAccessArea);\r\n if (area.length > 0) {\r\n pe.area = area[0];\r\n }\r\n })\r\n })\r\n }\r\n\r\n setProfileTemplates(_profileTemplates);\r\n setRawAreas(_areas);\r\n setComboPermission(_permission);\r\n\r\n if (_areas) {\r\n setAreaData(fillAreas(_areas));\r\n }\r\n\r\n hideSpinner(document.getElementById('loadPermissions'));\r\n setLoadingPermissions(false);\r\n }\r\n load();\r\n }, [i18n.language]);\r\n\r\n const fillAreas = (items, currentItem = null, child = false) => {\r\n let arr = [];\r\n items.map((item) => {\r\n if (!child) {\r\n arr.push({ value: item.id, text: i18n.language ===\"pt\" ? item.nomePt : item.nomeEn, hasChildren: item.filhos.length > 0 ? true : false, breadCrumbAccessAreaEn: item.breadCrumbEn, breadCrumbAccessAreaPt: item.breadCrumbPt, isFather: true });\r\n if (item.filhos.length > 0) {\r\n let children = fillAreas(item.filhos, item, true);\r\n arr = arr.concat(children);\r\n }\r\n } else {\r\n arr.push({ value: item.id, text: i18n.language ===\"pt\" ? item.nomePt : item.nomeEn, parentValue: item.idPai, hasChildren: item.filhos.length > 0 ? true : false, breadCrumbAccessAreaEn: item.breadCrumbEn, breadCrumbAccessAreaPt: item.breadCrumbPt, isFather: false });\r\n if (item.filhos.length > 0) {\r\n let children = fillAreas(item.filhos, item, true);\r\n arr = arr.concat(children);\r\n }\r\n }\r\n });\r\n return arr;\r\n }\r\n\r\n const accessAreaChange = (item) => {\r\n debugger;\r\n valuesArea = item.value;\r\n }\r\n\r\n const onInsert = async (e) => {\r\n e.preventDefault();\r\n if (valuesArea && valuesPermissions) {\r\n\r\n let items = [...gridItems];\r\n let areaObj;\r\n let ptPermissionObj = [];\r\n let enPermissionObj = [];\r\n let areaBreadCrumb = [];\r\n\r\n valuesArea.map(area => {\r\n areaObj = areaData.filter(breadValue => breadValue.value ===parseInt(area))[0];\r\n if (!areaObj.hasChildren) {\r\n areaBreadCrumb.push(areaObj)\r\n }\r\n });\r\n\r\n valuesPermissions.map(permission => {\r\n\r\n ptPermissionObj.push(comboPermission.filter(idPermission => idPermission.id ===permission)[0].nomePt);\r\n enPermissionObj.push(comboPermission.filter(idPermission => idPermission.id ===permission)[0].nomeEn);\r\n });\r\n\r\n areaBreadCrumb.map(async breadText => {\r\n let catchIdAccessArea = gridItems.filter(grid => grid.idAccessArea ===breadText.value && grid.status !== 1);\r\n let catchParentValue = gridItems.filter(parent => parent.idAccessArea ===breadText.parentValue);\r\n\r\n if (catchIdAccessArea.length ===0) {\r\n\r\n let obj = { idAccessArea: breadText.value, permissionsPt: ptPermissionObj, permissionsEn: enPermissionObj, breadCrumbAccessAreaPt: breadText.breadCrumbAccessAreaPt, status: 0, IdsPermissions: valuesPermissions };\r\n console.log(obj);\r\n\r\n i18n.language === \"pt\" ? obj.breadCrumbAccessAreaPt = breadText.breadCrumbAccessAreaPt : obj.breadCrumbAccessAreaEn = breadText.breadCrumbAccessAreaEn;\r\n\r\n items.push(obj)\r\n\r\n } else {\r\n let newItemObj = {\r\n idAccessArea: breadText.value,\r\n permissionsPt: ptPermissionObj,\r\n permissionsEn: enPermissionObj,\r\n breadCrumbAccessAreaPt: breadText.breadCrumbAccessAreaPt,\r\n status: 0,\r\n IdsPermissions: valuesPermissions\r\n };\r\n\r\n i18n.language === \"pt\" ? newItemObj.breadCrumbAccessAreaPt = breadText.breadCrumbAccessAreaPt : newItemObj.breadCrumbAccessAreaEn = breadText.breadCrumbAccessAreaEn;\r\n\r\n const oldItemIndex = items.findIndex(grid => grid.idAccessArea ===breadText.value && grid.status !== 1);\r\n\r\n if (items[oldItemIndex].status ===2) {\r\n items[oldItemIndex].status = 1;\r\n } else {\r\n items.splice(oldItemIndex, 1);\r\n }\r\n\r\n items.push(newItemObj);\r\n }\r\n })\r\n\r\n await setLoadingPermissions(true);\r\n setGridItems(items)\r\n hideSpinner(document.getElementById('loadPermissions'));\r\n setLoadingPermissions(false);\r\n\r\n gridInstance.dataSource = items.filter(grid => grid.status !== 1);\r\n\r\n }\r\n };\r\n\r\n const columnArea = (args) => {\r\n return {args && (i18n.language ===\"pt\" ? args.breadCrumbAccessAreaPt.join(' > ') : args.breadCrumbAccessAreaEn.join(' > '))}\r\n };\r\n\r\n const columnPermission = (args) => {\r\n return {args && (i18n.language ===\"pt\" ? args.permissionsPt.join(', ') : args.permissionsEn.join(', '))}\r\n };\r\n\r\n async function deleteRow() {\r\n setLoadingPermissions(true);\r\n\r\n let gridItem = gridItems.find(x => x.idAccessArea === grid.idAccessArea && x.status !== 1);\r\n if (gridItem.ids) {\r\n gridItem.status = 1;\r\n } else {\r\n let index = gridItems.findIndex(x => x.idAccessArea === gridItem.idAccessArea && x.status !== 1);\r\n gridItems.splice(index, 1);\r\n }\r\n\r\n setOpenModalDelete(false);\r\n\r\n hideSpinner(document.getElementById('loadPermissions'));\r\n setLoadingPermissions(false);\r\n\r\n gridInstance.dataSource = gridItems.filter(x => x.status !==1);\r\n\r\n }\r\n\r\n const columnButton = (args) => {\r\n return (\r\n {\r\n e.preventDefault();\r\n setOpenModalDelete(true)\r\n setGrid(args)\r\n console.log(args);\r\n\r\n }}\r\n >Excluir\r\n )\r\n }\r\n\r\n const changedPermission = (e) => {\r\n console.log(e.checked);\r\n setChangePermission(e.checked);\r\n info.adminGlobal = e.checked;\r\n }\r\n\r\n return (\r\n <> {loadingPermissions ?
:\r\n
\r\n
\r\n
\r\n

{t('Permissions:title')}

\r\n
\r\n changedPermission(e)}\r\n />\r\n
\r\n
\r\n {!changePermission && (\r\n <>\r\n
\r\n
\r\n \r\n info.idModeloPerfil = e.itemData && e.itemData.id ? e.itemData.id : null}\r\n showClearButton\r\n />\r\n
\r\n
\r\n
\r\n
\r\n \r\n valuesArea = args.value}\r\n showDropDownIcon={false}\r\n // change={(args) => console.log(\"args:\", args.value)}\r\n />\r\n
\r\n
\r\n \r\n valuesPermissions = args.value}\r\n value={valuesPermissions}\r\n //change={(args) => console.log(\"args permission\", args.value)}\r\n >\r\n \r\n \r\n
\r\n
\r\n
\r\n {t(\"InsertButton:title\")}\r\n
\r\n {gridItems &&\r\n gridInstance.dataSource = info.permissions}\r\n contextMenuItems={contextMenuItems}\r\n filterSettings={{ type: 'Menu' }}\r\n locale={i18n.language}\r\n ref={x => gridInstance = x}\r\n >\r\n \r\n \r\n columnPermission(args)}\r\n headerText={t('TablePermissions:permission')} width=\"240\">\r\n columnButton(args)}\r\n headerText={t('TablePermissions:action')} width=\"125\">\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 )\r\n}","import * as React from 'react';\r\n\r\nconst ProfilePhotoContext = React.createContext();\r\n\r\nconst ProfilePhotoProvider = ({ children }) => {\r\n \r\n const [photo, setPhoto] = React.useState(null);\r\n \r\n return (\r\n \r\n {children}\r\n \r\n\r\n );\r\n};\r\n\r\nexport { ProfilePhotoContext, ProfilePhotoProvider };","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from 'react-i18next';\r\nimport { GlobalStateContext } from '../general/GlobalState';\r\nimport { TextBoxComponent } from '@syncfusion/ej2-react-inputs';\r\nimport { DatePickerComponent } from \"@syncfusion/ej2-react-calendars\";\r\nimport { CheckBoxComponent } from \"@syncfusion/ej2-react-buttons\";\r\nimport { getProfilePhoto } from \"../../services/UsersSVC\";\r\nimport { getCountries, getRegional } from '../../services/SystemSVC';\r\nimport { createSpinner, setSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\r\nimport { getSuppliers } from \"../../services/SuppliersSVC\";\r\nimport { DropDownListComponent } from \"@syncfusion/ej2-react-dropdowns\";\r\nimport { ProfilePhotoComponent } from \"../utilities/ProfilePhoto/ProfilePhotoComponent\";\r\nimport { ProfilePhotoContext } from \"../utilities/ProfilePhoto/ProfilePhotoContext\";\r\nimport MaskedInput from \"react-text-mask\";\r\n\r\nconst phoneNumberMask = [\r\n \"+\",\r\n /[0-9]/,\r\n /[1-9]/,\r\n /\\d/,\r\n /\\d/,\r\n /\\d/,\r\n /\\d/,\r\n /\\d/,\r\n /\\d/,\r\n /\\d/,\r\n /\\d/,\r\n /\\d/,\r\n /\\d/,\r\n /\\d/,\r\n /\\d/,\r\n /\\d/,\r\n];\r\n\r\nexport const UserData = (props) => {\r\n\r\n const dropdownListCountry = React.useRef(null);\r\n const dropdownListRegional = React.useRef(null);\r\n const { info, admin, isProfile, hasPermissionToEdit } = props;\r\n const [hasPermission, setHasPermission] = React.useState(true);\r\n const [employeeChecked, setEmployeeChecked] = React.useState(true);\r\n const [suppliersList, setSuppliersList] = React.useState(null);\r\n const [countrySelected, setCountrySelected] = React.useState(null);\r\n const [loading, setLoading] = React.useState(true);\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [countriesList, setCountriesList] = React.useState([]);\r\n const [regionalSelect, setRegionalSelect] = React.useState([]);\r\n const [showImageModal, setShowImageModal] = React.useState(false);\r\n const [photo, setPhoto] = React.useContext(ProfilePhotoContext);\r\n\r\n const { t } = useTranslation();\r\n\r\n const _info = {\r\n close: () => setShowImageModal(false)\r\n }\r\n\r\n React.useEffect(() => {\r\n if (loading) {\r\n createSpinner({ target: document.getElementById('loadUser') })\r\n showSpinner(document.getElementById('loadUser'));\r\n setSpinner({ type: 'Bootstrap' });\r\n }\r\n }, [loading]);\r\n\r\n React.useEffect(() => {\r\n if (typeof hasPermissionToEdit !== \"undefined\") {\r\n setHasPermission(hasPermissionToEdit);\r\n } else {\r\n setHasPermission(true);\r\n }\r\n }, [hasPermissionToEdit]);\r\n\r\n React.useEffect(() => {\r\n if (info.userId || isProfile) {\r\n let version = new Date().toISOString();\r\n let userIdParam = info.userId ? `&userId=${info.userId}` : `&userId=${globalState.userId}`;\r\n const photoUrl = `${process.env.REACT_APP_API_URL}/_api/Users/GetUserPhoto?token=${globalState.tokenLightWeight}&sizeType=116${userIdParam}&v=${version}`;\r\n getProfilePhoto(photoUrl, function (response) {\r\n if (response.size)\r\n setPhoto({ name: 'photo', size: response.size, type: '.png', url: photoUrl });\r\n });\r\n }\r\n if (info.usuarioTelefone && info.usuarioTelefone.length > 0) {\r\n setNewPhone(info.usuarioTelefone);\r\n } else {\r\n setNewPhone([{\r\n telefone: \"\",\r\n status: 0\r\n }]);\r\n }\r\n }, [info]);\r\n\r\n React.useEffect(() => {\r\n setLoading(true);\r\n async function load() {\r\n\r\n if (admin) {\r\n let suppliers = await getSuppliers(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n addTooltip(suppliers, \"nome\");\r\n setSuppliersList(suppliers);\r\n }\r\n\r\n let _country = await getCountries(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n let _regional = await getRegional(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n\r\n addTooltip(_country, i18n.language ===\"pt\" ? \"nomePt\" : \"nomeEn\");\r\n setCountriesList(_country);\r\n addTooltip(_regional, i18n.language ===\"pt\" ? \"nomePt\" : \"nomeEn\");\r\n setRegionalSelect(_regional);\r\n\r\n hideSpinner(document.getElementById('loadUser'));\r\n setLoading(false);\r\n }\r\n load();\r\n }, [i18n.language]);\r\n\r\n React.useEffect(() => {\r\n if (props.isNewItem) {\r\n setPhoto(null);\r\n }\r\n }, [props.isNewItem]);\r\n\r\n React.useEffect(() => {\r\n if (info.funcionarioVale) {\r\n info.idFornecedor = null;\r\n }\r\n }, [info.funcionarioVale]);\r\n\r\n const changedEmployee = (e) => {\r\n props.setInfo({\r\n ...info,\r\n funcionarioVale: e.checked\r\n });\r\n\r\n if (e.checked) {\r\n info.idTipoUsuario = 2; //user\r\n props.setFormValidationRules('remove', 'supplier');\r\n }\r\n else {\r\n info.idTipoUsuario = 3; //supplier\r\n props.setFormValidationRules('add', 'supplier', { required: [true, t('Validation:required')] });\r\n }\r\n\r\n setEmployeeChecked(e.checked);\r\n }\r\n\r\n const changedSupplier = (e) => {\r\n let selectedValue = e.itemData ? e.itemData.id : null;\r\n info.idFornecedor = selectedValue;\r\n info.idTipoUsuario = selectedValue ? 3 : 2;\r\n }\r\n\r\n const changedCountry = (e) => {\r\n let selectedValue = e.itemData ? e.itemData.id : null;\r\n info.idPais = selectedValue;\r\n if (info.idPais !== 6) {\r\n info.idRegional = null;\r\n }\r\n setCountrySelected(selectedValue);\r\n }\r\n\r\n const [newPhone, setNewPhone] = React.useState(\r\n () => {\r\n if (info.usuarioTelefone && info.usuarioTelefone.length > 0) {\r\n return info.usuarioTelefone;\r\n }\r\n return [{\r\n telefone: \"\",\r\n status: 0\r\n }]\r\n }\r\n );\r\n\r\n\r\n\r\n let addNewPhone = () => {\r\n const phones = newPhone.filter(phone => phone.status !== 2);\r\n if (phones.length < 3) {\r\n setNewPhone(\r\n newPhone => [...newPhone, { telefone: \"\", status: 0 }]\r\n )\r\n }\r\n }\r\n\r\n const removePhone = (index) => {\r\n let temp = [...newPhone];\r\n if (temp[index] !==null) {\r\n if (temp[index].telefone !==\"\") {\r\n let pos = info.usuarioTelefone.map(function (e) { return e.telefone; }).indexOf(temp[index].telefone);\r\n let phoneFilter = info.usuarioTelefone.filter(findPhone => findPhone.telefone ===temp[index].telefone)[0];\r\n\r\n if (phoneFilter.status !==0) {\r\n info.usuarioTelefone[pos].status = 2;\r\n } else {\r\n temp.splice(pos, 1);\r\n }\r\n } else if (temp[index].status ===0) {\r\n temp.splice(index, 1);\r\n }\r\n }\r\n setNewPhone(temp);\r\n info.usuarioTelefone = temp;\r\n }\r\n\r\n const updatePhone = (index, e) => {\r\n var numberPattern = /\\d+/g;\r\n\r\n let value = e.target.value\r\n\r\n if (value) {\r\n const formattedValue = value.match(numberPattern).join('');\r\n\r\n if (newPhone[index].telefone !==formattedValue && (newPhone[index].status ===3 || newPhone[index].status ===2)) {\r\n newPhone[index].status = 1;\r\n }\r\n\r\n newPhone[index].telefone = formattedValue;\r\n }\r\n else if (newPhone[index].status !== 0) {\r\n newPhone[index].status = 2;\r\n }\r\n\r\n if (newPhone[index].telefone !==\"\") {\r\n let phoneFilter = info.usuarioTelefone.filter(findPhone => findPhone.telefone ===newPhone[index].telefone);\r\n if (phoneFilter.length ===0) {\r\n info.usuarioTelefone.push(newPhone[index]);\r\n }\r\n }\r\n }\r\n\r\n const dropdownListCreated = () => {\r\n if (hasPermission) {\r\n if (dropdownListRegional && dropdownListRegional.current) {\r\n dropdownListRegional.current.enabled = true;\r\n dropdownListCountry.current.enabled = true;\r\n }\r\n } else {\r\n if (dropdownListRegional && dropdownListRegional.current) {\r\n dropdownListRegional.current.enabled = false;\r\n dropdownListCountry.current.enabled = false;\r\n }\r\n\r\n }\r\n };\r\n\r\n const addTooltip = (items, prop) => {\r\n items && items.length > 0 && items.map(item => item.tooltip = { title: item[prop] });\r\n }\r\n\r\n const onChangeRegional = (e) => {\r\n props.setInfo({\r\n ...info,\r\n idRegional: e.itemData ? e.itemData.id : null\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n {loading ?
:\r\n
\r\n
\r\n
\r\n
setShowImageModal(hasPermission)}>\r\n {photo && ((photo.changed && photo.b64) || !photo.changed && photo.url) && }\r\n
\r\n
\r\n info.nome = e.value}\r\n disabled={!hasPermission}\r\n />\r\n
\r\n {admin &&\r\n <>\r\n
\r\n changedEmployee(e)}\r\n disabled={!hasPermission}\r\n\r\n />\r\n info.incluirWhoIsWho = e.checked}\r\n disabled={!hasPermission}\r\n\r\n />\r\n
\r\n \r\n }\r\n
\r\n {(admin && (!info.funcionarioVale || !employeeChecked)) &&\r\n
\r\n
\r\n
\r\n \r\n changedSupplier(e)}\r\n disabled={!hasPermission}\r\n readonly={!hasPermission}\r\n />\r\n
\r\n
\r\n }\r\n
\r\n
\r\n
\r\n \r\n info.email = e.value}\r\n disabled={!hasPermission}\r\n\r\n />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n info.dataNascimento = e.value ? e.value.toISOString().split('.')[0] : ''}\r\n locale={i18n.language}\r\n disabled={!hasPermission}\r\n\r\n />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n dropdownListCountry.current = ref}\r\n dataSource={countriesList}\r\n fields={{ text: i18n.language ===\"pt\" ? \"nomePt\" : \"nomeEn\", value: \"id\", htmlattributes: \"tooltip\" }}\r\n placeholder={t('UserVale:country')}\r\n value={info.idPais}\r\n change={(e) => changedCountry(e)}\r\n created={dropdownListCreated}\r\n allowFiltering={true}\r\n />\r\n
\r\n
\r\n {(countrySelected === 6 || info.idPais === 6) &&\r\n
\r\n
\r\n
\r\n \r\n dropdownListRegional.current = ref}\r\n dataSource={regionalSelect}\r\n fields={{ text: i18n.language ===\"pt\" ? \"nomePt\" : \"nomeEn\", value: \"id\", htmlattributes: \"tooltip\" }}\r\n placeholder={t('UserVale:regional')}\r\n value={info && info.idRegional}\r\n change={onChangeRegional}\r\n created={dropdownListCreated}\r\n showClearButton\r\n\r\n />\r\n
\r\n
\r\n }\r\n
\r\n
\r\n
\r\n \r\n {newPhone.filter(phone => phone.status !== 2).length < 3 &&\r\n
\r\n
addNewPhone()} />\r\n
}\r\n {newPhone && newPhone.length > 0 &&\r\n newPhone.map((item, index) => item.status !== 2 && (\r\n
\r\n \r\n updatePhone(index, e)}\r\n />\r\n \r\n {hasPermission &&\r\n
\r\n
removePhone(index)} />\r\n
\r\n }\r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n {showImageModal &&\r\n \r\n }\r\n
\r\n }\r\n \r\n )\r\n}\r\n","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { useTranslation, getInitialProps } from 'react-i18next';\r\nimport { GlobalStateContext } from '../general/GlobalState';\r\nimport { TextBoxComponent, MaskedTextBoxComponent } from '@syncfusion/ej2-react-inputs';\r\nimport { DatePickerComponent } from \"@syncfusion/ej2-react-calendars\";\r\nimport { DropDownListComponent } from \"@syncfusion/ej2-react-dropdowns\";\r\nimport { CheckBoxComponent } from \"@syncfusion/ej2-react-buttons\";\r\nimport { Tooltip } from \"@syncfusion/ej2-react-popups\";\r\nimport { createSpinner, setSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\r\nimport { getProfileAreas, getProfileManagement, getProfileDepartments } from '../../services/SystemSVC';\r\nimport { users } from \"../../services/UsersSVC\";\r\n\r\nexport const ProfData = (props) => {\r\n\r\n\r\n const departmenRef = React.useRef(null);\r\n const managementRef = React.useRef(null);\r\n const businessAreaRef = React.useRef(null);\r\n const superiorRef = React.useRef(null);\r\n\r\n const { setInfo, info, admin, hasPermissionToEdit } = props;\r\n\r\n const [loadingProf, setLoadingProf] = React.useState(true);\r\n const [globalState, setGlobalState] = React.useContext(GlobalStateContext);\r\n const [hasPermission, setHasPermission] = React.useState(true);\r\n const [areaSelect, setAreaSelect] = React.useState([]);\r\n const [departamentSelect, setDepartamentSelect] = React.useState([]);\r\n const [managementSelect, setManagementSelect] = React.useState([]);\r\n const [immediateLeader, setImmediateLeader] = React.useState([]);\r\n\r\n const { t } = useTranslation();\r\n\r\n React.useEffect(() => {\r\n if (loadingProf) {\r\n createSpinner({ target: document.getElementById('loadProf') })\r\n showSpinner(document.getElementById('loadProf'));\r\n setSpinner({ type: 'Bootstrap' });\r\n }\r\n }, [loadingProf]);\r\n\r\n React.useEffect(() => {\r\n if (typeof hasPermissionToEdit !== \"undefined\") {\r\n setHasPermission(hasPermissionToEdit);\r\n } else {\r\n setHasPermission(true);\r\n }\r\n }, [hasPermissionToEdit]);\r\n\r\n React.useEffect(() => {\r\n setLoadingProf(true);\r\n\r\n async function load() {\r\n let _management = await getProfileManagement(globalState.accessToken, i18n.language)\r\n .then(response => { if (response.ok) { return response.json(); } });\r\n let _areas = await getProfileAreas(globalState.accessToken, i18n.language)\r\n .then(response => { if (response.ok) { return response.json(); } });\r\n let _departments = await getProfileDepartments(globalState.accessToken, i18n.language)\r\n .then(response => { if (response.ok) { return response.json(); } });\r\n let _immediate = await users(globalState.accessToken)\r\n .then(response => { if (response.ok) { return response.json(); } });\r\n\r\n addTooltip(_management, i18n.language ===\"pt\" ? \"nomePt\" : \"nomeEn\");\r\n setManagementSelect(_management);\r\n addTooltip(_areas, i18n.language ===\"pt\" ? \"nomePt\" : \"nomeEn\");\r\n setAreaSelect(_areas);\r\n addTooltip(_departments, i18n.language ===\"pt\" ? \"nomePt\" : \"nomeEn\");\r\n setDepartamentSelect(_departments);\r\n addTooltip(_immediate, \"nome\");\r\n setImmediateLeader(_immediate);\r\n\r\n hideSpinner(document.getElementById('loadProf'));\r\n setLoadingProf(false);\r\n }\r\n load();\r\n }, [i18n.language]);\r\n\r\n const addTooltip = (items, prop) => {\r\n items && items.length > 0 && items.map(item => item.tooltip = { title: item[prop] });\r\n }\r\n\r\n const dropdownListCreated = () => {\r\n if (hasPermission) {\r\n businessAreaRef.current.enabled = true;\r\n departmenRef.current.enabled = true;\r\n managementRef.current.enabled = true;\r\n superiorRef.current.enabled = true;\r\n } else {\r\n businessAreaRef.current.enabled = false;\r\n departmenRef.current.enabled = false;\r\n managementRef.current.enabled = false;\r\n superiorRef.current.enabled = false;\r\n }\r\n };\r\n\r\n const dateValeChanged = e =>{\r\n setInfo(info => ({ ...info, dataInicioVale: e.value }));\r\n }\r\n\r\n return (\r\n loadingProf ?
:\r\n
\r\n
\r\n
\r\n

{t('ProfData:title')}

\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n setInfo(info => ({ ...info, cargo: e.value }))}\r\n />\r\n
\r\n
\r\n \r\n setInfo(info => ({ ...info, matricula: e.value }))}\r\n disabled={!hasPermission}\r\n />\r\n
\r\n
\r\n
\r\n {admin &&\r\n
\r\n setInfo(info => ({ ...info, cargoGerencia: e.checked }))}\r\n disabled={!hasPermission}\r\n />\r\n
\r\n }\r\n
\r\n \r\n setInfo(info => ({ ...info, atividadePrincipal: e.value }))}\r\n disabled={!hasPermission}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n \r\n setInfo(info => ({ ...info, idPerfilDepartamento: e.itemData ? e.itemData.id : null }))}\r\n created={dropdownListCreated}\r\n showClearButton\r\n />\r\n
\r\n
\r\n \r\n setInfo(info => ({ ...info, idPerfilGerencia: e.itemData ? e.itemData.id : null }))}\r\n created={dropdownListCreated}\r\n showClearButton\r\n\r\n />\r\n
\r\n
\r\n \r\n setInfo(info => ({ ...info, idPerfilArea: e.itemData ? e.itemData.id : null }))}\r\n created={dropdownListCreated}\r\n showClearButton\r\n\r\n />\r\n
\r\n
\r\n \r\n setInfo(info => ({ ...info, idSuperiorDireto: e.itemData ? e.itemData.id : null }))}\r\n created={dropdownListCreated}\r\n showClearButton\r\n />\r\n
\r\n
\r\n
\r\n
\r\n \r\n setInfo(info => ({ ...info, enderecoTrabalho: e.value }))}\r\n disabled={!hasPermission}\r\n />\r\n
\r\n
\r\n
\r\n )\r\n}\r\n","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from 'react-i18next';\r\nimport { GlobalStateContext } from '../general/GlobalState';\r\nimport { TextBoxComponent, MaskedTextBoxComponent } from '@syncfusion/ej2-react-inputs';\r\nimport { DatePickerComponent } from \"@syncfusion/ej2-react-calendars\";\r\nimport { ComboBoxComponent } from \"@syncfusion/ej2-react-dropdowns\";\r\nimport { ButtonComponent } from \"@syncfusion/ej2-react-buttons\";\r\n\r\nimport './utilities.css';\r\nimport { Redirect } from \"react-router-dom\";\r\n\r\nlet userPermission = [];\r\n\r\nexport const Actions = (props) => {\r\n\r\n //Opções:\r\n //Boolean: savePrimary / excludePrimary\r\n //String: class/ urlView / urlPreview / urlDuplicate / urlSave / urlSend / urlCancel / urlDelete\r\n const { controls } = props;\r\n const { t } = useTranslation();\r\n const [loading, setLoading] = React.useState(true);\r\n const [globalState, setGlobalState] = React.useContext(GlobalStateContext);\r\n\r\n React.useEffect(() => {\r\n if (controls.area) {\r\n let globalPermissions = globalState.permissions;\r\n userPermission = globalPermissions.filter((i) => i.accessArea === controls.area).map((i) => (i.permission));\r\n }\r\n }, [globalState]);\r\n\r\n const customPermissionToDelete = () => {\r\n if (typeof controls.customPermissionsDelete ===\"undefined\") {\r\n return (controls.urlDelete && globalState.userAdmin ||\r\n (controls.area &&\r\n userPermission.indexOf(\"Admin\") !==-1 || userPermission.indexOf(\"Exclusão\") !==-1\r\n ));\r\n } else {\r\n return controls.customPermissionsDelete;\r\n }\r\n }\r\n\r\n const customPermission = () => {\r\n if (typeof controls.customPermissions ===\"undefined\") {\r\n return (controls.urlSave && globalState.userAdmin ||\r\n (controls.area &&\r\n userPermission.indexOf(\"Admin\") !==-1 || userPermission.indexOf(\"Inclusão\") !==-1 || userPermission.indexOf(\"Alteração\") !==-1 || controls.hasPermissionToEdit\r\n ));\r\n } else {\r\n return controls.customPermissions;\r\n }\r\n }\r\n\r\n\r\n return (\r\n <>\r\n\r\n
\r\n
\r\n
\r\n

{t('Actions:title')}

\r\n {/* {controls.urlView &&\r\n {t('Actions:view')}\r\n } */}\r\n
\r\n {controls.urlPreview &&\r\n
\r\n {t('Actions:preview')}\r\n
\r\n }\r\n
\r\n {controls.urlReturn &&\r\n {t('Actions:return')}\r\n }\r\n {controls.urlDuplicateLiaison &&\r\n {t('Actions:duplicateLiaison')}\r\n }\r\n {controls.urlForward &&\r\n {t('Actions:forward')}\r\n }\r\n {controls.urlDuplicate &&\r\n {t('Actions:duplicate')}\r\n }\r\n {controls.previewSignature &&\r\n {t('Actions:previewSignature')}\r\n }\r\n {customPermission() &&\r\n {t('Actions:save')}\r\n }\r\n {controls.urlSend &&\r\n {t('Actions:send')}\r\n }\r\n {controls.urlCancel &&\r\n {t('Actions:cancel')}\r\n }\r\n {customPermissionToDelete() &&\r\n {t('Actions:delete')}\r\n }\r\n
\r\n
\r\n \r\n )\r\n}\r\n","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport { useTranslation } from 'react-i18next';\r\nimport { TextBoxComponent, MaskedTextBoxComponent } from '@syncfusion/ej2-react-inputs';\r\nimport { ButtonComponent } from \"@syncfusion/ej2-react-buttons\";\r\nimport { update_password } from '../../services/UsersSVC';\r\nimport { createSpinner, showSpinner, hideSpinner, setSpinner } from '@syncfusion/ej2-popups';\r\nimport { GlobalStateContext } from \"../general/GlobalState\";\r\nimport { LoginStateContext } from '../login/LoginState';\r\n\r\nexport const ChangePassword = () => {\r\n\r\n const [loginState, setLoginState] = React.useContext(LoginStateContext);\r\n const [globalState, setGlobalState] = React.useContext(GlobalStateContext);\r\n const [validateReset, setValidateReset] = React.useState(true);\r\n const [validateConfirm, setValidateConfirm] = React.useState(true);\r\n const [similarPassword, setSimilarPassword] = React.useState(true);\r\n const [showSucessText, setShowSucessText] = React.useState(false);\r\n const [loadingChangePass, setLoadingChangePass] = React.useState(true);\r\n\r\n const { t } = useTranslation();\r\n\r\n const { handleSubmit, register, triggerValidation, watch } = useForm({ nativeValidation: true });\r\n const htmlPasswordAttributes = { name: \"password\", type: \"password\", maxlength: \"100\" };\r\n\r\n React.useEffect(() => {\r\n if (i18n.language) {\r\n setLoadingChangePass(true);\r\n createSpinner({ target: document.getElementById('loadingChangePass') })\r\n showSpinner(document.getElementById('loadingChangePass'));\r\n setSpinner({ type: 'Bootstrap' });\r\n }\r\n }, [i18n.language]);\r\n\r\n React.useEffect(() => {\r\n if (!loadingChangePass)\r\n hideSpinner(document.getElementById('loadingChangePass'));\r\n setLoadingChangePass(false);\r\n }, [loadingChangePass]);\r\n\r\n\r\n const onSubmit = async (data) => {\r\n\r\n update_password(globalState.accessToken, data.NewPassword)\r\n .then(response => {\r\n if (response.ok) {\r\n setShowSucessText(true);\r\n document.getElementById(\"new_password\").value= ''\r\n document.getElementById(\"change_password\").value= ''\r\n }\r\n }) \r\n .catch(error => {\r\n console.error(error);\r\n setValidateReset(false);\r\n setValidateConfirm(false);\r\n });\r\n };\r\n\r\n let changePassword = async () => {\r\n const triggerReset = await triggerValidation(\"NewPassword\");\r\n const triggerConfirm = await triggerValidation(\"ConfirmPassword\");\r\n const watchReset = watch(\"NewPassword\");\r\n const watchConfirm = watch(\"ConfirmPassword\");\r\n\r\n setValidateReset(triggerReset);\r\n setValidateConfirm(triggerConfirm);\r\n\r\n if (!validateReset || !validateConfirm) {\r\n setValidateReset(false);\r\n setValidateConfirm(false);\r\n }\r\n\r\n if (watchConfirm !==watchReset) {\r\n setSimilarPassword(false);\r\n }\r\n\r\n if ((watchConfirm ===watchReset) && validateReset && validateConfirm) {\r\n handleSubmit(onSubmit)();\r\n }\r\n }\r\n\r\n\r\n return (\r\n <>\r\n
\r\n {!loadingChangePass &&\r\n
\r\n
\r\n
\r\n

{t('ChangePassword:title')}

\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n {(!validateReset || !validateConfirm) &&\r\n
\r\n {t('Reset:invalid_password_message')}\r\n
\r\n }\r\n {!similarPassword &&\r\n
\r\n {t('Reset:different_password_message')}\r\n
\r\n }\r\n {showSucessText &&\r\n
\r\n {t('ChangePassword:sucess_changed')}\r\n
\r\n }\r\n\r\n changePassword()}\r\n type=\"button\"\r\n >{t('ChangePassword:title')}\r\n \r\n
\r\n }\r\n \r\n )\r\n}","import React, { useEffect, useContext, useState } from \"react\";\r\nimport { Link, Redirect } from \"react-router-dom\";\r\nimport { getChartObj } from '../../services/UsersSVC';\r\nimport { GlobalStateContext } from \"../general/GlobalState\";\r\n\r\nexport const WhoIsWho = ({ idUser }) => {\r\n\r\n const [globalState] = useContext(GlobalStateContext);\r\n const [listSubordinates, setListSubordinates] = useState([]);\r\n const [listChart, setListChart] = useState(null);\r\n\r\n useEffect(() => {\r\n async function getChart() {\r\n const chartObj = await getChartObj(globalState.accessToken, idUser).then(res => {\r\n if (res.ok)\r\n return res.json();\r\n });\r\n\r\n const [chartTree] = list_to_tree(chartObj);\r\n\r\n setListChart(chartTree);\r\n\r\n\r\n }\r\n getChart();\r\n }, []);\r\n\r\n const list_to_tree = (list) => {\r\n var map = {}, node, roots = [], i;\r\n\r\n for (i = 0; i < list.length; i += 1) {\r\n map[list[i].id] = i; // initialize the map\r\n list[i].children = []; // initialize the children\r\n }\r\n\r\n for (i = 0; i < list.length; i += 1) {\r\n node = list[i];\r\n if (node.manager) {\r\n // if you have dangling branches check that map[node.parentId] exists\r\n list[map[node.manager]].children.push(node);\r\n } else {\r\n roots.push(node);\r\n }\r\n }\r\n return roots;\r\n }\r\n\r\n const TopWho = ({ item }) => {\r\n if (item && item.children.length > 0) {\r\n setListSubordinates(item.children);\r\n }\r\n return (\r\n <>\r\n { listChart && item && (item.children.length > 0 || listChart.children.length ===0) && <>\r\n
\r\n
\r\n {item.isManager &&
}\r\n
\r\n {item.name}\r\n {item.role}\r\n {item.role2}\r\n
\r\n \"\"\r\n
\r\n
\r\n
\r\n { item.children && item.children.length > 0 && }\r\n \r\n }\r\n \r\n )\r\n }\r\n\r\n return (\r\n
\r\n\r\n
\r\n
\r\n

Who is Who

\r\n
\r\n
\r\n
\r\n {listChart && }\r\n
\r\n
\r\n {listSubordinates &&\r\n listSubordinates.map((i, index) => (\r\n
\r\n
\r\n {i.isManager &&
}\r\n
\r\n {i.name}\r\n {i.role}\r\n {i.role2}\r\n
\r\n \"\"\r\n
\r\n
\r\n ))\r\n }\r\n
\r\n
\r\n
\r\n )\r\n}\r\n","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { Container, Row } from \"reactstrap\";\r\nimport { GlobalStateContext } from '../general/GlobalState';\r\nimport { UserData } from '../profile/UserData';\r\nimport { ProfData } from '../profile/ProfData';\r\nimport { Actions } from \"../utilities/Actions\";\r\nimport { ChangePassword } from \"../profile/ChangePassword\";\r\nimport { WhoIsWho } from \"../profile/WhoIsWho\";\r\nimport { usersFull, getProfile, updateMyProfile } from \"../../services/UsersSVC\";\r\nimport { getRegional } from \"../../services/SystemSVC\";\r\nimport '../profile/profile.css';\r\nimport { ProfilePhotoContext } from \"../utilities/ProfilePhoto/ProfilePhotoContext\";\r\nimport { createSpinner, DialogComponent, setSpinner, showSpinner } from \"@syncfusion/ej2-react-popups\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport const Profile = (props) => {\r\n\r\n const [globalState, setGlobalState] = React.useContext(GlobalStateContext);\r\n const [dataUser, setDataUser] = React.useState([]);\r\n const [redirect, setRedirect] = React.useState(false);\r\n const [hasPermissionToEdit, setHasPermissionToEdit] = React.useState(false);\r\n const [photo, setPhoto] = React.useContext(ProfilePhotoContext);\r\n const [openModal, setOpenModal] = React.useState(false);\r\n const [disabledBtn, setDisabledBtn] = React.useState(false);\r\n\r\n const { t } = useTranslation();\r\n\r\n let idUser = props && props.match.params && props.match.params.id ? props.match.params.id : globalState.userId;\r\n\r\n const _controls = {\r\n class: \"profile\",\r\n savePrimary: false,\r\n customPermissions: idUser ===globalState.userId,\r\n excludePrimary: false,\r\n urlView: \"\",\r\n urlPreview: \"\",\r\n urlDuplicate: \"\",\r\n urlSave: () => changeInfoUser(),\r\n urlSend: \"\",\r\n urlCancel: () => setRedirect(true),\r\n urlDelete: \"\",\r\n area: true,\r\n hasPermissionToEdit\r\n };\r\n\r\n React.useEffect(() => {\r\n async function getItems() {\r\n const profile = await getProfile(globalState.accessToken, idUser).then(res => {\r\n if (res.ok)\r\n return res.json();\r\n })\r\n\r\n if (profile) {\r\n profile.userId = idUser;\r\n\r\n setHasPermissionToEdit(globalState.userId == profile.userId);\r\n setDataUser(profile);\r\n }\r\n }\r\n getItems();\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n createSpinner({ target: document.getElementById('loadingProfile') });\r\n showSpinner(document.getElementById('loadingProfile'));\r\n setSpinner({ type: 'Bootstrap' });\r\n }, [openModal]);\r\n\r\n React.useEffect(() => {\r\n async function load() {\r\n let _usersFull = await usersFull(globalState.accessToken);\r\n\r\n if (_usersFull && idUser) {\r\n _usersFull = _usersFull.filter(i => i.userId ===idUser)[0];\r\n setDataUser(dataUser => ({\r\n ...dataUser,\r\n idUser: dataUser.idUser\r\n }));\r\n }\r\n }\r\n load();\r\n }, [i18n.language]);\r\n\r\n let changeInfoUser = async () => {\r\n setDisabledBtn(true);\r\n setOpenModal(true);\r\n let data = dataUser;\r\n data.fotoB64 = photo && photo.b64 ? photo.b64.split(',')[1] : null;\r\n\r\n let newRegional = globalState.regional;\r\n\r\n if (dataUser.idRegional !== globalState.regional?.id) {\r\n const regPromise = await getRegional(globalState.accessToken);\r\n\r\n if (regPromise.ok) {\r\n const reg = await regPromise.json();\r\n\r\n newRegional = reg.filter(regional => regional.id ===dataUser.idRegional);\r\n\r\n if (newRegional.length > 0) {\r\n newRegional = newRegional[0]\r\n }\r\n }\r\n\r\n }\r\n\r\n updateMyProfile(globalState.accessToken, data)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n })\r\n .then(result => {\r\n setGlobalState(globalState => ({\r\n ...globalState,\r\n userName: dataUser.nome,\r\n userPhoto: globalState.userPhoto,\r\n regional: newRegional,\r\n }));\r\n setRedirect(true);\r\n setDisabledBtn(false);\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n setDisabledBtn(false);\r\n })\r\n }\r\n\r\n return (\r\n <>\r\n {globalState.accessToken === null ? :\r\n redirect ? : (\r\n <>\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n {dataUser.incluirWhoIsWho && }\r\n
\r\n
\r\n \r\n {\r\n hasPermissionToEdit && <>\r\n \r\n \r\n }\r\n {dataUser.trocaSenha &&\r\n
\r\n
\r\n
\r\n

{t('UserData:title')}

\r\n
\r\n
\r\n
\r\n
\r\n {dataUser.nome}\r\n {(new Date(dataUser.trocaSenha)).toLocaleDateString(i18n.language)} {(new Date(dataUser.trocaSenha)).toLocaleTimeString(i18n.language, { hour12: false })}\r\n
\r\n
\r\n {i18n.language ===\"pt\" ? 'Alteração' : 'Change'}\r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n \r\n \r\n \r\n
\r\n {/* {t(\"Users:loading\")} */}\r\n \r\n \r\n )\r\n }\r\n \r\n\r\n );\r\n}\r\n","import React, { useRef, useState } from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from 'react-i18next';\r\nimport { GlobalStateContext } from '../general/GlobalState';\r\nimport {\r\n GridComponent, ColumnsDirective, ColumnDirective, ForeignKey,\r\n Filter, Inject, Sort, ContextMenu, Page, Resize, Edit\r\n} from '@syncfusion/ej2-react-grids';\r\nimport { ExcelExport, Toolbar } from '@syncfusion/ej2-react-grids';\r\nimport { DropDownTreeComponent, DropDownListComponent } from '@syncfusion/ej2-react-dropdowns';\r\nimport { TextBoxComponent } from '@syncfusion/ej2-react-inputs';\r\nimport { ButtonComponent } from '@syncfusion/ej2-react-buttons';\r\nimport { createSpinner, setSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\r\nimport { Query } from '@syncfusion/ej2-data';\r\nimport { getSuppliers } from '../../services/SuppliersSVC';\r\nimport \"./users.css\"\r\n\r\nimport { users, usersFull } from \"../../services/UsersSVC\";\r\nimport {\r\n getCountries, getAccessAreas, getProfileAreas, getProfileDepartments,\r\n getProfileManagement, getUserTypes, getRegional\r\n} from \"../../services/SystemSVC\";\r\n\r\nexport const UsersList = (props) => {\r\n\r\n const { gridExport, gridExportChange, gridInstance } = props;\r\n\r\n const superiorDiretoRef = useRef(null);\r\n const cargoRef = useRef(null);\r\n const areaRef = useRef(null);\r\n const paisRef = useRef(null);\r\n const emailRef = useRef(null);\r\n const regionalRef = useRef(null);\r\n const areaNegocioRef = useRef(null);\r\n const tipoUsuarioRef = useRef(null);\r\n const departamentoRef = useRef(null);\r\n const fornecedorRef = useRef(null);\r\n const gerenciaRef = useRef(null);\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n\r\n const [fillUsersData, setFillUsersData] = React.useState(null);\r\n const [fillData, setFillData] = React.useState([]);\r\n const [fillUsersDataFull, setFillUsersDataFull] = React.useState([]);\r\n const [fillCountriesData, setFillCountriesData] = React.useState([]);\r\n const [fillAccessAreasData, setFillAccessAreasData] = React.useState([]);\r\n const [fillBusinessAreaData, setFillBusinessAreaData] = React.useState([]);\r\n const [fillDepartamentData, setFillDepartamentData] = React.useState([]);\r\n const [fillManagementData, setFillManagementData] = React.useState([]);\r\n const [fillUserTypesData, setFillUserTypesData] = React.useState([]);\r\n const [fillSupplierDescriptionsData, setSupplierDescriptionsData] = React.useState([]);\r\n const [fillRegionalData, setFillRegionalData] = React.useState([]);\r\n const [isLoading, setLoading] = React.useState(true);\r\n\r\n const [persistence, setPersistence] = useState(false);\r\n\r\n const [filters, setFilters] = React.useState([]);\r\n\r\n React.useEffect(() => {\r\n if (isLoading && document.getElementById('loadUsersList')) {\r\n createSpinner({ target: document.getElementById('loadUsersList') })\r\n showSpinner(document.getElementById('loadUsersList'));\r\n setSpinner({ type: 'Bootstrap' });\r\n }\r\n }, [isLoading]);\r\n\r\n const [isVisible, setIsVisible] = React.useState(false);\r\n const { t } = useTranslation();\r\n let onChange = (args, text) => {\r\n const columnId = args.element.id;\r\n const item = args.itemData;\r\n if (item && typeof item.id !== \"number\" && !text) {\r\n args.element.value = \"\";\r\n return;\r\n };\r\n const items = args.value && args.value.length > 0 ? args.value.map(x => parseInt(x)) : args.value;\r\n\r\n let newFilters = [...filters];\r\n let newIndex = newFilters.findIndex(x => x.key === columnId);\r\n if (newIndex !== -1)\r\n newFilters.splice(newIndex, 1);\r\n\r\n const filtersSelected = [...newFilters];\r\n\r\n if (item) {\r\n let index = filtersSelected.findIndex(_item => _item.key === columnId && _item.value === item.id);\r\n if (index > -1)\r\n filtersSelected[index].value.push(item.id);\r\n else\r\n filtersSelected.push({ key: columnId, value: [item.id], nomePt: item.nomePt, nomeEn: item.nomeEn });\r\n }\r\n else if (items && items.length > 0) {\r\n let index = filtersSelected.findIndex(_item => _item.key === columnId);\r\n\r\n if (index > -1)\r\n filtersSelected[index].value = items;\r\n else\r\n filtersSelected.push({ key: columnId, value: items });\r\n }\r\n else {\r\n let index = filtersSelected.findIndex(_item => _item.key === columnId);\r\n if (index !== -1)\r\n filtersSelected.splice(index, 1);\r\n }\r\n setFilters(filtersSelected);\r\n };\r\n\r\n const onTextBlur = (e, columnId) => {\r\n let hasFilter = !!filters.filter((f) => f.key === columnId).length;\r\n if (!hasFilter) {\r\n const args = {\r\n element: {\r\n id: columnId\r\n },\r\n itemData: {\r\n id: e && e.value ? e.value : e && e.target ? e.target.value : \"\"\r\n }\r\n };\r\n if (args.itemData.id) {\r\n onChange(args, true);\r\n }\r\n } else {\r\n const newFilter = [...filters];\r\n const item = newFilter.find(f => f.key === columnId);\r\n item.value[0] = e && e.value ? e.value : e && e.target ? e.target.value : \"\";\r\n setFilters(newFilter);\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n setLoading(true);\r\n\r\n function load() {\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n users(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n response.json().then(_users => {\r\n setFillUsersData(_users);\r\n resolve();\r\n });\r\n }\r\n else {\r\n setFillUsersData([]);\r\n }\r\n })\r\n }),\r\n new Promise((resolve, reject) => {\r\n usersFull(globalState.accessToken).then(_usersFull => {\r\n const _users = _usersFull.filter(user => {\r\n user.ultimoLogin = user.ultimoLogin && new Date(user.ultimoLogin);\r\n return user;\r\n });\r\n setFillUsersDataFull(_users);\r\n setFillData(_users);\r\n resolve();\r\n })\r\n .catch(e => {\r\n hideSpinner(document.getElementById('loadUsersList'));\r\n setLoading(false);\r\n setFillUsersDataFull([]);\r\n setFillData([]);\r\n });\r\n }),\r\n new Promise((resolve, reject) => {\r\n getCountries(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n response.json().then(_countries => {\r\n setFillCountriesData(_countries);\r\n resolve();\r\n });\r\n }\r\n else {\r\n setFillCountriesData([]);\r\n }\r\n });\r\n }),\r\n new Promise((resolve, reject) => {\r\n getAccessAreas(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n response.json().then(_accessAreas => {\r\n setFillAccessAreasData(fillAreas(_accessAreas));\r\n resolve();\r\n });\r\n }\r\n else {\r\n setFillAccessAreasData([]);\r\n }\r\n });\r\n }),\r\n new Promise((resolve, reject) => {\r\n getProfileAreas(globalState.accessToken, i18n.language)\r\n .then(response => {\r\n if (response.ok) {\r\n response.json().then(_profileAreas => {\r\n setFillBusinessAreaData(_profileAreas);\r\n resolve();\r\n });\r\n }\r\n else {\r\n setFillBusinessAreaData([]);\r\n }\r\n });\r\n }),\r\n new Promise((resolve, reject) => {\r\n getProfileDepartments(globalState.accessToken, i18n.language)\r\n .then(response => {\r\n if (response.ok) {\r\n response.json().then(_departments => {\r\n setFillDepartamentData(_departments);\r\n resolve();\r\n });\r\n }\r\n else {\r\n setFillDepartamentData([]);\r\n }\r\n });\r\n }),\r\n new Promise((resolve, reject) => {\r\n getProfileManagement(globalState.accessToken, i18n.language)\r\n .then(response => {\r\n if (response.ok) {\r\n response.json().then(_management => {\r\n setFillManagementData(_management);\r\n resolve();\r\n });\r\n }\r\n else {\r\n setFillManagementData([]);\r\n }\r\n });\r\n }),\r\n new Promise((resolve, reject) => {\r\n getUserTypes(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n response.json().then(_userTypes => {\r\n setFillUserTypesData(_userTypes);\r\n resolve();\r\n });\r\n }\r\n else {\r\n setFillUserTypesData([]);\r\n }\r\n });\r\n }),\r\n new Promise((resolve, reject) => {\r\n getSuppliers(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n response.json().then(_supplierDescriptions => {\r\n setSupplierDescriptionsData(_supplierDescriptions);\r\n resolve();\r\n });\r\n }\r\n else {\r\n setSupplierDescriptionsData([]);\r\n }\r\n });\r\n }),\r\n new Promise((resolve, reject) => {\r\n getRegional(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n response.json().then(_regional => {\r\n setFillRegionalData(_regional);\r\n resolve();\r\n });\r\n }\r\n else {\r\n setFillRegionalData([]);\r\n }\r\n });\r\n })\r\n ];\r\n\r\n Promise.all(promises).then(() => {\r\n if (document.getElementById('loadUsersList')) {\r\n hideSpinner(document.getElementById('loadUsersList'));\r\n setLoading(false);\r\n }\r\n }).catch((e) => {\r\n console.log('teste error');\r\n })\r\n }\r\n load();\r\n }, [i18n.language]);\r\n\r\n const usersName = (args) => {\r\n return (\r\n props.edit(args.userId)} className=\"nomeUsuarios\"> {args.nome} \r\n )\r\n };\r\n\r\n const fillAreas = (items, child = false) => {\r\n let arr = [];\r\n items.map((item) => {\r\n if (!child) {\r\n arr.push({ value: item.id, text: i18n.language === \"pt\" ? item.nomePt : item.nomeEn, hasChildren: item.filhos.length > 0 ? true : false, breadCrumbAccessAreaEn: item.breadCrumbEn, breadCrumbAccessAreaPt: item.breadCrumbPt, isFather: true });\r\n if (item.filhos.length > 0) {\r\n let children = fillAreas(item.filhos, item, true);\r\n arr = arr.concat(children);\r\n }\r\n } else {\r\n arr.push({ value: item.id, text: i18n.language === \"pt\" ? item.nomePt : item.nomeEn, parentValue: item.idPai, hasChildren: item.filhos.length > 0 ? true : false, breadCrumbAccessAreaEn: item.breadCrumbEn, breadCrumbAccessAreaPt: item.breadCrumbPt, isFather: false });\r\n if (item.filhos.length > 0) {\r\n let children = fillAreas(item.filhos, item, true);\r\n arr = arr.concat(children);\r\n }\r\n }\r\n });\r\n return arr;\r\n }\r\n\r\n React.useEffect(() => {\r\n if (gridExport === true) {\r\n gridInstance.current.excelExport();\r\n gridExportChange(false);\r\n }\r\n\r\n }, [gridExport]);\r\n\r\n const [filterUserName, setFilterUserName] = React.useState(null);\r\n\r\n function _onChange(e) {\r\n if (e && e.target && e.target.value) {\r\n setFilterUserName(e.target.value);\r\n }\r\n else {\r\n setFilterUserName('');\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n if (filterUserName === '') {\r\n setFillUsersDataFull(fillData);\r\n gridInstance.current.dataSource = fillData;\r\n }\r\n }, [filterUserName]);\r\n\r\n function onSearchClick() {\r\n\r\n if (filterUserName || (filters && !!filters.length)) {\r\n let filtered = !filterUserName ? fillData : fillData.filter((item) => item.nome.toLowerCase().indexOf(filterUserName.toLowerCase()) > -1);\r\n\r\n if (filters && !!filters.length) {\r\n filters.map((f) => {\r\n if (f.value && !!f.value.length) {\r\n if (f.key === \"idAccessArea\") {\r\n let currentFiltered = [];\r\n f.value.map((v) => {\r\n currentFiltered = currentFiltered.concat(filtered.filter((i) => i.permissions && i.permissions.filter((p) => p[f.key] === v).length > 0));\r\n });\r\n filtered = [...new Set(currentFiltered)];\r\n }\r\n else {\r\n f.value.map((v) => {\r\n filtered = typeof v === \"number\" ? filtered.filter((i) => i[f.key] === v) : filtered.filter((i) => i[f.key] && i[f.key].toLowerCase().indexOf(v ? v.toLowerCase() : \"\") > -1);\r\n });\r\n\r\n if (!f.value[0] && f.key === \"cargo\") {\r\n filtered = fillData;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n filtered = [...new Set(filtered)];\r\n const users = filtered.filter(user => {\r\n user.ultimoLogin = user.ultimoLogin && new Date(user.ultimoLogin);\r\n return user;\r\n })\r\n setFillUsersDataFull(users);\r\n gridInstance.current.dataSource = users;\r\n setIsVisible(false);\r\n }\r\n else {\r\n if (fillData.length > 0) {\r\n setFillUsersDataFull(fillData);\r\n setIsVisible(false);\r\n }\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n if (gridInstance && gridInstance.current && fillUsersDataFull && !isLoading) {\r\n gridInstance.current.refresh();\r\n }\r\n }, [fillUsersDataFull]);\r\n\r\n const onFiltering = (e) => {\r\n let query = new Query();\r\n query = (e.text !== '') ? query.where('nome', 'contains', e.text, true) : query;\r\n e.updateData(this.searchData, query);\r\n };\r\n\r\n React.useEffect(() => {\r\n if (gridInstance && gridInstance.current)\r\n gridInstance.current.refresh();\r\n }, [i18n.language]);\r\n\r\n const getValue = () => {\r\n const item = filters.find(item => item.key === \"idAccessArea\");\r\n\r\n if (item) {\r\n return item.value;\r\n }\r\n\r\n return \"\";\r\n };\r\n\r\n let userStatus = () => {\r\n return ({i18n.language ==='pt' ? 'Ativo' : 'Active'})\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n {!isLoading &&\r\n
\r\n
\r\n \r\n

{t('Search:title')}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {!isVisible &&\r\n
\r\n setIsVisible(!isVisible)}>{t('FilterButtons:filter')}\r\n
\r\n }\r\n {isVisible &&\r\n
\r\n setIsVisible(!isVisible)}>{t('FilterButtons:filter')}\r\n
\r\n }\r\n
\r\n {t('FilterButtons:search')}\r\n
\r\n
\r\n
}\r\n {(isVisible && !isLoading) &&\r\n
\r\n setPersistence(true)}\r\n enablePersistence={persistence}\r\n fields={{ text: \"nome\", value: \"id\" }}\r\n change={onChange}\r\n filtering={onFiltering}\r\n showClearButton\r\n />\r\n \r\n onTextBlur(e, \"email\")}\r\n />\r\n \r\n \r\n \r\n onTextBlur(e, \"cargo\")}\r\n />\r\n \r\n setPersistence(true)}\r\n enablePersistence={persistence}\r\n showClearButton={true}\r\n dataSource={fillRegionalData}\r\n fields={{ text: (i18n.language === \"pt\") ? 'nomePt' : 'nomeEn', value: 'id' }}\r\n change={onChange}\r\n />\r\n \r\n \r\n
\r\n }\r\n
\r\n {\r\n isLoading ?
\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
\r\n }\r\n \r\n );\r\n}\r\n","import React, { useEffect } from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from 'react-i18next';\r\nimport { GlobalStateContext } from '../general/GlobalState';\r\nimport { ButtonComponent } from '@syncfusion/ej2-react-buttons';\r\n\r\nimport './utilities.css';\r\n\r\nexport const Buttons = (props) => {\r\n\r\n const { controls } = props;\r\n const { t } = useTranslation();\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n\r\n return (\r\n
\r\n {controls.export &&\r\n
\r\n {t('Buttons:export')}\r\n
\r\n }\r\n {\r\n controls.exportPdf &&\r\n
\r\n {t('Buttons:exportPdf')}\r\n
\r\n }\r\n {controls.import &&\r\n
\r\n {t('Buttons:import')}\r\n
\r\n }\r\n {controls.new && (globalState.userAdmin ||\r\n (controls.permit !==null ?\r\n controls.permit.indexOf(\"Admin\") !==-1 || controls.permit.indexOf(\"Inclusão\") !==-1\r\n :\r\n false\r\n )) &&\r\n
\r\n {t('Buttons:new')}\r\n
\r\n }\r\n {controls.back &&\r\n
\r\n {t('Buttons:back')}\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import React, { useContext } from 'react';\r\nimport { useModal } from '../../../hooks/Modal';\r\nimport { hasPermissions } from '../Utils';\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { GlobalStateContext } from '../../general/GlobalState';\r\n\r\nconst PermissionRedirect = ({ id, type }) => {\r\n const [globalState] = useContext(GlobalStateContext)\r\n const { buildDialogMessage } = useModal();\r\n\r\n if (id) {\r\n\r\n if (!hasPermissions(parseInt(id), type || \"\", globalState)) {\r\n\r\n buildDialogMessage({\r\n error: true,\r\n titlePt: \"Você não tem acesso a esse conteúdo\",\r\n titleEn: \"You dont have access to this content\",\r\n messagePt: \"Se você precisa acessar essa página, fale com o administrador do site\",\r\n messageEn: \"If you need to access this page, talk to the site administrator\",\r\n icon: \"e-icon-dlg-close e-icons\"\r\n })\r\n\r\n return (\r\n \r\n );\r\n }\r\n }\r\n\r\n\r\n return <>\r\n};\r\n\r\nexport default PermissionRedirect;\r\n","import * as React from \"react\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { Container, Row } from \"reactstrap\";\r\nimport { GlobalStateContext } from '../general/GlobalState'\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { Actions } from \"../utilities/Actions\";\r\n\r\nimport { getMyProfile, updateMyProfile } from \"../../services/UsersSVC\";\r\nimport { UsersList } from \"../users/UsersList\";\r\nimport { Buttons } from \"../utilities/Buttons\";\r\nimport '../profile/profile.css';\r\nimport PermissionRedirect from \"../utilities/PermissionRedirect/PermissionRedirect\";\r\n\r\nexport const Users = () => {\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [dataUser, setDataUser] = React.useState([]);\r\n const [redirect, setRedirect] = React.useState(false);\r\n const [idUser, setIdUser] = React.useState(null);\r\n const [gridExport, setGridExport] = React.useState(false);\r\n const [userPermission, setUserPermission] = React.useState([]);\r\n\r\n let gridInstance = React.useRef(null);\r\n\r\n const { t } = useTranslation();\r\n\r\n const _controls = {\r\n permit: userPermission ? userPermission : null,\r\n export: () => exportRelease(),\r\n import: \"\",\r\n new: () => setRedirect(true),\r\n back: \"\",\r\n };\r\n\r\n React.useEffect(() => {\r\n let globalPermissions = globalState.permissions;\r\n console.log(globalState);\r\n setUserPermission(globalPermissions.filter((i) => i.idAreaAcesso === 51).map((i) => (i.permission)));\r\n }, [globalState]);\r\n\r\n let editUsers = (id) => {\r\n setIdUser(id);\r\n }\r\n\r\n React.useEffect(() => {\r\n if (idUser) {\r\n setRedirect(true);\r\n }\r\n }, [idUser]);\r\n\r\n const exportRelease = () => {\r\n if (gridInstance.current) {\r\n setGridExport(true);\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n {globalState.accessToken === null ? :\r\n redirect ? (\r\n idUser === null ?\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

{t('Users:title')}

\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}","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport { useTranslation } from 'react-i18next';\r\nimport { ButtonComponent } from \"@syncfusion/ej2-react-buttons\";\r\nimport { fullReset } from '../../services/UsersSVC';\r\nimport { GlobalStateContext } from \"../general/GlobalState\";\r\nimport { LoginStateContext } from '../login/LoginState';\r\n\r\nexport const NewPassword = (props) => {\r\n\r\n const { info } = props;\r\n\r\n const { t } = useTranslation();\r\n\r\n const [globalState, setGlobalState] = React.useContext(GlobalStateContext);\r\n const [showSucessText, setShowSucessText] = React.useState(false);\r\n\r\n const onSubmit = () => {\r\n fullReset(globalState.accessToken, info.userId)\r\n .then(response => {\r\n if (response.ok) {\r\n setShowSucessText(true);\r\n }\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n

{t('ChangePassword:title')}

\r\n
\r\n
\r\n {showSucessText &&\r\n E-mail enviado com sucesso\r\n }\r\n onSubmit()}\r\n type=\"button\"\r\n >{t('ResetPassword:title')}\r\n \r\n
\r\n \r\n )\r\n}","import { requestAPI } from '../components/utilities/Utils';\r\n\r\nexport async function getProfileTemplate(token) {\r\n return requestAPI(\"_api/ProfileTemplate/GetProfileTemplates\", \"GET\", \"\", null, token, false);\r\n}\r\n\r\nexport async function addProfileTemplate(token, body) {\r\n const raw = JSON.stringify(body);\r\n return requestAPI(\"_api/ProfileTemplate/AddProfileTemplate\", \"POST\", \"\", raw, token, false);\r\n}\r\n\r\nexport async function updateProfileTemplate(token, body) {\r\n const raw = JSON.stringify(body);\r\n return requestAPI(\"_api/ProfileTemplate/UpdateProfileTemplate\", \"POST\", \"\", raw, token, false);\r\n}\r\n\r\nexport async function deleteProfileTemplate(token, id) {\r\n const qstring = `?profileId=${id}`;\r\n return requestAPI(\"_api/ProfileTemplate/DeleteProfileTemplate\", \"DELETE\", qstring, null, token, false);\r\n}","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from 'react-i18next';\r\nimport { GlobalStateContext } from '../general/GlobalState';\r\nimport { GridComponent, ColumnsDirective, ColumnDirective, Filter, Inject, VirtualScroll, Sort, ContextMenu, Page, Resize, Edit } from '@syncfusion/ej2-react-grids';\r\nimport { DropDownListComponent, ChangeEventArgs, MultiSelectComponent, DropDownTreeComponent } from '@syncfusion/ej2-react-dropdowns';\r\nimport { TextBoxComponent } from '@syncfusion/ej2-react-inputs';\r\nimport { ButtonComponent } from '@syncfusion/ej2-react-buttons';\r\n//import { createSpinner, setSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\r\n\r\nimport \"../users/users.css\"\r\n\r\nimport { users } from \"../../services/UsersSVC\";\r\nimport { getProfileTemplate } from \"../../services/ProfileTemplateSVC\";\r\nimport { getPermissions, getAccessAreas } from \"../../services/SystemSVC\";\r\nimport { createSpinner, hideSpinner, setSpinner, showSpinner } from \"@syncfusion/ej2-popups\";\r\n\r\nlet refresh;\r\nlet gridInstance;\r\nlet fullAcessArea = [];\r\n\r\nexport const TemplatesLists = (props) => {\r\n\r\n const [globalState, setGlobalState] = React.useContext(GlobalStateContext);\r\n const [profileTemplates, setProfileTemplates] = React.useState([]);\r\n const [isVisible, setIsVisible] = React.useState(false);\r\n\r\n const [fillUsersData, setFillUsersData] = React.useState([]);\r\n const [fillAccessAreasData, setFillAccessAreasData] = React.useState([]);\r\n const [fillPermissionsData, setFillPermissionsData] = React.useState([]);\r\n const [allTemplates, setAllTemplates] = React.useState([]);\r\n const [isLoading, setLoading] = React.useState(true);\r\n\r\n const [placeHolderNome, setPlaceHolderNome] = React.useState();\r\n const [placeHolderAreaAcesso, setPlaceHolderAreaAcesso] = React.useState();\r\n const [placeHolderPermissao, setPlaceHolderPermissao] = React.useState();\r\n const [filter, setFilter] = React.useState({});\r\n\r\n const { t } = useTranslation();\r\n\r\n const contextMenuItems = ['SortAscending', 'SortDescending', 'FirstPage', 'PrevPage', 'LastPage', 'NextPage'];\r\n\r\n React.useEffect(() => {\r\n async function load() {\r\n // let _users = await users(globalState.accessToken)\r\n // .then(response => {\r\n // if (response.ok) {\r\n // return response.json();\r\n // }\r\n // })\r\n let _accessAreas = await getAccessAreas(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n })\r\n let _permissions = await getPermissions(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n })\r\n let _profileTemplates = await getProfileTemplate(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n })\r\n\r\n if (_profileTemplates && _accessAreas) {\r\n _profileTemplates.map((pt) => {\r\n pt.permissions.map((pe) => {\r\n let area = _accessAreas.filter(i => i.id ===pe.idAccessArea);\r\n if (area.length > 0) {\r\n pe.area = area[0];\r\n }\r\n })\r\n })\r\n }\r\n\r\n // setFillUsersData(_users);\r\n setFillAccessAreasData(fillAreas(_accessAreas));\r\n //setFillAccessAreasData(_accessAreas);\r\n setFillPermissionsData(_permissions);\r\n setProfileTemplates(_profileTemplates);\r\n setAllTemplates(_profileTemplates);\r\n\r\n fullAcessArea = fillAreas(_accessAreas);\r\n hideSpinner(document.getElementById('loading'));\r\n setLoading(false);\r\n\r\n }\r\n load();\r\n setPlaceHolderNome(t(\"Search:place_holder\"));\r\n setPlaceHolderAreaAcesso(t(\"Permissions:access_title\"));\r\n setPlaceHolderPermissao(t(\"Permissions:permission_title\"));\r\n\r\n }, [i18n.language]);\r\n\r\n const fillAreas = (items, currentItem = null, child = false) => {\r\n let arr = [];\r\n items.map((item) => {\r\n if (!child) {\r\n arr.push({ value: item.id, text: i18n.language ===\"pt\" ? item.nomePt : item.nomeEn, hasChildren: item.filhos.length > 0 ? true : false, breadCrumbAccessAreaEn: item.breadCrumbEn, breadCrumbAccessAreaPt: item.breadCrumbPt, isFather: true });\r\n if (item.filhos.length > 0) {\r\n let children = fillAreas(item.filhos, item, true);\r\n arr = arr.concat(children);\r\n }\r\n } else {\r\n arr.push({ value: item.id, text: i18n.language ===\"pt\" ? item.nomePt : item.nomeEn, parentValue: item.idPai, hasChildren: item.filhos.length > 0 ? true : false, breadCrumbAccessAreaEn: item.breadCrumbEn, breadCrumbAccessAreaPt: item.breadCrumbPt, isFather: false });\r\n if (item.filhos.length > 0) {\r\n let children = fillAreas(item.filhos, item, true);\r\n arr = arr.concat(children);\r\n }\r\n }\r\n });\r\n return arr;\r\n }\r\n\r\n const accessColumn = (args) => {\r\n\r\n let auxAccess = [];\r\n\r\n if (args.permissions.length) {\r\n args.permissions.map(item => {\r\n\r\n let cAcessArea = fullAcessArea.filter(aa => {\r\n return aa.value === item.idAccessArea;\r\n });\r\n\r\n auxAccess.push({cAcessArea[0].text});\r\n }\r\n )\r\n }\r\n\r\n return auxAccess;\r\n };\r\n\r\n const columnName = (args) => {\r\n return (\r\n props.edit(args.id)}>{args.nome}\r\n );\r\n };\r\n\r\n const inputChange = e => {\r\n setFilter({ ...filter, [e.event.currentTarget.id]: e.value });\r\n }\r\n\r\n const dropdownTreeChange = e => {\r\n let arr = [];\r\n e.value.map(item => {\r\n const acessAreas = fillAccessAreasData.filter(_item => _item.value ===item && !_item.hasChildren).map(acessArea => String(acessArea.value));\r\n if (acessAreas.length)\r\n arr = arr.concat(acessAreas);\r\n });\r\n\r\n setFilter({ ...filter, [e.element.id]: arr })\r\n }\r\n\r\n const multiSelectChange = e => {\r\n setFilter({ ...filter, [e.element.id]: e.value })\r\n }\r\n\r\n //Search\r\n\r\n const filterTemplate = () => {\r\n\r\n let listTemplate = allTemplates;\r\n //Por nome\r\n if (filter.name)\r\n listTemplate = listTemplate.filter(item => item.nome.toLowerCase().includes(filter.name.toLowerCase()));\r\n\r\n if (filter.permissions && filter.permissions.length) {\r\n let arrPermissionsPt = [];\r\n filter.permissions.map(permissionId => {\r\n const itemPermission = fillPermissionsData.find(item => item.id === permissionId);\r\n if (itemPermission)\r\n arrPermissionsPt.push(itemPermission.nomePt);\r\n });\r\n\r\n listTemplate = listTemplate.filter(templateItem => {\r\n\r\n let permissionsResult = arrPermissionsPt.every(item => {\r\n return templateItem.permissions.filter(_item => _item.permissionsPt.includes(item)).length > 0;\r\n });\r\n let areasResult = filter && filter.areas && filter.areas.length > 0 && filter.areas.every(item => {\r\n return templateItem.permissions.filter(_item => _item.idAccessArea ===item).length > 0;\r\n });\r\n\r\n return permissionsResult || areasResult;\r\n });\r\n }\r\n else {\r\n if (filter.areas && filter.areas.length) {\r\n listTemplate = listTemplate.filter(templateItem => {\r\n const items = templateItem.permissions.filter(_item => filter.areas.indexOf(_item.idAccessArea.toString()) > -1);\r\n return items.length === filter.areas.length;\r\n });\r\n }\r\n }\r\n gridInstance.dataSource = listTemplate;\r\n setIsVisible(false);\r\n }\r\n\r\n React.useEffect(() => {\r\n if (gridInstance)\r\n gridInstance.refresh();\r\n }, [i18n.language]);\r\n\r\n React.useEffect(() => {\r\n if (isLoading && document.getElementById('loading')) {\r\n createSpinner({ target: document.getElementById('loading') })\r\n showSpinner(document.getElementById('loading'));\r\n setSpinner({ type: 'Bootstrap' });\r\n }\r\n }, [isLoading]);\r\n\r\n //End Search\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n \r\n

{t(\"Search:title\")}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {!isVisible &&\r\n
\r\n setIsVisible(!isVisible)}>{t(\"FilterButtons:filter\")}\r\n
\r\n }\r\n {isVisible &&\r\n
\r\n setIsVisible(!isVisible)}>{t(\"FilterButtons:filter\")}\r\n
\r\n }\r\n
\r\n {t(\"FilterButtons:search\")}\r\n
\r\n
\r\n
\r\n {isVisible &&\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n }\r\n
\r\n { isLoading ?
:\r\n
\r\n gridInstance = grid}\r\n locale={i18n.language}>\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","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from 'react-i18next';\r\nimport { GlobalStateContext } from '../general/GlobalState';\r\nimport { DialogComponent } from \"@syncfusion/ej2-react-popups\";\r\nimport { UploaderComponent, TextBoxComponent } from \"@syncfusion/ej2-react-inputs\";\r\nimport { DropDownListComponent } from '@syncfusion/ej2-react-dropdowns';\r\nimport { updateBanners, addBanners, deleteBanners } from \"../../services/BannerHomeSVC\";\r\nimport { FormValidator, FormValidatorModel } from '@syncfusion/ej2-inputs';\r\nimport { createSpinner, setSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\r\nimport { useModal } from \"../../hooks/Modal\";\r\nimport { hasPermissions } from \"../utilities/Utils\";\r\n\r\nconst uploadIcon = '';\r\n\r\nlet formObject;\r\n\r\nexport const ModalBanners = (props) => {\r\n\r\n const { setBannersList, bannersList, setRefresh, data, toggle } = props;\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [bannerItem, setBannerItem] = React.useState(data);\r\n const [openModal, setOpenModal] = React.useState(false);\r\n const [openModalDelete, setOpenModalDelete] = React.useState(false);\r\n const [openModalConfirm, setOpenModalConfirm] = React.useState(false);\r\n const [showBannerInfo, setShowBannerInfo] = React.useState(false);\r\n const idiomaRef = React.useRef(null);\r\n const ativoRef = React.useRef(null);\r\n\r\n const { buildDialogMessage } = useModal();\r\n\r\n const [loadingModal, setLoadingModal] = React.useState(false);\r\n\r\n const { t } = useTranslation();\r\n\r\n let modalButtons;\r\n let modalDelete;\r\n let modalConfirmDelete;\r\n\r\n if (data !==\"\") {\r\n modalButtons = [\r\n {\r\n type: \"submit\",\r\n buttonModel: {\r\n isPrimary: true,\r\n content: i18n.language ===\"pt\" ? \"Deletar\" : \"Delete\",\r\n cssClass: `${!hasPermissions(54, \"Delete\", globalState) && \"hidden\"} bannerDelete`\r\n },\r\n click: () => {\r\n setOpenModalDelete(true);\r\n }\r\n },\r\n {\r\n type: \"submit\",\r\n buttonModel: {\r\n isPrimary: true,\r\n content: i18n.language ===\"pt\" ? \"Salvar\" : \"Save\",\r\n cssClass: `${!hasPermissions(54, \"Edit\", globalState) && 'hidden'} bannerSave`\r\n },\r\n click: () => {\r\n onSubmitClick();\r\n }\r\n }\r\n ]\r\n } else {\r\n modalButtons = [\r\n {\r\n type: \"submit\",\r\n buttonModel: {\r\n cssClass: `${!hasPermissions(54, \"Create\", globalState) && 'hidden'} bannerSave`,\r\n isPrimary: true,\r\n content: i18n.language ===\"pt\" ? \"Salvar\" : \"Save\"\r\n },\r\n click: () => {\r\n onSubmitClick();\r\n }\r\n }]\r\n }\r\n\r\n modalDelete = [\r\n {\r\n type: \"submit\",\r\n buttonModel: {\r\n isPrimary: false,\r\n content: i18n.language ===\"pt\" ? \"Cancelar\" : \"Cancel\",\r\n cssClass: \"bannerDelete\"\r\n },\r\n click: () => {\r\n setOpenModalDelete(false);\r\n }\r\n },\r\n {\r\n type: \"submit\",\r\n buttonModel: {\r\n isPrimary: true,\r\n content: i18n.language ===\"pt\" ? \"Sim\" : \"Yes\",\r\n cssClass: \"bannerSave\"\r\n },\r\n click: () => {\r\n deleteBanner();\r\n }\r\n }\r\n ]\r\n\r\n React.useEffect(() => {\r\n const options = {\r\n rules: {\r\n 'titulo': {\r\n required: [true, t('Validation:required')]\r\n },\r\n 'chamada': {\r\n required: [true, t('Validation:required')]\r\n },\r\n 'idioma': {\r\n required: [true, t('Validation:required')]\r\n },\r\n 'ativo': {\r\n required: [true, t('Validation:required')]\r\n }\r\n },\r\n customPlacement: (inputElement, errorElement) => {\r\n inputElement.parentElement.parentElement.appendChild(errorElement);\r\n }\r\n }\r\n formObject = new FormValidator('#idModalBanner', options);\r\n });\r\n\r\n const onSubmitClick = () => {\r\n if (formObject.validate() && bannerItem.imagemB64) {\r\n updateBanner();\r\n removeFiles();\r\n toggle.close();\r\n } else {\r\n if (!bannerItem.imagemB64) {\r\n document.getElementById(\"validateImage\").innerHTML = i18n.language ===\"pt\" ? \"Imagem obrigatória\" : \"Required image\";\r\n } else {\r\n document.getElementById(\"validateImage\").innerHTML = \"\";\r\n }\r\n }\r\n }\r\n\r\n const isDefaultDisabled = () => {\r\n if (data !==\"\" && hasPermissions(54, \"Edit\", globalState)) {\r\n return false;\r\n } else if (!data && hasPermissions(54, \"Create\", globalState)) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n };\r\n\r\n const target = document.getElementById(\"uploadBanner\");\r\n\r\n let uploadImage = () => {\r\n document.getElementsByClassName(\"e-file-select-wrap\")[0].querySelector(\"button\").click();\r\n return false;\r\n }\r\n\r\n let removeFiles = () => {\r\n const clearThumb = document.getElementById(\"UploadFiles\") && document.getElementById(\"UploadFiles\").ej2_instances[0];\r\n if (clearThumb !== null && clearThumb.clearAll !== null && typeof (clearThumb.clearAll) !== \"undefined\") {\r\n return clearThumb.clearAll();\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n createSpinner({ target: document.getElementById('loadingBanner') });\r\n showSpinner(document.getElementById('loadingBanner'));\r\n setSpinner({ type: 'Bootstrap' });\r\n }, [loadingModal]);\r\n\r\n const onFileUploadSucceeded = (event) => {\r\n if (event.operation ===\"upload\") {\r\n const reader = new FileReader();\r\n const file = document.getElementById(\"UploadFiles\").files[0];\r\n reader.addEventListener(\"load\", function () {\r\n let bannerObj = { ...bannerItem };\r\n bannerObj.imagemB64 = reader.result;\r\n setBannerItem(bannerObj);\r\n }, false);\r\n reader.readAsDataURL(file);\r\n }\r\n if (event.operation ===\"remove\") {\r\n let bannerObj = { ...bannerItem };\r\n bannerObj.imagemB64 = \"\";\r\n setBannerItem(bannerObj);\r\n removeFiles();\r\n }\r\n document.getElementById(\"validateImage\").innerHTML = \"\";\r\n }\r\n\r\n const textBoxOnChange = (args) => {\r\n let bannerObj = { ...bannerItem };\r\n bannerObj[args.target.id] = args.target.value;\r\n setBannerItem(bannerObj);\r\n }\r\n\r\n const comboBoxOnChange = (args) => {\r\n let bannerObj = { ...bannerItem };\r\n bannerObj[args.element.id] = args.value;\r\n setBannerItem(bannerObj);\r\n }\r\n\r\n const bannerIdioma = [{\r\n text: i18n.language ===\"pt\" ? \"Português\" : \"Portuguese\",\r\n value: 1\r\n }, {\r\n text: i18n.language ===\"pt\" ? \"Inglês\" : \"English\",\r\n value: 2\r\n }]\r\n\r\n const bannerStatus = [{\r\n text: i18n.language ===\"pt\" ? \"Sim\" : \"Yes\",\r\n value: true\r\n }, {\r\n text: i18n.language ===\"pt\" ? \"Não\" : \"No\",\r\n value: false\r\n }];\r\n\r\n React.useEffect(() => {\r\n if (data.id) {\r\n let version = new Date().toISOString();\r\n let bannerObj = { ...bannerItem };\r\n\r\n if (bannerObj.id) {\r\n setShowBannerInfo(true);\r\n }\r\n\r\n bannerObj.imagemB64 = `${process.env.REACT_APP_API_URL}/_api/BannerHome/GetBannerHome?token=${globalState.tokenLightWeight}&IdBannerHome=${data.id}&v=${version}`;\r\n setBannerItem(bannerObj);\r\n console.log(\"bannerObj\", bannerObj);\r\n }\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n setOpenModal(true);\r\n }, [props.status])\r\n\r\n let deleteBanner = () => {\r\n\r\n let version = new Date().toISOString();\r\n\r\n deleteBanners(globalState.accessToken, data.id);\r\n let findIdBanner = bannersList.filter(item => item.id !==data.id);\r\n setBannersList(findIdBanner);\r\n\r\n setRefresh(version);\r\n }\r\n\r\n let updateBanner = () => {\r\n\r\n if (bannerItem.imagemB64) {\r\n if (data) {\r\n let dataApi = {\r\n id: bannerItem.id,\r\n ativo: bannerItem.ativo,\r\n chamada: bannerItem.chamada,\r\n idIdioma: bannerItem.idIdioma,\r\n imagemB64: bannerItem.imagemB64 ? bannerItem.imagemB64.split(',')[1] : null,\r\n titulo: bannerItem.titulo,\r\n link: bannerItem.link\r\n };\r\n\r\n updateBanners(globalState.accessToken, dataApi)\r\n .then((response) => {\r\n if (response.ok) { return response.json(); }\r\n })\r\n .then((result) => {\r\n changeDataBanner(result);\r\n })\r\n .catch(error => {\r\n buildDialogMessage({\r\n titlePt: \"Erro\",\r\n titleEn: \"Error\",\r\n messagePt: \"Erro ao atualizar o banner\",\r\n messageEn: \"Error while updating the banner\",\r\n error: 500\r\n });\r\n });\r\n\r\n buildDialogMessage({\r\n titlePt: \"Sucesso\",\r\n titleEn: \"Sucesso\",\r\n messagePt: \"Banner atualizado com sucesso\",\r\n messageEn: \"Banner successfully updated\"\r\n });\r\n\r\n } else {\r\n let bannerObj = bannerItem;\r\n bannerObj.imagemB64 = bannerItem.imagemB64 ? bannerItem.imagemB64.split(',')[1] : null;\r\n\r\n addBanners(globalState.accessToken, bannerObj)\r\n .then((response) => {\r\n if (response.ok) { return response.json(); }\r\n })\r\n .then((result) => {\r\n createNewBanner(result);\r\n })\r\n .catch(error => {\r\n buildDialogMessage({\r\n titlePt: \"Erro\",\r\n titleEn: \"Error\",\r\n messagePt: \"Erro ao adicionar o banner\",\r\n messageEn: \"Error while adding the banner\",\r\n error: 500\r\n });\r\n });\r\n\r\n\r\n buildDialogMessage({\r\n titlePt: \"Sucesso\",\r\n titleEn: \"Sucesso\",\r\n messagePt: \"Banner adicionado com sucesso\",\r\n messageEn: \"Banner successfully added\"\r\n });\r\n }\r\n }\r\n }\r\n\r\n const changeDataBanner = (id) => {\r\n\r\n let version = new Date().toISOString();\r\n\r\n bannersList.map(i => {\r\n if (i.id ===id) {\r\n i.ativo = bannerItem.ativo;\r\n i.chamada = bannerItem.chamada;\r\n i.idIdioma = bannerItem.idIdioma;\r\n i.src = `${process.env.REACT_APP_API_URL}/_api/BannerHome/GetBannerHome?token=${globalState.tokenLightWeight}&IdBannerHome=${data.id}&version=${version}`;\r\n i.titulo = bannerItem.titulo;\r\n i.link = bannerItem.link;\r\n }\r\n })\r\n\r\n setBannersList(bannersList);\r\n\r\n setRefresh(version);\r\n }\r\n\r\n const createNewBanner = (id) => {\r\n let version = new Date().toISOString();\r\n\r\n bannerItem.id = id;\r\n bannerItem.imagemB64 = \"data:image/jpeg;base64,\" + bannerItem.imagemB64;\r\n bannerItem.src = `${process.env.REACT_APP_API_URL}/_api/BannerHome/GetBannerHome?token=${globalState.tokenLightWeight}&IdBannerHome=${id}&version=${version}`;\r\n bannersList.push(bannerItem);\r\n setBannersList(bannersList);\r\n\r\n setRefresh(version);\r\n }\r\n\r\n const confirmDelete = () => {\r\n deleteBanner();\r\n setOpenModalConfirm(true);\r\n }\r\n\r\n const closeModal = () => {\r\n removeFiles();\r\n toggle.close();\r\n }\r\n\r\n let dropAreaRef;\r\n let uploadObj;\r\n\r\n const onCreated = () => {\r\n if (uploadObj) {\r\n uploadObj.dropArea = dropAreaRef;\r\n uploadObj.dataBind();\r\n }\r\n }\r\n\r\n const onSetAttachmentsFiles = event => {\r\n if (event.filesData[0].statusCode ===\"1\") {\r\n setLoadingModal(true);\r\n event.filesData.map((file) => {\r\n const reader = new FileReader();\r\n reader.addEventListener(\"load\", function () {\r\n let bannerObj = { ...bannerItem };\r\n bannerObj.imagemB64 = reader.result;\r\n setBannerItem(bannerObj);\r\n setShowBannerInfo(true);\r\n setLoadingModal(false);\r\n }, false);\r\n reader.readAsDataURL(file.rawFile);\r\n });\r\n document.getElementById(\"validateImage\").innerHTML = \"\";\r\n\r\n } else {\r\n document.getElementById(\"validateImage\").innerHTML = \"O tamanho do arquivo é muito grande\";\r\n }\r\n\r\n }\r\n\r\n return (\r\n
\r\n {(bannerItem.imagemB64 || !data) && (props.status) && openModal &&\r\n
\r\n \r\n {openModal ?\r\n
\r\n
dropAreaRef = dropAreaEle} className=\"upload\" id=\"uploadBanner\">\r\n {bannerItem && bannerItem.imagemB64 ?\r\n
\r\n uploadImage()}>\r\n \r\n \r\n
\r\n :\r\n
\r\n \r\n

{i18n.language ===\"pt\" ? \"Arraste o arquivo aqui ou faça o\" : \"Drag the file here or\"} uploadImage()}> {i18n.language ===\"pt\" ? \"carregamento\" : \"upload\"}

\r\n
\r\n }\r\n
\r\n\r\n
\r\n {showBannerInfo &&
\r\n
    \r\n
  • \r\n \r\n banner{bannerItem.id}.png\r\n \r\n {!isDefaultDisabled() && }\r\n
  • \r\n
\r\n
}\r\n
\r\n\r\n
\r\n\r\n (onFileUploadSucceeded(event))}\r\n ref={upload => uploadObj = upload}\r\n />\r\n {loadingModal &&
}\r\n
\r\n \r\n
\r\n (\r\n textBoxOnChange(args)\r\n )}\r\n disabled={isDefaultDisabled()}\r\n />\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n (\r\n textBoxOnChange(args)\r\n )}\r\n disabled={isDefaultDisabled()}\r\n />\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n (\r\n textBoxOnChange(args)\r\n )}\r\n disabled={isDefaultDisabled()}\r\n />\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n {\r\n if (isDefaultDisabled()) {\r\n ativoRef.current.enabled = false;\r\n idiomaRef.current.enabled = false;\r\n }\r\n }}\r\n placeholder={i18n.language ===\"pt\" ? \"Selecione o idioma\" : \"Select the language\"}\r\n htmlAttributes={{ tabindex: \"0\" }}\r\n change={(args) => (\r\n comboBoxOnChange(args)\r\n )}\r\n disabled={isDefaultDisabled()}\r\n />\r\n
\r\n
\r\n \r\n {\r\n if (isDefaultDisabled()) {\r\n ativoRef.current.enabled = false;\r\n idiomaRef.current.enabled = false;\r\n }\r\n }}\r\n value={data && data.ativo}\r\n placeholder={i18n.language ===\"pt\" ? \"Selecione o status\" : \"Select status\"} edrft43\r\n htmlAttributes={{ tabindex: \"0\" }}\r\n change={(args) => (\r\n comboBoxOnChange(args)\r\n )}\r\n disabled={isDefaultDisabled()}\r\n />\r\n
\r\n
\r\n \r\n :\r\n
\r\n }\r\n \r\n \r\n
\r\n {!openModalConfirm && <>\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n }\r\n {!openModalConfirm ?\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}","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Container, Row } from \"reactstrap\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { GlobalStateContext } from '../general/GlobalState';\r\nimport { UserData } from '../profile/UserData';\r\nimport { ProfData } from '../profile/ProfData';\r\nimport { Actions } from \"../utilities/Actions\";\r\nimport { NewPassword } from '../users/NewPassword';\r\nimport { Permissions } from '../users/Permissions';\r\nimport { usersFull, addOrUpdateUsersFull, deleteUser } from \"../../services/UsersSVC\";\r\nimport { EventEmitter } from '../utilities/Events'\r\nimport { FormValidator } from '@syncfusion/ej2-react-inputs';\r\nimport '../profile/profile.css';\r\nimport { ProfilePhotoContext } from \"../utilities/ProfilePhoto/ProfilePhotoContext\";\r\nimport { hasPermissions } from \"../utilities/Utils\";\r\nimport PermissionRedirect from '../utilities/PermissionRedirect/PermissionRedirect';\r\nimport { createSpinner, DialogComponent, setSpinner, showSpinner } from \"@syncfusion/ej2-react-popups\";\r\n\r\nexport const UsersItem = (props) => {\r\n const emptyUser = {\r\n ultimoLogin: \"\",\r\n adminGlobal: false,\r\n idTipoUsuario: 2,\r\n dataNascimento: null,\r\n nomePaisPT: \"\",\r\n nomePaisEN: \"\",\r\n nomeRegionalPT: \"\",\r\n nomeRegionalEN: \"\",\r\n tipoUsuarioPT: \"\",\r\n tipoUsuarioEN: \"\",\r\n permissions: [],\r\n nome: \"\",\r\n email: \"\",\r\n fotoB64: \"\",\r\n dataInicioVale: null,\r\n cargo: \"\",\r\n matricula: \"\",\r\n enderecoTrabalho: \"\",\r\n atividadePrincipal: \"\",\r\n cargoGerencia: false,\r\n funcionarioVale: true,\r\n idFornecedor: null,\r\n incluirWhoIsWho: false,\r\n usuarioTelefone: [],\r\n idModeloPerfil: null\r\n };\r\n\r\n let idUser = props.match.params.id;\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [dataUser, setDataUser] = React.useState(null);\r\n const [updated, setUpdated] = React.useState(false);\r\n const [redirect, setRedirect] = React.useState(false);\r\n const [photo, setPhoto] = React.useContext(ProfilePhotoContext);\r\n const [hasPermissionToEdit, setHasPermissionToEdit] = React.useState(false);\r\n const [openModal, setOpenModal] = React.useState(false);\r\n\r\n const [openModalDelete, setOpenModalDelete] = React.useState(false);\r\n const [openModalConfirm, setOpenModalConfirm] = React.useState(false);\r\n const [disabledBtn, setDisabledBtn] = React.useState(false);\r\n\r\n const [formObject, setFormObject] = React.useState(null);\r\n\r\n const { t } = useTranslation();\r\n\r\n const _controls = {\r\n area: \"Usuarios\",\r\n class: \"profile\",\r\n savePrimary: false,\r\n area: \"Usuários\",\r\n excludePrimary: true,\r\n urlView: \"\",\r\n urlPreview: \"\",\r\n urlDuplicate: \"\",\r\n urlSave: (e) => changeUser(e),\r\n urlSend: \"\",\r\n customPermissions: idUser ? hasPermissions(51, \"Edit\", globalState) : hasPermissions(51, \"Create\", globalState),\r\n urlCancel: () => setRedirect(true),\r\n // urlDelete: dataUser && dataUser.userId ? (e) => excludeUser(e, idUser) : null\r\n urlDelete: dataUser && dataUser.userId ? (e) => {\r\n e.preventDefault();\r\n setOpenModalDelete(true)\r\n } : null\r\n };\r\n\r\n React.useEffect(() => {\r\n setHasPermissionToEdit(hasPermissions(51, \"Create\", globalState) || hasPermissions(51, \"Edit\", globalState));\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n let formValidator = {\r\n rules: {\r\n 'name': {\r\n required: [true, t('Validation:required')]\r\n },\r\n 'email': {\r\n required: [true, t('Validation:required')],\r\n email: [true, t('Validation:invalidMail')]\r\n },\r\n 'country': {\r\n required: [true, t('Validation:required')]\r\n }\r\n },\r\n customPlacement: (inputElement, errorElement) => {\r\n inputElement.parentElement.parentElement.appendChild(errorElement);\r\n }\r\n };\r\n\r\n const formObj = new FormValidator('#formUserItem', formValidator);\r\n\r\n if (dataUser && dataUser.funcionarioVale) {\r\n formObj.addRules(\"area\", { required: [true, t('Validation:required')] });\r\n formObj.addRules(\"gerencia\", { required: [true, t('Validation:required')] });\r\n formObj.addRules(\"departamento\", { required: [true, t('Validation:required')] });\r\n }\r\n\r\n if (dataUser && !dataUser.funcionarioVale) {\r\n formObj.addRules(\"supplier\", { required: [true, t('Validation:required')] });\r\n }\r\n setFormObject(formObj);\r\n }, [dataUser]);\r\n\r\n React.useEffect(() => {\r\n createSpinner({ target: document.getElementById('loadingProfile') });\r\n showSpinner(document.getElementById('loadingProfile'));\r\n setSpinner({ type: 'Bootstrap' });\r\n }, [openModal]);\r\n\r\n React.useEffect(() => {\r\n async function load() {\r\n let _usersFull = await usersFull(globalState.accessToken);\r\n\r\n if (_usersFull && idUser) {\r\n _usersFull = _usersFull.filter(i => i.userId == idUser)[0];\r\n\r\n setDataUser(_usersFull);\r\n }\r\n else\r\n setDataUser(emptyUser);\r\n }\r\n load();\r\n\r\n }, [i18n.language]);\r\n\r\n React.useEffect(() => {\r\n if (updated) {\r\n setUpdated(false);\r\n setRedirect(true);\r\n }\r\n }, [updated])\r\n\r\n let changeUser = (e) => {\r\n setOpenModal(true);\r\n e.preventDefault();\r\n if (formObject.validate()) {\r\n setDisabledBtn(true);\r\n let data = dataUser;\r\n data.fotoB64 = photo && photo.b64 ? photo.b64.split(',')[1] : null;\r\n addOrUpdateUsersFull(globalState.accessToken, data)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n setDisabledBtn(false);\r\n })\r\n .then(result => {\r\n if (dataUser.fotoB64 && dataUser.email.toLowerCase() ===globalState.userEmail)\r\n EventEmitter.dispatch('updateMyPhoto');\r\n\r\n setDataUser(emptyUser);\r\n setUpdated(true);\r\n setDisabledBtn(false);\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n setOpenModal(false);\r\n setDisabledBtn(false);\r\n })\r\n }\r\n else {\r\n setOpenModal(false);\r\n setDisabledBtn(false);\r\n }\r\n }\r\n\r\n const onChangeUser = (user) => {\r\n console.log(\"onChange userData\", user);\r\n setDataUser(user);\r\n };\r\n\r\n const setFormValidationRules = (action, name, obj) => {\r\n if (action ===\"add\") {\r\n formObject.addRules(name, obj);\r\n formObject.customPlacement = (inputElement, errorElement) => {\r\n inputElement.parentElement.parentElement.appendChild(errorElement);\r\n }\r\n }\r\n else\r\n formObject.removeRules(name);\r\n }\r\n\r\n const excludeUser = async (e) => {\r\n e.preventDefault();\r\n await deleteUser(globalState.accessToken, idUser);\r\n setRedirect(true);\r\n }\r\n\r\n return (\r\n <>\r\n {globalState.accessToken === null ? :\r\n redirect ? :\r\n dataUser && (\r\n <>\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n {hasPermissionToEdit &&\r\n \r\n }\r\n
\r\n
\r\n \r\n {hasPermissionToEdit && idUser && <>\r\n \r\n \r\n }\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {/* {t(\"Users:loading\")} */}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n {!openModalConfirm ?\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}\r\n","import * as React from \"react\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { Container, Row } from \"reactstrap\";\r\nimport { GlobalStateContext } from '../general/GlobalState'\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Actions } from \"../utilities/Actions\";\r\nimport '../profile/profile.css';\r\nimport { getMyProfile, updateMyProfile } from \"../../services/UsersSVC\";\r\nimport { TemplatesLists } from \"../templates/TemplateLists\";\r\nimport { Buttons } from \"../utilities/Buttons\";\r\nimport PermissionRedirect from \"../utilities/PermissionRedirect/PermissionRedirect\";\r\n\r\nexport const Templates = () => {\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [dataUser, setDataUser] = React.useState('');\r\n const [redirect, setRedirect] = React.useState(false);\r\n const [idTemplate, setIdTemplate] = React.useState(null);\r\n\r\n const { t } = useTranslation();\r\n\r\n const _controls = {\r\n export: \"\",\r\n import: \"\",\r\n new: () => setRedirect(true),\r\n back: \"\",\r\n };\r\n\r\n let editTemplates = (id) => {\r\n setIdTemplate(id);\r\n };\r\n\r\n React.useEffect(() => {\r\n if (idTemplate) {\r\n setRedirect(true);\r\n }\r\n }, [idTemplate]);\r\n\r\n return (\r\n <>\r\n {globalState.accessToken === null ? :\r\n\r\n redirect ? (\r\n idTemplate === null ?\r\n :\r\n \r\n ) : (\r\n <>\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n

{t('ProfileTemplates:title')}

\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}","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Container, Row, Col } from \"reactstrap\";\r\nimport { GlobalStateContext } from '../general/GlobalState';\r\nimport { Actions } from \"../utilities/Actions\";\r\nimport '../templates/templates.css';\r\nimport { TextBoxComponent } from \"@syncfusion/ej2-react-inputs\";\r\nimport { ComboBoxComponent, MultiSelectComponent, CheckBoxSelection, Inject, DropDownTreeComponent } from \"@syncfusion/ej2-react-dropdowns\";\r\nimport { ButtonComponent } from \"@syncfusion/ej2-react-buttons\";\r\nimport { GridComponent, ColumnsDirective, ColumnDirective, Filter, Page } from \"@syncfusion/ej2-react-grids\";\r\nimport { DialogComponent } from \"@syncfusion/ej2-react-popups\";\r\nimport { getProfileTemplate, addProfileTemplate, updateProfileTemplate, deleteProfileTemplate } from \"../../services/ProfileTemplateSVC\";\r\nimport { getAccessAreas, getPermissions } from \"../../services/SystemSVC\";\r\nimport { FormValidator } from '@syncfusion/ej2-react-inputs';\r\nimport { hasPermissions } from \"../utilities/Utils\";\r\nimport { useModal } from '../../hooks/Modal';\r\n\r\nexport const TemplateItem = (props) => {\r\n\r\n let gridInstance;\r\n let idTemplate = props.match.params.id;\r\n let formObject;\r\n let dropdownTreeAreasRef;\r\n let multiSelectPermissionsRef;\r\n\r\n let auxProfileTemplateName = null;\r\n let auxAccessArea = [];\r\n let auxPermission = [];\r\n let auxIdsPermissions = [];\r\n let auxPermissionsPt = [];\r\n let auxPermissionsEn = [];\r\n let auxGridPermission = [];\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [redirect, setRedirect] = React.useState(false);\r\n const [comboPermissions, setComboPermissions] = React.useState([]);\r\n const [comboAccessAreas, setComboAccessAreas] = React.useState([]);\r\n const [profileTemplate, setProfileTemplate] = React.useState({});\r\n const [gridDataSource, setGridDataSource] = React.useState(null);\r\n const [fillAccessAreas, setFillAccessAreas] = React.useState(null);\r\n\r\n const [placeholderName, setPlaceholderName] = React.useState(\"\");\r\n const [placeholderTitle, setPlaceholderTitle] = React.useState(\"\");\r\n\r\n const [isLoading, setLoading] = React.useState(true);\r\n const [dialogDelete, setDialogDelete] = React.useState(false);\r\n const [disabledBtn, setDisabledBtn] = React.useState(false);\r\n\r\n const { t } = useTranslation();\r\n\r\n const { buildDialogMessage } = useModal();\r\n\r\n const _controls = {\r\n class: \"templates\",\r\n savePrimary: false,\r\n excludePrimary: true,\r\n urlView: \"\",\r\n urlPreview: \"\",\r\n urlDuplicate: \"\",\r\n urlSave: (e) => saveTemplate(e),\r\n urlSend: \"\",\r\n urlCancel: () => setRedirect(true),\r\n urlDelete: idTemplate ? (e) => {\r\n e.preventDefault();\r\n setDialogDelete(true);\r\n } : \"\"\r\n };\r\n\r\n React.useEffect(() => {\r\n async function load() {\r\n let _permissions = await getPermissions(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n })\r\n let _accessAreas = await getAccessAreas(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n })\r\n let _profileTemplate = await getProfileTemplate(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n })\r\n\r\n if (_profileTemplate && _accessAreas) {\r\n _profileTemplate = _profileTemplate.filter(i => i.id ===idTemplate)[0];\r\n if (_profileTemplate) {\r\n if (_profileTemplate.permissions) {\r\n _profileTemplate.permissions.map((pe) => {\r\n let area = _accessAreas.filter(i => i.id ===pe.idAccessArea);\r\n if (area.length > 0) {\r\n pe.area = area[0];\r\n }\r\n })\r\n\r\n auxGridPermission = _profileTemplate.permissions;\r\n setProfileTemplate(_profileTemplate)\r\n }\r\n }\r\n }\r\n\r\n setComboPermissions(_permissions);\r\n if (_accessAreas) {\r\n\r\n setFillAccessAreas(fillAreas(_accessAreas));\r\n setComboAccessAreas(fillAreas(_accessAreas));\r\n }\r\n\r\n setPlaceholderName(t('ProfileTemplates:modelName_placeholder'));\r\n\r\n if (idTemplate) {\r\n setPlaceholderTitle(t('ProfileTemplates:header_edit'));\r\n } else {\r\n setPlaceholderTitle(t('ProfileTemplates:header_new'));\r\n }\r\n }\r\n\r\n load();\r\n\r\n }, [i18n.language]);\r\n\r\n React.useEffect(() => {\r\n const formValidator = {\r\n rules: {\r\n 'nome': {\r\n required: [true, t('Validation:required')]\r\n }\r\n //'dropdownAcessArea': {\r\n // required: [true, t('Validation:required')]\r\n //},\r\n //'dropdownPermission': {\r\n // required: [true, t('Validation:required')]\r\n //}\r\n },\r\n customPlacement: (inputElement, errorElement) => {\r\n inputElement.parentElement.parentElement.appendChild(errorElement);\r\n setTimeout(() => {\r\n errorElement.style.display = \"none\";\r\n }, 3000)\r\n }\r\n };\r\n formObject = new FormValidator('#formProfileTemplate', formValidator);\r\n });\r\n\r\n React.useEffect(() => {\r\n if (typeof (profileTemplate.permissions) !==\"undefined\") {\r\n let auxGridDataSource = profileTemplate.permissions.filter(p => { return p.status !==1 });\r\n setGridDataSource(auxGridDataSource);\r\n }\r\n }, [profileTemplate]);\r\n\r\n React.useEffect(() => {\r\n if (gridDataSource && gridInstance)\r\n gridInstance.dataSource = gridDataSource;\r\n dropdownTreeAreasRef.value = [];\r\n multiSelectPermissionsRef.value = [];\r\n }, [gridDataSource]);\r\n\r\n React.useEffect(() => {\r\n setLoading(true);\r\n }, [gridDataSource]);\r\n\r\n const columnArea = (args) => {\r\n return {args && (i18n.language ===\"pt\" ? args.breadCrumbAccessAreaPt.join(' > ') : args.breadCrumbAccessAreaEn.join(' > '))}\r\n };\r\n\r\n const columnPermission = (args) => {\r\n return {args && (i18n.language ===\"pt\" ? args.permissionsPt.join(', ') : args.permissionsEn.join(', '))}\r\n };\r\n\r\n function deleteRow(e, args) {\r\n e.preventDefault();\r\n let index = -1;\r\n gridDataSource.map((p, i) => {\r\n if (p.idAccessArea === args.idAccessArea) {\r\n if (p.status === 2)\r\n p.status = 1;\r\n else\r\n index = i;\r\n }\r\n });\r\n if (index > -1)\r\n gridDataSource.splice(index, 1);\r\n\r\n setProfileTemplate(profileTemplate => (\r\n {\r\n ...profileTemplate,\r\n permissions: gridDataSource\r\n }\r\n ))\r\n }\r\n\r\n const columnButton = (args) => {\r\n return (\r\n deleteRow(e, args)}\r\n >{t(\"Actions:delete\")}\r\n )\r\n }\r\n\r\n const fillAreas = (items, currentItem = null, child = false) => {\r\n let arr = [];\r\n items.map((item) => {\r\n if (!child) {\r\n arr.push({ value: item.id, text: i18n.language ===\"pt\" ? item.nomePt : item.nomeEn, hasChildren: item.filhos.length > 0 ? true : false, breadCrumbAccessAreaEn: item.breadCrumbEn, breadCrumbAccessAreaPt: item.breadCrumbPt, isFather: true });\r\n if (item.filhos.length > 0) {\r\n let children = fillAreas(item.filhos, item, true);\r\n arr = arr.concat(children);\r\n }\r\n } else {\r\n arr.push({ value: item.id, text: i18n.language ===\"pt\" ? item.nomePt : item.nomeEn, parentValue: item.idPai, hasChildren: item.filhos.length > 0 ? true : false, breadCrumbAccessAreaEn: item.breadCrumbEn, breadCrumbAccessAreaPt: item.breadCrumbPt, isFather: false });\r\n if (item.filhos.length > 0) {\r\n let children = fillAreas(item.filhos, item, true);\r\n arr = arr.concat(children);\r\n }\r\n }\r\n });\r\n return arr;\r\n }\r\n\r\n const profileTemplateNameChange = (e) => {\r\n\r\n if (e.value !==null && e.value.length !==0) {\r\n auxProfileTemplateName = e.value;\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n if (gridInstance)\r\n gridInstance.refresh();\r\n }, [i18n.language]);\r\n\r\n const accessAreaChange = (e) => {\r\n auxAccessArea = [];\r\n if (e.value !==null && e.value.length !==0) {\r\n e.value.map(ac => {\r\n comboAccessAreas.map(a => {\r\n if (a.value.toString() ===ac) {\r\n if (!a.hasChildren) {\r\n auxAccessArea.push(a);\r\n }\r\n }\r\n })\r\n })\r\n }\r\n }\r\n\r\n const permissionChange = (e) => {\r\n auxPermission = [];\r\n auxIdsPermissions = [];\r\n auxPermissionsPt = [];\r\n auxPermissionsEn = [];\r\n\r\n if (e.value !==null && e.value !==0) {\r\n e.value.map(p => {\r\n comboPermissions.map(pe => {\r\n if (pe[(i18n.language) ===\"pt\" ? \"nomePt\" : \"nomeEn\"] ===p) {\r\n auxPermission.push(pe);\r\n }\r\n });\r\n });\r\n auxPermission.map(aux => {\r\n auxIdsPermissions.push(aux.id);\r\n auxPermissionsPt.push(aux.nomePt);\r\n auxPermissionsEn.push(aux.nomeEn);\r\n });\r\n }\r\n }\r\n\r\n const includeTemplate = (e) => {\r\n e.preventDefault();\r\n // setLoading(false);\r\n let profileTemplatePermission = [];\r\n\r\n if (profileTemplate.permissions) {\r\n profileTemplate.permissions.map((p) => {\r\n profileTemplatePermission.push(p);\r\n });\r\n }\r\n\r\n if (profileTemplate.nome) {\r\n auxProfileTemplateName = profileTemplate.nome;\r\n }\r\n\r\n if (auxAccessArea.length && auxIdsPermissions.length) {\r\n auxAccessArea.map(ac => {\r\n let obj = {\r\n idAccessArea: ac.value,\r\n idsPermissions: auxIdsPermissions,\r\n permissionsPt: auxPermissionsPt,\r\n permissionsEn: auxPermissionsEn,\r\n breadCrumbAccessAreaEn: ac.breadCrumbAccessAreaEn,\r\n breadCrumbAccessAreaPt: ac.breadCrumbAccessAreaPt,\r\n status: 0\r\n }\r\n\r\n if (profileTemplatePermission.length) {\r\n profileTemplatePermission.map(ptp => {\r\n if (ptp.idAccessArea === ac.value) {\r\n if (ptp.status === 2)\r\n ptp.status = 1;\r\n else {\r\n let index = profileTemplatePermission.findIndex(element => element.idAccessArea === ptp.idAccessArea && element.status === 0);\r\n if (index > -1)\r\n profileTemplatePermission.splice(index, 1);\r\n }\r\n }\r\n })\r\n }\r\n\r\n profileTemplatePermission.push(obj);\r\n })\r\n\r\n\r\n setProfileTemplate(profileTemplate => (\r\n {\r\n ...profileTemplate,\r\n nome: auxProfileTemplateName,\r\n permissions: profileTemplatePermission\r\n }\r\n ));\r\n document.getElementById(\"dropdownAcessAreaMessage\").innerHTML = \"\";\r\n document.getElementById(\"dropdownPermissionMessage\").innerHTML = \"\";\r\n\r\n }\r\n else {\r\n if (!auxAccessArea.length) {\r\n document.getElementById(\"dropdownAcessAreaMessage\").innerHTML = \"Campo obrigatório\";\r\n } else {\r\n document.getElementById(\"dropdownAcessAreaMessage\").innerHTML = \"\";\r\n }\r\n\r\n if (!auxIdsPermissions.length) {\r\n document.getElementById(\"dropdownPermissionMessage\").innerHTML = \"Campo obrigatório\";\r\n } else {\r\n document.getElementById(\"dropdownPermissionMessage\").innerHTML = \"\";\r\n }\r\n }\r\n\r\n }\r\n\r\n const saveTemplate = (e) => {\r\n\r\n e.preventDefault();\r\n\r\n try {\r\n if (formObject.validate()) {\r\n setDisabledBtn(true);\r\n if (typeof (profileTemplate.id) ===\"undefined\") {\r\n if (auxProfileTemplateName !==null) {\r\n profileTemplate.nome = auxProfileTemplateName;\r\n }\r\n if (profileTemplate.permissions) {\r\n addProfileTemplate(globalState.accessToken, profileTemplate)\r\n .then(response => {\r\n if (response.ok) {\r\n setRedirect(true);\r\n }\r\n setDisabledBtn(false);\r\n })\r\n .catch(error => {\r\n console.error(error)\r\n setDisabledBtn(false);\r\n });\r\n } else {\r\n alert(\"Os campos Área de acesso e Permissão devem estar preenchidos\");\r\n setDisabledBtn(false);\r\n }\r\n }\r\n else {\r\n if (auxProfileTemplateName !==null) {\r\n profileTemplate.nome = auxProfileTemplateName;\r\n }\r\n\r\n updateProfileTemplate(globalState.accessToken, profileTemplate)\r\n .then(response => {\r\n if (response.ok) {\r\n setRedirect(true);\r\n }\r\n setDisabledBtn(false);\r\n })\r\n .catch(error => {\r\n console.error(error)\r\n setDisabledBtn(false);\r\n });\r\n }\r\n }\r\n } catch (e) {\r\n console.log(\"saveTemplate - TemplateItem.js >>> \", e);\r\n }\r\n }\r\n\r\n let confirmDelete = (e) => {\r\n e.preventDefault();\r\n\r\n deleteProfileTemplate(globalState.accessToken, idTemplate).then(response => {\r\n setRedirect(response.ok);\r\n });\r\n }\r\n\r\n return (\r\n <>\r\n {globalState.accessToken === null ? :\r\n redirect ? : (\r\n <>\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n

{placeholderTitle}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

{t(\"ProfileTemplates:details\")}

\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n dropdownTreeAreasRef = dropdownTree}\r\n name=\"dropdownAcessArea\"\r\n cssClass=\"e-filled\"\r\n //changeOnBlur={false}\r\n //selectAllText={t('Permissions:selectAllTitle')}\r\n fields={{ dataSource: comboAccessAreas, value: \"value\", text: \"text\", parentValue: \"parentValue\", hasChildren: \"hasChildren\" }}\r\n showCheckBox={true}\r\n //showSelectAll={true}\r\n treeSettings={{ autoCheck: true }}\r\n placeholder={t('ProfileTemplates:accessArea')}\r\n value={[]}\r\n change={accessAreaChange}\r\n locale={i18n.language}\r\n />\r\n \r\n
\r\n {isLoading &&\r\n
\r\n \r\n multiSelectPermissionsRef = multiSelect}\r\n name=\"dropdownPermission\"\r\n cssClass=\"e-filled\"\r\n // selectAllText={t('Permissions:selectAllTitle')}\r\n dataSource={comboPermissions}\r\n fields={{ text: (i18n.language) ===\"pt\" ? \"nomePt\" : \"nomeEn\" }}\r\n placeholder={t(\"ProfileTemplates:permission_placeholder\")}\r\n mode=\"CheckBox\"\r\n locale={i18n.language}\r\n change={permissionChange}\r\n //filterBarPlaceholder=\"Search countries\"\r\n //popupHeight=\"350px\"\r\n >\r\n \r\n \r\n \r\n
\r\n }\r\n
\r\n { includeTemplate(e) }}\r\n >{t(\"ProfileTemplates:include\")}\r\n
\r\n
\r\n\r\n
\r\n {(gridDataSource && fillAccessAreas) &&\r\n gridInstance = grid}\r\n allowPaging={true}\r\n pageSettings={{ pageSize: 10 }}\r\n locale={i18n.language}\r\n //dataSource={profileTemplate.permissions}\r\n dataSource={gridDataSource}\r\n filterSettings={{ type: 'Menu' }}\r\n >\r\n\r\n \r\n columnArea(args)}\r\n // headerText=\"Área\"\r\n headerText={t('TablePermissions:area')}\r\n width=\"400\"\r\n />\r\n columnPermission(args)}\r\n // headerText=\"Permissões\"\r\n headerText={t('TablePermissions:permission')}\r\n width=\"400\"\r\n />\r\n columnButton(args)}\r\n // headerText=\"Ação\"\r\n headerText={t('TablePermissions:action')}\r\n width=\"100\"\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 \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","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from 'react-i18next';\r\nimport { GlobalStateContext } from '../general/GlobalState';\r\nimport { GridComponent, ColumnsDirective, ColumnDirective, Filter, Inject, VirtualScroll, Sort, ContextMenu, Page, Resize, Edit } from \"@syncfusion/ej2-react-grids\";\r\nimport { getBanners } from \"../../services/BannerHomeSVC\";\r\nimport { createSpinner, setSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\r\n\r\nexport const BannersList = (props) => {\r\n\r\n const { setBannersList, bannersList, catchRefresh } = props;\r\n\r\n const [globalState, setGlobalState] = React.useContext(GlobalStateContext);\r\n\r\n const [loadingBanner, setLoadingBanner] = React.useState(true);\r\n\r\n const contextMenuItems = ['SortAscending', 'SortDescending', 'FirstPage', 'PrevPage', 'LastPage', 'NextPage'];\r\n\r\n const { t } = useTranslation();\r\n\r\n let gridInstance;\r\n\r\n React.useEffect(() => {\r\n setLoadingBanner(true);\r\n let version = new Date().toISOString();\r\n\r\n async function load() {\r\n getBanners(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n })\r\n .then(result => {\r\n setBannersList(result && result.map((i) => ({\r\n ...i,\r\n src: `${process.env.REACT_APP_API_URL}/_api/BannerHome/GetBannerHome?token=${globalState.tokenLightWeight}&IdBannerHome=${i.id}&version=${version}`\r\n })))\r\n\r\n hideSpinner(document.getElementById('loadBanner'));\r\n setLoadingBanner(false);\r\n });\r\n }\r\n load();\r\n }, [i18n.language]);\r\n\r\n React.useEffect(() => {\r\n if (gridInstance) {\r\n gridInstance.refresh();\r\n }\r\n }, [catchRefresh]);\r\n\r\n React.useEffect(() => {\r\n if (loadingBanner && document.getElementById('loadBanner')) {\r\n createSpinner({ target: document.getElementById('loadBanner') })\r\n showSpinner(document.getElementById('loadBanner'));\r\n setSpinner({ type: 'Bootstrap' });\r\n }\r\n }, [loadingBanner]);\r\n\r\n const bannerStatus = (props) => {\r\n if (props.ativo ===true) {\r\n return ({i18n.language ==='pt' ? 'Sim' : 'Yes'});\r\n } else {\r\n return ({i18n.language ==='pt' ? 'Não' : 'No'});\r\n }\r\n };\r\n\r\n function bannerImage(args) {\r\n return (\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n const bannerTitle = (args) => {\r\n return (\r\n props.edit(args)}>{args.titulo}\r\n )\r\n }\r\n\r\n return (\r\n
\r\n {loadingBanner ?
:\r\n
\r\n {bannersList && bannersList.length > 0 &&\r\n gridInstance = grid}\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};","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Container, Row } from \"reactstrap\";\r\nimport { GlobalStateContext } from '../general/GlobalState'\r\nimport { ModalBanners } from \"../banners/ModalBanners\";\r\nimport { BannersList } from \"../banners/BannersList\";\r\nimport { Buttons } from \"../utilities/Buttons\";\r\nimport { getBanners } from \"../../services/BannerHomeSVC\";\r\nimport { Actions } from \"../utilities/Actions\";\r\nimport '../banners/banners.css';\r\nimport PermissionRedirect from \"../utilities/PermissionRedirect/PermissionRedirect\";\r\n\r\n\r\nexport const Banners = () => {\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [dataUser, setDataUser] = React.useState('');\r\n const [gridRefresh, setGridRefresh] = React.useState(false);\r\n const [showDialog, setShowDialog] = React.useState(false);\r\n const [dataBanner, setDataBanner] = React.useState(null);\r\n const [catchRefresh, setCatchRefresh] = React.useState(null);\r\n\r\n const [bannersList, setBannersList] = React.useState([]);\r\n\r\n const { t } = useTranslation();\r\n\r\n const _controls = {\r\n export: \"\",\r\n import: \"\",\r\n new: () => editBanner(''),\r\n back: \"\",\r\n };\r\n\r\n const _info = {\r\n close: () => setShowDialog(false),\r\n refresh: () => setGridRefresh(true)\r\n }\r\n\r\n let editBanner = (info) => {\r\n console.log(\"info\", info);\r\n setDataBanner(info);\r\n setShowDialog(true);\r\n }\r\n\r\n return (\r\n <>\r\n {globalState.accessToken === null ? :\r\n <>\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n

{t('Banners:title')}

\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 {showDialog &&\r\n \r\n }\r\n \r\n }\r\n \r\n );\r\n}","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from 'react-i18next';\r\nimport { GlobalStateContext } from '../general/GlobalState';\r\nimport {\r\n GridComponent,\r\n ColumnsDirective,\r\n ColumnDirective,\r\n Inject,\r\n Filter,\r\n Page\r\n} from '@syncfusion/ej2-react-grids';\r\nimport { DropDownListComponent, ChangeEventArgs, ComboBoxComponent } from '@syncfusion/ej2-react-dropdowns';\r\nimport { TextBoxComponent } from '@syncfusion/ej2-react-inputs';\r\nimport { ButtonComponent } from '@syncfusion/ej2-react-buttons';\r\nimport { getSuppliers, deleteSupplier } from \"../../services/SuppliersSVC\";\r\nimport { getCountries, getRegional } from \"../../services/SystemSVC\";\r\nimport \"../users/users.css\";\r\nimport \"../suppliers/suppliers.css\";\r\nimport { createSpinner, setSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\r\n\r\nexport const SuppliersLists = (props) => {\r\n let gridComponentRef;\r\n const [globalState, setGlobalState] = React.useContext(GlobalStateContext);\r\n const [immediateLeader, setImmediateLeader] = React.useState([]);\r\n const [comboCountries, setComboCountries] = React.useState([]);\r\n const [comboRegional, setComboRegional] = React.useState([]);\r\n const [gridItems, setGridItems] = React.useState(null);\r\n const [placeHolder, setPlaceHolder] = React.useState();\r\n const [isVisible, setIsVisible] = React.useState(false);\r\n const [allSuppliers, setAllSuppliers] = React.useState();\r\n const [loadingSuppliers, setLoadingSuppliers] = React.useState(true);\r\n const [filter, setFilter] = React.useState({});\r\n\r\n const { t } = useTranslation();\r\n\r\n\r\n const [suppliers, setSuppliers] = React.useState([]);\r\n\r\n React.useEffect(() => {\r\n if (loadingSuppliers && document.getElementById('loadSuppliers')) {\r\n createSpinner({ target: document.getElementById('loadSuppliers') })\r\n showSpinner(document.getElementById('loadSuppliers'));\r\n setSpinner({ type: 'Bootstrap' });\r\n }\r\n }, [loadingSuppliers]);\r\n\r\n const buildDropDownItems = (data, objMap) => {\r\n if (data.length > 0)\r\n return data.map((i) => {\r\n return {\r\n text: i[objMap.textKey],\r\n value: i[objMap.value],\r\n };\r\n });\r\n else\r\n return data\r\n }\r\n\r\n React.useEffect(() => {\r\n setLoadingSuppliers(true);\r\n async function load() {\r\n let _suppliers = await getSuppliers(globalState.accessToken)\r\n .then(response => { if (response.ok) { return response.json() } });\r\n let _country = await getCountries(globalState.accessToken)\r\n .then(response => { if (response.ok) { return response.json() } });\r\n let _region = await getRegional(globalState.accessToken)\r\n .then(response => { if (response.ok) { return response.json() } });\r\n\r\n if (_suppliers) {\r\n setSuppliers(_suppliers);\r\n setAllSuppliers(_suppliers);\r\n }\r\n\r\n setComboCountries(buildDropDownItems(_country,{ textKey: i18n.language ==='pt' ? 'nomePt' : 'nomeEn', value: 'id' }));\r\n setComboRegional(buildDropDownItems(_region,{ textKey: i18n.language ==='pt' ? 'nomePt' : 'nomeEn', value: 'id' }));\r\n setPlaceHolder(t('Suppliers:search_message'));\r\n\r\n if (document.getElementById('loadSuppliers')) {\r\n hideSpinner(document.getElementById('loadSuppliers'));\r\n setLoadingSuppliers(false);\r\n }\r\n }\r\n load();\r\n }, [i18n.language]);\r\n\r\n const inputChange = e => {\r\n setFilter({ ...filter, [e.event.currentTarget.id]: e.value });\r\n }\r\n const dropdownlistChange = e => {\r\n setFilter({ ...filter, [e.element.id]: e.value });\r\n }\r\n\r\n //Search\r\n\r\n const filterSuppliers = () => {\r\n setIsVisible(false)\r\n let listSuppliers = allSuppliers;\r\n //Por nome\r\n if (filter.name)\r\n listSuppliers = listSuppliers.filter(item => item.nome.toLowerCase().includes(filter.name.toLowerCase()));\r\n\r\n //Por País\r\n if (filter.country)\r\n listSuppliers = listSuppliers.filter(item => item.pais.id === filter.country);\r\n\r\n //Por Regional\r\n if (filter.regional)\r\n listSuppliers = listSuppliers.filter(item => item.regional && item.regional.id === filter.regional);\r\n\r\n gridComponentRef.dataSource = listSuppliers;\r\n }\r\n\r\n //fim Search\r\n\r\n const suppliersName = (args) => {\r\n return (\r\n props.edit(args.id)}>{args.nome}\r\n )\r\n }\r\n\r\n const contextMenuItems = ['SortAscending', 'SortDescending', 'FirstPage', 'PrevPage', 'LastPage', 'NextPage'];\r\n\r\n //Deletar fornecedor\r\n const deleteRow = async (item) => {\r\n await deleteSupplier(globalState.accessToken, item.id);\r\n let _listSuppliers = await getAllSuppliers();\r\n await setSuppliers(_listSuppliers);\r\n }\r\n\r\n //Consultar fornecedores\r\n const getAllSuppliers = async () => {\r\n let _suppliers = await getSuppliers(globalState.accessToken)\r\n .then(response => { if (response.ok) { return response.json() } });\r\n return _suppliers;\r\n }\r\n\r\n React.useEffect(() => {\r\n if (gridComponentRef)\r\n gridComponentRef.refresh();\r\n }, [i18n.language]);\r\n\r\n return (\r\n <>\r\n
\r\n {loadingSuppliers ?
:\r\n
\r\n
\r\n \r\n

{t('Suppliers:search')}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n setIsVisible(!isVisible)}>\r\n \r\n {t('Suppliers:filter_button')}\r\n \r\n
\r\n
\r\n \r\n {t('Suppliers:search_button')}\r\n\r\n \r\n
\r\n
\r\n
\r\n }\r\n {isVisible &&\r\n
\r\n \r\n \r\n
\r\n }\r\n
\r\n
\r\n {(suppliers) && loadingSuppliers ?
:\r\n gridComponentRef = gridComponent}\r\n dataSource={!loadingSuppliers && suppliers}\r\n allowPaging={true}\r\n pageSettings={{ pageSize: 10 }}\r\n filterSettings={{ type: 'Menu' }}\r\n allowSorting={true}\r\n contextMenuItems={contextMenuItems}\r\n locale={i18n.language}>\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","import * as React from \"react\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { Container, Row } from \"reactstrap\";\r\nimport { GlobalStateContext } from '../general/GlobalState'\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Actions } from \"../utilities/Actions\";\r\nimport '../profile/profile.css';\r\nimport { getMyProfile, updateMyProfile } from \"../../services/UsersSVC\";\r\nimport { SuppliersLists } from \"../suppliers/SuppliersLists\";\r\nimport { Buttons } from \"../utilities/Buttons\";\r\nimport PermissionRedirect from \"../utilities/PermissionRedirect/PermissionRedirect\";\r\n\r\nexport const Suppliers = () => {\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [redirect, setRedirect] = React.useState(false);\r\n const [idItem, setIdItem] = React.useState(null);\r\n const { t } = useTranslation();\r\n\r\n const _controls = {\r\n export: \"\",\r\n import: \"\",\r\n new: () => setRedirect(true),\r\n back: \"\",\r\n };\r\n\r\n\r\n let editSuppliers = (id) => {\r\n setIdItem(id);\r\n }\r\n\r\n React.useEffect(() => {\r\n if (idItem) {\r\n setRedirect(true);\r\n }\r\n }, [idItem]);\r\n\r\n return (\r\n <>\r\n {globalState.accessToken === null ? : (\r\n redirect ? (\r\n idItem === null ?\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

{t('Suppliers:title')}

\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}","import React from 'react';\r\nimport './MessageModal.css';\r\nimport i18n from 'i18next';\r\nimport { DialogComponent } from '@syncfusion/ej2-react-popups';\r\n\r\nfunction GenericModal({ params }) {\r\n const [show, setshow] = React.useState();\r\n React.useEffect(() => {\r\n setshow(params.show);\r\n }, [params]);\r\n return show ? (\r\n { setshow(false) }}\r\n showCloseIcon={params.actionType ===\"approval\"}\r\n visible={show}\r\n style={{ maxHeight: '231px !important', zIndex: '2000' }}\r\n locale={i18n.language}\r\n >\r\n
\r\n {/* MODAL HEADER */}\r\n
\r\n \r\n
\r\n \r\n {\r\n params.actionType ===\"approval\" &&\r\n \r\n }\r\n {\r\n params.actionType ===\"confirm\" &&\r\n \r\n }\r\n
\r\n
\r\n
\r\n\r\n {/* MODAL BODY */}\r\n
\r\n {/* BODY INFORMATIVO */}\r\n {!params.actionType &&\r\n <>\r\n
\r\n \r\n
\r\n \r\n {\r\n setshow(false);\r\n if (params.exitCallback) {\r\n params.exitCallback()\r\n }\r\n }}\r\n >\r\n {i18n.language ==='pt' ? 'Sair' : 'Exit'}\r\n \r\n \r\n }\r\n {/* BODY APROVAÇÃO */}\r\n {params.actionType ===\"approval\" &&\r\n
\r\n
\r\n \r\n \r\n {i18n.language ===\"pt\" ? \"Aprovar\" : \"Approve\"}\r\n
\r\n
\r\n }\r\n {/* BODY CONFIRMAÇÃO */}\r\n {params.actionType ===\"confirm\" &&\r\n
\r\n
\r\n \r\n {i18n.language ===\"pt\" ? \"Não\" : \"No\"}\r\n \r\n \r\n {i18n.language ===\"pt\" ? \"Sim\" : \"Yes\"}\r\n
\r\n
\r\n }\r\n\r\n
\r\n
\r\n \r\n ) : null\r\n}\r\nexport default GenericModal;","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Container, Row, Col } from \"reactstrap\";\r\nimport { GlobalStateContext } from '../general/GlobalState';\r\nimport { Actions } from \"../utilities/Actions\";\r\nimport '../suppliers/suppliers.css';\r\nimport { TextBoxComponent, MaskedTextBoxComponent } from \"@syncfusion/ej2-react-inputs\";\r\nimport { ComboBoxComponent } from \"@syncfusion/ej2-react-dropdowns\";\r\nimport { FormValidator } from '@syncfusion/ej2-react-inputs';\r\nimport { ButtonComponent } from \"@syncfusion/ej2-react-buttons\";\r\nimport { GridComponent, ColumnsDirective, ColumnDirective } from \"@syncfusion/ej2-react-grids\";\r\n//import { ModalSuppliers } from \"../suppliers/ModalSuppliers\";\r\nimport { getSuppliers, addOrUpdateSupplier, deleteSupplier } from \"../../services/SuppliersSVC\";\r\nimport { getCountries, getRegional, getSupplierDescriptions, getSupplierTypes, getDICIAreas } from \"../../services/SystemSVC\";\r\nimport { DropDownListComponent } from '@syncfusion/ej2-react-dropdowns';\r\nimport GenericModal from '../utilities/MessageModal/GenericModal';\r\nimport { createSpinner, setSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\r\n\r\nexport const SuppliersItem = (props) => {\r\n\r\n let formObject;\r\n\r\n const [loading, setLoading] = React.useState(true);\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [comboCountries, setComboCountries] = React.useState([]);\r\n const [comboRegional, setComboRegional] = React.useState([]);\r\n const [comboDescription, setComboDescription] = React.useState([]);\r\n const [comboSupplierTypes, setComboSupplierTypes] = React.useState([]);\r\n const [comboDICIAreas, setComboDICIAreas] = React.useState([]);\r\n const [redirect, setRedirect] = React.useState(false);\r\n const [selectedItem, setSelectedItem] = React.useState({});\r\n const [regionalVisible, setRegionalVisible] = React.useState(false)\r\n const [modalMessageParams, setmodalMessageParams] = React.useState({ show: false, });\r\n const [disabledBtn, setDisabledBtn] = React.useState(false);\r\n const { t } = useTranslation();\r\n\r\n let idSupplier = props.match.params.id;\r\n\r\n const _controls = {\r\n className: \"suppliers\",\r\n savePrimary: false,\r\n excludePrimary: true,\r\n urlView: \"\",\r\n urlPreview: \"\",\r\n urlDuplicate: \"\",\r\n urlSave: (e) => saveSupplier(e),\r\n urlSend: \"\",\r\n urlCancel: () => setRedirect(true),\r\n urlDelete: idSupplier ? (e) => excludeSupplier(e, idSupplier) : \"\"\r\n };\r\n\r\n React.useEffect(() => {\r\n createSpinner({ target: document.getElementById('loadSup') })\r\n showSpinner(document.getElementById('loadSup'));\r\n setSpinner({ type: 'Bootstrap' });\r\n }, []);\r\n\r\n\r\n React.useEffect(() => {\r\n setLoading(true);\r\n async function load() {\r\n let _suppliers = await getSuppliers(globalState.accessToken)\r\n .then(response => { if (response.ok) { return response.json() } });\r\n let _country = await getCountries(globalState.accessToken)\r\n .then(response => { if (response.ok) { return response.json() } });\r\n let _region = await getRegional(globalState.accessToken)\r\n .then(response => { if (response.ok) { return response.json() } });\r\n let _description = await getSupplierDescriptions(globalState.accessToken)\r\n .then(response => { if (response.ok) { return response.json() } });\r\n let _supplierTypes = await getSupplierTypes(globalState.accessToken)\r\n .then(response => { if (response.ok) { return response.json() } });\r\n let _DICIAreas = await getDICIAreas(globalState.accessToken)\r\n .then(response => { if (response.ok) { return response.json() } });\r\n\r\n let idCountry = null;\r\n\r\n if (_suppliers) {\r\n _suppliers = _suppliers.filter(i => i.id ===idSupplier);\r\n if (_suppliers.length) {\r\n idCountry = _suppliers[0].idPais;\r\n setSelectedItem(_suppliers[0]);\r\n }\r\n }\r\n\r\n setComboCountries(_country);\r\n setComboRegional(_region);\r\n setComboDescription(_description);\r\n setComboSupplierTypes(_supplierTypes);\r\n setComboDICIAreas(_DICIAreas);\r\n\r\n //hideSpinner(document.getElementById('loadSup'));\r\n if (idSupplier && idCountry === 6) {\r\n setRegionalVisible(true)\r\n }\r\n setLoading(false);\r\n }\r\n load();\r\n }, [i18n.language]);\r\n\r\n React.useEffect(() => {\r\n const formValidator = {\r\n rules: {\r\n 'nome': {\r\n required: [true, t('Validation:required')]\r\n },\r\n 'tipo': {\r\n required: [true, t('Validation:required')]\r\n },\r\n //'cnpj': {\r\n // required: [true, t('Validation:required')]\r\n //},\r\n 'descricao': {\r\n required: [true, t('Validation:required')]\r\n },\r\n 'area': {\r\n required: [true, t('Validation:required')]\r\n },\r\n 'pais': {\r\n required: [true, t('Validation:required')]\r\n },\r\n //'regional': {\r\n // required: [true, t('Validation:required')]\r\n //},\r\n //'estadual': {\r\n // required: [true, t('Validation:required')]\r\n //},\r\n //'municipal': {\r\n // required: [true, t('Validation:required')]\r\n //},\r\n 'endereco': {\r\n required: [true, t('Validation:required')]\r\n }\r\n },\r\n customPlacement: (inputElement, errorElement) => {\r\n inputElement.parentElement.parentElement.appendChild(errorElement);\r\n setTimeout(() => {\r\n errorElement.style.display = \"none\";\r\n }, 3000)\r\n }\r\n };\r\n formObject = new FormValidator('#formSupplierItem', formValidator);\r\n });\r\n\r\n\r\n const buildDialogMessage = (type, msg, callBack, okCallback, notOkCallback, confirmType) => {\r\n if (type ==='success') {\r\n setmodalMessageParams({\r\n title: t('ModalMessages:title'),\r\n message: t('ModalMessages:created'),\r\n type: 'success',\r\n icon: 'mdl2-confirm',\r\n show: true,\r\n exitCallback: callBack\r\n });\r\n } else if (type ==='updated') {\r\n setmodalMessageParams({\r\n title: t('ModalMessages:title'),\r\n message: t('ModalMessages:updated'),\r\n type: 'success',\r\n icon: 'mdl2-confirm',\r\n show: true,\r\n exitCallback: callBack\r\n });\r\n } else if (type ==='confirm') {\r\n setmodalMessageParams({\r\n title: confirmType ===\"create\" ? t('ModalMessages:title_create_item') : t('ModalMessages:title_update_item'),\r\n type: \"success\",\r\n actionType: 'confirm',\r\n confirmOkCallback: okCallback,\r\n confirmNotOkCallback: notOkCallback,\r\n icon: 'mdl2 mdl2-approve',\r\n show: true,\r\n });\r\n }\r\n else if (type ==='error') {\r\n setmodalMessageParams({\r\n title: t('ManageInternalAreas:error_title'),\r\n message: t('ManageInternalAreas:error'),\r\n type: 'error',\r\n icon: 'e-icon-dlg-close e-icons',\r\n show: true,\r\n });\r\n } else if (type ==='custom-error') {\r\n setmodalMessageParams({\r\n title: t('ManageInternalAreas:error_title'),\r\n message: msg,\r\n type: 'error',\r\n icon: 'e-icon-dlg-close e-icons',\r\n show: true,\r\n exitCallback: callBack\r\n });\r\n } else if (type ==='confirmDelete') {\r\n setmodalMessageParams({\r\n title: i18n.language ===\"pt\" ? 'Deletar item' : 'Delete item',\r\n type: \"error\",\r\n message: i18n.language ===\"pt\" ? 'Tem certeza que deseja excluir esse item?' : 'Are you sure you want to delete this item?',\r\n actionType: 'confirm',\r\n confirmOkCallback: okCallback,\r\n confirmNotOkCallback: notOkCallback,\r\n icon: 'mdl2 mdl2-trash',\r\n show: true,\r\n });\r\n } else if (type ==='close') {\r\n setmodalMessageParams({\r\n show: false,\r\n });\r\n }\r\n };\r\n\r\n let saveSupplier = (e) => {\r\n e.preventDefault();\r\n if (formObject.validate()) {\r\n setDisabledBtn(true);\r\n\r\n const handleConfirmOK = () => {\r\n const newItem = selectedItem\r\n if (!newItem.inscricaoEstadual)\r\n newItem.inscricaoEstadual = ''\r\n if (!newItem.inscricaoMunicipal)\r\n newItem.inscricaoMunicipal = ''\r\n if (!newItem.cnpj)\r\n newItem.cnpj = ''\r\n addOrUpdateSupplier(globalState.accessToken, selectedItem)\r\n .then(async response => {\r\n if (response.ok) {\r\n idSupplier ? buildDialogMessage('updated', '', () => { setRedirect(true) }) : buildDialogMessage('success', '', () => { setRedirect(true) });\r\n\r\n } else {\r\n const erroMSg = await response.json()\r\n console.log(erroMSg);\r\n buildDialogMessage('custom-error',\r\n JSON.stringify(erroMSg.errors ? erroMSg.errors :\r\n `Ocorreu um erro no sistema. Favor entrar em contato com o administrador - OperationId: ${erroMSg.OperationId}`),\r\n () => { buildDialogMessage('close') }\r\n );\r\n }\r\n setDisabledBtn(false);\r\n })\r\n .catch(error => {\r\n console.error(error)\r\n setDisabledBtn(false);\r\n });\r\n }\r\n const handleNotOK = () => {\r\n buildDialogMessage('close')\r\n setDisabledBtn(false);\r\n }\r\n buildDialogMessage('confirm', null, null, () => { handleConfirmOK() }, handleNotOK, idSupplier ? \"updated\" : 'create')\r\n }\r\n }\r\n\r\n let excludeSupplier = async (e, itemID) => {\r\n e.preventDefault();\r\n const handleNotOK = () => {\r\n buildDialogMessage('close')\r\n }\r\n const handleOK = async (itemID) => {\r\n await deleteSupplier(globalState.accessToken, itemID).then((response) => {\r\n if (response.ok) {\r\n setRedirect(true);\r\n }\r\n });\r\n buildDialogMessage('close')\r\n }\r\n buildDialogMessage('confirmDelete', null, null, () => { handleOK(itemID) }, handleNotOK, '')\r\n }\r\n\r\n\r\n\r\n return (\r\n <>\r\n {globalState.accessToken === null ? :\r\n redirect ? :\r\n loading ?
: (\r\n <>\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n

{idSupplier ? t('Supplier:edit_title') : t('Supplier:new_title')}

\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

{t('Supplier:information_supplier')}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n setSelectedItem(selectedItem => ({ ...selectedItem, nome: e.value }))}\r\n locale={i18n.language}\r\n />\r\n
\r\n
\r\n \r\n { if (e.itemData !==null) { setSelectedItem(selectedItem => ({ ...selectedItem, idTipoFornecedor: Number(e.itemData.id) })) } }}\r\n locale={i18n.language}\r\n />\r\n
\r\n
\r\n \r\n {\r\n setSelectedItem({ ...selectedItem, cnpj: e.value })\r\n }\r\n }\r\n />\r\n
\r\n
\r\n
\r\n
\r\n \r\n { if (e.itemData !==null) { setSelectedItem({ ...selectedItem, idDescricao: Number(e.itemData.id) }) } }}\r\n locale={i18n.language}\r\n />\r\n
\r\n
\r\n \r\n { if (e.itemData !==null) { setSelectedItem({ ...selectedItem, idAreaDICI: Number(e.itemData.id) }) } }}\r\n locale={i18n.language}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n \r\n {\r\n if (e.itemData !==null) {\r\n setSelectedItem(selectedItem => ({ ...selectedItem, idPais: Number(e.itemData.id) }))\r\n if (Number(e.itemData.id) ===6) {\r\n setRegionalVisible(true);\r\n } else {\r\n setRegionalVisible(false)\r\n if (typeof (selectedItem) !==\"undefined\") {\r\n if (typeof (selectedItem.idRegional) !==\"undefined\") {\r\n\r\n setSelectedItem(selectedItem => ({ ...selectedItem, idRegional: undefined }))\r\n }\r\n }\r\n }\r\n } else {\r\n setRegionalVisible(false)\r\n if (typeof (selectedItem) !==\"undefined\") {\r\n if (typeof (selectedItem.idRegional) !==\"undefined\") {\r\n\r\n setSelectedItem(selectedItem => ({ ...selectedItem, idRegional: undefined }))\r\n }\r\n }\r\n }\r\n }\r\n }\r\n locale={i18n.language}\r\n\r\n />\r\n
\r\n\r\n {(regionalVisible ===true)\r\n ?\r\n
\r\n \r\n { if (e.itemData !==null) { setSelectedItem({ ...selectedItem, idRegional: Number(e.itemData.id) }) } }}\r\n locale={i18n.language}\r\n showClearButton={true}\r\n />\r\n
\r\n\r\n : null\r\n }\r\n\r\n
\r\n \r\n setSelectedItem(selectedItem => ({ ...selectedItem, inscricaoEstadual: e.value }))}\r\n locale={i18n.language}\r\n />\r\n
\r\n
\r\n \r\n setSelectedItem(selectedItem => ({ ...selectedItem, inscricaoMunicipal: e.value }))}\r\n locale={i18n.language}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n \r\n setSelectedItem(selectedItem => ({ ...selectedItem, endereco: e.value }))}\r\n locale={i18n.language}\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","import { requestAPI } from '../components/utilities/Utils';\r\n\r\n// export class PressReportFilter {\r\n// constructor(businessArea, startPeriod, endPeriod, status, country, regional) {\r\n// this.areaNegocio = businessArea;\r\n// this.startPeriod = startPeriod;\r\n// this.endPeriod = endPeriod;\r\n// this.bloqueado = status;\r\n// this.pais = country;\r\n// this.regional = regional;\r\n// }\r\n// }\r\n\r\nexport async function getPressItems(token, pressTypeId, qString) {\r\n switch (pressTypeId) {\r\n case 1:\r\n return requestAPI(\"_api/Release/GetReleaseItems\", \"GET\", qString, null, token, false);\r\n case 2:\r\n return requestAPI(\"_api/Statement/GetStatementsItems\", \"GET\", qString, null, token, false);\r\n case 3:\r\n return requestAPI(\"_api/PositionPaper/GetPositionPaperItems\", \"GET\", qString, null, token, false);\r\n case 4:\r\n return requestAPI(\"_api/QA/GetQAItems\", \"GET\", qString, null, token, false);\r\n case 6:\r\n return requestAPI(\"_api/WebcastNotice/GetWebcastNoticeItems\", \"GET\", qString, null, token, false);\r\n case 7:\r\n return requestAPI(\"_api/AssignmentNotice/GetAssignmentNoticeItems\", \"GET\", qString, null, token, false);\r\n }\r\n}\r\n\r\nexport async function getPressItemsFiltered(token, body, pressTypeId, reports) {\r\n\r\n const newBody = { ...body, reports: reports ? true : false };\r\n let raw = JSON.stringify(newBody);\r\n\r\n switch (pressTypeId) {\r\n case 1:\r\n return requestAPI(\"_api/Release/GetReleaseFiltered\", \"POST\", \"\", raw, token, false);\r\n case 2:\r\n return requestAPI(\"_api/Statement/GetStatementsFiltered\", \"POST\", \"\", raw, token, false);\r\n case 3:\r\n return requestAPI(\"_api/PositionPaper/GetPositionPaperFiltered\", \"POST\", \"\", raw, token, false);\r\n case 4:\r\n return requestAPI(\"_api/QA/GetQAFiltered\", \"POST\", \"\", raw, token, false);\r\n case 6:\r\n return requestAPI(\"_api/WebcastNotice/GetWebcastNoticeFiltered\", \"POST\", \"\", raw, token, false);\r\n case 7:\r\n return requestAPI(\"_api/AssignmentNotice/GetAssignmentNoticeFiltered\", \"POST\", \"\", raw, token, false);\r\n }\r\n}\r\n\r\nexport async function exportPressReport(token, body, pressTypeId) {\r\n\r\n var raw = JSON.stringify(body);\r\n\r\n switch (pressTypeId) {\r\n case 1:\r\n return requestAPI(\"_api/Release/ExportReleaseReport\", \"POST\", \"\", raw, token, null);\r\n case 2:\r\n return requestAPI(\"_api/Statement/ExportStatementReport\", \"POST\", \"\", raw, token, null);\r\n case 3:\r\n return requestAPI(\"_api/PositionPaper/ExportPositionPaperReport\", \"POST\", \"\", raw, token, null);\r\n // case 4:\r\n // return requestAPI(\"_api/QA/ExportQAReport\", \"POST\", \"\", raw, token, null);\r\n // case 6:\r\n // return requestAPI(\"_api/WebcastNotice/ExportWebcastNoticeReport\", \"POST\", \"\", raw, token, null);\r\n // case 7:\r\n // return requestAPI(\"_api/AssignmentNotice/ExportAssignmentNoticeReport\", \"POST\", \"\", raw, token, null);\r\n }\r\n}\r\n\r\nexport async function getPressItem(token, id, pressTypeId) {\r\n\r\n let qstring = \"?pressId=\" + id;\r\n\r\n switch (pressTypeId) {\r\n case 1:\r\n return requestAPI(\"_api/Release/GetReleaseItem\", \"GET\", qstring, null, token, false);\r\n case 2:\r\n return requestAPI(\"_api/Statement/GetStatementItem\", \"GET\", qstring, null, token, false);\r\n case 3:\r\n return requestAPI(\"_api/PositionPaper/GetPositionPaperItem\", \"GET\", qstring, null, token, false);\r\n case 4:\r\n return requestAPI(\"_api/QA/GetQAItem\", \"GET\", qstring, null, token, false);\r\n case 6:\r\n return requestAPI(\"_api/WebcastNotice/GetWebcastNoticeItem\", \"GET\", qstring, null, token, false);\r\n case 7:\r\n return requestAPI(\"_api/AssignmentNotice/GetAssignmentNoticeItem\", \"GET\", qstring, null, token, false);\r\n }\r\n\r\n}\r\n\r\nexport async function addPressItem(token, body, pressTypeId) {\r\n var form_data = new FormData();\r\n for (var key in body) {\r\n if (key !== \"midias\") {\r\n if (body[key])\r\n form_data.append(key, body[key]);\r\n }\r\n }\r\n if (body.midias) {\r\n for (var midia in body.midias) {\r\n form_data.append(\"midias\", body.midias[midia])\r\n }\r\n }\r\n\r\n switch (pressTypeId) {\r\n case 1:\r\n return requestAPI(\"_api/Release/AddReleaseItem\", \"POST\", \"\", form_data, token, true);\r\n case 2:\r\n return requestAPI(\"_api/Statement/AddStatementItem\", \"POST\", \"\", form_data, token, true);\r\n case 3:\r\n return requestAPI(\"_api/PositionPaper/AddPositionPaperItem\", \"POST\", \"\", form_data, token, true);\r\n case 4:\r\n return requestAPI(\"_api/QA/AddQAItem\", \"POST\", \"\", form_data, token, true);\r\n case 6:\r\n return requestAPI(\"_api/WebcastNotice/AddWebcastNoticeItem\", \"POST\", \"\", form_data, token, true);\r\n case 7:\r\n return requestAPI(\"_api/AssignmentNotice/AddAssignmentNoticeItem\", \"POST\", \"\", form_data, token, true);\r\n }\r\n}\r\n\r\nexport async function updatePressItem(token, body, pressTypeId) {\r\n\r\n var form_data = new FormData();\r\n for (var key in body) {\r\n if (key !== \"midias\") {\r\n if (body[key])\r\n form_data.append(key, body[key]);\r\n }\r\n }\r\n\r\n if (body.midias) {\r\n for (var midia in body.midias) {\r\n form_data.append(\"midias\", body.midias[midia])\r\n }\r\n }\r\n\r\n console.log('body', body)\r\n console.log('form_data', form_data)\r\n\r\n switch (pressTypeId) {\r\n case 1:\r\n return requestAPI(\"_api/Release/UpdateReleaseItem\", \"POST\", \"\", form_data, token, true);\r\n case 2:\r\n return requestAPI(\"_api/Statement/UpdateStatementItem\", \"POST\", \"\", form_data, token, true);\r\n case 3:\r\n return requestAPI(\"_api/PositionPaper/UpdatePositionPaperItem\", \"POST\", \"\", form_data, token, true);\r\n case 4:\r\n return requestAPI(\"_api/QA/UpdateQAItem\", \"POST\", \"\", form_data, token, true);\r\n case 6:\r\n return requestAPI(\"_api/WebcastNotice/UpdateWebcastNoticeItem\", \"POST\", \"\", form_data, token, true);\r\n case 7:\r\n return requestAPI(\"_api/AssignmentNotice/UpdateAssignmentNoticeItem\", \"POST\", \"\", form_data, token, true);\r\n }\r\n}\r\n\r\nexport async function deletePressItem(token, id, pressTypeId) {\r\n\r\n let qstring = \"?pressId=\" + id;\r\n\r\n switch (pressTypeId) {\r\n case 1:\r\n return requestAPI(\"_api/Release/DeleteReleaseItem\", \"POST\", qstring, null, token, false);\r\n case 2:\r\n return requestAPI(\"_api/Statement/DeleteStatementItem\", \"POST\", qstring, null, token, false);\r\n case 3:\r\n return requestAPI(\"_api/PositionPaper/DeletePositionPaperItem\", \"POST\", qstring, null, token, false);\r\n case 4:\r\n return requestAPI(\"_api/QA/DeleteQAItem\", \"POST\", qstring, null, token, false);\r\n case 6:\r\n return requestAPI(\"_api/WebcastNotice/DeleteWebcastNoticeItem\", \"POST\", qstring, null, token, false);\r\n case 7:\r\n return requestAPI(\"_api/AssignmentNotice/DeleteAssignmentNoticeItem\", \"POST\", qstring, null, token, false);\r\n }\r\n}\r\n\r\nexport async function duplicatePressItem(token, id, pressTypeId) {\r\n const qString = `?pressId=${id}`;\r\n switch (pressTypeId) {\r\n case 1:\r\n return requestAPI(\"_api/Release/DuplicatePressItem\", \"POST\", qString, null, token, false);\r\n case 2:\r\n return requestAPI(\"_api/Statement/DuplicatePressItem\", \"POST\", qString, null, token, false);\r\n case 3:\r\n return requestAPI(\"_api/PositionPaper/DuplicatePressItem\", \"POST\", qString, null, token, false);\r\n case 4:\r\n return requestAPI(\"_api/QA/DuplicatePressItem\", \"POST\", qString, null, token, false);\r\n case 6:\r\n return requestAPI(\"_api/WebcastNotice/DuplicatePressItem\", \"POST\", qString, null, token, false);\r\n case 7:\r\n return requestAPI(\"_api/AssignmentNotice/DuplicatePressItem\", \"POST\", qString, null, token, false);\r\n }\r\n}\r\n\r\nexport async function duplicateForwardPressItem(token, id, pressTypeId, regionalId, conteudo) {\r\n const raw = JSON.stringify({\r\n pressId: id,\r\n regionalId, conteudo\r\n })\r\n\r\n switch (pressTypeId) {\r\n case 1:\r\n return requestAPI(\"_api/Release/ForwardPressItem\", \"POST\", \"\", raw, token, false);\r\n case 2:\r\n return requestAPI(\"_api/Statement/ForwardPressItem\", \"POST\", \"\", raw, token, false);\r\n case 3:\r\n return requestAPI(\"_api/PositionPaper/ForwardPressItem\", \"POST\", \"\", raw, token, false);\r\n case 4:\r\n return requestAPI(\"_api/QA/ForwardPressItem\", \"POST\", \"\", raw, token, false);\r\n case 6:\r\n return requestAPI(\"_api/WebcastNotice/ForwardPressItem\", \"POST\", \"\", raw, token, false);\r\n case 7:\r\n return requestAPI(\"_api/AssignmentNotice/ForwardPressItem\", \"POST\", \"\", raw, token, false);\r\n }\r\n}\r\n\r\nexport async function getMailingShippingStatusItems(token, id) {\r\n const qstring = id ? `?pressId=${id}&$orderby=id desc` : '';\r\n return requestAPI(\"_api/Release/GetMailingShippingStatusItems\", \"GET\", qstring, null, token, false);\r\n}\r\n\r\nexport async function getMailingReportItems(token, id) {\r\n const qstring = id ? `?mailingShippingStatusId=${id}` : '';\r\n return requestAPI(\"_api/Release/GetMailingReportItems\", \"GET\", qstring, null, token, false);\r\n}\r\n\r\nexport async function uploadPressMedia(token, qstring, blob) {\r\n var form_data = new FormData();\r\n form_data.append(\"file\", blob);\r\n return requestAPI(\"_api/Release/UploadPressMedia?\", \"POST\", qstring, form_data, token, true);\r\n}\r\n\r\nexport async function addShippingStatusItem(token, body, type) {\r\n const raw = JSON.stringify(body);\r\n switch (type) {\r\n case 1:\r\n return requestAPI(\"_api/Release/AddShippingStatusItem\", \"POST\", \"\", raw, token, false);\r\n case 2:\r\n return requestAPI(\"_api/Statement/AddShippingStatusItem\", \"POST\", \"\", raw, token, false);\r\n case 3:\r\n return requestAPI(\"_api/PositionPaper/AddShippingStatusItem\", \"POST\", \"\", raw, token, false);\r\n case 4:\r\n return requestAPI(\"_api/QA/AddShippingStatusItem\", \"POST\", \"\", raw, token, false);\r\n case 6:\r\n return requestAPI(\"_api/WebcastNotice/AddShippingStatusItem\", \"POST\", \"\", raw, token, false);\r\n case 7:\r\n return requestAPI(\"_api/AssignmentNotice/AddShippingStatusItem\", \"POST\", \"\", raw, token, false);\r\n }\r\n}\r\n\r\nexport async function removeMedia(token, qstring, type) {\r\n qstring = `?pressTypeId=${type}&${qstring}`;\r\n switch (type) {\r\n case 1:\r\n return requestAPI(\"_api/Release/RemovePressMedia\", \"POST\", qstring, null, token, false);\r\n case 2:\r\n return requestAPI(\"_api/Statement/RemovePressMedia\", \"POST\", qstring, null, token, false);\r\n case 3:\r\n return requestAPI(\"_api/PositionPaper/RemovePressMedia\", \"POST\", qstring, null, token, false);\r\n case 4:\r\n return requestAPI(\"_api/QA/RemovePressMedia\", \"POST\", qstring, null, token, false);\r\n case 6:\r\n return requestAPI(\"_api/WebcastNotice/RemovePressMedia\", \"POST\", qstring, null, token, false);\r\n case 7:\r\n return requestAPI(\"_api/AssignmentNotice/RemovePressMedia\", \"POST\", qstring, null, token, false);\r\n }\r\n}\r\n","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { GlobalStateContext } from \"../general/GlobalState\";\r\nimport { Container, Row } from \"reactstrap\";\r\nimport { Buttons } from \"../utilities/Buttons\";\r\nimport { ReleasesList } from \"../releases/ReleasesList\";\r\nimport PermissionRedirect from \"../utilities/PermissionRedirect/PermissionRedirect\";\r\n\r\nlet userPermission;\r\n\r\nexport const Releases = () => {\r\n\r\n const { t } = useTranslation();\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [redirect, setRedirect] = React.useState(false);\r\n const [idRelease, setIdRelease] = React.useState(null);\r\n const [gridInstance, setGridInstance] = React.useState(null);\r\n\r\n\r\n //React.useEffect(() => {\r\n // async function load() {\r\n // let _pressItems = await getPressItems(globalState.accessToken, 1)\r\n // .then(response => { if (response.ok) { return response.json() } });\r\n\r\n // setReleasesItems(_pressItems);\r\n // console.log(_pressItems);\r\n // }\r\n // load();\r\n //}, [i18n.language]);\r\n\r\n React.useEffect(() => {\r\n let globalPermissions = globalState.permissions;\r\n userPermission = globalPermissions.filter((i) => i.accessArea === \"Releases\").map((i) => (i.permission));\r\n }, [globalState]);\r\n\r\n const _controls = {\r\n permit: userPermission ? userPermission : null,\r\n export: () => exportRelease(),\r\n import: \"\",\r\n new: () => setRedirect(true),\r\n back: \"\",\r\n };\r\n\r\n const editRelease = (info) => {\r\n setIdRelease(info.id);\r\n setRedirect(true);\r\n }\r\n\r\n const exportRelease = () => {\r\n if (gridInstance) {\r\n let lang = i18n.language;\r\n let gridInstanceExport = gridInstance;\r\n gridInstanceExport.dataSource.map(function (x) {\r\n x.data = new Date(x.data).toLocaleDateString(lang);\r\n return x;\r\n });\r\n gridInstanceExport.excelExport();\r\n }\r\n }\r\n\r\n\r\n return (\r\n <>\r\n {globalState.accessToken === null ? :\r\n redirect ? (\r\n idRelease === null ?\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

{t('Releases:title')}

\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","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from 'react-i18next';\r\nimport { GlobalStateContext } from '../general/GlobalState';\r\nimport { DialogComponent } from \"@syncfusion/ej2-react-popups\";\r\nimport { GridComponent, ColumnsDirective, ColumnDirective, Filter, Sort, ContextMenu, Page, Resize, Inject } from \"@syncfusion/ej2-react-grids\";\r\nimport './releases.css';\r\nimport { getMailingReportItems } from \"../../services/PressSVC\";\r\nimport { getReportMailingStatus } from \"../../services/SystemSVC\";\r\n\r\nlet grid;\r\nexport const ModalReleases = (props) => {\r\n\r\n const { mailingStatusSelected, setMailingStatusSelected } = props;\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [gridSource, setGridSource] = React.useState([]);\r\n const [reportMailingStatus, setReportMailingStatus] = React.useState(null);\r\n const { t } = useTranslation();\r\n\r\n const contextMenuItems = ['SortAscending', 'SortDescending', 'FirstPage', 'PrevPage', 'LastPage', 'NextPage'];\r\n\r\n React.useEffect(() => {\r\n if (reportMailingStatus) {\r\n grid.showSpinner();\r\n getMailingReportItems(globalState.accessToken, mailingStatusSelected).then(response => {\r\n if (response.ok) {\r\n response.json().then(result => {\r\n result.map(item => {\r\n const reportmailingStatusFiltered = reportMailingStatus.filter(rms => rms.id === item.idReportMailingStatus);\r\n if (reportmailingStatusFiltered.length) {\r\n item.statusPt = reportmailingStatusFiltered[0].nomePt;\r\n item.statusEn = reportmailingStatusFiltered[0].nomeEn;\r\n }\r\n })\r\n setGridSource(result);\r\n });\r\n }\r\n else\r\n grid.hideSpinner();\r\n })\r\n }\r\n }, [reportMailingStatus])\r\n\r\n React.useEffect(() => {\r\n if (grid) {\r\n grid.dataSource = gridSource;\r\n }\r\n }, [gridSource])\r\n\r\n const onGridCreated = () => {\r\n getReportMailingStatus(globalState.accessToken).then(response => {\r\n if (response.ok) {\r\n response.json().then(result => setReportMailingStatus(result));\r\n }\r\n else\r\n grid.hideSpinner();\r\n });\r\n }\r\n\r\n const statusTemplate = (args) => {\r\n return (\r\n \r\n {i18n.language === \"pt\" ? args.statusPt : args.statusEn}\r\n \r\n );\r\n }\r\n\r\n React.useEffect(() => {\r\n if (grid)\r\n grid.refresh();\r\n }, [i18n.language]);\r\n\r\n return (\r\n 0}\r\n showCloseIcon={true}\r\n beforeClose={() => setMailingStatusSelected(0)}\r\n locale={i18n.language}\r\n >\r\n {t(\"Press:reportMailing\")} {mailingStatusSelected}\r\n grid = gridComponent}\r\n dataSource={[]}\r\n contextMenuItems={contextMenuItems}\r\n locale={i18n.language}\r\n filterSettings={{ type: 'CheckBox' }}\r\n allowFiltering={true}\r\n allowPaging={true}\r\n pageSettings={{ pageSize: 7 }}\r\n allowSorting={true}\r\n locale={i18n.language}\r\n created={onGridCreated}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { useTranslation } from 'react-i18next';\r\nimport { GlobalStateContext } from '../general/GlobalState';\r\nimport { DialogComponent } from \"@syncfusion/ej2-react-popups\";\r\nimport { AccordionComponent, AccordionItemsDirective, AccordionItemDirective } from \"@syncfusion/ej2-react-navigations\";\r\n//import { Inject } from \"@syncfusion/ej2-react-dropdowns\";\r\nimport { GridComponent, ColumnsDirective, ColumnDirective, Filter, Sort, ContextMenu, Page, Resize, Inject } from \"@syncfusion/ej2-react-grids\";\r\nimport { Tooltip } from '@syncfusion/ej2-react-popups';\r\nimport { DataUtil } from \"@syncfusion/ej2-data\";\r\nimport * as signalR from '@microsoft/signalr'\r\nimport { ReleaseStateContext } from \"../releases/ReleaseState\";\r\nimport { getMailingShippingStatusItems } from \"../../services/PressSVC\";\r\nimport { getMailingStatus } from \"../../services/SystemSVC\";\r\nimport { ModalReleases } from \"../releases/ModalReleases\";\r\nimport './releases.css';\r\n\r\nlet grid;\r\nlet tooltip;\r\nexport const MailingStatus = ({ itemId }) => {\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [accordionStatus, setAccordionStatus] = React.useState(false);\r\n const [mailingStatus, setMailingStatus] = React.useState(null);\r\n const [gridSource, setGridSource] = React.useState(null);\r\n const [mailingStatusSelected, setMailingStatusSelected] = React.useState(0);\r\n const accordionRef = React.useRef(null);\r\n const mailingStatusRef = React.useRef(null);\r\n\r\n const { t } = useTranslation();\r\n const contextMenuItems = ['SortAscending', 'SortDescending', 'FirstPage', 'PrevPage', 'LastPage', 'NextPage'];\r\n\r\n React.useEffect(() => {\r\n\r\n getMailingStatus(globalState.accessToken).then(response => {\r\n if (response.ok) {\r\n response.json().then(result => {\r\n mailingStatusRef.current = result;\r\n setMailingStatus(result);\r\n });\r\n }\r\n });\r\n\r\n // const connection = new signalR.HubConnectionBuilder()\r\n // .withUrl(`${process.env.REACT_APP_AZFUNCTION_URL}/api/MailingStatus`)\r\n // .configureLogging(signalR.LogLevel.Information)\r\n // .withAutomaticReconnect()\r\n // .build();\r\n\r\n // connection.on('mailingStatus', mailingStatusReceiver);\r\n // connection.onclose(() => console.log('disconnected'));\r\n // connection.start().then(() => console.log('connected')).catch(console.error);\r\n\r\n // accordionRef.current.addItem({\r\n // expanded: true,\r\n // header: `
\r\n //
\r\n //

${t(\"Press:shippingStatus\")}

\r\n //
`,\r\n // content: contentStatus\r\n // });\r\n // accordionRef.current.removeItem(0)\r\n // accordionRef.current.select(0);\r\n\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n if (mailingStatus) {\r\n loadMailingShippingStatus();\r\n }\r\n }, [mailingStatus])\r\n\r\n React.useEffect(() => {\r\n if (gridSource) {\r\n grid.dataSource = gridSource;\r\n // const connection = new signalR.HubConnectionBuilder()\r\n // .withUrl(`${process.env.REACT_APP_AZFUNCTION_URL}/api/MailingStatus`)\r\n // .configureLogging(signalR.LogLevel.Information)\r\n // .withAutomaticReconnect()\r\n // .build();\r\n\r\n // connection.on('mailingStatus', mailingStatusReceiver);\r\n // connection.onclose(() => console.log('disconnected'));\r\n // connection.start().then(() => console.log('connected')).catch(console.error);\r\n\r\n // accordionRef.current.addItem({\r\n // expanded: true,\r\n // header: `
\r\n //
\r\n //

${t(\"Press:shippingStatus\")}

\r\n //
`,\r\n // content: contentStatus\r\n // });\r\n // accordionRef.current.removeItem(0)\r\n // accordionRef.current.select(0);\r\n }\r\n }, [gridSource]);\r\n\r\n const mailingStatusReceiver = mailingShippingStatusItem => {\r\n if (grid && grid.dataSource && grid.dataSource.length > 0) {\r\n grid.dataSource.map((item, index) => {\r\n if (item.id === mailingShippingStatusItem.IdMailingStatusEnvio && itemId ===mailingShippingStatusItem.IdImprensa) {\r\n const mailingStatusFiltered = mailingStatusRef.current.find(ms => ms.id === mailingShippingStatusItem.IdMailingStatus);\r\n const data = [...grid.dataSource];\r\n\r\n if (mailingShippingStatusItem.Sucesso)\r\n data[index].sucesso = mailingShippingStatusItem.Sucesso;\r\n if (mailingShippingStatusItem.Erro)\r\n data[index].erro = mailingShippingStatusItem.Erro;\r\n\r\n data[index].statusPt = mailingStatusFiltered.nomePt;\r\n data[index].statusEn = mailingStatusFiltered.nomeEn;\r\n setGridSource(data);\r\n } else if (itemId ===mailingShippingStatusItem.IdImprensa) {\r\n loadMailingShippingStatus();\r\n }\r\n })\r\n }\r\n }\r\n\r\n const loadMailingShippingStatus = () => {\r\n getMailingShippingStatusItems(globalState.accessToken, itemId).then(response => {\r\n if (response.ok && mailingStatusRef.current) {\r\n response.json().then(result => {\r\n result.map(item => {\r\n const mailingStatusFiltered = mailingStatusRef.current.find(ms => ms.id === item.idMailingStatus);\r\n if (mailingStatusFiltered) {\r\n item.statusPt = mailingStatusFiltered.nomePt;\r\n item.statusEn = mailingStatusFiltered.nomeEn;\r\n }\r\n })\r\n setGridSource(result);\r\n });\r\n }\r\n });\r\n }\r\n\r\n const onGridRowSelected = (e) => {\r\n setMailingStatusSelected(e.data.id);\r\n setTimeout(() => grid.clearSelection())\r\n }\r\n\r\n const getGroups = () => {\r\n var data = [];\r\n var flag = true;\r\n var lookup = {};\r\n const groups = grid.dataSource.map(value => value.grupos);\r\n\r\n groups.forEach((arr) => {\r\n arr.forEach((item) => {\r\n if (!(item.nome in lookup)) {\r\n data.push({ grupos: item.nome });\r\n lookup[item.nome] = true\r\n }\r\n })\r\n if (!arr.length && flag) {\r\n data.push({ \"\": true })\r\n }\r\n });\r\n return data;\r\n }\r\n\r\n const gridCreated = () => {\r\n grid.dataSource = gridSource;\r\n }\r\n\r\n const gridActionBegin = (args) => {\r\n if (args.requestType === 'filterbeforeopen' && args.columnName === 'grupos') {\r\n args.filterModel.options.dataSource = getGroups();\r\n }\r\n }\r\n\r\n DataUtil.fnOperators.equal = function (rowValues, filterValue, ignoreCase, ignoreAccent) {\r\n if (Array.isArray(rowValues)) {\r\n if (!filterValue) {\r\n return !rowValues.length;\r\n }\r\n return JSON.stringify(rowValues).includes(filterValue)\r\n } else {\r\n if (ignoreAccent) {\r\n rowValues = DataUtil.ignoreDiacritics(rowValues);\r\n filterValue = DataUtil.ignoreDiacritics(filterValue);\r\n }\r\n if (ignoreCase) {\r\n return DataUtil.toLowerCase(rowValues) === DataUtil.toLowerCase(filterValue);\r\n }\r\n return rowValues === filterValue;\r\n }\r\n };\r\n\r\n DataUtil.fnOperators.notequal = function (rowValues, filterValue, ignoreCase, ignoreAccent) {\r\n if (Array.isArray(rowValues)) {\r\n if (!filterValue)\r\n return rowValues.length;\r\n else if (JSON.stringify(rowValues).includes(filterValue))\r\n return rowValues.length > 1;\r\n\r\n return !rowValues.length || !JSON.stringify(rowValues).includes(filterValue);\r\n\r\n } else {\r\n if (ignoreAccent) {\r\n rowValues = DataUtil.ignoreDiacritics(rowValues);\r\n filterValue = DataUtil.ignoreDiacritics(filterValue);\r\n }\r\n return !DataUtil.fnOperators.equal(rowValues, filterValue, ignoreCase);\r\n }\r\n };\r\n\r\n const renderCellGroup = (args) => {\r\n if (args.column.id === \"grupos\") {\r\n let content = \"\";\r\n\r\n args.data[\"grupos\"].map((item, i) => {\r\n content += item.nome;\r\n if (i !== args.data[\"grupos\"].length - 1)\r\n content += \", \";\r\n });\r\n\r\n if (content) {\r\n tooltip = new Tooltip({\r\n content: content\r\n }, args.cell);\r\n }\r\n return args.cell;\r\n }\r\n }\r\n\r\n const groupTemplate = (e) => {\r\n return (\r\n e.grupos.map(item => (\r\n {item.nome}\r\n ))\r\n );\r\n }\r\n\r\n const successTemplate = (e) => {\r\n return (\r\n {e.sucesso}\r\n );\r\n }\r\n\r\n const erroTemplate = (e) => {\r\n return (\r\n {e.erro}\r\n );\r\n }\r\n React.useEffect(() => {\r\n if (grid) {\r\n grid.refresh();\r\n }\r\n\r\n if (accordionRef) {\r\n accordionRef.current.addItem({\r\n expanded: true,\r\n header: `
\r\n
\r\n

${t(\"Press:shippingStatus\")}

\r\n
`,\r\n content: contentStatus\r\n });\r\n }\r\n\r\n }, [i18n.language]);\r\n\r\n const contentStatus = React.useCallback(() => {\r\n return (\r\n <>\r\n
\r\n grid = gridComponent}\r\n contextMenuItems={contextMenuItems}\r\n dataSource={gridSource}\r\n filterSettings={{ type: 'CheckBox' }}\r\n allowPaging={true}\r\n allowSorting={true}\r\n locale={i18n.language}\r\n allowFiltering={true}\r\n allowResizing={true}\r\n pageSettings={{ pageSize: 4 }}\r\n actionBegin={gridActionBegin}\r\n queryCellInfo={renderCellGroup}\r\n rowSelected={onGridRowSelected}\r\n created={gridCreated}\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 }, [gridSource]);\r\n\r\n const CustomAccordion = React.useCallback(() => (\r\n \r\n \r\n ), [i18n.language]);\r\n\r\n return (\r\n <>\r\n \r\n\r\n {mailingStatusSelected > 0 &&\r\n \r\n }\r\n \r\n )\r\n}","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { GlobalStateContext } from \"../general/GlobalState\";\r\nimport { createSpinner, showSpinner, setSpinner, hideSpinner } from \"@syncfusion/ej2-react-popups\";\r\nimport { GridComponent, ColumnsDirective, ColumnDirective, ForeignKey, Filter, Inject, Sort, ContextMenu, Page, Resize, Edit, Toolbar, ExcelExport } from '@syncfusion/ej2-react-grids';\r\nimport { AutoCompleteComponent, DropDownListComponent } from '@syncfusion/ej2-react-dropdowns';\r\nimport { TextBoxComponent } from '@syncfusion/ej2-react-inputs';\r\nimport { ButtonComponent } from '@syncfusion/ej2-react-buttons';\r\nimport { DateRangePickerComponent } from \"@syncfusion/ej2-react-calendars\";\r\nimport { getAllBusinessAreas, getCountries, getRegional } from \"../../services/SystemSVC\";\r\nimport { getPressItems, getPressItemsFiltered } from \"../../services/PressSVC\";\r\nimport '../releases/releases.css';\r\n\r\nexport const ReleasesList = (props) => {\r\n // debugger;\r\n\r\n const idTipo = 1;\r\n\r\n const { t } = useTranslation();\r\n const { refRelease, gridInstance } = props;\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [isVisible, setIsVisible] = React.useState(true);\r\n const [fillUsersData, setFillUsersData] = React.useState([]);\r\n const [fillBusinessAreaData, setFillBusinessAreaData] = React.useState([]);\r\n const [fillCountriesData, setFillCountriesData] = React.useState([]);\r\n const [fillRegionalData, setFillRegionalData] = React.useState([]);\r\n const [releasesItems, setReleasesItems] = React.useState(null);\r\n const [allReleases, setAllReleases] = React.useState(null);\r\n const [filteredReleasesItems, setFilteredReleasesItems] = React.useState({ idTipo: idTipo, idPais: 6 });\r\n const [loadingReleases, setLoadingReleases] = React.useState(true);\r\n const [persistence, setPersistence] = React.useState(false);\r\n // const statusValue = (\r\n // filteredReleasesItems?.bloqueado === null\r\n // ? i18n.language ==='pt' ? 'Todos' : 'All'\r\n // : filteredReleasesItems.bloqueado === false\r\n // ? i18n.language ==='pt' ? 'Bloqueado' : 'Blocked'\r\n // : i18n.language ==='pt' ? 'Terminado' : 'Finished'\r\n // );\r\n\r\n const ddlRegionalRef = React.useRef();\r\n\r\n const changePosition = (arr, from, to) => {\r\n arr.splice(to, 0, arr.splice(from, 1)[0]);\r\n return arr;\r\n }\r\n\r\n React.useEffect(() => {\r\n if (releasesItems && document.getElementById('loadRelease')) {\r\n hideSpinner(document.getElementById('loadRelease'));\r\n setLoadingReleases(false);\r\n }\r\n }, [releasesItems]);\r\n\r\n React.useEffect(() => {\r\n if (loadingReleases && document.getElementById('loadRelease')) {\r\n createSpinner({ target: document.getElementById('loadRelease') })\r\n showSpinner(document.getElementById('loadRelease'));\r\n setSpinner({ type: 'Bootstrap' });\r\n }\r\n }, [loadingReleases]);\r\n\r\n React.useEffect(() => {\r\n async function load() {\r\n let _businessAreas = await getAllBusinessAreas(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n let _countries = await getCountries(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n let _regional = await getRegional(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n\r\n let filterQstring;\r\n\r\n if (typeof globalState.regional ===\"array\") {\r\n filterQstring = globalState.regional && globalState.regional.length > 0 ? `?$filter=idRegional eq ${globalState.regional.id}` : \"\";\r\n } else {\r\n filterQstring = globalState.regional ? `?$filter=idRegional eq ${globalState.regional.id}` : \"\";\r\n }\r\n\r\n let _pressItems = await getPressItems(globalState.accessToken, idTipo, filterQstring)\r\n .then(response => { if (response.ok) { return response.json() } });\r\n\r\n if (_pressItems) {\r\n _pressItems = _pressItems.filter(item => {\r\n item.bloqueado = item.bloqueado ? i18n.language ===\"pt\" ? \"Bloqueado\" : \"Blocked\" : i18n.language ===\"pt\" ? \"Terminado\" : \"Finished\";\r\n return item;\r\n });\r\n setReleasesItems(_pressItems);\r\n setAllReleases(_pressItems);\r\n }\r\n\r\n let oldUsers = _pressItems?.map(item => {\r\n return { nome: item.autores }\r\n });\r\n\r\n const set = new Set();\r\n const newUsers = oldUsers.filter(item => {\r\n const duplicate = set.has(item?.nome);\r\n set.add(item?.nome);\r\n\r\n return !duplicate;\r\n })\r\n\r\n setFillUsersData(newUsers);\r\n\r\n const newBusinessAreas = [..._businessAreas, { id: - 1, nomeEn: \"All\", nomePt: \"Todos\" }]\r\n const countries = [..._countries, { id: - 1, nomeEn: \"All\", nomePt: \"Todos\" }]\r\n const newRegional = [..._regional, { id: - 1, nomeEn: \"All\", nomePt: \"Todos\" }]\r\n\r\n let newCountries = countries;\r\n newCountries = changePosition(countries, 5, 0)\r\n\r\n setFillBusinessAreaData(newBusinessAreas);\r\n setFillCountriesData(newCountries);\r\n setFillRegionalData(newRegional);\r\n }\r\n load();\r\n }, [i18n.language]);\r\n\r\n React.useEffect(() => {\r\n if (globalState.regional && ddlRegionalRef && ddlRegionalRef.current)\r\n ddlRegionalRef.current.value = globalState.regional.id;\r\n else {\r\n setIsVisible(false);\r\n }\r\n }, [fillRegionalData]);\r\n\r\n const statusRelease = [\r\n {\r\n text: i18n.language ==='pt' ? 'Bloqueado' : 'Blocked',\r\n value: true\r\n }, {\r\n text: i18n.language ==='pt' ? 'Terminado' : 'Finished',\r\n value: false\r\n }, {\r\n text: i18n.language ==='pt' ? 'Todos' : 'All',\r\n value: null\r\n }\r\n ]\r\n\r\n React.useEffect(() => {\r\n if (gridInstance)\r\n gridInstance.refresh();\r\n }, [i18n.language]);\r\n\r\n const filteredReleases = async () => {\r\n if (filteredReleasesItems) {\r\n let _filteredReleases = await getPressItemsFiltered(globalState.accessToken, filteredReleasesItems, idTipo)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n })\r\n\r\n _filteredReleases = _filteredReleases?.filter(item => {\r\n item.bloqueado = item.bloqueado ? i18n.language ===\"pt\" ? \"Bloqueado\" : \"Blocked\" : i18n.language ===\"pt\" ? \"Terminado\" : \"Finished\";\r\n return item;\r\n });\r\n\r\n setReleasesItems(_filteredReleases);\r\n setIsVisible(false);\r\n } else {\r\n setReleasesItems(allReleases);\r\n }\r\n }\r\n\r\n let releaseDate = (args) => {\r\n const dateRelease = new Date(args.data);\r\n return (\r\n {dateRelease.toLocaleDateString(i18n.language)}\r\n )\r\n }\r\n\r\n let releaseTitle = (args) => {\r\n return (\r\n props.edit(args)}>{args.titulo}\r\n );\r\n }\r\n\r\n let releaseStatus = (args) => {\r\n if (args.bloqueado === 'Bloqueado') {\r\n return ({i18n.language ==='pt' ? 'Bloqueado' : 'Blocked'})\r\n } else {\r\n return ({i18n.language ==='pt' ? 'Terminado' : 'Finished'})\r\n }\r\n }\r\n\r\n const handleChangeRegional = (e) => {\r\n const { value } = e;\r\n setFilteredReleasesItems(\r\n filteredReleasesItems => ({\r\n ...filteredReleasesItems,\r\n idRegional: value\r\n })\r\n )\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n \r\n

{t('Releases:search_text')}

\r\n
\r\n
\r\n
\r\n setFilteredReleasesItems(\r\n filteredReleasesItems => ({\r\n ...filteredReleasesItems,\r\n conteudo: e.value\r\n })\r\n )}\r\n />\r\n
\r\n
\r\n
\r\n {!isVisible &&\r\n
\r\n setIsVisible(!isVisible)}>\r\n \r\n {t('Releases:filters')}\r\n \r\n
\r\n }\r\n {isVisible &&\r\n
\r\n setIsVisible(!isVisible)}>\r\n \r\n {t('Releases:filters')}\r\n \r\n
\r\n }\r\n
\r\n filteredReleases()}\r\n >\r\n {t('Releases:search')}\r\n \r\n
\r\n
\r\n
\r\n {isVisible &&\r\n
\r\n setPersistence(true)}\r\n change={(e) => setFilteredReleasesItems(\r\n filteredReleasesItems => ({\r\n ...filteredReleasesItems,\r\n dataInicio: e.startDate && e.startDate.toISOString().split('.')[0],\r\n dataFim: e.endDate && e.endDate.toISOString().split('.')[0]\r\n })\r\n )}\r\n />\r\n setFilteredReleasesItems(\r\n filteredReleasesItems => ({\r\n ...filteredReleasesItems,\r\n autor: e.value\r\n })\r\n )}\r\n />\r\n setFilteredReleasesItems(\r\n filteredReleasesItems => ({\r\n ...filteredReleasesItems,\r\n idAreaNegocio: e.value\r\n })\r\n )}\r\n />\r\n setFilteredReleasesItems(\r\n filteredReleasesItems => ({\r\n ...filteredReleasesItems,\r\n idPais: e.value\r\n })\r\n )}\r\n />\r\n {fillRegionalData.length &&\r\n ddlRegionalRef.current = ddlComponent}\r\n cssClass=\"e-filled\"\r\n placeholder={t('Releases:regional')}\r\n dataSource={fillRegionalData}\r\n showClearButton\r\n fields={{ text: (i18n.language ===\"pt\") ? 'nomePt' : 'nomeEn', value: 'id' }}\r\n value={filteredReleasesItems ? filteredReleasesItems.idRegional : globalState.regional ? globalState.regional.id : ''}\r\n locale={i18n.language}\r\n change={handleChangeRegional}\r\n />\r\n }\r\n {/* {console.log('statusValue', statusValue)} */}\r\n setFilteredReleasesItems(\r\n filteredReleasesItems => ({\r\n ...filteredReleasesItems,\r\n bloqueado: e.value\r\n })\r\n )}\r\n />\r\n
\r\n }\r\n
\r\n {loadingReleases ?
:\r\n
\r\n {releasesItems &&\r\n refRelease(grid)}\r\n locale={i18n.language}>\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","import * as React from 'react';\r\n\r\nconst initialState = {\r\n releaseItem: null,\r\n urlItemId: null,\r\n changeInfo: null\r\n};\r\n\r\nconst ReleaseStateContext = React.createContext(initialState);\r\n\r\nconst ReleaseStateProvider = ({ children }) => {\r\n const [releaseState, setReleaseState] = React.useState(initialState);\r\n const [groupsSelected, setGroupsSelected] = React.useState([]);\r\n const [groupsFilter, setGroupsFilter] = React.useState(null);\r\n const [generalGroupsSelected, setGeneralGroupsSelected] = React.useState([]);\r\n const [generalGroupsFilter, setGeneralGroupsFilter] = React.useState(null);\r\n const [showSendContent, setShowSendContent] = React.useState(false);\r\n const [redirectId, setRedirectId] = React.useState(false);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport { ReleaseStateContext, ReleaseStateProvider };","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from 'react-i18next';\r\nimport { GlobalStateContext } from '../general/GlobalState';\r\nimport { TextBoxComponent, MaskedTextBoxComponent } from '@syncfusion/ej2-react-inputs';\r\nimport { DatePickerComponent } from \"@syncfusion/ej2-react-calendars\";\r\nimport { ComboBoxComponent } from \"@syncfusion/ej2-react-dropdowns\";\r\nimport { ButtonComponent } from \"@syncfusion/ej2-react-buttons\";\r\nimport './utilities.css';\r\n\r\nexport const Export = (props) => {\r\n\r\n const { controls } = props;\r\n const { t } = useTranslation();\r\n\r\n return (\r\n (controls.pdf || controls.doc || controls.excel ) &&\r\n
\r\n
\r\n
\r\n

{t('Export:title')}

\r\n
\r\n
\r\n {controls.pdf &&\r\n \r\n
\r\n {t('Export:generate_PDF')}\r\n }\r\n {controls.doc &&\r\n \r\n
\r\n {t('Export:generate_Doc')}\r\n }\r\n {controls.excel &&\r\n \r\n
\r\n {t('Export:generate_Excel')}\r\n }\r\n
\r\n
\r\n\r\n )\r\n}\r\n","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from 'react-i18next';\r\nimport { GlobalStateContext } from '../general/GlobalState';\r\nimport { TextBoxComponent, MaskedTextBoxComponent } from '@syncfusion/ej2-react-inputs';\r\nimport { DatePickerComponent } from \"@syncfusion/ej2-react-calendars\";\r\nimport { ComboBoxComponent } from \"@syncfusion/ej2-react-dropdowns\";\r\nimport { ButtonComponent } from \"@syncfusion/ej2-react-buttons\";\r\nimport './releases.css';\r\n\r\nexport const ChangeHistory = (props) => {\r\n\r\n const { content } = props;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n

Histórico de Alterações

\r\n
\r\n
\r\n
\r\n {content && content.map((item, index) => (\r\n
\r\n
\r\n {item.usuario}\r\n {(new Date(item.data)).toLocaleDateString(i18n.language)} {(new Date(item.data)).toLocaleTimeString(i18n.language, { hour12: false })}\r\n
\r\n
\r\n {i18n.language ===\"pt\" ? item.tipoAcao.nomePt : item.tipoAcao.nomeEn}\r\n
\r\n
\r\n )).reverse()}\r\n
\r\n
\r\n
\r\n )\r\n}","import * as React from 'react';\r\nimport { GlobalStateContext } from \"../../general/GlobalState\";\r\n\r\n\r\nconst MailingContactsContext = React.createContext();\r\n\r\nconst MailingContactsProvider = ({ children }) => {\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [mediaTypes, setMediaTypes] = React.useState(null);\r\n const [countries, setCountries] = React.useState(null);\r\n const [states, setStates] = React.useState(null);\r\n const [cities, setCities] = React.useState(null);\r\n const [item, setItem] = React.useState(null);\r\n const [groupsSelected, setGroupsSelected] = React.useState([]);\r\n const [contactListItems, setContactListItems] = React.useState(null);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport { MailingContactsContext, MailingContactsProvider };","import { requestAPI } from '../components/utilities/Utils';\r\n\r\nexport async function getMailingContactItems(token, qstring) {\r\n return requestAPI(\"_api/MailingContact/GetMailingContactItems\", \"GET\", qstring, null, token, false);\r\n}\r\n\r\nexport async function getMailingContactItem(token, id) {\r\n const qstring = `?mailingContactId=${id}`;\r\n return requestAPI(\"_api/MailingContact/GetMailingContactItem\", \"GET\", qstring, null, token, false);\r\n}\r\n\r\nexport async function getImportMailingContactsTemplate(token) {\r\n const qstring = `?token=${token}`;\r\n return requestAPI(\"_api/MailingContact/GetImportMailingContactsTemplate\", \"GET\", qstring, null, token, false);\r\n}\r\n\r\nexport async function addOrUpdateContactItem(token, body) {\r\n const raw = JSON.stringify(body);\r\n const endPointURL = body.id ? \"_api/MailingContact/UpdateMailingContactItem\" : \"_api/MailingContact/AddMailingContactItem\"\r\n return requestAPI(endPointURL, \"POST\", \"\", raw, token, false);\r\n}\r\n\r\nexport async function deleteMailingContact(token, id) {\r\n const qstring = `?mailingContactId=${id}`;\r\n return requestAPI(\"_api/MailingContact/DeleteMailingContactItem\", \"POST\", qstring, null, token, false);\r\n}\r\n\r\nexport async function deleteMailingContactPhoto(token, id) {\r\n const qstring = `?mailingContactId=${id}`;\r\n return requestAPI(\"_api/MailingContact/DeleteMailingContactPhoto\", \"POST\", qstring, null, token, false);\r\n}\r\n\r\nexport async function importMailingContacts(token, file) {\r\n var formData = new FormData();\r\n formData.append(\"importMailingContactsFile\", file);\r\n return requestAPI(\"_api/MailingContact/ImportMailingContacts\", \"POST\", \"\", formData, token, true);\r\n}\r\n\r\nexport function getMailingContactPhoto(url, callback) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.onreadystatechange = function () {\r\n if (xhr.readyState ===4) {\r\n callback(this.response)\r\n }\r\n }\r\n xhr.open('GET', url);\r\n xhr.responseType = 'blob';\r\n xhr.send();\r\n}\r\n\r\nexport async function getMailingGroupItems(token, qstring = \"\") {\r\n return requestAPI(\"_api/MailingGroup/GetMailingGroupItems\", \"GET\", qstring, null, token, false);\r\n}\r\n\r\nexport async function getMailingGroupItem(token, id) {\r\n const qstring = `?mailingGroupId=${id}`;\r\n return requestAPI(\"_api/MailingGroup/GetMailingGroupItem\", \"GET\", qstring, null, token, false);\r\n}\r\n\r\nexport async function addOrUpdateGroupItem(token, body) {\r\n const raw = JSON.stringify(body);\r\n const endPointURL = body.id ? \"_api/MailingGroup/UpdateMailingGroupItem\" : \"_api/MailingGroup/AddMailingGroupItem\"\r\n return requestAPI(endPointURL, \"POST\", \"\", raw, token, false);\r\n}\r\n\r\nexport async function deleteMailingGroupItem(token, id) {\r\n const qstring = `?mailingGroupId=${id}`;\r\n return requestAPI(\"_api/MailingGroup/DeleteMailingGroupItem\", \"POST\", qstring, null, token, false);\r\n}\r\n\r\nexport async function exportMailingGroupContacts(token, id, language) {\r\n const qstring = `?mailingGroupId=${id}&language=${language}`;\r\n return requestAPI(\"_api/MailingGroup/ExportMailingGroupContacts\", \"GET\", qstring, null, token, false);\r\n}\r\n","import { requestAPI } from '../components/utilities/Utils';\r\n\r\nexport async function getMailingContactItems(token, qString) {\r\n return requestAPI(\"_api/MailingContactGeneral/GetMailingContactItems\", \"GET\", qString, null, token, false);\r\n}\r\n\r\nexport async function getMailingContactItem(token, id) {\r\n const qstring = `?mailingContactId=${id}`;\r\n return requestAPI(\"_api/MailingContactGeneral/GetMailingContactItem\", \"GET\", qstring, null, token, false);\r\n}\r\n\r\nexport async function getImportMailingContactsTemplate(token) {\r\n const qstring = `?token=${token}`;\r\n return requestAPI(\"_api/MailingContactGeneral/GetImportMailingContactsTemplate\", \"GET\", qstring, null, token, false);\r\n}\r\n\r\nexport async function addOrUpdateContactItem(token, body) {\r\n const raw = JSON.stringify(body);\r\n const endPointURL = body.id ? \"_api/MailingContactGeneral/UpdateMailingContactItem\" : \"_api/MailingContactGeneral/AddMailingContactItem\"\r\n return requestAPI(endPointURL, \"POST\", \"\", raw, token, false);\r\n}\r\n\r\nexport async function deleteMailingContact(token, id) {\r\n const qstring = `?mailingContactId=${id}`;\r\n return requestAPI(\"_api/MailingContactGeneral/DeleteMailingContactItem\", \"POST\", qstring, null, token, false);\r\n}\r\n\r\nexport async function deleteMailingContactPhoto(token, id) {\r\n const qstring = `?mailingContactId=${id}`;\r\n return requestAPI(\"_api/MailingContactGeneral/DeleteMailingContactPhoto\", \"POST\", qstring, null, token, false);\r\n}\r\n\r\nexport async function importMailingContacts(token, file) {\r\n var formData = new FormData();\r\n formData.append(\"importMailingContactsFile\", file);\r\n return requestAPI(\"_api/MailingContactGeneral/ImportMailingContacts\", \"POST\", \"\", formData, token, true);\r\n}\r\n\r\nexport function getMailingContactPhoto(url, callback) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.onreadystatechange = function () {\r\n if (xhr.readyState ===4) {\r\n callback(this.response)\r\n }\r\n }\r\n xhr.open('GET', url);\r\n xhr.responseType = 'blob';\r\n xhr.send();\r\n}\r\n\r\nexport async function getMailingGroupItemsGeneral(token, qstring = \"\") {\r\n return requestAPI(\"_api/MailingGroupGeneral/GetMailingGroupItems\", \"GET\", qstring, null, token, false);\r\n}\r\n\r\nexport async function getMailingGroupItem(token, id) {\r\n const qstring = `?mailingGroupId=${id}`;\r\n return requestAPI(\"_api/MailingGroupGeneral/GetMailingGroupItem\", \"GET\", qstring, null, token, false);\r\n}\r\n\r\nexport async function addOrUpdateGroupItem(token, body) {\r\n const raw = JSON.stringify(body);\r\n const endPointURL = body.id ? \"_api/MailingGroupGeneral/UpdateMailingGroupItem\" : \"_api/MailingGroupGeneral/AddMailingGroupItem\"\r\n return requestAPI(endPointURL, \"POST\", \"\", raw, token, false);\r\n}\r\n\r\nexport async function deleteMailingGroupItem(token, id) {\r\n const qstring = `?mailingGroupId=${id}`;\r\n return requestAPI(\"_api/MailingGroupGeneral/DeleteMailingGroupItem\", \"POST\", qstring, null, token, false);\r\n}\r\n\r\nexport async function exportMailingGroupContacts(token, id, language) {\r\n const qstring = `?mailingGroupId=${id}&language=${language}`;\r\n return requestAPI(\"_api/MailingGroupGeneral/ExportMailingGroupContacts\", \"GET\", qstring, null, token, false);\r\n}","//#region IMPORTS\r\nimport * as React from \"react\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { useForm } from \"react-hook-form\";\r\n\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nimport { GlobalStateContext } from \"../general/GlobalState\";\r\n\r\nimport { L10n } from \"@syncfusion/ej2-base\";\r\nimport { UploaderComponent } from \"@syncfusion/ej2-react-inputs\";\r\nimport { createSpinner, showSpinner, setSpinner, hideSpinner, DialogComponent } from \"@syncfusion/ej2-react-popups\";\r\nimport { ButtonComponent, CheckBoxComponent } from \"@syncfusion/ej2-react-buttons\";\r\nimport { DropDownListComponent } from \"@syncfusion/ej2-react-dropdowns\";\r\nimport { TextBoxComponent } from \"@syncfusion/ej2-react-inputs\";\r\nimport { DatePickerComponent } from \"@syncfusion/ej2-react-calendars\";\r\nimport { DropDownButtonComponent } from \"@syncfusion/ej2-react-splitbuttons\";\r\nimport { SidebarComponent } from \"@syncfusion/ej2-react-navigations\";\r\nimport {\r\n RichTextEditorComponent,\r\n HtmlEditor,\r\n Inject,\r\n Image,\r\n Link,\r\n Toolbar,\r\n QuickToolbar,\r\n} from \"@syncfusion/ej2-react-richtexteditor\";\r\nimport {\r\n GridComponent,\r\n ColumnsDirective,\r\n ColumnDirective,\r\n Filter,\r\n Sort,\r\n ContextMenu,\r\n Page,\r\n Resize,\r\n} from \"@syncfusion/ej2-react-grids\";\r\n\r\nimport {\r\n getReleaseDefault,\r\n richTextDefault,\r\n getReleaseAttachmentsHeader,\r\n getImagesTitle,\r\n getImagesTitleString,\r\n} from \"../releases/Default\";\r\nimport { ReleaseStateContext } from \"../releases/ReleaseState\";\r\nimport \"../releases/releases.css\";\r\n\r\nimport { getCountries, getBusinessAreas, getRegional } from \"../../services/SystemSVC\";\r\nimport { users, getMyProfile } from \"../../services/UsersSVC\";\r\nimport { getSignatureItemByRegion } from \"../../services/SignatureSVC\";\r\nimport { uploadPressMedia, removeMedia, addPressItem, updatePressItem } from \"../../services/PressSVC\";\r\n\r\nimport {\r\n PressBoilerPlatePT,\r\n PressBoilerPlateEN,\r\n PressFooterPT,\r\n PressFooterEN,\r\n UploadIcon\r\n} from \"../utilities/Constants\";\r\n\r\nimport { clearAttachmentsArea, getPressMediaTemplate, getPressVideoTemplate, getYoutubeVideoTemplate, mountSignature, youtube_parser } from '../../helpers/EmailCreator'\r\nimport { convertDateToUTC, elementContainsSelection, getRelativeFilePath, isOrContainsNode, langName, restoreSelectionDocument } from '../../helpers/Functions'\r\n\r\n//#endregion\r\n\r\nlet userPermission;\r\n\r\nexport const PressForm = (props) => {\r\n //#region GLOBAL FORM STATE AND HELPERS\r\n\r\n const {\r\n content,\r\n idType,\r\n idAccessArea,\r\n itemExists,\r\n endPointUrl,\r\n storageUrl,\r\n listItemsUrl,\r\n } = props;\r\n\r\n const { t } = useTranslation();\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const { releaseState, setReleaseState, setRedirectId, redirectId } = React.useContext(ReleaseStateContext);\r\n\r\n const [redirect, setRedirect] = React.useState(false);\r\n const [editFirstLoad, setEditFirstLoad] = React.useState(true);\r\n const [loading, setLoading] = React.useState(true);\r\n const [activeUsers, setActiveUsers] = React.useState([]);\r\n const [currentUser, setCurrentUser] = React.useState({});\r\n\r\n //#endregion\r\n\r\n //#region FILE UPLOAD STATE\r\n const [videoSrc, setVideoSrc] = React.useState();\r\n const [showThumb, setShowThumb] = React.useState(false);\r\n const [percentSize, setPercentSize] = React.useState(1);\r\n const [fileParams, setFileParams] = React.useState(\"\");\r\n const [filePath, setFilePath] = React.useState(\"\");\r\n //#endregion\r\n\r\n //#region FORM FIELD STATE AND DATA\r\n const [blocked, setBlocked] = React.useState(false);\r\n const [openModal, setOpenModal] = React.useState(false);\r\n const [openModalConfirm, setOpenModalConfirm] = React.useState(false);\r\n const [areaNegocio, setAreaNegocio] = React.useState(0);\r\n const [idPais, setPais] = React.useState(0);\r\n const [idRegional, setRegional] = React.useState(0);\r\n const [language, setLanguage] = React.useState(1);\r\n const [title, setTitle] = React.useState(\"\");\r\n const [subTitle, setSubTitle] = React.useState(\"\");\r\n const [approver, setApprover] = React.useState(\"\");\r\n const [authors, setAuthors] = React.useState(\"\");\r\n const [mediaGuid, setMediaGuid] = React.useState(\"\");\r\n const [attachmentTitleCount, setAttachmentTitleCount] = React.useState('');\r\n const [attachmentSubTitleCount, setAttachmentSubTitleCount] = React.useState('');\r\n const [attachmentAudioCount, setAttachmentAudioCount] = React.useState('');\r\n const [fillBusinessAreaData, setFillBusinessAreaData] = React.useState([]);\r\n const [fillCountriesData, setFillCountriesData] = React.useState([]);\r\n const [fillRegionalData, setFillRegionalData] = React.useState([]);\r\n const [itemId, setItemId] = React.useState(null);\r\n const [signature, setSignature] = React.useState(null);\r\n const [rteContent, setRteContent] = React.useState(null);\r\n const [tableSelection, setTableSelection] = React.useState(null);\r\n const [date, setDate] = React.useState(new Date());\r\n const [isArgs, setIsArgs] = React.useState('');\r\n const [typeFileVideo, setTypeFileVideo] = React.useState('');\r\n\r\n const obj = {\r\n mode: \"onSubmit\",\r\n reValidateMode: \"onChange\",\r\n defaultValues: {},\r\n resolver: undefined,\r\n context: undefined,\r\n criteriaMode: \"firstError\",\r\n shouldFocusError: true,\r\n shouldUnregister: true,\r\n };\r\n const { register, errors, handleSubmit } = useForm(obj);\r\n //#endregion\r\n\r\n //#region VARIABLES AND OBJECTS\r\n\r\n let txtAttachmentTitleRef = React.useRef(null);\r\n let filePathUploaded = React.useRef(null);\r\n let dialogObjYtb = React.useRef(null);\r\n let txtSubtitleRef = React.useRef(null);\r\n let txtApproverRef = React.useRef(null);\r\n let datePickerRef = React.useRef(null);\r\n let txtAuthorRef = React.useRef(null);\r\n let txtAudioRef = React.useRef(null);\r\n let gridMediaRef = React.useRef(null);\r\n let formEditable = React.useRef((idType ===1 || idType ===3) || releaseState.mailingStatus.length === 0);\r\n let txtTitleRef = React.useRef(null);\r\n let sidebarRef = React.useRef(null);\r\n let dialogObj = React.useRef(null);\r\n let uploadObj = React.useRef(null);\r\n let rteObj = React.useRef(null);\r\n let action = React.useRef(null);\r\n\r\n const releaseIdioma = [\r\n {\r\n text: t(\"Generic:pt\"),\r\n value: 1,\r\n },\r\n {\r\n text: t(\"Generic:en\"),\r\n value: 2,\r\n },\r\n ];\r\n\r\n const format = {\r\n types: [\r\n {\r\n text: t(\"Press:format_p\"),\r\n value: \"p\",\r\n cssClass: \"e-paragraph\",\r\n },\r\n {\r\n text: t(\"Press:format_pre\"),\r\n value: \"pre\",\r\n cssClass: \"e-code\",\r\n },\r\n {\r\n text: t(\"Press:format_blockquote\"),\r\n value: \"blockquote\",\r\n cssClass: \"e-quote\",\r\n },\r\n {\r\n text: t(\"Press:format_h1\"),\r\n value: \"h1\",\r\n cssClass: \"e-h1\",\r\n },\r\n {\r\n text: t(\"Press:format_h2\"),\r\n value: \"h2\",\r\n cssClass: \"e-h2\",\r\n },\r\n {\r\n text: t(\"Press:format_h3\"),\r\n value: \"h3\",\r\n cssClass: \"e-h3\",\r\n },\r\n {\r\n text: t(\"Press:format_h4\"),\r\n value: \"h4\",\r\n cssClass: \"e-h4\",\r\n },\r\n {\r\n text: t(\"Press:format_h5\"),\r\n value: \"h5\",\r\n cssClass: \"e-h5\",\r\n },\r\n {\r\n text: t(\"Press:format_h6\"),\r\n value: \"h6\",\r\n cssClass: \"e-h6\",\r\n },\r\n ],\r\n };\r\n\r\n const itemsVale = [\r\n { key: \"BoPla\", text: \"Boiler Plate\" },\r\n { key: \"Vid\", text: t(\"Release:video\") },\r\n { key: \"Aud\", text: t(\"Release:audio\") },\r\n { key: \"Img\", text: t(\"Release:image\") },\r\n { key: \"Anx\", text: t(\"Release:attachment\") },\r\n { key: \"Ger\", text: t(\"Release:manageMedia\") },\r\n { key: \"Ytb\", text: t(\"Press:youtube_video\") },\r\n ];\r\n\r\n const formatOptions = {\r\n default: \"Paragraph\",\r\n width: \"65px\",\r\n types: [\r\n {\r\n text: \"Paragraph\",\r\n value: \"P\",\r\n cssClass: \"e-paragraph\",\r\n command: \"Formats\",\r\n subCommand: \"P\",\r\n },\r\n {\r\n text: \"Code\",\r\n value: \"Pre\",\r\n cssClass: \"e-code\",\r\n command: \"Formats\",\r\n subCommand: \"Pre\",\r\n },\r\n {\r\n text: \"Heading 1\",\r\n value: \"H1\",\r\n cssClass: \"e-h1\",\r\n command: \"Formats\",\r\n subCommand: \"H1\",\r\n },\r\n {\r\n text: \"Heading 2\",\r\n value: \"H2\",\r\n cssClass: \"e-h2\",\r\n command: \"Formats\",\r\n subCommand: \"H2\",\r\n },\r\n {\r\n text: \"Heading 3\",\r\n value: \"H3\",\r\n cssClass: \"e-h3\",\r\n command: \"Formats\",\r\n subCommand: \"H3\",\r\n },\r\n {\r\n text: \"Heading 4\",\r\n value: \"H4\",\r\n cssClass: \"e-h4\",\r\n command: \"Formats\",\r\n subCommand: \"H4\",\r\n },\r\n ],\r\n };\r\n\r\n const options = [\r\n \"Formats\",\r\n \"FontColor\",\r\n \"Bold\",\r\n \"Italic\",\r\n \"Underline\",\r\n \"CreateLink\",\r\n \"|\",\r\n \"ClearFormat\",\r\n \"SuperScript\",\r\n \"SubScript\",\r\n \"LowerCase\",\r\n \"UpperCase\",\r\n \"|\",\r\n \"OrderedList\",\r\n \"UnorderedList\",\r\n \"Outdent\",\r\n \"Indent\",\r\n \"|\",\r\n {\r\n tooltipText: t(\"Release:insertMedia\"),\r\n template: \"#btnVale\",\r\n },\r\n \"|\",\r\n {\r\n tooltipText: t(\"Release:resetTemplate\"),\r\n template: \"#btnReset\",\r\n },\r\n \"|\",\r\n \"FullScreen\",\r\n ];\r\n\r\n const toolbarSettings = {\r\n items: options,\r\n enableFloating: true,\r\n };\r\n\r\n const rteEnableHtmlSanitizer = {\r\n enableHtmlSanitizer: false\r\n }\r\n\r\n let asyncSettings = {\r\n saveUrl: `${endPointUrl}?${fileParams}`,\r\n };\r\n\r\n let rteFileUploadEleYtb = null;\r\n const rteFileUploadRefYtb = (element) => {\r\n\r\n rteFileUploadEleYtb = element;\r\n };\r\n\r\n let rteFileUploadEle = null;\r\n const rteFileUploadRef = (element) => {\r\n\r\n rteFileUploadEle = element;\r\n };\r\n\r\n let rteSectionEle = null;\r\n const rteSectionRef = (element) => {\r\n\r\n rteSectionEle = element;\r\n };\r\n\r\n let videoDropContainerEle = null;\r\n const videoDropContainerRef = (element) => {\r\n\r\n videoDropContainerEle = element;\r\n };\r\n\r\n const insertImageSettings = {\r\n allowedTypes: [\".jpeg\", \".jpg\", \".png\"],\r\n display: \"inline\",\r\n width: \"auto\",\r\n height: \"auto\",\r\n saveFormat: \"Blob\",\r\n saveUrl: `${endPointUrl}?${fileParams}`,\r\n path: filePath,\r\n };\r\n\r\n const contextMenuItems = [\r\n \"SortAscending\",\r\n \"SortDescending\",\r\n \"FirstPage\",\r\n \"PrevPage\",\r\n \"LastPage\",\r\n \"NextPage\",\r\n ];\r\n const target = document.getElementById(\"uploadVideo\");\r\n\r\n const uploadImage = () => {\r\n\r\n document\r\n .getElementsByClassName(\"e-file-select-wrap\")[0]\r\n .querySelector(\"button\")\r\n .click();\r\n return false;\r\n };\r\n\r\n //#endregion\r\n\r\n //#region EFFECTS\r\n\r\n React.useEffect(() => {\r\n\r\n\r\n L10n.load({\r\n pt: {\r\n richtexteditor: {\r\n browse: \"Carregar\",\r\n },\r\n },\r\n });\r\n\r\n //SET LOADING SPINNER\r\n if (loading) {\r\n createSpinner({ target: document.getElementById(\"loadTextBox\") });\r\n showSpinner(document.getElementById(\"loadTextBox\"));\r\n setSpinner({ type: \"Bootstrap\" });\r\n }\r\n async function load() {\r\n\r\n let getInfo = async (getReq) => await getReq(globalState.accessToken)\r\n .then((response) => {\r\n\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n\r\n const _businessAreas = await getInfo(getBusinessAreas);\r\n const _countries = await getInfo(getCountries);\r\n const _regional = await getInfo(getRegional);\r\n const _users = await getInfo(users);\r\n const _currentUser = await getInfo(getMyProfile);\r\n\r\n setCurrentUser(_currentUser);\r\n setFillBusinessAreaData(_businessAreas);\r\n setFillCountriesData(_countries);\r\n setFillRegionalData(_regional);\r\n setActiveUsers(_users);\r\n\r\n let fileItemIdParam;\r\n\r\n if (!itemExists) {\r\n setPais(_currentUser.idPais);\r\n setRegional(_currentUser.idRegional);\r\n setAuthors(_currentUser.nome);\r\n\r\n if (_currentUser.idRegional) {\r\n let signature = await getSignatureItemByRegion(\r\n globalState.accessToken,\r\n _currentUser.idRegional\r\n ).then((response) => {\r\n\r\n if (response && response.ok && response.status !== 204) {\r\n return response.json();\r\n }\r\n });\r\n\r\n setSignature(signature);\r\n }\r\n\r\n } else {\r\n fileItemIdParam = \"&id=\" + itemExists;\r\n setItemId(itemExists);\r\n }\r\n\r\n //MELHORAR O GUID (METODO)\r\n let guid = (\r\n generateGUID() +\r\n generateGUID() +\r\n \"-\" +\r\n generateGUID() +\r\n \"-4\" +\r\n generateGUID().substr(0, 3) +\r\n \"-\" +\r\n generateGUID() +\r\n \"-\" +\r\n generateGUID() +\r\n generateGUID() +\r\n generateGUID()\r\n ).toLowerCase();\r\n\r\n setFileParams(`pressTypeId=${idType}&mediaGuid=${guid}${fileItemIdParam ? fileItemIdParam : \"\"}`);\r\n setFilePath(`${storageUrl}${itemExists ? itemExists : guid}/`);\r\n setMediaGuid(guid);\r\n\r\n if (document.getElementById(\"loadTextBox\"))\r\n hideSpinner(document.getElementById(\"loadTextBox\"));\r\n\r\n setEditFirstLoad(false);\r\n setLoading(false);\r\n }\r\n load();\r\n }, []);\r\n\r\n //IF ITEM EXISTS/EDITFORM\r\n React.useEffect(() => {\r\n\r\n if (releaseState.releaseItem) {\r\n let releaseItem = releaseState.releaseItem;\r\n setBlocked(releaseItem.bloqueado);\r\n setLanguage(releaseItem.idIdioma);\r\n setTitle(releaseItem.titulo);\r\n setSubTitle(releaseItem.subtitulo);\r\n setAuthors(releaseItem.autores);\r\n setAreaNegocio(releaseItem.idAreaNegocio);\r\n setPais(releaseItem.idPais);\r\n setDate(new Date(releaseItem.data));\r\n setRegional(releaseItem.idRegional);\r\n setApprover(releaseItem.aprovadoPor);\r\n\r\n setRteContent(releaseItem.conteudo);\r\n setEditFirstLoad(false);\r\n formEditable.current =\r\n idType ===1 || idType ===3\r\n ? true\r\n : releaseState.mailingStatus.length === 0;\r\n }\r\n return function cleanup() {\r\n setEditFirstLoad(false);\r\n };\r\n }, [releaseState.releaseItem]);\r\n\r\n React.useEffect(() => {\r\n\r\n const load = async () => {\r\n\r\n const tdSig = document.querySelector(\"td#signature\");\r\n\r\n if(tdSig) {\r\n const response = await getSignatureItemByRegion(globalState.accessToken, idRegional)\r\n\r\n if(response && response.ok && response.status !== 204) {\r\n const newSig = await response.json();\r\n tdSig.innerHTML = mountSignature(newSig, langName(language) || i18n.language, globalState.tokenLightWeight)\r\n setSignature(newSig);\r\n }\r\n else {\r\n tdSig.innerHTML = '';\r\n setSignature(null);\r\n }\r\n }\r\n }\r\n load();\r\n }, [idRegional])\r\n\r\n React.useEffect(() => {\r\n\r\n const load = async () => {\r\n\r\n const tdSig = document.querySelector(\"td#signature\");\r\n\r\n if(tdSig) {\r\n const response = await getSignatureItemByRegion(globalState.accessToken, idRegional)\r\n\r\n if(response && response.ok && response.status !== 204) {\r\n const newSig = await response.json();\r\n setSignature(newSig);\r\n if (language && rteObj.current)\r\n updateRteHeaderTemplate(rteObj.current.value, newSig);\r\n }\r\n else {\r\n setSignature(null);\r\n if (language && rteObj.current)\r\n updateRteHeaderTemplate(rteObj.current.value, null);\r\n }\r\n\r\n }\r\n }\r\n load();\r\n\r\n }, [language]);\r\n\r\n //TRIGGERS WHEN HEADER FIELDS ARE CHANGED (title, date, subtitle)\r\n React.useEffect(() => {\r\n\r\n execUpdateRteHeaderTemplate();\r\n }, [date, title, subTitle]);\r\n\r\n const execUpdateRteHeaderTemplate = () => {\r\n\r\n if (rteObj.current && (date !== \"Invalid Date\" || title || subTitle)) {\r\n updateRteHeaderTemplate(rteObj.current.value, signature);\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n\r\n if (itemId) {\r\n setReleaseState((releaseState) => ({\r\n ...releaseState,\r\n changeInfo: {\r\n ...releaseState.changeInfo,\r\n Id: parseInt(itemId),\r\n },\r\n }));\r\n }\r\n }, [itemId]);\r\n\r\n React.useEffect(() => {\r\n\r\n let globalPermissions = globalState.permissions;\r\n userPermission = globalPermissions\r\n .filter((i) => i.idAreaAcesso === idAccessArea)\r\n .map((i) => i.permission);\r\n }, [globalState]);\r\n\r\n React.useEffect(() => {\r\n\r\n if (txtTitleRef.current)\r\n txtTitleRef.current.placeholder = t(\"Press:title_placeholder\");\r\n if (txtSubtitleRef.current)\r\n txtSubtitleRef.current.placeholder = t(\r\n \"Press:subtitle_placeholder\"\r\n );\r\n if (txtApproverRef.current)\r\n txtApproverRef.current.placeholder = t(\r\n \"Press:approverBy_placeholder\"\r\n );\r\n if (txtAuthorRef.current)\r\n txtAuthorRef.current.placeholder = t(\"Press:authors_placeholder\");\r\n if (datePickerRef.current)\r\n datePickerRef.current.placeholder = t(\"Press:date_placeholder\");\r\n\r\n if (document.getElementById(\"release_rte-edit-view\"))\r\n document\r\n .getElementById(\"release_rte-edit-view\")\r\n .setAttribute(\"contenteditable\", false);\r\n }, [i18n.language]);\r\n\r\n //#endregion\r\n\r\n //#region FUNCTIONS\r\n\r\n var savedSelection;\r\n\r\n const saveSelection = (containerEl) => {\r\n\r\n let selection = window.getSelection();\r\n if (\r\n elementContainsSelection(\r\n document.getElementById(\"rteDefaultTBodyContent\"),\r\n selection\r\n )\r\n ) {\r\n var range = window.getSelection().getRangeAt(0);\r\n var preSelectionRange = range.cloneRange();\r\n preSelectionRange.selectNodeContents(containerEl);\r\n preSelectionRange.setEnd(range.startContainer, range.startOffset);\r\n var start = preSelectionRange.toString().length;\r\n savedSelection = {\r\n start: start,\r\n end: start + range.toString().length,\r\n };\r\n setTableSelection(savedSelection);\r\n }\r\n };\r\n\r\n const restoreSelection = (containerEl, savedSel) => {\r\n\r\n savedSel = tableSelection;\r\n if (!savedSel) {\r\n savedSel = {\r\n start: 276,\r\n end: 276,\r\n };\r\n }\r\n\r\n var charIndex = 0,\r\n range = document.createRange();\r\n range.setStart(containerEl, 0);\r\n range.collapse(true);\r\n var nodeStack = [containerEl],\r\n node,\r\n foundStart = false,\r\n stop = false;\r\n\r\n while (!stop && (node = nodeStack.pop())) {\r\n if (node.nodeType ===3) {\r\n var nextCharIndex = charIndex + node.length;\r\n if (\r\n !foundStart &&\r\n savedSel.start >= charIndex &&\r\n savedSel.start <= nextCharIndex\r\n ) {\r\n range.setStart(node, savedSel.start - charIndex);\r\n foundStart = true;\r\n }\r\n if (\r\n foundStart &&\r\n savedSel.end >= charIndex &&\r\n savedSel.end <= nextCharIndex\r\n ) {\r\n range.setEnd(node, savedSel.end - charIndex);\r\n stop = true;\r\n }\r\n charIndex = nextCharIndex;\r\n } else {\r\n var i = node.childNodes.length;\r\n while (i--) {\r\n nodeStack.push(node.childNodes[i]);\r\n }\r\n }\r\n }\r\n\r\n var sel = window.getSelection();\r\n sel.removeAllRanges();\r\n sel.addRange(range);\r\n return sel;\r\n };\r\n\r\n const saveSelectionDocument = (containerEl) => {\r\n\r\n var selection = document.selection;\r\n if (\r\n elementContainsSelection(\r\n document.getElementById(\"rteDefaultTBodyContent\"),\r\n selection\r\n )\r\n ) {\r\n var selectedTextRange = document.selection.createRange();\r\n var preSelectionTextRange = document.body.createTextRange();\r\n preSelectionTextRange.moveToElementText(containerEl);\r\n preSelectionTextRange.setEndPoint(\"EndToStart\", selectedTextRange);\r\n var start = preSelectionTextRange.text.length;\r\n\r\n savedSelection = {\r\n start: start,\r\n end: start + selectedTextRange.text.length,\r\n };\r\n }\r\n };\r\n\r\n const saveCaret = () => {\r\n\r\n if (window.getSelection && document.createRange) {\r\n //release_rte-edit-view\r\n saveSelection(document.getElementById(\"rteDefaultTBodyContent\"));\r\n } else if (document.selection) {\r\n saveSelectionDocument(\r\n document.getElementById(\"rteDefaultTBodyContent\")\r\n );\r\n }\r\n };\r\n\r\n const restoreCaret = () => {\r\n\r\n if (window.getSelection && document.createRange) {\r\n return restoreSelection(\r\n document.getElementById(\"rteDefaultTBodyContent\"),\r\n savedSelection\r\n );\r\n } else if (document.selection) {\r\n return restoreSelectionDocument(\r\n document.getElementById(\"rteDefaultTBodyContent\"),\r\n savedSelection\r\n );\r\n }\r\n };\r\n\r\n let updateRteHeaderTemplate = (html, sig) => {\r\n\r\n const doc = new DOMParser().parseFromString(html, \"text/html\");\r\n const contentObj = getReleaseDefault(idType, language);\r\n const contentOtherLangObj = getReleaseDefault(idType, language === 1 ? 2 : 1);\r\n const lang = language ? (language === 1 ? \"pt\" : \"en\") : \"pt\";\r\n\r\n const tdSig = doc.getElementById(\"signature\")\r\n if (tdSig && sig && contentObj.signature !== sig )\r\n doc.getElementById(\"signature\").innerHTML = mountSignature(sig, langName(language) || i18n.language, globalState.tokenLightWeight);\r\n\r\n doc.getElementById(\"rteTitle\").innerHTML = title || contentObj.title;\r\n doc.getElementById(\"rteSubtitle\").innerHTML = subTitle || contentObj.subtitle;\r\n doc.getElementById(\"rteDate\").innerHTML = date.toLocaleDateString(lang);\r\n\r\n let currentContent = doc.getElementById(\"rteDefaultTBodyContent\").innerHTML;\r\n\r\n if (currentContent === contentOtherLangObj.content || currentContent === contentObj.content) {\r\n doc.getElementById(\"rteDefaultTBodyContent\").innerHTML =\r\n currentContent.replace(contentOtherLangObj.content, contentObj.content);\r\n }\r\n\r\n const headerEl = doc.querySelector(\"#tdSecondHeader td\");\r\n if (headerEl) headerEl.innerHTML = contentObj.header;\r\n\r\n const boilerPlateEl = doc.getElementById(\"boilerPlateVale\");\r\n if (boilerPlateEl) {\r\n boilerPlateEl.parentNode.removeChild(boilerPlateEl);\r\n doc.getElementById(\"boiler\").innerHTML =\r\n language === 1 ? PressBoilerPlatePT : PressBoilerPlateEN;\r\n }\r\n\r\n const attachmentItem = doc.getElementById(\"attachmentItem\");\r\n if (attachmentItem) {\r\n attachmentItem.innerHTML = language === 1 ? \"Anexos\" : \"Attachments\";\r\n }\r\n\r\n const footerEl = doc.querySelector('[id=footerVale] td');\r\n if (footerEl) footerEl.innerHTML = language === 1 ? PressFooterPT : PressFooterEN;\r\n\r\n rteObj.current.value = doc.documentElement.innerHTML;\r\n setRteContent(doc.documentElement.innerHTML);\r\n };\r\n\r\n let changeRichTextByTemplate = (html) => {\r\n\r\n if (!html) {\r\n saveCaret();\r\n html = rteObj.current.contentModule\r\n .getEditPanel()\r\n .getElementsByTagName(\"table\")[0].outerHTML;\r\n }\r\n\r\n rteObj.current.value = html;\r\n restoreCaret();\r\n };\r\n\r\n let defaultRteTemplate = (e) => {\r\n\r\n let defaultRteContent = getReleaseDefault(idType);\r\n\r\n if (defaultRteContent.date !== new Date())\r\n defaultRteContent.date = date;\r\n if (defaultRteContent.title !== title && title)\r\n defaultRteContent.title = title;\r\n if (defaultRteContent.subtitle !== subTitle && subTitle)\r\n defaultRteContent.subtitle = subTitle;\r\n\r\n if (defaultRteContent.signature !== signature && signature)\r\n defaultRteContent.signature = mountSignature(signature, langName(language) || i18n.language, globalState.tokenLightWeight);\r\n\r\n rteObj.current.value = richTextDefault(\r\n defaultRteContent,\r\n i18n.language,\r\n idType\r\n );\r\n\r\n if (e) {\r\n e.preventDefault();\r\n setOpenModalConfirm(true);\r\n }\r\n };\r\n\r\n let selectedTemplate = (args) => {\r\n\r\n action.current = null;\r\n const lang = language ? language : i18n.language;\r\n const releaseDefaultObj = getReleaseDefault(idType, language);\r\n\r\n switch (args.item.key) {\r\n case \"BoPla\":\r\n var boilerPlateEl = document.getElementById(\"boilerPlateVale\");\r\n if (boilerPlateEl)\r\n boilerPlateEl.parentNode.removeChild(boilerPlateEl);\r\n else {\r\n const boilerPlate =\r\n lang === 1\r\n ? PressBoilerPlatePT\r\n : lang === \"pt\"\r\n ? PressBoilerPlatePT\r\n : PressBoilerPlateEN;\r\n rteObj.current.contentModule\r\n .getDocument()\r\n .getElementById(\"boiler\").innerHTML = boilerPlate;\r\n }\r\n changeRichTextByTemplate(\r\n rteObj.current.contentModule\r\n .getEditPanel()\r\n .getElementsByTagName(\"table\")[0].outerHTML\r\n );\r\n break;\r\n case \"Vid\":\r\n document.getElementById(\"messageFileSize\").innerHTML = `${t(\r\n \"Release:uploadFileSizeMsg\"\r\n )\r\n } `;\r\n document.getElementById(\"messageFileExt\").innerHTML = `${t(\r\n \"Release:extension\"\r\n )\r\n }: .mp4`;\r\n uploadObj.current.allowedExtensions = \".mp4\";\r\n uploadObj.current.maxFileSize = 1e9;\r\n action.current = args.item.key;\r\n insertFile(args.item.key);\r\n break;\r\n case \"Ytb\":\r\n var youtubeVideo = document.getElementById(\"youtube_video\");\r\n action.current = args.item.key;\r\n insertYtb(args.item.key);\r\n break;\r\n case \"Aud\":\r\n document.getElementById(\"messageFileSize\").innerHTML = `${t(\r\n \"Release:uploadFileSizeMsg\"\r\n )\r\n } `;\r\n document.getElementById(\"messageFileExt\").innerHTML = `${t(\r\n \"Release:extension\"\r\n )\r\n }: .mp3`;\r\n uploadObj.current.allowedExtensions = \".mp3\";\r\n uploadObj.current.maxFileSize = 1e9;\r\n action.current = args.item.key;\r\n insertFile(args.item.key);\r\n break;\r\n case \"Img\":\r\n document.getElementById(\"messageFileSize\").innerHTML = `${t(\r\n \"Release:uploadImageSizeMsg\"\r\n )\r\n } `;\r\n document.getElementById(\"messageFileExt\").innerHTML = `${t(\r\n \"Release:extension\"\r\n )\r\n }: .jpg /.png /.jpeg`;\r\n uploadObj.current.allowedExtensions = \".jpg,.png,.jpeg\";\r\n uploadObj.current.maxFileSize = 20e6;\r\n action.current = args.item.key;\r\n insertFile(args.item.key);\r\n break;\r\n case \"Ger\":\r\n sidebarRef.current.toggle();\r\n break;\r\n default:\r\n document.getElementById(\"messageFileSize\").innerHTML = `${t(\r\n \"Release:uploadFileSizeMsg\"\r\n )\r\n } `;\r\n document.getElementById(\"messageFileExt\").innerHTML = ``;\r\n uploadObj.current.allowedExtensions = \"\";\r\n uploadObj.current.maxFileSize = 1e9;\r\n action.current = args.item.key;\r\n insertFile(args.item.key);\r\n break;\r\n }\r\n };\r\n\r\n let insertFile = (args) => {\r\n\r\n rteObj.current.contentModule.getEditPanel().focus();\r\n const dlgButtons = [\r\n {\r\n buttonModel: {\r\n content: t(\"Release:buttonInsert\"),\r\n isPrimary: true,\r\n disabled: true,\r\n },\r\n click: () => onInsert(args),\r\n },\r\n ];\r\n dialogObj.current.buttons = dlgButtons;\r\n dialogObj.current.element.style.display = \"\";\r\n dialogObj.current.content = rteFileUploadEle;\r\n document\r\n .getElementById(\"videoTag\")\r\n .setAttribute(\"style\", \"display:none;\");\r\n dialogObj.current.show();\r\n\r\n document\r\n .getElementById(\"attachmentLabelWrapper\")\r\n .setAttribute(\"style\", \"display:none\");\r\n\r\n document\r\n .getElementById(\"audioLabelWrapper\")\r\n .setAttribute(\"style\", \"display:none\");\r\n\r\n if (args === \"Anx\") {\r\n document\r\n .getElementById(\"attachmentLabelWrapper\")\r\n .setAttribute(\"style\", \"display:block\");\r\n }\r\n\r\n if (args === \"Aud\") {\r\n document\r\n .getElementById(\"audioLabelWrapper\")\r\n .setAttribute(\"style\", \"display:block\");\r\n }\r\n };\r\n\r\n let insertYtb = (args) => {\r\n (rteObj.current.contentModule.getEditPanel()).focus();\r\n const dlgButtons = [{ buttonModel: { content: t('Release:buttonInsert'), isPrimary: true }, click: () => onInsert(args) },\r\n ];\r\n dialogObjYtb.current.buttons = dlgButtons;\r\n dialogObjYtb.current.element.style.display = '';\r\n dialogObjYtb.current.content = rteFileUploadEleYtb;\r\n dialogObjYtb.current.show();\r\n }\r\n\r\n let onInsert = (action) => {\r\n\r\n const fileInfo = uploadObj.current.getFileInfo(0, null);\r\n let fileFullPath = filePathUploaded.current;\r\n const sel = restoreCaret();\r\n let range = rteObj.current.getRange();\r\n\r\n switch (action) {\r\n case \"Vid\":\r\n let canvas = document.querySelector(\"#canvas\"),\r\n video = document.querySelector(\"#video\");\r\n let serverUrl = video.getAttribute(\"serverurl\");\r\n let currentSrc = video.currentSrc;\r\n let splitSrc = currentSrc.split(\"/\");\r\n let vidFileName = splitSrc.pop();\r\n let mountThumbName = vidFileName.split(\".\")[0];\r\n let fileName = mountThumbName + \"_thumb.png\";\r\n canvas.toBlob((blob) => {\r\n var file = new File([blob], fileName);\r\n async function saveThumb() {\r\n await uploadPressMedia(\r\n globalState.accessToken,\r\n fileParams,\r\n file\r\n )\r\n .then((response) => response.text())\r\n .then((response) => {\r\n if (response) {\r\n range.collapse(true);\r\n var thumbWrapperDiv =\r\n document.createElement(\"div\");\r\n thumbWrapperDiv.id = \"thumbWrapper\";\r\n thumbWrapperDiv.setAttribute(\r\n \"contenteditable\",\r\n \"false\"\r\n );\r\n const videoTemplate = getPressVideoTemplate(\r\n serverUrl,\r\n response\r\n );\r\n thumbWrapperDiv.insertAdjacentHTML(\r\n \"beforeend\",\r\n videoTemplate\r\n );\r\n range.insertNode(thumbWrapperDiv);\r\n // Move the caret immediately after the inserted element\r\n range.setStartAfter(thumbWrapperDiv);\r\n range.collapse(true);\r\n sel.removeAllRanges();\r\n sel.addRange(range);\r\n }\r\n });\r\n }\r\n saveThumb();\r\n });\r\n break;\r\n case \"Aud\":\r\n var audiosWrapper = rteObj.current.contentModule\r\n .getDocument()\r\n .getElementById(\"rteAudios\");\r\n\r\n const audioTemplate = getPressMediaTemplate(\r\n `${process.env.REACT_APP_AZURE_STORAGE}/press/System/icon-audio2.png`,\r\n fileInfo.name,\r\n fileFullPath,\r\n \"mp3\",\r\n txtAudioRef.current.value || ''\r\n );\r\n audiosWrapper.insertAdjacentHTML(\"beforeend\", `${audioTemplate}`);\r\n\r\n // Move the caret immediately after the inserted span\r\n range.setStartAfter(audiosWrapper);\r\n range.collapse(true);\r\n sel.removeAllRanges();\r\n sel.addRange(range);\r\n break;\r\n case \"Img\":\r\n range.collapse(true);\r\n var imgWrapperDiv = document.createElement(\"div\");\r\n imgWrapperDiv.id = \"imgWrapper\";\r\n imgWrapperDiv.setAttribute(\r\n \"style\",\r\n \"display: inline-block; padding: 15px 0px 15px 0px;\"\r\n );\r\n imgWrapperDiv.setAttribute(\"contenteditable\", false);\r\n const imageTemplate = getPressMediaTemplate(\r\n fileFullPath,\r\n \"\",\r\n \"\",\r\n \"img\"\r\n );\r\n imgWrapperDiv.insertAdjacentHTML(\"beforeend\", imageTemplate);\r\n range.insertNode(imgWrapperDiv);\r\n\r\n // Move the caret immediately after the inserted span\r\n range.setStartAfter(imgWrapperDiv);\r\n range.collapse(true);\r\n sel.removeAllRanges();\r\n sel.addRange(range);\r\n break;\r\n case \"Ytb\":\r\n range.collapse(true);\r\n var youtubeWrapperDiv = document.createElement(\"div\");\r\n youtubeWrapperDiv.id = \"youtubeVideoWrapper\";\r\n youtubeWrapperDiv.setAttribute('contenteditable', false);\r\n const urlLabel = document.getElementById('youtubeLabel').value;\r\n const url = youtube_parser(urlLabel);\r\n if (!url) {\r\n document.getElementById(\"erroYtb\").innerHTML = t('Press:erroYtb');\r\n return;\r\n } else {\r\n document.getElementById(\"erroYtb\").innerHTML = \"\";\r\n }\r\n const youtubeTemplate = getYoutubeVideoTemplate(url);\r\n youtubeWrapperDiv.insertAdjacentHTML('beforeend', youtubeTemplate);\r\n range.insertNode(youtubeWrapperDiv);\r\n // Move the caret immediately after the inserted span\r\n range.setStartAfter(youtubeWrapperDiv);\r\n range.collapse(true);\r\n sel.removeAllRanges();\r\n sel.addRange(range);\r\n document.getElementById('youtubeLabel').value = \"\";\r\n break;\r\n default:\r\n var attachmentsWrapper = rteObj.current.contentModule\r\n .getDocument()\r\n .getElementById(\"rteAttachments\");\r\n range.setStart(attachmentsWrapper, 0);\r\n range.collapse(true);\r\n var attachmentsHeaderTr = rteObj.current.contentModule\r\n .getDocument()\r\n .getElementById(\"attachmentsHeader\");\r\n if (!attachmentsHeaderTr) {\r\n const attachmentTemplate = getReleaseAttachmentsHeader(\r\n language === 1 ? \"Anexos\" : \"Attachments\"\r\n );\r\n attachmentsWrapper.innerHTML = ` ${attachmentTemplate} `;\r\n range.setStartAfter(attachmentsWrapper);\r\n }\r\n\r\n var attachmentsArea = rteObj.current.contentModule\r\n .getDocument()\r\n .querySelectorAll(\"[id=attachmentWrapper]\");\r\n var index = -1;\r\n for (var i = 0; i < attachmentsArea.length; i++) {\r\n if (attachmentsArea[i].childElementCount === 0) {\r\n index = i;\r\n break;\r\n }\r\n }\r\n if (index > -1) {\r\n const mediaTemplate = getPressMediaTemplate(\r\n `${process.env.REACT_APP_AZURE_STORAGE}/press/System/icon-attach.png`,\r\n txtAttachmentTitleRef.current.value || '',\r\n fileFullPath,\r\n \"attachment\"\r\n );\r\n attachmentsArea[index].innerHTML = mediaTemplate;\r\n // Move the caret immediately after the inserted span\r\n range.setStartAfter(attachmentsArea[index]);\r\n } else {\r\n\r\n var attachmentWrapperTd = document.createElement(\"td\");\r\n attachmentWrapperTd.id = \"attachmentWrapper\";\r\n\r\n attachmentWrapperTd.setAttribute(\"valign\", \"center\");\r\n attachmentWrapperTd.setAttribute(\"bgcolor\", \"#ffffff\");\r\n attachmentWrapperTd.setAttribute(\"contenteditable\", false);\r\n attachmentWrapperTd.setAttribute(\r\n \"style\",\r\n \"color:#FFFFFF;text-align:center;border:5px solid #FFFFFF;vertical-align:top;\"\r\n );\r\n\r\n const attachmentFilename = txtAttachmentTitleRef.current.value ||\r\n (language === 1 ? \"Anexo\" : \"Attachment\");\r\n const mediaTemplate = getPressMediaTemplate(\r\n `${process.env.REACT_APP_AZURE_STORAGE}/press/System/icon-attach.png`,\r\n attachmentFilename,\r\n fileFullPath,\r\n \"attachment\"\r\n );\r\n attachmentWrapperTd.innerHTML = mediaTemplate;\r\n var attachmentsTr = rteObj.current.contentModule\r\n .getDocument()\r\n .getElementById(\"rowAttachments\");\r\n attachmentsTr.appendChild(attachmentWrapperTd);\r\n range.setStartAfter(attachmentWrapperTd);\r\n }\r\n\r\n range.collapse(true);\r\n sel.removeAllRanges();\r\n sel.addRange(range);\r\n break;\r\n }\r\n uploadObj.current.clearAll();\r\n dialogOverlay();\r\n setIsArgs('');\r\n setTypeFileVideo('');\r\n setAttachmentTitleCount('');\r\n setAttachmentSubTitleCount('');\r\n setAttachmentAudioCount('');\r\n txtAttachmentTitleRef.current.value = \"\";\r\n txtAudioRef.current.value = \"\";\r\n };\r\n\r\n let dialogOverlay = () => {\r\n\r\n let activeEle = dialogObj.current.element.querySelector(\r\n \".char_block.e-active\"\r\n );\r\n\r\n let activeEleYtb = dialogObjYtb.current.element.querySelector(\r\n \".char_block.e-active\"\r\n );\r\n\r\n if (activeEle || activeEleYtb) {\r\n activeEle.classList.remove(\"e-active\");\r\n }\r\n uploadObj.current.clearAll();\r\n dialogObj.current.hide();\r\n dialogObjYtb.current.hide();\r\n if (document.getElementById(\"uploadVideo\")) {\r\n document\r\n .getElementById(\"uploadVideo\")\r\n .setAttribute(\"style\", \"display:block;\");\r\n document.querySelector(\"#uploadVideo .e-error\").innerHTML = \"\";\r\n }\r\n setTypeFileVideo('');\r\n setIsArgs('');\r\n setAttachmentTitleCount('');\r\n setAttachmentSubTitleCount('');\r\n setAttachmentAudioCount('');\r\n txtAttachmentTitleRef.current.value = \"\";\r\n txtAudioRef.current.value = \"\";\r\n };\r\n\r\n function RenderVideoTag({ videoSrc, showThumb }) {\r\n return (\r\n
\r\n \r\n {t(\"Release:thumbnail_generated\")}\r\n

\r\n
\r\n videoOnload()}\r\n >\r\n \r\n \r\n
\r\n
\r\n generateThumbOnClick(e)}\r\n >\r\n {t(\"Press:video_thumb_button\")}\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 let onRemoveFile = (args) => {\r\n\r\n if (document.getElementById(\"uploadVideo\"))\r\n document\r\n .getElementById(\"uploadVideo\")\r\n .setAttribute(\"style\", \"display:block;\");\r\n\r\n if (document.getElementById(\"videoTag\"))\r\n document\r\n .getElementById(\"videoTag\")\r\n .setAttribute(\"style\", \"display:none;\");\r\n\r\n document\r\n .querySelector(\"#customTbarDlg button.e-primary\")\r\n .setAttribute(\"disabled\", \"disabled\");\r\n args.postRawFile = false;\r\n const fileInfo = uploadObj.current.getFileInfo(0, null);\r\n let qstring = `mediaPath = ${mediaGuid} /${fileInfo.name}`;\r\n removeMedia(globalState.accessToken, qstring, idType);\r\n setTypeFileVideo('');\r\n setIsArgs('');\r\n setAttachmentTitleCount('');\r\n setAttachmentSubTitleCount('');\r\n setAttachmentAudioCount('');\r\n };\r\n\r\n let videoOnload = () => {\r\n\r\n let canvas = document.querySelector(\"#canvas\"),\r\n video = document.querySelector(\"#video\");\r\n canvas.width = video?.videoWidth * percentSize;\r\n canvas.height = video?.videoHeight * percentSize;\r\n };\r\n\r\n const uploaderCreated = () => {\r\n\r\n if (uploadObj.current) {\r\n uploadObj.current.dropArea = document.getElementById(\"uploadVideo\");\r\n uploadObj.current.dataBind();\r\n }\r\n };\r\n\r\n const uploaderSelected = (e) => {\r\n\r\n document.querySelector(\"#uploadVideo .e-error\").innerHTML = \"\";\r\n if (e.filesData[0].statusCode === \"0\") {\r\n e.cancel = true;\r\n document.querySelector(\"#uploadVideo .e-error\").innerHTML =\r\n e.filesData[0].status;\r\n }\r\n };\r\n\r\n let onFileUploadSuccess = (e) => {\r\n\r\n setTypeFileVideo(e.file.type)\r\n filePathUploaded.current = e.e.srcElement.response;\r\n document\r\n .getElementById(\"uploadVideo\")\r\n .setAttribute(\"style\", \"display:none;\");\r\n let gridDataSource = [...gridMediaRef.current.dataSource];\r\n if (e.operation === \"upload\") {\r\n document\r\n .querySelector(\"#customTbarDlg button.e-primary\")\r\n .removeAttribute(\"disabled\");\r\n switch (action.current) {\r\n case \"Vid\":\r\n if (e.file.type === \"mp4\") {\r\n document\r\n .getElementById(\"videoTag\")\r\n .setAttribute(\"style\", \"display:block;\");\r\n gridDataSource.push({\r\n url: e.e.srcElement.response,\r\n type: \"Video\",\r\n });\r\n gridMediaRef.current.dataSource = gridDataSource;\r\n\r\n var file =\r\n document.getElementById(\"fileUpload\").files[0];\r\n var url = URL.createObjectURL(file);\r\n setVideoSrc((videoSrc) => ({\r\n ...videoSrc,\r\n blob: url,\r\n url: e.e.srcElement.response,\r\n }));\r\n }\r\n break;\r\n case \"Aud\":\r\n gridDataSource.push({\r\n url: e.e.srcElement.response,\r\n type: \"Audio\",\r\n title: txtAudioRef.current.value || '',\r\n });\r\n gridMediaRef.current.dataSource = gridDataSource;\r\n break;\r\n case \"Img\":\r\n gridDataSource.push({\r\n url: e.e.srcElement.response,\r\n type: \"Image\",\r\n });\r\n gridMediaRef.current.dataSource = gridDataSource;\r\n break;\r\n default:\r\n gridDataSource.push({\r\n url: e.e.srcElement.response,\r\n type: \"Attachment\",\r\n title: txtAttachmentTitleRef.current.value || '',\r\n });\r\n gridMediaRef.current.dataSource = gridDataSource;\r\n break;\r\n }\r\n }\r\n };\r\n\r\n let generateThumbOnClick = () => {\r\n\r\n let canvas = document.querySelector(\"#canvas\"),\r\n video = document.querySelector(\"#video\"),\r\n canvasCtx = canvas.getContext(\"2d\");\r\n canvas.setAttribute(\r\n \"style\",\r\n \"display:none; width:100%; margin-bottom:1em\"\r\n );\r\n canvasCtx.drawImage(\r\n video,\r\n 0,\r\n 0,\r\n video.videoWidth * percentSize,\r\n video.videoHeight * percentSize\r\n );\r\n document\r\n .getElementById(\"thumbMsg\")\r\n .setAttribute(\"style\", \"display:block;\");\r\n };\r\n\r\n const fileUploading = (e) => {\r\n\r\n e.currentRequest.setRequestHeader(\r\n \"Authorization\",\r\n \"Bearer \" + globalState.accessToken\r\n );\r\n };\r\n\r\n const generateGUID = () => {\r\n\r\n return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\r\n };\r\n\r\n const imageUploadingHandler = (e) => {\r\n\r\n e.currentRequest.setRequestHeader(\r\n \"Authorization\",\r\n \"Bearer \" + globalState.accessToken\r\n );\r\n };\r\n\r\n const selectionBeforeDropdownClick = () => {\r\n\r\n let selec = window.getSelection();\r\n if (elementContainsSelection(document.getElementById(\"rteDefaultTable\"), selec) ) {\r\n saveCaret();\r\n }\r\n };\r\n\r\n const rteCreated = () => {\r\n\r\n document\r\n .getElementById(\"release_rte-edit-view\")\r\n .setAttribute(\"contenteditable\", false);\r\n document\r\n .querySelector(\"[contenteditable]\")\r\n .addEventListener(\"paste\", (e) => {\r\n\r\n e.preventDefault();\r\n const text = (e.originalEvent || e).clipboardData.getData(\r\n \"text/plain\"\r\n );\r\n window.document.execCommand(\"insertText\", false, text);\r\n });\r\n\r\n if (releaseState.releaseItem.id) {\r\n const imageTitle = getImagesTitleString(idType, language);\r\n\r\n const imageTitlePT = getImagesTitleString(idType, \"1\");\r\n const imageTitleEN = getImagesTitleString(idType, \"2\");\r\n let newTag = releaseState.releaseItem.conteudo;\r\n\r\n if (\r\n newTag.indexOf(\r\n `${process.env.REACT_APP_AZURE_STORAGE}/press/System/${imageTitlePT}`\r\n ) === -1 &&\r\n newTag.indexOf(\r\n `${process.env.REACT_APP_AZURE_STORAGE}/press/System/${imageTitleEN}`\r\n ) === -1\r\n ) {\r\n newTag = releaseState.releaseItem.conteudo.replace(\r\n '',\r\n ` ${getImagesTitle(idType, i18n.language)} `\r\n );\r\n }\r\n\r\n if (newTag.indexOf('`,\r\n `\r\n \r\n ${signature && mountSignature(signature, langName(language) || i18n.language, globalState.tokenLightWeight)}\r\n \r\n \r\n \r\n `\r\n );\r\n }\r\n\r\n if (\r\n newTag.indexOf(\"- Vale | Todos os direitos reservados\") ===\r\n -1 &&\r\n newTag.indexOf(\"- Vale | All rights reserved\") === -1\r\n ) {\r\n newTag = newTag.replace(\r\n \"\",\r\n `\r\n \r\n \r\n ${language === 1 ? PressFooterPT\r\n : language === \"pt\" ? PressFooterPT\r\n : PressFooterEN\r\n }\r\n \r\n `\r\n );\r\n }\r\n\r\n rteObj.current.value = newTag;\r\n } else {\r\n defaultRteTemplate();\r\n }\r\n };\r\n\r\n const rteBeforeQuickToolbarOpen = (e) => {\r\n\r\n e.cancel = true;\r\n };\r\n\r\n const rteBeforeDialogClose = (e) => {\r\n\r\n restoreCaret();\r\n };\r\n\r\n const rteActionBegin = (e) => {\r\n\r\n let range = rteObj.current.getRange();\r\n e.cancel = !isOrContainsNode(\r\n range.commonAncestorContainer,\r\n document.getElementById(\"rteDefaultTBodyContent\")\r\n );\r\n };\r\n\r\n const clearUnusedMedias = () => {\r\n\r\n var urlRegex = /(https?:\\/\\/[^\\s]+)/g;\r\n let mediasUrls = [\r\n ...new Set(releaseState.releaseItem.conteudo.match(urlRegex)),\r\n ];\r\n const systemIconPath = \"/press/System\";\r\n if (mediasUrls) {\r\n let serverUrls = mediasUrls.filter(\r\n (item) =>\r\n item.indexOf(`${process.env.REACT_APP_AZURE_STORAGE}`) >\r\n -1 && item.indexOf(systemIconPath) === -1\r\n );\r\n let newMediasUrls = rteObj.current.value.match(urlRegex);\r\n if (serverUrls && newMediasUrls && newMediasUrls.length) {\r\n const urls = newMediasUrls.filter(\r\n (item) =>\r\n item.indexOf(`${process.env.REACT_APP_AZURE_STORAGE}`) >\r\n -1 && item.indexOf(systemIconPath) === -1\r\n );\r\n let mediasDeleted = serverUrls.filter((x) => !urls.includes(x));\r\n mediasDeleted.map((item) => {\r\n\r\n let qstring = `mediaPath=${getRelativeFilePath(\r\n item.slice(0, -1)\r\n )}`;\r\n removeMedia(globalState.accessToken, qstring, idType);\r\n });\r\n } else {\r\n serverUrls.map((item) => {\r\n\r\n let qstring = `mediaPath=${getRelativeFilePath(\r\n item.slice(0, -1)\r\n )}`;\r\n removeMedia(globalState.accessToken, qstring, idType);\r\n });\r\n }\r\n }\r\n };\r\n\r\n const onSubmitClick = (data) => {\r\n props.setDisabledBtn(true);\r\n\r\n if (itemId) clearUnusedMedias();\r\n\r\n const addOrUpdate = itemId ? updatePressItem : addPressItem;\r\n const dataAPI = {\r\n id: itemId,\r\n bloqueado: blocked,\r\n idIdioma: language || 1,\r\n titulo: title,\r\n subtitulo: subTitle,\r\n autores: authors,\r\n idAreaNegocio: areaNegocio || null,\r\n idPais: idPais,\r\n data: convertDateToUTC(date).toISOString(),\r\n idRegional: idRegional || null,\r\n aprovadoPor: approver || \"\",\r\n conteudo: document.getElementById(\"rteDefaultTable\").outerHTML,\r\n idTipo: idType,\r\n mediaGuid: mediaGuid,\r\n };\r\n\r\n addOrUpdate(globalState.accessToken, dataAPI, idType)\r\n .then((response) => {\r\n\r\n if (response.ok) {\r\n return response.json();\r\n } else {\r\n return Promise.reject(response);\r\n }\r\n })\r\n .then((result) => {\r\n\r\n if (idType ===1 || idType ===3) {\r\n setReleaseState({\r\n releaseItem: null,\r\n urlItemId: null,\r\n changeInfo: null,\r\n });\r\n setRedirectId(result.id);\r\n } else {\r\n setRedirect(true);\r\n }\r\n props.setDisabledBtn(false);\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n setLoading(false);\r\n props.setDisabledBtn(false);\r\n });\r\n };\r\n\r\n const sidebarCreated = () => {\r\n\r\n sidebarRef.current.element.style.visibility = \"\";\r\n };\r\n\r\n const sidebarOpen = (e) => {\r\n\r\n if (gridMediaRef) gridCreated();\r\n };\r\n\r\n const renderMediaTemplate = (args) => {\r\n\r\n switch (args.type) {\r\n case \"Video\":\r\n return (\r\n \r\n \r\n \r\n );\r\n case \"Image\":\r\n return ;\r\n default:\r\n return {args.title};\r\n }\r\n };\r\n\r\n const removeMediaTemplate = (args) => {\r\n\r\n return (\r\n
\r\n {\r\n\r\n const doc = new DOMParser().parseFromString(\r\n rteObj.current.value,\r\n \"text/html\"\r\n );\r\n let el = doc.querySelector(`a[href=\"${args.url}\"]`);\r\n\r\n let containerId;\r\n\r\n switch (args.type) {\r\n case \"Video\":\r\n containerId = \"#thumbWrapper\";\r\n break;\r\n case \"Image\":\r\n el = doc.querySelector(\r\n `img[src=\"${args.url}\"]`\r\n );\r\n containerId = \"#imgWrapper\";\r\n break;\r\n case \"Audio\":\r\n containerId = \"#audioWrapper\";\r\n break;\r\n default:\r\n containerId = \"#attachmentWrapper\";\r\n break;\r\n }\r\n var html = \"\";\r\n\r\n if (el) {\r\n el.closest(containerId).parentNode.removeChild(\r\n el.closest(containerId)\r\n );\r\n html = doc.documentElement.innerHTML;\r\n if (args.type === \"Attachment\") {\r\n html = clearAttachmentsArea(html);\r\n }\r\n }\r\n\r\n let gridDataSource = gridMediaRef.current.dataSource;\r\n gridMediaRef.current.dataSource = gridDataSource.filter(\r\n (x) => x.url !==args.url\r\n );\r\n\r\n rteObj.current.value = html;\r\n }}\r\n className=\"mdl2 mdl2-trash\"\r\n />\r\n
\r\n );\r\n };\r\n\r\n const gridCreated = () => {\r\n\r\n const doc = new DOMParser().parseFromString(\r\n rteObj.current.value,\r\n \"text/html\"\r\n );\r\n const videoContainers = doc.querySelectorAll(\"#thumbWrapper a\");\r\n const audioContainers = doc.querySelectorAll(\"#audioWrapper a\");\r\n const attachmentContainers = doc.querySelectorAll(\r\n \"#attachmentWrapper a\"\r\n );\r\n const imgContainers = doc.querySelectorAll(\"#imgWrapper img\");\r\n let arr = [];\r\n for (var i = 0; i < videoContainers.length; i++) {\r\n arr.push({ url: videoContainers[i].href, type: \"Video\" });\r\n }\r\n for (var i = 0; i < audioContainers.length; i++) {\r\n arr.push({\r\n url: audioContainers[i].href,\r\n type: \"Audio\",\r\n title: audioContainers[i].lastElementChild?.innerHTML,\r\n });\r\n }\r\n for (var i = 0; i < attachmentContainers.length; i++) {\r\n arr.push({\r\n url: attachmentContainers[i].href,\r\n type: \"Attachment\",\r\n title: attachmentContainers[i].lastElementChild?.innerHTML,\r\n });\r\n }\r\n for (var i = 0; i < imgContainers.length; i++) {\r\n arr.push({ url: imgContainers[i].src, type: \"Image\" });\r\n }\r\n\r\n gridMediaRef.current.dataSource = arr;\r\n };\r\n\r\n //#endregion\r\n const resetButtonEvent = (e) => {\r\n\r\n e.preventDefault();\r\n setOpenModal(true);\r\n };\r\n\r\n const editPlaceholder = () => {\r\n const rteDefaultTBodyContent = document.getElementById('rteDefaultTBodyContent').innerText;\r\n\r\n const placeholder = {\r\n value: /^Digite aqui um conteúdo para o release\\.\\.\\.$/.test(rteDefaultTBodyContent)\r\n || /^Type the release content in here\\.\\.\\.$/.test(rteDefaultTBodyContent)\r\n || /^Digite aqui um conteúdo para a nota\\.\\.\\.$/.test(rteDefaultTBodyContent)\r\n || /^Type the statement content in here\\.\\.\\.$/.test(rteDefaultTBodyContent)\r\n || /^Digite aqui um conteúdo para o posicionamento.\\.\\.$/.test(rteDefaultTBodyContent)\r\n || /^Type the position paper content in here\\.\\.\\.$/.test(rteDefaultTBodyContent)\r\n || /^Digite aqui um conteúdo para o Q \\& A\\.\\.\\.$/.test(rteDefaultTBodyContent)\r\n || /^Type the Q&A content in here\\.\\.\\.$/.test(rteDefaultTBodyContent)\r\n || /^Digite aqui um conteúdo para o aviso de webcast\\.\\.\\.$/.test(rteDefaultTBodyContent)\r\n || /^Type the webcast notice content in here\\.\\.\\.$/.test(rteDefaultTBodyContent)\r\n || /^Digite aqui um conteúdo para o aviso de pauta\\.\\.\\.$/.test(rteDefaultTBodyContent)\r\n || /^Type the assignment notice content in here\\.\\.\\.$/.test(rteDefaultTBodyContent)\r\n };\r\n\r\n if (placeholder.value) {\r\n document.getElementById('rteDefaultTBodyContent').innerText = '';\r\n\r\n setTimeout(() => {\r\n\r\n document.getElementById('rteDefaultTBodyContent').focus()\r\n }, 100);\r\n };\r\n };\r\n\r\n const AttachmentTitleRef = (ev) => {\r\n\r\n setAttachmentTitleCount(ev.value.length)\r\n }\r\n\r\n const AttachmentAudioRef = (ev) => {\r\n\r\n setAttachmentAudioCount(ev.value.length)\r\n }\r\n\r\n return (\r\n
\r\n {loading ? (\r\n
\r\n ) : redirect ? (\r\n \r\n ) : (\r\n
\r\n \r\n
\r\n {/* IDIOMA */}\r\n
\r\n setLanguage(e.value)}\r\n enabled={formEditable.current}\r\n />\r\n
\r\n {/* IDIOMA END */}\r\n\r\n {/* BLOQUEIO ADMIN */}\r\n {((globalState && globalState.userAdmin) ||\r\n //ou se o criador é o mesmo que o usuário logado\r\n (idAccessArea &&\r\n userPermission.indexOf(\"Admin\") !==-1) ||\r\n (idAccessArea &&\r\n userPermission.indexOf(\"Inclusão\") !=\r\n -1)) && (\r\n setBlocked(e.checked)}\r\n disabled={!formEditable.current}\r\n />\r\n )}\r\n {/* BLOQUEIO ADMIN END */}\r\n
\r\n\r\n {/* TÍTULO */}\r\n
\r\n \r\n {\r\n\r\n register(textBox, { required: true });\r\n txtTitleRef.current = textBox;\r\n }}\r\n placeholder={t(\"Press:title_placeholder\")}\r\n htmlAttributes={{ maxlength: 255 }}\r\n onChange={(e) => setTitle(e.target.value)}\r\n value={title}\r\n enabled={formEditable.current}\r\n />\r\n {errors.titulo &&\r\n errors.titulo.type === \"required\" && (\r\n \r\n {t(\"Validation:required\")}\r\n \r\n )}\r\n
\r\n {/* TÍTULO END */}\r\n\r\n {/* SUBTITULO */}\r\n
\r\n \r\n \r\n (txtSubtitleRef.current = textBox)\r\n }\r\n name=\"subtitulo\"\r\n value={subTitle}\r\n placeholder={t(\"Press:subtitle_placeholder\")}\r\n multiline={true}\r\n onChange={(e) => setSubTitle(e.target.value)}\r\n htmlAttributes={{ maxlength: 255 }}\r\n enabled={formEditable.current}\r\n />\r\n
\r\n {/* SUBTITULO END */}\r\n\r\n
\r\n
\r\n {/* AREA DE NEGOCIO DDL */}\r\n
\r\n \r\n setAreaNegocio(e.value)}\r\n enabled={formEditable.current}\r\n />\r\n {errors.areaNegocio &&\r\n errors.areaNegocio.type === \"min\" && (\r\n \r\n {t(\"Validation:required\")}\r\n \r\n )}\r\n
\r\n {/* AREA DE NEGOCIO DDL END */}\r\n\r\n {/* PAIS DDL */}\r\n
\r\n \r\n setPais(e.value)}\r\n enabled={formEditable.current}\r\n />\r\n {errors.pais &&\r\n errors.pais.type === \"required\" && (\r\n \r\n {t(\"Validation:required\")}\r\n \r\n )}\r\n
\r\n {/* PAIS DDL END */}\r\n\r\n {/* REGIONAL DDL */}\r\n
\r\n \r\n {\r\n\r\n setRegional(e.value)\r\n getSignatureItemByRegion(\r\n globalState.accessToken,\r\n e.value\r\n ).then((response) => {\r\n\r\n if (response && response.ok && response.status !== 204) {\r\n return response.json();\r\n }\r\n }).then(signature => {\r\n\r\n setSignature(signature);\r\n })\r\n }}\r\n enabled={formEditable.current}\r\n />\r\n
\r\n {/* REGIONAL DDL END */}\r\n\r\n {/* DATE PICKER */}\r\n
\r\n \r\n {\r\n\r\n register(datepicker, {\r\n required: true,\r\n });\r\n datePickerRef.current = datepicker;\r\n }}\r\n placeholder={t(\r\n \"Press:date_placeholder\"\r\n )}\r\n value={date.toLocaleDateString(\r\n i18n.language\r\n )}\r\n locale={i18n.language}\r\n change={(e) =>\r\n setDate(\r\n e.value\r\n ? new Date(e.value)\r\n : new Date()\r\n )\r\n }\r\n enabled={formEditable.current}\r\n />\r\n {errors.data &&\r\n errors.data.type === \"required\" && (\r\n \r\n {t(\"Validation:required\")}\r\n \r\n )}\r\n
\r\n {/* DATE PICKER END */}\r\n
\r\n
\r\n {/* APROVADOR TXT */}\r\n
\r\n \r\n \r\n (txtApproverRef.current = textBox)\r\n }\r\n placeholder={t(\r\n \"Press:approverBy_placeholder\"\r\n )}\r\n name=\"aprovadoPor\"\r\n value={approver}\r\n onChange={(e) =>\r\n setApprover(e.target.value)\r\n }\r\n enabled={formEditable.current}\r\n />\r\n
\r\n {/* APROVADOR TXT END */}\r\n\r\n {/* AUTORES TXT */}\r\n
\r\n \r\n {\r\n\r\n register(textBox, {\r\n required: true,\r\n });\r\n txtAuthorRef.current = textBox;\r\n }}\r\n cssClass=\"e-filled\"\r\n placeholder={t(\r\n \"Press:authors_placeholder\"\r\n )}\r\n value={\r\n authors ? authors : currentUser.nome\r\n }\r\n onChange={(e) =>\r\n setAuthors(e.target.value)\r\n }\r\n enabled={formEditable.current}\r\n />\r\n {errors.autores &&\r\n errors.autores.type === \"required\" && (\r\n \r\n {t(\"Validation:required\")}\r\n \r\n )}\r\n
\r\n {/* AUTORES TXT END */}\r\n
\r\n
\r\n\r\n {/* WYSIWYG EDITOR */}\r\n \r\n {/* EDITOR RT */}\r\n {\r\n\r\n rteObj.current = scope;\r\n }}\r\n toolbarSettings={toolbarSettings}\r\n format={formatOptions}\r\n beforeQuickToolbarOpen={\r\n rteBeforeQuickToolbarOpen\r\n }\r\n beforeDialogClose={rteBeforeDialogClose}\r\n beforeQuickToolbarOpen={\r\n rteBeforeQuickToolbarOpen\r\n }\r\n actionBegin={rteActionBegin}\r\n locale={i18n.language}\r\n insertImageSettings={insertImageSettings}\r\n imageUploading={imageUploadingHandler}\r\n created={rteCreated}\r\n format={format}\r\n enabled={formEditable.current}\r\n enableHtmlSanitizer={rteEnableHtmlSanitizer}\r\n focus={editPlaceholder}\r\n >\r\n \r\n \r\n {/* EDITOR RT END */}\r\n\r\n {/* BTN DDL VALE */}\r\n selectedTemplate(args)}\r\n beforeOpen={(args) =>\r\n selectionBeforeDropdownClick()\r\n }\r\n >\r\n {t(\"Release:insert\")}\r\n \r\n {/* BTN DDL VALE END */}\r\n\r\n {/* BTN RESET */}\r\n \r\n \r\n \r\n {/* BTN RESET */}\r\n\r\n {/* VIDEO DIALOG */}\r\n {\r\n\r\n dialogObj.current = scope;\r\n }}\r\n overlayClick={dialogOverlay}\r\n close={dialogOverlay}\r\n visible={false}\r\n showCloseIcon={true}\r\n width=\"45%\"\r\n target={\"#rteSection\"}\r\n isModal={true}\r\n style={{ minHeight: 350 }}\r\n >\r\n {/* VIDEO DIALOG END */}\r\n\r\n \r\n \r\n {/* THUMBNAIL SELECTION */}\r\n
\r\n \r\n
\r\n {/* THUMBNAIL SELECTION END */}\r\n\r\n \r\n
\r\n
\r\n \r\n {/* Render Uploader */}\r\n \r\n
\r\n \r\n

\r\n {t(\"Press:drag_here_or\")}\r\n \r\n uploadImage()\r\n }\r\n >\r\n {\" \" + t(\"Press:upload\")}\r\n \r\n

\r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n\r\n uploadObj.current =\r\n scope;\r\n }}\r\n asyncSettings={\r\n asyncSettings\r\n }\r\n created={\r\n uploaderCreated\r\n }\r\n selected={\r\n uploaderSelected\r\n }\r\n uploading={\r\n fileUploading\r\n }\r\n success={(e) =>\r\n onFileUploadSuccess(\r\n e\r\n )\r\n }\r\n removing={(e) =>\r\n onRemoveFile(e)\r\n }\r\n >\r\n
\r\n
\r\n
\r\n
\r\n\r\n {/* ATTACHMENT SUBTITLE */}\r\n \r\n
\r\n \r\n \r\n (txtAttachmentTitleRef.current = textBox)\r\n }\r\n input={(ev) => AttachmentTitleRef(ev)}\r\n name=\"attachmentLabel\"\r\n placeholder={t(\r\n \"Press:attachment_subtitle_placeholder\"\r\n )}\r\n htmlAttributes={{ maxlength: 17 }}\r\n />\r\n
\r\n {((attachmentTitleCount\r\n ? 0 + attachmentTitleCount: txtAttachmentTitleRef?.current?.length\r\n ? 0 + txtAttachmentTitleRef.current.length : 0) + '/17')\r\n }\r\n
\r\n
\r\n
\r\n {/* ATTACHMENT SUBTITLE END */}\r\n {/* AUDIO SUBTITLE */}\r\n \r\n
\r\n \r\n {t(\"Press:audio_subtitle\")}\r\n \r\n \r\n (txtAudioRef.current =\r\n textBox)\r\n }\r\n input={(ev) => AttachmentAudioRef(ev)}\r\n name=\"audioLabel\"\r\n placeholder={t(\r\n \"Press:audio_subtitle_placeholder\"\r\n )}\r\n htmlAttributes={{ maxlength: 17 }}\r\n />\r\n
\r\n {((attachmentAudioCount\r\n ? 0 + attachmentAudioCount : txtAudioRef?.current?.length\r\n ? 0 + txtAudioRef.current.length : 0) + '/17')\r\n }\r\n
\r\n
\r\n
\r\n {/* AUDIO SUBTITLE END */}\r\n {/* YOUTUBE VIDEO */}\r\n { dialogObjYtb.current = scope }}\r\n overlayClick={dialogOverlay}\r\n close={dialogOverlay}\r\n visible={false}\r\n showCloseIcon={true}\r\n width='45%'\r\n target={'#rteSection'}\r\n isModal={true}\r\n style={{ minHeight: 150 }}>\r\n \r\n {/* YOUTUBE TXT END */}\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 {/* WYSIWYG EDITOR END */}\r\n \r\n\r\n (sidebarRef.current = sidebar)}\r\n style={{ visibility: \"hidden\" }}\r\n created={sidebarCreated}\r\n type=\"Push\"\r\n position=\"Right\"\r\n open={sidebarOpen}\r\n closeOnDocumentClick={true}\r\n >\r\n
\r\n \r\n (gridMediaRef.current = gridComponent)\r\n }\r\n contextMenuItems={contextMenuItems}\r\n dataSource={[]}\r\n filterSettings={{ type: \"CheckBox\" }}\r\n allowPaging={true}\r\n allowSorting={true}\r\n locale={i18n.language}\r\n allowFiltering={true}\r\n allowResizing={true}\r\n pageSettings={{ pageSize: 6 }}\r\n created={gridCreated}\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
\r\n {!openModalConfirm ? (\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 execUpdateRteHeaderTemplate();\r\n setOpenModal(false);\r\n setOpenModalConfirm(false);\r\n }}\r\n >\r\n {t(\"Actions:exit\")}\r\n \r\n
\r\n )}\r\n
\r\n \r\n
\r\n );\r\n};\r\n","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { GlobalStateContext } from \"../general/GlobalState\";\r\nimport { MailingContactsContext } from \"../mailing/contacts/MailingContactsContext\";\r\nimport { ReleaseStateContext } from \"../releases/ReleaseState\";\r\nimport { getMailingGroupItems } from \"../../services/MailingSVC\";\r\nimport { getMailingGroupItemsGeneral } from \"../../services/MailingGeneralSVC\";\r\nimport { DropDownTreeComponent, MultiSelectComponent, CheckBoxSelection, Inject } from \"@syncfusion/ej2-react-dropdowns\";\r\nimport '../mailing/contacts/contacts.css';\r\n\r\nexport const GroupsBox = (props) => {\r\n let multiSelectGroups;\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const context = React.useContext(props.type ? ReleaseStateContext : MailingContactsContext);\r\n const [groups, setGroups] = React.useState(null);\r\n const [groupsGeneral, setGroupsGeneral] = React.useState(null);\r\n const { t } = useTranslation();\r\n\r\n React.useEffect(() => {\r\n let qString = '';\r\n if (props.type) {\r\n context.setGroupsSelected([]);\r\n qString = '?$filter=quantidadeMembros gt 0'\r\n }\r\n getMailingGroupItems(globalState.accessToken, qString).then(response => {\r\n if (response.ok) {\r\n response.json().then(result => {\r\n setGroups(result);\r\n });\r\n }\r\n });\r\n\r\n getMailingGroupItemsGeneral(globalState.accessToken, qString).then(response => {\r\n if (response.ok) {\r\n response.json().then(result => {\r\n setGroupsGeneral(result);\r\n });\r\n }\r\n });\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n if (context.groupsFilter && groups) {\r\n const groupsFiltered = groups.filter(item => (!context.groupsFilter.idpais || item.idpais === context.groupsFilter.idpais) &&\r\n (!context.groupsFilter.idregional || item.idregional === context.groupsFilter.idregional));\r\n multiSelectGroups.dataSource = groupsFiltered;\r\n\r\n }\r\n }, [context.groupsFilter]);\r\n\r\n const multiSelectChange = e => {\r\n context.setGroupsSelected(e.value);\r\n }\r\n\r\n const multiSelectChangeGeneral = e => {\r\n context.setGeneralGroupsSelected(e.value);\r\n }\r\n\r\n return (\r\n <>\r\n {props.type ?
\r\n \r\n
\r\n {groups &&\r\n multiSelectGroups = multiSelect}\r\n cssClass=\"e-filled\"\r\n dataSource={groups}\r\n fields={{ value: \"id\", text: \"nome\" }}\r\n placeholder={t(\"Contact:groups_placeholder\")}\r\n mode=\"Box\"\r\n change={multiSelectChange}\r\n value={context.groupsSelected}\r\n >\r\n \r\n \r\n }\r\n
\r\n
: groups && multiSelectGroups = multiSelect}\r\n cssClass=\"e-filled\"\r\n dataSource={groups}\r\n fields={{ value: \"id\", text: \"nome\" }}\r\n placeholder={t(\"Contact:groups_placeholder\")}\r\n mode=\"Box\"\r\n change={multiSelectChange}\r\n value={context.groupsSelected}\r\n >\r\n \r\n }\r\n\r\n {props.type &&
\r\n \r\n
\r\n {groupsGeneral &&\r\n \r\n \r\n \r\n }\r\n
\r\n
}\r\n \r\n\r\n )\r\n}","import * as React from 'react';\r\nimport { GlobalStateContext } from \"../../general/GlobalState\";\r\n\r\n\r\nconst MailingContactsContext = React.createContext();\r\n\r\nconst MailingContactsProviderGeneral = ({ children }) => {\r\n\r\n const [item, setItem] = React.useState(null);\r\n const [groupsSelected, setGroupsSelected] = React.useState([]);\r\n const [generalGroupsSelected, setGeneralGroupsSelected] = React.useState([]);\r\n const [contactListItems, setContactListItems] = React.useState(null);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport { MailingContactsContext, MailingContactsProviderGeneral };","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { GlobalStateContext } from \"../general/GlobalState\";\r\nimport { MailingContactsContext } from \"../generalMailing/contacts/MailingContactsContext\";\r\nimport { getMailingGroupItemsGeneral } from \"../../services/MailingGeneralSVC\";\r\nimport { ReleaseStateContext } from \"../releases/ReleaseState\";\r\nimport { MultiSelectComponent, CheckBoxSelection, Inject } from \"@syncfusion/ej2-react-dropdowns\";\r\nimport '../mailing/contacts/contacts.css';\r\n\r\nexport const GroupsBoxGeneral = (props) => {\r\n let multiSelectGroups;\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const context = React.useContext(props.type ? ReleaseStateContext : MailingContactsContext);\r\n const [groups, setGroups] = React.useState(null);\r\n const { t } = useTranslation();\r\n\r\n React.useEffect(() => {\r\n let qString = '';\r\n if (props.type) {\r\n context.setGroupsSelected([]);\r\n qString = '?$filter=quantidadeMembros gt 0'\r\n }\r\n getMailingGroupItemsGeneral(globalState.accessToken, qString).then(response => {\r\n if (response.ok) {\r\n response.json().then(result => {\r\n setGroups(result);\r\n });\r\n }\r\n });\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n if (context.generalGroupsFilter && groups) {\r\n const groupsFiltered = groups.filter(item => (!context.generalGroupsFilter.idpais || item.idpais === context.generalGroupsFilter.idpais) &&\r\n (!context.generalGroupsFilter.idregional || item.idregional === context.generalGroupsFilter.idregional));\r\n multiSelectGroups.dataSource = groupsFiltered;\r\n\r\n }\r\n }, [context.generalGroupsFilter]);\r\n\r\n // React.useEffect(() => {\r\n // console.log(context);\r\n // }, [context]);\r\n\r\n const multiSelectChange = e => {\r\n context.setGeneralGroupsSelected(e.value);\r\n }\r\n\r\n return (\r\n
\r\n {groups &&\r\n multiSelectGroups = multiSelect}\r\n cssClass=\"e-filled\"\r\n dataSource={groups}\r\n fields={{ value: \"id\", text: \"nome\" }}\r\n placeholder={t(\"Contact:groups_placeholder\")}\r\n mode=\"Box\"\r\n change={multiSelectChange}\r\n value={context.groupsSelected}\r\n >\r\n \r\n \r\n }\r\n
\r\n )\r\n}\r\n","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { GlobalStateContext } from \"../general/GlobalState\";\r\nimport { Container, Row, Col } from \"reactstrap\";\r\nimport { TextBoxComponent, FormValidator } from \"@syncfusion/ej2-react-inputs\";\r\nimport { CheckBoxComponent } from '@syncfusion/ej2-react-buttons';\r\nimport { DropDownListComponent } from '@syncfusion/ej2-react-dropdowns';\r\nimport { DialogComponent, Tooltip } from \"@syncfusion/ej2-react-popups\";\r\nimport { GridComponent, ColumnsDirective, ColumnDirective, Filter, Sort, ContextMenu, Page, Resize, Inject } from \"@syncfusion/ej2-react-grids\";\r\nimport { DataUtil } from \"@syncfusion/ej2-data\";\r\nimport { ReleaseStateContext } from \"../releases/ReleaseState\";\r\nimport { SendContent } from \"./SendContent\";\r\nimport { GroupsBox } from \"../Shared/GroupsBox\";\r\nimport { Actions } from \"../utilities/Actions\";\r\nimport { getCountries, getRegional } from \"../../services/SystemSVC\";\r\nimport { getMailingContactItems } from \"../../services/MailingSVC\";\r\nimport { addShippingStatusItem } from \"../../services/PressSVC\";\r\nimport './mailing.css';\r\nimport { GroupsBoxGeneral } from \"../Shared/GroupsBoxGeneral\";\r\n\r\nexport const SendItem = (props) => {\r\n let formObject;\r\n let gridInstance;\r\n let tooltip;\r\n let txtSubject;\r\n let txtMailList;\r\n\r\n const { t } = useTranslation();\r\n const initialValues = {\r\n assunto: \"\",\r\n receberCopia: false,\r\n listaEmails: \"\",\r\n idImprensa: props.idPress,\r\n grupos: []\r\n }\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const { releaseState, groupsSelected, groupsFilter, setGroupsFilter, setShowSendContent, generalGroupsSelected, generalGroupsFilter } = React.useContext(ReleaseStateContext);\r\n const [countriesPt, setCountriesPt] = React.useState([]);\r\n const [countriesEn, setCountriesEn] = React.useState([]);\r\n const [regionsPt, setRegionsPt] = React.useState([]);\r\n const [regionsEn, setRegionsEn] = React.useState([]);\r\n const [content, setContent] = React.useState(initialValues);\r\n const [openDialog, setOpenDialog] = React.useState(false);\r\n const [gridDataSource, setGridDataSource] = React.useState([]);\r\n const [sendBtnDisabled, setSendBtnDisabled] = React.useState(true);\r\n\r\n const _controls = {\r\n area: \"Releases\",\r\n class: \"release\",\r\n savePrimary: false,\r\n excludePrimary: \"\",\r\n urlView: \"\",\r\n urlPreview: \"\",\r\n urlDuplicate: \"\",\r\n urlSave: \"\",\r\n urlSend: () => sendContent(),\r\n sendDisabled: sendBtnDisabled,\r\n urlCancel: \"\",\r\n urlDelete: \"\",\r\n urlReturn: () => setShowSendContent(false)\r\n };\r\n\r\n const getGroups = () => {\r\n var data = [];\r\n var flag = true;\r\n var lookup = {};\r\n const groups = gridInstance.dataSource.map(value => value.grupos);\r\n\r\n groups.forEach((arr) => {\r\n arr.forEach((item) => {\r\n if (!(item.nome in lookup)) {\r\n data.push({ grupos: item.nome });\r\n lookup[item.nome] = true\r\n }\r\n })\r\n if (!arr.length && flag) {\r\n data.push({ \"\": true })\r\n }\r\n });\r\n return data;\r\n }\r\n\r\n const gridActionBegin = (args) => {\r\n if (args.requestType === 'filterbeforeopen' && args.columnName === 'grupos') {\r\n args.filterModel.options.dataSource = getGroups();\r\n }\r\n }\r\n\r\n DataUtil.fnOperators.equal = function (rowValues, filterValue, ignoreCase, ignoreAccent) {\r\n if (Array.isArray(rowValues)) {\r\n if (!filterValue) {\r\n return !rowValues.length;\r\n }\r\n return JSON.stringify(rowValues).includes(filterValue)\r\n } else {\r\n if (ignoreAccent) {\r\n rowValues = DataUtil.ignoreDiacritics(rowValues);\r\n filterValue = DataUtil.ignoreDiacritics(filterValue);\r\n }\r\n if (ignoreCase) {\r\n return DataUtil.toLowerCase(rowValues) === DataUtil.toLowerCase(filterValue);\r\n }\r\n return rowValues === filterValue;\r\n }\r\n };\r\n\r\n DataUtil.fnOperators.notequal = function (rowValues, filterValue, ignoreCase, ignoreAccent) {\r\n if (Array.isArray(rowValues)) {\r\n if (!filterValue)\r\n return rowValues.length;\r\n else if (JSON.stringify(rowValues).includes(filterValue))\r\n return rowValues.length > 1;\r\n\r\n return !rowValues.length || !JSON.stringify(rowValues).includes(filterValue);\r\n\r\n } else {\r\n if (ignoreAccent) {\r\n rowValues = DataUtil.ignoreDiacritics(rowValues);\r\n filterValue = DataUtil.ignoreDiacritics(filterValue);\r\n }\r\n return !DataUtil.fnOperators.equal(rowValues, filterValue, ignoreCase);\r\n }\r\n };\r\n\r\n const renderCellGroup = (args) => {\r\n if (args.column.id === \"grupos\") {\r\n let content = \"\";\r\n\r\n args.data[\"grupos\"].map((item, i) => {\r\n content += item.nome;\r\n if (i !== args.data[\"grupos\"].length - 1)\r\n content += \", \";\r\n });\r\n\r\n if (content) {\r\n tooltip = new Tooltip({\r\n content: content\r\n }, args.cell);\r\n }\r\n return args.cell;\r\n }\r\n }\r\n\r\n const groupTemplate = (e) => {\r\n return (\r\n e.grupos.map(item => (\r\n {item.nome}\r\n ))\r\n );\r\n }\r\n\r\n React.useEffect(() => {\r\n const formValidator = {\r\n rules: {\r\n 'subjectMail': {\r\n required: [true, t('Validation:required')]\r\n }\r\n },\r\n customPlacement: (inputElement, errorElement) => {\r\n inputElement.parentElement.parentElement.appendChild(errorElement);\r\n }\r\n };\r\n formObject = new FormValidator('#formSendItem', formValidator);\r\n });\r\n\r\n React.useEffect(() => {\r\n getCountries(globalState.accessToken).then(response => {\r\n if (response.ok)\r\n response.json().then(items => {\r\n let arrPt = [];\r\n let arrEn = [];\r\n items.map(item => {\r\n arrPt.push({ id: item.id, nome: item.nomePt });\r\n arrEn.push({ id: item.id, nome: item.nomeEn });\r\n });\r\n setCountriesPt(arrPt);\r\n setCountriesEn(arrEn);\r\n });\r\n });\r\n\r\n getRegional(globalState.accessToken).then(response => {\r\n if (response.ok)\r\n response.json().then(items => {\r\n let arrPt = [];\r\n let arrEn = [];\r\n items.map(item => {\r\n arrPt.push({ id: item.id, nome: item.nomePt });\r\n arrEn.push({ id: item.id, nome: item.nomeEn });\r\n });\r\n setRegionsPt(arrPt);\r\n setRegionsEn(arrEn);\r\n });\r\n });\r\n txtSubject.value = releaseState.releaseItem.titulo;\r\n setContent(content => ({ ...content, assunto: releaseState.releaseItem.titulo }));\r\n\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n txtSubject.placeholder = t('SendContent:subject_mail_placeholder');\r\n txtMailList.placeholder = t('SendContent:list_sending_placeholder');\r\n }, [i18n.language]);\r\n\r\n React.useEffect(() => {\r\n if (openDialog) {\r\n if (groupsSelected.length) {\r\n // const qString = `?$select=jornalista,email,grupos&$expand=grupos&$filter=grupos/any(d:d/id in (${groupsSelected.join()}))`;\r\n getMailingContactItems(globalState.accessToken).then(response => {\r\n if (response.ok)\r\n response.json().then(setGridDataSource);\r\n });\r\n }\r\n else\r\n setGridDataSource([]);\r\n }\r\n }, [openDialog]);\r\n\r\n const emailTemplate = (e) => {\r\n console.log(e);\r\n return (\r\n
\r\n {e.email.length > 0 && e.email.map(email => (\r\n {email.email} \r\n )\r\n )}\r\n
\r\n )\r\n }\r\n\r\n React.useEffect(() => {\r\n if (gridInstance)\r\n gridInstance.refresh();\r\n }, [i18n.language]);\r\n\r\n React.useEffect(() => {\r\n setSendBtnDisabled(!content.receberCopia && !content.listaEmails && !groupsSelected.length && !generalGroupsSelected.length)\r\n }, [content, groupsSelected, generalGroupsSelected]);\r\n\r\n const inputChange = e => {\r\n if (e.event)\r\n setContent(content => ({ ...content, [e.event.target.id]: e.value }));\r\n }\r\n\r\n const checkBoxChange = e => {\r\n if (e.event)\r\n setContent(content => ({ ...content, [e.event.target.id]: e.checked }));\r\n }\r\n\r\n const dropdownlistChange = e => {\r\n if (e.element)\r\n setGroupsFilter(groupsFilter => ({ ...groupsFilter, [e.element.id]: e.value }));\r\n }\r\n\r\n function validateEmail(email) {\r\n const re = /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n return re.test(email);\r\n }\r\n\r\n const emailsOnChange = (e) => {\r\n if (e.event) {\r\n if (e.value) {\r\n const emails = e.value.split(';')\r\n let emailsList = [];\r\n emails.map(email => {\r\n const mail = email.trim();\r\n if (validateEmail(mail))\r\n emailsList.push(mail);\r\n });\r\n if (emailsList.length)\r\n setContent(content => ({ ...content, listaEmails: emailsList.join(';') }));\r\n }\r\n else\r\n setContent(content => ({ ...content, listaEmails: \"\" }));\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n console.log(generalGroupsFilter);\r\n }, [generalGroupsFilter]);\r\n\r\n const sendContent = () => {\r\n if (formObject.validate()) {\r\n const groups = [];\r\n groupsSelected.map(id => {\r\n groups.push({ id });\r\n });\r\n\r\n generalGroupsSelected.map(id => {\r\n groups.push({ id, grupoGeral: true });\r\n });\r\n\r\n content.grupos = groups;\r\n addShippingStatusItem(globalState.accessToken, content, props.idType).then(setShowSendContent(false));\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n {globalState.accessToken === null ? :\r\n <>\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n

{t('SendContent:sending_content')}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
e.preventDefault()}>\r\n
\r\n \r\n txtSubject = textBox}\r\n name=\"subjectMail\"\r\n htmlAttributes={{ maxLength: 200 }}\r\n cssClass=\"e-flat\"\r\n placeholder={t('SendContent:subject_mail_placeholder')}\r\n change={inputChange}\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

{t('SendContent:sending_group')}

\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n

{t('SendContent:sending_list')}

\r\n
\r\n
\r\n
\r\n
\r\n \r\n txtMailList = textBox}\r\n placeholder={t('SendContent:list_sending_placeholder')}\r\n change={emailsOnChange}\r\n />\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n setOpenDialog(false)}\r\n >\r\n E-mails\r\n gridInstance = grid}\r\n dataSource={gridDataSource}\r\n filterSettings={{ type: 'CheckBox' }}\r\n allowFiltering={true}\r\n allowPaging={true}\r\n allowSorting={true}\r\n allowExcelExport={true}\r\n allowResizing={true}\r\n pageSettings={{ pageSize: 9 }}\r\n actionBegin={gridActionBegin}\r\n queryCellInfo={renderCellGroup}\r\n locale={i18n.language}>\r\n \r\n \r\n \r\n filterTemplate(i18n.language ===\"pt\" ? item.nomePaisPT : item.nomePaisEN)}\r\n width='240'>\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","export const UploadIcon = '';\r\n\r\n//AJUSTAR URL ABAIXO PRA ARQUIVO .ENV LIKE\r\nexport const storageAccUrl = process.env.REACT_APP_AZURE_STORAGE;\r\n\r\n//#region PRESS TEMPLATES\r\nexport const PressBoilerPlatePT = `

\r\n Sobre a Vale\r\n
\r\n
\r\n A Vale é uma mineradora global que existe para melhorar a vida e transformar o futuro juntos. Uma das maiores produtoras mundiais de minério de ferro e níquel e importante produtora de cobre, a Vale tem sede no Brasil e atuação ao redor do mundo. Suas operações compreendem sistemas logísticos integrados, incluindo aproximadamente 2.000 quilômetros de ferrovias, terminais marítimos e 10 portos distribuídos pelo mundo. A Vale tem as ambições de ser reconhecida pela sociedade como referência em segurança, a melhor operadora e a mais confiável, uma organização orientada aos talentos, líder em mineração sustentável, e referência em criação e compartilhamento de valor.\r\n

`;\r\n\r\nexport const PressBoilerPlateEN = `

\r\n About Vale\r\n
\r\n
\r\n Vale is a global mining company that exists to improve lives and transform the future together. One of the world's largest producers of iron ore and nickel and a major copper producer, Vale is headquartered in Brazil and operates around the world. Its operations comprise integrated logistics systems, including approximately 2,000 kilometres of railways, marine terminals and 10 ports distributed around the globe. Vale has the ambition to be recognized by society as a benchmark in safety, the best-in-class reliable operator, a talent-driven organization, a leader in sustainable mining, and a benchmark in creating and sharing value.\r\n

`;\r\n\r\n\r\n\r\nexport const PressFooterPT = `

\r\n © `+ new Date().getFullYear() +` - Vale | Todos os direitos reservados\r\n

`;\r\n\r\nexport const PressFooterEN = `

\r\n © `+ new Date().getFullYear() +` - Vale | All rights reserved\r\n

`;\r\n \r\nexport const PressHeaderPT = `\r\n Media Release\r\n `; \r\n \r\nexport const PressHeaderEN = `\r\n Media Release\r\n `; \r\n//#endregion","import i18n from \"i18next\";\r\nimport { PressBoilerPlatePT, PressBoilerPlateEN, PressHeaderPT, PressHeaderEN, PressFooterPT, PressFooterEN } from '../utilities/Constants';\r\n\r\nexport function richTextDefault(args, lang, id) {\r\n let language;\r\n if (lang === \"pt\" || lang === \"en\") {\r\n language = lang;\r\n } else {\r\n language = lang ? lang === '1' ? 'pt' : 'en' : i18n.language;\r\n }\r\n return (\r\n `\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\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 \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 \r\n \r\n
\r\n ${getImagesTitle(id, lang) || ''}\r\n
\r\n
\r\n

 

\r\n
\r\n

\r\n \r\n ${args.date.toLocaleDateString(lang === 2 ? \"en\" : \"pt\") || ''}\r\n \r\n

\r\n

\r\n \r\n ${args.title || ''}\r\n \r\n

\r\n

 

\r\n
\r\n

\r\n \r\n \r\n ${args.subtitle || ''} \r\n
    \r\n
    \r\n
    \r\n

    \r\n

     

    \r\n
    \r\n ${args.content || ''}\r\n
    \r\n
    \r\n

     

    \r\n
    \r\n ${args.boiler || ''}\r\n
    \r\n ${args.signature || ''}\r\n
    \r\n ${language === \"pt\" ? PressFooterPT || '' : PressFooterEN || ''}\r\n
    `\r\n );\r\n}\r\n\r\n{/* \r\n \r\n ${args.footer}\r\n \r\n */}\r\n\r\n\r\nexport function getReleaseAttachmentsHeader(attachmentTitle, rows) {\r\n return (\r\n `\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n ${attachmentTitle || ''}\r\n \r\n
    `\r\n );\r\n}\r\n\r\nexport function getReleaseDefault(type, lang) {\r\n let language = lang ? lang === 1 ? 'pt' : 'en' : i18n.language;\r\n switch (type) {\r\n case 1:\r\n return {\r\n header: getImagesTitle(type, language),\r\n date: new Date(),\r\n title: language === \"pt\" ? \"Título do release...\" : \"Release title...\",\r\n subtitle: \"\",\r\n content: language === \"pt\" ? \"Digite aqui um conteúdo para o release...\" : \"Type the release content in here...\",\r\n boiler: '',\r\n footer: ''\r\n };\r\n case 2:\r\n return {\r\n header: getImagesTitle(type, language),\r\n date: new Date(),\r\n title: language === \"pt\" ? \"Título da nota...\" : \"Statement title...\",\r\n subtitle: \"\",\r\n content: language === \"pt\" ? \"Digite aqui um conteúdo para a nota...\" : \"Type the statement content in here...\",\r\n boiler: '',\r\n footer: ''\r\n };\r\n case 3:\r\n return {\r\n header: getImagesTitle(type, language),\r\n date: new Date(),\r\n title: language === \"pt\" ? \"Título do posicionamento...\" : \"Position paper title...\",\r\n subtitle: \"\",\r\n content: language === \"pt\" ? \"Digite aqui um conteúdo para o posicionamento...\" : \"Type the position paper content in here...\",\r\n boiler: '',\r\n footer: ''\r\n };\r\n case 4:\r\n return {\r\n header: getImagesTitle(type, language),\r\n date: new Date(),\r\n title: language === \"pt\" ? \"Título do Q&A...\" : \"Q&A title...\",\r\n subtitle: \"\",\r\n content: language === \"pt\" ? \"Digite aqui um conteúdo para o Q & A...\" : \"Type the Q&A content in here...\",\r\n boiler: '',\r\n footer: ''\r\n };\r\n case 6:\r\n return {\r\n header: getImagesTitle(type, language),\r\n date: new Date(),\r\n title: language === \"pt\" ? \"Título do aviso de webcast...\" : \"Webcast notice title...\",\r\n subtitle: \"\",\r\n content: language === \"pt\" ? \"Digite aqui um conteúdo para o aviso de webcast...\" : \"Type the webcast notice content in here...\",\r\n boiler: '',\r\n footer: ''\r\n };\r\n case 7:\r\n return {\r\n header: getImagesTitle(type, language),\r\n date: new Date(),\r\n title: language === \"pt\" ? \"Título do aviso de pauta...\" : \"Assignment notice title...\",\r\n subtitle: \"\",\r\n content: language === \"pt\" ? \"Digite aqui um conteúdo para o aviso de pauta...\" : \"Type the assignment notice content in here...\",\r\n boiler: '',\r\n footer: ''\r\n };\r\n }\r\n}\r\n\r\nexport function getReleaseByProps(props) {\r\n return {\r\n header: '',\r\n date: new Date(props.data),\r\n title: props.titulo,\r\n subtitle: props.subtitulo,\r\n content: props.conteudo,\r\n boiler: '',\r\n footer: ''\r\n }\r\n}\r\n\r\nexport function emailSnippets(type, lang) {\r\n switch (type) {\r\n case \"Cab\": {\r\n switch (lang) {\r\n case 'pt':\r\n return (\r\n PressHeaderPT\r\n )\r\n case 'en':\r\n return (\r\n PressHeaderEN\r\n )\r\n }\r\n }\r\n case \"Rod\":\r\n switch (lang) {\r\n case 'pt':\r\n return (\r\n PressFooterPT\r\n )\r\n case 'en':\r\n return (\r\n PressFooterEN\r\n )\r\n }\r\n case \"BoPla\":\r\n switch (lang) {\r\n case 'pt':\r\n return (\r\n PressBoilerPlatePT\r\n )\r\n case 'en':\r\n return (\r\n PressBoilerPlateEN\r\n )\r\n }\r\n //case \"Img\":\r\n // return {\r\n // insertImage();\r\n // };\r\n }\r\n}\r\n\r\nexport function getImagesTitleString(id, lang) {\r\n let language;\r\n if (lang === \"pt\" || lang === \"en\") {\r\n language = lang;\r\n } else {\r\n language = lang ? lang === '1' ? 'pt' : 'en' : i18n.language;\r\n }\r\n\r\n switch (id) {\r\n case 1:\r\n return \"header.jpg\"\r\n case 2:\r\n return language === \"pt\"\r\n ? \"Cabeçalho_Nota_PT.png\"\r\n : \"Cabeçalho_Nota_EN.png\"\r\n case 3:\r\n return language === \"pt\"\r\n ? \"Cabeçalho_Posicionamento_PT.png\"\r\n : \"Cabeçalho_Posicionamento_EN.png\"\r\n case 4:\r\n return language === \"pt\"\r\n ? \"Cabeçalho_QA_PT.png\"\r\n : \"Cabeçalho_QA_EN.png\"\r\n case 6:\r\n return language === \"pt\"\r\n ? \"Cabeçalho_Webcast_PT.png\"\r\n : \"Cabeçalho_Webcast_EN.png\"\r\n case 7:\r\n return language === \"pt\"\r\n ? \"Cabeçalho_Aviso_PT.png\"\r\n : \"Cabeçalho_Aviso_EN.png\"\r\n }\r\n}\r\n\r\nexport function getImagesTitle(id, lang) {\r\n let language;\r\n if (lang === \"pt\" || lang === \"en\") {\r\n language = lang;\r\n } else {\r\n language = lang ? lang === '1' ? 'pt' : 'en' : i18n.language;\r\n }\r\n\r\n switch (id) {\r\n case 1:\r\n return `\"\"`\r\n case 2:\r\n return language === \"pt\"\r\n ? `\"\"`\r\n : `\"\"`\r\n case 3:\r\n return language === \"pt\"\r\n ? `\"\"`\r\n : `\"\"`\r\n case 4:\r\n return language === \"pt\"\r\n ? `\"\"`\r\n : `\"\"`\r\n case 6:\r\n return language === \"pt\"\r\n ? `\"\"`\r\n : `\"\"`\r\n case 7:\r\n return language === \"pt\"\r\n ? `\"\"`\r\n : `\"\"`\r\n }\r\n}\r\n","export function getFileExtension(fileName) {\r\n\r\n if (!fileName) return '';\r\n const arrName = fileName.trim().split('.');\r\n if (arrName.length > 1) {\r\n let ext = arrName.slice(-1)[0].split('&');\r\n return getFileExtensionName(ext[0].toLowerCase(), fileName);\r\n }\r\n else return '';\r\n}\r\n\r\nexport function getFileExtensionName(extension, url) {\r\n\r\n const urlEdited = url.includes('https://cdn.valecgc.com')\r\n ? url.replace('https://cdn.valecgc.com', `${process.env.REACT_APP_AZURE_STORAGE}`)\r\n : url.replace('https://filescdncgc.inparlabs.com.br', `${process.env.REACT_APP_AZURE_STORAGE}`);\r\n\r\n switch (extension) {\r\n case 'pdf':\r\n return `${process.env.REACT_APP_AZURE_STORAGE}/press/System/icon-pdf.png`;\r\n case 'doc':\r\n case 'docx':\r\n case 'docm':\r\n case 'docb':\r\n return `${process.env.REACT_APP_AZURE_STORAGE}/press/System/icon-doc.png`;\r\n case 'ppt':\r\n case 'pps':\r\n case 'pptx':\r\n case 'pptm':\r\n case 'ppsx':\r\n return `${process.env.REACT_APP_AZURE_STORAGE}/press/System/icon-ppt.png`;\r\n case 'xls':\r\n case 'csv':\r\n case 'xlm':\r\n case 'xlsx':\r\n case 'xlsm':\r\n case 'xlsb':\r\n return `${process.env.REACT_APP_AZURE_STORAGE}/press/System/icon-excel.png`;\r\n case 'txt':\r\n return `${process.env.REACT_APP_AZURE_STORAGE}/press/System/icon-text.png`;\r\n case 'jpg':\r\n case 'png':\r\n case 'jpeg':\r\n case 'svg':\r\n case 'jif':\r\n case 'jfif':\r\n case 'jpe':\r\n case 'jfi':\r\n case 'gif':\r\n case 'webp':\r\n case 'tiff':\r\n case 'bmp':\r\n return urlEdited;\r\n case 'one':\r\n return `${process.env.REACT_APP_AZURE_STORAGE}/press/System/icon-onenote.png`;\r\n case 'mp4':\r\n case 'mov':\r\n case 'wmv':\r\n case 'avi':\r\n case 'mkv':\r\n return `${process.env.REACT_APP_AZURE_STORAGE}/press/System/icon-video.png`;\r\n case 'zip':\r\n case 'rar':\r\n case '7z':\r\n return `${process.env.REACT_APP_AZURE_STORAGE}/press/System/icon-compacted.png`;\r\n case 'psd':\r\n return `${process.env.REACT_APP_AZURE_STORAGE}/press/System/icon-psd.png`;\r\n case 'mp3':\r\n case 'wma':\r\n case 'wav':\r\n return `${process.env.REACT_APP_AZURE_STORAGE}/press/System/icon-music.png`;\r\n default:\r\n return `${process.env.REACT_APP_AZURE_STORAGE}/press/System/icon-attach-black.png`;\r\n }\r\n}\r\n\r\nexport function isOrContainsNode(node, container) {\r\n\r\n while (node) {\r\n if (node === container) {\r\n return true;\r\n }\r\n node = node.parentNode;\r\n }\r\n return false;\r\n};\r\n\r\nexport function langName(langId) {\r\n switch(langId) {\r\n case 1: return 'pt'\r\n case 2: return 'en'\r\n default: return undefined\r\n }\r\n}\r\n\r\nexport function convertDateToUTC(date) {\r\n\r\n return new Date(\r\n date.getUTCFullYear(),\r\n date.getUTCMonth(),\r\n date.getUTCDate(),\r\n date.getUTCHours(),\r\n date.getUTCMinutes(),\r\n date.getUTCSeconds()\r\n );\r\n}\r\n\r\nexport function elementContainsSelection(el, sel) {\r\n if (sel) {\r\n if (sel.rangeCount > 0) {\r\n for (var i = 0; i < sel.rangeCount; ++i) {\r\n if (\r\n !isOrContainsNode(\r\n sel.getRangeAt(i).commonAncestorContainer,\r\n el\r\n )\r\n ) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n } else if ((sel = document.selection) && sel.type !==\"Control\") {\r\n return isOrContainsNode(sel.createRange().parentElement(), el);\r\n }\r\n return false;\r\n}\r\n\r\nexport function restoreSelectionDocument(containerEl, savedSel) {\r\n\r\n var textRange = document.body.createTextRange();\r\n textRange.moveToElementText(containerEl);\r\n textRange.collapse(true);\r\n textRange.moveEnd(\"character\", savedSel.end);\r\n textRange.moveStart(\"character\", savedSel.start);\r\n return textRange.select();\r\n}\r\n\r\nexport function getRelativeFilePath(absolutePath) {\r\n\r\n const filePathSplited = absolutePath.split(\"/\");\r\n const guidOrId = filePathSplited[filePathSplited.length - 2];\r\n const filename = filePathSplited[filePathSplited.length - 1];\r\n return `${guidOrId}/${filename}`;\r\n}\r\n","import { getFileExtension } from './Functions'\r\n\r\nexport function clearAttachmentsArea(html) {\r\n\r\n const doc = new DOMParser().parseFromString(html, \"text/html\");\r\n const attachmentContainer = doc.getElementById(\"attachmentWrapper\");\r\n if (!attachmentContainer) {\r\n const attachmentsContainer = doc.getElementById(\"rteAttachments\");\r\n attachmentsContainer.innerHTML = \"\";\r\n }\r\n return doc.documentElement.innerHTML;\r\n}\r\n\r\nexport function youtube_parser(url) {\r\n var regExp = /^.*((youtu.be\\/)|(v\\/)|(\\/u\\/\\w\\/)|(embed\\/)|(watch\\?))\\??v?=?([^#&?]*).*/;\r\n var match = url.match(regExp);\r\n return (match && match[7].length ===11) ? match[7] : false;\r\n}\r\n\r\nexport function getPressMediaTemplate(iconPath, filename, mediaUrl, type, description) {\r\n\r\n const newExt = getFileExtension(mediaUrl)\r\n\r\n switch(type) {\r\n case 'mp3':\r\n return `\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ${filename || ''}\r\n \r\n \r\n ${description ? '
    ' + description : ''}\r\n
    \r\n
    `\r\n case 'attachment':\r\n return `\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n ${filename || ''}\r\n
    `\r\n default:\r\n return ``\r\n }\r\n\r\n}\r\n\r\nexport function mountSignature({id, idregional, tituloPT, tituloEN, urlpt, urlen, colaboradores, redesSociais}, lang, token) {\r\n\r\n const title = lang === \"pt\" ? tituloPT : tituloEN;\r\n const getUrlFromSocialMedia = (sm) => lang === \"pt\" ? sm.url : sm.urlen;\r\n\r\n return title ? `\r\n

    \r\n \r\n ${title}
    \r\n ${colaboradores.filter(i => i.nome || i.telefone || i.email || i.celular)\r\n .map((colaborador) => `\r\n ${colaborador.nome && colaborador.nome}\r\n ${colaborador.telefone && (colaborador.nome && \"- Tel: \") + colaborador.telefone}\r\n ${colaborador.celular && ((colaborador.telefone && \"/ Cel: \") || (colaborador.nome && \"- Cel: \")) + colaborador.celular}\r\n ${(colaborador.nome || colaborador.telefone || colaborador.celular) && colaborador.email && `
    `}\r\n \r\n ${colaborador.email && colaborador.email}\r\n `\r\n )\r\n .join(\"
    \")\r\n }\r\n \r\n
    ${lang === \"pt\" ? urlpt : urlen}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ${redesSociais.filter(getUrlFromSocialMedia)\r\n .map(SM => `\r\n \r\n ${SM.id ?\r\n ``\r\n : `${SM.iconeB64 && `\r\n `\r\n }`\r\n }\r\n \r\n   \r\n \r\n \r\n ${getUrlFromSocialMedia(SM)}\r\n \r\n \r\n `\r\n ).join(\"
    \")\r\n }\r\n

    ` : \"\";\r\n}\r\n\r\nexport function getYoutubeVideoTemplate(id) {\r\n const youtubeVideo =\r\n `\r\n \r\n \r\n  \r\n \r\n \r\n `\r\n return youtubeVideo;\r\n}\r\n\r\nexport function getPressVideoTemplate(videoUrl, thumbUrl) {\r\n return `\r\n \r\n\r\n
    \r\n \r\n  \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\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","import { requestAPI } from '../components/utilities/Utils';\r\nimport { mountSignature } from '../helpers/EmailCreator';\r\n\r\nexport async function getSignatureItems(token) {\r\n const reqUrl = \"_api/Signature/GetSignaturesItems\";\r\n return requestAPI(reqUrl, \"GET\", \"\", null, token, false);\r\n}\r\n\r\nexport async function getSignatureItemByRegion(token, regionalId) {\r\n const qstring = regionalId ? `?regionalId=${regionalId}` : '';\r\n return requestAPI(\"_api/Signature/GetSignaturesItemByRegional\", \"GET\", qstring, null, token, false);\r\n};\r\n\r\nexport async function getAndMountSignature(globalState, regionalId, lang) {\r\n\t\r\n\tconst response = await getSignatureItemByRegion(globalState.accessToken, regionalId);\r\n\tif(response && response.ok && response.status !== 204) {\r\n\r\n\t\tconst newSig = await response.json();\r\n\r\n\t\treturn {\r\n\t\t\tnewSig, \r\n\t\t\tnewSigContent: mountSignature(newSig, lang, globalState.tokenLightWeight)\r\n\t\t};\r\n\t} else {\r\n\t\treturn {newSig: null, newSigContent: \"\"}\r\n\t}\r\n}\r\n\r\nexport async function getSignatureItem(token, id) {\r\n const qstring = id ? `?signatureId=${id}` : '';\r\n return requestAPI(\"_api/Signature/GetSignaturesItem\", \"GET\", qstring, null, token, false);\r\n}\r\n\r\nexport async function addOrUpdateSignatureItem(token, body) {\r\n const raw = JSON.stringify(body);\r\n const endPointURL = body.id ? \"_api/Signature/UpdateSignatureItem\" : \"_api/Signature/AddSignatureItem\"\r\n return requestAPI(endPointURL, \"POST\", \"\", raw, token, false);\r\n}\r\n\r\nexport function getSignaturePhoto(url, callback) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.onreadystatechange = function () {\r\n if (xhr.readyState ===4) {\r\n callback(this.response)\r\n }\r\n }\r\n xhr.open('GET', url);\r\n xhr.responseType = 'blob';\r\n xhr.send();\r\n}\r\n\r\nexport async function deleteSignature(token, id) {\r\n const qstring = `?signatureId=${id}`;\r\n return requestAPI(\"_api/Signature/DeleteSignatureItem\", \"POST\", qstring, null, token, false);\r\n}\r\n","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { GlobalStateContext } from \"../../general/GlobalState\";\r\nimport { Container, Row } from \"reactstrap\";\r\nimport { Buttons } from \"../../utilities/Buttons\";\r\nimport { StatementsList } from \"../../statements/StatementsList\";\r\nimport PermissionRedirect from '../../utilities/PermissionRedirect/PermissionRedirect';\r\n\r\nlet userPermission;\r\n\r\nexport const Statements = () => {\r\n\r\n const { t } = useTranslation();\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [redirect, setRedirect] = React.useState(false);\r\n const [idStatement, setIdStatement] = React.useState(null);\r\n const [gridInstance, setGridInstance] = React.useState(null);\r\n\r\n React.useEffect(() => {\r\n let globalPermissions = globalState.permissions;\r\n userPermission = globalPermissions.filter((i) => i.accessArea === \"Notas\").map((i) => (i.permission));\r\n }, [globalState]);\r\n\r\n const _controls = {\r\n permit: userPermission ? userPermission : null,\r\n export: () => exportStatement(),\r\n import: \"\",\r\n new: () => setRedirect(true),\r\n back: \"\",\r\n };\r\n\r\n const editStatement = (info) => {\r\n setIdStatement(info.id);\r\n setRedirect(true);\r\n }\r\n\r\n const exportStatement = () => {\r\n if (gridInstance) {\r\n let lang = i18n.language;\r\n let gridInstanceExport = gridInstance;\r\n gridInstanceExport.dataSource.map(function (x) {\r\n x.bloqueado = x.bloqueado ? lang === 'pt' ? 'Bloqueado' : 'Blocked' : lang === 'pt' ? 'Terminado' : 'Finished';\r\n x.data = new Date(x.data).toLocaleDateString(lang);\r\n return x;\r\n });\r\n gridInstanceExport.excelExport();\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n {globalState.accessToken === null ? :\r\n redirect ? (\r\n idStatement === null ?\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

    {t('Statements:title')}

    \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}","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { GlobalStateContext } from \"../../general/GlobalState\";\r\nimport { Container, Row } from \"reactstrap\";\r\nimport { Buttons } from \"../../utilities/Buttons\";\r\nimport { PositionPaperList } from \"../../position/PositionList\";\r\nimport PermissionRedirect from '../../utilities/PermissionRedirect/PermissionRedirect';\r\n\r\nlet userPermission;\r\n\r\nexport const PositionPaper = () => {\r\n\r\n const { t } = useTranslation();\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [redirect, setRedirect] = React.useState(false);\r\n const [idPositionPaper, setIdPositionPaper] = React.useState(null);\r\n const [gridInstance, setGridInstance] = React.useState(null);\r\n\r\n React.useEffect(() => {\r\n let globalPermissions = globalState.permissions;\r\n userPermission = globalPermissions.filter((i) => i.accessArea === \"Posicionamentos\").map((i) => (i.permission));\r\n }, [globalState]);\r\n\r\n const _controls = {\r\n permit: userPermission ? userPermission : null,\r\n export: () => exportPositionPaper(),\r\n import: \"\",\r\n new: () => setRedirect(true),\r\n back: \"\",\r\n };\r\n\r\n const editPositionPaper = (info) => {\r\n setIdPositionPaper(info.id);\r\n setRedirect(true);\r\n }\r\n\r\n const exportPositionPaper = () => {\r\n if (gridInstance) {\r\n let lang = i18n.language;\r\n let gridInstanceExport = gridInstance;\r\n gridInstanceExport.dataSource.map(function (x) {\r\n x.bloqueado = x.bloqueado ? lang === 'pt' ? 'Bloqueado' : 'Blocked' : lang === 'pt' ? 'Terminado' : 'Finished';\r\n x.data = new Date(x.data).toLocaleDateString(lang);\r\n return x;\r\n });\r\n gridInstanceExport.excelExport();\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n {globalState.accessToken === null ? :\r\n redirect ? (\r\n idPositionPaper === null ?\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

    {t('PositionPaper:title')}

    \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}","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { GlobalStateContext } from \"../general/GlobalState\";\r\nimport { Container, Row, Col } from \"reactstrap\";\r\nimport { DialogComponent } from \"@syncfusion/ej2-react-popups\";\r\nimport { Actions } from \"../utilities/Actions\";\r\nimport { MailingStatus } from \"../releases/MailingStatus\";\r\nimport { Export } from \"../utilities/Export\";\r\nimport { ChangeHistory } from \"../releases/ChangeHistory\";\r\nimport { SendItem } from \"../mailing/SendItem\"\r\nimport { getPressItem, addPressItem, deletePressItem, duplicatePressItem, getMailingShippingStatusItems, duplicateForwardPressItem } from \"../../services/PressSVC\";\r\nimport { getRegional } from \"../../services/SystemSVC\";\r\nimport { PressForm } from \"../Shared/PressForm\";\r\nimport { ReleaseStateContext } from \"../releases/ReleaseState\";\r\nimport { storageAccUrl } from \"../utilities/Constants\";\r\nimport PermissionRedirect from \"../utilities/PermissionRedirect/PermissionRedirect\";\r\nimport { hasPermissions } from \"../utilities/Utils\";\r\nimport { getAndMountSignature } from \"../../services/SignatureSVC\";\r\n\r\n// let richTextValue;\r\n//let releaseItem;\r\n\r\nexport const ReleasesItem = (props) => {\r\n let itemId = props.match.params.id;\r\n const { t } = useTranslation();\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const { releaseState, setReleaseState, showSendContent, setShowSendContent, redirectId, setRedirectId } = React.useContext(ReleaseStateContext);\r\n const [redirect, setRedirect] = React.useState(false);\r\n const [showDialog, setShowDialog] = React.useState(false);\r\n const [dialogDelete, setDialogDelete] = React.useState(false);\r\n const [regionalId, setRegionalId] = React.useState(null);\r\n const [openModalRegional, setOpenModalRegional] = React.useState(false);\r\n const [regionalList, setRegionalList] = React.useState([]);\r\n const [fwdConfirmationModal, setFwdConfirmationModal] = React.useState(false);\r\n const [disabledBtn, setDisabledBtn] = React.useState(false);\r\n\r\n const modalRef = React.useRef();\r\n\r\n const handleRef = (ref) => {\r\n if (modalRef?.current?.contains(ref?.target)) {\r\n return;\r\n }\r\n setOpenModalRegional(false);\r\n }\r\n\r\n let _controls = React.useRef({\r\n area: \"Releases\",\r\n class: \"release\",\r\n customPermissions: !itemId,\r\n savePrimary: !!itemId,\r\n excludePrimary: true,\r\n urlView: () => setShowDialog(true),\r\n urlPreview: false,\r\n urlDuplicate: itemId ? () => duplicateRelease() : false,\r\n urlForward: itemId ? () => setOpenModalRegional(true) : false,\r\n urlSave: undefined,\r\n form: \"formReleaseItem\",\r\n urlSend: itemId ? () => setShowSendContent(true) : false,\r\n urlCancel: () => {\r\n setReleaseState({\r\n releaseItem: null,\r\n urlItemId: null,\r\n changeInfo: null\r\n });\r\n setRedirect(true);\r\n },\r\n urlDelete: itemId ? () => setDialogDelete(true) : false\r\n });\r\n\r\n const initialValue = {\r\n id: null,\r\n titulo: \"\",\r\n subtitulo: \"\",\r\n autores: \"\",\r\n idAreaNegocio: 0,\r\n idPais: 0,\r\n idRegional: \"\",\r\n data: new Date(),\r\n aprovadoPor: \"\",\r\n conteudo: null,\r\n bloqueado: false,\r\n language: 1,\r\n historico: []\r\n };\r\n\r\n React.useEffect(() => {\r\n _controls.current = {\r\n area: \"Releases\",\r\n class: \"release\",\r\n customPermissions: !itemId,\r\n savePrimary: !!itemId,\r\n excludePrimary: true,\r\n urlView: () => setShowDialog(true),\r\n urlPreview: false,\r\n urlDuplicate: itemId ? () => duplicateRelease() : false,\r\n urlForward: itemId ? () => setOpenModalRegional(true) : false,\r\n urlSave: undefined,\r\n form: \"formReleaseItem\",\r\n urlSend: itemId ? () => setShowSendContent(true) : false,\r\n urlCancel: () => {\r\n setReleaseState({\r\n releaseItem: null,\r\n urlItemId: null,\r\n changeInfo: null\r\n });\r\n setRedirect(true);\r\n },\r\n urlDelete: itemId ? () => setDialogDelete(true) : false\r\n }\r\n }, [redirectId]);\r\n\r\n React.useEffect(() => {\r\n setShowSendContent(false);\r\n setReleaseState({\r\n releaseItem: initialValue,\r\n urlItemId: null,\r\n changeInfo: null,\r\n mailingStatus: []\r\n });\r\n setRedirectId(null);\r\n\r\n if (itemId) {\r\n async function load() {\r\n let _releaseItem = await getPressItem(globalState.accessToken, itemId, 1)\r\n .then(response => {\r\n if (response.ok)\r\n return response.json()\r\n });\r\n\r\n let mailingSent = await getMailingShippingStatusItems(globalState.accessToken, itemId)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n // _controls.current.customPermissions = itemId ? mailingSent && mailingSent.length === 0 && hasPermissions(2, \"Edit\", globalState) : hasPermissions(2, \"Create\", globalState)\r\n _controls.current.customPermissions = itemId ? hasPermissions(2, \"Edit\", globalState) : hasPermissions(2, \"Create\", globalState)\r\n setReleaseState(releaseState => ({\r\n ...releaseState,\r\n releaseItem: _releaseItem,\r\n urlItemId: itemId,\r\n mailingStatus: mailingSent\r\n }));\r\n }\r\n load();\r\n }\r\n else {\r\n setReleaseState({\r\n releaseItem: initialValue,\r\n urlItemId: null,\r\n changeInfo: null,\r\n mailingStatus: []\r\n });\r\n }\r\n }, [itemId, redirectId]);\r\n\r\n React.useEffect(() => {\r\n const getRegionalList = async () => {\r\n\r\n let _regional = await getRegional(globalState.accessToken).then(\r\n (response) => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n }\r\n );\r\n setRegionalList(_regional);\r\n }\r\n getRegionalList();\r\n\r\n const getRef = () => {\r\n document.addEventListener(\"mousedown\", handleRef);\r\n\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handleRef);\r\n };\r\n };\r\n getRef();\r\n\r\n }, []);\r\n\r\n const _export = {\r\n pdf: true,\r\n doc: true,\r\n excel: \"\"\r\n }\r\n\r\n const _info = {\r\n close: () => setShowDialog(false)\r\n }\r\n\r\n let duplicateRelease = () => {\r\n duplicatePressItem(globalState.accessToken, itemId, 1)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n } else {\r\n return Promise.reject(response);\r\n }\r\n })\r\n .then(result => {\r\n setRedirect(true);\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n });\r\n }\r\n\r\n const handleDuplicateRegional = () => {\r\n duplicateRegionalRelease()\r\n }\r\n\r\n let duplicateRegionalRelease = async () => {\r\n\r\n const lang = releaseState.releaseItem.idIdioma ? releaseState.releaseItem.idIdioma === 1 ? 'pt' : 'en' : i18n.language;\r\n const {newSig, newSigContent} = await getAndMountSignature(globalState, regionalId, lang);\r\n const regex = /()([^]+)()/;\r\n const contentReplaced = `${newSigContent}`;\r\n const conteudo = releaseState.releaseItem.conteudo.replace(regex, contentReplaced)\r\n\r\n duplicateForwardPressItem(globalState.accessToken, itemId, 1, regionalId, conteudo)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n } else {\r\n return Promise.reject(response);\r\n }\r\n })\r\n .then(result => {\r\n setFwdConfirmationModal(result)\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n });\r\n }\r\n\r\n let deleteRelease = () => {\r\n deletePressItem(globalState.accessToken, itemId, 1)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n } else {\r\n return Promise.reject(response);\r\n }\r\n })\r\n .then(result => {\r\n setRedirect(true);\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n })\r\n }\r\n\r\n return (\r\n
    \r\n {globalState.accessToken === null ? :\r\n redirect ? :\r\n showSendContent ? :\r\n redirectId ? :\r\n
    \r\n \r\n\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    {itemId ? t('Release:edit_title') : t('Release:create_title')}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {releaseState.releaseItem && releaseState.releaseItem.id &&\r\n \r\n }\r\n {releaseState.releaseItem &&\r\n \r\n }\r\n
    \r\n
    \r\n {releaseState.releaseItem &&\r\n \r\n }\r\n {false &&\r\n \r\n }\r\n {releaseState.releaseItem && Object.keys(releaseState.releaseItem).length > 0 && (releaseState.releaseItem.historico).length > 0 &&\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 \r\n
    \r\n
    \r\n
    \r\n {regionalList.map((regional, index) => (\r\n
    {\r\n setRegionalId(regional.id);\r\n }}\r\n >\r\n

    {i18n.language ===\"pt\" ? regional.nomePt : regional.nomeEn}

    \r\n
    \r\n ))}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setRegionalId(null);\r\n setOpenModalRegional(false);\r\n }}>{t('Actions:cancel')}\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","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { GlobalStateContext } from \"../general/GlobalState\";\r\nimport { createSpinner, showSpinner, setSpinner, hideSpinner } from \"@syncfusion/ej2-react-popups\";\r\nimport { GridComponent, ColumnsDirective, ColumnDirective, ForeignKey, Filter, Inject, VirtualScroll, Sort, ContextMenu, Page, Resize, Edit, Toolbar, ExcelExport } from '@syncfusion/ej2-react-grids';\r\nimport { ComboBoxComponent, AutoCompleteComponent, DropDownListComponent } from '@syncfusion/ej2-react-dropdowns';\r\nimport { TextBoxComponent } from '@syncfusion/ej2-react-inputs';\r\nimport { ButtonComponent } from '@syncfusion/ej2-react-buttons';\r\nimport { DatePickerComponent, DateRangePickerComponent } from \"@syncfusion/ej2-react-calendars\";\r\nimport { getCountries, getAllBusinessAreas, getRegional } from \"../../services/SystemSVC\";\r\nimport { getPressItems, getPressItemsFiltered } from \"../../services/PressSVC\";\r\nimport { users } from \"../../services/UsersSVC\";\r\nimport '../releases/releases.css';\r\nimport { hasPermissions } from \"../utilities/Utils\";\r\nimport { useModal } from \"../../hooks/Modal\";\r\n\r\nexport const StatementsList = (props) => {\r\n\r\n const { t } = useTranslation();\r\n const { refStatement, gridInstance } = props;\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [isVisible, setIsVisible] = React.useState(true);\r\n const [loading, setLoading] = React.useState(true);\r\n const [fillUsersData, setFillUsersData] = React.useState([]);\r\n const [fillBusinessAreaData, setFillBusinessAreaData] = React.useState([]);\r\n const [fillCountriesData, setFillCountriesData] = React.useState([]);\r\n const [fillRegionalData, setFillRegionalData] = React.useState([]);\r\n const [statementItems, setStatementItems] = React.useState(null);\r\n const [allStatements, setAllStatements] = React.useState(null);\r\n const [filteredStatementItems, setFilteredStatementItems] = React.useState({ idTipo: 2, idPais: 6 });\r\n const ddlRegionalRef = React.useRef();\r\n const { buildDialogMessage } = useModal()\r\n\r\n React.useEffect(() => {\r\n if (loading) {\r\n createSpinner({ target: document.getElementById('loadStatements') });\r\n showSpinner(document.getElementById('loadStatements'));\r\n setSpinner({ type: 'Bootstrap' });\r\n }\r\n }, [loading]);\r\n\r\n React.useEffect(() => {\r\n if (gridInstance)\r\n gridInstance.refresh();\r\n }, [i18n.language]);\r\n\r\n React.useEffect(() => {\r\n setLoading(true);\r\n async function load() {\r\n let _users = await users(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n let _businessAreas = await getAllBusinessAreas(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n let _countries = await getCountries(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n let _regional = await getRegional(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n const filterQstring = globalState.regional ? `?$filter=idRegional eq ${globalState.regional.id}` : \"\";\r\n let _pressItems = await getPressItems(globalState.accessToken, 2, filterQstring)\r\n .then(response => { if (response.ok) { return response.json() } });\r\n\r\n if (_pressItems) {\r\n _pressItems = _pressItems.filter(item => {\r\n item.bloqueado = item.bloqueado ? i18n.language ===\"pt\" ? \"Bloqueado\" : \"Blocked\" : i18n.language ===\"pt\" ? \"Terminado\" : \"Finished\";\r\n return item;\r\n });\r\n setStatementItems(_pressItems);\r\n setAllStatements(_pressItems);\r\n }\r\n\r\n let oldUsers = _pressItems?.map(item => {\r\n return { nome: item.autores }\r\n });\r\n\r\n const set = new Set();\r\n const newUsers = oldUsers.filter(item => {\r\n const duplicate = set.has(item?.nome);\r\n set.add(item?.nome);\r\n\r\n return !duplicate;\r\n })\r\n\r\n const newBusinessAreas = [..._businessAreas, { id: - 1, nomeEn: \"All\", nomePt: \"Todos\" }]\r\n const countries = [..._countries, { id: - 1, nomeEn: \"All\", nomePt: \"Todos\" }]\r\n const newRegional = [..._regional, { id: - 1, nomeEn: \"All\", nomePt: \"Todos\" }]\r\n\r\n setFillUsersData(newUsers);\r\n setFillBusinessAreaData(newBusinessAreas);\r\n setFillCountriesData(countries);\r\n setFillRegionalData(newRegional);\r\n\r\n hideSpinner(document.getElementById('loadStatements'));\r\n setLoading(false);\r\n }\r\n load();\r\n }, [i18n.language]);\r\n\r\n React.useEffect(()=>{\r\n if(fillRegionalData.length && !loading){\r\n if(globalState.regional)\r\n ddlRegionalRef.current.value = globalState.regional.id;\r\n else\r\n setIsVisible(false);\r\n }\r\n },[fillRegionalData, loading]);\r\n\r\n const statusStatement = [\r\n {\r\n text: i18n.language ==='pt' ? 'Bloqueado' : 'Blocked',\r\n value: true\r\n }, {\r\n text: i18n.language ==='pt' ? 'Terminado' : 'Finished',\r\n value: false\r\n }, {\r\n text: i18n.language ==='pt' ? 'Todos' : 'All',\r\n value: null\r\n }\r\n ]\r\n\r\n const filteredStatements = async () => {\r\n if (filteredStatementItems) {\r\n let _filteredStatements = await getPressItemsFiltered(globalState.accessToken, filteredStatementItems, 2)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n\r\n _filteredStatements = _filteredStatements.filter(item => {\r\n item.bloqueado = item.bloqueado ? i18n.language ===\"pt\" ? \"Bloqueado\" : \"Blocked\" : i18n.language ===\"pt\" ? \"Terminado\" : \"Finished\";\r\n return item;\r\n });\r\n\r\n setStatementItems(_filteredStatements);\r\n setIsVisible(false);\r\n } else {\r\n setStatementItems(allStatements);\r\n }\r\n }\r\n\r\n let statementDate = (args) => {\r\n const dateStatement = new Date(args.data);\r\n return (\r\n {dateStatement.toLocaleDateString(i18n.language)}\r\n )\r\n }\r\n\r\n let statementTitle = (args) => {\r\n return (\r\n props.edit(args)}>{args.titulo}\r\n );\r\n }\r\n\r\n let statementStatus = (args) => {\r\n if (args.bloqueado === 'Bloqueado') {\r\n return ({i18n.language ==='pt' ? 'Bloqueado' : 'Blocked'})\r\n } else {\r\n return ({i18n.language ==='pt' ? 'Terminado' : 'Finished'})\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n {loading ?
    :\r\n <>\r\n
    \r\n
    \r\n
    \r\n \r\n

    {t('Statements:search_text')}

    \r\n
    \r\n
    \r\n
    \r\n setFilteredStatementItems(\r\n filteredStatementItems => ({\r\n ...filteredStatementItems,\r\n conteudo: e.value\r\n })\r\n )}\r\n />\r\n
    \r\n
    \r\n
    \r\n {!isVisible &&\r\n
    \r\n setIsVisible(!isVisible)}>\r\n \r\n {t('Statements:filters')}\r\n \r\n
    \r\n }\r\n {isVisible &&\r\n
    \r\n setIsVisible(!isVisible)}>\r\n \r\n {t('Statements:filters')}\r\n \r\n
    \r\n }\r\n
    \r\n filterStatements()}\r\n onClick={() => filteredStatements()}\r\n >\r\n {t('Statements:search')}\r\n \r\n
    \r\n
    \r\n
    \r\n {isVisible &&\r\n
    \r\n setFilteredStatementItems(\r\n filteredStatementItems => ({\r\n ...filteredStatementItems,\r\n dataInicio: e.value && e.value[0].toISOString().split('.')[0],\r\n dataFim: e.value && e.value[1].toISOString().split('.')[0]\r\n })\r\n )}\r\n />\r\n setFilterStatementAuthor(e.value)}\r\n change={(e) => setFilteredStatementItems(\r\n filteredStatementItems => ({\r\n ...filteredStatementItems,\r\n autor: e.value\r\n })\r\n )}\r\n />\r\n setFilteredStatementItems(\r\n filteredStatementItems => ({\r\n ...filteredStatementItems,\r\n idAreaNegocio: e.value\r\n })\r\n )}\r\n\r\n />\r\n setFilterStatementCountry(e.value)}\r\n value={filteredStatementItems ? filteredStatementItems.idPais : \"\"}\r\n change={(e) => setFilteredStatementItems(\r\n filteredStatementItems => ({\r\n ...filteredStatementItems,\r\n idPais: e.value\r\n })\r\n )}\r\n />\r\n ddlRegionalRef.current = ddlComponent}\r\n cssClass=\"e-filled\"\r\n placeholder={t('Statements:regional')}\r\n showClearButton\r\n dataSource={fillRegionalData}\r\n fields={{ text: (i18n.language ===\"pt\") ? 'nomePt' : 'nomeEn', value: 'id' }}\r\n value={filteredStatementItems ? filteredStatementItems.idRegional : globalState.regional? globalState.regional.id : ''}\r\n locale={i18n.language}\r\n change={(e) => setFilteredStatementItems(\r\n filteredStatementItems => ({\r\n ...filteredStatementItems,\r\n idRegional: e.value\r\n })\r\n )}\r\n />\r\n setFilteredStatementItems(\r\n filteredStatementItems => ({\r\n ...filteredStatementItems,\r\n bloqueado: e.value\r\n })\r\n )}\r\n />\r\n
    \r\n }\r\n
    \r\n
    \r\n refStatement(grid)}\r\n locale={i18n.language}>\r\n \r\n \r\n \r\n \r\n \r\n filterTemplate(i18n.language ===\"pt\" ? item.nomePaisPT : item.nomePaisEN)}\r\n width='350'>\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","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { GlobalStateContext } from \"../../general/GlobalState\";\r\nimport { Container, Row, Col } from \"reactstrap\";\r\nimport { DialogComponent } from \"@syncfusion/ej2-react-popups\";\r\nimport { Actions } from \"../../utilities/Actions\";\r\nimport { MailingStatus } from \"../../releases/MailingStatus\";\r\nimport { Export } from \"../../utilities/Export\";\r\nimport { ChangeHistory } from \"../../releases/ChangeHistory\";\r\nimport { SendItem } from \"../../mailing/SendItem\"\r\nimport { PressForm } from \"../../Shared/PressForm\";\r\nimport { ReleaseStateContext } from \"../../releases/ReleaseState\";\r\nimport { getPressItem, updatePressItem, addPressItem, deletePressItem, duplicatePressItem, getMailingShippingStatusItems, duplicateForwardPressItem } from \"../../../services/PressSVC\";\r\nimport { getRegional } from \"../../../services/SystemSVC\";\r\nimport { storageAccUrl } from \"../../utilities/Constants\";\r\nimport PermissionRedirect from '../../utilities/PermissionRedirect/PermissionRedirect';\r\nimport { useModal } from \"../../../hooks/Modal\";\r\nimport { hasPermissions } from \"../../utilities/Utils\";\r\nimport { getAndMountSignature } from \"../../../services/SignatureSVC\";\r\n\r\n\r\nexport const StatementsItem = (props) => {\r\n\r\n let itemId = props.match.params.id;\r\n\r\n const { t } = useTranslation();\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const { releaseState, setReleaseState, showSendContent, setShowSendContent, setRedirectId, redirectId } = React.useContext(ReleaseStateContext);\r\n const [redirect, setRedirect] = React.useState(false);\r\n const [showDialog, setShowDialog] = React.useState(false);\r\n const [dialogDelete, setDialogDelete] = React.useState(false);\r\n const [regionalId, setRegionalId] = React.useState(null);\r\n const [openModalRegional, setOpenModalRegional] = React.useState(false);\r\n const [regionalList, setRegionalList] = React.useState([]);\r\n const [fwdConfirmationModal, setFwdConfirmationModal] = React.useState(false);\r\n const [disabledBtn, setDisabledBtn] = React.useState(false);\r\n\r\n const modalRef = React.useRef();\r\n\r\n const handleRef = (ref) => {\r\n if (modalRef?.current?.contains(ref?.target)) {\r\n return;\r\n }\r\n setOpenModalRegional(false);\r\n }\r\n\r\n React.useEffect(() => {\r\n if (redirectId) window.location.reload();\r\n }, [redirectId]);\r\n\r\n let _controls = React.useRef({\r\n area: \"Notas\",\r\n class: \"statement\",\r\n savePrimary: !!itemId,\r\n customPermissions: !itemId,\r\n excludePrimary: true,\r\n urlView: () => setShowDialog(true),\r\n urlPreview: false,\r\n urlDuplicate: itemId ? () => duplicateStatement() : false,\r\n urlForward: itemId ? () => setOpenModalRegional(true) : false,\r\n urlSave: undefined,\r\n form: \"formReleaseItem\",\r\n urlSend: itemId ? () => setShowSendContent(true) : false,\r\n urlCancel: () => {\r\n setReleaseState({\r\n releaseItem: null,\r\n urlItemId: null,\r\n changeInfo: null\r\n });\r\n setRedirect(true);\r\n },\r\n urlDelete: itemId ? () => setDialogDelete(true) : false\r\n });\r\n\r\n const initialValue = {\r\n id: null,\r\n titulo: \"\",\r\n subtitulo: \"\",\r\n autores: \"\",\r\n idAreaNegocio: 0,\r\n idPais: 0,\r\n idRegional: \"\",\r\n data: new Date(),\r\n aprovadoPor: \"\",\r\n conteudo: null,\r\n bloqueado: false,\r\n language: 1,\r\n historico: []\r\n };\r\n\r\n\r\n React.useEffect(() => {\r\n if (itemId) {\r\n async function load() {\r\n let _releaseItem = await getPressItem(globalState.accessToken, itemId, 2)\r\n .then(response => {\r\n if (response.ok)\r\n return response.json()\r\n });\r\n\r\n let mailingSent = await getMailingShippingStatusItems(globalState.accessToken, itemId).then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n _controls.current.customPermissions = itemId ? mailingSent.length === 0 && hasPermissions(3, \"Edit\", globalState) : hasPermissions(3, \"Create\", globalState);\r\n\r\n setReleaseState(releaseState => ({\r\n ...releaseState,\r\n releaseItem: _releaseItem,\r\n urlItemId: itemId,\r\n mailingStatus: mailingSent\r\n }));\r\n }\r\n load();\r\n }\r\n else {\r\n\r\n setReleaseState({\r\n releaseItem: initialValue,\r\n urlItemId: null,\r\n changeInfo: null,\r\n mailingStatus: []\r\n });\r\n }\r\n }, [itemId]);\r\n\r\n React.useEffect(() => {\r\n _controls.current = {\r\n area: \"Notas\",\r\n class: \"statement\",\r\n savePrimary: !!itemId,\r\n customPermissions: !itemId,\r\n excludePrimary: true,\r\n urlView: () => setShowDialog(true),\r\n urlPreview: false,\r\n urlDuplicate: itemId ? () => duplicateStatement() : false,\r\n urlForward: itemId ? () => setOpenModalRegional(true) : false,\r\n urlSave: undefined,\r\n form: \"formReleaseItem\",\r\n urlSend: itemId ? () => setShowSendContent(true) : false,\r\n urlCancel: () => {\r\n setReleaseState({\r\n releaseItem: null,\r\n urlItemId: null,\r\n changeInfo: null\r\n });\r\n setRedirect(true);\r\n },\r\n urlDelete: itemId ? () => setDialogDelete(true) : false\r\n }\r\n }, [redirectId]);\r\n\r\n React.useEffect(() => {\r\n const getRegionalList = async () => {\r\n\r\n let _regional = await getRegional(globalState.accessToken).then(\r\n (response) => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n }\r\n );\r\n setRegionalList(_regional);\r\n }\r\n getRegionalList();\r\n\r\n const getRef = () => {\r\n document.addEventListener(\"mousedown\", handleRef);\r\n\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handleRef);\r\n };\r\n };\r\n getRef();\r\n }, []);\r\n\r\n\r\n const _export = {\r\n pdf: true,\r\n doc: true,\r\n excel: \"\"\r\n }\r\n\r\n let duplicateStatement = () => {\r\n duplicatePressItem(globalState.accessToken, itemId, 2)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n } else {\r\n return Promise.reject(response);\r\n }\r\n })\r\n .then(result => {\r\n setRedirect(true);\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n })\r\n }\r\n\r\n const handleDuplicateRegional = () => {\r\n duplicateRegionalRelease()\r\n }\r\n\r\n let duplicateRegionalRelease = async () => {\r\n\r\n const lang = releaseState.releaseItem.idIdioma ? releaseState.releaseItem.idIdioma === 1 ? 'pt' : 'en' : i18n.language;\r\n const {newSig, newSigContent} = await getAndMountSignature(globalState, regionalId, lang);\r\n const conteudo = releaseState.releaseItem.conteudo.replace(//g, `${newSigContent}`)\r\n\r\n duplicateForwardPressItem(globalState.accessToken, itemId, 2, regionalId, conteudo)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n } else {\r\n return Promise.reject(response);\r\n }\r\n })\r\n .then(result => {\r\n setFwdConfirmationModal(result)\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n });\r\n }\r\n\r\n let deleteStatement = () => {\r\n deletePressItem(globalState.accessToken, itemId, 2)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n } else {\r\n return Promise.reject(response);\r\n }\r\n })\r\n .then(result => {\r\n setRedirect(true);\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n })\r\n }\r\n\r\n return (\r\n <>\r\n {globalState.accessToken === null ? :\r\n redirectId ? :\r\n redirect ? :\r\n showSendContent ? :\r\n <>\r\n \r\n\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    {itemId ? t('Statement:edit_title') : t('Statement:create_title')}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {releaseState.releaseItem && releaseState.releaseItem.id &&\r\n \r\n }\r\n {releaseState.releaseItem &&\r\n \r\n }\r\n
    \r\n
    \r\n {releaseState.releaseItem &&\r\n \r\n }\r\n {false &&\r\n \r\n }\r\n {releaseState.releaseItem && Object.keys(releaseState.releaseItem).length > 0 && (releaseState.releaseItem.historico).length > 0 &&\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 \r\n
    \r\n
    \r\n
    \r\n {regionalList.map((regional, index) => (\r\n
    {\r\n setRegionalId(regional.id);\r\n }}\r\n >\r\n

    {i18n.language ===\"pt\" ? regional.nomePt : regional.nomeEn}

    \r\n
    \r\n ))}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setRegionalId(null);\r\n setOpenModalRegional(false);\r\n }}>{t('Actions:cancel')}\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","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { GlobalStateContext } from \"../general/GlobalState\";\r\nimport { createSpinner, showSpinner, setSpinner, hideSpinner } from \"@syncfusion/ej2-react-popups\";\r\nimport { GridComponent, ColumnsDirective, ColumnDirective, ForeignKey, Filter, Inject, VirtualScroll, Sort, ContextMenu, Page, Resize, Edit, Toolbar, ExcelExport } from '@syncfusion/ej2-react-grids';\r\nimport { ComboBoxComponent, AutoCompleteComponent, DropDownListComponent } from '@syncfusion/ej2-react-dropdowns';\r\nimport { TextBoxComponent } from '@syncfusion/ej2-react-inputs';\r\nimport { ButtonComponent } from '@syncfusion/ej2-react-buttons';\r\nimport { DatePickerComponent, DateRangePickerComponent } from \"@syncfusion/ej2-react-calendars\";\r\nimport { getCountries, getAllBusinessAreas, getRegional } from \"../../services/SystemSVC\";\r\nimport { getPressItems, getPressItemsFiltered } from \"../../services/PressSVC\";\r\nimport { users } from \"../../services/UsersSVC\";\r\nimport '../releases/releases.css';\r\nimport { useModal } from \"../../hooks/Modal\";\r\nimport { hasPermissions } from \"../utilities/Utils\";\r\n\r\nexport const PositionPaperList = (props) => {\r\n\r\n const { t } = useTranslation();\r\n const { refPositionPaper, gridInstance } = props;\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [isVisible, setIsVisible] = React.useState(true);\r\n const [loading, setLoading] = React.useState(true);\r\n const [fillUsersData, setFillUsersData] = React.useState([]);\r\n const [fillBusinessAreaData, setFillBusinessAreaData] = React.useState([]);\r\n const [fillCountriesData, setFillCountriesData] = React.useState([]);\r\n const [fillRegionalData, setFillRegionalData] = React.useState([]);\r\n const [positionPaperItems, setPositionPaperItems] = React.useState(null);\r\n const [allPositionPaper, setAllPositionPaper] = React.useState(null);\r\n const [filteredPositionPaperItems, setFilteredPositionPaperItems] = React.useState({ idTipo: 3, idPais: 6 });\r\n const ddlRegionalRef = React.useRef();\r\n const { buildDialogMessage } = useModal();\r\n\r\n React.useEffect(() => {\r\n if (loading) {\r\n createSpinner({ target: document.getElementById('loadPositionPaper') });\r\n showSpinner(document.getElementById('loadPositionPaper'));\r\n setSpinner({ type: 'Bootstrap' });\r\n }\r\n }, [loading]);\r\n\r\n React.useEffect(() => {\r\n setLoading(true);\r\n async function load() {\r\n let _users = await users(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n let _businessAreas = await getAllBusinessAreas(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n let _countries = await getCountries(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n let _regional = await getRegional(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n const filterQstring = globalState.regional ? `?$filter=idRegional eq ${globalState.regional.id}` : \"\";\r\n let _pressItems = await getPressItems(globalState.accessToken, 3, filterQstring)\r\n .then(response => { if (response.ok) { return response.json() } });\r\n\r\n if (_pressItems) {\r\n _pressItems = _pressItems.filter(item => {\r\n item.bloqueado = item.bloqueado ? i18n.language ===\"pt\" ? \"Bloqueado\" : \"Blocked\" : i18n.language ===\"pt\" ? \"Terminado\" : \"Finished\";\r\n return item;\r\n });\r\n setPositionPaperItems(_pressItems);\r\n setAllPositionPaper(_pressItems);\r\n }\r\n\r\n let oldUsers = _pressItems?.map(item => {\r\n return { nome: item.autores }\r\n });\r\n\r\n const set = new Set();\r\n const newUsers = oldUsers.filter(item => {\r\n const duplicate = set.has(item?.nome);\r\n set.add(item?.nome);\r\n\r\n return !duplicate;\r\n })\r\n\r\n const newBusinessAreas = [..._businessAreas, { id: - 1, nomeEn: \"All\", nomePt: \"Todos\" }]\r\n const countries = [..._countries, { id: - 1, nomeEn: \"All\", nomePt: \"Todos\" }]\r\n const newRegional = [..._regional, { id: - 1, nomeEn: \"All\", nomePt: \"Todos\" }]\r\n\r\n setFillUsersData(newUsers);\r\n setFillBusinessAreaData(newBusinessAreas);\r\n setFillCountriesData(countries);\r\n setFillRegionalData(newRegional);\r\n\r\n hideSpinner(document.getElementById('loadPositionPaper'));\r\n setLoading(false);\r\n }\r\n load();\r\n }, [i18n.language]);\r\n\r\n React.useEffect(()=>{\r\n if(fillRegionalData.length && !loading){\r\n if(globalState.regional)\r\n ddlRegionalRef.current.value = globalState.regional.id;\r\n else\r\n setIsVisible(false);\r\n }\r\n },[fillRegionalData, loading]);\r\n\r\n const statusPositionPaper = [{\r\n text: i18n.language ==='pt' ? 'Bloqueado' : 'Blocked',\r\n value: true\r\n }, {\r\n text: i18n.language ==='pt' ? 'Terminado' : 'Finished',\r\n value: false\r\n }, {\r\n text: i18n.language ==='pt' ? 'Todos' : 'All',\r\n value: null\r\n }\r\n ]\r\n\r\n const filteredPositionPaper = async () => {\r\n if (filteredPositionPaperItems) {\r\n let _filteredPositionPaper = await getPressItemsFiltered(globalState.accessToken, filteredPositionPaperItems, 3)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n\r\n _filteredPositionPaper = _filteredPositionPaper.filter(item => {\r\n item.bloqueado = item.bloqueado ? i18n.language ===\"pt\" ? \"Bloqueado\" : \"Blocked\" : i18n.language ===\"pt\" ? \"Terminado\" : \"Finished\";\r\n return item;\r\n });\r\n\r\n setPositionPaperItems(_filteredPositionPaper);\r\n\r\n setIsVisible(false);\r\n } else {\r\n setPositionPaperItems(allPositionPaper);\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n if (gridInstance)\r\n gridInstance.refresh();\r\n }, [i18n.language]);\r\n\r\n let positionPaperDate = (args) => {\r\n const datePositionPaper = new Date(args.data);\r\n return (\r\n {datePositionPaper.toLocaleDateString(i18n.language)}\r\n )\r\n }\r\n\r\n let positionPaperTitle = (args) => {\r\n return (\r\n props.edit(args)}>{args.titulo}\r\n );\r\n }\r\n\r\n let positionPaperStatus = (args) => {\r\n if (args.bloqueado === 'Bloqueado') {\r\n return ({i18n.language ==='pt' ? 'Bloqueado' : 'Blocked'})\r\n } else {\r\n return ({i18n.language ==='pt' ? 'Terminado' : 'Finished'})\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n {loading ?
    :\r\n <>\r\n
    \r\n
    \r\n
    \r\n \r\n

    {t('PositionPaper:search_text')}

    \r\n
    \r\n
    \r\n
    \r\n setFilteredPositionPaperItems(\r\n filteredPositionPaperItems => ({\r\n ...filteredPositionPaperItems,\r\n conteudo: e.value\r\n })\r\n )}\r\n />\r\n
    \r\n
    \r\n
    \r\n {!isVisible &&\r\n
    \r\n setIsVisible(!isVisible)}>\r\n \r\n {t('PositionPaper:filters')}\r\n \r\n
    \r\n }\r\n {isVisible &&\r\n
    \r\n setIsVisible(!isVisible)}>\r\n \r\n {t('PositionPaper:filters')}\r\n \r\n
    \r\n }\r\n
    \r\n filterPositionPaper()}\r\n onClick={() => filteredPositionPaper()}\r\n >\r\n {t('PositionPaper:search')}\r\n \r\n
    \r\n
    \r\n
    \r\n {isVisible &&\r\n
    \r\n setFilteredPositionPaperItems(\r\n filteredPositionPaperItems => ({\r\n ...filteredPositionPaperItems,\r\n dataInicio: e.value && e.value[0].toISOString().split('.')[0],\r\n dataFim: e.value && e.value[1].toISOString().split('.')[0]\r\n })\r\n )}\r\n />\r\n setFilterPositionPaperAuthor(e.value)}\r\n change={(e) => setFilteredPositionPaperItems(\r\n filteredPositionPaperItems => ({\r\n ...filteredPositionPaperItems,\r\n autor: e.value\r\n })\r\n )}\r\n />\r\n setFilteredPositionPaperItems(\r\n filteredPositionPaperItems => ({\r\n ...filteredPositionPaperItems,\r\n idAreaNegocio: e.value\r\n })\r\n )}\r\n\r\n />\r\n setFilterPositionPaperCountry(e.value)}\r\n value={filteredPositionPaperItems ? filteredPositionPaperItems.idPais : ''}\r\n change={(e) => setFilteredPositionPaperItems(\r\n filteredPositionPaperItems => ({\r\n ...filteredPositionPaperItems,\r\n idPais: e.value\r\n })\r\n )}\r\n />\r\n ddlRegionalRef.current = ddlComponent}\r\n cssClass=\"e-filled\"\r\n placeholder={t('PositionPaper:regional')}\r\n showClearButton\r\n dataSource={fillRegionalData}\r\n fields={{ text: (i18n.language ===\"pt\") ? 'nomePt' : 'nomeEn', value: 'id' }}\r\n value={filteredPositionPaperItems ? filteredPositionPaperItems.idRegional : globalState.regional? globalState.regional.id : ''}\r\n locale={i18n.language}\r\n change={(e) => setFilteredPositionPaperItems(\r\n filteredPositionPaperItems => ({\r\n ...filteredPositionPaperItems,\r\n idRegional: e.value\r\n })\r\n )}\r\n />\r\n setFilteredPositionPaperItems(\r\n filteredPositionPaperItems => ({\r\n ...filteredPositionPaperItems,\r\n bloqueado: e.value\r\n })\r\n )}\r\n />\r\n
    \r\n }\r\n
    \r\n
    \r\n refPositionPaper(grid)}\r\n locale={i18n.language}>\r\n \r\n \r\n \r\n \r\n \r\n filterTemplate(i18n.language ===\"pt\" ? item.nomePaisPT : item.nomePaisEN)}\r\n width='350'>\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","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { GlobalStateContext } from \"../../general/GlobalState\";\r\nimport { Container, Row, Col } from \"reactstrap\";\r\nimport { DialogComponent } from \"@syncfusion/ej2-react-popups\";\r\nimport { Actions } from \"../../utilities/Actions\";\r\nimport { MailingStatus } from \"../../releases/MailingStatus\";\r\nimport { Export } from \"../../utilities/Export\";\r\nimport { ChangeHistory } from \"../../releases/ChangeHistory\";\r\nimport { SendItem } from \"../../mailing/SendItem\"\r\nimport { PressForm } from \"../../Shared/PressForm\";\r\nimport { ReleaseStateContext } from \"../../releases/ReleaseState\";\r\nimport { getPressItem, updatePressItem, addPressItem, deletePressItem, duplicatePressItem, getMailingShippingStatusItems, duplicateForwardPressItem } from \"../../../services/PressSVC\";\r\nimport { getRegional } from \"../../../services/SystemSVC\";\r\nimport { storageAccUrl } from \"../../utilities/Constants\";\r\nimport PermissionRedirect from \"../../utilities/PermissionRedirect/PermissionRedirect\";\r\nimport { hasPermissions } from \"../../utilities/Utils\";\r\nimport { getAndMountSignature } from \"../../../services/SignatureSVC\";\r\n\r\nexport const PositionPaperItem = (props) => {\r\n\r\n let itemId = props.match.params.id;\r\n\r\n const { t } = useTranslation();\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const { releaseState, setReleaseState, showSendContent, setShowSendContent, redirectId, setRedirectId } = React.useContext(ReleaseStateContext);\r\n const [redirect, setRedirect] = React.useState(false);\r\n const [showDialog, setShowDialog] = React.useState(false);\r\n const [dialogDelete, setDialogDelete] = React.useState(false);\r\n const [regionalId, setRegionalId] = React.useState(null);\r\n const [openModalRegional, setOpenModalRegional] = React.useState(false);\r\n const [regionalList, setRegionalList] = React.useState([]);\r\n const [fwdConfirmationModal, setFwdConfirmationModal] = React.useState(false);\r\n const [disabledBtn, setDisabledBtn] = React.useState(false);\r\n\r\n const modalRef = React.useRef();\r\n\r\n const handleRef = (ref) => {\r\n if (modalRef?.current?.contains(ref?.target)) {\r\n return;\r\n }\r\n setOpenModalRegional(false);\r\n }\r\n\r\n React.useEffect(() => {\r\n if (redirectId) window.location.reload();\r\n }, [redirectId]);\r\n\r\n let _controls = React.useRef({\r\n area: \"Posicionamentos\",\r\n class: \"PositionPaper\",\r\n savePrimary: !!itemId,\r\n customPermissions: !itemId,\r\n excludePrimary: true,\r\n urlView: () => setShowDialog(true),\r\n urlPreview: false,\r\n urlDuplicate: itemId ? () => duplicatePositionPaper() : false,\r\n urlForward: itemId ? () => setOpenModalRegional(true) : false,\r\n urlSave: undefined,\r\n form: \"formReleaseItem\",\r\n urlSend: itemId ? () => setShowSendContent(true) : false,\r\n urlCancel: () => {\r\n setReleaseState({\r\n releaseItem: null,\r\n urlItemId: null,\r\n changeInfo: null\r\n });\r\n setRedirect(true);\r\n },\r\n urlDelete: itemId ? () => setDialogDelete(true) : false\r\n });\r\n\r\n const initialValue = {\r\n id: null,\r\n titulo: \"\",\r\n subtitulo: \"\",\r\n autores: \"\",\r\n idAreaNegocio: 0,\r\n idPais: 0,\r\n idRegional: \"\",\r\n data: new Date(),\r\n aprovadoPor: \"\",\r\n conteudo: null,\r\n bloqueado: false,\r\n language: 1,\r\n historico: []\r\n };\r\n\r\n React.useEffect(() => {\r\n if (itemId) {\r\n async function load() {\r\n let _releaseItem = await getPressItem(globalState.accessToken, itemId, 3)\r\n .then(response => {\r\n if (response.ok)\r\n return response.json()\r\n });\r\n\r\n let mailingSent = await getMailingShippingStatusItems(globalState.accessToken, itemId).then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n // _controls.current.customPermissions = itemId ? mailingSent.length === 0 && hasPermissions(4, \"Edit\", globalState) : hasPermissions(4, \"Create\", globalState);\r\n _controls.current.customPermissions = itemId ? hasPermissions(4, \"Edit\", globalState) : hasPermissions(4, \"Create\", globalState)\r\n\r\n setReleaseState(releaseState => ({\r\n ...releaseState,\r\n releaseItem: _releaseItem,\r\n urlItemId: itemId,\r\n mailingStatus: mailingSent\r\n }));\r\n }\r\n load();\r\n }\r\n else {\r\n\r\n setReleaseState({\r\n releaseItem: initialValue,\r\n urlItemId: null,\r\n changeInfo: null,\r\n mailingStatus: []\r\n });\r\n }\r\n }, [itemId]);\r\n\r\n React.useEffect(() => {\r\n const getRegionalList = async () => {\r\n\r\n let _regional = await getRegional(globalState.accessToken).then(\r\n (response) => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n }\r\n );\r\n setRegionalList(_regional);\r\n }\r\n getRegionalList();\r\n\r\n const getRef = () => {\r\n document.addEventListener(\"mousedown\", handleRef);\r\n\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handleRef);\r\n };\r\n };\r\n getRef();\r\n }, []);\r\n\r\n const _export = {\r\n pdf: true,\r\n doc: true,\r\n excel: \"\"\r\n }\r\n\r\n let duplicatePositionPaper = () => {\r\n duplicatePressItem(globalState.accessToken, itemId, 3)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n } else {\r\n return Promise.reject(response);\r\n }\r\n })\r\n .then(result => {\r\n setRedirect(true);\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n });\r\n }\r\n\r\n const handleDuplicateRegional = () => {\r\n duplicateRegionalRelease()\r\n }\r\n\r\n let duplicateRegionalRelease = async () => {\r\n\r\n\t\t\tconst lang = releaseState.releaseItem.idIdioma ? releaseState.releaseItem.idIdioma === 1 ? 'pt' : 'en' : i18n.language;\r\n\t\t\tconst {newSig, newSigContent} = await getAndMountSignature(globalState, regionalId, lang);\r\n\t\t\tconst conteudo = releaseState.releaseItem.conteudo.replace(//g, `${newSigContent}`)\r\n\r\n duplicateForwardPressItem(globalState.accessToken, itemId, 3, regionalId, conteudo)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n } else {\r\n return Promise.reject(response);\r\n }\r\n })\r\n .then(result => {\r\n setFwdConfirmationModal(result)\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n });\r\n }\r\n\r\n let deletePositionPaper = () => {\r\n deletePressItem(globalState.accessToken, itemId, 3)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n } else {\r\n return Promise.reject(response);\r\n }\r\n })\r\n .then(result => {\r\n setRedirect(true);\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n })\r\n }\r\n\r\n return (\r\n <>\r\n {globalState.accessToken === null ? :\r\n redirectId ? :\r\n redirect ? :\r\n showSendContent ? :\r\n <>\r\n \r\n\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    {itemId ? t('PositionPaperItem:edit_title') : t('PositionPaperItem:create_title')}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {releaseState.releaseItem && releaseState.releaseItem.id &&\r\n \r\n }\r\n {releaseState.releaseItem &&\r\n \r\n }\r\n
    \r\n
    \r\n {releaseState.releaseItem &&\r\n \r\n }\r\n {false &&\r\n \r\n }\r\n {releaseState.releaseItem && Object.keys(releaseState.releaseItem).length > 0 && (releaseState.releaseItem.historico).length > 0 &&\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 \r\n
    \r\n
    \r\n
    \r\n {regionalList.map((regional, index) => (\r\n
    {\r\n setRegionalId(regional.id);\r\n }}\r\n >\r\n

    {i18n.language ===\"pt\" ? regional.nomePt : regional.nomeEn}

    \r\n
    \r\n ))}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setRegionalId(null);\r\n setOpenModalRegional(false);\r\n }}>{t('Actions:cancel')}\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","import { requestAPI } from '../components/utilities/Utils';\r\n\r\nexport class LiaisonReportFilter {\r\n constructor(vehicle, responsibles, businessArea, startPeriod, endPeriod, status, country, regional) {\r\n this.vehicle = vehicle;\r\n this.responsibles = responsibles;\r\n this.businessArea = businessArea;\r\n this.startPeriod = startPeriod;\r\n this.endPeriod = endPeriod;\r\n this.status = status;\r\n this.country = country;\r\n this.regional = regional;\r\n }\r\n}\r\n\r\nexport class LiaisonTO {\r\n constructor(id,\r\n jornalista,\r\n idTipoMidia,\r\n nomeVeiculo,\r\n email,\r\n telefone,\r\n mailingContato,\r\n idStatus,\r\n dataConclusao,\r\n descricao,\r\n tipoAcao,\r\n idAreaNegocio,\r\n responsaveis,\r\n idPais,\r\n idRegional,\r\n dataRecebimento,\r\n deadLine,\r\n anexos,\r\n inserirMailing,\r\n autorRegistro,\r\n historico) {\r\n this.id = id ? id : null;\r\n this.jornalista = jornalista ? jornalista : null;\r\n this.idTipoMidia = idTipoMidia ? idTipoMidia : null;\r\n this.nomeVeiculo = nomeVeiculo ? nomeVeiculo : null;\r\n this.email = email ? email : null;\r\n this.telefone = telefone ? telefone : null;\r\n this.mailingContato = mailingContato ? mailingContato : null;\r\n this.idStatus = idStatus ? idStatus : null;\r\n this.dataConclusao = dataConclusao ? dataConclusao : null;\r\n this.descricao = descricao ? descricao : null;\r\n this.tipoAcao = tipoAcao ? tipoAcao : null;\r\n this.idAreaNegocio = idAreaNegocio ? idAreaNegocio : null;\r\n this.responsaveis = responsaveis ? responsaveis : null;\r\n this.idPais = idPais ? idPais : null;\r\n this.idRegional = idRegional ? idRegional : null;\r\n this.dataRecebimento = dataRecebimento ? dataRecebimento : null;\r\n this.deadLine = deadLine ? deadLine : null;\r\n this.anexos = anexos ? anexos : null;\r\n this.inserirMailing = inserirMailing ? inserirMailing : null;\r\n this.autorRegistro = autorRegistro ? autorRegistro : null;\r\n this.historico = historico ? historico : null;\r\n }\r\n}\r\n\r\nexport class MailingContactTO {\r\n constructor(id, jornalista, idtipoMidia, nomeVeiculo, email, telefone, idpais, idestado, idcidade, editoria, cargo, endereco, grupos) {\r\n this.id = id ? id : null;\r\n this.jornalista = jornalista ? jornalista : null;\r\n this.idtipoMidia = idtipoMidia ? idtipoMidia : null;\r\n this.nomeVeiculo = nomeVeiculo ? nomeVeiculo : null;\r\n this.email = email ? email : null;\r\n this.telefone = telefone ? telefone : null;\r\n this.idpais = idpais ? idpais : null;\r\n this.idestado = idestado ? idestado : null;\r\n this.idcidade = idcidade ? idcidade : null;\r\n this.editoria = editoria ? editoria : null;\r\n this.cargo = cargo ? cargo : null;\r\n this.endereco = endereco ? endereco : null;\r\n this.grupos = grupos ? grupos : null;\r\n }\r\n}\r\n\r\nexport class LiaisonAttachment {\r\n constructor(id, contentType, fileName, fileB64, fileExtension, fileLength, status) {\r\n this.id = id ? id : null;\r\n this.contentType = contentType ? contentType : null;\r\n this.fileName = fileName ? fileName : null;\r\n this.fileB64 = fileB64 ? fileB64 : null;\r\n this.fileExtension = fileExtension ? fileExtension : null;\r\n this.fileLength = fileLength ? fileLength : null;\r\n this.status = status ? status : 3;\r\n }\r\n}\r\n\r\nexport class LiaisonHistory {\r\n constructor(liaisonId, userName, actionType, date) {\r\n this.liaisonId = liaisonId ? liaisonId : null;\r\n this.userName = userName ? userName : null;\r\n this.actionType = actionType ? actionType : null;\r\n this.date = date ? date : null;\r\n }\r\n}\r\n\r\nexport async function getLiaisonReportItems(token, filters) {\r\n let fullFilterArray = [];\r\n let fullFilter = '';\r\n\r\n if(filters.vehicle) fullFilterArray.push(`contains(nomeVeiculo,'${filters.vehicle.trim()}')`);\r\n if(filters.responsibles) fullFilterArray.push(`contains(responsaveis,'${filters.responsibles.trim()}')`);\r\n if(filters.businessArea) fullFilterArray.push(`AreaNegocio/Id eq ${filters.businessArea}`);\r\n if(filters.startPeriod) {\r\n let startDay = (\"0\" + filters.startPeriod.getDate()).slice(-2);\r\n let startMonth = (\"0\" + (filters.startPeriod.getMonth() + 1)).slice(-2);\r\n let startPeriodDtStr = `${filters.startPeriod.getFullYear()}-${startMonth}-${startDay}T00:00:00.000Z`;\r\n fullFilterArray.push(`dataRecebimento gt ${startPeriodDtStr}`);\r\n }\r\n if(filters.endPeriod) {\r\n let endDay = (\"0\" + filters.endPeriod.getDate()).slice(-2);\r\n let endMonth = (\"0\" + (filters.endPeriod.getMonth() + 1)).slice(-2);\r\n let endPeriodDtStr = `${filters.endPeriod.getFullYear()}-${endMonth}-${endDay}T23:59:59.999Z`;\r\n fullFilterArray.push(`dataRecebimento lt ${endPeriodDtStr}`);\r\n }\r\n if(filters.status) fullFilterArray.push(`idStatus eq ${filters.status}`);\r\n if(filters.country) fullFilterArray.push(`idPais eq ${filters.country}`);\r\n if(filters.regional) fullFilterArray.push(`idRegional eq ${filters.regional}`);\r\n\r\n if(fullFilterArray.length > 0) {\r\n fullFilter = `filter(${fullFilterArray.join(' and ')})/`;\r\n }\r\n\r\n var withFilters = `?$apply=${fullFilter}groupby((AreaNegocio/Id,AreaNegocio/NomePt,AreaNegocio/NomeEn), aggregate($count as QuantidadeAtendimentos))`;\r\n\r\n return requestAPI(\"_api/Liaison/GetLiaisonItems\", \"GET\", withFilters, null, token, null);\r\n}\r\n\r\nexport async function exportLiaisonReport(token, body) {\r\n const raw = JSON.stringify(body);\r\n return requestAPI(\"_api/Liaison/ExportLiaisonReport\", \"POST\", '', raw, token, null);\r\n}\r\n\r\nexport async function getLiaisonItems(token) {\r\n const qString = \"?$orderby=id desc\"\r\n return requestAPI(\"_api/Liaison/GetLiaisonItems\", \"GET\", qString, null, token, null);\r\n}\r\n\r\nexport async function addLiaisonItem(token, body) {\r\n return requestAPI(\"_api/Liaison/AddLiaisonItem\", \"POST\", '', body, token, null);\r\n}\r\n\r\nexport async function updateLiaisonItem(token, body) {\r\n return requestAPI(\"_api/Liaison/UpdateLiaisonItem\", \"POST\", '', body, token, null);\r\n}\r\n\r\nexport async function duplicateLiaisonItem(token, body) {\r\n return requestAPI(\"_api/Liaison/DuplicateLiaisonItem\", \"POST\", '', body, token, null);\r\n}\r\n\r\nexport async function getLiaisonItem(token, IdLiaison) {\r\n return requestAPI(\"_api/Liaison/GetLiaisonItem\", \"GET\", `?IdLiaison=${IdLiaison}`, null, token, null);\r\n}\r\n\r\nexport async function downloadLiaisonAttachment(token, IdLiaison, fileName) {\r\n return requestAPI(\"_api/Liaison/DownloadLiaisonAttachment\", \"GET\", `?IdLiaison=${IdLiaison}&fileName=${fileName}`, null, token, null, true);\r\n}\r\n\r\nexport async function deleteLiaisonItem(token, IdLiaison) {\r\n return requestAPI(\"_api/Liaison/DeleteLiaisonItem\", \"POST\", `?IdLiaison=${IdLiaison}`, null, token, null);\r\n}\r\n","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { GlobalStateContext } from \"../general/GlobalState\";\r\nimport { GridComponent, ColumnsDirective, ColumnDirective, ForeignKey, Filter, Inject, VirtualScroll, Sort, ContextMenu, Page, Resize, Edit, ExcelExport } from '@syncfusion/ej2-react-grids';\r\nimport { DropDownListComponent, AutoCompleteComponent } from '@syncfusion/ej2-react-dropdowns';\r\nimport { TextBoxComponent } from '@syncfusion/ej2-react-inputs';\r\nimport { ButtonComponent } from '@syncfusion/ej2-react-buttons';\r\nimport { DatePickerComponent, DateRangePickerComponent } from \"@syncfusion/ej2-react-calendars\";\r\nimport { getCountries, getAllBusinessAreas, getRegional, getLiaisonStatus } from \"../../services/SystemSVC\";\r\nimport { getLiaisonItems } from \"../../services/LiaisonSVC\";\r\nimport '../releases/releases.css';\r\nimport { hasPermissions } from \"../utilities/Utils\";\r\nimport PermissionRedirect from \"../utilities/PermissionRedirect/PermissionRedirect\";\r\nimport { useModal } from \"../../hooks/Modal\";\r\n\r\nexport const LiaisonList = (props) => {\r\n\r\n const { t } = useTranslation();\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [isVisible, setIsVisible] = React.useState(false);\r\n const { refLiaison, gridInstance } = props;\r\n\r\n const [fillBusinessAreaDataPt, setFillBusinessAreaDataPt] = React.useState([]);\r\n const [fillCountryDataPt, setFillCountryDataPt] = React.useState([]);\r\n const [fillRegionalDataPt, setFillRegionalDataPt] = React.useState([]);\r\n const [fillStatusDataPt, setFillStatusDataPt] = React.useState([]);\r\n\r\n const [fillBusinessAreaDataEn, setFillBusinessAreaDataEn] = React.useState([]);\r\n const [fillCountryDataEn, setFillCountryDataEn] = React.useState([]);\r\n const [fillRegionalDataEn, setFillRegionalDataEn] = React.useState([]);\r\n const [fillStatusDataEn, setFillStatusDataEn] = React.useState([]);\r\n\r\n const [allLiaisonItems, setAllLiaisonItems] = React.useState([]);\r\n\r\n const [liaisonItemsPt, setLiaisonItemsPt] = React.useState([]);\r\n const [liaisonItemsEn, setLiaisonItemsEn] = React.useState([]);\r\n\r\n const [loadedCount, setLoadedCount] = React.useState(0);\r\n const [loaded, setLoaded] = React.useState(false);\r\n\r\n const [liaisonFilter, setLiaisonFilter] = React.useState(null);\r\n\r\n const [dateFilter, setDateFilter] = React.useState(null);\r\n const [responsibleFilter, setResponsibleFilter] = React.useState(null);\r\n const [businessAreaFilter, setBusinessAreaFilter] = React.useState(null);\r\n // const [jornalistaFilter, setJornalistaFilter] = React.useState(null);\r\n const [countryFilter, setCountryFilter] = React.useState(null);\r\n const [regionalFilter, setRegionalFilter] = React.useState(null);\r\n const [statusFilter, setStatusFilter] = React.useState(null);\r\n\r\n const { buildDialogMessage } = useModal();\r\n\r\n const initialLoad = () => {\r\n var promises = [];\r\n\r\n getAllBusinessAreas(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n let p = response.json();\r\n promises.push(p);\r\n p.then(data => configBusinessArea(data));\r\n }\r\n });\r\n getCountries(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n let p = response.json();\r\n promises.push(p);\r\n p.then(data => configCountries(data));\r\n }\r\n });\r\n getRegional(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n let p = response.json();\r\n promises.push(p);\r\n p.then(data => configRegionals(data));\r\n }\r\n });\r\n\r\n getLiaisonStatus(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n let p = response.json();\r\n promises.push(p);\r\n p.then(data => configStatus(data));\r\n }\r\n });\r\n }\r\n\r\n const configBusinessArea = (_businessAreas) => {\r\n setFillBusinessAreaDataPt(_businessAreas.map(x => {\r\n return {\r\n id: x.id,\r\n nome: x.nomePt\r\n };\r\n }));\r\n setFillBusinessAreaDataEn(_businessAreas.map(x => {\r\n return {\r\n id: x.id,\r\n nome: x.nomeEn\r\n };\r\n }));\r\n setLoadedCount(loadedCount => loadedCount + 1);\r\n };\r\n\r\n const configStatus = (_status) => {\r\n setFillStatusDataPt(_status.map(x => {\r\n return {\r\n id: x.id,\r\n nome: x.nomePt\r\n };\r\n }));\r\n setFillStatusDataEn(_status.map(x => {\r\n return {\r\n id: x.id,\r\n nome: x.nomeEn\r\n };\r\n }));\r\n setLoadedCount(loadedCount => loadedCount + 1);\r\n };\r\n\r\n const configCountries = (_contries) => {\r\n setFillCountryDataPt(_contries.map(x => {\r\n return {\r\n id: x.id,\r\n nome: x.nomePt\r\n };\r\n }));\r\n setFillCountryDataEn(_contries.map(x => {\r\n return {\r\n id: x.id,\r\n nome: x.nomeEn\r\n };\r\n }));\r\n setLoadedCount(loadedCount => loadedCount + 1);\r\n };\r\n\r\n const configRegionals = (_regionals) => {\r\n setFillRegionalDataPt(_regionals.map(x => {\r\n return {\r\n id: x.id,\r\n nome: x.nomePt\r\n };\r\n }));\r\n setFillRegionalDataEn(_regionals.map(x => {\r\n return {\r\n id: x.id,\r\n nome: x.nomeEn\r\n };\r\n }));\r\n setLoadedCount(loadedCount => loadedCount + 1);\r\n };\r\n\r\n let liaisonName = (args) => {\r\n return (\r\n props.edit(args)}>{args.jornalista}\r\n );\r\n }\r\n\r\n let formatDataRecebimento = (args) => {\r\n return dateFormat(args.dataRecebimento);\r\n };\r\n\r\n let formatDeadline = (args) => {\r\n return args.deadLine ? dateFormat(args.deadLine) : '';\r\n };\r\n\r\n let dateFormat = (date) => {\r\n return {new Date(date).toLocaleDateString(i18n.language)};\r\n };\r\n\r\n let liaisonStatus = (args) => {\r\n if (args.idStatus === 1) {\r\n return ({args.status})\r\n } else if (args.idStatus === 3 || args.idStatus === 4) {\r\n return ({args.status})\r\n } else {\r\n return ({args.status})\r\n }\r\n }\r\n\r\n const filterDate = (obj) => {\r\n setDateFilter(obj.value);\r\n let sDate = obj.startDate ? `${obj.startDate.toISOString().split('T')[0]}T00:00:00` : null;\r\n let eDate = obj.endDate ? `${obj.endDate.toISOString().split('T')[0]}T23:59:59` : null;\r\n setLiaisonFilter(\r\n liaisonFilter => ({\r\n ...liaisonFilter,\r\n dataInicio: sDate,\r\n dataFim: eDate\r\n })\r\n );\r\n }\r\n\r\n // const filterJornalista = (obj) => {\r\n // setJornalistaFilter(jornalistaFilter => obj.value);\r\n // setLiaisonFilter(\r\n // liaisonFilter => ({\r\n // ...liaisonFilter,\r\n // responsaveis: obj.value\r\n // })\r\n // );\r\n // }\r\n\r\n\r\n const filterResponsible = (obj) => {\r\n setResponsibleFilter(responsibleFilter => obj.value);\r\n setLiaisonFilter(\r\n liaisonFilter => ({\r\n ...liaisonFilter,\r\n responsaveis: obj.value\r\n })\r\n );\r\n }\r\n\r\n const filterBusinessArea = (obj) => {\r\n setBusinessAreaFilter(businessAreaFilter => obj.value);\r\n setLiaisonFilter(\r\n liaisonFilter => ({\r\n ...liaisonFilter,\r\n areaNegocio: obj.value\r\n })\r\n );\r\n }\r\n\r\n const filterCountry = (obj) => {\r\n setCountryFilter(countryFilter => obj.value);\r\n setLiaisonFilter(\r\n liaisonFilter => ({\r\n ...liaisonFilter,\r\n pais: obj.value\r\n })\r\n );\r\n }\r\n\r\n const filterRegional = (obj) => {\r\n setRegionalFilter(regionalFilter => obj.value);\r\n setLiaisonFilter(\r\n liaisonFilter => ({\r\n ...liaisonFilter,\r\n regional: obj.value\r\n })\r\n );\r\n }\r\n\r\n const filterStatus = (obj) => {\r\n setStatusFilter(statusFilter => obj.value);\r\n setLiaisonFilter(\r\n liaisonFilter => ({\r\n ...liaisonFilter,\r\n status: obj.value\r\n })\r\n );\r\n }\r\n\r\n const filterVehicle = (obj) => {\r\n setLiaisonFilter(\r\n liaisonFilter => ({\r\n ...liaisonFilter,\r\n veiculo: obj.value\r\n })\r\n );\r\n }\r\n\r\n React.useEffect(() => {\r\n if (gridInstance)\r\n gridInstance.refresh();\r\n }, [i18n.language]);\r\n\r\n const filteredLiaisons = () => {\r\n if (liaisonFilter) {\r\n let filteredItems = null;\r\n\r\n // if(liaisonFilter.jornalista) {\r\n // let items = filteredItems ? filteredItems : allLiaisonItems;\r\n // let id = parseInt(liaisonFilter.jornalista);\r\n // filteredItems = items.filter(x => {\r\n // return x.jornalista.id === id;\r\n // });\r\n // }\r\n\r\n if (liaisonFilter.veiculo) {\r\n let decomposedText = liaisonFilter.veiculo.trim().normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\r\n filteredItems = allLiaisonItems.filter(x => {\r\n return x.nomeVeiculo.trim().normalize('NFD').replace(/[\\u0300-\\u036f]/g, '').includes(decomposedText);\r\n });\r\n }\r\n\r\n if (liaisonFilter.dataInicio) {\r\n let items = filteredItems ? filteredItems : allLiaisonItems;\r\n let sDate = new Date(liaisonFilter.dataInicio.trim());\r\n filteredItems = items.filter(x => {\r\n return sDate.getTime() <= new Date(x.dataRecebimento).getTime();\r\n });\r\n }\r\n\r\n if (liaisonFilter.dataFim) {\r\n let items = filteredItems ? filteredItems : allLiaisonItems;\r\n let eDate = new Date(liaisonFilter.dataFim.trim());\r\n filteredItems = items.filter(x => {\r\n return eDate.getTime() >= new Date(x.dataRecebimento).getTime();\r\n });\r\n }\r\n\r\n if (liaisonFilter.responsaveis) {\r\n let items = filteredItems ? filteredItems : allLiaisonItems;\r\n let decomposedText = liaisonFilter.responsaveis.trim().normalize('NFD').replace(/[\\u0300-\\u036f]/g, '');\r\n filteredItems = items.filter(x => {\r\n return x.responsaveis && x.responsaveis.trim().normalize('NFD').replace(/[\\u0300-\\u036f]/g, '').includes(decomposedText);\r\n });\r\n }\r\n\r\n if (liaisonFilter.areaNegocio) {\r\n let items = filteredItems ? filteredItems : allLiaisonItems;\r\n let id = parseInt(liaisonFilter.areaNegocio);\r\n filteredItems = items.filter(x => {\r\n return x.areaNegocio.id === id;\r\n });\r\n }\r\n\r\n if (liaisonFilter.pais) {\r\n let items = filteredItems ? filteredItems : allLiaisonItems;\r\n let id = parseInt(liaisonFilter.pais);\r\n filteredItems = items.filter(x => {\r\n return x.idPais === id;\r\n });\r\n }\r\n\r\n if (liaisonFilter.regional) {\r\n let items = filteredItems ? filteredItems : allLiaisonItems;\r\n let id = parseInt(liaisonFilter.regional);\r\n filteredItems = items.filter(x => {\r\n return x.idRegional === id;\r\n });\r\n }\r\n\r\n if (liaisonFilter.status) {\r\n let items = filteredItems ? filteredItems : allLiaisonItems;\r\n let id = parseInt(liaisonFilter.status);\r\n filteredItems = items.filter(x => {\r\n return x.idStatus === id;\r\n });\r\n }\r\n\r\n if (filteredItems) {\r\n splitDataSource(filteredItems);\r\n } else {\r\n splitDataSource(allLiaisonItems);\r\n }\r\n\r\n setIsVisible(false);\r\n } else {\r\n splitDataSource(allLiaisonItems);\r\n }\r\n }\r\n\r\n const splitDataSource = (data) => {\r\n let resultReduce = data.reduce((output, item, idx) => {\r\n output[0].push({ ...item });\r\n let itemPt = output[0][idx];\r\n\r\n let statusPt = fillStatusDataPt.find(st => st.id === itemPt.idStatus);\r\n if (statusPt) itemPt.status = statusPt.nome;\r\n\r\n itemPt.businessArea = itemPt.areaNegocio.nomePt;\r\n\r\n let countryPt = fillCountryDataPt.find(ct => ct.id === itemPt.idPais);\r\n if (countryPt) itemPt.country = countryPt.nome;\r\n\r\n let regionalPt = fillRegionalDataPt.find(rg => rg.id === itemPt.idRegional);\r\n if (regionalPt) itemPt.regional = regionalPt.nome;\r\n\r\n output[1].push({ ...item });\r\n let itemEn = output[1][idx];\r\n\r\n let statusEn = fillStatusDataEn.find(st => st.id === itemEn.idStatus);\r\n if (statusEn) itemEn.status = statusEn.nome;\r\n\r\n itemEn.businessArea = itemEn.areaNegocio.nomeEn;\r\n\r\n let countryEn = fillCountryDataEn.find(ct => ct.id === itemEn.idPais);\r\n if (countryEn) itemEn.country = countryEn.nome;\r\n\r\n let regionalEn = fillRegionalDataEn.find(rg => rg.id === itemEn.idRegional);\r\n if (regionalEn) itemEn.regional = regionalEn.nome;\r\n return output;\r\n }, [[], []]);\r\n\r\n setLiaisonItemsPt(liaisonItemsPt => resultReduce[0]);\r\n setLiaisonItemsEn(liaisonItemsEn => resultReduce[1]);\r\n }\r\n\r\n React.useEffect(() => {\r\n if (refLiaison && refLiaison.element) {\r\n refLiaison.showSpinner();\r\n initialLoad();\r\n }\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n initialLoad();\r\n }, [i18n.language]);\r\n\r\n React.useEffect(() => {\r\n if (loadedCount === 4) setLoaded(true);\r\n }, [loadedCount]);\r\n\r\n React.useEffect(() => {\r\n if (loaded) {\r\n getLiaisonItems(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n response.json().then(data => {\r\n setAllLiaisonItems(data);\r\n splitDataSource(data);\r\n });\r\n }\r\n });\r\n }\r\n }, [loaded]);\r\n\r\n return (\r\n <>\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n

    {t('Liaison:search_text')}

    \r\n
    \r\n
    \r\n
    \r\n filterVehicle(e)}\r\n />\r\n
    \r\n
    \r\n
    \r\n {/* {!isVisible && */}\r\n
    \r\n setIsVisible(!isVisible)}>\r\n \r\n {t('Liaison:filters')}\r\n \r\n
    \r\n {/* }\r\n {isVisible &&\r\n
    \r\n setIsVisible(!isVisible)}>\r\n \r\n {t('Liaison:filters')}\r\n \r\n
    \r\n } */}\r\n
    \r\n \r\n {t('Liaison:search')}\r\n \r\n
    \r\n
    \r\n
    \r\n {isVisible &&\r\n
    \r\n \r\n filterResponsible(e)}\r\n value={responsibleFilter}\r\n />\r\n filterBusinessArea(e)}\r\n value={businessAreaFilter}\r\n />\r\n filterCountry(e)}\r\n value={countryFilter}\r\n />\r\n filterRegional(e)}\r\n value={regionalFilter}\r\n />\r\n filterStatus(e)}\r\n value={statusFilter}\r\n />\r\n
    \r\n }\r\n
    \r\n
    \r\n refLiaison(grid)}\r\n pageSettings={{ pageSize: 20 }}\r\n locale={i18n.language}>\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 \r\n
    \r\n \r\n )\r\n}\r\n","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { GlobalStateContext } from \"../general/GlobalState\";\r\nimport { Container, Row } from \"reactstrap\";\r\nimport { Buttons } from \"../utilities/Buttons\";\r\nimport { ReleasesList } from \"../releases/ReleasesList\";\r\nimport { LiaisonList } from \"./LiaisonList\";\r\nimport PermissionRedirect from \"../utilities/PermissionRedirect/PermissionRedirect\";\r\n\r\nlet userPermission;\r\nexport const Liaison = () => {\r\n\r\n const { t } = useTranslation();\r\n\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [redirect, setRedirect] = React.useState(false);\r\n const [idLiaison, setIdLiaison] = React.useState(null);\r\n const [gridInstance, setGridInstance] = React.useState(null);\r\n\r\n React.useEffect(() => {\r\n let globalPermissions = globalState.permissions;\r\n userPermission = globalPermissions.filter((i) => i.idAreaAcesso === 7).map((i) => (i.permission));\r\n }, [globalState]);\r\n\r\n const _controls = {\r\n permit: userPermission ? userPermission : null,\r\n export: () => exportLiaison(),\r\n import: \"\",\r\n new: () => setRedirect(true),\r\n back: \"\",\r\n };\r\n\r\n const editLiaison = (info) => {\r\n setIdLiaison(info.id);\r\n setRedirect(true);\r\n }\r\n\r\n const exportLiaison = () => {\r\n if (gridInstance) {\r\n let lang = i18n.language;\r\n let gridInstanceExport = gridInstance;\r\n gridInstanceExport.dataSource.map(function (x) {\r\n x.dataRecebimento = new Date(x.dataRecebimento).toLocaleDateString(lang);\r\n if (x.deadLine) x.deadLine = new Date(x.deadLine).toLocaleDateString(lang);\r\n return x;\r\n });\r\n console.log('gridInstanceExport', gridInstanceExport);\r\n gridInstanceExport.excelExport();\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n {globalState.accessToken === null ? :\r\n redirect ? (\r\n idLiaison === null ?\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

    {t('Liaison:title')}

    \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","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { GlobalStateContext } from \"../../general/GlobalState\";\r\nimport { MailingContactsContext } from \"./MailingContactsContext\";\r\nimport { GridComponent, ColumnsDirective, ColumnDirective, ForeignKey, Filter, Inject, VirtualScroll, Sort, ContextMenu, Page, Resize, Edit, ExcelExport } from '@syncfusion/ej2-react-grids';\r\nimport { DropDownListComponent } from '@syncfusion/ej2-react-dropdowns';\r\nimport { TextBoxComponent } from '@syncfusion/ej2-react-inputs';\r\nimport { ButtonComponent } from '@syncfusion/ej2-react-buttons';\r\nimport { createSpinner, hideSpinner, setSpinner, showSpinner } from '@syncfusion/ej2-react-popups';\r\nimport { hasPermissions } from \"../../utilities/Utils\";\r\nimport { useModal } from \"../../../hooks/Modal\";\r\nimport { countriesJSON } from '../../../resources/countries.js';\r\n\r\nlet gridInstance;\r\nexport const ContactsList = (props) => {\r\n\r\n let textBoxSearch;\r\n const { gridRef } = props;\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const { mediaTypes, countries, states, cities, setItem, contactListItems } = React.useContext(MailingContactsContext);\r\n const [isVisible, setIsVisible] = React.useState(false);\r\n const [loading, setLoading] = React.useState(true);\r\n const [itemSelected, setItemSelected] = React.useState(null);\r\n const [filter, setFilter] = React.useState({});\r\n\r\n const { buildDialogMessage } = useModal();\r\n\r\n const { t } = useTranslation();\r\n\r\n React.useEffect(() => {\r\n setIsVisible(false);\r\n if (textBoxSearch)\r\n textBoxSearch.placeholder = t('Contacts:search_placeholder');\r\n }, [i18n.language]);\r\n\r\n React.useEffect(() => {\r\n if (loading) {\r\n createSpinner({ target: document.getElementById('loadContactsList') });\r\n showSpinner(document.getElementById('loadContactsList'));\r\n setSpinner({ type: 'Bootstrap' });\r\n }\r\n }, [loading]);\r\n\r\n React.useEffect(() => {\r\n const elemSpinner = document.getElementById('loadContactsList');\r\n if (contactListItems && elemSpinner) {\r\n hideSpinner(elemSpinner);\r\n setLoading(false);\r\n }\r\n }, [contactListItems]);\r\n\r\n const inputChange = e => {\r\n setFilter({ ...filter, [e.event.currentTarget.id]: e.value });\r\n }\r\n const dropdownlistChange = e => {\r\n setFilter({ ...filter, [e.element.id]: e.value });\r\n }\r\n\r\n const filterGrid = e => {\r\n setIsVisible(false);\r\n if (gridInstance) {\r\n let dataFiltered = [...contactListItems];\r\n const filterValue = filter.tbSearch.trim().toLowerCase();\r\n\r\n if (filterValue)\r\n dataFiltered = dataFiltered.filter(item => {\r\n\r\n console.log(item)\r\n return item.jornalista && item.jornalista.toLowerCase().includes(filterValue)\r\n || item.nomeVeiculo && item.nomeVeiculo.toLowerCase().includes(filterValue)\r\n || item.telefone && item.telefone.some(tel => tel.telefone && tel.telefone.toLowerCase().includes(filterValue))\r\n });\r\n if (filter.mediaTypes)\r\n dataFiltered = dataFiltered.filter(item => item.idtipoMidia ===filter.mediaTypes);\r\n if (filter.countries)\r\n dataFiltered = dataFiltered.filter(item => item.idpais ===filter.countries);\r\n if (filter.states)\r\n dataFiltered = dataFiltered.filter(item => item.idestado ===filter.states);\r\n if (filter.cities)\r\n dataFiltered = dataFiltered.filter(item => item.idcidade ===filter.cities);\r\n\r\n gridInstance.dataSource = dataFiltered;\r\n }\r\n }\r\n\r\n const titleTemplate = (e) => {\r\n return (\r\n
    \r\n setItemSelected(e.id)} className=\"jornalistaTemplate\"> {e.jornalista} \r\n
    \r\n )\r\n }\r\n\r\n const emailTemplate = (e) => {\r\n return (\r\n
    \r\n {e.email.length > 0 && e.email.map((email, index) => (\r\n {email.email} \r\n ))}\r\n
    \r\n )\r\n }\r\n\r\n const phoneTemplate = (e) => {\r\n return (\r\n
    \r\n {e.telefone.length > 0 && e.telefone.map((phone, index) => {\r\n const currentCountry = countriesJSON.find(country => country.nameEn === phone.country);\r\n return (\r\n setItemSelected(e.id)} className=\"phoneTemplate\"> {currentCountry && currentCountry.dialCode + phone.telefone} \r\n )\r\n }\r\n )}\r\n
    \r\n )\r\n }\r\n\r\n React.useEffect(() => {\r\n if (gridInstance)\r\n gridInstance.refresh();\r\n }, [i18n.language]);\r\n\r\n return (\r\n itemSelected ? :\r\n loading ?
    :\r\n <>\r\n
    \r\n
    \r\n
    \r\n \r\n

    {t('Contacts:search_text')}

    \r\n
    \r\n
    \r\n
    \r\n textBoxSearch = textBox}\r\n className=\"e-input\"\r\n change={inputChange}\r\n />\r\n
    \r\n
    \r\n
    \r\n {!isVisible &&\r\n
    \r\n setIsVisible(!isVisible)}>\r\n \r\n {t('Contacts:filters')}\r\n \r\n
    \r\n }\r\n {isVisible &&\r\n
    \r\n setIsVisible(!isVisible)}>\r\n \r\n {t('Contacts:filters')}\r\n \r\n
    \r\n }\r\n
    \r\n \r\n\r\n {t('Contacts:search')}\r\n\r\n \r\n
    \r\n
    \r\n
    \r\n {isVisible &&\r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n }\r\n
    \r\n
    \r\n {contactListItems &&\r\n gridInstance = grid}\r\n dataSource={contactListItems}\r\n filterSettings={{ type: 'Menu' }}\r\n allowFiltering={false}\r\n allowPaging={true}\r\n allowSorting={true}\r\n allowExcelExport={true}\r\n allowResizing={true}\r\n locale={i18n.language}>\r\n \r\n \r\n \r\n emailTemplate(e)}\r\n width='100'>\r\n \r\n \r\n \r\n \r\n \r\n phoneTemplate(e)}\r\n width='100'>\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n
    \r\n \r\n )\r\n}\r\n","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { GlobalStateContext } from \"../../general/GlobalState\";\r\nimport { MailingContactsContext } from \"./MailingContactsContext\";\r\nimport { Container, Row } from \"reactstrap\";\r\nimport { SidebarComponent } from '@syncfusion/ej2-react-navigations';\r\nimport { UploaderComponent } from \"@syncfusion/ej2-react-inputs\";\r\nimport { ButtonComponent } from '@syncfusion/ej2-react-buttons';\r\nimport { GridComponent, ColumnsDirective, ColumnDirective, Filter, Sort, ContextMenu, Page, Resize, Inject } from \"@syncfusion/ej2-react-grids\";\r\nimport { createSpinner, setSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\r\nimport { Buttons } from \"../../utilities/Buttons\";\r\nimport { ContactsList } from \"./ContactsList\";\r\nimport { getImportMailingContactsTemplate, importMailingContacts, getMailingContactItems } from \"../../../services/MailingSVC\";\r\nimport { getPressMediaTypes, getCountries, getStates, getCities } from \"../../../services/SystemSVC\";\r\nimport * as signalR from \"@microsoft/signalr\";\r\nimport '../../mailing/mailing.css'\r\nimport PermissionRedirect from \"../../utilities/PermissionRedirect/PermissionRedirect\";\r\n\r\nconst uploadIcon = '';\r\nlet gridFeedbackRef;\r\n\r\nlet userPermission;\r\n\r\nexport const Contacts = (props) => {\r\n let sidebarRef;\r\n let uploaderContactsRef;\r\n let buttonImportRef;\r\n\r\n const { t } = useTranslation();\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const mailingState = React.useContext(MailingContactsContext);\r\n const [redirect, setRedirect] = React.useState(false);\r\n const [gridInstance, setGridInstance] = React.useState(null);\r\n const [importResults, setImportResults] = React.useState([]);\r\n const [buttonDisabled, setButtonDisabled] = React.useState(true);\r\n\r\n React.useEffect(() => {\r\n let globalPermissions = globalState.permissions;\r\n userPermission = globalPermissions.filter((i) => i.idAreaAcesso === 10).map((i) => (i.permission));\r\n }, [globalState]);\r\n\r\n const _controls = {\r\n permit: userPermission ? userPermission : null,\r\n export: \"\",\r\n import: () => sidebarRef.toggle(),\r\n new: () => {\r\n mailingState.setItem(null);\r\n setRedirect(true);\r\n },\r\n back: \"\",\r\n };\r\n\r\n const contextMenuItems = ['SortAscending', 'SortDescending', 'FirstPage', 'PrevPage', 'LastPage', 'NextPage'];\r\n\r\n React.useEffect(() => {\r\n let loadingEl = document.getElementById('loading');\r\n if (loadingEl)\r\n createSpinner({ target: loadingEl });\r\n\r\n getPressMediaTypes(globalState.accessToken).then(response => {\r\n if (response.ok)\r\n response.json().then(mailingState.setMediaTypes);\r\n });\r\n getCountries(globalState.accessToken).then(response => {\r\n if (response.ok)\r\n response.json().then(mailingState.setCountries);\r\n });\r\n getStates(globalState.accessToken).then(response => {\r\n if (response.ok)\r\n response.json().then(mailingState.setStates);\r\n });\r\n getCities(globalState.accessToken).then(response => {\r\n if (response.ok)\r\n response.json().then(mailingState.setCities);\r\n });\r\n\r\n\r\n if (gridFeedbackRef) {\r\n const connection = new signalR.HubConnectionBuilder()\r\n .withUrl(`${process.env.REACT_APP_AZFUNCTION_URL}/api/ImportMailingContacts`)\r\n .configureLogging(signalR.LogLevel.Information)\r\n .withAutomaticReconnect()\r\n .build();\r\n\r\n connection.on('importMailingContacts', importFeedbackReceiver);\r\n connection.onclose(() => console.log('disconnected'));\r\n connection.start().then(() => console.log('connected')).catch(console.error);\r\n }\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n if (mailingState.mediaTypes) {\r\n if (mailingState.gridContactsList && mailingState.gridContactsList.element)\r\n mailingState.gridContactsList.showSpinner();\r\n loadContactsItems();\r\n }\r\n }, [mailingState.mediaTypes]);\r\n\r\n const loadContactsItems = () => {\r\n // const qString = \"?$select=id,jornalista,idTipoMidia,nomeVeiculo,email,telefone,idpais,idestado,idcidade,importado\";\r\n const qString = \"?$orderby=jornalista%20asc\"\r\n getMailingContactItems(globalState.accessToken, qString).then(response => {\r\n if (response.ok)\r\n response.json().then(result => {\r\n result.map(item => {\r\n const mediaType = mailingState.mediaTypes.find(mt => mt.id === item.idtipoMidia);\r\n if (mediaType) {\r\n item.tipoMidiaPt = mediaType.nomePt;\r\n item.tipoMidiaEn = mediaType.nomeEn;\r\n }\r\n item.importadoPt = item.importado ? \"Sim\" : \"Não\";\r\n item.importadoEn = item.importado ? \"Yes\" : \"No\";\r\n });\r\n mailingState.setContactListItems(result);\r\n });\r\n });\r\n }\r\n\r\n const importFeedbackReceiver = feedbackItem => {\r\n if (feedbackItem.IsError)\r\n setImportResults(importResults => ([...importResults, feedbackItem]));\r\n else {\r\n if (feedbackItem.Progress === 100) {\r\n document.getElementById(\"btnImportContact\").style.display = \"inline-block\";\r\n hideSpinner(document.getElementById('loading'));\r\n document.getElementById('percentage').innerHTML = \"\";\r\n loadContactsItems();\r\n }\r\n else {\r\n document.getElementById(\"btnImportContact\").style.display = \"none\";\r\n showSpinner(document.getElementById('loading'));\r\n document.getElementById('percentage').innerHTML = feedbackItem.Progress + \"%\";\r\n }\r\n }\r\n }\r\n\r\n const uploadTemplate = () => {\r\n document.getElementsByClassName(\"e-file-select-wrap\")[0].querySelector(\"button\").click();\r\n return false;\r\n }\r\n\r\n const onFileUploadSucceeded = (e) => {\r\n setButtonDisabled(e.operation ===\"remove\");\r\n }\r\n\r\n const onFileRemove = () => {\r\n setButtonDisabled(true);\r\n };\r\n\r\n const sidebarCreated = () => {\r\n sidebarRef.element.style.visibility = '';\r\n }\r\n\r\n const downloadTemplate = () => {\r\n getImportMailingContactsTemplate(globalState.tokenLightWeight)\r\n .then(response => response.blob()).then(blob => {\r\n var url = window.URL.createObjectURL(blob);\r\n var a = document.createElement('a');\r\n a.href = url;\r\n a.download = \"template.xlsx\";\r\n document.body.appendChild(a);\r\n a.click();\r\n a.remove();\r\n });\r\n }\r\n\r\n const importContacts = () => {\r\n gridFeedbackRef.dataSource = [];\r\n if (uploaderContactsRef.filesData.length)\r\n importMailingContacts(globalState.accessToken, uploaderContactsRef.filesData[0].rawFile)\r\n .then().catch(console.error);\r\n }\r\n\r\n\r\n React.useEffect(() => {\r\n if (gridFeedbackRef)\r\n gridFeedbackRef.refresh();\r\n }, [i18n.language]);\r\n\r\n return (\r\n <>\r\n {globalState.accessToken === null ? :\r\n redirect ?\r\n \r\n :\r\n <>\r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    {t('Contacts:title')}

    \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 sidebarRef = sidebar}\r\n style={{ visibility: \"hidden\" }}\r\n created={sidebarCreated}\r\n type=\"Push\"\r\n position=\"Right\"\r\n closeOnDocumentClick={true}\r\n >\r\n
    \r\n
    \r\n
    \r\n \r\n

    {t('Photo:uploadMessage')} {t('Photo:uploadMessageLastPart')}

    \r\n
    \r\n
    \r\n uploaderContactsRef = uploader}\r\n allowedExtensions=\".xls, .xlsx\"\r\n dropArea={document.getElementById(\"dropArea\")}\r\n locale={i18n.language}\r\n multiple={false}\r\n removing={onFileRemove}\r\n selected={onFileUploadSucceeded}\r\n >\r\n \r\n
    \r\n \r\n {t('Contacts:msg_download_template')}\r\n \r\n
    \r\n
    \r\n buttonImportRef = buttonComponent} id=\"btnImportContact\" disabled={buttonDisabled} cssClass='e-primary new' onClick={importContacts}>\r\n {t('Contacts:import_contacts')}\r\n \r\n
    \r\n
    \r\n \r\n gridFeedbackRef = gridComponent}\r\n contextMenuItems={contextMenuItems}\r\n dataSource={importResults}\r\n filterSettings={{ type: 'Menu' }}\r\n allowPaging={true}\r\n allowSorting={true}\r\n locale={i18n.language}\r\n allowFiltering={true}\r\n allowResizing={true}\r\n pageSettings={{ pageSize: 10 }}\r\n // queryCellInfo={renderCellGroup}\r\n // rowSelected={onGridRowSelected}\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}","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { GlobalStateContext } from \"../../general/GlobalState\";\r\nimport { MailingContactsContext } from \"./MailingContactsContext\";\r\nimport { GridComponent, ColumnsDirective, ColumnDirective, ForeignKey, Filter, Inject, VirtualScroll, Sort, ContextMenu, Page, Resize, Edit, ExcelExport } from '@syncfusion/ej2-react-grids';\r\nimport { DropDownListComponent } from '@syncfusion/ej2-react-dropdowns';\r\nimport { TextBoxComponent } from '@syncfusion/ej2-react-inputs';\r\nimport { ButtonComponent } from '@syncfusion/ej2-react-buttons';\r\nimport { createSpinner, hideSpinner, setSpinner, showSpinner } from '@syncfusion/ej2-react-popups';\r\nimport { hasPermissions } from \"../../utilities/Utils\";\r\nimport { useModal } from \"../../../hooks/Modal\";\r\n\r\nlet gridInstance;\r\nexport const ContactsList = (props) => {\r\n\r\n let textBoxSearch;\r\n const { gridRef } = props;\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const { setItem, contactListItems } = React.useContext(MailingContactsContext);\r\n const [isVisible, setIsVisible] = React.useState(false);\r\n const [loading, setLoading] = React.useState(true);\r\n const [itemSelected, setItemSelected] = React.useState(null);\r\n const [filter, setFilter] = React.useState({});\r\n\r\n const { buildDialogMessage } = useModal();\r\n\r\n const { t } = useTranslation();\r\n\r\n React.useEffect(() => {\r\n setIsVisible(false);\r\n if (textBoxSearch)\r\n textBoxSearch.placeholder = t('Contacts:search_placeholder');\r\n }, [i18n.language]);\r\n\r\n React.useEffect(() => {\r\n if (loading) {\r\n createSpinner({ target: document.getElementById('loadContactsList') });\r\n showSpinner(document.getElementById('loadContactsList'));\r\n setSpinner({ type: 'Bootstrap' });\r\n }\r\n }, [loading]);\r\n\r\n React.useEffect(() => {\r\n const elemSpinner = document.getElementById('loadContactsList');\r\n if (contactListItems && elemSpinner) {\r\n hideSpinner(elemSpinner);\r\n setLoading(false);\r\n }\r\n }, [contactListItems]);\r\n\r\n const inputChange = e => {\r\n setFilter({ ...filter, [e.event.currentTarget.id]: e.value });\r\n }\r\n const dropdownlistChange = e => {\r\n setFilter({ ...filter, [e.element.id]: e.value });\r\n }\r\n\r\n const filterGrid = e => {\r\n setIsVisible(false);\r\n if (gridInstance) {\r\n let dataFiltered = [...contactListItems];\r\n const filterValue = filter.tbSearch.trim().toLowerCase();\r\n if (filterValue)\r\n dataFiltered = dataFiltered.filter(item => item.nome && item.nome.toLowerCase().includes(filterValue)\r\n || item.nomeVeiculo && item.nomeVeiculo.toLowerCase().includes(filterValue)\r\n );\r\n\r\n gridInstance.dataSource = dataFiltered;\r\n }\r\n }\r\n\r\n const nomeTemplate = (e) => {\r\n return (\r\n setItemSelected(e.id)} className=\"emailTemplate\"> {e.nome} \r\n )\r\n }\r\n\r\n React.useEffect(() => {\r\n if (gridInstance)\r\n gridInstance.refresh();\r\n }, [i18n.language]);\r\n\r\n return (\r\n itemSelected ? :\r\n loading ?
    :\r\n <>\r\n
    \r\n
    \r\n
    \r\n \r\n

    {t('Contacts:search_text')}

    \r\n
    \r\n
    \r\n
    \r\n textBoxSearch = textBox}\r\n className=\"e-input\"\r\n change={inputChange}\r\n />\r\n
    \r\n
    \r\n
    \r\n {!isVisible &&\r\n
    \r\n setIsVisible(!isVisible)}>\r\n \r\n {t('Contacts:filters')}\r\n \r\n
    \r\n }\r\n {isVisible &&\r\n
    \r\n setIsVisible(!isVisible)}>\r\n \r\n {t('Contacts:filters')}\r\n \r\n
    \r\n }\r\n
    \r\n \r\n\r\n {t('Contacts:search')}\r\n\r\n \r\n
    \r\n
    \r\n
    \r\n {/* {isVisible &&\r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n } */}\r\n
    \r\n
    \r\n {contactListItems &&\r\n gridInstance = grid}\r\n dataSource={contactListItems}\r\n filterSettings={{ type: 'Menu' }}\r\n allowFiltering={false}\r\n allowPaging={true}\r\n allowSorting={true}\r\n allowExcelExport={true}\r\n allowResizing={true}\r\n locale={i18n.language}>\r\n \r\n nomeTemplate(e)}\r\n width='100'>\r\n \r\n {/* emailTemplate(e)}\r\n width='100'>\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","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { GlobalStateContext } from \"../../general/GlobalState\";\r\nimport { MailingContactsContext } from \"./MailingContactsContext\";\r\nimport { Container, Row } from \"reactstrap\";\r\nimport { SidebarComponent } from '@syncfusion/ej2-react-navigations';\r\nimport { UploaderComponent } from \"@syncfusion/ej2-react-inputs\";\r\nimport { ButtonComponent } from '@syncfusion/ej2-react-buttons';\r\nimport { GridComponent, ColumnsDirective, ColumnDirective, Filter, Sort, ContextMenu, Page, Resize, Inject } from \"@syncfusion/ej2-react-grids\";\r\nimport { createSpinner, setSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';\r\nimport { Buttons } from \"../../utilities/Buttons\";\r\nimport { ContactsList } from \"./ContactsList\";\r\nimport { getImportMailingContactsTemplate, importMailingContacts, getMailingContactItems } from \"../../../services/MailingGeneralSVC\";\r\nimport { getPressMediaTypes, getCountries, getStates, getCities } from \"../../../services/SystemSVC\";\r\nimport * as signalR from \"@microsoft/signalr\";\r\nimport '../../mailing/mailing.css'\r\nimport PermissionRedirect from \"../../utilities/PermissionRedirect/PermissionRedirect\";\r\n\r\nconst uploadIcon = '';\r\nlet gridFeedbackRef;\r\n\r\nlet userPermission;\r\n\r\nexport const GeneralContacts = (props) => {\r\n let sidebarRef;\r\n let uploaderContactsRef;\r\n let buttonImportRef;\r\n\r\n const { t } = useTranslation();\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const mailingState = React.useContext(MailingContactsContext);\r\n const [redirect, setRedirect] = React.useState(false);\r\n const [gridInstance, setGridInstance] = React.useState(null);\r\n const [importResults, setImportResults] = React.useState([]);\r\n const [buttonDisabled, setButtonDisabled] = React.useState(true);\r\n\r\n React.useEffect(() => {\r\n let globalPermissions = globalState.permissions;\r\n userPermission = globalPermissions.filter((i) => i.idAreaAcesso === 62).map((i) => (i.permission));\r\n }, [globalState]);\r\n\r\n const _controls = {\r\n permit: userPermission ? userPermission : null,\r\n export: \"\",\r\n // import: () => sidebarRef.toggle(),\r\n new: () => {\r\n mailingState.setItem(null);\r\n setRedirect(true);\r\n },\r\n back: \"\",\r\n };\r\n\r\n const contextMenuItems = ['SortAscending', 'SortDescending', 'FirstPage', 'PrevPage', 'LastPage', 'NextPage'];\r\n\r\n React.useEffect(() => {\r\n let loadingEl = document.getElementById('loading');\r\n if (loadingEl)\r\n createSpinner({ target: loadingEl });\r\n\r\n // if (gridFeedbackRef) {\r\n // const connection = new signalR.HubConnectionBuilder()\r\n // .withUrl(`${process.env.REACT_APP_AZFUNCTION_URL}/api/ImportMailingContacts`)\r\n // .configureLogging(signalR.LogLevel.Information)\r\n // .withAutomaticReconnect()\r\n // .build();\r\n\r\n // connection.on('importMailingContacts', importFeedbackReceiver);\r\n // connection.onclose(() => console.log('disconnected'));\r\n // connection.start().then(() => console.log('connected')).catch(console.error);\r\n // }\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n if (mailingState.gridContactsList && mailingState.gridContactsList.element)\r\n mailingState.gridContactsList.showSpinner();\r\n loadContactsItems();\r\n }, []);\r\n\r\n const loadContactsItems = () => {\r\n // const qString = \"?$select=id, nome, nomeEmpresa, cargo, tipoPublico\";\r\n const qString = \"?$orderby=nome%20asc\"\r\n getMailingContactItems(globalState.accessToken, qString).then(response => {\r\n if (response.ok)\r\n response.json().then(result => {\r\n mailingState.setContactListItems(result);\r\n });\r\n });\r\n }\r\n\r\n // const importFeedbackReceiver = feedbackItem => {\r\n // if (feedbackItem.IsError)\r\n // setImportResults(importResults => ([...importResults, feedbackItem]));\r\n // else {\r\n // if (feedbackItem.Progress === 100) {\r\n // document.getElementById(\"btnImportContact\").style.display = \"inline-block\";\r\n // hideSpinner(document.getElementById('loading'));\r\n // document.getElementById('percentage').innerHTML = \"\";\r\n // loadContactsItems();\r\n // }\r\n // else {\r\n // document.getElementById(\"btnImportContact\").style.display = \"none\";\r\n // showSpinner(document.getElementById('loading'));\r\n // document.getElementById('percentage').innerHTML = feedbackItem.Progress + \"%\";\r\n // }\r\n // }\r\n // }\r\n\r\n // const uploadTemplate = () => {\r\n // document.getElementsByClassName(\"e-file-select-wrap\")[0].querySelector(\"button\").click();\r\n // return false;\r\n // }'\r\n\r\n const onFileUploadSucceeded = (e) => {\r\n setButtonDisabled(e.operation ===\"remove\");\r\n }\r\n\r\n const onFileRemove = () => {\r\n setButtonDisabled(true);\r\n };\r\n\r\n const sidebarCreated = () => {\r\n sidebarRef.element.style.visibility = '';\r\n }\r\n\r\n const downloadTemplate = () => {\r\n getImportMailingContactsTemplate(globalState.tokenLightWeight)\r\n .then(response => response.blob()).then(blob => {\r\n var url = window.URL.createObjectURL(blob);\r\n var a = document.createElement('a');\r\n a.href = url;\r\n a.download = \"template.xlsx\";\r\n document.body.appendChild(a);\r\n a.click();\r\n a.remove();\r\n });\r\n }\r\n\r\n const importContacts = () => {\r\n gridFeedbackRef.dataSource = [];\r\n if (uploaderContactsRef.filesData.length)\r\n importMailingContacts(globalState.accessToken, uploaderContactsRef.filesData[0].rawFile)\r\n .then().catch(console.error);\r\n }\r\n\r\n\r\n React.useEffect(() => {\r\n if (gridFeedbackRef)\r\n gridFeedbackRef.refresh();\r\n }, [i18n.language]);\r\n\r\n return (\r\n <>\r\n {globalState.accessToken === null ? :\r\n redirect ?\r\n \r\n :\r\n <>\r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    {t('GeneralContacts:title')}

    \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 sidebarRef = sidebar}\r\n style={{ visibility: \"hidden\" }}\r\n created={sidebarCreated}\r\n type=\"Push\"\r\n position=\"Right\"\r\n closeOnDocumentClick={true}\r\n >\r\n
    \r\n
    \r\n
    \r\n \r\n

    {t('Photo:uploadMessage')} console.log('teste')}>{t('Photo:uploadMessageLastPart')}

    \r\n
    \r\n
    \r\n uploaderContactsRef = uploader}\r\n allowedExtensions=\".xls, .xlsx\"\r\n dropArea={document.getElementById(\"dropArea\")}\r\n locale={i18n.language}\r\n multiple={false}\r\n removing={onFileRemove}\r\n selected={onFileUploadSucceeded}\r\n >\r\n \r\n
    \r\n \r\n {t('Contacts:msg_download_template')}\r\n \r\n
    \r\n {/*
    \r\n buttonImportRef = buttonComponent} id=\"btnImportContact\" disabled={buttonDisabled} cssClass='e-primary new' onClick={importContacts}>\r\n {t('Contacts:import_contacts')}\r\n \r\n
    */}\r\n
    \r\n \r\n gridFeedbackRef = gridComponent}\r\n contextMenuItems={contextMenuItems}\r\n dataSource={importResults}\r\n filterSettings={{ type: 'Menu' }}\r\n allowPaging={true}\r\n allowSorting={true}\r\n locale={i18n.language}\r\n allowFiltering={true}\r\n allowResizing={true}\r\n pageSettings={{ pageSize: 10 }}\r\n // queryCellInfo={renderCellGroup}\r\n // rowSelected={onGridRowSelected}\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","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { GlobalStateContext } from \"../../general/GlobalState\";\r\nimport { Container, Row } from \"reactstrap\";\r\nimport { Buttons } from \"../../utilities/Buttons\";\r\nimport { GroupsList } from \"./GroupsList\";\r\nimport PermissionRedirect from \"../../utilities/PermissionRedirect/PermissionRedirect\";\r\n\r\nlet userPermission;\r\n\r\nexport const Groups = () => {\r\n\r\n const { t } = useTranslation();\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [redirect, setRedirect] = React.useState(false);\r\n const [loading, setLoading] = React.useState(false);\r\n const [idRelease, setIdRelease] = React.useState(null);\r\n\r\n React.useEffect(() => {\r\n let globalPermissions = globalState.permissions;\r\n userPermission = globalPermissions.filter((i) => i.idAreaAcesso === 11).map((i) => (i.permission));\r\n setLoading(true);\r\n }, [globalState]);\r\n\r\n const _controls = {\r\n permit: userPermission ? userPermission : null,\r\n export: false,\r\n import: \"\",\r\n new: () => setRedirect(true),\r\n back: \"\",\r\n };\r\n\r\n return (\r\n <>\r\n {globalState.accessToken === null ? :\r\n redirect ? (\r\n idRelease === null ?\r\n \r\n :\r\n \r\n ) : (\r\n loading &&\r\n <>\r\n \r\n\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    {t('Groups:title')}

    \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","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { GlobalStateContext } from \"../../general/GlobalState\";\r\nimport { Container, Row } from \"reactstrap\";\r\nimport { Buttons } from \"../../utilities/Buttons\";\r\nimport { GroupsList } from \"./GroupsList\";\r\nimport PermissionRedirect from \"../../utilities/PermissionRedirect/PermissionRedirect\";\r\n\r\nlet userPermission;\r\n\r\nexport const GeneralGroups = () => {\r\n\r\n const { t } = useTranslation();\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [redirect, setRedirect] = React.useState(false);\r\n const [loading, setLoading] = React.useState(false);\r\n const [idRelease, setIdRelease] = React.useState(null);\r\n\r\n React.useEffect(() => {\r\n let globalPermissions = globalState.permissions;\r\n userPermission = globalPermissions.filter((i) => i.idAreaAcesso === 63).map((i) => (i.permission));\r\n setLoading(true);\r\n }, [globalState]);\r\n\r\n const _controls = {\r\n permit: userPermission ? userPermission : null,\r\n export: false,\r\n import: \"\",\r\n new: () => setRedirect(true),\r\n back: \"\",\r\n };\r\n\r\n return (\r\n <>\r\n {globalState.accessToken === null ? :\r\n redirect ? (\r\n idRelease === null ?\r\n \r\n :\r\n \r\n ) : (\r\n loading &&\r\n <>\r\n \r\n\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    {t('GeneralGroups:title')}

    \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}","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { GlobalStateContext } from \"../../general/GlobalState\";\r\nimport { Container, Row } from \"reactstrap\";\r\nimport { Buttons } from \"../../utilities/Buttons\";\r\nimport { QAList } from \"../../qa/QAList\";\r\nimport PermissionRedirect from \"../../utilities/PermissionRedirect/PermissionRedirect\";\r\n\r\nlet userPermission;\r\n\r\nexport const QA = () => {\r\n\r\n const { t } = useTranslation();\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [redirect, setRedirect] = React.useState(false);\r\n const [idQA, setIdQA] = React.useState(null);\r\n const [gridInstance, setGridInstance] = React.useState(null);\r\n\r\n React.useEffect(() => {\r\n let globalPermissions = globalState.permissions;\r\n userPermission = globalPermissions.filter((i) => i.idAreaAcesso === 12).map((i) => (i.permission));\r\n }, [globalState]);\r\n\r\n const _controls = {\r\n permit: userPermission ? userPermission : null,\r\n export: () => exportQA(),\r\n import: \"\",\r\n new: () => setRedirect(true),\r\n back: \"\",\r\n };\r\n\r\n const editQA = (info) => {\r\n setIdQA(info.id);\r\n setRedirect(true);\r\n }\r\n\r\n const exportQA = () => {\r\n if (gridInstance) {\r\n let lang = i18n.language;\r\n let gridInstanceExport = gridInstance;\r\n gridInstanceExport.dataSource.map(function (x) {\r\n x.bloqueado = x.bloqueado ? lang === 'pt' ? 'Bloqueado' : 'Blocked' : lang === 'pt' ? 'Terminado' : 'Finished';\r\n x.data = new Date(x.data).toLocaleDateString(lang);\r\n return x;\r\n });\r\n gridInstanceExport.excelExport();\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n {globalState.accessToken === null ? :\r\n redirect ? (\r\n idQA === null ?\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

    {t('QA:title')}

    \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}","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { GlobalStateContext } from \"../../general/GlobalState\";\r\nimport { Container, Row } from \"reactstrap\";\r\nimport { Buttons } from \"../../utilities/Buttons\";\r\nimport { WebcastList } from \"../../webcast/WebcastList\";\r\nimport PermissionRedirect from \"../../utilities/PermissionRedirect/PermissionRedirect\";\r\n\r\nlet userPermission;\r\n\r\nexport const WebcastNotices = () => {\r\n\r\n const { t } = useTranslation();\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [redirect, setRedirect] = React.useState(false);\r\n const [idWebcastNotice, setIdWebcastNotice] = React.useState(null);\r\n const [gridInstance, setGridInstance] = React.useState(null);\r\n\r\n React.useEffect(() => {\r\n let globalPermissions = globalState.permissions;\r\n userPermission = globalPermissions.filter((i) => i.idAccessArea === 13).map((i) => (i.permission));\r\n }, [globalState]);\r\n\r\n const _controls = {\r\n permit: userPermission ? userPermission : null,\r\n export: () => exportWebcastNotice(),\r\n import: \"\",\r\n new: () => setRedirect(true),\r\n back: \"\",\r\n };\r\n\r\n const editWebcastNotice = (info) => {\r\n setIdWebcastNotice(info.id);\r\n setRedirect(true);\r\n }\r\n\r\n const exportWebcastNotice = () => {\r\n if (gridInstance) {\r\n let lang = i18n.language;\r\n let gridInstanceExport = gridInstance;\r\n gridInstanceExport.dataSource.map(function (x) {\r\n x.bloqueado = x.bloqueado ? lang === 'pt' ? 'Bloqueado' : 'Blocked' : lang === 'pt' ? 'Terminado' : 'Finished';\r\n x.data = new Date(x.data).toLocaleDateString(lang);\r\n return x;\r\n });\r\n gridInstanceExport.excelExport();\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n {globalState.accessToken === null ? :\r\n redirect ? (\r\n idWebcastNotice === null ?\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

    {t('WebcastNotices:title')}

    \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}","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { GlobalStateContext } from \"../../general/GlobalState\";\r\nimport { Container, Row } from \"reactstrap\";\r\nimport { Buttons } from \"../../utilities/Buttons\";\r\nimport { AssignmentList } from \"../../assignment/AssignmentList\";\r\nimport PermissionRedirect from \"../../utilities/PermissionRedirect/PermissionRedirect\";\r\n\r\nlet userPermission;\r\n\r\nexport const AssignmentNotices = () => {\r\n\r\n const { t } = useTranslation();\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [redirect, setRedirect] = React.useState(false);\r\n const [idAssignmentNotice, setIdAssignmentNotice] = React.useState(null);\r\n const [gridInstance, setGridInstance] = React.useState(null);\r\n\r\n React.useEffect(() => {\r\n let globalPermissions = globalState.permissions;\r\n userPermission = globalPermissions.filter((i) => i.idAreaAcesso === 14).map((i) => (i.permission));\r\n }, [globalState]);\r\n\r\n const _controls = {\r\n permit: userPermission ? userPermission : null,\r\n export: () => exportAssignmentNotice(),\r\n import: \"\",\r\n new: () => setRedirect(true),\r\n back: \"\",\r\n };\r\n\r\n const editAssignmentNotice = (info) => {\r\n setIdAssignmentNotice(info.id);\r\n setRedirect(true);\r\n }\r\n\r\n const exportAssignmentNotice = () => {\r\n if (gridInstance) {\r\n let lang = i18n.language;\r\n let gridInstanceExport = gridInstance;\r\n gridInstanceExport.dataSource.map(function (x) {\r\n x.bloqueado = x.bloqueado ? lang === 'pt' ? 'Bloqueado' : 'Blocked' : lang === 'pt' ? 'Terminado' : 'Finished';\r\n x.data = new Date(x.data).toLocaleDateString(lang);\r\n return x;\r\n });\r\n gridInstanceExport.excelExport();\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n {globalState.accessToken === null ? :\r\n redirect ? (\r\n idAssignmentNotice === null ?\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

    {t('AssignmentNotices:title')}

    \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}","export const countriesJSON = [\r\n {\r\n \"nameEn\": \"Afghanistan\",\r\n \"namePt\": \"Afeganistão\",\r\n \"dialCode\": \"+93\",\r\n \"isoCode\": \"AF\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/af.svg`\r\n },\r\n {\r\n \"nameEn\": \"Aland Islands\",\r\n \"namePt\": \"Ilhas Aland\",\r\n \"dialCode\": \"+358\",\r\n \"isoCode\": \"AX\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/ax.svg`\r\n },\r\n {\r\n \"nameEn\": \"Albania\",\r\n \"namePt\": \"Albânia\",\r\n \"dialCode\": \"+355\",\r\n \"isoCode\": \"AL\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/al.svg`\r\n },\r\n {\r\n \"nameEn\": \"Algeria\",\r\n \"namePt\": \"Argélia\",\r\n \"dialCode\": \"+213\",\r\n \"isoCode\": \"DZ\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/dz.svg`\r\n },\r\n {\r\n \"nameEn\": \"AmericanSamoa\",\r\n \"namePt\": \"Samoa Americana\",\r\n \"dialCode\": \"+1684\",\r\n \"isoCode\": \"AS\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/as.svg`\r\n },\r\n {\r\n \"nameEn\": \"Andorra\",\r\n \"namePt\": \"Andorra\",\r\n \"dialCode\": \"+376\",\r\n \"isoCode\": \"AD\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/ad.svg`\r\n },\r\n {\r\n \"nameEn\": \"Angola\",\r\n \"namePt\": \"Angola\",\r\n \"dialCode\": \"+244\",\r\n \"isoCode\": \"AO\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/ao.svg`\r\n },\r\n {\r\n \"nameEn\": \"Anguilla\",\r\n \"namePt\": \"Anguilla\",\r\n \"dialCode\": \"+1264\",\r\n \"isoCode\": \"AI\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/ai.svg`\r\n },\r\n {\r\n \"nameEn\": \"Antarctica\",\r\n \"namePt\": \"Antártica\",\r\n \"dialCode\": \"+672\",\r\n \"isoCode\": \"AQ\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/aq.svg`\r\n },\r\n {\r\n \"nameEn\": \"Antigua and Barbuda\",\r\n \"namePt\": \"Antigua e Barbuda\",\r\n \"dialCode\": \"+1268\",\r\n \"isoCode\": \"AG\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/ag.svg`\r\n },\r\n {\r\n \"nameEn\": \"Argentina\",\r\n \"namePt\": \"Argentina\",\r\n \"dialCode\": \"+54\",\r\n \"isoCode\": \"AR\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/ar.svg`\r\n },\r\n {\r\n \"nameEn\": \"Armenia\",\r\n \"namePt\": \"Armênia\",\r\n \"dialCode\": \"+374\",\r\n \"isoCode\": \"AM\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/am.svg`\r\n },\r\n {\r\n \"nameEn\": \"Aruba\",\r\n \"namePt\": \"Aruba\",\r\n \"dialCode\": \"+297\",\r\n \"isoCode\": \"AW\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/aw.svg`\r\n },\r\n {\r\n \"nameEn\": \"Ascension Island\",\r\n \"namePt\": \"Ilha Ascensão\",\r\n \"dialCode\": \"+247\",\r\n \"isoCode\": \"AC\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/ac.svg`\r\n },\r\n {\r\n \"nameEn\": \"Australia\",\r\n \"namePt\": \"Austrália\",\r\n \"dialCode\": \"+61\",\r\n \"isoCode\": \"AU\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/au.svg`\r\n },\r\n {\r\n \"nameEn\": \"Austria\",\r\n \"namePt\": \"Áustria\",\r\n \"dialCode\": \"+43\",\r\n \"isoCode\": \"AT\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/at.svg`\r\n },\r\n {\r\n \"nameEn\": \"Azerbaijan\",\r\n \"namePt\": \"Azerbaijão\",\r\n \"dialCode\": \"+994\",\r\n \"isoCode\": \"AZ\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/az.svg`\r\n },\r\n {\r\n \"nameEn\": \"Bahamas\",\r\n \"namePt\": \"Bahamas\",\r\n \"dialCode\": \"+1242\",\r\n \"isoCode\": \"BS\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/bs.svg`\r\n },\r\n {\r\n \"nameEn\": \"Bahrain\",\r\n \"namePt\": \"Bahrein\",\r\n \"dialCode\": \"+973\",\r\n \"isoCode\": \"BH\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/bh.svg`\r\n },\r\n {\r\n \"nameEn\": \"Bangladesh\",\r\n \"namePt\": \"Bangladesh\",\r\n \"dialCode\": \"+880\",\r\n \"isoCode\": \"BD\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/bd.svg`\r\n },\r\n {\r\n \"nameEn\": \"Barbados\",\r\n \"namePt\": \"Barbados\",\r\n \"dialCode\": \"+1246\",\r\n \"isoCode\": \"BB\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/bb.svg`\r\n },\r\n {\r\n \"nameEn\": \"Belarus\",\r\n \"namePt\": \"Bielo-Rússia\",\r\n \"dialCode\": \"+375\",\r\n \"isoCode\": \"BY\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/by.svg`\r\n },\r\n {\r\n \"nameEn\": \"Belgium\",\r\n \"namePt\": \"Bélgica\",\r\n \"dialCode\": \"+32\",\r\n \"isoCode\": \"BE\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/be.svg`\r\n },\r\n {\r\n \"nameEn\": \"Belize\",\r\n \"namePt\": \"Belize\",\r\n \"dialCode\": \"+501\",\r\n \"isoCode\": \"BZ\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/bz.svg`\r\n },\r\n {\r\n \"nameEn\": \"Benin\",\r\n \"namePt\": \"Benin\",\r\n \"dialCode\": \"+229\",\r\n \"isoCode\": \"BJ\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/bj.svg`\r\n },\r\n {\r\n \"nameEn\": \"Bermuda\",\r\n \"namePt\": \"Bermudas\",\r\n \"dialCode\": \"+1441\",\r\n \"isoCode\": \"BM\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/bm.svg`\r\n },\r\n {\r\n \"nameEn\": \"Bhutan\",\r\n \"namePt\": \"Butão\",\r\n \"dialCode\": \"+975\",\r\n \"isoCode\": \"BT\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/bt.svg`\r\n },\r\n {\r\n \"nameEn\": \"Bolivia\",\r\n \"namePt\": \"Bolívia\",\r\n \"dialCode\": \"+591\",\r\n \"isoCode\": \"BO\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/bo.svg`\r\n },\r\n {\r\n \"nameEn\": \"Bosnia and Herzegovina\",\r\n \"namePt\": \"Bósnia e Herzegovina\",\r\n \"dialCode\": \"+387\",\r\n \"isoCode\": \"BA\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/ba.svg`\r\n },\r\n {\r\n \"nameEn\": \"Botswana\",\r\n \"namePt\": \"Botswana\",\r\n \"dialCode\": \"+267\",\r\n \"isoCode\": \"BW\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/bw.svg`\r\n },\r\n {\r\n \"nameEn\": \"Brazil\",\r\n \"namePt\": \"Brasil\",\r\n \"dialCode\": \"+55\",\r\n \"isoCode\": \"BR\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/br.svg`\r\n },\r\n {\r\n \"nameEn\": \"British Indian Ocean Territory\",\r\n \"namePt\": \"Território Britânico do Oceano Índico\",\r\n \"dialCode\": \"+246\",\r\n \"isoCode\": \"IO\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/io.svg`\r\n },\r\n {\r\n \"nameEn\": \"Brunei Darussalam\",\r\n \"namePt\": \"Brunei Darussalam\",\r\n \"dialCode\": \"+673\",\r\n \"isoCode\": \"BN\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/bn.svg`\r\n },\r\n {\r\n \"nameEn\": \"Bulgaria\",\r\n \"namePt\": \"Bulgária\",\r\n \"dialCode\": \"+359\",\r\n \"isoCode\": \"BG\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/bg.svg`\r\n },\r\n {\r\n \"nameEn\": \"Burkina Faso\",\r\n \"namePt\": \"Burkina Faso\",\r\n \"dialCode\": \"+226\",\r\n \"isoCode\": \"BF\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/bf.svg`\r\n },\r\n {\r\n \"nameEn\": \"Burundi\",\r\n \"namePt\": \"Burundi\",\r\n \"dialCode\": \"+257\",\r\n \"isoCode\": \"BI\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/bi.svg`\r\n },\r\n {\r\n \"nameEn\": \"Cambodia\",\r\n \"namePt\": \"Camboja\",\r\n \"dialCode\": \"+855\",\r\n \"isoCode\": \"KH\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/kh.svg`\r\n },\r\n {\r\n \"nameEn\": \"Cameroon\",\r\n \"namePt\": \"Camarões\",\r\n \"dialCode\": \"+237\",\r\n \"isoCode\": \"CM\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/cm.svg`\r\n },\r\n {\r\n \"nameEn\": \"Canada\",\r\n \"namePt\": \"Canadá\",\r\n \"dialCode\": \"+1\",\r\n \"isoCode\": \"CA\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/ca.svg`\r\n },\r\n {\r\n \"nameEn\": \"Cape Verde\",\r\n \"namePt\": \"Cabo Verde\",\r\n \"dialCode\": \"+238\",\r\n \"isoCode\": \"CV\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/cv.svg`\r\n },\r\n {\r\n \"nameEn\": \"Cayman Islands\",\r\n \"namePt\": \"Ilhas Cayman\",\r\n \"dialCode\": \"+1345\",\r\n \"isoCode\": \"KY\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/ky.svg`\r\n },\r\n {\r\n \"nameEn\": \"Central African Republic\",\r\n \"namePt\": \"República Centro-Africana\",\r\n \"dialCode\": \"+236\",\r\n \"isoCode\": \"CF\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/cf.svg`\r\n },\r\n {\r\n \"nameEn\": \"Chad\",\r\n \"namePt\": \"Chade\",\r\n \"dialCode\": \"+235\",\r\n \"isoCode\": \"TD\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/td.svg`\r\n },\r\n {\r\n \"nameEn\": \"Chile\",\r\n \"namePt\": \"Chile\",\r\n \"dialCode\": \"+56\",\r\n \"isoCode\": \"CL\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/cl.svg`\r\n },\r\n {\r\n \"nameEn\": \"China\",\r\n \"namePt\": \"China\",\r\n \"dialCode\": \"+86\",\r\n \"isoCode\": \"CN\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/cn.svg`\r\n },\r\n {\r\n \"nameEn\": \"Christmas Island\",\r\n \"namePt\": \"Ilha do Natal\",\r\n \"dialCode\": \"+61\",\r\n \"isoCode\": \"CX\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/cx.svg`\r\n },\r\n {\r\n \"nameEn\": \"Cocos (Keeling) Islands\",\r\n \"namePt\": \"Ilhas Cocos (Keeling)\",\r\n \"dialCode\": \"+61\",\r\n \"isoCode\": \"CC\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/cc.svg`\r\n },\r\n {\r\n \"nameEn\": \"Colombia\",\r\n \"namePt\": \"Colômbia\",\r\n \"dialCode\": \"+57\",\r\n \"isoCode\": \"CO\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/co.svg`\r\n },\r\n {\r\n \"nameEn\": \"Comoros\",\r\n \"namePt\": \"Comores\",\r\n \"dialCode\": \"+269\",\r\n \"isoCode\": \"KM\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/km.svg`\r\n },\r\n {\r\n \"nameEn\": \"Congo\",\r\n \"namePt\": \"Congo\",\r\n \"dialCode\": \"+242\",\r\n \"isoCode\": \"CG\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/cg.svg`\r\n },\r\n {\r\n \"nameEn\": \"Cook Islands\",\r\n \"namePt\": \"Ilhas Cook\",\r\n \"dialCode\": \"+682\",\r\n \"isoCode\": \"CK\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/ck.svg`\r\n },\r\n {\r\n \"nameEn\": \"Costa Rica\",\r\n \"namePt\": \"Costa Rica\",\r\n \"dialCode\": \"+506\",\r\n \"isoCode\": \"CR\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/cr.svg`\r\n },\r\n {\r\n \"nameEn\": \"Croatia\",\r\n \"namePt\": \"Croácia\",\r\n \"dialCode\": \"+385\",\r\n \"isoCode\": \"HR\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/hr.svg`\r\n },\r\n {\r\n \"nameEn\": \"Cuba\",\r\n \"namePt\": \"Cuba\",\r\n \"dialCode\": \"+53\",\r\n \"isoCode\": \"CU\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/cu.svg`\r\n },\r\n {\r\n \"nameEn\": \"Cyprus\",\r\n \"namePt\": \"Chipre\",\r\n \"dialCode\": \"+357\",\r\n \"isoCode\": \"CY\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/cy.svg`\r\n },\r\n {\r\n \"nameEn\": \"Czech Republic\",\r\n \"namePt\": \"República Checa\",\r\n \"dialCode\": \"+420\",\r\n \"isoCode\": \"CZ\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/cz.svg`\r\n },\r\n {\r\n \"nameEn\": \"Democratic Republic of the Congo\",\r\n \"namePt\": \"República Democrática do Congo\",\r\n \"dialCode\": \"+243\",\r\n \"isoCode\": \"CD\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/cd.svg`\r\n },\r\n {\r\n \"nameEn\": \"Denmark\",\r\n \"namePt\": \"Dinamarca\",\r\n \"dialCode\": \"+45\",\r\n \"isoCode\": \"DK\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/dk.svg`\r\n },\r\n {\r\n \"nameEn\": \"Djibouti\",\r\n \"namePt\": \"Djibouti\",\r\n \"dialCode\": \"+253\",\r\n \"isoCode\": \"DJ\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/dj.svg`\r\n },\r\n {\r\n \"nameEn\": \"Dominica\",\r\n \"namePt\": \"Dominica\",\r\n \"dialCode\": \"+1767\",\r\n \"isoCode\": \"DM\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/dm.svg`\r\n },\r\n {\r\n \"nameEn\": \"Dominican Republic\",\r\n \"namePt\": \"República Dominicana\",\r\n \"dialCode\": \"+1849\",\r\n \"isoCode\": \"DO\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/do.svg`\r\n },\r\n {\r\n \"nameEn\": \"Ecuador\",\r\n \"namePt\": \"Equador\",\r\n \"dialCode\": \"+593\",\r\n \"isoCode\": \"EC\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/ec.svg`\r\n },\r\n {\r\n \"nameEn\": \"Egypt\",\r\n \"namePt\": \"Egito\",\r\n \"dialCode\": \"+20\",\r\n \"isoCode\": \"EG\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/eg.svg`\r\n },\r\n {\r\n \"nameEn\": \"El Salvador\",\r\n \"namePt\": \"El Salvador\",\r\n \"dialCode\": \"+503\",\r\n \"isoCode\": \"SV\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/sv.svg`\r\n },\r\n {\r\n \"nameEn\": \"Equatorial Guinea\",\r\n \"namePt\": \"Guiné Equatorial\",\r\n \"dialCode\": \"+240\",\r\n \"isoCode\": \"GQ\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/gq.svg`\r\n },\r\n {\r\n \"nameEn\": \"Eritrea\",\r\n \"namePt\": \"Eritreia\",\r\n \"dialCode\": \"+291\",\r\n \"isoCode\": \"ER\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/er.svg`\r\n },\r\n {\r\n \"nameEn\": \"Estonia\",\r\n \"namePt\": \"Estônia\",\r\n \"dialCode\": \"+372\",\r\n \"isoCode\": \"EE\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/ee.svg`\r\n },\r\n {\r\n \"nameEn\": \"Eswatini\",\r\n \"namePt\": \"Eswatini\",\r\n \"dialCode\": \"+268\",\r\n \"isoCode\": \"SZ\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/sz.svg`\r\n },\r\n {\r\n \"nameEn\": \"Ethiopia\",\r\n \"namePt\": \"Etiópia\",\r\n \"dialCode\": \"+251\",\r\n \"isoCode\": \"ET\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/et.svg`\r\n },\r\n {\r\n \"nameEn\": \"Falkland Islands (Malvinas)\",\r\n \"namePt\": \"Ilhas Falkland (Malvinas)\",\r\n \"dialCode\": \"+500\",\r\n \"isoCode\": \"FK\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/fk.svg`\r\n },\r\n {\r\n \"nameEn\": \"Faroe Islands\",\r\n \"namePt\": \"Ilhas Faroe\",\r\n \"dialCode\": \"+298\",\r\n \"isoCode\": \"FO\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/fo.svg`\r\n },\r\n {\r\n \"nameEn\": \"Fiji\",\r\n \"namePt\": \"Fiji\",\r\n \"dialCode\": \"+679\",\r\n \"isoCode\": \"FJ\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/fj.svg`\r\n },\r\n {\r\n \"nameEn\": \"Finland\",\r\n \"namePt\": \"Finlândia\",\r\n \"dialCode\": \"+358\",\r\n \"isoCode\": \"FI\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/fi.svg`\r\n },\r\n {\r\n \"nameEn\": \"France\",\r\n \"namePt\": \"França\",\r\n \"dialCode\": \"+33\",\r\n \"isoCode\": \"FR\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/fr.svg`\r\n },\r\n {\r\n \"nameEn\": \"French Guiana\",\r\n \"namePt\": \"Guiana Francesa\",\r\n \"dialCode\": \"+594\",\r\n \"isoCode\": \"GF\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/gf.svg`\r\n },\r\n {\r\n \"nameEn\": \"French Polynesia\",\r\n \"namePt\": \"Polinésia Francesa\",\r\n \"dialCode\": \"+689\",\r\n \"isoCode\": \"PF\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/pf.svg`\r\n },\r\n {\r\n \"nameEn\": \"Gabon\",\r\n \"namePt\": \"Gabão\",\r\n \"dialCode\": \"+241\",\r\n \"isoCode\": \"GA\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/ga.svg`\r\n },\r\n {\r\n \"nameEn\": \"Gambia\",\r\n \"namePt\": \"Gâmbia\",\r\n \"dialCode\": \"+220\",\r\n \"isoCode\": \"GM\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/gm.svg`\r\n },\r\n {\r\n \"nameEn\": \"Georgia\",\r\n \"namePt\": \"Georgia\",\r\n \"dialCode\": \"+995\",\r\n \"isoCode\": \"GE\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/ge.svg`\r\n },\r\n {\r\n \"nameEn\": \"Germany\",\r\n \"namePt\": \"Alemanha\",\r\n \"dialCode\": \"+49\",\r\n \"isoCode\": \"DE\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/de.svg`\r\n },\r\n {\r\n \"nameEn\": \"Ghana\",\r\n \"namePt\": \"Gana\",\r\n \"dialCode\": \"+233\",\r\n \"isoCode\": \"GH\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/gh.svg`\r\n },\r\n {\r\n \"nameEn\": \"Gibraltar\",\r\n \"namePt\": \"Gibraltar\",\r\n \"dialCode\": \"+350\",\r\n \"isoCode\": \"GI\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/gi.svg`\r\n },\r\n {\r\n \"nameEn\": \"Greece\",\r\n \"namePt\": \"Grécia\",\r\n \"dialCode\": \"+30\",\r\n \"isoCode\": \"GR\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/gr.svg`\r\n },\r\n {\r\n \"nameEn\": \"Greenland\",\r\n \"namePt\": \"Groenlândia\",\r\n \"dialCode\": \"+299\",\r\n \"isoCode\": \"GL\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/gl.svg`\r\n },\r\n {\r\n \"nameEn\": \"Grenada\",\r\n \"namePt\": \"Grenada\",\r\n \"dialCode\": \"+1473\",\r\n \"isoCode\": \"GD\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/gd.svg`\r\n },\r\n {\r\n \"nameEn\": \"Guadeloupe\",\r\n \"namePt\": \"Guadalupe\",\r\n \"dialCode\": \"+590\",\r\n \"isoCode\": \"GP\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/gp.svg`\r\n },\r\n {\r\n \"nameEn\": \"Guam\",\r\n \"namePt\": \"Guam\",\r\n \"dialCode\": \"+1671\",\r\n \"isoCode\": \"GU\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/gu.svg`\r\n },\r\n {\r\n \"nameEn\": \"Guatemala\",\r\n \"namePt\": \"Guatemala\",\r\n \"dialCode\": \"+502\",\r\n \"isoCode\": \"GT\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/gt.svg`\r\n },\r\n {\r\n \"nameEn\": \"Guernsey\",\r\n \"namePt\": \"Guernsey\",\r\n \"dialCode\": \"+44\",\r\n \"isoCode\": \"GG\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/gg.svg`\r\n },\r\n {\r\n \"nameEn\": \"Guinea\",\r\n \"namePt\": \"Guiné\",\r\n \"dialCode\": \"+224\",\r\n \"isoCode\": \"GN\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/gn.svg`\r\n },\r\n {\r\n \"nameEn\": \"Guinea-Bissau\",\r\n \"namePt\": \"Guiné-Bissau\",\r\n \"dialCode\": \"+245\",\r\n \"isoCode\": \"GW\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/gw.svg`\r\n },\r\n {\r\n \"nameEn\": \"Guyana\",\r\n \"namePt\": \"Guiana\",\r\n \"dialCode\": \"+592\",\r\n \"isoCode\": \"GY\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/gy.svg`\r\n },\r\n {\r\n \"nameEn\": \"Haiti\",\r\n \"namePt\": \"Haiti\",\r\n \"dialCode\": \"+509\",\r\n \"isoCode\": \"HT\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/ht.svg`\r\n },\r\n {\r\n \"nameEn\": \"Holy See (Vatican City State)\",\r\n \"namePt\": \"Santa Sé (Estado da Cidade do Vaticano)\",\r\n \"dialCode\": \"+379\",\r\n \"isoCode\": \"VA\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/va.svg`\r\n },\r\n {\r\n \"nameEn\": \"Honduras\",\r\n \"namePt\": \"Honduras\",\r\n \"dialCode\": \"+504\",\r\n \"isoCode\": \"HN\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/hn.svg`\r\n },\r\n {\r\n \"nameEn\": \"Hong Kong\",\r\n \"namePt\": \"Hong Kong\",\r\n \"dialCode\": \"+852\",\r\n \"isoCode\": \"HK\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/hk.svg`\r\n },\r\n {\r\n \"nameEn\": \"Hungary\",\r\n \"namePt\": \"Hungria\",\r\n \"dialCode\": \"+36\",\r\n \"isoCode\": \"HU\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/hu.svg`\r\n },\r\n {\r\n \"nameEn\": \"Iceland\",\r\n \"namePt\": \"Islândia\",\r\n \"dialCode\": \"+354\",\r\n \"isoCode\": \"IS\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/is.svg`\r\n },\r\n {\r\n \"nameEn\": \"India\",\r\n \"namePt\": \"Índia\",\r\n \"dialCode\": \"+91\",\r\n \"isoCode\": \"IN\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/in.svg`\r\n },\r\n {\r\n \"nameEn\": \"Indonesia\",\r\n \"namePt\": \"Indonésia\",\r\n \"dialCode\": \"+62\",\r\n \"isoCode\": \"ID\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/id.svg`\r\n },\r\n {\r\n \"nameEn\": \"Iran\",\r\n \"namePt\": \"Irã\",\r\n \"dialCode\": \"+98\",\r\n \"isoCode\": \"IR\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/ir.svg`\r\n },\r\n {\r\n \"nameEn\": \"Iraq\",\r\n \"namePt\": \"Iraque\",\r\n \"dialCode\": \"+964\",\r\n \"isoCode\": \"IQ\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/iq.svg`\r\n },\r\n {\r\n \"nameEn\": \"Ireland\",\r\n \"namePt\": \"Irlanda\",\r\n \"dialCode\": \"+353\",\r\n \"isoCode\": \"IE\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/ie.svg`\r\n },\r\n {\r\n \"nameEn\": \"Isle of Man\",\r\n \"namePt\": \"Ilha de Man\",\r\n \"dialCode\": \"+44\",\r\n \"isoCode\": \"IM\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/im.svg`\r\n },\r\n {\r\n \"nameEn\": \"Israel\",\r\n \"namePt\": \"Israel\",\r\n \"dialCode\": \"+972\",\r\n \"isoCode\": \"IL\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/il.svg`\r\n },\r\n {\r\n \"nameEn\": \"Italy\",\r\n \"namePt\": \"Itália\",\r\n \"dialCode\": \"+39\",\r\n \"isoCode\": \"IT\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/it.svg`\r\n },\r\n {\r\n \"nameEn\": \"Ivory Coast / Cote d'Ivoire\",\r\n \"namePt\": \"Costa do Marfim\",\r\n \"dialCode\": \"+225\",\r\n \"isoCode\": \"CI\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/ci.svg`\r\n },\r\n {\r\n \"nameEn\": \"Jamaica\",\r\n \"namePt\": \"Jamaica\",\r\n \"dialCode\": \"+1876\",\r\n \"isoCode\": \"JM\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/jm.svg`\r\n },\r\n {\r\n \"nameEn\": \"Japan\",\r\n \"namePt\": \"Japão\",\r\n \"dialCode\": \"+81\",\r\n \"isoCode\": \"JP\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/jp.svg`\r\n },\r\n {\r\n \"nameEn\": \"Jersey\",\r\n \"namePt\": \"Jersey\",\r\n \"dialCode\": \"+44\",\r\n \"isoCode\": \"JE\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/je.svg`\r\n },\r\n {\r\n \"nameEn\": \"Jordan\",\r\n \"namePt\": \"Jordânia\",\r\n \"dialCode\": \"+962\",\r\n \"isoCode\": \"JO\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/jo.svg`\r\n },\r\n {\r\n \"nameEn\": \"Kazakhstan\",\r\n \"namePt\": \"Cazaquistão\",\r\n \"dialCode\": \"+77\",\r\n \"isoCode\": \"KZ\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/kz.svg`\r\n },\r\n {\r\n \"nameEn\": \"Kenya\",\r\n \"namePt\": \"Quênia\",\r\n \"dialCode\": \"+254\",\r\n \"isoCode\": \"KE\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/ke.svg`\r\n },\r\n {\r\n \"nameEn\": \"Kiribati\",\r\n \"namePt\": \"Kiribati\",\r\n \"dialCode\": \"+686\",\r\n \"isoCode\": \"KI\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/ki.svg`\r\n },\r\n {\r\n \"nameEn\": \"Democratic People's Republic of Korea\",\r\n \"namePt\": \"República Popular Democrática da Coreia\",\r\n \"dialCode\": \"+850\",\r\n \"isoCode\": \"KP\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/kp.svg`\r\n },\r\n {\r\n \"nameEn\": \"Republic of South Korea\",\r\n \"namePt\": \"República da Coreia do Sul\",\r\n \"dialCode\": \"+82\",\r\n \"isoCode\": \"KR\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/kr.svg`\r\n },\r\n {\r\n \"nameEn\": \"Kosovo\",\r\n \"namePt\": \"Kosovo\",\r\n \"dialCode\": \"+383\",\r\n \"isoCode\": \"XK\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/xk.svg`\r\n },\r\n {\r\n \"nameEn\": \"Kuwait\",\r\n \"namePt\": \"Kuwait\",\r\n \"dialCode\": \"+965\",\r\n \"isoCode\": \"KW\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/kw.svg`\r\n },\r\n {\r\n \"nameEn\": \"Kyrgyzstan\",\r\n \"namePt\": \"Quirguistão\",\r\n \"dialCode\": \"+996\",\r\n \"isoCode\": \"KG\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/kg.svg`\r\n },\r\n {\r\n \"nameEn\": \"Laos\",\r\n \"namePt\": \"Laos\",\r\n \"dialCode\": \"+856\",\r\n \"isoCode\": \"LA\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/la.svg`\r\n },\r\n {\r\n \"nameEn\": \"Latvia\",\r\n \"namePt\": \"Letônia\",\r\n \"dialCode\": \"+371\",\r\n \"isoCode\": \"LV\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/lv.svg`\r\n },\r\n {\r\n \"nameEn\": \"Lebanon\",\r\n \"namePt\": \"Líbano\",\r\n \"dialCode\": \"+961\",\r\n \"isoCode\": \"LB\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/lb.svg`\r\n },\r\n {\r\n \"nameEn\": \"Lesotho\",\r\n \"namePt\": \"Lesoto\",\r\n \"dialCode\": \"+266\",\r\n \"isoCode\": \"LS\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/ls.svg`\r\n },\r\n {\r\n \"nameEn\": \"Liberia\",\r\n \"namePt\": \"Libéria\",\r\n \"dialCode\": \"+231\",\r\n \"isoCode\": \"LR\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/lr.svg`\r\n },\r\n {\r\n \"nameEn\": \"Libya\",\r\n \"namePt\": \"Líbia\",\r\n \"dialCode\": \"+218\",\r\n \"isoCode\": \"LY\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/ly.svg`\r\n },\r\n {\r\n \"nameEn\": \"Liechtenstein\",\r\n \"namePt\": \"Liechtenstein\",\r\n \"dialCode\": \"+423\",\r\n \"isoCode\": \"LI\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/li.svg`\r\n },\r\n {\r\n \"nameEn\": \"Lithuania\",\r\n \"namePt\": \"Lituânia\",\r\n \"dialCode\": \"+370\",\r\n \"isoCode\": \"LT\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/lt.svg`\r\n },\r\n {\r\n \"nameEn\": \"Luxembourg\",\r\n \"namePt\": \"Luxemburgo\",\r\n \"dialCode\": \"+352\",\r\n \"isoCode\": \"LU\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/lu.svg`\r\n },\r\n {\r\n \"nameEn\": \"Macau\",\r\n \"namePt\": \"Macau\",\r\n \"dialCode\": \"+853\",\r\n \"isoCode\": \"MO\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/mo.svg`\r\n },\r\n {\r\n \"nameEn\": \"Madagascar\",\r\n \"namePt\": \"Madagáscar\",\r\n \"dialCode\": \"+261\",\r\n \"isoCode\": \"MG\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/mg.svg`\r\n },\r\n {\r\n \"nameEn\": \"Malawi\",\r\n \"namePt\": \"Malawi\",\r\n \"dialCode\": \"+265\",\r\n \"isoCode\": \"MW\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/mw.svg`\r\n },\r\n {\r\n \"nameEn\": \"Malaysia\",\r\n \"namePt\": \"Malásia\",\r\n \"dialCode\": \"+60\",\r\n \"isoCode\": \"MY\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/my.svg`\r\n },\r\n {\r\n \"nameEn\": \"Maldives\",\r\n \"namePt\": \"Maldivas\",\r\n \"dialCode\": \"+960\",\r\n \"isoCode\": \"MV\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/mv.svg`\r\n },\r\n {\r\n \"nameEn\": \"Mali\",\r\n \"namePt\": \"Mali\",\r\n \"dialCode\": \"+223\",\r\n \"isoCode\": \"ML\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/ml.svg`\r\n },\r\n {\r\n \"nameEn\": \"Malta\",\r\n \"namePt\": \"Malta\",\r\n \"dialCode\": \"+356\",\r\n \"isoCode\": \"MT\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/mt.svg`\r\n },\r\n {\r\n \"nameEn\": \"Marshall Islands\",\r\n \"namePt\": \"Ilhas Marshall\",\r\n \"dialCode\": \"+692\",\r\n \"isoCode\": \"MH\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/mh.svg`\r\n },\r\n {\r\n \"nameEn\": \"Martinique\",\r\n \"namePt\": \"Martinica\",\r\n \"dialCode\": \"+596\",\r\n \"isoCode\": \"MQ\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/mq.svg`\r\n },\r\n {\r\n \"nameEn\": \"Mauritania\",\r\n \"namePt\": \"Mauritânia\",\r\n \"dialCode\": \"+222\",\r\n \"isoCode\": \"MR\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/mr.svg`\r\n },\r\n {\r\n \"nameEn\": \"Mauritius\",\r\n \"namePt\": \"Maurício\",\r\n \"dialCode\": \"+230\",\r\n \"isoCode\": \"MU\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/mu.svg`\r\n },\r\n {\r\n \"nameEn\": \"Mayotte\",\r\n \"namePt\": \"Mayotte\",\r\n \"dialCode\": \"+262\",\r\n \"isoCode\": \"YT\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/yt.svg`\r\n },\r\n {\r\n \"nameEn\": \"Mexico\",\r\n \"namePt\": \"México\",\r\n \"dialCode\": \"+52\",\r\n \"isoCode\": \"MX\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/mx.svg`\r\n },\r\n {\r\n \"nameEn\": \"Micronesia, Federated States of Micronesia\",\r\n \"namePt\": \"Micronésia, Estados Federados da Micronésia\",\r\n \"dialCode\": \"+691\",\r\n \"isoCode\": \"FM\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/fm.svg`\r\n },\r\n {\r\n \"nameEn\": \"Moldova\",\r\n \"namePt\": \"Moldova\",\r\n \"dialCode\": \"+373\",\r\n \"isoCode\": \"MD\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/md.svg`\r\n },\r\n {\r\n \"nameEn\": \"Monaco\",\r\n \"namePt\": \"Mônaco\",\r\n \"dialCode\": \"+377\",\r\n \"isoCode\": \"MC\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/mc.svg`\r\n },\r\n {\r\n \"nameEn\": \"Mongolia\",\r\n \"namePt\": \"Mongólia\",\r\n \"dialCode\": \"+976\",\r\n \"isoCode\": \"MN\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/mn.svg`\r\n },\r\n {\r\n \"nameEn\": \"Montenegro\",\r\n \"namePt\": \"Montenegro\",\r\n \"dialCode\": \"+382\",\r\n \"isoCode\": \"ME\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/me.svg`\r\n },\r\n {\r\n \"nameEn\": \"Montserrat\",\r\n \"namePt\": \"Montserrat\",\r\n \"dialCode\": \"+1664\",\r\n \"isoCode\": \"MS\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/ms.svg`\r\n },\r\n {\r\n \"nameEn\": \"Morocco\",\r\n \"namePt\": \"Marrocos\",\r\n \"dialCode\": \"+212\",\r\n \"isoCode\": \"MA\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/ma.svg`\r\n },\r\n {\r\n \"nameEn\": \"Mozambique\",\r\n \"namePt\": \"Moçambique\",\r\n \"dialCode\": \"+258\",\r\n \"isoCode\": \"MZ\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/mz.svg`\r\n },\r\n {\r\n \"nameEn\": \"Myanmar\",\r\n \"namePt\": \"Mianmar\",\r\n \"dialCode\": \"+95\",\r\n \"isoCode\": \"MM\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/mm.svg`\r\n },\r\n {\r\n \"nameEn\": \"Namibia\",\r\n \"namePt\": \"Namibia\",\r\n \"dialCode\": \"+264\",\r\n \"isoCode\": \"NA\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/na.svg`\r\n },\r\n {\r\n \"nameEn\": \"Nauru\",\r\n \"namePt\": \"Nauru\",\r\n \"dialCode\": \"+674\",\r\n \"isoCode\": \"NR\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/nr.svg`\r\n },\r\n {\r\n \"nameEn\": \"Nepal\",\r\n \"namePt\": \"Nepal\",\r\n \"dialCode\": \"+977\",\r\n \"isoCode\": \"NP\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/np.svg`\r\n },\r\n {\r\n \"nameEn\": \"Netherlands\",\r\n \"namePt\": \"Países Baixos\",\r\n \"dialCode\": \"+31\",\r\n \"isoCode\": \"NL\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/nl.svg`\r\n },\r\n {\r\n \"nameEn\": \"Netherlands Antilles\",\r\n \"namePt\": \"Antilhas Holandesas\",\r\n \"dialCode\": \"+599\",\r\n \"isoCode\": \"AN\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/an.svg`\r\n },\r\n {\r\n \"nameEn\": \"New Caledonia\",\r\n \"namePt\": \"Nova Caledônia\",\r\n \"dialCode\": \"+687\",\r\n \"isoCode\": \"NC\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/nc.svg`\r\n },\r\n {\r\n \"nameEn\": \"New Zealand\",\r\n \"namePt\": \"Nova Zelândia\",\r\n \"dialCode\": \"+64\",\r\n \"isoCode\": \"NZ\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/nz.svg`\r\n },\r\n {\r\n \"nameEn\": \"Nicaragua\",\r\n \"namePt\": \"Nicarágua\",\r\n \"dialCode\": \"+505\",\r\n \"isoCode\": \"NI\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/ni.svg`\r\n },\r\n {\r\n \"nameEn\": \"Niger\",\r\n \"namePt\": \"Níger\",\r\n \"dialCode\": \"+227\",\r\n \"isoCode\": \"NE\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/ne.svg`\r\n },\r\n {\r\n \"nameEn\": \"Nigeria\",\r\n \"namePt\": \"Nigéria\",\r\n \"dialCode\": \"+234\",\r\n \"isoCode\": \"NG\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/ng.svg`\r\n },\r\n {\r\n \"nameEn\": \"Niue\",\r\n \"namePt\": \"Niue\",\r\n \"dialCode\": \"+683\",\r\n \"isoCode\": \"NU\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/nu.svg`\r\n },\r\n {\r\n \"nameEn\": \"Norfolk Island\",\r\n \"namePt\": \"Ilha Norfolk\",\r\n \"dialCode\": \"+672\",\r\n \"isoCode\": \"NF\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/nf.svg`\r\n },\r\n {\r\n \"nameEn\": \"North Macedonia\",\r\n \"namePt\": \"Macedônia do Norte\",\r\n \"dialCode\": \"+389\",\r\n \"isoCode\": \"MK\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/mk.svg`\r\n },\r\n {\r\n \"nameEn\": \"Northern Mariana Islands\",\r\n \"namePt\": \"Ilhas Marianas do Norte\",\r\n \"dialCode\": \"+1670\",\r\n \"isoCode\": \"MP\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/mp.svg`\r\n },\r\n {\r\n \"nameEn\": \"Norway\",\r\n \"namePt\": \"Noruega\",\r\n \"dialCode\": \"+47\",\r\n \"isoCode\": \"NO\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/no.svg`\r\n },\r\n {\r\n \"nameEn\": \"Oman\",\r\n \"namePt\": \"Omã\",\r\n \"dialCode\": \"+968\",\r\n \"isoCode\": \"OM\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/om.svg`\r\n },\r\n {\r\n \"nameEn\": \"Pakistan\",\r\n \"namePt\": \"Paquistão\",\r\n \"dialCode\": \"+92\",\r\n \"isoCode\": \"PK\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/pk.svg`\r\n },\r\n {\r\n \"nameEn\": \"Palau\",\r\n \"namePt\": \"Palau\",\r\n \"dialCode\": \"+680\",\r\n \"isoCode\": \"PW\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/pw.svg`\r\n },\r\n {\r\n \"nameEn\": \"Palestine\",\r\n \"namePt\": \"Palestina\",\r\n \"dialCode\": \"+970\",\r\n \"isoCode\": \"PS\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/ps.svg`\r\n },\r\n {\r\n \"nameEn\": \"Panama\",\r\n \"namePt\": \"Panamá\",\r\n \"dialCode\": \"+507\",\r\n \"isoCode\": \"PA\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/pa.svg`\r\n },\r\n {\r\n \"nameEn\": \"Papua New Guinea\",\r\n \"namePt\": \"Papua Nova Guiné\",\r\n \"dialCode\": \"+675\",\r\n \"isoCode\": \"PG\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/pg.svg`\r\n },\r\n {\r\n \"nameEn\": \"Paraguay\",\r\n \"namePt\": \"Paraguai\",\r\n \"dialCode\": \"+595\",\r\n \"isoCode\": \"PY\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/py.svg`\r\n },\r\n {\r\n \"nameEn\": \"Peru\",\r\n \"namePt\": \"Peru\",\r\n \"dialCode\": \"+51\",\r\n \"isoCode\": \"PE\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/pe.svg`\r\n },\r\n {\r\n \"nameEn\": \"Philippines\",\r\n \"namePt\": \"Filipinas\",\r\n \"dialCode\": \"+63\",\r\n \"isoCode\": \"PH\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/ph.svg`\r\n },\r\n {\r\n \"nameEn\": \"Pitcairn\",\r\n \"namePt\": \"Pitcairn\",\r\n \"dialCode\": \"+872\",\r\n \"isoCode\": \"PN\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/pn.svg`\r\n },\r\n {\r\n \"nameEn\": \"Poland\",\r\n \"namePt\": \"Polônia\",\r\n \"dialCode\": \"+48\",\r\n \"isoCode\": \"PL\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/pl.svg`\r\n },\r\n {\r\n \"nameEn\": \"Portugal\",\r\n \"namePt\": \"Portugal\",\r\n \"dialCode\": \"+351\",\r\n \"isoCode\": \"PT\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/pt.svg`\r\n },\r\n {\r\n \"nameEn\": \"Puerto Rico\",\r\n \"namePt\": \"Porto Rico\",\r\n \"dialCode\": \"+1939\",\r\n \"isoCode\": \"PR\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/pr.svg`\r\n },\r\n {\r\n \"nameEn\": \"Qatar\",\r\n \"namePt\": \"Catar\",\r\n \"dialCode\": \"+974\",\r\n \"isoCode\": \"QA\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/qa.svg`\r\n },\r\n {\r\n \"nameEn\": \"Reunion\",\r\n \"namePt\": \"Reunião\",\r\n \"dialCode\": \"+262\",\r\n \"isoCode\": \"RE\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/re.svg`\r\n },\r\n {\r\n \"nameEn\": \"Romania\",\r\n \"namePt\": \"Romênia\",\r\n \"dialCode\": \"+40\",\r\n \"isoCode\": \"RO\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/ro.svg`\r\n },\r\n {\r\n \"nameEn\": \"Russia\",\r\n \"namePt\": \"Rússia\",\r\n \"dialCode\": \"+7\",\r\n \"isoCode\": \"RU\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/ru.svg`\r\n },\r\n {\r\n \"nameEn\": \"Rwanda\",\r\n \"namePt\": \"Ruanda\",\r\n \"dialCode\": \"+250\",\r\n \"isoCode\": \"RW\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/rw.svg`\r\n },\r\n {\r\n \"nameEn\": \"Saint Barthelemy\",\r\n \"namePt\": \"São Bartolomeu\",\r\n \"dialCode\": \"+590\",\r\n \"isoCode\": \"BL\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/bl.svg`\r\n },\r\n {\r\n \"nameEn\": \"Saint Helena, Ascension and Tristan Da Cunha\",\r\n \"namePt\": \"Santa Helena, Ascensão e Tristão da Cunha\",\r\n \"dialCode\": \"+290\",\r\n \"isoCode\": \"SH\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/sh.svg`\r\n },\r\n {\r\n \"nameEn\": \"Saint Kitts and Nevis\",\r\n \"namePt\": \"São Cristóvão e Nevis\",\r\n \"dialCode\": \"+1869\",\r\n \"isoCode\": \"KN\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/kn.svg`\r\n },\r\n {\r\n \"nameEn\": \"Saint Lucia\",\r\n \"namePt\": \"Santa Lúcia\",\r\n \"dialCode\": \"+1758\",\r\n \"isoCode\": \"LC\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/lc.svg`\r\n },\r\n {\r\n \"nameEn\": \"Saint Martin\",\r\n \"namePt\": \"São Martinho\",\r\n \"dialCode\": \"+590\",\r\n \"isoCode\": \"MF\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/mf.svg`\r\n },\r\n {\r\n \"nameEn\": \"Saint Pierre and Miquelon\",\r\n \"namePt\": \"São Pedro e Miquelão\",\r\n \"dialCode\": \"+508\",\r\n \"isoCode\": \"PM\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/pm.svg`\r\n },\r\n {\r\n \"nameEn\": \"Saint Vincent and the Grenadines\",\r\n \"namePt\": \"São Vicente e Granadinas\",\r\n \"dialCode\": \"+1784\",\r\n \"isoCode\": \"VC\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/vc.svg`\r\n },\r\n {\r\n \"nameEn\": \"Samoa\",\r\n \"namePt\": \"Samoa\",\r\n \"dialCode\": \"+685\",\r\n \"isoCode\": \"WS\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/ws.svg`\r\n },\r\n {\r\n \"nameEn\": \"San Marino\",\r\n \"namePt\": \"San Marino\",\r\n \"dialCode\": \"+378\",\r\n \"isoCode\": \"SM\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/sm.svg`\r\n },\r\n {\r\n \"nameEn\": \"Sao Tome and Principe\",\r\n \"namePt\": \"São Tomé e Príncipe\",\r\n \"dialCode\": \"+239\",\r\n \"isoCode\": \"ST\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/st.svg`\r\n },\r\n {\r\n \"nameEn\": \"Saudi Arabia\",\r\n \"namePt\": \"Arábia Saudita\",\r\n \"dialCode\": \"+966\",\r\n \"isoCode\": \"SA\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/sa.svg`\r\n },\r\n {\r\n \"nameEn\": \"Senegal\",\r\n \"namePt\": \"Senegal\",\r\n \"dialCode\": \"+221\",\r\n \"isoCode\": \"SN\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/sn.svg`\r\n },\r\n {\r\n \"nameEn\": \"Serbia\",\r\n \"namePt\": \"Sérvia\",\r\n \"dialCode\": \"+381\",\r\n \"isoCode\": \"RS\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/rs.svg`\r\n },\r\n {\r\n \"nameEn\": \"Seychelles\",\r\n \"namePt\": \"Seychelles\",\r\n \"dialCode\": \"+248\",\r\n \"isoCode\": \"SC\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/sc.svg`\r\n },\r\n {\r\n \"nameEn\": \"Sierra Leone\",\r\n \"namePt\": \"Serra Leoa\",\r\n \"dialCode\": \"+232\",\r\n \"isoCode\": \"SL\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/sl.svg`\r\n },\r\n {\r\n \"nameEn\": \"Singapore\",\r\n \"namePt\": \"Cingapura\",\r\n \"dialCode\": \"+65\",\r\n \"isoCode\": \"SG\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/sg.svg`\r\n },\r\n {\r\n \"nameEn\": \"Sint Maarten\",\r\n \"namePt\": \"Sint Maarten\",\r\n \"dialCode\": \"+1721\",\r\n \"isoCode\": \"SX\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/sx.svg`\r\n },\r\n {\r\n \"nameEn\": \"Slovakia\",\r\n \"namePt\": \"Eslováquia\",\r\n \"dialCode\": \"+421\",\r\n \"isoCode\": \"SK\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/sk.svg`\r\n },\r\n {\r\n \"nameEn\": \"Slovenia\",\r\n \"namePt\": \"Eslovênia\",\r\n \"dialCode\": \"+386\",\r\n \"isoCode\": \"SI\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/si.svg`\r\n },\r\n {\r\n \"nameEn\": \"Solomon Islands\",\r\n \"namePt\": \"Ilhas Salomão\",\r\n \"dialCode\": \"+677\",\r\n \"isoCode\": \"SB\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/sb.svg`\r\n },\r\n {\r\n \"nameEn\": \"Somalia\",\r\n \"namePt\": \"Somália\",\r\n \"dialCode\": \"+252\",\r\n \"isoCode\": \"SO\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/so.svg`\r\n },\r\n {\r\n \"nameEn\": \"South Africa\",\r\n \"namePt\": \"África do Sul\",\r\n \"dialCode\": \"+27\",\r\n \"isoCode\": \"ZA\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/za.svg`\r\n },\r\n {\r\n \"nameEn\": \"South Georgia and the South Sandwich Islands\",\r\n \"namePt\": \"Geórgia do Sul e Ilhas Sandwich do Sul\",\r\n \"dialCode\": \"+500\",\r\n \"isoCode\": \"GS\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/gs.svg`\r\n },\r\n {\r\n \"nameEn\": \"South Sudan\",\r\n \"namePt\": \"Sudão do Sul\",\r\n \"dialCode\": \"+211\",\r\n \"isoCode\": \"SS\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/ss.svg`\r\n },\r\n {\r\n \"nameEn\": \"Spain\",\r\n \"namePt\": \"Espanha\",\r\n \"dialCode\": \"+34\",\r\n \"isoCode\": \"ES\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/es.svg`\r\n },\r\n {\r\n \"nameEn\": \"Sri Lanka\",\r\n \"namePt\": \"Sri Lanka\",\r\n \"dialCode\": \"+94\",\r\n \"isoCode\": \"LK\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/lk.svg`\r\n },\r\n {\r\n \"nameEn\": \"Sudan\",\r\n \"namePt\": \"Sudão\",\r\n \"dialCode\": \"+249\",\r\n \"isoCode\": \"SD\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/sd.svg`\r\n },\r\n {\r\n \"nameEn\": \"Suriname\",\r\n \"namePt\": \"Suriname\",\r\n \"dialCode\": \"+597\",\r\n \"isoCode\": \"SR\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/sr.svg`\r\n },\r\n {\r\n \"nameEn\": \"Svalbard and Jan Mayen\",\r\n \"namePt\": \"Svalbard e Jan Mayen\",\r\n \"dialCode\": \"+47\",\r\n \"isoCode\": \"SJ\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/sj.svg`\r\n },\r\n {\r\n \"nameEn\": \"Sweden\",\r\n \"namePt\": \"Suécia\",\r\n \"dialCode\": \"+46\",\r\n \"isoCode\": \"SE\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/se.svg`\r\n },\r\n {\r\n \"nameEn\": \"Switzerland\",\r\n \"namePt\": \"Suíça\",\r\n \"dialCode\": \"+41\",\r\n \"isoCode\": \"CH\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/ch.svg`\r\n },\r\n {\r\n \"nameEn\": \"Syrian Arab Republic\",\r\n \"namePt\": \"República Árabe da Síria\",\r\n \"dialCode\": \"+963\",\r\n \"isoCode\": \"SY\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/sy.svg`\r\n },\r\n {\r\n \"nameEn\": \"Taiwan\",\r\n \"namePt\": \"Taiwan\",\r\n \"dialCode\": \"+886\",\r\n \"isoCode\": \"TW\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/tw.svg`\r\n },\r\n {\r\n \"nameEn\": \"Tajikistan\",\r\n \"namePt\": \"Tajiquistão\",\r\n \"dialCode\": \"+992\",\r\n \"isoCode\": \"TJ\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/tj.svg`\r\n },\r\n {\r\n \"nameEn\": \"Tanzania, United Republic of Tanzania\",\r\n \"namePt\": \"Tanzânia, República Unida da Tanzânia\",\r\n \"dialCode\": \"+255\",\r\n \"isoCode\": \"TZ\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/tz.svg`\r\n },\r\n {\r\n \"nameEn\": \"Thailand\",\r\n \"namePt\": \"Tailândia\",\r\n \"dialCode\": \"+66\",\r\n \"isoCode\": \"TH\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/th.svg`\r\n },\r\n {\r\n \"nameEn\": \"Timor-Leste\",\r\n \"namePt\": \"Timor-Leste\",\r\n \"dialCode\": \"+670\",\r\n \"isoCode\": \"TL\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/tl.svg`\r\n },\r\n {\r\n \"nameEn\": \"Togo\",\r\n \"namePt\": \"Ir\",\r\n \"dialCode\": \"+228\",\r\n \"isoCode\": \"TG\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/tg.svg`\r\n },\r\n {\r\n \"nameEn\": \"Tokelau\",\r\n \"namePt\": \"Toquelau\",\r\n \"dialCode\": \"+690\",\r\n \"isoCode\": \"TK\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/tk.svg`\r\n },\r\n {\r\n \"nameEn\": \"Tonga\",\r\n \"namePt\": \"Tonga\",\r\n \"dialCode\": \"+676\",\r\n \"isoCode\": \"TO\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/to.svg`\r\n },\r\n {\r\n \"nameEn\": \"Trinidad and Tobago\",\r\n \"namePt\": \"Trinidad e Tobago\",\r\n \"dialCode\": \"+1868\",\r\n \"isoCode\": \"TT\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/tt.svg`\r\n },\r\n {\r\n \"nameEn\": \"Tunisia\",\r\n \"namePt\": \"Tunísia\",\r\n \"dialCode\": \"+216\",\r\n \"isoCode\": \"TN\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/tn.svg`\r\n },\r\n {\r\n \"nameEn\": \"Turkey\",\r\n \"namePt\": \"Turquia\",\r\n \"dialCode\": \"+90\",\r\n \"isoCode\": \"TR\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/tr.svg`\r\n },\r\n {\r\n \"nameEn\": \"Turkmenistan\",\r\n \"namePt\": \"Turcomenistão\",\r\n \"dialCode\": \"+993\",\r\n \"isoCode\": \"TM\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/tm.svg`\r\n },\r\n {\r\n \"nameEn\": \"Turks and Caicos Islands\",\r\n \"namePt\": \"Ilhas Turcas e Caicos\",\r\n \"dialCode\": \"+1649\",\r\n \"isoCode\": \"TC\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/tc.svg`\r\n },\r\n {\r\n \"nameEn\": \"Tuvalu\",\r\n \"namePt\": \"Tuvalu\",\r\n \"dialCode\": \"+688\",\r\n \"isoCode\": \"TV\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/tv.svg`\r\n },\r\n {\r\n \"nameEn\": \"Uganda\",\r\n \"namePt\": \"Uganda\",\r\n \"dialCode\": \"+256\",\r\n \"isoCode\": \"UG\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/ug.svg`\r\n },\r\n {\r\n \"nameEn\": \"Ukraine\",\r\n \"namePt\": \"Ucrânia\",\r\n \"dialCode\": \"+380\",\r\n \"isoCode\": \"UA\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/ua.svg`\r\n },\r\n {\r\n \"nameEn\": \"United Arab Emirates\",\r\n \"namePt\": \"Emirados Árabes Unidos\",\r\n \"dialCode\": \"+971\",\r\n \"isoCode\": \"AE\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/ae.svg`\r\n },\r\n {\r\n \"nameEn\": \"United Kingdom\",\r\n \"namePt\": \"Reino Unido\",\r\n \"dialCode\": \"+44\",\r\n \"isoCode\": \"GB\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/gb.svg`\r\n },\r\n {\r\n \"nameEn\": \"United States\",\r\n \"namePt\": \"Estados Unidos\",\r\n \"dialCode\": \"+1\",\r\n \"isoCode\": \"US\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/us.svg`\r\n },\r\n {\r\n \"nameEn\": \"Uruguay\",\r\n \"namePt\": \"Uruguai\",\r\n \"dialCode\": \"+598\",\r\n \"isoCode\": \"UY\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/uy.svg`\r\n },\r\n {\r\n \"nameEn\": \"Uzbekistan\",\r\n \"namePt\": \"Uzbequistão\",\r\n \"dialCode\": \"+998\",\r\n \"isoCode\": \"UZ\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/uz.svg`\r\n },\r\n {\r\n \"nameEn\": \"Vanuatu\",\r\n \"namePt\": \"Vanuatu\",\r\n \"dialCode\": \"+678\",\r\n \"isoCode\": \"VU\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/vu.svg`\r\n },\r\n {\r\n \"nameEn\": \"Venezuela, Bolivarian Republic of Venezuela\",\r\n \"namePt\": \"Venezuela, República Bolivariana da Venezuela\",\r\n \"dialCode\": \"+58\",\r\n \"isoCode\": \"VE\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/ve.svg`\r\n },\r\n {\r\n \"nameEn\": \"Vietnam\",\r\n \"namePt\": \"Vietnã\",\r\n \"dialCode\": \"+84\",\r\n \"isoCode\": \"VN\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/vn.svg`\r\n },\r\n {\r\n \"nameEn\": \"Virgin Islands, British\",\r\n \"namePt\": \"Ilhas Virgens Britânicas\",\r\n \"dialCode\": \"+1284\",\r\n \"isoCode\": \"VG\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/vg.svg`\r\n },\r\n {\r\n \"nameEn\": \"Virgin Islands, U.S.\",\r\n \"namePt\": \"Ilhas Virgens, EUA\",\r\n \"dialCode\": \"+1340\",\r\n \"isoCode\": \"VI\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/vi.svg`\r\n },\r\n {\r\n \"nameEn\": \"Wallis and Futuna\",\r\n \"namePt\": \"Wallis e Futuna\",\r\n \"dialCode\": \"+681\",\r\n \"isoCode\": \"WF\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/wf.svg`\r\n },\r\n {\r\n \"nameEn\": \"Yemen\",\r\n \"namePt\": \"Iémen\",\r\n \"dialCode\": \"+967\",\r\n \"isoCode\": \"YE\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/ye.svg`\r\n },\r\n {\r\n \"nameEn\": \"Zambia\",\r\n \"namePt\": \"Zâmbia\",\r\n \"dialCode\": \"+260\",\r\n \"isoCode\": \"ZM\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/zm.svg`\r\n },\r\n {\r\n \"nameEn\": \"Zimbabwe\",\r\n \"namePt\": \"Zimbábue\",\r\n \"dialCode\": \"+263\",\r\n \"isoCode\": \"ZW\",\r\n \"flag\": `${process.env.REACT_APP_AZURE_STORAGE}/shareddocumentspublic/flags/zw.svg`\r\n }\r\n]\r\n\r\n","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { GlobalStateContext } from \"../general/GlobalState\";\r\nimport { Container, Row } from \"reactstrap\";\r\nimport { DataManager, Query, ODataV4Adaptor } from '@syncfusion/ej2-data';\r\nimport { createSpinner, showSpinner, setSpinner, hideSpinner, DialogComponent } from \"@syncfusion/ej2-react-popups\";\r\nimport { TextBoxComponent, MaskedTextBoxComponent, UploaderComponent } from \"@syncfusion/ej2-react-inputs\";\r\nimport { AutoCompleteComponent, DropDownListComponent, MultiSelectComponent, CheckBoxSelection, Inject } from \"@syncfusion/ej2-react-dropdowns\";\r\nimport { CheckBoxComponent } from \"@syncfusion/ej2-react-buttons\";\r\nimport { DatePickerComponent } from \"@syncfusion/ej2-react-calendars\";\r\nimport {\r\n getPressMediaTypes,\r\n getCountries,\r\n getStates,\r\n getCities,\r\n getLiaisonStatus,\r\n getLiaisonActionTypes,\r\n getBusinessAreas,\r\n getRegional\r\n} from \"../../services/SystemSVC\";\r\nimport {\r\n LiaisonTO,\r\n MailingContactTO,\r\n LiaisonAttachment,\r\n LiaisonHistory,\r\n addLiaisonItem,\r\n updateLiaisonItem,\r\n getLiaisonItem,\r\n downloadLiaisonAttachment,\r\n deleteLiaisonItem,\r\n duplicateLiaisonItem\r\n} from \"../../services/LiaisonSVC\";\r\nimport { getMailingContactItems, getMailingGroupItems } from \"../../services/MailingSVC\";\r\nimport { getProfile } from \"../../services/UsersSVC\";\r\nimport { Actions } from \"../utilities/Actions\";\r\nimport { formatBytes, hasPermissions } from \"../utilities/Utils\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport moment from 'moment';\r\nimport './liaison.css';\r\nimport PermissionRedirect from \"../utilities/PermissionRedirect/PermissionRedirect\";\r\nimport { countriesJSON } from '../../resources/countries.js';\r\n\r\nexport const LiaisonItem = (props) => {\r\n\r\n const countryDefault = countriesJSON.find(i => i.namePt === 'Brasil');\r\n\r\n const { t } = useTranslation();\r\n const { register, unregister, triggerValidation, errors, clearError } = useForm();\r\n let itemId = props.match.params.id;\r\n let uploaderRef;\r\n let dropAreaRef;\r\n let ddlStatesRef;\r\n let ddlCitiesRef;\r\n let txtEmailRef;\r\n let txtEditorialRef;\r\n let txtOccupationRef;\r\n let txtAddressRef;\r\n let txtDescriptionRef;\r\n let txtResponsaveisRef;\r\n let ddlMailingContactGroupRef;\r\n let dtConclusionRef;\r\n\r\n const target = document.getElementById(\"attachsDropAreaEle\");\r\n const placeholderIcon = '';\r\n\r\n const initialMailingContactTO = {\r\n email: [],\r\n telefone: []\r\n }\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [redirect, setRedirect] = React.useState(false);\r\n const [loading, setLoading] = React.useState(true);\r\n const [loadedCount, setLoadedCount] = React.useState(0);\r\n const [loaded, setLoaded] = React.useState(false);\r\n const [hideMailingState, setHideMailingState] = React.useState('hide');\r\n const [hideMailingCity, setHideMailingCity] = React.useState('hide');\r\n const [jornalistSelected, setJornalistSelected] = React.useState(false);\r\n\r\n const [liaisonTO, setLiaisonTO] = React.useState(new LiaisonTO());\r\n const [mailingContatoTO, setMailingContatoTO] = React.useState(initialMailingContactTO);\r\n const [liaisonAttachments, setLiaisonAttachments] = React.useState([]);\r\n const [insertMailing, setInsertMailing] = React.useState(false);\r\n\r\n const [fillMediaTypesDataPt, setFillMediaTypesDataPt] = React.useState([]);\r\n const [fillMediaTypesDataEn, setFillMediaTypesDataEn] = React.useState([]);\r\n\r\n const [isLoadingItem, setIsLoadingItem] = React.useState(false);\r\n\r\n const [fillVehicleData, setFillVehicleData] = React.useState([]);\r\n\r\n const [fillBusinessAreaDataPt, setFillBusinessAreaDataPt] = React.useState([]);\r\n const [fillBusinessAreaDataEn, setFillBusinessAreaDataEn] = React.useState([]);\r\n\r\n const [fillCountryDataPt, setFillCountryDataPt] = React.useState([]);\r\n const [fillCountryDataEn, setFillCountryDataEn] = React.useState([]);\r\n\r\n const [fillStateDataPt, setFillStateDataPt] = React.useState([]);\r\n const [fillStateDataEn, setFillStateDataEn] = React.useState([]);\r\n\r\n const [fillCityDataPt, setFillCityDataPt] = React.useState([]);\r\n const [fillCityDataEn, setFillCityDataEn] = React.useState([]);\r\n\r\n const [fillLiaisonStatusDataPt, setFillLiaisonStatusDataPt] = React.useState([]);\r\n const [fillLiaisonStatusDataEn, setFillLiaisonStatusDataEn] = React.useState([]);\r\n\r\n const [fillLiaisonActionTypesDataPt, setFillLiaisonActionTypesDataPt] = React.useState([]);\r\n const [fillLiaisonActionTypesDataEn, setFillLiaisonActionTypesDataEn] = React.useState([]);\r\n\r\n const [fillRegionalDataPt, setFillRegionalDataPt] = React.useState([]);\r\n const [fillRegionalDataEn, setFillRegionalDataEn] = React.useState([]);\r\n\r\n const [fillMailingContactGroupData, setFillMailingContactGroupData] = React.useState([]);\r\n const [dialogDelete, setDialogDelete] = React.useState(false);\r\n const [openCountries, setOpenCountries] = React.useState(null);\r\n const [dataCountries, setDataCountries] = React.useState([]);\r\n const [profile, setProfile] = React.useState(null);\r\n const [disabledBtn, setDisabledBtn] = React.useState(false);\r\n const [dataFlags, setDataFlags] = React.useState([]);\r\n\r\n const [newPhone, setNewPhone] = React.useState(\r\n () => {\r\n if (mailingContatoTO.telefone.length > 0) {\r\n return mailingContatoTO.telefone;\r\n }\r\n return [{\r\n telefone: \"\",\r\n status: 0,\r\n country: countryDefault\r\n }]\r\n }\r\n );\r\n\r\n const [newEmail, setNewEmail] = React.useState(\r\n () => {\r\n return [{\r\n email: \"\",\r\n status: 0\r\n }]\r\n }\r\n );\r\n\r\n const phoneRef = React.useRef();\r\n\r\n const handlePhoneRef = (ref) => {\r\n if (phoneRef?.current?.contains(ref.target)) {\r\n return;\r\n }\r\n setOpenCountries(null);\r\n }\r\n\r\n const jornalistDataManager = new DataManager({\r\n url: process.env.REACT_APP_API_URL + '/_api/MailingContact/GetMailingContactItems',\r\n adaptor: new ODataV4Adaptor,\r\n crossDomain: true,\r\n headers: [{ 'Authorization': `Bearer ${globalState.accessToken}` }]\r\n });\r\n\r\n const _controls = {\r\n class: \"liaison\",\r\n savePrimary: false,\r\n customPermissions: itemId ? hasPermissions(7, \"Edit\", globalState) : hasPermissions(7, \"Create\", globalState),\r\n urlDuplicateLiaison: itemId ? (e) => duplicateLiaison(e) : null,\r\n urlSave: (e) => addOrUpdateRelease(e),\r\n urlCancel: () => setRedirect(true),\r\n urlDelete: itemId ? (e) => {\r\n e.preventDefault();\r\n setDialogDelete(true);\r\n } : null\r\n };\r\n\r\n React.useEffect(() => {\r\n createSpinner({ target: document.getElementById('loadingItem') })\r\n showSpinner(document.getElementById('loadingItem'));\r\n setSpinner({ type: 'Bootstrap' });\r\n }, [isLoadingItem]);\r\n\r\n const deleteItem = (e) => {\r\n e.preventDefault();\r\n deleteLiaisonItem(globalState.accessToken, itemId)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n } else {\r\n return Promise.reject(response);\r\n }\r\n })\r\n .then(result => {\r\n setRedirect(true);\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n })\r\n };\r\n\r\n const initialLoad = () => {\r\n getPressMediaTypes(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n response.json().then(data => configMediaTypes(data));\r\n }\r\n });\r\n\r\n getMailingContactItems(globalState.accessToken, \"?$apply=groupby((nomeVeiculo))&$orderby=NomeVeiculo\")\r\n .then(response => {\r\n if (response.ok) {\r\n response.json().then(data => {\r\n setFillVehicleData(data);\r\n setLoadedCount(loadedCount => loadedCount + 1);\r\n });\r\n }\r\n });\r\n\r\n getMailingGroupItems(globalState.accessToken, \"?$filter=not(conjunto)&$select=id,nome\")\r\n .then(response => {\r\n if (response.ok) {\r\n response.json().then(data => {\r\n setFillMailingContactGroupData(data);\r\n setLoadedCount(loadedCount => loadedCount + 1);\r\n });\r\n }\r\n });\r\n\r\n getCountries(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n response.json().then(data => configCountries(data));\r\n }\r\n });\r\n\r\n getStates(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n response.json().then(data => configStates(data));\r\n }\r\n });\r\n\r\n getCities(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n response.json().then(data => configCities(data));\r\n }\r\n });\r\n\r\n getLiaisonStatus(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n response.json().then(data => configLiaisonStatus(data));\r\n }\r\n });\r\n\r\n getLiaisonActionTypes(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n response.json().then(data => configLiaisonActionTypes(data));\r\n }\r\n });\r\n\r\n getBusinessAreas(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n response.json().then(data => configBusinessArea(data));\r\n }\r\n });\r\n\r\n getRegional(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n response.json().then(data => configRegionals(data));\r\n }\r\n });\r\n };\r\n\r\n const configMediaTypes = (_mediaTypes) => {\r\n setFillMediaTypesDataPt(_mediaTypes.map(x => {\r\n return {\r\n id: x.id,\r\n nome: x.nomePt\r\n };\r\n }));\r\n setFillMediaTypesDataEn(_mediaTypes.map(x => {\r\n return {\r\n id: x.id,\r\n nome: x.nomeEn\r\n };\r\n }));\r\n setLoadedCount(loadedCount => loadedCount + 1);\r\n };\r\n\r\n const configCountries = (_contries) => {\r\n setFillCountryDataPt(_contries.map(x => {\r\n return {\r\n id: x.id,\r\n nome: x.nomePt\r\n };\r\n }));\r\n setFillCountryDataEn(_contries.map(x => {\r\n return {\r\n id: x.id,\r\n nome: x.nomeEn\r\n };\r\n }));\r\n setLoadedCount(loadedCount => loadedCount + 1);\r\n };\r\n\r\n const configStates = (_states) => {\r\n setFillStateDataPt(_states.map(x => {\r\n return {\r\n id: x.id,\r\n nome: x.nomePt,\r\n idPais: x.idPais\r\n };\r\n }));\r\n setFillStateDataEn(_states.map(x => {\r\n return {\r\n id: x.id,\r\n nome: x.nomeEn,\r\n idPais: x.idPais\r\n };\r\n }));\r\n setLoadedCount(loadedCount => loadedCount + 1);\r\n };\r\n\r\n const configCities = (_cities) => {\r\n setFillCityDataPt(_cities.map(x => {\r\n return {\r\n id: x.id,\r\n nome: x.nomePt,\r\n idEstado: x.idEstado\r\n };\r\n }));\r\n setFillCityDataEn(_cities.map(x => {\r\n return {\r\n id: x.id,\r\n nome: x.nomeEn,\r\n idEstado: x.idEstado\r\n };\r\n }));\r\n setLoadedCount(loadedCount => loadedCount + 1);\r\n };\r\n\r\n const configLiaisonStatus = (_liaisonStatus) => {\r\n setFillLiaisonStatusDataPt(_liaisonStatus.map(x => {\r\n return {\r\n id: x.id,\r\n nome: x.nomePt\r\n };\r\n }));\r\n setFillLiaisonStatusDataEn(_liaisonStatus.map(x => {\r\n return {\r\n id: x.id,\r\n nome: x.nomeEn\r\n };\r\n }));\r\n setLoadedCount(loadedCount => loadedCount + 1);\r\n };\r\n\r\n const configLiaisonActionTypes = (_liaisonActionTypes) => {\r\n setFillLiaisonActionTypesDataPt(_liaisonActionTypes.map(x => {\r\n return {\r\n id: x.id,\r\n nome: x.nomePt\r\n };\r\n }));\r\n setFillLiaisonActionTypesDataEn(_liaisonActionTypes.map(x => {\r\n return {\r\n id: x.id,\r\n nome: x.nomeEn\r\n };\r\n }));\r\n setLoadedCount(loadedCount => loadedCount + 1);\r\n };\r\n\r\n const configBusinessArea = (_businessAreas) => {\r\n setFillBusinessAreaDataPt(_businessAreas.map(x => {\r\n return {\r\n id: x.id,\r\n nome: x.nomePt\r\n };\r\n }));\r\n setFillBusinessAreaDataEn(_businessAreas.map(x => {\r\n return {\r\n id: x.id,\r\n nome: x.nomeEn\r\n };\r\n }));\r\n setLoadedCount(loadedCount => loadedCount + 1);\r\n };\r\n\r\n const configRegionals = (_regionals) => {\r\n setFillRegionalDataPt(_regionals.map(x => {\r\n return {\r\n id: x.id,\r\n nome: x.nomePt\r\n };\r\n }));\r\n setFillRegionalDataEn(_regionals.map(x => {\r\n return {\r\n id: x.id,\r\n nome: x.nomeEn\r\n };\r\n }));\r\n setLoadedCount(loadedCount => loadedCount + 1);\r\n };\r\n\r\n const addOrUpdateRelease = async (e) => {\r\n e.preventDefault();\r\n setDisabledBtn(true);\r\n triggerValidation().then((validation) => {\r\n if (validation) {\r\n setIsLoadingItem(true);\r\n liaisonTO.anexos = liaisonAttachments ? liaisonAttachments : null;\r\n liaisonTO.mailingContato = mailingContatoTO ? mailingContatoTO : null;\r\n liaisonTO.jornalista = mailingContatoTO.jornalista ? mailingContatoTO.jornalista : null;\r\n liaisonTO.idTipoMidia = mailingContatoTO.idtipoMidia ? mailingContatoTO.idtipoMidia : null;\r\n liaisonTO.nomeVeiculo = mailingContatoTO.nomeVeiculo ? mailingContatoTO.nomeVeiculo : null;\r\n liaisonTO.email = mailingContatoTO.email ? mailingContatoTO.email : null;\r\n\r\n if (mailingContatoTO?.id) {\r\n liaisonTO.mailingContato.telefone = mailingContatoTO && mailingContatoTO.telefone.length > 0 ? mailingContatoTO.telefone.map(phone => ({\r\n ...phone,\r\n country: phone.country.nameEn\r\n })) : [];\r\n liaisonTO.telefone = [];\r\n } else {\r\n liaisonTO.telefone = newPhone && newPhone.length > 0 ? newPhone.map(phone => ({\r\n ...phone,\r\n country: phone.country.nameEn\r\n })) : [];\r\n liaisonTO.mailingContato.telefone = []\r\n }\r\n\r\n liaisonTO.dataConclusao = liaisonTO.dataConclusao ? moment(liaisonTO.dataConclusao).format('YYYY-MM-DDTHH:mm:ss') : null;\r\n liaisonTO.dataRecebimento = liaisonTO.dataRecebimento ? moment(liaisonTO.dataRecebimento).format('YYYY-MM-DDTHH:mm:ss') : null;\r\n\r\n liaisonTO.inserirMailing = insertMailing;\r\n\r\n const addOrUpdate = itemId ? updateLiaisonItem : addLiaisonItem;\r\n\r\n addOrUpdate(globalState.accessToken, JSON.stringify(liaisonTO))\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n } else {\r\n return Promise.reject(response);\r\n }\r\n })\r\n .then(result => {\r\n setRedirect(true);\r\n setDisabledBtn(false);\r\n })\r\n .catch(error => {\r\n setIsLoadingItem(false);\r\n console.error(error);\r\n setDisabledBtn(false);\r\n })\r\n }\r\n setDisabledBtn(false);\r\n }).catch((error) => {\r\n console.log(error);\r\n setDisabledBtn(false);\r\n });\r\n }\r\n\r\n const triggerDuplicate = () => {\r\n duplicateLiaisonItem(globalState.accessToken, JSON.stringify(liaisonTO))\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n } else {\r\n return Promise.reject(response);\r\n }\r\n })\r\n .then(() => {\r\n setRedirect(true);\r\n })\r\n .catch(error => {\r\n setIsLoadingItem(false);\r\n console.error(error);\r\n })\r\n }\r\n\r\n const duplicateLiaison = async (e) => {\r\n e.preventDefault();\r\n\r\n triggerValidation().then((validation) => {\r\n if (validation) {\r\n setIsLoadingItem(true);\r\n liaisonTO.anexos = liaisonAttachments ? liaisonAttachments : null;\r\n liaisonTO.mailingContato = mailingContatoTO ? mailingContatoTO : null;\r\n liaisonTO.jornalista = mailingContatoTO.jornalista ? mailingContatoTO.jornalista : null;\r\n liaisonTO.idTipoMidia = mailingContatoTO.idtipoMidia ? mailingContatoTO.idtipoMidia : null;\r\n liaisonTO.nomeVeiculo = mailingContatoTO.nomeVeiculo ? mailingContatoTO.nomeVeiculo : null;\r\n liaisonTO.email = mailingContatoTO.email ? mailingContatoTO.email : null;\r\n\r\n liaisonTO.mailingContato.telefone = mailingContatoTO && mailingContatoTO.telefone.length > 0 ? mailingContatoTO.telefone.map(phone => ({\r\n ...phone,\r\n country: phone.country.nameEn\r\n })) : [];\r\n liaisonTO.telefone = [];\r\n\r\n liaisonTO.dataConclusao = liaisonTO.dataConclusao ? moment(liaisonTO.dataConclusao).format('YYYY-MM-DDTHH:mm:ss') : null;\r\n liaisonTO.dataRecebimento = liaisonTO.dataRecebimento ? moment(liaisonTO.dataRecebimento).format('YYYY-MM-DDTHH:mm:ss') : null;\r\n liaisonTO.deadLine = liaisonTO.deadLine ? moment(liaisonTO.deadLine).format('YYYY-MM-DDTHH:mm:ss') : null;\r\n\r\n liaisonTO.inserirMailing = insertMailing;\r\n\r\n triggerDuplicate();\r\n }\r\n }).catch((error) => {\r\n console.log(error);\r\n });\r\n\r\n }\r\n\r\n const uploadAttachment = () => {\r\n document.getElementsByClassName(\"e-file-select-wrap\")[0].querySelector(\"button\").click();\r\n return false;\r\n }\r\n\r\n const uploaderCreated = () => {\r\n if (uploaderRef) {\r\n uploaderRef.dropArea = dropAreaRef;\r\n uploaderRef.dataBind();\r\n }\r\n }\r\n\r\n const onSetAttachmentsFiles = event => {\r\n event.filesData.map((file) => {\r\n const reader = new FileReader();\r\n reader.addEventListener(\"load\", function () {\r\n let filePartsB64 = reader.result.split(',');\r\n let attach = new LiaisonAttachment(file.id, file.rawFile.type, file.rawFile.name);\r\n attach.fileB64 = filePartsB64[1];\r\n attach.status = 0;\r\n setLiaisonAttachments(liaisonAttachments => [...liaisonAttachments, attach]);\r\n }, false);\r\n reader.readAsDataURL(file.rawFile);\r\n });\r\n }\r\n\r\n const onRemovingAttachsFiles = (args) => {\r\n args.filesData.map((file) => {\r\n setLiaisonAttachments(liaisonAttachments => liaisonAttachments.filter((x) => (x.id !== file.id)));\r\n });\r\n };\r\n\r\n const jornalistNameSelected = (args) => {\r\n if (args.itemData) {\r\n let mailingContatoTO = new MailingContactTO(args.itemData.id,\r\n args.itemData.jornalista,\r\n args.itemData.idtipoMidia,\r\n args.itemData.nomeVeiculo,\r\n args.itemData.email,\r\n args.itemData.telefone,\r\n args.itemData.idpais,\r\n args.itemData.idestado,\r\n args.itemData.idcidade,\r\n args.itemData.editoria,\r\n args.itemData.cargo,\r\n args.itemData.endereco);\r\n\r\n setJornalistSelected(true);\r\n setMailingContatoTO(mct => mailingContatoTO);\r\n setNewEmail(mailingContatoTO.email);\r\n const newTelefone = mailingContatoTO.telefone.map(phone => ({\r\n ...phone,\r\n country: countriesJSON.find(country => country.nameEn === phone.country)\r\n }))\r\n setNewPhone(newTelefone);\r\n setLiaisonTO(lto => ({\r\n ...liaisonTO,\r\n mailingContato: mailingContatoTO,\r\n jornalista: null,\r\n idTipoMidia: null,\r\n nomeVeiculo: null,\r\n email: [],\r\n telefone: []\r\n }));\r\n }\r\n }\r\n\r\n const jornalistNameChanged = (args) => {\r\n if (!args.itemData) {\r\n setJornalistSelected(false);\r\n setInsertMailing(false);\r\n\r\n if (jornalistSelected) {\r\n setMailingContatoTO(mct => initialMailingContactTO);\r\n } else {\r\n setMailingContatoTO(mct => ({ ...mailingContatoTO, jornalista: null }));\r\n }\r\n } else {\r\n setMailingContatoTO(mct => ({ ...mailingContatoTO, jornalista: args.itemData.jornalista ? args.itemData.jornalista : null }));\r\n }\r\n }\r\n\r\n const setPropertyLiaisonTOState = (fieldName, fieldValue) => {\r\n setLiaisonTO(lto => ({ ...liaisonTO, [fieldName]: fieldValue }));\r\n };\r\n\r\n const addNewPhone = () => {\r\n const phones = newPhone.filter(phone => phone.status !== 2);\r\n\r\n if (phones) {\r\n setNewPhone(newPhone => [...newPhone, { telefone: \"\", status: 0, country: countryDefault, }])\r\n }\r\n }\r\n\r\n const addNewEmail = () => {\r\n const emails = newEmail.filter(email => email.status !== 2);\r\n\r\n if (emails) {\r\n setNewEmail(newEmail => [...newEmail, { email: \"\", status: 0 }])\r\n }\r\n }\r\n\r\n const removePhone = (index) => {\r\n let temp = [...newPhone];\r\n if (temp[index] !==null) {\r\n if (temp[index].telefone !==\"\") {\r\n let pos = mailingContatoTO.telefone.map(function (e) { return e.telefone; }).indexOf(temp[index].telefone);\r\n let phoneFilter = mailingContatoTO.telefone.filter(findPhone => findPhone.telefone ===temp[index].telefone)[0];\r\n if (phoneFilter.status !==0) {\r\n if (mailingContatoTO?.id) {\r\n mailingContatoTO.telefone[pos].status = 2;\r\n } else {\r\n temp[index].status = 2;\r\n }\r\n } else {\r\n mailingContatoTO.telefone.splice(pos, 1);\r\n }\r\n } if (temp[index].status ===0) {\r\n temp.splice(index, 1);\r\n }\r\n }\r\n setNewPhone(\r\n newPhone => [...temp]\r\n );\r\n\r\n }\r\n\r\n const handleChangePhone = (index, e) => {\r\n let value = e.value\r\n\r\n if (value) {\r\n if (newPhone[index].status ===3 || newPhone[index].status ===2) {\r\n newPhone[index].status = 1;\r\n }\r\n\r\n newPhone[index].telefone = e.value\r\n } else if (newPhone[index].status !== 0) {\r\n newPhone[index].status = 2;\r\n }\r\n if (newPhone[index].telefone !==\"\") {\r\n let phoneFilter = mailingContatoTO.telefone && mailingContatoTO.telefone.length > 0 && mailingContatoTO.telefone.filter(findPhone => findPhone.telefone ===newPhone[index].telefone);\r\n if (phoneFilter.length ===0) {\r\n mailingContatoTO.telefone.push(newPhone[index]);\r\n }\r\n }\r\n setMailingContatoTO(mailingTO => ({ ...mailingTO, telefone: newPhone }))\r\n }\r\n\r\n const removeEmail = (index) => {\r\n if (newEmail[index] !==null) {\r\n if (newEmail[index].email !==\"\") {\r\n let pos = mailingContatoTO.email.map(function (e) { return e.email; }).indexOf(newEmail[index].email);\r\n let phoneFilter = mailingContatoTO.email.filter(findEmail => findEmail.email ===newEmail[index].email)[0];\r\n if (phoneFilter.status !==0) {\r\n mailingContatoTO.email[pos].status = 2;\r\n } else {\r\n mailingContatoTO.email.splice(pos, 1);\r\n }\r\n } else if (newEmail[index].status ===0) {\r\n newEmail.splice(index, 1);\r\n }\r\n }\r\n setNewEmail(\r\n newEmail => [...newEmail]\r\n );\r\n\r\n setMailingContatoTO(mailingTO => ({ ...mailingTO, email: [...newEmail] }))\r\n }\r\n\r\n const handleChangeEmail = (index, e) => {\r\n let value = e.value\r\n\r\n if (value) {\r\n if (newEmail[index].status ===3 || newEmail[index].status ===2) {\r\n newEmail[index].status = 1;\r\n }\r\n\r\n newEmail[index].email = e.value\r\n } else if (newEmail[index].status !== 0) {\r\n newEmail[index].status = 2;\r\n }\r\n if (newEmail[index].email !==\"\") {\r\n let emailFilter = mailingContatoTO.email.filter(findEmail => findEmail.email ===newEmail[index].email);\r\n if (emailFilter.length ===0) {\r\n mailingContatoTO.email.push(newEmail[index]);\r\n }\r\n }\r\n setMailingContatoTO(mailingTO => ({ ...mailingTO, email: newEmail }))\r\n }\r\n\r\n const setPropertyMailingContactTOState = (fieldName, fieldValue) => {\r\n setMailingContatoTO(mto => ({ ...mailingContatoTO, [fieldName]: fieldValue }));\r\n };\r\n\r\n const countryMailingContactOnChange = (e) => {\r\n if (e.itemData) {\r\n ddlStatesRef.dataSource = i18n.language === 'en' ? fillStateDataEn : fillStateDataPt;\r\n ddlStatesRef.query = new Query().where('idPais', 'equal', e.itemData.id);\r\n ddlStatesRef.enabled = true;\r\n ddlStatesRef.text = null;\r\n ddlStatesRef.dataBind();\r\n\r\n setMailingContatoTO(mto => ({ ...mailingContatoTO, idpais: e.itemData.id }));\r\n e.itemData.id === 6 ? setHideMailingState(hms => '') : setHideMailingState(hms => 'hide');\r\n } else {\r\n if (ddlStatesRef) {\r\n ddlStatesRef.dataSource = null;\r\n ddlStatesRef.query = null;\r\n ddlStatesRef.enabled = false;\r\n ddlStatesRef.text = null;\r\n ddlStatesRef.dataBind();\r\n }\r\n\r\n if (ddlCitiesRef) {\r\n ddlCitiesRef.dataSource = null;\r\n ddlCitiesRef.query = null;\r\n ddlCitiesRef.enabled = false;\r\n ddlCitiesRef.text = null;\r\n ddlCitiesRef.dataBind();\r\n }\r\n\r\n setMailingContatoTO(mto => ({ ...mailingContatoTO, idpais: null, idestado: null, idcidade: null }));\r\n setHideMailingState(hms => 'hide');\r\n setHideMailingCity(hms => 'hide');\r\n }\r\n };\r\n\r\n const stateMailingContactOnChange = (e) => {\r\n if (e.itemData) {\r\n ddlCitiesRef.dataSource = i18n.language === 'en' ? fillCityDataEn : fillCityDataPt;\r\n ddlCitiesRef.query = new Query().where('idEstado', 'equal', e.itemData.id);\r\n ddlCitiesRef.enabled = true;\r\n ddlCitiesRef.text = null;\r\n ddlCitiesRef.dataBind();\r\n\r\n setMailingContatoTO(mto => ({ ...mailingContatoTO, idestado: e.itemData.id }));\r\n setHideMailingCity(hms => '');\r\n } else {\r\n if (ddlCitiesRef) {\r\n ddlCitiesRef.dataSource = null;\r\n ddlCitiesRef.query = null;\r\n ddlCitiesRef.enabled = false;\r\n ddlCitiesRef.text = null;\r\n ddlCitiesRef.dataBind();\r\n }\r\n\r\n setMailingContatoTO(mto => ({ ...mailingContatoTO, idestado: null, idcidade: null }));\r\n setHideMailingCity(hms => 'hide');\r\n }\r\n };\r\n\r\n const manageInsertMailingTO = () => {\r\n if (!jornalistSelected) {\r\n setInsertMailing(im => !insertMailing);\r\n }\r\n };\r\n\r\n const refEmail = (emailRef) => {\r\n register({ required: true, pattern: /^\\S+@\\S+$/ });\r\n txtEmailRef = emailRef;\r\n };\r\n\r\n const stateMailingContactGroupOnChange = (e) => {\r\n if (e.isInteracted) {\r\n let mailingContactGroups = e.value.map((value) => {\r\n return { id: value };\r\n });\r\n setMailingContatoTO({ ...mailingContatoTO, grupos: mailingContactGroups });\r\n }\r\n };\r\n\r\n const groupCheckboxSelectionCreated = (e) => {\r\n if (ddlMailingContactGroupRef) {\r\n ddlMailingContactGroupRef.showSelectAll = true;\r\n ddlMailingContactGroupRef.selectAllText = t('Generic:multiSelect_selectAll');\r\n ddlMailingContactGroupRef.unSelectAllText = t('Generic:multiSelect_unselectAll');\r\n }\r\n };\r\n\r\n const downloadAttachment = (fileName) => {\r\n downloadLiaisonAttachment(globalState.accessToken, itemId, fileName)\r\n .then((response) => response.blob())\r\n .then((blob) => {\r\n const url = window.URL.createObjectURL(new Blob([blob]));\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.setAttribute('download', fileName);\r\n document.body.appendChild(link);\r\n link.click();\r\n link.parentNode.removeChild(link);\r\n });\r\n };\r\n\r\n const removeAttachment = (fileName) => {\r\n let itemsArray = liaisonAttachments.filter(x => x.fileName !== fileName);\r\n let item = liaisonAttachments.filter(x => x.fileName === fileName);\r\n item[0].status = 2;\r\n setLiaisonAttachments(itemsArray.concat(item));\r\n };\r\n\r\n React.useEffect(() => {\r\n if (loading) {\r\n createSpinner({ target: document.getElementById('loadLiaison') });\r\n showSpinner(document.getElementById('loadLiaison'));\r\n setSpinner({ type: 'Bootstrap' });\r\n }\r\n uploaderCreated();\r\n }, [loading]);\r\n\r\n const now = new Date;\r\n\r\n React.useEffect(() => {\r\n setLiaisonTO({\r\n ...liaisonTO,\r\n responsaveis: globalState.userName,\r\n idRegional: globalState?.regional?.id,\r\n dataRecebimento: new Date(),\r\n })\r\n\r\n\r\n\r\n async function getItems() {\r\n let _countries = await getCountries(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n const currentCountries = countriesJSON.filter(country => {\r\n return _countries.filter(item => item.nomeEn === country.nameEn).length > 0\r\n })\r\n setDataCountries(currentCountries);\r\n setDataFlags(currentCountries)\r\n\r\n const newProfile = await getProfile(globalState.accessToken, globalState.userId)\r\n .then(res => {\r\n if (res.ok) {\r\n return res.json();\r\n }\r\n })\r\n setProfile(newProfile)\r\n }\r\n getItems();\r\n\r\n function getRefPhone() {\r\n document.addEventListener(\"mousedown\", handlePhoneRef);\r\n\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handlePhoneRef);\r\n };\r\n };\r\n getRefPhone();\r\n\r\n initialLoad();\r\n document.addEventListener('keydown', (event) => {\r\n if (event.key === 'Enter') {\r\n event.preventDefault();\r\n return false;\r\n }\r\n });\r\n uploaderCreated();\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n if (!openCountries) {\r\n setDataFlags(dataCountries);\r\n }\r\n }, [openCountries]);\r\n\r\n React.useEffect(() => {\r\n setMailingContatoTO({\r\n ...mailingContatoTO,\r\n idPais: profile?.idPais,\r\n cargo: profile?.cargo,\r\n endereco: profile?.enderecoTrabalho\r\n })\r\n }, [profile]);\r\n\r\n\r\n React.useEffect(() => {\r\n if (txtEmailRef) txtEmailRef.placeholder = t('Liaison:email_placeholder');\r\n if (txtEditorialRef) txtEditorialRef.placeholder = t('Liaison:editorial_placeholder');\r\n if (txtOccupationRef) txtOccupationRef.placeholder = t('Liaison:occupation_placeholder');\r\n if (txtAddressRef) txtAddressRef.placeholder = t('Liaison:address_placeholder');\r\n if (txtDescriptionRef) txtDescriptionRef.placeholder = t('Liaison:staffDescription_placeholder');\r\n if (txtResponsaveisRef) txtResponsaveisRef.placeholder = t('Liaison:responsibles_placeholder');\r\n if (ddlMailingContactGroupRef) {\r\n ddlMailingContactGroupRef.selectAllText = t('Generic:multiSelect_selectAll');\r\n ddlMailingContactGroupRef.unSelectAllText = t('Generic:multiSelect_unselectAll');\r\n }\r\n if (dtConclusionRef) dtConclusionRef.placeholder = t('Liaison:conclusionDate_placeholder');\r\n uploaderCreated();\r\n }, [i18n.language]);\r\n\r\n React.useEffect(() => {\r\n if (loadedCount === 10) {\r\n if (itemId) {\r\n getLiaisonItem(globalState.accessToken, itemId)\r\n .then(response => {\r\n if (response.ok) {\r\n response.json().then(data => {\r\n let liaisonTO = new LiaisonTO(\r\n data.id,\r\n null,\r\n null,\r\n null,\r\n null,\r\n null,\r\n null,\r\n data.idStatus,\r\n data.dataConclusao,\r\n data.descricao,\r\n data.tipoAcao,\r\n data.idAreaNegocio,\r\n data.responsaveis,\r\n data.idPais,\r\n data.idRegional,\r\n data.dataRecebimento,\r\n null,\r\n false,\r\n data.autorRegistro);\r\n\r\n\r\n if (data.mailingContato) {\r\n\r\n const newTelefone = data.mailingContato.telefone.map(phone => ({\r\n ...phone,\r\n country: countriesJSON.find(country => country.nameEn === phone.country)\r\n }))\r\n\r\n let mailingTO = new MailingContactTO(\r\n data.mailingContato.id,\r\n data.mailingContato.jornalista,\r\n data.mailingContato.idtipoMidia,\r\n data.mailingContato.nomeVeiculo,\r\n data.mailingContato.email,\r\n newTelefone,\r\n data.mailingContato.idpais,\r\n data.mailingContato.idestado,\r\n data.mailingContato.idcidade,\r\n data.mailingContato.editoria,\r\n data.mailingContato.cargo,\r\n data.mailingContato.endereco,\r\n data.mailingContato.grupos);\r\n\r\n liaisonTO.mailingContato = mailingTO;\r\n setNewPhone(newTelefone)\r\n setJornalistSelected(true);\r\n } else {\r\n let mailingTO = new MailingContactTO(\r\n null,\r\n data.jornalista,\r\n data.idTipoMidia,\r\n data.nomeVeiculo,\r\n data.email,\r\n data.telefone);\r\n\r\n const newTelefone = data.telefone.map(phone => ({\r\n ...phone,\r\n country: countriesJSON.find(country => country.nameEn === phone.country)\r\n }))\r\n\r\n setNewPhone(newTelefone)\r\n liaisonTO.mailingContato = mailingTO;\r\n setJornalistSelected(false);\r\n }\r\n\r\n if (data.historico && data.historico.length > 0) {\r\n let histList = data.historico.map(item => {\r\n let actionType = {\r\n id: item.tipoAcao.id,\r\n namePt: item.tipoAcao.nomePt,\r\n nameEn: item.tipoAcao.nomeEn\r\n };\r\n return new LiaisonHistory(\r\n item.IdAtendimento,\r\n item.usuario,\r\n actionType,\r\n item.data\r\n );\r\n });\r\n\r\n liaisonTO.historico = histList;\r\n }\r\n\r\n if (data.anexos) {\r\n let attachments = data.anexos.map((item) => {\r\n return new LiaisonAttachment(data.id, item.contentType, item.fileName, null, item.fileExtension, item.fileLength);\r\n });\r\n setLiaisonAttachments(x => attachments);\r\n }\r\n\r\n setLiaisonTO(lto => liaisonTO);\r\n setMailingContatoTO(mto => liaisonTO.mailingContato);\r\n setNewEmail(liaisonTO.mailingContato.email);\r\n setLoaded(true);\r\n uploaderCreated();\r\n });\r\n }\r\n });\r\n } else {\r\n setLoaded(true);\r\n uploaderCreated();\r\n }\r\n }\r\n\r\n }, [loadedCount]);\r\n\r\n React.useEffect(() => {\r\n if (loaded) {\r\n hideSpinner(document.getElementById('loadLiaison'));\r\n setLoading(false);\r\n }\r\n uploaderCreated();\r\n }, [loaded]);\r\n\r\n React.useEffect(() => {\r\n if (!insertMailing) unregister(\"country\");\r\n uploaderCreated();\r\n }, [insertMailing]);\r\n\r\n React.useEffect(() => {\r\n if (mailingContatoTO && mailingContatoTO.id) {\r\n clearError([\"name\", \"mediaType\", \"vehicle\", \"email\", \"country\"]);\r\n }\r\n uploaderCreated();\r\n }, [mailingContatoTO]);\r\n\r\n React.useEffect(() => {\r\n uploaderCreated();\r\n }, [liaisonAttachments]);\r\n\r\n const handleChangeCountry = (country, index) => {\r\n const newSelectedPhone = [...newPhone];\r\n\r\n newSelectedPhone[index] = {\r\n ...newSelectedPhone[index],\r\n country: country,\r\n status: itemId && newSelectedPhone[index].id ? 1 : 0\r\n }\r\n\r\n setNewPhone(newSelectedPhone);\r\n setOpenCountries(null);\r\n }\r\n\r\n const newCountries = (item) => {\r\n const country = dataCountries.filter(i => i.nameEn === item);\r\n\r\n return country.map(i => i.flag);\r\n }\r\n\r\n const handleCountries = (index) => {\r\n if (!jornalistSelected) {\r\n setOpenCountries(index)\r\n }\r\n }\r\n\r\n const handleChangeFlags = (ev) => {\r\n const newDataFlags = dataCountries.filter(\r\n flags => ev.target.value !== \"\"\r\n ? i18n.language === \"pt\"\r\n ? flags?.namePt.toLowerCase().includes(ev.target.value.toLowerCase())\r\n : flags?.nameEn.toLowerCase().includes(ev.target.value.toLowerCase())\r\n : true\r\n );\r\n\r\n setDataFlags(newDataFlags);\r\n }\r\n\r\n return (\r\n <>\r\n {globalState.accessToken === null ? :\r\n redirect ? :\r\n <>\r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    {itemId ? t('Liaison:edit_title') : t('Liaison:create_title')}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {isLoadingItem &&
    }\r\n {loading ?
    :\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 {errors.name &&\r\n <>\r\n {errors.name.type === \"required\" &&\r\n \r\n }\r\n \r\n }\r\n
    \r\n
    \r\n \r\n setPropertyMailingContactTOState('idtipoMidia', e.itemData ? e.itemData.id : null)}\r\n ref={register({ required: true })}\r\n blur={() => triggerValidation('mediaType')}\r\n />\r\n {errors.mediaType &&\r\n <>\r\n {errors.mediaType.type === \"required\" &&\r\n \r\n }\r\n \r\n }\r\n
    \r\n
    \r\n \r\n setPropertyMailingContactTOState('nomeVeiculo', e.itemData ? e.itemData.nomeVeiculo : null)}\r\n value={mailingContatoTO ? mailingContatoTO.nomeVeiculo ? mailingContatoTO.nomeVeiculo : null : null}\r\n enabled={!jornalistSelected}\r\n ref={register({ required: true })}\r\n htmlAttributes={{ maxlength: 100 }}\r\n blur={() => triggerValidation('vehicle')}\r\n />\r\n {errors.vehicle &&\r\n <>\r\n {errors.vehicle.type === \"required\" &&\r\n \r\n }\r\n \r\n }\r\n
    \r\n
    \r\n {newEmail.filter(phone => phone.status !== 2) &&\r\n
    \r\n \r\n {!jornalistSelected &&\r\n
    addNewEmail()}\r\n />\r\n }\r\n
    \r\n }\r\n {newEmail.length > 0 &&\r\n newEmail.map((item, index) => item.status !== 2 && (\r\n
    \r\n handleChangeEmail(index, e)}\r\n enabled={!jornalistSelected}\r\n ref={register({ required: true, pattern: /^\\S+@\\S+$/ })}\r\n htmlAttributes={{ maxlength: 100 }}\r\n blur={() => triggerValidation('email')}\r\n />\r\n {!jornalistSelected &&\r\n
    removeEmail(index)}\r\n />\r\n }\r\n
    \r\n ))\r\n }\r\n {errors.email &&\r\n <>\r\n {errors.email.type === \"required\" &&\r\n \r\n }\r\n {errors.email.type === \"pattern\" &&\r\n \r\n }\r\n \r\n }\r\n
    \r\n
    \r\n {newPhone.filter(phone => phone.status !== 2) &&\r\n
    \r\n \r\n {!jornalistSelected &&\r\n
    addNewPhone()}\r\n />\r\n }\r\n
    \r\n }\r\n {newPhone.length > 0 &&\r\n newPhone.map((item, index) => item.status !== 2 && (\r\n
    \r\n handleChangePhone(index, e)}\r\n htmlAttributes={{ maxlength: \"20\" }}\r\n />\r\n {!jornalistSelected &&\r\n
    removePhone(index)}\r\n />\r\n }\r\n
    handleCountries(index)}>\r\n {i18n.language\r\n \r\n
    \r\n {openCountries === index &&\r\n
    \r\n \r\n {dataFlags.map((country, i) => (\r\n handleChangeCountry(country, index)}\r\n >\r\n {i18n.language\r\n

    {country && `${i18n.language ===\"pt\" ? country?.namePt : country?.nameEn} ${country?.dialCode}`}

    \r\n
    \r\n ))}\r\n
    \r\n }\r\n
    \r\n ))\r\n }\r\n
    \r\n {(!mailingContatoTO || (mailingContatoTO && !mailingContatoTO.id)) &&\r\n <>\r\n
    \r\n manageInsertMailingTO()}\r\n checked={insertMailing}\r\n locale={i18n.language}\r\n />\r\n
    \r\n {insertMailing &&\r\n <>\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n { ddlStatesRef = scope; }}\r\n enabled={false}\r\n />\r\n
    \r\n
    \r\n \r\n { ddlCitiesRef = scope; }}\r\n enabled={false}\r\n change={(e) => setPropertyMailingContactTOState('idcidade', e.itemData ? e.itemData.id : null)}\r\n />\r\n
    \r\n
    \r\n \r\n {\r\n return value.id;\r\n }) : null : null}\r\n change={(e) => stateMailingContactGroupOnChange(e)}\r\n ref={(scope) => { ddlMailingContactGroupRef = scope; }}\r\n created={groupCheckboxSelectionCreated}\r\n >\r\n \r\n \r\n
    \r\n
    \r\n \r\n setPropertyMailingContactTOState('editoria', e.value ? e.value : null)}\r\n htmlAttributes={{ maxlength: 500 }}\r\n ref={(r) => txtEditorialRef = r}\r\n />\r\n
    \r\n
    \r\n \r\n setPropertyMailingContactTOState('cargo', e.value ? e.value : null)}\r\n htmlAttributes={{ maxlength: 120 }}\r\n ref={(r) => txtOccupationRef = r}\r\n />\r\n
    \r\n
    \r\n \r\n setPropertyMailingContactTOState('endereco', e.value ? e.value : null)}\r\n htmlAttributes={{ maxlength: 250 }}\r\n ref={(r) => txtAddressRef = r}\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

    {t('Liaison:information_title')}

    \r\n
    \r\n
    \r\n
    \r\n \r\n {\r\n setPropertyLiaisonTOState('idStatus', e.itemData ? e.itemData.id : null);\r\n triggerValidation('liaisonStatus');\r\n }}\r\n ref={register({ required: true })}\r\n blur={() => triggerValidation('liaisonStatus')}\r\n />\r\n {errors.liaisonStatus &&\r\n <>\r\n {errors.liaisonStatus.type === \"required\" &&\r\n \r\n }\r\n \r\n }\r\n
    \r\n
    \r\n \r\n setPropertyLiaisonTOState('idRegional', e.itemData ? e.itemData.id : null)}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n dtConclusionRef = datepicker}\r\n placeholder={t('Liaison:conclusionDate_placeholder')}\r\n locale={i18n.language}\r\n allowEdit={false}\r\n change={(e) => setPropertyLiaisonTOState('dataConclusao', e.value ? e.value : null)}\r\n value={liaisonTO ? liaisonTO.dataConclusao ? liaisonTO.dataConclusao : null : null}\r\n serverTimezoneOffset='0'\r\n />\r\n
    \r\n
    \r\n \r\n {\r\n setPropertyLiaisonTOState('dataRecebimento', e.value ? e.value : null);\r\n triggerValidation('receiptDate');\r\n }}\r\n blur={() => triggerValidation('receiptDate')}\r\n value={liaisonTO ? liaisonTO.dataRecebimento ? liaisonTO.dataRecebimento : null : null}\r\n />\r\n {errors.receiptDate &&\r\n <>\r\n {errors.receiptDate.type === \"required\" &&\r\n \r\n }\r\n \r\n }\r\n
    \r\n
    \r\n \r\n setPropertyLiaisonTOState('tipoAcao', e.itemData ? e.itemData.id : null)}\r\n />\r\n
    \r\n
    \r\n \r\n {\r\n setPropertyLiaisonTOState('idAreaNegocio', e.itemData ? e.itemData.id : null);\r\n triggerValidation('businessArea');\r\n }}\r\n ref={register({ required: true })}\r\n blur={() => triggerValidation('businessArea')}\r\n />\r\n {errors.businessArea &&\r\n <>\r\n {errors.businessArea.type === \"required\" &&\r\n \r\n }\r\n \r\n }\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n setPropertyLiaisonTOState('responsaveis', e.value ? e.value : null)}\r\n ref={(r) => txtResponsaveisRef = r}\r\n />\r\n
    \r\n
    \r\n \r\n txtDescriptionRef = r}\r\n change={(e) => setPropertyLiaisonTOState('descricao', e.value ? e.value : null)}\r\n value={liaisonTO ? liaisonTO.descricao ? liaisonTO.descricao : null : null}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    {t('Liaison:attachments_title')}

    \r\n
    \r\n
    \r\n
    dropAreaRef = dropArea} id=\"attachsDropAreaEle\">\r\n

    \r\n {t('Liaison:attachments_description_part1')}\r\n uploadAttachment()}> {t('Liaison:attachments_description_part2')}\r\n

    \r\n
    \r\n
    \r\n
      \r\n {itemId && liaisonAttachments && liaisonAttachments.length > 0 &&\r\n liaisonAttachments.filter(a => a.status !== 2 && !a.fileB64).map((item) => {\r\n return
    • \r\n downloadAttachment(item.fileName)}>\r\n {item.fileName}\r\n  \r\n {formatBytes(item.fileLength, 1)}\r\n \r\n removeAttachment(item.fileName)} />\r\n
    • \r\n })\r\n }\r\n
    \r\n
    \r\n uploaderRef = uploader}\r\n dropArea={target}\r\n locale={i18n.language}\r\n multiple={true}\r\n created={uploaderCreated}\r\n selected={onSetAttachmentsFiles}\r\n removing={onRemovingAttachsFiles}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {\r\n itemId &&\r\n
    \r\n
    \r\n
    \r\n

    {t('ChangeHistory:title')}

    \r\n
    \r\n
    \r\n
    \r\n {liaisonTO.historico && liaisonTO.historico.map((item, index) => (\r\n
    \r\n
    \r\n {item.userName}\r\n {(new Date(item.date)).toLocaleDateString(i18n.language)} {(new Date(item.date)).toLocaleTimeString(i18n.language, { hour12: false })}\r\n
    \r\n
    \r\n {i18n.language ===\"pt\" ? item.actionType.namePt : item.actionType.nameEn}\r\n
    \r\n
    \r\n )).reverse()}\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 \r\n
    \r\n
    \r\n \r\n \r\n }\r\n \r\n )\r\n}\r\n","import * as React from 'react';\r\n\r\nconst initialState = {\r\n data: null,\r\n startDate: null,\r\n endDate: null\r\n};\r\n\r\nconst LiaisonReportStateContext = React.createContext(initialState);\r\n\r\nconst LiaisonReportStateProvider = ({ children }) => {\r\n const [liaisonReportState, setLiaisonReportState] = React.useState(initialState);\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport { LiaisonReportStateContext, LiaisonReportStateProvider };\r\n\r\n\r\n","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nimport { ChartComponent, SeriesCollectionDirective, SeriesDirective, Inject, Legend, Category, Tooltip, DataLabel, ColumnSeries } from '@syncfusion/ej2-react-charts';\r\nimport { Export } from \"../utilities/Export\";\r\nimport { GlobalStateContext } from \"../general/GlobalState\";\r\nimport { LiaisonReportStateContext } from \"../liaisonReport/LiaisonReportState\";\r\nimport { exportLiaisonReport } from \"../../services/LiaisonSVC\";\r\n\r\nexport const ReportComponent = () => {\r\n\r\n const { t } = useTranslation();\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [liaisonReportState] = React.useContext(LiaisonReportStateContext);\r\n const [data, setData] = React.useState([]);\r\n const [total, setTotal] = React.useState(0);\r\n const [dateRangeLabel, setDateRangeLabel] = React.useState('');\r\n const [newData, setNewData] = React.useState([]);\r\n\r\n React.useEffect(() => {\r\n if (liaisonReportState && liaisonReportState.data.length > 0) {\r\n let seriesData = liaisonReportState.data.map(i => {\r\n return {\r\n AreaNegocio: globalState.userLanguage === \"en\" ? i.areaNegocio.nomeEn : i.areaNegocio.nomePt,\r\n IdAreaNegocio: i.areaNegocio.id,\r\n QuantidadeAtendimentos: i.quantidadeAtendimentos\r\n };\r\n })\r\n\r\n let newSeriesData = {\r\n IdAreaNegocio: liaisonReportState?.allData?.businessArea,\r\n language: i18n.language,\r\n NomeVeiculo: liaisonReportState?.allData?.vehicle,\r\n Responsaveis: liaisonReportState?.allData?.responsibles,\r\n DataInicio: liaisonReportState?.allData?.startPeriod,\r\n DataFim: liaisonReportState?.allData?.endPeriod,\r\n IdatendimentoStatus: liaisonReportState?.allData?.status,\r\n IdPais: liaisonReportState?.allData?.country,\r\n IdRegional: liaisonReportState?.allData?.regional\r\n };\r\n\r\n setData(seriesData);\r\n setNewData(newSeriesData);\r\n\r\n let sum = 0;\r\n liaisonReportState.data.map(i => {\r\n sum += i.quantidadeAtendimentos;\r\n })\r\n setTotal(sum);\r\n }\r\n\r\n }, [liaisonReportState.data, globalState.userLanguage]);\r\n\r\n React.useEffect(() => {\r\n if (liaisonReportState &&\r\n liaisonReportState.data.length > 0) {\r\n\r\n if (liaisonReportState.startDate && liaisonReportState.endDate) {\r\n let rangeDate;\r\n\r\n if (globalState.userLanguage === \"en\") {\r\n rangeDate = `From ${liaisonReportState.startDate.toLocaleDateString(\"en\")} to ${liaisonReportState.endDate.toLocaleDateString(\"en\")}`;\r\n } else {\r\n rangeDate = `De ${liaisonReportState.startDate.toLocaleDateString(\"pt\")} até ${liaisonReportState.endDate.toLocaleDateString(\"pt\")}`;\r\n }\r\n\r\n setDateRangeLabel(rangeDate);\r\n } else {\r\n setDateRangeLabel(null);\r\n }\r\n }\r\n }, [liaisonReportState.startDate, liaisonReportState.endDate, globalState.userLanguage]);\r\n\r\n const legendSettings = {\r\n visible: true,\r\n position: 'Custom',\r\n location: { x: 450, y: 20 },\r\n textStyle: {\r\n color: '#747876',\r\n fontFamily: 'Arial'\r\n }\r\n };\r\n\r\n const exportReport = (args) => {\r\n const extension = () => {\r\n switch (args) {\r\n case 'doc':\r\n return \".docx\";\r\n case 'excel':\r\n return \".xlsx\";\r\n default:\r\n return;\r\n }\r\n }\r\n\r\n const dataExport = {...newData, extension: extension()}\r\n\r\n exportLiaisonReport(globalState.accessToken, dataExport).then(async (res) => {\r\n const blob = await res.blob();\r\n const newBlob = new Blob([blob], { type: args === 'doc'\r\n ? 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'\r\n : 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\r\n });\r\n let url = window.URL.createObjectURL(newBlob);\r\n let a = document.createElement('a');\r\n a.download = `export${extension()}`;\r\n a.href = url;\r\n a.click();\r\n a.remove();\r\n }).catch(console.error);\r\n }\r\n\r\n const exportPDF = () => {\r\n window.print();\r\n }\r\n\r\n const _export = {\r\n pdf: () => exportPDF(),\r\n doc: () => exportReport('doc'),\r\n excel: () => exportReport('excel')\r\n }\r\n\r\n return (\r\n <>\r\n {\r\n data &&\r\n data.length > 0 &&\r\n\r\n
    \r\n
    \r\n
    {t('LiaisonReport:topLabel')}
    \r\n
    \r\n {\r\n dateRangeLabel &&\r\n
    \r\n \r\n \r\n
    \r\n }\r\n

    {t('LiaisonReport:description')}

    \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 {liaisonReportState &&\r\n liaisonReportState.data.length > 0 &&\r\n liaisonReportState.data.map((i, index) => {\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n );\r\n })\r\n }\r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n }\r\n \r\n );\r\n}\r\n","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nimport { TextBoxComponent } from \"@syncfusion/ej2-react-inputs\";\r\nimport { DateRangePickerComponent } from \"@syncfusion/ej2-react-calendars\";\r\nimport { DropDownListComponent } from '@syncfusion/ej2-react-dropdowns';\r\nimport { ProgressButtonComponent } from '@syncfusion/ej2-react-splitbuttons';\r\n\r\nimport { GlobalStateContext } from \"../general/GlobalState\";\r\nimport { LiaisonReportStateContext } from \"./LiaisonReportState\";\r\nimport { getAllBusinessAreas, getCountries, getRegional, getLiaisonStatus } from \"../../services/SystemSVC\";\r\nimport { LiaisonReportFilter, getLiaisonReportItems } from \"../../services/LiaisonSVC\";\r\n\r\nexport const FilterComponent = () => {\r\n\r\n const { t } = useTranslation();\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [liaisonReportState, setLiaisonReportState] = React.useContext(LiaisonReportStateContext);\r\n\r\n const [vehicle, setVehicle] = React.useState(null);\r\n const [responsible, setResponsible] = React.useState(null);\r\n const [startDate, setStartDate] = React.useState(null);\r\n const [endDate, setEndDate] = React.useState(null);\r\n\r\n const [fillBusinessAreaDataPt, setFillBusinessAreaDataPt] = React.useState([]);\r\n const [fillBusinessAreaDataEn, setFillBusinessAreaDataEn] = React.useState([]);\r\n const [businessArea, setBusinessArea] = React.useState(null);\r\n\r\n const [fillStatusDataPt, setFillStatusDataPt] = React.useState([]);\r\n const [fillStatusDataEn, setFillStatusDataEn] = React.useState([]);\r\n const [status, setStatus] = React.useState(null);\r\n\r\n const [fillCountryDataPt, setFillCountryDataPt] = React.useState([]);\r\n const [fillCountryDataEn, setFillCountryDataEn] = React.useState([]);\r\n const [country, setCountry] = React.useState(null);\r\n\r\n const [fillRegionalDataPt, setFillRegionalDataPt] = React.useState([]);\r\n const [fillRegionalDataEn, setFillRegionalDataEn] = React.useState([]);\r\n const [regionalDdl, setRegionalDdl] = React.useState(null);\r\n\r\n const [spinnerDuration, setSpinnerDuration] = React.useState(20000);\r\n\r\n let refVehicle;\r\n let refResponsible;\r\n\r\n const initialLoad = () => {\r\n getAllBusinessAreas(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n response.json().then(data => configBusinessArea(data));\r\n }\r\n });\r\n\r\n getLiaisonStatus(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n response.json().then(data => configStatus(data));\r\n }\r\n });\r\n\r\n getCountries(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok){\r\n response.json().then(data => configCountries(data));\r\n }\r\n });\r\n\r\n getRegional(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n response.json().then(data => configRegionals(data));\r\n }\r\n });\r\n };\r\n\r\n const configBusinessArea = (_businessAreas) => {\r\n setFillBusinessAreaDataPt(_businessAreas.map(x => {\r\n return {\r\n id: x.id,\r\n nome: x.nomePt\r\n };\r\n }));\r\n setFillBusinessAreaDataEn(_businessAreas.map(x => {\r\n return {\r\n id: x.id,\r\n nome: x.nomeEn\r\n };\r\n }));\r\n };\r\n\r\n const configStatus = (_status) => {\r\n setFillStatusDataPt(_status.map(x => {\r\n return {\r\n id: x.id,\r\n nome: x.nomePt\r\n };\r\n }));\r\n setFillStatusDataEn(_status.map(x => {\r\n return {\r\n id: x.id,\r\n nome: x.nomeEn\r\n };\r\n }));\r\n };\r\n\r\n const configCountries = (_contries) => {\r\n setFillCountryDataPt(_contries.map(x => {\r\n return {\r\n id: x.id,\r\n nome: x.nomePt\r\n };\r\n }));\r\n setFillCountryDataEn(_contries.map(x => {\r\n return {\r\n id: x.id,\r\n nome: x.nomeEn\r\n };\r\n }));\r\n };\r\n\r\n const configRegionals = (_regionals) => {\r\n setFillRegionalDataPt(_regionals.map(x => {\r\n return {\r\n id: x.id,\r\n nome: x.nomePt\r\n };\r\n }));\r\n setFillRegionalDataEn(_regionals.map(x => {\r\n return {\r\n id: x.id,\r\n nome: x.nomeEn\r\n };\r\n }));\r\n };\r\n\r\n React.useEffect(() => {\r\n initialLoad();\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n refVehicle.placeholder = t('Liaison:vehicle_placeholder_text');\r\n refResponsible.placeholder = t(\"Liaison:responsible_placeholder\");\r\n }, [i18n.language]);\r\n\r\n const periodChanged = (obj) => {\r\n setStartDate(obj.startDate);\r\n setEndDate(obj.endDate);\r\n }\r\n\r\n const generateReport = () => {\r\n let filterObject = new LiaisonReportFilter(\r\n vehicle,\r\n responsible,\r\n businessArea,\r\n startDate,\r\n endDate,\r\n status,\r\n country,\r\n regionalDdl\r\n );\r\n\r\n getLiaisonReportItems(globalState.accessToken, filterObject)\r\n .then(response => {\r\n if (response.ok){\r\n Promise.resolve(response.json()).then(data => {\r\n setLiaisonReportState({\r\n data: data,\r\n startDate: startDate,\r\n endDate: endDate,\r\n allData: filterObject\r\n });\r\n setSpinnerDuration(0);\r\n });\r\n }\r\n });\r\n }\r\n\r\n return (\r\n <>\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n setVehicle(e.value)}\r\n ref={veh => refVehicle = veh}\r\n />\r\n
    \r\n
    \r\n \r\n setResponsible(e.value)}\r\n ref={res => refResponsible = res}\r\n />\r\n
    \r\n
    \r\n \r\n setBusinessArea(e.value)}\r\n showClearButton={true}\r\n />\r\n
    \r\n
    \r\n \r\n periodChanged(e)}\r\n />\r\n
    \r\n
    \r\n \r\n setStatus(e.value)}\r\n showClearButton={true}\r\n />\r\n
    \r\n
    \r\n \r\n setCountry(e.value)}\r\n showClearButton={true}\r\n />\r\n
    \r\n
    \r\n \r\n setRegionalDdl(e.value)}\r\n showClearButton={true}\r\n />\r\n
    \r\n
    \r\n generateReport()}\r\n isPrimary={true}\r\n duration={spinnerDuration}\r\n />\r\n
    \r\n
    \r\n
    \r\n\r\n\r\n \r\n );\r\n}\r\n","import * as React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Container, Row } from \"reactstrap\";\r\nimport { ReportComponent } from \"./ReportComponent\";\r\nimport { FilterComponent } from \"./FilterComponent\";\r\nimport { LiaisonReportStateContext } from \"./LiaisonReportState\";\r\nimport '../liaisonReport/liaisonReport.css';\r\nimport PermissionRedirect from \"../utilities/PermissionRedirect/PermissionRedirect\";\r\n\r\nexport const LiaisonReport = () => {\r\n\r\n const { t } = useTranslation();\r\n const [liaisonReportState] = React.useContext(LiaisonReportStateContext);\r\n\r\n return (\r\n <>\r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {t(\"LiaisonReport:title\")}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n {\r\n liaisonReportState &&\r\n liaisonReportState.data &&\r\n liaisonReportState.data.length > 0 &&\r\n\r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n
    \r\n \r\n )\r\n}\r\n","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { GlobalStateContext } from \"../../general/GlobalState\";\r\nimport { MailingContactsContext } from \"./MailingContactsContext\";\r\nimport { ProfilePhotoContext } from \"../../utilities/ProfilePhoto/ProfilePhotoContext\"\r\nimport { Container, Row } from \"reactstrap\";\r\nimport { Actions } from \"../../utilities/Actions\";\r\nimport { TextBoxComponent, MaskedTextBoxComponent, FormValidator } from \"@syncfusion/ej2-react-inputs\";\r\nimport { DropDownListComponent } from \"@syncfusion/ej2-react-dropdowns\";\r\nimport { DialogComponent } from \"@syncfusion/ej2-react-popups\";\r\nimport { GroupsBox } from \"../../Shared/GroupsBox\";\r\nimport { ProfilePhotoComponent } from \"../../utilities/ProfilePhoto/ProfilePhotoComponent\"\r\nimport { getMailingContactItem, addOrUpdateContactItem, deleteMailingContact, deleteMailingContactPhoto, getMailingContactPhoto } from \"../../../services/MailingSVC\";\r\nimport { getPressMediaTypes, getCountries, getStates, getCities } from \"../../../services/SystemSVC\";\r\nimport './contacts.css';\r\nimport PermissionRedirect from \"../../utilities/PermissionRedirect/PermissionRedirect\";\r\nimport { hasPermissions } from \"../../utilities/Utils\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport { countriesJSON } from '../../../resources/countries.js';\r\n\r\nexport const ContactsItem = (props) => {\r\n const { register, triggerValidation, errors, clearError } = useForm();\r\n\r\n let idContact = props.match.params.id;\r\n let formObject;\r\n let ddlMediaTypes;\r\n let ddlCountries;\r\n let ddlStates;\r\n let ddlCities;\r\n let txtJournalist;\r\n let txtMediaOutlet;\r\n let txtAddress;\r\n let txtEditoria;\r\n let txtOccupation;\r\n let txtOtherInfo;\r\n\r\n const { t } = useTranslation();\r\n\r\n const initialValue = {\r\n id: null,\r\n jornalista: \"\",\r\n idtipoMidia: null,\r\n nomeVeiculo: \"\",\r\n email: [],\r\n telefone: [],\r\n idpais: 6,\r\n idestado: null,\r\n idcidade: null,\r\n editoria: \"\",\r\n cargo: \"\",\r\n endereco: \"\",\r\n outrasInformacoes: \"\",\r\n grupos: [],\r\n fotoB64: \"\",\r\n importado: true,\r\n }\r\n\r\n const countryDefault = countriesJSON.find(i => i18n.language === \"pt\" ? i.namePt === 'Brasil' : i.nameEn === 'Brazil');\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const mailingState = React.useContext(MailingContactsContext);\r\n const [photo, setPhoto] = React.useContext(ProfilePhotoContext);\r\n const [redirect, setRedirect] = React.useState(false);\r\n const [dialogDelete, setDialogDelete] = React.useState(false);\r\n const [openCountries, setOpenCountries] = React.useState(null);\r\n const [dataCountries, setDataCountries] = React.useState([]);\r\n const [disabledBtn, setDisabledBtn] = React.useState(false);\r\n const [dataFlags, setDataFlags] = React.useState([]);\r\n\r\n const [newPhone, setNewPhone] = React.useState(\r\n () => {\r\n if (mailingState?.item?.telefone.length > 0) {\r\n return [...mailingState.item.telefone];\r\n }\r\n return [{\r\n telefone: \"\",\r\n status: 0,\r\n country: countryDefault\r\n }]\r\n }\r\n );\r\n\r\n const [newEmail, setNewEmail] = React.useState(\r\n () => {\r\n if (mailingState?.item?.email.length > 0) {\r\n return mailingState.item.email;\r\n }\r\n return [{\r\n email: \"\",\r\n status: 0\r\n }]\r\n }\r\n );\r\n\r\n const phoneRef = React.useRef();\r\n\r\n const handlePhoneRef = (ref) => {\r\n if (phoneRef?.current?.contains(ref?.target)) {\r\n return;\r\n }\r\n setOpenCountries(null);\r\n }\r\n\r\n const _controls = {\r\n class: \"contact\",\r\n savePrimary: false,\r\n excludePrimary: true,\r\n area: \"Contatos Jornalistas\",\r\n customPermissions: idContact ? hasPermissions(10, \"Edit\", globalState) : hasPermissions(10, \"Create\", globalState),\r\n urlView: \"\",\r\n urlPreview: \"\",\r\n customPermissionsDelete: idContact && hasPermissions(10, \"Delete\", globalState),\r\n urlDuplicate: \"\",\r\n urlSave: () => {\r\n if (formObject.validate()) {\r\n setDisabledBtn(true);\r\n const data = mailingState.item;\r\n data.fotoB64 = photo && photo.b64 ? photo.b64.split(',')[1] : null;\r\n let arrGroups = [];\r\n mailingState.groupsSelected.map(item => {\r\n arrGroups.push({ id: item });\r\n })\r\n data.grupos = arrGroups;\r\n data.telefone = newPhone.map(phone => ({\r\n ...phone,\r\n country: phone.country.nameEn\r\n }))\r\n if (photo && photo.delete) {\r\n deleteMailingContactPhoto(globalState.accessToken, idContact).then(response => {\r\n if (response.ok) {\r\n addOrUpdateContactItem(globalState.accessToken, data).then(response => {\r\n setRedirect(response.ok)\r\n setDisabledBtn(false);\r\n }).catch(() => {\r\n setDisabledBtn(false);\r\n });\r\n }\r\n setDisabledBtn(false);\r\n }).catch(() => {\r\n setDisabledBtn(false);\r\n });\r\n }\r\n else {\r\n addOrUpdateContactItem(globalState.accessToken, data).then(response => {\r\n setRedirect(response.ok)\r\n setDisabledBtn(false);\r\n }).catch(() => {\r\n setDisabledBtn(false);\r\n });\r\n }\r\n\r\n }\r\n },\r\n urlSend: \"\",\r\n urlCancel: () => setRedirect(true),\r\n urlDelete: idContact ? () => setDialogDelete(true) : \"\"\r\n };\r\n\r\n React.useEffect(() => {\r\n const formValidator = {\r\n rules: {\r\n 'jornalista': {\r\n required: [true, t('Validation:required')]\r\n },\r\n 'tipoMidia': {\r\n required: [true, t('Validation:required')],\r\n },\r\n 'nomeVeiculo': {\r\n required: [true, t('Validation:required')],\r\n },\r\n 'email': {\r\n required: [true, t('Validation:required')]\r\n }\r\n },\r\n customPlacement: (inputElement, errorElement) => {\r\n inputElement.parentElement.parentElement.appendChild(errorElement);\r\n }\r\n };\r\n\r\n formObject = new FormValidator('#formMailingContact', formValidator);\r\n });\r\n\r\n const loadSystemData = () => {\r\n let promises = [];\r\n if (!mailingState.mediaTypes) {\r\n promises.push(\r\n new Promise((resolve, reject) => {\r\n getPressMediaTypes(globalState.accessToken).then(response => {\r\n if (response.ok) {\r\n response.json().then(result => {\r\n mailingState.setMediaTypes(result);\r\n resolve();\r\n });\r\n }\r\n else\r\n reject();\r\n });\r\n })\r\n );\r\n }\r\n if (!mailingState.countries) {\r\n promises.push(\r\n new Promise((resolve, reject) => {\r\n getCountries(globalState.accessToken).then(response => {\r\n if (response.ok) {\r\n response.json().then(result => {\r\n mailingState.setCountries(result);\r\n resolve();\r\n });\r\n }\r\n else\r\n reject();\r\n });\r\n })\r\n );\r\n }\r\n\r\n if (!mailingState.states) {\r\n promises.push(\r\n new Promise((resolve, reject) => {\r\n getStates(globalState.accessToken).then(response => {\r\n if (response.ok) {\r\n response.json().then(result => {\r\n mailingState.setStates(result);\r\n resolve();\r\n });\r\n }\r\n else\r\n reject();\r\n });\r\n })\r\n )\r\n }\r\n if (!mailingState.cities) {\r\n promises.push(\r\n new Promise((resolve, reject) => {\r\n getCities(globalState.accessToken).then(response => {\r\n if (response.ok) {\r\n response.json().then(result => {\r\n mailingState.setCities(result);\r\n resolve();\r\n });\r\n }\r\n else\r\n reject();\r\n });\r\n })\r\n );\r\n }\r\n return promises;\r\n }\r\n\r\n const addNewEmail = () => {\r\n const emails = newEmail.filter(email => email.status !== 2);\r\n\r\n if (emails) {\r\n setNewEmail(newEmail => [...newEmail, { email: \"\", status: 0 }])\r\n }\r\n }\r\n\r\n const removeEmail = (index) => {\r\n if (newEmail[index] !==null) {\r\n if (newEmail[index].email !==\"\") {\r\n let pos = mailingState.item.email.map(function (e) { return e.email; }).indexOf(newEmail[index].email);\r\n let phoneFilter = mailingState.item.email.filter(findEmail => findEmail.email ===newEmail[index].email)[0];\r\n if (phoneFilter.status !==0) {\r\n mailingState.item.email[pos].status = 2;\r\n } else {\r\n mailingState.item.email.splice(pos, 1);\r\n }\r\n } if (newEmail[index].status ===0) {\r\n newEmail.splice(index, 1);\r\n }\r\n }\r\n setNewEmail(\r\n newEmail => [...newEmail]\r\n );\r\n }\r\n\r\n const handleChangeEmail = (index, e) => {\r\n let value = e.value\r\n\r\n if (value) {\r\n if (newEmail[index].status ===3 || newEmail[index].status ===2) {\r\n newEmail[index].status = 1;\r\n }\r\n\r\n newEmail[index].email = e.value\r\n } else if (newEmail[index].status !== 0) {\r\n newEmail[index].status = 2;\r\n }\r\n if (newEmail[index].email !==\"\") {\r\n let emailFilter = mailingState.item.email.filter(findEmail => findEmail.email ===newEmail[index].email);\r\n if (emailFilter.length ===0) {\r\n mailingState.item.email.push(newEmail[index]);\r\n }\r\n }\r\n }\r\n\r\n const addNewPhone = () => {\r\n const telefones = newPhone.filter(telefone => telefone.status !== 2);\r\n\r\n if (telefones) {\r\n setNewPhone(newTelefone => [\r\n ...newTelefone,\r\n {\r\n telefone: \"\",\r\n status: 0,\r\n country: countryDefault\r\n }\r\n ])\r\n }\r\n }\r\n\r\n const removePhone = (index) => {\r\n let temp = [...newPhone];\r\n\r\n if (newPhone[index] !==null) {\r\n if (newPhone[index].telefone !==\"\") {\r\n let pos = newPhone.map(function (e) { return e.telefone; }).indexOf(newPhone[index].telefone);\r\n let phoneFilter = newPhone.filter(findPhone => findPhone.telefone ===newPhone[index].telefone)[0];\r\n if (phoneFilter.status !==0) {\r\n mailingState.item.telefone[pos].status = 2;\r\n temp[index].status = 2;\r\n } else {\r\n mailingState.item.telefone.splice(pos, 1);\r\n // temp[index].splice(index, 1);\r\n }\r\n } if (newPhone[index].status ===0) {\r\n temp.splice(index, 1);\r\n }\r\n }\r\n setNewPhone(temp);\r\n }\r\n\r\n const handleChangePhone = (index, e) => {\r\n var numberPattern = /\\d+/g;\r\n let value = e.value\r\n\r\n if (value) {\r\n const formattedValue = value.match(numberPattern).join('');\r\n\r\n if (newPhone[index].telefone !==formattedValue && (newPhone[index].status ===3 || newPhone[index].status ===2)) {\r\n newPhone[index].status = 1;\r\n }\r\n\r\n newPhone[index].telefone = formattedValue;\r\n }\r\n else if (newPhone[index].status !== 0) {\r\n newPhone[index].status = 2;\r\n }\r\n\r\n if (newPhone[index].telefone !==\"\") {\r\n let phoneFilter = mailingState.item.telefone.filter(findPhone => findPhone.telefone ===newPhone[index].telefone);\r\n if (phoneFilter.length ===0) {\r\n mailingState.item.telefone.push(newPhone[index]);\r\n }\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n async function getItems() {\r\n let _countries = await getCountries(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n const currentCountries = countriesJSON.filter(country => {\r\n return _countries.filter(item => item.nomeEn === country.nameEn).length > 0\r\n })\r\n setDataCountries(currentCountries);\r\n setDataFlags(currentCountries)\r\n }\r\n getItems();\r\n\r\n function getRefPhone() {\r\n document.addEventListener(\"mousedown\", handlePhoneRef);\r\n\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handlePhoneRef);\r\n };\r\n };\r\n getRefPhone();\r\n\r\n let promises = loadSystemData();\r\n Promise.all(promises).then(() => {\r\n setPhoto(null);\r\n if (idContact) {\r\n getMailingContactItem(globalState.accessToken, idContact).then(response => {\r\n if (response.ok) {\r\n response.json().then((result) => {\r\n mailingState.setItem(result)\r\n\r\n if (result && result.telefone.length > 0) {\r\n const phone = result.telefone.map(phone => ({\r\n ...phone,\r\n country: countriesJSON.find(country => country.nameEn === phone.country)\r\n }))\r\n setNewPhone(phone);\r\n } else {\r\n setNewPhone([{\r\n telefone: \"\",\r\n status: 0,\r\n country: countryDefault\r\n }]);\r\n }\r\n\r\n if (result && result.email.length > 0) {\r\n setNewEmail(result.email);\r\n } else {\r\n setNewEmail([{\r\n email: \"\",\r\n status: 0\r\n }]);\r\n }\r\n\r\n }).catch(console.error);\r\n }\r\n });\r\n const photoUrl = `${process.env.REACT_APP_API_URL}/_api/MailingContact/GetMailingContactPhoto?token=${globalState.tokenLightWeight}&mailingContactId=${idContact}`;\r\n getMailingContactPhoto(photoUrl, function (response) {\r\n if (response.size)\r\n setPhoto({ name: 'photo', size: response.size, type: '.png', url: photoUrl });\r\n });\r\n }\r\n else {\r\n mailingState.setItem(initialValue);\r\n mailingState.setGroupsSelected([]);\r\n }\r\n });\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n if (!openCountries) {\r\n setDataFlags(dataCountries);\r\n }\r\n }, [openCountries]);\r\n\r\n React.useEffect(() => {\r\n if (ddlMediaTypes) {\r\n ddlMediaTypes.dataSource = [];\r\n ddlMediaTypes.dataSource = mailingState.mediaTypes;\r\n }\r\n if (ddlCountries) {\r\n ddlCountries.dataSource = [];\r\n ddlCountries.dataSource = mailingState.countries;\r\n }\r\n if (ddlStates) {\r\n ddlStates.dataSource = [];\r\n ddlStates.dataSource = mailingState.states;\r\n }\r\n if (ddlCities) {\r\n ddlCities.dataSource = [];\r\n ddlCities.dataSource = mailingState.cities;\r\n }\r\n if (mailingState.item)\r\n changePlaceholder();\r\n\r\n }, [i18n.language]);\r\n\r\n React.useEffect(() => {\r\n if (mailingState.mediaTypes && mailingState.item)\r\n ddlMediaTypes.value = mailingState.item.idtipoMidia;\r\n }, [mailingState.mediaTypes]);\r\n\r\n React.useEffect(() => {\r\n if (mailingState.countries && mailingState.item)\r\n ddlCountries.value = mailingState.item.idpais;\r\n }, [mailingState.countries]);\r\n\r\n React.useEffect(() => {\r\n if (mailingState.states && mailingState.item && mailingState.item.idpais === 6)\r\n ddlStates.value = mailingState.item.idestado;\r\n }, [mailingState.states]);\r\n\r\n React.useEffect(() => {\r\n if (mailingState.cities && mailingState.item && mailingState.item.idpais === 6)\r\n ddlCities.value = mailingState.item.idcidade;\r\n }, [mailingState.cities]);\r\n\r\n React.useEffect(() => {\r\n if (mailingState.item)\r\n if (mailingState.item.grupos)\r\n mailingState.setGroupsSelected(mailingState.item.grupos.map(item => item.id));\r\n }, [mailingState.item])\r\n\r\n React.useEffect(() => {\r\n if (mailingState.item && mailingState.item.email) {\r\n clearError([\"email\"]);\r\n }\r\n }, [mailingState.item]);\r\n\r\n const inputChange = e => {\r\n if (e.event) {\r\n const prop = e.event.currentTarget.type === 'textarea' ? e.event.currentTarget.name : e.event.currentTarget.id;\r\n mailingState.setItem({ ...mailingState.item, [prop]: e.value });\r\n }\r\n }\r\n\r\n const dropdownlistChange = e => {\r\n if (e.element) {\r\n if ([e.element.id] ==='idpais' && e.value !== 6)\r\n mailingState.setItem({ ...mailingState.item, idpais: e.value, idestado: null, idcidade: null });\r\n else\r\n mailingState.setItem({ ...mailingState.item, [e.element.id]: e.value });\r\n }\r\n }\r\n\r\n const handleFormSubmit = e => {\r\n e.preventDefault();\r\n }\r\n\r\n const confirmDelete = () => {\r\n deleteMailingContactPhoto(globalState.accessToken, idContact).then(response => {\r\n if (response.ok) {\r\n deleteMailingContact(globalState.accessToken, idContact).then(response => {\r\n if (response.ok) {\r\n const itemsFiltered = mailingState.contactListItems.filter(contactItem => contactItem.id !==idContact);\r\n mailingState.setContactListItems(itemsFiltered);\r\n setRedirect(true);\r\n }\r\n });\r\n }\r\n })\r\n }\r\n\r\n const changePlaceholder = () => {\r\n txtJournalist.placeholder = t(\"Contact:journalist_placeholder\");\r\n txtMediaOutlet.placeholder = t(\"Contact:media_outlet_placeholder\");\r\n txtAddress.placeholder = t(\"Contact:address_placeholder\");\r\n txtEditoria.placeholder = t(\"Contact:editorial_placeholder\");\r\n txtOccupation.placeholder = t(\"Contact:occupation_placeholder\");\r\n txtOtherInfo.placeholder = t(\"Contact:other_information_placeholder\");\r\n }\r\n\r\n const handleChangeCountry = (country, index) => {\r\n const newSelectedPhone = [...newPhone];\r\n newSelectedPhone[index] = {\r\n ...newSelectedPhone[index],\r\n country: country\r\n }\r\n\r\n if (newSelectedPhone[index].id) {\r\n newSelectedPhone[index].status = 1;\r\n }\r\n setNewPhone(newSelectedPhone);\r\n setOpenCountries(null);\r\n }\r\n\r\n const newCountries = (item) => {\r\n const country = dataCountries.filter(i => i.nameEn === item);\r\n\r\n return country.map(i => i.flag);\r\n }\r\n\r\n const handleChangeFlags = (ev) => {\r\n const newDataFlags = dataCountries.filter(\r\n flags => ev.target.value !== \"\"\r\n ? i18n.language === \"pt\"\r\n ? flags?.namePt.toLowerCase().includes(ev.target.value.toLowerCase())\r\n : flags?.nameEn.toLowerCase().includes(ev.target.value.toLowerCase())\r\n : true\r\n );\r\n\r\n setDataFlags(newDataFlags);\r\n }\r\n\r\n return (\r\n <>\r\n {globalState.accessToken === null ? :\r\n redirect ? :\r\n (mailingState.item && mailingState.mediaTypes && mailingState.countries && mailingState.states && mailingState.cities) &&\r\n <>\r\n \r\n\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    {idContact ? t('Contact:edit_title') : t('Contact:create_title')}

    \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

    {t(\"Contact:contact_information\")}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n txtJournalist = textBox}\r\n name=\"jornalista\"\r\n htmlAttributes={{ maxlength: \"100\" }}\r\n cssClass=\"e-flat\"\r\n placeholder={t(\"Contact:journalist_placeholder\")}\r\n value={mailingState.item ? mailingState.item.jornalista : \"\"}\r\n change={inputChange}\r\n />\r\n
    \r\n
    \r\n \r\n ddlMediaTypes = dropdownlist}\r\n name=\"tipoMidia\"\r\n dataSource={mailingState.mediaTypes}\r\n fields={{ text: (i18n.language) ===\"pt\" ? \"nomePt\" : \"nomeEn\", value: \"id\" }}\r\n cssClass=\"e-flat\"\r\n locale={i18n.language}\r\n placeholder={t(\"Contact:media_type_placeholder\")}\r\n showClearButton={true}\r\n value={mailingState.item ? mailingState.item.idtipoMidia : null}\r\n change={dropdownlistChange}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n txtMediaOutlet = textBox}\r\n name=\"nomeVeiculo\"\r\n htmlAttributes={{ maxlength: \"100\" }}\r\n cssClass=\"e-flat\"\r\n placeholder={t(\"Contact:media_outlet_placeholder\")}\r\n value={mailingState.item ? mailingState.item.nomeVeiculo : \"\"}\r\n change={inputChange}\r\n />\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n {newEmail.filter(email => email.status !== 2) &&\r\n
    \r\n \r\n
    addNewEmail()}\r\n />\r\n
    \r\n }\r\n {newEmail.length > 0 &&\r\n newEmail.map((item, index) => item.status !== 2 && (\r\n
    \r\n triggerValidation('email')}\r\n name=\"email\"\r\n htmlAttributes={{ maxlength: \"100\" }}\r\n cssClass=\"e-flat\"\r\n placeholder={t(\"Contact:email_placeholder\")}\r\n value={mailingState.item.email ? item.email : \"\"}\r\n change={(e) => handleChangeEmail(index, e)}\r\n />\r\n
    removeEmail(index)}\r\n />\r\n
    \r\n ))\r\n }\r\n {errors.email &&\r\n <>\r\n {errors.email.type === \"pattern\" &&\r\n \r\n }\r\n \r\n }\r\n
    \r\n
    \r\n {newPhone.filter(phone => phone.status !== 2) &&\r\n
    \r\n \r\n
    addNewPhone()} />\r\n
    \r\n }\r\n {newPhone?.length > 0 &&\r\n newPhone.map((item, index) => item.status !== 2 && (\r\n
    \r\n\r\n handleChangePhone(index, e)}\r\n promptChar=\" \"\r\n mask={`${item?.country?.dialCode ? item.country.dialCode : '+'}[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]`}\r\n />\r\n\r\n
    removePhone(index)}\r\n />\r\n\r\n setOpenCountries(index)}>\r\n \r\n \r\n
    \r\n\r\n {openCountries === index &&\r\n
    \r\n \r\n {dataFlags.map((country, i) => (\r\n handleChangeCountry(country, index)}\r\n >\r\n {i18n.language\r\n

    {country && `${i18n.language === \"pt\" ? country?.namePt : country?.nameEn} ${country?.dialCode}`}

    \r\n
    \r\n ))}\r\n
    \r\n }\r\n
    \r\n ))}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n ddlCountries = dropdownlist}\r\n dataSource={mailingState.countries}\r\n fields={{ text: (i18n.language) ===\"pt\" ? \"nomePt\" : \"nomeEn\", value: \"id\" }}\r\n cssClass=\"e-flat\"\r\n locale={i18n.language}\r\n placeholder={t(\"Contact:country_placeholder\")}\r\n showClearButton={true}\r\n value={mailingState.item ? mailingState.item.idpais : null}\r\n change={dropdownlistChange}\r\n allowFiltering={true}\r\n />\r\n
    \r\n {(mailingState.item.idpais === 6) ? (\r\n <>\r\n
    \r\n \r\n ddlStates = dropdownlist}\r\n dataSource={mailingState.states}\r\n fields={{ text: (i18n.language) ===\"pt\" ? \"nomePt\" : \"nomeEn\", value: \"id\" }}\r\n cssClass=\"e-flat\"\r\n locale={i18n.language}\r\n placeholder={t(\"Contact:state_placeholder\")}\r\n showClearButton={true}\r\n value={mailingState.item ? mailingState.item.idestado : null}\r\n change={dropdownlistChange}\r\n />\r\n
    \r\n
    \r\n \r\n ddlCities = dropdownlist}\r\n readOnly={mailingState.item && !mailingState.item.idestado}\r\n dataSource={mailingState.cities.filter(city => mailingState.item && city.idEstado === mailingState.item.idestado)}\r\n fields={{ text: (i18n.language) ===\"pt\" ? \"nomePt\" : \"nomeEn\", value: \"id\" }}\r\n cssClass=\"e-flat\"\r\n locale={i18n.language}\r\n placeholder={t(\"Contact:city_placeholder\")}\r\n showClearButton={true}\r\n value={mailingState.item ? mailingState.item.idcidade : null}\r\n change={dropdownlistChange}\r\n />\r\n
    \r\n \r\n ) : (\r\n <>\r\n\r\n
    \r\n \r\n txtEditoria = textBox}\r\n name=\"editoria\"\r\n htmlAttributes={{ maxlength: \"500\" }}\r\n cssClass=\"e-flat\"\r\n placeholder={t(\"Contact:editorial_placeholder\")}\r\n value={mailingState.item ? mailingState.item.editoria : \"\"}\r\n change={inputChange}\r\n />\r\n
    \r\n
    \r\n \r\n txtOccupation = textBox}\r\n name=\"cargo\"\r\n htmlAttributes={{ maxlength: \"120\" }}\r\n cssClass=\"e-flat\"\r\n placeholder={t(\"Contact:occupation_placeholder\")}\r\n value={mailingState.item ? mailingState.item.cargo : \"\"}\r\n change={inputChange}\r\n />\r\n
    \r\n \r\n )\r\n }\r\n
    \r\n {(mailingState.item.idpais === 6) &&
    \r\n
    \r\n \r\n txtEditoria = textBox}\r\n name=\"editoria\"\r\n htmlAttributes={{ maxlength: \"500\" }}\r\n cssClass=\"e-flat\"\r\n placeholder={t(\"Contact:editorial_placeholder\")}\r\n value={mailingState.item ? mailingState.item.editoria : \"\"}\r\n change={inputChange}\r\n />\r\n
    \r\n
    \r\n \r\n txtOccupation = textBox}\r\n name=\"cargo\"\r\n htmlAttributes={{ maxlength: \"120\" }}\r\n cssClass=\"e-flat\"\r\n placeholder={t(\"Contact:occupation_placeholder\")}\r\n value={mailingState.item ? mailingState.item.cargo : \"\"}\r\n change={inputChange}\r\n />\r\n
    \r\n
    }\r\n
    \r\n
    \r\n \r\n txtAddress = textBox}\r\n name=\"endereco\"\r\n htmlAttributes={{ maxlength: \"250\" }}\r\n cssClass=\"e-flat\"\r\n placeholder={t(\"Contact:address_placeholder\")}\r\n value={mailingState.item ? mailingState.item.endereco : \"\"}\r\n change={inputChange}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n txtOtherInfo = textBox}\r\n name=\"outrasInformacoes\"\r\n multiline\r\n htmlAttributes={{ maxlength: \"1100\", rows: \"20\" }}\r\n cssClass=\"e-flat\"\r\n placeholder={t(\"Contact:other_information_placeholder\")}\r\n value={mailingState.item ? mailingState.item.outrasInformacoes : \"\"}\r\n change={inputChange}\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

    {t(\"Contact:groups\")}

    \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 \r\n \r\n }\r\n \r\n )\r\n}\r\n","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { GlobalStateContext } from \"../../general/GlobalState\";\r\nimport { MailingContactsContext } from \"./MailingContactsContext\";\r\nimport { ProfilePhotoContext } from \"../../utilities/ProfilePhoto/ProfilePhotoContext\"\r\nimport { Container, Row } from \"reactstrap\";\r\nimport { Actions } from \"../../utilities/Actions\";\r\nimport { TextBoxComponent, MaskedTextBoxComponent, FormValidator } from \"@syncfusion/ej2-react-inputs\";\r\nimport { DialogComponent } from \"@syncfusion/ej2-react-popups\";\r\nimport { ProfilePhotoComponent } from \"../../utilities/ProfilePhoto/ProfilePhotoComponent\"\r\nimport { getMailingContactItem, addOrUpdateContactItem, deleteMailingContact, deleteMailingContactPhoto, getMailingContactPhoto } from \"../../../services/MailingGeneralSVC\";\r\nimport { getCountries } from \"../../../services/SystemSVC\";\r\nimport './contacts.css';\r\nimport PermissionRedirect from \"../../utilities/PermissionRedirect/PermissionRedirect\";\r\nimport { hasPermissions } from \"../../utilities/Utils\";\r\nimport { GroupsBoxGeneral } from \"../../Shared/GroupsBoxGeneral\";\r\nimport { RadioButtonComponent } from '@syncfusion/ej2-react-buttons';\r\nimport { useForm } from \"react-hook-form\";\r\nimport { countriesJSON } from '../../../resources/countries.js';\r\nexport const GeneralContactsItem = (props) => {\r\n const { register, triggerValidation, errors, clearError } = useForm();\r\n\r\n let idContact = props.match.params.id;\r\n let formObject;\r\n let txtJournalist;\r\n let txtMediaOutlet;\r\n let txtEmail;\r\n let txtAddress;\r\n let txtEditoria;\r\n let txtOccupation;\r\n let txtOtherInfo;\r\n\r\n const { t } = useTranslation();\r\n\r\n const initialValue = {\r\n id: null,\r\n nome: \"\",\r\n tipoPublico: null,\r\n nomeEmpresa: \"\",\r\n cargo: \"\",\r\n grupos: [],\r\n fotoB64: \"\",\r\n email: [],\r\n telefone: [],\r\n importado: true,\r\n }\r\n\r\n const countryDefault = countriesJSON.find(i => i18n.language === \"pt\" ? i.namePt === 'Brasil' : i.nameEn === 'Brazil');\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const mailingState = React.useContext(MailingContactsContext);\r\n const [photo, setPhoto] = React.useContext(ProfilePhotoContext);\r\n const [redirect, setRedirect] = React.useState(false);\r\n const [dialogDelete, setDialogDelete] = React.useState(false);\r\n const [openCountries, setOpenCountries] = React.useState(null);\r\n const [dataCountries, setDataCountries] = React.useState([]);\r\n const [disabledBtn, setDisabledBtn] = React.useState(false);\r\n const [dataFlags, setDataFlags] = React.useState([]);\r\n\r\n const [newPhone, setNewPhone] = React.useState(\r\n () => {\r\n if (mailingState?.item?.telefone.length > 0) {\r\n return mailingState.item.telefone;\r\n }\r\n return [{\r\n telefone: \"\",\r\n status: 0,\r\n country: countryDefault\r\n }]\r\n }\r\n );\r\n\r\n const [newEmail, setNewEmail] = React.useState(\r\n () => {\r\n if (mailingState?.item?.email.length > 0) {\r\n return mailingState.item.email;\r\n }\r\n return [{\r\n email: \"\",\r\n status: 0\r\n }]\r\n }\r\n );\r\n\r\n const phoneRef = React.useRef();\r\n\r\n const handlePhoneRef = (ref) => {\r\n if (phoneRef?.current?.contains(ref.target)) {\r\n return;\r\n }\r\n setOpenCountries(null);\r\n }\r\n\r\n const _controls = {\r\n class: \"contact\",\r\n savePrimary: false,\r\n excludePrimary: true,\r\n customPermissions: idContact ? hasPermissions(62, \"Edit\", globalState) : hasPermissions(62, \"Create\", globalState),\r\n urlView: \"\",\r\n urlPreview: \"\",\r\n area: \"Contatos Internos\",\r\n customPermissionsDelete: idContact && hasPermissions(62, \"Delete\", globalState),\r\n urlDuplicate: \"\",\r\n urlSave: () => {\r\n if (formObject.validate()) {\r\n setDisabledBtn(true);\r\n const data = mailingState.item;\r\n data.fotoB64 = photo && photo.b64 ? photo.b64.split(',')[1] : null;\r\n let arrGroups = [];\r\n mailingState.generalGroupsSelected.map(item => {\r\n arrGroups.push({ id: item });\r\n })\r\n data.grupos = arrGroups;\r\n data.telefone = newPhone.map(phone => ({\r\n ...phone,\r\n country: phone.country.nameEn\r\n }))\r\n if (photo && photo.delete) {\r\n deleteMailingContactPhoto(globalState.accessToken, idContact).then(response => {\r\n if (response.ok) {\r\n addOrUpdateContactItem(globalState.accessToken, data).then(response => {\r\n setRedirect(response.ok)\r\n setDisabledBtn(false);\r\n }).catch(() => {\r\n setDisabledBtn(false);\r\n });\r\n }\r\n setDisabledBtn(false);\r\n }).catch(() => {\r\n setDisabledBtn(false);\r\n });\r\n }\r\n else {\r\n addOrUpdateContactItem(globalState.accessToken, data).then(response => {\r\n setRedirect(response.ok)\r\n setDisabledBtn(false);\r\n }).catch(() => {\r\n setDisabledBtn(false);\r\n });\r\n }\r\n }\r\n },\r\n urlSend: \"\",\r\n urlCancel: () => setRedirect(true),\r\n urlDelete: idContact ? () => setDialogDelete(true) : \"\"\r\n };\r\n\r\n const addNewEmail = () => {\r\n const emails = newEmail.filter(email => email.status !== 2);\r\n\r\n if (emails) {\r\n setNewEmail(newEmail => [...newEmail, { email: \"\", status: 0 }])\r\n }\r\n }\r\n\r\n const removeEmail = (index) => {\r\n if (newEmail[index] !==null) {\r\n if (newEmail[index].email !==\"\") {\r\n let pos = mailingState.item.email.map(function (e) { return e.telefone; }).indexOf(newEmail[index].email);\r\n let phoneFilter = mailingState.item.email.filter(findEmail => findEmail.email ===newEmail[index].email)[0];\r\n if (phoneFilter.status !==0) {\r\n mailingState.item.email[pos].status = 2;\r\n } else {\r\n mailingState.item.email.splice(pos, 1);\r\n }\r\n } if (newEmail[index].status ===0) {\r\n newEmail.splice(index, 1);\r\n }\r\n }\r\n setNewEmail(\r\n newEmail => [...newEmail]\r\n );\r\n }\r\n\r\n const handleChangeEmail = (index, e) => {\r\n let value = e.value\r\n\r\n if (value) {\r\n if (newEmail[index].status ===3 || newEmail[index].status ===2) {\r\n newEmail[index].status = 1;\r\n }\r\n\r\n newEmail[index].email = e.value\r\n } else if (newEmail[index].status !== 0) {\r\n newEmail[index].status = 2;\r\n }\r\n if (newEmail[index].email !==\"\") {\r\n let emailFilter = mailingState.item.email.filter(findEmail => findEmail.email ===newEmail[index].email);\r\n if (emailFilter.length ===0) {\r\n mailingState.item.email.push(newEmail[index]);\r\n }\r\n }\r\n }\r\n\r\n const addNewPhone = () => {\r\n const telefones = newPhone.filter(telefone => telefone.status !== 2);\r\n\r\n if (telefones) {\r\n setNewPhone(newPhone => [\r\n ...newPhone,\r\n {\r\n telefone: \"\",\r\n status: 0,\r\n country: countryDefault,\r\n }\r\n ])\r\n }\r\n }\r\n\r\n const removePhone = (index) => {\r\n let temp = [...newPhone];\r\n\r\n if (newPhone[index] !==null) {\r\n if (newPhone[index].telefone !==\"\") {\r\n let pos = newPhone.map(function (e) { return e.telefone; }).indexOf(newPhone[index].telefone);\r\n let phoneFilter = newPhone.filter(findPhone => findPhone.telefone ===newPhone[index].telefone)[0];\r\n if (phoneFilter.status !==0) {\r\n mailingState.item.telefone[pos].status = 2;\r\n temp[index].status = 2;\r\n } else {\r\n mailingState.item.telefone.splice(pos, 1);\r\n }\r\n } if (newPhone[index].status ===0) {\r\n temp.splice(index, 1);\r\n }\r\n }\r\n setNewPhone(temp);\r\n }\r\n\r\n const handleChangePhone = (index, e) => {\r\n let numberPattern = /\\d+/g;\r\n\r\n let value = e.value;\r\n\r\n if (value) {\r\n let formattedValue = value.match(numberPattern).join('')\r\n if (newPhone[index].telefone !==formattedValue && (newPhone[index].status ===3 || newPhone[index].status ===2)) {\r\n newPhone[index].status = 1;\r\n }\r\n\r\n newPhone[index].telefone = formattedValue;\r\n }\r\n else if (newPhone[index].status !== 0) {\r\n newPhone[index].status = 2;\r\n }\r\n\r\n if (newPhone[index].telefone !==\"\") {\r\n let phoneFilter = mailingState.item.telefone.filter(findPhone => findPhone.telefone ===newPhone[index].telefone);\r\n if (phoneFilter.length ===0) {\r\n mailingState.item.telefone.push(newPhone[index]);\r\n }\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n const formValidator = {\r\n rules: {\r\n 'nome': {\r\n required: [true, t('Validation:required')]\r\n },\r\n 'tipoPublico': {\r\n required: [true, t('Validation:required')],\r\n },\r\n 'nomeEmpresa': {\r\n required: [true, t('Validation:required')],\r\n },\r\n 'cargo': {\r\n required: [true, t('Validation:required')]\r\n },\r\n 'email': {\r\n required: [true, t('Validation:required')]\r\n }\r\n },\r\n customPlacement: (inputElement, errorElement) => {\r\n inputElement.parentElement.parentElement.appendChild(errorElement);\r\n }\r\n };\r\n\r\n formObject = new FormValidator('#formMailingContact', formValidator);\r\n });\r\n\r\n React.useEffect(() => {\r\n setPhoto(null);\r\n\r\n async function getItems() {\r\n let _countries = await getCountries(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n const currentCountries = countriesJSON.filter(country => {\r\n return _countries.filter(item => item.nomeEn === country.nameEn).length > 0\r\n })\r\n setDataCountries(currentCountries);\r\n setDataFlags(currentCountries)\r\n }\r\n getItems();\r\n\r\n function getRefPhone() {\r\n document.addEventListener(\"mousedown\", handlePhoneRef);\r\n\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handlePhoneRef);\r\n };\r\n };\r\n getRefPhone();\r\n\r\n if (idContact) {\r\n getMailingContactItem(globalState.accessToken, idContact).then(response => {\r\n if (response.ok)\r\n response.json().then((result) => {\r\n mailingState.setItem(result)\r\n\r\n if (result && result.telefone.length > 0) {\r\n const phone = result.telefone.map(phone => ({\r\n ...phone,\r\n country: countriesJSON.find(country => country.nameEn === phone.country)\r\n }))\r\n setNewPhone(phone);\r\n } else {\r\n setNewPhone([{\r\n telefone: \"\",\r\n status: 0,\r\n country: countryDefault,\r\n }]);\r\n }\r\n\r\n if (result && result.email.length > 0) {\r\n setNewEmail(result.email);\r\n } else {\r\n setNewEmail([{\r\n email: \"\",\r\n status: 0\r\n }]);\r\n }\r\n\r\n }).catch(console.error);\r\n });\r\n const photoUrl = `${process.env.REACT_APP_API_URL}/_api/MailingContactGeneral/GetMailingContactPhoto?token=${globalState.tokenLightWeight}&mailingContactId=${idContact}`;\r\n getMailingContactPhoto(photoUrl, function (response) {\r\n if (response.size)\r\n setPhoto({ name: 'photo', size: response.size, type: '.png', url: photoUrl });\r\n });\r\n }\r\n else {\r\n mailingState.setItem(initialValue);\r\n mailingState.setGroupsSelected([]);\r\n }\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n if (!openCountries) {\r\n setDataFlags(dataCountries);\r\n }\r\n }, [openCountries]);\r\n\r\n React.useEffect(() => {\r\n if (mailingState.item)\r\n if (mailingState.item.grupos)\r\n mailingState.setGroupsSelected(mailingState.item.grupos.map(item => item.id));\r\n }, [mailingState.item])\r\n\r\n React.useEffect(() => {\r\n if (mailingState.item && mailingState.item.email) {\r\n clearError([\"email\"]);\r\n }\r\n }, [mailingState.item]);\r\n\r\n const inputChange = e => {\r\n if (e.event) {\r\n const prop = (e.event.currentTarget.type === 'textarea' || e.event.currentTarget.type === 'radio') ? e.event.currentTarget.name : e.event.currentTarget.id;\r\n mailingState.setItem({ ...mailingState.item, [prop]: e.value });\r\n }\r\n }\r\n\r\n const dropdownlistChange = e => {\r\n if (e.element) {\r\n if ([e.element.id] ==='idpais' && e.value !== 6)\r\n mailingState.setItem({ ...mailingState.item, idpais: e.value, idestado: null, idcidade: null });\r\n else\r\n mailingState.setItem({ ...mailingState.item, [e.element.id]: e.value });\r\n }\r\n }\r\n\r\n const handleFormSubmit = e => {\r\n e.preventDefault();\r\n }\r\n\r\n const confirmDelete = () => {\r\n deleteMailingContactPhoto(globalState.accessToken, idContact).then(response => {\r\n if (response.ok) {\r\n deleteMailingContact(globalState.accessToken, idContact).then(response => {\r\n if (response.ok) {\r\n const itemsFiltered = mailingState.contactListItems.filter(contactItem => contactItem.id !==idContact);\r\n mailingState.setContactListItems(itemsFiltered);\r\n setRedirect(true);\r\n }\r\n });\r\n }\r\n })\r\n }\r\n\r\n const changePlaceholder = () => {\r\n txtJournalist.placeholder = t(\"Contact:journalist_placeholder\");\r\n txtMediaOutlet.placeholder = t(\"Contact:media_outlet_placeholder\");\r\n txtEmail.placeholder = t(\"Contact:email_placeholder\");\r\n txtAddress.placeholder = t(\"Contact:address_placeholder\");\r\n txtEditoria.placeholder = t(\"Contact:editorial_placeholder\");\r\n txtOccupation.placeholder = t(\"Contact:occupation_placeholder\");\r\n txtOtherInfo.placeholder = t(\"Contact:other_information_placeholder\");\r\n }\r\n\r\n\r\n const handleChangeCountry = (country, index) => {\r\n const newSelectedPhone = [...newPhone];\r\n newSelectedPhone[index] = {\r\n ...newSelectedPhone[index],\r\n country: country\r\n }\r\n\r\n if (newSelectedPhone[index].id) {\r\n newSelectedPhone[index].status = 1;\r\n }\r\n setNewPhone(newSelectedPhone);\r\n setOpenCountries(null);\r\n }\r\n\r\n const newCountries = (item) => {\r\n const country = dataCountries.filter(i => i.nameEn === item);\r\n\r\n return country.map(i => i.flag);\r\n }\r\n\r\n const handleChangeFlags = (ev) => {\r\n const newDataFlags = dataCountries.filter(\r\n flags => ev.target.value !== \"\"\r\n ? i18n.language === \"pt\"\r\n ? flags?.namePt.toLowerCase().includes(ev.target.value.toLowerCase())\r\n : flags?.nameEn.toLowerCase().includes(ev.target.value.toLowerCase())\r\n : true\r\n );\r\n\r\n setDataFlags(newDataFlags);\r\n }\r\n\r\n return (\r\n <>\r\n {globalState.accessToken === null ? :\r\n redirect ? :\r\n <>\r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    {idContact ? t('Contact:edit_title') : t('Contact:create_title')}

    \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

    {t(\"Contact:contact_information\")}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n txtJournalist = textBox}\r\n name=\"nome\"\r\n htmlAttributes={{ maxlength: \"100\" }}\r\n cssClass=\"e-flat\"\r\n placeholder={t(\"Contact:journalist_placeholder\")}\r\n value={mailingState.item ? mailingState.item.nome : \"\"}\r\n change={inputChange}\r\n />\r\n
    \r\n
    \r\n \r\n txtJournalist = textBox}\r\n name=\"nomeEmpresa\"\r\n htmlAttributes={{ maxlength: \"100\" }}\r\n cssClass=\"e-flat\"\r\n placeholder={t(\"GeneralContacts:company_name_placeholder\")}\r\n value={mailingState.item ? mailingState.item.nomeEmpresa : \"\"}\r\n change={inputChange}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n txtMediaOutlet = textBox}\r\n name=\"cargo\"\r\n htmlAttributes={{ maxlength: \"100\" }}\r\n cssClass=\"e-flat\"\r\n placeholder={t(\"Contact:occupation_placeholder\")}\r\n value={mailingState.item ? mailingState.item.cargo : \"\"}\r\n change={inputChange}\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 {newEmail.filter(email => email.status !== 2) &&\r\n
    \r\n \r\n
    addNewEmail()}\r\n />\r\n
    \r\n }\r\n {newEmail.length > 0 &&\r\n newEmail.map((item, index) => item.status !== 2 && (\r\n
    \r\n triggerValidation('email')}\r\n name=\"email\"\r\n htmlAttributes={{ maxlength: \"100\" }}\r\n cssClass=\"e-flat\"\r\n placeholder={t(\"Contact:email_placeholder\")}\r\n value={mailingState?.item?.email ? item.email : \"\"}\r\n change={(e) => handleChangeEmail(index, e)}\r\n />\r\n
    removeEmail(index)}\r\n />\r\n
    \r\n ))\r\n }\r\n {errors.email &&\r\n <>\r\n {errors.email.type === \"pattern\" &&\r\n \r\n }\r\n \r\n }\r\n
    \r\n
    \r\n {newPhone.filter(phone => phone.status !== 2) &&\r\n
    \r\n \r\n
    addNewPhone()} />\r\n
    \r\n }\r\n {newPhone?.length > 0 &&\r\n newPhone.map((item, index) => {\r\n return item.status !== 2 && (\r\n
    \r\n handleChangePhone(index, e)}\r\n promptChar=\" \"\r\n mask={`${item?.country?.dialCode ? item.country.dialCode : '+'}[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]`}\r\n />\r\n
    removePhone(index)}\r\n />\r\n
    setOpenCountries(index)}>\r\n {i18n.language\r\n \r\n
    \r\n {openCountries === index &&\r\n
    \r\n \r\n {dataFlags.map((country, i) => (\r\n handleChangeCountry(country, index)}\r\n >\r\n {i18n.language\r\n

    {`${i18n.language ===\"pt\" ? country?.namePt : country?.nameEn} ${country?.dialCode}`}

    \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

    {t(\"Contact:groups\")}

    \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 \r\n \r\n }\r\n \r\n )\r\n}\r\n","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { GlobalStateContext } from \"../../general/GlobalState\";\r\nimport { GridComponent, ColumnsDirective, ColumnDirective, ForeignKey, Filter, Inject, VirtualScroll, Sort, ContextMenu, Page, Resize, Edit } from '@syncfusion/ej2-react-grids';\r\nimport { AutoCompleteComponent, DropDownListComponent } from '@syncfusion/ej2-react-dropdowns';\r\nimport { createSpinner, hideSpinner, setSpinner, showSpinner } from '@syncfusion/ej2-react-popups';\r\nimport { TextBoxComponent } from '@syncfusion/ej2-react-inputs';\r\nimport { ButtonComponent } from '@syncfusion/ej2-react-buttons';\r\nimport { getMailingGroupItems } from \"../../../services/MailingSVC\";\r\nimport { getCountries, getRegional } from \"../../../services/SystemSVC\";\r\nimport { hasPermissions } from \"../../utilities/Utils\";\r\nimport { useModal } from \"../../../hooks/Modal\";\r\n\r\n// import '../releases/releases.css';\r\n\r\n\r\nexport const GroupsList = () => {\r\n let gridInstance;\r\n\r\n const { t } = useTranslation();\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [isVisible, setIsVisible] = React.useState(false);\r\n const [countriesPt, setCountriesPt] = React.useState([]);\r\n const [countriesEn, setCountriesEn] = React.useState([]);\r\n const [regionalPt, setRegionalPt] = React.useState([]);\r\n const [regionalEn, setRegionalEn] = React.useState([]);\r\n const [loading, setLoading] = React.useState(true);\r\n const [groups, setGroups] = React.useState();\r\n const [groupSelected, setGroupSelected] = React.useState();\r\n const [filter, setFilter] = React.useState({});\r\n\r\n const { buildDialogMessage } = useModal();\r\n\r\n React.useEffect(() => {\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n getCountries(globalState.accessToken).then(response => {\r\n if (response.ok)\r\n response.json().then(resolve);\r\n else\r\n reject();\r\n });\r\n }),\r\n new Promise((resolve, reject) => {\r\n getRegional(globalState.accessToken).then(response => {\r\n if (response.ok)\r\n response.json().then(resolve);\r\n else\r\n reject();\r\n });\r\n })\r\n ];\r\n\r\n Promise.all(promises).then(results => {\r\n console.log(results);\r\n const countries = results[0];\r\n const regional = results[1];\r\n\r\n if (countries)\r\n loadCountries(countries);\r\n if (regional)\r\n loadRegional(regional);\r\n\r\n getMailingGroupItems(globalState.accessToken).then(response => {\r\n if (response.ok) {\r\n response.json().then(results => {\r\n let arrGroups = [];\r\n results.map(item => {\r\n const country = countries.find(_item => _item.id === item.idpais);\r\n if (country) {\r\n item.paisPt = country.nomePt;\r\n item.paisEn = country.nomeEn;\r\n }\r\n const regionalItem = regional.find(_item => _item.id === item.idregional);\r\n if (regionalItem) {\r\n item.regionalPt = regionalItem.nomePt;\r\n item.regionalEn = regionalItem.nomeEn;\r\n }\r\n arrGroups.push(item)\r\n });\r\n setGroups(arrGroups);\r\n });\r\n }\r\n });\r\n });\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n if (loading) {\r\n createSpinner({ target: document.getElementById('loadGroupList') });\r\n showSpinner(document.getElementById('loadGroupList'));\r\n setSpinner({ type: 'Bootstrap' });\r\n }\r\n }, [loading]);\r\n\r\n React.useEffect(() => {\r\n const elemSpinner = document.getElementById('loadGroupList');\r\n if (groups && elemSpinner) {\r\n hideSpinner(elemSpinner);\r\n setLoading(false);\r\n }\r\n }, [groups]);\r\n\r\n const loadCountries = (items) => {\r\n let countriesPt = [];\r\n let countriesEn = [];\r\n items.map(item => {\r\n countriesPt.push({ id: item.id, nome: item.nomePt });\r\n countriesEn.push({ id: item.id, nome: item.nomeEn });\r\n });\r\n setCountriesPt(countriesPt);\r\n setCountriesEn(countriesEn);\r\n }\r\n\r\n const loadRegional = (items) => {\r\n let regionalPt = [];\r\n let regionalEn = [];\r\n items.map(item => {\r\n regionalPt.push({ id: item.id, nome: item.nomePt });\r\n regionalEn.push({ id: item.id, nome: item.nomeEn });\r\n });\r\n setRegionalPt(regionalPt);\r\n setRegionalEn(regionalEn);\r\n }\r\n\r\n const autocompleteChange = e => {\r\n setFilter({ ...filter, groupId: e.itemData ? e.itemData.id : null });\r\n }\r\n const dropdownlistChange = e => {\r\n setFilter({ ...filter, [e.element.id]: e.value });\r\n }\r\n\r\n const gridRowSelected = e => {\r\n setGroupSelected(e.data.id);\r\n }\r\n\r\n const filterGrid = () => {\r\n setIsVisible(false);\r\n if (groups.length) {\r\n let dataFiltered = [...groups];\r\n if (filter.groupId)\r\n dataFiltered = dataFiltered.filter(item => item.id ===filter.groupId);\r\n if (filter.countryId)\r\n dataFiltered = dataFiltered.filter(item => item.idpais ===filter.countryId);\r\n if (filter.regionalId)\r\n dataFiltered = dataFiltered.filter(item => item.idregional ===filter.regionalId);\r\n\r\n gridInstance.dataSource = dataFiltered;\r\n }\r\n }\r\n\r\n const nameTemplate = (args) => {\r\n return (\r\n <>\r\n {args.nome}\r\n \r\n );\r\n }\r\n\r\n React.useEffect(() => {\r\n if (gridInstance)\r\n gridInstance.refresh();\r\n }, [i18n.language]);\r\n\r\n return (\r\n groupSelected ? :\r\n loading ?
    :\r\n <>\r\n
    \r\n
    \r\n
    \r\n \r\n

    {t('Groups:search_text')}

    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {!isVisible &&\r\n
    \r\n setIsVisible(!isVisible)}>\r\n \r\n {t('Groups:filters')}\r\n \r\n
    \r\n }\r\n {isVisible &&\r\n
    \r\n setIsVisible(!isVisible)}>\r\n \r\n {t('Groups:filters')}\r\n \r\n
    \r\n }\r\n
    \r\n \r\n {t('Groups:search')}\r\n \r\n
    \r\n
    \r\n
    \r\n {isVisible &&\r\n
    \r\n \r\n \r\n
    \r\n }\r\n
    \r\n
    \r\n gridInstance = gridComponent}\r\n dataSource={groups}\r\n filterSettings={{ type: 'Menu' }}\r\n allowFiltering={false}\r\n allowPaging={true}\r\n allowSorting={true}\r\n rowSelected={gridRowSelected}\r\n locale={i18n.language}>\r\n \r\n nameTemplate(args)}\r\n headerText={t('Groups:name')}\r\n width='200'>\r\n \r\n filterTemplate(i18n.language ===\"pt\" ? item.nomePaisPT : item.nomePaisEN)}\r\n width='80'>\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","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { GlobalStateContext } from \"../../general/GlobalState\";\r\nimport { Container, Row, Col } from \"reactstrap\";\r\nimport { Actions } from \"../../utilities/Actions\";\r\nimport { TextBoxComponent, FormValidator } from \"@syncfusion/ej2-react-inputs\";\r\nimport { AutoCompleteComponent, DropDownListComponent, MultiSelectComponent } from \"@syncfusion/ej2-react-dropdowns\";\r\nimport { ChipListComponent } from '@syncfusion/ej2-react-buttons';\r\nimport { createSpinner, hideSpinner, setSpinner, showSpinner, DialogComponent } from '@syncfusion/ej2-react-popups';\r\nimport { DataManager, Query, ODataV4Adaptor, Predicate } from '@syncfusion/ej2-data';\r\nimport './groups.css';\r\nimport { Export } from \"../../utilities/Export\";\r\nimport { RadioButtonComponent } from \"@syncfusion/ej2-react-buttons\";\r\nimport { addOrUpdateGroupItem, getMailingGroupItem, deleteMailingGroupItem, exportMailingGroupContacts } from \"../../../services/MailingSVC\";\r\nimport { getCountries, getRegional } from \"../../../services/SystemSVC\";\r\nimport PermissionRedirect from \"../../utilities/PermissionRedirect/PermissionRedirect\";\r\nimport { hasPermissions } from \"../../utilities/Utils\";\r\n\r\nexport const GroupsItem = (props) => {\r\n let txtGroupNameRef;\r\n let autocompleteRef;\r\n let formRef;\r\n let idGroup = props.match.params.id;\r\n\r\n const { t } = useTranslation();\r\n const initialValue = {\r\n nome: \"\",\r\n idpais: 6,\r\n idregional: null,\r\n conjunto: null,\r\n membrosGrupo: null,\r\n gruposConjunto: null\r\n }\r\n\r\n const initialValueSteps = {\r\n stepCountriesPt: false,\r\n stepCountriesEn: false,\r\n stepRegionalPt: false,\r\n stepRegionalEn: false,\r\n stepGroupItem: !idGroup\r\n }\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [redirect, setRedirect] = React.useState(false);\r\n const [countriesPt, setCountriesPt] = React.useState();\r\n const [countriesEn, setCountriesEn] = React.useState();\r\n const [regionsPt, setRegionsPt] = React.useState();\r\n const [regionsEn, setRegionsEn] = React.useState();\r\n const [showMembersSelect, setShowMembersSelect] = React.useState(null);\r\n const [itemsSelected, setItemsSelected] = React.useState([]);\r\n const [groupItem, setGroupItem] = React.useState(initialValue);\r\n const [loading, setLoading] = React.useState(true);\r\n const [steps, setSteps] = React.useState(initialValueSteps);\r\n const [dialogDelete, setDialogDelete] = React.useState(false);\r\n const [disabledBtn, setDisabledBtn] = React.useState(false);\r\n\r\n const _controls = {\r\n class: \"group\",\r\n savePrimary: false,\r\n excludePrimary: true,\r\n customPermissions: idGroup ? hasPermissions(11, \"Edit\", globalState) : hasPermissions(11, \"Create\", globalState),\r\n urlView: \"\",\r\n urlPreview: \"\",\r\n area: \"Grupos Jornalistas\",\r\n customPermissionsDelete: idGroup && hasPermissions(11, \"Delete\", globalState),\r\n urlDuplicate: \"\",\r\n urlSave: () => {\r\n if (formRef.validate()) {\r\n setDisabledBtn(true);\r\n let data = groupItem;\r\n if (showMembersSelect) {\r\n data.conjunto = false;\r\n data.membrosGrupo = itemsSelected;\r\n }\r\n else {\r\n data.conjunto = true;\r\n data.gruposConjunto = itemsSelected;\r\n }\r\n addOrUpdateGroupItem(globalState.accessToken, data).then(response => {\r\n setRedirect(response.ok)\r\n setDisabledBtn(false);\r\n }).catch(() => {\r\n setDisabledBtn(false);\r\n });\r\n }\r\n },\r\n urlSend: \"\",\r\n urlCancel: () => setRedirect(true),\r\n urlDelete: idGroup ? () => setDialogDelete(true) : \"\"\r\n };\r\n\r\n const _export = {\r\n pdf: \"\",\r\n doc: \"\",\r\n excel: idGroup ? () => exportGroupContacts() : \"\"\r\n }\r\n\r\n const dataManager = new DataManager({\r\n url: showMembersSelect ? `${process.env.REACT_APP_API_URL}/_api/MailingContact/GetMailingContactItems?$select=id,jornalista`\r\n : `${process.env.REACT_APP_API_URL}/_api/MailingGroup/GetMailingGroupItems?$select=id,nome`,\r\n adaptor: new ODataV4Adaptor,\r\n crossDomain: true,\r\n headers: [{ 'Authorization': `Bearer ${globalState.accessToken}` }],\r\n });\r\n\r\n React.useEffect(() => {\r\n const formValidator = {\r\n rules: {\r\n 'nome': {\r\n required: [true, t('Validation:required')]\r\n },\r\n 'idpais': {\r\n required: [true, t('Validation:required')]\r\n }\r\n },\r\n customPlacement: (inputElement, errorElement) => {\r\n inputElement.parentElement.parentElement.appendChild(errorElement);\r\n }\r\n };\r\n formRef = new FormValidator('#formMailingGroup', formValidator);\r\n });\r\n\r\n React.useEffect(() => {\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n getCountries(globalState.accessToken).then(response => {\r\n if (response.ok) {\r\n response.json().then(items => {\r\n let arrPt = [];\r\n let arrEn = [];\r\n items.map(item => {\r\n arrPt.push({ id: item.id, nome: item.nomePt });\r\n arrEn.push({ id: item.id, nome: item.nomeEn });\r\n });\r\n setCountriesPt(arrPt);\r\n setCountriesEn(arrEn);\r\n resolve();\r\n });\r\n }\r\n else\r\n reject();\r\n });\r\n\r\n }),\r\n new Promise((resolve, reject) => {\r\n getRegional(globalState.accessToken).then(response => {\r\n if (response.ok) {\r\n response.json().then(items => {\r\n let arrPt = [];\r\n let arrEn = [];\r\n items.map(item => {\r\n arrPt.push({ id: item.id, nome: item.nomePt });\r\n arrEn.push({ id: item.id, nome: item.nomeEn });\r\n });\r\n setRegionsPt(arrPt);\r\n setRegionsEn(arrEn);\r\n resolve();\r\n });\r\n }\r\n else\r\n reject();\r\n });\r\n })\r\n ];\r\n\r\n Promise.all(promises).then(() => {\r\n if (idGroup) {\r\n getMailingGroupItem(globalState.accessToken, idGroup).then(response => {\r\n if (response.ok)\r\n response.json().then(setGroupItem);\r\n });\r\n }\r\n });\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n if (txtGroupNameRef)\r\n txtGroupNameRef.placeholder = t('Group:name_placeholder');\r\n }, [i18n.language]);\r\n\r\n React.useEffect(() => {\r\n setSteps(steps => (\r\n {\r\n ...steps,\r\n stepCountriesPt: countriesPt !== undefined,\r\n stepCountriesEn: countriesEn !== undefined,\r\n stepRegionalPt: regionsPt !== undefined,\r\n stepRegionalEn: regionsEn !== undefined\r\n }\r\n ));\r\n }, [countriesPt, countriesEn, regionsPt, regionsEn]);\r\n\r\n React.useEffect(() => {\r\n const loaded = steps.stepCountriesPt && steps.stepCountriesEn && steps.stepRegionalPt && steps.stepRegionalEn && steps.stepGroupItem;\r\n const elemSpinner = document.getElementById('loadGroup');\r\n if (loaded && elemSpinner) {\r\n hideSpinner(elemSpinner);\r\n setLoading(false);\r\n }\r\n }, [steps]);\r\n\r\n React.useEffect(() => {\r\n if (loading) {\r\n createSpinner({ target: document.getElementById('loadGroup') });\r\n showSpinner(document.getElementById('loadGroup'));\r\n setSpinner({ type: 'Bootstrap' });\r\n }\r\n }, [loading]);\r\n\r\n React.useEffect(() => {\r\n if (groupItem.conjunto !==null)\r\n setShowMembersSelect(!groupItem.conjunto);\r\n if (idGroup && groupItem.id)\r\n setSteps(steps => ({ ...steps, stepGroupItem: true }));\r\n }, [groupItem]);\r\n\r\n React.useEffect(() => {\r\n let _itemsSelected = [];\r\n if (showMembersSelect !==null) {\r\n if (showMembersSelect && groupItem.membrosGrupo)\r\n _itemsSelected = groupItem.membrosGrupo.map(item => { return { text: item.jornalista, id: item.id } });\r\n else if (groupItem.gruposConjunto)\r\n _itemsSelected = groupItem.gruposConjunto.map(item => { return { text: item.nome, id: item.id } });\r\n }\r\n setItemsSelected(_itemsSelected);\r\n }, [showMembersSelect]);\r\n\r\n React.useEffect(() => {\r\n if (autocompleteRef)\r\n autocompleteRef.value = \"\";\r\n }, [itemsSelected]);\r\n\r\n const inputChange = e => {\r\n if (e.event)\r\n setGroupItem({ ...groupItem, [e.event.currentTarget.id]: e.value });\r\n }\r\n\r\n const dropdownlistChange = e => {\r\n if (e.element) {\r\n setGroupItem({ ...groupItem, [e.element.id]: e.value });\r\n }\r\n }\r\n\r\n const autocompleteSelect = e => {\r\n if (e.itemData) {\r\n const itemFound = itemsSelected.find(item => item.id === e.itemData.id);\r\n if (!itemFound)\r\n setItemsSelected(itemsSelected => [...itemsSelected, { text: showMembersSelect ? e.itemData.jornalista : e.itemData.nome, id: e.itemData.id }]);\r\n }\r\n }\r\n\r\n const autocompleteFiltering = e => {\r\n e.preventDefaultAction = true;\r\n var predicate = new Predicate('jornalista', 'contains', e.text, true);\r\n var query = new Query();\r\n //frame the query based on search string with filter type.\r\n query = (e.text !==\"\") ? query.where(predicate) : query;\r\n //pass the filter data source, filter query to updateData method.\r\n e.updateData(dataManager, query);\r\n }\r\n\r\n const autocompleteGroupFiltering = e => {\r\n e.preventDefaultAction = true;\r\n var predicate = new Predicate('nome', 'contains', e.text, true);\r\n var query = new Query();\r\n //frame the query based on search string with filter type.\r\n query = (e.text !==\"\") ? query.where(predicate) : query;\r\n //pass the filter data source, filter query to updateData method.\r\n e.updateData(dataManager, query);\r\n }\r\n\r\n const handleFormSubmit = e => {\r\n e.preventDefault();\r\n }\r\n\r\n const confirmDelete = () => {\r\n deleteMailingGroupItem(globalState.accessToken, idGroup).then(response => setRedirect(response.ok));\r\n }\r\n\r\n const exportGroupContacts = () => {\r\n exportMailingGroupContacts(globalState.accessToken, idGroup, i18n.language).then(response => response.blob()).then(blob => {\r\n var url = window.URL.createObjectURL(blob);\r\n var a = document.createElement('a');\r\n a.href = url;\r\n a.download = \"contacts.xlsx\";\r\n document.body.appendChild(a);\r\n a.click();\r\n a.remove();\r\n }).catch(console.error);\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {globalState.accessToken === null ? :\r\n redirect ? :\r\n loading ?
    :\r\n <>\r\n {/*
    */}\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    {idGroup ? t('Group:edit_title') : t('Group:create_title')}

    \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

    {t('Group:group_info')}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n txtGroupNameRef = textBox}\r\n name=\"nome\"\r\n htmlAttributes={{ maxlength: \"100\" }}\r\n placeholder={t('Group:name_placeholder')}\r\n value={groupItem.nome}\r\n change={inputChange}\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

    {t('Group:group_from')}

    \r\n
      \r\n
    • setShowMembersSelect(true)}\r\n />
    • \r\n
    • setShowMembersSelect(false)}\r\n />
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {showMembersSelect &&\r\n autocompleteRef = autocomplete}\r\n name='name'\r\n placeholder={t('Group:members_placeholder')}\r\n dataSource={dataManager}\r\n sortOrder=\"Ascending\"\r\n query={new Query()}\r\n fields={{ value: 'id', text: 'jornalista' }}\r\n filtering={autocompleteFiltering}\r\n select={autocompleteSelect}\r\n minLength={3}\r\n locale={i18n.language}\r\n htmlAttributes={{ maxlength: 100 }}\r\n actionFailure={e => console.error(e)}\r\n />\r\n }\r\n {showMembersSelect === false &&\r\n autocompleteRef = autocomplete}\r\n name='groups'\r\n placeholder={t('Group:groups_placeholder')}\r\n dataSource={dataManager}\r\n sortOrder=\"Ascending\"\r\n query={new Query()}\r\n fields={{ value: 'id', text: 'nome' }}\r\n filtering={autocompleteGroupFiltering}\r\n select={autocompleteSelect}\r\n minLength={3}\r\n locale={i18n.language}\r\n htmlAttributes={{ maxlength: 100 }}\r\n actionFailure={e => console.error(e)}\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 \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","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { GlobalStateContext } from \"../../general/GlobalState\";\r\nimport { GridComponent, ColumnsDirective, ColumnDirective, ForeignKey, Filter, Inject, VirtualScroll, Sort, ContextMenu, Page, Resize, Edit } from '@syncfusion/ej2-react-grids';\r\nimport { AutoCompleteComponent, DropDownListComponent } from '@syncfusion/ej2-react-dropdowns';\r\nimport { createSpinner, hideSpinner, setSpinner, showSpinner } from '@syncfusion/ej2-react-popups';\r\nimport { TextBoxComponent } from '@syncfusion/ej2-react-inputs';\r\nimport { ButtonComponent } from '@syncfusion/ej2-react-buttons';\r\nimport { getMailingGroupItemsGeneral } from \"../../../services/MailingGeneralSVC\";\r\nimport { getCountries, getRegional } from \"../../../services/SystemSVC\";\r\nimport { hasPermissions } from \"../../utilities/Utils\";\r\nimport { useModal } from \"../../../hooks/Modal\";\r\n\r\n// import '../releases/releases.css';\r\n\r\n\r\nexport const GroupsList = () => {\r\n let gridInstance;\r\n\r\n const { t } = useTranslation();\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [isVisible, setIsVisible] = React.useState(false);\r\n const [countriesPt, setCountriesPt] = React.useState([]);\r\n const [countriesEn, setCountriesEn] = React.useState([]);\r\n const [regionalPt, setRegionalPt] = React.useState([]);\r\n const [regionalEn, setRegionalEn] = React.useState([]);\r\n const [loading, setLoading] = React.useState(true);\r\n const [groups, setGroups] = React.useState();\r\n const [groupSelected, setGroupSelected] = React.useState();\r\n const [filter, setFilter] = React.useState({});\r\n\r\n const { buildDialogMessage } = useModal();\r\n\r\n React.useEffect(() => {\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n getCountries(globalState.accessToken).then(response => {\r\n if (response.ok)\r\n response.json().then(resolve);\r\n else\r\n reject();\r\n });\r\n }),\r\n new Promise((resolve, reject) => {\r\n getRegional(globalState.accessToken).then(response => {\r\n if (response.ok)\r\n response.json().then(resolve);\r\n else\r\n reject();\r\n });\r\n })\r\n ];\r\n\r\n Promise.all(promises).then(results => {\r\n console.log(results);\r\n const countries = results[0];\r\n const regional = results[1];\r\n\r\n if (countries)\r\n loadCountries(countries);\r\n if (regional)\r\n loadRegional(regional);\r\n\r\n getMailingGroupItemsGeneral(globalState.accessToken).then(response => {\r\n if (response.ok) {\r\n response.json().then(results => {\r\n let arrGroups = [];\r\n results.map(item => {\r\n const country = countries.find(_item => _item.id === item.idpais);\r\n if (country) {\r\n item.paisPt = country.nomePt;\r\n item.paisEn = country.nomeEn;\r\n }\r\n const regionalItem = regional.find(_item => _item.id === item.idregional);\r\n if (regionalItem) {\r\n item.regionalPt = regionalItem.nomePt;\r\n item.regionalEn = regionalItem.nomeEn;\r\n }\r\n arrGroups.push(item)\r\n });\r\n setGroups(arrGroups);\r\n });\r\n }\r\n });\r\n });\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n if (loading) {\r\n createSpinner({ target: document.getElementById('loadGroupList') });\r\n showSpinner(document.getElementById('loadGroupList'));\r\n setSpinner({ type: 'Bootstrap' });\r\n }\r\n }, [loading]);\r\n\r\n React.useEffect(() => {\r\n const elemSpinner = document.getElementById('loadGroupList');\r\n if (groups && elemSpinner) {\r\n hideSpinner(elemSpinner);\r\n setLoading(false);\r\n }\r\n }, [groups]);\r\n\r\n const loadCountries = (items) => {\r\n let countriesPt = [];\r\n let countriesEn = [];\r\n items.map(item => {\r\n countriesPt.push({ id: item.id, nome: item.nomePt });\r\n countriesEn.push({ id: item.id, nome: item.nomeEn });\r\n });\r\n setCountriesPt(countriesPt);\r\n setCountriesEn(countriesEn);\r\n }\r\n\r\n const loadRegional = (items) => {\r\n let regionalPt = [];\r\n let regionalEn = [];\r\n items.map(item => {\r\n regionalPt.push({ id: item.id, nome: item.nomePt });\r\n regionalEn.push({ id: item.id, nome: item.nomeEn });\r\n });\r\n setRegionalPt(regionalPt);\r\n setRegionalEn(regionalEn);\r\n }\r\n\r\n const autocompleteChange = e => {\r\n setFilter({ ...filter, groupId: e.itemData ? e.itemData.id : null });\r\n }\r\n const dropdownlistChange = e => {\r\n setFilter({ ...filter, [e.element.id]: e.value });\r\n }\r\n\r\n const gridRowSelected = e => {\r\n setGroupSelected(e.data.id);\r\n }\r\n\r\n const filterGrid = () => {\r\n setIsVisible(false);\r\n if (groups.length) {\r\n let dataFiltered = [...groups];\r\n if (filter.groupId)\r\n dataFiltered = dataFiltered.filter(item => item.id ===filter.groupId);\r\n if (filter.countryId)\r\n dataFiltered = dataFiltered.filter(item => item.idpais ===filter.countryId);\r\n if (filter.regionalId)\r\n dataFiltered = dataFiltered.filter(item => item.idregional ===filter.regionalId);\r\n\r\n gridInstance.dataSource = dataFiltered;\r\n }\r\n }\r\n\r\n const nameTemplate = (args) => {\r\n return (\r\n <>\r\n {args.nome}\r\n \r\n );\r\n }\r\n\r\n React.useEffect(() => {\r\n if (gridInstance)\r\n gridInstance.refresh();\r\n }, [i18n.language]);\r\n\r\n return (\r\n groupSelected ? :\r\n loading ?
    :\r\n <>\r\n
    \r\n
    \r\n
    \r\n \r\n

    {t('Groups:search_text')}

    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {!isVisible &&\r\n
    \r\n setIsVisible(!isVisible)}>\r\n \r\n {t('Groups:filters')}\r\n \r\n
    \r\n }\r\n {isVisible &&\r\n
    \r\n setIsVisible(!isVisible)}>\r\n \r\n {t('Groups:filters')}\r\n \r\n
    \r\n }\r\n
    \r\n \r\n {t('Groups:search')}\r\n \r\n
    \r\n
    \r\n
    \r\n {isVisible &&\r\n
    \r\n \r\n \r\n
    \r\n }\r\n
    \r\n
    \r\n gridInstance = gridComponent}\r\n dataSource={groups}\r\n filterSettings={{ type: 'Menu' }}\r\n allowFiltering={false}\r\n allowPaging={true}\r\n allowSorting={true}\r\n rowSelected={gridRowSelected}\r\n locale={i18n.language}>\r\n \r\n nameTemplate(args)}\r\n headerText={t('Groups:name')}\r\n width='200'>\r\n \r\n filterTemplate(i18n.language ===\"pt\" ? item.nomePaisPT : item.nomePaisEN)}\r\n width='80'>\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","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { GlobalStateContext } from \"../../general/GlobalState\";\r\nimport { Container, Row, Col } from \"reactstrap\";\r\nimport { Actions } from \"../../utilities/Actions\";\r\nimport { TextBoxComponent, FormValidator } from \"@syncfusion/ej2-react-inputs\";\r\nimport { AutoCompleteComponent, DropDownListComponent, MultiSelectComponent } from \"@syncfusion/ej2-react-dropdowns\";\r\nimport { ChipListComponent } from '@syncfusion/ej2-react-buttons';\r\nimport { createSpinner, hideSpinner, setSpinner, showSpinner, DialogComponent } from '@syncfusion/ej2-react-popups';\r\nimport { DataManager, Query, ODataV4Adaptor, Predicate } from '@syncfusion/ej2-data';\r\nimport './groups.css';\r\nimport { Export } from \"../../utilities/Export\";\r\nimport { RadioButtonComponent } from \"@syncfusion/ej2-react-buttons\";\r\nimport { addOrUpdateGroupItem, getMailingGroupItem, deleteMailingGroupItem, exportMailingGroupContacts } from \"../../../services/MailingGeneralSVC\";\r\nimport { getCountries, getRegional } from \"../../../services/SystemSVC\";\r\nimport PermissionRedirect from \"../../utilities/PermissionRedirect/PermissionRedirect\";\r\nimport { hasPermissions } from \"../../utilities/Utils\";\r\n\r\nexport const GeneralGroupsItem = (props) => {\r\n let txtGroupNameRef;\r\n let autocompleteRef;\r\n let formRef;\r\n let idGroup = props.match.params.id;\r\n\r\n const { t } = useTranslation();\r\n const initialValue = {\r\n nome: \"\",\r\n idpais: 6,\r\n idregional: null,\r\n conjunto: null,\r\n membrosGrupo: null,\r\n gruposConjunto: null\r\n }\r\n\r\n const initialValueSteps = {\r\n stepCountriesPt: false,\r\n stepCountriesEn: false,\r\n stepRegionalPt: false,\r\n stepRegionalEn: false,\r\n stepGroupItem: !idGroup\r\n }\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [redirect, setRedirect] = React.useState(false);\r\n const [countriesPt, setCountriesPt] = React.useState();\r\n const [countriesEn, setCountriesEn] = React.useState();\r\n const [regionsPt, setRegionsPt] = React.useState();\r\n const [regionsEn, setRegionsEn] = React.useState();\r\n const [showMembersSelect, setShowMembersSelect] = React.useState(null);\r\n const [itemsSelected, setItemsSelected] = React.useState([]);\r\n const [groupItem, setGroupItem] = React.useState(initialValue);\r\n const [loading, setLoading] = React.useState(true);\r\n const [steps, setSteps] = React.useState(initialValueSteps);\r\n const [dialogDelete, setDialogDelete] = React.useState(false);\r\n const [disabledBtn, setDisabledBtn] = React.useState(false);\r\n\r\n const _controls = {\r\n class: \"group\",\r\n savePrimary: false,\r\n area: \"Grupos Internos\",\r\n excludePrimary: true,\r\n customPermissions: idGroup ? hasPermissions(63, \"Edit\", globalState) : hasPermissions(63, \"Create\", globalState),\r\n urlView: \"\",\r\n urlPreview: \"\",\r\n urlDuplicate: \"\",\r\n customPermissionsDelete: idGroup && hasPermissions(63, \"Delete\", globalState),\r\n urlSave: () => {\r\n if (formRef.validate()) {\r\n setDisabledBtn(true);\r\n let data = groupItem;\r\n if (showMembersSelect) {\r\n data.conjunto = false;\r\n data.membrosGrupo = itemsSelected;\r\n }\r\n else {\r\n data.conjunto = true;\r\n data.gruposConjunto = itemsSelected;\r\n }\r\n addOrUpdateGroupItem(globalState.accessToken, data).then(response => {\r\n setRedirect(response.ok)\r\n setDisabledBtn(false);\r\n }).catch(() => {\r\n setDisabledBtn(false);\r\n });\r\n }\r\n },\r\n urlSend: \"\",\r\n urlCancel: () => setRedirect(true),\r\n urlDelete: idGroup ? () => setDialogDelete(true) : \"\"\r\n };\r\n\r\n const _export = {\r\n pdf: \"\",\r\n doc: \"\",\r\n excel: idGroup ? () => exportGroupContacts() : \"\"\r\n }\r\n\r\n const dataManager = new DataManager({\r\n url: showMembersSelect ? `${process.env.REACT_APP_API_URL}/_api/MailingContactGeneral/GetMailingContactItems?$select=id,nome`\r\n : `${process.env.REACT_APP_API_URL}/_api/MailingGroupGeneral/GetMailingGroupItems?$select=id,nome`,\r\n adaptor: new ODataV4Adaptor,\r\n crossDomain: true,\r\n headers: [{ 'Authorization': `Bearer ${globalState.accessToken}` }],\r\n });\r\n\r\n React.useEffect(() => {\r\n const formValidator = {\r\n rules: {\r\n 'nome': {\r\n required: [true, t('Validation:required')]\r\n },\r\n 'idpais': {\r\n required: [true, t('Validation:required')]\r\n }\r\n },\r\n customPlacement: (inputElement, errorElement) => {\r\n inputElement.parentElement.parentElement.appendChild(errorElement);\r\n }\r\n };\r\n formRef = new FormValidator('#formMailingGroup', formValidator);\r\n });\r\n\r\n React.useEffect(() => {\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n getCountries(globalState.accessToken).then(response => {\r\n if (response.ok) {\r\n response.json().then(items => {\r\n let arrPt = [];\r\n let arrEn = [];\r\n items.map(item => {\r\n arrPt.push({ id: item.id, nome: item.nomePt });\r\n arrEn.push({ id: item.id, nome: item.nomeEn });\r\n });\r\n setCountriesPt(arrPt);\r\n setCountriesEn(arrEn);\r\n resolve();\r\n });\r\n }\r\n else\r\n reject();\r\n });\r\n\r\n }),\r\n new Promise((resolve, reject) => {\r\n getRegional(globalState.accessToken).then(response => {\r\n if (response.ok) {\r\n response.json().then(items => {\r\n let arrPt = [];\r\n let arrEn = [];\r\n items.map(item => {\r\n arrPt.push({ id: item.id, nome: item.nomePt });\r\n arrEn.push({ id: item.id, nome: item.nomeEn });\r\n });\r\n setRegionsPt(arrPt);\r\n setRegionsEn(arrEn);\r\n resolve();\r\n });\r\n }\r\n else\r\n reject();\r\n });\r\n })\r\n ];\r\n\r\n Promise.all(promises).then(() => {\r\n if (idGroup) {\r\n getMailingGroupItem(globalState.accessToken, idGroup).then(response => {\r\n if (response.ok)\r\n response.json().then(setGroupItem);\r\n });\r\n }\r\n });\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n if (txtGroupNameRef)\r\n txtGroupNameRef.placeholder = t('Group:name_placeholder');\r\n }, [i18n.language]);\r\n\r\n React.useEffect(() => {\r\n setSteps(steps => (\r\n {\r\n ...steps,\r\n stepCountriesPt: countriesPt !== undefined,\r\n stepCountriesEn: countriesEn !== undefined,\r\n stepRegionalPt: regionsPt !== undefined,\r\n stepRegionalEn: regionsEn !== undefined\r\n }\r\n ));\r\n }, [countriesPt, countriesEn, regionsPt, regionsEn]);\r\n\r\n React.useEffect(() => {\r\n const loaded = steps.stepCountriesPt && steps.stepCountriesEn && steps.stepRegionalPt && steps.stepRegionalEn && steps.stepGroupItem;\r\n const elemSpinner = document.getElementById('loadGroup');\r\n if (loaded && elemSpinner) {\r\n hideSpinner(elemSpinner);\r\n setLoading(false);\r\n }\r\n }, [steps]);\r\n\r\n React.useEffect(() => {\r\n if (loading) {\r\n createSpinner({ target: document.getElementById('loadGroup') });\r\n showSpinner(document.getElementById('loadGroup'));\r\n setSpinner({ type: 'Bootstrap' });\r\n }\r\n }, [loading]);\r\n\r\n React.useEffect(() => {\r\n if (groupItem.conjunto !==null)\r\n setShowMembersSelect(!groupItem.conjunto);\r\n if (idGroup && groupItem.id)\r\n setSteps(steps => ({ ...steps, stepGroupItem: true }));\r\n }, [groupItem]);\r\n\r\n React.useEffect(() => {\r\n let _itemsSelected = [];\r\n if (showMembersSelect !==null) {\r\n if (showMembersSelect && groupItem.membrosGrupo)\r\n _itemsSelected = groupItem.membrosGrupo.map(item => { return { text: item.nome, id: item.id } });\r\n else if (groupItem.gruposConjunto)\r\n _itemsSelected = groupItem.gruposConjunto.map(item => { return { text: item.nome, id: item.id } });\r\n }\r\n setItemsSelected(_itemsSelected);\r\n }, [showMembersSelect]);\r\n\r\n React.useEffect(() => {\r\n if (autocompleteRef)\r\n autocompleteRef.value = \"\";\r\n }, [itemsSelected]);\r\n\r\n const inputChange = e => {\r\n if (e.event)\r\n setGroupItem({ ...groupItem, [e.event.currentTarget.id]: e.value });\r\n }\r\n\r\n const dropdownlistChange = e => {\r\n if (e.element) {\r\n setGroupItem({ ...groupItem, [e.element.id]: e.value });\r\n }\r\n }\r\n\r\n const autocompleteSelect = e => {\r\n if (e.itemData) {\r\n const itemFound = itemsSelected.find(item => item.id === e.itemData.id);\r\n if (!itemFound)\r\n setItemsSelected(itemsSelected => [...itemsSelected, { text: showMembersSelect ? e.itemData.nome : e.itemData.nome, id: e.itemData.id }]);\r\n }\r\n }\r\n\r\n const autocompleteFiltering = e => {\r\n e.preventDefaultAction = true;\r\n var predicate = new Predicate('nome', 'contains', e.text, true);\r\n var query = new Query();\r\n //frame the query based on search string with filter type.\r\n query = (e.text !==\"\") ? query.where(predicate) : query;\r\n //pass the filter data source, filter query to updateData method.\r\n e.updateData(dataManager, query);\r\n }\r\n\r\n const autocompleteGroupFiltering = e => {\r\n e.preventDefaultAction = true;\r\n var predicate = new Predicate('nome', 'contains', e.text, true);\r\n var query = new Query();\r\n //frame the query based on search string with filter type.\r\n query = (e.text !==\"\") ? query.where(predicate) : query;\r\n //pass the filter data source, filter query to updateData method.\r\n e.updateData(dataManager, query);\r\n }\r\n\r\n const handleFormSubmit = e => {\r\n e.preventDefault();\r\n }\r\n\r\n const confirmDelete = () => {\r\n deleteMailingGroupItem(globalState.accessToken, idGroup).then(response => setRedirect(response.ok));\r\n }\r\n\r\n const exportGroupContacts = () => {\r\n exportMailingGroupContacts(globalState.accessToken, idGroup, i18n.language).then(response => response.blob()).then(blob => {\r\n var url = window.URL.createObjectURL(blob);\r\n var a = document.createElement('a');\r\n a.href = url;\r\n a.download = \"contacts.xlsx\";\r\n document.body.appendChild(a);\r\n a.click();\r\n a.remove();\r\n }).catch(console.error);\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {globalState.accessToken === null ? :\r\n redirect ? :\r\n loading ?
    :\r\n <>\r\n {/*
    */}\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    {idGroup ? t('Group:edit_title') : t('Group:create_title')}

    \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

    {t('Group:group_info')}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n txtGroupNameRef = textBox}\r\n name=\"nome\"\r\n htmlAttributes={{ maxlength: \"100\" }}\r\n placeholder={t('Group:name_placeholder')}\r\n value={groupItem.nome}\r\n change={inputChange}\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

    {t('Group:group_from')}

    \r\n
      \r\n
    • setShowMembersSelect(true)}\r\n />
    • \r\n
    • setShowMembersSelect(false)}\r\n />
    • \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {showMembersSelect &&\r\n autocompleteRef = autocomplete}\r\n name='name'\r\n placeholder={t('Group:members_placeholder')}\r\n dataSource={dataManager}\r\n sortOrder=\"Ascending\"\r\n query={new Query()}\r\n fields={{ value: 'id', text: 'nome' }}\r\n filtering={autocompleteFiltering}\r\n select={autocompleteSelect}\r\n minLength={3}\r\n locale={i18n.language}\r\n htmlAttributes={{ maxlength: 100 }}\r\n actionFailure={e => console.error(e)}\r\n />\r\n }\r\n {showMembersSelect === false &&\r\n autocompleteRef = autocomplete}\r\n name='groups'\r\n placeholder={t('Group:groups_placeholder')}\r\n dataSource={dataManager}\r\n sortOrder=\"Ascending\"\r\n query={new Query()}\r\n fields={{ value: 'id', text: 'nome' }}\r\n filtering={autocompleteGroupFiltering}\r\n select={autocompleteSelect}\r\n minLength={3}\r\n locale={i18n.language}\r\n htmlAttributes={{ maxlength: 100 }}\r\n actionFailure={e => console.error(e)}\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 \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","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { GlobalStateContext } from \"../general/GlobalState\";\r\nimport { createSpinner, showSpinner, setSpinner, hideSpinner } from \"@syncfusion/ej2-react-popups\";\r\nimport { GridComponent, ColumnsDirective, ColumnDirective, ForeignKey, Filter, Inject, VirtualScroll, Sort, ContextMenu, Page, Resize, Edit, Toolbar, ExcelExport } from '@syncfusion/ej2-react-grids';\r\nimport { ComboBoxComponent, AutoCompleteComponent, DropDownListComponent } from '@syncfusion/ej2-react-dropdowns';\r\nimport { TextBoxComponent } from '@syncfusion/ej2-react-inputs';\r\nimport { ButtonComponent } from '@syncfusion/ej2-react-buttons';\r\nimport { DatePickerComponent, DateRangePickerComponent } from \"@syncfusion/ej2-react-calendars\";\r\nimport { getCountries, getAllBusinessAreas, getRegional } from \"../../services/SystemSVC\";\r\nimport { getPressItems, getPressItemsFiltered } from \"../../services/PressSVC\";\r\nimport { users } from \"../../services/UsersSVC\";\r\nimport '../releases/releases.css';\r\nimport { useModal } from \"../../hooks/Modal\";\r\nimport { hasPermissions } from \"../utilities/Utils\";\r\n\r\nexport const QAList = (props) => {\r\n\r\n const { t } = useTranslation();\r\n const { refQA, gridInstance } = props;\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [isVisible, setIsVisible] = React.useState(true);\r\n const [loading, setLoading] = React.useState(true);\r\n const [fillUsersData, setFillUsersData] = React.useState([]);\r\n const [fillBusinessAreaData, setFillBusinessAreaData] = React.useState([]);\r\n const [fillCountriesData, setFillCountriesData] = React.useState([]);\r\n const [fillRegionalData, setFillRegionalData] = React.useState([]);\r\n const [qaItems, setQAItems] = React.useState(null);\r\n const [allQA, setAllQA] = React.useState(null);\r\n const [filteredQAItems, setFilteredQAItems] = React.useState({ idTipo: 4, idPais: 6 });\r\n const ddlRegionalRef = React.useRef();\r\n const { buildDialogMessage } = useModal();\r\n\r\n React.useEffect(() => {\r\n if (loading) {\r\n createSpinner({ target: document.getElementById('loadQA') });\r\n showSpinner(document.getElementById('loadQA'));\r\n setSpinner({ type: 'Bootstrap' });\r\n }\r\n }, [loading]);\r\n\r\n React.useEffect(() => {\r\n if (gridInstance)\r\n gridInstance.refresh();\r\n }, [i18n.language]);\r\n\r\n React.useEffect(() => {\r\n setLoading(true);\r\n async function load() {\r\n let _users = await users(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n let _businessAreas = await getAllBusinessAreas(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n let _countries = await getCountries(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n let _regional = await getRegional(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n const filterQstring = globalState.regional ? `?$filter=idRegional eq ${globalState.regional.id}` : \"\";\r\n let _pressItems = await getPressItems(globalState.accessToken, 4, filterQstring)\r\n .then(response => { if (response.ok) { return response.json() } });\r\n\r\n if (_pressItems) {\r\n _pressItems = _pressItems.filter(item => {\r\n item.bloqueado = item.bloqueado ? i18n.language ===\"pt\" ? \"Bloqueado\" : \"Blocked\" : i18n.language ===\"pt\" ? \"Terminado\" : \"Finished\";\r\n return item;\r\n });\r\n\r\n setQAItems(_pressItems);\r\n setAllQA(_pressItems);\r\n }\r\n\r\n let oldUsers = _pressItems?.map(item => {\r\n return { nome: item.autores }\r\n });\r\n\r\n const set = new Set();\r\n const newUsers = oldUsers.filter(item => {\r\n const duplicate = set.has(item?.nome);\r\n set.add(item?.nome);\r\n\r\n return !duplicate;\r\n })\r\n\r\n const newBusinessAreas = [..._businessAreas, { id: - 1, nomeEn: \"All\", nomePt: \"Todos\" }]\r\n const countries = [..._countries, { id: - 1, nomeEn: \"All\", nomePt: \"Todos\" }]\r\n const newRegional = [..._regional, { id: - 1, nomeEn: \"All\", nomePt: \"Todos\" }]\r\n\r\n setFillUsersData(newUsers);\r\n setFillBusinessAreaData(newBusinessAreas);\r\n setFillCountriesData(countries);\r\n setFillRegionalData(newRegional);\r\n\r\n hideSpinner(document.getElementById('loadQA'));\r\n setLoading(false);\r\n }\r\n load();\r\n }, [i18n.language]);\r\n\r\n React.useEffect(()=>{\r\n if(fillRegionalData.length && !loading){\r\n if(globalState.regional)\r\n ddlRegionalRef.current.value = globalState.regional.id;\r\n else\r\n setIsVisible(false);\r\n }\r\n },[fillRegionalData, loading]);\r\n\r\n const statusQA = [{\r\n text: i18n.language ==='pt' ? 'Bloqueado' : 'Blocked',\r\n value: true\r\n }, {\r\n text: i18n.language ==='pt' ? 'Terminado' : 'Finished',\r\n value: false\r\n }, {\r\n text: i18n.language ==='pt' ? 'Todos' : 'All',\r\n value: null\r\n }\r\n ]\r\n\r\n const filteredQA = async () => {\r\n if (filteredQAItems) {\r\n let _filteredQA = await getPressItemsFiltered(globalState.accessToken, filteredQAItems, 4)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n\r\n _filteredQA = _filteredQA.filter(item => {\r\n item.bloqueado = item.bloqueado ? i18n.language ===\"pt\" ? \"Bloqueado\" : \"Blocked\" : i18n.language ===\"pt\" ? \"Terminado\" : \"Finished\";\r\n return item;\r\n });\r\n\r\n\r\n setQAItems(_filteredQA);\r\n\r\n setIsVisible(false);\r\n } else {\r\n setQAItems(allQA);\r\n }\r\n }\r\n\r\n let qaDate = (args) => {\r\n const dateQA = new Date(args.data);\r\n return (\r\n {dateQA.toLocaleDateString(i18n.language)}\r\n )\r\n }\r\n\r\n let qaTitle = (args) => {\r\n return (\r\n props.edit(args)}>{args.titulo}\r\n );\r\n }\r\n\r\n let qaStatus = (args) => {\r\n if (args.bloqueado === 'Bloqueado') {\r\n return ({i18n.language ==='pt' ? 'Bloqueado' : 'Blocked'})\r\n } else {\r\n return ({i18n.language ==='pt' ? 'Terminado' : 'Finished'})\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n {loading ?
    :\r\n <>\r\n
    \r\n
    \r\n
    \r\n \r\n

    {t('QA:search_text')}

    \r\n
    \r\n
    \r\n
    \r\n setFilteredQAItems(\r\n filteredQAItems => ({\r\n ...filteredQAItems,\r\n conteudo: e.value\r\n })\r\n )}\r\n />\r\n
    \r\n
    \r\n
    \r\n {!isVisible &&\r\n
    \r\n setIsVisible(!isVisible)}>\r\n \r\n {t('QA:filters')}\r\n \r\n
    \r\n }\r\n {isVisible &&\r\n
    \r\n setIsVisible(!isVisible)}>\r\n \r\n {t('QA:filters')}\r\n \r\n
    \r\n }\r\n
    \r\n filterQA()}\r\n onClick={() => filteredQA()}\r\n >\r\n {t('QA:search')}\r\n \r\n
    \r\n
    \r\n
    \r\n {isVisible &&\r\n
    \r\n setFilteredQAItems(\r\n filteredQAItems => ({\r\n ...filteredQAItems,\r\n dataInicio: e.value && e.value[0].toISOString().split('.')[0],\r\n dataFim: e.value && e.value[1].toISOString().split('.')[0]\r\n })\r\n )}\r\n />\r\n setFilterQAAuthor(e.value)}\r\n change={(e) => setFilteredQAItems(\r\n filteredQAItems => ({\r\n ...filteredQAItems,\r\n autor: e.value\r\n })\r\n )}\r\n />\r\n setFilteredQAItems(\r\n filteredQAItems => ({\r\n ...filteredQAItems,\r\n idAreaNegocio: e.value\r\n })\r\n )}\r\n\r\n />\r\n setFilterQACountry(e.value)}\r\n value={filteredQAItems ? filteredQAItems.idPais : \"\"}\r\n change={(e) => setFilteredQAItems(\r\n filteredQAItems => ({\r\n ...filteredQAItems,\r\n idPais: e.value\r\n })\r\n )}\r\n />\r\n ddlRegionalRef.current = ddlComponent}\r\n cssClass=\"e-filled\"\r\n placeholder={t('QA:regional')}\r\n showClearButton\r\n dataSource={fillRegionalData}\r\n fields={{ text: (i18n.language ===\"pt\") ? 'nomePt' : 'nomeEn', value: 'id' }}\r\n value={filteredQAItems ? filteredQAItems.idRegional : globalState.regional? globalState.regional.id : ''}\r\n locale={i18n.language}\r\n change={(e) => setFilteredQAItems(\r\n filteredQAItems => ({\r\n ...filteredQAItems,\r\n idRegional: e.value\r\n })\r\n )}\r\n />\r\n setFilteredQAItems(\r\n filteredQAItems => ({\r\n ...filteredQAItems,\r\n bloqueado: e.value\r\n })\r\n )}\r\n />\r\n
    \r\n }\r\n
    \r\n
    \r\n refQA(grid)}\r\n locale={i18n.language}>\r\n \r\n \r\n \r\n \r\n \r\n filterTemplate(i18n.language ===\"pt\" ? item.nomePaisPT : item.nomePaisEN)}\r\n width='350'>\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","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { GlobalStateContext } from \"../../general/GlobalState\";\r\nimport { Container, Row, Col } from \"reactstrap\";\r\nimport { DialogComponent } from \"@syncfusion/ej2-react-popups\";\r\nimport { Actions } from \"../../utilities/Actions\";\r\nimport { MailingStatus } from \"../../releases/MailingStatus\";\r\nimport { Export } from \"../../utilities/Export\";\r\nimport { ChangeHistory } from \"../../releases/ChangeHistory\";\r\nimport { SendItem } from \"../../mailing/SendItem\"\r\nimport { PressForm } from \"../../Shared/PressForm\";\r\nimport { ReleaseStateContext } from \"../../releases/ReleaseState\";\r\nimport { getPressItem, updatePressItem, addPressItem, deletePressItem, duplicatePressItem, getMailingShippingStatusItems, duplicateForwardPressItem } from \"../../../services/PressSVC\";\r\nimport { getRegional } from \"../../../services/SystemSVC\";\r\nimport { storageAccUrl } from \"../../utilities/Constants\";\r\nimport PermissionRedirect from \"../../utilities/PermissionRedirect/PermissionRedirect\";\r\nimport { hasPermissions } from \"../../utilities/Utils\";\r\nimport { getAndMountSignature } from \"../../../services/SignatureSVC\";\r\n\r\nexport const QAItem = (props) => {\r\n\r\n let itemId = props.match.params.id;\r\n\r\n const { t } = useTranslation();\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const { releaseState, setReleaseState, showSendContent, setShowSendContent, setRedirectId, redirectId } = React.useContext(ReleaseStateContext);\r\n const [redirect, setRedirect] = React.useState(false);\r\n const [showDialog, setShowDialog] = React.useState(false);\r\n const [dialogDelete, setDialogDelete] = React.useState(false);\r\n const [regionalId, setRegionalId] = React.useState(null);\r\n const [openModalRegional, setOpenModalRegional] = React.useState(false);\r\n const [regionalList, setRegionalList] = React.useState([]);\r\n const [fwdConfirmationModal, setFwdConfirmationModal] = React.useState(false);\r\n const [disabledBtn, setDisabledBtn] = React.useState(false);\r\n\r\n const modalRef = React.useRef();\r\n\r\n React.useEffect(() => {\r\n if (redirectId) window.location.reload();\r\n }, [redirectId]);\r\n\r\n const handleRef = (ref) => {\r\n if (modalRef?.current?.contains(ref?.target)) {\r\n return;\r\n }\r\n setOpenModalRegional(false);\r\n }\r\n\r\n let _controls = React.useRef({\r\n area: \"Q & A\",\r\n class: \"QA\",\r\n savePrimary: !!itemId,\r\n customPermissions: !itemId,\r\n excludePrimary: true,\r\n urlView: () => setShowDialog(true),\r\n urlPreview: false,\r\n urlDuplicate: itemId ? () => duplicateQA() : false,\r\n urlForward: itemId ? () => setOpenModalRegional(true) : false,\r\n urlSave: undefined,\r\n form: \"formReleaseItem\",\r\n urlSend: itemId ? () => setShowSendContent(true) : false,\r\n urlCancel:() => {\r\n setReleaseState({\r\n releaseItem: null,\r\n urlItemId: null,\r\n changeInfo:null\r\n });\r\n setRedirect(true);\r\n },\r\n urlDelete: itemId ? () => setDialogDelete(true) : false\r\n });\r\n\r\n\r\n const initialValue = {\r\n id: null,\r\n titulo: \"\",\r\n subtitulo: \"\",\r\n autores: \"\",\r\n idAreaNegocio: 0,\r\n idPais: 0,\r\n idRegional: \"\",\r\n data: new Date(),\r\n aprovadoPor: \"\",\r\n conteudo: null,\r\n bloqueado: false,\r\n language: 1,\r\n historico: []\r\n };\r\n\r\n React.useEffect(() => {\r\n if (itemId) {\r\n async function load() {\r\n let _releaseItem = await getPressItem(globalState.accessToken, itemId, 4)\r\n .then(response => {\r\n if (response.ok)\r\n return response.json()\r\n });\r\n\r\n let mailingSent = await getMailingShippingStatusItems(globalState.accessToken, itemId).then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n _controls.current.customPermissions = itemId ? mailingSent.length === 0 && hasPermissions(12, \"Edit\", globalState) : hasPermissions(12, \"Create\", globalState);\r\n\r\n setReleaseState(releaseState => ({\r\n ...releaseState,\r\n releaseItem: _releaseItem,\r\n urlItemId: itemId,\r\n mailingStatus: mailingSent\r\n }));\r\n }\r\n load();\r\n }\r\n else {\r\n\r\n setReleaseState({\r\n releaseItem: initialValue,\r\n urlItemId: null,\r\n changeInfo: null,\r\n mailingStatus: []\r\n });\r\n }\r\n }, [itemId]);\r\n\r\n React.useEffect(() => {\r\n const getRegionalList = async () => {\r\n\r\n let _regional = await getRegional(globalState.accessToken).then(\r\n (response) => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n }\r\n );\r\n setRegionalList(_regional);\r\n }\r\n getRegionalList();\r\n\r\n const getRef = () => {\r\n document.addEventListener(\"mousedown\", handleRef);\r\n\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handleRef);\r\n };\r\n };\r\n getRef();\r\n }, []);\r\n\r\n const _export = {\r\n pdf: true,\r\n doc: true,\r\n excel: \"\"\r\n }\r\n\r\n let duplicateQA = () => {\r\n duplicatePressItem(globalState.accessToken, itemId, 4)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n } else {\r\n return Promise.reject(response);\r\n }\r\n })\r\n .then(result => {\r\n setRedirect(true);\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n });\r\n }\r\n\r\n const handleDuplicateRegional = () => {\r\n duplicateRegionalRelease()\r\n }\r\n\r\n let duplicateRegionalRelease = async () => {\r\n\r\n const lang = releaseState.releaseItem.idIdioma ? releaseState.releaseItem.idIdioma === 1 ? 'pt' : 'en' : i18n.language;\r\n const {newSig, newSigContent} = await getAndMountSignature(globalState, regionalId, lang);\r\n const conteudo = releaseState.releaseItem.conteudo.replace(//g, `${newSigContent}`)\r\n\r\n duplicateForwardPressItem(globalState.accessToken, itemId, 4, regionalId, conteudo)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n } else {\r\n return Promise.reject(response);\r\n }\r\n })\r\n .then(result => {\r\n setFwdConfirmationModal(result)\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n });\r\n }\r\n\r\n let deleteQA = () => {\r\n deletePressItem(globalState.accessToken, itemId, 4)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n } else {\r\n return Promise.reject(response);\r\n }\r\n })\r\n .then(result => {\r\n setRedirect(true);\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n })\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {globalState.accessToken === null ? :\r\n redirectId ? :\r\n redirect ? :\r\n showSendContent ? :\r\n <>\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    {itemId ? t('QAItem:edit_title') : t('QAItem:create_title')}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {releaseState.releaseItem && releaseState.releaseItem.id &&\r\n \r\n }\r\n {releaseState.releaseItem &&\r\n \r\n }\r\n
    \r\n
    \r\n {releaseState.releaseItem &&\r\n \r\n }\r\n {false &&\r\n \r\n }\r\n {releaseState.releaseItem && Object.keys(releaseState.releaseItem).length > 0 && (releaseState.releaseItem.historico).length > 0 &&\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 \r\n
    \r\n
    \r\n
    \r\n {regionalList.map((regional, index) => (\r\n
    {\r\n setRegionalId(regional.id);\r\n }}\r\n >\r\n

    {i18n.language ===\"pt\" ? regional.nomePt : regional.nomeEn}

    \r\n
    \r\n ))}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setRegionalId(null);\r\n setOpenModalRegional(false);\r\n }}>{t('Actions:cancel')}\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","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { GlobalStateContext } from \"../general/GlobalState\";\r\nimport { createSpinner, showSpinner, setSpinner, hideSpinner } from \"@syncfusion/ej2-react-popups\";\r\nimport { GridComponent, ColumnsDirective, ColumnDirective, ForeignKey, Filter, Inject, VirtualScroll, Sort, ContextMenu, Page, Resize, Edit, Toolbar, ExcelExport } from '@syncfusion/ej2-react-grids';\r\nimport { ComboBoxComponent, AutoCompleteComponent, DropDownListComponent } from '@syncfusion/ej2-react-dropdowns';\r\nimport { TextBoxComponent } from '@syncfusion/ej2-react-inputs';\r\nimport { ButtonComponent } from '@syncfusion/ej2-react-buttons';\r\nimport { DatePickerComponent, DateRangePickerComponent } from \"@syncfusion/ej2-react-calendars\";\r\nimport { getCountries, getAllBusinessAreas, getRegional } from \"../../services/SystemSVC\";\r\nimport { getPressItems, getPressItemsFiltered } from \"../../services/PressSVC\";\r\nimport { users } from \"../../services/UsersSVC\";\r\nimport '../releases/releases.css';\r\nimport { hasPermissions } from \"../utilities/Utils\";\r\nimport { useModal } from \"../../hooks/Modal\";\r\n\r\nexport const WebcastList = (props) => {\r\n\r\n const { t } = useTranslation();\r\n const { refWebcastNotice, gridInstance } = props;\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [isVisible, setIsVisible] = React.useState(true);\r\n const [loading, setLoading] = React.useState(true);\r\n const [fillUsersData, setFillUsersData] = React.useState([]);\r\n const [fillBusinessAreaData, setFillBusinessAreaData] = React.useState([]);\r\n const [fillCountriesData, setFillCountriesData] = React.useState([]);\r\n const [fillRegionalData, setFillRegionalData] = React.useState([]);\r\n const [webcastNoticeItems, setWebcastNoticeItems] = React.useState(null);\r\n const [allWebcastNotices, setAllWebcastNotices] = React.useState(null);\r\n const [filteredWebcastNoticeItems, setFilteredWebcastNoticeItems] = React.useState({ idTipo: 6, idPais: 6 });\r\n const ddlRegionalRef = React.useRef();\r\n const { buildDialogMessage } = useModal();\r\n\r\n React.useEffect(() => {\r\n if (loading) {\r\n createSpinner({ target: document.getElementById('loadWebcastNotices') });\r\n showSpinner(document.getElementById('loadWebcastNotices'));\r\n setSpinner({ type: 'Bootstrap' });\r\n }\r\n }, [loading]);\r\n\r\n React.useEffect(() => {\r\n if (gridInstance)\r\n gridInstance.refresh();\r\n }, [i18n.language]);\r\n\r\n React.useEffect(() => {\r\n setLoading(true);\r\n async function load() {\r\n let _users = await users(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n let _businessAreas = await getAllBusinessAreas(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n let _countries = await getCountries(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n let _regional = await getRegional(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n const filterQstring = globalState.regional ? `?$filter=idRegional eq ${globalState.regional.id}` : \"\";\r\n let _pressItems = await getPressItems(globalState.accessToken, 6, filterQstring)\r\n .then(response => { if (response.ok) { return response.json() } });\r\n\r\n if (_pressItems) {\r\n _pressItems = _pressItems.filter(item => {\r\n item.bloqueado = item.bloqueado ? i18n.language ===\"pt\" ? \"Bloqueado\" : \"Blocked\" : i18n.language ===\"pt\" ? \"Terminado\" : \"Finished\";\r\n return item;\r\n });\r\n\r\n setWebcastNoticeItems(_pressItems);\r\n setAllWebcastNotices(_pressItems);\r\n }\r\n\r\n let oldUsers = _pressItems?.map(item => {\r\n return { nome: item.autores }\r\n });\r\n\r\n const set = new Set();\r\n const newUsers = oldUsers.filter(item => {\r\n const duplicate = set.has(item?.nome);\r\n set.add(item?.nome);\r\n\r\n return !duplicate;\r\n })\r\n\r\n const newBusinessAreas = [..._businessAreas, { id: - 1, nomeEn: \"All\", nomePt: \"Todos\" }]\r\n const countries = [..._countries, { id: - 1, nomeEn: \"All\", nomePt: \"Todos\" }]\r\n const newRegional = [..._regional, { id: - 1, nomeEn: \"All\", nomePt: \"Todos\" }]\r\n\r\n setFillUsersData(newUsers);\r\n setFillBusinessAreaData(newBusinessAreas);\r\n setFillCountriesData(countries);\r\n setFillRegionalData(newRegional);\r\n\r\n hideSpinner(document.getElementById('loadWebcastNotices'));\r\n setLoading(false);\r\n }\r\n load();\r\n }, [i18n.language]);\r\n\r\n React.useEffect(()=>{\r\n if(fillRegionalData.length && !loading){\r\n if(globalState.regional)\r\n ddlRegionalRef.current.value = globalState.regional.id;\r\n else\r\n setIsVisible(false);\r\n }\r\n },[fillRegionalData, loading]);\r\n\r\n const statusWebcastNotice = [{\r\n text: i18n.language ==='pt' ? 'Bloqueado' : 'Blocked',\r\n value: true\r\n }, {\r\n text: i18n.language ==='pt' ? 'Terminado' : 'Finished',\r\n value: false\r\n }, {\r\n text: i18n.language ==='pt' ? 'Todos' : 'All',\r\n value: null\r\n }\r\n ]\r\n\r\n const filteredWebcastNotices = async () => {\r\n if (filteredWebcastNoticeItems) {\r\n let _filteredWebcastNotices = await getPressItemsFiltered(globalState.accessToken, filteredWebcastNoticeItems, 6)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n\r\n _filteredWebcastNotices = _filteredWebcastNotices.filter(item => {\r\n item.bloqueado = item.bloqueado ? i18n.language ===\"pt\" ? \"Bloqueado\" : \"Blocked\" : i18n.language ===\"pt\" ? \"Terminado\" : \"Finished\";\r\n return item;\r\n });\r\n setWebcastNoticeItems(_filteredWebcastNotices);\r\n\r\n setIsVisible(false);\r\n } else {\r\n setWebcastNoticeItems(allWebcastNotices);\r\n }\r\n }\r\n\r\n let webcastNoticeDate = (args) => {\r\n const dateWebcastNotice = new Date(args.data);\r\n return (\r\n {dateWebcastNotice.toLocaleDateString(i18n.language)}\r\n )\r\n }\r\n\r\n let webcastNoticeTitle = (args) => {\r\n return (\r\n props.edit(args)}>{args.titulo}\r\n );\r\n }\r\n\r\n let webcastNoticeStatus = (args) => {\r\n if (args.bloqueado === 'Bloqueado') {\r\n return ({i18n.language ==='pt' ? 'Bloqueado' : 'Blocked'})\r\n } else {\r\n return ({i18n.language ==='pt' ? 'Terminado' : 'Finished'})\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n {loading ?
    :\r\n <>\r\n
    \r\n
    \r\n
    \r\n \r\n

    {t('WebcastNotices:search_text')}

    \r\n
    \r\n
    \r\n
    \r\n setFilteredWebcastNoticeItems(\r\n filteredWebcastNoticeItems => ({\r\n ...filteredWebcastNoticeItems,\r\n conteudo: e.value\r\n })\r\n )}\r\n />\r\n
    \r\n
    \r\n
    \r\n {!isVisible &&\r\n
    \r\n setIsVisible(!isVisible)}>\r\n \r\n {t('WebcastNotices:filters')}\r\n \r\n
    \r\n }\r\n {isVisible &&\r\n
    \r\n setIsVisible(!isVisible)}>\r\n \r\n {t('WebcastNotices:filters')}\r\n \r\n
    \r\n }\r\n
    \r\n filterWebcastNotices()}\r\n onClick={() => filteredWebcastNotices()}\r\n >\r\n {t('WebcastNotices:search')}\r\n \r\n
    \r\n
    \r\n
    \r\n {isVisible &&\r\n
    \r\n setFilteredWebcastNoticeItems(\r\n filteredWebcastNoticeItems => ({\r\n ...filteredWebcastNoticeItems,\r\n dataInicio: e.value && e.value[0].toISOString().split('.')[0],\r\n dataFim: e.value && e.value[1].toISOString().split('.')[0]\r\n })\r\n )}\r\n />\r\n setFilterWebcastNoticeAuthor(e.value)}\r\n change={(e) => setFilteredWebcastNoticeItems(\r\n filteredWebcastNoticeItems => ({\r\n ...filteredWebcastNoticeItems,\r\n autor: e.value\r\n })\r\n )}\r\n />\r\n setFilteredWebcastNoticeItems(\r\n filteredWebcastNoticeItems => ({\r\n ...filteredWebcastNoticeItems,\r\n idAreaNegocio: e.value\r\n })\r\n )}\r\n\r\n />\r\n setFilterWebcastNoticeCountry(e.value)}\r\n value={filteredWebcastNoticeItems ? filteredWebcastNoticeItems.idPais : \"\"}\r\n change={(e) => setFilteredWebcastNoticeItems(\r\n filteredWebcastNoticeItems => ({\r\n ...filteredWebcastNoticeItems,\r\n idPais: e.value\r\n })\r\n )}\r\n />\r\n ddlRegionalRef.current = ddlComponent}\r\n cssClass=\"e-filled\"\r\n placeholder={t('WebcastNotices:regional')}\r\n showClearButton\r\n dataSource={fillRegionalData}\r\n fields={{ text: (i18n.language ===\"pt\") ? 'nomePt' : 'nomeEn', value: 'id' }}\r\n value={filteredWebcastNoticeItems ? filteredWebcastNoticeItems.idRegional : globalState.regional? globalState.regional.id : ''}\r\n locale={i18n.language}\r\n change={(e) => setFilteredWebcastNoticeItems(\r\n filteredWebcastNoticeItems => ({\r\n ...filteredWebcastNoticeItems,\r\n idRegional: e.value\r\n })\r\n )}\r\n />\r\n setFilteredWebcastNoticeItems(\r\n filteredWebcastNoticeItems => ({\r\n ...filteredWebcastNoticeItems,\r\n bloqueado: e.value\r\n })\r\n )}\r\n />\r\n
    \r\n }\r\n
    \r\n
    \r\n refWebcastNotice(grid)}\r\n locale={i18n.language}>\r\n \r\n \r\n \r\n \r\n \r\n filterTemplate(i18n.language ===\"pt\" ? item.nomePaisPT : item.nomePaisEN)}\r\n width='350'>\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","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { GlobalStateContext } from \"../../general/GlobalState\";\r\nimport { Container, Row, Col } from \"reactstrap\";\r\nimport { DialogComponent } from \"@syncfusion/ej2-react-popups\";\r\nimport { Actions } from \"../../utilities/Actions\";\r\nimport { MailingStatus } from \"../../releases/MailingStatus\";\r\nimport { Export } from \"../../utilities/Export\";\r\nimport { ChangeHistory } from \"../../releases/ChangeHistory\";\r\nimport { SendItem } from \"../../mailing/SendItem\"\r\nimport { PressForm } from \"../../Shared/PressForm\";\r\nimport { ReleaseStateContext } from \"../../releases/ReleaseState\";\r\nimport { getPressItem, updatePressItem, addPressItem, deletePressItem, duplicatePressItem, getMailingShippingStatusItems, duplicateForwardPressItem } from \"../../../services/PressSVC\";\r\nimport { getRegional } from \"../../../services/SystemSVC\";\r\nimport { storageAccUrl } from \"../../utilities/Constants\";\r\nimport PermissionRedirect from \"../../utilities/PermissionRedirect/PermissionRedirect\";\r\nimport { hasPermissions } from \"../../utilities/Utils\";\r\nimport { getAndMountSignature } from \"../../../services/SignatureSVC\";\r\n\r\nexport const WebcastNoticesItem = (props) => {\r\n\r\n let itemId = props.match.params.id;\r\n\r\n const { t } = useTranslation();\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const { releaseState, setReleaseState, showSendContent, setShowSendContent, setRedirectId, redirectId } = React.useContext(ReleaseStateContext);\r\n const [redirect, setRedirect] = React.useState(false);\r\n const [showDialog, setShowDialog] = React.useState(false);\r\n const [dialogDelete, setDialogDelete] = React.useState(false);\r\n const [regionalId, setRegionalId] = React.useState(null);\r\n const [openModalRegional, setOpenModalRegional] = React.useState(false);\r\n const [regionalList, setRegionalList] = React.useState([]);\r\n const [fwdConfirmationModal, setFwdConfirmationModal] = React.useState(false);\r\n const [disabledBtn, setDisabledBtn] = React.useState(false);\r\n\r\n const modalRef = React.useRef();\r\n\r\n const handleRef = (ref) => {\r\n if (modalRef?.current?.contains(ref?.target)) {\r\n return;\r\n }\r\n setOpenModalRegional(false);\r\n }\r\n\r\n React.useEffect(() => {\r\n if (redirectId) window.location.reload();\r\n }, [redirectId]);\r\n\r\n\r\n let _controls = React.useRef({\r\n area: \"Webcast Notices\",\r\n class: \"WebcastNotice\",\r\n savePrimary: !!itemId,\r\n customPermissions: !itemId,\r\n excludePrimary: true,\r\n urlView: () => setShowDialog(true),\r\n urlPreview: false,\r\n urlDuplicate: itemId ? () => duplicateWebcastNotice() : false,\r\n urlForward: itemId ? () => setOpenModalRegional(true) : false,\r\n urlSave: undefined,\r\n form: \"formReleaseItem\",\r\n urlSend: itemId ? () => setShowSendContent(true) : false,\r\n urlCancel: () => {\r\n setReleaseState({\r\n releaseItem: null,\r\n urlItemId: null,\r\n changeInfo: null\r\n });\r\n setRedirect(true);\r\n },\r\n urlDelete: itemId ? () => setDialogDelete(true) : false\r\n });\r\n\r\n const initialValue = {\r\n id: null,\r\n titulo: \"\",\r\n subtitulo: \"\",\r\n autores: \"\",\r\n idAreaNegocio: 0,\r\n idPais: 0,\r\n idRegional: \"\",\r\n data: new Date(),\r\n aprovadoPor: \"\",\r\n conteudo: null,\r\n bloqueado: false,\r\n language: 1,\r\n historico: []\r\n };\r\n\r\n React.useEffect(() => {\r\n if (itemId) {\r\n async function load() {\r\n let _releaseItem = await getPressItem(globalState.accessToken, itemId, 6)\r\n .then(response => {\r\n if (response.ok)\r\n return response.json()\r\n });\r\n\r\n let mailingSent = await getMailingShippingStatusItems(globalState.accessToken, itemId).then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n _controls.current.customPermissions = itemId ? mailingSent.length === 0 && hasPermissions(13, \"Edit\", globalState) : hasPermissions(13, \"Create\", globalState);\r\n\r\n\r\n setReleaseState(releaseState => ({\r\n ...releaseState,\r\n releaseItem: _releaseItem,\r\n urlItemId: itemId,\r\n mailingStatus: mailingSent\r\n }));\r\n }\r\n load();\r\n }\r\n else {\r\n\r\n setReleaseState({\r\n releaseItem: initialValue,\r\n urlItemId: null,\r\n changeInfo: null,\r\n mailingStatus: []\r\n });\r\n }\r\n }, [itemId]);\r\n\r\n React.useEffect(() => {\r\n const getRegionalList = async () => {\r\n\r\n let _regional = await getRegional(globalState.accessToken).then(\r\n (response) => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n }\r\n );\r\n setRegionalList(_regional);\r\n }\r\n getRegionalList();\r\n\r\n const getRef = () => {\r\n document.addEventListener(\"mousedown\", handleRef);\r\n\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handleRef);\r\n };\r\n };\r\n getRef();\r\n }, []);\r\n\r\n const _export = {\r\n pdf: true,\r\n doc: true,\r\n excel: \"\"\r\n }\r\n\r\n let duplicateWebcastNotice = () => {\r\n duplicatePressItem(globalState.accessToken, itemId, 6)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n } else {\r\n return Promise.reject(response);\r\n }\r\n })\r\n .then(result => {\r\n setRedirect(true);\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n });\r\n }\r\n\r\n const handleDuplicateRegional = () => {\r\n duplicateRegionalRelease()\r\n }\r\n\r\n let duplicateRegionalRelease = async () => {\r\n\r\n const lang = releaseState.releaseItem.idIdioma ? releaseState.releaseItem.idIdioma === 1 ? 'pt' : 'en' : i18n.language;\r\n const {newSig, newSigContent} = await getAndMountSignature(globalState, regionalId, lang);\r\n const conteudo = releaseState.releaseItem.conteudo.replace(//g, `${newSigContent}`)\r\n\r\n duplicateForwardPressItem(globalState.accessToken, itemId, 6, regionalId, conteudo)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n } else {\r\n return Promise.reject(response);\r\n }\r\n })\r\n .then(result => {\r\n setFwdConfirmationModal(result)\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n });\r\n }\r\n\r\n let deleteWebcastNotice = () => {\r\n deletePressItem(globalState.accessToken, itemId, 6)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n } else {\r\n return Promise.reject(response);\r\n }\r\n })\r\n .then(result => {\r\n setRedirect(true);\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n })\r\n }\r\n\r\n return (\r\n <>\r\n {globalState.accessToken === null ? :\r\n redirectId ? :\r\n redirect ? :\r\n showSendContent ? :\r\n <>\r\n \r\n\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    {itemId ? t('WebcastNoticesItem:edit_title') : t('WebcastNoticesItem:create_title')}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {releaseState.releaseItem && releaseState.releaseItem.id &&\r\n \r\n }\r\n {releaseState.releaseItem &&\r\n \r\n }\r\n
    \r\n
    \r\n {releaseState.releaseItem &&\r\n \r\n }\r\n {false &&\r\n \r\n }\r\n {releaseState.releaseItem && Object.keys(releaseState.releaseItem).length > 0 && (releaseState.releaseItem.historico).length > 0 &&\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 \r\n
    \r\n
    \r\n
    \r\n {regionalList.map((regional, index) => (\r\n
    {\r\n setRegionalId(regional.id);\r\n }}\r\n >\r\n

    {i18n.language ===\"pt\" ? regional.nomePt : regional.nomeEn}

    \r\n
    \r\n ))}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setRegionalId(null);\r\n setOpenModalRegional(false);\r\n }}>{t('Actions:cancel')}\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","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { GlobalStateContext } from \"../general/GlobalState\";\r\nimport { createSpinner, showSpinner, setSpinner, hideSpinner } from \"@syncfusion/ej2-react-popups\";\r\nimport { GridComponent, ColumnsDirective, ColumnDirective, ForeignKey, Filter, Inject, VirtualScroll, Sort, ContextMenu, Page, Resize, Edit, Toolbar, ExcelExport } from '@syncfusion/ej2-react-grids';\r\nimport { ComboBoxComponent, AutoCompleteComponent, DropDownListComponent } from '@syncfusion/ej2-react-dropdowns';\r\nimport { TextBoxComponent } from '@syncfusion/ej2-react-inputs';\r\nimport { ButtonComponent } from '@syncfusion/ej2-react-buttons';\r\nimport { DatePickerComponent, DateRangePickerComponent } from \"@syncfusion/ej2-react-calendars\";\r\nimport { getCountries, getAllBusinessAreas, getRegional } from \"../../services/SystemSVC\";\r\nimport { getPressItems, getPressItemsFiltered } from \"../../services/PressSVC\";\r\nimport { users } from \"../../services/UsersSVC\";\r\nimport '../releases/releases.css';\r\nimport { hasPermissions } from \"../utilities/Utils\";\r\nimport { useModal } from \"../../hooks/Modal\";\r\n\r\nexport const AssignmentList = (props) => {\r\n\r\n const { t } = useTranslation();\r\n const { refAssignmentNotice, gridInstance } = props;\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [isVisible, setIsVisible] = React.useState(true);\r\n const [loading, setLoading] = React.useState(true);\r\n const [fillUsersData, setFillUsersData] = React.useState([]);\r\n const [fillBusinessAreaData, setFillBusinessAreaData] = React.useState([]);\r\n const [fillCountriesData, setFillCountriesData] = React.useState([]);\r\n const [fillRegionalData, setFillRegionalData] = React.useState([]);\r\n const [webcastNoticeItems, setAssignmentNoticeItems] = React.useState(null);\r\n const [allAssignmentNotices, setAllAssignmentNotices] = React.useState(null);\r\n const [filteredAssignmentNoticeItems, setFilteredAssignmentNoticeItems] = React.useState({ idTipo: 7, idPais: 6 });\r\n const ddlRegionalRef = React.useRef();\r\n\r\n const { buildDialogMessage } = useModal();\r\n\r\n React.useEffect(() => {\r\n if (loading) {\r\n createSpinner({ target: document.getElementById('loadAssignmentNotices') });\r\n showSpinner(document.getElementById('loadAssignmentNotices'));\r\n setSpinner({ type: 'Bootstrap' });\r\n }\r\n }, [loading]);\r\n\r\n React.useEffect(() => {\r\n if (gridInstance)\r\n gridInstance.refresh();\r\n }, [i18n.language]);\r\n\r\n React.useEffect(() => {\r\n setLoading(true);\r\n async function load() {\r\n let _users = await users(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n let _businessAreas = await getAllBusinessAreas(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n let _countries = await getCountries(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n let _regional = await getRegional(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n const filterQstring = globalState.regional ? `?$filter=idRegional eq ${globalState.regional.id}` : \"\";\r\n let _pressItems = await getPressItems(globalState.accessToken, 7, filterQstring)\r\n .then(response => { if (response.ok) { return response.json() } });\r\n\r\n if (_pressItems) {\r\n _pressItems = _pressItems.filter(item => {\r\n item.bloqueado = item.bloqueado ? i18n.language ===\"pt\" ? \"Bloqueado\" : \"Blocked\" : i18n.language ===\"pt\" ? \"Terminado\" : \"Finished\";\r\n return item;\r\n });\r\n\r\n setAssignmentNoticeItems(_pressItems);\r\n setAllAssignmentNotices(_pressItems);\r\n }\r\n\r\n let oldUsers = _pressItems?.map(item => {\r\n return { nome: item.autores }\r\n });\r\n\r\n const set = new Set();\r\n const newUsers = oldUsers.filter(item => {\r\n const duplicate = set.has(item?.nome);\r\n set.add(item?.nome);\r\n\r\n return !duplicate;\r\n })\r\n\r\n const newBusinessAreas = [..._businessAreas, { id: - 1, nomeEn: \"All\", nomePt: \"Todos\" }]\r\n const countries = [..._countries, { id: - 1, nomeEn: \"All\", nomePt: \"Todos\" }]\r\n const newRegional = [..._regional, { id: - 1, nomeEn: \"All\", nomePt: \"Todos\" }]\r\n\r\n setFillUsersData(newUsers);\r\n setFillBusinessAreaData(newBusinessAreas);\r\n setFillCountriesData(countries);\r\n setFillRegionalData(newRegional);\r\n\r\n hideSpinner(document.getElementById('loadAssignmentNotices'));\r\n setLoading(false);\r\n }\r\n load();\r\n }, [i18n.language]);\r\n\r\n React.useEffect(()=>{\r\n if(fillRegionalData.length && !loading){\r\n if(globalState.regional)\r\n ddlRegionalRef.current.value = globalState.regional.id;\r\n else\r\n setIsVisible(false);\r\n }\r\n },[fillRegionalData, loading]);\r\n\r\n const statusAssignmentNotice = [{\r\n text: i18n.language ==='pt' ? 'Bloqueado' : 'Blocked',\r\n value: true\r\n }, {\r\n text: i18n.language ==='pt' ? 'Terminado' : 'Finished',\r\n value: false\r\n }, {\r\n text: i18n.language ==='pt' ? 'Todos' : 'All',\r\n value: null\r\n }\r\n ]\r\n\r\n const filteredAssignmentNotices = async () => {\r\n if (filteredAssignmentNoticeItems) {\r\n let _filteredAssignmentNotices = await getPressItemsFiltered(globalState.accessToken, filteredAssignmentNoticeItems, 7)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n\r\n _filteredAssignmentNotices = _filteredAssignmentNotices.filter(item => {\r\n item.bloqueado = item.bloqueado ? i18n.language ===\"pt\" ? \"Bloqueado\" : \"Blocked\" : i18n.language ===\"pt\" ? \"Terminado\" : \"Finished\";\r\n return item;\r\n });\r\n setAssignmentNoticeItems(_filteredAssignmentNotices);\r\n\r\n\r\n setIsVisible(false);\r\n } else {\r\n setAssignmentNoticeItems(allAssignmentNotices);\r\n }\r\n }\r\n\r\n let webcastNoticeDate = (args) => {\r\n const dateAssignmentNotice = new Date(args.data);\r\n return (\r\n {dateAssignmentNotice.toLocaleDateString(i18n.language)}\r\n )\r\n }\r\n\r\n let webcastNoticeTitle = (args) => {\r\n return (\r\n props.edit(args)}> { args.titulo}\r\n );\r\n }\r\n\r\n let webcastNoticeStatus = (args) => {\r\n if (args.bloqueado === 'Bloqueado') {\r\n return ({i18n.language ==='pt' ? 'Bloqueado' : 'Blocked'})\r\n } else {\r\n return ({i18n.language ==='pt' ? 'Terminado' : 'Finished'})\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n {loading ?
    :\r\n <>\r\n
    \r\n
    \r\n
    \r\n \r\n

    {t('AssignmentNotices:search_text')}

    \r\n
    \r\n
    \r\n
    \r\n setFilteredAssignmentNoticeItems(\r\n filteredAssignmentNoticeItems => ({\r\n ...filteredAssignmentNoticeItems,\r\n conteudo: e.value\r\n })\r\n )}\r\n />\r\n
    \r\n
    \r\n
    \r\n {!isVisible &&\r\n
    \r\n setIsVisible(!isVisible)}>\r\n \r\n {t('AssignmentNotices:filters')}\r\n \r\n
    \r\n }\r\n {isVisible &&\r\n
    \r\n setIsVisible(!isVisible)}>\r\n \r\n {t('AssignmentNotices:filters')}\r\n \r\n
    \r\n }\r\n
    \r\n filterAssignmentNotices()}\r\n onClick={() => filteredAssignmentNotices()}\r\n >\r\n {t('AssignmentNotices:search')}\r\n \r\n
    \r\n
    \r\n
    \r\n {isVisible &&\r\n
    \r\n setFilteredAssignmentNoticeItems(\r\n filteredAssignmentNoticeItems => ({\r\n ...filteredAssignmentNoticeItems,\r\n dataInicio: e.value && e.value[0].toISOString().split('.')[0],\r\n dataFim: e.value && e.value[1].toISOString().split('.')[0]\r\n })\r\n )}\r\n />\r\n setFilterAssignmentNoticeAuthor(e.value)}\r\n change={(e) => setFilteredAssignmentNoticeItems(\r\n filteredAssignmentNoticeItems => ({\r\n ...filteredAssignmentNoticeItems,\r\n autor: e.value\r\n })\r\n )}\r\n />\r\n setFilteredAssignmentNoticeItems(\r\n filteredAssignmentNoticeItems => ({\r\n ...filteredAssignmentNoticeItems,\r\n idAreaNegocio: e.value\r\n })\r\n )}\r\n\r\n />\r\n setFilterAssignmentNoticeCountry(e.value)}\r\n value={filteredAssignmentNoticeItems ? filteredAssignmentNoticeItems.idPais : \"\"}\r\n change={(e) => setFilteredAssignmentNoticeItems(\r\n filteredAssignmentNoticeItems => ({\r\n ...filteredAssignmentNoticeItems,\r\n idPais: e.value\r\n })\r\n )}\r\n />\r\n ddlRegionalRef.current = ddlComponent}\r\n cssClass=\"e-filled\"\r\n placeholder={t('AssignmentNotices:regional')}\r\n showClearButton\r\n dataSource={fillRegionalData}\r\n fields={{ text: (i18n.language ===\"pt\") ? 'nomePt' : 'nomeEn', value: 'id' }}\r\n value={filteredAssignmentNoticeItems ? filteredAssignmentNoticeItems.idRegional : globalState.regional? globalState.regional.id : ''}\r\n locale={i18n.language}\r\n change={(e) => setFilteredAssignmentNoticeItems(\r\n filteredAssignmentNoticeItems => ({\r\n ...filteredAssignmentNoticeItems,\r\n idRegional: e.value\r\n })\r\n )}\r\n />\r\n setFilteredAssignmentNoticeItems(\r\n filteredAssignmentNoticeItems => ({\r\n ...filteredAssignmentNoticeItems,\r\n bloqueado: e.value\r\n })\r\n )}\r\n />\r\n
    \r\n }\r\n
    \r\n
    \r\n refAssignmentNotice(grid)}\r\n locale={i18n.language}>\r\n \r\n \r\n \r\n \r\n \r\n filterTemplate(i18n.language ===\"pt\" ? item.nomePaisPT : item.nomePaisEN)}\r\n width='350'>\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","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { GlobalStateContext } from \"../../general/GlobalState\";\r\nimport { Container, Row, Col } from \"reactstrap\";\r\nimport { DialogComponent } from \"@syncfusion/ej2-react-popups\";\r\nimport { Actions } from \"../../utilities/Actions\";\r\nimport { MailingStatus } from \"../../releases/MailingStatus\";\r\nimport { Export } from \"../../utilities/Export\";\r\nimport { ChangeHistory } from \"../../releases/ChangeHistory\";\r\nimport { SendItem } from \"../../mailing/SendItem\"\r\nimport { PressForm } from \"../../Shared/PressForm\";\r\nimport { ReleaseStateContext } from \"../../releases/ReleaseState\";\r\nimport { getPressItem, updatePressItem, addPressItem, deletePressItem, duplicatePressItem, getMailingShippingStatusItems, duplicateForwardPressItem } from \"../../../services/PressSVC\";\r\nimport { getRegional } from \"../../../services/SystemSVC\";\r\nimport { storageAccUrl } from \"../../utilities/Constants\";\r\nimport PermissionRedirect from \"../../utilities/PermissionRedirect/PermissionRedirect\";\r\nimport { hasPermissions } from \"../../utilities/Utils\";\r\nimport { getAndMountSignature } from \"../../../services/SignatureSVC\";\r\n\r\nexport const AssignmentNoticesItem = (props) => {\r\n\r\n let itemId = props.match.params.id;\r\n\r\n const { t } = useTranslation();\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const { releaseState, setReleaseState, showSendContent, setShowSendContent, setRedirectId, redirectId } = React.useContext(ReleaseStateContext);\r\n const [redirect, setRedirect] = React.useState(false);\r\n const [showDialog, setShowDialog] = React.useState(false);\r\n const [dialogDelete, setDialogDelete] = React.useState(false);\r\n const [regionalId, setRegionalId] = React.useState(null);\r\n const [openModalRegional, setOpenModalRegional] = React.useState(false);\r\n const [regionalList, setRegionalList] = React.useState([]);\r\n const [fwdConfirmationModal, setFwdConfirmationModal] = React.useState(false);\r\n const [disabledBtn, setDisabledBtn] = React.useState(false);\r\n\r\n const modalRef = React.useRef();\r\n\r\n const handleRef = (ref) => {\r\n if (modalRef?.current?.contains(ref?.target)) {\r\n return;\r\n }\r\n setOpenModalRegional(false);\r\n }\r\n\r\n let _controls = React.useRef({\r\n area: \"AssignmentNoticess\",\r\n class: \"AssignmentNotices\",\r\n savePrimary: !!itemId,\r\n customPermissions: !itemId,\r\n excludePrimary: true,\r\n urlView: () => setShowDialog(true),\r\n urlPreview: false,\r\n urlDuplicate: itemId ? () => duplicateAssignmentNotice() : false,\r\n urlForward: itemId ? () => setOpenModalRegional(true) : false,\r\n urlSave: undefined,\r\n form: \"formReleaseItem\",\r\n urlSend: itemId ? () => setShowSendContent(true) : false,\r\n urlCancel: () => {\r\n setReleaseState({\r\n releaseItem: null,\r\n urlItemId: null,\r\n changeInfo: null\r\n });\r\n setRedirect(true);\r\n },\r\n urlDelete: itemId ? () => setDialogDelete(true) : false\r\n });\r\n\r\n const initialValue = {\r\n id: null,\r\n titulo: \"\",\r\n subtitulo: \"\",\r\n autores: \"\",\r\n idAreaNegocio: 0,\r\n idPais: 0,\r\n idRegional: \"\",\r\n data: new Date(),\r\n aprovadoPor: \"\",\r\n conteudo: null,\r\n bloqueado: false,\r\n language: 1,\r\n historico: []\r\n };\r\n\r\n React.useEffect(() => {\r\n if (itemId) {\r\n async function load() {\r\n let _releaseItem = await getPressItem(globalState.accessToken, itemId, 7)\r\n .then(response => {\r\n if (response.ok)\r\n return response.json()\r\n });\r\n\r\n let mailingSent = await getMailingShippingStatusItems(globalState.accessToken, itemId).then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n _controls.current.customPermissions = itemId ? mailingSent.length === 0 && hasPermissions(14, \"Edit\", globalState) : hasPermissions(14, \"Create\", globalState);\r\n\r\n setReleaseState(releaseState => ({\r\n ...releaseState,\r\n releaseItem: _releaseItem,\r\n urlItemId: itemId,\r\n mailingStatus: mailingSent\r\n }));\r\n }\r\n load();\r\n }\r\n else {\r\n\r\n setReleaseState({\r\n releaseItem: initialValue,\r\n urlItemId: null,\r\n changeInfo: null,\r\n mailingStatus: []\r\n });\r\n }\r\n }, [itemId]);\r\n\r\n React.useEffect(() => {\r\n const getRegionalList = async () => {\r\n\r\n let _regional = await getRegional(globalState.accessToken).then(\r\n (response) => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n }\r\n );\r\n setRegionalList(_regional);\r\n }\r\n getRegionalList();\r\n\r\n const getRef = () => {\r\n document.addEventListener(\"mousedown\", handleRef);\r\n\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handleRef);\r\n };\r\n };\r\n getRef();\r\n }, []);\r\n\r\n const _export = {\r\n pdf: true,\r\n doc: true,\r\n excel: \"\"\r\n }\r\n\r\n let duplicateAssignmentNotice = () => {\r\n duplicatePressItem(globalState.accessToken, itemId, 7)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n } else {\r\n return Promise.reject(response);\r\n }\r\n })\r\n .then(result => {\r\n setRedirect(true);\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n });\r\n }\r\n\r\n const handleDuplicateRegional = () => {\r\n duplicateRegionalRelease();\r\n }\r\n\r\n let duplicateRegionalRelease = async () => {\r\n\r\n\t\t\tconst lang = releaseState.releaseItem.idIdioma ? releaseState.releaseItem.idIdioma === 1 ? 'pt' : 'en' : i18n.language;\r\n\t\t\tconst {newSig, newSigContent} = await getAndMountSignature(globalState, regionalId, lang);\r\n\t\t\tconst conteudo = releaseState.releaseItem.conteudo.replace(//g, `${newSigContent}`)\r\n\r\n duplicateForwardPressItem(globalState.accessToken, itemId, 7, regionalId, conteudo)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n } else {\r\n return Promise.reject(response);\r\n }\r\n })\r\n .then(result => {\r\n setFwdConfirmationModal(result)\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n });\r\n }\r\n\r\n let deleteAssignmentNotices = () => {\r\n deletePressItem(globalState.accessToken, itemId, 7)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n } else {\r\n return Promise.reject(response);\r\n }\r\n })\r\n .then(result => {\r\n setRedirect(true);\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n })\r\n }\r\n\r\n return (\r\n <>\r\n {globalState.accessToken === null ? :\r\n redirectId ? :\r\n redirect ? :\r\n showSendContent ? :\r\n <>\r\n \r\n\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    {itemId ? t('AssignmentNoticesItem:edit_title') : t('AssignmentNoticesItem:create_title')}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {releaseState.releaseItem && releaseState.releaseItem.id &&\r\n \r\n }\r\n {releaseState.releaseItem &&\r\n \r\n }\r\n
    \r\n
    \r\n {releaseState.releaseItem &&\r\n \r\n }\r\n {false &&\r\n \r\n }\r\n {releaseState.releaseItem && Object.keys(releaseState.releaseItem).length > 0 && (releaseState.releaseItem.historico).length > 0 &&\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 \r\n
    \r\n
    \r\n
    \r\n {regionalList.map((regional, index) => (\r\n
    {\r\n setRegionalId(regional.id);\r\n }}\r\n >\r\n

    {i18n.language ===\"pt\" ? regional.nomePt : regional.nomeEn}

    \r\n
    \r\n ))}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setRegionalId(null);\r\n setOpenModalRegional(false);\r\n }}>{t('Actions:cancel')}\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","import * as React from \"react\";\r\nimport { Container, Row } from \"reactstrap\";\r\nimport PermissionRedirect from \"../utilities/PermissionRedirect/PermissionRedirect\";\r\nimport { FolderManager } from \"../home/FolderManager\";\r\nimport { Redirect } from 'react-router-dom';\r\nimport { GlobalStateContext } from '../general/GlobalState';\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport const SharedDocumentsComponent = ({ path, permissionId, title, folderManagerTitle, pub }) => {\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const { t } = useTranslation();\r\n\r\n return (\r\n <>\r\n \r\n {globalState.accessToken === null && permissionId ? (\r\n \r\n ) : <>\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    { title || t(\"MyDocuments:sharedDocuments\") }

    \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","import * as React from \"react\";\r\nimport { SharedDocumentsComponent } from './SharedDocumentsComponent';\r\n\r\nexport const PressSharedDocuments = () => {\r\n return \r\n}","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Container, Row } from \"reactstrap\";\r\nimport { GlobalStateContext } from '../general/GlobalState';\r\nimport { FolderManager } from \"../home/FolderManager\";\r\nimport FileManager from \"../utilities/SharedDocument\"\r\n\r\nimport '../login/login.css';\r\n\r\nexport const PublicSharedDocuments = (props) => {\r\n\r\n const [globalState, setGlobalState] = React.useContext(GlobalStateContext);\r\n const { t } = useTranslation();\r\n\r\n return (\r\n <>\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    { t(\"MyDocuments:sharedDocuments\") }

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {/* */}\r\n
    \r\n
    \r\n

    \r\n {t('MyDocuments:title')}\r\n

    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n}\r\n","export class Login {\r\n constructor(email, password) {\r\n this.email = email;\r\n this.password = password;\r\n }\r\n}","import * as React from \"react\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport { useTranslation } from 'react-i18next';\r\nimport { GlobalStateContext } from '../general/GlobalState';\r\nimport { LoginStateContext } from './LoginState';\r\nimport { ProgressButtonComponent } from '@syncfusion/ej2-react-splitbuttons';\r\nimport { TextBoxComponent } from '@syncfusion/ej2-react-inputs';\r\nimport { ButtonComponent } from '@syncfusion/ej2-react-buttons';\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { login } from \"../../services/UsersSVC\";\r\nimport { Login } from \"../../models/LoginModels\";\r\nimport { useLastLocation } from 'react-router-last-location';\r\n\r\nexport const EnterComponent = () => {\r\n\r\n const [loginState, setLoginState, redirectMessage, setRedirectMessage] = React.useContext(LoginStateContext);\r\n const [globalState, setGlobalState] = React.useContext(GlobalStateContext);\r\n\r\n const { t } = useTranslation();\r\n\r\n const [errorMsg, setErrorMsg] = React.useState(null);\r\n\r\n const [toHome, setToHome] = React.useState(false);\r\n const [validateEmail, setValidateEmail] = React.useState(true);\r\n const [validatePassword, setValidatePassword] = React.useState(true);\r\n const [processing, setProcessing] = React.useState('e-success e-small');\r\n const { handleSubmit, register, triggerValidation } = useForm({ nativeValidation: true });\r\n\r\n const htmlEmailAttributes = { name: \"email\", type: \"email\", maxlength: \"100\" };\r\n const htmlPasswordAttributes = { name: \"password\", type: \"password\", maxlength: \"100\" };\r\n const lastLocation = useLastLocation();\r\n\r\n const onSubmit = async (data) => {\r\n contractBegin();\r\n login(new Login((data.Email).toLowerCase(), data.Password))\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n } else {\r\n return Promise.reject(response);\r\n }\r\n })\r\n .then(result => {\r\n var reg = result.regional !==null ? result.regional : null;\r\n setGlobalState(globalState => ({\r\n ...globalState,\r\n userAdmin: result.adminGlobal,\r\n accessToken: result.token,\r\n tokenLightWeight: result.tokenLightWeight,\r\n userName: result.nome,\r\n userPhoto: `${process.env.REACT_APP_API_URL}/_api/Users/GetUserPhoto?token=${result.tokenLightWeight}&userId=${result.id}`,\r\n userEmail: data.Email.toLowerCase(),\r\n userId: result.id,\r\n userAdmin: result.adminGlobal,\r\n regional: reg,\r\n fornecedor: result.fornecedor,\r\n permissions: result.permissoes && result.permissoes.length > 0 ?\r\n result.permissoes.map((item, index) => ({\r\n idAccessArea: item.idAreaAcesso,\r\n accessArea: item.areaAcesso,\r\n permission: item.permissao,\r\n idAreaAcesso: item.idAreaAcesso,\r\n idPermissao: item.idPermissao\r\n })) :\r\n []\r\n }));\r\n //localStorage.setItem(\"NovoCGCUserCache\", JSON.stringify(globalState));\r\n //contractEnd();\r\n setToHome(true);\r\n setLoginState(loginState => ({ ...loginState, step: 0 }));\r\n\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n setErrorMsg(error.statusText);\r\n setRedirectMessage(\"\");\r\n setValidateEmail(false);\r\n setValidatePassword(false);\r\n });\r\n\r\n };\r\n\r\n let contractBegin = () => {\r\n setProcessing('e-success e-small e-round');\r\n }\r\n\r\n let contractEnd = () => {\r\n setProcessing('e-success e-small');\r\n }\r\n\r\n let beforeSubmit = async (e) => {\r\n e.preventDefault();\r\n const filledInEmail = await triggerValidation(\"Email\");\r\n const filledInPassword = await triggerValidation(\"Password\");\r\n if (filledInEmail || filledInPassword) {\r\n setRedirectMessage(\"\");\r\n }\r\n setValidateEmail(filledInEmail);\r\n setValidatePassword(filledInPassword);\r\n handleSubmit(onSubmit)();\r\n }\r\n\r\n let forgotPassword = () => {\r\n setLoginState(loginState => ({ ...loginState, step: 2 }));\r\n }\r\n\r\n React.useEffect(() => {\r\n if (globalState.accessToken) {\r\n localStorage.setItem(\"NovoCGCUserCache\", JSON.stringify(globalState));\r\n contractEnd();\r\n setToHome(true);\r\n }\r\n }, [globalState]);\r\n\r\n React.useEffect(() => {\r\n if (toHome) {\r\n console.log(lastLocation);\r\n }\r\n }, [toHome]);\r\n\r\n return (\r\n <>\r\n {toHome ? :\r\n <>\r\n
    \r\n

    {t('Enter:welcome_message')}

    \r\n

    {t('Enter:login_message')}

    \r\n
    beforeSubmit(e)}>\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n {(!validateEmail || !validatePassword) ?\r\n
    \r\n {t('Enter:invalid_message')}\r\n
    \r\n :\r\n errorMsg &&\r\n
    \r\n {errorMsg}\r\n
    \r\n }\r\n
    \r\n {redirectMessage}\r\n
    \r\n
    \r\n forgotPassword()}>{t('Enter:forgot_password')}\r\n contractBegin} end={() => contractEnd} isPrimary>\r\n
    \r\n
    \r\n
    \r\n \r\n }\r\n \r\n );\r\n}","import * as React from \"react\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport { useTranslation } from 'react-i18next';\r\nimport { LoginStateContext } from './LoginState';\r\nimport { ProgressButtonComponent } from '@syncfusion/ej2-react-splitbuttons';\r\nimport { TextBoxComponent } from '@syncfusion/ej2-react-inputs';\r\nimport { ButtonComponent } from \"@syncfusion/ej2-react-buttons\";\r\nimport { forgot } from \"../../services/UsersSVC\";\r\n\r\nexport const ForgotComponent = () => {\r\n\r\n const [loginState, setLoginState, redirectMessage, setRedirectMessage] = React.useContext(LoginStateContext);\r\n\r\n const { t } = useTranslation();\r\n\r\n const [errorMsg, setErrorMsg] = React.useState(null);\r\n\r\n const { handleSubmit, register, triggerValidation, watch } = useForm({ nativeValidation: true });\r\n const htmlEmailAttributes = { type: \"email\", maxlength: \"100\", autoCapitalize: false };\r\n const [validateForgot, setValidateForgot] = React.useState(true);\r\n const [validatecConfirm, setValidateConfirm] = React.useState(true);\r\n const [similarEmail, setSimilarEmail] = React.useState(true);\r\n\r\n const onSubmit = async (data) => {\r\n forgot(data.Email)\r\n .then(response => {\r\n if (response.ok) {\r\n setRedirectMessage(\"Email enviado com sucesso\");\r\n setLoginState(loginState => ({ ...loginState, step: 1 }));\r\n return response.text();\r\n } else {\r\n return Promise.reject(response);\r\n }\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n setErrorMsg(error.statusText);\r\n });\r\n };\r\n\r\n let changeSolicitation = async () => {\r\n const triggerForgot = await triggerValidation(\"Email\");\r\n const triggerConfirm = await triggerValidation(\"Confirm\");\r\n const watchForgot = watch(\"Email\").toLowerCase();\r\n const watchConfirm = watch(\"Confirm\").toLowerCase();\r\n\r\n setValidateForgot(triggerForgot);\r\n setValidateConfirm(triggerConfirm);\r\n\r\n if (!triggerForgot || !triggerConfirm) {\r\n setValidateForgot(false);\r\n setValidateConfirm(false);\r\n }\r\n\r\n if (watchConfirm !==watchForgot) {\r\n setSimilarEmail(false);\r\n }\r\n\r\n if ((watchConfirm ===watchForgot) && triggerForgot && triggerConfirm) {\r\n handleSubmit(onSubmit)();\r\n }\r\n };\r\n\r\n let backLogin = () => {\r\n setLoginState(loginState => ({ ...loginState, step: 1 }));\r\n }\r\n\r\n return (\r\n <>\r\n
    \r\n

    {t('Forgot:forgot_title')}

    \r\n

    {t('Forgot:forgot_message')}

    \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 {(!validateForgot || !validatecConfirm) ?\r\n
    \r\n {t('Forgot:invalid_email_message')}\r\n
    \r\n :\r\n errorMsg &&\r\n
    \r\n {errorMsg}\r\n
    \r\n }\r\n\r\n {!similarEmail &&\r\n
    \r\n {t('Forgot:different_email_message')}\r\n
    \r\n }\r\n\r\n
    \r\n backLogin()}>{t('Forgot:backButton')}\r\n changeSolicitation()} enableProgress isPrimary>\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n );\r\n}","import * as React from \"react\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport { useTranslation } from 'react-i18next';\r\nimport { GlobalStateContext } from '../general/GlobalState';\r\nimport { LoginStateContext } from './LoginState';\r\nimport { ProgressButtonComponent } from '@syncfusion/ej2-react-splitbuttons';\r\nimport { TextBoxComponent } from '@syncfusion/ej2-react-inputs';\r\nimport { reset } from './../../services/UsersSVC';\r\n\r\nexport const ResetComponent = () => {\r\n\r\n const [loginState, setLoginState] = React.useContext(LoginStateContext);\r\n\r\n const { t } = useTranslation();\r\n\r\n const [errorMsg, setErrorMsg] = React.useState(null);\r\n\r\n const { handleSubmit, register, triggerValidation, watch } = useForm({ nativeValidation: true });\r\n const [validateReset, setValidateReset] = React.useState(true);\r\n const [validatecConfirm, setValidateConfirm] = React.useState(true);\r\n const [similarPassword, setSimilarPassword] = React.useState(true);\r\n const htmlPasswordAttributes = { name: \"password\", type: \"password\", maxlength: \"100\" };\r\n\r\n\r\n const onSubmit = async (data) => {\r\n const url = window.location.search;\r\n const tokenReset = url.slice(url.indexOf('=') + 1).split('&')[0];\r\n\r\n reset(tokenReset, data.NewPassword)\r\n .then(response => {\r\n if (response.ok) {\r\n setLoginState(loginState => ({ ...loginState, step: 1 }));\r\n } else {\r\n return Promise.reject(response);\r\n }\r\n })\r\n .catch(error => {\r\n console.error(error);\r\n setErrorMsg(error.statusText);\r\n setValidateReset(false);\r\n setValidateConfirm(false);\r\n });\r\n };\r\n\r\n let changePassword = async () => {\r\n const triggerReset = await triggerValidation(\"NewPassword\");\r\n const triggerConfirm = await triggerValidation(\"ConfirmPassword\");\r\n const watchReset = watch(\"NewPassword\");\r\n const watchConfirm = watch(\"ConfirmPassword\");\r\n\r\n setValidateReset(triggerReset);\r\n setValidateConfirm(triggerConfirm);\r\n\r\n if (!triggerReset || !triggerConfirm) {\r\n setValidateReset(false);\r\n setValidateConfirm(false);\r\n }\r\n\r\n if (watchConfirm !==watchReset) {\r\n setSimilarPassword(false);\r\n }\r\n\r\n if ((watchConfirm ===watchReset) && triggerReset && triggerConfirm) {\r\n handleSubmit(onSubmit)();\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n
    \r\n

    {t('Reset:reset_title')}

    \r\n

    {t('Reset:reset_message')}

    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n {(!validateReset || !validatecConfirm) ?\r\n
    \r\n {t('Reset:invalid_password_message')}\r\n
    \r\n :\r\n errorMsg &&\r\n
    \r\n {errorMsg}\r\n
    \r\n }\r\n {!similarPassword &&\r\n
    \r\n {t('Reset:different_password_message')}\r\n
    \r\n }\r\n
    \r\n changePassword()} enableProgress isPrimary>\r\n
    \r\n \r\n );\r\n};\r\n\r\n","import * as React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { GlobalStateContext } from '../general/GlobalState';\r\nimport { LoginStateContext } from '../login/LoginState';\r\nimport { EnterComponent } from '../login/EnterComponent';\r\nimport { ForgotComponent } from '../login/ForgotComponent';\r\nimport { ResetComponent } from '../login/ResetComponent';\r\nimport { ReactComponent as ReactLogo } from '../../css/imgs/logo_vale.svg';\r\nimport '../login/login.css';\r\n\r\nexport const LoginComponent = () => {\r\n\r\n const [loginState] = React.useContext(LoginStateContext);\r\n const [globalState, setGlobalState] = React.useContext(GlobalStateContext);\r\n const { t } = useTranslation(); \r\n\r\n const stepLogin = loginState.step ===1 ? \"enter\" : loginState.step ===2 ? \"forgot\" : loginState.step ===3 ? \"reset\" : \"\";\r\n // const login = globalState.accessToken !==null ? \"\" : \"login\";\r\n\r\n return (\r\n
    \r\n
    \r\n {/*
    \r\n
    \r\n {t('Generic:initials')}\r\n {t('Generic:title')}\r\n
    \r\n \r\n
    */}\r\n {loginState.step ===1 &&\r\n \r\n }\r\n {loginState.step ===2 &&\r\n \r\n }\r\n {loginState.step ===3 &&\r\n \r\n }\r\n
    \r\n
    \r\n );\r\n}\r\n\r\n// Criar função que envia formulário ao clicar na tecla Enter para todo os formulários","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Link } from \"react-router-dom\";\r\nimport { GlobalStateContext } from '../general/GlobalState';\r\nimport { Container, Row } from \"reactstrap\";\r\n\r\nexport const Breadcrumbs = ({ crumbs }) => {\r\n const { t } = useTranslation();\r\n\r\n const renderBreadcrumb = (item, i) => {\r\n let render;\r\n const name = i18n.language ===\"pt\" ? item.namePt : item.nameEn\r\n\r\n if (!item.breadcrumb || !item.breadcrumb.ignore) {\r\n if (item.breadcrumb && item.breadcrumb.noLink) {\r\n render =\r\n \r\n }\r\n else {\r\n render =\r\n \r\n {t('Breadcrumb:' + name)}\r\n \r\n }\r\n if (i + 1 !== crumbs.length)\r\n render =\r\n \r\n {render}\r\n \r\n ;\r\n }\r\n return render;\r\n }\r\n\r\n const crumbsFiltered = crumbs.filter((c, i) => i ===crumbs.length - 1 && c.breadcrumb && c.breadcrumb.ignore);\r\n crumbs = crumbsFiltered.length > 0 ? [] : crumbs;\r\n if (crumbs.length > 0) {\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {crumbs.map((item, key) =>\r\n renderBreadcrumb(item, key)\r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n else\r\n return <>\r\n};\r\n","import * as React from \"react\";\r\nimport { SharedDocumentsComponent } from './SharedDocumentsComponent';\r\n\r\nexport const PlanningAndResearch = () => {\r\n return \r\n}","import * as React from \"react\";\r\nimport { SharedDocumentsComponent } from './SharedDocumentsComponent';\r\n\r\nexport const EventsVisits = () => {\r\n return \r\n}","import * as React from \"react\";\r\nimport { SharedDocumentsComponent } from './SharedDocumentsComponent';\r\n\r\nexport const DigitalMediaSharedDocuments = () => {\r\n return \r\n}","import * as React from \"react\";\r\nimport { SharedDocumentsComponent } from './SharedDocumentsComponent';\r\n\r\nexport const CommunicationWithEmployees = () => {\r\n return \r\n}\r\n","import { requestAPI } from '../components/utilities/Utils';\r\n\r\nexport function getMailingContactPhoto(url, callback) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.onreadystatechange = function () {\r\n if (xhr.readyState === 4) {\r\n callback(this.response)\r\n }\r\n }\r\n xhr.open('GET', url);\r\n xhr.responseType = 'blob';\r\n xhr.send();\r\n}\r\n\r\nexport async function getCommunicationEmployeesGroupItems(token, qstring = \"\") {\r\n return requestAPI(\"_api/CommunicationEmployeesGroup/GetCommunicationEmployeesGroupItems\", \"GET\", qstring, null, token, false);\r\n}\r\n\r\nexport async function getCommunicationEmployeesGroupItem(token, id) {\r\n const qstring = `?communicationEmployeesGroupId=${id}`;\r\n return requestAPI(\"_api/CommunicationEmployeesGroup/GetCommunicationEmployeesGroupItem\", \"GET\", qstring, null, token, false);\r\n}\r\n\r\nexport async function addOrUpdateGroupItem(token, body) {\r\n const raw = JSON.stringify(body);\r\n const endPointURL = body.id ? `_api/CommunicationEmployeesGroup/UpdateCommunicationEmployeesGroupItem` : \"_api/CommunicationEmployeesGroup/AddCommunicationEmployeesGroupItem\"\r\n const method = body.id ? \"PUT\" : \"POST\";\r\n return requestAPI(endPointURL, method, \"\", raw, token, false);\r\n}\r\n\r\nexport async function deleteCommunicationEmployeesGroupItem(token, id) {\r\n const qstring = `?communicationEmployeesGroupId=${id}`;\r\n return requestAPI(\"_api/CommunicationEmployeesGroup/DeleteCommunicationEmployeesGroupItem\", \"DELETE\", qstring, null, token, false);\r\n}\r\n\r\nexport async function exportCommunicationEmployeesGroup(token, id, language) {\r\n const qstring = `?communicationEmployeesGroupId=${id}&language=${language}`;\r\n return requestAPI(\"_api/CommunicationEmployeesGroup/ExportCommunicationEmployeesGroup\", \"GET\", qstring, null, token, false);\r\n}\r\n","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { GlobalStateContext } from \"../general/GlobalState\";\r\nimport {\r\n GridComponent,\r\n ColumnsDirective,\r\n ColumnDirective,\r\n ForeignKey,\r\n Filter,\r\n Inject,\r\n Sort,\r\n ContextMenu,\r\n Page,\r\n Resize,\r\n Edit\r\n} from '@syncfusion/ej2-react-grids';\r\nimport { AutoCompleteComponent, DropDownListComponent } from '@syncfusion/ej2-react-dropdowns';\r\nimport { createSpinner, hideSpinner, setSpinner, showSpinner } from '@syncfusion/ej2-react-popups';\r\nimport { ButtonComponent } from '@syncfusion/ej2-react-buttons';\r\nimport { getCountries, getRegional } from \"../../services/SystemSVC\";\r\n\r\nimport { getCommunicationEmployeesGroupItems } from \"../../services/CommunicationEmployeesSVC\";\r\n\r\nexport const CommunicationEmployeesList = () => {\r\n let gridInstance;\r\n\r\n const { t } = useTranslation();\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [isVisible, setIsVisible] = React.useState(false);\r\n const [countriesPt, setCountriesPt] = React.useState([]);\r\n const [countriesEn, setCountriesEn] = React.useState([]);\r\n const [regionalPt, setRegionalPt] = React.useState([]);\r\n const [regionalEn, setRegionalEn] = React.useState([]);\r\n const [loading, setLoading] = React.useState(true);\r\n const [groups, setGroups] = React.useState();\r\n const [CESelected, setCESelected] = React.useState();\r\n const [filter, setFilter] = React.useState({});\r\n\r\n React.useEffect(() => {\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n getCountries(globalState.accessToken).then(response => {\r\n if (response.ok)\r\n response.json().then(resolve);\r\n else\r\n reject();\r\n });\r\n }),\r\n new Promise((resolve, reject) => {\r\n getRegional(globalState.accessToken).then(response => {\r\n if (response.ok)\r\n response.json().then(resolve);\r\n else\r\n reject();\r\n });\r\n })\r\n ];\r\n\r\n Promise.all(promises).then(results => {\r\n const countries = results[0];\r\n const regional = results[1];\r\n\r\n if (countries)\r\n loadCountries(countries);\r\n if (regional)\r\n loadRegional(regional);\r\n\r\n getCommunicationEmployeesGroupItems(globalState.accessToken).then(response => {\r\n if (response.ok) {\r\n response.json().then(results => {\r\n let arrGroups = [];\r\n results.map(item => {\r\n const country = countries.find(_item => _item.id === item.idpais);\r\n if (country) {\r\n item.paisPt = country.nomePt;\r\n item.paisEn = country.nomeEn;\r\n }\r\n const regionalItem = regional.find(_item => _item.id === item.idregional);\r\n if (regionalItem) {\r\n item.regionalPt = regionalItem.nomePt;\r\n item.regionalEn = regionalItem.nomeEn;\r\n }\r\n arrGroups.push(item)\r\n });\r\n setGroups(arrGroups);\r\n });\r\n }\r\n });\r\n });\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n if (loading) {\r\n createSpinner({ target: document.getElementById('loadCEList') });\r\n showSpinner(document.getElementById('loadCEList'));\r\n setSpinner({ type: 'Bootstrap' });\r\n }\r\n }, [loading]);\r\n\r\n React.useEffect(() => {\r\n const elemSpinner = document.getElementById('loadCEList');\r\n if (groups && elemSpinner) {\r\n hideSpinner(elemSpinner);\r\n setLoading(false);\r\n }\r\n }, [groups]);\r\n\r\n const loadCountries = (items) => {\r\n let countriesPt = [];\r\n let countriesEn = [];\r\n items.map(item => {\r\n countriesPt.push({ id: item.id, nome: item.nomePt });\r\n countriesEn.push({ id: item.id, nome: item.nomeEn });\r\n });\r\n setCountriesPt(countriesPt);\r\n setCountriesEn(countriesEn);\r\n }\r\n\r\n const loadRegional = (items) => {\r\n let regionalPt = [];\r\n let regionalEn = [];\r\n items.map(item => {\r\n regionalPt.push({ id: item.id, nome: item.nomePt });\r\n regionalEn.push({ id: item.id, nome: item.nomeEn });\r\n });\r\n setRegionalPt(regionalPt);\r\n setRegionalEn(regionalEn);\r\n }\r\n\r\n const autocompleteChange = e => {\r\n setFilter({ ...filter, groupId: e.itemData ? e.itemData.id : null });\r\n }\r\n const dropdownlistChange = e => {\r\n setFilter({ ...filter, [e.element.id]: e.value });\r\n }\r\n\r\n const gridRowSelected = e => {\r\n setCESelected(e.data.id);\r\n }\r\n\r\n const filterGrid = () => {\r\n setIsVisible(false);\r\n if (groups.length) {\r\n let dataFiltered = [...groups];\r\n if (filter.groupId)\r\n dataFiltered = dataFiltered.filter(item => item.id === filter.groupId);\r\n if (filter.countryId)\r\n dataFiltered = dataFiltered.filter(item => item.idpais === filter.countryId);\r\n if (filter.regionalId)\r\n dataFiltered = dataFiltered.filter(item => item.idregional === filter.regionalId);\r\n\r\n gridInstance.dataSource = dataFiltered;\r\n }\r\n }\r\n\r\n const nameTemplate = (args) => {\r\n return (\r\n <>\r\n {args.nome}\r\n \r\n );\r\n }\r\n\r\n React.useEffect(() => {\r\n if (gridInstance)\r\n gridInstance.refresh();\r\n }, [i18n.language]);\r\n\r\n return (\r\n CESelected ? :\r\n <>\r\n
    \r\n
    \r\n
    \r\n \r\n

    {t('CEGroups:search_text')}

    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {!isVisible &&\r\n
    \r\n setIsVisible(!isVisible)}>\r\n \r\n {t('CEGroups:filters')}\r\n \r\n
    \r\n }\r\n {isVisible &&\r\n
    \r\n setIsVisible(!isVisible)}>\r\n \r\n {t('CEGroups:filters')}\r\n \r\n
    \r\n }\r\n
    \r\n \r\n {t('CEGroups:search')}\r\n \r\n
    \r\n
    \r\n
    \r\n {isVisible &&\r\n
    \r\n \r\n \r\n
    \r\n }\r\n
    \r\n
    \r\n gridInstance = gridComponent}\r\n dataSource={groups}\r\n filterSettings={{ type: 'Menu' }}\r\n allowFiltering={false}\r\n allowPaging={true}\r\n allowSorting={true}\r\n rowSelected={gridRowSelected}\r\n locale={i18n.language}>\r\n \r\n nameTemplate(args)}\r\n headerText={t('CEGroups:name')}\r\n width='200'>\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","import * as React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { GlobalStateContext } from \"../general/GlobalState\";\r\nimport { Container, Row } from \"reactstrap\";\r\nimport { Buttons } from \"../utilities/Buttons\";\r\nimport { CommunicationEmployeesList } from \"./CommunicationEmployeesList\";\r\nimport PermissionRedirect from \"../utilities/PermissionRedirect/PermissionRedirect\";\r\n\r\nlet userPermission;\r\n\r\nexport const CommunicationEmployees = () => {\r\n\r\n const { t } = useTranslation();\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [redirect, setRedirect] = React.useState(false);\r\n const [loading, setLoading] = React.useState(false);\r\n\r\n React.useEffect(() => {\r\n let globalPermissions = globalState.permissions;\r\n userPermission = globalPermissions.filter((i) => i.idAreaAcesso === 75).map((i) => (i.permission));\r\n setLoading(true);\r\n }, [globalState]);\r\n\r\n const _controls = {\r\n permit: userPermission ? userPermission : null,\r\n export: false,\r\n import: \"\",\r\n new: () => setRedirect(true),\r\n back: \"\",\r\n };\r\n\r\n return (\r\n <>\r\n {globalState.accessToken === null ? :\r\n redirect ? (\r\n \r\n ) : (\r\n loading &&\r\n <>\r\n \r\n\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    {t('CEGroups:title')}

    \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","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { GlobalStateContext } from \"../general/GlobalState\";\r\nimport { Container, Row } from \"reactstrap\";\r\nimport { Actions } from \"../utilities/Actions\";\r\nimport { TextBoxComponent, FormValidator } from \"@syncfusion/ej2-react-inputs\";\r\nimport { AutoCompleteComponent, DropDownListComponent } from \"@syncfusion/ej2-react-dropdowns\";\r\nimport { ChipListComponent } from '@syncfusion/ej2-react-buttons';\r\nimport { createSpinner, hideSpinner, setSpinner, showSpinner, DialogComponent } from '@syncfusion/ej2-react-popups';\r\nimport { DataManager, Query, ODataV4Adaptor, Predicate } from '@syncfusion/ej2-data';\r\nimport './communicationEmployees.css';\r\nimport { Export } from \"../utilities/Export\";\r\nimport { getCountries, getRegional } from \"../../services/SystemSVC\";\r\nimport PermissionRedirect from \"../utilities/PermissionRedirect/PermissionRedirect\";\r\nimport { hasPermissions } from \"../utilities/Utils\";\r\n\r\nimport {\r\n addOrUpdateGroupItem,\r\n getCommunicationEmployeesGroupItem,\r\n deleteCommunicationEmployeesGroupItem,\r\n exportCommunicationEmployeesGroup\r\n} from \"../../services/CommunicationEmployeesSVC\";\r\n\r\nexport const CommunicationEmployeesItem = (props) => {\r\n let txtGroupNameRef;\r\n let autocompleteRef;\r\n let formRef;\r\n let idGroup = props.match.params.id;\r\n\r\n const { t } = useTranslation();\r\n const initialValue = {\r\n nome: \"\",\r\n idpais: 6,\r\n idregional: null,\r\n conjunto: null,\r\n membrosGrupo: null,\r\n gruposConjunto: null\r\n }\r\n\r\n const initialValueSteps = {\r\n stepCountriesPt: false,\r\n stepCountriesEn: false,\r\n stepRegionalPt: false,\r\n stepRegionalEn: false,\r\n stepGroupItem: !idGroup\r\n }\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [redirect, setRedirect] = React.useState(false);\r\n const [countriesPt, setCountriesPt] = React.useState();\r\n const [countriesEn, setCountriesEn] = React.useState();\r\n const [regionsPt, setRegionsPt] = React.useState();\r\n const [regionsEn, setRegionsEn] = React.useState();\r\n const [itemsSelected, setItemsSelected] = React.useState([]);\r\n const [groupItem, setGroupItem] = React.useState(initialValue);\r\n const [loading, setLoading] = React.useState(true);\r\n const [steps, setSteps] = React.useState(initialValueSteps);\r\n const [dialogDelete, setDialogDelete] = React.useState(false);\r\n const [disabledBtn, setDisabledBtn] = React.useState(false);\r\n\r\n const _controls = {\r\n class: \"group\",\r\n savePrimary: false,\r\n excludePrimary: true,\r\n customPermissions: idGroup ? hasPermissions(75, \"Edit\", globalState) : hasPermissions(75, \"Create\", globalState),\r\n urlView: \"\",\r\n urlPreview: \"\",\r\n area: \"Grupos Comunicação com Empregados\",\r\n customPermissionsDelete: idGroup && hasPermissions(75, \"Delete\", globalState),\r\n urlDuplicate: \"\",\r\n urlSave: () => {\r\n if (formRef.validate()) {\r\n setDisabledBtn(true);\r\n let data = groupItem;\r\n if (idGroup) {\r\n data.ativo = true;\r\n }\r\n data.membrosGrupo = itemsSelected;\r\n addOrUpdateGroupItem(globalState.accessToken, data).then(response => {\r\n setRedirect(response.ok)\r\n setDisabledBtn(false);\r\n }).catch(() => {\r\n setDisabledBtn(false);\r\n });\r\n }\r\n },\r\n urlSend: \"\",\r\n urlCancel: () => setRedirect(true),\r\n urlDelete: idGroup ? () => setDialogDelete(true) : \"\"\r\n };\r\n\r\n const _export = {\r\n pdf: \"\",\r\n doc: \"\",\r\n excel: idGroup ? () => exportGroupContacts() : \"\"\r\n }\r\n\r\n const dataManager = new DataManager({\r\n url: `${process.env.REACT_APP_API_URL}/_api/Users/GetUsers`,\r\n adaptor: new ODataV4Adaptor,\r\n crossDomain: true,\r\n headers: [{ 'Authorization': `Bearer ${globalState.accessToken}` }],\r\n });\r\n\r\n React.useEffect(() => {\r\n const formValidator = {\r\n rules: {\r\n 'nome': {\r\n required: [true, t('Validation:required')]\r\n },\r\n 'idpais': {\r\n required: [true, t('Validation:required')]\r\n }\r\n },\r\n customPlacement: (inputElement, errorElement) => {\r\n inputElement.parentElement.parentElement.appendChild(errorElement);\r\n }\r\n };\r\n formRef = new FormValidator('#formCEGroup', formValidator);\r\n });\r\n\r\n React.useEffect(() => {\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n getCountries(globalState.accessToken).then(response => {\r\n if (response.ok) {\r\n response.json().then(items => {\r\n let arrPt = [];\r\n let arrEn = [];\r\n items.map(item => {\r\n arrPt.push({ id: item.id, nome: item.nomePt });\r\n arrEn.push({ id: item.id, nome: item.nomeEn });\r\n });\r\n setCountriesPt(arrPt);\r\n setCountriesEn(arrEn);\r\n resolve();\r\n });\r\n }\r\n else\r\n reject();\r\n });\r\n\r\n }),\r\n new Promise((resolve, reject) => {\r\n getRegional(globalState.accessToken).then(response => {\r\n if (response.ok) {\r\n response.json().then(items => {\r\n let arrPt = [];\r\n let arrEn = [];\r\n items.map(item => {\r\n arrPt.push({ id: item.id, nome: item.nomePt });\r\n arrEn.push({ id: item.id, nome: item.nomeEn });\r\n });\r\n setRegionsPt(arrPt);\r\n setRegionsEn(arrEn);\r\n resolve();\r\n });\r\n }\r\n else\r\n reject();\r\n });\r\n })\r\n ];\r\n\r\n Promise.all(promises).then(() => {\r\n if (idGroup) {\r\n getCommunicationEmployeesGroupItem(globalState.accessToken, idGroup).then(response => {\r\n if (response.ok) {\r\n response.json().then(e => {\r\n setGroupItem(e)\r\n setItemsSelected(e.membrosGrupo.map(item => { return {...item, text: item.nome} }));\r\n });\r\n }\r\n\r\n });\r\n }\r\n });\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n if (txtGroupNameRef)\r\n txtGroupNameRef.placeholder = t('CEGroup:name_placeholder');\r\n }, [i18n.language]);\r\n\r\n React.useEffect(() => {\r\n setSteps(steps => (\r\n {\r\n ...steps,\r\n stepCountriesPt: countriesPt !== undefined,\r\n stepCountriesEn: countriesEn !== undefined,\r\n stepRegionalPt: regionsPt !== undefined,\r\n stepRegionalEn: regionsEn !== undefined\r\n }\r\n ));\r\n }, [countriesPt, countriesEn, regionsPt, regionsEn]);\r\n\r\n React.useEffect(() => {\r\n const loaded = steps.stepCountriesPt && steps.stepCountriesEn && steps.stepRegionalPt && steps.stepRegionalEn && steps.stepGroupItem;\r\n const elemSpinner = document.getElementById('loadGroup');\r\n if (loaded && elemSpinner) {\r\n hideSpinner(elemSpinner);\r\n setLoading(false);\r\n }\r\n }, [steps]);\r\n\r\n React.useEffect(() => {\r\n if (loading) {\r\n createSpinner({ target: document.getElementById('loadGroup') });\r\n showSpinner(document.getElementById('loadGroup'));\r\n setSpinner({ type: 'Bootstrap' });\r\n }\r\n }, [loading]);\r\n\r\n React.useEffect(() => {\r\n if (idGroup && groupItem.id)\r\n setSteps(steps => ({ ...steps, stepGroupItem: true }));\r\n }, [groupItem]);\r\n\r\n React.useEffect(() => {\r\n if (autocompleteRef)\r\n autocompleteRef.value = \"\";\r\n }, [itemsSelected]);\r\n\r\n const inputChange = e => {\r\n if (e.event)\r\n setGroupItem({ ...groupItem, [e.event.currentTarget.id]: e.value });\r\n }\r\n\r\n const dropdownlistChange = e => {\r\n if (e.element) {\r\n setGroupItem({ ...groupItem, [e.element.id]: e.value });\r\n }\r\n }\r\n\r\n const autocompleteSelect = e => {\r\n if (e.itemData) {\r\n const itemFound = itemsSelected.find(item => item.id === e.itemData.id);\r\n if (!itemFound) {\r\n setItemsSelected(itemsSelected => [...itemsSelected, { text: e.itemData.nome, id: e.itemData.id }]);\r\n }\r\n }\r\n }\r\n\r\n const autocompleteFiltering = e => {\r\n e.preventDefaultAction = true;\r\n var predicate = new Predicate('nome', 'contains', e.text, true);\r\n var query = new Query();\r\n //frame the query based on search string with filter type.\r\n query = (e.text !== \"\") ? query.where(predicate) : query;\r\n //pass the filter data source, filter query to updateData method.\r\n e.updateData(dataManager, query);\r\n }\r\n\r\n const handleFormSubmit = e => {\r\n e.preventDefault();\r\n }\r\n\r\n const confirmDelete = () => {\r\n deleteCommunicationEmployeesGroupItem(globalState.accessToken, idGroup).then(response => setRedirect(response.ok));\r\n }\r\n\r\n const exportGroupContacts = () => {\r\n exportCommunicationEmployeesGroup(globalState.accessToken, idGroup, i18n.language).then(response => response.blob()).then(blob => {\r\n var url = window.URL.createObjectURL(blob);\r\n var a = document.createElement('a');\r\n a.href = url;\r\n a.download = \"contacts.xlsx\";\r\n document.body.appendChild(a);\r\n a.click();\r\n a.remove();\r\n }).catch(console.error);\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {globalState.accessToken === null ? :\r\n redirect ? :\r\n loading ?
    :\r\n <>\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    {idGroup ? t('CEGroup:edit_title') : t('CEGroup:create_title')}

    \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

    {t('CEGroup:group_info')}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n txtGroupNameRef = textBox}\r\n name=\"nome\"\r\n htmlAttributes={{ maxlength: \"100\" }}\r\n placeholder={t('CEGroup:name_placeholder')}\r\n value={groupItem.nome}\r\n change={inputChange}\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 autocompleteRef = autocomplete}\r\n name='name'\r\n placeholder={t('CEGroup:members_placeholder')}\r\n dataSource={dataManager}\r\n sortOrder=\"Ascending\"\r\n query={new Query()}\r\n fields={{ value: 'id', text: 'nome' }}\r\n filtering={autocompleteFiltering}\r\n select={autocompleteSelect}\r\n minLength={3}\r\n locale={i18n.language}\r\n htmlAttributes={{ maxlength: 100 }}\r\n actionFailure={e => console.error(e)}\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
    \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","import * as React from \"react\";\r\nimport { SharedDocumentsComponent } from './SharedDocumentsComponent';\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport const Events = () => {\r\n const { t } = useTranslation();\r\n\r\n return \r\n}","import * as React from \"react\";\r\nimport { SharedDocumentsComponent } from './SharedDocumentsComponent';\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport const GlobalGuidelines = () => {\r\n const { t } = useTranslation();\r\n\r\n return \r\n}","import * as React from \"react\";\r\nimport { SharedDocumentsComponent } from './SharedDocumentsComponent';\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport const GlobalCalendar = () => {\r\n const { t } = useTranslation();\r\n\r\n return \r\n}","import * as React from \"react\";\r\nimport { SharedDocumentsComponent } from './SharedDocumentsComponent';\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport const InternalCampaigns = () => {\r\n const { t } = useTranslation();\r\n\r\n return \r\n}","import * as React from \"react\";\r\nimport { SharedDocumentsComponent } from './SharedDocumentsComponent';\r\nimport { FolderManager } from \"../home/FolderManager\";\r\n\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport const DirectCommunication = () => {\r\n const { t } = useTranslation();\r\n\r\n return \r\n}\r\n","import * as React from \"react\";\r\nimport { SharedDocumentsComponent } from './SharedDocumentsComponent';\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport const InternalResearchResults = () => {\r\n const { t } = useTranslation();\r\n\r\n return \r\n}","import * as React from \"react\";\r\nimport { SharedDocumentsComponent } from './SharedDocumentsComponent';\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport const SpecialProjects = () => {\r\n const { t } = useTranslation();\r\n\r\n return \r\n}","import * as React from \"react\";\r\nimport { SharedDocumentsComponent } from './SharedDocumentsComponent';\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport const InternalVehicles = () => {\r\n const { t } = useTranslation();\r\n\r\n return \r\n}","import * as React from \"react\";\r\nimport { SharedDocumentsComponent } from './SharedDocumentsComponent';\r\n\r\nexport const BrandingSharedDocuments = () => {\r\n return \r\n}","import * as React from \"react\";\r\nimport { SharedDocumentsComponent } from './SharedDocumentsComponent';\r\n\r\nexport const BrandCenter = () => {\r\n return \r\n}","import * as React from \"react\";\r\n\r\nimport '../login/login.css';\r\n\r\nimport { SharedDocumentsComponent } from '../sharedDocuments/SharedDocumentsComponent';\r\n\r\nexport const PublicShareDocuments = () => {\r\n return \r\n}\r\n","import * as React from \"react\";\r\nimport { SharedDocumentsComponent } from './SharedDocumentsComponent';\r\n\r\nexport const Brazil = () => {\r\n return \r\n}","import * as React from \"react\";\r\nimport { SharedDocumentsComponent } from './SharedDocumentsComponent';\r\n\r\nexport const Canada = () => {\r\n return \r\n}","import * as React from \"react\";\r\nimport { SharedDocumentsComponent } from './SharedDocumentsComponent';\r\n\r\nexport const China = () => {\r\n return \r\n}","import * as React from \"react\";\r\nimport { SharedDocumentsComponent } from './SharedDocumentsComponent';\r\n\r\nexport const Global = () => {\r\n return \r\n}","import * as React from \"react\";\r\nimport { SharedDocumentsComponent } from './SharedDocumentsComponent';\r\n\r\nexport const Indonesia = () => {\r\n return \r\n}","import * as React from \"react\";\r\nimport { SharedDocumentsComponent } from './SharedDocumentsComponent';\r\n\r\nexport const Japan = () => {\r\n return \r\n}","import * as React from \"react\";\r\nimport { SharedDocumentsComponent } from './SharedDocumentsComponent';\r\n\r\nexport const Malasya = () => {\r\n return \r\n}","import * as React from \"react\";\r\nimport { SharedDocumentsComponent } from './SharedDocumentsComponent';\r\n\r\nexport const Mozambique = () => {\r\n return \r\n}","import * as React from \"react\";\r\nimport { SharedDocumentsComponent } from './SharedDocumentsComponent';\r\n\r\nexport const NewCaledonia = () => {\r\n return \r\n}","import * as React from \"react\";\r\nimport { SharedDocumentsComponent } from './SharedDocumentsComponent';\r\n\r\nexport const Oman = () => {\r\n return \r\n}","import * as React from \"react\";\r\nimport { SharedDocumentsComponent } from './SharedDocumentsComponent';\r\n\r\nexport const Paraguay = () => {\r\n return \r\n}","import * as React from \"react\";\r\nimport { SharedDocumentsComponent } from './SharedDocumentsComponent';\r\n\r\nexport const Singapore = () => {\r\n return \r\n}","import * as React from \"react\";\r\nimport { SharedDocumentsComponent } from './SharedDocumentsComponent';\r\n\r\nexport const Switzerland = () => {\r\n return \r\n}","import * as React from \"react\";\r\nimport { SharedDocumentsComponent } from './SharedDocumentsComponent';\r\n\r\nexport const Peru = () => {\r\n return \r\n}","import { ApplicationInsights } from \"@microsoft/applicationinsights-web\";\r\nimport {\r\n ReactPlugin,\r\n withAITracking\r\n} from \"@microsoft/applicationinsights-react-js\";\r\nimport { globalHistory } from \"@reach/router\";\r\n\r\nconst reactPlugin = new ReactPlugin();\r\nconst ai = new ApplicationInsights({\r\n config: {\r\n instrumentationKey: `${process.env.REACT_APP_APPINSIGHTS}`,\r\n extensions: [reactPlugin],\r\n extensionConfig: {\r\n [reactPlugin.identifier]: { history: globalHistory }\r\n }\r\n }\r\n});\r\nai.loadAppInsights();\r\n\r\nexport default Component => withAITracking(reactPlugin, Component);\r\nexport const appInsights = ai.appInsights;\r\nexport { reactPlugin };","import React, { createContext } from \"react\";\r\nimport { reactPlugin } from \"./ApplicationInsights\";\r\n\r\nconst AppInsightsContext = createContext(reactPlugin);\r\n\r\nconst AppInsightsContextProvider = ({ children }) => {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport { AppInsightsContext, AppInsightsContextProvider };","import React, { useContext, createContext, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nconst DigitalMediaContext = createContext({});\r\n\r\nconst DigitalMediaProvider = ({ children }) => {\r\n const [currentItem, setCurrentItem] = useState(null);\r\n const [modalIsVisible, setModalIsVisible] = useState(false);\r\n\r\n const [regionalList, setRegionalList] = useState([]);\r\n const [countriesList, setCountriesList] = useState([]);\r\n const [categoryList, setCategoryList] = useState([]);\r\n const [statusList, setStatusList] = useState([]);\r\n const [users, setUsers] = useState([]);\r\n\r\n const { t } = useTranslation();\r\n\r\n const [pendingVideos, setPendingVideos] = useState({\r\n value: [],\r\n });\r\n\r\n const [approvedVideos, setApprovedVideos] = useState({\r\n value: [],\r\n });\r\n\r\n const changeCurrentItem = (id) => {\r\n const findCurrentVideo = [...pendingVideos.value, ...approvedVideos.value].find(video => video.id ===id);\r\n\r\n setCurrentItem(findCurrentVideo);\r\n };\r\n\r\n const editModal = (id) => {\r\n if (!id) {\r\n setCurrentItem(null);\r\n setModalIsVisible(true);\r\n return;\r\n }\r\n const findCurrentVideo = [...pendingVideos.value, ...approvedVideos.value].find(video => video.id ===id);\r\n\r\n setCurrentItem(findCurrentVideo);\r\n setModalIsVisible(true);\r\n };\r\n\r\n const changeModalVisible = (visible) => {\r\n setModalIsVisible(visible);\r\n setCurrentItem(null);\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nconst useDigitalMedia = () => {\r\n const context = useContext(DigitalMediaContext);\r\n\r\n if (!context) {\r\n throw new Error('useDigitalMedia must be within an DigitalMediaProvider');\r\n }\r\n\r\n return context;\r\n};\r\n\r\nexport { useDigitalMedia, DigitalMediaProvider };","import * as React from 'react';\r\n\r\nconst initialState = {\r\n data: null,\r\n startDate: null,\r\n endDate: null\r\n};\r\n\r\nconst PressReportStateContext = React.createContext(initialState);\r\n\r\nconst PressReportStateProvider = ({ children }) => {\r\n const [pressReportState, setPressReportState] = React.useState(initialState);\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport { PressReportStateContext, PressReportStateProvider };\r\n","import { requestAPI } from '../components/utilities/Utils';\r\n\r\nexport async function addVideo(token, body) {\r\n return requestAPI(\"_api/CoreVideos/AddVideo\", \"POST\", \"\", body, token, false);\r\n}\r\n\r\nexport async function updateVideo(token, body) {\r\n return requestAPI(\"_api/CoreVideos/UpdateVideo\", \"POST\", \"\", body, token, false);\r\n}\r\n\r\nfunction getFilters({ filters, loadMore, pending, approved, paginationUrl }) {\r\n let fullFilterArray = [];\r\n let fullFilter = '';\r\n\r\n if (filters) {\r\n\r\n if (filters.titulo) fullFilterArray.push(`contains(tolower(titulo), '${filters.titulo.trim().toLowerCase()}')`);\r\n if (filters.enviadoPor) fullFilterArray.push(`enviadoPor/id eq ${filters.enviadoPor.id}`);\r\n if (filters.categoria) fullFilterArray.push(`nucleoVideoCategoria/id eq ${filters.categoria.id}`);\r\n\r\n if (filters.enviadoEm && filters.enviadoEm.startDate) {\r\n let startDay = (\"0\" + filters.enviadoEm.startDate.getDate()).slice(-2);\r\n let startMonth = (\"0\" + (filters.enviadoEm.startDate.getMonth() + 1)).slice(-2);\r\n let startPeriodDtStr = `${filters.enviadoEm.startDate.getFullYear()}-${startMonth}-${startDay}T00:00:00.000Z`;\r\n fullFilterArray.push(`enviadoEm gt ${startPeriodDtStr}`);\r\n\r\n let endDay = (\"0\" + filters.enviadoEm.endDate.getDate()).slice(-2);\r\n let endMonth = (\"0\" + (filters.enviadoEm.endDate.getMonth() + 1)).slice(-2);\r\n let endPeriodDtStr = `${filters.enviadoEm.endDate.getFullYear()}-${endMonth}-${endDay}T23:59:59.999Z`;\r\n fullFilterArray.push(`enviadoEm lt ${endPeriodDtStr}`);\r\n }\r\n\r\n if (filters.aprovadoEm && filters.aprovadoEm.startDate) {\r\n let startDay = (\"0\" + filters.aprovadoEm.startDate.getDate()).slice(-2);\r\n let startMonth = (\"0\" + (filters.aprovadoEm.startDate.getMonth() + 1)).slice(-2);\r\n let startPeriodDtStr = `${filters.aprovadoEm.startDate.getFullYear()}-${startMonth}-${startDay}T00:00:00.000Z`;\r\n fullFilterArray.push(`aprovadoEm gt ${startPeriodDtStr}`);\r\n\r\n let endDay = (\"0\" + filters.aprovadoEm.endDate.getDate()).slice(-2);\r\n let endMonth = (\"0\" + (filters.aprovadoEm.endDate.getMonth() + 1)).slice(-2);\r\n let endPeriodDtStr = `${filters.aprovadoEm.endDate.getFullYear()}-${endMonth}-${endDay}T23:59:59.999Z`;\r\n fullFilterArray.push(`aprovadoEm lt ${endPeriodDtStr}`);\r\n }\r\n\r\n if (filters.pais) fullFilterArray.push(`pais/id eq ${filters.pais.id}`);\r\n if (filters.regional) fullFilterArray.push(`regional/id eq ${filters.regional.id}`);\r\n if (filters.aprovadoPor) fullFilterArray.push(`aprovadoPor/id eq ${filters.aprovadoPor.id}`);\r\n if (filters.nucleoVideoStatus) fullFilterArray.push(`nucleoVideoStatus/id eq ${filters.nucleoVideoStatus.id}`);\r\n if (filters.nomeArquivoVideo) fullFilterArray.push(`contains(tolower(nomeArquivoVideo), '${filters.nomeArquivoVideo.trim().toLowerCase()}')`);\r\n\r\n }\r\n\r\n if (pending) {\r\n fullFilterArray.push(`nucleoVideoStatus/id ne 2`);\r\n } else if (approved) {\r\n fullFilterArray.push(`nucleoVideoStatus/id eq 2`);\r\n }\r\n\r\n if (fullFilterArray.length > 0) {\r\n fullFilter = `filter(${fullFilterArray.join(' and ')})`;\r\n }\r\n\r\n let withFilters = fullFilter && !paginationUrl ? `?$apply=${fullFilter}&$orderby=enviadoEm desc` : \"?$orderby=enviadoEm desc\";\r\n\r\n return withFilters;\r\n}\r\n\r\nexport async function approveReproveVideo(token, body) {\r\n return requestAPI(\"/_api/CoreVideos/ApproveReproveVideo\", \"POST\", \"\", body, token);\r\n}\r\n\r\nexport async function getVideosFour({ token, filters, paginationUrl }) {\r\n\r\n const defaultUrl = \"_api/CoreVideoPaginationFour\";\r\n\r\n const filterParams = getFilters({\r\n filters,\r\n paginationUrl,\r\n pending: true,\r\n });\r\n\r\n return requestAPI(paginationUrl ? paginationUrl : defaultUrl, \"GET\", !paginationUrl ? filterParams : \"\", null, token, false, false, !!paginationUrl);\r\n}\r\n\r\nexport async function getVideosEight({ token, filters, paginationUrl }) {\r\n\r\n const defaultUrl = \"_api/CoreVideoPaginationEight\";\r\n\r\n const filterParams = getFilters({\r\n filters,\r\n paginationUrl,\r\n approved: true\r\n });\r\n\r\n return requestAPI(paginationUrl ? paginationUrl : defaultUrl, \"GET\", !paginationUrl ? filterParams : \"\", null, token, false, false, !!paginationUrl);\r\n}\r\n\r\nexport async function getVideos({ token, filters, loadMore, pending, approved, url }) {\r\n\r\n const filterParams = getFilters({\r\n filters,\r\n loadMore,\r\n pending,\r\n approved\r\n });\r\n\r\n return requestAPI(\"_api/CoreVideos/GetVideosItems\", \"GET\", filterParams, null, token, false);\r\n}\r\n\r\nexport async function downloadDigitalMediaAttachment(token, id) {\r\n // ?token=${globalState.accessToken}&IdOrGuid=${tempGuid ? tempGuid : currentItem && currentItem.id}`\r\n return requestAPI(\"_api/CoreVideos/GetVideoContent\", \"GET\", `?token=${token}&IdOrGuid=${id}`, null, token, null, true);\r\n}\r\n\r\n\r\nexport async function addVideoStorage(token, guid, body) {\r\n const param = '?IdOrGuid=' + guid;\r\n var form_data = new FormData();\r\n for (var key in body) {\r\n form_data.append(key, body[key]);\r\n }\r\n return requestAPI(\"_api/CoreVideos/UploadVideoAttachmentChunks\", \"POST\", param, form_data, token, true, false);\r\n}\r\n\r\nexport async function removeVideoStorage(token, guid) {\r\n const param = '?videoId=' + guid;\r\n return requestAPI(\"/_api/CoreVideos/DeleteVideo\", \"POST\", param, null, token, false);\r\n}\r\n\r\nexport async function getApprovalUsers(token) {\r\n return requestAPI(\"_api/CoreVideos/GetApprovingUsers\", \"GET\", \"\", null, token, false);\r\n}\r\n","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nconst VideoContent = ({ country, approval, category, regional }) => {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default VideoContent;","import React, { useEffect, useState, useMemo, useRef, useContext } from \"react\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { Container, Row } from \"reactstrap\";\r\nimport { GlobalStateContext } from '../general/GlobalState'\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { Videos } from './Videos';\r\nimport { ModalVideo } from './ModalVideo';\r\nimport { Buttons } from '../utilities/Buttons';\r\n\r\nimport './digitalMedia.css';\r\nimport { useDigitalMedia } from \"./context/DigitalMediaContext\";\r\nimport { getVideos, getApprovalUsers, getVideosFour, getVideosEight } from '../../services/DigitalMediaSVC';\r\nimport { getCategories, getCountries, getRegional, getStatus } from \"../../services/SystemSVC\";\r\nimport PermissionRedirect from '../utilities/PermissionRedirect/PermissionRedirect';\r\nimport { createSpinner, showSpinner, setSpinner, hideSpinner } from \"@syncfusion/ej2-react-popups\";\r\n\r\nimport MessageModal from '../utilities/MessageModal/MessageModal';\r\n\r\nlet userPermission;\r\n\r\nexport const DigitalMedia = () => {\r\n\r\n const [globalState] = useContext(GlobalStateContext);\r\n const [isDataFetched, setIsDataFetched] = useState(false);\r\n\r\n const {\r\n editModal,\r\n modalIsVisible,\r\n modalMessageParams,\r\n changeModalVisible,\r\n setCategoryList,\r\n setCountriesList,\r\n setStatusList,\r\n setRegionalList,\r\n setUsers,\r\n buildDialogMessage,\r\n setPendingVideos,\r\n setApprovedVideos\r\n } = useDigitalMedia();\r\n\r\n const { t } = useTranslation();\r\n\r\n useEffect(() => {\r\n let globalPermissions = globalState.permissions;\r\n userPermission = globalPermissions.filter((i) => i.idAreaAcesso === 21).map((i) => (i.permission));\r\n }, [globalState]);\r\n\r\n const _controls = {\r\n permit: userPermission ? userPermission : null,\r\n export: \"\",\r\n import: \"\",\r\n new: () => editModal(),\r\n back: \"\",\r\n };\r\n\r\n const _info = {\r\n close: () => changeModalVisible(false)\r\n }\r\n\r\n useEffect(() => {\r\n async function asyncFunc() {\r\n\r\n const [\r\n pendingVideos,\r\n approvedVideos,\r\n countriesList,\r\n regionalList,\r\n categoryList,\r\n statusList,\r\n approvalUsersList\r\n ] = await Promise.all(\r\n await Promise.all(\r\n [\r\n getVideosFour({\r\n token: globalState.accessToken\r\n }),\r\n getVideosEight({\r\n token: globalState.accessToken\r\n }),\r\n getCountries(globalState.accessToken),\r\n getRegional(globalState.accessToken),\r\n getCategories(globalState.accessToken),\r\n getStatus(globalState.accessToken),\r\n getApprovalUsers(globalState.accessToken)\r\n ]\r\n ).then(response => {\r\n return response.map(res => {\r\n if (res.ok) {\r\n return res.json();\r\n }\r\n });\r\n })\r\n );\r\n\r\n // pendingVideos.value = pendingVideos.value.map(video => objectConvert(video));\r\n // approvedVideos.value = approvedVideos.value.map(video => objectConvert(video));\r\n\r\n setCountriesList(countriesList);\r\n setRegionalList(regionalList);\r\n setStatusList(statusList);\r\n setCategoryList(categoryList);\r\n setUsers(approvalUsersList);\r\n setApprovedVideos(approvedVideos);\r\n setPendingVideos(pendingVideos);\r\n setIsDataFetched(true);\r\n }\r\n asyncFunc();\r\n }, []);\r\n\r\n useEffect(() => {\r\n createSpinner({ target: document.getElementById('loadingDigitalMedia') })\r\n showSpinner(document.getElementById('loadingDigitalMedia'));\r\n setSpinner({ type: 'Bootstrap' });\r\n }, [isDataFetched]);\r\n\r\n return (\r\n <>\r\n {globalState.accessToken === null ? :\r\n <>\r\n \r\n \r\n {isDataFetched &&\r\n <>\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    {t('DigitalMedia:title')}

    \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 {modalIsVisible &&\r\n \r\n }\r\n { !isDataFetched &&
    }\r\n \r\n }\r\n \r\n );\r\n}","import * as React from 'react';\r\nimport { Container, Row } from 'reactstrap';\r\nimport { GlobalStateContext } from '../general/GlobalState';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { ButtonComponent } from '@syncfusion/ej2-react-buttons';\r\nimport { Buttons } from '../utilities/Buttons';\r\nimport { DropDownListComponent } from '@syncfusion/ej2-react-dropdowns';\r\nimport {\r\n GridComponent,\r\n ColumnsDirective,\r\n CommandColumn,\r\n ColumnDirective,\r\n Edit,\r\n Toolbar,\r\n Filter,\r\n Inject,\r\n ExcelExport,\r\n PdfExport,\r\n Sort,\r\n ContextMenu,\r\n Page,\r\n Resize,\r\n colGroupRefresh,\r\n} from '@syncfusion/ej2-react-grids';\r\nimport { Browser } from '@syncfusion/ej2-base';\r\nimport i18n from 'i18next';\r\nimport {\r\n getManageInternalAreas,\r\n addManageInternalAreas,\r\n updateManageInternalAreas,\r\n enableDisableInternalArea,\r\n} from './manageInternalAreasSVC';\r\nimport { SwitchComponent } from '@syncfusion/ej2-react-buttons';\r\nimport { DialogComponent, DialogUtility } from '@syncfusion/ej2-react-popups';\r\nimport { TextBoxComponent } from '@syncfusion/ej2-react-inputs';\r\nimport GenericModal from '../utilities/MessageModal/GenericModal';\r\nimport PermissionRedirect from '../utilities/PermissionRedirect/PermissionRedirect';\r\n\r\nimport { useForm } from 'react-hook-form';\r\nimport { hasPermissions } from '../utilities/Utils';\r\n\r\nlet userPermission;\r\n\r\nexport const Internal = () => {\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const { t } = useTranslation();\r\n const [manageDataArr, setManageDataArr] = React.useState([]);\r\n const [openEditModal, setOpenEditModal] = React.useState(false);\r\n const [msgToShow, setMsgToShow] = React.useState('');\r\n const [modalData, setModalData] = React.useState();\r\n const [newOrEditArea, setNewOrEditArea] = React.useState('');\r\n const gridInstance = React.useRef();\r\n const dialogInstance = React.useRef();\r\n const [modalMessageParams, setmodalMessageParams] = React.useState({\r\n show: false,\r\n });\r\n\r\n const { register, handleSubmit, errors, reset, clearError } = useForm({\r\n mode: 'onSubmit',\r\n reValidateMode: 'onChange',\r\n defaultValues: {\r\n ativo: true,\r\n },\r\n resolver: undefined,\r\n context: undefined,\r\n criteriaMode: 'firstError',\r\n shouldFocusError: true,\r\n shouldUnregister: true,\r\n });\r\n\r\n const contextMenuItems = [\r\n 'SortAscending',\r\n 'SortDescending',\r\n 'FirstPage',\r\n 'PrevPage',\r\n 'LastPage',\r\n 'NextPage',\r\n ];\r\n\r\n\r\n React.useEffect(() => {\r\n gridInstance.current.refresh();\r\n }, [i18n.language]);\r\n\r\n React.useEffect(() => {\r\n buildInternalAreal();\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n if (msgToShow) {\r\n let timer = setTimeout(() => {\r\n setMsgToShow('');\r\n }, 2000);\r\n return () => {\r\n clearTimeout(timer);\r\n };\r\n }\r\n }, [msgToShow]);\r\n\r\n const buildInternalAreal = async () => {\r\n await getManageInternalAreas(globalState.accessToken).then((response) => {\r\n if (response.ok) {\r\n response.json().then((data) => {\r\n setManageDataArr(data);\r\n });\r\n }\r\n });\r\n };\r\n\r\n React.useEffect(() => {\r\n let globalPermissions = globalState.permissions;\r\n userPermission = globalPermissions.filter((i) => i.idAreaAcesso === 27).map((i) => (i.permission));\r\n }, [globalState]);\r\n\r\n const active_colum = (args) => {\r\n return (\r\n <>\r\n {args.ativo ? (\r\n {t('ManageInternalAreas:yes')}\r\n ) : (\r\n {t('ManageInternalAreas:no')}\r\n )}\r\n \r\n );\r\n };\r\n\r\n const openEdit = (args) => {\r\n setNewOrEditArea('EDIT');\r\n setModalData(args);\r\n setOpenEditModal(true);\r\n };\r\n\r\n const clearModal = () => {\r\n reset();\r\n setModalData(null);\r\n setOpenEditModal(false);\r\n };\r\n\r\n const editTemplate = (args) => {\r\n return hasPermissions(27, \"Edit\", globalState) && (\r\n
    \r\n openEdit(args)} className=\"mdl2 mdl2-pencil\" />\r\n
    \r\n );\r\n };\r\n\r\n const actionComplete = (args) => {\r\n if (args.requestType === 'beginEdit' || args.requestType === 'add') {\r\n if (Browser.isDevice) {\r\n args.dialog.height = window.innerHeight - 90 + 'px';\r\n args.dialog.dataBind();\r\n }\r\n }\r\n };\r\n\r\n const buildDialogMessage = (type, msg) => {\r\n if (type ==='success') {\r\n setmodalMessageParams({\r\n title: t('ModalMessages:title'),\r\n message: t('ModalMessages:created'),\r\n type: 'success',\r\n icon: 'mdl2-confirm',\r\n show: true,\r\n });\r\n } else if (type ==='error') {\r\n setmodalMessageParams({\r\n title: t('ManageInternalAreas:error_title'),\r\n message: t('ManageInternalAreas:error'),\r\n type: 'error',\r\n icon: 'e-icon-dlg-close e-icons',\r\n show: true,\r\n });\r\n } else if (type ==='updated') {\r\n setmodalMessageParams({\r\n title: t('ModalMessages:title'),\r\n message: t('ModalMessages:updated'),\r\n type: 'success',\r\n icon: 'mdl2-confirm',\r\n show: true,\r\n });\r\n } else if (type ==='custom-error') {\r\n setmodalMessageParams({\r\n title: t('ManageInternalAreas:error_title'),\r\n message: msg,\r\n type: 'error',\r\n icon: 'e-icon-dlg-close e-icons',\r\n show: true,\r\n });\r\n }\r\n };\r\n\r\n const handleNewArea = async (data) => {\r\n const addItem = async (dataInput) => {\r\n const data = {\r\n nome: dataInput.nome,\r\n ativo: true,\r\n };\r\n setManageDataArr((prevstate) => {\r\n const newDataArr = prevstate;\r\n newDataArr.unshift(data);\r\n return newDataArr;\r\n });\r\n gridInstance.current.refresh();\r\n return await addManageInternalAreas(globalState.accessToken, data);\r\n };\r\n\r\n gridInstance.current.refresh();\r\n dialogInstance.current.hide();\r\n const res = await addItem(data);\r\n if (res.ok && (res.status ===200 || res.status ===201)) {\r\n dialogInstance.current.hide();\r\n buildDialogMessage('success');\r\n } else {\r\n buildDialogMessage('error');\r\n console.log(res);\r\n }\r\n reset();\r\n };\r\n\r\n const updateItem = async (dataInput) => {\r\n // const promises = [];\r\n\r\n const dataToPersist = {\r\n id: modalData.id,\r\n nome: dataInput.nome,\r\n ativo: dataInput.ativo ==='yes' ? true : false,\r\n };\r\n\r\n\r\n try {\r\n updateManageInternalAreas(globalState.accessToken, dataToPersist).then(\r\n async (response) => {\r\n if (response.ok || response.status ===200) {\r\n setManageDataArr(\r\n gridInstance.current.dataSource.map((item) => {\r\n if (item.id ===modalData.id) item = dataToPersist;\r\n return item;\r\n }),\r\n );\r\n gridInstance.current.refresh();\r\n buildDialogMessage('updated');\r\n setOpenEditModal(false);\r\n } else {\r\n const err = await response.json()\r\n const msg = JSON.stringify(err.Mensagem && err.Mensagem ===\"Existe pelo menos um item de orçamento de publicidade vinculado a essa área interna.\" \r\n ? i18n.language === 'pt'? err.Mensagem : \"There is at least one advertising budget item linked to this internal area.\" :\r\n `Ocorreu um erro no sistema. Favor entrar em contato com o administrador - OperationId: ${err.OperationId}`)\r\n buildDialogMessage('custom-error', msg)\r\n console.log(err);\r\n }\r\n reset();\r\n },\r\n );\r\n } catch (error) {\r\n // setOpenEditModal(false);\r\n console.log(error);\r\n buildDialogMessage('custom-error', error)\r\n }\r\n };\r\n const onSubmit = (data) => {\r\n if (newOrEditArea ==='NEW') handleNewArea(data);\r\n else if (newOrEditArea ==='EDIT') updateItem(data);\r\n };\r\n const onError = (errors, e) => console.log(errors, e);\r\n return (\r\n <>\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    {t('ManageInternalAreas:title')}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n setNewOrEditArea('NEW');\r\n dialogInstance.current.show();\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 {errors.nome &&

    {t('Validation:required')}

    }\r\n
    \r\n\r\n {newOrEditArea ==='EDIT' && (\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n {errors.ativo && (\r\n

    {t('Validation:required')}

    \r\n )}\r\n
    \r\n )}\r\n
    \r\n {newOrEditArea ==='NEW' && (\r\n \r\n {t('Actions:send')}\r\n \r\n )}\r\n\r\n {newOrEditArea ==='EDIT' && (\r\n \r\n {t('Actions:save')}\r\n \r\n )}\r\n
    \r\n
    \r\n \r\n\r\n {\r\n actionComplete(e);\r\n }}\r\n >\r\n \r\n \r\n args.ativo ? t('ManageInternalAreas:yes') : t('ManageInternalAreas:no')}\r\n template={(args) => active_colum(args)}\r\n field=\"ativo\"\r\n width=\"170\"\r\n editType=\"booleanEdit\"\r\n >\r\n editTemplate(args)}\r\n width=\"80\"\r\n headerText={t('ManageInternalAreas:edit')}\r\n >\r\n \r\n \r\n \r\n
    \r\n \r\n );\r\n};\r\n","import React, { useState, useEffect, useContext, useCallback, useMemo } from \"react\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { Container, Row } from \"reactstrap\";\r\nimport { GlobalStateContext } from '../general/GlobalState'\r\nimport { useTranslation } from 'react-i18next';\r\nimport { DropDownListComponent, AutoCompleteComponent, MultiSelectComponent, CheckBoxSelection, DropDownTreeComponent } from '@syncfusion/ej2-react-dropdowns';\r\nimport { TextBoxComponent } from '@syncfusion/ej2-react-inputs';\r\nimport { ButtonComponent } from '@syncfusion/ej2-react-buttons';\r\nimport { DateRangePickerComponent } from '@syncfusion/ej2-react-calendars';\r\nimport { DialogComponent } from \"@syncfusion/ej2-react-popups\";\r\nimport { createSpinner, showSpinner, setSpinner, hideSpinner } from \"@syncfusion/ej2-react-popups\";\r\n\r\nimport MessageModal from '../utilities/MessageModal/MessageModal';\r\n\r\nimport { getDateTime, hasPermissions } from '../utilities/Utils';\r\n\r\nimport i18n from \"i18next\";\r\nimport { useDigitalMedia } from \"./context/DigitalMediaContext\";\r\nimport { getVideosEight, getVideosFour, approveReproveVideo } from '../../services/DigitalMediaSVC';\r\nimport VideoContent from './VideoContent';\r\nimport { useModal } from \"../../hooks/Modal\";\r\n\r\nexport const Videos = (props) => {\r\n\r\n const {\r\n editModal,\r\n pendingVideos,\r\n setPendingVideos,\r\n setApprovedVideos,\r\n approvedVideos,\r\n currentItem,\r\n changeCurrentItem,\r\n regionalList,\r\n countriesList,\r\n categoryList,\r\n statusList,\r\n users\r\n } = useDigitalMedia();\r\n\r\n const [globalState] = useContext(GlobalStateContext);\r\n\r\n const { t } = useTranslation();\r\n\r\n const [isVisible, setIsVisible] = useState(false);\r\n const [openModalApprove, setOpenModalApprove] = useState(false);\r\n const [openModalDisapprove, setOpenModalDisapprove] = useState(false);\r\n const [comentario, setComentario] = useState(\"\");\r\n\r\n const [isLoadingPendingVideos, setIsLoadingPendingVideos] = useState(false);\r\n const [isLoadingApprovedVideos, setIsLoadingApprovedVideos] = useState(false);\r\n\r\n const [isLoadingItem, setIsLoadingItem] = useState(false);\r\n\r\n const [persistence, setPersistence] = useState(false);\r\n\r\n const { buildDialogMessage } = useModal();\r\n\r\n const [filters, setFilters] = useState({});\r\n\r\n const [openedItems, setOpenedItems] = useState([]);\r\n\r\n const dropDownItem = (id) => {\r\n\r\n const index = openedItems.findIndex(items => items ===id);\r\n const items = [...openedItems];\r\n\r\n if (index !== -1) {\r\n items.splice(index, 1);\r\n setOpenedItems(items);\r\n document.getElementById(`spin-${id}`).className = \"opened arrowDiv mdl2 mdl2-arrowUp\";\r\n } else {\r\n setOpenedItems(items => [...items, id]);\r\n document.getElementById(`spin-${id}`).className = \"closed arrowDiv mdl2 mdl2-arrowUp\";\r\n }\r\n }\r\n\r\n const getStatusLabel = (namePt) => {\r\n const status = {\r\n \"Aprovado\": \"approvedLabel\",\r\n \"Reprovado\": \"disapprovedLabel\",\r\n \"Pendente\": \"waitingLabel\"\r\n }\r\n\r\n return status[namePt];\r\n };\r\n\r\n useEffect(() => {\r\n console.log(filters);\r\n }, [filters])\r\n\r\n const videoProps = (item) => {\r\n return {\r\n approval: item.aprovadoPor && item.aprovadoPor.nome,\r\n country: i18n.language ===\"pt\" ? item.pais && item.pais.nomePt : item.pais && item.pais.nomeEn,\r\n category: i18n.language ===\"pt\" ? item.nucleoVideoCategoria && item.nucleoVideoCategoria.nomePt : item.nucleoVideoCategoria && item.nucleoVideoCategoria.nomeEn,\r\n regional: i18n.language ===\"pt\" ? item.regional && item.regional.nomePt : item.regional && item.regional.nomeEn,\r\n };\r\n };\r\n\r\n useEffect(() => {\r\n createSpinner({ target: document.getElementById('loadingMorePending') })\r\n showSpinner(document.getElementById('loadingMorePending'));\r\n setSpinner({ type: 'Bootstrap' });\r\n\r\n createSpinner({ target: document.getElementById('loadingMoreApproved') })\r\n showSpinner(document.getElementById('loadingMoreApproved'));\r\n setSpinner({ type: 'Bootstrap' });\r\n\r\n createSpinner({ target: document.getElementById('loadingItem') })\r\n showSpinner(document.getElementById('loadingItem'));\r\n setSpinner({ type: 'Bootstrap' });\r\n\r\n }, [isLoadingApprovedVideos, isLoadingPendingVideos, isLoadingItem]);\r\n\r\n const onSend = async () => {\r\n\r\n setIsLoadingApprovedVideos(true);\r\n setIsLoadingPendingVideos(true);\r\n\r\n const [pendingVideos, approvedVideos] = await Promise.all(await Promise.all([\r\n getVideosFour({\r\n filters,\r\n token: globalState.accessToken\r\n }),\r\n getVideosEight({\r\n filters,\r\n token: globalState.accessToken\r\n })\r\n ]).then(response => {\r\n return response.map(res => {\r\n if (res.ok)\r\n return res.json();\r\n })\r\n }));\r\n\r\n setPendingVideos(pendingVideos);\r\n setApprovedVideos(approvedVideos);\r\n setIsLoadingApprovedVideos(false);\r\n setIsLoadingPendingVideos(false);\r\n setIsVisible(false);\r\n };\r\n\r\n const onChange = (e) => {\r\n if (e && e.event)\r\n setFilters({\r\n ...filters,\r\n [e.event.target.name]: e.value\r\n });\r\n };\r\n\r\n const loadMorePending = async () => {\r\n setIsLoadingPendingVideos(true);\r\n const pendingVideosList = await getVideosFour({\r\n token: globalState.accessToken,\r\n paginationUrl: pendingVideos[\"@odata.nextLink\"]\r\n }).then(res => {\r\n if (res.ok)\r\n return res.json();\r\n });\r\n\r\n setPendingVideos(videos => ({\r\n ...pendingVideosList,\r\n value: [\r\n ...videos.value,\r\n ...pendingVideosList.value\r\n ]\r\n }));\r\n setIsLoadingPendingVideos(false);\r\n };\r\n\r\n const loadMoreApproved = async () => {\r\n setIsLoadingApprovedVideos(true);\r\n const approvedVideosList = await getVideosEight({\r\n token: globalState.accessToken,\r\n paginationUrl: approvedVideos[\"@odata.nextLink\"]\r\n }).then(res => {\r\n if (res.ok)\r\n return res.json();\r\n });\r\n\r\n setApprovedVideos(videos => ({\r\n ...approvedVideosList,\r\n value: [\r\n ...videos.value,\r\n ...approvedVideosList.value\r\n ]\r\n }));\r\n setIsLoadingApprovedVideos(false);\r\n };\r\n\r\n const onAutoCompleteChange = (e, name) => {\r\n if (e && e.itemData && !e.itemData.id) {\r\n return;\r\n }\r\n setFilters({\r\n ...filters,\r\n [name]: e.itemData\r\n })\r\n };\r\n\r\n const onSelectChange = (e, name) => {\r\n setFilters({\r\n ...filters,\r\n [name]: e.itemData\r\n })\r\n };\r\n\r\n const onDateChange = (e, name) => {\r\n setFilters({\r\n ...filters,\r\n [name]: {\r\n startDate: e.startDate,\r\n endDate: e.endDate\r\n }\r\n })\r\n };\r\n\r\n const deleteModal = () => {\r\n setOpenModalApprove(false);\r\n setOpenModalDisapprove(false);\r\n }\r\n\r\n const Img = useCallback((i) => {\r\n return (\r\n \"\"\r\n )\r\n }, []);\r\n\r\n const onRepproveModal = (id) => {\r\n setComentario(\"\");\r\n setOpenModalDisapprove(true);\r\n changeCurrentItem(id);\r\n };\r\n\r\n const onApproveModal = (id) => {\r\n setComentario(\"\");\r\n setOpenModalApprove(true);\r\n changeCurrentItem(id);\r\n };\r\n\r\n const onSubmitClick = async (id) => {\r\n\r\n setOpenModalApprove(false);\r\n setOpenModalDisapprove(false);\r\n setIsLoadingItem(true);\r\n\r\n const videoIndex = [...pendingVideos.value].findIndex(video => video.id ===currentItem.id);\r\n const pendingData = [...pendingVideos.value];\r\n const approvedData = { ...approvedVideos };\r\n\r\n const currentStatus = statusList.find(status => status.id ===id);\r\n\r\n pendingData[videoIndex] = {\r\n ...pendingData[videoIndex],\r\n nucleoVideoStatus: currentStatus,\r\n comentario,\r\n aprovadoEm: new Date()\r\n }\r\n\r\n const payload = {\r\n id: pendingData[videoIndex].id,\r\n aprovado: id ===2 ? true : false,\r\n comentario\r\n }\r\n\r\n const res = await approveReproveVideo(globalState.accessToken, JSON.stringify(payload)).then(res => {\r\n if (res.ok)\r\n return res.json();\r\n });\r\n\r\n if (res) {\r\n if (id ===2) {\r\n const [newApprovedItem] = pendingData.splice(videoIndex, 1);\r\n\r\n setPendingVideos(state => ({ ...state, value: pendingData }))\r\n\r\n if (pendingVideos[\"@odata.nextLink\"]) {\r\n const skipNumber = pendingVideos.value.length - 1;\r\n\r\n let skipString = pendingVideos[\"@odata.nextLink\"].split(\"skip=\");\r\n\r\n skipString[1] = skipNumber;\r\n\r\n skipString = skipString.join(\"skip=\");\r\n\r\n const pendingVideosList = await getVideosFour({\r\n token: globalState.accessToken,\r\n paginationUrl: skipString\r\n }).then(res => {\r\n if (res.ok)\r\n return res.json();\r\n });\r\n\r\n if (pendingVideosList && pendingVideosList.value && pendingVideosList.value.length > 0) {\r\n\r\n let paginationUrl = `${process.env.REACT_APP_API_URL}/_api/CoreVideoPaginationFour?$apply=filter(nucleoVideoStatus/id%20ne%202)&$orderby=enviadoEm%20desc&$skip=${pendingData.length + 1}`;\r\n\r\n if (pendingVideosList.value.length <= 1) {\r\n paginationUrl = \"\";\r\n }\r\n\r\n const newVideos = {\r\n ...pendingVideos,\r\n value: [\r\n ...pendingData,\r\n pendingVideosList.value[0],\r\n ]\r\n };\r\n\r\n newVideos[\"@odata.nextLink\"] = paginationUrl;\r\n\r\n setPendingVideos(newVideos);\r\n } else {\r\n setPendingVideos(videos => ({\r\n paginationUrl: \"\",\r\n value: [\r\n ...videos.value\r\n ]\r\n }))\r\n }\r\n }\r\n\r\n let paginationUrl = `${process.env.REACT_APP_API_URL}/_api/CoreVideoPaginationEight?$apply=filter(nucleoVideoStatus/id%20eq%202)&$orderby=enviadoEm%20desc&$skip=${approvedData.value.length}`;\r\n \r\n approvedData[\"@odata.nextLink\"] = paginationUrl;\r\n \r\n const lastIndexDate = approvedData.value[approvedData.value.length - 1].enviadoEm;\r\n\r\n if (new Date(newApprovedItem.enviadoEm) > new Date(lastIndexDate) && approvedData && approvedData.value && approvedData.value.length % 8 ===0) {\r\n approvedData.value.unshift(newApprovedItem);\r\n\r\n approvedData.value.pop();\r\n\r\n approvedData.value.sort((a, b) => new Date(b.enviadoEm) - new Date(a.enviadoEm))\r\n }\r\n\r\n if (approvedData && approvedData.value && approvedData.value.length % 8 !== 0) {\r\n approvedData.value.unshift(newApprovedItem);\r\n\r\n approvedData.value.sort((a, b) => new Date(b.enviadoEm) - new Date(a.enviadoEm));\r\n\r\n approvedData[\"@odata.nextLink\"] = \"\";\r\n }\r\n\r\n\r\n setApprovedVideos(approvedData);\r\n\r\n buildDialogMessage({\r\n titlePt: \"Sucesso\",\r\n titleEn: \"Success\",\r\n messagePt: \"Vídeo aprovado com sucesso\",\r\n messageEn: \"Video successfully approved\",\r\n type: 'success',\r\n icon: 'mdl2-confirm',\r\n show: true,\r\n });\r\n } else {\r\n buildDialogMessage({\r\n titlePt: \"Sucesso\",\r\n titleEn: \"Success\",\r\n messagePt: \"Vídeo reprovado com sucesso\",\r\n messageEn: \"Video successfully reproved\",\r\n type: 'error',\r\n icon: 'mdl2 mdl2-disapprove',\r\n show: true,\r\n });\r\n\r\n\r\n setPendingVideos(video => ({\r\n ...video,\r\n value: [\r\n ...pendingData\r\n ],\r\n }))\r\n }\r\n\r\n } else {\r\n setOpenModalApprove(false);\r\n setOpenModalDisapprove(false);\r\n\r\n buildDialogMessage({\r\n titlePt: \"Erro\",\r\n titleEn: \"Error\",\r\n messagePt: \"Um erro ocorreu ao aprovar/reprovar o vídeo\",\r\n messageEn: \"An error has ocurred while approving/disapproving the video \",\r\n type: 'error',\r\n icon: 'e-icon-dlg-close e-icons',\r\n show: true,\r\n });\r\n\r\n }\r\n\r\n\r\n setIsLoadingItem(false);\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n

    {t('Search:title')}

    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {isLoadingItem &&
    }\r\n
    \r\n {!isVisible &&\r\n
    \r\n setIsVisible(!isVisible)}>{t('FilterButtons:filter')}\r\n
    \r\n }\r\n {isVisible &&\r\n
    \r\n setIsVisible(!isVisible)}>{t('FilterButtons:filter')}\r\n
    \r\n }\r\n
    \r\n \r\n {t('FilterButtons:search')}\r\n \r\n
    \r\n
    \r\n
    \r\n {isVisible &&\r\n
    \r\n onAutoCompleteChange(e, \"enviadoPor\")}\r\n />\r\n onSelectChange(e, \"categoria\")}\r\n showClearButton\r\n\r\n />\r\n setPersistence(true)}\r\n change={(e) => onDateChange(e, \"enviadoEm\")}\r\n />\r\n onSelectChange(e, \"pais\")}\r\n showClearButton\r\n\r\n />\r\n onSelectChange(e, \"regional\")}\r\n showClearButton\r\n />\r\n\r\n onAutoCompleteChange(e, \"aprovadoPor\")}\r\n />\r\n onSelectChange(e, \"nucleoVideoStatus\")}\r\n showClearButton\r\n />\r\n setPersistence(true)}\r\n enablePersistence={persistence}\r\n change={(e) => onDateChange(e, \"aprovadoEm\")}\r\n />\r\n \r\n
    \r\n }\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n {\r\n pendingVideos && pendingVideos.value.length > 0 &&\r\n <>\r\n
    \r\n \r\n \r\n

    {t(\"DigitalMedia:waitingApproval\")}

    \r\n
    \r\n {pendingVideos.value.map((i, index) => (\r\n
    \r\n
    editModal(i.id)} className=\"videoInfo\">\r\n \r\n
    \r\n
    \r\n
    \r\n
    dropDownItem(i.id)} className=\"subtitleImage\">\r\n {i.titulo}\r\n \r\n
    \r\n
    \r\n \"\"\r\n\r\n
    \r\n \r\n {getDateTime(i.enviadoEm)}\r\n
    \r\n \r\n
    \r\n {openedItems.findIndex(items => items ===i.id) > -1 && }\r\n {\r\n (\r\n (hasPermissions(21, \"Approval\", globalState) &&\r\n i.aprovadoPor.id ===globalState.userId) ||\r\n hasPermissions(21, \"Admin\", globalState)\r\n )\r\n && i.nucleoVideoStatus.id === 1 &&\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 {isLoadingPendingVideos &&\r\n
    \r\n }\r\n \r\n \r\n {pendingVideos && pendingVideos[\"@odata.nextLink\"] &&\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 {approvedVideos && approvedVideos.value && approvedVideos.value.length > 0 ? (\r\n approvedVideos.value.map((i, index) => (\r\n
    \r\n
    editModal(i.id)} className=\"videoInfo\">\r\n \r\n
    \r\n
    \r\n
    \r\n
    dropDownItem(i.id)} className=\"subtitleImage\">\r\n {i.titulo}\r\n
    \r\n
    \r\n \"\"\r\n
    \r\n \r\n {getDateTime(i.enviadoEm)}\r\n
    \r\n \r\n
    \r\n {openedItems.findIndex(items => items ===i.id) > -1 && }\r\n
    \r\n
    \r\n ))\r\n ) : (\r\n

    {t(\"DigitalMedia:notFound\")}

    \r\n )}\r\n
    \r\n {isLoadingApprovedVideos &&
    }\r\n\r\n {approvedVideos && approvedVideos[\"@odata.nextLink\"] &&\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 {t(\"DigitalMedia:comment\")}\r\n setComentario(e.value)}\r\n placeholder={i18n.language ===\"pt\" ? \"Deixe aqui seu comentário\" : \"Leave your review here ...\"}\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 {t(\"DigitalMedia:comment\")}\r\n setComentario(e.value)}\r\n placeholder={i18n.language ===\"pt\" ? \"Deixe aqui seu comentário\" : \"Leave your review here ...\"}\r\n />\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n );\r\n}","import React, { useEffect, useState, useRef, useCallback, useContext, useMemo } from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from 'react-i18next';\r\nimport { GlobalStateContext } from '../general/GlobalState';\r\nimport { createSpinner, DialogComponent, setSpinner, showSpinner } from \"@syncfusion/ej2-react-popups\";\r\nimport { AutoCompleteComponent } from '@syncfusion/ej2-react-dropdowns';\r\nimport { UploaderComponent } from \"@syncfusion/ej2-react-inputs\";\r\nimport { DropDownListComponent } from '@syncfusion/ej2-react-dropdowns';\r\nimport { useDigitalMedia } from \"./context/DigitalMediaContext\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport { uuidv4, formatBytes, hasPermissions } from '../utilities/Utils';\r\nimport { updateVideo, addVideo, removeVideoStorage, downloadDigitalMediaAttachment, getVideosEight, getVideosFour } from '../../services/DigitalMediaSVC';\r\nimport { useModal } from \"../../hooks/Modal\";\r\n\r\nconst uploadIcon = '';\r\n\r\nexport const ModalVideo = ({ toggle }) => {\r\n\r\n const [globalState] = useContext(GlobalStateContext);\r\n\r\n const dropdownListCountry = useRef(null);\r\n const dropdownListCategory = useRef(null);\r\n const autoCompleteApproverRef = useRef(null);\r\n const dropdownListRegional = useRef(null);\r\n const generatedThumbResponse = useRef(null);\r\n const [tempGuid, setTempGuid] = useState(\"\");\r\n // const [currentItem, setCurrentItem] = useState(null);\r\n const [uploadedFile, setUploadedFile] = useState(null);\r\n const [videoBlob, setVideoBlob] = useState();\r\n const [videoSrc, setVideoSrc] = useState(\"\");\r\n const [openModal, setOpenModal] = useState(false);\r\n const [openModalDelete, setOpenModalDelete] = useState(false);\r\n const [openModalConfirm, setOpenModalConfirm] = useState(false);\r\n const [openModalApprove, setOpenModalApprove] = useState(false);\r\n const [imgUrlChanged, setImgUrlChanged] = useState(false);\r\n const [editPage, setEditPage] = useState(false);\r\n const [blockIdList, setBlockIdList] = useState([]);\r\n const [uploadChunkSize, setUploadChunkSize] = React.useState(1000000);\r\n const [showPlayer, setShowPlayer] = useState(false);\r\n // const [loading, setLoading] = useState(false);\r\n const [isLoadingItem, setIsLoadingItem] = useState(false);\r\n const [isVideoChanging, setIsVideoChanging] = useState(false);\r\n\r\n const { buildDialogMessage } = useModal();\r\n\r\n const {\r\n changeModalVisible,\r\n currentItem,\r\n countriesList,\r\n regionalList,\r\n categoryList,\r\n statusList,\r\n users,\r\n modalIsVisible,\r\n approvedVideos,\r\n setApprovedVideos,\r\n pendingVideos,\r\n setPendingVideos\r\n } = useDigitalMedia();\r\n\r\n let isInteraction;\r\n const videoRef = useRef(null);\r\n\r\n const submitForm = async values => {\r\n\r\n if (!isLoadingItem) {\r\n\r\n if (editPage) {\r\n\r\n if (values.aprovadoPor.id ===currentItem.enviadoPor.id) {\r\n setError(\"aprovadoPor\", \"sameUser\");\r\n return;\r\n }\r\n\r\n setIsLoadingItem(true);\r\n\r\n const properties = uploadedFile ? {\r\n nomeArquivoVideo: uploadedFile && uploadedFile.name,\r\n formatoArquivoVideo: uploadedFile && uploadedFile.type,\r\n tamanhoArquivoVideo: uploadedFile && uploadedFile.size,\r\n duracaoArquivoVideo: uploadedFile && new Date(1000 * uploadedFile.duration).toISOString().substr(11, 8)\r\n } : {};\r\n\r\n const newVideoData = {\r\n ...currentItem,\r\n ...values,\r\n ...properties,\r\n videoMiniaturaB64: imgUrlChanged ? values.imgUrl.split(',')[1] : \"\",\r\n nucleoVideoStatus: statusList.find(status => status.id ===1),\r\n nucleoVideoCategoria: values.categoria,\r\n }\r\n\r\n try {\r\n const video = await updateVideo(globalState.accessToken, JSON.stringify(newVideoData)).then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n })\r\n\r\n newVideoData.id = video.id;\r\n } catch (e) {\r\n buildDialogMessage({\r\n titlePt: \"Erro\",\r\n titleEn: \"Error\",\r\n messagePt: \"Um erro ocorreu ao atualizar o vídeo\",\r\n messageEn: \"An error has ocurred while updating the video\",\r\n icon: 'e-icon-dlg-close e-icons',\r\n });\r\n }\r\n\r\n const newPendingVideos = [...pendingVideos.value];\r\n const currentVideoIndex = [...pendingVideos.value].findIndex(videos => videos.id ===currentItem.id);\r\n\r\n newPendingVideos[currentVideoIndex] = newVideoData;\r\n\r\n setPendingVideos(state => ({ ...state, value: newPendingVideos }));\r\n setIsLoadingItem(false);\r\n\r\n buildDialogMessage({\r\n titlePt: \"Sucesso\",\r\n titleEn: \"Success\",\r\n messageEn: \"Video successfully updated\",\r\n messagePt: \"Video atualizado com sucesso\"\r\n });\r\n\r\n } else {\r\n\r\n if (values.aprovadoPor.id ===globalState.userId) {\r\n setError(\"aprovadoPor\", \"sameUser\");\r\n return;\r\n }\r\n\r\n setIsLoadingItem(true);\r\n\r\n const modalVideoPayload = {\r\n ...values,\r\n enviadoEm: new Date(),\r\n enviadoPor: {\r\n email: globalState.userEmail,\r\n nome: globalState.userName,\r\n id: globalState.userId\r\n },\r\n nucleoVideoStatus: statusList.find(status => status.id ===1),\r\n nucleoVideoCategoria: values.categoria,\r\n nomeArquivoVideo: uploadedFile.name,\r\n formatoArquivoVideo: uploadedFile.type,\r\n tamanhoArquivoVideo: uploadedFile.size,\r\n duracaoArquivoVideo: new Date(1000 * uploadedFile.duration).toISOString().substr(11, 8),\r\n tempGuid,\r\n videoMiniaturaB64: values.imgUrl.split(',')[1]\r\n }\r\n\r\n const video = await addVideo(globalState.accessToken, JSON.stringify(modalVideoPayload)).then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n } else {\r\n buildDialogMessage({\r\n titlePt: \"Erro\",\r\n titleEn: \"Error\",\r\n messagePt: \"Erro ao atualizar o vídeo\",\r\n messageEn: \"Error while adding the video\",\r\n error: 500\r\n });\r\n }\r\n });\r\n\r\n modalVideoPayload.id = video.id;\r\n\r\n const newPendingVideos = { ...pendingVideos };\r\n let paginationUrl = `${process.env.REACT_APP_API_URL}/_api/CoreVideoPaginationFour?$apply=filter(nucleoVideoStatus/id%20ne%202)&$orderby=enviadoEm%20desc&$skip=${newPendingVideos.value.length}`;\r\n\r\n if (newPendingVideos && newPendingVideos.value && newPendingVideos.value.length > 0 && newPendingVideos.value.length % 4 ===0) {\r\n newPendingVideos.value.pop();\r\n\r\n const pendingVideosList = await getVideosFour({\r\n token: globalState.accessToken,\r\n paginationUrl\r\n }).then(res => {\r\n if (res.ok)\r\n return res.json();\r\n });\r\n\r\n if (pendingVideosList && pendingVideosList.value && pendingVideosList.value.length === 0) {\r\n paginationUrl = \"\";\r\n }\r\n\r\n newPendingVideos[\"@odata.nextLink\"] = paginationUrl;\r\n }\r\n\r\n newPendingVideos.value.unshift(modalVideoPayload);\r\n\r\n setPendingVideos(newPendingVideos);\r\n setIsLoadingItem(false);\r\n\r\n buildDialogMessage({\r\n titlePt: \"Sucesso\",\r\n titleEn: \"Success\",\r\n messageEn: \"Video successfully added\",\r\n messagePt: \"Video adicionado com sucesso\"\r\n });\r\n }\r\n\r\n changeModalVisible(false);\r\n }\r\n };\r\n\r\n const getError = (error) => {\r\n console.log(error);\r\n switch (error.type) {\r\n case \"required\": {\r\n return (\r\n
    {t(\"Validation:required\")}
    \r\n )\r\n }\r\n case \"validate\": {\r\n return (\r\n
    {t(\"Validation:required\")}
    \r\n )\r\n }\r\n case \"sameUser\": {\r\n return (\r\n
    {t(\"Validation:sameUser\")}
    \r\n )\r\n }\r\n }\r\n }\r\n\r\n const downloadAttachment = () => {\r\n const url = window.URL.createObjectURL(new Blob([videoBlob]));\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.setAttribute('download', `${currentItem.titulo}.${currentItem.formatoArquivoVideo}`);\r\n document.body.appendChild(link);\r\n link.click();\r\n link.parentNode.removeChild(link);\r\n };\r\n\r\n const { register, handleSubmit, getValues, setValue, errors, setError } = useForm({\r\n mode: 'onSubmit',\r\n reValidateMode: 'onChange',\r\n defaultValues: {\r\n titulo: currentItem && currentItem.titulo,\r\n aprovadoPor: currentItem && currentItem.aprovadoPor,\r\n descricao: currentItem && currentItem.descricao,\r\n pais: currentItem && currentItem.pais,\r\n categoria: currentItem && currentItem.nucleoVideoCategoria,\r\n regional: currentItem && currentItem.regional,\r\n comentario: currentItem && currentItem.comentario,\r\n imgUrl: \"\"\r\n },\r\n resolver: undefined,\r\n context: undefined,\r\n criteriaMode: \"firstError\",\r\n shouldFocusError: true,\r\n shouldUnregister: true,\r\n })\r\n\r\n const formRef = useRef(null);\r\n\r\n const dropAreaRef = useRef(null);\r\n\r\n let uploadObj;\r\n\r\n const { t } = useTranslation();\r\n\r\n useEffect(() => {\r\n setOpenModal(true);\r\n }, [modalIsVisible])\r\n\r\n const asyncSettings = {\r\n saveUrl: `${process.env.REACT_APP_API_URL}/_api/CoreVideos/UploadVideoAttachmentChunks?IdOrGuid=${tempGuid ? tempGuid : currentItem && currentItem.id}`,\r\n removeUrl: `${process.env.REACT_APP_API_URL}/_api/CoreVideos/RemoveVideoAttachment?IdOrGuid=${tempGuid ? tempGuid : currentItem && currentItem.id}`,\r\n chunkSize: uploadChunkSize\r\n };\r\n\r\n const autoUpload = true;\r\n\r\n const values = getValues();\r\n\r\n const onRemoveFile = (args) => {\r\n if (args && args.currentRequest) {\r\n args.postRawFile = false;\r\n }\r\n }\r\n\r\n const onPausing = (args) => {\r\n if (args.event !== null && !navigator.onLine) {\r\n isInteraction = true;\r\n } else {\r\n isInteraction = false;\r\n }\r\n }\r\n\r\n const onResuming = (args) => {\r\n if (args.event !== null && !navigator.onLine) {\r\n isInteraction = true;\r\n } else {\r\n isInteraction = false;\r\n }\r\n }\r\n\r\n const onBeforeFailure = (args) => {\r\n //let proxy = this;\r\n args.cancel = isInteraction;\r\n // interval to check network availability on every 500 milliseconds\r\n let clearTimeInterval = setInterval(() => {\r\n if (navigator.onLine && uploadObj && uploadObj.filesData[0] && uploadObj.filesData[0].statusCode ===4) {\r\n uploadObj.resume(uploadObj.filesData);\r\n clearSetInterval();\r\n } else {\r\n if (!isInteraction && uploadObj && uploadObj.filesData[0] && uploadObj.filesData[0].statusCode ===3) {\r\n uploadObj.pause(uploadObj.filesData);\r\n }\r\n }\r\n }, 500);\r\n // clear Interval after when network is available.\r\n const clearSetInterval = () => {\r\n clearInterval(clearTimeInterval);\r\n }\r\n }\r\n\r\n const isOwnerOrAdmin = useMemo(() => {\r\n return (currentItem &&\r\n currentItem.enviadoPor.id === globalState.userId) ||\r\n (globalState.userAdmin ||\r\n hasPermissions(21, \"Admin\", globalState))\r\n }, [currentItem]);\r\n\r\n const isApproved = useMemo(() => {\r\n return currentItem && currentItem.nucleoVideoStatus.id ===2;\r\n }, [currentItem]);\r\n\r\n const isDefaultDisabled = () => {\r\n\r\n if (currentItem && hasPermissions(21, \"Edit\", globalState) && (isOwnerOrAdmin) && !isApproved) { // caso um item esteja sendo editado\r\n return false;\r\n } else if (!currentItem && hasPermissions(21, \"Create\", globalState) && !editPage) { // caso um item novo esteja sendo criado\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n\r\n };\r\n\r\n const chunkUploaded = (e) => {\r\n //let responseBlockId = JSON.parse(e.event.currentTarget.response);\r\n setBlockIdList(blockIdList => [...blockIdList, e.event.currentTarget.response]);\r\n }\r\n\r\n const whenFileSelected = (e) => {\r\n let chunkSize = e.fileInfo.size / 10;\r\n //uploadObj.asyncSettings.chunkSize = chunkSize;//parseInt(e.itemData.value, 10);\r\n setUploadChunkSize(uploadChunkSize => uploadChunkSize = chunkSize);\r\n }\r\n\r\n useEffect(() => {\r\n if (currentItem) {\r\n setEditPage(true);\r\n setValue(\"imgUrl\", \"hasThumb\");\r\n downloadDigitalMediaAttachment(globalState.tokenLightWeight, currentItem.id)\r\n .then((response) => response.blob())\r\n .then((blob) => {\r\n const url = window.URL.createObjectURL(new Blob([blob]));\r\n setVideoBlob(blob);\r\n setVideoSrc(url);\r\n });\r\n } else {\r\n setTempGuid(uuidv4());\r\n }\r\n }, []);\r\n\r\n let modalButtons;\r\n\r\n if (currentItem) {\r\n modalButtons = [\r\n {\r\n type: \"submit\",\r\n buttonModel: {\r\n isPrimary: false,\r\n content: i18n.language ===\"pt\" ? \"Deletar\" : \"Delete\",\r\n cssClass: `bannerDelete ${!(hasPermissions(21, \"Delete\", globalState) && (!isApproved || hasPermissions(21, \"Admin\", globalState)) && (isOwnerOrAdmin) && currentItem) && 'hidden'}`\r\n },\r\n click: () => {\r\n setOpenModalDelete('true');\r\n }\r\n },\r\n {\r\n type: \"submit\",\r\n buttonModel: {\r\n isPrimary: true,\r\n content: i18n.language ===\"pt\" ? \"Salvar\" : \"Save\",\r\n cssClass: `bannerSave ${!(hasPermissions(21, \"Edit\", globalState) && (isOwnerOrAdmin) && !isApproved && currentItem) && 'hidden'}`\r\n },\r\n click: () => {\r\n !isLoadingItem && handleSubmit(submitForm)();\r\n }\r\n }\r\n ]\r\n } else {\r\n modalButtons = [\r\n {\r\n type: \"submit\",\r\n buttonModel: {\r\n isPrimary: true,\r\n content: i18n.language ===\"pt\" ? \"Salvar\" : \"Save\",\r\n cssClass: \"bannerSave\"\r\n },\r\n click: () => {\r\n handleSubmit(submitForm)();\r\n }\r\n }\r\n ]\r\n }\r\n\r\n let generateThumbOnClick = (e) => {\r\n e.preventDefault();\r\n let canvas = document.querySelector('#canvas');\r\n let video = document.querySelector('#video');\r\n canvas.width = 300;\r\n canvas.height = 175;\r\n let canvasCtx = canvas.getContext(\"2d\");\r\n // canvas.setAttribute('style', 'display: none; width:100%; margin-bottom:1em')\r\n canvasCtx.drawImage(video, 0, 0, 320, 175);\r\n\r\n setValue(\"imgUrl\", canvas.toDataURL(), {\r\n shouldValidate: false\r\n });\r\n\r\n setImgUrlChanged(true);\r\n generatedThumbResponse.current.style.display = \"block\";\r\n }\r\n\r\n let removeFiles = () => {\r\n changeModalVisible(false);\r\n const clearThumb = document.getElementById(\"UploadFiles\") && document.getElementById(\"UploadFiles\").ej2_instances[0];\r\n if (clearThumb !== null && clearThumb.clearAll !== null && typeof (clearThumb.clearAll) !== \"undefined\") {\r\n return clearThumb.clearAll();\r\n }\r\n }\r\n\r\n const uploadImage = () => {\r\n document.getElementsByClassName(\"e-file-select-wrap\")[0].querySelector(\"button\").click();\r\n return false;\r\n }\r\n\r\n const changeVideo = () => {\r\n setVideoSrc(\"\");\r\n setValue(\"imgUrl\", \"\");\r\n setShowPlayer(false);\r\n setIsVideoChanging(true);\r\n // setTempGuid(uuidv4());\r\n };\r\n\r\n useEffect(() => {\r\n createSpinner({ target: document.getElementById('modalLoading') })\r\n showSpinner(document.getElementById('modalLoading'));\r\n setSpinner({ type: 'Bootstrap' });\r\n\r\n\r\n createSpinner({ target: document.getElementById('loadingItem') })\r\n showSpinner(document.getElementById('loadingItem'));\r\n setSpinner({ type: 'Bootstrap' });\r\n }, [isLoadingItem]);\r\n\r\n useEffect(() => {\r\n if (currentItem && currentItem.pais && currentItem.pais.id ===6) {\r\n dropdownListRegional.current.enabled = true;\r\n } else {\r\n dropdownListRegional.current.enabled = false;\r\n }\r\n }, [currentItem]);\r\n\r\n const confirmDelete = async () => {\r\n await removeVideoStorage(globalState.accessToken, currentItem.id);\r\n\r\n if (currentItem.nucleoVideoStatus.id ===2) {\r\n const index = [...approvedVideos.value].findIndex(video => video.id ===currentItem.id);\r\n const newApprovedVideos = [...approvedVideos.value];\r\n\r\n newApprovedVideos.splice(index, 1);\r\n\r\n setApprovedVideos(state => ({ ...state, value: newApprovedVideos }))\r\n\r\n if (approvedVideos[\"@odata.nextLink\"]) {\r\n const skipNumber = approvedVideos.value.length - 1;\r\n\r\n let skipString = approvedVideos[\"@odata.nextLink\"].split(\"skip=\");\r\n\r\n skipString[1] = skipNumber;\r\n\r\n skipString = skipString.join(\"skip=\");\r\n\r\n const approvedList = await getVideosEight({\r\n token: globalState.accessToken,\r\n paginationUrl: skipString\r\n }).then(res => {\r\n if (res.ok)\r\n return res.json();\r\n });\r\n\r\n if (approvedList && approvedList.value && approvedList.value.length > 0) {\r\n\r\n let paginationUrl = `${process.env.REACT_APP_API_URL}/_api/CoreVideoPaginationEight?$apply=filter(nucleoVideoStatus/id%20ne%202)&$orderby=enviadoEm%20desc&$skip=${newApprovedVideos.length + 1}`;\r\n\r\n if (approvedList.value.length <= 1) {\r\n paginationUrl = \"\";\r\n }\r\n\r\n const newVideos = {\r\n ...approvedVideos,\r\n value: [\r\n ...newApprovedVideos,\r\n approvedList.value[0],\r\n ]\r\n };\r\n\r\n newVideos[\"@odata.nextLink\"] = paginationUrl;\r\n\r\n setApprovedVideos(newVideos);\r\n } else {\r\n setApprovedVideos(videos => ({\r\n paginationUrl: \"\",\r\n value: [\r\n ...videos.value\r\n ]\r\n }))\r\n }\r\n }\r\n\r\n } else {\r\n const index = [...pendingVideos.value].findIndex(video => video.id ===currentItem.id);\r\n const newPendingVideos = [...pendingVideos.value];\r\n\r\n newPendingVideos.splice(index, 1);\r\n\r\n setPendingVideos(state => ({ ...state, value: newPendingVideos }))\r\n\r\n if (pendingVideos[\"@odata.nextLink\"]) {\r\n const skipNumber = pendingVideos.value.length - 1;\r\n\r\n let skipString = pendingVideos[\"@odata.nextLink\"].split(\"skip=\");\r\n\r\n skipString[1] = skipNumber;\r\n\r\n skipString = skipString.join(\"skip=\");\r\n\r\n const pendingVideosList = await getVideosFour({\r\n token: globalState.accessToken,\r\n paginationUrl: skipString\r\n }).then(res => {\r\n if (res.ok)\r\n return res.json();\r\n });\r\n\r\n if (pendingVideosList && pendingVideosList.value && pendingVideosList.value.length > 0) {\r\n\r\n let paginationUrl = `${process.env.REACT_APP_API_URL}/_api/CoreVideoPaginationFour?$apply=filter(nucleoVideoStatus/id%20ne%202)&$orderby=enviadoEm%20desc&$skip=${newPendingVideos.length + 1}`;\r\n\r\n if (pendingVideosList.value.length <= 1) {\r\n paginationUrl = \"\";\r\n }\r\n\r\n const newVideos = {\r\n ...pendingVideos,\r\n value: [\r\n ...newPendingVideos,\r\n pendingVideosList.value[0],\r\n ]\r\n };\r\n\r\n newVideos[\"@odata.nextLink\"] = paginationUrl;\r\n\r\n setPendingVideos(newVideos);\r\n } else {\r\n setPendingVideos(videos => ({\r\n paginationUrl: \"\",\r\n value: [\r\n ...videos.value\r\n ]\r\n }))\r\n }\r\n }\r\n }\r\n\r\n setOpenModalConfirm(true);\r\n }\r\n\r\n const chunkComplete = async (args) => {\r\n var url = URL.createObjectURL(args.file.rawFile);\r\n\r\n let reader = new FileReader();\r\n reader.onload = function () {\r\n var aud = new Audio(reader.result);\r\n aud.onloadedmetadata = function () {\r\n setUploadedFile({ ...args.file, duration: aud.duration });\r\n setVideoSrc(url);\r\n setIsVideoChanging(false);\r\n };\r\n };\r\n reader.readAsDataURL(args.file.rawFile);\r\n };\r\n\r\n\r\n const fileUploading = (e) => {\r\n e.currentRequest.setRequestHeader(\"Authorization\", \"Bearer \" + globalState.accessToken);\r\n if (blockIdList.length > 0) e.currentRequest.setRequestHeader(\"blockIdList\", blockIdList.join(','));\r\n }\r\n\r\n const closeModal = () => {\r\n setOpenModalDelete(false);\r\n // changeModalVisible(false);\r\n toggle.close();\r\n }\r\n\r\n let videoOnload = () => {\r\n let canvas = document.querySelector('#canvas'),\r\n video = document.querySelector('#video');\r\n if (canvas) {\r\n canvas.width = video.videoWidth;\r\n canvas.height = video.videoHeight;\r\n }\r\n }\r\n\r\n const dropdownListCreated = () => {\r\n if (!isDefaultDisabled()) {\r\n if (currentItem) {\r\n if (currentItem && currentItem.pais && currentItem.pais.id && currentItem.pais.id ===6) {\r\n dropdownListRegional.current.enabled = true;\r\n } else {\r\n dropdownListRegional.current.enabled = false;\r\n }\r\n dropdownListCountry.current.enabled = true;\r\n dropdownListCategory.current.enabled = true;\r\n autoCompleteApproverRef.current.enabled = true;\r\n }\r\n } else {\r\n if (currentItem) {\r\n if (currentItem && currentItem.pais && currentItem.pais.id && currentItem.pais.id ===6) {\r\n dropdownListRegional.current.enabled = true;\r\n } else {\r\n dropdownListRegional.current.enabled = false;\r\n }\r\n dropdownListCountry.current.enabled = false;\r\n dropdownListCategory.current.enabled = false;\r\n autoCompleteApproverRef.current.enabled = false;\r\n }\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n register('aprovadoPor', {\r\n validate: (value) => value && !!value.id || 'This is required.'\r\n });\r\n register('pais', {\r\n required: true,\r\n });\r\n register('categoria', {\r\n required: true,\r\n });\r\n register('regional', {\r\n required: false\r\n });\r\n }, [register]);\r\n\r\n const RenderVideoTag = useCallback(({ videoSrc }) => {\r\n return (\r\n <>\r\n \r\n {(!isApproved && (!editPage && (hasPermissions(21, \"Edit\", globalState) || hasPermissions(21, 'Create', globalState)))) && }\r\n \r\n )\r\n }, []);\r\n\r\n return (\r\n <>\r\n \r\n
    \r\n
    \r\n
    \r\n {!currentItem || isVideoChanging ?\r\n <>\r\n \r\n {i18n.language ===\"pt\" ?\r\n

    \r\n Arraste o arquivo aqui ou faça o uploadImage()}> carregamento\r\n Tamanho máximo permitido é de 1 GB.\r\n\r\n

    \r\n :\r\n

    \r\n Drag the file here or uploadImage()}> upload\r\n Maximum allowed size is 1 GB.\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 args.currentRequest.setRequestHeader(\"Authorization\", \"Bearer \" + globalState.accessToken);\r\n }}\r\n pausing={onPausing}\r\n uploading={fileUploading}\r\n chunkUploading={fileUploading}\r\n chunkFailure={onBeforeFailure}\r\n fileListRendering={whenFileSelected}\r\n chunkSuccess={chunkUploaded}\r\n success={(chunkComplete)}\r\n resuming={onResuming}\r\n multiple={false}\r\n ref={upload => uploadObj = upload}\r\n />\r\n \r\n\r\n
    \r\n {\r\n videoSrc && \r\n }\r\n\r\n {showPlayer &&
    {\r\n videoRef.current.play()\r\n }} />}\r\n \r\n
    \r\n\r\n {videoSrc &&\r\n <>\r\n
    \r\n
    \r\n \r\n {uploadedFile ? uploadedFile.name : currentItem && currentItem.nomeArquivoVideo}\r\n
    \r\n
    \r\n \r\n {uploadedFile ? uploadedFile.type : currentItem && currentItem.formatoArquivoVideo}\r\n
    \r\n
    \r\n \r\n {uploadedFile ? formatBytes(uploadedFile.size) : currentItem && formatBytes(currentItem.tamanhoArquivoVideo)}\r\n
    \r\n
    \r\n \r\n {uploadedFile ? new Date(1000 * uploadedFile.duration).toISOString().substr(11, 8) : currentItem && currentItem.duracaoArquivoVideo}\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n downloadAttachment()}\r\n >\r\n {t(\"DigitalMedia:downloadVideo\")}\r\n \r\n
    \r\n {(!isDefaultDisabled() || (!editPage && (hasPermissions(21, \"Edit\", globalState) || hasPermissions(21, 'Create', globalState)))) && }\r\n
    \r\n \r\n }\r\n\r\n

    {t(\"DigitalMedia:thumbGeneratedResponse\")}

    \r\n\r\n {errors.imgUrl &&

    {t(\"Validation:missingImage\")}

    }\r\n\r\n
    \r\n \r\n
    \r\n (setModalVideo({ ...modalVideo, titulo: args.target.value }))}\r\n />\r\n \r\n
    \r\n {errors && errors.titulo && getError(errors.titulo)}\r\n
    \r\n\r\n {currentItem && currentItem.approved &&\r\n
    \r\n \r\n
    \r\n {/* \"\" */}\r\n
    \r\n \r\n {currentItem.dateTime}\r\n
    \r\n
    \r\n
    \r\n }\r\n\r\n
    \r\n
    \r\n
    \r\n \r\n setValue('aprovadoPor', args.itemData)}\r\n />\r\n {errors && errors.aprovadoPor && getError(errors.aprovadoPor)}\r\n
    \r\n\r\n
    \r\n \r\n dropdownListCountry.current = ref}\r\n cssClass={`${(!isApproved && (!editPage && (hasPermissions(21, \"Edit\", globalState) || hasPermissions(21, 'Create', globalState)))) ? \"e-filled\" : \"\"} ${errors.country ? \"error\" : \"\"}`}\r\n dataSource={countriesList}\r\n fields={{ text: i18n.language ===\"pt\" ? \"nomePt\" : \"nomeEn\", value: \"id\" }}\r\n locale={i18n.language}\r\n created={dropdownListCreated}\r\n allowFiltering={true}\r\n value={currentItem && currentItem.pais && currentItem.pais.id}\r\n placeholder={i18n.language ===\"pt\" ? \"Selecione o país\" : \"Select country\"}\r\n htmlAttributes={{ tabindex: \"0\" }}\r\n change={(args) => {\r\n setValue('pais', args.itemData)\r\n if (args && args.itemData && args.itemData.id ===6) {\r\n dropdownListRegional.current.enabled = true;\r\n } else {\r\n dropdownListRegional.current.enabled = false;\r\n dropdownListRegional.current.value = null;\r\n setValue('regional', null);\r\n }\r\n }}\r\n />\r\n {errors && errors.pais && getError(errors.pais)}\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n \r\n dropdownListCategory.current = ref}\r\n cssClass={`${(!isApproved && (!editPage && (hasPermissions(21, \"Edit\", globalState) || hasPermissions(21, 'Create', globalState)))) ? \"e-filled\" : \"\"} ${errors.categoria ? \"error\" : \"\"}`}\r\n dataSource={categoryList}\r\n fields={{ text: i18n.language ===\"pt\" ? \"nomePt\" : \"nomeEn\", value: \"id\" }}\r\n locale={i18n.language}\r\n created={dropdownListCreated}\r\n value={currentItem && currentItem.nucleoVideoCategoria && currentItem.nucleoVideoCategoria.id}\r\n placeholder={i18n.language ===\"pt\" ? \"Selecione uma categoria\" : \"Select a category\"}\r\n htmlAttributes={{ tabindex: \"0\" }}\r\n change={(args) => setValue('categoria', args.itemData)}\r\n />\r\n {errors && errors.categoria && getError(errors.categoria)}\r\n
    \r\n\r\n
    \r\n \r\n dropdownListRegional.current = ref}\r\n cssClass={`${!isApproved && \"e-valid-input e-filled\"} ${(!isApproved && (!editPage && (hasPermissions(21, \"Edit\", globalState) || hasPermissions(21, 'Create', globalState)))) ? \"e-filled\" : \"\"} ${errors.regional ? \"error\" : \"\"}`}\r\n dataSource={regionalList}\r\n fields={{ text: i18n.language ===\"pt\" ? \"nomePt\" : \"nomeEn\", value: \"id\" }}\r\n locale={i18n.language}\r\n created={dropdownListCreated}\r\n value={currentItem && currentItem.regional && currentItem.regional.id}\r\n placeholder={i18n.language ===\"pt\" ? \"Selecione uma regional\" : \"Select a regional\"}\r\n htmlAttributes={{ tabindex: \"0\" }}\r\n enabled={false}\r\n change={(args) => setValue('regional', args.itemData)}\r\n />\r\n {errors && errors.regional && getError(errors.regional)}\r\n
    \r\n
    \r\n
    \r\n\r\n {isLoadingItem &&
    }\r\n\r\n \r\n\r\n
    \r\n \r\n
    \r\n setValue('descricao', args.target.value)}\r\n />\r\n \r\n
    \r\n {errors && errors.descricao && getError(errors.descricao)}\r\n\r\n
    \r\n\r\n {currentItem && currentItem.comentario &&\r\n
    \r\n \r\n
    \r\n (setModalVideo({ ...modalVideo, commen: args.target.value }))}\r\n />\r\n \r\n {errors && errors.descricao && getError(errors.descricao)}\r\n
    \r\n
    \r\n }\r\n\r\n \r\n \r\n \r\n
    \r\n
    \r\n {openModalApprove ?\r\n \r\n :\r\n \r\n }\r\n
    \r\n {openModalApprove ?\r\n \r\n :\r\n \r\n }\r\n {openModalApprove ?\r\n \r\n :\r\n \r\n\r\n }\r\n
    \r\n
    \r\n
    \r\n {!openModalConfirm ?\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","import { requestAPI } from '../utilities/Utils';\r\n\r\nexport async function getManageInternalAreas(token) {\r\n // const qstring; //= idioma ? `?$filter=IdIdioma eq ${idioma}` : '';\r\n const qString = \"?$orderby=id desc\"\r\n\r\n return requestAPI(\r\n '_api/BrandingAdvertising/Management/InternalArea/GetInternalAreaItems',\r\n 'GET',\r\n qString,\r\n null,\r\n token,\r\n false,\r\n );\r\n}\r\n\r\nexport async function updateManageInternalAreas(token, body) {\r\n const raw = JSON.stringify(body);\r\n return requestAPI(\r\n '_api/BrandingAdvertising/Management/InternalArea/UpdateInternalArea',\r\n 'POST',\r\n '',\r\n raw,\r\n token,\r\n false,\r\n );\r\n}\r\n\r\nexport async function addManageInternalAreas(token, body) {\r\n const raw = JSON.stringify(body);\r\n\r\n return requestAPI(\r\n '_api/BrandingAdvertising/Management/InternalArea/AddInternalArea',\r\n 'POST',\r\n '',\r\n raw,\r\n token,\r\n false,\r\n );\r\n}\r\n\r\nexport async function enableDisableInternalArea(token, body) {\r\n const raw = JSON.stringify({ id: body.id, ativo: body.ativo });\r\n const url = `_api/BrandingAdvertising/Management/InternalArea/EnableDisableInternalArea?internalAreaId=${body.id}&enable=${body.ativo}`;\r\n https: return requestAPI(url, 'POST', '', raw, token, false);\r\n}\r\n","import * as React from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\nimport { Container, Row } from 'reactstrap';\r\nimport { GlobalStateContext } from '../general/GlobalState';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Internal } from './InternalContent';\r\n\r\nimport '../manageInternalAreas/manageInternalAreas.css';\r\n\r\nexport const ManageInternalAreas = () => {\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n\r\n const { t } = useTranslation();\r\n\r\n return (\r\n <>\r\n {globalState.accessToken === null ? (\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","import { requestAPI } from '../utilities/Utils';\r\n\r\nexport async function getManageAnnualBudget(token) {\r\n // const qstring; //= idioma ? `?$filter=IdIdioma eq ${idioma}` : '';\r\n const qString = \"?$orderby=id desc\"\r\n\r\n return requestAPI(\r\n '_api/BrandingAdvertising/Management/AnnualBudget/GetAnnualBudgetItems',\r\n 'GET',\r\n qString,\r\n null,\r\n token,\r\n false,\r\n );\r\n}\r\n\r\nexport async function updateManageAnnualBudget(token, body) {\r\n const raw = JSON.stringify(body);\r\n return requestAPI(\r\n '_api/BrandingAdvertising/Management/AnnualBudget/UpdateAnnualBudget',\r\n 'POST',\r\n '',\r\n raw,\r\n token,\r\n false,\r\n );\r\n}\r\n\r\nexport async function addManageAnnualBudget(token, body) {\r\n const raw = JSON.stringify(body);\r\n return requestAPI(\r\n '_api/BrandingAdvertising/Management/AnnualBudget/AddAnnualBudget',\r\n 'POST',\r\n '',\r\n raw,\r\n token,\r\n false,\r\n );\r\n}\r\n","import * as React from 'react';\r\nimport { Row } from 'reactstrap';\r\nimport { GlobalStateContext } from '../general/GlobalState';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Buttons } from '../utilities/Buttons';\r\nimport GenericModal from '../utilities/MessageModal/GenericModal';\r\nimport {\r\n TextBoxComponent,\r\n MaskedTextBoxComponent,\r\n} from '@syncfusion/ej2-react-inputs';\r\nimport {\r\n GridComponent,\r\n ColumnsDirective,\r\n ColumnDirective,\r\n Edit,\r\n Toolbar,\r\n Filter,\r\n Inject,\r\n VirtualScroll,\r\n Sort,\r\n ContextMenu,\r\n Page,\r\n Resize,\r\n} from '@syncfusion/ej2-react-grids';\r\nimport { DialogComponent } from '@syncfusion/ej2-react-popups';\r\nimport { DropDownListComponent } from '@syncfusion/ej2-react-dropdowns';\r\nimport i18n from 'i18next';\r\nimport { useForm } from 'react-hook-form';\r\nimport {\r\n getManageAnnualBudget,\r\n addManageAnnualBudget,\r\n updateManageAnnualBudget,\r\n} from './manageAnnualBudgetSVC';\r\nimport {\r\n createSpinner,\r\n showSpinner,\r\n setSpinner,\r\n} from '@syncfusion/ej2-react-popups';\r\nimport { setCulture, setCurrencyCode } from '@syncfusion/ej2-base';\r\n\r\nimport { NumericTextBoxComponent } from '@syncfusion/ej2-react-inputs';\r\nimport { hasPermissions } from '../utilities/Utils';\r\nimport PermissionRedirect from '../utilities/PermissionRedirect/PermissionRedirect';\r\nimport { useModal } from '../../hooks/Modal';\r\n\r\nlet userPermission;\r\n\r\nexport const Annual = (props) => {\r\n // setCulture(i18n.language);\r\n setCurrencyCode('BRL');\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const { t } = useTranslation();\r\n const gridInstance = React.useRef(null);\r\n\r\n const [openEditModal, setOpenEditModal] = React.useState(false);\r\n\r\n const { buildDialogMessage } = useModal();\r\n\r\n const [typeOfForm, settypeOfForm] = React.useState('');\r\n const { register, handleSubmit, errors, reset, clearError, setValue } = useForm({\r\n mode: 'onSubmit',\r\n reValidateMode: 'onChange',\r\n defaultValues: {},\r\n resolver: undefined,\r\n context: undefined,\r\n criteriaMode: 'firstError',\r\n shouldFocusError: true,\r\n shouldUnregister: true,\r\n });\r\n const [modalData, setModalData] = React.useState();\r\n const dialogInstance = React.useRef();\r\n const [modalMessageParams, setmodalMessageParams] = React.useState({\r\n show: false,\r\n });\r\n const [manageDataArr, setManageDataArr] = React.useState([]);\r\n const [errosAPI, setErrosApi] = React.useState(null);\r\n const [loading, setloading] = React.useState(false);\r\n const contextMenuItems = [\r\n 'SortAscending',\r\n 'SortDescending',\r\n 'FirstPage',\r\n 'PrevPage',\r\n 'LastPage',\r\n 'NextPage',\r\n ];\r\n\r\n // effects\r\n React.useEffect(() => {\r\n buildGridItems();\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n gridInstance.current.refresh();\r\n }, [i18n.language]);\r\n\r\n React.useEffect(() => {\r\n if (loading) {\r\n createSpinner({ target: document.getElementById('loading') });\r\n showSpinner(document.getElementById('loading'));\r\n setSpinner({ type: 'Bootstrap' });\r\n }\r\n }, [loading]);\r\n\r\n\r\n // templates\r\n const active_colum = (args) => {\r\n return (\r\n <>\r\n {args.ativo ===true ? (\r\n \r\n {i18n.language ==='pt' ? 'Sim' : 'Yes'}\r\n \r\n ) : (\r\n \r\n {i18n.language ==='pt' ? 'Não' : 'No'}\r\n \r\n )}\r\n \r\n );\r\n };\r\n\r\n React.useEffect(() => {\r\n let globalPermissions = globalState.permissions;\r\n userPermission = globalPermissions.filter((i) => i.idAreaAcesso === 29).map((i) => (i.permission));\r\n console.log(userPermission);\r\n }, [globalState]);\r\n\r\n const editTemplate = (args) => {\r\n return hasPermissions(29, \"Edit\", globalState) && (\r\n
    \r\n {\r\n openEdit(args);\r\n // edit(args);\r\n }}\r\n className=\"mdl2 mdl2-pencil\"\r\n />\r\n
    \r\n );\r\n };\r\n\r\n const toBRL = valor => {\r\n return parseFloat(valor).toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' })\r\n }\r\n\r\n const templateSaldo = (data) => {\r\n return {data.saldo && toBRL(data.saldo)};\r\n };\r\n\r\n const templateOrcamento = (data) => {\r\n return {data.orcamento && toBRL(data.orcamento)};\r\n };\r\n\r\n const bannerStatus = [\r\n {\r\n text: i18n.language ==='pt' ? 'Sim' : 'Yes',\r\n value: 'yes',\r\n },\r\n {\r\n text: i18n.language ==='pt' ? 'Não' : 'No',\r\n value: 'no',\r\n },\r\n ];\r\n\r\n\r\n const buildGridItems = async () => {\r\n await getManageAnnualBudget(globalState.accessToken).then((response) => {\r\n if (response.ok) {\r\n response.json().then((data) => {\r\n setManageDataArr(data);\r\n });\r\n }\r\n });\r\n };\r\n\r\n\r\n\r\n // MODAL\r\n const clearModal = () => {\r\n setModalData(null);\r\n setValue('orcamento', null);\r\n setValue('saldo', null);\r\n setValue('ano', null);\r\n clearError();\r\n reset();\r\n setOpenEditModal(false);\r\n dialogInstance.current.hide();\r\n };\r\n\r\n\r\n // CUSTOM FunctioS\r\n const openEdit = (args) => {\r\n settypeOfForm('EDIT');\r\n setValue('orcamento', args.orcamento);\r\n setValue('saldo', args.saldo);\r\n setModalData(args);\r\n setOpenEditModal(true);\r\n dialogInstance.current.show();\r\n };\r\n\r\n const tranformToBRL = (value, prefix = 'R$ ') => {\r\n var v = value.replace(/\\D/g, '');\r\n v = (v / 100).toFixed(2) + '';\r\n v = v.replace('.', ',');\r\n v = v.replace(/(\\d)(\\d{3})(\\d{3}),/g, '$1.$2.$3,');\r\n v = v.replace(/(\\d)(\\d{3}),/g, '$1.$2,');\r\n return prefix + v;\r\n };\r\n\r\n const buildDialogMessage2 = (type, msg) => {\r\n if (type ==='success') {\r\n setmodalMessageParams({\r\n title: t('ModalMessages:title'),\r\n message: t('ModalMessages:created'),\r\n type: 'success',\r\n icon: 'mdl2-confirm',\r\n show: true,\r\n });\r\n } else if (type ==='error') {\r\n setmodalMessageParams({\r\n title: t('ManageInternalAreas:error_title'),\r\n message: t('ManageInternalAreas:error'),\r\n type: 'error',\r\n icon: 'e-icon-dlg-close e-icons',\r\n show: true,\r\n });\r\n } else if (type ==='updated') {\r\n setmodalMessageParams({\r\n title: t('ModalMessages:title'),\r\n message: t('ModalMessages:updated'),\r\n type: 'success',\r\n icon: 'mdl2-confirm',\r\n show: true,\r\n });\r\n } else if (type ==='custom-error') {\r\n setmodalMessageParams({\r\n title: t('ManageInternalAreas:error_title'),\r\n message: msg,\r\n type: 'error',\r\n icon: 'e-icon-dlg-close e-icons',\r\n show: true,\r\n });\r\n }\r\n };\r\n\r\n\r\n // BUSINESS RULES\r\n const createItem = async (dataInput) => {\r\n setloading(true);\r\n setErrosApi(null);\r\n const dataToPersist = {\r\n ano: parseInt(dataInput.ano),\r\n orcamento: dataInput.orcamento,\r\n };\r\n let insert;\r\n try {\r\n insert = await addManageAnnualBudget(\r\n globalState.accessToken,\r\n dataToPersist,\r\n );\r\n\r\n if (insert.ok && (insert.status ===200 || insert.status ===201)) {\r\n insert.json().then((res) => {\r\n setManageDataArr((prevstate) => {\r\n const newDataArr = prevstate;\r\n dataToPersist.id = res.id;\r\n newDataArr.unshift(dataToPersist);\r\n return newDataArr;\r\n });\r\n });\r\n gridInstance.current.refresh();\r\n dialogInstance.current.hide();\r\n buildDialogMessage2('success');\r\n setOpenEditModal(false);\r\n reset();\r\n } else {\r\n const r = await insert.json();\r\n console.log(r);\r\n if (r.Mensagem || r.title) {\r\n buildDialogMessage2('custom-error', r.Mensagem || r.title);\r\n setErrosApi(r.Mensagem);\r\n } else {\r\n setErrosApi(t(\"ManageAnnualBudget:yearExists\"));\r\n }\r\n }\r\n setloading(false);\r\n } catch (r) {\r\n setloading(false);\r\n console.log(r);\r\n if (r.Mensagem || r.title) {\r\n buildDialogMessage2('custom-error', r.Mensagem || r.title);\r\n setErrosApi(r.Mensagem);\r\n } else {\r\n setErrosApi(t(\"ManageAnnualBudget:yearExists\"));\r\n }\r\n }\r\n };\r\n\r\n const updateItem = async (dataInput) => {\r\n setloading(true);\r\n setErrosApi(null);\r\n const dataToPersist = {\r\n id: modalData.id,\r\n ano: parseInt(dataInput.ano),\r\n orcamento: dataInput.orcamento,\r\n ativo: dataInput.ativo ==='yes' ? true : false,\r\n };\r\n try {\r\n const r = await updateManageAnnualBudget(\r\n globalState.accessToken,\r\n dataToPersist,\r\n );\r\n\r\n if (r.ok && r.status ===200) {\r\n r.json().then((res) => {\r\n const newManageDataArr = gridInstance.current.dataSource.map(\r\n (item) => {\r\n if (item.id ===modalData.id) item = res;\r\n return item;\r\n },\r\n );\r\n setManageDataArr(newManageDataArr);\r\n gridInstance.current.dataSource = newManageDataArr;\r\n gridInstance.current.refresh();\r\n });\r\n\r\n dialogInstance.current.hide();\r\n buildDialogMessage2('updated');\r\n setOpenEditModal(false);\r\n clearModal();\r\n } else {\r\n const res = await r.json();\r\n setErrosApi(res);\r\n console.log(res);\r\n res.Mensagem && buildDialogMessage2('custom-error', res.Mensagem);\r\n }\r\n setloading(false);\r\n } catch (r) {\r\n setloading(false);\r\n setErrosApi(r);\r\n console.log(r);\r\n if (r.Mensagem || r.title)\r\n buildDialogMessage2('custom-error', r.Mensagem || r.title);\r\n }\r\n };\r\n\r\n\r\n // FORM\r\n const onSubmit = (data) => {\r\n if (typeOfForm ==='NEW') createItem(data);\r\n else if (typeOfForm ==='EDIT') updateItem(data);\r\n };\r\n const onError = (errors, e) => console.log(errors, e);\r\n\r\n return (\r\n <>\r\n \r\n \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n

    {t('ManageAnnualBudget:title')}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n settypeOfForm('NEW');\r\n dialogInstance.current.show();\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 {/* ID */}\r\n
    \r\n {typeOfForm ==='EDIT' && (\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n\r\n {/* ORCAMENTO */}\r\n
    \r\n \r\n
    \r\n \r\n\r\n
    \r\n\r\n {errors && errors.orcamento && (\r\n

    {t('Validation:required')}

    \r\n )}\r\n {errors && errors.orcamento && errors.orcamento.type === 'maxLength' && (\r\n

    {'Your input exceed max length'}

    \r\n )}\r\n {errors && errors.orcamento && errors.orcamento.type === 'minLength' && (\r\n

    {'Your input has no min length'}

    \r\n )}\r\n
    \r\n\r\n {/* SALDO */}\r\n {typeOfForm ==='EDIT' && (\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n {errors.saldo && (\r\n

    {t('Validation:required')}

    \r\n )}\r\n {errors.saldo && errors.saldo.type === 'maxLength' && (\r\n

    {'Your input exceed max length'}

    \r\n )}\r\n {errors.saldo && errors.saldo.type === 'minLength' && (\r\n

    {'Your input has no min length'}

    \r\n )}\r\n
    \r\n )}\r\n\r\n {/* ANO */}\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n {errors.ano && (\r\n

    {t('Validation:required')}

    \r\n )}\r\n {errors.ano && errors.ano.type === 'maxLength' && (\r\n

    {'Your input exceed max length'}

    \r\n )}\r\n {errors.ano && errors.ano.type === 'minLength' && (\r\n

    {'Your input has no min length'}

    \r\n )}\r\n {errosAPI && (\r\n

    {errosAPI}

    \r\n )}\r\n\r\n
    \r\n\r\n {/* ATIVO */}\r\n {typeOfForm ==='EDIT' && (\r\n
    \r\n \r\n
    \r\n \r\n {errors.ano && (\r\n

    {t('Validation:required')}

    \r\n )}\r\n
    \r\n
    \r\n )}\r\n\r\n
    \r\n \r\n {t('Actions:save')}\r\n \r\n
    \r\n \r\n {loading &&
    }\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n args.ativo ? t('ManageInternalAreas:yes') : t('ManageInternalAreas:no')}\r\n template={(args) => active_colum(args)}\r\n field=\"ativo\"\r\n width=\"170\"\r\n />\r\n editTemplate(args)}\r\n width=\"80\"\r\n />\r\n \r\n \r\n \r\n
    \r\n \r\n );\r\n};\r\n","import * as React from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\nimport { Container, Row } from 'reactstrap';\r\nimport { GlobalStateContext } from '../general/GlobalState';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Annual } from '../manageAnnualBudget/AnnualContent';\r\nimport { Actions } from '../utilities/Actions';\r\nimport { Buttons } from '../utilities/Buttons';\r\n\r\nimport '../manageAnnualBudget/manageAnnualBudget.css';\r\n\r\nexport const ManageAnnualBudget = () => {\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [openEditModal, setOpenEditModal] = React.useState(false);\r\n const [dataBanner, setDataBanner] = React.useState(null);\r\n\r\n const { t } = useTranslation();\r\n\r\n const _controls = {\r\n export: '',\r\n import: '',\r\n new: () => editBanner(null),\r\n back: '',\r\n };\r\n\r\n let editBanner = (args) => {\r\n setDataBanner(args);\r\n setOpenEditModal(true);\r\n };\r\n\r\n return (\r\n <>\r\n {globalState.accessToken === null ? (\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","import React, { useContext, createContext, useState } from 'react';\r\n\r\nconst ContractsContext = createContext({});\r\n\r\nconst ContractProvider = ({ children }) => {\r\n const [modalData, setModalData] = useState();\r\n const [openEditModal, setOpenEditModal] = useState(false);\r\n const [contracts, setContracts] = useState([]);\r\n const [suppliers, setSuppliers] = useState([]);\r\n\r\n const openEdit = (args) => {\r\n setOpenEditModal(true);\r\n\r\n if (args) {\r\n setModalData(args);\r\n } else {\r\n setModalData(null);\r\n }\r\n }\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nconst useContract = () => {\r\n const context = useContext(ContractsContext);\r\n\r\n if (!context) {\r\n throw new Error('useContract must be within an ContractProvider');\r\n }\r\n\r\n return context;\r\n};\r\n\r\nexport { useContract, ContractProvider };","import { requestAPI } from '../components/utilities/Utils';\r\n\r\nexport async function getContracts(token) {\r\n return requestAPI(\"_api/BrandingAdvertising/Management/Contract/GetContractItems\", \"GET\", \"?$filter=ativo eq true\", null, token, false);\r\n}\r\n\r\nexport async function getContractsHistory(token, contractId) {\r\n const params = `?contractId=${contractId}&$orderBy=data desc`;\r\n\r\n return requestAPI(\"_api/BrandingAdvertising/Management/Contract/GetContractHistoryItems\", \"GET\", params, null, token, false);\r\n}\r\n\r\nexport async function addItem(token, body) {\r\n return requestAPI(\"_api/BrandingAdvertising/Management/Contract/AddContract\", \"POST\", \"\", body, token, false);\r\n}\r\n\r\nexport async function updateItem(token, body) {\r\n return requestAPI(\"_api/BrandingAdvertising/Management/Contract/UpdateContract\", \"POST\", \"\", body, token, false);\r\n}\r\n\r\nexport async function deleteItem(token, id) {\r\n const params = `?contractId=${id}`;\r\n return requestAPI(\"_api/BrandingAdvertising/Management/Contract/DisableContract\", \"POST\", params, null, token, false);\r\n}","import React, { useContext, useState, useEffect } from \"react\";\r\nimport { DialogComponent } from \"@syncfusion/ej2-react-popups\";\r\nimport { DatePickerComponent } from \"@syncfusion/ej2-react-calendars\";\r\nimport { useForm } from 'react-hook-form';\r\nimport { useContract } from './context/ContractsContext';\r\nimport { TextBoxComponent } from '@syncfusion/ej2-react-inputs';\r\nimport i18n from \"i18next\";\r\nimport { DropDownListComponent } from '@syncfusion/ej2-react-dropdowns';\r\nimport { GlobalStateContext } from '../general/GlobalState'\r\nimport { useModal } from \"../../hooks/Modal\";\r\nimport { useTranslation } from 'react-i18next';\r\nimport { addItem, updateItem } from '../../services/ContractsSVC';\r\nimport { setCulture, setCurrencyCode } from '@syncfusion/ej2-base';\r\nimport { NumericTextBoxComponent } from '@syncfusion/ej2-react-inputs';\r\nsetCulture('pt');\r\nsetCurrencyCode(\"BRL\");\r\n\r\nconst ModalComponent = () => {\r\n\r\n const [globalState] = useContext(GlobalStateContext);\r\n\r\n const { openEditModal, modalData, setOpenEditModal, contracts, setContracts, suppliers } = useContract();\r\n\r\n const { t } = useTranslation();\r\n\r\n const { buildDialogMessage } = useModal();\r\n\r\n const { register, handleSubmit, setValue, errors } = useForm({\r\n mode: 'onSubmit',\r\n reValidateMode: 'onChange',\r\n defaultValues: {\r\n contrato: modalData && modalData.contrato,\r\n agencia: modalData && modalData.agencia,\r\n inicioVigencia: modalData && modalData.inicioVigencia,\r\n fimVigencia: modalData && modalData.fimVigencia,\r\n valor: modalData && modalData.valor\r\n },\r\n resolver: undefined,\r\n context: undefined,\r\n criteriaMode: \"firstError\",\r\n shouldFocusError: true,\r\n shouldUnregister: true,\r\n });\r\n\r\n useEffect(() => {\r\n register('agencia', {\r\n required: true\r\n });\r\n register('valor', {\r\n required: true\r\n });\r\n register('fimVigencia', {\r\n required: true\r\n })\r\n register('inicioVigencia', {\r\n required: true\r\n })\r\n }, [register]);\r\n\r\n const onSubmitClick = (data) => {\r\n setOpenEditModal(false);\r\n\r\n console.log(data);\r\n\r\n if (modalData) {\r\n updateContract(data);\r\n } else {\r\n createContract(data);\r\n }\r\n }\r\n\r\n const getError = (error) => {\r\n switch (error.type) {\r\n case \"required\": {\r\n return (\r\n
    {t(\"Validation:required\")}
    \r\n )\r\n }\r\n }\r\n }\r\n\r\n let modalButtons = [\r\n {\r\n type: \"submit\",\r\n buttonModel: {\r\n isPrimary: true,\r\n content: i18n.language ===\"pt\" ? \"Salvar\" : \"Save\",\r\n cssClass: \"bannerSave\"\r\n },\r\n click: () => {\r\n handleSubmit(onSubmitClick)();\r\n }\r\n }\r\n ]\r\n\r\n const createContract = async (data) => {\r\n const item = {\r\n ...data,\r\n inicioVigencia: `${data.inicioVigencia.getFullYear()}-${data.inicioVigencia.getMonth() + 1}-${data.inicioVigencia.getDate()}`,\r\n fimVigencia: `${data.fimVigencia.getFullYear()}-${data.fimVigencia.getMonth() + 1}-${data.fimVigencia.getDate()}`,\r\n valor: Number(data.valor)\r\n }\r\n\r\n const newItem = await addItem(globalState.accessToken, JSON.stringify(item)).then(async res => {\r\n if (res.ok) {\r\n return res.json();\r\n } else {\r\n buildDialogMessage({\r\n error: res.ok,\r\n })\r\n }\r\n });\r\n\r\n if (newItem && newItem.id) {\r\n newItem.inicioVigencia = new Date(item.inicioVigencia);\r\n newItem.fimVigencia = new Date(item.fimVigencia);\r\n\r\n setContracts(state => [...state, newItem]);\r\n }\r\n };\r\n\r\n const updateContract = async (data) => {\r\n const item = {\r\n ...modalData,\r\n ...data,\r\n agencia: data.agencia ? data.agencia : modalData.agencia,\r\n inicioVigencia: `${data.inicioVigencia.getFullYear()}-${data.inicioVigencia.getMonth() + 1}-${data.inicioVigencia.getDate()}`,\r\n fimVigencia: `${data.fimVigencia.getFullYear()}-${data.fimVigencia.getMonth() + 1}-${data.fimVigencia.getDate()}`,\r\n valor: Number(data.valor)\r\n }\r\n\r\n const newItem = await updateItem(globalState.accessToken, JSON.stringify(item)).then(async res => {\r\n if (res.ok) {\r\n return res.json();\r\n } else {\r\n buildDialogMessage({\r\n error: res.ok,\r\n })\r\n }\r\n });\r\n\r\n if (newItem && newItem.id) {\r\n const oldContracts = [...contracts];\r\n const index = oldContracts.findIndex(contract => contract.id ===modalData.id);\r\n\r\n oldContracts[index] = newItem;\r\n\r\n setContracts(oldContracts);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n console.log(modalData);\r\n }, [modalData]);\r\n\r\n return (\r\n\r\n setOpenEditModal(false)}\r\n locale={i18n.language}\r\n >\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n {errors && errors.contrato && getError(errors.contrato)}\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n setValue(\"agencia\", args.itemData)}\r\n />\r\n {errors && errors.agencia && getError(errors.agencia)}\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n setValue('inicioVigencia', args.value)}\r\n />\r\n {errors && errors.inicioVigencia && getError(errors.inicioVigencia)}\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n setValue('fimVigencia', args.value)}\r\n />\r\n {errors && errors.fimVigencia && getError(errors.fimVigencia)}\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n setValue(\"valor\", args.value)}\r\n />\r\n {errors && errors.valor && getError(errors.valor)}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n )\r\n};\r\n\r\nexport default ModalComponent;","import React, { useEffect, useContext } from \"react\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { Container, Row } from \"reactstrap\";\r\nimport { GlobalStateContext } from '../general/GlobalState'\r\nimport { useTranslation } from 'react-i18next';\r\nimport { ContractContent } from './ContractContent';\r\nimport { Buttons } from '../utilities/Buttons';\r\nimport { hasPermissions } from '../utilities/Utils';\r\n\r\nimport '../manageContracts/manageContract.css';\r\nimport { useContract } from \"./context/ContractsContext\";\r\nimport PermissionRedirect from \"../utilities/PermissionRedirect/PermissionRedirect\";\r\n\r\nlet userPermission;\r\n\r\nexport const ManageContracts = () => {\r\n\r\n const [globalState] = useContext(GlobalStateContext);\r\n\r\n const { openEdit } = useContract();\r\n\r\n const { t } = useTranslation();\r\n\r\n useEffect(() => {\r\n let globalPermissions = globalState.permissions;\r\n userPermission = globalPermissions.filter((i) => i.idAreaAcesso === 30).map((i) => (i.permission));\r\n console.log(userPermission);\r\n }, [globalState]);\r\n\r\n const _controls = {\r\n permit: userPermission ? userPermission : null,\r\n savePrimary: false,\r\n urlCancel: true,\r\n new: () => openEdit(),\r\n };\r\n\r\n return (\r\n <>\r\n {globalState.accessToken === null ? :\r\n <>\r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    {t('ManageContracts:title')}

    \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}","import React, { useContext, useState, useEffect } from \"react\";\r\nimport { GlobalStateContext } from '../general/GlobalState'\r\nimport { useTranslation } from 'react-i18next';\r\nimport { GridComponent, ColumnsDirective, ColumnDirective, Filter, Inject, Sort, ContextMenu, Page, Resize } from \"@syncfusion/ej2-react-grids\";\r\nimport { useContract } from './context/ContractsContext';\r\nimport { getContracts, getContractsHistory, deleteItem } from '../../services/ContractsSVC';\r\nimport { getSuppliers } from '../../services/SuppliersSVC';\r\nimport ModalComponent from './ModalComponent';\r\nimport { getDateTime, hasPermissions } from '../utilities/Utils';\r\nimport i18n from \"i18next\";\r\nimport { useModal } from \"../../hooks/Modal\";\r\nimport { setCulture, setCurrencyCode } from '@syncfusion/ej2-base';\r\nimport { DialogComponent } from \"@syncfusion/ej2-react-popups\";\r\n\r\nexport const ContractContent = () => {\r\n\r\n const [globalState] = useContext(GlobalStateContext);\r\n\r\n const [historyContracts, setHistoryContracts] = useState([]);\r\n const [fullHistoryContracts, setFullHistoryContracts] = useState([]);\r\n const [openModalDelete, setOpenModalDelete] = useState(false);\r\n const [deleteId, setDeleteId] = useState(-1);\r\n const [openModalConfirm, setOpenModalConfirm] = useState(false);\r\n\r\n const { openEdit, contracts, setContracts, setSuppliers } = useContract();\r\n const { buildDialogMessage } = useModal();\r\n\r\n const { t } = useTranslation();\r\n\r\n let gridInstance;\r\n let gridHistory;\r\n\r\n useEffect(() => {\r\n async function getItems() {\r\n if (hasPermissions(30, \"\", globalState)) {\r\n const contracts = await getContracts(globalState.accessToken).then(async res => {\r\n if (res.ok) {\r\n return res.json();\r\n } else {\r\n buildDialogMessage({\r\n error: res.status,\r\n });\r\n }\r\n });\r\n\r\n const contractsFiltered = contracts && contracts.length > 0 && contracts.filter(item => {\r\n item.inicioVigencia = new Date(item.inicioVigencia);\r\n item.fimVigencia = new Date(item.fimVigencia);\r\n return item;\r\n });\r\n\r\n const suppliers = await getSuppliers(globalState.accessToken).then(async res => {\r\n if (res.ok) {\r\n return res.json();\r\n } else {\r\n let errorMessage = {};\r\n\r\n errorMessage.messagePt = \"Erro ao fazer requisição\"\r\n errorMessage.messageEn = \"Error while processing your request\"\r\n\r\n buildDialogMessage({\r\n error: true,\r\n titlePt: \"Um erro ocorreu\",\r\n titleEn: \"An error has ocurred\",\r\n messagePt: `${errorMessage.messagePt}`,\r\n messageEn: `${errorMessage.messageEn}`\r\n });\r\n }\r\n });\r\n\r\n if (suppliers) {\r\n setSuppliers(suppliers);\r\n }\r\n if (contractsFiltered) {\r\n setContracts(contractsFiltered);\r\n }\r\n }\r\n }\r\n getItems();\r\n }, []);\r\n\r\n const contextMenuItems = ['SortAscending', 'SortDescending', 'FirstPage', 'PrevPage', 'LastPage', 'NextPage'];\r\n const editOptions = { allowEditing: true, allowAdding: true, allowDeleting: true };\r\n const toolbarOptions = ['Add', 'Edit', 'Delete', 'Update', 'Cancel'];\r\n\r\n const contratoTemplate = (args) => {\r\n return (\r\n <>\r\n {args.contrato &&\r\n {args.contrato}\r\n }\r\n \r\n );\r\n }\r\n\r\n const dateAndTime = args => {\r\n return (\r\n <>\r\n {\r\n args.data && {new Date(args.data).toLocaleDateString(i18n.language)}\r\n }\r\n \r\n )\r\n };\r\n\r\n const openDelete = (id) => {\r\n setOpenModalDelete(true);\r\n setDeleteId(id);\r\n };\r\n\r\n const editTemplate = (args) => {\r\n return (\r\n
    \r\n {hasPermissions(30, \"Edit\", globalState) && openEdit(args)} className=\"mdl2 mdl2-pencil\" />}\r\n {hasPermissions(30, \"Delete\", globalState) && openDelete(args.id)} className=\"mdl2 mdl2-trash\" />}\r\n
    \r\n );\r\n }\r\n\r\n const getCurrentHistory = async (id) => {\r\n const contractsHistory = await getContractsHistory(globalState.accessToken, id).then(async res => {\r\n if (res.ok) {\r\n return res.json();\r\n } else {\r\n buildDialogMessage({\r\n error: res.ok,\r\n })\r\n }\r\n });\r\n\r\n const contracts = [...contractsHistory];\r\n\r\n contracts.filter(agreementHistory => {\r\n\r\n })\r\n\r\n setFullHistoryContracts(contractsHistory);\r\n setHistoryContracts(contracts);\r\n }\r\n\r\n const confirmDelete = async () => {\r\n await deleteItem(globalState.accessToken, deleteId);\r\n\r\n const newContracts = [...contracts];\r\n const index = newContracts.findIndex(contract => contract.id ===deleteId);\r\n\r\n newContracts.splice(index, 1);\r\n\r\n setContracts(newContracts);\r\n\r\n setOpenModalConfirm(true);\r\n }\r\n\r\n const finalTemplate = (agreementHistory) => {\r\n switch (agreementHistory.tipoDado) {\r\n case \"Date\": {\r\n return {new Date(agreementHistory.dadoFinal).toLocaleDateString()}\r\n }\r\n case \"Decimal\": {\r\n return {Intl.NumberFormat(\"pt\", {\r\n style: 'currency',\r\n currency: 'BRL',\r\n }).format(agreementHistory.dadoFinal)}\r\n }\r\n default: {\r\n return {agreementHistory.dadoFinal}\r\n }\r\n }\r\n }\r\n\r\n const initialTemplate = (agreementHistory) => {\r\n switch (agreementHistory.tipoDado) {\r\n case \"Date\": {\r\n return {new Date(agreementHistory.dadoInicial).toLocaleDateString()}\r\n }\r\n case \"Decimal\": {\r\n return {Intl.NumberFormat(\"pt\", {\r\n style: 'currency',\r\n currency: 'BRL',\r\n }).format(agreementHistory.dadoInicial)}\r\n }\r\n default: {\r\n return {agreementHistory.dadoInicial}\r\n }\r\n }\r\n };\r\n\r\n const closeDeleteModal = () => {\r\n setOpenModalDelete(false);\r\n setOpenModalConfirm(false);\r\n };\r\n\r\n React.useEffect(() => {\r\n setCurrencyCode(\"BRL\");\r\n if (gridInstance)\r\n gridInstance.refresh();\r\n if (gridHistory)\r\n gridHistory.refresh();\r\n }, [i18n.language]);\r\n\r\n const format = \"\"\r\n\r\n return (\r\n
    \r\n {/*
    \r\n \r\n \r\n
    */}\r\n getCurrentHistory(row.data.id)}\r\n filterSettings={{ type: 'CheckBox' }}\r\n allowPaging={true}\r\n allowFiltering={true}\r\n allowSorting={true}\r\n locale={i18n.language}\r\n ref={grid => gridInstance = grid}\r\n >\r\n \r\n contratoTemplate(args)} field=\"contrato\" width=\"182\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n editTemplate(args)} width=\"82\">\r\n \r\n \r\n \r\n\r\n
    \r\n \r\n

    {i18n.language ===\"pt\" ? \"Histórico de alterações\" : \"Change history\"}

    \r\n
    \r\n\r\n gridHistory = grid}\r\n >\r\n \r\n \r\n \r\n dateAndTime(args)} headerText={t('ManageContracts:column_date')} field=\"data\" width=\"180\">\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 openModalConfirm ?\r\n \r\n :\r\n \r\n }\r\n
    \r\n
    \r\n
    \r\n {!openModalConfirm ?\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}","import { requestAPI } from '../components/utilities/Utils';\r\n\r\nexport async function getMeasurementItems(token) {\r\n return requestAPI(\"_api/BrandingAdvertising/MeasurementReport/GetMeasurementItems\", \"GET\", \"\", null, token, false);\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { GlobalStateContext } from '../general/GlobalState'\r\nimport { useTranslation } from 'react-i18next';\r\nimport { GridComponent, ColumnsDirective, ColumnDirective, Filter, Inject, Sort, Page, Group, AggregateColumnsDirective, AggregateDirective, AggregatesDirective, Aggregate, AggregateColumnDirective } from \"@syncfusion/ej2-react-grids\";\r\nimport i18n from \"i18next\";\r\nimport '../measurementReport/measurementReport.css';\r\nimport { getMeasurementItems } from '../../services/MeasurementReportSVC';\r\nimport { useModal } from '../../hooks/Modal';\r\n\r\nexport const Measurement = () => {\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n\r\n const [items, setItems] = useState([]);\r\n\r\n const { t } = useTranslation();\r\n\r\n let gridInstance;\r\n\r\n const { buildDialogMessage } = useModal();\r\n\r\n const agreementTemplate = (args) => {\r\n return (\r\n {args.contrato}\r\n );\r\n }\r\n\r\n useEffect(() => {\r\n if (gridInstance)\r\n gridInstance.refresh();\r\n }, [i18n.language])\r\n\r\n const templateSumProduction = (args) => {\r\n return (\r\n Sub-total: {(args.Sum).toLocaleString(i18n.language)}\r\n );\r\n }\r\n\r\n const templateSum = (args) => {\r\n return (\r\n {i18n.language ===\"pt\" ? \"Soma\" : \"Sum\"}: {(args.Sum).toLocaleString(i18n.language)}\r\n );\r\n }\r\n\r\n useEffect(() => {\r\n async function getItems() {\r\n const measurementItems = await getMeasurementItems(globalState.accessToken).then(async res => {\r\n if (res.ok) {\r\n return res.json();\r\n } else {\r\n buildDialogMessage({\r\n error: res.ok,\r\n })\r\n }\r\n });\r\n\r\n const measurementItemsFiltered = measurementItems.filter(item => {\r\n item.dataPagamento = new Date(item.dataPagamento);\r\n item.honorarios = !item.honorarios ? 0 : item.honorarios;\r\n return item;\r\n });\r\n\r\n setItems(measurementItemsFiltered);\r\n }\r\n getItems();\r\n }, []);\r\n\r\n return (\r\n
    \r\n
    \r\n gridInstance = grid}\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 \r\n \r\n
    \r\n
    \r\n );\r\n}","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { GlobalStateContext } from \"../general/GlobalState\";\r\nimport { Container, Row } from \"reactstrap\";\r\nimport { Buttons } from \"../utilities/Buttons\";\r\nimport { Measurement } from \"./MeasurementContent\";\r\nimport PermissionRedirect from \"../utilities/PermissionRedirect/PermissionRedirect\";\r\n\r\nimport { useModal } from '../../hooks/Modal';\r\n\r\nexport const MeasurementReport = () => {\r\n\r\n const { t } = useTranslation();\r\n\r\n const { buildDialogMessage } = useModal();\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n\r\n return (\r\n <>\r\n {globalState.accessToken === null ? :\r\n <>\r\n \r\n\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    {t('MeasurementReport:title')}

    \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}","import { requestAPI } from '../utilities/Utils';\r\n\r\nexport async function getFormContainerAdBudgets(token, signal) {\r\n // const qstring; //= idioma ? `?$filter=IdIdioma eq ${idioma}` : '';\r\n return requestAPI(\r\n '_api/BrandingAdvertising/AdvertisingBudget/GetAdvertisingBudgetItems',\r\n 'GET',\r\n '',\r\n null,\r\n token,\r\n false,\r\n null,\r\n null,\r\n signal\r\n );\r\n}\r\n\r\nexport async function getAdvertisingBudgetItemByID(token, id, signal) {\r\n const qstring = `?advertisingBudgetId=${parseInt(id)}`;\r\n return requestAPI(\r\n '_api/BrandingAdvertising/AdvertisingBudget/GetAdvertisingBudgetItem',\r\n 'GET',\r\n qstring,\r\n null,\r\n token,\r\n false,\r\n null,\r\n null,\r\n signal\r\n );\r\n}\r\n\r\nexport async function getAdvertisingBudgetDataTypes(token, signal) {\r\n return requestAPI(\r\n '_api/System/GetAdvertisingBudgetDataTypes',\r\n 'GET',\r\n '',\r\n null,\r\n token,\r\n false,\r\n null,\r\n null,\r\n signal\r\n );\r\n}\r\nexport async function getAdvertisingBudgetDataStatus(token, signal) {\r\n return requestAPI(\r\n '_api/System/GetAdvertisingBudgetDataStatus',\r\n 'GET',\r\n '',\r\n null,\r\n token,\r\n false,\r\n null,\r\n null,\r\n signal\r\n );\r\n}\r\nexport async function getActiveContractInPeriodItems(token, signal) {\r\n var today = new Date()\r\n let startDayToEndDay = (\"0\" + today.getDate()).slice(-2);\r\n let startMonth = (\"0\" + (today.getMonth() + 1)).slice(-2);\r\n let endPeriodDtStr = `${today.getFullYear()}-${startMonth}-${startDayToEndDay}T23:59:59.999Z`;\r\n\r\n const qstring = `?$filter=ativo eq true and inicioVigencia le ${endPeriodDtStr} and fimVigencia ge ${endPeriodDtStr}`\r\n\r\n console.log(qstring);\r\n\r\n return requestAPI(\r\n '_api/BrandingAdvertising/Management/Contract/GetContractItems',\r\n 'GET',\r\n qstring,\r\n null,\r\n token,\r\n false,\r\n null,\r\n null,\r\n signal\r\n );\r\n}\r\nexport async function getAllContractItems(token, signal) {\r\n return requestAPI(\r\n '_api/BrandingAdvertising/Management/Contract/GetContractItems',\r\n 'GET',\r\n '',\r\n null,\r\n token,\r\n false,\r\n null,\r\n null,\r\n signal\r\n );\r\n}\r\nexport async function getActiveContractItems(token, signal) {\r\n return requestAPI(\r\n '_api/BrandingAdvertising/Management/Contract/GetContractItems',\r\n 'GET',\r\n '?$filter=ativo eq true',\r\n null,\r\n token,\r\n false,\r\n null,\r\n null,\r\n signal\r\n );\r\n}\r\nexport async function getManageInternalAreas(token, signal) {\r\n const qstring = `?$filter=ativo eq true`\r\n return requestAPI(\r\n '_api/BrandingAdvertising/Management/InternalArea/GetInternalAreaItems',\r\n 'GET',\r\n qstring,\r\n null,\r\n token,\r\n false,\r\n null,\r\n null,\r\n signal\r\n );\r\n}\r\n\r\n\r\nexport async function getManageAnnualBudget(token, signal) {\r\n const qstring = `?$filter=ativo eq true`\r\n return requestAPI(\r\n '_api/BrandingAdvertising/Management/AnnualBudget/GetAnnualBudgetItems',\r\n 'GET',\r\n qstring,\r\n null,\r\n token,\r\n false,\r\n null,\r\n null,\r\n signal\r\n );\r\n}\r\n\r\n\r\nexport async function updateAdvertisingBudget(token, body, signal) {\r\n const raw = JSON.stringify(body);\r\n return requestAPI(\r\n '_api/BrandingAdvertising/AdvertisingBudget/UpdateAdvertisingBudget',\r\n 'POST',\r\n '',\r\n raw,\r\n token,\r\n false,\r\n null,\r\n null,\r\n signal\r\n );\r\n}\r\n\r\nexport async function addAdvertisingBudget(token, body, signal) {\r\n const raw = JSON.stringify(body);\r\n return requestAPI(\r\n '_api/BrandingAdvertising/AdvertisingBudget/AddAdvertisingBudget',\r\n 'POST',\r\n '',\r\n raw,\r\n token,\r\n false,\r\n null,\r\n null,\r\n signal\r\n );\r\n}\r\n\r\n\r\n\r\n\r\nexport async function downloadAttachment(token, idItem, idAnexo, signal) {\r\n const qstring = `?IdOrGuidAdvertisingBudget=${idItem}&IdOrGuidAdvertisingBudgetAttachment=${idAnexo}`\r\n console.log('_api/BrandingAdvertising/AdvertisingBudget/DownloadAttachment' + qstring,);\r\n return requestAPI(\r\n '_api/BrandingAdvertising/AdvertisingBudget/DownloadAttachment' + qstring,\r\n 'GET',\r\n '',\r\n null,\r\n token,\r\n false,\r\n null,\r\n null,\r\n signal\r\n );\r\n}","import * as React from 'react';\r\nimport { GlobalStateContext } from '../general/GlobalState';\r\nimport { useTranslation } from 'react-i18next';\r\nimport {\r\n AggregateColumnsDirective,\r\n AggregateDirective,\r\n AggregatesDirective,\r\n AggregateColumnDirective,\r\n Aggregate,\r\n GridComponent,\r\n ColumnsDirective,\r\n ColumnDirective,\r\n Group,\r\n Filter,\r\n Inject,\r\n ExcelExport,\r\n Sort,\r\n ContextMenu,\r\n Page,\r\n Resize,\r\n closeFilterDialog,\r\n} from '@syncfusion/ej2-react-grids';\r\nimport { getFormContainerAdBudgets } from './AdvertisingBudgetSVC';\r\nimport i18n from 'i18next';\r\nimport {\r\n DialogComponent,\r\n createSpinner,\r\n showSpinner,\r\n setSpinner,\r\n} from '@syncfusion/ej2-react-popups';\r\nimport { setCulture, setCurrencyCode } from '@syncfusion/ej2-base';\r\nimport { hasPermissions } from \"../utilities/Utils\";\r\n\r\nexport const AdvertisingGrid = (props) => {\r\n setCulture('pt');\r\n setCurrencyCode('BRL');\r\n const { setIdAdvertising, gridInstance, setItemsGridExport } = props;\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const { t } = useTranslation();\r\n const [items, setItems] = React.useState([]);\r\n const [loading, setloading] = React.useState(false);\r\n let [itemsFiltred, setItemsFiltred] = React.useState([]);\r\n\r\n const buildGridItems = async () => {\r\n setloading(true)\r\n await getFormContainerAdBudgets(globalState.accessToken).then(\r\n (response) => {\r\n if (response.ok) {\r\n response.json().then((data) => {\r\n setItems(data);\r\n setItemsFiltred(data);\r\n gridInstance.current.dataSource = data;\r\n setloading(false)\r\n }).catch(err => {\r\n setloading(false)\r\n console.log(err);\r\n })\r\n }\r\n },\r\n );\r\n };\r\n\r\n React.useEffect(() => {\r\n setItemsGridExport(items); \r\n }, [items]);\r\n\r\n React.useEffect(() => {\r\n if (loading) {\r\n createSpinner({ target: document.getElementById('loading') });\r\n showSpinner(document.getElementById('loading'));\r\n setSpinner({ type: 'Bootstrap' });\r\n }\r\n }, [loading]);\r\n\r\n React.useEffect(() => {\r\n buildGridItems();\r\n gridInstance.current.refresh();\r\n }, [i18n.language]);\r\n\r\n const calculateSaldoTotal = () => {\r\n\r\n const numberToCurrency = (n) => {\r\n return n.toLocaleString(i18n.language, {\r\n style: 'currency',\r\n currency: 'BRL',\r\n });\r\n };\r\n\r\n let orcamento = 0;\r\n let pagamento = 0;\r\n let total = 0;\r\n var distinctYearsBudget = [];\r\n var map = new Map();\r\n\r\n if (itemsFiltred && itemsFiltred.length > 0) {\r\n for (const item of itemsFiltred) {\r\n if (item.orcamentoAnual && item.orcamentoAnual.ano && !map.has(item.orcamentoAnual.ano)) {\r\n map.set(item.orcamentoAnual.ano, true);\r\n distinctYearsBudget.push({\r\n ...item,\r\n });\r\n }\r\n }\r\n\r\n distinctYearsBudget.forEach((item) => {\r\n orcamento += item.orcamentoAnual.orcamento;\r\n });\r\n itemsFiltred.forEach((item) => {\r\n if(item.pagamentoTotal) pagamento += item.pagamentoTotal;\r\n });\r\n total = orcamento - pagamento;\r\n }\r\n\r\n return {\r\n orcamento: orcamento,\r\n orcamentoCurrency: numberToCurrency(orcamento),\r\n pagamento: pagamento,\r\n pagamentoCurrency: numberToCurrency(pagamento),\r\n total: total,\r\n totalCurrency: numberToCurrency(total),\r\n };\r\n };\r\n\r\n const totalFooterSum = (args) => {\r\n if (hasPermissions(32, \"Admin\", globalState)) {\r\n const allTotals = calculateSaldoTotal();\r\n return (\r\n
    \r\n \r\n {i18n.language ==='pt' ?\r\n 'Saldo (Orçamento - Pagamento): ' : 'Balance (Budget - Payment): '}
    \r\n \r\n {allTotals.totalCurrency}\r\n \r\n
    \r\n\r\n \r\n {i18n.language ==='pt' ? 'Orçamento' : 'Budget'} : {allTotals.orcamentoCurrency}\r\n \r\n \r\n {i18n.language ==='pt' ? 'Pagamento' : 'Payment'} : {allTotals.pagamentoCurrency}\r\n \r\n\r\n
    \r\n );\r\n } else {\r\n return ''\r\n }\r\n\r\n };\r\n\r\n const nameTemplate = (args) => {\r\n return (\r\n setIdAdvertising(args.id)} className=\"nomeTemplate\">\r\n {args.nome}\r\n \r\n );\r\n };\r\n const discountFromAnnualBudgetTemplate = (args) =>{\r\n if (args.abaterOrcamentoAnual) {\r\n return ({i18n.language ==='pt' ? 'Sim' : 'Yes'})\r\n } else {\r\n return ({i18n.language ==='pt' ? 'Não' : 'No'})\r\n }\r\n\r\n }\r\n\r\n const footerSum = (args) => {\r\n return (\r\n \r\n {i18n.language ==='pt' ? 'Soma' : 'Sum'}:{' '}\r\n {args.Sum.toLocaleString('pt-BR', {\r\n style: 'currency',\r\n currency: 'BRL',\r\n })}\r\n \r\n );\r\n };\r\n const productionTemplate = (args) => {\r\n return $ {args.custoProducao.toLocaleString(i18n.language)};\r\n };\r\n const mediaTemplate = (args) => {\r\n return $ {args.custoMidia.toLocaleString(i18n.language)};\r\n };\r\n const totalTemplate = (args) => {\r\n return $ {args.custoTotal.toLocaleString(i18n.language)};\r\n };\r\n const payProductionTemplate = (args) => {\r\n return (\r\n $ {args.pagamentoProducao.toLocaleString(i18n.language)}\r\n );\r\n };\r\n const payMediaTemplate = (args) => {\r\n return $ {args.pagamentoMidia.toLocaleString(i18n.language)};\r\n };\r\n const payTotalTemplate = (args) => {\r\n return $ {args.pagamentoTotal.toLocaleString(i18n.language)};\r\n };\r\n const toBRL = valor => {\r\n return parseFloat(valor).toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' })\r\n }\r\n const templateCustoProducao = (data) => {\r\n return {data.custoProducao && toBRL(data.custoProducao)};\r\n };\r\n const templateCustoHonorarios = (data) => {\r\n return {data.custoHonorarios && toBRL(data.custoHonorarios)};\r\n };\r\n const templateCustoTotal = (data) => {\r\n return {data.custoTotal && toBRL(data.custoTotal)};\r\n };\r\n const templateCustoMidia = (data) => {\r\n return {data.custoMidia && toBRL(data.custoMidia)};\r\n };\r\n const templatePagamentoProducao = (data) => {\r\n return {data.pagamentoProducao && toBRL(data.pagamentoProducao)};\r\n };\r\n const templatePagamentoMidia = (data) => {\r\n return {data.pagamentoMidia && toBRL(data.pagamentoMidia)};\r\n };\r\n const templatePagamentoHonorarios = (data) => {\r\n return {data.pagamentoHonorarios && toBRL(data.pagamentoHonorarios)};\r\n };\r\n const templatePagamentoTotal = (data) => {\r\n return {data.pagamentoTotal && toBRL(data.pagamentoTotal)};\r\n };\r\n\r\n\r\n const contextMenuItems = [\r\n 'SortAscending',\r\n 'SortDescending',\r\n 'FirstPage',\r\n 'PrevPage',\r\n 'LastPage',\r\n 'NextPage',\r\n ];\r\n\r\n const actionComplete = (args) => {\r\n const setarItemsFiltrados = async () => {\r\n try {\r\n const items = args.rows.map(item => {\r\n const newItem = item.data\r\n return newItem\r\n })\r\n console.log('data', items);\r\n setItemsFiltred(items);\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n }\r\n if (args && ((args.action ==='filter') || (args.requestType && args.requestType && args.rows && args.requestType === 'refresh'))) {\r\n setarItemsFiltrados()\r\n } else if (args && args.action ===\"clear-filter\") {\r\n setItemsFiltred(items);\r\n }\r\n }\r\n return (\r\n
    \r\n {loading &&
    }\r\n {items && (\r\n \r\n \r\n nameTemplate(args)}\r\n field=\"nome\"\r\n width=\"230\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n totalTemplate(args)}\r\n field=\"custoTotal\"\r\n filter={{ type: 'Menu' }}\r\n width=\"200\"\r\n format={'C2'}\r\n // template={templateCustoTotal}\r\n >\r\n payProductionTemplate(args)}\r\n // template={templatePagamentoProducao}\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 \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","import * as React from 'react';\r\nimport { Redirect, useHistory } from 'react-router-dom';\r\nimport { Container, Row } from 'reactstrap';\r\nimport { GlobalStateContext } from '../general/GlobalState';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport { AdvertisingGrid } from '../advertisingBudget/AdvertisingGrid';\r\nimport { Buttons } from '../utilities/Buttons';\r\n\r\nimport '../advertisingBudget/advertisingBudget.css';\r\nimport PermissionRedirect from '../utilities/PermissionRedirect/PermissionRedirect';\r\nimport { hasPermissions } from \"../utilities/Utils\";\r\n\r\n\r\nexport const AdvertisingBudget = () => {\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [redirect, setRedirect] = React.useState(false);\r\n const [isNewAdvertising, setIsNewAdvertising] = React.useState(false);\r\n const [idAdvertising, setIdAdvertising] = React.useState(null);\r\n const [userPermission, setUserPermission] = React.useState([]);\r\n const [itemsGridExport, setItemsGridExport] = React.useState([]);\r\n let history = useHistory();\r\n let gridInstance = React.useRef(null);\r\n\r\n const { t } = useTranslation();\r\n\r\n React.useEffect(() => {\r\n if (idAdvertising !==null) {\r\n setRedirect(true);\r\n }\r\n }, [idAdvertising]);\r\n\r\n const _controls = {\r\n permit: userPermission ? userPermission : null,\r\n export: () => exportToExcel(),\r\n import: '',\r\n new: hasPermissions(32, \"Admin\", globalState) ? () => setRedirect(true) : false,\r\n back: '',\r\n };\r\n\r\n React.useEffect(() => {\r\n let globalPermissions = globalState.permissions;\r\n setUserPermission(globalPermissions.filter((i) => i.idAreaAcesso === 32).map((i) => (i.permission)));\r\n }, [globalState]);\r\n\r\n React.useEffect(() => {\r\n console.log(history);\r\n }, []);\r\n\r\n const toBRL = valor => {\r\n return parseFloat(valor).toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' })\r\n }\r\n\r\n const exportToExcel = () => {\r\n if (gridInstance.current) {\r\n const items = itemsGridExport.filter((item) => {\r\n item.custoProducao = toBRL(item.custoProducao);\r\n item.custoMidia = toBRL(item.custoMidia);\r\n item.custoHonorarios = toBRL(item.custoHonorarios);\r\n item.custoTotal = toBRL(item.custoTotal);\r\n item.pagamentoProducao = toBRL(item.pagamentoProducao);\r\n item.pagamentoMidia = toBRL(item.pagamentoMidia);\r\n item.pagamentoHonorarios = toBRL(item.pagamentoHonorarios);\r\n item.pagamentoTotal = toBRL(item.pagamentoTotal);\r\n return item;\r\n });\r\n const excelExportProperties = {\r\n dataSource: items\r\n };\r\n\r\n gridInstance.current.excelExport(excelExportProperties);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {globalState.accessToken === null ? (\r\n \r\n ) : redirect ? (\r\n idAdvertising === null ? (\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

    {t('AdvertisingBudget:title')}

    \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","import * as React from 'react';\r\n\r\nconst initialState = {\r\n id: 0,\r\n nome: null,\r\n agencia: {\r\n id: null,\r\n nome: null,\r\n },\r\n areaInterna: {\r\n id: null,\r\n nome: null,\r\n ativo: true,\r\n },\r\n orcamentoAnual: {\r\n id: null,\r\n ano: null,\r\n orcamento: null,\r\n saldo: null,\r\n ativo: true,\r\n },\r\n responsavel: null,\r\n centroCusto: null,\r\n ordemInterna: null,\r\n abaterOrcamentoAnual: false,\r\n dataInicial: null,\r\n dataFinal: null,\r\n ativo: true,\r\n tempGuid: null,\r\n anexos: [],\r\n pagamentos: [],\r\n custos: [],\r\n historico: [],\r\n historicoTransformed: false\r\n};\r\n\r\nconst AdvertisingBudgetContext = React.createContext();\r\n\r\nconst AdvertisingBudgetProvider = ({ children }) => {\r\n const [globalAdBudget, setGlobalAdBudget] = React.useState(initialState);\r\n\r\n const resetglobalAdBudget = () => {\r\n setGlobalAdBudget(initialState);\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport { AdvertisingBudgetContext, AdvertisingBudgetProvider };\r\n","import * as React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { DropDownListComponent } from '@syncfusion/ej2-react-dropdowns';\r\nimport { CheckBoxComponent } from '@syncfusion/ej2-react-buttons';\r\nimport { TextBoxComponent } from '@syncfusion/ej2-react-inputs';\r\nimport { DateRangePickerComponent } from '@syncfusion/ej2-react-calendars';\r\nimport i18n from 'i18next';\r\nimport { useForm } from 'react-hook-form';\r\nimport { AdvertisingBudgetContext } from './AdvertisingBudgetContext';\r\nimport { hasPermissions } from \"../utilities/Utils\";\r\nimport { GlobalStateContext } from '../general/GlobalState';\r\n\r\nexport const DataContent = ({setDataIsValidToInsert, options }) => {\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [globalAdBudget, setGlobalAdBudget] = React.useContext(AdvertisingBudgetContext);\r\n const [periodDate, setDateFilter] = React.useState(null);\r\n const [daysDiff, setDaysDiff] = React.useState(null);\r\n const { t } = useTranslation();\r\n const { register, handleSubmit, errors, setValue, setError } = useForm({ mode: 'onBlur', reValidateMode: 'onBlur', });\r\n React.useEffect(() => {\r\n let result = 0;\r\n if (periodDate && periodDate[0] && periodDate[1]) {\r\n var diffTime = periodDate[1].getTime() - periodDate[0].getTime();\r\n var diffDays = diffTime / (1000 * 3600 * 24);\r\n setDaysDiff(diffDays + 1);\r\n } else {\r\n setDaysDiff(result);\r\n }\r\n }, [periodDate]);\r\n\r\n React.useEffect(() => {\r\n globalAdBudget && globalAdBudget.agencia && globalAdBudget.agencia.id && setValue('agencia.id', globalAdBudget.agencia.id);\r\n globalAdBudget && globalAdBudget.areaInterna && globalAdBudget.areaInterna.id && setValue('areaInterna.id', globalAdBudget.areaInterna.id);\r\n globalAdBudget && globalAdBudget.orcamentoAnual && globalAdBudget.orcamentoAnual.id && setValue('orcamento.id', globalAdBudget.orcamentoAnual.id);\r\n globalAdBudget && globalAdBudget.abaterOrcamentoAnual && setValue('abaterOrcamentoAnual', globalAdBudget.abaterOrcamentoAnual);\r\n }, [globalAdBudget, options]);\r\n\r\n const onSubmit = (data) => {\r\n if (!data.centroCusto && !data.ordemInterna) {\r\n setError('centroCusto', \"required\");\r\n setError('ordemInterna', \"required\");\r\n return;\r\n }\r\n\r\n let areaInterna = null;\r\n\r\n if (data && data.areaInterna && data.areaInterna.id) {\r\n areaInterna = {\r\n id: data.areaInterna.id,\r\n };\r\n }\r\n\r\n const obj = {\r\n nome: data.nome,\r\n agencia: {\r\n id: data.agencia.id,\r\n },\r\n areaInterna,\r\n orcamentoAnual: {\r\n id: data.orcamento.id,\r\n },\r\n responsavel: data.responsavel,\r\n centroCusto: data.centroCusto,\r\n ordemInterna: data.ordemInterna,\r\n abaterOrcamentoAnual: data.abaterOrcamentoAnual,\r\n dataInicial: data.period[0],\r\n dataFinal: data.period[1],\r\n ativo: true,\r\n };\r\n setGlobalAdBudget((prevState) => ({ ...prevState, ...obj }));\r\n setDataIsValidToInsert(true);\r\n };\r\n\r\n const onError = (errors, e) => console.log(errors, e);\r\n const isAdmin = hasPermissions(32, \"Admin\", globalState);\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n

    {i18n.language ==='pt' ? 'Dados' : 'Data'}

    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n {/* nome */}\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n {errors.nome && (\r\n

    {t('Validation:required')}

    \r\n )}\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n {/* agencia */}\r\n
    \r\n \r\n
    \r\n {/* {globalAdBudget.agencia.id} */}\r\n \r\n {errors.agencia && (\r\n

    {t('Validation:required')}

    \r\n )}\r\n
    \r\n
    \r\n\r\n {/* areaInterna */}\r\n
    \r\n \r\n
    \r\n \r\n {errors.areaInterna && (\r\n

    {t('Validation:required')}

    \r\n )}\r\n
    \r\n
    \r\n\r\n {/* responsavel */}\r\n
    \r\n \r\n
    \r\n \r\n {errors.responsavel && (\r\n

    {t('Validation:required')}

    \r\n )}\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n {/* centroCusto */}\r\n
    \r\n \r\n
    \r\n \r\n {errors.centroCusto && (\r\n

    {t('AdvertisingBudget:missingFields')}

    \r\n )}\r\n
    \r\n
    \r\n\r\n {/* ordemInterna */}\r\n
    \r\n \r\n
    \r\n \r\n {errors.ordemInterna && (\r\n

    {t('AdvertisingBudget:missingFields')}

    \r\n )}\r\n
    \r\n
    \r\n\r\n {/* Abater do orçamento anual */}\r\n
    \r\n {\r\n setValue('abaterOrcamentoAnual', e.target.checked);\r\n }}\r\n />\r\n \r\n {i18n.language ==='pt'\r\n ? 'Abater do orçamento anual'\r\n : 'Discount from Annual Budget'}\r\n \r\n {errors.abaterOrcamentoAnual && (\r\n

    {t('Validation:required')}

    \r\n )}\r\n
    \r\n
    \r\n\r\n
    \r\n {/* periodo */}\r\n
    \r\n \r\n
    \r\n setDateFilter(e.value)}\r\n showClearButton={true}\r\n locale={i18n.language}\r\n value={periodDate}\r\n placeholder={i18n.language ==='pt' ? t('AdvertisingBudget:placeholder_period') : 'Choose period'}\r\n />\r\n {errors.period && (\r\n

    {t('Validation:required')}

    \r\n )}\r\n
    \r\n
    \r\n\r\n {/* Duração */}\r\n
    \r\n \r\n
    \r\n \r\n {errors.duration && (\r\n

    {t('Validation:required')}

    \r\n )}\r\n
    \r\n
    \r\n\r\n {/* Ano do Orçamento */}\r\n
    \r\n \r\n
    \r\n \r\n {errors.orcamento && (\r\n

    {t('Validation:required')}

    \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n","import * as React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Buttons } from '../utilities/Buttons';\r\nimport { DropDownListComponent } from '@syncfusion/ej2-react-dropdowns';\r\nimport { TextBoxComponent } from '@syncfusion/ej2-react-inputs';\r\nimport { NumericTextBoxComponent } from '@syncfusion/ej2-react-inputs';\r\nimport {\r\n GridComponent,\r\n ColumnsDirective,\r\n ColumnDirective,\r\n Edit,\r\n Toolbar,\r\n Filter,\r\n Inject,\r\n Sort,\r\n ContextMenu,\r\n Page,\r\n Resize,\r\n AggregateColumnsDirective,\r\n AggregateDirective,\r\n AggregatesDirective,\r\n Aggregate,\r\n AggregateColumnDirective,\r\n} from '@syncfusion/ej2-react-grids';\r\nimport { DialogComponent } from '@syncfusion/ej2-react-popups';\r\nimport i18n from 'i18next';\r\nimport { useForm } from 'react-hook-form';\r\nimport { createSpinner, showSpinner, setSpinner, } from '@syncfusion/ej2-react-popups';\r\nimport { setCulture, setCurrencyCode } from '@syncfusion/ej2-base';\r\nimport { AdvertisingBudgetContext } from './AdvertisingBudgetContext';\r\nimport { uuidv4 } from '../utilities/Utils';\r\nimport { getURLParamsByKey } from '../utilities/Utils';\r\nimport GenericModal from '../utilities/MessageModal/GenericModal';\r\n\r\nexport const CostContent = (props) => {\r\n setCulture('pt');\r\n setCurrencyCode('BRL');\r\n\r\n const { data, options, IDAdBudget } = props;\r\n const [globalAdBudget, setGlobalAdBudget] = React.useContext(AdvertisingBudgetContext);\r\n const { t } = useTranslation();\r\n const gridInstance = React.useRef(null);\r\n const [openEditModal, setOpenEditModal] = React.useState(false);\r\n const dialogInstance = React.useRef();\r\n let sumCostGrid = 0;\r\n const [gridData, setGridData] = React.useState([]);\r\n const [loading, setloading] = React.useState(false);\r\n const [typeOfForm, settypeOfForm] = React.useState('');\r\n const [errosAPI, seterrosAPI] = React.useState(null);\r\n const { register, handleSubmit, errors, reset, setValue, clearError } = useForm({\r\n mode: \"onChange\",\r\n reValidateMode: 'onChange',\r\n criteriaMode: 'all',\r\n shouldFocusError: true,\r\n shouldUnregister: false,\r\n });\r\n const contextMenuItems = ['SortAscending', 'SortDescending', 'FirstPage', 'PrevPage', 'LastPage', 'NextPage'];\r\n\r\n const [modalMessageParams, setmodalMessageParams] = React.useState({ show: false });\r\n\r\n // EFFECTS\r\n React.useEffect(() => {\r\n sumCostGrid = 0;\r\n\r\n }, [gridData]);\r\n\r\n React.useEffect(() => {\r\n console.log(IDAdBudget);\r\n }, [IDAdBudget])\r\n\r\n React.useEffect(() => {\r\n if (loading) {\r\n createSpinner({ target: document.getElementById('loading') });\r\n showSpinner(document.getElementById('loading'));\r\n setSpinner({ type: 'Bootstrap' });\r\n }\r\n }, [loading]);\r\n\r\n React.useEffect(() => {\r\n if (openEditModal ===false) {\r\n clearError()\r\n setValue('id', null);\r\n setValue('tipoMidia.id', null);\r\n setValue('custoProducao', null);\r\n setValue('custoMidia', null);\r\n setValue('honorarios', null);\r\n setValue('observacao', null);\r\n }\r\n }, [openEditModal])\r\n\r\n React.useEffect(() => {\r\n gridInstance.current.refresh();\r\n }, [i18n.language]);\r\n\r\n\r\n const addTipoMidiaNomeToAllItens = (custos) => {\r\n return custos.map((item) => {\r\n var tipoItem = options.tiposMidia.filter((i) => i.value ===item.tipoMidia.id);\r\n if (tipoItem[0])\r\n return {\r\n ...item,\r\n tipoMidia: {\r\n ...item.tipoMidia,\r\n nomePt: tipoItem[0].text,\r\n },\r\n };\r\n else return item;\r\n });\r\n }\r\n React.useEffect(() => {\r\n if (globalAdBudget.custos.length > 0 && options.tiposMidia.length > 0) {\r\n let custos = globalAdBudget.custos;\r\n custos = addTipoMidiaNomeToAllItens(custos)\r\n custos = custos.filter(item => item.ativo)\r\n setGridData(custos)\r\n gridInstance.current.dataSource = custos;\r\n gridInstance.current.refresh();\r\n }\r\n }, [globalAdBudget, options]);\r\n\r\n\r\n\r\n\r\n // CUSTOM FUNCTIONS\r\n const buildDialogMessage = (type, msg, callBack, okCallback, notOkCallback, confirmType) => {\r\n if (type ==='confirm') {\r\n setmodalMessageParams({\r\n title: i18n.language ===\"pt\" ? 'Deletar item' : 'Delete item',\r\n type: \"error\",\r\n message: i18n.language ===\"pt\" ? 'Tem certeza que deseja excluir esse item?' : 'Are you sure you want to delete this item?',\r\n actionType: 'confirm',\r\n confirmOkCallback: okCallback,\r\n confirmNotOkCallback: notOkCallback,\r\n icon: 'mdl2 mdl2-trash',\r\n show: true,\r\n });\r\n } else if (type ==='close') {\r\n setmodalMessageParams({\r\n show: false,\r\n });\r\n }\r\n };\r\n\r\n\r\n // TEMPLATES\r\n const totalTemplateSum = (args) => {\r\n const calcularCustoTotal = () => {\r\n let sumCostGrid = 0\r\n const custos = globalAdBudget.custos.filter(item => item.ativo)\r\n custos.map((i) => {\r\n sumCostGrid += i.custoProducao;\r\n sumCostGrid += i.custoMidia;\r\n sumCostGrid += i.honorarios;\r\n });\r\n return sumCostGrid\r\n }\r\n return (\r\n \r\n Total Final: {toBRL(calcularCustoTotal())}\r\n \r\n );\r\n };\r\n\r\n const templateSum = (args) => {\r\n return (\r\n \r\n {i18n.language ==='pt' ? 'Soma' : 'Sum'}: { toBRL(args.Sum)}\r\n \r\n );\r\n };\r\n\r\n const productionCostTemplate = (args) => {\r\n return ${args.custoProducao && toBRL(args.custoProducao)};\r\n };\r\n\r\n React.useEffect(() => {\r\n if (gridInstance.current)\r\n gridInstance.current.refresh();\r\n }, [i18n.language]);\r\n\r\n const mediaCostTemplate = (args) => {\r\n return ${args.custoMidia && toBRL(args.custoMidia)};\r\n };\r\n\r\n const feesTemplate = (args) => {\r\n return ${args.honorarios && toBRL(args.honorarios)};\r\n };\r\n\r\n const editTemplate = (args) => {\r\n return (\r\n
    \r\n {\r\n openEdit(args);\r\n // edit(args);\r\n }}\r\n className=\"mdl2 mdl2-pencil\"\r\n />\r\n {\r\n const handleNotOK = () => {\r\n buildDialogMessage('close')\r\n }\r\n const handleOK = (args) => {\r\n updateItem(args, true)\r\n buildDialogMessage('close')\r\n }\r\n buildDialogMessage('confirm', null, null, () => { handleOK(args) }, handleNotOK, '')\r\n\r\n }}\r\n className=\"mdl2 mdl2-trash\"\r\n />\r\n
    \r\n );\r\n };\r\n const toBRL = valor => {\r\n return parseFloat(valor).toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' })\r\n }\r\n\r\n const templateCustoProducao = (data) => {\r\n return {data.custoProducao && toBRL(data.custoProducao)};\r\n };\r\n const templateCustoMidia = (data) => {\r\n return {data.custoMidia && toBRL(data.custoMidia)};\r\n };\r\n\r\n const templateHonorarios = (data) => {\r\n return {data.honorarios && toBRL(data.honorarios)};\r\n };\r\n\r\n // MODAL DIALOG\r\n const openEdit = (args) => {\r\n settypeOfForm('EDIT');\r\n clearError()\r\n dialogInstance.current.show();\r\n setValue('id', args.id);\r\n setValue('tipoMidia.id', args.tipoMidia.id);\r\n setValue('custoProducao', args.custoProducao);\r\n setValue('custoMidia', args.custoMidia);\r\n setValue('honorarios', args.honorarios);\r\n setValue('observacao', args.observacao);\r\n };\r\n\r\n const clearModal = () => {\r\n setValue('id', null);\r\n setValue('tipoMidia.id', null);\r\n setValue('custoProducao', null);\r\n setValue('custoMidia', null);\r\n setValue('honorarios', null);\r\n setValue('observacao', null);\r\n }\r\n\r\n\r\n\r\n // BUSINESS\r\n const createCustItem = (data) => {\r\n setloading(true)\r\n const obj = {\r\n id: uuidv4(),\r\n tipoMidia: {\r\n id: data.tipoMidia.id,\r\n nomePt: options.tiposMidia.filter(\r\n (i) => i.value ===data.tipoMidia.id,\r\n )[0].text,\r\n },\r\n custoProducao: data.custoProducao,\r\n custoMidia: data.custoMidia,\r\n honorarios: data.honorarios ? data.honorarios : 0,\r\n observacao: data.observacao ? data.observacao : '',\r\n statusOperacao: 0,\r\n ativo: true,\r\n };\r\n\r\n let custosArr = [];\r\n setGlobalAdBudget((prevState) => {\r\n custosArr = addTipoMidiaNomeToAllItens(prevState.custos);\r\n custosArr.unshift(obj);\r\n return {\r\n ...prevState,\r\n custos: custosArr,\r\n };\r\n });\r\n\r\n gridInstance.current.dataSource = custosArr.filter(item => item.ativo);\r\n gridInstance.current.refresh();\r\n setloading(false)\r\n dialogInstance.current.hide()\r\n setOpenEditModal(false)\r\n gridInstance.current.refresh();\r\n };\r\n const updateItem = (data, isLogicalDelete) => {\r\n setloading(false)\r\n const tipoMidiaSelectedOption = options.tiposMidia.filter((i) => i.value ===data.tipoMidia.id,)[0]\r\n const qstringIId = getURLParamsByKey('Id')\r\n const statusOperacao = IDAdBudget || qstringIId ? 1 : data.statusOperacao\r\n\r\n console.log(statusOperacao);\r\n\r\n const obj = {\r\n id: isNaN(data.id) ? data.id : parseInt(data.id),\r\n tipoMidia: {\r\n id: data.tipoMidia.id,\r\n nomePt: tipoMidiaSelectedOption ? tipoMidiaSelectedOption.text : data.tipoMidia.nomePt || data.tipoMidia.nomeEn\r\n },\r\n custoProducao: data.custoProducao,\r\n custoMidia: data.custoMidia,\r\n honorarios: data.honorarios,\r\n observacao: data.observacao,\r\n statusOperacao: statusOperacao,\r\n ativo: isLogicalDelete ? false : true,\r\n };\r\n\r\n let custosArr = [];\r\n setGlobalAdBudget((prevState) => {\r\n custosArr = addTipoMidiaNomeToAllItens(prevState.custos);\r\n custosArr = custosArr.map((item) => {\r\n if (item.id ===obj.id) { item = obj; }\r\n return item;\r\n });\r\n return {\r\n ...prevState,\r\n custos: custosArr,\r\n };\r\n });\r\n\r\n gridInstance.current.dataSource = custosArr.filter(item => item.ativo);\r\n gridInstance.current.refresh();\r\n setloading(false)\r\n dialogInstance.current.hide()\r\n setOpenEditModal(false)\r\n gridInstance.current.refresh();\r\n };\r\n\r\n\r\n\r\n // FORM\r\n const onSubmit = (data) => {\r\n if (typeOfForm ==='NEW') createCustItem(data);\r\n else if (typeOfForm ==='EDIT') updateItem(data);\r\n reset();\r\n };\r\n const onError = (errors, e) => console.log(errors, e);\r\n\r\n\r\n\r\n return (\r\n
    \r\n\r\n
    \r\n
    \r\n \r\n

    {i18n.language ==='pt' ? 'Custos' : 'Costs'}

    \r\n
    \r\n
    \r\n
    \r\n {\r\n settypeOfForm('NEW');\r\n setOpenEditModal(true)\r\n dialogInstance.current.show();\r\n }}>\r\n \r\n {i18n.language ==='pt' ? 'Novo Custo' : 'New Cost'}\r\n \r\n
    \r\n
    \r\n\r\n \r\n \r\n {/* ID */}\r\n
    \r\n \r\n
    \r\n \r\n {errors.id &&

    {t('Validation:required')}

    }\r\n
    \r\n
    \r\n\r\n
    \r\n {/* TIPO DE MÍDIA */}\r\n
    \r\n \r\n
    \r\n \r\n {errors.tipoMidia && (\r\n

    {t('Validation:required')}

    \r\n )}\r\n
    \r\n
    \r\n {/* Custo de Produção */}\r\n
    \r\n \r\n
    \r\n \r\n {errors.custoProducao &&\r\n errors.custoProducao.type === 'required' && (\r\n

    {t(\"Validation:required\")}

    \r\n )}\r\n {errors.custoProducao &&\r\n errors.custoProducao.type === 'maxLength' && (\r\n

    {t(\"Validation:exceeded\")}

    \r\n )}\r\n {errors.custoProducao &&\r\n errors.custoProducao.type === 'min' && (\r\n

    {t(\"Validation:min\")}

    \r\n )}\r\n {errors.custoProducao &&\r\n errors.custoProducao.type === 'minLength' && (\r\n

    {t(\"Validation:exceeded\")}

    \r\n )}\r\n {errosAPI &&\r\n errosAPI.errors &&\r\n errosAPI.errors.custoProducao && (\r\n

    {errosAPI.errors.custoProducao}

    \r\n )}\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n {/* Custo de Mídia */}\r\n
    \r\n \r\n
    \r\n \r\n {errors.custoMidia &&\r\n errors.custoMidia.type === 'required' && (\r\n

    {t(\"Validation:required\")}

    \r\n )}\r\n {errors.custoMidia &&\r\n errors.custoMidia.type === 'maxLength' && (\r\n

    {t(\"Validation:exceeded\")}

    \r\n )}\r\n {errors.custoMidia &&\r\n errors.custoMidia.type === 'min' && (\r\n

    {t(\"Validation:min\")}

    \r\n )}\r\n {errors.custoMidia &&\r\n errors.custoMidia.type === 'minLength' && (\r\n

    {t(\"Validation:exceeded\")}

    \r\n )}\r\n {errosAPI && errosAPI.errors && errosAPI.errors.custoMidia && (\r\n

    {errosAPI.errors.custoMidia}

    \r\n )}\r\n
    \r\n
    \r\n {/* Honorários */}\r\n
    \r\n \r\n
    \r\n \r\n\r\n {errors.honorarios &&\r\n errors.honorarios.type === 'required' && (\r\n

    {t(\"Validation:required\")}

    \r\n )}\r\n {errors.honorarios &&\r\n errors.honorarios.type === 'maxLength' && (\r\n

    {t(\"Validation:exceeded\")}

    \r\n )}\r\n {errors.honorarios &&\r\n errors.honorarios.type === 'min' && (\r\n

    {t(\"Validation:min\")}

    \r\n )}\r\n {errors.honorarios &&\r\n errors.honorarios.type === 'minLength' && (\r\n

    {t(\"Validation:exceeded\")}

    \r\n )}\r\n {errosAPI && errosAPI.errors && errosAPI.errors.honorarios && (\r\n

    {errosAPI.errors.honorarios}

    \r\n )}\r\n
    \r\n
    \r\n
    \r\n\r\n {/* Observação */}\r\n
    \r\n \r\n
    \r\n \r\n {errors.observacao && (\r\n

    {t('Validation:required')}

    \r\n )}\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n {t('Actions:save')}\r\n \r\n
    \r\n \r\n {loading &&
    }\r\n \r\n\r\n {data && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n editTemplate(args)}\r\n width=\"120\"\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 \r\n )}\r\n {/* MODAL EXCLUSÃO */}\r\n {modalMessageParams.show && }\r\n\r\n
    \r\n );\r\n};\r\n","import * as React from 'react';\r\nimport { GlobalStateContext } from '../general/GlobalState';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { DropDownListComponent } from '@syncfusion/ej2-react-dropdowns';\r\nimport { UploaderComponent } from '@syncfusion/ej2-react-inputs';\r\nimport {\r\n GridComponent,\r\n ColumnsDirective,\r\n ColumnDirective,\r\n Edit,\r\n Toolbar,\r\n Filter,\r\n Inject,\r\n Sort,\r\n ContextMenu,\r\n Page,\r\n Resize\r\n} from '@syncfusion/ej2-react-grids';\r\nimport i18n from 'i18next';\r\nimport {\r\n DialogComponent,\r\n createSpinner,\r\n showSpinner,\r\n setSpinner,\r\n} from '@syncfusion/ej2-react-popups';\r\nimport {\r\n downloadAttachment\r\n} from './AdvertisingBudgetSVC';\r\nimport { TextBoxComponent } from '@syncfusion/ej2-react-inputs';\r\nimport { useForm } from 'react-hook-form';\r\nimport { Buttons } from '../utilities/Buttons';\r\nimport { uuidv4 } from '../utilities/Utils';\r\nimport { AdvertisingBudgetContext } from './AdvertisingBudgetContext';\r\nimport { getURLParamsByKey } from '../utilities/Utils';\r\nimport GenericModal from '../utilities/MessageModal/GenericModal';\r\nimport { hasPermissions } from \"../utilities/Utils\";\r\n\r\nexport const FileContent = ({ options, tempGuid, IDAdBudget }) => {\r\n const [globalAdBudget, setGlobalAdBudget] = React.useContext(AdvertisingBudgetContext);\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n\r\n const {\r\n register, handleSubmit, errors, setValue, clearError, reset, setError, } = useForm({\r\n mode: 'onBlur',\r\n reValidateMode: 'onBlur',\r\n defaultValues: { anexo: null, tipo: { id: null, nome: null } },\r\n });\r\n const { t } = useTranslation();\r\n const contextMenuItems = [\r\n 'SortAscending',\r\n 'SortDescending',\r\n 'FirstPage',\r\n 'PrevPage',\r\n 'LastPage',\r\n 'NextPage',\r\n ];\r\n\r\n\r\n const gridInstance = React.useRef(null);\r\n const dialogInstance = React.useRef();\r\n\r\n const [openModal, setOpenModal] = React.useState(false);\r\n const [loading, setLoading] = React.useState(false);\r\n const [loading2, setLoading2] = React.useState(false);\r\n\r\n const [blockIdList, setBlockIdList] = React.useState([]);\r\n const [gridData, setGridData] = React.useState([]);\r\n const [uploadChunkSize, setUploadChunkSize] = React.useState(1000000);\r\n const [uploadedFile, setUploadedFile] = React.useState(null);\r\n const [typeOfForm, settypeOfForm] = React.useState('');\r\n const [tempGuidFile, setTempGuidFile] = React.useState('');\r\n\r\n const [modalMessageParams, setmodalMessageParams] = React.useState({\r\n show: false,\r\n });\r\n\r\n // EFFECTS\r\n\r\n React.useEffect(() => {\r\n gridInstance.current.refresh();\r\n }, [i18n.language]);\r\n\r\n React.useEffect(() => {\r\n gridInstance.current.refresh();\r\n }, [globalAdBudget]);\r\n\r\n React.useEffect(() => {\r\n if (loading) {\r\n createSpinner({ target: document.getElementById('loading') });\r\n showSpinner(document.getElementById('loading'));\r\n setSpinner({ type: 'Bootstrap' });\r\n }\r\n }, [loading]);\r\n\r\n // EFFECTS\r\n React.useEffect(() => {\r\n if (loading2) {\r\n createSpinner({ target: document.getElementById('loading2') });\r\n showSpinner(document.getElementById('loading2'));\r\n setSpinner({ type: 'Bootstrap' });\r\n }\r\n }, [loading2]);\r\n\r\n\r\n const addTipoStatusNomeToAllItens = (anexos, opts) => {\r\n return anexos.map((item) => {\r\n const statusItem = options.status.filter((i) => i.value ===item.status.id)\r\n const tipoItem = options.tipos.filter((i) => i.value ===item.tipo.id)\r\n return {\r\n ...item,\r\n status: {\r\n ...item.status,\r\n nome: item.status.nome ? item.status.nome : statusItem.length > 0 ? statusItem[0].text : '',\r\n },\r\n tipo: {\r\n ...item.tipo,\r\n nome: item.tipo.nome ? item.tipo.nome : tipoItem.length > 0 ? tipoItem[0].text : '',\r\n },\r\n };\r\n\r\n });\r\n }\r\n\r\n React.useEffect(() => {\r\n if (globalAdBudget.anexos.length > 0 && options.tipos.length > 0 && options.status.length > 0) {\r\n let anexos = globalAdBudget.anexos;\r\n anexos = addTipoStatusNomeToAllItens(anexos, options)\r\n anexos = anexos.filter(item => item.ativo)\r\n setGridData(anexos);\r\n gridInstance.current.dataSource = anexos;\r\n gridInstance.current.refresh();\r\n }\r\n }, [globalAdBudget, options.status, options.tipos]);\r\n\r\n React.useEffect(() => {\r\n if (openModal ===false) {\r\n setValue('tipoMidia.id', null);\r\n }\r\n }, [openModal])\r\n\r\n\r\n const openEdit = (args) => {\r\n if (args) {\r\n setValue('tipo.id', args.tipo.id, { shouldValidate: true });\r\n setValue('id', args.id ? args.id : args.tempGuid, {\r\n shouldValidate: true,\r\n });\r\n setValue('status', args.status.id, { shouldValidate: true });\r\n setValue('nomeArquivo', args.nomeArquivo, { shouldValidate: true });\r\n } else {\r\n setTempGuidFile(uuidv4());\r\n }\r\n setOpenModal(true);\r\n dialogInstance.current.show();\r\n };\r\n\r\n const clearModal = () => {\r\n setValue('id', null);\r\n setValue('tipo.id', null)\r\n setValue('status', null);\r\n setValue('nomeArquivo', null);\r\n }\r\n\r\n // TEMPLATES\r\n const statusTemplate = (args) => {\r\n return (\r\n \r\n {args.status.id ===2 ? i18n.language ==='pt' ? 'Aprovado' : 'Approved' : ''}\r\n {args.status.id ===1 ? i18n.language ==='pt' ? 'Pendente' : 'Pending' : ''}\r\n {args.status.id ===3 ? i18n.language ==='pt' ? 'Reprovado' : 'Reproved' : ''}\r\n \r\n );\r\n };\r\n\r\n\r\n const downloadAnexo = async (args, gb) => {\r\n const id = tempGuidFile ? tempGuidFile : args.id;\r\n const idBudget = globalAdBudget.id ? globalAdBudget.id : tempGuid \r\n setLoading2(true)\r\n downloadAttachment(globalState.accessToken, idBudget, id).then((response) => response.blob())\r\n .then((blob) => {\r\n console.log(blob);\r\n const url = window.URL.createObjectURL(new Blob([blob]));\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.setAttribute('download', `${args.nomeArquivo}`);\r\n document.body.appendChild(link);\r\n link.click();\r\n link.parentNode.removeChild(link);\r\n setLoading2(false)\r\n });\r\n\r\n // const blob = await anexo.blob()\r\n // const url = window.URL.createObjectURL(new Blob([blob]));\r\n\r\n }\r\n\r\n const nomeArquivoTemplate = (args) => {\r\n return (\r\n downloadAnexo(args)}>{args.nomeArquivo}\r\n );\r\n };\r\n\r\n\r\n\r\n\r\n const editTemplate = (args) => {\r\n const isAdmin = hasPermissions(32, \"Admin\", globalState)\r\n return (\r\n
    \r\n\r\n {/* editar */}\r\n {\r\n (isAdmin || args.status.id ===1) &&\r\n {\r\n settypeOfForm('EDIT');\r\n openEdit(args);\r\n }}\r\n className=\"mdl2 mdl2-pencil\"\r\n />\r\n }\r\n\r\n\r\n {/* aprovar */}\r\n {\r\n (isAdmin && args.status.id ===1 && !args.tempGuid) &&\r\n {\r\n initFileApprove(args)\r\n }}\r\n className=\"mdl2 mdl2-approve\"\r\n />\r\n }\r\n\r\n {/* deletar */}\r\n {\r\n (isAdmin || args.status.id ===1) &&\r\n {\r\n const handleNotOK = () => {\r\n buildDialogMessage('close')\r\n }\r\n const handleOK = (args) => {\r\n updateItem(args, true)\r\n buildDialogMessage('close')\r\n }\r\n buildDialogMessage('confirmDelete', null, null, () => { handleOK(args) }, handleNotOK, '')\r\n }}\r\n className=\"mdl2 mdl2-trash\"\r\n />\r\n }\r\n\r\n
    \r\n );\r\n };\r\n\r\n const formatDateColumnTemplate = (args) => {\r\n return args.criadoEm ? dateFormat(args.criadoEm) : '';\r\n };\r\n const formatDateApprovalColumnTemplate = (args) => {\r\n return args.aprovadoReprovadoEm ? dateFormat(args.aprovadoReprovadoEm) : '';\r\n };\r\n\r\n\r\n const dateFormat = (date) => {\r\n return {new Date(date).toLocaleString(i18n.language)};\r\n };\r\n\r\n\r\n\r\n const buildDialogMessage = (type, msg, callBack, okCallback, notOkCallback, confirmType) => {\r\n if (type ==='approval') {\r\n setmodalMessageParams({\r\n title: t('ModalMessages:title_approve'),\r\n message: t('ModalMessages:approved'),\r\n type: 'success',\r\n actionType: 'approval',\r\n approveCallback: okCallback,\r\n reproveCallback: notOkCallback,\r\n icon: 'mdl2-confirm',\r\n show: true,\r\n exitCallback: callBack\r\n });\r\n } else if (type ==='approved') {\r\n setmodalMessageParams({\r\n title: t('ModalMessages:title_approve'),\r\n message: t('ModalMessages:approved'),\r\n type: 'success',\r\n icon: 'mdl2-confirm',\r\n show: true,\r\n exitCallback: callBack\r\n });\r\n } else if (type ==='reproved') {\r\n setmodalMessageParams({\r\n title: t('ModalMessages:title_reprove'),\r\n message: t('ModalMessages:reproved'),\r\n type: 'error',\r\n icon: 'mdl2 mdl2-disapprove',\r\n show: true,\r\n });\r\n } else if (type ==='confirm') {\r\n setmodalMessageParams({\r\n title: confirmType ===\"approve\" ? t('ModalMessages:title_approve_confirm') : t('ModalMessages:title_reprove_confirm'),\r\n type: confirmType ===\"approve\" ? \"success\" : 'error',\r\n actionType: 'confirm',\r\n confirmOkCallback: okCallback,\r\n confirmNotOkCallback: notOkCallback,\r\n icon: confirmType ===\"approve\" ? 'mdl2 mdl2-approve' : 'mdl2 mdl2-disapprove',\r\n show: true,\r\n });\r\n }\r\n else if (type ==='error') {\r\n setmodalMessageParams({\r\n title: t('ManageInternalAreas:error_title'),\r\n message: t('ManageInternalAreas:error'),\r\n type: 'error',\r\n icon: 'e-icon-dlg-close e-icons',\r\n show: true,\r\n });\r\n }\r\n else if (type ==='close') {\r\n setmodalMessageParams({\r\n show: false,\r\n });\r\n } else if (type ==='confirmDelete') {\r\n setmodalMessageParams({\r\n title: i18n.language ===\"pt\" ? 'Deletar item' : 'Delete item',\r\n type: \"error\",\r\n message: i18n.language ===\"pt\" ? 'Tem certeza que deseja excluir esse item?' : 'Are you sure you want to delete this item?',\r\n actionType: 'confirm',\r\n confirmOkCallback: okCallback,\r\n confirmNotOkCallback: notOkCallback,\r\n icon: 'mdl2 mdl2-trash',\r\n show: true,\r\n });\r\n }\r\n };\r\n\r\n // BUSINESS\r\n const createAttachmentItem = (data) => {\r\n setLoading(true)\r\n let newData = {\r\n id: data.id,\r\n nomeArquivo: uploadedFile.rawFile.name,\r\n status: {\r\n id: 1,\r\n nome: 'Pendente',\r\n },\r\n tipo: {\r\n id: data.tipo.id,\r\n nome: options.tipos.filter((i) => i.value ===data.tipo.id)[0].text,\r\n },\r\n statusOperacao: 0,\r\n tempGuid: data.id,\r\n ativo: true\r\n };\r\n\r\n let newGridData = [];\r\n setGridData((prevstate) => {\r\n prevstate.unshift(newData);\r\n newGridData = prevstate.filter(item => item.ativo)\r\n return newGridData;\r\n });\r\n\r\n setGlobalAdBudget((prevState) => {\r\n return {\r\n ...prevState,\r\n anexos: newGridData,\r\n }\r\n });\r\n gridInstance.current.dataSource = newGridData;\r\n gridInstance.current.refresh();\r\n dialogInstance.current.hide();\r\n setLoading(false)\r\n }\r\n const updateItem = (data, isLogicalDelete) => {\r\n setLoading(true)\r\n\r\n setGlobalAdBudget((prevState) => {\r\n let anexosArr = [];\r\n const isIdTemp = isNaN(data.id) ? true : false;\r\n var itemID = data.id\r\n\r\n if (!isIdTemp && data.id) {\r\n itemID = parseInt(data.id.toString())\r\n } else {\r\n itemID = data.tempGuid\r\n }\r\n\r\n const qstringIId = getURLParamsByKey('Id')\r\n const anexoItem = prevState.anexos.filter(i => i.id === itemID || i.tempGuid === itemID)[0]\r\n const statusOperacao = IDAdBudget || qstringIId ? 1 : anexoItem.statusOperacao\r\n const nomeTipoMidia = options.tipos.filter((i) => i.value ===data.tipo.id)[0]\r\n\r\n let obj = {\r\n ...anexoItem,\r\n statusOperacao: statusOperacao,\r\n tipo: {\r\n id: data.tipo.id,\r\n nome: nomeTipoMidia ? nomeTipoMidia.text : data.tipo.nome,\r\n },\r\n id: itemID,\r\n ativo: isLogicalDelete ? false : anexoItem.ativo,\r\n };\r\n\r\n anexosArr = prevState.anexos.map((item) => {\r\n if (item.id ===obj.id) { item = obj }\r\n return item\r\n });\r\n if (!IDAdBudget && !qstringIId && isLogicalDelete) {\r\n anexosArr = prevState.anexos.filter((item) => {\r\n return item.id !== obj.id\r\n });\r\n }\r\n\r\n anexosArr = addTipoStatusNomeToAllItens(anexosArr, options)\r\n return {\r\n ...prevState,\r\n anexos: anexosArr,\r\n };\r\n });\r\n\r\n dialogInstance.current.hide()\r\n setLoading(false)\r\n }\r\n const initFileApprove = (args) => {\r\n const setNewFileStatus = (data, status) => {\r\n const anexoItem = gridInstance.current.dataSource.filter(i => i.id === data.id || i.tempGuid === data.id)[0]\r\n const qstringIId = getURLParamsByKey('Id')\r\n const statusOperacao = IDAdBudget || qstringIId ? 1 : anexoItem.statusOperacao\r\n let obj = {\r\n ...anexoItem,\r\n status: { ...status },\r\n statusOperacao: statusOperacao,\r\n };\r\n let anexosArr = [];\r\n setGlobalAdBudget((prevState) => {\r\n anexosArr = addTipoStatusNomeToAllItens(prevState.anexos)\r\n anexosArr = anexosArr.map((item) => {\r\n if (item.id ===obj.id) item = obj\r\n return item\r\n });\r\n return {\r\n ...prevState,\r\n anexos: anexosArr,\r\n };\r\n });\r\n\r\n }\r\n const handleNotOK = () => {\r\n buildDialogMessage('close')\r\n }\r\n\r\n const onApproveClick = (args) => {\r\n const handleAprove = (data) => {\r\n setNewFileStatus(data, { id: 2, nomePt: \"Aprovado\", nomeEn: \"Approved\", ativo: true, })\r\n buildDialogMessage('close')\r\n }\r\n buildDialogMessage('confirm', null, null, () => { handleAprove(args) }, handleNotOK, \"approve\")\r\n }\r\n\r\n const onReproveClick = (args) => {\r\n const handleReprove = (data) => {\r\n setNewFileStatus(data, { id: 3, nomePt: \"Reprovado\", nomeEn: \"Reproved\", ativo: true, })\r\n buildDialogMessage('close')\r\n }\r\n buildDialogMessage('confirm', null, null, () => { handleReprove(args) }, handleNotOK, \"reprove\")\r\n }\r\n buildDialogMessage('approval', null, null, () => { onApproveClick(args) }, () => { onReproveClick(args) })\r\n }\r\n\r\n // FORM\r\n const onSubmit = (data) => {\r\n if (typeOfForm ==='NEW') createAttachmentItem(data);\r\n else if (typeOfForm ==='EDIT') updateItem(data);\r\n reset();\r\n };\r\n const onError = (errors, e) => (errors, e);\r\n\r\n const target = document.getElementById('uploadAttachment');\r\n const asyncSettings = {\r\n saveUrl: `${process.env.REACT_APP_API_URL}/_api/BrandingAdvertising/AdvertisingBudget/UploadAttachmentChunks?IdOrGuidAdvertisingBudget=${IDAdBudget ? IDAdBudget : tempGuid}&IdOrGuidAdvertisingBudgetAttachment=${tempGuidFile}`,\r\n removeUrl: `${process.env.REACT_APP_API_URL}/_api/BrandingAdvertising/AdvertisingBudget/RemoveVideoAttachment?IdOrGuidAdvertisingBudget=${IDAdBudget ? IDAdBudget : tempGuid}&IdOrGuidAdvertisingBudgetAttachment=${tempGuidFile}`,\r\n chunkSize: uploadChunkSize,\r\n };\r\n const whenFileSelected = (e) => {\r\n let chunkSize = e.fileInfo.size / 10;\r\n setUploadChunkSize((uploadChunkSize) => (uploadChunkSize = chunkSize));\r\n };\r\n const uploadObj = React.useRef(null);\r\n let isInteraction;\r\n const uploadIcon =\r\n '';\r\n\r\n const uploadImage = () => {\r\n document\r\n .getElementsByClassName('e-file-select-wrap')[0]\r\n .querySelector('button')\r\n .click();\r\n return false;\r\n };\r\n const onRemoveFile = (args) => {\r\n setValue('anexo', null);\r\n setUploadedFile(null);\r\n setError('anexo');\r\n args.postRawFile = false;\r\n if (args && args.currentRequest) {\r\n args.currentRequest.setRequestHeader(\r\n 'Authorization',\r\n 'Bearer ' + globalState.accessToken,\r\n );\r\n }\r\n };\r\n const onPausing = (args) => {\r\n if (args.event !== null && !navigator.onLine) {\r\n isInteraction = true;\r\n } else {\r\n isInteraction = false;\r\n }\r\n };\r\n const fileUploading = (e) => {\r\n e.currentRequest.setRequestHeader(\r\n 'Authorization',\r\n 'Bearer ' + globalState.accessToken,\r\n );\r\n if (blockIdList.length > 0)\r\n e.currentRequest.setRequestHeader('blockIdList', blockIdList.join(','));\r\n };\r\n const onBeforeFailure = (args) => {\r\n args.cancel = isInteraction;\r\n };\r\n\r\n const chunkUploaded = (e) => {\r\n setBlockIdList((blockIdList) => [\r\n ...blockIdList,\r\n e.event.currentTarget.response,\r\n ]);\r\n };\r\n const chunkComplete = async (args) => {\r\n if (args.operation ==='upload' && args.name ==='success') {\r\n setUploadedFile(args.file);\r\n setValue('anexo', args.file);\r\n clearError('anexo')\r\n }\r\n };\r\n const onResuming = (args) => {\r\n if (args.event !== null && !navigator.onLine) {\r\n isInteraction = true;\r\n } else {\r\n isInteraction = false;\r\n }\r\n };\r\n const editSettings = {\r\n allowEditing: true,\r\n allowAdding: true,\r\n allowDeleting: true,\r\n allowEditOnDblClick: false,\r\n mode: 'Dialog',\r\n };\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n

    {i18n.language ==='pt' ? 'Anexos' : 'Attachments'}

    \r\n
    \r\n
    \r\n
    \r\n {\r\n settypeOfForm('NEW');\r\n openEdit();\r\n }}>\r\n \r\n {i18n.language ==='pt' ? 'Novo Anexo' : 'New Attachment'}\r\n \r\n
    \r\n
    \r\n\r\n {/* FORM FILE */}\r\n \r\n
    \r\n {/* ID */}\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n {/* Tipo */}\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n {errors.tipo && (\r\n

    {t('Validation:required')}

    \r\n )}\r\n
    \r\n
    \r\n
    \r\n\r\n {/* uploadAttachment */}\r\n {typeOfForm ==='NEW' &&\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n {i18n.language ==='pt' ? (\r\n

    \r\n Arraste o arquivo aqui ou faça o\r\n uploadImage()}> carregamento\r\n

    \r\n ) : (\r\n

    \r\n Drag the file here or\r\n uploadImage()}> upload\r\n

    \r\n )}\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n {errors.anexo && (\r\n

    {t('Validation:required')}

    \r\n )}\r\n
    \r\n }\r\n\r\n
    \r\n \r\n {t('Actions:save')}\r\n \r\n
    \r\n
    \r\n {loading &&
    }\r\n \r\n\r\n {globalAdBudget &&\r\n \r\n \r\n \r\n \r\n statusTemplate(args)}\r\n field=\"status.nome\"\r\n width=\"170\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n editTemplate(args)}\r\n width=\"120\"\r\n />\r\n \r\n \r\n \r\n }\r\n {loading2 &&
    }\r\n {/* MODAL APROVAÇÃO */}\r\n { modalMessageParams.show && }\r\n\r\n\r\n\r\n
    \r\n );\r\n};\r\n","import * as React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Buttons } from '../utilities/Buttons';\r\nimport { DropDownListComponent } from '@syncfusion/ej2-react-dropdowns';\r\nimport { TextBoxComponent } from '@syncfusion/ej2-react-inputs';\r\nimport { NumericTextBoxComponent } from '@syncfusion/ej2-react-inputs';\r\nimport { GridComponent, ColumnsDirective, ColumnDirective, Edit, Toolbar, Filter, Inject, VirtualScroll, Sort, ContextMenu, Page, Resize, Group, AggregateColumnsDirective, AggregateDirective, AggregatesDirective, Aggregate, AggregateColumnDirective } from \"@syncfusion/ej2-react-grids\";\r\nimport { DialogComponent } from '@syncfusion/ej2-react-popups';\r\nimport i18n from 'i18next';\r\nimport { useForm } from 'react-hook-form';\r\nimport { createSpinner, showSpinner, setSpinner, } from '@syncfusion/ej2-react-popups';\r\nimport { setCulture, setCurrencyCode } from '@syncfusion/ej2-base';\r\nimport { AdvertisingBudgetContext } from './AdvertisingBudgetContext';\r\nimport { uuidv4 } from '../utilities/Utils';\r\nimport { DatePickerComponent } from \"@syncfusion/ej2-react-calendars\";\r\nimport GenericModal from '../utilities/MessageModal/GenericModal';\r\nimport { hasPermissions } from \"../utilities/Utils\";\r\nimport { GlobalStateContext } from '../general/GlobalState';\r\n\r\nexport const ControlContent = (props) => {\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const contextMenuItems = ['SortAscending', 'SortDescending', 'FirstPage', 'PrevPage', 'LastPage', 'NextPage'];\r\n setCurrencyCode('BRL');\r\n setCulture('pt')\r\n const { data, options, IDAdBudget } = props;\r\n const [globalAdBudget, setGlobalAdBudget] = React.useContext(AdvertisingBudgetContext);\r\n const { t } = useTranslation();\r\n const gridInstance = React.useRef(null);\r\n const [openEditModal, setOpenEditModal] = React.useState(false);\r\n const dialogInstance = React.useRef();\r\n const [gridData, setGridData] = React.useState([]);\r\n const [loading, setloading] = React.useState(false);\r\n const [typeOfForm, settypeOfForm] = React.useState('');\r\n const [errosAPI, seterrosAPI] = React.useState(null);\r\n const [modalMessageParams, setmodalMessageParams] = React.useState({ show: false });\r\n const { register, handleSubmit, errors, reset, setValue, clearError } = useForm({\r\n mode: \"onChange\",\r\n reValidateMode: 'onChange',\r\n criteriaMode: 'all',\r\n shouldFocusError: true,\r\n shouldUnregister: false,\r\n });\r\n\r\n\r\n // EFFECTS\r\n\r\n React.useEffect(() => {\r\n if (loading) {\r\n createSpinner({ target: document.getElementById('loading') });\r\n showSpinner(document.getElementById('loading'));\r\n setSpinner({ type: 'Bootstrap' });\r\n }\r\n }, [loading]);\r\n\r\n React.useEffect(() => {\r\n if (openEditModal ===false) {\r\n clearError()\r\n setValue('id', null);\r\n setValue('contrato.id', null);\r\n setValue('valorProducao', null);\r\n setValue('valorMidia', null);\r\n setValue('honorarios', null);\r\n setValue('dataPagamento', null);\r\n }\r\n }, [openEditModal])\r\n\r\n React.useEffect(() => {\r\n gridInstance.current.refresh();\r\n }, [i18n.language]);\r\n\r\n const addContratoNomeToAllItens = (contratos) => {\r\n return contratos.map((item) => {\r\n var tipoItem = options.contratosAll.filter((i) => i.value ===item.contrato.id);\r\n if (tipoItem[0])\r\n return {\r\n ...item,\r\n contrato: {\r\n ...item.contrato,\r\n nome: tipoItem[0].text,\r\n },\r\n };\r\n else return item;\r\n });\r\n }\r\n React.useEffect(() => {\r\n //if (globalAdBudget.pagamentos.length > 0 && options.contratos.length > 0) {\r\n if (globalAdBudget.pagamentos.length > 0) {\r\n let pagamentos = globalAdBudget.pagamentos;\r\n pagamentos = addContratoNomeToAllItens(pagamentos)\r\n pagamentos = pagamentos.filter(item => item.ativo)\r\n setGridData(pagamentos)\r\n gridInstance.current.dataSource = pagamentos;\r\n gridInstance.current.refresh();\r\n }\r\n }, [globalAdBudget, options]);\r\n\r\n\r\n // CUSTOM FUNCTIONS\r\n const buildDialogMessage = (type, msg, callBack, okCallback, notOkCallback, confirmType) => {\r\n if (type ==='confirm') {\r\n setmodalMessageParams({\r\n title: i18n.language ===\"pt\" ? 'Deletar item' : 'Delete item',\r\n type: \"error\",\r\n message: i18n.language ===\"pt\" ? 'Tem certeza que deseja excluir esse item?' : 'Are you sure you want to delete this item?',\r\n actionType: 'confirm',\r\n confirmOkCallback: okCallback,\r\n confirmNotOkCallback: notOkCallback,\r\n icon: 'mdl2 mdl2-trash',\r\n show: true,\r\n });\r\n } else if (type ==='close') {\r\n setmodalMessageParams({\r\n show: false,\r\n });\r\n }\r\n };\r\n\r\n\r\n\r\n // TEMPLATES\r\n const totalDifference = (args) => {\r\n const calcularPagamentoTotal = () => {\r\n let sumCostGrid = 0\r\n if (globalAdBudget && globalAdBudget.pagamentos && globalAdBudget.pagamentos.length > 0) {\r\n const pagamentos = globalAdBudget.pagamentos.filter(item => item.ativo)\r\n pagamentos.map((i) => {\r\n sumCostGrid += i.valorProducao;\r\n sumCostGrid += i.valorMidia;\r\n sumCostGrid += i.honorarios ?? 0;\r\n });\r\n }\r\n return sumCostGrid\r\n }\r\n const calcularCustoTotal = () => {\r\n let sumCostGrid = 0\r\n if (globalAdBudget && globalAdBudget.custos && globalAdBudget.custos.length > 0) {\r\n const custos = globalAdBudget.custos.filter(item => item.ativo)\r\n custos.map((i) => {\r\n sumCostGrid += i.custoProducao;\r\n sumCostGrid += i.custoMidia;\r\n sumCostGrid += i.honorarios ?? 0;\r\n });\r\n }\r\n return sumCostGrid\r\n }\r\n const calcularDiferenca = () => {\r\n const totalPag = calcularPagamentoTotal()\r\n const totalCusto = calcularCustoTotal()\r\n return totalCusto - totalPag\r\n }\r\n\r\n return (\r\n {i18n.language ===\"pt\" ? \"Saldo\" : \"Balance\"}: {toBRL(calcularDiferenca())}\r\n )\r\n }\r\n\r\n const totalTemplateSum = (args) => {\r\n const calcularPagamentoTotal = () => {\r\n let sumCostGrid = 0\r\n if (globalAdBudget && globalAdBudget.pagamentos && globalAdBudget.pagamentos.length > 0) {\r\n const pagamentos = globalAdBudget.pagamentos.filter(item => item.ativo)\r\n pagamentos.map((i) => {\r\n sumCostGrid += i.valorProducao;\r\n sumCostGrid += i.valorMidia;\r\n sumCostGrid += i.honorarios ?? 0;\r\n });\r\n }\r\n return sumCostGrid\r\n\r\n }\r\n return (\r\n Total Final: {toBRL(calcularPagamentoTotal())}\r\n )\r\n }\r\n\r\n const templateSum = (args) => {\r\n return (\r\n {i18n.language ===\"pt\" ? \"Total\" : \"Total\"}: {toBRL(args.Sum)}\r\n );\r\n }\r\n\r\n React.useEffect(() => {\r\n if (gridInstance.current)\r\n gridInstance.current.refresh();\r\n }, [i18n.language]);\r\n\r\n const editTemplate = (args) => {\r\n return (\r\n\r\n
    \r\n {\r\n hasPermissions(32, \"Admin\", globalState) && {\r\n openEdit(args);\r\n }}\r\n className=\"mdl2 mdl2-pencil\"\r\n />\r\n }\r\n {\r\n hasPermissions(32, \"Admin\", globalState) && {\r\n const handleNotOK = () => {\r\n buildDialogMessage('close')\r\n }\r\n const handleOK = (args) => {\r\n updateItem(args, true)\r\n buildDialogMessage('close')\r\n }\r\n buildDialogMessage('confirm', null, null, () => { handleOK(args) }, handleNotOK, '')\r\n }}\r\n className=\"mdl2 mdl2-trash\"\r\n />\r\n }\r\n
    \r\n );\r\n };\r\n\r\n\r\n const dateFormat = (date) => {\r\n return {new Date(date).toLocaleDateString(i18n.language)};\r\n };\r\n\r\n const toBRL = valor => {\r\n return Intl.NumberFormat(i18n.language, {\r\n style: 'currency',\r\n currency: 'BRL',\r\n }).format(valor)\r\n\r\n // return parseFloat(valor).toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' })\r\n }\r\n\r\n const formaValorProducaoColumnTemplate = (data) => {\r\n return {data.valorProducao && toBRL(data.valorProducao)};\r\n };\r\n\r\n const formaValorMidiaColumnTemplate = (data) => {\r\n return {data.valorMidia && toBRL(data.valorMidia)};\r\n };\r\n\r\n const formaHonorariosColumnTemplate = (data) => {\r\n return {data.honorarios && toBRL(data.honorarios)};\r\n };\r\n\r\n const contratoTemplate = (data) => {\r\n return {data.contrato.nome};\r\n };\r\n\r\n\r\n // MODAL DIALOG\r\n const openEdit = (args) => {\r\n settypeOfForm('EDIT');\r\n clearError()\r\n setValue('id', args.id);\r\n setValue('contrato.id', args.contrato.id);\r\n setValue('valorProducao', args.valorProducao);\r\n setValue('valorMidia', args.valorMidia);\r\n setValue('honorarios', args.honorarios);\r\n setValue('dataPagamento', args.dataPagamento);\r\n setOpenEditModal(true);\r\n dialogInstance.current.show();\r\n };\r\n\r\n const clearModal = () => {\r\n setValue('id', null);\r\n setValue('contrato.id', null);\r\n setValue('valorProducao', null);\r\n setValue('valorMidia', null);\r\n setValue('honorarios', null);\r\n setValue('dataPagamento', null);\r\n }\r\n\r\n\r\n\r\n // BUSINESS\r\n const createCustItem = (data) => {\r\n setloading(true)\r\n const obj = {\r\n ativo: true,\r\n id: uuidv4(),\r\n statusOperacao: 0,\r\n contrato: {\r\n id: data.contrato.id,\r\n nome: options.contratos.filter(\r\n (i) => i.value ===data.contrato.id,\r\n )[0].text,\r\n },\r\n dataPagamento: data.dataPagamento,\r\n honorarios: data && data.honorarios ? data.honorarios : 0,\r\n valorMidia: data && data.valorMidia ? data.valorMidia : 0,\r\n valorProducao: data && data.valorProducao ? data.valorProducao : 0\r\n };\r\n\r\n let pagamentosArr = [];\r\n setGlobalAdBudget((prevState) => {\r\n pagamentosArr = addContratoNomeToAllItens(prevState.pagamentos);\r\n pagamentosArr.unshift(obj);\r\n return {\r\n ...prevState,\r\n pagamentos: pagamentosArr,\r\n };\r\n });\r\n\r\n gridInstance.current.dataSource = pagamentosArr.filter(item => item.ativo);\r\n gridInstance.current.refresh();\r\n setloading(false)\r\n dialogInstance.current.hide()\r\n setOpenEditModal(false)\r\n };\r\n const updateItem = (data, isLogicalDelete) => {\r\n setloading(true)\r\n\r\n const contratoSelected = options.contratos.filter((i) => i.value ===data.contrato.id,\r\n )[0]\r\n\r\n const obj = {\r\n id: data.id,\r\n ativo: isLogicalDelete ? false : true,\r\n statusOperacao: IDAdBudget ? 1 : data.statusOperacao,\r\n contrato: {\r\n id: data.contrato.id,\r\n nome: contratoSelected ? contratoSelected.text : data.contrato.nome,\r\n },\r\n dataPagamento: data.dataPagamento,\r\n honorarios: data && data.honorarios ? data.honorarios : 0,\r\n valorMidia: data && data.valorMidia ? data.valorMidia : 0,\r\n valorProducao: data && data.valorProducao ? data.valorProducao : 0,\r\n };\r\n\r\n let pagamentosArr = [];\r\n setGlobalAdBudget((prevState) => {\r\n pagamentosArr = addContratoNomeToAllItens(prevState.pagamentos);\r\n pagamentosArr = pagamentosArr.map((item) => {\r\n if (item.id ===obj.id) { item = obj; }\r\n return item;\r\n });\r\n return {\r\n ...prevState, pagamentos: pagamentosArr\r\n };\r\n });\r\n\r\n gridInstance.current.dataSource = pagamentosArr.filter(item => item.ativo);\r\n gridInstance.current.refresh();\r\n gridInstance.current.refresh();\r\n setloading(false)\r\n dialogInstance.current.hide()\r\n setOpenEditModal(false)\r\n\r\n };\r\n\r\n React.useEffect(() => {\r\n console.log(errors);\r\n }, [errors]);\r\n\r\n\r\n\r\n // FORM\r\n const onSubmit = (data) => {\r\n if (typeOfForm ==='NEW') createCustItem(data);\r\n else if (typeOfForm ==='EDIT') updateItem(data);\r\n reset();\r\n };\r\n const onError = (errors, e) => console.log(errors, e);\r\n\r\n const onCalendarOpen = (args) => {\r\n args.popup.offsetX=300;\r\n args.popup.offsetY=-303;\r\n };\r\n\r\n const onCreateDDLContract = (e) => {\r\n let eleSelected = parseInt(e.popup.element.querySelector('.e-list-item.e-active').getAttribute('data-value'));\r\n let elements = e.popup.element.querySelectorAll('.e-list-item');\r\n\r\n if (options.contratos.length > 0) {\r\n elements.forEach((ele) => {\r\n let eleId = parseInt(ele.getAttribute('data-value'));\r\n let eleExists = options.contratos.some(item => item.value === eleId);\r\n\r\n if (!eleExists) {\r\n if (eleSelected === eleId) {\r\n ele.classList.add('e-disabled');\r\n ele.classList.add('e-overlay');\r\n ele.classList.remove('e-hide');\r\n } else {\r\n ele.classList.add('e-hide');\r\n }\r\n }\r\n })\r\n } else {\r\n elements.forEach((ele) => {\r\n let eleId = parseInt(ele.getAttribute('data-value'));\r\n\r\n if (eleSelected === eleId) {\r\n ele.classList.add('e-disabled');\r\n ele.classList.add('e-overlay');\r\n ele.classList.remove('e-hide');\r\n } else {\r\n ele.classList.add('e-hide');\r\n }\r\n })\r\n }\r\n };\r\n\r\n return (\r\n
    \r\n\r\n
    \r\n
    \r\n \r\n

    {i18n.language ===\"pt\" ? \"Controle de Pagamentos\" : \"Payment Control\"}

    \r\n
    \r\n
    \r\n {\r\n hasPermissions(32, \"Admin\", globalState) &&
    \r\n {\r\n settypeOfForm('NEW');\r\n setOpenEditModal(true)\r\n dialogInstance.current.show();\r\n }}>\r\n \r\n {i18n.language ==='pt' ? 'Novo Pagamento' : 'New Payment'}\r\n \r\n
    \r\n }\r\n\r\n
    \r\n\r\n \r\n \r\n {/* ID */}\r\n
    \r\n \r\n
    \r\n \r\n {errors.id &&

    {t('Validation:required')}

    }\r\n
    \r\n
    \r\n\r\n
    \r\n {/* contrato */}\r\n
    \r\n \r\n
    \r\n \r\n {errors.contrato && (\r\n

    {t('Validation:required')}

    \r\n )}\r\n
    \r\n
    \r\n {/* valorProducao */}\r\n
    \r\n \r\n
    \r\n \r\n {/* {errors.valorProducao &&\r\n errors.valorProducao.type === 'required' && (\r\n

    {t(\"Validation:required\")}

    \r\n )} */}\r\n {errors.valorProducao &&\r\n errors.valorProducao.type === 'maxLength' && (\r\n

    {t(\"Validation:exceeded\")}

    \r\n )}\r\n {errors.valorProducao &&\r\n errors.valorProducao.type === 'min' && (\r\n

    {t(\"Validation:min\")}

    \r\n )}\r\n {errors.valorProducao &&\r\n errors.valorProducao.type === 'minLength' && (\r\n

    {t(\"Validation:exceeded\")}

    \r\n )}\r\n {errosAPI &&\r\n errosAPI.errors &&\r\n errosAPI.errors.valorProducao && (\r\n

    {errosAPI.errors.valorProducao}

    \r\n )}\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n {/* valorMidia */}\r\n
    \r\n \r\n
    \r\n \r\n {/* {errors.valorMidia &&\r\n errors.valorMidia.type === 'required' && (\r\n

    {t(\"Validation:required\")}

    \r\n )} */}\r\n {errors.valorMidia &&\r\n errors.valorMidia.type === 'maxLength' && (\r\n

    {t(\"Validation:exceeded\")}

    \r\n )}\r\n {errors.valorMidia &&\r\n errors.valorMidia.type === 'min' && (\r\n

    {t(\"Validation:min\")}

    \r\n )}\r\n {errors.valorMidia &&\r\n errors.valorMidia.type === 'minLength' && (\r\n

    {t(\"Validation:exceeded\")}

    \r\n )}\r\n {errosAPI && errosAPI.errors && errosAPI.errors.valorMidia && (\r\n

    {errosAPI.errors.valorMidia}

    \r\n )}\r\n
    \r\n
    \r\n {/* Honorários */}\r\n
    \r\n \r\n
    \r\n \r\n\r\n {errors.honorarios &&\r\n errors.honorarios.type === 'required' && (\r\n

    {t(\"Validation:required\")}

    \r\n )}\r\n {errors.honorarios &&\r\n errors.honorarios.type === 'maxLength' && (\r\n

    {t(\"Validation:exceeded\")}

    \r\n )}\r\n {errors.honorarios &&\r\n errors.honorarios.type === 'min' && (\r\n

    {t(\"Validation:min\")}

    \r\n )}\r\n {errors.honorarios &&\r\n errors.honorarios.type === 'minLength' && (\r\n

    {t(\"Validation:exceeded\")}

    \r\n )}\r\n {errosAPI && errosAPI.errors && errosAPI.errors.honorarios && (\r\n

    {errosAPI.errors.honorarios}

    \r\n )}\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n {/* Data Pagamento */}\r\n
    \r\n \r\n
    \r\n \r\n {errors.dataPagamento && (\r\n

    {t('Validation:required')}

    \r\n )}\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n {t('Actions:save')}\r\n \r\n
    \r\n \r\n {loading &&
    }\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n hasPermissions(32, \"Admin\", globalState) &&\r\n editTemplate(args)}\r\n width=\"120\" />\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 \r\n \r\n \r\n\r\n \r\n \r\n\r\n {/* MODAL EXCLUSÃO */}\r\n {modalMessageParams.show && }\r\n\r\n
    \r\n );\r\n}\r\n","import * as React from \"react\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { Container, Row } from \"reactstrap\";\r\nimport { GlobalStateContext } from '../general/GlobalState'\r\nimport { useTranslation } from 'react-i18next';\r\nimport { AutoCompleteComponent } from '@syncfusion/ej2-react-dropdowns';\r\nimport { ButtonComponent } from '@syncfusion/ej2-react-buttons';\r\nimport { GridComponent, ColumnsDirective, ColumnDirective, Edit, Toolbar, Filter, Inject, VirtualScroll, Sort, ContextMenu, Page, Resize } from \"@syncfusion/ej2-react-grids\";\r\nimport { DialogComponent } from \"@syncfusion/ej2-react-popups\";\r\nimport i18n from \"i18next\";\r\nimport { DatePickerComponent } from \"@syncfusion/ej2-react-calendars\";\r\nimport { AdvertisingBudgetContext } from './AdvertisingBudgetContext';\r\nexport const HistoricContent = ({ options, gridHistoricInstance }) => {\r\n\r\n\r\n const { t } = useTranslation();\r\n\r\n // const gridInstance = React.useRef(null);\r\n const [\r\n globalAdBudget,\r\n\r\n ] = React.useContext(AdvertisingBudgetContext);\r\n const contextMenuItems = ['SortAscending', 'SortDescending', 'FirstPage', 'PrevPage', 'LastPage', 'NextPage'];\r\n\r\n React.useEffect(() => {\r\n if (gridHistoricInstance && gridHistoricInstance.current) {\r\n gridHistoricInstance.current.refresh();\r\n }\r\n }, [i18n.language]);\r\n\r\n React.useEffect(() => {\r\n if (gridHistoricInstance && gridHistoricInstance.current) {\r\n gridHistoricInstance.current.refresh();\r\n }\r\n }, [globalAdBudget.historico]);\r\n\r\n const formatDateColumnTemplate = (args) => {\r\n return args.data ? dateFormat(args.data) : '';\r\n };\r\n\r\n const dateFormat = (date) => {\r\n return {new Date(date).toLocaleString(i18n.language)};\r\n };\r\n\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n

    {i18n.language ===\"pt\" ? \"Histórico de alterações\" : \"Change history\"}

    \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","import * as React from 'react';\r\nimport { GlobalStateContext } from '../general/GlobalState';\r\nimport { DataContent } from './DataContent';\r\nimport { CostContent } from './CostContent';\r\nimport { FileContent } from './FileContent';\r\nimport { ControlContent } from './ControlContent';\r\nimport { HistoricContent } from './HistoricContent';\r\n\r\nimport { Actions } from '../utilities/Actions';\r\nimport { getSuppliers } from '../../services/SuppliersSVC';\r\nimport { AdvertisingBudgetContext } from './AdvertisingBudgetContext';\r\nimport {\r\n getAdvertisingBudgetDataTypes,\r\n getAdvertisingBudgetDataStatus,\r\n addAdvertisingBudget,\r\n getAdvertisingBudgetItemByID,\r\n getActiveContractInPeriodItems,\r\n getManageInternalAreas,\r\n getManageAnnualBudget,\r\n getAllContractItems,\r\n updateAdvertisingBudget\r\n} from './AdvertisingBudgetSVC';\r\nimport i18n from 'i18next';\r\nimport { hasPermissions, uuidv4 } from '../utilities/Utils';\r\nimport { Redirect } from 'react-router-dom';\r\nimport { getMediaTypes } from '../../services/SystemSVC';\r\nimport { useTranslation } from 'react-i18next';\r\nimport GenericModal from '../utilities/MessageModal/GenericModal';\r\nimport {\r\n DialogComponent,\r\n createSpinner,\r\n showSpinner,\r\n setSpinner,\r\n} from '@syncfusion/ej2-react-popups';\r\n\r\nexport const FormAdvertisingBudget = ({ IDAdBudget }) => {\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [tempGuid, setTempGuid] = React.useState('');\r\n const [options, setOptions] = React.useState({\r\n agencia: [],\r\n areas: [],\r\n anos: [],\r\n tipos: [],\r\n status: [],\r\n tiposMidia: [],\r\n contratos: [],\r\n contratosAll: []\r\n });\r\n const [optionsComplete, setOptionsComplete] = React.useState({\r\n agencia: [],\r\n areas: [],\r\n anos: [],\r\n tipos: [],\r\n status: [],\r\n tiposMidia: [],\r\n contratos: [],\r\n contratosAll: []\r\n });\r\n const { t } = useTranslation();\r\n const [dataIsValidToInsert, setDataIsValidToInsert] = React.useState(false);\r\n const [modalMessageParams, setmodalMessageParams] = React.useState({\r\n show: false,\r\n });\r\n const [userPermission, setUserPermission] = React.useState([]);\r\n const [redirect, setRedirect] = React.useState(false);\r\n const [loading, setloading] = React.useState(false);\r\n const [disabledBtn, setDisabledBtn] = React.useState(false);\r\n const [\r\n globalAdBudget,\r\n setGlobalAdBudget,\r\n resetglobalAdBudget,\r\n ] = React.useContext(AdvertisingBudgetContext);\r\n const gridHistoricInstance = React.useRef(null);\r\n React.useEffect(() => {\r\n const abortController = new AbortController()\r\n getAllDropDownOptions();\r\n const guid = uuidv4();\r\n setTempGuid(guid);\r\n return () => {\r\n abortController.abort()\r\n }\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n if (IDAdBudget) {\r\n setloading(true)\r\n initItem();\r\n }\r\n }, [IDAdBudget]);\r\n\r\n\r\n React.useEffect(() => {\r\n if (loading) {\r\n createSpinner({ target: document.getElementById('loadingItem') });\r\n showSpinner(document.getElementById('loadingItem'));\r\n setSpinner({ type: 'Bootstrap' });\r\n }\r\n }, [loading]);\r\n\r\n\r\n React.useEffect(() => {\r\n if (gridHistoricInstance && gridHistoricInstance.current) {\r\n gridHistoricInstance.current.dataSource = globalAdBudget.historico\r\n gridHistoricInstance.current.refresh()\r\n }\r\n }, [globalAdBudget]);\r\n\r\n\r\n React.useEffect(() => {\r\n if (optionsComplete.status.length > 0 && optionsComplete.tipos.length > 0 && optionsComplete.tiposMidia.length > 0) {\r\n const newOptions = {\r\n ...options,\r\n \"status\": buildDropDownItems(optionsComplete.status, { textKey: i18n.language ==='pt' ? 'nomePt' : 'nomeEn', value: 'id' }),\r\n \"tipos\": buildDropDownItems(optionsComplete.tipos, { textKey: i18n.language ==='pt' ? 'nomePt' : 'nomeEn', value: 'id' }),\r\n \"tiposMidia\": buildDropDownItems(optionsComplete.tiposMidia, { textKey: i18n.language ==='pt' ? 'nomePt' : 'nomeEn', value: 'id' })\r\n }\r\n setOptions(newOptions);\r\n setGlobalAdBudget(prevstate =>\r\n ({\r\n ...prevstate,\r\n historico: historicDataFormatByType(prevstate, newOptions)\r\n }));\r\n }\r\n\r\n }, [i18n.language]);\r\n\r\n React.useEffect(() => {\r\n if (dataIsValidToInsert && !IDAdBudget) {\r\n createAdBudgetItem();\r\n } else if (dataIsValidToInsert && IDAdBudget) {\r\n updateItemAdBudget()\r\n }\r\n }, [dataIsValidToInsert]);\r\n\r\n React.useEffect(() => {\r\n if (options && options.status && options.status.length > 0 &&\r\n options.tipos && options.tipos.length > 0 &&\r\n options.tiposMidia && options.tiposMidia.length > 0 &&\r\n globalAdBudget && globalAdBudget.historico && globalAdBudget.historico.length > 0 &&\r\n globalAdBudget.historicoTransformed ===false\r\n ) {\r\n setGlobalAdBudget(prevstate => {\r\n return {\r\n ...prevstate,\r\n historicoTransformed: true,\r\n historico: historicDataFormatByType(prevstate, options)\r\n }\r\n })\r\n }\r\n }, [options, globalAdBudget]);\r\n\r\n\r\n\r\n const historicDataFormatByType = (jsonItem, arrOptions) => {\r\n\r\n const convertData = (agreementHistory, value2, arrOptions) => {\r\n const value = agreementHistory[value2] ? agreementHistory[value2] : ''\r\n switch (agreementHistory.tipoDado) {\r\n case \"Date\": {\r\n return new Date(value).toLocaleDateString(i18n.language)\r\n }\r\n case \"Decimal\": {\r\n return Intl.NumberFormat(i18n.language, {\r\n style: 'currency',\r\n currency: 'BRL',\r\n }).format(value)\r\n }\r\n case \"AdvertisingBudgetDataStatus\": {\r\n let textValue = arrOptions.status ?\r\n arrOptions.status.filter(item => item.value ===value) : []\r\n textValue = textValue.length > 0 ? textValue[0].text : value\r\n return textValue\r\n }\r\n case \"AdvertisingBudgetDataType\": {\r\n let textValue = arrOptions.tiposMidia ?\r\n arrOptions.tiposMidia.filter(item => item.value ===value) : []\r\n textValue = textValue.length > 0 ? textValue[0].text : value\r\n return textValue\r\n }\r\n case \"AdvertisingBudgetAttachmentStatus\": {\r\n let textValue = arrOptions.status ?\r\n arrOptions.status.filter(item => item.value ===value) : []\r\n textValue = textValue.length > 0 ? textValue[0].text : value\r\n return textValue\r\n }\r\n case \"AdvertisingBudgetMediaType\": {\r\n let textValue = arrOptions.tiposMidia ?\r\n arrOptions.tiposMidia.filter(item => item.value ===value) : []\r\n textValue = textValue.length > 0 ? textValue[0].text : value\r\n return textValue\r\n }\r\n\r\n case \"AdvertisingBudgetAttachmentType\": {\r\n let textValue = arrOptions.tipos ?\r\n arrOptions.tipos.filter(item => item.value ===value) : []\r\n textValue = textValue.length > 0 ? textValue[0].text : value\r\n return textValue\r\n }\r\n case \"Boolean\": {\r\n return i18n.language ==='pt' ? value : value ===\"Sim\" ? 'Yes' : \"No\"\r\n }\r\n default: {\r\n return value\r\n }\r\n }\r\n };\r\n jsonItem.historico = jsonItem.historico.map(item => {\r\n return {\r\n ...item,\r\n campoEn: item.campoEn,\r\n campoPt: item.campoPt,\r\n dadoFinal: item.dadoFinal,\r\n dadoInicial: item.dadoInicial,\r\n dadoFinalNEW: convertData(item, 'dadoFinal', arrOptions),\r\n dadoInicialNEW: convertData(item, 'dadoInicial', arrOptions),\r\n data: new Date(item.data),\r\n id: item.id,\r\n tipoAcao: item.tipoAcao,\r\n tipoDado: item.tipoDado,\r\n usuarioAlteracao: item.usuarioAlteracao,\r\n }\r\n })\r\n return jsonItem.historico\r\n }\r\n\r\n const initItem = async () => {\r\n const convertAllArrayItemsDateStringToDate = (jsonItem) => {\r\n if (jsonItem.pagamentos) {\r\n jsonItem.pagamentos = jsonItem.pagamentos.map(item => {\r\n item.dataPagamento = !item.dataPagamento || item.dataPagamento === '0001-01-01T00:00:00' ?\r\n null : new Date(item.dataPagamento)\r\n return item\r\n })\r\n }\r\n if (jsonItem.anexos) {\r\n jsonItem.anexos = jsonItem.anexos.map(item => {\r\n item.aprovadoReprovadoEm = !item.aprovadoReprovadoEm || item.aprovadoReprovadoEm === '0001-01-01T00:00:00' ?\r\n null : new Date(item.aprovadoReprovadoEm)\r\n item.criadoEm = !item.criadoEm || item.criadoEm === '0001-01-01T00:00:00' ? null : new Date(item.criadoEm)\r\n return item\r\n })\r\n }\r\n return jsonItem\r\n }\r\n const response = await getAdvertisingBudgetItemByID(\r\n globalState.accessToken,\r\n IDAdBudget,\r\n );\r\n if (response.status ===200) {\r\n let jsonItem = await response.json();\r\n jsonItem = convertAllArrayItemsDateStringToDate(jsonItem)\r\n setGlobalAdBudget(prevstate => ({ ...prevstate, ...jsonItem }));\r\n console.log('jsonItem', jsonItem);\r\n } else {\r\n const msg = i18n.language === 'pt' ? \"O Item não existe ou você não tem permissão para visualizá-lo\" : \"The Item does not exist or you do not have permission to view it\"\r\n buildDialogMessage('custom-error', msg, () => { setRedirect(true) });\r\n console.log(response);\r\n }\r\n setloading(false)\r\n\r\n };\r\n\r\n\r\n const buildDropDownItems = (data, objMap) => {\r\n if (data.length > 0)\r\n return data.map((i) => {\r\n return {\r\n text: i[objMap.textKey],\r\n value: i[objMap.value],\r\n };\r\n });\r\n else\r\n return data\r\n }\r\n\r\n const getAllDropDownOptions = () => {\r\n\r\n const getDropDownOptions = async (fn, optionKey, objMap) => {\r\n let response = await fn(globalState.accessToken)\r\n response = await response.json()\r\n return { response, optionKey, objMap }\r\n }\r\n let promises = []\r\n\r\n promises.push(getDropDownOptions(getAdvertisingBudgetDataStatus, \"status\", { textKey: i18n.language ==='pt' ? 'nomePt' : 'nomeEn', value: 'id' }))\r\n promises.push(getDropDownOptions(getAdvertisingBudgetDataTypes, \"tipos\", { textKey: i18n.language ==='pt' ? 'nomePt' : 'nomeEn', value: 'id' }))\r\n promises.push(getDropDownOptions(getMediaTypes, \"tiposMidia\", { textKey: i18n.language ==='pt' ? 'nomePt' : 'nomeEn', value: 'id' }))\r\n promises.push(getDropDownOptions(getManageInternalAreas, \"areas\", { textKey: 'nome', value: 'id' }))\r\n promises.push(getDropDownOptions(getSuppliers, \"agencia\", { textKey: 'nome', value: 'id' }))\r\n promises.push(getDropDownOptions(getManageAnnualBudget, \"anos\", { textKey: 'ano', value: 'id' }))\r\n promises.push(getDropDownOptions(getActiveContractInPeriodItems, \"contratos\", { textKey: 'contrato', value: 'id' }))\r\n promises.push(getDropDownOptions(getAllContractItems, \"contratosAll\", { textKey: 'contrato', value: 'id' }))\r\n\r\n\r\n Promise.all(promises).then(async getResult => {\r\n try {\r\n setOptionsComplete((prevstate) => {\r\n const allResponse = getResult.map(item => ({ [item.optionKey]: item.response }))\r\n const obj = {}\r\n allResponse.forEach(item => { const objKey = Object.keys(item)[0]; obj[objKey] = item[objKey] })\r\n return obj\r\n });\r\n const obj = {}\r\n setOptions((prevstate) => {\r\n const allResponse = getResult.map(item =>\r\n ({ [item.optionKey]: buildDropDownItems(item.response, item.objMap) }))\r\n allResponse.forEach(item => { const objKey = Object.keys(item)[0]; obj[objKey] = item[objKey] })\r\n console.log('options', obj);\r\n return obj\r\n });\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n }).catch(err => {\r\n console.log('Erro ao obter algum das dropdown options', err);\r\n })\r\n };\r\n\r\n const getItemDataToInsert = () => {\r\n const newItem = globalAdBudget;\r\n\r\n if (!IDAdBudget || !newItem.tempGuid) {\r\n newItem.tempGuid = tempGuid;\r\n }\r\n if (!IDAdBudget) {\r\n delete newItem.id\r\n }\r\n\r\n\r\n // remove guid caso exista\r\n newItem.anexos = newItem.anexos.map((data) => {\r\n if (isNaN(data.id))\r\n delete data.id\r\n else\r\n data.id = parseInt(data.id)\r\n return data\r\n });\r\n // remove guid caso exista\r\n newItem.custos = newItem.custos.map((data) => {\r\n if (isNaN(data.id))\r\n delete data.id\r\n else\r\n data.id = parseInt(data.id)\r\n return data\r\n });\r\n\r\n // remove guid caso exista\r\n newItem.pagamentos = newItem.pagamentos.map((data) => {\r\n if (isNaN(data.id))\r\n delete data.id\r\n else\r\n data.id = parseInt(data.id)\r\n return data\r\n });\r\n\r\n !hasPermissions(32, \"Admin\", globalState) && delete newItem.pagamentos\r\n delete newItem.historico\r\n delete newItem.historicoTransformed\r\n return newItem;\r\n };\r\n\r\n const buildDialogMessage = (type, msg, callBack) => {\r\n if (type ==='success') {\r\n setmodalMessageParams({\r\n title: t('ModalMessages:title'),\r\n message: t('ModalMessages:created'),\r\n type: 'success',\r\n icon: 'mdl2-confirm',\r\n show: true,\r\n exitCallback: callBack\r\n });\r\n } else if (type ==='error') {\r\n setmodalMessageParams({\r\n title: t('ManageInternalAreas:error_title'),\r\n message: t('ManageInternalAreas:error'),\r\n type: 'error',\r\n icon: 'e-icon-dlg-close e-icons',\r\n show: true,\r\n });\r\n } else if (type ==='updated') {\r\n setmodalMessageParams({\r\n title: t('ModalMessages:title'),\r\n message: t('ModalMessages:updated'),\r\n type: 'success',\r\n icon: 'mdl2-confirm',\r\n show: true,\r\n exitCallback: callBack\r\n });\r\n } else if (type ==='custom-error') {\r\n setmodalMessageParams({\r\n title: t('ManageInternalAreas:error_title'),\r\n message: msg,\r\n type: 'error',\r\n icon: 'e-icon-dlg-close e-icons',\r\n show: true,\r\n exitCallback: callBack\r\n });\r\n }\r\n };\r\n\r\n const createAdBudgetItem = async () => {\r\n setDisabledBtn(true)\r\n setloading(true)\r\n const item = getItemDataToInsert();\r\n const result = await addAdvertisingBudget(globalState.accessToken, item);\r\n if (result.ok) {\r\n setloading(false)\r\n resetglobalAdBudget();\r\n console.log('item added', item);\r\n setDataIsValidToInsert(false);\r\n buildDialogMessage('success', '', () => { setRedirect(true) });\r\n setDisabledBtn(false);\r\n } else {\r\n setloading(false)\r\n buildDialogMessage('error');\r\n const err = await result.json();\r\n console.log(err);\r\n buildDialogMessage('custom-error', JSON.stringify(err.errors ? err.errors :\r\n `Ocorreu um erro no sistema. Favor entrar em contato com o administrador - OperationId: ${err.OperationId}`), () => { setRedirect(true) });\r\n setDisabledBtn(false);\r\n }\r\n };\r\n\r\n const updateItemAdBudget = async () => {\r\n setDisabledBtn(true)\r\n setloading(true)\r\n const item = getItemDataToInsert();\r\n const result = await updateAdvertisingBudget(globalState.accessToken, item);\r\n if (result.ok) {\r\n setloading(false)\r\n console.log('item updated', item);\r\n setDataIsValidToInsert(false);\r\n buildDialogMessage('updated', '', () => { setRedirect(true) });\r\n setDisabledBtn(false);\r\n } else {\r\n setloading(false)\r\n buildDialogMessage('error');\r\n const err = await result.json();\r\n console.log(err);\r\n buildDialogMessage('custom-error',\r\n JSON.stringify(err.errors ? err.errors :\r\n `Ocorreu um erro no sistema. Favor entrar em contato com o administrador - OperationId: ${err.OperationId}`),\r\n () => { setRedirect(true) }\r\n );\r\n setDisabledBtn(false);\r\n }\r\n }\r\n\r\n React.useEffect(() => {\r\n let globalPermissions = globalState.permissions;\r\n setUserPermission(globalPermissions.filter((i) => i.idAreaAcesso === 32).map((i) => (i.permission)));\r\n }, [globalState]);\r\n\r\n\r\n const _controls = {\r\n class: 'branding',\r\n form: 'data-form',\r\n customPermissions: IDAdBudget ? (hasPermissions(32, \"Edit\", globalState) || globalState.fornecedor) : hasPermissions(32, \"Create\", globalState),\r\n savePrimary: false,\r\n urlSave: () => { },\r\n urlCancel: () => {\r\n if (window.confirm('Tem certeza que deseja sair? Todos os dados não enviados serão perdidos')) {\r\n setRedirect(true)\r\n }\r\n },\r\n };\r\n\r\n return (\r\n <>\r\n {redirect ? (\r\n \r\n ) : (\r\n <>\r\n {loading &&
    }\r\n \r\n\r\n
    \r\n
    \r\n {options && }\r\n {(globalAdBudget.id || IDAdBudget ===null) && tempGuid && }\r\n {(globalAdBudget.id || IDAdBudget ===null) && }\r\n {IDAdBudget && hasPermissions(32, \"Edit\", globalState) && }\r\n {IDAdBudget && hasPermissions(32, \"Edit\", globalState) && }\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","import * as React from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\nimport { Container, Row } from 'reactstrap';\r\nimport { GlobalStateContext } from '../general/GlobalState';\r\nimport { useTranslation } from 'react-i18next';\r\nimport {\r\n AdvertisingBudgetProvider,\r\n AdvertisingBudgetContext,\r\n} from './AdvertisingBudgetContext';\r\nimport { FormAdvertisingBudget } from './FormAdvertisingBudget';\r\nimport { getURLParamsByKey } from '../utilities/Utils';\r\nimport '../advertisingBudget/advertisingBudget.css';\r\n\r\nexport const FormContainerAdBudget = (props) => {\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [redirect, setRedirect] = React.useState(false);\r\n const [IDAdBudget, setIDAdBudget] = React.useState(null);\r\n\r\n const { t } = useTranslation();\r\n\r\n React.useEffect(() => {\r\n setIDAdBudget(props.match.params.id);\r\n return () => {\r\n setIDAdBudget(null);\r\n }\r\n }, []);\r\n\r\n return (\r\n <>\r\n {globalState.accessToken === null ? (\r\n \r\n ) : redirect ? (\r\n \r\n ) : (\r\n <>\r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    \r\n {!IDAdBudget\r\n ? t('FormContainerAdBudget:title')\r\n : t('FormContainerAdBudget:title_edit')}\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","import React, { useContext, useEffect, useState } from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from 'react-i18next';\r\nimport { ButtonComponent } from \"@syncfusion/ej2-react-buttons\";\r\nimport { ComboBoxComponent, AutoCompleteComponent, MultiSelectComponent, CheckBoxSelection, DropDownTreeComponent, DropDownListComponent } from '@syncfusion/ej2-react-dropdowns';\r\nimport { GridComponent, ColumnsDirective, ColumnDirective, ForeignKey, Filter, Group, Inject, Sort, ContextMenu, Page, Resize, Edit, ExcelExport, PdfExport } from '@syncfusion/ej2-react-grids';\r\nimport { getWhoisWhoUsersFull } from \"../../services/UsersSVC\";\r\nimport { GlobalStateContext } from \"../general/GlobalState\";\r\nimport { Link } from 'react-router-dom';\r\n\r\nexport const WhoIsWhoContent = ({ refWhoisWho, setRefWhoisWho, gridInstance }) => {\r\n\r\n const [globalState] = useContext(GlobalStateContext);\r\n\r\n const [users, setUsers] = useState([]);\r\n\r\n useEffect(() => {\r\n async function getUsers() {\r\n const users = await getWhoisWhoUsersFull(globalState.accessToken).then(res => {\r\n if (res.ok)\r\n return res.json();\r\n })\r\n\r\n setUsers(users);\r\n }\r\n getUsers();\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n if (gridInstance)\r\n gridInstance.refresh();\r\n }, [i18n.language]);\r\n\r\n const { t } = useTranslation();\r\n\r\n useEffect(() => {\r\n if (refWhoisWho) {\r\n refWhoisWho.refresh();\r\n }\r\n }, [i18n.language]);\r\n\r\n const nameTemplate = (args) => {\r\n return (\r\n
    \r\n \r\n \"\"\r\n \r\n \r\n
    \r\n );\r\n }\r\n\r\n const phoneTemplate = (args) => {\r\n return (\r\n
    \r\n {args && args.telefone && args.telefone.length > 0 &&\r\n args.telefone.map(currentPhone => (\r\n {currentPhone}\r\n ))\r\n }\r\n
    \r\n )\r\n }\r\n\r\n const superiorTemplate = (args) => {\r\n return (\r\n
    \r\n \r\n {args && args.superiorDireto && \"\"}\r\n {args && args.superiorDireto && }\r\n \r\n
    \r\n );\r\n }\r\n\r\n return (\r\n <>\r\n
    \r\n setRefWhoisWho(grid)}\r\n >\r\n \r\n nameTemplate(args)} headerText={t('WhoisWho:column_name')} width='140' />\r\n superiorTemplate(args)} headerText={t('WhoisWho:column_superior')} width='140' />\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}","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { GlobalStateContext } from \"../general/GlobalState\";\r\nimport { WhoIsWhoContent } from './WhoIsWhoContent';\r\nimport { Container, Row } from \"reactstrap\";\r\nimport '../whoiswho/whoiswho.css'\r\nimport { Buttons } from \"../utilities/Buttons\";\r\n\r\nexport const WhoIsWhoItem = (props) => {\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [gridInstance, setGridInstance] = React.useState(null);\r\n\r\n const { t } = useTranslation();\r\n\r\n const exportExcelWhoisWho = () => {\r\n if (gridInstance) {\r\n let lang = i18n.language;\r\n let gridInstanceExport = gridInstance;\r\n gridInstanceExport.dataSource.map(function (x) {\r\n x.dataRecebimento = new Date(x.dataRecebimento).toLocaleDateString(lang);\r\n if (x.deadLine) x.deadLine = new Date(x.deadLine).toLocaleDateString(lang);\r\n return x;\r\n });\r\n gridInstanceExport.excelExport();\r\n }\r\n }\r\n\r\n const exportPdfWhoisWho = () => {\r\n if (gridInstance) {\r\n let lang = i18n.language;\r\n gridInstance.pdfExport();\r\n }\r\n }\r\n\r\n const _controls = {\r\n export: () => exportExcelWhoisWho(),\r\n exportPdf: () => exportPdfWhoisWho(),\r\n };\r\n\r\n return (\r\n
    \r\n {globalState.accessToken === null ? :\r\n <>\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    {t('WhoisWho:title')}

    \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}","import React, { useContext, createContext, useState } from 'react';\r\n\r\nconst MessageHouseContext = createContext({});\r\n\r\nconst MessageHouseProvider = ({ children }) => {\r\n const [modalData, setModalData] = useState();\r\n const [openEditModal, setOpenEditModal] = useState(false);\r\n const [messageHouseItems, setMessageHouseItems] = useState([]);\r\n const [areasDICI, setAreasDICI] = useState([]);\r\n const [tempGuid, setTempGuid] = useState(\"\");\r\n\r\n const openEdit = (args) => {\r\n setOpenEditModal(true);\r\n\r\n if (args) {\r\n setModalData(args);\r\n } else {\r\n setModalData(null);\r\n }\r\n }\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nconst useMessageHouse = () => {\r\n const context = useContext(MessageHouseContext);\r\n\r\n if (!context) {\r\n throw new Error('useContract must be within an MessageHouseProvider');\r\n }\r\n\r\n return context;\r\n};\r\n\r\nexport { useMessageHouse, MessageHouseProvider };","import { requestAPI } from '../components/utilities/Utils';\r\n\r\nexport async function getMessagesItems(token) {\r\n return requestAPI(\"_api/MessagesHouse/GetMessagesItems\", \"GET\", \"\", null, token, false);\r\n}\r\n\r\nexport async function getMessageAttachment(token, idOrGuid) {\r\n return requestAPI(\"_api/MessagesHouse/DownloadAttachment\", \"GET\", `?IdOrGuidMessage=${idOrGuid}`, null, token, false);\r\n}\r\n\r\nexport async function addItem(token, body) {\r\n return requestAPI(\"_api/MessagesHouse/AddMessage\", \"POST\", \"\", body, token, false);\r\n}\r\n\r\nexport async function updateItem(token, body) {\r\n return requestAPI(\"_api/MessagesHouse/UpdateMessage\", \"POST\", \"\", body, token, false);\r\n}\r\n\r\nexport async function deleteMessage(token, id) {\r\n return requestAPI(\"_api/MessagesHouse/DisableMessage\", \"POST\", `?messageId=${id}`, null, token, false);\r\n}","import React, { useState, useContext, useEffect, useCallback } from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { GlobalStateContext } from \"../general/GlobalState\";\r\nimport { DialogComponent } from \"@syncfusion/ej2-react-popups\";\r\nimport { UploaderComponent, TextBoxComponent } from '@syncfusion/ej2-react-inputs';\r\nimport { useMessageHouse } from \"./context/MessageHouseContext\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport { DropDownListComponent } from \"@syncfusion/ej2-react-dropdowns\";\r\nimport { addItem, updateItem, getMessageAttachment } from '../../services/MessagesHouseSVC';\r\nimport { useModal } from \"../../hooks/Modal\";\r\nimport { uuidv4 } from \"../utilities/Utils\";\r\n\r\n\r\nconst MessageHouseModal = () => {\r\n\r\n const target = document.getElementById(\"uploadAttachment\");\r\n\r\n const [globalState] = useContext(GlobalStateContext);\r\n const [uploadChunkSize, setUploadChunkSize] = React.useState(1000000);\r\n const [uploadedFile, setUploadedFile] = useState(null);\r\n const [updateUpload, setUpdateUpload] = useState(false);\r\n const [blockIdList, setBlockIdList] = useState([]);\r\n\r\n const { setOpenEditModal, openEditModal, modalData, setModalData, areasDICI, setMessageHouseItems, messageHouseItems, tempGuid, setTempGuid } = useMessageHouse();\r\n\r\n const { buildDialogMessage } = useModal();\r\n\r\n const { t } = useTranslation();\r\n\r\n const onSubmitClick = (data) => {\r\n setOpenEditModal(false);\r\n\r\n console.log(data);\r\n if (modalData) {\r\n updateMessageHouseItem(data);\r\n } else {\r\n addMessageHouseItem(data);\r\n }\r\n }\r\n\r\n\r\n const addMessageHouseItem = async data => {\r\n const item = {\r\n ...data,\r\n ativo: true,\r\n nomeArquivo: uploadedFile && uploadedFile.name\r\n }\r\n\r\n const newItem = await addItem(globalState.accessToken, JSON.stringify(item)).then(async res => {\r\n if (res.ok) {\r\n return res.json();\r\n } else {\r\n buildDialogMessage({\r\n error: res.ok,\r\n })\r\n }\r\n });\r\n\r\n setMessageHouseItems(state => [...state, newItem]);\r\n };\r\n\r\n const updateMessageHouseItem = async data => {\r\n const item = {\r\n ...data,\r\n id: modalData.id,\r\n ativo: true,\r\n nomeArquivo: uploadedFile && uploadedFile.name\r\n }\r\n\r\n const newItem = await updateItem(globalState.accessToken, JSON.stringify(item)).then(async res => {\r\n if (res.ok) {\r\n return res.json();\r\n } else {\r\n buildDialogMessage({\r\n error: res.ok,\r\n })\r\n }\r\n });\r\n\r\n if (newItem && newItem.id) {\r\n const oldMessagesHouseItems = [...messageHouseItems];\r\n const index = oldMessagesHouseItems.findIndex(messageItem => messageItem.id ===modalData.id);\r\n\r\n oldMessagesHouseItems[index] = newItem;\r\n\r\n setMessageHouseItems(oldMessagesHouseItems);\r\n }\r\n };\r\n\r\n let dropAreaRef;\r\n let uploadObj;\r\n let isInteraction;\r\n\r\n const chunkComplete = (args) => {\r\n const validExtensions = [\"jpg\", \"png\", \"jpeg\", \"docx\", \"doc\", \"ppt\", \"pdf\"];\r\n setValue(\"attachment\", true)\r\n setUploadedFile(args.file.rawFile)\r\n setUpdateUpload(true);\r\n }\r\n\r\n const uploadImage = () => {\r\n document.getElementsByClassName(\"e-file-select-wrap\")[0].querySelector(\"button\").click();\r\n return false;\r\n }\r\n\r\n const chunkUploaded = (e) => {\r\n //let responseBlockId = JSON.parse(e.event.currentTarget.response);\r\n setBlockIdList(blockIdList => [...blockIdList, e.event.currentTarget.response]);\r\n }\r\n\r\n const onResuming = (args) => {\r\n if (args.event !== null && !navigator.onLine) {\r\n isInteraction = true;\r\n } else {\r\n isInteraction = false;\r\n }\r\n }\r\n\r\n const whenFileSelected = (e) => {\r\n let chunkSize = e.fileInfo.size / 10;\r\n //uploadObj.asyncSettings.chunkSize = chunkSize;//parseInt(e.itemData.value, 10);\r\n setUploadChunkSize(uploadChunkSize => uploadChunkSize = chunkSize);\r\n }\r\n\r\n const onBeforeFailure = (args) => {\r\n //let proxy = this;\r\n args.cancel = isInteraction;\r\n // interval to check network availability on every 500 milliseconds\r\n let clearTimeInterval = setInterval(() => {\r\n if (navigator.onLine && uploadObj && uploadObj.filesData[0] && uploadObj.filesData[0].statusCode ===4) {\r\n uploadObj.resume(uploadObj.filesData);\r\n clearSetInterval();\r\n } else {\r\n if (!isInteraction && uploadObj && uploadObj.filesData[0] && uploadObj.filesData[0].statusCode ===3) {\r\n uploadObj.pause(uploadObj.filesData);\r\n }\r\n }\r\n }, 500);\r\n // clear Interval after when network is available.\r\n const clearSetInterval = () => {\r\n clearInterval(clearTimeInterval);\r\n }\r\n }\r\n\r\n const fileUploading = (e) => {\r\n const validExtensions = [\"jpg\", \"png\", \"jpeg\", \"docx\", \"doc\", \"ppt\", \"pdf\"];\r\n if (uploadObj && validExtensions.find(file => file ===e.fileData.type)) {\r\n e.currentRequest.setRequestHeader(\"Authorization\", \"Bearer \" + globalState.accessToken);\r\n if (blockIdList.length > 0) e.currentRequest.setRequestHeader(\"blockIdList\", blockIdList.join(','));\r\n setError(\"attachment\", \"\");\r\n } else {\r\n setError(\"attachment\", \"extension\");\r\n if (uploadObj) {\r\n uploadObj.clearAll();\r\n }\r\n }\r\n }\r\n\r\n const onPausing = (args) => {\r\n if (args.event !== null && !navigator.onLine) {\r\n isInteraction = true;\r\n } else {\r\n isInteraction = false;\r\n }\r\n }\r\n\r\n const onRemoveFile = (args) => {\r\n if (false) {\r\n args.postRawFile = false;\r\n args.currentRequest.setRequestHeader(\"Authorization\", \"Bearer \" + globalState.accessToken);\r\n }\r\n }\r\n\r\n const asyncSettings = {\r\n saveUrl: `${process.env.REACT_APP_API_URL}/_api/MessagesHouse/UploadAttachmentChunks?IdOrGuidMessage=${tempGuid ? tempGuid : modalData && modalData.id}`,\r\n removeUrl: `${process.env.REACT_APP_API_URL}/_api/MessagesHouse/RemoveAttachment?IdOrGuidMessage=${tempGuid ? tempGuid : modalData && modalData.id}`,\r\n chunkSize: uploadChunkSize\r\n };\r\n\r\n const autoUpload = true;\r\n\r\n const { register, handleSubmit, setValue, errors, setError, reset } = useForm({\r\n mode: 'onSubmit',\r\n reValidateMode: 'onChange',\r\n defaultValues: {\r\n titulo: modalData && modalData.titulo,\r\n descricao: modalData && modalData.descricao,\r\n areaDICI: modalData && modalData.areaDICI,\r\n attachment: \"\"\r\n },\r\n resolver: undefined,\r\n context: undefined,\r\n criteriaMode: \"firstError\",\r\n shouldFocusError: true,\r\n shouldUnregister: true,\r\n });\r\n\r\n let modalButtons = [\r\n {\r\n type: \"submit\",\r\n buttonModel: {\r\n isPrimary: true,\r\n content: i18n.language ===\"pt\" ? \"Salvar\" : \"Save\",\r\n cssClass: \"bannerSave\"\r\n },\r\n click: () => {\r\n handleSubmit(onSubmitClick)();\r\n }\r\n }\r\n ]\r\n\r\n const downloadAttachment = (fileName, idOrGuid) => {\r\n console.log(fileName, idOrGuid);\r\n getMessageAttachment(globalState.accessToken, idOrGuid)\r\n .then((response) => response.blob())\r\n .then((blob) => {\r\n const url = window.URL.createObjectURL(new Blob([blob]));\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.setAttribute('download', fileName);\r\n document.body.appendChild(link);\r\n link.click();\r\n link.parentNode.removeChild(link);\r\n });\r\n };\r\n\r\n const removeAttachment = () => {\r\n setValue(\"attachment\", null);\r\n const newModalData = { ...modalData };\r\n newModalData.nomeArquivo = \"\";\r\n setModalData(newModalData);\r\n };\r\n\r\n const getError = (error) => {\r\n switch (error.type) {\r\n case \"required\": {\r\n return (\r\n
    {t(\"Validation:required\")}
    \r\n )\r\n }\r\n case \"extension\": {\r\n return (\r\n
    {t(\"Validation:extensionNotAllowed\")}
    \r\n )\r\n }\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (!modalData) {\r\n setTempGuid(uuidv4());\r\n } else if (modalData && modalData.nomeArquivo) {\r\n setValue(\"attachment\", \"hasAttachment\");\r\n }\r\n }, [modalData]);\r\n\r\n useEffect(() => {\r\n register(\"areaDICI\", {\r\n required: true\r\n })\r\n }, [register]);\r\n\r\n return (\r\n setOpenEditModal(false)}\r\n locale={i18n.language}\r\n >\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n {errors && errors.titulo && getError(errors.titulo)}\r\n\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n\r\n {errors && errors.descricao && getError(errors.descricao)}\r\n
    \r\n
    \r\n\r\n \r\n\r\n
    \r\n \r\n
    \r\n setValue(\"areaDICI\", args.itemData)}\r\n />\r\n {errors && errors.areaDICI && getError(errors.areaDICI)}\r\n
    \r\n
    \r\n
    \r\n \r\n
    dropAreaRef = dropAreaEle} className=\"upload\" id=\"uploadAttachment\">\r\n
    \r\n

    {i18n.language ===\"pt\" ? \"Arraste o arquivo aqui ou faça o\" : \"Drag the file here or\"} uploadImage()}> {i18n.language ===\"pt\" ? \"carregamento\" : \"upload\"}

    \r\n
    \r\n
    \r\n
    \r\n\r\n {modalData && modalData.nomeArquivo && !updateUpload &&\r\n
    \r\n
      \r\n
    • \r\n downloadAttachment(modalData.nomeArquivo, modalData.id)}>\r\n {modalData.nomeArquivo}\r\n \r\n removeAttachment()} />\r\n
    • \r\n
    \r\n
    \r\n }\r\n\r\n
    \r\n\r\n uploadObj = upload}\r\n />\r\n\r\n {errors && errors.attachment && getError(errors.attachment)}\r\n\r\n
    \r\n
    \r\n \r\n \r\n )\r\n}\r\n\r\nexport default MessageHouseModal;","import React, { useContext, useEffect } from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { GlobalStateContext } from \"../general/GlobalState\";\r\nimport { MessageHouseContent } from './MessageHouseContent';\r\nimport { Container, Row } from \"reactstrap\";\r\nimport { Buttons } from \"../utilities/Buttons\";\r\nimport '../whoiswho/whoiswho.css'\r\nimport { useMessageHouse } from \"./context/MessageHouseContext\";\r\n\r\nlet userPermission;\r\n\r\nexport const MessageHouseItem = () => {\r\n\r\n const [globalState] = useContext(GlobalStateContext);\r\n\r\n const { t } = useTranslation();\r\n\r\n const { openEdit } = useMessageHouse();\r\n\r\n useEffect(() => {\r\n let globalPermissions = globalState.permissions;\r\n userPermission = globalPermissions.filter((i) => i.idAreaAcesso === 57).map((i) => (i.permission));\r\n console.log(userPermission);\r\n }, [globalState]);\r\n\r\n const _controls = {\r\n permit: userPermission ? userPermission : null,\r\n export: \"\",\r\n import: \"\",\r\n new: () => openEdit(),\r\n back: \"\",\r\n };\r\n\r\n console.log(_controls);\r\n\r\n return (\r\n
    \r\n {globalState.accessToken === null ? :\r\n <>\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    {t('MessageHouse:title')}

    \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}","import * as React from \"react\";\r\nimport { Redirect, useHistory } from \"react-router-dom\";\r\nimport { Container, Row } from \"reactstrap\";\r\nimport { GlobalStateContext } from '../general/GlobalState'\r\nimport { useTranslation } from 'react-i18next';\r\nimport { GridComponent, ColumnsDirective, ColumnDirective, ExcelExport, Edit, Toolbar, Filter, Inject, Sort, ContextMenu, Page, Resize, ColumnChooser } from \"@syncfusion/ej2-react-grids\";\r\nimport { TextBoxComponent } from '@syncfusion/ej2-react-inputs';\r\nimport { ButtonComponent } from '@syncfusion/ej2-react-buttons';\r\nimport { DateRangePickerComponent } from \"@syncfusion/ej2-react-calendars\";\r\nimport { DropDownListComponent, AutoCompleteComponent } from '@syncfusion/ej2-react-dropdowns';\r\nimport i18n from \"i18next\";\r\nimport { requestAPI } from '../utilities/Utils';\r\nimport { getPressItems } from \"../../services/PressSVC\";\r\nimport { getAllBusinessAreas, getCountries, getRegional } from \"../../services/SystemSVC\";\r\nimport { users } from \"../../services/UsersSVC\";\r\nimport { Buttons } from \"../utilities/Buttons\";\r\n\r\nimport {\r\n createSpinner,\r\n showSpinner,\r\n setSpinner,\r\n hideSpinner\r\n} from '@syncfusion/ej2-react-popups';\r\n\r\nimport './Historico.css';\r\n\r\nlet userPermission;\r\n\r\nexport const Historico = () => {\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [isVisible, setIsVisible] = React.useState(true);\r\n const [filteredHistoryItems, setFilteredHistoryItems] = React.useState({\r\n conteudo: \"\",\r\n dataInicio: \"\",\r\n dataFim: \"\",\r\n areaNegocio: \"\",\r\n regional: \"\",\r\n autor: \"\",\r\n pais: \"\",\r\n itemData: {\r\n press: '',\r\n tipo: ''\r\n }\r\n });\r\n const [historyItems, setHistoryItems] = React.useState({});\r\n const [allHistory, setAllHistory] = React.useState(null);\r\n const [dataValue, setDataValue] = React.useState(null);\r\n const [pressValue, setPressValue] = React.useState(null);\r\n const [businessAreaValue, setBusinessAreaValue] = React.useState(null);\r\n const [countryValue, setCountryValue] = React.useState(null);\r\n const [regionalValue, setRegionalValue] = React.useState(null);\r\n const [autorValue, setAutorValue] = React.useState(null);\r\n const [fillBusinessAreaValue, setFillBusinessAreaValue] = React.useState([]);\r\n const [fillCountryValue, setFillCountryValue] = React.useState([]);\r\n const [fillRegionalValue, setFillRegionalValue] = React.useState([]);\r\n const [fillAutorValue, setFillAutorValue] = React.useState([]);\r\n const [gridInstance, setGridInstance] = React.useState(null);\r\n\r\n let history = useHistory();\r\n\r\n const { t } = useTranslation();\r\n\r\n React.useEffect(() => {\r\n let globalPermissions = globalState.permissions;\r\n userPermission = globalPermissions.filter((i) => i.accessArea === \"Releases\").map((i) => (i.permission));\r\n }, [globalState]);\r\n\r\n const _controls = {\r\n permit: userPermission ? userPermission : null,\r\n export: () => exportRelease(),\r\n import: \"\",\r\n new: \"\",\r\n back: \"\",\r\n };\r\n\r\n const exportRelease = () => {\r\n if (gridInstance) {\r\n let lang = i18n.language;\r\n let gridInstanceExport = gridInstance;\r\n gridInstanceExport.dataSource.map(x => {\r\n x.data = new Date(x.data).toLocaleDateString(lang);\r\n return x;\r\n });\r\n gridInstanceExport.excelExport();\r\n }\r\n }\r\n\r\n const contextMenuItems = ['SortAscending', 'SortDescending', 'FirstPage', 'PrevPage', 'LastPage', 'NextPage'];\r\n const editOptions = { allowEditing: false };\r\n const toolbarOptions = ['ColumnChooser'];\r\n const hostURL = process.env.REACT_APP_API_URL + '/';\r\n\r\n const changePosition = (arr, from, to) => {\r\n arr.splice(to, 0, arr.splice(from, 1)[0]);\r\n return arr;\r\n }\r\n\r\n let dateFormat = (args) => {\r\n return {new Date(args.data).toLocaleDateString(i18n.language)};\r\n };\r\n\r\n const showLoading = (id) => {\r\n createSpinner({ target: document.getElementById(`loading-*${id}*`) });\r\n showSpinner(document.getElementById(`loading-*${id}*`));\r\n setSpinner({ type: 'Bootstrap' });\r\n }\r\n\r\n const hideLoading = (id) => {\r\n hideSpinner(document.getElementById(`loading-*${id}*`));\r\n }\r\n\r\n const downloadPDF = (id, cod) => {\r\n showLoading(id);\r\n requestAPI(\"_api/PressLegacy/DownloadPressLegacyPDF\"\r\n , \"GET\"\r\n , `?itemId=${id}`\r\n , null\r\n , globalState.accessToken).then(async (res) => {\r\n const blob = await res.blob();\r\n const newBlob = new Blob([blob], { type: 'application/pdf' });\r\n const blobUrl = window.URL.createObjectURL(newBlob);\r\n\r\n const link = document.createElement('a');\r\n link.href = blobUrl;\r\n window.open(blobUrl, '_blank')\r\n\r\n hideLoading(id);\r\n });\r\n }\r\n\r\n const formatType = (args) => {\r\n let text = \"\";\r\n switch (args.tipo || args.idTipo) {\r\n case 1:\r\n text = t('Historico:release');\r\n break;\r\n case 2:\r\n text = t('Historico:notas');\r\n break;\r\n case 3:\r\n text = t('Historico:posicionamento');\r\n break;\r\n case 4:\r\n text = t('Historico:qa');\r\n break;\r\n case 6:\r\n text = t('Historico:avisoWebcast');\r\n break;\r\n case 7:\r\n text = t('Historico:avisoPautas');\r\n break;\r\n }\r\n return (\r\n <>\r\n {`${text}`}\r\n \r\n );\r\n }\r\n\r\n const pressItem = (args) => {\r\n switch (args) {\r\n case 1:\r\n return 'releasesItem';\r\n case 2:\r\n return 'statementsItem';\r\n case 3:\r\n return 'positionpaperItem';\r\n case 4:\r\n return 'qaItem';\r\n case 6:\r\n return 'webcastnoticesItem';\r\n case 7:\r\n return 'assignmentNoticesItem';\r\n default:\r\n return '';\r\n }\r\n }\r\n\r\n let archivePDF = (args) => {\r\n var id = args.id;\r\n return (\r\n
    \r\n {!args.idTipo &&\r\n <>\r\n downloadPDF(id, args.cod)}\r\n >\r\n
    \r\n \r\n
    \r\n \r\n }\r\n {args.idTipo &&\r\n <>\r\n history.replace(`/press/${pressItem(args.idTipo)}/${args.id}`)}\r\n onClick={() => window.open(`/press/${pressItem(args.idTipo)}/${args.id}`,\"_blank\")}\r\n >\r\n
    \r\n \r\n
    \r\n \r\n }\r\n
    \r\n );\r\n }\r\n\r\n const gridActionBegin = args => {\r\n if (\r\n args.requestType === \"filterchoicerequest\" ||\r\n args.requestType === \"filtersearchbegin\"\r\n ) {\r\n args.filterChoiceCount = 14000;\r\n }\r\n }\r\n\r\n const resultValidationTitle = (_filteredHistory) => {\r\n if (filteredHistoryItems.conteudo) {\r\n return _filteredHistory.filter(item => {\r\n if (item?.titulo) {\r\n if (item?.titulo?.toLowerCase().includes(filteredHistoryItems?.conteudo?.toLowerCase())) {\r\n return item;\r\n }\r\n } else {\r\n return item;\r\n }\r\n });\r\n }\r\n return _filteredHistory;\r\n }\r\n\r\n const resultValidationPress = (_filteredHistory) => {\r\n if (filteredHistoryItems.itemData?.tipo) {\r\n return _filteredHistory.filter(item => {\r\n if (item?.tipo || item?.idTipo) {\r\n if (item?.tipo === filteredHistoryItems?.itemData?.tipo || item?.idTipo === filteredHistoryItems?.itemData?.tipo) {\r\n return item;\r\n }\r\n } else {\r\n return item;\r\n }\r\n });\r\n }\r\n return _filteredHistory;\r\n }\r\n\r\n const resultValidationBusinessArea = (_filteredHistory) => {\r\n if (filteredHistoryItems?.areaNegocio) {\r\n return _filteredHistory.filter(item => {\r\n if (item?.areaNegocio) {\r\n if (item?.areaNegocio === filteredHistoryItems?.areaNegocio) {\r\n return item;\r\n }\r\n } else {\r\n return item;\r\n }\r\n });\r\n }\r\n return _filteredHistory;\r\n }\r\n\r\n const resultValidationCountry = (_filteredHistory) => {\r\n if (filteredHistoryItems?.pais) {\r\n return _filteredHistory.filter(item => {\r\n if (item?.pais) {\r\n if (item?.pais === filteredHistoryItems?.pais) {\r\n return item;\r\n }\r\n } else {\r\n return item;\r\n }\r\n });\r\n }\r\n return _filteredHistory;\r\n }\r\n\r\n const resultValidationRegional = (_filteredHistory) => {\r\n if (filteredHistoryItems?.regional) {\r\n return _filteredHistory.filter(item => {\r\n if (item?.regional && item?.regional !== \"\") {\r\n if (item?.regional === filteredHistoryItems?.regional) {\r\n return item;\r\n }\r\n } else {\r\n return item;\r\n }\r\n });\r\n }\r\n return _filteredHistory;\r\n }\r\n\r\n const resultValidationAutor = (_filteredHistory) => {\r\n if (filteredHistoryItems?.autor) {\r\n return _filteredHistory.filter(item => {\r\n if (item?.autor && item?.autor !== \"\") {\r\n if (item?.autor === filteredHistoryItems?.autor) {\r\n return item;\r\n }\r\n } else {\r\n return item;\r\n }\r\n });\r\n }\r\n return _filteredHistory;\r\n }\r\n\r\n const resultValidationDataInicio = (_filteredHistory) => {\r\n if (filteredHistoryItems.dataInicio) {\r\n let dataInicio = new Date(filteredHistoryItems?.dataInicio.trim());\r\n return _filteredHistory.filter(x => {\r\n return dataInicio.getTime() <= new Date(x.data).getTime();\r\n });\r\n }\r\n return _filteredHistory;\r\n }\r\n\r\n const resultValidationDataFim = (_filteredHistory) => {\r\n if (filteredHistoryItems.dataFim) {\r\n let dataFim = new Date(filteredHistoryItems?.dataFim.trim());\r\n return _filteredHistory.filter(x => {\r\n return dataFim.getTime() >= new Date(x.data).getTime();\r\n });\r\n }\r\n return _filteredHistory;\r\n }\r\n\r\n const filteredHistory = () => {\r\n if (\r\n filteredHistoryItems?.conteudo\r\n || filteredHistoryItems?.itemData?.tipo\r\n || filteredHistoryItems?.dataInicio\r\n || filteredHistoryItems?.dataFim\r\n || filteredHistoryItems?.areaNegocio\r\n || filteredHistoryItems?.pais\r\n || filteredHistoryItems?.regional\r\n || filteredHistoryItems?.autor\r\n ) {\r\n let _filteredHistory = historyItems;\r\n _filteredHistory = resultValidationTitle(_filteredHistory);\r\n _filteredHistory = resultValidationPress(_filteredHistory);\r\n _filteredHistory = resultValidationBusinessArea(_filteredHistory);\r\n _filteredHistory = resultValidationCountry(_filteredHistory);\r\n _filteredHistory = resultValidationRegional(_filteredHistory);\r\n _filteredHistory = resultValidationAutor(_filteredHistory);\r\n _filteredHistory = resultValidationDataInicio(_filteredHistory);\r\n _filteredHistory = resultValidationDataFim(_filteredHistory);\r\n setAllHistory(_filteredHistory);\r\n setIsVisible(false);\r\n } else {\r\n setAllHistory(historyItems);\r\n setIsVisible(false);\r\n }\r\n }\r\n\r\n const handleChangeDate = (ev) => {\r\n setDataValue(ev.value)\r\n\r\n let sDate = ev.startDate ? `${ev.startDate.toISOString().split('T')[0]}T00:00:00` : null;\r\n let eDate = ev.endDate ? `${ev.endDate.toISOString().split('T')[0]}T23:59:59` : null;\r\n\r\n setFilteredHistoryItems(\r\n filteredHistoryItems => ({\r\n ...filteredHistoryItems,\r\n dataInicio: sDate,\r\n dataFim: eDate\r\n })\r\n )\r\n }\r\n\r\n const handleChangePress = (ev) => {\r\n const { itemData, value } = ev;\r\n setPressValue(value);\r\n\r\n setFilteredHistoryItems(\r\n filteredHistoryItems => ({\r\n ...filteredHistoryItems,\r\n itemData: {\r\n press: itemData?.press || \"\",\r\n tipo: itemData?.tipo || \"\",\r\n }\r\n })\r\n )\r\n }\r\n\r\n const handleChangeBusinessArea = (ev) => {\r\n const { value, itemData } = ev;\r\n setBusinessAreaValue(value);\r\n\r\n setFilteredHistoryItems(\r\n filteredHistoryItems => ({\r\n ...filteredHistoryItems,\r\n areaNegocio: itemData?.nomePt\r\n })\r\n )\r\n }\r\n\r\n const handleChangeCountry = (ev) => {\r\n const { value, itemData } = ev;\r\n setCountryValue(value);\r\n\r\n setFilteredHistoryItems(\r\n filteredHistoryItems => ({\r\n ...filteredHistoryItems,\r\n pais: itemData?.nomePt\r\n })\r\n )\r\n }\r\n\r\n const handleChangeRegional = (ev) => {\r\n const { value, itemData } = ev;\r\n setRegionalValue(value);\r\n\r\n setFilteredHistoryItems(\r\n filteredHistoryItems => ({\r\n ...filteredHistoryItems,\r\n regional: itemData?.nomePt\r\n })\r\n )\r\n }\r\n\r\n const handleChangeAutor = (ev) => {\r\n const { value } = ev;\r\n setAutorValue(value);\r\n\r\n setFilteredHistoryItems(\r\n filteredHistoryItems => ({\r\n ...filteredHistoryItems,\r\n autor: value\r\n })\r\n )\r\n }\r\n\r\n React.useEffect(() => {\r\n async function load() {\r\n let [\r\n resultRequest,\r\n _businessAreas,\r\n _countries,\r\n _regional,\r\n _users\r\n ] = await Promise.all([\r\n requestAPI(\r\n \"_api/PressLegacy/GetPressLegacyItems\",\r\n \"GET\",\r\n \"\",\r\n null,\r\n globalState.accessToken\r\n ),\r\n getAllBusinessAreas(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n }),\r\n getCountries(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n }),\r\n getRegional(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n }),\r\n users(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n })\r\n ]);\r\n\r\n let [\r\n getReleaseItems,\r\n getStatementsItems,\r\n getPositionPaperItems,\r\n getQAItems,\r\n getWebcastNoticeItems,\r\n getAssignmentNoticeItems\r\n ] = await Promise.all([\r\n getPressItems(globalState.accessToken, 1, \"\"),\r\n getPressItems(globalState.accessToken, 2, \"\"),\r\n getPressItems(globalState.accessToken, 3, \"\"),\r\n getPressItems(globalState.accessToken, 4, \"\"),\r\n getPressItems(globalState.accessToken, 6, \"\"),\r\n getPressItems(globalState.accessToken, 7, \"\"),\r\n ]);\r\n\r\n let oldHistoryItems = ([\r\n ...await resultRequest.json(),\r\n ...await getReleaseItems.json(),\r\n ...await getStatementsItems.json(),\r\n ...await getPositionPaperItems.json(),\r\n ...await getQAItems.json(),\r\n ...await getWebcastNoticeItems.json(),\r\n ...await getAssignmentNoticeItems.json(),\r\n ])\r\n\r\n oldHistoryItems.map(i => {\r\n if (i.autores) {\r\n i['autor'] = i['autores'];\r\n delete i['autores'];\r\n return i;\r\n }\r\n });\r\n\r\n oldHistoryItems.map(i => {\r\n switch (i.regional) {\r\n case 'ES':\r\n return i.regional = 'Espírito Santo';\r\n case 'MG':\r\n return i.regional = 'Minas Gerais';\r\n case 'MA':\r\n return i.regional = 'Maranhão';\r\n case 'PA':\r\n return i.regional = 'Pará';\r\n default:\r\n return;\r\n }\r\n })\r\n\r\n let newCountries = _countries;\r\n newCountries = changePosition(_countries, 5, 0)\r\n\r\n setFillBusinessAreaValue(_businessAreas);\r\n setFillCountryValue(newCountries);\r\n setFillRegionalValue(_regional);\r\n setFillAutorValue(_users);\r\n setHistoryItems(oldHistoryItems);\r\n setAllHistory(oldHistoryItems);\r\n }\r\n load();\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n if (gridInstance)\r\n gridInstance.refresh();\r\n }, [i18n.language]);\r\n\r\n const pressData = [\r\n { press: i18n.language === \"pt\" ? 'Release' : 'Releases', tipo: 1 },\r\n { press: i18n.language === \"pt\" ? 'Notas' : 'Statements', tipo: 2 },\r\n { press: i18n.language === \"pt\" ? 'Posicionamento' : 'Position Paper', tipo: 3 },\r\n { press: i18n.language === \"pt\" ? 'Q & A' : 'Q & A', tipo: 4 },\r\n { press: i18n.language === \"pt\" ? 'Aviso de Webcast' : 'Webcast Notices', tipo: 6 },\r\n { press: i18n.language === \"pt\" ? 'Aviso de Pautas' : 'Assignment Notices', tipo: 7 },\r\n ]\r\n\r\n return (\r\n <>\r\n {globalState.accessToken === null ? :\r\n <>\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    {t('Historico:title')}

    \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

    {t('Releases:search_text')}

    \r\n
    \r\n
    \r\n
    \r\n setFilteredHistoryItems(\r\n filteredHistoryItems => ({\r\n ...filteredHistoryItems,\r\n conteudo: e.value\r\n })\r\n )}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n setIsVisible(!isVisible)}>\r\n \r\n {t('Releases:filters')}\r\n \r\n
    \r\n
    \r\n \r\n {t('Releases:search')}\r\n \r\n
    \r\n
    \r\n
    \r\n {isVisible &&\r\n
    \r\n handleChangeDate(ev)}\r\n />\r\n \r\n \r\n \r\n \r\n {/* */}\r\n
    \r\n }\r\n
    \r\n setGridInstance(e)}\r\n dataSource={allHistory}\r\n editSettings={editOptions}\r\n contextMenuItems={contextMenuItems}\r\n toolbar={toolbarOptions}\r\n filterSettings={{ type: 'CheckBox' }}\r\n pageSettings={{ pageSize: 8 }}\r\n allowPaging={true}\r\n allowSorting={true}\r\n allowFiltering={false}\r\n allowExcelExport={true}\r\n locale={i18n.language}\r\n allowTextWrap={true}\r\n allowResizing={true}\r\n showColumnChooser={true}\r\n actionBegin={gridActionBegin}\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\r\n \r\n );\r\n}\r\n","import React, { useState, useEffect } from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { GlobalStateContext } from \"../general/GlobalState\";\r\nimport { ComboBoxComponent, AutoCompleteComponent, MultiSelectComponent, CheckBoxSelection, DropDownTreeComponent } from '@syncfusion/ej2-react-dropdowns';\r\nimport { GridComponent, ColumnsDirective, ColumnDirective, ForeignKey, Filter, Group, Inject, Sort, ContextMenu, Page, Resize, Edit } from '@syncfusion/ej2-react-grids';\r\nimport { ButtonComponent } from \"@syncfusion/ej2-react-buttons\";\r\nimport { DialogComponent } from \"@syncfusion/ej2-react-popups\";\r\nimport { DatePickerComponent } from \"@syncfusion/ej2-react-calendars\";\r\nimport { UploaderComponent, TextBoxComponent } from '@syncfusion/ej2-react-inputs';\r\nimport './messageHouse.css';\r\nimport { useMessageHouse } from \"./context/MessageHouseContext\";\r\nimport MessageHouseModal from \"./MessageHouseModal\";\r\nimport { getMessagesItems, getMessageAttachment, deleteMessage } from '../../services/MessagesHouseSVC';\r\nimport { useModal } from \"../../hooks/Modal\";\r\nimport { getDICIAreas } from \"../../services/SystemSVC\";\r\nimport { hasPermissions } from '../utilities/Utils';\r\n\r\nconst uploadIcon = '';\r\n\r\nexport const MessageHouseContent = (props) => {\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n\r\n const { t } = useTranslation();\r\n\r\n const { openEdit, modalData, openEditModal, setMessageHouseItems, messageHouseItems, setAreasDICI, tempGuid } = useMessageHouse();\r\n\r\n const { buildDialogMessage } = useModal();\r\n\r\n const [openModalDelete, setOpenModalDelete] = useState(false);\r\n const [openModalConfirm, setOpenModalConfirm] = useState(false);\r\n const [currentEditingId, setCurrentEditingId] = useState(-1);\r\n\r\n useEffect(() => {\r\n async function getItems() {\r\n const messagesItems = await getMessagesItems(globalState.accessToken).then(res => {\r\n if (res.ok) {\r\n return res.json();\r\n } else {\r\n buildDialogMessage({\r\n error: res.status\r\n })\r\n }\r\n });\r\n\r\n const areasDICI = await getDICIAreas(globalState.accessToken).then(res => {\r\n if (res.ok) {\r\n return res.json();\r\n } else {\r\n buildDialogMessage({\r\n error: res.status\r\n })\r\n }\r\n });\r\n\r\n setAreasDICI(areasDICI);\r\n setMessageHouseItems(messagesItems);\r\n }\r\n getItems();\r\n\r\n }, [])\r\n\r\n const openDeleteModal = (id) => {\r\n setCurrentEditingId(id);\r\n setOpenModalDelete(true);\r\n };\r\n\r\n const closeModal = () => {\r\n setOpenModalDelete(false);\r\n setOpenModalConfirm(false);\r\n setCurrentEditingId(-1);\r\n };\r\n\r\n let gridInstance;\r\n\r\n useEffect(() => {\r\n if (gridInstance)\r\n gridInstance.refresh();\r\n }, [i18n.language]);\r\n\r\n const editTemplate = (args) => {\r\n return (\r\n
    \r\n { hasPermissions(57, \"Delete\", globalState) &&\r\n openDeleteModal(args.id)} className=\"mdl2 mdl2-trash\" />\r\n }\r\n { hasPermissions(57, \"Edit\", globalState) &&\r\n openEdit(args)} className=\"mdl2 mdl2-pencil\" />\r\n }\r\n
    \r\n );\r\n }\r\n\r\n const fileTemplate = (args) => {\r\n return (\r\n {\r\n e.preventDefault();\r\n downloadAttachment({\r\n fileName: args && args.nomeArquivo,\r\n idOrGuid: args.id\r\n })\r\n }}>Baixar o arquivo\r\n );\r\n }\r\n\r\n const confirmDelete = async (id) => {\r\n await deleteMessage(globalState.accessToken, id).then(res => {\r\n if (res.ok) {\r\n setOpenModalConfirm(true);\r\n const items = [...messageHouseItems];\r\n const index = items.findIndex(item => item.id ===id);\r\n\r\n items.splice(index, 1);\r\n setMessageHouseItems(items);\r\n }\r\n else {\r\n setOpenModalDelete(false);\r\n buildDialogMessage({\r\n error: res.status\r\n })\r\n }\r\n });\r\n };\r\n\r\n const downloadAttachment = ({ fileName, idOrGuid }) => {\r\n getMessageAttachment(globalState.accessToken, idOrGuid)\r\n .then((response) => response.blob())\r\n .then((blob) => {\r\n const url = window.URL.createObjectURL(new Blob([blob]));\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.setAttribute('download', fileName);\r\n document.body.appendChild(link);\r\n link.click();\r\n link.parentNode.removeChild(link);\r\n });\r\n };\r\n\r\n const areaTemplate = args => (\r\n <>\r\n { args.areaDICI && {i18n.language ===\"pt\" ? args.areaDICI.nomePt : args.areaDICI.nomeEn}}\r\n \r\n )\r\n\r\n return (\r\n
    \r\n gridInstance = grid}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n editTemplate(args)} width=\"40\">\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n
    \r\n {!openModalConfirm &&\r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n }\r\n {!openModalConfirm ?\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}","import { ODataV4Adaptor } from '@syncfusion/ej2-data';\r\n\r\nexport class SerialNoAdaptor extends ODataV4Adaptor {\r\n processResponse() {\r\n const original = super.processResponse.apply(this, arguments);\r\n if (original.result && original.count) {\r\n return { result: original.result, count: original.count };\r\n } else {\r\n return original;\r\n }\r\n }\r\n}","import * as React from \"react\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { Container, Row } from \"reactstrap\";\r\nimport { GlobalStateContext } from '../general/GlobalState'\r\nimport { useTranslation } from 'react-i18next';\r\nimport { DropDownList } from '@syncfusion/ej2-react-dropdowns';\r\nimport { DataManager } from '@syncfusion/ej2-data';\r\nimport { GridComponent, ColumnsDirective, ColumnDirective, Edit, Toolbar, Filter, Inject, VirtualScroll, Sort, ContextMenu, Page, Resize, ColumnChooser } from \"@syncfusion/ej2-react-grids\";\r\nimport { TooltipComponent } from '@syncfusion/ej2-react-popups';\r\nimport i18n from \"i18next\";\r\n\r\nimport './ErrorLogs.css';\r\nimport { SerialNoAdaptor } from './SerialNoAdaptor';\r\n\r\nexport const ErrorLogs = () => {\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const { t } = useTranslation();\r\n\r\n let ddlElem;\r\n let ddlObj;\r\n let gridInstance;\r\n let tooltipInstance;\r\n\r\n const contextMenuItems = ['SortAscending', 'SortDescending', 'FirstPage', 'PrevPage', 'LastPage', 'NextPage'];\r\n const editOptions = { allowEditing: true };\r\n const toolbarOptions = ['ColumnChooser'];\r\n const hostURL = process.env.REACT_APP_API_URL + '/';\r\n const dataManager = new DataManager({\r\n adaptor: new SerialNoAdaptor,\r\n batchUrl: hostURL + \"_api/ErrorLogs/UpdateErrorLogsBatch\",\r\n url: hostURL + \"_api/ErrorLogs\",\r\n headers: [{ 'Authorization': 'Bearer ' + globalState.accessToken }]\r\n });\r\n const sortSettings = {\r\n columns: [{ field: 'resolvido', direction: 'Ascending' }]\r\n };\r\n\r\n const active_colum = (fieldValue) => {\r\n return (\r\n <>\r\n {fieldValue ===\"Sim\" ?\r\n {i18n.language ===\"pt\" ? \"Sim\" : \"Yes\"}\r\n :\r\n {i18n.language ===\"pt\" ? \"Não\" : \"No\"}\r\n }\r\n \r\n );\r\n }\r\n\r\n let dateFormat = (args) => {\r\n return {new Date(args.dataAfericao).toLocaleDateString(i18n.language)};\r\n };\r\n\r\n let filterTemplateBool = (fieldValue) => {\r\n return (\r\n <>\r\n {fieldValue ?\r\n {i18n.language ===\"pt\" ? \"Sim\" : \"Yes\"}\r\n :\r\n {i18n.language ===\"pt\" ? \"Não\" : \"No\"}\r\n }\r\n \r\n );\r\n };\r\n\r\n const ddlParams = {\r\n create: () => {\r\n ddlElem = document.createElement('input');\r\n return ddlElem;\r\n },\r\n destroy: () => {\r\n ddlObj.destroy();\r\n },\r\n read: () => {\r\n return ddlObj.text;\r\n },\r\n write: (args) => {\r\n ddlObj = new DropDownList({\r\n dataSource: [{ text: \"Sim\", value: 1 }, { text: \"Não\", value: 0 }],\r\n text: args.rowData[args.column.field],\r\n fields: { text: 'text', value: 'value' },\r\n floatLabelType: 'Never'\r\n });\r\n ddlObj.appendTo(ddlElem);\r\n }\r\n };\r\n\r\n const beforeUpdateBatch = (e) => {\r\n e.batchChanges.changedRecords = e.batchChanges.changedRecords.map(value => {\r\n value.resolvido = value.resolvido === \"Sim\" ? true : false;\r\n value.mensagemEnviada = value.mensagemEnviada === \"Sim\" ? true : false;\r\n return value;\r\n });\r\n };\r\n\r\n const beforeDataBound = (args) => {\r\n if (args.result) {\r\n args.result.map((value) => {\r\n value.resolvido = value.resolvido ? \"Sim\" : \"Não\";\r\n value.mensagemEnviada = value.mensagemEnviada ? \"Sim\" : \"Não\";\r\n value.dataAfericao = value.dataAfericao.toISOString();\r\n });\r\n }\r\n };\r\n\r\n const templateCopyClipboard = (id, idOperacao) => {\r\n return
    \r\n {idOperacao}\r\n tooltipInstance = t}\r\n content={i18n.language ===\"pt\" ? \"Copiado\" : \"Copied\"}\r\n opensOn='custom'\r\n target={`clipboardAnchor_${id}`}\r\n isSticky={false}>\r\n copyToClipboard(`operationId_${id}`)}>{i18n.language ===\"pt\" ? \"Copiar\" : \"Copy\"}\r\n \r\n
    \r\n };\r\n\r\n const copyToClipboard = (eleId) => {\r\n var copyText = document.getElementById(eleId);\r\n var textArea = document.createElement(\"textarea\");\r\n textArea.value = copyText.textContent;\r\n document.body.appendChild(textArea);\r\n textArea.select();\r\n textArea.setSelectionRange(0, 99999);\r\n\r\n document.execCommand(\"copy\");\r\n\r\n if (copyText.getAttribute('data-tooltip-id')) {\r\n tooltipInstance.close();\r\n }\r\n else {\r\n tooltipInstance.open(copyText);\r\n setTimeout(() => {\r\n tooltipInstance.close();\r\n }, 1000);\r\n }\r\n textArea.remove();\r\n }\r\n\r\n React.useEffect(() => {\r\n if (gridInstance)\r\n gridInstance.refresh();\r\n }, [i18n.language]);\r\n\r\n return (\r\n <>\r\n {globalState.accessToken === null ? :\r\n <>\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    {t('ErrorLogs:title')}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n gridInstance = grid}\r\n dataSource={dataManager}\r\n editSettings={editOptions}\r\n contextMenuItems={contextMenuItems}\r\n toolbar={toolbarOptions}\r\n filterSettings={{ type: 'CheckBox' }}\r\n pageSettings={{ pageSize: 8 }}\r\n allowPaging={true}\r\n allowSorting={true}\r\n allowFiltering={true}\r\n locale={i18n.language}\r\n allowTextWrap={true}\r\n allowResizing={true}\r\n showColumnChooser={true}\r\n beforeBatchSave={beforeUpdateBatch}\r\n beforeDataBound={beforeDataBound}\r\n sortSettings={sortSettings}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n templateCopyClipboard(args.id, args.idOperacao)} allowEditing={false} width=\"165\">\r\n \r\n active_colum(args.resolvido)} field=\"resolvido\" editType='dropdownedit' edit={ddlParams} allowEditing={true} filterItemTemplate={(args) => filterTemplateBool(args.resolvido)} width=\"120\">\r\n \r\n {/* active_colum(args.mensagemEnviada)} field=\"mensagemEnviada\" allowEditing={false} filterItemTemplate={(args) => filterTemplateBool(args.resolvido)}> */}\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n }\r\n\r\n \r\n );\r\n}","import * as React from \"react\";\r\n\r\nimport { Buttons } from \"../utilities/Buttons\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Container, Row } from \"reactstrap\";\r\nimport { GlobalStateContext } from \"../general/GlobalState\";\r\nimport { GridComponent, ColumnsDirective, ColumnDirective, ForeignKey, Filter, Inject, Sort, ContextMenu, Page, Resize, Edit, Toolbar, ExcelExport } from '@syncfusion/ej2-react-grids';\r\nimport { TextBoxComponent } from '@syncfusion/ej2-react-inputs';\r\nimport { ButtonComponent } from '@syncfusion/ej2-react-buttons';\r\nimport { getSignatureItems } from \"../../services/SignatureSVC\";\r\nimport { getRegional } from \"../../services/SystemSVC\";\r\nimport { createSpinner, showSpinner, setSpinner, hideSpinner } from \"@syncfusion/ej2-react-popups\";\r\nimport PermissionRedirect from \"../utilities/PermissionRedirect/PermissionRedirect\";\r\n\r\nexport const Signature = () => {\r\n const [signatureItems, setSignatureItems] = React.useState([]);\r\n const [loadingSignature, setLoadingSignature] = React.useState(true);\r\n const [gridInstance, setGridInstance] = React.useState(null);\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [redirect, setRedirect] = React.useState(false);\r\n const [fillRegionalData, setFillRegionalData] = React.useState([]);\r\n const [idSignature, setIdSignature] = React.useState(null);\r\n const [regionalFilter, setRegionalFilter] = React.useState(null);\r\n const [signatureFilter, setSignatureFilter] = React.useState([]);\r\n\r\n let regionalData = React.useRef();\r\n\r\n let signatureRegional = (args) => {\r\n return (\r\n editSignature(args)}>{\r\n i18n.language === \"pt\"\r\n ? args?.regional?.nomePt\r\n : args?.regional?.nomeEn\r\n }\r\n )\r\n }\r\n\r\n let signatureTitle = (args) => {\r\n return ({i18n.language === 'pt' ? args.tituloPT : args.tituloEN})\r\n }\r\n\r\n let userPermission;\r\n\r\n const { t } = useTranslation();\r\n\r\n const inputChange = (obj) => {\r\n setRegionalFilter(obj.value);\r\n }\r\n\r\n const filteredSignature = () => {\r\n let filteredItems = [...signatureItems];\r\n filteredItems = filteredItems?.filter(x => {\r\n\r\n const lowerCaseAndIncludes = (element, paramIncludes) => {\r\n return element.toLowerCase().includes(paramIncludes.toLowerCase());\r\n }\r\n\r\n return lowerCaseAndIncludes(x.regional.nomeEn, regionalFilter)\r\n ? x.regional.nomeEn.toLowerCase()\r\n : lowerCaseAndIncludes(x.regional.nomePt, regionalFilter)\r\n && x.regional.nomePt.toLowerCase()\r\n });\r\n\r\n setSignatureFilter(filteredItems)\r\n }\r\n\r\n React.useEffect(() => {\r\n async function load() {\r\n\r\n let signatures = await getSignatureItems(globalState.accessToken).then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n })\r\n\r\n setSignatureItems(signatures);\r\n setSignatureFilter(signatures);\r\n\r\n let _regional = await getRegional(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n setFillRegionalData(_regional);\r\n regionalData.current = _regional;\r\n if (gridInstance) {\r\n gridInstance.refresh();\r\n }\r\n }\r\n\r\n load();\r\n }, [i18n.language]);\r\n\r\n React.useEffect(() => {\r\n if (signatureItems && document.getElementById('loadSignature')) {\r\n hideSpinner(document.getElementById('loadSignature'));\r\n setLoadingSignature(false);\r\n }\r\n }, [signatureItems]);\r\n\r\n React.useEffect(() => {\r\n if (loadingSignature && document.getElementById('loadSignature')) {\r\n createSpinner({ target: document.getElementById('loadSignature') })\r\n showSpinner(document.getElementById('loadSignature'));\r\n setSpinner({ type: 'Bootstrap' });\r\n }\r\n }, [loadingSignature]);\r\n\r\n React.useEffect(() => {\r\n let globalPermissions = globalState.permissions;\r\n userPermission = globalPermissions.filter((i) => i.accessArea === \"Signature\").map((i) => (i.permission));\r\n }, [globalState]);\r\n\r\n React.useEffect(() => {\r\n if (gridInstance)\r\n gridInstance.refresh();\r\n }, [i18n.language, fillRegionalData]);\r\n\r\n const _controls = {\r\n permit: userPermission ? userPermission : null,\r\n import: \"\",\r\n new: () => setRedirect(true),\r\n back: \"\",\r\n };\r\n\r\n const editSignature = (info) => {\r\n setIdSignature(info.id);\r\n setRedirect(true);\r\n }\r\n return (\r\n <>\r\n {globalState.accessToken === null ? :\r\n redirect ? (\r\n idSignature === null\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

    {t('Signature:titleName')}

    \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

    {t('Releases:search_text')}

    \r\n
    \r\n
    \r\n
    \r\n inputChange(e)}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {t('Releases:search')}\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {loadingSignature ?
    :\r\n <>\r\n {signatureItems &&\r\n \r\n
    \r\n setGridInstance(grid)}\r\n locale={i18n.language}\r\n >\r\n \r\n signatureRegional(e, fillRegionalData)}\r\n headerText={t('Signature:regional')}\r\n width='33%'>\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","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from 'react-i18next';\r\nimport { GlobalStateContext } from '../general/GlobalState';\r\nimport { createSpinner, showSpinner, setSpinner, DialogComponent } from \"@syncfusion/ej2-react-popups\";\r\nimport { TextBoxComponent } from \"@syncfusion/ej2-react-inputs\";\r\nimport { UploaderComponent, RemovingEventArgs } from \"@syncfusion/ej2-react-inputs\";\r\nimport '../releases/releases.css';\r\n\r\nconst ModalSignature = ({ index, setSocialMediaSelected, socialMediaSelected, setShowDialog }) => {\r\n\r\n const uploadIcon = '';\r\n\r\n let uploaderRef;\r\n let dialogRef;\r\n let dropAreaRef;\r\n\r\n const [photo, setPhoto] = React.useState({});\r\n const [openDialog, setOpenDialog] = React.useState(false);\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [cachePhoto, setCachePhoto] = React.useState(null);\r\n const [loading, setLoading] = React.useState(false);\r\n\r\n const { t } = useTranslation();\r\n const modalButtons = [{\r\n 'click': () => {\r\n updatePhoto();\r\n removeFiles();\r\n setOpenDialog(false);\r\n },\r\n buttonModel: {\r\n isPrimary: true,\r\n content: t('Actions:save')\r\n }\r\n }];\r\n\r\n let onFileUploadSuccess = (e) => {\r\n console.log(e);\r\n // filePathUploaded.current = e.e.srcElement.response;\r\n // document.getElementById(\"uploadVideo\").setAttribute('style', 'display:none;');\r\n // let gridDataSource = [...gridMediaRef.current.dataSource];\r\n // if (e.operation === 'upload') {\r\n // document.querySelector('#customTbarDlg button.e-primary').removeAttribute('disabled');\r\n // switch (action.current) {\r\n // case \"Vid\":\r\n // if (e.file.type === 'mp4') {\r\n // document.getElementById('videoTag').setAttribute('style', 'display:block;');\r\n // gridDataSource.push({ url: e.e.srcElement.response, type: 'Video' });\r\n // gridMediaRef.current.dataSource = gridDataSource;\r\n\r\n // var file = document.getElementById(\"fileUpload\").files[0];\r\n // var url = URL.createObjectURL(file);\r\n // setVideoSrc(videoSrc => ({ ...videoSrc, blob: url, url: e.e.srcElement.response }));\r\n // }\r\n // break;\r\n // case \"Aud\":\r\n // gridDataSource.push({ url: e.e.srcElement.response, type: 'Audio' });\r\n // gridMediaRef.current.dataSource = gridDataSource;\r\n // break;\r\n // case \"Img\":\r\n // gridDataSource.push({ url: e.e.srcElement.response, type: 'Image' });\r\n // gridMediaRef.current.dataSource = gridDataSource;\r\n // break;\r\n // default:\r\n // gridDataSource.push({ url: e.e.srcElement.response, type: 'Attachment', title: txtAttachmentTitleRef.current.value });\r\n // gridMediaRef.current.dataSource = gridDataSource;\r\n // break;\r\n // }\r\n\r\n // }\r\n\r\n }\r\n\r\n // const onSetAttachmentsFiles = event => {\r\n // if (event.filesData[0].statusCode ===\"1\") {\r\n // setLoading(true);\r\n // event.filesData.map((file) => {\r\n // const reader = new FileReader();\r\n // const firstFile = document.getElementById(\"uploadPhoto\").files[0];\r\n // reader.addEventListener(\"load\", function () {\r\n // const name = firstFile.name;\r\n // const i = name.lastIndexOf('.');\r\n // const fileName = name.substring(0, i);\r\n // const ext = name.substring(i + 1);\r\n\r\n // setPhoto(photo => ({ ...photo, name: fileName, remove: false, size: firstFile.size, type: ext, b64: reader.result }));\r\n // setLoading(false);\r\n // }, false);\r\n // reader.readAsDataURL(file.rawFile);\r\n // });\r\n // } else {\r\n // document.getElementById(\"validateImage\").innerHTML = \"O tamanho do arquivo é muito grande\";\r\n // }\r\n\r\n // document.getElementById(\"validateImage\").innerHTML = \"\";\r\n // }\r\n\r\n let onRemoveFile = (args) => {\r\n console.log('remove file');\r\n // if (document.getElementById(\"uploadVideo\"))\r\n // document.getElementById(\"uploadVideo\").setAttribute('style', 'display:block;');\r\n\r\n // if (document.getElementById('videoTag'))\r\n // document.getElementById('videoTag').setAttribute('style', 'display:none;');\r\n\r\n // document.querySelector('#customTbarDlg button.e-primary').setAttribute('disabled', 'disabled');\r\n // args.postRawFile = false;\r\n // const fileInfo = uploadObj.current.getFileInfo(0, null);\r\n // let qstring = `mediaPath=${mediaGuid}/${fileInfo.name}`;\r\n // removeMedia(globalState.accessToken, qstring, idType);\r\n }\r\n\r\n const uploaderSelected = e => {\r\n document.querySelector('#uploadVideo .e-error').innerHTML = '';\r\n if (e.filesData[0].statusCode === \"0\") {\r\n e.cancel = true;\r\n document.querySelector('#uploadVideo .e-error').innerHTML = e.filesData[0].status;\r\n }\r\n }\r\n\r\n\r\n const fileUploading = (e) => {\r\n e.currentRequest.setRequestHeader(\"Authorization\", \"Bearer \" + globalState.accessToken);\r\n }\r\n\r\n const target = document.getElementById(\"uploadPhoto\");\r\n\r\n React.useEffect(() => {\r\n if (photo) {\r\n if (uploaderRef) {\r\n uploaderRef.dropArea = dropAreaRef;\r\n uploaderRef.dataBind();\r\n }\r\n }\r\n }, [photo]);\r\n\r\n React.useEffect(() => {\r\n if (openDialog)\r\n dialogRef.buttons = modalButtons;\r\n }, [openDialog]);\r\n\r\n const onClose = () => {\r\n removeFiles();\r\n // if (photo.remove || !photo.b64) {\r\n // setPhoto(photo => ({\r\n // name: photo.name,\r\n // size: photo.size,\r\n // type: photo.type,\r\n // url: photo.url\r\n // }));\r\n // }\r\n };\r\n\r\n React.useEffect(() => {\r\n createSpinner({ target: document.getElementById('loadingPhoto') });\r\n showSpinner(document.getElementById('loadingPhoto'));\r\n setSpinner({ type: 'Bootstrap' });\r\n }, [loading]);\r\n\r\n const removeFiles = () => {\r\n const clearThumb = document.getElementById(\"uploadPhoto\") && document.getElementById(\"uploadPhoto\").ej2_instances[0];\r\n if (clearThumb !== null && clearThumb.clearAll !== null && typeof (clearThumb.clearAll) !== \"undefined\") {\r\n return clearThumb.clearAll();\r\n }\r\n }\r\n\r\n const uploaderCreated = () => {\r\n if (photo) {\r\n uploaderRef.files = photo.b64 || photo.url ? [photo] : null;\r\n }\r\n if (uploaderRef) {\r\n uploaderRef.dropArea = dropAreaRef;\r\n uploaderRef.dataBind();\r\n }\r\n }\r\n\r\n const updatePhoto = () => {\r\n console.log('updatePhoto');\r\n // setPhoto(photo => {\r\n // if (photo.remove) {\r\n // if (photo.url)\r\n // return { ...photo, b64: null, url: null, delete: true, changed: true };\r\n // else\r\n // return { ...photo, b64: null, url: null, changed: true };\r\n // }\r\n // return { ...photo, changed: true }\r\n // });\r\n }\r\n\r\n // const onCreated = () => {\r\n // if (uploaderRef) {\r\n // uploaderRef.dropArea = dropAreaRef;\r\n // uploaderRef.dataBind();\r\n // }\r\n // }\r\n\r\n const onRemovingAttachsFiles = (args) => {\r\n console.log(\"onRemoving\");\r\n // setPhoto(photo => {\r\n // return { ...photo, remove: true }\r\n // });\r\n // removeFiles();\r\n };\r\n\r\n const onSetAttachmentsFiles = event => {\r\n if (event.filesData[0].statusCode ===\"1\") {\r\n setLoading(true);\r\n event.filesData.map((file) => {\r\n\r\n const newSelected = [...socialMediaSelected];\r\n\r\n const reader = new FileReader();\r\n // const firstFile = document.getElementById(\"uploadPhoto\").files[0];\r\n reader.addEventListener(\"load\", function () {\r\n // const name = firstFile.name;\r\n // const i = name.lastIndexOf('.');\r\n // const fileName = name.substring(0, i);\r\n // const ext = name.substring(i + 1);\r\n\r\n // setPhoto(photo => ({ ...photo, name: fileName, remove: false, size: firstFile.size, type: ext, b64: reader.result }));\r\n newSelected[index].iconeB64 = reader.result;\r\n setSocialMediaSelected(newSelected);\r\n setShowDialog(false);\r\n // setLoading(false);\r\n }, false);\r\n reader.readAsDataURL(file.rawFile);\r\n });\r\n } else {\r\n // document.getElementById(\"validateImage\").innerHTML = \"O tamanho do arquivo é muito grande\";\r\n }\r\n\r\n // document.getElementById(\"validateImage\").innerHTML = \"\";\r\n }\r\n\r\n const downloadAttachment = ({ fileName, url }) => {\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.setAttribute('download', fileName);\r\n document.body.appendChild(link);\r\n link.click();\r\n link.parentNode.removeChild(link);\r\n };\r\n\r\n const removeAttachment = () => {\r\n console.log(\"removing\");\r\n // setPhoto(photo => {\r\n // if (photo.b64 && photo.url)\r\n // return { ...photo, b64: null };\r\n // else\r\n // return { ...photo, remove: true }\r\n // });\r\n // removeFiles();\r\n };\r\n\r\n const uploadPhoto = () => {\r\n document.getElementsByClassName(\"e-file-select-wrap\")[0].querySelector(\"button\").click();\r\n return false;\r\n }\r\n\r\n // let asyncSettings = {\r\n // saveUrl: `${process.env.REACT_APP_API_URL}/_api/Signature/UploadPressMedia?${fileParams}`\r\n // };\r\n\r\n const beforeClose = () => {\r\n console.log(\"beforeClosing\");\r\n // setOpenDialog(false);\r\n // toggle && toggle.close();\r\n };\r\n\r\n return (\r\n dialogRef = dialog}\r\n // buttons={dlgButtons}\r\n // overlayClick={dialogOverlay}\r\n // close={dialogOverlay}\r\n // header={header}\r\n visible={true}\r\n showCloseIcon={true}\r\n width='45%'\r\n // target={'#rteSection'}\r\n isModal={true}\r\n style={{ minHeight: 350 }}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {/* Render Uploader */}\r\n
    \r\n
    \r\n \r\n

    \r\n {i18n.language ===\"pt\" ? \"Arraste o arquivo aqui ou faça o\" : \"Drag the file here or\"}\r\n uploadPhoto()}> {i18n.language ===\"pt\" ? \"carregamento\" : \"upload\"}\r\n\r\n

    \r\n \r\n \r\n \r\n
    \r\n
    \r\n uploaderRef = uploader}\r\n multiple={false}\r\n // ref={(scope) => { uploadObj.current = scope }}\r\n // asyncSettings={asyncSettings}\r\n created={uploaderCreated}\r\n // allowedExtensions={\".jpg\", \".png\", \".jpeg\"}\r\n selected={uploaderSelected}\r\n uploading={fileUploading}\r\n success={(e) => onFileUploadSuccess(e)}\r\n removing={e => onRemoveFile(e)}\r\n beforeUpload={(e) => console.log(e)}\r\n selected={(e) => onSetAttachmentsFiles(e)}\r\n >\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n {/* ATTACHMENT SUBTITLE */}\r\n
    \r\n \r\n txtAttachmentTitleRef.current = textBox}\r\n name=\"attachmentLabel\"\r\n placeholder={t('Press:attachment_subtitle_placeholder')}\r\n htmlAttributes={{ maxlength: 17 }}\r\n />\r\n
    \r\n {/* ATTACHMENT SUBTITLE END */}\r\n\r\n
    \r\n
    \r\n
    \r\n )\r\n};\r\n\r\nexport default ModalSignature;","import * as React from \"react\";\r\n\r\nimport { Redirect } from \"react-router-dom\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { GlobalStateContext } from \"../general/GlobalState\";\r\nimport { Actions } from \"../utilities/Actions\";\r\nimport {\r\n TextBoxComponent,\r\n MaskedTextBoxComponent,\r\n} from \"@syncfusion/ej2-react-inputs\";\r\nimport PermissionRedirect from \"../utilities/PermissionRedirect/PermissionRedirect\";\r\nimport { DropDownListComponent } from \"@syncfusion/ej2-react-dropdowns\";\r\nimport { Container, Row } from \"reactstrap\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport { getRegional, getSocialMedias } from \"../../services/SystemSVC\";\r\nimport { DialogComponent } from \"@syncfusion/ej2-react-popups\";\r\nimport { hasPermissions } from \"../utilities/Utils\";\r\nimport { getSignatureItem, addOrUpdateSignatureItem, getSignaturePhoto, deleteSignature } from \"../../services/SignatureSVC\";\r\nimport ModalSignature from './ModalSignature';\r\nimport \"./signature.css\";\r\n\r\nexport const SignatureItem = (props) => {\r\n let itemId = props.match.params.id;\r\n const { t } = useTranslation();\r\n\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [redirect, setRedirect] = React.useState(false);\r\n const [dialogDelete, setDialogDelete] = React.useState(false);\r\n const [fillRegionalData, setFillRegionalData] = React.useState([]);\r\n const [showDialog, setShowDialog] = React.useState(false);\r\n const [currentIndex, setCurrentIndex] = React.useState(-1);\r\n const [changeInfo, setChangeInfo] = React.useState({\r\n text: i18n.language === \"pt\" ? \"Português\" : \"Portuguese\",\r\n value: 1\r\n });\r\n const [socialMediaSelected, setSocialMediaSelected] = React.useState([{\r\n exists: false,\r\n new: false\r\n }]);\r\n const [socialMedias, setSocialMedias] = React.useState([]);\r\n const[disabledBtn, setDisabledBtn] = React.useState(false);\r\n const [signatureForm, setSignatureForm] = React.useState(\r\n {\r\n tituloPT: \"\",\r\n tituloEN: \"\",\r\n urlpt: \"\",\r\n urlen: \"\",\r\n idRegional: \"\",\r\n colaboradores: [\r\n {\r\n telefone: \"\",\r\n celular: \"\",\r\n nome: \"\",\r\n email: \"\",\r\n status: 0\r\n }\r\n ]\r\n }\r\n );\r\n\r\n const { register, triggerValidation, errors, clearError } = useForm();\r\n\r\n let _controls = {\r\n customPermissions: itemId ? hasPermissions(64, \"Edit\", globalState) : hasPermissions(64, \"Create\", globalState),\r\n savePrimary: false,\r\n excludePrimary: true,\r\n // urlView: () => setShowDialog(true),\r\n urlPreview: false,\r\n urlSave: (e) => {\r\n e.preventDefault();\r\n setDisabledBtn(true);\r\n const newSocialMediaSelected = [...socialMediaSelected];\r\n\r\n const payload = newSocialMediaSelected.map(social => {\r\n return {\r\n ...social,\r\n iconeB64: social.new ? social?.iconeB64.split(',')[1] : \"\"\r\n }\r\n });\r\n\r\n addOrUpdateSignatureItem(globalState.accessToken, {\r\n ...signatureForm,\r\n redesSociais: [...payload]\r\n }).then(response => {\r\n setRedirect(response.ok)\r\n setDisabledBtn(false);\r\n }).catch(() => {\r\n setDisabledBtn(false);\r\n })\r\n },\r\n // previewSignature: true,\r\n form: \"formSignatureItem\",\r\n // urlSend: itemId ? () => setShowSendContent(true) : false,\r\n urlCancel: () => {\r\n setRedirect(true);\r\n },\r\n urlDelete: itemId ? () => setDialogDelete(true) : false,\r\n }\r\n\r\n const releaseIdioma = [{\r\n text: i18n.language === \"pt\" ? \"Português\" : \"Portuguese\",\r\n value: 1\r\n }, {\r\n text: i18n.language === \"pt\" ? \"Inglês\" : \"English\",\r\n value: 2\r\n }]\r\n\r\n const confirmDelete = () => {\r\n deleteSignature(globalState.accessToken, itemId).then(response => {\r\n if (response.ok) {\r\n setRedirect(true);\r\n }\r\n });\r\n }\r\n\r\n React.useEffect(() => {\r\n async function load() {\r\n _controls = {\r\n customPermissions: itemId ? hasPermissions(64, \"Edit\", globalState) : hasPermissions(64, \"Create\", globalState),\r\n savePrimary: false,\r\n excludePrimary: true,\r\n // urlView: () => setShowDialog(true),\r\n urlPreview: false,\r\n urlSave: (e) => {\r\n e.preventDefault();\r\n setDisabledBtn(true);\r\n addOrUpdateSignatureItem(globalState.accessToken, {\r\n ...signatureForm,\r\n redesSociais: [...socialMediaSelected]\r\n }).then(response => {\r\n setRedirect(response.ok)\r\n setDisabledBtn(false);\r\n }).catch(() => {\r\n setDisabledBtn(false);\r\n });\r\n },\r\n // previewSignature: true,\r\n form: \"formSignatureItem\",\r\n // urlSend: itemId ? () => setShowSendContent(true) : false,\r\n urlCancel: () => {\r\n setRedirect(true);\r\n },\r\n urlDelete: itemId ? () => setDialogDelete(true) : false,\r\n };\r\n }\r\n load();\r\n }, [signatureForm, socialMediaSelected])\r\n\r\n React.useEffect(() => {\r\n async function load() {\r\n let _regional = await getRegional(globalState.accessToken).then(\r\n (response) => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n }\r\n );\r\n setFillRegionalData(_regional);\r\n let socialMedia = await getSocialMedias(globalState.accessToken).then(\r\n (response) => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n }\r\n );\r\n setSocialMedias(socialMedia);\r\n if (itemId) {\r\n let signatures = await getSignatureItem(globalState.accessToken, itemId).then(res => {\r\n if (res.ok) {\r\n return res.json();\r\n }\r\n });\r\n\r\n setSocialMediaSelected(signatures?.redesSociais)\r\n setSignatureForm(signatures);\r\n }\r\n }\r\n\r\n load();\r\n }, [i18n.language]);\r\n\r\n React.useEffect(() => {\r\n if (signatureForm && signatureForm.email) {\r\n clearError([\"urlpt\", \"urlen\", \"tituloPT\", \"tituloEN\", \"email\"]);\r\n }\r\n }, [signatureForm]);\r\n\r\n const setContent = (e) => {\r\n const newItem = e.itemData;\r\n setChangeInfo({\r\n ...newItem\r\n });\r\n }\r\n\r\n const addSocialMedia = () => {\r\n setSocialMediaSelected(socialSelected => ([\r\n ...socialSelected,\r\n {\r\n exists: false,\r\n new: false,\r\n }\r\n ]))\r\n }\r\n\r\n const addSignature = () => {\r\n const signature = signatureForm.colaboradores.filter(signature => signature.status !== 2);\r\n\r\n if (signature) {\r\n setSignatureForm(signatureForm => ({\r\n ...signatureForm,\r\n colaboradores: [...signatureForm.colaboradores,\r\n {\r\n telefone: \"\",\r\n celular: \"\",\r\n nome: \"\",\r\n email: \"\",\r\n status: 0\r\n }\r\n ]\r\n }))\r\n }\r\n }\r\n\r\n const moveDown = (idx) => {\r\n const arr = socialMediaSelected;\r\n const newArr = [...arr.slice(0, idx), arr[idx + 1], arr[idx], ...arr.slice(idx+2)];\r\n setSocialMediaSelected(newArr);\r\n }\r\n const moveUp = (idx) => {\r\n const arr = socialMediaSelected;\r\n const newArr = [...arr.slice(0, idx-1), arr[idx], arr[idx - 1], ...arr.slice(idx+1)];\r\n setSocialMediaSelected(newArr);\r\n }\r\n\r\n const selectNew = (index) => {\r\n const selected = [...socialMediaSelected];\r\n\r\n selected[index].new = true;\r\n\r\n setSocialMediaSelected(selected);\r\n };\r\n\r\n const selectExistent = (index) => {\r\n\r\n const selected = [...socialMediaSelected];\r\n\r\n selected[index].exists = true;\r\n\r\n setSocialMediaSelected(selected);\r\n };\r\n\r\n let socialMediaChange = (field, e, index) => {\r\n const value = e.value;\r\n\r\n const selected = [...socialMediaSelected];\r\n\r\n selected[index] = {\r\n ...selected[index],\r\n [field]: value\r\n }\r\n\r\n setSocialMediaSelected(selected);\r\n };\r\n\r\n let inputChange = (field, e) => {\r\n const value = e.value;\r\n\r\n setSignatureForm((signatureForm) => ({\r\n ...signatureForm,\r\n [field]: value,\r\n }));\r\n };\r\n\r\n let inputUserChange = (field, e, index) => {\r\n const value = e.value;\r\n const newSignatureForm = { ...signatureForm };\r\n const collaborator = newSignatureForm.colaboradores[index];\r\n\r\n if (collaborator.status !== 2) {\r\n newSignatureForm.colaboradores[index][field] = value;\r\n }\r\n\r\n if (collaborator.status === 3) {\r\n newSignatureForm.colaboradores[index].status = 1;\r\n }\r\n\r\n setSignatureForm(newSignatureForm);\r\n };\r\n\r\n const removeSignature = (index) => {\r\n const newSignatureForm = { ...signatureForm };\r\n const collaborator = newSignatureForm.colaboradores;\r\n\r\n if (collaborator[index] !==null) {\r\n if (collaborator[index].status !== 0) {\r\n collaborator[index].status = 2;\r\n } else {\r\n collaborator.splice(index, 1);\r\n }\r\n }\r\n\r\n newSignatureForm.colaboradores = collaborator;\r\n\r\n setSignatureForm(newSignatureForm);\r\n }\r\n\r\n const deleteSocialMedia = (index) => {\r\n const newSelected = [...socialMediaSelected].filter((mediaSelected, indexMap) => index !== indexMap);\r\n\r\n setSocialMediaSelected(newSelected);\r\n }\r\n\r\n const blobToBase64 = (blob) => {\r\n return new Promise((resolve, _) => {\r\n const reader = new FileReader();\r\n reader.onloadend = () => resolve(reader.result);\r\n reader.readAsDataURL(blob);\r\n });\r\n }\r\n\r\n const selectSocialMedia = async (e, index) => {\r\n const selected = [...socialMediaSelected];\r\n\r\n const socialMediaSelect = [...socialMedias];\r\n\r\n const [fields] = socialMediaSelect.filter(x => x.id ===e.value);\r\n\r\n selected[index] = {\r\n ...selected[index],\r\n ...fields\r\n }\r\n\r\n setSocialMediaSelected(selected);\r\n\r\n };\r\n\r\n const removeExists = (index) => {\r\n const selected = [...socialMediaSelected];\r\n\r\n selected[index].exists = false;\r\n\r\n setSocialMediaSelected(selected);\r\n };\r\n\r\n const removeNew = (index) => {\r\n const selected = [...socialMediaSelected];\r\n\r\n selected[index].new = false;\r\n\r\n setSocialMediaSelected(selected);\r\n };\r\n\r\n const richTextDefault = () => {\r\n const isLangPT = changeInfo.text === \"Português\" || changeInfo.text === \"Portuguese\";\r\n const html = (\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 ${isLangPT ? signatureForm.tituloPT\r\n : signatureForm.tituloEN}\r\n
    \r\n ${signatureForm.colaboradores.filter(i => i.nome || i.telefone || i.email || i.celular).map((colaborador) => (`\r\n \r\n ${(colaborador.nome && colaborador.nome)}\r\n \r\n \r\n ${(colaborador.telefone && (colaborador.nome && '- Tel: ') + colaborador.telefone)}\r\n \r\n \r\n ${(colaborador.celular && ((colaborador.telefone && '/ Cel: ') || (colaborador.nome && '- Cel: ')) + colaborador.celular)}\r\n \r\n ${(colaborador.nome || colaborador.telefone || colaborador.celular) && colaborador.email && `
    `}\r\n \r\n ${(colaborador.email && colaborador.email)}\r\n `)\r\n ).join(\"
    \")}\r\n \r\n \r\n
    \r\n ${isLangPT ? signatureForm.urlpt && signatureForm.urlpt\r\n : signatureForm.urlen ? signatureForm.urlen\r\n : ''\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n ${socialMediaSelected.filter(socialMediaSelect => isLangPT ? socialMediaSelect.url : socialMediaSelect.urlen)\r\n .map(socialMediaSelect => (`\r\n \r\n ${socialMediaSelect.id ?\r\n ``\r\n : `${socialMediaSelect?.iconeB64 &&\r\n ``\r\n }\r\n `}\r\n \r\n   \r\n \r\n ${isLangPT ? socialMediaSelect.url : socialMediaSelect.urlen}\r\n \r\n `)).join(\"
    \")}\r\n

    \r\n
    `\r\n );\r\n\r\n return html;\r\n }\r\n\r\n return (\r\n
    \r\n {globalState.accessToken === null ? (\r\n \r\n ) : redirect ? (\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 {itemId\r\n ? t(\"Signature:edit_title\")\r\n : t(\"Signature:create_title\")}\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n setContent(e)}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n inputChange(\r\n changeInfo.text === \"Português\" || changeInfo.text === \"Portuguese\"\r\n ? \"tituloPT\"\r\n : \"tituloEN\"\r\n ,\r\n value\r\n )\r\n }\r\n ref={register({\r\n required: true,\r\n })}\r\n blur={() =>\r\n triggerValidation(\r\n (changeInfo.text === \"Português\" || changeInfo.text === \"Portuguese\"\r\n ? \"tituloPT\"\r\n : \"tituloEN\"\r\n )\r\n )\r\n }\r\n />\r\n {errors.tituloPT && (\r\n <>\r\n {errors.tituloPT\r\n .type ===\r\n \"required\" && (\r\n \r\n {t(\r\n \"Validation:required\"\r\n )}\r\n \r\n )}\r\n \r\n )}\r\n {errors.tituloEN && (\r\n <>\r\n {errors.tituloEN\r\n .type ===\r\n \"required\" && (\r\n \r\n {t(\r\n \"Validation:required\"\r\n )}\r\n \r\n )}\r\n \r\n )}\r\n
    \r\n
    \r\n \r\n \r\n inputChange(\r\n changeInfo.text === \"Português\" || changeInfo.text === \"Portuguese\"\r\n ? \"urlpt\"\r\n : \"urlen\",\r\n value\r\n )\r\n }\r\n ref={register({\r\n required: true,\r\n })}\r\n blur={() =>\r\n triggerValidation(\r\n changeInfo.text === \"Português\" || changeInfo.text === \"Portuguese\"\r\n ? \"urlpt\"\r\n : \"urlen\",\r\n )\r\n }\r\n />\r\n {errors.url && (\r\n <>\r\n {errors.url.type ===\r\n \"required\" && (\r\n \r\n {t(\r\n \"Validation:required\"\r\n )}\r\n \r\n )}\r\n \r\n )}\r\n {errors.urlen && (\r\n <>\r\n {errors.urlen.type ===\r\n \"required\" && (\r\n \r\n {t(\r\n \"Validation:required\"\r\n )}\r\n \r\n )}\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n inputChange(\r\n \"idRegional\",\r\n value\r\n )\r\n }\r\n ref={register({\r\n required: true,\r\n })}\r\n blur={() =>\r\n triggerValidation(\r\n \"idRegional\"\r\n )\r\n }\r\n />\r\n {errors.idRegional && (\r\n <>\r\n {errors.idRegional\r\n .type ===\r\n \"required\" && (\r\n \r\n {t(\r\n \"Validation:required\"\r\n )}\r\n \r\n )}\r\n \r\n )}\r\n
    \r\n
    \r\n {signatureForm.colaboradores.filter(\r\n (signature) => signature.status !== 2\r\n ) && (\r\n
    \r\n \r\n addSignature()\r\n }\r\n />\r\n
    \r\n )}\r\n {signatureForm.colaboradores.length > 0 &&\r\n signatureForm.colaboradores.map(\r\n (item, index) =>\r\n item.status !== 2 && (\r\n <>
    \r\n
    \r\n
    \r\n \r\n \r\n inputUserChange(\r\n \"nome\",\r\n value,\r\n index\r\n )\r\n }\r\n value={\r\n item.nome\r\n }\r\n />\r\n
    \r\n
    \r\n \r\n \r\n triggerValidation(\r\n \"email\"\r\n )\r\n }\r\n change={(value) =>\r\n inputUserChange(\r\n \"email\",\r\n value,\r\n index\r\n )\r\n }\r\n value={item.email}\r\n />\r\n {errors.email && (\r\n <>\r\n {errors.email.type ===\r\n \"pattern\" && (\r\n \r\n {t(\r\n \"Validation:invalidMail\"\r\n )}\r\n \r\n )}\r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n inputUserChange(\r\n \"telefone\",\r\n value,\r\n index\r\n )\r\n }\r\n promptChar=\" \"\r\n mask=\"[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]\"\r\n />\r\n
    \r\n
    \r\n \r\n \r\n inputUserChange(\r\n \"celular\",\r\n value,\r\n index\r\n )\r\n }\r\n promptChar=\" \"\r\n mask=\"[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]\"\r\n />\r\n
    \r\n
    \r\n
    \r\n {signatureForm.colaboradores.length > 1 &&\r\n
    \r\n
    removeSignature(index)}\r\n />\r\n
    \r\n }\r\n \r\n )\r\n )}\r\n
    \r\n\r\n
    \r\n \r\n addSocialMedia()\r\n }\r\n />\r\n
    \r\n
    \r\n {socialMediaSelected.length > 0 &&\r\n socialMediaSelected.map((socialMediaSelect, index) => (\r\n
    \r\n
    \r\n {(!socialMediaSelect.new && !socialMediaSelect.exists) && !socialMediaSelect.id ? (\r\n
    \r\n \r\n \r\n
    \r\n ) : (\r\n
    \r\n {socialMediaSelect.exists && !socialMediaSelect.id && (\r\n <>\r\n
    \r\n selectSocialMedia(e, index)}\r\n value={socialMediaSelected[index].id}\r\n placeholder={\r\n i18n.language === 'pt'\r\n ? 'Selecione a rede social'\r\n : 'Select a social media'\r\n }\r\n />\r\n
    \r\n \r\n )}\r\n\r\n {showDialog &&\r\n \r\n }\r\n\r\n {socialMediaSelect.id && (\r\n
    \r\n
    \r\n {index > 0 && moveUp(index)} >^}\r\n {index < socialMediaSelected.length - 1 && moveDown(index)} >^}\r\n
    \r\n \r\n
    \r\n \r\n socialMediaChange(\"titulo\", value, index)}\r\n value={socialMediaSelect.titulo}\r\n />\r\n
    \r\n
    \r\n\r\n \r\n socialMediaChange(changeInfo.text === \"Português\" ? \"url\" : \"urlen\", value, index)}\r\n value={changeInfo.text === \"Português\" || changeInfo.text === \"Portuguese\"\r\n ? socialMediaSelect.url\r\n : socialMediaSelect.urlen ? socialMediaSelect.urlen : \"\"}\r\n />\r\n
    \r\n
    \r\n )}\r\n\r\n {socialMediaSelect.new && (\r\n
    \r\n {!socialMediaSelect?.iconeB64 ?\r\n {\r\n e.preventDefault();\r\n setShowDialog(true);\r\n setCurrentIndex(index);\r\n }}>Adicionar ícone :\r\n }\r\n
    \r\n \r\n socialMediaChange(\"titulo\", value, index)}\r\n value={socialMediaSelect.titulo}\r\n />\r\n
    \r\n
    \r\n\r\n \r\n socialMediaChange(\"url\", value, index)}\r\n value={changeInfo.text === \"Português\" || changeInfo.text === \"Portuguese\"\r\n ? socialMediaSelect.url\r\n : socialMediaSelect.urlen ? socialMediaSelect.urlen : \"\"}\r\n />\r\n
    \r\n
    \r\n\r\n \r\n socialMediaChange(\"urlen\", value, index)}\r\n value={socialMediaSelect.urlen}\r\n />\r\n
    \r\n
    \r\n )}\r\n
    \r\n )}\r\n
    \r\n
    \r\n
    deleteSocialMedia(index)}\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
    \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","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nimport { ChartComponent, SeriesCollectionDirective, SeriesDirective, Inject, Legend, Category, Tooltip, DataLabel, ColumnSeries } from '@syncfusion/ej2-react-charts';\r\nimport { Export } from \"../utilities/Export\";\r\nimport { GlobalStateContext } from \"../general/GlobalState\";\r\nimport { PressReportStateContext } from \"./PressReportState\";\r\nimport { exportPressReport } from \"../../services/PressSVC\";\r\n\r\nexport const ReportComponent = ({idTipo}) => {\r\n\r\n const { t } = useTranslation();\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [pressReportState] = React.useContext(PressReportStateContext);\r\n const [data, setData] = React.useState([]);\r\n const [total, setTotal] = React.useState(0);\r\n const [dateRangeLabel, setDateRangeLabel] = React.useState('');\r\n const [newData, setNewData] = React.useState([]);\r\n\r\n React.useEffect(() => {\r\n if (pressReportState && pressReportState.data.length > 0) {\r\n\r\n let seriesData = pressReportState.data[0].pressReport.map(i => {\r\n\r\n return {\r\n AreaNegocio: i.title,\r\n QuantidadeAtendimentos: i.quantity\r\n };\r\n })\r\n\r\n let newSeriesData = {\r\n IdAreaNegocio: pressReportState?.allData?.businessArea,\r\n language: i18n.language,\r\n DataInicio: pressReportState?.allData?.startPeriod,\r\n DataFim: pressReportState?.allData?.endPeriod,\r\n IdatendimentoStatus: pressReportState?.allData?.status,\r\n IdPais: pressReportState?.allData?.country,\r\n IdRegional: pressReportState?.allData?.regional,\r\n idTipo: idTipo,\r\n isPT: i18n.language === \"pt\" ? true : false,\r\n Bloqueado: pressReportState?.allData?.status\r\n };\r\n\r\n setData(seriesData);\r\n setNewData(newSeriesData);\r\n\r\n let sum = 0;\r\n pressReportState.data[0].pressReport.map(i => {\r\n sum += i.quantity;\r\n })\r\n setTotal(sum);\r\n }\r\n\r\n }, [pressReportState.data, globalState.userLanguage]);\r\n\r\n React.useEffect(() => {\r\n if (pressReportState &&\r\n pressReportState?.allData.length > 0) {\r\n\r\n if (pressReportState?.allData?.startPeriod && pressReportState?.allData?.endPeriod) {\r\n let rangeDate;\r\n\r\n if (globalState.userLanguage === \"en\") {\r\n rangeDate = `From ${pressReportState?.allData?.startPeriod.toLocaleDateString(\"en\")} to ${pressReportState?.allData?.endPeriod.toLocaleDateString(\"en\")}`;\r\n } else {\r\n rangeDate = `De ${pressReportState?.allData?.startPeriod.toLocaleDateString(\"pt\")} até ${pressReportState?.allData?.endPeriod.toLocaleDateString(\"pt\")}`;\r\n }\r\n\r\n setDateRangeLabel(rangeDate);\r\n } else {\r\n setDateRangeLabel(null);\r\n }\r\n }\r\n }, [pressReportState?.allData?.startPeriod, pressReportState?.allData?.endPeriod, globalState.userLanguage]);\r\n\r\n const legendSettings = {\r\n visible: true,\r\n position: 'Custom',\r\n location: { x: 450, y: 20 },\r\n textStyle: {\r\n color: '#747876',\r\n fontFamily: 'Arial'\r\n }\r\n };\r\n\r\n const exportReport = (args) => {\r\n const extension = () => {\r\n let exportDoc = {\r\n \"doc\": \".docx\",\r\n \"excel\": \".xlsx\"\r\n }\r\n return exportDoc[args];\r\n }\r\n\r\n const dataExport = {...newData, extension: extension()}\r\n\r\n exportPressReport(globalState.accessToken, dataExport, idTipo).then(async (res) => {\r\n const blob = await res.blob();\r\n const newBlob = new Blob([blob], { type: args === 'doc'\r\n ? 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'\r\n : 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\r\n });\r\n let url = window.URL.createObjectURL(newBlob);\r\n let a = document.createElement('a');\r\n a.download = `export${extension()}`;\r\n a.href = url;\r\n a.click();\r\n a.remove();\r\n }).catch(console.error);\r\n }\r\n\r\n const exportPDF = () => {\r\n window.print();\r\n }\r\n\r\n const _export = {\r\n pdf: () => exportPDF(),\r\n doc: () => exportReport('doc'),\r\n excel: () => exportReport('excel')\r\n }\r\n\r\n const verifyTypeId = () => {\r\n let type = {\r\n 1:'PressReport:description-release',\r\n 2:'PressReport:description-statement',\r\n 3:'PressReport:description-position',\r\n }\r\n return type[idTipo];\r\n }\r\n\r\n return (\r\n <>\r\n {\r\n data &&\r\n data.length > 0 &&\r\n
    \r\n
    \r\n
    {t('PressReport:topLabel')}
    \r\n
    \r\n {\r\n dateRangeLabel &&\r\n
    \r\n \r\n \r\n
    \r\n }\r\n

    {t(`${verifyTypeId()}`) }

    \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 {data &&\r\n data.length > 0 &&\r\n data.map((i, index) => {\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n );\r\n })\r\n }\r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n }\r\n \r\n );\r\n}\r\n","import * as React from \"react\";\r\nimport i18n from \"i18next\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nimport { DateRangePickerComponent } from \"@syncfusion/ej2-react-calendars\";\r\nimport { DropDownListComponent } from '@syncfusion/ej2-react-dropdowns';\r\nimport { ProgressButtonComponent } from '@syncfusion/ej2-react-splitbuttons';\r\n\r\nimport { GlobalStateContext } from \"../general/GlobalState\";\r\nimport { PressReportStateContext } from \"./PressReportState\";\r\nimport { getAllBusinessAreas, getCountries, getRegional } from \"../../services/SystemSVC\";\r\nimport { getPressItemsFiltered } from \"../../services/PressSVC\";\r\n\r\nexport const FilterComponent = ({ idTipo }) => {\r\n const { t } = useTranslation();\r\n const [globalState] = React.useContext(GlobalStateContext);\r\n const [pressReportState, setPressReportState] = React.useContext(PressReportStateContext);\r\n const [fillBusinessAreaData, setFillBusinessAreaData] = React.useState([]);\r\n const [fillCountriesData, setFillCountriesData] = React.useState([]);\r\n const [fillRegionalData, setFillRegionalData] = React.useState([]);\r\n const [filteredPressItems, setFilteredPressItems] = React.useState({\r\n idTipo: idTipo,\r\n isPT: i18n.language === \"pt\" ? true : false,\r\n idAreaNegocio: null,\r\n dataInicio: null,\r\n dataFim: null,\r\n bloqueado: null,\r\n idPais: null,\r\n idRegional: null,\r\n });\r\n\r\n const [spinnerDuration, setSpinnerDuration] = React.useState(20000);\r\n\r\n const initialLoad = async () => {\r\n let _businessAreas = await getAllBusinessAreas(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n let _countries = await getCountries(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n let _regional = await getRegional(globalState.accessToken)\r\n .then(response => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n });\r\n\r\n setFillBusinessAreaData(_businessAreas);\r\n setFillCountriesData(_countries);\r\n setFillRegionalData(_regional);\r\n };\r\n\r\n React.useEffect(() => {\r\n initialLoad();\r\n }, [i18n.language]);\r\n\r\n const generateReport = () => {\r\n let filterObject = {\r\n businessArea: filteredPressItems.idAreaNegocio,\r\n startPeriod: filteredPressItems.dataInicio,\r\n endPeriod: filteredPressItems.dataFim,\r\n status: filteredPressItems.bloqueado,\r\n country: filteredPressItems.idPais,\r\n regional: filteredPressItems.idRegional,\r\n }\r\n\r\n const reports = true;\r\n\r\n getPressItemsFiltered(globalState.accessToken, filteredPressItems, idTipo, reports)\r\n .then(response => {\r\n if (response.ok) {\r\n Promise.resolve(response.json()).then(data => {\r\n\r\n setPressReportState({\r\n data: data,\r\n allData: filterObject,\r\n });\r\n setSpinnerDuration(0);\r\n });\r\n }\r\n });\r\n }\r\n\r\n const statusRelease = [\r\n {\r\n text: i18n.language === 'pt' ? 'Bloqueado' : 'Blocked',\r\n value: true\r\n }, {\r\n text: i18n.language === 'pt' ? 'Terminado' : 'Finished',\r\n value: false\r\n }\r\n ]\r\n\r\n return (\r\n <>\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n setFilteredPressItems(\r\n filteredPressItems => ({\r\n ...filteredPressItems,\r\n idAreaNegocio: e.value\r\n })\r\n )}\r\n showClearButton={true}\r\n />\r\n
    \r\n
    \r\n \r\n setFilteredPressItems(\r\n filteredPressItems => ({\r\n ...filteredPressItems,\r\n dataInicio: e.startDate && e.startDate.toISOString().split('.')[0],\r\n dataFim: e.endDate && e.endDate.toISOString().split('.')[0]\r\n })\r\n )}\r\n />\r\n
    \r\n
    \r\n \r\n setFilteredPressItems(\r\n filteredPressItems => ({\r\n ...filteredPressItems,\r\n bloqueado: e.value\r\n })\r\n )}\r\n showClearButton={true}\r\n />\r\n
    \r\n
    \r\n \r\n setFilteredPressItems(\r\n filteredPressItems => ({\r\n ...filteredPressItems,\r\n idPais: e.value\r\n })\r\n )}\r\n showClearButton={true}\r\n />\r\n
    \r\n
    \r\n \r\n setFilteredPressItems(\r\n filteredPressItems => ({\r\n ...filteredPressItems,\r\n idRegional: e.value\r\n })\r\n )}\r\n showClearButton={true}\r\n />\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n}\r\n","import * as React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Container, Row } from \"reactstrap\";\r\nimport { ReportComponent } from \"../pressReport/ReportComponent\";\r\nimport { FilterComponent } from \"../pressReport/FilterComponent\";\r\nimport { PressReportStateContext } from \"../pressReport/PressReportState\";\r\nimport '../pressReport/pressReport.css';\r\nimport PermissionRedirect from \"../utilities/PermissionRedirect/PermissionRedirect\";\r\nexport const ReleaseReport = () => {\r\n\r\n const { t } = useTranslation();\r\n const [pressReportState] = React.useContext(PressReportStateContext);\r\n\r\n const idTipo = 1;\r\n\r\n return (\r\n <>\r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {t(\"PressReport:title-release\")}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n {\r\n pressReportState &&\r\n pressReportState.data &&\r\n pressReportState.data.length > 0 &&\r\n\r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n
    \r\n \r\n )\r\n}\r\n","import * as React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Container, Row } from \"reactstrap\";\r\nimport { ReportComponent } from \"../pressReport/ReportComponent\";\r\nimport { FilterComponent } from \"../pressReport/FilterComponent\";\r\nimport { PressReportStateContext } from \"../pressReport/PressReportState\";\r\nimport '../pressReport/pressReport.css';\r\nimport PermissionRedirect from \"../utilities/PermissionRedirect/PermissionRedirect\";\r\n\r\nexport const StatementsReport = () => {\r\n\r\n const { t } = useTranslation();\r\n const [pressReportState] = React.useContext(PressReportStateContext);\r\n const idTipo = 2;\r\n\r\n return (\r\n <>\r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {t(\"PressReport:title-statement\")}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n {\r\n pressReportState &&\r\n pressReportState.data &&\r\n pressReportState.data.length > 0 &&\r\n\r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n
    \r\n \r\n )\r\n}\r\n","import * as React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Container, Row } from \"reactstrap\";\r\nimport { ReportComponent } from \"../pressReport/ReportComponent\";\r\nimport { FilterComponent } from \"../pressReport/FilterComponent\";\r\nimport { PressReportStateContext } from \"../pressReport/PressReportState\";\r\nimport '../pressReport/pressReport.css';\r\nimport PermissionRedirect from \"../utilities/PermissionRedirect/PermissionRedirect\";\r\n\r\nexport const PositionReport = () => {\r\n\r\n const { t } = useTranslation();\r\n const [pressReportState] = React.useContext(PressReportStateContext);\r\n const idTipo = 3;\r\n\r\n return (\r\n <>\r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {t(\"PressReport:title-position\")}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n {\r\n pressReportState &&\r\n pressReportState.data &&\r\n pressReportState.data.length > 0 &&\r\n\r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n
    \r\n \r\n )\r\n}\r\n","import * as React from 'react';\r\nimport i18n from 'i18next';\r\nimport { Route } from 'react-router';\r\nimport { Layout } from './components/Layout';\r\nimport { Home } from './components/pages/Home';\r\nimport { Profile } from './components/pages/Profile';\r\nimport { Users } from './components/pages/Users';\r\nimport { UsersItem } from './components/pages/UsersItem';\r\nimport { Templates } from './components/pages/Templates';\r\nimport { TemplateItem } from './components/pages/TemplateItem';\r\nimport { Banners } from './components/pages/Banners';\r\nimport { Suppliers } from './components/pages/Suppliers';\r\nimport { SuppliersItem } from './components/pages/SuppliersItem';\r\nimport { Releases } from './components/pages/Releases';\r\nimport { ReleasesItem } from './components/pages/ReleasesItem';\r\nimport { Statements } from './components/pages/Statements/Statements';\r\nimport { StatementsItem } from './components/pages/Statements/StatementsItem';\r\nimport { PositionPaper } from './components/pages/PositionPaper/PositionPaper';\r\nimport { PositionPaperItem } from './components/pages/PositionPaper/PositionPaperItem';\r\nimport { Liaison } from './components/liaison/Liaison';\r\nimport { LiaisonItem } from './components/liaison/LiaisonItem';\r\nimport { LiaisonReport } from './components/liaisonReport/LiaisonReport';\r\nimport { Contacts } from './components/mailing/contacts/Contacts';\r\nimport { ContactsItem } from './components/mailing/contacts/ContactsItem';\r\nimport { GeneralContacts } from './components/generalMailing/contacts/Contacts';\r\nimport { GeneralContactsItem } from './components/generalMailing/contacts/ContactsItem';\r\nimport { Groups } from './components/mailing/groups/Groups';\r\nimport { GroupsItem } from './components/mailing/groups/GroupsItem';\r\nimport { GeneralGroups } from './components/generalMailing/groups/Groups';\r\nimport { GeneralGroupsItem } from './components/generalMailing/groups/GroupsItem';\r\nimport { QA } from './components/pages/QA/QA';\r\nimport { QAItem } from './components/pages/QA/QAItem';\r\nimport { WebcastNotices } from './components/pages/WebcastNotices/WebcastNotices';\r\nimport { WebcastNoticesItem } from './components/pages/WebcastNotices/WebcastNoticesItem';\r\nimport { AssignmentNotices } from './components/pages/AssignmentNotices/AssignmentNotices';\r\nimport { AssignmentNoticesItem } from './components/pages/AssignmentNotices/AssignmentNoticesItem';\r\nimport { PressSharedDocuments } from './components/sharedDocuments/Press';\r\nimport { PublicSharedDocuments } from './components/pages/PublicSharedDocuments';\r\nimport { LoginComponent } from './components/pages/LoginComponent.js';\r\nimport { getRoutes } from './components/utilities/Utils';\r\nimport { Breadcrumbs } from './components/utilities/Breadcrumb';\r\nimport { PlanningAndResearch } from './components/sharedDocuments/PlanningAndResearch';\r\nimport { EventsVisits } from './components/sharedDocuments/EventsVisits';\r\nimport { DigitalMediaSharedDocuments } from './components/sharedDocuments/DigitalMedia';\r\nimport { CommunicationWithEmployees } from './components/sharedDocuments/CommunicationWithEmployees';\r\nimport { CommunicationEmployees } from './components/communicationEmployees/CommunicationEmployees';\r\nimport { CommunicationEmployeesItem } from './components/communicationEmployees/CommunicationEmployeesItem';\r\nimport { Events } from './components/sharedDocuments/Events';\r\nimport { GlobalGuidelines } from './components/sharedDocuments/GlobalGuidelines';\r\nimport { GlobalCalendar } from './components/sharedDocuments/GlobalCalendar';\r\nimport { InternalCampaigns } from './components/sharedDocuments/InternalCampaigns';\r\nimport { DirectCommunication } from './components/sharedDocuments/DirectCommunication';\r\nimport { InternalResearchResults } from './components/sharedDocuments/InternalResearchResults';\r\nimport { SpecialProjects } from './components/sharedDocuments/SpecialProjects';\r\nimport { InternalVehicles } from './components/sharedDocuments/InternalVehicles';\r\nimport { BrandingSharedDocuments } from './components/sharedDocuments/BrandingAdvertising';\r\nimport { BrandCenter } from './components/sharedDocuments/BrandCenter';\r\nimport { PublicShareDocuments } from './components/publicShare/PublicShare';\r\n\r\nimport { Brazil } from './components/sharedDocuments/Brazil';\r\nimport { Canada } from './components/sharedDocuments/Canada';\r\nimport { China } from './components/sharedDocuments/China';\r\nimport { Global } from './components/sharedDocuments/Global';\r\nimport { Indonesia } from './components/sharedDocuments/Indonesia';\r\nimport { Japan } from './components/sharedDocuments/Japan';\r\nimport { Malasya } from './components/sharedDocuments/Malasya';\r\nimport { Mozambique } from './components/sharedDocuments/Mozambique';\r\nimport { NewCaledonia } from './components/sharedDocuments/NewCaledonia';\r\nimport { Oman } from './components/sharedDocuments/Oman';\r\nimport { Paraguay } from './components/sharedDocuments/Paraguay';\r\nimport { Singapore } from './components/sharedDocuments/Singapore';\r\nimport { Switzerland } from './components/sharedDocuments/Switzerland';\r\nimport { Peru } from './components/sharedDocuments/Peru';\r\n\r\n\r\nimport { GlobalStateProvider } from './components/general/GlobalState';\r\nimport { LoginStateProvider } from './components/login/LoginState';\r\nimport { AppInsightsContextProvider } from './components/general/AppInsightsContext';\r\nimport { MailingContactsProvider } from './components/mailing/contacts/MailingContactsContext';\r\nimport { MailingContactsProviderGeneral } from './components/generalMailing/contacts/MailingContactsContext';\r\nimport { loadCldr, L10n } from '../node_modules/@syncfusion/ej2-base';\r\nimport { ProfilePhotoProvider } from './components/utilities/ProfilePhoto/ProfilePhotoContext';\r\nimport { ReleaseStateProvider } from './components/releases/ReleaseState';\r\nimport { DigitalMediaProvider } from './components/digitalMedia/context/DigitalMediaContext';\r\nimport { LiaisonReportStateProvider } from './components/liaisonReport/LiaisonReportState';\r\nimport { PressReportStateProvider } from './components/pressReport/PressReportState';\r\n\r\nimport { DigitalMedia } from './components/digitalMedia/DigitalMedia';\r\nimport { ManageInternalAreas } from './components/manageInternalAreas/ManageInternalAreas';\r\nimport { ManageAnnualBudget } from './components/manageAnnualBudget/ManageAnnualBudget';\r\nimport { ManageContracts } from './components/manageContracts/ManageContracts';\r\nimport { MeasurementReport } from './components/measurementReport/MeasurementReport';\r\nimport { AdvertisingBudget } from './components/advertisingBudget/AdvertisingBudget';\r\nimport { FormContainerAdBudget } from './components/advertisingBudget/FormContainerAdBudget';\r\nimport { WhoIsWhoItem } from './components/whoiswho/WhoIsWhoItem';\r\nimport { MessageHouseItem } from './components/messageHouse/MessageHouseItem';\r\n\r\nimport { ContractProvider } from './components/manageContracts/context/ContractsContext';\r\nimport { ModalProvider } from './hooks/Modal';\r\nimport { MessageHouseProvider } from './components/messageHouse/context/MessageHouseContext';\r\nimport { ErrorLogs } from './components/errorLogs/ErrorLogs';\r\n\r\nimport { Historico } from './components/historico/Historico';\r\n\r\nimport { LastLocationProvider } from 'react-router-last-location';\r\nimport TagManager from 'react-gtm-module'\r\nimport { Signature } from './components/signature/Signature';\r\nimport { SignatureItem } from './components/signature/SignatureItem';\r\nimport { ReleaseReport } from './components/releases/ReleaseReport';\r\nimport { StatementsReport } from './components/statements/StatementsReport';\r\nimport { PositionReport } from './components/position/PositionReport';\r\n\r\nconst tagManagerArgs = {\r\n gtmId: `${process.env.REACT_APP_GTM_ID}`\r\n}\r\n\r\nTagManager.initialize(tagManagerArgs)\r\n\r\nloadCldr(\r\n require('../node_modules/cldr-data/supplemental/numberingSystems.json'),\r\n require('../node_modules/cldr-data/main/pt/ca-gregorian.json'),\r\n require('../node_modules/cldr-data/main/pt/numbers.json'),\r\n require('../node_modules/cldr-data/main/pt/timeZoneNames.json'),\r\n require('../node_modules/cldr-data/main/pt/currencies.json'),\r\n require('../node_modules/cldr-data/supplemental/weekData.json'),\r\n);\r\n\r\nL10n.load(require('../node_modules/@syncfusion/ej2-locale/src/pt.json'));\r\n\r\nL10n.load(require('./resources/syncfusion.pt-BR.json'));\r\nL10n.load(require('./resources/syncfusion.en-US.json'));\r\n\r\nconst renderRouter = (props, Component) => {\r\n const crumbs = getRoutes()\r\n .filter(({ path }) => props.match.path.indexOf(path) ===0)\r\n .map(({ path, ...rest }) => ({\r\n path: Object.keys(props.match.params).length\r\n ? Object.keys(props.match.params).reduce(\r\n (path, param) =>\r\n path.replace(`:${param}`, props.match.params[param]),\r\n path,\r\n )\r\n : path,\r\n ...rest,\r\n }));\r\n return (\r\n <>\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst App = () => {\r\n window.dataLayer.push({\r\n event: 'pageview'\r\n });\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n renderRouter(props, LoginComponent)} />\r\n renderRouter(props, Home)} />\r\n renderRouter(props, Profile)} />\r\n renderRouter(props, Users)} />\r\n \r\n renderRouter(props, GeneralContacts)} />\r\n renderRouter(props, GeneralContactsItem)} />\r\n \r\n renderRouter(props, GeneralGroups)} />\r\n renderRouter(props, GeneralGroupsItem)} />\r\n renderRouter(props, UsersItem)} />\r\n renderRouter(props, Templates)} />\r\n renderRouter(props, TemplateItem)} />\r\n renderRouter(props, Suppliers)} />\r\n renderRouter(props, SuppliersItem)} />\r\n renderRouter(props, Banners)} />\r\n renderRouter(props, ErrorLogs)} />\r\n renderRouter(props, Signature)} />\r\n renderRouter(props, SignatureItem)} />\r\n \r\n renderRouter(props, ReleaseReport)} />\r\n renderRouter(props, StatementsReport)} />\r\n renderRouter(props, PositionReport)} />\r\n \r\n \r\n renderRouter(props, Releases)} />\r\n renderRouter(props, ReleasesItem)} />\r\n renderRouter(props, Statements)} />\r\n renderRouter(props, StatementsItem)} />\r\n renderRouter(props, PositionPaper)} />\r\n renderRouter(props, PositionPaperItem)} />\r\n renderRouter(props, QA)} />\r\n renderRouter(props, QAItem)} />\r\n renderRouter(props, WebcastNotices)} />\r\n renderRouter(props, WebcastNoticesItem)} />\r\n renderRouter(props, AssignmentNotices)} />\r\n renderRouter(props, AssignmentNoticesItem)} />\r\n renderRouter(props, Historico)} />\r\n \r\n renderRouter(props, PlanningAndResearch)} />\r\n renderRouter(props, EventsVisits)} />\r\n\r\n renderRouter(props, Brazil)} />\r\n renderRouter(props, Canada)} />\r\n renderRouter(props, China)} />\r\n renderRouter(props, Global)} />\r\n renderRouter(props, Indonesia)} />\r\n renderRouter(props, Oman)} />\r\n renderRouter(props, Japan)} />\r\n renderRouter(props, Malasya)} />\r\n renderRouter(props, Mozambique)} />\r\n renderRouter(props, NewCaledonia)} />\r\n renderRouter(props, Paraguay)} />\r\n renderRouter(props, Peru)} />\r\n renderRouter(props, Singapore)} />\r\n renderRouter(props, Switzerland)} />\r\n\r\n renderRouter(props, Liaison)} />\r\n renderRouter(props, LiaisonItem)} />\r\n \r\n renderRouter(props, Contacts)} />\r\n renderRouter(props, ContactsItem)} />\r\n \r\n \r\n \r\n renderRouter(props, LiaisonReport)} />\r\n \r\n renderRouter(props, Groups)} />\r\n renderRouter(props, GroupsItem)} />\r\n renderRouter(props, PressSharedDocuments)} />\r\n \r\n renderRouter(props, DigitalMedia)} />\r\n \r\n renderRouter(props, DigitalMediaSharedDocuments)} />\r\n renderRouter(props, CommunicationWithEmployees)} />\r\n renderRouter(props, GlobalCalendar)} />\r\n renderRouter(props, InternalCampaigns)} />\r\n renderRouter(props, Events)} />\r\n renderRouter(props, GlobalGuidelines)} />\r\n renderRouter(props, DirectCommunication)} />\r\n renderRouter(props, InternalResearchResults)} />\r\n renderRouter(props, SpecialProjects)} />\r\n renderRouter(props, InternalVehicles)} />\r\n renderRouter(props, CommunicationEmployees)} />\r\n renderRouter(props, CommunicationEmployeesItem)} />\r\n renderRouter(props, ManageInternalAreas)} />\r\n renderRouter(props, ManageAnnualBudget)} />\r\n \r\n renderRouter(props, ManageContracts)} />\r\n \r\n renderRouter(props, MeasurementReport)} />\r\n renderRouter(props, AdvertisingBudget)} />\r\n renderRouter(props, FormContainerAdBudget)} />\r\n renderRouter(props, BrandingSharedDocuments)} />\r\n renderRouter(props, BrandCenter)} />\r\n {/* renderRouter(props, FormContainerAdBudget)} /> */}\r\n renderRouter(props, WhoIsWhoItem)} />\r\n \r\n renderRouter(props, MessageHouseItem)} />\r\n \r\n \r\n \r\n \r\n {/* */}\r\n renderRouter(props, PublicSharedDocuments)} />\r\n \r\n renderRouter(props, PublicShareDocuments)} />\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default App;\r\n","// In production, we register a service worker to serve assets from local cache.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\r\n// cached resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\r\n// This link also includes instructions on opting out of this behavior.\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport default function register () {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Lets check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl);\r\n } else {\r\n // Is not local host. Just register service worker\r\n registerValidSW(swUrl);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW (swUrl) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the old content will have been purged and\r\n // the fresh content will have been added to the cache.\r\n // It's the perfect time to display a \"New content is\r\n // available; please refresh.\" message in your web app.\r\n console.log('New content is available; please refresh.');\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker (swUrl) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n if (\r\n response.status === 404 ||\r\n response.headers.get('content-type').indexOf('javascript') === -1\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister () {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import i18n from \"i18next\";\r\nimport { initReactI18next } from \"react-i18next\";\r\nimport EN from \"./resources/enus.json\";\r\nimport PT from \"./resources/ptbr.json\";\r\n\r\nconst cache = localStorage.getItem(\"NovoCGCUserCache\") && JSON.parse(localStorage.getItem(\"NovoCGCUserCache\")) ;\r\nconst initLng = cache && cache.userLanguage ? String(cache.userLanguage) :\r\n String(navigator.userLanguage).indexOf(\"pt\") !== -1 || String(navigator.language).indexOf(\"pt\") !== -1 ? \"pt\" : \"en\";\r\n\r\n// the translations\r\n// (tip move them in a JSON file and import them)\r\nconst resources = {\r\n en: EN,\r\n pt: PT\r\n};\r\n\r\ni18n\r\n .use(initReactI18next) // passes i18n down to react-i18next\r\n .init({\r\n resources,\r\n //lng: \"pt\",\r\n lng: initLng,\r\n\r\n keySeparator: false, // we do not use keys in form messages.welcome\r\n\r\n interpolation: {\r\n escapeValue: false // react already safes from xss\r\n }\r\n });\r\n\r\nexport default i18n;","import 'bootstrap/dist/css/bootstrap.css';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport App from './App';\r\nimport registerServiceWorker from './registerServiceWorker';\r\nimport './i18n';\r\n\r\nimport './css/icons.css';\r\nimport './css/custom.css';\r\nimport './css/material.css';\r\n\r\nrequire('dotenv').config();\r\n\r\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\r\nconst rootElement = document.getElementById('root');\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n rootElement);\r\n\r\nregisterServiceWorker();\r\n"],"sourceRoot":""}