{"version":3,"sources":["utility/formatInputField.ts","components/table/TableHeader.tsx","components/gaverbidrag/TableOptionsGaverBidrag.tsx","components/eiendom/eiendomtableoptions/TableOptionsEiendomType.tsx","components/eiendom/eiendomtableoptions/TableOptionsEiendomLeietaker.tsx","components/eiendom/eiendomtableoptions/TableOptionsEiendomDriftsform.tsx","components/table/TableRows.tsx","components/table/VerticalRows.tsx","components/table/Table.tsx","components/customhtmlcomponents/Button.tsx","components/customhtmlcomponents/FooterButtons.tsx","services/useToken.js","services/ApiConfig.js","utility/UrlConstants.ts","components/CustomNavLink.tsx","components/NavigationBar.tsx","components/customhtmlcomponents/LoadingCircle.tsx","components/customhtmlcomponents/LoadingSpinnerComponent.tsx","components/kos/Kos.tsx","components/customhtmlcomponents/Input.tsx","components/lokalforening/LokalforeningTemplate.ts","utility/dateUtils.ts","components/lokalforening/Lokalforening.tsx","components/ErrorComponent.tsx","components/adminpanel/types.tsx","utility/passwordGen.tsx","components/adminpanel/panels/GenerateForeningPanel.tsx","utility/downloadFile.ts","components/adminpanel/panels/AdministrateForeningPanel.tsx","components/adminpanel/AdminPanel.tsx","components/login/Login.tsx","components/gaverbidrag/GaverBidrag.tsx","components/Home.tsx","components/eiendom/Eiendom.tsx","components/customhtmlcomponents/modal/Modal.tsx","components/styret/Styret.tsx","components/aktiviteter/Aktiviteter.tsx","components/rapport/Rapport.tsx","services/useUser.js","services/useForening.js","components/regnskapstabell/RegnskapTabellTemplate.tsx","components/regnskapstabell/Regnskapstabell.tsx","components/App.tsx","reportWebVitals.ts","index.tsx"],"names":["IntlNubmerFormatter","number","cov_qhkrfws75","Intl","NumberFormat","format","removeWhiteSpaces","str","Number","replace","formatStringToNumber","string","cov_k8wmslpgq","TableHeader","columns","addRow","showRowActions","hideColumns","tableHeadTrClassName","headers","map","column","index","tableHeadClassName","colSpan","className","header","isWide","type","onClick","viewBox","fill","d","cov_16gmc7tho1","TableOptionsGaverBidrag","handleChange","id","name","onChange","e","value","alternativ","cov_fssa388n5","TableOptionsEiendomType","disabled","capitalize","lodash","title","cov_1jj2cd8rhv","TableOptionsEiendomLeietaker","leietaker","cov_otpxdbtx5","TableOptionsEiendomDriftsform","driftsform","tdClassName","tdBeskrivelseClassName","labelStyle","labelOn","defaultLabelStyle","cov_2itpuce4tj","TableRows","data","removeRow","isAdmin","rowData","setRowData","useState","useEffect","keys","flatMap","t","filter","k","key","c","rows","row","index2","uniqueKey","isUserEditingAdminColumn","editAsAdminOnly","flex","textStyle","label","String","labelopts","placeholder","isNumberField","inputType","length","labelClassName","cov_g7c3ajj1u","VerticalRows","entityName","items","setItems","getColumnCell","item","cIndex","htmlFor","verticalRows","itemRows","itemRow","itemHeader","leftItems","x","i","rightItems","tableClassName","cov_ws7qzx59z","Table","footer","children","rowActionsAsAdminOnly","useVerticalRows","enabled","cov_ivmtoblc9","Button","underline","restProps","cov_9dvfnf2nv","FooterButtons","previousLocation","saveOnClick","hidePreviousButton","isSubmitting","useHistory","style","backgroundColor","getToken","tokenString","sessionStorage","getItem","JSON","parse","axios","_axios","create","interceptors","request","use","config","token","error","Promise","reject","environment","process","apiUrl","URLS","LOKALFORENING_POST","LOKALFORENING_GET","STYRET_POST","STYRET_GET","EIENDOM_POST","EIENDOM_GET","AKTIVITET_POST","AKTIVITET_GET","KOS_POST","KOS_GET","GAVER_BIDRAG_POST","GAVER_BIDRAG_GET","REGNSKAP_POST","REGNSKAP_GET","RAPPORT_GET","LOGIN_POST","ADMIN_FORENING_SOK_GET","ADMIN_LASTNED_AAR_RAPPORT_GET","LASTNED_RAPPORT_GET","ADMIN_OPPRETT_FORENING_POST","ADMIN_OPPDATER_FORENING_PUT","ADMIN_SLETT_FORENING_DELETE","ADMIN_LASTNED_REGNSKAPSRAPPORT_GET","cov_23eyhxghsd","CustomNavLink","text","link","to","activeClassName","NavigationBar","cov_8h4jmbnms","cov_1gto46m0u0","LoadingCircle","xmlns","cx","cy","r","stroke","strokeWidth","cov_1j42u3apce","LoadingSpinnerComponent","MoteType","isBlank","cov_na9njtgja","test","Kos","currentForeningReportNumber","message","setModal","username","kosDto","setKosDto","foreningsNummer","toString","kursOpplaeringRows","isLoading","setIsLoading","setIsSubmitting","onKosDtoReceived","response","antallDeltagere","antallMoter","sentralRows","moteType","Sentralt","push","get2024SentralArrangements","foreningNummer","startId","arrangements","arrangement","navn","getNextId","fylkeRows","Fylke","get2024FylkeArrangements","lokalRows","Lokal","get2023LokalArrangements","kosStateDto","console","log","maxId","Math","max","async","get","Accept","then","catch","setTimeout","getKos","history","postFormData","filteredDto","filterOutEmptyRows","removeWhiteSpacesKursOpplaeringRows","kursOpplaeringRow","dto","createFilteredDto","post","body","redirectToNextPage","pathname","state","slice","handleRowChange","target","newItem","updatedRows","prevState","newID","Date","getMilliseconds","valueOf","newRow","toRemove","removed","kurs","sentralArrangementColumns","fylkeArrangementColumns","lokalArrangementColumns","onSubmit","preventDefault","styles","Input","React","forwardRef","props","ref","cov_1964bxm0ld","checkbox","setValue","checkboxContent","inputMode","defaultChecked","inputContent","onFocus","select","onWheel","currentTarget","blur","numberInputContent","toNumber","num","undefined","event","lokalforeningTemplate1","lokalforeningTemplate2","medlemsinformasjonTemplate","getRapportAar","getUTCFullYear","cov_lvahscmp1","LokalForening","register","handleSubmit","errors","getValues","useForm","lokalforening1","setLokalforening1","lokalforening2","setLokalforening2","medlemsinformasjon","setMedlemsinformasjon","stateForeningsNummer","setForeningNummer","rapportAar","setRapportAar","handleNavBarClick","obj","antallMedlemmer","antallBetalendeMedlemmer","antallNyeMedlemmerSisteAr","antallUtmeldteMedlemmerSisteAr","gjennomsnittsAlder","rest","integerValues","Object","forEach","mapObjectFieldsToInt","prepareValuesForPost","submitLokalForening","location","useLocation","fylke","kommune","organisasjonsNummer","foreningsNavn","kontoNummer","facebookReferanse","epost","webAdresse","getLokalForening","adminStyle","maxLength","readOnly","ErrorComponent","cov_lseu1gjf","initialState","foreningerSok","match","loading","currentForening","NaN","password","active","viewer","foreningList","successful","generator","require","cov_200ga3sjjj","GenerateForeningPanel","dispatch","processing","isProcessing","processingStyle","disabledStyle","submitForening","opprettForeningsNavn","opprettForeningsNummer","opprettForeningsPassord","stringify","mess","payload","required","min","generatePassword","generate","numbers","uppercase","cov_umb5z70w","downloadFile","fileEnding","year","url","window","URL","createObjectURL","Blob","document","createElement","href","fileName","toLocaleDateString","setAttribute","appendChild","click","cov_2c2kru6jok","AdministrateForeningPanel","forening","handleForeningChange","setCurrentForeningReportNumber","isViewer","control","setActive","oppdaterForening","put","fjernForening","confirm","delete","openForeningRapport","downloadReport","responseType","err","finally","cov_8y7pg8ehu","reducer","action","AdminPanel","useReducer","downloading","setDownloading","handleSearchInput","toLowerCase","dropDown","renderForening","downloadExcel","panel","openOwnReport","parseInt","autoComplete","checked","downloadRegnskapsRapport","downloadInntektAndKostnadRapport","useStyles","makeStyles","theme","cov_2paoqfqxiy","cardHeader","display","flexWrap","Link","fontSize","textAlign","color","isButtonDisabled","helperText","isError","default","Login","setUser","setToken","setProcessing","trim","handleLogin","currentState","authorization","status","decodedToken","jwtDecode","scopes","includes","alert","handleKeyPress","keyCode","which","noValidate","CardContent","TextField","fullWidth","margin","onKeyPress","cov_1z9bcfke0y","GaverBidrag","gaveDto","setGaveDto","beskrivelse","belop","totalBelop","removeWhiteSpacesFromRows","appendEmpty","formattedRows","total","gaverState","gaveRowDtos","filteredRows","pop","filterRows","isEmpty","values","every","isRowEmpty","getGaver","sum","reduce","acc","curr","width","oldItems","indexOf","filteredItems","splice","toal","minliste","footerData","Home","cov_ulcgl3xl","cov_lp3vilviu","Eiendom","eiendomDto","setEiendomDto","eiendomRows","foreningHarEiendommer","setForeningHarEiendommer","eiendomRowsFormatted","antallBoenheter","eiendomRowState","eiendomRowDtos","onEiendomDtoReceived","getEiendom","removedWhiteSpacesEiendomRows","saveSuccessMessage","eiendomColumns","popUp","eiendomHandleChange","eiendom","eiendomAddRow","gbruksnummer","adresse","kontaktPerson","tlfKontaktPerson","mailKontaktPerson","kontrakterKlauser","kommentar","endringer","bokfortVerdi","ligningsVerdi","forsikringsVerdi","markedsVerdi","kvm","fastUtleidKvm","sporadiskUtleieKvm","dagerMedSporadiskUtleie","cov_2dmcix9uo9","Modal","cov_sxsko9gdh","Styret","lastYearStyre","setLastYearStyre","ar","lederNavn","lederMedlemNummer","lederTelefon","lederEpost","nestlederNavn","nestlederMedlemNummer","nestlederTelefon","nestlederEpost","kassererNavn","kassererMedlemNummer","kassererTelefon","kassererEpost","setAr","submitStyret","getStyret","getLastYearStyret","lastYear","getLastYear","pattern","cov_2hdwc2wl0s","Aktivitet","aar","setAar","forrigeAr","setForrigeAr","kvinnehelseAktiviter","fieldName","fieldNameNextYear","displayName","tryggeLokalSamfunnActivitiesToDisplay","submit","entries","getAktiviteter","getActivityRow","activity","getHeaderRow","cov_15pi3p571q","Rapport","downloadRapport","getScopes","scopesString","useUser","user","getUser","userString","saveUser","removeItem","setItem","getCurrentForeningReportNumber","kostnaderTemplate","kostnadFastelavensris","kostnadMaiblomst","kostnadAdventskalender","kostnadBasarMesseUtlodningBingoMm","nksFondMinDagIDag","gaverOkonomiskeBidrag","aktiviteter","husleie","andreDriftsutgifter","input","driftskostnader","vedlikehold","avskrivninger","inntekterTemplate","inntektFastelavensris","inntektMaiblomst","inntektAdventskalender","inntektBasarMesseUtlodningBingoMm","grasrotandelen","gaver","mvarefusjon","tilbakefortKontigent","offentligeTilskudd","tilskuddSomErOremerket","andreInntekter","leieinntekterEgenEiendom","fasteLeieinntekterPaEgenEiendom","kasseOgBankTemplate","kasseOgBank","beholdningObligasjonerAksjerVerdipapir","verdienAvFastEiendom","cov_2rjjpdevw9","Regnskapstabell","kostnader","setKostnader","inntekter","setIntekter","setKasseOgBank","formattedDto","prepareDto","resultat","updateTotals","getRegnskap","args","a","b","income","pick","expenses","totalIncome","totalExpenses","result","handleInntekerChange","intekt","handleKostnaderChange","kostnad","handleKasseOgBankeChange","formValues","App","cov_cjyyuf232","isScopesSet","useCurentForeningReportNumber","userToken","useToken","modal","setMessage","Container","src","alt","path","render","exact","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","cov_ymj2v3uua","ReactDOM","StrictMode","getElementById"],"mappings":"gpGAAO,MAAMA,EAAuBC,IAAoBC,EAADA,gBAE9CC,KAAKC,aAAa,SAASC,OAAOJ,IACzCC,SACK,MAAMI,EAAqBC,IAAiBL,EAADA,gBACzCM,OAAOD,EAAIE,QAAQ,MAAO,MACjCP,SACK,MAAMQ,EAAwBC,IAAoBT,EAADA,gBAC/CM,OAAOG,EAAOF,QAAQ,aAAc,MAC3CP,SAMAA,UAQEA,U,84DCtBsBU,SA6DXC,MApDKA,EAClBC,UACAC,SACAC,iBACAC,kBAC0CL,EAADA,OACzC,MAAMM,GAAoB,SAAG,oCACvBC,GAAO,SAAGL,EAAQM,KAAI,CAACC,EAAQC,KAAWV,EAADA,OAC7C,MAAMW,GAAkB,SAAG,sBAC3B,OADgDX,SAE9C,oBACEY,QAASH,EAAOG,QAEhBC,WACE,YAAkB,gBAAlBJ,EAAOK,SAAwB,YAC/BL,EAAOM,SAAM,YACTJ,IAAkB,YAClBA,EAAqB,eAC1B,SAEAF,EAAOK,QAAM,mBARGJ,GASd,KAIT,OAFGV,SAGD,gCACE,qBAAIa,UAAWP,EAAqB,WACjC,aAAgB,IAAhBD,IAAoB,YAAIE,KACxB,YAAAH,IAAc,YACb,oBAAIS,UAAU,2EAA0E,SACtF,yBACEG,KAAK,SACLC,QAASd,EACTU,UAAU,wHAC6D,UAEvE,qBAAKA,UAAU,aAAaK,QAAQ,YAAW,SAC7C,sBACEC,KAAK,eACLC,EAAE,sNAGN,4BAAG,sBAKL,E,o7BC1DcC,SA0BXC,MAxBiBA,EAAGZ,QAAOa,mBAAsCF,EAADA,gBAE3E,yBACER,UAAU,iMAGVW,GAAG,aACHC,KAAK,aACLC,SAAWC,IAAMN,oBAAaM,EAAGjB,IACjCkB,MAAOlB,EAAMmB,WAAW,UAExB,wBAAQD,MAAM,2BAA0B,SAAC,6BACzC,wBAAQA,MAAM,0BAAyB,SAAC,6BACxC,wBAAQA,MAAM,qBAAoB,SAAC,wBACnC,yBAAQA,MAAM,iCAA6B,UACxC,IAAG,oCAGN,wBAAQA,MAAM,QAAO,SAAC,WACtB,wBAAQA,MAAM,cAAa,SAAC,gBAC5B,wBAAQA,MAAM,QAAO,SAAC,c,6hCCrBAE,SA8BbC,MA7BiBA,EAAGrB,QAAOa,eAAcS,eAAkCF,EAADA,OACvF,MAAMG,GAAU,SAAGC,IAAOD,WAAWvB,EAAMM,OAC3C,OADiDc,SAE/C,qBAAKjB,UAAU,OAAM,SACnB,yBACEA,UAAU,wMAGVY,KAAK,OACLU,MAAM,OACNT,SAAWC,IAAMG,oBAAaH,EAAGjB,IACjCkB,MAAOK,EACPD,SAAUA,EAAS,UAEnB,wBAAQJ,MAAM,2BAA0B,sCAGxC,wBAAQA,MAAM,cAAa,SAAC,iBAC5B,wBAAQA,MAAM,YAAW,SAAC,gBAC1B,wBAAQA,MAAM,eAAc,SAAC,kBAC7B,wBAAQA,MAAM,UAAS,SAAC,YACxB,wBAAQA,MAAM,aAAY,SAAC,eAC3B,wBAAQA,MAAM,cAAa,SAAC,mDAC5B,wBAAQA,MAAM,oBAAmB,SAAC,oDAClC,wBAAQA,MAAM,gBAAe,SAAC,oDAE5B,E,shCC3BkBQ,SA6BbC,MA5BsBA,EACnC3B,QACAa,eACAS,eACuBI,EAADA,OACtB,MAAMH,GAAU,SAAGC,IAAOD,WAAWvB,EAAM4B,YAC3C,OADsDF,SAEpD,qBAAKvB,UAAU,OAAM,SACnB,yBACEA,UAAU,wMAGVY,KAAK,YACLU,MAAM,YACNT,SAAWC,IAAMS,oBAAaT,EAAGjB,IACjCkB,MAAOK,EACPD,SAAUA,EAAS,UAEnB,wBAAQJ,MAAM,2BAA0B,sCAGxC,wBAAQA,MAAM,kBAAiB,SAAC,qBAChC,wBAAQA,MAAM,UAAS,SAAC,aACxB,wBAAQA,MAAM,eAAc,SAAC,qBAE3B,E,whCC3BkBW,SAiCbC,MA/BuBA,EACpC9B,QACAa,eACAS,eACuBO,EAADA,OACtB,MAAMN,GAAU,SAAGC,IAAOD,WAAWvB,EAAM+B,aAC3C,OADuDF,SAErD,qBAAK1B,UAAU,OAAM,SACnB,yBACEA,UAAU,8MAGVY,KAAK,aACLU,MAAM,aACNT,SAAWC,IAAMY,oBAAaZ,EAAGjB,IACjCkB,MAAOK,EACPD,SAAUA,EAAS,UAEnB,wBAAQJ,MAAM,4BAA2B,uCAGzC,wBAAQA,MAAM,eAAc,SAAC,iBAC7B,wBAAQA,MAAM,YAAW,SAAC,cAC1B,wBAAQA,MAAM,6BAA4B,wCAG1C,wBAAQA,MAAM,QAAO,SAAC,cAEpB,E,6iNCXV,MAAMc,GAAW,SAAG,0CACdC,GAAsB,SAC1B,yDACIC,GAAU,SAAG,CAAEC,SAAS,EAAOC,mBAAmB,IAAOC,SAqLhDC,MAnLGA,EAChBC,OACA/C,UACAgD,YACA3B,eACApB,SACAgD,UACA/C,qBACwC2C,EAADA,OACvC,MAAOK,EAASC,IAAW,SAAGC,mBAASL,IAAMF,SAC7CQ,qBAAU,KAAOR,EAADA,gBACdM,EAAWJ,EAAK,GACf,CAAC1B,IACJ,MAAMiC,GAAI,SAAU,OAAPJ,QAAO,IAAPA,OAAO,EAAPA,EAASK,SACnBC,IACCX,+BAGuB,QAHvBA,qBAAOS,KAAKE,GACTC,QAAQC,IAAMb,kBAAM,OAANA,KAEdvC,KAAKqD,IAAQd,qBAAEc,aAAK,qBAAI3D,EAAQM,KAAKsD,IAAMf,mBAAU,OAAVA,EAAEc,OAAa,KAG3DE,GAAI,UAAGX,EAAQ5C,KAAI,CAACwD,EAAKtD,KAAWqC,EAADA,iBAErC,qBACElC,UAAU,4CAEVW,GAAIgC,EAAK9C,GAA4B,UAEpCR,EAAQM,KAAI,CAACC,EAAQwD,KAAYlB,EAADA,OACjC,MAAMmB,GAAS,oBAAMxD,EAAK,YAAIuD,IACtBE,GAAwB,UAAG,aAA2B,IAA3B1D,EAAO2D,kBAAwB,aAAKjB,IACrE,OAD4EJ,UACzD,SAAftC,EAAOoD,KAAiBd,EAADA,oBAEvB,oBAA2BlC,UAAW6B,EAAY,SAChD,cAAC,EAAuB,CACtBlB,GAAE,sBAAiB0C,GACnB3C,aAAcA,EACdb,MAAOsD,EACPhC,SAAUmC,KAAyB,eALtBF,MASdlB,sBAAmB,cAAftC,EAAOoD,KAAsBd,EAADA,oBAEnC,oBAA2BlC,UAAW6B,EAAY,SAChD,cAAC,EAA4B,CAC3BlB,GAAE,2BAAsB0C,GACxB3C,aAAcA,EACdb,MAAOsD,EACPhC,SAAUmC,KAAyB,eALtBF,MASdlB,sBAAmB,eAAftC,EAAOoD,KAAuBd,EAADA,oBAEpC,oBAA2BlC,UAAW6B,EAAY,SAChD,cAAC,EAA6B,CAC5BlB,GAAE,qBAAgB0C,GAClB3C,aAAcA,EACdb,MAAOsD,EACPhC,SAAUmC,KAAyB,eALtBF,MASdlB,sBAAI,YAAe,UAAftC,EAAOoD,MAAe,YAAmB,cAAfpD,EAAOoD,MAAqBd,sBAE7D,qBAEElC,UAAW6B,EAAc,oBAAoB,UAE7C,cAAC,GAAK,CACJ2B,OAAQ5D,EAAO6D,UACfzD,UAAS,UAAqB,QAAhB,YAAL,EAAKJ,EAAO6D,iBAAS,qBAAI,yBAClC7C,KAAMhB,EAAOoD,IACbU,MAAO,GACP/C,GAAE,UAAKgD,OAAO/D,EAAOoD,KAAI,YAAII,EAAM,YAAIvD,GACvC+D,UAAW7B,EACX8B,YAAajE,EAAOK,OACpBc,MAAOoC,EAAIvD,EAAOoD,KAClBc,eAAe,EACf3D,KAAK,OACLU,SAAWC,IAAMoB,qBAAapB,EAAGqC,IACjChC,SAAUmC,IAEZ,sBAAMtD,UAAU,kFAAiF,SAC/F,sBAAMA,UAAU,yBAAwB,SAAC,YACrC,eAnBOoD,MAsBZlB,sBAAmB,eAAftC,EAAOoD,KAAuBd,EAADA,oBAEpC,oBACEnC,QAASH,EAAOG,QAEhBC,UAAW6B,EAAY,SAEvB,cAAC,EAAuB,CACtBlB,GAAE,sBAAiB0C,GACnB3C,aAAcA,EACdb,MAAOsD,KAAI,eANAC,MAWjBlB,sBACE,oBACEnC,QAASH,EAAOG,QAEhBC,UACEJ,EAAOM,QAAM,YACT2B,EAAc,YAAS,YACvBC,GACL,SAED,cAAC,GAAK,CACJ0B,MAAM,EAGNxD,UAAS,UAAqB,QAAhB,aAAL,EAAKJ,EAAO6D,iBAAS,sBAAI,mBAClC9C,GAAE,kBAAagD,OAAO/D,EAAOoD,KAAI,YAAIK,GACrCK,MAAM,GACNI,cAAelE,EAAOkE,cACtBF,UAAW7B,EACX5B,KAAMP,EAAOmE,UACbF,YAAajE,EAAOK,OACpBW,KAAMhB,EAAOoD,IACbjC,MAAOoC,EAAIvD,EAAOoD,KAClBnC,SAAWC,IAAMoB,qBAAapB,EAAGqC,IACjChC,SAAUmC,GAXLH,EAAIxC,KAW0B,eArBxByC,SA3C+ClB,IAADA,EAwC/DA,CA2BC,KAEJ,aAAA3C,IAAc,aACf,mCACKM,IAAU0C,EAAQyB,OAAS,GAAC,aAC7B,6BACE,yBACE7D,KAAK,SACLC,QAASd,EACTU,UAAU,wHAAuH,UAEjI,qBAAKA,UAAU,aAAaK,QAAQ,YAAW,SAC7C,sBACEC,KAAK,eACLC,EAAE,sNAGN,4BAAG,kBAEF,aAEL,6BACE,yBACEJ,KAAK,SACLC,QAEE,KAAM8B,sBAAUiB,EAAIxC,KAEtBX,UAAU,wHAAuH,UAEjI,qBAAKA,UAAU,aAAaK,QAAQ,YAAW,SAC7C,sBACEC,KAAK,eACLC,EAAE,2LAGN,4BAAG,0BAIP,cAlJQV,QAuJlB,OAFGqC,UAEI,gCAAQgB,GAAa,E,ooOC/L9B,MAAMnB,GAAU,SAAG,CAAEC,SAAS,EAAMC,mBAAmB,IACjDgC,GAAc,SAAG,sCAAoCC,SA6M5CC,MA5MMA,EACnB/B,OACA/C,UACAgD,YACA3B,eACApB,SACAgD,UACA/C,iBACA6E,iBACwCF,EAADA,OACvC,MAAOG,EAAOC,IAAS,SAAG7B,mBAASL,IAAM8B,SACzCxB,qBAAU,KAAOwB,EAADA,gBACdI,EAASlC,EAAK,GACb,CAAC1B,IAEJ,MAAMiC,GAAI,SAAQ,OAAL0B,QAAK,IAALA,OAAK,EAALA,EAAOzB,SACjBC,IACCqB,+BAGuB,QAHvBA,qBAAOvB,KAAKE,GACTC,QAAQC,IAAMmB,kBAAM,OAANA,KAEdvE,KAAKqD,IAAQkB,oBAAElB,aAAK,qBAAI3D,EAAQM,KAAKsD,IAAMiB,mBAAU,OAAVA,EAAElB,OAAa,KAI7DnB,GAAW,UAAG,8EAA6EqC,UAE/F,MAAMK,EAAgBA,CAACC,EAAS3E,EAAeD,EAAoC6E,EAAgBnB,KAAuCY,EAADA,OACvI,MAAMb,GAAS,oBAAMxD,EAAK,YAAI4E,IAC9B,OADsCP,UACnB,SAAftE,EAAOoD,KAAiBkB,EAADA,oBAErB,qBAAyBlE,UAAW6B,EAAY,UAC9C,uBAAO7B,UAAWiE,EAAgBS,QAAO,sBAAiBrB,GAAY,SACjEzD,EAAOK,SAEZ,cAAC,EAAuB,CACtBU,GAAE,sBAAiB0C,GACnB3C,aAAcA,EACdb,MAAO2E,EACPrD,SAAUmC,MAAyB,UAR3BD,MAYTa,sBAAmB,cAAftE,EAAOoD,KAAsBkB,EAADA,oBAEnC,qBAAyBlE,UAAW6B,EAAY,UAC9C,uBAAO7B,UAAWiE,EAAgBS,QAAO,2BAAsBrB,GAAY,SACtEzD,EAAOK,SAEZ,cAAC,EAA4B,CAC3BU,GAAE,2BAAsB0C,GACxB3C,aAAcA,EACdb,MAAO2E,EACPrD,SAAUmC,MAAyB,UAR3BD,MAYTa,sBAAmB,eAAftE,EAAOoD,KAAuBkB,EAADA,oBAEpC,qBAAyBlE,UAAW6B,EAAY,UAC9C,uBAAO7B,UAAWiE,EAAgBS,QAAO,qBAAgBrB,GAAY,SAChEzD,EAAOK,SAEZ,cAAC,EAA6B,CAC5BU,GAAE,qBAAgB0C,GAClB3C,aAAcA,EACdb,MAAO2E,EACPrD,SAAUmC,MAAyB,UAR3BD,MAYTa,sBAAI,YAAe,UAAftE,EAAOoD,MAAe,YAAmB,cAAfpD,EAAOoD,MAAqBkB,sBAE7D,qBAEElE,UAAW6B,EAAc,oBAAoB,UAE7C,cAAC,GAAK,CACJ2B,OAAQ5D,EAAO6D,UACfzD,UAAS,UAAqB,QAAhB,YAAL,EAAKJ,EAAO6D,iBAAS,qBAAI,yBAClC7C,KAAMhB,EAAOoD,IACbU,MAAO9D,EAAOK,OACdU,GAAE,UAAKgD,OAAO/D,EAAOoD,KAAI,YAAIK,GAC7BO,UAAW7B,EACX8B,YAAajE,EAAOK,OACpBc,MAAOyD,EAAK5E,EAAOoD,KACnBc,eAAe,EACf3D,KAAK,OACLU,SAAWC,IAAMoD,qBAAapD,EAAG0D,IACjCrD,SAAUmC,IAEZ,sBAAMtD,UAAU,kFAAiF,SAC/F,sBAAMA,UAAU,yBAAwB,SAAC,YACrC,UAnBEqD,MAsBPa,sBAAmB,eAAftE,EAAOoD,KAAuBkB,EAADA,oBAEpC,oBAEElE,UAAW6B,EAAY,SAEvB,cAAC,EAAuB,CACtBnB,aAAcA,EACdb,MAAO2E,KAAK,UALNnB,MAUZa,sBACE,oBAEElE,UAAW6B,EAAY,SAEvB,cAAC,GACC,CAEA7B,UAAU,2DACVW,GAAE,UAAKgD,OAAO/D,EAAOoD,KAAI,YAAIK,GAC7BK,MAAO9D,EAAOK,OACd6D,cAAelE,EAAOkE,cACtBF,UAAW7B,EACXkC,eAAe,qCACf9D,KAAMP,EAAOmE,UACbF,YAAajE,EAAOK,OACpBW,KAAMhB,EAAOoD,IACbjC,MAAOyD,EAAK5E,EAAOoD,KACnBnC,SAAWC,IAAMoD,qBAAapD,EAAG0D,IACjCrD,SAAUmC,GAAyB,qBAZhBzD,EAAK,YAAI4E,EAAM,YAAI7E,EAAOK,UAYV,UAjB7BoD,SAxCoDa,IAADA,CA4D9D,EACNA,UAED,MAcMS,GAAY,UAAGN,EAAM1E,KAAI,CAAC6E,EAAM3E,KAAWqE,EAADA,QAC9C,MAAMU,GAAQ,UAAGvF,EAAQM,KAAI,CAACC,EAAQ6E,KAAWP,oBAfnCW,EAACL,EAAS3E,EAAeD,EAAoC6E,EAAgB9B,KAAoBuB,EAADA,OAC9G,MAAMZ,GAAwB,UAAG,aAA2B,IAA3B1D,EAAO2D,kBAAwB,aAAKjB,IAErE,OAF4E4B,UAGxE,oBACIlE,UAAU,YAEVW,GAAE,kBAAagC,EAAK9C,GAAM,YAAI4E,GAA8B,SAE3DF,EAAcC,EAAM3E,EAAOD,EAAQ6E,EAAQnB,IAAyB,cAHzDzD,EAAK,YAAI4E,GAIpB,EAKwCP,CAAQM,EAAM3E,EAAOD,EAAQ6E,EAAQ9B,OAEhFmC,GAAU,UACZ,+BAEI,oBAAI9E,UAAU,2CAA0C,SACpD,8BACA,oBAAGA,UAAU,GAAE,UACVoE,EAAW,IAAEvE,EAAQ,UAI7B,YAAAN,IAAc,YACb,6BACA,yBACIY,KAAK,SACLC,QAEA,KAAM8D,sBAAUM,EAAK7D,KAErBX,UAAU,0GAAyG,UAEnH,qBAAKA,UAAU,aAAaK,QAAQ,YAAW,SAC/C,sBACIC,KAAK,eACLC,EAAE,2LAGN,4BAAG,mBAGR,iBA5BcV,KAgCvB,OAFCqE,UAGG,sBAAKlE,UAAU,MAAK,UACf8E,EACAF,IACC,KAING,GAAS,UAAGJ,EAAa7B,QAAO,CAACkC,EAAGC,KAAMf,sBAAI,IAAM,MACpDgB,GAAU,UAAGP,EAAa7B,QAAO,CAACkC,EAAGC,KAAMf,sBAAI,IAAM,MAE3D,OAF6DA,UAEtD,wBAAOlE,UAAU,QAAO,UAC7B,qBAAKA,UAAU,mBAAkB,SAC5B+E,IAEL,qBAAK/E,UAAU,oBAAmB,SAC7BkF,MAEC,E,85CCnLV,MAAMC,GAAc,SAClB,sFAAqFC,SAkDxEC,MAhDDA,EACZjD,OACA/C,UACAgD,YACA/C,SACAgG,SACA5E,eACA6E,WACAjD,UACAkD,wBACAC,kBACArB,iBACoCgB,EAADA,OACnC,MAAM7F,GAAc,SAAG,aAACiG,IAAqB,YAAIlD,IACjD,OADwD8C,SAEtD,wBAAOpF,UAAWmF,EAAe,UAC/B,cAAC,EAAW,CAAC7F,OAAQA,EAAQD,QAASA,EAASE,eAAgBA,EAAgBC,YAAaiG,IAE1FA,GAAe,YACb,cAAC,EAAY,CACXnG,OAAQA,EACRoB,aAAcA,EACd0B,KAAMA,EACN/C,QAASA,EACTgD,UAAWA,EACXC,QAASA,EACT/C,eAAgBA,EAChB6E,WAAYA,MACZ,YAGF,cAAC,EAAS,CACR9E,OAAQA,EACRoB,aAAcA,EACd0B,KAAMA,EACN/C,QAASA,EACTgD,UAAWA,EACXC,QAASA,EACT/C,eAAgBA,MAKrB,aAAM,OAAN+F,QAAM,IAANA,OAAM,EAANA,EAAQI,WAAO,YAAIH,MACd,E,22BChF6DI,SAmB1DC,MAbiBA,IAE5BD,IAF6B,UAACE,GAAS,aAAG,GAAI,UAAE7F,EAAS,SAAEuF,GAAuB,EAAVO,sDAExEH,yEACI3F,UAAS,mUAMcA,IAAiB8F,GAAS,aAChDP,IACI,E,65CCf+BQ,SAwB7BC,MAjBOA,EAAEC,mBAAkBC,cAAaC,qBAAoBC,mBAAuCL,EAADA,OAChG,SAAGM,cAChB,OAD4BN,SAExB,sCACK,aAACI,IAAkB,YAAI,wBAAQhG,KAAK,SAASC,QAAUU,IAAKiF,oBAAYjF,EAAEmF,IAAmB9E,SAAUiF,EACpGpG,UAAU,kSAE0C,uBAGxD,eAAC,EAAM,CAACG,KAAK,SAASgB,SAAUiF,EAAcpG,UAAU,yDAAyDsG,MAAO,CAACC,gBAAiBH,GAAY,YAAG,SAAM,YAAE,2CAA0C,qBAC/L,uBAAK,oBAElB,E,QCpBJ,MAAMI,EAAWA,KACtB,MAAMC,EAAcC,eAAeC,QAAQ,SAC3C,OAAOC,KAAKC,MAAMJ,EAAY,ECDhC,MAAMK,E,OAAQC,EAAOC,SACrBF,EAAMG,aAAaC,QAAQC,KACzBC,IACE,MAAMC,EAAQb,IAId,OAHIa,IACFD,EAAO1H,QAAuB,cAAI2H,GAE7BD,CAAM,IAEfE,GACSC,QAAQC,OAAOF,KAIXR,Q,w+BCjBf,MAAMW,GAAW,SAAGC,QAEdC,GAAM,SAAmB,SAAhBF,GAAsB,YAAG,2CAAwC,YAC9D,QAAhBA,GAAqB,YAAG,0CAAuC,YAC/D,2BA2BWG,GAA4B,SAAG,CAC1CC,mBAAmB,GAAD,OAAqBF,EAAM,2BAC7CG,kBAAkB,GAAD,OAAsBH,EAAM,wBAC7CI,YAAY,GAAD,OAA4BJ,EAAM,oBAC7CK,WAAW,GAAD,OAA6BL,EAAM,iBAC7CM,aAAa,GAAD,OAA2BN,EAAM,cAC7CO,YAAY,GAAD,OAA4BP,EAAM,cAC7CQ,eAAe,GAAD,OAAyBR,EAAM,uBAC7CS,cAAc,GAAD,OAA0BT,EAAM,oBAC7CU,SAAS,GAAD,OAA+BV,EAAM,cAC7CW,QAAQ,GAAD,OAAgCX,EAAM,cAC7CY,kBAAkB,GAAD,OAAsBZ,EAAM,gBAC7Ca,iBAAiB,GAAD,OAAuBb,EAAM,gBAC7Cc,cAAc,GAAD,OAA0Bd,EAAM,mBAC7Ce,aAAa,GAAD,OAA2Bf,EAAM,mBAC7CgB,YAAY,GAAD,OAA4BhB,EAAM,kBAC7CiB,WAAW,GAAD,OAA6BjB,EAAM,eAC7CkB,uBAAuB,GAAD,OAAiBlB,EAAM,yBAC7CmB,8BAA8B,GAAD,OAAUnB,EAAM,6BAC7CoB,oBAAoB,GAAD,OAAoBpB,EAAM,kBAC7CqB,4BAA4B,GAAD,OAAYrB,EAAM,2BAC7CsB,4BAA4B,GAAD,OAAYtB,EAAM,6BAC7CuB,4BAA4B,GAAD,OAAYvB,EAAM,0BAC7CwB,mCAAmC,GAAD,OAAKxB,EAAM,mC,u5BCrDrByB,SAOnB,MAAMC,EAAgBA,EAC3BC,OACAC,OACArD,kBACyBkD,EAADA,gBAEtB,eAAC,IAAO,CACNpJ,UAAU,yGACVwJ,GAAID,EACJnJ,QAAUU,IAAMsI,oBAAYtI,EAAGyI,IAC/BE,gBAAgB,sEAAqE,UAEpFH,EAAM,Q,ooBCkCEI,OA/Cf,UAAuB,YAAExD,IACvB,OADwDyD,GAADA,iBAErD,sBAAK3J,UAAU,sGAAqG,UAClH,cAACqJ,EAAa,CACZC,KAAM,mBACNC,KAAM,gBACNrD,YAAaA,IAEf,cAACmD,EAAa,CACZC,KAAM,YACNC,KAAM,SACNrD,YAAaA,IAEf,cAACmD,EAAa,CACZC,KAAM,aACNC,KAAM,UACNrD,YAAaA,IAEf,cAACmD,EAAa,CACZC,KAAM,eACNC,KAAM,cACNrD,YAAaA,IAEf,cAACmD,EAAa,CACZC,KAAM,iCACNC,KAAM,MACNrD,YAAaA,IAEf,cAACmD,EAAa,CACZC,KAAM,mCACNC,KAAM,MACNrD,YAAaA,IAEf,cAACmD,EAAa,CACZC,KAAM,qBACNC,KAAM,kBACNrD,YAAaA,IAEf,cAACmD,EAAa,CACZC,KAAM,aACNC,KAAM,UACNrD,YAAaA,MAIrB,E,muBCpD0B0D,UAEnB,MAAMC,GAAgBA,KAAOD,GAADA,iBAE/B,mCACE,sBACE5J,UAAU,6CACV8J,MAAM,6BACNxJ,KAAK,OACLD,QAAQ,YAAW,UAEnB,wBACEL,UAAU,aACV+J,GAAG,KACHC,GAAG,KACHC,EAAE,KACFC,OAAO,eACPC,YAAY,MAEd,sBACEnK,UAAU,aACVM,KAAK,eACLC,EAAE,0H,2vBCrBc6J,UAWXC,ICgBVC,GDhBUD,GATiBA,KAAOD,GAADA,iBAElC,sBAAKpK,UAAU,sBAAqB,UAClC,cAAC6J,GAAa,IACd,4BAAG,sB,q/hBCoCF,SAASU,GAAQzL,GACtB,OADoC0L,GAADA,iBAC5B,cAAC1L,IAAG,aAAI,QAAQ2L,KAAK3L,GAC9B,EAjBa,SAARwL,KAAQ,oBAARA,EAAQ,cAARA,EAAQ,eAARA,QAAQ,KAiBZE,UAiBAA,UAkBAA,UAiBAA,WAwWcE,OAtWYA,EACzBC,8BACAC,UACAC,WACAC,eACKN,GAADA,OACJ,MAAOO,EAAQC,IAAU,WAAGvI,mBAAiB,CAC3CwI,gBAAiBN,EAA4BO,WAC7CC,mBAAoB,OAEfC,EAAWC,IAAa,WAAG5I,oBAAS,KACpC2D,EAAckF,IAAgB,WAAG7I,oBAAS,IAAO+H,WAExD,MAAMe,EAAoBC,IAAqChB,GAADA,OAC5D,MAAM,mBAAEW,EAAkB,gBAAEF,IAAiB,WAC3CO,EAASpJ,MACLc,GAAI,WAAGiI,EAAmBxL,KAAK6E,IAAWgG,GAADA,6CAC1ChG,GAAI,IACPiH,gBAAiBlN,EAAoBiG,EAAKiH,iBAC1CC,YAAanN,EAAoBiG,EAAKkH,mBAGlCC,GAAW,WAAGzI,EAAKJ,QAAOkC,IAAKwF,wBAAEoB,WAAatB,GAASuB,aAASrB,WAE5C,IAAvBmB,EAAY3H,QAAcwG,GAADA,qBAC1BtH,EAAK4I,QA7EwBC,EAACC,EAAwBC,KAA6CzB,GAADA,OACtG,MAAM0B,GAAY,UAAG,CACnB,gGACA,iIAEF,OADC1B,UACM0B,EAAavM,KAAKwM,IAAiB3B,GAADA,iBAChC,CACLS,gBAAiBe,EACjBrL,GAAIsL,IACJG,KAAMD,EACNV,gBAAiB,GACjBC,YAAa,GACbE,SAAUtB,GAASuB,YAErB,EA+DeE,CAA2BpB,EAA6B0B,EAAUnJ,MAChF,aAED,MAAMoJ,GAAS,WAAGpJ,EAAKJ,QAAOkC,IAAKwF,wBAAEoB,WAAatB,GAASiC,UAAM/B,WACzC,IAArB8B,EAAUtI,QAAcwG,GAADA,qBACxBtH,EAAK4I,QAjEsBU,EAACR,EAAwBC,KAA6CzB,GAADA,OACpG,MAAM0B,GAAY,UAAG,CACnB,sBACA,qDACA,oDAEF,OADC1B,UACM0B,EAAavM,KAAI,CAACwM,EAAatM,KAAW2K,GAADA,iBACvC,CACLS,gBAAiBe,EACjBrL,GAAIsL,IACJG,KAAMD,EACNV,gBAAiB,GACjBC,YAAa,GACbE,SAAUtB,GAASiC,SAErB,EAkDeC,CAAyB7B,EAA6B0B,EAAUnJ,MAC9E,aAED,MAAMuJ,GAAS,WAAGvJ,EAAKJ,QAAOkC,IAAKwF,wBAAEoB,WAAatB,GAASoC,UAAMlC,WACzC,IAArBiC,EAAUzI,QAAcwG,GAADA,qBACxBtH,EAAK4I,QApDsBa,EAACX,EAAwBC,KAA6CzB,GAADA,OACpG,MAAM0B,GAAY,WAAG,CACnB,eACA,gCAEF,OADC1B,WACM0B,EAAavM,KAAI,CAACwM,EAAatM,KAAW2K,GAADA,kBACvC,CACLS,gBAAiBe,EACjBrL,GAAIsL,IACJG,KAAMD,EACNV,gBAAiB,GACjBC,YAAa,GACbE,SAAUtB,GAASoC,SAErB,EAsCeC,CAAyBhC,EAA6B0B,EAAUnJ,MAC9E,aAED,MAAM0J,GAAW,WAAG,CAClB3B,gBAAiBA,EACjBE,mBAAoBjI,IACpBsH,WACFqC,QAAQC,IAAIF,GAAapC,WACzBQ,EAAU4B,EAAY,EACtBpC,WAEF,MAAM6B,EAAanJ,IAAkCsH,GAADA,QAClD,MAAMuC,GAAK,WAAGC,KAAKC,OAAO/J,EAAKvD,KAAIqF,IAAKwF,wBAAE7J,QAC1C,OAD8C6J,WACvCtH,EAAKc,OAAS,GAAC,aAAG,IAAC,aAAG+I,EAAQ,EAAC,EACvCvC,WAED9H,qBAAU,KAAO8H,GAADA,mBAgBZA,WAfa0C,WAAa1C,GAADA,mBACzBa,GAAa,GAAMb,iBACb1D,EACHqG,IAAI,GAAD,OAAIvF,EAAKU,SAAO,OAAGqC,GAA+B,CACpDjL,QAAS,CACP0N,OAAQ,mBACR,eAAgB,sBAGnBC,MAAM7B,IAAqChB,GAADA,mBACzCqC,QAAQC,IAAItB,GAAUhB,WACtBe,EAAiBC,EAAS,IAE3B8B,OAAOhG,IAAUkD,8BAAQsC,IAAIxF,MAAQkD,WACxC+C,YAAW,KAAM/C,yBAAa,KAAQ,IAAI,EAE5CgD,EAAQ,GACP,IAEH,MAAMC,GAAO,WAAGpH,eAAamE,WAW3BA,WACF,MAAMtE,EAAcgH,MAAOpM,EAA6ByI,KAAkBiB,GAADA,mBACvEkD,GAAa,EAAM,EACnBlD,WAEF,MAAMkD,EAAeR,UAAwC1C,GAADA,mBAC1Dc,GAAgB,GAAMd,WACtBqC,QAAQC,IAAI,iCACZ,MAAMa,GAAW,WAgDnB,WAA8BnD,GAADA,QAC3B,MAAM,mBAAEW,IAAoB,WAC1ByC,KACIC,GAAmC,WAAG1C,EAAmBxL,KAC5DmO,IAAwBtD,GAADA,8CACnBsD,GAAiB,IACpBrC,gBAAiB5M,EACfiP,EAAkBrC,gBAAgBP,YAEpCQ,YAAa7M,EACXiP,EAAkBpC,YAAYR,kBAI9B6C,GAAG,sCACJhD,GAAM,IACTI,mBAAoB0C,KAEtB,OADErD,WACKuD,CACT,CAnEsBC,IAAoBxD,WACxC1D,EACGmH,KAAKrG,EAAKS,SAAUsF,EAAa,CAChCjO,QAAS,CACP0N,OAAQ,mBACR,eAAgB,sBAGnBC,MAAM7B,IAAchB,GAADA,mBAClBqC,QAAQC,IAAItB,GAAUhB,WA3BMA,GAADA,mBAC/BI,EAAQ,CACNsD,KAAM,CACJA,KAAM,CACJtD,QAAQ,uCAGXJ,WACHK,GAAS,GAAML,WACf+C,YAAW,KAAM/C,yBAAS,KAAQ,MAmBTA,WAClB2D,GAAoB3D,GAADA,qBACpB+C,YACE,KAAO/C,GAADA,mBACJc,GAAgB,GAAMd,WACtBiD,EAAQ3B,KAAK,CACXsC,SAAU,OACVC,MAAO1D,GACP,GAEJ,OAEH,gBAEF2C,OAAOhG,IAAWkD,IAADA,wBAChBqC,QAAQC,IAAS,OAALxF,QAAK,IAALA,GAAe,QAAV,EAALA,EAAOkE,gBAAQ,WAAV,EAALlE,EAAiBlF,MAAMoI,WACnCI,EAAQ,CACNsD,KAAM,CACJA,KAAM,CACJ5G,MAAO,2IAGVkD,WACHK,GAAS,GAAML,WACf+C,YAAW,KAAO/C,GAADA,mBACfK,GAAS,GAAML,WACfc,GAAgB,EAAM,GACrB,IAAK,GACR,EACLd,WAED,MAAMoD,EAAqBA,KAAOpD,GAADA,QAC/B,MAAMW,GAAkB,WAAGJ,EAAOI,mBAC/BmD,QACAxL,QAAQC,IAAMyH,uBAACD,GAAQxH,EAAEqJ,UAC5B,OADmC5B,WAC5B,CAAEW,qBAAoB,EAsB9BX,WAKCA,WAEF,MAAM+D,EAAkBA,CAACzN,EAAQqC,KAAcqH,GAADA,mBAC5CqC,QAAQC,IAAI,SAAU/B,EAAOI,oBAC7B,MAAM,KAAEvK,EAAI,MAAEG,IAAO,WAAGD,EAAE0N,SACpB,GAAE7N,IAAI,WAAGwC,GAETsL,GAAO,sCAAQtL,GAAG,IAAE,CAACvC,GAAOG,KAC5B2N,GAAW,WAAG3D,EAAOI,mBAAmBxL,KAAI6E,IAChDgG,wBAAK7J,KAAOA,GAAE,aAAG8N,IAAO,aAAGjK,OAC3BgG,WAEFqC,QAAQC,IAAI,iBAAkB4B,GAAYlE,WAG1CQ,GAAU2D,IAAenE,GAADA,8CACnBmE,GAAS,IACZxD,mBAAoBuD,MACnB,EACHlE,WAEF,MAAMlL,EAAUsM,IAAwBpB,GAADA,QACrC,MAAMoE,GAAK,YAAG,IAAIC,MAAOC,kBAAkBC,WACrCC,GAA4B,WAAG,CACnC/D,gBAAiBN,EACjBhK,GAAIiO,EACJxC,KAAM,GACNX,gBAAiB,GACjBC,YAAa,GACbE,SAAUA,IACVpB,YACFQ,GAAW2D,IAAgBnE,GAADA,+CACrBmE,GAAS,IACZxD,mBAAoB,IAAIwD,EAAUxD,mBAAoB6D,OACrD,EACHxE,YACF,MAAMnI,EAAa1B,IAAgB6J,GAADA,QAChC,IAAIyE,GAAQ,YAAGlE,EAAOI,oBACtB,GADyCX,YACjB,IAApByE,EAASjL,OACX,OAD0BwG,GAADA,2BAE1B,aACD,MAAM0E,GAAO,YAAGD,EAASnM,QAAQqM,IAAS3E,yBAAK7J,KAAOA,MAAI6J,YAC1DQ,GAAW2D,IAAgBnE,GAADA,+CACrBmE,GAAS,IACZxD,mBAAoB+D,MACnB,EAECE,GAGH,YAAG,CACJ,CACEpM,IAAK,OACLe,UAAW,OACX9D,OAAQ,yBACRF,QAAS,EACTG,QAAQ,EACRqD,iBAAiB,GAEnB,CACEP,IAAK,kBACLe,UAAW,OACX9D,OAAQ,yBACRwD,UAAW,oCACXK,eAAe,KAIbuL,GAGH,YAAG,CACJ,CACErM,IAAK,OACLe,UAAW,OACX9D,OAAQ,yBACRsD,iBAAiB,GAEnB,CACEP,IAAK,kBACLe,UAAW,OACX9D,OAAQ,yBACR6D,eAAe,KAIbwL,GAGH,YAAG,CACJ,CACEtM,IAAK,OACLe,UAAW,OACX9D,OAAQ,yBACRsD,iBAAiB,GAEnB,CACEP,IAAK,cACLe,UAAW,OACX9D,OAAQ,kBACR6D,eAAe,KAIbxB,GAAO,YAAgB,MAAbwI,GACVa,GAAW,YAAGZ,EAAOI,mBAAmBrI,QAAOkC,IAAKwF,yBAAEoB,WAAatB,GAASuB,aAC5ES,GAAS,YAAGvB,EAAOI,mBAAmBrI,QAAOkC,IAAKwF,yBAAEoB,WAAatB,GAASiC,UAC1EE,GAAS,YAAG1B,EAAOI,mBAAmBrI,QAAOkC,IAAKwF,yBAAEoB,WAAatB,GAASoC,UAMhF,OANuFlC,YAEvFqC,QAAQC,IAAI,cAAenB,GAAYnB,YACvCqC,QAAQC,IAAI,YAAaR,GAAU9B,YACnCqC,QAAQC,IAAI,YAAaL,GAAUjC,YAGjC,qCACE,cAAC,GAAa,CAACtE,YAAaA,IAC3BkF,GAAS,aACR,cAAC,GAAuB,MAAG,aAE3B,sBAAMmE,SA1HIzO,IAAmC0J,GAADA,mBAChD1J,EAAE0O,iBAAiBhF,WACnBkD,GAAa,EAAK,EAwHS,SACrB,sBAAK1N,UAAU,qBAAoB,UACjC,8BACE,mBAAGA,UAAU,uDAAsD,0DAKrE,qBAAKA,UAAU,6CAA4C,SAEzD,sBAAKA,UAAU,kMAAiM,UAC9M,8BACE,mBAAGA,UAAU,sDAAqD,gGAIpE,cAAC,EAAK,CACJU,aAAc6N,EACdnM,KAAMuJ,EACNtM,QAAS+P,EACT/M,UAAWA,EACX/C,OAAQ,KAAMkL,yBAAOF,GAASuB,WAC9BvJ,QAASA,EACTkD,uBAAuB,SAK7B,qBAAKxF,UAAU,uDAAsD,SACnE,sBAAKA,UAAU,mLAAkL,UAC/L,8BACE,mBAAGA,UAAU,sDAAqD,gFAIpE,cAAC,EAAK,CACJU,aAAc6N,EACdnM,KAAMkK,EACNjN,QAASgQ,EACThN,UAAWA,EACX/C,OAAQ,KAAMkL,yBAAOF,GAASiC,QAC9BjK,QAASA,EACTkD,uBAAuB,SAK7B,qBAAKxF,UAAU,uDAAsD,SACnE,sBAAKA,UAAU,mLAAkL,UAC/L,8BACE,mBAAGA,UAAU,sDAAqD,+EAIpE,cAAC,EAAK,CACJU,aAAc6N,EACdnM,KAAMqK,EACNpN,QAASiQ,EACTjN,UAAWA,EACX/C,OAAQ,KAAMkL,yBAAOF,GAASoC,QAC9BpK,QAASA,EACTkD,uBAAuB,SAK7B,cAAC,EAAa,CACZS,iBAAiB,eACjBC,YAAaA,EACbE,aAAcA,YAKrB,E,2/LCzaP,MAAMqJ,IAAM,oMA+HGC,QAhHJ,UAAGC,IAAMC,YAAyC,CAACC,EAAOC,KAASC,IAADA,YAC3E,MAAM,QACJ/N,EAAO,kBACPC,IACmD,UAAG4N,EAAMjM,YACxD,eAAEK,EAAc,UAAEjE,EAAS,MAAE0D,EAAK,KAAE9C,IAAM,UAAGiP,GAC7CG,GAAQ,UAAGH,EAAMG,UACjBlM,GAAa,UAAG+L,EAAM/L,gBACrB/C,EAAOkP,IAAS,UAAGxN,mBAASoN,EAAM9O,QAAiBgP,UAyB1D,IAAIG,GAAe,WACjB,gDAAU,cAAK,OAALL,QAAK,IAALA,OAAK,EAALA,EAAOrM,QAAI,aAAI,sBAAmB,aAC1C,wBAAOxD,UAAU,2BAA2B0E,QAASmL,EAAMlP,GAAG,UAC5D,iDACMkP,GAAK,IACT7P,UAAW,wBACX8P,IAAKA,EACL3P,KAAM0P,EAAM1P,KACZgQ,UAAWN,EAAMM,UACjBC,eAAoC,QAApB,aAAF,EAAEP,EAAMO,sBAAc,uBAAI,MAE1C,sBAAMpQ,UAAU,yCAAwC,SAAE0D,WAI5D2M,GAAY,WACd,sBAAKrQ,UAAS,UAAK6P,EAAMrM,MAAI,aAAG,SAAM,aAAG,KAAK,UAC3CxB,GAAO,aACN,uBACEhC,UAAS,UACPiC,GAAiB,aACb,sCAAmC,aACnCgC,GAAc,KAEpBS,QAASmL,EAAMlP,GAAG,SAEjB+C,MACK,aACN,MACJ,iDACMmM,GAAK,IACT7P,UAAS,UAAKyP,GAAM,YAAIzP,GACxB8P,IAAKA,EACL3P,KAAM0P,EAAM1P,KACZgQ,UAAWN,EAAMM,UACjBhP,SAAU0O,EAAM1O,SAChBmP,QAAUxP,IAAMiP,uBAAEvB,OAAO+B,UACzBC,QAAU1P,IAAMiP,uBAAEU,cAAcC,eAIlCC,GAAkB,WACpB,sBAAK3Q,UAAS,UAAK6P,EAAMrM,MAAI,aAAG,SAAM,aAAG,KAAK,UAC3CxB,GAAO,cACN,uBACEhC,UAAS,UACPiC,GAAiB,cACb,sCAAmC,cACnCgC,GAAc,KAEpBS,QAASmL,EAAMlP,GAAG,SAEjB+C,MACK,cACN,MACJ,iDACMmM,GAAK,IACT7P,UAAS,UAAKyP,GAAM,YAAIzP,GACxB8P,IAAKA,EACLjP,SAlFgBC,IAA4CiP,GAADA,OAC/D,IAAI,MAAEhP,EAAK,KAAEH,IAAM,UAAGE,EAAE0N,QAExB,GAF+BuB,UAC3BxF,GAAQzJ,EAAE0N,OAAOzN,QAAQgP,0BAAShP,IAAO,wBACzC,aAAA9B,EAAqB8B,KAAM,aAAc,MAAVA,GAAegP,CAACA,GAADA,UAChD,MAAMa,GAAQ,WAAG3R,EAAqB8B,IAChC8P,GAAG,WAAGtS,EAAoBqS,IAAUb,WAC1CE,EAASY,EACX,MAAC,aAED,GAFC,gBAEuBC,KAAf,OAALjB,QAAK,IAALA,OAAK,EAALA,EAAOhP,UAAwBkP,CAACA,GAADA,UACjC,MAAMgB,GAAK,sCACNjQ,GAAC,IACJ0N,OAAO,OAAD,IAAC,CAAD,eACD1N,EAAE0N,QAAM,IACXzN,MAAOA,EAAM/B,QAAQ,MAAO,IAC5B4B,KAAMA,OAERmP,WACFlD,QAAQC,IAAIiE,GAAOhB,WACnBF,EAAMhP,SAASkQ,EACjB,MAAC,cA+DGhQ,MAAOA,EACPZ,KAAM0P,EAAM1P,KACZgQ,UAAWN,EAAMM,UACjBhP,SAAU0O,EAAM1O,SAChBmP,QAAUxP,IAAMiP,uBAAEvB,OAAO+B,UACzBC,QAAU1P,IAAMiP,uBAAEU,cAAcC,eAWtC,OAREX,WACEjM,GAAgBiM,GAADA,sBACjBM,EAAeM,GAChB,yBAEGX,GAAWD,GAADA,sBACZM,EAAeH,GAChB,yBACMG,CAAY,K,wpBCzJd,MAAMW,IAAsB,UAAG,CACpC,CACE1H,KAAM,mBACN1I,KAAM,iBAER,CACE0I,KAAM,sBACN1I,KAAM,sBACNT,KAAM,UAER,CACEmJ,KAAM,QACN1I,KAAM,SAER,CACE0I,KAAM,UACN1I,KAAM,aAIGqQ,IAAsB,UAAG,CACpC,CACE3H,KAAM,+BACN1I,KAAM,cACNT,KAAM,UAER,CACEmJ,KAAM,0BACN1I,KAAM,SAER,CACE0I,KAAM,qBACN1I,KAAM,qBAER,CACE0I,KAAM,cACN1I,KAAM,gBAIGsQ,IAA0B,UAAG,CACxC,CACE5H,KAAM,YACN1I,KAAM,mBAER,CACE0I,KAAM,sBACN1I,KAAM,4BAER,CACE0I,KAAM,4BACN1I,KAAM,6BAER,CACE0I,KAAM,iCACN1I,KAAM,kCAER,CACE0I,KAAM,qBACN1I,KAAM,wBC1DKuQ,Q,geADW,QAAG,IAAItC,MAAOuC,kB,owRCkDf,UAkBvBC,UAoUaC,OAlUgCA,EAC7C3G,8BACAG,WACAF,UACAC,eAC0BwG,GAADA,OACzB,MAAM,SAAEE,EAAQ,SAAEtB,EAAQ,aAAEuB,EAAY,OAAEC,EAAM,UAAEC,IAAW,UAC3DC,iBACKvG,EAAWC,IAAa,UAAG5I,oBAAS,KACpC2D,EAAckF,IAAgB,UAAG7I,oBAAS,KAC1CmP,EAAgBC,IAAkB,UAAGpP,mBAASuO,MAC9Cc,EAAgBC,IAAkB,UAAGtP,mBAASwO,MAC9Ce,EAAoBC,IAAsB,UAAGxP,mBAClDyO,MAEKgB,EAAsBC,IAAkB,UAAG1P,mBAChDkI,IAEI8C,GAAO,UAAGpH,gBACT+L,EAAYC,IAAc,WAAG5P,sBAAW4O,WAC/C,MAAMnL,EAAcgH,MAAOpM,EAA6ByI,KAAkB8H,GAADA,kBACvEvQ,EAAE0O,iBAAiB6B,WACnBiB,IAAoBjF,MAAK,KAAMgE,uBAAQvF,KAAKvC,KAAM,EAClD8H,WAcAA,WAEF,MAAM3D,EAAeR,MAAOwE,EAAgBvD,KAAiCkD,GAADA,kBAC1E/F,GAAgB,GAChB,MAAMiH,GAAG,WA0CX,SAAkDb,GAAiBL,GAADA,QAChE,MAAM,GAOL,WAAGK,IAPE,gBACJc,EAAe,yBACfC,EAAwB,0BACxBC,EAAyB,+BACzBC,EAA8B,mBAC9BC,GAED,EADIC,kJAEL,IAAIC,GAAa,WAAG,CAClBN,kBACAC,2BACAC,4BACAC,iCACAC,uBACAvB,WtB/I+ByB,KAAwBrU,EAADA,iBAC1DsU,OAAOpQ,KAAKmQ,GAAeE,SAAShQ,IAASvE,EAADA,iBAE1CqU,EAAc9P,GAAO/D,EAAqB6T,EAAc9P,GAAe,GACvE,EsB4IAiQ,CAAqBH,GAErB,MAAMP,GAAG,kDACJM,GACAC,GAAa,IAChB7H,gBAAiBN,KAEnB,OADE0G,WACKkB,CACT,CAlEcW,CAAqBxB,IAAWL,WAC5CvK,EACGmH,KAAKrG,EAAKC,mBAAoB0K,GAC9BlF,MAAM7B,IAA6B6F,GAADA,kBACjCxE,QAAQC,IAAItB,EAASpJ,MAAMiP,WApBCA,GAADA,kBAC/BzG,EAAQ,CACNsD,KAAM,CACJA,KAAM,CACJtD,QAAS,gCAIf,WACAC,GAAS,GACT,WACA0C,YAAW,KAAM8D,wBAAS,KAAQ,KAWTA,WAElBlD,GAAoBkD,GAADA,qBACpB9D,YAAW,KACR8D,GAADA,kBACE/F,GAAgB,GAAO+F,WACvB5D,EAAQ3B,KAAK,CACbsC,SAAU,UACVC,MAAO1D,GACL,GAEJ,OAEH,gBAEF2C,OAAOhG,IAAW+J,IAADA,uBAChBxE,QAAQC,IAAS,OAALxF,QAAK,IAALA,GAAe,QAAV,EAALA,EAAOkE,gBAAQ,WAAV,EAALlE,EAAiBlF,MAAMiP,WACnCzG,EAAQ,CACNsD,KAAM,CACJA,KAAM,CACJ5G,MAAO,6HAGV+J,WACHxG,GAAS,GAAMwG,WACf9D,YAAW,KAAO8D,GAADA,kBACfxG,GAAS,GAAMwG,WACf/F,GAAgB,EAAK,GACpB,IAAK,GACR,EAGAgH,GAAiB,WAAGd,GAAatE,UAAsBmE,GAADA,mBAC1D3D,EAAagE,GAAW,EAAM,KA6BhC,MAAMyB,GAAmB,WAAG3B,GAAcE,IAAeL,GAADA,mBACtD3D,EAAagE,GAAW,EAAK,KAEzB0B,GAAQ,WAAGC,eAAchC,WAE/B3O,qBAAU,KAAO2O,GAADA,mBACdxE,QAAQC,IAAInC,GAA6B0G,WACzCpB,EAAS,kBAAmBtF,GAuC3B0G,WAEDxE,QAAQC,IAAI4E,KAAaL,WAvCzBnE,iBAAmCmE,GAADA,QAChC,MAAM7F,GAAQ,iBAAS1E,EAAMqG,IAAI,GAAD,OAC3BvF,EAAKE,mBAAiB,OAAG6C,GAC5B,CACEjL,QAAS,CACP0N,OAAQ,mBACR,eAAgB,uBAGpBiE,WACFxE,QAAQC,IAAItB,GAAU6F,WACtBpB,EAAS,QAASzE,EAASpJ,KAAKkR,OAAOjC,WACvCpB,EAAS,UAAWzE,EAASpJ,KAAKmR,SAASlC,WAC3CpB,EAAS,sBAAuBzE,EAASpJ,KAAKoR,qBAAqBnC,WACnEpB,EAAS,gBAAiBzE,EAASpJ,KAAKqR,eAAepC,WACvDpB,EAAS,cAAezE,EAASpJ,KAAKsR,aAAarC,WACnDpB,EAAS,oBAAqBzE,EAASpJ,KAAKuR,mBAAmBtC,WAC/DpB,EAAS,QAASzE,EAASpJ,KAAKwR,OAAOvC,WACvCpB,EAAS,aAAczE,EAASpJ,KAAKyR,YAAYxC,WACjDpB,EACE,kBACA1R,EAAoBiN,EAASpJ,KAAKoQ,kBAClCnB,WACFpB,EACE,2BACA1R,EAAoBiN,EAASpJ,KAAKqQ,2BAClCpB,WACFpB,EACE,4BACA1R,EAAoBiN,EAASpJ,KAAKsQ,4BAClCrB,WACFpB,EACE,iCACA1R,EAAoBiN,EAASpJ,KAAKuQ,iCAClCtB,WACFpB,EAAS,qBAAsBzE,EAASpJ,KAAKwQ,oBAAoBvB,WACjEgB,EAAc7G,EAASpJ,KAAKgQ,WAC9B,CAGA0B,GAAmBxG,OAAOmE,IAAWJ,8BAAQ/J,MAAMmK,KAAQ,GAC1D,CAACrG,EAAWT,EAA6ByI,EAAS/E,MAAO4B,IAC5D,MAAM3N,GAAO,WAAgB,MAAbwI,GACViJ,GAAU,WAAGzR,GAAO,aAAG,KAAE,aAAG,gBAElC,OADA,WAEE,qCACE,cAAC,GAAa,CAAC4D,YAAaA,IAC5B,qBAAKlG,UAAU,2BAA0B,SACvC,uBAAMuP,SAAU4D,EAAoB,UAClC,oBAAInT,UAAU,2CAA0C,oDAGxD,qBAAKA,UAAU,wDAAuD,SAIpE,sBAAKA,UAAU,uDAAsD,UAEnE,sBACEA,UAAU,gJACkF,UAE5F,mBAAGA,UAAU,gDAA+C,+BAG5D,uBAAOA,UAAU,wBAAuB,SACtC,gCACE,qBAAIA,UAAU,iEAAgE,UAC5E,6BAAI,qBACJ,+BACE,yBAAQA,UAAU,qBAAoB,UACnC2K,EAA8B,IAAK,OAEhB,wBAErByH,GAAU,aACPA,IAAU,aACV,oBAAsBjB,IAAa,cAM/C,sBAAKnR,UAAU,8CAA6C,UAC1D,uBAAOA,UAAU,mBAAkB,SACjC,gCACG4R,EAAejS,KAAI,CAAC6E,EAAM3E,KAAWwR,IAADA,EACnC,OADmCA,sBAEjC,qBAEErR,UAAU,mCAAkC,UAE5C,oBAAIA,UAAU,wFAAuF,SAClGwE,EAAK8E,OAER,oBAAItJ,UAAU,2EAA0E,SACtF,cAAC,GAAK,CACJA,UAAU,8CACVG,KAAe,QAAT,aAAF,EAAEqE,EAAKrE,YAAI,sBAAI,QACnBS,KAAM4D,EAAK5D,KACXkP,IAAKyB,EACL5Q,GAAI6D,EAAK5D,KACT8C,MAAOc,EAAK5D,KACZgD,UAAW,CACT3B,mBAAmB,EACnBD,SAAS,SAhBVnC,EAoBF,QAKb,uBAAOG,UAAU,oBAAmB,SAClC,gCACG8R,EAAenS,KAAI,CAAC6E,EAAM3E,KAAWwR,IAADA,EACnC,OADmCA,sBAEjC,qBAEErR,UAAU,mCAAkC,UAE5C,oBAAIA,UAAU,wFAAuF,SAClGwE,EAAK8E,OAER,oBAAItJ,UAAU,uFAAsF,SAClG,cAAC,GAAK,CACJA,UAAU,+CACVG,KAAe,QAAT,aAAF,EAAEqE,EAAKrE,YAAI,sBAAI,QACnBS,KAAM4D,EAAK5D,KACXkP,IAAKyB,EACL5Q,GAAI6D,EAAK5D,KACT8C,MAAOc,EAAK5D,KACZgD,UAAW,CACT3B,mBAAmB,EACnBD,SAAS,SAhBVnC,EAoBF,cAQjB,sBACEG,UAAU,uJACkF,UAE5F,mBAAGA,UAAU,yDAAwD,oCAGrE,mBAAGA,UAAU,wCAAuC,+GAKpD,uBAAOA,UAAU,0BAAyB,SACxC,gCACGgS,EAAmBrS,KAAI,CAAC6E,EAAM3E,KAAWwR,GAADA,mBAErC,qBAEErR,UAAU,mCAAkC,UAE5C,oBAAIA,UAAU,gEAA+D,SAC1EwE,EAAK8E,OAER,oBAAItJ,UAAU,+DAA8D,SAC1E,cAAC,GAAK,CACJA,UAAS,mEAA8D+T,GACvE5T,KAAK,OACL6T,UAAW,EACXpT,KAAM4D,EAAK5D,KACXkP,IAAKyB,EACL5Q,GAAI6D,EAAK5D,KACT8C,MAAOc,EAAK5D,KACZgD,UAAW,CACT3B,mBAAmB,EACnBD,SAAS,GAEX8B,eAAe,EACfmQ,UAAW3R,QApBVzC,kBAgCrB,cAAC,EAAa,CAACoG,iBAAiB,iBAAiBC,YAAaA,EAAaC,oBAAkB,EAACC,aAAcA,WAG/G,E,2oBC1XQ8N,OAVf,WACE,OADyBC,GAADA,iBAEtB,qBAAKnU,UAAU,cAAa,SAC1B,mBAAGA,UAAU,wBAAuB,+EAK1C,ECyBO,MAAMoU,I,ufAAmB,OAAG,CAC/BC,cAAe,GACfvJ,SAAU,GACVwJ,OAAO,EACPC,SAAS,EACTC,gBAAiB,CACbvJ,gBAAiBwJ,IACjBhB,cAAe,GACfiB,SAAU,GACVC,QAAQ,EACRC,QAAQ,GAEZC,aAAc,GACdC,YAAY,IC7CAC,Q,seADD,OAAGC,EAAQ,M,ooICS2BC,UA8JtCC,OA5JgDA,EAC7D7G,QACA8G,WACAtK,WACAD,cACkCqK,GAADA,OACjC,MAAM,SAAE1D,EAAQ,SAAEtB,EAAQ,aAAEuB,IAAc,UAAGG,gBAAgCsD,UAC7E,MAMMrR,GAAS,UAAG,CAAE5B,SAAS,EAAMC,mBAAmB,KAC/CmT,EAAYC,IAAa,UAAG5S,oBAAS,IACtC6S,GAAe,oBACnBF,GAAU,aAAG,+CAA4C,aAAG,MAAI,iFAE5DG,GAAa,UAAGH,GAAU,cAAG,QAAI,cACjCT,GAAM,WAAG,GACTa,GAAc,UAAGhE,GACrB,EACEiE,uBACAC,yBACAC,0BACAf,aACKK,GAADA,kBACJI,GAAa,GAAMJ,WACnBnO,EACGmH,KACCrG,EAAKoB,4BACL,CACE0M,yBACAD,uBACAE,0BACAhB,SACAC,UAEF,CACElV,QAAS,CACP0N,OAAQ,mBACR,eAAgB,sBAIrBC,MAAM7B,IAEL,GAFgDyJ,GAADA,kBAC/CrO,KAAKgP,UAAUpK,EAASpJ,KAAK8L,MAAM+G,WAC/BzJ,EAASpJ,KAAM6S,CAACA,GAADA,UACjB,IAAIY,GAAI,WAAGrK,EAASpJ,MAAK6S,WACzBrK,EAAQ,CACNsD,KAAM2H,IACLZ,WACHpK,GAAS,GAAMoK,WACf1H,YAAW,KAAM0H,wBAAS,KAAQ,IACpC,MAAC,wBACDE,EAAS,CACPhV,KAAM,qBAEN2V,QAAS,CACP7K,gBAAiByK,EACjBjC,cAAegC,EACfd,QAAQ,KAETM,WACHE,EAAS,CAAEhV,KAAM,WAAY2V,SAAS,GAAO,IAE9CxI,OAAOhG,IAAW2N,IAADA,yBAChBpI,QAAQC,IAAI,QAASxF,EAAMkE,UAC3B,IAAIqK,GAAI,WAAQ,OAALvO,QAAK,IAALA,GAAe,QAAV,EAALA,EAAOkE,gBAAQ,WAAV,EAALlE,EAAiBlF,MAAK6S,WACjCrK,EAAQ,CACNsD,KAAU,QAAJ,aAAF,EAAE2H,SAAI,sBAAI,uDACbZ,WACHpK,GAAS,GAAMoK,WACf1H,YAAW,KAAM0H,wBAAS,KAAQ,IAAK,IAExC5H,MAAK,KAAM4H,wBAAa,KAAO,KAGtC,OADEA,WAEA,sBAAKjV,UAAU,0GAAyG,UACtH,oBAAIA,UAAU,qDAAoD,8BAGlE,uBAAMuP,SAAUiG,EAAe,UAC7B,cAAC,GAAK,CACJ5R,UAAWA,EACXhD,KAAK,yBACL8C,MAAM,kBACNG,YAAY,kBACZlD,GAAG,yBACHmP,IAAKyB,EACLwE,UAAQ,EACR5V,KAAK,SACL6V,IAAI,MAEN,cAAC,GAAK,CACJpS,UAAWA,EACXhD,KAAK,uBACLmV,UAAQ,EACRlS,YAAY,gBACZH,MAAM,gBACN/C,GAAG,uBACHmP,IAAKyB,EACLvR,UAAU,UAEZ,cAAC,GAAK,CACJ4D,UAAWA,EACXhD,KAAK,0BACLmV,UAAQ,EACRlS,YAAY,UACZH,MAAM,kBACN/C,GAAG,0BACHmP,IAAKyB,IAGP,cAAC,GAAK,CACJ3N,UAAWA,EACXhD,KAAK,SACL8C,MAAM,0BACN/C,GAAG,SACHR,KAAK,WACL2P,IAAKyB,EACLvB,UAAU,IAaZ,sBAAKhQ,UAAU,6CAA4C,UACzD,cAAC,EAAM,CACLI,QAlIe6V,KAAOhB,GAADA,iBAC7BhF,EACE,0BACA8E,GAAUmB,SAAS,CAAElS,OAAQ,EAAGmS,SAAS,EAAMC,WAAW,IAC3D,EA+HOjW,KAAK,SACLH,UAAWsV,EACXnU,SAAUoU,EAAc,6BAI1B,cAAC,EAAM,CACLpV,KAAK,SACLH,UAAWsV,EACXnU,SAAUoU,EAAc,sCAM1B,E,i0DCnK8Bc,UAEjC,MAAMC,GAAeA,CAC1B9K,EACA+K,EACAC,EACAvL,KACIoL,GAADA,OACH,MAAMI,GAAG,UAAGC,OAAOC,IAAIC,gBAAgB,IAAIC,KAAK,CAACrL,EAASpJ,SACpDmH,GAAI,UAAGuN,SAASC,cAAc,MAAKV,UACzC9M,EAAKyN,KAAOP,EACZ,MAAMQ,GAAQ,UAAGhM,EAAkB,GAAC,+BACrBA,EAAe,aAAI,IAAI4D,MAAOqI,qBAAoB,YAAIX,KAAY,qCAC/DC,EAAK,EAAC,YAAID,KAAaF,UACzC9M,EAAK4N,aAAa,WAAYF,GAAUZ,UACxCS,SAAS5I,KAAKkJ,YAAY7N,GAAM8M,UAChC9M,EAAK8N,OAAO,EACZhB,U,s4RCJuFiB,UAmP1EC,OAjPwDA,EACrEC,WACAC,uBACA5M,WACAD,UACA8M,iCACAC,eACsCL,GAADA,OACrC,MAAM,SAAE/F,EAAQ,SAAEtB,EAAQ,aAAEuB,EAAY,OAAEC,EAAM,QAAEmG,IAAS,UACzDjG,iBACKyD,EAAYC,IAAa,UAAG5S,oBAAS,KACrCkS,EAAQkD,IAAU,UAAGpV,mBAAS+U,EAAS7C,SAExCW,GAAe,oBACnBF,GAAU,aAAG,+CAA4C,aAAG,MAAI,iFAE5DG,GAAa,UAAGH,GAAU,cAAG,QAAI,cACjCxR,GAAS,UAAG,CAAE5B,SAAS,EAAMC,mBAAmB,IAChD6V,GAAgB,UAAGtG,GACvB,EACE7Q,MAAE,aAAG6W,EAAS7W,IACdsK,kBACAwI,gBACAiB,WACAC,SACAC,aACK0C,GAADA,iBACJjC,GAAa,GAAMiC,UACnBzK,QAAQC,IAAI6H,GAAQ2C,WACpBxQ,EACGiR,IAAI,GAAD,OACCnQ,EAAKqB,6BAA2B,OAAGuO,EAAS7W,IAC/C,CACEA,KACAsK,kBACAwI,gBACAiB,WACAC,SACAC,UAEF,CACElV,QAAS,CACP0N,OAAQ,mBACR,eAAgB,sBAIrBC,MAAM7B,IACL,GADgD8L,GAADA,kBAC3C9L,EAASpJ,KAAMkV,CAACA,GAADA,qBACjBzK,QAAQC,IAAI,gBAAiBtB,EAASpJ,MACtC,IAAIyT,GAAI,WAAGrK,EAASpJ,MAAKkV,WACzBzK,QAAQC,IAAI,UAAW+I,GAAMyB,WAC7B1M,EAAQ,CACNsD,KAAM2H,IACLyB,WACHzM,GAAS,GAAMyM,WACf/J,YAAW,KAAM+J,wBAAS,KAAQ,IACpC,MAAC,gBAEFhK,OAAOhG,IAAWgQ,IAADA,yBAChBzK,QAAQC,IAAI,QAASxF,EAAMkE,UAC3B,IAAIqK,GAAI,WAAQ,OAALvO,QAAK,IAALA,GAAe,QAAV,EAALA,EAAOkE,gBAAQ,WAAV,EAALlE,EAAiBlF,MAAKkV,WACjC1M,EAAQ,CACNsD,KAAU,QAAJ,aAAF,EAAE2H,SAAI,sBAAI,uDACbyB,WACHzM,GAAS,GAAMyM,WACf/J,YAAW,KAAM+J,wBAAS,KAAQ,IAAK,IAExCjK,MAAK,KAAMiK,wBAAa,KAAO,KAEpCA,WACF,MA+BM7J,GAAO,WAAGpH,eAAaiR,WAM3BA,WAqBF,OAREA,WAEF5U,qBAAU,KAAO4U,GAADA,mBACdO,EAAUL,EAAS7C,QAAQ2C,WAC3BrH,EAAS,SAAUuH,EAAS7C,OAAO,GAClC,CAAC6C,EAAS7C,SAAS2C,WACtBzK,QAAQC,IAAI,WAAY0K,GAASF,WAG/B,mCACE,uBAAM/H,SAAUuI,EAAiB,UAC/B,cAAC,GAAK,CACJlU,UAAWA,EACXhD,KAAK,kBACL8C,MAAM,kBACN3C,MAAOyW,EAASvM,gBAChBpH,YAAY,kBACZkS,UAAQ,EACRpV,GAAG,kBACHR,KAAK,SACLU,SAAU4W,EACV3H,IAAKyB,EACLpQ,SAAUwW,IAEZ,cAAC,GAAK,CACJ/T,UAAWA,EACXhD,KAAK,gBACL8C,MAAM,gBACN/C,GAAG,gBACHoV,UAAQ,EACRhV,MAAOyW,EAAS/D,cAChB5S,SAAU4W,EACV3H,IAAKyB,EACLvR,UAAU,QACV6D,YAAY,gBACZ1C,SAAUwW,IAEZ,cAAC,GAAK,CACJ/T,UAAWA,EACXhD,KAAK,WACL8C,MAAM,UACN/C,GAAG,WACHI,MAAOyW,EAAS9C,SAChB7T,SAAU4W,EACV3H,IAAKyB,EACL1N,YAAY,eACZ1C,SAAUwW,IAGZ,cAAC,GAAK,CACJ/W,KAAK,SACL8C,MAAM,QACN/C,GAAG,SACHR,KAAK,WACLU,SAAU4W,EACV3H,IAAKyB,EACL3N,UAAWA,EACXoM,UAAU,EACV7O,SAAUwW,EACVvH,eAAgBoH,EAAS7C,SAG3B,cAAC,GAAK,CACJ/T,KAAK,SACL8C,MAAM,0BACN/C,GAAG,SACHR,KAAK,WACLU,SAAU4W,EACV3H,IAAKyB,EACL3N,UAAWA,EACXoM,UAAU,EACV7O,SAAUwW,EACVvH,eAAgBoH,EAAS5C,SAG3B,sBAAK5U,UAAU,6CAA4C,WACxD,cAAC2X,IAAQ,aACR,qCACE,cAAC,EAAM,CACPhX,GAAG,SACHR,KAAK,SACLH,UAAWsV,EACXnU,SAAUoU,EAAc,+BAI1B,cAAC,EAAM,CACL5U,GAAG,SACHR,KAAK,SACLC,QA3IU4X,KAAOV,GAADA,kBAExBZ,OAAOuB,QAAQ,kDAAD,OACmCT,EAAS/D,iBAEzD6D,GAADA,qBACAjC,GAAa,GAAMiC,WACnBxQ,EACGoR,OAAO,GAAD,OAAItQ,EAAKsB,6BAA2B,OAAGsO,EAAS7W,KACtD0M,MAAM7B,IAA2C8L,GAADA,kBAC/CzK,QAAQC,IAAItB,GACZ,IAAIqK,GAAI,WAAGrK,EAASpJ,MAAKkV,WACzBzK,QAAQC,IAAI,UAAW+I,GAAMyB,WAC7B1M,EAAQ,CACNsD,KAAM2H,IACLyB,WACHzM,GAAS,GAAMyM,WACf/J,YAAW,KAAM+J,wBAAS,KAAQ,IAAK,IAExChK,OAAOhG,IAAWgQ,IAADA,eAChB,IAAIzB,GAAI,WAAQ,OAALvO,QAAK,IAALA,GAAe,QAAV,EAALA,EAAOkE,gBAAQ,WAAV,EAALlE,EAAiBlF,MAAKkV,WACjC1M,EAAQ,CACNsD,KAAU,QAAJ,aAAF,EAAE2H,SAAI,sBAAI,uDACbyB,WACHzM,GAAS,GAAMyM,WACf/J,YAAW,KAAM+J,yBAAS,KAAQ,IAAK,IAExCjK,MAAK,KAAMiK,yBAAa,OAC5B,cAgHStX,UAAWsV,EACXnU,SAAUoU,EAAc,4BAI1B,cAAC,EAAM,CACLpV,KAAK,SACLC,QAnHgB+X,KAAOb,GAADA,QAChC,MAAMrM,GAAe,WAAGuM,EAASvM,iBAAgBqM,WACjDzK,QAAQC,IAAI,gBAAiB7B,GAAiBqM,WAC9CI,EAA+BzM,GAAiBqM,WAChD7J,EAAQ3B,KAAK,CAAEsC,SAAU,iBAAkBC,MAAOpD,GAAkB,EAgH1DjL,UAAWsV,EACXnU,SAAUoU,EAAc,kCAM5B,cAAC,EAAM,CACLpV,KAAK,SACLC,QAtHagY,KAAOd,GAADA,mBAC3BjC,GAAa,GAAMiC,WACnBxQ,EACGqG,IAAI,GAAD,OAAIvF,EAAKmB,qBAAmB,OAAGyO,EAASvM,iBAAmB,CAC7DoN,aAAc,SAEfhL,MAAMpD,IAAOqN,GAADA,mBACXhB,GAAarM,EAAG,OAAQ,EAAGuN,EAASvM,gBAAgB,IAErDqC,OAAOgL,IAAQhB,8BAAQhQ,MAAMgR,MAC7BC,SAAQ,KAAMjB,kCAAW,KAAMA,yBAAa,KAAQ,OAAK,EA6GpDtX,UAAWsV,EACXnU,SAAUoU,EAAc,2BAIzB,aAAAH,IAAU,aAAI,cAAC,GAAuB,aAG1C,E,q4WC5OmCoD,UAE1C,MAAMC,GAAUA,CAACpK,EAAcqK,KAC7B,OADwDF,GAADA,iBAC/CE,EAAOvY,MACb,IAAK,mBACH,OADsBqY,GAADA,oBACd,OAAP,IAAO,CAAP,eACKnK,GAAK,IACRgG,cAAeqE,EAAO5C,UAE1B,IAAK,cACH,OADiB0C,GAADA,oBACT,OAAP,IAAO,CAAP,eACKnK,GAAK,IACRvD,SAAU4N,EAAO5C,UAErB,IAAK,WACH,OADc0C,GAADA,oBACN,OAAP,IAAO,CAAP,eACKnK,GAAK,IACRiG,MAAOoE,EAAO5C,UAElB,IAAK,aACH,OADgB0C,GAADA,oBACR,OAAP,IAAO,CAAP,eACKnK,GAAK,IACRkG,QAASmE,EAAO5C,UAEpB,IAAK,qBACH,OADwB0C,GAADA,oBAChB,OAAP,IAAO,CAAP,eACKnK,GAAK,IACRmG,gBAAiBkE,EAAO5C,UAE5B,IAAK,kBACH,OADqB0C,GAADA,UAAG,GAAD,OACf,OAAP,IAAO,CAAP,eACKnK,GAAK,IACRwG,aAAc6D,EAAO5C,UAGzB,IAAK,gBACH,OADmB0C,GAADA,UAAG,GAAD,OACb,OAAP,IAAO,CAAP,eACKnK,GAAK,IACRyG,WAAY4D,EAAO5C,UAGzB,EACA0C,UA0NaG,OAxNoBA,EACjC7N,WACAxI,UACAqV,WACAtQ,QACAwD,WACAD,UACA8M,qCACiBc,GAADA,OAChB,MAAOnK,EAAO8G,IAAS,WAAGyD,qBAAWH,GAASrE,KACxC3G,GAAO,WAAGpH,gBACTwS,EAAaC,IAAe,WAAGrW,oBAAS,IACzC6S,GAAe,qBACnBuD,GAAW,aAAG,+CAA4C,aAAG,MAAI,iFACYL,WAQ7EA,WACF,MAAMO,EAAgE7L,UAEhEsL,GAADA,kBACHrD,EAAS,CACPhV,KAAM,mBACN2V,QAAS/E,EAAMvC,OAAOzN,QACrByX,WACCzH,EAAMvC,OAAOzN,MAAMiD,QAAU,GAAIwU,GAADA,2BAE5B1R,EACHqG,IAAG,UACCvF,EAAKiB,wBAAsB,OAAGkI,EAAMvC,OAAOzN,MAAMiY,gBAErD3L,MAAM7B,IAAyCgN,GAADA,kBAC7C3L,QAAQC,IAAItB,EAASpJ,MAAMoW,WAC3BrD,EAAS,CAAEhV,KAAM,kBAAmB2V,QAAStK,EAASpJ,MAAO,IAE9DkL,OAAOhG,IAAWkR,GAADA,kBAChB3L,QAAQC,IAAIxF,EAAM,IAEnBiR,SAAQ,KAAOC,GAADA,kBACbrD,EAAS,CAAEhV,KAAM,aAAc2V,SAAS,GAAQ,KAErD,wBACDX,EAAS,CAAEhV,KAAM,aAAc2V,SAAS,GAAQ,EAG5CmD,GAAQ,WAAG5K,EAAMwG,aAAalV,KAAK6X,IACvCgB,sDAEE7X,GAAY,OAAR6W,QAAQ,IAARA,GAAY,QAAJ,EAARA,EAAU7W,UAAE,WAAJ,EAAR6W,EAActM,WAClB9K,QAAUU,IAAM0X,uBAAe1X,EAAG0W,IAClCxX,UAAU,uGAAsG,SAE/GwX,EAASvM,gBAAkB,IAAMuM,EAAS/D,eALtC+D,EAAS7W,GAMX,KACJ6X,WAEH,MAAMU,EAAiBA,CAACpY,EAAQ0W,KAAwBgB,GAADA,kBACrDrD,EAAS,CAAEhV,KAAM,kBAAmB2V,QAAS,KAAM0C,WACnDrD,EAAS,CACPhV,KAAM,qBACN2V,QAAS,CACPnV,GAAI6W,EAAS7W,GACb8S,cAAe+D,EAAS/D,cACxBiB,SAAU,GACVC,OAAQ6C,EAAS7C,OACjBC,OAAQ4C,EAAS5C,OACjB3J,gBAAiBuM,EAASvM,mBAE3BuN,WACHrD,EAAS,CAAEhV,KAAM,WAAY2V,SAAS,IAAQ0C,WAC9CrD,EAAS,CAAEhV,KAAM,mBAAoB2V,QAAS,IAAK,EACnD0C,WAEF,MAAMW,EAAiB3C,IAAkBgC,GAADA,mBACtCM,GAAe,GAAMN,WACrB1R,EACGqG,IAAI,GAAD,OAAIvF,EAAKkB,8BAA6B,YAAI0N,GAAQ,CAAE6B,aAAc,SACrEhL,MAAM7B,IAAcgN,GAADA,mBAClBlC,GAAa9K,EAAU,OAAQgL,GAAO,EAAE,IAEzClJ,OAAOgL,IAAQE,8BAAQlR,MAAMgR,MAC7BC,SAAQ,KAAMC,yBAAe,KAAO,EACvCA,WAUAA,WAgBAA,WAOAA,WAEF9V,qBAAU,KAAO8V,GAADA,mBACdrD,EAAS,CAAEhV,KAAM,cAAe2V,QAAShL,GAAW,GACnD,CAACuD,EAAMwG,aAAcxG,EAAMgG,cAAevJ,IAE7C,MAAMsO,GAAK,WACT,qBAAKpZ,UAAU,yCAAwC,SACrD,sBAAKA,UAAU,+EAA8E,UAC3F,sBAAKA,UAAU,0GAAyG,UACtH,oBAAIA,UAAU,qDAAoD,SAC/DsC,GAAO,aAAG,yBAAsB,aAAG,yBAErC,aAAAqV,IAAQ,aACP,cAAC,EAAM,CACLxX,KAAK,SACLC,QApBUiZ,KAAOb,IAADA,aAC1B,MAAMvN,GAAe,WAAGqO,SAAiB,QAAR,aAAD,EAACxO,SAAQ,sBAAI,MAAI0N,WACjDd,EAA+BzM,GAAiBuN,WAChD/K,EAAQ3B,KAAK,CAAEsC,SAAU,iBAAkBC,MAAOpD,GAAkB,EAkB1DjL,UAAS,UAAKsV,EAAe,SAAQ,oCAKzC,cAAC,GAAK,CACJ1R,UAAW,CAAE5B,SAAS,EAAMC,mBAAmB,GAC/CrB,KAAK,gBACL8C,MAAM,oDACNG,YAAY,6BACZlD,GAAG,gBACHX,UAAU,QACVa,SArIYkQ,IAAgByH,GAADA,kBACnCrD,EAAS,CAAEhV,KAAM,aAAc2V,SAAS,IAAQ0C,WAChDO,EAAkBhI,GAAOyH,WACE,KAAvBzH,EAAMvC,OAAOzN,OACfyX,0BAAS,CAAErY,KAAM,aAAc2V,SAAS,KAAS,wBACnDX,EAAS,CAAEhV,KAAM,kBAAmB2V,QAAS,IAAK,EAiI1CyD,aAAa,QAEf,6BAAKN,KACJ,aAAA5K,EAAMkG,UAAO,aAAI,cAAC1K,GAAa,OAC/B,cAAAwE,EAAMiG,QAAK,cACV,mCACE,cAAC,GAAyB,CACxBoD,+BAAgCA,EAChCD,qBA5DgB3W,IAA4C0X,GAADA,QACvE,MAAMzX,GAAK,WAAGD,EAAE0N,OAAOzN,OAAMyX,WAC7B3L,QAAQC,IAAI,eAAgBhM,EAAE0N,OAAO5N,KAAMG,EAAOD,EAAE0N,OAAOgL,SAC3D,WACI,aAAkB,WAAlB1Y,EAAE0N,OAAO5N,OAAiB,aAAsB,WAAlBE,EAAE0N,OAAO5N,OAAoB4X,GAADA,qBAE5DnK,EAAMmG,gBAAgB1T,EAAE0N,OAAO5N,MAAQE,EAAE0N,OAAOgL,UAC1ChB,GAADA,qBAELnK,EAAMmG,gBAAgB1T,EAAE0N,OAAO5N,MAAQG,GACxCyX,WACDrD,EAAS,CACPhV,KAAM,qBACN2V,QAAQ,OAAD,IAAC,CAAD,GAAOzH,EAAMmG,kBACpB,EA+CUgD,SAAUnJ,EAAMmG,gBAChB3J,SAAUA,EACVD,QAASA,EACT+M,SAAUA,SAIf,cAAArV,IAAO,cACN,qCACE,yBAAStC,UAAU,qBAAoB,SACrC,mBAAGA,UAAU,YAAW,iFAI1B,sBAAKA,UAAU,6CAA4C,UACzD,cAAC,EAAM,CACLA,UAAWsV,EACXnU,SAAU0X,EACV1Y,KAAK,SACLC,QAAS,KAAMoY,wBAAcrH,KAAe,8BAK9C,cAAC,EAAM,CACLnR,UAAWsV,EACXnU,SAAU0X,EACV1Y,KAAK,SACLC,QAnGiBqZ,KAAOjB,GAADA,mBACrCM,GAAe,GAAMN,WACrB1R,EACGqG,IAAIvF,EAAKuB,mCAAoC,CAAEkP,aAAc,SAC7DhL,MAAM7B,IAAcgN,GAADA,mBFrIsBkB,EAC9ClO,EACA+K,KAEIF,GAADA,OACH,MAAMI,GAAG,UAAGC,OAAOC,IAAIC,gBAAgB,IAAIC,KAAK,CAACrL,EAASpJ,SACpDmH,GAAI,WAAGuN,SAASC,cAAc,MAAKV,WACzC9M,EAAKyN,KAAOP,EACZ,MAAMQ,GAAQ,sCAAuB9F,GAAc,EAAC,YAClDA,GAAgB,EAAC,YACfoF,IAAaF,WACjB9M,EAAK4N,aAAa,WAAYF,GAAUZ,WACxCS,SAAS5I,KAAKkJ,YAAY7N,GAAM8M,WAChC9M,EAAK8N,OAAO,EEyHNqC,CAAiClO,EAAU,OAAO,IAEnD8B,OAAOgL,IAAQE,8BAAQlR,MAAMgR,MAC7BC,SAAQ,KAAMC,yBAAe,KAAO,EA2FS,+BAIpC,cAAC,EAAM,CACLxY,UAAWsV,EACXnU,SAAU0X,EACV1Y,KAAK,SACLC,QAAS,KAAMoY,wBAAcrH,GAAgB,IAAG,2CAQvD,cAAA0H,IAAW,cAAI,cAAC,GAAuB,UAEzC,cAAAvW,IAAO,cAAI,cAAC,GAAqB,CAChC+L,MAAOA,EACP8G,SAAUA,EACVtK,SAAUA,EACVD,QAASA,YAKjB,OADE4N,WACK,oCAAG,cAAAlW,IAAO,cAAIqV,IAAQ,cAAGyB,IAAK,cAAG,cAAC,GAAc,OAAO,E,kvSClQhE,MAAMO,IAAS,UAAGC,cAAYC,IAC5BC,iCAAa,CACXC,WAAY,CACVC,QAAS,OACTC,SAAU,QAEZC,KAAM,CACJC,SAAU,GACVH,QAAS,QACTI,UAAW,SACXC,MAAO,iBAcPjG,IAAmB,UAAG,CAC1BtJ,SAAU,GACV4J,SAAU,GACV4F,kBAAkB,EAClBC,WAAY,GACZC,SAAS,EACTnF,cAAc,IACdyE,UAYF,MAAMrB,GAAUA,CAACpK,EAAcqK,KAC7B,OADwDoB,GAADA,iBAC/CpB,EAAOvY,MACb,IAAK,cACH,OADiB2Z,GAADA,oBACT,OAAP,IAAO,CAAP,eACKzL,GAAK,IACRvD,SAAU4N,EAAO5C,UAErB,IAAK,cACH,OADiBgE,GAADA,oBACT,OAAP,IAAO,CAAP,eACKzL,GAAK,IACRqG,SAAUgE,EAAO5C,UAErB,IAAK,sBACH,OADyBgE,GAADA,oBACjB,OAAP,IAAO,CAAP,eACKzL,GAAK,IACRiM,iBAAkB5B,EAAO5C,UAE7B,IAAK,kBACH,OADqBgE,GAADA,oBACb,OAAP,IAAO,CAAP,eACKzL,GAAK,IACRgH,aAAcqD,EAAO5C,UAEzB,IAAK,eACH,OADkBgE,GAADA,oBACV,OAAP,IAAO,CAAP,eACKzL,GAAK,IACRkM,WAAY7B,EAAO5C,QACnB0E,SAAS,IAEb,IAAK,cACH,OADiBV,GAADA,qBACT,OAAP,IAAO,CAAP,eACKzL,GAAK,IACRkM,WAAY7B,EAAO5C,QACnB0E,SAAS,IAEb,IAAK,aACH,OADgBV,GAADA,qBACR,OAAP,IAAO,CAAP,eACKzL,GAAK,IACRmM,QAAS9B,EAAO5C,UAEpB,IAAK,gBACH,OADmBgE,GAADA,qBACX,OAAP,IAAO,CAAP,eACGzL,GAAK,IACNmM,SAAS,EACTD,WAAY7B,EAAO5C,UAEzB,EAWIhP,IAAK,WAAGkO,EAAQ,IAASyF,SAAQX,WAkLxBY,OAhLgBA,EAC7BC,UACAC,WACAlD,qCACkBoC,GAADA,OACJ,WAAGH,KAAhB,MACOtL,EAAO8G,IAAS,WAAGyD,qBAAWH,GAASrE,MACvCgB,EAAYyF,IAAc,WAAGpY,oBAAS,IAAOqX,WAEpDpX,qBAAU,KAAOoX,GAADA,kBACV,aAAAzL,EAAMvD,SAASgQ,SAAM,aAAIzM,EAAMqG,SAASoG,SAAShB,GAADA,qBAClD3E,EAAS,CACPhV,KAAM,sBACN2V,SAAS,MAELgE,GAADA,qBACL3E,EAAS,CACPhV,KAAM,sBACN2V,SAAS,IAEb,GACC,CAACzH,EAAMvD,SAAUuD,EAAMqG,WAE1B,MAAMjH,GAAO,WAAGpH,eAAayT,WAC7B,MAAMiB,EAAcA,CAAChK,EAAYiK,KAM7B,GANsDlB,GAADA,kBACvDe,GAAc,GAAMf,WACpB/I,EAAMvB,iBAGN,WACgC,MAA1BwL,EAAalQ,SAKjB,OALoCgP,GAADA,qBAAC3E,EAAS,CAC3ChV,KAAM,cACN2V,QAAS,0DACRgE,WACDe,GAAc,QAAMf,WAErB,wBAEHhT,GACGmH,KAAKrG,EAAKgB,WAAY,CACrBkC,SAAUkQ,EAAalQ,SACvB4J,SAAUsG,EAAatG,WAExBrH,MAAK,SAAU7B,GAA0BsO,GAADA,kBACvC,IAKE,GALGA,GAADA,QAEe,OAAbc,GAAoBd,GAADA,qBACrBc,EAASpP,EAAS9L,QAAQub,gBAC3B,wBACuB,MAApBzP,EAAS0P,OAAgBpB,CAACA,IAADA,eAC3B,MAAM7O,GAAe,WAAGqO,SAAS0B,EAAalQ,WAExCzD,GAAK,WAAGmE,EAAS9L,QAAQub,eACzBE,GAAY,WAAIC,aAAU/T,IAC1BgU,GAAM,WAA8C,QAA3C,aAAH,EAAIF,EAAoCE,cAAM,sBAAI,KAAGvB,WACjEa,EAAQK,EAAalQ,SAAUuQ,GAAQvB,WACvCjN,QAAQC,IAAI,QAASkO,EAAalQ,SAAUuQ,GAAOvB,WAEhDuB,EAAOC,SAAS,eAAgBxB,GAADA,qBAChCrM,EAAQ3B,KAAK,CACXsC,SAAU,cACVC,MAAOpD,MAGN6O,wBAAGuB,EAAOC,SAAS,gBAAiBxB,GAADA,qBACtCrM,EAAQ3B,KAAK,CACXsC,SAAU,cACVC,MAAOpD,MAGL6O,GAADA,qBACHpC,EAA+BzM,GAAiB6O,WAChDrM,EAAQ3B,KAAK,CACPsC,SAAU,iBACVC,MAAOpD,KAGjB,MAAC,YACH,CAAE,MAAOnK,GAAIgZ,GAADA,QACVyB,MAAMza,EAAE8J,QACV,CACF,IACC0C,OAAM,SAAUhG,GAAewS,GAADA,kBAC7BjN,QAAQC,IAAIxF,GAAOwS,WACnB3E,EAAS,CACPhV,KAAM,cACN2V,QAAS,sCAEb,IACCzI,MAAK,WAAayM,GAADA,kBAChBe,GAAc,EAChB,GAAE,EACJf,WAEF,MAAM0B,EAAkBzK,IAAgC+I,GAADA,kBACjD,cAAkB,KAAlB/I,EAAM0K,UAAc,cAAoB,KAAhB1K,EAAM2K,QAAe5B,GAADA,qBAC9C,cAAAzL,EAAMiM,mBAAgB,cAAIS,EAAYhK,EAAO1C,KAC9C,cACDyL,WAWAA,WAYF,OADEA,WAEA,mCACE,sBACE9Z,UAAU,sCACV2b,YAAU,EACVpC,aAAa,MAAK,SAElB,sBAAKvZ,UAAU,iHAAgH,UAC7H,cAAC4b,GAAA,EAAW,UACV,gCACE,cAACC,GAAA,EAAS,CACRvU,MAAO+G,EAAMmM,QACbsB,WAAS,EACTnb,GAAG,WACH,cAAY,WACZR,KAAK,QACLuD,MAAM,kBACNG,YAAY,kBACZkY,OAAO,SACP1B,MAAM,UACNxZ,SAxCZkQ,IACI+I,GAADA,kBACH3E,EAAS,CACPhV,KAAM,cACN2V,QAAS/E,EAAMvC,OAAOzN,QACrB+Y,WACH3E,EAAS,CAAEhV,KAAM,cAAe2V,QAAS,KAAMgE,WAC/C3E,EAAS,CAAEhV,KAAM,aAAc2V,SAAS,GAAQ,EAkCpCkG,WAAYR,IAEd,cAACK,GAAA,EAAS,CACRvU,MAAO+G,EAAMmM,QACbsB,WAAS,EACTnb,GAAG,WACH,cAAY,WACZR,KAAK,WACLuD,MAAM,UACNG,YAAY,UACZkY,OAAO,SACPxB,WAAYlM,EAAMkM,WAClB1Z,SA1CZkQ,IACI+I,GAADA,mBACH3E,EAAS,CACPhV,KAAM,cACN2V,QAAS/E,EAAMvC,OAAOzN,QACrB+Y,WACH3E,EAAS,CAAEhV,KAAM,cAAe2V,QAAS,KAAMgE,WAC/C3E,EAAS,CAAEhV,KAAM,aAAc2V,SAAS,GAAQ,EAoCpCkG,WAAYR,SAIlB,qBAAKxb,UAAU,GAAE,SACf,cAAC,EAAM,CACLG,KAAK,SACLH,UAAS,UACPoV,GAAU,cAAG,+CAA4C,cAAG,MAAI,8GAElEjU,SAAUiU,GAAU,eAAG,QAAI,cAC3BhV,QAAUU,IAAMgZ,wBAAYhZ,EAAGuN,IAAO,8BAO7C,E,oibCnR2C4N,UA6UnCC,OA3UuBA,EACpCvR,8BACAG,WACAF,UACAC,eACKoR,GAADA,OACJ,MAAOE,EAASC,IAAW,UAAG3Z,mBAAkB,CAC9CwI,gBAAiBN,EAA4BO,WAC7ChI,KAAM,CACJ,CACEvC,GAAI,EACJ0b,YAAa,GACbrb,WAAY,GACZsb,MAAO,KAGXC,WAAY,OAEPnR,EAAWC,IAAa,UAAG5I,oBAAS,KACpC2D,EAAckF,IAAgB,UAAG7I,oBAAS,IAAOwZ,UAWtDA,UAKAA,WACF,MAAMjO,EAAoBA,KAAOiO,GAADA,OAC9B,MAAM/Y,GAAI,WANe0K,MAAOqO,GAADA,OAC/B,MAAM/Y,GAAI,WAAGiZ,EAAQjZ,KAAKoL,QAAQxL,QAAQC,IAAMkZ,sBAAC1R,GAAQxH,EAAEsZ,iBAE3D,OAFyEJ,WACzEpP,QAAQC,IAAI5J,GAAM+Y,WACX/Y,CAAI,EAGE0K,IAEP4O,GAAyB,WAAGtZ,EAAKvD,KAAKwD,IAAU8Y,GAADA,6CAChD9Y,GAAG,IACNmZ,MACgB,KAAdnZ,EAAImZ,OAAY,aACXnZ,EAAImZ,MAAQ,IAAC,aACdzd,EAAkBsE,EAAImZ,MAAMpR,mBAChC+Q,WACJpP,QAAQC,IAAI0P,GAEZ,MAAM7O,GAAW,sCACZwO,GAAO,IACVjZ,KAAMsZ,EACND,WAAY1d,EAAkBsd,EAAQI,WAAWrR,eAEnD,OADE+Q,WACKtO,CAAW,EAClBsO,WACF,MAAM/V,EAAagH,MAAOpM,EAA6ByI,KAAkB0S,GAADA,kBACtEvO,GAAa,EAAM,EACnBuO,WAEF,MAAMvO,EAAeR,UAAwC+O,GAADA,OAC1D,MAAMtO,GAAW,WAAGK,KAAoBiO,WACxCpP,QAAQC,IAAI,UAAWqP,GAASF,WAChC3Q,GAAgB,GAAK2Q,WAErBnV,EACGmH,KAAcrG,EAAKW,kBAAmBoF,EAAa,CAClDjO,QAAS,CACP0N,OAAQ,mBACR,eAAgB,sBAGnBC,MAAM7B,IAAcyQ,GAADA,kBAClBrR,EAAQ,CACNsD,KAAM,CACJA,KAAM,CACJtD,QAAQ,kCAGXqR,WACHpR,GAAS,GAAMoR,WACf1O,YAAW,KAAM0O,yBAAS,KAAQ,MAAMA,WACrC9N,GAAoB8N,GAADA,qBACpB1O,YACE,KAAO0O,GAADA,mBACJ3Q,GAAgB,GAAM2Q,WACtBxO,EAAQ3B,KAAK,CACbsC,SAAU,mBACVC,MAAO1D,GACL,GAEJ,OAEH,wBAGDkC,QAAQC,IAAItB,EAAS,IAEtB8B,OAAOhG,IAAW2U,GAADA,mBAChBpP,QAAQC,IAAIxF,GAAO2U,WACnBrR,EAAQ,CACNsD,KAAM,CACJA,KAAM,CACJ5G,MAAO,+IAGV2U,WACHpR,GAAS,GAAMoR,WACf1O,YAAW,KAAO0O,GAADA,mBACfpR,GAAS,GAAMoR,WACf3Q,GAAgB,EAAM,GACrB,IAAK,GACR,EAGAmC,GAAO,WAAGpH,eAAa4V,WAI3BA,WAEF,MAAM3c,EAASA,KAAO2c,GAADA,QACnB,MAAMrN,GAAK,YAAG,IAAIC,MAAOC,kBAAkBC,WACrCC,GAAkB,WAAG,CACzBrO,GAAIiO,EACJyN,YAAa,GACbrb,WAAY,GACZsb,MAAO,KACPL,WACFG,GAAYzN,IAAgBsN,GAADA,8CACtBtN,GAAS,IACZzL,KAAM,IAAIyL,EAAUzL,KAAM8L,OACzB,EACHiN,WAsBAA,WAOAA,WAMAA,WAEF,MAAMQ,EAAejR,IAAsCyQ,GAADA,QACxD,MAAM,GAA6B,WAAGzQ,EAASpJ,OAAzC,KAAEc,EAAI,WAAEqZ,GAAqB,EAAN1J,uCACvB6J,GAAa,WAAGxZ,EAAKvD,KAAKwD,IAAU8Y,GAADA,8CACpC9Y,GAAG,IACNmZ,MAAO/d,EAAoB4E,EAAImZ,aAE3BK,GAAK,WAAGpe,EAAoBge,IAC5BK,GAAU,sCACX/J,GAAI,IACP3P,KAAMwZ,EACNH,WAAYI,KACZV,WACFG,EAAWQ,GACX,MAAMC,GAAW,WAAGH,EAAcpO,SAClC,GAD0C2N,WACf,IAAvBY,EAAY7Y,OAAeiY,GAADA,qBAC5B3c,QACK2c,CAACA,GAADA,UACL,MAAMa,GAAY,WAvBF5Z,KAAwB+Y,GAADA,QAEzC,MAAM,GAAkC,WAAG/Y,EAAKoL,QAAQyO,QAAlD,GAAEpc,EAAE,MAAE2b,GAA4B,EAAlBzJ,gCACtB,OAD8DoJ,WACvDpJ,CAAI,EAoBYmK,CAAWH,IAC1BI,GAAO,WA/BGpK,KAA0DoJ,GAADA,QAC3E,MAAMgB,GAAO,WAAGlK,OAAOmK,OAAOrK,GAAasK,OACxCnY,IAAMiX,mCAAM,OAANA,IAAU,aAAU,KAANjX,OAEvB,OADEiX,WACKgB,CAAO,EA2BIG,CAAWN,IAAcb,WACpCgB,EAEJ,cAFchB,GAADA,qBACZ3c,IAEJ,GACA2c,WACFvZ,qBAAU,KAAOuZ,GAADA,QAgBbA,WAfD/O,iBAA2B+O,GAADA,mBACxB5Q,GAAa,GAAM4Q,iBACbnV,EACHqG,IAAI,GAAD,OAAIvF,EAAKY,kBAAgB,OAAG2T,EAAQlR,iBAAmB,CACzDvL,QAAS,CACP0N,OAAQ,mBACR,eAAgB,sBAGnBC,MAAKH,UAA6C+O,GAADA,mBAChDpP,QAAQC,IAAItB,EAASpJ,MAAM6Z,WAC3BQ,EAAYjR,EAAS,IAEtB8B,OAAOhG,IAAU2U,8BAAQnP,IAAIxF,MAAQ2U,WACxC1O,YAAW,KAAM0O,yBAAa,KAAQ,IACxC,CAEAoB,EAAU,GACT,CAAChS,IAAe4Q,WAUjBA,YACF,MAAMqB,EAAOpa,IAAwB+Y,GAADA,QAClC,MAAMU,GAAK,YAAGzZ,EAAKqa,QAAO,CAACC,EAAKC,KAAUxB,GAADA,oBAChCuB,EAAMve,EAAqBwe,EAAKnB,SACtC,IACH,OADML,YACC1d,EAAoBoe,EAAM,EAI7Btd,GAA6D,YAAG,CACpE,CACE2D,IAAK,cACLe,UAAW,OACX9D,OAAQ,cACRyd,MAAO,IACP3d,QAAS,GAEX,CACEiD,IAAK,aACLe,UAAW,OACX9D,OAAQ,mBACRyd,MAAO,KAET,CACE1a,IAAK,QACLe,UAAW,OACX9D,OAAQ,WACRwD,UAAW,0CACXK,eAAe,KAIbxB,GAAO,YAAgB,MAAbwI,GAEhB,OAFiCmR,YAG/B,qCACE,cAAC,GAAa,CAAC/V,YAAaA,IAC3BkF,GAAS,aACR,cAAC,GAAuB,MAAG,aAE3B,sBAAMmE,SAnJIzO,IAAmCmb,GAADA,mBAChDnb,EAAE0O,iBAAiByM,WACnBvO,GAAa,EAAK,EAiJS,SACrB,sBAAK1N,UAAU,qBAAoB,UACjC,8BACE,mBAAGA,UAAU,uDAAsD,gDAMrE,qBAAKA,UAAU,6CAA4C,SACzD,sBAAKA,UAAU,6JAA4J,UACzK,8BACE,mBAAGA,UAAU,sDAAqD,iDAKpE,cAAC,EAAK,CACJU,aAlJKA,CAACI,EAAQqC,KAAc8Y,GAADA,QACzC,IAAI,KAAErb,EAAI,MAAEG,IAAO,WAAGD,EAAE0N,QAAOyN,WAC/BpP,QAAQC,IAAI/L,EAAO,SAAUH,GAAMqb,WACnCpP,QAAQC,IAAI/L,EAAO,SACnB,MAAM,GAAEJ,IAAI,WAAGwC,GACTsL,GAAO,sCAAQtL,GAAG,IAAE,CAACvC,GAAOG,KAAQkb,WAC1CpP,QAAQC,IAAI2B,GACZ,MAAMkP,GAAQ,WAAGxB,EAAQjZ,KAAKoL,SACxBzO,GAAK,WAAG8d,EAASC,QAAQza,IACzB0a,GAAa,WAAGF,EAAS7a,QAAQ0B,IAAcyX,wBAAKtb,KAAOA,MAAIsb,WAErE4B,EAAcC,OAAOje,EAAO,EAAG4O,GAC/B,MAAMsP,GAAI,WAAGT,EAAIO,IAAe5B,WAChCpP,QAAQC,IAAI,uBAAwBiR,GACpC,WACA3B,GAAYzN,IAAgBsN,GAADA,8CACtBtN,GAAS,IACZzL,KAAM2a,EACNtB,WAAYe,EAAIO,OACf,EAgIWve,OAAQA,EACR+C,UApEG1B,IAAgBsb,GAADA,QAChC,IAAIhN,GAAQ,WAAGkN,EAAQjZ,MACvB,MAAM8a,GAAQ,YAAG/O,EAASnM,QAAQ0B,IAASyX,yBAAKtb,KAAOA,MAAIsb,YAC3DG,GAAYzN,IAAgBsN,GAADA,+CACtBtN,GAAS,IACZzL,KAAM8a,EACNzB,WAAYe,EAAIU,OACf,EA8DW5b,KAAM+Z,EAAQjZ,KACd7D,QAASA,EACTiG,OAAQ,CACNI,SAAS,EACTuY,WAAY9B,EAAQI,YAEtBja,QAASA,EAAQ,SAEjB,uBAAOtC,UAAU,mCAAkC,SACjD,qBAAIA,UAAU,8BAA6B,UACzC,oBAAID,QAAS,EAAE,SACb,mBAAGC,UAAU,qBAAoB,SAAC,cAEpC,uBACA,qBAAIA,UAAU,+CAA8C,UAC1D,cAAC,GAAK,CACJwD,MAAM,EACNI,UAAW,CACT5B,SAAS,EACTC,mBAAmB,GAErBjC,UAAU,2CACV6D,YAAY,oBACZjD,KAAK,aACLT,KAAK,OACLuD,MAAM,cACN/C,GAAG,aACHQ,UAAQ,EACRJ,MAAOob,EAAQI,aAEjB,sBAAMvc,UAAU,kFAAiF,SAC/F,sBAAMA,UAAU,yBAAwB,SAAC,yBASvD,cAAC,EAAa,CAACiG,iBAAiB,OAAOC,YAAaA,EAAaE,aAAcA,YAIpF,E,qmBC7UQ8X,OAVf,WACI,OADaC,GAADA,iBAER,qBAAKne,UAAU,uBAAsB,SACjC,wBAAQA,UAAU,oCAAmC,SACjD,4BAAG,aAInB,E,w1WCQwCoe,UAuZzBC,OArZoBA,EACjC1T,8BACAG,WACAF,UACAC,eACKuT,GAADA,OACJ,MAAOE,EAAYC,IAAc,UAAG9b,mBAAqB,CACvDwI,gBAAiBN,EAA4BO,WAC7CsT,YAAa,OAIbC,EACAC,IACD,UAAGjc,oBAAS,KAEN2D,EAAckF,IAAgB,UAAG7I,oBAAS,IAAO2b,UAkBtDA,WAEF1b,qBAAU,KAAO0b,GAADA,kBAcZA,WAbiBlR,WAAakR,GAADA,wBACvBtX,EACHqG,IAAI,GAAD,OAAIvF,EAAKM,aAAW,OAAGyC,GAA+B,CACxDjL,QAAS,CACP0N,OAAQ,mBACR,eAAgB,sBAGnBC,MAAKH,UAAgDkR,GAADA,kBACnDvR,QAAQC,IAAItB,GAAU4S,WA5BA5S,KAAyC4S,GAADA,OACpE,MAAM,YAAEI,EAAW,gBAAEvT,IAAiB,UAAGO,EAASpJ,MAC5Cuc,GAAoB,UAAGH,EAAY7e,KAAK6E,IAAW4Z,GAADA,4CACnD5Z,GAAI,IACPoa,gBAAiBrgB,EAAoBiG,EAAKoa,uBAEtCC,GAAe,UAAG,CACtB5T,gBAAiBA,EACjBuT,YAAaG,IACbP,UACFG,EAAcM,GAEd,MAAMC,GAAc,WAAGN,EAAYlQ,SAAQ8P,WACvCU,EAAe9a,OAAS,GAAIoa,GAADA,qBAC7BM,GAAyB,IAC1B,cAcKK,CAAqBvT,EAAS,IAE/B8B,OAAOhG,IAAU8W,6BAAQtR,IAAIxF,KAAO,EAEzC0X,GAAaZ,WAEbvR,QAAQC,IAAI,MAAOwR,EAAW,GAC7B,IAAIF,WAgBLA,WAQF,SAASpQ,IAAqBoQ,GAADA,QAC3B,MAAM,YAAEI,IAAa,WARI5Q,MAAOwQ,GAADA,QAC/B,MAAMI,GAAW,WAAGF,EAAWE,YAC5BlQ,QACAxL,QAAQC,IAAMqb,uBAAC7T,GAAQxH,EAAEqJ,UAC5B,OADmCgS,WAC5B,CAAEI,cAAa,EAIE5Q,IAClBqR,GAA6B,WAAGT,EAAY7e,KAAK6E,IAAW4Z,GAADA,8CAC5D5Z,GAAI,IACPoa,gBAAiB/f,EAAkB2F,EAAKoa,gBAAgB1T,kBAEpD6C,GAAG,sCACJuQ,GAAU,IACbE,YAAaS,KAGf,OAFEb,WACFvR,QAAQC,IAAIiB,GAAKqQ,WACVrQ,CACT,CAACqQ,WAED,MAAMlY,EAAcgH,MAAOpM,EAA6ByI,KAAkB6U,GAADA,mBACvEtd,EAAE0O,iBAAiB4O,WACnB9S,GAAgB,GAChB,MAAMqC,GAAW,WAAGK,KAAoBoQ,WACxCtX,EACGmH,KAAiBrG,EAAKK,aAAc0F,GACpCN,MAAK,KAAO+Q,GAADA,mBACV9S,GAAgB,GAAO8S,WACvBc,IAAqBd,WACrB3Q,EAAQ3B,KAAKvC,EAAK,IAEnB+D,OAAOhG,IAAW8W,GAADA,mBAChB9S,GAAgB,GAAO8S,WACvBvR,QAAQC,IAAIxF,EAAM,GAClB,EACJ8W,WACF,MAAMc,EAAqBA,KAAOd,GAADA,mBAC/BxT,EAAQ,CACNsD,KAAM,CACJA,KAAM,CACJtD,QAAQ,2CAGXwT,WACHvT,GAAS,GAAMuT,WACf7Q,YAAW,KAAM6Q,yBAAS,KAAQ,KAAK,EAEnC3Q,GAAO,WAAGpH,eAAa+X,WA6C3BA,WAiCAA,WAEF,MAQMe,GAGH,WAAG,CACJ,CACEnc,IAAK,OACLe,UAAW,OACX9D,OAAQ,qEACRsD,iBAAiB,GAEnB,CACEP,IAAK,UACLe,UAAW,OACX9D,OAAQ,UACRsD,iBAAiB,GAEnB,CACEP,IAAK,eACLe,UAAW,OACX9D,OAAQ,0BACRsD,iBAAiB,GAEnB,CACEP,IAAK,kBACLe,UAAW,OACX9D,OAAQ,iBACRwD,UAAW,oCACXK,eAAe,EACfP,iBAAiB,GAEnB,CACEP,IAAK,gBACLe,UAAW,OACX9D,OAAQ,gBACRsD,iBAAiB,GAEnB,CACEP,IAAK,mBACLe,UAAW,OACX9D,OAAQ,wBACRsD,iBAAiB,GAEnB,CACEP,IAAK,oBACLe,UAAW,OACX9D,OAAQ,4BACRsD,iBAAiB,GAEnB,CACEP,IAAK,OACLe,UAAW,OACX9D,OAAQ,eACRsD,iBAAiB,GAEnB,CACEP,IAAK,aACLe,UAAW,OACX9D,OAAQ,WACRsD,iBAAiB,GAEnB,CACEP,IAAK,eACLe,UAAW,OACX9D,OAAQ,sBACRsD,iBAAiB,EACjBO,eAAe,GAEjB,CACEd,IAAK,gBACLe,UAAW,OACX9D,OAAQ,gBACRsD,iBAAiB,EACjBO,eAAe,GAEjB,CACEd,IAAK,mBACLe,UAAW,OACX9D,OAAQ,mBACRsD,iBAAiB,EACjBO,eAAe,GAEjB,CACEd,IAAK,eACLe,UAAW,OACX9D,OAAQ,eACRsD,iBAAiB,EACjBO,eAAe,GAEjB,CACEd,IAAK,MACLe,UAAW,OACX9D,OAAQ,6BACRsD,iBAAiB,EACjBO,eAAe,GAEjB,CACEd,IAAK,gBACLe,UAAW,OACX9D,OAAQ,wCACRsD,iBAAiB,EACjBO,eAAe,GAEjB,CACEd,IAAK,YACLe,UAAW,OACX9D,OAAQ,YACRsD,iBAAiB,GAEnB,CACEP,IAAK,qBACLe,UAAW,OACX9D,OAAQ,6CACRsD,iBAAiB,EACjBO,eAAe,GAEjB,CACEd,IAAK,0BACLe,UAAW,OACX9D,OAAQ,oCACRsD,iBAAiB,EACjBO,eAAe,GAEjB,CACEd,IAAK,YACLe,UAAW,OACX9D,OAAQ,aAGV,CACE+C,IAAK,YACLe,UAAW,OACX9D,OAAQ,yBAINmf,GAAK,WACT,sBAAKpf,UAAU,qDAAoD,UACjE,4BAAG,4BACH,sBAAKA,UAAW,uCAAuC,UACrD,cAAC,EAAM,CACLA,UAAW,8BACXI,QAAUU,IAAMsd,yBAAyB,IAAM,gBAIjD,cAAC,EAAM,CAAChe,QAAUU,IAAMsd,wBAAYtd,EAAG,iBAAgB,SAAC,eAKxDwB,GAAO,WAAgB,MAAbwI,GAEhB,OAFiCsT,WAG/B,qCACE,cAAC,GAAa,CAAClY,YAAaA,IAC1BuY,GACK,aAEL,sBAAMlP,SArPIzO,IAAmCsd,GAADA,mBAChDtd,EAAE0O,iBACF,MAAM7B,GAAW,WAAGK,KAAoBoQ,WACxCtX,EACGmH,KAAiBrG,EAAKK,aAAc0F,EAAa,CAChDjO,QAAS,CACP0N,OAAQ,mBACR,eAAgB,sBAGnBC,MAAM7B,IAAc4S,GAADA,mBAClBvR,QAAQC,IAAItB,GAAU4S,WACtBxT,EAAQ,CACNsD,KAAM,CACJA,KAAM,CACJtD,QAAQ,2CAGXwT,WACHvT,GAAS,GAAMuT,WACf7Q,YAAW,KAAM6Q,yBAAS,KAAQ,MAAMA,WACxC7Q,YACE,KACE6Q,wBAAQtS,KAAK,CACXsC,SAAU,eACVC,MAAO1D,MAEX,KACD,IAEF2C,OAAOhG,IAAW8W,IAADA,wBAChBxT,EAAQ,CACNsD,KAAM,CACJA,KAAM,CACJ5G,OAAqB,QAAdA,IAAMkE,gBAAQ,aAAdlE,EAAgBlF,OAAI,aACvBkF,EAAMkE,SAASpJ,OAAI,aACnB,gCAGPgc,WACHvR,QAAQC,IAAIxF,GAAO8W,WACnBvT,GAAS,GAAMuT,WACf7Q,YAAW,KAAM6Q,yBAAS,KAAQ,KAAK,GACvC,EA0MuB,SACrB,sBAAKpe,UAAU,qBAAoB,UACjC,8BACE,mBAAGA,UAAU,oDAAmD,0BAIlE,qBAAKA,UAAU,GAAE,SACf,sBAAKA,UAAU,mHAAkH,UAC/H,8BACE,mBAAGA,UAAU,0DAAyD,qDAIxE,cAAC,EAAK,CACJU,aApUY2e,CAACve,EAAQqC,KAAcib,GAADA,OAChD,MAAM,KAAExd,EAAI,MAAEG,IAAO,WAAGD,EAAE0N,SACpB,GAAE7N,IAAI,WAAGwC,GACTsL,GAAO,sCAAQtL,GAAG,IAAE,CAACvC,GAAOG,KAC5B4c,GAAQ,WAAGW,EAAWE,YAAYlQ,SAClCzO,GAAK,WAAG8d,EAASC,QAAQza,IACzB0a,GAAa,WAAGF,EAAS7a,QAAQ0B,IAAc4Z,uBAAKzd,KAAOA,MAAIyd,WACrEP,EAAcC,OAAOje,EAAO,EAAG4O,GAAS2P,WACxCvR,QAAQC,IAAI,MAAO3J,GAAKib,WACxBvR,QAAQC,IAAIlM,EAAMG,GAAOqd,WACzBG,GAAe5P,IAAgByP,GAADA,6CACzBzP,GAAS,IACZ6P,YAAaX,MACZ,EAwTWzb,KAAMkc,EAAWE,YACjBnf,QAAS8f,EACT9c,UAxLU1B,IAAgByd,GAADA,QACvC,IAAInP,GAAQ,WAAGqP,EAAWE,aAC1B,MAAMR,GAAQ,WAAG/O,EAASnM,QAAQwc,IAAYlB,wBAAQzd,KAAOA,MAAIyd,WACjEG,GAAe5P,IAAgByP,GAADA,8CACzBzP,GAAS,IACZ6P,YAAaR,MACZ,EAmLW1e,OA1NMigB,KAAOnB,GAADA,QAC1B,MAAMxP,GAAK,YAAG,IAAIC,MAAOC,kBAAkBC,WACrCC,GAAqB,WAAG,CAC5BrO,GAAIiO,EACJxC,KAAM,GACNoT,aAAc,GACdC,QAAS,GACTC,cAAe,GACfC,iBAAkB,GAClBC,kBAAmB,GACnBC,kBAAmB,GACnB1f,KAAM,GACNyB,WAAY,GACZgd,gBAAiB,GACjBnd,UAAW,GACXqe,UAAW,GACXC,UAAW,GACXC,aAAc,EACdC,cAAe,EACfC,iBAAkB,EAClBC,aAAc,EACdC,IAAK,EACLC,cAAe,EACfC,mBAAoB,EACpBC,wBAAyB,IACzBnC,WAEFG,GAAe5P,IAAgByP,GAADA,8CACzBzP,GAAS,IACZ6P,YAAa,IAAI7P,EAAU6P,YAAaxP,OACvC,EA6LW1M,QAASA,EACTkD,uBAAuB,EACvBC,iBAAiB,EACjBrB,WAAW,iBAKjB,cAAC,EAAa,CACZ6B,iBAAiB,UACjBC,YAAaA,EACbE,aAAcA,WAlCC,aACrBgZ,KAsCD,E,4gCCramBoB,UAyBXC,OAtBDA,EAAGvS,WAA0BsS,GAADA,kBAChC,OAAJtS,QAAI,IAAJA,OAAI,EAAJA,EAAM5G,QAAQkZ,GAADA,oBAEb,qBAAKxgB,UAAU,sBAAqB,SAClC,qBACEA,UAAS,+IAAiJ,SAE1J,oBAAGA,UAAU,+BAA8B,UAAC,IAAM,OAAJkO,QAAI,IAAJA,OAAI,EAAJA,EAAM5G,MAAM,aAKhEkZ,uBACE,qBAAKxgB,UAAU,sBAAqB,SAClC,qBACEA,UAAS,6JAA+J,SAExK,oBAAGA,UAAU,+BAA8B,UAAC,IAAM,OAAJkO,QAAI,IAAJA,OAAI,EAAJA,EAAMtD,QAAQ,a,25QCPlB8V,UA+gBrCC,OArekBA,EAC/BhW,8BACAC,UACAE,WACAD,WACA6M,qCACmBgJ,GAADA,OAClB,MAAM,SAAEnP,EAAQ,SAAEtB,EAAQ,aAAEuB,EAAY,OAAEC,EAAM,UAAEC,IAAW,UAC3DC,iBACKiP,EAAeC,IAAiB,UAAGpe,mBAAyB,CACjEqe,GAAI,EACJC,UAAW,GACXC,kBAAmB,GACnBC,aAAc,GACdC,WAAY,GACZC,cAAe,GACfC,sBAAuB,GACvBC,iBAAkB,GAClBC,eAAgB,GAChBC,aAAc,GACdC,qBAAsB,GACtBC,gBAAiB,GACjBC,cAAe,OAEVtW,EAAWC,IAAa,UAAG5I,oBAAS,KACpC2D,EAAckF,IAAgB,UAAG7I,oBAAS,KAC1Cqe,EAAIa,IAAM,UAAGlf,mBAAS0O,KAAeuP,UAC5C,MAcMjT,GAAO,WAAGpH,eAAaqa,WAC7B,MAAMxa,EAAcgH,MAAOpM,EAA6ByI,KAAkBmX,GAADA,kBACvE5f,EAAE0O,iBAAiBkR,WACnBpO,IAAoBjF,MAAK,KAAMqT,uBAAQ5U,KAAKvC,KAAM,EAE9C+I,GAAiB,WAAGd,GAAoBtE,UAAsBwT,GAADA,kBACjEhT,EAAagE,GAAW,EAAM,KAC7BgP,WAEH,MAAMhT,EAAeR,MAAOwE,EAAgBvD,KAAiCuS,GAADA,kBAC1EpV,GAAgB,GAChB,MAAM4R,GAAM,sCACPxL,GAAS,IACZzG,gBAAiBN,KACjB+V,WACF5Z,EACGmH,KAAKrG,EAAKG,YAAamV,GACvB7P,MAAM7B,IAA6BkV,GAADA,kBACjC7T,QAAQC,IAAItB,EAASpJ,MAAMse,WAC3B7T,QAAQC,WAAWlC,GAAS8V,WAE5BxB,IAAqBwB,WAElBvS,GAAoBuS,GAADA,qBACpBnT,YACE,KACGmT,GAADA,kBACEpV,GAAgB,GAAMoV,WACtBjT,EAAQ3B,KAAK,CACbsC,SAAU,WACVC,MAAO1D,GACL,GAEN,OAEH,gBAEF2C,OAAOhG,IAAWoZ,IAADA,uBAChB7T,QAAQC,IAAS,OAALxF,QAAK,IAALA,GAAe,QAAV,EAALA,EAAOkE,gBAAQ,WAAV,EAALlE,EAAiBlF,MAAMse,WACnC9V,EAAQ,CACNsD,KAAM,CACJA,KAAM,CACJ5G,MAAO,sHAGVoZ,WACH7V,GAAS,GAAM6V,WACfnT,YAAW,KAAOmT,GAADA,kBACf7V,GAAS,GAAM6V,WACfpV,GAAgB,EAAM,GACrB,IAAK,GACR,EACLoV,WAED,MAAMxB,EAAqBA,KAAOwB,GAADA,mBAC/B9V,EAAQ,CACNsD,KAAM,CACJA,KAAM,CACJtD,QAAQ,yBAGX8V,WACH7V,GAAS,GAAM6V,WACfnT,YAAW,KAAMmT,yBAAS,KAAQ,IAAK,EAEnCkB,GAAY,WAAGpQ,GAAcE,IAAegP,GAADA,mBAC/ChT,EAAagE,GAAW,EAAK,KAEzB0B,GAAQ,WAAGC,eAAcqN,WAE/Bhe,qBAAU,KAAOge,GAADA,mBACdzQ,EAAS,kBAAmBtF,GAyD3B+V,WAvDDxT,iBAA4BwT,GAADA,QACzB,MAAMlV,GAAQ,iBAAS1E,EAAMqG,IAAI,GAAD,OAC3BvF,EAAKI,YAAU,OAAG2C,GACrB,CACEjL,QAAS,CACP0N,OAAQ,mBACR,eAAgB,uBAGpBsT,WACFzQ,EAAS,YAAazE,EAASpJ,KAAK2e,WAAWL,WAC/CzQ,EAAS,oBAAqBzE,EAASpJ,KAAK4e,mBAAmBN,WAC/DzQ,EAAS,eAAgBzE,EAASpJ,KAAK6e,cAAcP,WACrDzQ,EAAS,aAAczE,EAASpJ,KAAK8e,YAAYR,WACjDzQ,EAAS,gBAAiBzE,EAASpJ,KAAK+e,eAAeT,WACvDzQ,EAAS,wBAAyBzE,EAASpJ,KAAKgf,uBAAuBV,WACvEzQ,EAAS,mBAAoBzE,EAASpJ,KAAKif,kBAAkBX,WAC7DzQ,EAAS,iBAAkBzE,EAASpJ,KAAKkf,gBAAgBZ,WACzDzQ,EAAS,eAAgBzE,EAASpJ,KAAKmf,cAAcb,WACrDzQ,EAAS,uBAAwBzE,EAASpJ,KAAKof,sBAAsBd,WACrEzQ,EAAS,kBAAmBzE,EAASpJ,KAAKqf,iBAAiBf,WAC3DzQ,EAAS,gBAAiBzE,EAASpJ,KAAKsf,cAC1C,CAmCAG,GAAYxU,MAAK,KAAMqT,8BAAQ5T,IAAI4E,QAAcgP,WAjCjDxT,iBAAoCwT,GAADA,yBAC3B5Z,EACHqG,IAAI,GAAD,OACCvF,EAAKI,YAAU,OAAG2C,EAA2B,YAC9CwG,GAAgB,GAElB,CACEzR,QAAS,CACP0N,OAAQ,mBACR,eAAgB,sBAIrBC,MAAM7B,IAA6CkV,GAADA,mBACjD7T,QAAQC,IAAItB,GAAUkV,WACtBG,EAAiB,CACfC,GAAItV,EAASpJ,KAAK0e,GAClBC,UAAWvV,EAASpJ,KAAK2e,UACzBC,kBAAmBxV,EAASpJ,KAAK4e,kBACjCC,aAAczV,EAASpJ,KAAK6e,aAC5BC,WAAY1V,EAASpJ,KAAK8e,WAC1BC,cAAe3V,EAASpJ,KAAK+e,cAC7BC,sBAAuB5V,EAASpJ,KAAKgf,sBACrCC,iBAAkB7V,EAASpJ,KAAKif,iBAChCC,eAAgB9V,EAASpJ,KAAKkf,eAC9BC,aAAc/V,EAASpJ,KAAKmf,aAC5BG,cAAelW,EAASpJ,KAAKsf,cAC7BF,qBAAsBhW,EAASpJ,KAAKof,qBACpCC,gBAAiBjW,EAASpJ,KAAKqf,iBAC/B,GAER,CAGAK,GAAoBzU,MAAK,KAAMqT,8BAAQ5T,IAAI8T,KAAe,GACzD,CAACxV,EAAWT,EAA6ByI,EAAS/E,QACrD,MAAM0T,GAAQ,WACS,IAArBnB,EAAcE,IAAQ,aAAG3P,GAAgB,IAAC,aAAGyP,EAAcE,KACvDtK,GAAI,WAAU,IAAPsK,GAAQ,aAAG3P,KAAa,aAAG2P,IAExC,OAF2CJ,WAGzC,sBAAK1gB,UAAU,GAAE,UACf,cAAC,GAAa,CAACkG,YAAaA,IAC5B,uBAAMqJ,SAAUqS,EAAa,UAC3B,8BACE,oBAAG5hB,UAAU,uDAAsD,mDAC1B,SAI3C,qBAAKA,UAAU,iFAAgF,SAC7F,sBAAKA,UAAU,uHAAsH,UACnI,mBAAGA,UAAU,sDAAqD,6CACrC+hB,EAAQ,OAGrC,uBAAO/hB,UAAU,8EAA6E,SAC5F,kCACE,qBAAIA,UAAU,+CAA8C,UAC1D,oBAAIA,UAAU,6BAA4B,SAAC,UAC3C,oBAAIA,UAAU,4BAA2B,SAAC,aAC1C,oBAAIA,UAAU,2BAA0B,SAAC,cACzC,oBAAIA,UAAU,0BAAyB,SAAC,SACxC,oBAAIA,UAAU,2BAA0B,SAAC,YACzC,oBAAIA,UAAU,0BAAyB,SAAC,aAE1C,+BACE,oBAAIA,UAAU,wDAAuD,SACnE,4BAAI+hB,MAEN,oBAAI/hB,UAAU,wDAAuD,SACnE,4BAAG,YAEL,oBAAIA,UAAU,wDAAuD,SACnE,4BAAI4gB,EAAcI,sBAEpB,oBAAIhhB,UAAU,wDAAuD,SACnE,4BAAI4gB,EAAcG,cAEpB,oBAAI/gB,UAAU,wDAAuD,SACnE,4BAAI4gB,EAAcK,iBAEpB,oBAAIjhB,UAAU,+CAA8C,SAC1D,4BAAI4gB,EAAcM,kBAGtB,+BACE,oBAAIlhB,UAAU,wDAAuD,SACnE,4BAAI+hB,MAEN,oBAAI/hB,UAAU,wDAAuD,SACnE,4BAAG,gBAEL,oBAAIA,UAAU,wDAAuD,SACnE,4BAAI4gB,EAAcQ,0BAEpB,oBAAIphB,UAAU,wDAAuD,SACnE,4BAAI4gB,EAAcO,kBAEpB,oBAAInhB,UAAU,wDAAuD,SACnE,4BAAI4gB,EAAcS,qBAEpB,oBAAIrhB,UAAU,+CAA8C,SAC1D,4BAAI4gB,EAAcU,sBAGtB,+BACE,oBAAIthB,UAAU,+CAA8C,SAC1D,4BAAI+hB,MAEN,oBAAI/hB,UAAU,+CAA8C,SAC1D,4BAAG,eAEL,oBAAIA,UAAU,+CAA8C,SAC1D,4BAAI4gB,EAAcY,yBAEpB,oBAAIxhB,UAAU,+CAA8C,SAC1D,4BAAI4gB,EAAcW,iBAEpB,oBAAIvhB,UAAU,+CAA8C,SAC1D,4BAAI4gB,EAAca,oBAEpB,oBAAIzhB,UAAU,sCAAqC,SACjD,4BAAI4gB,EAAcc,+BAQ9B,qBAAK1hB,UAAU,mFAAkF,SAC/F,sBAAKA,UAAU,kHAAiH,UAC9H,gCACE,mBAAGA,UAAU,sDAAqD,uCAC3CwW,EAAI,OAC3B,qBAAKxW,UAAU,sBAAqB,SAClC,cAAC,EAAM,CAACG,KAAK,SAASC,QAxPhB4hB,KAAOtB,GAADA,iBACxBzQ,EAAS,YAAa2Q,EAAcG,WAAWL,UAC/CzQ,EAAS,aAAc2Q,EAAcM,YAAYR,UACjDzQ,EAAS,oBAAqB2Q,EAAcI,mBAAmBN,WAC/DzQ,EAAS,eAAgB2Q,EAAcK,cAAcP,WACrDzQ,EAAS,gBAAiB2Q,EAAcO,eAAeT,WACvDzQ,EAAS,iBAAkB2Q,EAAcU,gBAAgBZ,WACzDzQ,EAAS,mBAAoB2Q,EAAcS,kBAAkBX,WAC7DzQ,EAAS,wBAAyB2Q,EAAcQ,uBAAuBV,WACvEzQ,EAAS,eAAgB2Q,EAAcW,cAAcb,WACrDzQ,EAAS,gBAAiB2Q,EAAcc,eAAehB,WACvDzQ,EAAS,kBAAmB2Q,EAAca,iBAAiBf,WAC3DzQ,EAAS,uBAAwB2Q,EAAcY,qBAAqB,EA4Ob,2CAK/C,wBAAOxhB,UAAU,8EAA6E,UAC5F,gCACE,qBAAIA,UAAU,mCAAkC,UAC9C,oBAAIA,UAAU,4BAA2B,SAAC,UAC1C,oBAAIA,UAAU,4BAA2B,SAAC,aAC1C,oBAAIA,UAAU,+BAA6B,SAAC,cAC5C,oBAAIA,UAAU,8BAA6B,SAAC,SAE5C,oBAAIA,UAAU,+BAA8B,SAAC,YAC7C,oBAAIA,UAAU,8BAA6B,SAAC,eAGhD,kCACE,+BACE,oBAAIA,UAAU,wDAAuD,SACnE,4BAAIwW,MAEN,oBAAIxW,UAAU,wDAAuD,SACnE,4BAAG,YAEL,oBAAIA,UAAU,gDAA+C,SAC3D,cAAC,GAAK,CACJ4D,UAAW,CAAE5B,SAAS,EAAOC,mBAAmB,GAChD4B,YAAY,WACZjD,KAAK,oBACLkP,IAAKyB,EACL7N,MAAM,QACNvD,KAAK,OACLQ,GAAG,OACHX,UAAU,0BACViiB,QAAQ,OACRjO,UAAW,MAIf,oBAAIhU,UAAU,gDAA+C,SAC3D,cAAC,GAAK,CACJ4D,UAAW,CAAE5B,SAAS,EAAOC,mBAAmB,GAChD4B,YAAY,SACZiM,IAAKyB,EACL3Q,KAAK,YACL8C,MAAM,OACN/C,GAAG,QACH6C,MAAM,EACNxD,UAAU,qBAGd,oBAAIA,UAAU,gDAA+C,SAC3D,cAAC,GAAK,CACJ4D,UAAW,CAAE5B,SAAS,EAAOC,mBAAmB,GAChD4B,YAAY,QACZiM,IAAKyB,EACL3Q,KAAK,eACL8C,MAAM,UACN/C,GAAG,QACHR,KAAK,SACLH,UAAU,2BAGd,oBAAIA,UAAU,uCAAsC,SAClD,cAAC,GAAK,CACJ4D,UAAW,CAAE5B,SAAS,EAAOC,mBAAmB,GAChD4B,YAAY,WACZiM,IAAKyB,EACL3Q,KAAK,aACL8C,MAAM,SACN/C,GAAG,SACH6C,MAAM,EACNxD,UAAU,wBAKhB,+BACE,oBAAIA,UAAU,wDAAuD,SACnE,4BAAIwW,MAEN,oBAAIxW,UAAU,wDAAuD,SACnE,4BAAG,gBAEL,oBAAIA,UAAU,gDAA+C,SAC3D,cAAC,GAAK,CACJ4D,UAAW,CAAE5B,SAAS,EAAOC,mBAAmB,GAChD4B,YAAY,WACZiM,IAAKyB,EACL3Q,KAAK,wBACL8C,MAAM,QACNvD,KAAK,OACLQ,GAAG,OACHX,UAAU,0BACViiB,QAAQ,OACRjO,UAAW,MAGf,oBAAIhU,UAAU,gDAA+C,SAC3D,cAAC,GAAK,CACJ4D,UAAW,CAAE5B,SAAS,EAAOC,mBAAmB,GAChD4B,YAAY,SACZiM,IAAKyB,EACL3Q,KAAK,gBACL8C,MAAM,OACN/C,GAAG,QACH6C,MAAM,EACNxD,UAAU,qBAGd,oBAAIA,UAAU,gDAA+C,SAC3D,cAAC,GAAK,CACJ4D,UAAW,CAAE5B,SAAS,EAAOC,mBAAmB,GAChD4B,YAAY,QACZiM,IAAKyB,EACL3Q,KAAK,mBACL8C,MAAM,UACN/C,GAAG,QACHR,KAAK,SACLH,UAAU,2BAGd,oBAAIA,UAAU,uCAAsC,SAClD,cAAC,GAAK,CACJ4D,UAAW,CAAE5B,SAAS,EAAOC,mBAAmB,GAChD4B,YAAY,WACZiM,IAAKyB,EACL3Q,KAAK,iBACL8C,MAAM,SACN/C,GAAG,SACH6C,MAAM,EACNxD,UAAU,wBAKhB,qBAAIA,UAAU,GAAE,UACd,oBAAIA,UAAU,+CAA8C,SAC1D,4BAAIwW,MAEN,oBAAIxW,UAAU,+CAA8C,SAC1D,4BAAG,eAEL,oBAAIA,UAAU,gDAA+C,SAC3D,cAAC,GAAK,CACJ4D,UAAW,CAAE5B,SAAS,EAAOC,mBAAmB,GAChD4B,YAAY,WACZiM,IAAKyB,EACL3Q,KAAK,uBACL8C,MAAM,QACN/C,GAAG,OACHR,KAAK,OACLH,UAAU,0BACViiB,QAAQ,OACRjO,UAAW,MAGf,oBAAIhU,UAAU,gDAA+C,SAC3D,cAAC,GAAK,CACJ4D,UAAW,CAAE5B,SAAS,EAAOC,mBAAmB,GAChD4B,YAAY,SACZiM,IAAKyB,EACL3Q,KAAK,eACL8C,MAAM,OACN/C,GAAG,QACH6C,MAAM,EACNxD,UAAU,qBAGd,oBAAIA,UAAU,uCAAsC,SAClD,cAAC,GAAK,CACJ4D,UAAW,CAAE5B,SAAS,EAAOC,mBAAmB,GAChD4B,YAAY,QACZiM,IAAKyB,EACL3Q,KAAK,kBACL8C,MAAM,UACN/C,GAAG,QACHR,KAAK,SACLH,UAAU,2BAGd,oBAAIA,UAAU,8BAA6B,SACzC,cAAC,GAAK,CACJ4D,UAAW,CAAE5B,SAAS,EAAOC,mBAAmB,GAChD4B,YAAY,WACZiM,IAAKyB,EACL3Q,KAAK,gBACL8C,MAAM,SACN/C,GAAG,SACH6C,MAAM,EACNxD,UAAU,mCASxB,cAAC,EAAa,CACZiG,iBAAiB,iBACjBC,YAAaA,EACbE,aAAcA,SAGd,E,qpNChhB0C8b,UAkTrCC,OA7PwBA,EACrCxX,8BACAG,WACAF,UACAC,eACKqX,GAADA,OACJ,MAAM,SAAE3Q,EAAQ,SAAEtB,EAAQ,aAAEuB,EAAY,OAAEC,EAAM,UAAEC,IAAW,UAC3DC,iBACKyQ,EAAKC,IAAO,UAAG5f,mBAAS0O,MACxBmR,EAAWC,IAAa,UAAG9f,mBAAS0O,GAAgB,KACpD/K,EAAckF,IAAgB,UAAG7I,oBAAS,IAC3CgL,GAAO,UAAGpH,eAAa6b,UAW3BA,WACF,MAAMhc,EAAcgH,MAAOpM,EAA6ByI,KAAkB2Y,GAADA,wBACjE5P,IAAoBjF,MAAK,KAAM6U,uBAAQpW,KAAKvC,KAAM,EAEpD+I,GAAiB,WAAGd,GAA6BtE,UAAsBgV,GAADA,kBAC1ExU,EAAagE,GAAW,EAAM,KAC7BwQ,WAEH,MAAMxU,EAAeR,MAAOwE,EAAgBvD,KAAiC+T,GAADA,OAC1E,MAAMhF,GAAM,sCACPxL,GAAS,IACZzG,gBAAiBN,KACjBuX,WACF5W,GAAgB,GAAM4W,WACtBpb,EACGmH,KAAKrG,EAAKO,eAAgB+U,GAC1B7P,MAAM7B,IAAc0W,GAADA,kBAClBrV,QAAQC,IAAItB,GAAU0W,WA3BMA,GAADA,iBAC/BtX,EAAQ,CACNsD,KAAM,CACJA,KAAM,CACJtD,QAAQ,8BAGXsX,UACHrX,GAAS,GAAMqX,UACf3U,YAAW,KAAM2U,wBAAS,KAAQ,KAmBTA,WAEjB/T,GAAqB+T,GAADA,qBACtB3U,YACE,KACG2U,GAADA,kBACE5W,GAAgB,GAAO4W,WACvBzU,EAAQ3B,KAAK,CACXsC,SAAU,OACVC,MAAO1D,GACP,GAEN,OAEH,gBAGF2C,OAAOhG,IAAW4a,IAADA,uBAChBrV,QAAQC,IAAS,OAALxF,QAAK,IAALA,GAAe,QAAV,EAALA,EAAOkE,gBAAQ,WAAV,EAALlE,EAAiBlF,MAAM8f,WACnCtX,EAAQ,CACNsD,KAAM,CACJA,KAAM,CACJ5G,MAAO,2HAGV4a,WACHrX,GAAS,GAAMqX,WACf3U,YAAW,KAAO2U,GAADA,mBACfrX,GAAS,GAAMqX,WACf5W,GAAgB,EAAM,GACrB,IAAK,GACR,EAGAkX,GAAwC,WAAG,CAC/C,CACEC,UAAW,8BACXC,kBAAmB,iCACnBC,YAAa,wGAEf,CACEA,YAAa,eACbF,UAAW,qBACXC,kBAAmB,yBAErB,CACEC,YAAa,qCACbF,UAAW,sBACXC,kBAAmB,0BAErB,CACEC,YAAa,aACbF,UAAW,sBACXC,kBAAmB,0BAErB,CACEC,YAAa,cACbF,UAAW,uBACXC,kBAAmB,6BAIjBE,GAAyD,WAAG,CAChE,CACED,YAAa,mBACbF,UAAW,2BACXC,kBAAmB,+BAErB,CACEC,YAAa,iDACbF,UAAW,kCACXC,kBAAmB,sCAErB,CACEC,YAAa,iCACbF,UAAW,yBACXC,kBAAmB,6BAErB,CACEC,YAAa,yDACbF,UAAW,+BACXC,kBAAmB,mCAErB,CACEC,YAAa,eACbF,UAAW,qBACXC,kBAAmB,yBAErB,CACED,UAAW,+BACXC,kBAAmB,kCACnBC,YAAa,2BAIXE,GAAM,WAAGrR,GAA8BE,IAAewQ,GAADA,mBACzDxU,EAAagE,GAAW,EAAK,KAC5BwQ,WAEHxf,qBAAU,KAAOwf,GAADA,mBACdjS,EAAS,kBAAmBtF,GAiB3BuX,WAfDhV,iBAAiCgV,GAADA,QAC9B,MAAM1W,GAAQ,iBAAS1E,EAAMqG,IAAI,GAAD,OAC3BvF,EAAKQ,eAAa,OAAGuC,GACxB,CACEjL,QAAS,CACP0N,OAAQ,mBACR,eAAgB,uBAGpB8U,WACFrV,QAAQC,IAAItB,GAAU0W,WACtBnP,OAAO+P,QAAQtX,EAASpJ,MAAM4Q,SAAQ,EAAEhQ,EAAKjC,MAAYmhB,GAADA,mBAEtDjS,EAASjN,EAAKjC,EAAM,GAExB,CAEAgiB,GAAiB1V,MAAK,KAAM6U,8BAAQpV,IAAI4E,OAAa,GACpD,CAAC/G,EAA6B+G,EAAWzB,IAAWiS,WAEvD,MAAMc,EAAkBC,IACtBf,qDACE,oBAAIliB,UAAU,mFAAkF,SAC7FijB,EAASN,cAEZ,oBAAI3iB,UAAU,+DAA8D,SACxE,qBAAKA,UAAU,sBAAqB,SAClC,yBACEA,UAAU,mCACVY,KAAMqiB,EAASR,UACf3S,IAAKyB,EAAS,UAEd,wBAAQxQ,MAAM,KACd,iCAAQ,OACR,iCAAQ,eAIhB,oBAAIf,UAAU,sDAAqD,SACjE,qBAAKA,UAAU,sBAAqB,SAClC,yBAAQY,KAAMqiB,EAASP,kBAAmB5S,IAAKyB,EAAS,UACtD,wBAAQxQ,MAAM,KACd,iCAAQ,OACR,iCAAQ,mBAKjBmhB,WAED,MAAMgB,EAAgBjjB,IACpBiiB,qDACE,oBAAIliB,UAAU,iFAAgF,SAAEC,IAChG,oBAAID,UAAU,mFACd,oBAAIA,UAAU,uFAIlB,OAFCkiB,WAGC,qCACE,cAAC,GAAa,CAAChc,YAAaA,IAC5B,sBAAMqJ,SAAUsT,EAAO,SACrB,gCACE,8BACE,oBAAG7iB,UAAU,sDAAqD,2BACjD,SAInB,qBAAKA,UAAU,iFAAgF,SAC7F,sBAAKA,UAAU,4HAA2H,UACxI,8BACE,mBAAGA,UAAU,2DAA0D,+BAIzE,wBAAOA,UAAU,qCAAoC,UACnD,gCACE,qBAAIA,UAAU,mCAAkC,UAC9C,oBAAIA,UAAU,4BAA2B,SAAC,gBAC1C,oBAAIA,UAAU,0BAAyB,0GAErBsiB,KAElB,qBAAItiB,UAAU,+BAA8B,UACzC,IAAG,qJAG0BoiB,WAInCc,EAAa,eACbV,EAAqB7iB,KAAKsjB,IAA0Bf,wBAAee,MACnEC,EAAa,uBACbN,EAAsCjjB,KAAKsjB,IAA0Bf,wBAAee,cAK3F,cAAC,EAAa,CACZhd,iBAAiB,WACjBC,YAAaA,EACbE,aAAcA,WAInB,E,ujDChTsC+c,UAwD9BC,OA/CoBA,EACjCzY,8BACAC,UACAC,eACKsY,GAADA,iBAUFA,UAEF,OAD6BA,UAE3B,gCACE,cAAC,GAAa,CAACjd,YAHCA,KAAOid,GAADA,UAItB,8BACE,mBAAGnjB,UAAU,sDAAqD,0BAIpE,qBAAKA,UAAU,kFAAiF,SAC9F,qBAAKA,UAAU,2HAA0H,SACvI,uBAAOA,UAAU,qCAAoC,SACnD,kCACE,6BACE,oBAAIA,UAAU,6BAA4B,8IAK5C,6BACE,qBAAKA,UAAU,OAAM,SACnB,cAAC,EAAM,CAACI,QA/BAijB,KAAOF,GAADA,iBAC5Brc,EACGqG,IAAI,GAAD,OAAIvF,EAAKmB,qBAAmB,OAAG4B,GAA+B,CAChE0N,aAAc,SAEfhL,MAAMpD,IAAOkZ,GAADA,iBACX7M,GAAarM,EAAG,OAAQ,EAAGU,EAA4B,IAExD2C,OAAOgL,IAAQ6K,4BAAQ7b,MAAMgR,KAAK,EAuBU,SAAC,gCAO1C,ECxDH,MAKMgL,GAAYA,KACvB,MAAMC,EAAe7c,eAAeC,QAAQ,UAC5C,OAAOC,KAAKC,MAAM0c,EAAa,EAGlB,SAASC,KACtB,MAAOC,EAAM9I,GAAWlY,mBAXHihB,MACrB,MAAMC,EAAajd,eAAeC,QAAQ,QAC1C,OAAOC,KAAKC,MAAM8c,EAAW,EASID,IAajC,MAAO,CACLD,OACApI,OAAQiI,KACR3I,QAdeiJ,CAACH,EAAMpI,KACT,OAAToI,GACF/c,eAAemd,WAAW,QAC1Bnd,eAAemd,WAAW,YAE1Bnd,eAAeod,QAAQ,OAAQld,KAAKgP,UAAU6N,IAC9C/c,eAAeod,QAAQ,SAAUld,KAAKgP,UAAUyF,KAElDV,EAAQ8I,EAAK,EAQjB,CC7BO,MAAMM,GAAiCA,KAC5C,MAAMpZ,EAA8BjE,eAAeC,QAAQ,+BAC3D,OAAOC,KAAKC,MAAM8D,EAA4B,E,8pBCJzC,MAAMqZ,IAAiB,UAAG,CAC/B,CACE1a,KAAM,gBACN1I,KAAM,wBACNqjB,sBAAuB,GACvBpgB,YAAa,YAEf,CACEyF,KAAM,YACN1I,KAAM,mBACNsjB,iBAAkB,GAClBrgB,YAAa,YAEf,CACEyF,KAAM,kBACN1I,KAAM,yBACNujB,uBAAwB,GACxBtgB,YAAa,YAEf,CACEyF,KAAM,qCACN1I,KAAM,oCACNwjB,kCAAmC,GACnCvgB,YAAa,YAEf,CACEyF,KAAM,6BACN1I,KAAM,oBACNyjB,kBAAmB,GACnBxgB,YAAa,IAEf,CACEyF,KAAM,6BACN1I,KAAM,wBACN0jB,sBAAuB,GACvBzgB,YAAa,YAEf,CACEyF,KAAM,cACN1I,KAAM,cACN2jB,YAAa,GACb1gB,YAAa,YAEf,CACEyF,KAAM,4CACN1I,KAAM,UACN4jB,QAAS,GACT3gB,YAAa,YAEf,CACEyF,KAAM,uBACN1I,KAAM,sBACN6jB,oBAAqB,GACrB5gB,YAAa,YAEf,CACEyF,KAAM,0BACN1I,KAAM,uBACNiD,YAAa,GACb9D,QAAS,EACT2kB,OAAO,GAET,CACEpb,KAAM,kBACN1I,KAAM,kBACN+jB,gBAAiB,GACjB9gB,YAAa,YAGf,CACEyF,KAAM,cACN1I,KAAM,cACNgkB,YAAa,GACb/gB,YAAa,YAEf,CACEyF,KAAM,gBACN1I,KAAM,gBACNikB,cAAe,GACfhhB,YAAa,cAGJihB,IAAiB,UAAG,CAC/B,CACExb,KAAM,gBACN1I,KAAM,wBACNmkB,sBAAuB,GACvBlhB,YAAa,YAEf,CACEyF,KAAM,YACN1I,KAAM,mBACNokB,iBAAkB,GAClBnhB,YAAa,YAEf,CACEyF,KAAM,kBACN1I,KAAM,yBACNqkB,uBAAwB,GACxBphB,YAAa,YAEf,CACEyF,KAAM,qCACN1I,KAAM,oCACNskB,kCAAmC,GACnCrhB,YAAa,YAEf,CACEyF,KAAM,iBACN1I,KAAM,iBACNukB,eAAgB,GAChBthB,YAAa,YAEf,CACEyF,KAAM,QACN1I,KAAM,QACNwkB,MAAO,GACPvhB,YAAa,YAEf,CACEyF,KAAM,eACN1I,KAAM,cACNykB,YAAa,GACbxhB,YAAa,YAEf,CACEyF,KAAM,2BACN1I,KAAM,uBACN0kB,qBAAsB,GACtBzhB,YAAa,YAEf,CACEyF,KAAM,sBACN1I,KAAM,qBACN2kB,mBAAoB,GACpB1hB,YAAa,YAEf,CACEyF,KAAM,+BACN1I,KAAM,yBACN4kB,uBAAwB,GACxB3hB,YAAa,YAEf,CACEyF,KAAM,iBACN1I,KAAM,iBACN6kB,eAAgB,GAChB5hB,YAAa,YAEf,CACEyF,KAAM,6BACN1I,KAAM,2BACN8kB,yBAA0B,GAC1B7hB,YAAa,YAEf,CACEyF,KAAM,yCACN1I,KAAM,kCACN+kB,gCAAiC,GACjC9hB,YAAa,cAGJ+hB,IAAmB,UAAG,CACjC,CACEtc,KAAM,gBACN1I,KAAM,cACNilB,YAAa,GACbhiB,YAAa,YAEf,CACEyF,KAAM,+DACN1I,KAAM,yCACNklB,uCAAwC,GACxCjiB,YAAa,YAEf,CACEyF,KAAM,oEACN1I,KAAM,uBACNmlB,qBAAsB,GACtBliB,YAAa,c,q5ZCjKiBmiB,UAkkBnBC,OAphBoCA,EACjDtb,8BACAC,UACAC,eACKmb,GAADA,OACJ,MAAM,SAAEzU,EAAQ,SAAEtB,EAAQ,aAAEuB,EAAY,UAAEE,IAAW,UACnDC,gBACIlE,GAAO,UAAGpH,gBACT6f,EAAWC,IAAa,UAAG1jB,mBAASuhB,MACpCoC,EAAWC,IAAY,UAAG5jB,mBAASqiB,MACnCe,EAAaS,IAAe,UAAG7jB,mBAASmjB,MACxCxf,EAAckF,IAAgB,UAAG7I,oBAAS,IAAOujB,UAYtDA,WACF,MAAM9f,EAAcgH,MAAOpM,EAA6ByI,KAAkByc,GAADA,kBACvEllB,EAAE0O,iBAAiBwW,WACnB1T,IAAoBjF,MAAK,KAAM2Y,uBAAQla,KAAKvC,KAAM,EAE9C+I,GAAiB,WAAGd,GAAa,KAAOwU,GAADA,OAC3C,MAAMO,GAAY,WAAGC,KACrB,IAAI,GAAqB,WAAGD,IAAxB,SAAEE,GAAmB,EAAN5T,8BAEnB,MAAMqK,GAAM,oCACVjS,gBAAiBN,GACdkI,GAAI,IACP4T,SAAU,KACVT,WACFtY,EAAawP,GAAQ,EAAM,KAC1B8I,WAEH,MAAMtY,EAAeR,MAAOa,EAAUI,KAAiC6X,GAADA,kBACpE1a,GAAgB,GAAM0a,WACtBlf,EACGmH,KAAKrG,EAAKa,cAAesF,GACzBV,MAAM7B,IAA4Cwa,GAADA,kBAChDnZ,QAAQC,IAAItB,GAAUwa,WAhCMA,GAADA,iBAC/Bpb,EAAQ,CACNsD,KAAM,CACJA,KAAM,CACJtD,QAAQ,kCAGXob,UACHnb,GAAS,GAAMmb,WACfzY,YAAW,KAAMyY,wBAAS,KAAQ,MAwBTA,WAClB7X,GAAoB6X,GAADA,qBACpBzY,YACE,KAAOyY,GAADA,kBACJ1a,GAAgB,GAAO0a,WACvBvY,EAAQ3B,KAAK,CACXsC,SAAU,WACVC,MAAO1D,GACP,GACD,OACN,gBAEF2C,OAAOhG,IAAW0e,IAADA,uBAChBnZ,QAAQC,IAAS,OAALxF,QAAK,IAALA,GAAe,QAAV,EAALA,EAAOkE,gBAAQ,WAAV,EAALlE,EAAiBlF,MAAM4jB,WACnCpb,EAAQ,CACNsD,KAAM,CACJA,KAAM,CACJ5G,MAAO,+HAGV0e,WACHnb,GAAS,GAAMmb,WACfzY,YAAW,KAAOyY,GAADA,mBACfnb,GAAS,GAAOmb,WAChB1a,GAAgB,EAAM,GACrB,IAAK,GACR,EACL0a,WAGDtjB,qBAAU,KAAOsjB,GAADA,QAuBbA,WAtBD9Y,iBAA8B8Y,GAADA,yBACrBlf,EACHqG,IAAI,GAAD,OAAIvF,EAAKc,cAAY,OAAGiC,GAA+B,CACzDjL,QAAS,CACP0N,OAAQ,mBACR,eAAgB,sBAGnBC,MAAM7B,IAAcwa,GAADA,mBAClBjT,OAAO+P,QAAQtX,EAASpJ,MAAM4Q,SAAQ,EAAEhQ,EAAKjC,MAAYilB,GAADA,mBACtDnZ,QAAQC,IAAI9J,EAAKjC,GACjB,WACAkP,EAASjN,EAAKzE,EAAoBwC,IAAQilB,WAC1CU,GAAc,IACbV,WACHnZ,QAAQC,IAAItB,EAASpJ,KAAK,IAE3BkL,OAAOgL,IAAS0N,GAADA,mBACdnZ,QAAQC,IAAI,CAAEwL,QACd,MAAMtT,GAAC,WAAG+N,OAAOmK,OAAO5E,IAAK0N,WAC7BnZ,QAAQC,IAAI9H,EAAE,GAEpB,CAEA2hB,EAAa,GACZ,CAAChc,IAA8Bqb,WAElC,MAAM1I,EAAOsJ,IACXZ,6BAAO9I,OAAO0J,GACXjnB,KAAK6E,IAASwhB,wBAAkBxhB,MAChC+Y,QAAO,CAACsJ,EAAGC,KAAMd,wBAAIc,IAAG,IAAGd,WAEhC,MAAMU,EAAeA,KAAOV,GAADA,QACzB,MAAMzT,GAAG,WAAGb,KACNqV,GAAM,WAAGC,eAAKzU,EAAK,CACvB,wBACA,mBACA,yBACA,oCACA,iBACA,QACA,cACA,uBACA,qBACA,yBACA,iBACA,2BACA,qCAEI0U,GAAQ,WAAGD,eAAKzU,EAAK,CACzB,wBACA,mBACA,yBACA,oCACA,oBACA,wBACA,cACA,UACA,sBACA,kBACA,cACA,mBAEI2U,GAAW,WAAG5J,EAAIyJ,IAClBI,GAAa,WAAG7J,EAAI2J,IAAUjB,WACpC/V,EAAS,kBAAmB1R,EAAoB2oB,IAAclB,WAC9D/V,EAAS,kBAAmB1R,EAAoB4oB,IAChD,MAAMC,GAAM,WAAGF,EAAcC,GAAcnB,WAC3C/V,EAAS,WAAY1R,EAAoB6oB,GAAQ,EACjDpB,WAEF,MAAMqB,EAAwBvmB,IAAiCklB,GAADA,QAC5D,MAAM,KAAEplB,EAAI,MAAEG,IAAO,WAAGD,EAAE0N,QAAOwX,WACjCK,GAAa1X,IACXqX,wBAAUrmB,KAAK2nB,IAAYtB,GAADA,mBACpBsB,EAAO1mB,OAASA,GAAOolB,GAADA,qBACjB,OAAP,IAAO,CAAP,eAAYsB,GAAM,IAAE,CAAC1mB,GAAOG,MAC7B,wBACMumB,SAETtB,WACF/V,EAASrP,EAAMG,GAAOilB,WACtBU,IAAeV,WACfnZ,QAAQC,IAAI4E,IAAY,EACxBsU,WAEF,MAAMuB,EAAyBzmB,IAAiCklB,GAADA,QAC7D,MAAM,KAAEplB,EAAI,MAAEG,IAAO,WAAGD,EAAE0N,QAAOwX,WACjCG,GAAcxX,IACZqX,wBAAUrmB,KAAK6nB,IAAaxB,GAADA,mBACrBwB,EAAQ5mB,OAASA,GAAOolB,GAADA,qBAClB,OAAP,IAAO,CAAP,eAAYwB,GAAO,IAAE,CAAC5mB,GAAOG,MAC9B,wBACMymB,SAETxB,WACF/V,EAASrP,EAAMG,GAAOilB,WACtBU,IAAeV,WACfnZ,QAAQC,IAAI4E,IAAY,EACxBsU,WACF,MAAMyB,EAA4B3mB,IAAiCklB,GAADA,QAChE,MAAM,KAAEplB,EAAI,MAAEG,IAAO,WAAGD,EAAE0N,QAAOwX,WACjCM,GAAgB3X,IACdqX,wBAAUrmB,KAAKkmB,IAAiBG,GAADA,mBACzBH,EAAYjlB,OAASA,GAAOolB,GAADA,qBACtB,OAAP,IAAO,CAAP,eAAYH,GAAW,IAAE,CAACjlB,GAAOG,MAClC,wBACM8kB,SAETG,WACF/V,EAASrP,EAAMG,EAAM,EACrBilB,WACF,MAAMQ,EAAaA,KAAOR,GAADA,QACvB,IAAI0B,GAAU,WAAGhW,KAMjB,OAN6BsU,WAE7BjT,OAAO+P,QAAQ4E,GAAY1U,SAAQ,EAAEhQ,EAAKjC,MAAYilB,GAADA,mBAEnD/V,EAASjN,EAAKnE,EAAkBkC,GAAO,IACtCilB,WACItU,GAAW,EAEdmR,GAAM,WAAGrR,GAAa,KAAOwU,GAADA,QAChC,MAAMO,GAAY,WAAGC,KACrB,IAAI,GAAqB,WAAGD,IAAxB,SAAEE,GAAmB,EAAN5T,8BAEnB,MAAMqK,GAAM,oCACVjS,gBAAiBN,GACdkI,GAAI,IACP4T,SAAU,KACVT,WAEFtY,EAAawP,GAAQ,EAAK,KAG5B,OAFG8I,WAGD,sBAAKhmB,UAAU,uBAAsB,UACnC,cAAC,GAAa,CAACkG,YAAaA,IAC5B,qBAAKlG,UAAU,yCAAwC,SACrD,uBAAMuP,SAAUsT,EAAO,UACrB,gCAGE,8BACE,mBAAG7iB,UAAU,qDAAoD,kCAKnE,qBAAKA,UAAU,OAAM,SACnB,sBAAKA,UAAU,uDAAsD,UAEnE,qBAAKA,UAAU,+DAA8D,SAC3E,sBAAKA,UAAU,oIAAmI,UAChJ,8BACE,mBAAGA,UAAU,0DAAyD,6BAIxE,wBAAOA,UAAU,mBAAkB,UACjC,gCACE,qBAAIA,UAAU,mCAAkC,UAC9C,oBAAIA,UAAU,0CAAyC,uBAGvD,oBAAIA,UAAU,0CAAyC,2BAK3D,gCACGomB,EAAUzmB,KAAI,CAAC6E,EAAM3E,KAAWmmB,GAADA,oBAE5B,qBAEEhmB,UAAU,mCAAkC,UAE5C,oBAAIA,UAAU,iGAAgG,SAC3GwE,EAAK8E,OAER,qBAAItJ,UAAU,4FAA2F,UACvG,cAAC,GAAK,CACJA,UAAU,qDACVG,KAAK,OACL6T,UAAW,GACXnQ,YAAaW,EAAKX,YAClBjD,KAAM4D,EAAK5D,KACXkP,IAAKyB,EAAS,CACZwE,UAAU,EACVC,IAAK,IAEPnV,SAAUwmB,EACV1mB,GAAI6D,EAAK5D,KACT8C,MAAOc,EAAK5D,KACZgD,UAAW,CACT3B,mBAAmB,EACnBD,SAAS,GAEX8B,eAAe,IAEjB,sBAAM9D,UAAU,kFAAiF,SAC/F,sBAAMA,UAAU,yBAAwB,wBA3BvCH,QAoCb,kCACE,qBAAIG,UAAU,mCAAkC,UAC9C,oBAAIA,UAAU,0DACd,oBAAIA,UAAU,mDAEhB,oBAAIA,UAAU,qCACd,qBAAIA,UAAU,mCAAkC,UAC9C,oBAAIA,UAAU,kGAAiG,8BAG/G,qBAAIA,UAAU,yCAAwC,UACpD,cAAC,GAAK,CACJ8P,IAAKyB,EACLvR,UAAU,qDACVY,KAAK,kBACL8C,MAAM,GACN/C,GAAG,kBACHQ,UAAQ,EACRyC,UAAW,CACT3B,mBAAmB,EACnBD,SAAS,GAEX6B,YAAY,QACZC,eAAe,EACf3D,KAAK,SAEP,sBAAMH,UAAU,kFAAiF,SAC/F,sBAAMA,UAAU,yBAAwB,yBAM9C,qBAAIA,UAAU,mCAAkC,UAC9C,oBAAIA,UAAU,kGAAiG,sBAG/G,qBAAIA,UAAU,yCAAwC,UACpD,cAAC,GAAK,CACJA,UAAU,qDACV8P,IAAKyB,EACL3Q,KAAK,WACL8C,MAAM,GACN/C,GAAG,WACHQ,UAAQ,EACRyC,UAAW,CACT3B,mBAAmB,EACnBD,SAAS,GAEX6B,YAAY,QACZC,eAAe,EACf3D,KAAK,SAEP,sBAAMH,UAAU,kFAAiF,SAC/F,sBAAMA,UAAU,yBAAwB,yBAM9C,6BACE,oBACED,QAAS,EACTC,UAAU,wGAAuG,iFAU7H,qBAAKA,UAAU,+DAA8D,SAC3E,sBAAKA,UAAU,iHAAgH,UAC7H,8BACE,mBAAGA,UAAU,0DAAyD,6BAIxE,wBAAOA,UAAU,mBAAkB,UACjC,gCACE,qBAAIA,UAAU,mCAAkC,UAC9C,oBAAIA,UAAU,0CAAyC,uBAGvD,oBAAIA,UAAU,0CAAyC,2BAK3D,gCACGkmB,EAAUvmB,KAAI,CAAC6E,EAAM3E,KAAWmmB,GAADA,oBAE5B,oBAEEhmB,UAAU,mCAAkC,SAE3CwE,EAAKkgB,OAAK,aACT,oBACE3kB,QAASyE,EAAKzE,QACdC,UAAU,wFAAuF,sCAG9F,aAEL,qCACE,oBAAIA,UAAU,iGAAgG,SAC3GwE,EAAK8E,OAER,qBAAItJ,UAAU,4FAA2F,UACvG,cAAC,GAAK,CACJA,UAAU,qDACVG,KAAK,OACL0D,YAAaW,EAAKX,YAClBjD,KAAM4D,EAAK5D,KACXoT,UAAW,GACXlE,IAAKyB,EAAS,CACZwE,UAAU,EACVC,IAAK,IAEPnV,SAAU0mB,EACV5mB,GAAI6D,EAAK5D,KACT8C,MAAOc,EAAK5D,KACZgD,UAAW,CACT3B,mBAAmB,EACnBD,SAAS,GAEX8B,eAAe,IAEjB,sBAAM9D,UAAU,kFAAiF,SAC/F,sBAAMA,UAAU,yBAAwB,2BApC3CH,QA+Cb,kCACE,qBAAIG,UAAU,mCAAkC,UAC9C,oBAAIA,UAAU,0DACd,oBAAIA,UAAU,mDAEhB,oBAAIA,UAAU,qCACd,qBAAIA,UAAU,mCAAkC,UAC9C,oBAAIA,UAAU,kGAAiG,8BAG/G,qBAAIA,UAAU,yCAAwC,UACpD,cAAC,GAAK,CACJ8P,IAAKyB,EACLvR,UAAU,qDACVY,KAAK,kBACL8C,MAAM,GACN/C,GAAG,kBACHQ,UAAQ,EACRyC,UAAW,CACT3B,mBAAmB,EACnBD,SAAS,GAEX6B,YAAY,QACZC,eAAe,EACf3D,KAAK,SAEP,sBAAMH,UAAU,kFAAiF,SAC/F,sBAAMA,UAAU,yBAAwB,yCAY1D,qBAAKA,UAAU,qEAAoE,SACjF,sBAAKA,UAAU,6IAA4I,UACzJ,8BACE,mBAAGA,UAAU,0DAAyD,8BAIxE,wBAAOA,UAAU,mBAAkB,UACjC,gCACE,qBAAIA,UAAU,mCAAkC,UAC9C,oBAAIA,UAAU,yCAAwC,yBAGtD,oBAAIA,UAAU,yCAAwC,2BAK1D,gCACG6lB,EAAYlmB,KAAI,CAAC6E,EAAM3E,KAAWmmB,GAADA,oBAE9B,qBAEEhmB,UAAU,mCAAkC,UAE5C,oBAAIA,UAAU,iGAAgG,SAC3GwE,EAAK8E,OAER,qBAAItJ,UAAU,4FAA2F,UACvG,cAAC,GAAK,CACJA,UAAU,qDACVG,KAAK,OACL6T,UAAW,GACXnQ,YAAaW,EAAKX,YAClBjD,KAAM4D,EAAK5D,KACXkP,IAAKyB,EACL1Q,SAAU4mB,EACV9mB,GAAI6D,EAAK5D,KACT8C,MAAOc,EAAK5D,KACZgD,UAAW,CACT3B,mBAAmB,EACnBD,SAAS,GAEX8B,eAAe,IAEjB,sBAAM9D,UAAU,kFAAiF,SAC/F,sBAAMA,UAAU,yBAAwB,wBAxBvCH,mBAqCrB,cAAC,EAAa,CAACoG,iBAAiB,OAAOC,YAAaA,EAAaE,aAAcA,WAG/E,E,6kKCpWKuhB,OAvNf,WAAgBC,GAADA,OACb,MAAM,KAAEnE,EAAI,OAAEpI,EAAM,QAAEV,IAAS,UAAG6I,MAC5BqE,GAAW,UAAG,kBAAW/W,IAAXuK,IAAoB,aAAe,OAAXA,IACtC1D,GAAQ,UAAGkQ,GAAW,aACxBxM,EAAOC,SAAS,iBAAc,cAC9B,IACEhZ,GAAO,UAAGulB,GAAW,aACvBxM,EAAOC,SAAS,gBAAa,cAC7B,KAEE,4BAAE3Q,EAA2B,+BAAE+M,IAAgC,UHzBxD,WACb,MAAO/M,EAA6B+M,GAAkCjV,mBAASshB,IAQ/E,MAAO,CACLpZ,8BACA+M,+BATsC/M,IACL,OAAhCA,EACGjE,eAAemd,WAAW,+BAC1Bnd,eAAeod,QAAQ,8BAA+Bld,KAAKgP,UAAUjL,IACzE+M,EAA+B/M,EAA4B,EAO/D,CGaImd,KACI,MAAEzgB,EAAK,SAAEuT,IAAU,U/B3BZ,WACb,MAAOvT,EAAOuT,GAAYnY,mBAAS+D,KAUnC,MAAO,CACLa,QACAuT,SAViBmN,IACjBlb,QAAQC,IAAIib,GACM,OAAdA,GAA2C,qBAAdA,EAC/BrhB,eAAemd,WAAW,SACvBnd,eAAeod,QAAQ,QAASld,KAAKgP,UAAUmS,IACpDnN,EAASmN,EAAU,EAOvB,C+BY8BC,KACrBC,EAAOpd,IAAS,UAAGpI,oBAAkB,KACrCmI,EAASsd,IAAW,UAAGzlB,mBAAiC,CAC7DyL,KAAM,CACJA,KAAM,CACJuF,cAAe,GACfxI,gBAAiB,EACjByJ,SAAU,GACVC,QAAQ,EACR/J,QAAS,QAIf,OADGgd,UAED,cAAC,IAAa,UACZ,sBAAK5nB,UAAU,qBAAoB,UACjC,cAACmoB,GAAA,EAAS,CAACnoB,UAAU,uCAAsC,SACzD,qBACEA,UAAU,oBACVooB,IAAI,oEACJC,IAAI,6BAGNhhB,GAKE,aAEF,sBAAKrH,UAAU,iBAAgB,UAC7B,sBAAKA,UAAU,yBAAwB,UACrC,mBAAGA,UAAU,OAAM,8BAAgByjB,MAEjC,cAAAnhB,IAAO,aAAIqV,MAAQ,aACnB,cAAC,IAAO,CACN3X,UAAU,uDACVwJ,GAAG,cACHC,gBAAgB,gCAChBrJ,QAAS,KAAMwnB,2BAAO3P,QAAQ,mCAA+B,2BAKjE,wBACEjY,UAAU,+PACVI,QAAS,KAAMwnB,uBAAS,KAAI,yBAK/B,aAAAK,IAAK,aAAI,cAAC,GAAK,CAAC/Z,KAAMtD,EAAQsD,KAAKA,SACpC,eAAC,IAAM,WACL,cAAC,IAAK,CACJoa,KAAK,SACLC,OAAS1Y,IACP+X,mCAAC,GAAK,2BACA/X,GAAK,IACT+K,SAAUA,EACVD,QAASA,EACTjD,+BACEA,QAKR,cAAC,IAAK,CACJ4Q,KAAK,cACLC,OAAS1Y,IACP+X,mCAAC,GAAU,2BACL/X,GAAK,IACTvN,QAASA,EACTqV,SAAUA,EACVtQ,MAAOA,EACPyD,SAAU2Y,EACV7Y,QAASsd,EACTrd,SAAUA,EACV6M,+BACEA,QAKR,cAAC,IAAK,CAAC4Q,KAAK,IAAIC,OAAQ,KAAMX,mCAAC,GAAI,KAAKY,OAAK,IAC7C,cAAC,IAAK,CACJF,KAAK,iBACLC,OAAS1Y,IACP+X,wDACE,cAAC,GAAa,2BACR/X,GAAK,IACTlF,4BAA6BA,EAC7BG,SAAU2Y,EACV7Y,QAASsd,EACTrd,SAAUA,UAKlB,cAAC,IAAK,CACJyd,KAAK,UACLC,OAAQ,KACNX,wDACE,cAAC,GAAM,CACLlQ,+BACEA,EAEF/M,4BAA6BA,EAC7BG,SAAU2Y,EACV7Y,QAASsd,EACTrd,SAAUA,SAKlB,cAAC,IAAK,CACJyd,KAAK,WACLC,OAAQ,KACNX,wDACE,cAAC,GAAO,CACN/c,SAAUA,EACVD,QAASsd,EACTvd,4BAA6BA,EAC7BG,SAAU2Y,SAKlB,cAAC,IAAK,CACJ6E,KAAK,eACLC,OAAQ,KACNX,wDACE,cAAC,GAAS,CACRjd,4BAA6BA,EAC7BG,SAAU2Y,EACV7Y,QAASsd,EACTrd,SAAUA,SAKlB,cAAC,IAAK,CACJyd,KAAK,OACLC,OAAQ,KACNX,yDACE,cAAC,GAAG,CACFlQ,+BACEA,EAEF/M,4BAA6BA,EAC7BG,SAAU2Y,EACV7Y,QAASsd,EACTrd,SAAUA,SAKlB,cAAC,IAAK,CACJyd,KAAK,OACLC,OAAQ,KACNX,yDACE,cAAC,GAAW,CACV/c,SAAUA,EACVD,QAASsd,EACTpd,SAAU2Y,EACV9Y,4BAA6BA,SAKrC,cAAC,IAAK,CACJ2d,KAAK,mBACLC,OAAQ,KACNX,yDACE,cAAC,GAAe,CACd/c,SAAUA,EACVD,QAASsd,EACTpd,SAAU2Y,EACV9Y,4BAA6BA,SAKrC,cAAC,IAAK,CACJ2d,KAAK,WACLC,OAAQ,KACNX,yDACE,cAAC,GAAO,CACNhd,QAASsd,EACTrd,SAAUA,EACVF,4BAA6BA,EAC7BG,SAAU2Y,iBAvKjB,aACL,cAAC,GAAK,CACJ9I,QAASA,EACTC,SAAUA,EACVlD,+BAAgCA,SA8K5C,EC7Ne+Q,OAZUC,IACnBA,GAAeA,aAAuBC,UACxC,8BAAqBtb,MAAK,EAAGub,SAAQC,SAAQC,SAAQC,SAAQC,cAC3DJ,EAAOF,GACPG,EAAOH,GACPI,EAAOJ,GACPK,EAAOL,GACPM,EAAQN,EAAY,GAExB,E,qgBCN6CO,UAE/CC,IAASX,OACP,cAAC,IAAMY,WAAU,UACb,cAAC,IAAa,UACV,cAAC,GAAG,QAGZrS,SAASsS,eAAe,SAK1B,UACAX,I","file":"static/js/main.98a24e63.chunk.js","sourcesContent":["export const IntlNubmerFormatter = (number: number) => {\n //if (number === 0) return \"0\";\n return Intl.NumberFormat(\"No-no\").format(number);\n};\nexport const removeWhiteSpaces = (str: string) => {\n return Number(str.replace(/\\s/g, \"\"));\n};\nexport const formatStringToNumber = (string: string) => {\n return Number(string.replace(/[^0-9.-]+/g, \"\"));\n};\nexport const formatZeroToEmpty = (number: number) => {\n if (number === 0) {\n return \"\";\n }\n return number;\n};\n\nexport const mapObjectToInt = (obj: any) =>\n Object.assign(\n {},\n ...Object.entries(obj).map(([k, v]) => ({\n [k]: formatStringToNumber(v as string),\n }))\n );\n\nexport const mapObjectFieldsToInt = (integerValues: any) => {\n Object.keys(integerValues).forEach((key) => {\n //@ts-ignore\n integerValues[key] = formatStringToNumber(integerValues[key] as string);\n });\n};\n","import { ColumnDefinitionType } from \"./Table\";\nimport React from \"react\";\n\ntype TableHeaderProps = {\n columns: Array>;\n addRow: () => void;\n showRowActions: boolean;\n hideColumns?: boolean \n};\n\nconst TableHeader = ({\n columns,\n addRow,\n showRowActions,\n hideColumns\n}: TableHeaderProps): JSX.Element => {\n const tableHeadTrClassName = \"border-b border-sk-tertiary-blue\";\n const headers = columns.map((column, index) => {\n const tableHeadClassName = \"text-2xl font-thin\";\n return (\n \n {column.header}\n \n );\n });\n\n return (\n \n \n {hideColumns !== true && headers}\n {showRowActions && (\n \n \n \n \n \n

Ny rad

\n \n \n )}\n \n \n );\n};\n\nexport default TableHeader;\n","import React from \"react\";\n\nconst TableOptionsGaverBidrag = ({ index, handleChange }: any): JSX.Element => {\n return (\n handleChange(e, index)}\n value={index.alternativ}\n >\n \n \n \n \n \n \n \n \n );\n};\nexport default TableOptionsGaverBidrag;\n","import React from \"react\";\nimport lodash from \"lodash\";\nconst TableOptionsEiendomType = ({ index, handleChange, disabled }: any): JSX.Element => {\n const capitalize = lodash.capitalize(index.type);\n return (\n
\n handleChange(e, index)}\n value={capitalize}\n disabled={disabled}\n >\n \n \n \n \n \n \n \n \n \n \n
\n );\n};\nexport default TableOptionsEiendomType;\n","import React from \"react\";\nimport lodash from \"lodash\";\nconst TableOptionsEiendomLeietaker = ({\n index,\n handleChange,\n disabled\n}: any): JSX.Element => {\n const capitalize = lodash.capitalize(index.leietaker);\n return (\n
\n handleChange(e, index)}\n value={capitalize}\n disabled={disabled}\n >\n \n \n \n \n \n
\n );\n};\nexport default TableOptionsEiendomLeietaker;\n","import lodash from \"lodash\";\n\nconst TableOptionsEiendomDriftsform = ({\n index,\n handleChange,\n disabled\n}: any): JSX.Element => {\n const capitalize = lodash.capitalize(index.driftsform);\n return (\n
\n handleChange(e, index)}\n value={capitalize}\n disabled={disabled}\n >\n \n \n \n \n \n \n
\n );\n};\nexport default TableOptionsEiendomDriftsform;\n","import { ColumnDefinitionType } from \"./Table\";\nimport React, { useEffect, useState } from \"react\";\nimport Input from \"../customhtmlcomponents/Input\";\nimport TableOptionsGaverBidrag from \"../gaverbidrag/TableOptionsGaverBidrag\";\nimport TableOptionsEiendomType from \"../eiendom/eiendomtableoptions/TableOptionsEiendomType\";\nimport TableOptionsEiendomLeietaker from \"../eiendom/eiendomtableoptions/TableOptionsEiendomLeietaker\";\nimport TableOptionsEiendomDriftsform from \"../eiendom/eiendomtableoptions/TableOptionsEiendomDriftsform\";\n\nexport type TableRowsProps = {\n data: Array;\n columns: Array>;\n removeRow: (id: number) => void;\n handleChange: any;\n addRow?: () => void;\n isAdmin: boolean;\n showRowActions: boolean;\n entityName?: string;\n};\n\nconst tdClassName = \"border-sk-tertiary-blue border-r-2 p-4\";\nconst tdBeskrivelseClassName =\n \"border-sk-tertiary-blue border-r-2 p-4 lg:w-2/4 w-1/3\";\nconst labelStyle = { labelOn: false, defaultLabelStyle: true };\n\nconst TableRows = ({\n data,\n columns,\n removeRow,\n handleChange,\n addRow,\n isAdmin,\n showRowActions\n}: TableRowsProps): JSX.Element => {\n const [rowData, setRowData] = useState(data);\n useEffect(() => {\n setRowData(data);\n }, [handleChange]);\n const keys = rowData?.flatMap(\n (t) =>\n Object.keys(t)\n .filter((k) => k === \"id\")\n //@ts-ignore\n .map((key) => t[key]) ?? columns.map((c) => c.key === \"id\")\n ) as number[];\n // @ts-ignore\n const rows = rowData.map((row, index) => {\n return (\n \n {columns.map((column, index2) => {\n const uniqueKey = `${index}-${index2}`\n const isUserEditingAdminColumn = column.editAsAdminOnly === true && !isAdmin\n if (column.key === \"type\") {\n return (\n \n \n \n );\n } else if (column.key === \"leietaker\") {\n return (\n \n \n \n );\n } else if (column.key === \"driftsform\") {\n return (\n \n \n \n );\n } else if (column.key === \"belop\" || column.key === \"omsetning\") {\n return (\n \n handleChange(e, row)}\n disabled={isUserEditingAdminColumn}\n />\n \n NOK\n \n \n );\n } else if (column.key === \"alternativ\") {\n return (\n \n \n \n );\n } else\n return (\n \n handleChange(e, row)}\n disabled={isUserEditingAdminColumn}\n />\n \n );\n })}\n {showRowActions && (\n <>\n {index === rowData.length - 1 ? (\n \n \n \n \n \n

Ny rad

\n \n \n ) : (\n \n removeRow(row.id)\n }\n className=\"flex flex-col items-center transition duration-500 ease-in-out transform hover:-translate-y-1 hover:scale-110 mx-auto\"\n >\n \n \n \n

Fjern rad

\n \n \n )}\n )}\n \n );\n });\n\n return {rows};\n};\n\nexport default TableRows;\n","import { ColumnDefinitionType } from \"./Table\";\nimport React, { useEffect, useState } from \"react\";\nimport Input from \"../customhtmlcomponents/Input\";\nimport TableOptionsGaverBidrag from \"../gaverbidrag/TableOptionsGaverBidrag\";\nimport TableOptionsEiendomType from \"../eiendom/eiendomtableoptions/TableOptionsEiendomType\";\nimport TableOptionsEiendomLeietaker from \"../eiendom/eiendomtableoptions/TableOptionsEiendomLeietaker\";\nimport TableOptionsEiendomDriftsform from \"../eiendom/eiendomtableoptions/TableOptionsEiendomDriftsform\";\nimport { TableRowsProps } from \"./TableRows\";\n\nconst labelStyle = { labelOn: true, defaultLabelStyle: false };\nconst labelClassName = \"text-xl text-black flex text-right\"\nconst VerticalRows = ({\n data,\n columns,\n removeRow,\n handleChange,\n addRow,\n isAdmin,\n showRowActions,\n entityName\n}: TableRowsProps): JSX.Element => {\n const [items, setItems] = useState(data);\n useEffect(() => {\n setItems(data);\n }, [handleChange]);\n\n const keys = items?.flatMap(\n (t) =>\n Object.keys(t)\n .filter((k) => k === \"id\")\n //@ts-ignore\n .map((key) => t[key]) ?? columns.map((c) => c.key === \"id\")\n ) as number[];\n // @ts-ignore\n\nconst tdClassName = \"text-center text-xl font-thin block cursor-pointer border-sk-tertiary-blue\";\n\n const getColumnCell = (item: T, index: number, column: ColumnDefinitionType, cIndex: number, isUserEditingAdminColumn: boolean) => {\n const uniqueKey = `${index}-${cIndex}`\n if (column.key === \"type\") {\n return (\n \n \n \n \n );\n } else if (column.key === \"leietaker\") {\n return (\n \n \n \n \n );\n } else if (column.key === \"driftsform\") {\n return (\n \n \n \n \n );\n } else if (column.key === \"belop\" || column.key === \"omsetning\") {\n return (\n \n handleChange(e, item)}\n disabled={isUserEditingAdminColumn}\n />\n \n NOK\n \n \n );\n } else if (column.key === \"alternativ\") {\n return (\n \n \n \n );\n } else\n return (\n \n handleChange(e, item)}\n disabled={isUserEditingAdminColumn}\n />\n \n );\n } \n\n const itemRow = (item: T, index: number, column: ColumnDefinitionType, cIndex: number, keys: number[]) => {\n const isUserEditingAdminColumn = column.editAsAdminOnly === true && !isAdmin\n\n return (\n \n {getColumnCell(item, index, column, cIndex, isUserEditingAdminColumn)}\n \n )\n }\n\n const verticalRows = items.map((item, index) => {\n const itemRows = columns.map((column, cIndex) => itemRow(item, index, column, cIndex, keys));\n\n const itemHeader = (\n \n\n \n
\n

\n {entityName} {index + 1}\n

\n
\n \n {showRowActions && (\n \n removeRow(item.id)\n }\n className=\"items-center transition duration-500 ease-in-out transform hover:-translate-y-1 hover:scale-110 mx-auto\"\n >\n \n \n \n

Fjern

\n \n \n )}\n \n )\n\n return (\n
\n {itemHeader}\n {itemRows}\n
\n )\n });\n\n const leftItems = verticalRows.filter((x, i) => i % 2 === 0)\n const rightItems = verticalRows.filter((x, i) => i % 2 === 1)\n\n return \n
\n {leftItems}\n
\n
\n {rightItems}\n
\n ;\n};\n\nexport default VerticalRows;","import TableHeader from \"./TableHeader\";\nimport TableRows from \"./TableRows\";\nimport VerticalRows from \"./VerticalRows\";\n\nexport type ColumnDefinitionType = {\n key: K;\n inputType: string;\n header: string;\n width?: number;\n textStyle?: string;\n colSpan?: number;\n isNumberField?: boolean;\n isWide?: boolean;\n editAsAdminOnly?: boolean;\n};\n\nexport type TableProps = {\n handleChange: any;\n data: Array;\n columns: Array>;\n removeRow: (id: number) => void;\n addRow: () => void;\n footer?: {\n enabled: boolean;\n footerData: any;\n };\n children?: JSX.Element | JSX.Element[];\n isAdmin: boolean;\n rowActionsAsAdminOnly?: boolean;\n useVerticalRows?: boolean;\n entityName?: string\n};\n\nconst tableClassName =\n \"mt-4 table-auto w-full self-center justify-center justify-items-center text-center\";\n\nconst Table = ({\n data,\n columns,\n removeRow,\n addRow,\n footer,\n handleChange,\n children,\n isAdmin,\n rowActionsAsAdminOnly,\n useVerticalRows,\n entityName\n}: TableProps): JSX.Element => {\n const showRowActions = !rowActionsAsAdminOnly || isAdmin\n return (\n \n \n {\n useVerticalRows ? (\n \n ):\n (\n \n )\n }\n \n {footer?.enabled && children}\n
\n );\n};\n\nexport default Table;\n","import React, {ButtonHTMLAttributes, DetailedHTMLProps, FC} from 'react';\n\ninterface ButtonProps extends DetailedHTMLProps, HTMLButtonElement> {\n underline?: boolean;\n}\n\nconst Button: FC = ({underline = true, className, children, ...restProps}) => (\n\n \n {children}\n \n);\nexport default Button;\n","import React, {FC, useState} from \"react\";\nimport Button from \"./Button\";\nimport {useHistory} from \"react-router-dom\";\ntype FooterButtonsProps = {\n previousLocation: string\n saveOnClick: (e: any, link:string) => Promise\n hidePreviousButton?: boolean\n isSubmitting: boolean\n}\nconst FooterButtons = ({previousLocation, saveOnClick, hidePreviousButton, isSubmitting}: FooterButtonsProps )=> {\n const history = useHistory()\n return (\n <>\n {!hidePreviousButton && }\n \n \n )\n}\n\nexport default FooterButtons;","import { useState } from \"react\";\n\nexport const getToken = () => {\n const tokenString = sessionStorage.getItem(\"token\");\n return JSON.parse(tokenString);\n};\n\nexport default function useToken() {\n const [token, setToken] = useState(getToken());\n\n const saveToken = (userToken) => {\n console.log(userToken);\n if (userToken === null || typeof userToken === \"undefined\")\n sessionStorage.removeItem(\"token\");\n else sessionStorage.setItem(\"token\", JSON.stringify(userToken));\n setToken(userToken);\n };\n\n return {\n token,\n setToken: saveToken,\n };\n}\n","import { default as _axios } from 'axios'\nimport { getToken } from './useToken';\n\nconst axios = _axios.create();\naxios.interceptors.request.use(\n config => {\n const token = getToken();\n if (token) {\n config.headers[\"Authorization\"] = token;\n }\n return config;\n },\n error => {\n return Promise.reject(error);\n }\n);\n\nexport default axios","const environment = process.env.REACT_APP_NODE_ENV;\n\nconst apiUrl = environment === 'prod' ? 'https://nks-prod-api.azurewebsites.net'\n: environment === 'dev' ? 'https://nks-dev-api.azurewebsites.net'\n: 'http://localhost:8080'\n\ntype DEVURL =\n | \"LOKALFORENING_POST\"\n | \"LOKALFORENING_GET\"\n | \"STYRET_POST\"\n | \"STYRET_GET\"\n | \"EIENDOM_POST\"\n | \"EIENDOM_GET\"\n | \"AKTIVITET_POST\"\n | \"AKTIVITET_GET\"\n | \"KOS_POST\"\n | \"KOS_GET\"\n | \"GAVER_BIDRAG_POST\"\n | \"GAVER_BIDRAG_GET\"\n | \"REGNSKAP_POST\"\n | \"REGNSKAP_GET\"\n | \"RAPPORT_GET\"\n | \"LOGIN_POST\"\n | \"ADMIN_FORENING_SOK_GET\"\n | \"ADMIN_LASTNED_AAR_RAPPORT_GET\"\n | \"ADMIN_OPPRETT_FORENING_POST\"\n | \"ADMIN_OPPDATER_FORENING_PUT\"\n | \"ADMIN_SLETT_FORENING_DELETE\"\n | \"LASTNED_RAPPORT_GET\"\n | \"ADMIN_LASTNED_REGNSKAPSRAPPORT_GET\";\n\nexport const URLS: Record = {\n LOKALFORENING_POST: `${apiUrl}/lokalforening/sendinfo`,\n LOKALFORENING_GET: `${apiUrl}/lokalforening/hent/`,\n STYRET_POST: `${apiUrl}/styret/sendinfo`,\n STYRET_GET: `${apiUrl}/styret/hent/`,\n EIENDOM_POST: `${apiUrl}/eov/lagre`,\n EIENDOM_GET: `${apiUrl}/eov/hent/`,\n AKTIVITET_POST: `${apiUrl}/aktivitet/sendinfo`,\n AKTIVITET_GET: `${apiUrl}/aktivitet/hent/`,\n KOS_POST: `${apiUrl}/kos/lagre`,\n KOS_GET: `${apiUrl}/kos/hent/`,\n GAVER_BIDRAG_POST: `${apiUrl}/gaver/lagre`,\n GAVER_BIDRAG_GET: `${apiUrl}/gaver/hent/`,\n REGNSKAP_POST: `${apiUrl}/regnskap/lagre`,\n REGNSKAP_GET: `${apiUrl}/regnskap/hent/`,\n RAPPORT_GET: `${apiUrl}/rapport/hent/`,\n LOGIN_POST: `${apiUrl}/login_user`,\n ADMIN_FORENING_SOK_GET: `${apiUrl}/admin/forening/hent/`,\n ADMIN_LASTNED_AAR_RAPPORT_GET: `${apiUrl}/rapport/admin/arsrapport`,\n LASTNED_RAPPORT_GET: `${apiUrl}/rapport/hent/`,\n ADMIN_OPPRETT_FORENING_POST: `${apiUrl}/admin/forening/opprett`,\n ADMIN_OPPDATER_FORENING_PUT: `${apiUrl}/admin/forening/oppdater/`,\n ADMIN_SLETT_FORENING_DELETE: `${apiUrl}/admin/forening/slett/`,\n ADMIN_LASTNED_REGNSKAPSRAPPORT_GET: `${apiUrl}/rapport/admin/inntektrapport`,\n};\n","import { NavLink } from \"react-router-dom\";\nimport React from \"react\";\n\ntype CustomNavLinkProps = {\n text: string;\n link: string;\n saveOnClick: (e: any, link: string) => void;\n};\nexport const CustomNavLink = ({\n text,\n link,\n saveOnClick,\n}: CustomNavLinkProps) => {\n return (\n saveOnClick(e, link)}\n activeClassName=\"bg-sk-button-selected text-sk-navbar-text-active text-shadow-active\"\n >\n {text}{\" \"}\n \n );\n};\n","import React from \"react\";\nimport { CustomNavLink } from \"./CustomNavLink\";\n\ninterface NavitagionProps {\n saveOnClick: (e: any, link: string) => void;\n}\n\nfunction NavigationBar({ saveOnClick }: NavitagionProps) {\n return (\n
\n \n \n \n \n \n \n \n \n
\n );\n}\n\nexport default NavigationBar;\n","import React from \"react\";\n\nexport const LoadingCircle = () => {\n return (\n <>\n \n \n \n \n \n );\n};\n","import { LoadingCircle } from \"./LoadingCircle\";\nimport React from \"react\";\n\nconst LoadingSpinnerComponent = () => {\n return (\n
\n \n

Laster inn...

\n
\n );\n};\n\nexport default LoadingSpinnerComponent;\n","import React, { FC, FormEvent, useEffect, useState } from \"react\";\nimport { ResponseData } from \"../adminpanel/panels/types/types\";\nimport Table, { ColumnDefinitionType } from \"../table/Table\";\nimport FooterButtons from \"../customhtmlcomponents/FooterButtons\";\nimport axios from \"../../services/ApiConfig\";\nimport { AxiosResponse } from \"axios\";\nimport { useHistory } from \"react-router-dom\";\nimport { URLS } from \"../../utility/UrlConstants\";\nimport NavigationBar from \"../NavigationBar\";\nimport {\n IntlNubmerFormatter,\n removeWhiteSpaces,\n} from \"../../utility/formatInputField\";\nimport LoadingSpinnerComponent from \"../customhtmlcomponents/LoadingSpinnerComponent\";\n\ninterface IKosProps {\n setCurrentForeningReportNumber: React.Dispatch>;\n currentForeningReportNumber: number;\n username: string;\n message: React.Dispatch>;\n setModal: React.Dispatch>;\n}\n\ntype KosDto = {\n foreningsNummer: string;\n kursOpplaeringRows: KursOpplaeringRowDto[];\n};\n\nenum MoteType {\n Sentralt = \"SENTRALT\",\n Fylke = \"FYLKE\",\n Lokal = \"LOKAL\"\n}\n\ntype KursOpplaeringRowDto = {\n foreningsNummer: number;\n id: number;\n navn: string;\n antallDeltagere: number | string;\n antallMoter: number | string;\n moteType: MoteType;\n};\n\nexport function isBlank(str: string) {\n return !str || /^\\s*$/.test(str);\n}\n\nconst get2024SentralArrangements = (foreningNummer: number, startId: number): KursOpplaeringRowDto[] => {\n const arrangements = [\n \"Har foreningen deltatt på webinar i regi av NKS sentralt?, evt hvor mange (ca. deltagere)?\",\n \"Har noen i foreningen deltatt på et eller flere e-læringskurs i regi av sekretariatet, evt hvor mange? (ca deltagere)?\",\n ]\n return arrangements.map((arrangement) => {\n return {\n foreningsNummer: foreningNummer,\n id: startId++,\n navn: arrangement,\n antallDeltagere: \"\",\n antallMoter: \"\",\n moteType: MoteType.Sentralt,\n }\n });\n}\n\nconst get2024FylkeArrangements = (foreningNummer: number, startId: number): KursOpplaeringRowDto[] => {\n const arrangements = [\n \"Fylkesårsmøte\",\n \"Informasjonsmøte i fylket/ fylkesvise samlinger\",\n \"Andre arrangement internasjonalt eller i fylket\",\n ]\n return arrangements.map((arrangement, index) => {\n return {\n foreningsNummer: foreningNummer,\n id: startId++,\n navn: arrangement,\n antallDeltagere: \"\",\n antallMoter: \"\",\n moteType: MoteType.Fylke,\n }\n });\n}\n\nconst get2023LokalArrangements = (foreningNummer: number, startId: number): KursOpplaeringRowDto[] => {\n const arrangements = [\n \"Styremøte\",\n \"Arbeids- og medlemsmøter\",\n ]\n return arrangements.map((arrangement, index) => {\n return {\n foreningsNummer: foreningNummer,\n id: startId++,\n navn: arrangement,\n antallDeltagere: \"\",\n antallMoter: \"\",\n moteType: MoteType.Lokal,\n }\n });\n}\n\nconst Kos: FC = ({\n currentForeningReportNumber,\n message,\n setModal,\n username,\n}) => {\n const [kosDto, setKosDto] = useState({\n foreningsNummer: currentForeningReportNumber.toString(),\n kursOpplaeringRows: []\n });\n const [isLoading, setIsLoading] = useState(false);\n const [isSubmitting, setIsSubmitting] = useState(false);\n\n const onKosDtoReceived = (response: AxiosResponse) => {\n const { kursOpplaeringRows, foreningsNummer } =\n response.data;\n const rows = kursOpplaeringRows.map((item) => ({\n ...item,\n antallDeltagere: IntlNubmerFormatter(item.antallDeltagere as number),\n antallMoter: IntlNubmerFormatter(item.antallMoter as number),\n })) as KursOpplaeringRowDto[];\n\n const sentralRows = rows.filter(x => x.moteType === MoteType.Sentralt)\n\n if(sentralRows.length === 0){\n rows.push(...get2024SentralArrangements(currentForeningReportNumber, getNextId(rows)))\n }\n\n const fylkeRows = rows.filter(x => x.moteType === MoteType.Fylke)\n if(fylkeRows.length === 0){\n rows.push(...get2024FylkeArrangements(currentForeningReportNumber, getNextId(rows)))\n }\n\n const lokalRows = rows.filter(x => x.moteType === MoteType.Lokal)\n if(lokalRows.length === 0){\n rows.push(...get2023LokalArrangements(currentForeningReportNumber, getNextId(rows)))\n }\n\n const kosStateDto = {\n foreningsNummer: foreningsNummer,\n kursOpplaeringRows: rows\n };\n console.log(kosStateDto);\n setKosDto(kosStateDto);\n };\n\n const getNextId = (rows: KursOpplaeringRowDto[]) => {\n const maxId = Math.max(...rows.map(x => x.id))\n return rows.length < 1 ? 1 : maxId + 1\n }\n\n useEffect(() => {\n const getKos = async () => {\n setIsLoading(true);\n await axios\n .get(`${URLS.KOS_GET}${currentForeningReportNumber}`, {\n headers: {\n Accept: \"application/json\",\n \"Content-type\": \"application/json\",\n },\n })\n .then((response: AxiosResponse) => {\n console.log(response);\n onKosDtoReceived(response);\n })\n .catch((error) => console.log(error));\n setTimeout(() => setIsLoading(false), 500);\n };\n getKos();\n }, []);\n\n const history = useHistory();\n const saveSuccessMessage = () => {\n message({\n body: {\n body: {\n message: `Kurs og Opplæring ble lagret.`,\n },\n },\n });\n setModal(true);\n setTimeout(() => setModal(false), 1750);\n };\n const saveOnClick = async (e: React.BaseSyntheticEvent, link: string) => {\n postFormData(false)\n };\n\n const postFormData = async (redirectToNextPage: boolean) => {\n setIsSubmitting(true);\n console.log(\"Setting is submitting to true\");\n const filteredDto = createFilteredDto();\n axios\n .post(URLS.KOS_POST, filteredDto, {\n headers: {\n Accept: \"application/json\",\n \"Content-type\": \"application/json\",\n },\n })\n .then((response) => {\n console.log(response);\n saveSuccessMessage();\n if(redirectToNextPage){\n setTimeout(\n () => {\n setIsSubmitting(false)\n history.push({\n pathname: \"/gbm\",\n state: currentForeningReportNumber,\n })\n },\n 1750\n );\n }\n })\n .catch((error) => {\n console.log(error?.response?.data);\n message({\n body: {\n body: {\n error: \"Dessverre feilet lagring av Kurs/Opplæring/Samarbeid. Vennligst sjekk at alle felter er fylt inn med rett verdi og prøv igjen.\",\n },\n },\n });\n setModal(true);\n setTimeout(() => {\n setModal(false)\n setIsSubmitting(false)\n }, 5000);\n });\n }\n\n const filterOutEmptyRows = () => {\n const kursOpplaeringRows = kosDto.kursOpplaeringRows\n .slice()\n .filter((k) => !isBlank(k.navn));\n return { kursOpplaeringRows };\n };\n\n function createFilteredDto() {\n const { kursOpplaeringRows } =\n filterOutEmptyRows();\n const removeWhiteSpacesKursOpplaeringRows = kursOpplaeringRows.map(\n (kursOpplaeringRow) => ({\n ...kursOpplaeringRow,\n antallDeltagere: removeWhiteSpaces(\n kursOpplaeringRow.antallDeltagere.toString()\n ),\n antallMoter: removeWhiteSpaces(\n kursOpplaeringRow.antallMoter.toString()\n ),\n })\n );\n const dto = {\n ...kosDto,\n kursOpplaeringRows: removeWhiteSpacesKursOpplaeringRows,\n };\n return dto;\n }\n\n const submit = (e: FormEvent) => {\n e.preventDefault();\n postFormData(true)\n };\n\n const handleRowChange = (e: any, row: any) => {\n console.log(\"kosDto\", kosDto.kursOpplaeringRows)\n const { name, value } = e.target;\n const { id } = row;\n\n const newItem = { ...row, [name]: value };\n const updatedRows = kosDto.kursOpplaeringRows.map(item =>\n item.id === id ? newItem : item\n );\n\n console.log(\"updated kosDto\", updatedRows)\n\n\n setKosDto(prevState => ({\n ...prevState,\n kursOpplaeringRows: updatedRows,\n }));\n };\n\n const addRow = (moteType: MoteType) => {\n const newID = new Date().getMilliseconds().valueOf();\n const newRow: KursOpplaeringRowDto = {\n foreningsNummer: currentForeningReportNumber,\n id: newID,\n navn: \"\",\n antallDeltagere: \"\",\n antallMoter: \"\",\n moteType: moteType,\n };\n setKosDto((prevState) => ({\n ...prevState,\n kursOpplaeringRows: [...prevState.kursOpplaeringRows, newRow],\n }));\n };\n const removeRow = (id: number) => {\n let toRemove = kosDto.kursOpplaeringRows;\n if (toRemove.length === 1) {\n return;\n }\n const removed = toRemove.filter((kurs) => kurs.id !== id);\n setKosDto((prevState) => ({\n ...prevState,\n kursOpplaeringRows: removed,\n }));\n };\n const sentralArrangementColumns: ColumnDefinitionType<\n KursOpplaeringRowDto,\n keyof KursOpplaeringRowDto\n >[] = [\n {\n key: \"navn\",\n inputType: \"text\",\n header: \"Navn på arrangement\",\n colSpan: 3,\n isWide: true,\n editAsAdminOnly: true\n },\n {\n key: \"antallDeltagere\",\n inputType: \"text\",\n header: \"Deltagere fra forening\",\n textStyle: \"flex text-right mr-0 ml-auto pr-2\",\n isNumberField: true,\n },\n ];\n\n const fylkeArrangementColumns: ColumnDefinitionType<\n KursOpplaeringRowDto,\n keyof KursOpplaeringRowDto\n >[] = [\n {\n key: \"navn\",\n inputType: \"text\",\n header: \"Navn på arrangement\",\n editAsAdminOnly: true\n },\n {\n key: \"antallDeltagere\",\n inputType: \"text\",\n header: \"Deltagere fra forening\",\n isNumberField: true,\n }\n ];\n\n const lokalArrangementColumns: ColumnDefinitionType<\n KursOpplaeringRowDto,\n keyof KursOpplaeringRowDto\n >[] = [\n {\n key: \"navn\",\n inputType: \"text\",\n header: \"Navn på arrangement\",\n editAsAdminOnly: true\n },\n {\n key: \"antallMoter\",\n inputType: \"text\",\n header: \"Antall møter\",\n isNumberField: true,\n },\n ];\n\n const isAdmin = username === \"1\";\n const sentralRows = kosDto.kursOpplaeringRows.filter(x => x.moteType === MoteType.Sentralt);\n const fylkeRows = kosDto.kursOpplaeringRows.filter(x => x.moteType === MoteType.Fylke);\n const lokalRows = kosDto.kursOpplaeringRows.filter(x => x.moteType === MoteType.Lokal);\n\n console.log(\"sentralRows\", sentralRows)\n console.log(\"fylkeRows\", fylkeRows)\n console.log(\"lokalRows\", lokalRows)\n\n return (\n <>\n \n {isLoading ? (\n \n ) : (\n
\n
\n
\n

\n 5. Kurs/opplæring og samarbeidsprosjekt\n

\n
\n {/*Main wrapper*/}\n
\n {/*Table Number one starts here*/}\n
\n
\n

\n 5.1 Deltagelse på arrangement, kurs og opplæring i regi av N.K.S. sentralt\n

\n
\n addRow(MoteType.Sentralt)}\n isAdmin={isAdmin}\n rowActionsAsAdminOnly={true}\n />\n
\n
\n {/*Table Number two starts here*/}\n
\n
\n
\n

\n 5.2 Møter, arrangement og prosjekt i regi av fylkesforeningen\n

\n
\n addRow(MoteType.Fylke)}\n isAdmin={isAdmin}\n rowActionsAsAdminOnly={true}\n />\n
\n
\n {/*Table Number three starts here*/}\n
\n
\n
\n

\n 5.3 Møter, arrangement og prosjekt i regi av lokalforeningen\n

\n
\n addRow(MoteType.Lokal)}\n isAdmin={isAdmin}\n rowActionsAsAdminOnly={true}\n />\n
\n
\n {/*This is the go back and forward buttons*/}\n \n
\n
\n )}\n \n );\n};\nexport default Kos;\n","import React, { InputHTMLAttributes, ReactNode, useState } from \"react\";\nimport {\n formatStringToNumber,\n IntlNubmerFormatter,\n} from \"../../utility/formatInputField\";\nimport { isBlank } from \"../kos/Kos\";\n\n/**\n * required input for the Input Component\n */\nexport interface InputProps extends InputHTMLAttributes {\n name: string;\n label: string;\n id: string;\n className?: string;\n labelClassName?: string;\n labelopts: {\n labelOn?: boolean;\n defaultLabelStyle?: boolean;\n };\n children?: ReactNode;\n flex?: boolean;\n checkbox?: boolean;\n disabled?: boolean;\n isNumberField?: boolean;\n defaultChecked?: boolean;\n}\n\n//predefined styling\nconst styles = `outline-none relative justify-content\n py-2 pl-3 text-lg border-2 border-sk-primary-blue font-medium rounded-md\n text-black hover:border-blue-500 focus:ring-2 focus:ring-blue-600`;\n\n/**\n * @see App.css if you need arrows\n * creates an optional Label and Input field component\n * @param name, name of input field\n * @param label, label text\n * @param labelOpts, whether label tag is rendered and whether default style is enabled.\n * @param id, the given id of the input component.\n * @param className, custom css properties.\n * @param children, rest of htmlElements\n * @param rest, rest of htmlInputFieldProps.\n */\nconst Input = React.forwardRef((props, ref) => {\n const {\n labelOn,\n defaultLabelStyle,\n }: { labelOn?: boolean; defaultLabelStyle?: boolean } = props.labelopts;\n const { labelClassName, className, label, name } = props;\n const checkbox = props.checkbox;\n const isNumberField = props.isNumberField;\n const [value, setValue] = useState(props.value as string);\n\n const handleChange = (e: React.ChangeEvent) => {\n let { value, name } = e.target;\n if (isBlank(e.target.value)) setValue(value);\n if (formatStringToNumber(value) || value === \"0\") {\n const toNumber = formatStringToNumber(value);\n const num = IntlNubmerFormatter(toNumber);\n setValue(num);\n }\n\n if (props?.onChange !== undefined) {\n const event = {\n ...e,\n target: {\n ...e.target,\n value: value.replace(/\\D/g, \"\"),\n name: name,\n },\n };\n console.log(event);\n props.onChange(event);\n }\n };\n\n let checkboxContent = (\n
\n \n
\n );\n let inputContent = (\n
\n {labelOn ? (\n \n {label}\n \n ) : null}\n e.target.select()}\n onWheel={(e) => e.currentTarget.blur()}\n />\n
\n );\n let numberInputContent = (\n
\n {labelOn ? (\n \n {label}\n \n ) : null}\n e.target.select()}\n onWheel={(e) => e.currentTarget.blur()}\n />\n
\n );\n if (isNumberField) {\n inputContent = numberInputContent;\n }\n\n if (checkbox) {\n inputContent = checkboxContent;\n }\n return inputContent;\n});\n\nexport default Input;\n","export const lokalforeningTemplate1 = [\n {\n text: \"Foreningens navn\",\n name: \"foreningsNavn\",\n },\n {\n text: \"Organisasjonsnummer\",\n name: \"organisasjonsNummer\",\n type: \"number\",\n },\n {\n text: \"Fylke\",\n name: \"fylke\",\n },\n {\n text: \"Kommune\",\n name: \"kommune\",\n },\n];\n\nexport const lokalforeningTemplate2 = [\n {\n text: \"Lokalforeningens kontonummer\",\n name: \"kontoNummer\",\n type: \"number\",\n },\n {\n text: \"Lokalforeningens e-post\",\n name: \"epost\",\n },\n {\n text: \"Facebook-referanse\",\n name: \"facebookReferanse\",\n },\n {\n text: \"Web-adresse\",\n name: \"webAdresse\",\n },\n];\n\nexport const medlemsinformasjonTemplate = [\n {\n text: \"Medlemmer\",\n name: \"antallMedlemmer\",\n },\n {\n text: \"Betalende medlemmer\",\n name: \"antallBetalendeMedlemmer\",\n },\n {\n text: \"Nye medlemmer siste år\",\n name: \"antallNyeMedlemmerSisteAr\",\n },\n {\n text: \"Utmeldte medlemmer siste år\",\n name: \"antallUtmeldteMedlemmerSisteAr\",\n },\n {\n text: \"Gjennomsnittsalder\",\n name: \"gjennomsnittsAlder\",\n },\n];\n","export const getRapportAar = new Date().getUTCFullYear();\nexport default getRapportAar;\n","import React, { FC, useEffect, useState } from \"react\";\nimport Input from \"../customhtmlcomponents/Input\";\nimport Button from \"../customhtmlcomponents/Button\";\nimport { useForm } from \"react-hook-form\";\nimport { useLocation } from \"react-router\";\nimport { useHistory } from \"react-router-dom\";\nimport { ResponseData } from \"../adminpanel/panels/types/types\";\nimport { URLS } from \"../../utility/UrlConstants\";\nimport axios from \"../../services/ApiConfig\";\nimport { AxiosResponse } from \"axios\";\nimport NavigationBar from \"../NavigationBar\";\nimport {\n IntlNubmerFormatter,\n mapObjectFieldsToInt,\n} from \"../../utility/formatInputField\";\nimport {\n lokalforeningTemplate1,\n lokalforeningTemplate2,\n medlemsinformasjonTemplate,\n} from \"./LokalforeningTemplate\";\nimport getRapportAar from \"../../utility/dateUtils\";\nimport FooterButtons from \"../customhtmlcomponents/FooterButtons\";\n\ninterface LokalForeningsProps {\n currentForeningReportNumber: number;\n username: string;\n message: React.Dispatch>;\n setModal: React.Dispatch>;\n}\n\ntype State = {\n foreningsNummer: number;\n fylke: string;\n kommune: string;\n organisasjonsNummer: string | number;\n foreningsNavn: string;\n kontoNummer: string | number;\n facebookReferanse: string;\n epost: string;\n webAdresse: string;\n antallMedlemmer: number | string;\n antallBetalendeMedlemmer: number | string;\n antallNyeMedlemmerSisteAr: number | string;\n antallUtmeldteMedlemmerSisteAr: number | string;\n gjennomsnittsAlder: number | string;\n isButtonDisabled: boolean;\n helperText: string;\n isError: boolean;\n};\n\nconst initialState: State = {\n foreningsNummer: 0,\n fylke: \"\",\n kommune: \"\",\n organisasjonsNummer: \"\",\n foreningsNavn: \"\",\n kontoNummer: 0,\n facebookReferanse: \"\",\n epost: \"\",\n webAdresse: \"\",\n antallMedlemmer: \"\",\n antallBetalendeMedlemmer: \"\",\n antallNyeMedlemmerSisteAr: \"\",\n antallUtmeldteMedlemmerSisteAr: \"\",\n gjennomsnittsAlder: \"\",\n isButtonDisabled: false,\n helperText: \"\",\n isError: false,\n};\n\nconst LokalForening: FC = ({\n currentForeningReportNumber,\n username,\n message,\n setModal,\n}: LokalForeningsProps) => {\n const { register, setValue, handleSubmit, errors, getValues } =\n useForm();\n const [isLoading, setIsLoading] = useState(false);\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [lokalforening1, setLokalforening1] = useState(lokalforeningTemplate1);\n const [lokalforening2, setLokalforening2] = useState(lokalforeningTemplate2);\n const [medlemsinformasjon, setMedlemsinformasjon] = useState(\n medlemsinformasjonTemplate\n );\n const [stateForeningsNummer, setForeningNummer] = useState(\n currentForeningReportNumber\n );\n const history = useHistory();\n const [rapportAar, setRapportAar] = useState();\n const saveOnClick = async (e: React.BaseSyntheticEvent, link: string) => {\n e.preventDefault();\n handleNavBarClick().then(() => history.push(link));\n };\n\n const saveSuccessMessage = () => {\n message({\n body: {\n body: {\n message: \"Lokalforening ble lagret.\",\n },\n },\n });\n //calls setModal to render modal in App.tsx\n setModal(true);\n //removes rendering of modal in App.tsx\n setTimeout(() => setModal(false), 4000);\n };\n\n const postFormData = async (getValues: any, redirectToNextPage: boolean) => {\n setIsSubmitting(true);\n const obj = prepareValuesForPost(getValues);\n axios\n .post(URLS.LOKALFORENING_POST, obj)\n .then((response: AxiosResponse) => {\n console.log(response.data);\n\n saveSuccessMessage();\n\n if(redirectToNextPage){\n setTimeout(() =>\n {\n setIsSubmitting(false);\n history.push({\n pathname: \"/styret\",\n state: currentForeningReportNumber,\n })\n },\n 1750\n );\n }\n })\n .catch((error) => {\n console.log(error?.response?.data);\n message({\n body: {\n body: {\n error: \"Dessverre feilet lagring av Lokalforening. Vennligst sjekk at alle felter er fylt inn med rett verdi og prøv igjen.\",\n },\n },\n });\n setModal(true);\n setTimeout(() => {\n setModal(false)\n setIsSubmitting(true);\n }, 5000);\n });\n }\n\n const handleNavBarClick = handleSubmit(async (getValues) => {\n postFormData(getValues, false);\n });\n\n function prepareValuesForPost(getValues: any) {\n const {\n antallMedlemmer,\n antallBetalendeMedlemmer,\n antallNyeMedlemmerSisteAr,\n antallUtmeldteMedlemmerSisteAr,\n gjennomsnittsAlder,\n ...rest\n } = getValues;\n let integerValues = {\n antallMedlemmer,\n antallBetalendeMedlemmer,\n antallNyeMedlemmerSisteAr,\n antallUtmeldteMedlemmerSisteAr,\n gjennomsnittsAlder,\n };\n mapObjectFieldsToInt(integerValues);\n\n const obj = {\n ...rest,\n ...integerValues,\n foreningsNummer: currentForeningReportNumber,\n };\n return obj;\n }\n\n const submitLokalForening = handleSubmit((getValues) => {\n postFormData(getValues, true);\n });\n const location = useLocation();\n\n useEffect(() => {\n console.log(currentForeningReportNumber);\n setValue(\"foreningsNummer\", currentForeningReportNumber);\n\n async function getLokalForening() {\n const response = await axios.get(\n `${URLS.LOKALFORENING_GET}${currentForeningReportNumber}`,\n {\n headers: {\n Accept: \"application/json\",\n \"Content-type\": \"application/json\",\n },\n }\n );\n console.log(response);\n setValue(\"fylke\", response.data.fylke);\n setValue(\"kommune\", response.data.kommune);\n setValue(\"organisasjonsNummer\", response.data.organisasjonsNummer);\n setValue(\"foreningsNavn\", response.data.foreningsNavn);\n setValue(\"kontoNummer\", response.data.kontoNummer);\n setValue(\"facebookReferanse\", response.data.facebookReferanse);\n setValue(\"epost\", response.data.epost);\n setValue(\"webAdresse\", response.data.webAdresse);\n setValue(\n \"antallMedlemmer\",\n IntlNubmerFormatter(response.data.antallMedlemmer)\n );\n setValue(\n \"antallBetalendeMedlemmer\",\n IntlNubmerFormatter(response.data.antallBetalendeMedlemmer)\n );\n setValue(\n \"antallNyeMedlemmerSisteAr\",\n IntlNubmerFormatter(response.data.antallNyeMedlemmerSisteAr)\n );\n setValue(\n \"antallUtmeldteMedlemmerSisteAr\",\n IntlNubmerFormatter(response.data.antallUtmeldteMedlemmerSisteAr)\n );\n setValue(\"gjennomsnittsAlder\", response.data.gjennomsnittsAlder);\n setRapportAar(response.data.rapportAar);\n }\n\n console.log(getValues());\n getLokalForening().catch((errors) => console.error(errors));\n }, [isLoading, currentForeningReportNumber, location.state, setValue]);\n const isAdmin = username === \"1\";\n const adminStyle = isAdmin ? \"\" : \"bg-gray-200\";\n // @ts-ignore\n return (\n <>\n \n
\n
\n

\n 1. Lokalforening og medlemsinformasjon\n

\n
\n {/* Main header */}\n\n {/* Main wrapper for containers */}\n
\n {/*Container 1*/}\n \n

\n 1.1 Lokalforening\n

\n \n \n \n \n \n \n \n
Foreningsnummer:\n \n {currentForeningReportNumber + \" \"}{\" \"}\n \n {/*Content (Input) 1*/}\n (Rapport sist levert:\n {rapportAar\n ? rapportAar\n : \" Ikke levert for \" + getRapportAar}\n )\n
\n
\n \n \n {lokalforening1.map((item, index) => {\n return (\n \n \n \n \n );\n })}\n \n
\n {item.text}\n \n \n
\n \n \n {lokalforening2.map((item, index) => {\n return (\n \n \n \n \n );\n })}\n \n
\n {item.text}\n \n \n
\n
\n
\n {/*Container 2*/}\n \n

\n 1.2 Medlemsinformasjon\n

\n

\n Medlemsinformasjon legges inn av administrasjonen sentralt og\n kan ikke endres av lokalforeningen.\n

\n {/*Content (Input) 2*/}\n \n \n {medlemsinformasjon.map((item, index) => {\n return (\n \n \n \n \n );\n })}\n \n
\n {item.text}\n \n \n
\n
\n
\n \n {/*This is the buttons at the bottom of the page, only LAGRE OG GÅ VIDERE on this page*/}\n \n \n \n \n );\n};\n\nexport default LokalForening;\n","function ErrorComponent() {\n return (\n
\n

\n Error - Du har ikke tilgang her. Vennligst logg ut og inn igjen.\n

\n
\n );\n}\n\nexport default ErrorComponent;\n","import React from \"react\";\nimport {ResponseData} from './panels/types/types';\n\nexport interface AdminProps {\n username: string | undefined;\n token: string | undefined\n isAdmin: boolean\n isViewer: boolean\n setModal: React.Dispatch>\n message: React.Dispatch>\n setCurrentForeningReportNumber: React.Dispatch>\n}\n\nexport type Forening = {\n id?: number | null ,\n foreningsNummer: number,\n foreningsNavn: string,\n password: string,\n active: boolean,\n viewer: boolean,\n isAdmin?: boolean,\n handleChange?: (e: React.ChangeEvent) => void\n}\nexport type State = {\n foreningerSok: string,\n username: string | undefined,\n match: boolean,\n loading: boolean,\n currentForening: Forening,\n foreningList: Forening[],\n successful: boolean\n}\n\nexport const initialState: State = {\n foreningerSok: '',\n username: '' ,\n match: false,\n loading: false,\n currentForening: {\n foreningsNummer: NaN,\n foreningsNavn: '',\n password: '',\n active: true,\n viewer: false\n },\n foreningList: [],\n successful: false\n}\n\nexport type RegisterForeningData = {\n opprettForeningsNummer: number;\n opprettForeningsNavn: string;\n opprettForeningsPassord: string;\n active: boolean,\n viewer: boolean\n body?: string\n}\n\nexport type Action = { type: 'setForeningerSok', payload: string }\n | { type: 'setCurrentForening', payload: Forening }\n | { type: 'setUsername', payload: string | undefined }\n | { type: 'setMatch', payload: boolean }\n | { type: 'setLoading', payload: boolean }\n | { type: 'setSuccessful', payload: boolean }\n | { type: 'setForeningList', payload: Forening[] }\n","const generator = require('generate-password');\nexport default generator\n","import Input from \"../../customhtmlcomponents/Input\";\nimport Button from \"../../customhtmlcomponents/Button\";\nimport React, { FC, useState } from \"react\";\nimport generator from \"../../../utility/passwordGen\";\nimport { useForm } from \"react-hook-form\";\nimport { RegisterForeningData } from \"../types\";\nimport axios from \"../../../services/ApiConfig\";\nimport { AxiosResponse } from \"axios\";\nimport { IGenerateForeningPanelProps, ResponseData } from \"./types/types\";\nimport { URLS } from \"../../../utility/UrlConstants\";\n\nconst GenerateForeningPanel: FC = ({\n state,\n dispatch,\n setModal,\n message,\n}: IGenerateForeningPanelProps) => {\n const { register, setValue, handleSubmit } = useForm();\n const generatePassword = () => {\n setValue(\n \"opprettForeningsPassord\",\n generator.generate({ length: 6, numbers: true, uppercase: true })\n );\n };\n const labelopts = { labelOn: true, defaultLabelStyle: true };\n const [processing, isProcessing] = useState(false);\n const processingStyle = `${\n processing ? \"hover:opacity-100 hover:cursor-not-allowed\" : null\n } bg-sk-primary-blue disabled:bg-gray-400 disabled:text-sk-button-unselected}`;\n const disabledStyle = processing ? true : undefined;\n const active = true;\n const submitForening = handleSubmit(\n ({\n opprettForeningsNavn,\n opprettForeningsNummer,\n opprettForeningsPassord,\n viewer\n }) => {\n isProcessing(true);\n axios\n .post(\n URLS.ADMIN_OPPRETT_FORENING_POST,\n {\n opprettForeningsNummer,\n opprettForeningsNavn,\n opprettForeningsPassord,\n active,\n viewer\n },\n {\n headers: {\n Accept: \"application/json\",\n \"Content-type\": \"application/json\",\n },\n }\n )\n .then((response: AxiosResponse) => {\n JSON.stringify(response.data.body);\n if (response.data) {\n let mess = response.data;\n message({\n body: mess,\n });\n setModal(true);\n setTimeout(() => setModal(false), 7000);\n }\n dispatch({\n type: \"setCurrentForening\",\n //@ts-ignore\n payload: {\n foreningsNummer: opprettForeningsNummer,\n foreningsNavn: opprettForeningsNavn,\n active: true,\n },\n });\n dispatch({ type: \"setMatch\", payload: true });\n })\n .catch((error) => {\n console.log(\"error\", error.response);\n let mess = error?.response?.data;\n message({\n body: mess ?? \"Noe gikk dessverre galt. Vennligst prøv igjen.\",\n });\n setModal(true);\n setTimeout(() => setModal(false), 5000);\n })\n .then(() => isProcessing(false));\n }\n );\n return (\n
\n

\n Opprett forening\n

\n
\n \n \n \n\n \n\n {/* */}\n\n
\n \n Generer passord\n \n \n Opprett forening\n \n
\n \n
\n );\n};\nexport default GenerateForeningPanel;\n","import { AxiosResponse } from \"axios\";\nimport getRapportAar from \"./dateUtils\";\n\nexport const downloadFile = (\n response: AxiosResponse,\n fileEnding: string,\n year: number,\n foreningsNummer: number\n) => {\n const url = window.URL.createObjectURL(new Blob([response.data]));\n const link = document.createElement(\"a\");\n link.href = url;\n const fileName = foreningsNummer > 0\n ? `Rapport-${foreningsNummer}-${new Date().toLocaleDateString()}.${fileEnding}`\n : `Årsrapport-${year-1}.${fileEnding}`;\n link.setAttribute(\"download\", fileName);\n document.body.appendChild(link);\n link.click();\n};\n\nexport const downloadInntektAndKostnadRapport = (\n response: AxiosResponse,\n fileEnding: string,\n foreningsNummer?: number\n) => {\n const url = window.URL.createObjectURL(new Blob([response.data]));\n const link = document.createElement(\"a\");\n link.href = url;\n const fileName = `Regnskapsrapport-${getRapportAar-1}-${\n getRapportAar - 3\n }.${fileEnding}`;\n link.setAttribute(\"download\", fileName);\n document.body.appendChild(link);\n link.click();\n};\n","import Input from \"../../customhtmlcomponents/Input\";\nimport React, { FC, useEffect, useState } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport Button from \"../../customhtmlcomponents/Button\";\nimport axios from \"../../../services/ApiConfig\";\nimport { AxiosResponse } from \"axios\";\nimport { useHistory } from \"react-router-dom\";\nimport {\n IadministrateForeningPanelProps,\n IoppdaterForeningData,\n ResponseData,\n} from \"./types/types\";\nimport { downloadFile } from \"../../../utility/downloadFile\";\nimport { URLS } from \"../../../utility/UrlConstants\";\nimport LoadingSpinnerComponent from \"../../customhtmlcomponents/LoadingSpinnerComponent\";\n\nconst AdministrateForeningPanel: FC = ({\n forening,\n handleForeningChange,\n setModal,\n message,\n setCurrentForeningReportNumber,\n isViewer\n}: IadministrateForeningPanelProps) => {\n const { register, setValue, handleSubmit, errors, control } =\n useForm();\n const [processing, isProcessing] = useState(false);\n const [active, setActive] = useState(forening.active);\n\n const processingStyle = `${\n processing ? \"hover:opacity-100 hover:cursor-not-allowed\" : null\n } bg-sk-primary-blue disabled:bg-gray-400 disabled:text-sk-button-unselected}`;\n const disabledStyle = processing ? true : undefined;\n const labelopts = { labelOn: true, defaultLabelStyle: true };\n const oppdaterForening = handleSubmit(\n ({\n id = forening.id,\n foreningsNummer,\n foreningsNavn,\n password,\n active,\n viewer\n }) => {\n isProcessing(true);\n console.log(active);\n axios\n .put(\n `${URLS.ADMIN_OPPDATER_FORENING_PUT}${forening.id}`,\n {\n id,\n foreningsNummer,\n foreningsNavn,\n password,\n active,\n viewer\n },\n {\n headers: {\n Accept: \"application/json\",\n \"Content-type\": \"application/json\",\n },\n }\n )\n .then((response: AxiosResponse) => {\n if (response.data) {\n console.log(\"response data\", response.data);\n let mess = response.data;\n console.log(\"message\", mess);\n message({\n body: mess,\n });\n setModal(true);\n setTimeout(() => setModal(false), 2000);\n }\n })\n .catch((error) => {\n console.log(\"error\", error.response);\n let mess = error?.response?.data;\n message({\n body: mess ?? \"Noe gikk dessverre galt. Vennligst prøv igjen.\",\n });\n setModal(true);\n setTimeout(() => setModal(false), 5000);\n })\n .then(() => isProcessing(false));\n }\n );\n const fjernForening = () => {\n if (\n window.confirm(\n `Er du sikker på at du vil fjerne foreningen ${forening.foreningsNavn}`\n )\n ) {\n isProcessing(true);\n axios\n .delete(`${URLS.ADMIN_SLETT_FORENING_DELETE}${forening.id}`)\n .then((response: AxiosResponse) => {\n console.log(response);\n let mess = response.data;\n console.log(\"message\", mess);\n message({\n body: mess,\n });\n setModal(true);\n setTimeout(() => setModal(false), 2000);\n })\n .catch((error) => {\n let mess = error?.response?.data;\n message({\n body: mess ?? \"Noe gikk dessverre galt. Vennligst prøv igjen.\",\n });\n setModal(true);\n setTimeout(() => setModal(false), 5000);\n })\n .then(() => isProcessing(false));\n }\n };\n\n const history = useHistory();\n const openForeningRapport = () => {\n const foreningsNummer = forening.foreningsNummer;\n console.log(\"i admin panel\", foreningsNummer);\n setCurrentForeningReportNumber(foreningsNummer);\n history.push({ pathname: \"/lokalforening\", state: foreningsNummer });\n };\n\n const downloadReport = () => {\n isProcessing(true);\n axios\n .get(`${URLS.LASTNED_RAPPORT_GET}${forening.foreningsNummer}`, {\n responseType: \"blob\",\n })\n .then((r) => {\n downloadFile(r, \"pdf\", -1, forening.foreningsNummer);\n })\n .catch((err) => console.error(err))\n .finally(() => setTimeout(() => isProcessing(false), 500));\n };\n\n useEffect(() => {\n setActive(forening.active);\n setValue(\"active\", forening.active);\n }, [forening.active]);\n console.log(\"forening\", forening)\n\n return (\n <>\n
\n \n \n \n\n \n\n \n\n
\n {!isViewer && (\n <>\n \n Oppdater forening\n \n \n Fjern Forening\n \n \n Åpne Rapport\n \n \n )}\n \n Last ned PDF\n \n {processing && }\n
\n \n \n );\n};\n\nexport default AdministrateForeningPanel;\n","import React, { FC, useEffect, useReducer, useState } from \"react\";\nimport ErrorComponent from \"../ErrorComponent\";\nimport Input from \"../customhtmlcomponents/Input\";\nimport Button from \"../customhtmlcomponents/Button\";\nimport axios from \"../../services/ApiConfig\";\nimport { AxiosResponse } from \"axios\";\nimport { LoadingCircle } from \"../customhtmlcomponents/LoadingCircle\";\nimport { Action, AdminProps, Forening, initialState, State } from \"./types\";\nimport GenerateForeningPanel from \"./panels/GenerateForeningPanel\";\nimport AdministrateForeningPanel from \"./panels/AdministrateForeningPanel\";\nimport {\n downloadFile,\n downloadInntektAndKostnadRapport,\n} from \"../../utility/downloadFile\";\nimport { URLS } from \"../../utility/UrlConstants\";\nimport LoadingSpinnerComponent from \"../customhtmlcomponents/LoadingSpinnerComponent\";\nimport getRapportAar from \"../../utility/dateUtils\";\nimport { useHistory } from \"react-router\";\n\nconst reducer = (state: State, action: Action): State => {\n switch (action.type) {\n case \"setForeningerSok\":\n return {\n ...state,\n foreningerSok: action.payload,\n };\n case \"setUsername\":\n return {\n ...state,\n username: action.payload,\n };\n case \"setMatch\":\n return {\n ...state,\n match: action.payload,\n };\n case \"setLoading\":\n return {\n ...state,\n loading: action.payload,\n };\n case \"setCurrentForening\":\n return {\n ...state,\n currentForening: action.payload,\n };\n case \"setForeningList\": {\n return {\n ...state,\n foreningList: action.payload,\n };\n }\n case \"setSuccessful\": {\n return {\n ...state,\n successful: action.payload,\n };\n }\n }\n};\n\nconst AdminPanel: FC = ({\n username,\n isAdmin,\n isViewer,\n token,\n setModal,\n message,\n setCurrentForeningReportNumber,\n}: AdminProps) => {\n const [state, dispatch] = useReducer(reducer, initialState);\n const history = useHistory();\n const [downloading, setDownloading] = useState(false);\n const processingStyle = `${\n downloading ? \"hover:opacity-100 hover:cursor-not-allowed\" : null\n } bg-sk-primary-blue disabled:bg-gray-400 disabled:text-sk-button-unselected}`;\n\n const handleChange = (event: any) => {\n dispatch({ type: \"setLoading\", payload: true });\n handleSearchInput(event);\n if (event.target.value === \"\")\n dispatch({ type: \"setLoading\", payload: false });\n dispatch({ type: \"setForeningList\", payload: [] });\n };\n const handleSearchInput: React.ChangeEventHandler = async (\n event\n ) => {\n dispatch({\n type: \"setForeningerSok\",\n payload: event.target.value,\n });\n if (event.target.value.length >= 1) {\n // console.log(token)\n await axios\n .get(\n `${URLS.ADMIN_FORENING_SOK_GET}${event.target.value.toLowerCase()}`\n )\n .then((response: AxiosResponse) => {\n console.log(response.data);\n dispatch({ type: \"setForeningList\", payload: response.data });\n })\n .catch((error) => {\n console.log(error);\n })\n .finally(() => {\n dispatch({ type: \"setLoading\", payload: false });\n });\n }\n dispatch({ type: \"setLoading\", payload: false });\n };\n\n const dropDown = state.foreningList.map((forening) => (\n renderForening(e, forening)}\n className=\"bg-white border-2 border-sk-secondary-blue shadow-lg hover:bg-blue-700 hover:border-blue-50 border-2\"\n >\n {forening.foreningsNummer + \"-\" + forening.foreningsNavn}\n \n ));\n\n const renderForening = (e: any, forening: Forening) => {\n dispatch({ type: \"setForeningList\", payload: [] });\n dispatch({\n type: \"setCurrentForening\",\n payload: {\n id: forening.id,\n foreningsNavn: forening.foreningsNavn,\n password: \"\",\n active: forening.active,\n viewer: forening.viewer,\n foreningsNummer: forening.foreningsNummer,\n },\n });\n dispatch({ type: \"setMatch\", payload: true });\n dispatch({ type: \"setForeningerSok\", payload: \"\" });\n };\n\n const downloadExcel = (year: number) => {\n setDownloading(true);\n axios\n .get(`${URLS.ADMIN_LASTNED_AAR_RAPPORT_GET}/${year}`, { responseType: \"blob\" })\n .then((response) => {\n downloadFile(response, \"xlsx\", year, -1);\n })\n .catch((err) => console.error(err))\n .finally(() => setDownloading(false));\n };\n const downloadRegnskapsRapport = () => {\n setDownloading(true);\n axios\n .get(URLS.ADMIN_LASTNED_REGNSKAPSRAPPORT_GET, { responseType: \"blob\" })\n .then((response) => {\n downloadInntektAndKostnadRapport(response, \"xlsx\");\n })\n .catch((err) => console.error(err))\n .finally(() => setDownloading(false));\n };\n const handleForeningChange = (e: React.ChangeEvent) => {\n const value = e.target.value;\n console.log(\"HandleCHange\", e.target.name, value, e.target.checked)\n // @ts-ignore\n if (e.target.name === \"active\" || e.target.name === \"viewer\") {\n //@ts-ignore\n state.currentForening[e.target.name] = e.target.checked;\n } else {\n // @ts-ignore\n state.currentForening[e.target.name] = value;\n }\n dispatch({\n type: \"setCurrentForening\",\n payload: { ...state.currentForening },\n });\n };\n\n \n const openOwnReport = () => {\n const foreningsNummer = parseInt(username ?? \"\");\n setCurrentForeningReportNumber(foreningsNummer);\n history.push({ pathname: \"/lokalforening\", state: foreningsNummer });\n };\n\n useEffect(() => {\n dispatch({ type: \"setUsername\", payload: username });\n }, [state.foreningList, state.foreningerSok, username]);\n\n const panel = (\n
\n
\n
\n

\n {isAdmin ? \"Administrer forening\" : \"Foreningsrapporter\"}\n

\n {isViewer && (\n \n Åpne egen rapport\n \n )}\n \n
    {dropDown}
\n {state.loading && }\n {state.match && (\n <>\n \n \n )}\n {isAdmin && (\n <>\n
\n

\n Trykk på knappene under for å laste ned rapporter til Excel\n

\n
\n
\n downloadExcel(getRapportAar)}\n >\n Årets rapport\n \n\n \n Regnskaps rapport\n \n downloadExcel(getRapportAar - 1)}\n >\n Fjorårets rapport\n \n
\n \n )}\n \n {downloading && }\n
\n {isAdmin && }\n
\n
\n );\n return <>{isAdmin || isViewer ? panel : };\n};\nexport default AdminPanel;\n","import React, {\n Dispatch,\n FC,\n SetStateAction,\n useEffect,\n useReducer,\n useState,\n} from \"react\";\nimport { createStyles, makeStyles, Theme } from \"@material-ui/core/styles\";\nimport TextField from \"@material-ui/core/TextField\";\nimport CardContent from \"@material-ui/core/CardContent\";\nimport { useHistory } from \"react-router-dom\";\nimport { AxiosResponse } from \"axios\";\nimport Button from \"../customhtmlcomponents/Button\";\nimport { URLS } from \"../../utility/UrlConstants\";\nimport { jwtDecode } from 'jwt-decode'; \n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n cardHeader: {\n display: \"flex\",\n flexWrap: \"wrap\",\n },\n Link: {\n fontSize: 14,\n display: \"block\",\n textAlign: \"center\",\n color: \"#033076\",\n },\n })\n);\n//state type\ntype State = {\n username: string;\n password: string;\n isButtonDisabled: boolean;\n helperText: string;\n isError: boolean;\n isProcessing: boolean;\n};\n\nconst initialState: State = {\n username: \"\",\n password: \"\",\n isButtonDisabled: true,\n helperText: \"\",\n isError: false,\n isProcessing: false,\n};\n\ntype Action =\n | { type: \"setUsername\"; payload: string }\n | { type: \"setPassword\"; payload: string }\n | { type: \"setIsButtonDisabled\"; payload: boolean }\n | { type: \"loginSuccess\"; payload: string }\n | { type: \"loginFailed\"; payload: string }\n | { type: \"setIsError\"; payload: boolean }\n | { type: \"setIsProcessing\"; payload: boolean }\n | {type: \"loginDisabled\"; payload: string };\n\nconst reducer = (state: State, action: Action): State => {\n switch (action.type) {\n case \"setUsername\":\n return {\n ...state,\n username: action.payload,\n };\n case \"setPassword\":\n return {\n ...state,\n password: action.payload,\n };\n case \"setIsButtonDisabled\":\n return {\n ...state,\n isButtonDisabled: action.payload,\n };\n case \"setIsProcessing\":\n return {\n ...state,\n isProcessing: action.payload,\n };\n case \"loginSuccess\":\n return {\n ...state,\n helperText: action.payload,\n isError: false,\n };\n case \"loginFailed\":\n return {\n ...state,\n helperText: action.payload,\n isError: true,\n };\n case \"setIsError\":\n return {\n ...state,\n isError: action.payload,\n };\n case \"loginDisabled\":\n return {\n ...state,\n isError: true,\n helperText: action.payload\n }\n }\n\n};\nexport type Dispatcher = Dispatch>;\n\ninterface ILoginProps {\n setToken?: any | Dispatcher;\n setUser?: any | Dispatcher;\n setCurrentForeningReportNumber: Dispatcher;\n}\n\nconst axios = require(\"axios\").default;\n\nconst Login: FC = ({\n setUser,\n setToken,\n setCurrentForeningReportNumber,\n}: ILoginProps) => {\n const classes = useStyles();\n const [state, dispatch] = useReducer(reducer, initialState);\n const [processing, setProcessing] = useState(false);\n\n useEffect(() => {\n if (state.username.trim() && state.password.trim()) {\n dispatch({\n type: \"setIsButtonDisabled\",\n payload: false,\n });\n } else {\n dispatch({\n type: \"setIsButtonDisabled\",\n payload: true,\n });\n }\n }, [state.username, state.password]);\n\n const history = useHistory();\n const handleLogin = (event: any, currentState: State) => {\n setProcessing(true);\n event.preventDefault();\n //TODO - selge inn timer for å gi admin knapp i panelet for å selv styre dette. NKS ville ikke kjøpe dette høst 2021.\n\n //Kommenter inn/ut if sjekken for å gjøre det skru av rapportering\n if (currentState.username !== \"1\") {dispatch({\n type: \"loginFailed\",\n payload: \"Rapportering er stengt, ta kontakt med administrasjon\",\n });\n setProcessing(false)\n return\n }\n\n axios\n .post(URLS.LOGIN_POST, {\n username: currentState.username,\n password: currentState.password,\n })\n .then(function (response: AxiosResponse) {\n try {\n // If success, direct to either adminpanel or organization's report based on role\n if (setToken !== null) {\n setToken(response.headers.authorization);\n }\n if (response.status === 200) {\n const foreningsNummer = parseInt(currentState.username);\n\n const token = response.headers.authorization;\n const decodedToken = jwtDecode(token);\n const scopes = (decodedToken as {scopes: string[]}).scopes ?? [];\n setUser(currentState.username, scopes);\n console.log(\"Login\", currentState.username, scopes)\n\n if(scopes.includes(\"ROLE_ADMIN\")) {\n history.push({\n pathname: \"/adminpanel\",\n state: foreningsNummer,\n })\n }\n else if(scopes.includes(\"ROLE_VIEWER\")) {\n history.push({\n pathname: \"/adminpanel\",\n state: foreningsNummer,\n })\n }\n else {\n setCurrentForeningReportNumber(foreningsNummer);\n history.push({\n pathname: \"/lokalforening\",\n state: foreningsNummer,\n }); \n }\n }\n } catch (e) {\n alert(e.message);\n }\n })\n .catch(function (error: Error) {\n console.log(error);\n dispatch({\n type: \"loginFailed\",\n payload: \"Feil foreningsnummer eller passord\",\n });\n })\n .then(function () {\n setProcessing(false);\n });\n };\n\n const handleKeyPress = (event: React.KeyboardEvent) => {\n if (event.keyCode === 13 || event.which === 13) {\n state.isButtonDisabled || handleLogin(event, state);\n }\n };\n\n const handleUsernameChange: React.ChangeEventHandler = (\n event\n ) => {\n dispatch({\n type: \"setUsername\",\n payload: event.target.value,\n });\n dispatch({ type: \"loginFailed\", payload: \"\" });\n dispatch({ type: \"setIsError\", payload: false });\n };\n\n const handlePasswordChange: React.ChangeEventHandler = (\n event\n ) => {\n dispatch({\n type: \"setPassword\",\n payload: event.target.value,\n });\n dispatch({ type: \"loginFailed\", payload: \"\" });\n dispatch({ type: \"setIsError\", payload: false });\n };\n return (\n <>\n \n
\n \n
\n \n \n
\n
\n
\n handleLogin(e, state)}\n >\n Logg inn\n \n
\n
\n \n \n );\n};\nexport default Login;\n","import React, { FC, FormEvent, useEffect, useState } from \"react\";\nimport { GaveDto, GaveRowDto, IGaverBidrag } from \"./gbmTypes\";\nimport axios from \"../../services/ApiConfig\";\nimport { AxiosResponse } from \"axios\";\nimport Table, { ColumnDefinitionType } from \"../table/Table\";\nimport FooterButtons from \"../customhtmlcomponents/FooterButtons\";\nimport { useHistory } from \"react-router-dom\";\nimport { URLS } from \"../../utility/UrlConstants\";\nimport NavigationBar from \"../NavigationBar\";\nimport { isBlank } from \"../kos/Kos\";\nimport {\n formatStringToNumber,\n IntlNubmerFormatter,\n removeWhiteSpaces,\n} from \"../../utility/formatInputField\";\nimport LoadingSpinnerComponent from \"../customhtmlcomponents/LoadingSpinnerComponent\";\nimport Input from \"../customhtmlcomponents/Input\";\n\nconst GaverBidrag: FC = ({\n currentForeningReportNumber,\n username,\n message,\n setModal,\n}) => {\n const [gaveDto, setGaveDto] = useState({\n foreningsNummer: currentForeningReportNumber.toString(),\n rows: [\n {\n id: 0,\n beskrivelse: \"\",\n alternativ: \"\",\n belop: \"\",\n } as GaveRowDto,\n ],\n totalBelop: \"\",\n });\n const [isLoading, setIsLoading] = useState(false);\n const [isSubmitting, setIsSubmitting] = useState(false);\n const saveSuccessMessage = () => {\n message({\n body: {\n body: {\n message: `Gaver og Bidrag ble lagret.`,\n },\n },\n });\n setModal(true);\n setTimeout(() => setModal(false), 3000);\n };\n const filterOutEmptyRows = () => {\n const rows = gaveDto.rows.slice().filter((k) => !isBlank(k.beskrivelse));\n console.log(rows);\n return rows;\n };\n const createFilteredDto = () => {\n const rows = filterOutEmptyRows();\n\n const removeWhiteSpacesFromRows = rows.map((row) => ({\n ...row,\n belop:\n row.belop === \"\"\n ? (row.belop = 0)\n : removeWhiteSpaces(row.belop.toString()),\n }));\n console.log(removeWhiteSpacesFromRows);\n\n const filteredDto = {\n ...gaveDto,\n rows: removeWhiteSpacesFromRows,\n totalBelop: removeWhiteSpaces(gaveDto.totalBelop.toString()),\n };\n return filteredDto;\n };\n const saveOnClick =async (e: React.BaseSyntheticEvent, link: string) => {\n postFormData(false)\n };\n\n const postFormData = async (redirectToNextPage: boolean) => {\n const filteredDto = createFilteredDto();\n console.log(\"gavedto\", gaveDto);\n setIsSubmitting(true)\n\n axios\n .post(URLS.GAVER_BIDRAG_POST, filteredDto, {\n headers: {\n Accept: \"application/json\",\n \"Content-type\": \"application/json\",\n },\n })\n .then((response) => {\n message({\n body: {\n body: {\n message: `Gaver og Bidrag ble lagret.`,\n },\n },\n });\n setModal(true);\n setTimeout(() => setModal(false), 1750);\n if(redirectToNextPage){\n setTimeout(\n () => {\n setIsSubmitting(false)\n history.push({\n pathname: \"/regnskapstabell\",\n state: currentForeningReportNumber,\n })\n },\n 1750\n );\n }\n \n\n console.log(response);\n })\n .catch((error) => {\n console.log(error);\n message({\n body: {\n body: {\n error: \"Dessverre feilet lagring av 'Gaver og økonomiske bidrag'. Vennligst sjekk at alle felter er fylt inn med rett verdi og prøv igjen.\",\n },\n },\n });\n setModal(true);\n setTimeout(() => {\n setModal(false)\n setIsSubmitting(false)\n }, 5000);\n });\n }\n\n const history = useHistory();\n const submit = (e: FormEvent) => {\n e.preventDefault();\n postFormData(true);\n };\n\n const addRow = () => {\n const newID = new Date().getMilliseconds().valueOf();\n const newRow: GaveRowDto = {\n id: newID,\n beskrivelse: \"\",\n alternativ: \"\",\n belop: \"\",\n };\n setGaveDto((prevState) => ({\n ...prevState,\n rows: [...prevState.rows, newRow],\n }));\n };\n\n const handleChange = (e: any, row: any) => {\n let { name, value } = e.target;\n console.log(value, \"before\", name);\n console.log(value, \"after\");\n const { id } = row;\n const newItem = { ...row, [name]: value };\n console.log(newItem);\n const oldItems = gaveDto.rows.slice();\n const index = oldItems.indexOf(row);\n const filteredItems = oldItems.filter((item: any) => item.id !== id);\n\n filteredItems.splice(index, 0, newItem);\n const toal = sum(filteredItems);\n console.log(\"inside handle change\", toal);\n // @ts-ignore\n setGaveDto((prevState) => ({\n ...prevState,\n rows: filteredItems,\n totalBelop: sum(filteredItems),\n }));\n };\n\n const isRowEmpty = (rest: Pick) => {\n const isEmpty = Object.values(rest as any).every(\n (x) => x === null || x === \"\"\n );\n return isEmpty;\n };\n\n const filterRows = (rows: GaveRowDto[]) => {\n //@ts-ignore\n const { id, belop, ...rest }: GaveRowDto = rows.slice().pop();\n return rest;\n };\n\n const appendEmpty = (response: AxiosResponse) => {\n const { rows, totalBelop, ...rest } = response.data;\n const formattedRows = rows.map((row) => ({\n ...row,\n belop: IntlNubmerFormatter(row.belop as number),\n }));\n const total = IntlNubmerFormatter(totalBelop as number);\n const gaverState = {\n ...rest,\n rows: formattedRows,\n totalBelop: total,\n };\n setGaveDto(gaverState);\n const gaveRowDtos = formattedRows.slice();\n if (gaveRowDtos.length === 0) {\n addRow();\n } else {\n const filteredRows = filterRows(gaveRowDtos);\n const isEmpty = isRowEmpty(filteredRows);\n if (!isEmpty) {\n addRow();\n }\n }\n };\n useEffect(() => {\n async function getGaver() {\n setIsLoading(true);\n await axios\n .get(`${URLS.GAVER_BIDRAG_GET}${gaveDto.foreningsNummer}`, {\n headers: {\n Accept: \"application/json\",\n \"Content-type\": \"application/json\",\n },\n })\n .then(async (response: AxiosResponse) => {\n console.log(response.data);\n appendEmpty(response);\n })\n .catch((error) => console.log(error));\n setTimeout(() => setIsLoading(false), 500);\n }\n\n getGaver();\n }, [setIsLoading]);\n\n const removeRow = (id: number) => {\n let toRemove = gaveDto.rows;\n const minliste = toRemove.filter((item) => item.id !== id);\n setGaveDto((prevState) => ({\n ...prevState,\n rows: minliste,\n totalBelop: sum(minliste),\n }));\n };\n const sum = (rows: GaveRowDto[]) => {\n const total = rows.reduce((acc, curr) => {\n return acc + formatStringToNumber(curr.belop as string);\n }, 0);\n return IntlNubmerFormatter(total);\n };\n\n // @ts-ignore\n const columns: ColumnDefinitionType[] = [\n {\n key: \"beskrivelse\",\n inputType: \"text\",\n header: \"Beskrivelse\",\n width: 300,\n colSpan: 2,\n },\n {\n key: \"alternativ\",\n inputType: \"text\",\n header: \"Hvem er mottaker\",\n width: 300,\n },\n {\n key: \"belop\",\n inputType: \"text\",\n header: \"Beløp\",\n textStyle: \"flex flex-grow text-right pr-2 md:w-4/5\",\n isNumberField: true,\n },\n ];\n\n const isAdmin = username === \"1\";\n\n return (\n <>\n \n {isLoading ? (\n \n ) : (\n
\n
\n
\n

\n 6. Gaver og økonomiske bidrag\n

\n
\n\n {/*Main wrapper*/}\n
\n
\n
\n

\n 6.1 Gaver og økonomiske bidrag\n

\n
\n\n \n \n \n \n

TOTAL

\n \n \n \n \n \n NOK\n \n \n \n \n \n
\n
\n {/*This is the buttons at the bottom of the page, FORRIGE and LAGRE OG GÅ VIDERE*/}\n \n
\n
\n )}\n \n );\n};\n\nexport default GaverBidrag;\n","import React from \"react\";\n\nfunction Home() {\n return (\n
\n
\n

Home2

\n
\n
\n )\n}\n\nexport default Home;","import {\n EiendomRowDto,\n EiendomDto,\n IEiendomProps\n} from \"./eiendomTypes\";\nimport React, { FC, FormEvent, useEffect, useState } from \"react\";\nimport Table, { ColumnDefinitionType } from \"../table/Table\";\nimport axios from \"../../services/ApiConfig\";\nimport { AxiosResponse } from \"axios\";\nimport FooterButtons from \"../customhtmlcomponents/FooterButtons\";\nimport { useHistory } from \"react-router-dom\";\nimport { URLS } from \"../../utility/UrlConstants\";\nimport NavigationBar from \"../NavigationBar\";\nimport { isBlank } from \"../kos/Kos\";\nimport Button from \"../customhtmlcomponents/Button\";\nimport {\n IntlNubmerFormatter,\n removeWhiteSpaces,\n} from \"../../utility/formatInputField\";\n\nconst Eiendom: FC = ({\n currentForeningReportNumber,\n username,\n message,\n setModal,\n}) => {\n const [eiendomDto, setEiendomDto] = useState({\n foreningsNummer: currentForeningReportNumber.toString(),\n eiendomRows: []\n });\n\n const [\n foreningHarEiendommer,\n setForeningHarEiendommer,\n ] = useState(false);\n\n const [isSubmitting, setIsSubmitting] = useState(false);\n\n const onEiendomDtoReceived = (response: AxiosResponse) => {\n const { eiendomRows, foreningsNummer } = response.data;\n const eiendomRowsFormatted = eiendomRows.map((item) => ({\n ...item,\n antallBoenheter: IntlNubmerFormatter(item.antallBoenheter as number),\n }));\n const eiendomRowState = {\n foreningsNummer: foreningsNummer,\n eiendomRows: eiendomRowsFormatted\n };\n setEiendomDto(eiendomRowState);\n\n const eiendomRowDtos = eiendomRows.slice();\n if (eiendomRowDtos.length > 0) {\n setForeningHarEiendommer(true);\n }\n };\n\n useEffect(() => {\n const getEiendom = async () => {\n await axios\n .get(`${URLS.EIENDOM_GET}${currentForeningReportNumber}`, {\n headers: {\n Accept: \"application/json\",\n \"Content-type\": \"application/json\",\n },\n })\n .then(async (response: AxiosResponse) => {\n console.log(response);\n onEiendomDtoReceived(response)\n })\n .catch((error) => console.log(error));\n };\n getEiendom();\n\n console.log(\"dto\", eiendomDto);\n }, []);\n\n const eiendomHandleChange = (e: any, row: any) => {\n const { name, value } = e.target;\n const { id } = row;\n const newItem = { ...row, [name]: value };\n const oldItems = eiendomDto.eiendomRows.slice();\n const index = oldItems.indexOf(row);\n const filteredItems = oldItems.filter((item: any) => item.id !== id);\n filteredItems.splice(index, 0, newItem);\n console.log(\"row\", row);\n console.log(name, value);\n setEiendomDto((prevState) => ({\n ...prevState,\n eiendomRows: filteredItems,\n }));\n };\n const filterOutEmptyRows = () => {\n const eiendomRows = eiendomDto.eiendomRows\n .slice()\n .filter((k) => !isBlank(k.navn));\n return { eiendomRows };\n };\n\n function createFilteredDto() {\n const { eiendomRows } = filterOutEmptyRows();\n const removedWhiteSpacesEiendomRows = eiendomRows.map((item) => ({\n ...item,\n antallBoenheter: removeWhiteSpaces(item.antallBoenheter.toString()),\n }));\n const dto = {\n ...eiendomDto,\n eiendomRows: removedWhiteSpacesEiendomRows\n };\n console.log(dto);\n return dto;\n }\n\n const saveOnClick = async (e: React.BaseSyntheticEvent, link: string) => {\n e.preventDefault();\n setIsSubmitting(true);\n const filteredDto = createFilteredDto();\n axios\n .post(URLS.EIENDOM_POST, filteredDto)\n .then(() => {\n setIsSubmitting(false);\n saveSuccessMessage();\n history.push(link);\n })\n .catch((error) => {\n setIsSubmitting(false);\n console.log(error);\n });\n };\n const saveSuccessMessage = () => {\n message({\n body: {\n body: {\n message: `Dataen til Eiendom har blitt lagret.`,\n },\n },\n });\n setModal(true);\n setTimeout(() => setModal(false), 2650);\n };\n const history = useHistory();\n const submit = (e: FormEvent) => {\n e.preventDefault();\n const filteredDto = createFilteredDto();\n axios\n .post(URLS.EIENDOM_POST, filteredDto, {\n headers: {\n Accept: \"application/json\",\n \"Content-type\": \"application/json\",\n },\n })\n .then((response) => {\n console.log(response);\n message({\n body: {\n body: {\n message: `Dataen til Eiendom har blitt lagret.`,\n },\n },\n });\n setModal(true);\n setTimeout(() => setModal(false), 2650);\n setTimeout(\n () =>\n history.push({\n pathname: \"/aktiviteter\",\n state: currentForeningReportNumber,\n }),\n 2650\n );\n })\n .catch((error) => {\n message({\n body: {\n body: {\n error: error.response?.data\n ? error.response.data\n : \"Beklager, noe gikk galt.\",\n },\n },\n });\n console.log(error);\n setModal(true);\n setTimeout(() => setModal(false), 2650);\n });\n };\n\n const eiendomAddRow = () => {\n const newID = new Date().getMilliseconds().valueOf();\n const newRow: EiendomRowDto = {\n id: newID,\n navn: \"\",\n gbruksnummer: \"\",\n adresse: \"\", \n kontaktPerson: \"\", \n tlfKontaktPerson: \"\", \n mailKontaktPerson: \"\", \n kontrakterKlauser: \"\", \n type: \"\",\n driftsform: \"\",\n antallBoenheter: \"\",\n leietaker: \"\", \n kommentar: \"\",\n endringer: \"\",\n bokfortVerdi: 0, \n ligningsVerdi: 0, \n forsikringsVerdi: 0, \n markedsVerdi: 0, \n kvm: 0, \n fastUtleidKvm: 0, \n sporadiskUtleieKvm: 0, \n dagerMedSporadiskUtleie: 0\n };\n\n setEiendomDto((prevState) => ({\n ...prevState,\n eiendomRows: [...prevState.eiendomRows, newRow],\n }));\n };\n\n const eiendomRemoveRow = (id: number) => {\n let toRemove = eiendomDto.eiendomRows;\n const minliste = toRemove.filter((eiendom) => eiendom.id !== id);\n setEiendomDto((prevState) => ({\n ...prevState,\n eiendomRows: minliste,\n }));\n };\n const eiendomColumns: ColumnDefinitionType<\n EiendomRowDto,\n keyof EiendomRowDto\n >[] = [\n {\n key: \"navn\",\n inputType: \"text\",\n header: \"Navn på eiendom (flytt evnt adresse til det nye adresse feltet)\",\n editAsAdminOnly: true\n },\n {\n key: \"adresse\",\n inputType: \"text\",\n header: \"Adresse\",\n editAsAdminOnly: true\n },\n {\n key: \"gbruksnummer\",\n inputType: \"text\",\n header: \"Gårds og bruksnummer\",\n editAsAdminOnly: true\n },\n {\n key: \"antallBoenheter\",\n inputType: \"text\",\n header: \"Ant. boenheter\",\n textStyle: \"flex text-right mr-0 ml-auto pr-2\",\n isNumberField: true,\n editAsAdminOnly: true\n },\n {\n key: \"kontaktPerson\",\n inputType: \"text\",\n header: \"Kontaktperson\",\n editAsAdminOnly: true\n },\n {\n key: \"tlfKontaktPerson\",\n inputType: \"text\",\n header: \"Telefon kontaktperson\",\n editAsAdminOnly: true\n },\n {\n key: \"mailKontaktPerson\",\n inputType: \"text\",\n header: \"Mailadresse kontaktperson\",\n editAsAdminOnly: true\n },\n {\n key: \"type\",\n inputType: \"text\",\n header: \"Type eiendom\",\n editAsAdminOnly: true\n },\n {\n key: \"driftsform\",\n inputType: \"text\",\n header: \"Eierform\",\n editAsAdminOnly: true\n },\n {\n key: \"bokfortVerdi\",\n inputType: \"text\",\n header: \"Bøkført verdi\",\n editAsAdminOnly: true,\n isNumberField: true\n }, \n {\n key: \"ligningsVerdi\",\n inputType: \"text\",\n header: \"Ligningsverdi\",\n editAsAdminOnly: true,\n isNumberField: true\n },\n {\n key: \"forsikringsVerdi\",\n inputType: \"text\",\n header: \"Forsikringsverdi\",\n editAsAdminOnly: true,\n isNumberField: true\n },\n {\n key: \"markedsVerdi\",\n inputType: \"text\",\n header: \"Markedsverdi\",\n editAsAdminOnly: true,\n isNumberField: true\n }, \n {\n key: \"kvm\",\n inputType: \"text\",\n header: \"Totalt antall kvadratmeter\",\n editAsAdminOnly: true,\n isNumberField: true\n },\n {\n key: \"fastUtleidKvm\",\n inputType: \"text\",\n header: \"Antall kvadratmeter som leies ut fast\",\n editAsAdminOnly: true,\n isNumberField: true\n },\n {\n key: \"leietaker\",\n inputType: \"text\",\n header: \"Leietaker\",\n editAsAdminOnly: true\n },\n {\n key: \"sporadiskUtleieKvm\",\n inputType: \"text\",\n header: \"Antall kvadratmeter som leies ut sporadisk\",\n editAsAdminOnly: true,\n isNumberField: true\n },\n {\n key: \"dagerMedSporadiskUtleie\",\n inputType: \"text\",\n header: \"Antall dager med sporadisk utleie\",\n editAsAdminOnly: true,\n isNumberField: true\n },\n {\n key: \"kommentar\",\n inputType: \"text\",\n header: \"Kommentar\",\n },\n \n {\n key: \"endringer\",\n inputType: \"text\",\n header: \"Skriv inn endringer\",\n },\n ];\n\n const popUp = (\n
\n

Har du noen eiendommer?

\n
\n setForeningHarEiendommer(true)}\n >\n JA\n \n \n
\n
\n );\n\n const isAdmin = username === \"1\";\n\n return (\n <>\n \n {!foreningHarEiendommer ? (\n popUp\n ) : (\n
\n
\n
\n

\n 3. Eiendom\n

\n
\n
\n
\n
\n

\n 3.1 Foreningen eier disse eiendommene\n

\n
\n \n
\n
\n {/*This is the go back and forward buttons*/}\n \n
\n
\n )}\n \n );\n};\n\nexport default Eiendom;\n","import React from \"react\";\nimport { ResponseData } from \"../../adminpanel/panels/types/types\";\n\nconst Modal = ({ body }: ResponseData) => {\n if (body?.error) {\n return (\n
\n \n

{body?.error}

\n
\n \n );\n } else\n return (\n
\n \n

{body?.message}

\n
\n \n );\n};\nexport default Modal;\n","import React, { FC, useEffect, useState } from \"react\";\nimport Input from \"../customhtmlcomponents/Input\";\nimport Button from \"../customhtmlcomponents/Button\";\nimport { useForm } from \"react-hook-form\";\nimport axios from \"../../services/ApiConfig\";\nimport { AxiosResponse } from \"axios\";\nimport { useLocation } from \"react-router\";\nimport FooterButtons from \"../customhtmlcomponents/FooterButtons\";\nimport { useHistory } from \"react-router-dom\";\nimport { ResponseData } from \"../adminpanel/panels/types/types\";\nimport { URLS } from \"../../utility/UrlConstants\";\nimport NavigationBar from \"../NavigationBar\";\nimport { IntlNubmerFormatter } from \"../../utility/formatInputField\";\nimport getRapportAar from \"../../utility/dateUtils\";\n\nexport interface IStyretProps {\n setCurrentForeningReportNumber: React.Dispatch>;\n currentForeningReportNumber: number;\n username: string;\n message: React.Dispatch>;\n setModal: React.Dispatch>;\n}\n\ntype State = {\n foreningsNummer: number;\n lederNavn: string;\n lederMedlemNummer: number;\n lederTelefon: number;\n lederEpost: string;\n nestlederNavn: string;\n nestlederMedlemNummer: number;\n nestlederTelefon: number;\n nestlederEpost: string;\n kassererNavn: string;\n kassererMedlemNummer: number;\n kassererTelefon: number;\n kassererEpost: string;\n};\n\ntype LastYearStyret = {\n ar: number;\n lederNavn: string;\n lederMedlemNummer: string;\n lederTelefon: string;\n lederEpost: string;\n nestlederNavn: string;\n nestlederMedlemNummer: string;\n nestlederTelefon: string;\n nestlederEpost: string;\n kassererNavn: string;\n kassererMedlemNummer: string;\n kassererTelefon: string;\n kassererEpost: string;\n};\n\nconst Styret: FC = ({\n currentForeningReportNumber,\n message,\n username,\n setModal,\n setCurrentForeningReportNumber,\n}: IStyretProps) => {\n const { register, setValue, handleSubmit, errors, getValues } =\n useForm();\n const [lastYearStyre, setLastYearStyre] = useState({\n ar: 0,\n lederNavn: \"\",\n lederMedlemNummer: \"\",\n lederTelefon: \"\",\n lederEpost: \"\",\n nestlederNavn: \"\",\n nestlederMedlemNummer: \"\",\n nestlederTelefon: \"\",\n nestlederEpost: \"\",\n kassererNavn: \"\",\n kassererMedlemNummer: \"\",\n kassererTelefon: \"\",\n kassererEpost: \"\",\n });\n const [isLoading, setIsLoading] = useState(false);\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [ar, setAr] = useState(getRapportAar);\n const getLastYear = () => {\n setValue(\"lederNavn\", lastYearStyre.lederNavn);\n setValue(\"lederEpost\", lastYearStyre.lederEpost);\n setValue(\"lederMedlemNummer\", lastYearStyre.lederMedlemNummer);\n setValue(\"lederTelefon\", lastYearStyre.lederTelefon);\n setValue(\"nestlederNavn\", lastYearStyre.nestlederNavn);\n setValue(\"nestlederEpost\", lastYearStyre.nestlederEpost);\n setValue(\"nestlederTelefon\", lastYearStyre.nestlederTelefon);\n setValue(\"nestlederMedlemNummer\", lastYearStyre.nestlederMedlemNummer);\n setValue(\"kassererNavn\", lastYearStyre.kassererNavn);\n setValue(\"kassererEpost\", lastYearStyre.kassererEpost);\n setValue(\"kassererTelefon\", lastYearStyre.kassererTelefon);\n setValue(\"kassererMedlemNummer\", lastYearStyre.kassererMedlemNummer);\n };\n const history = useHistory();\n const saveOnClick = async (e: React.BaseSyntheticEvent, link: string) => {\n e.preventDefault();\n handleNavBarClick().then(() => history.push(link));\n };\n const handleNavBarClick = handleSubmit(async (getValues) => {\n postFormData(getValues, false);\n });\n\n const postFormData = async (getValues: any, redirectToNextPage: boolean) => {\n setIsSubmitting(true);\n const values = {\n ...getValues,\n foreningsNummer: currentForeningReportNumber,\n };\n axios\n .post(URLS.STYRET_POST, values)\n .then((response: AxiosResponse) => {\n console.log(response.data);\n console.log(typeof message);\n\n saveSuccessMessage();\n\n if(redirectToNextPage){\n setTimeout(\n () =>\n {\n setIsSubmitting(false)\n history.push({\n pathname: \"/eiendom\",\n state: currentForeningReportNumber,\n })\n },\n 1750\n );\n }\n })\n .catch((error) => {\n console.log(error?.response?.data);\n message({\n body: {\n body: {\n error: \"Dessverre feilet lagring av Styret. Vennligst sjekk at alle felter er fylt inn med rett verdi og prøv igjen.\",\n },\n },\n });\n setModal(true);\n setTimeout(() => {\n setModal(false)\n setIsSubmitting(false)\n }, 5000);\n });\n }\n\n const saveSuccessMessage = () => {\n message({\n body: {\n body: {\n message: `Styret ble lagret.`,\n },\n },\n });\n setModal(true);\n setTimeout(() => setModal(false), 2000);\n };\n const submitStyret = handleSubmit((getValues) => {\n postFormData(getValues, true);\n });\n const location = useLocation();\n\n useEffect(() => {\n setValue(\"foreningsNummer\", currentForeningReportNumber);\n\n async function getStyret() {\n const response = await axios.get(\n `${URLS.STYRET_GET}${currentForeningReportNumber}`,\n {\n headers: {\n Accept: \"application/json\",\n \"Content-type\": \"application/json\",\n },\n }\n );\n setValue(\"lederNavn\", response.data.lederNavn);\n setValue(\"lederMedlemNummer\", response.data.lederMedlemNummer);\n setValue(\"lederTelefon\", response.data.lederTelefon);\n setValue(\"lederEpost\", response.data.lederEpost);\n setValue(\"nestlederNavn\", response.data.nestlederNavn);\n setValue(\"nestlederMedlemNummer\", response.data.nestlederMedlemNummer);\n setValue(\"nestlederTelefon\", response.data.nestlederTelefon);\n setValue(\"nestlederEpost\", response.data.nestlederEpost);\n setValue(\"kassererNavn\", response.data.kassererNavn);\n setValue(\"kassererMedlemNummer\", response.data.kassererMedlemNummer);\n setValue(\"kassererTelefon\", response.data.kassererTelefon);\n setValue(\"kassererEpost\", response.data.kassererEpost);\n }\n\n async function getLastYearStyret() {\n await axios\n .get(\n `${URLS.STYRET_GET}${currentForeningReportNumber}/${\n getRapportAar - 1\n }`,\n {\n headers: {\n Accept: \"application/json\",\n \"Content-type\": \"application/json\",\n },\n }\n )\n .then((response: AxiosResponse) => {\n console.log(response);\n setLastYearStyre({\n ar: response.data.ar,\n lederNavn: response.data.lederNavn,\n lederMedlemNummer: response.data.lederMedlemNummer,\n lederTelefon: response.data.lederTelefon,\n lederEpost: response.data.lederEpost,\n nestlederNavn: response.data.nestlederNavn,\n nestlederMedlemNummer: response.data.nestlederMedlemNummer,\n nestlederTelefon: response.data.nestlederTelefon,\n nestlederEpost: response.data.nestlederEpost,\n kassererNavn: response.data.kassererNavn,\n kassererEpost: response.data.kassererEpost,\n kassererMedlemNummer: response.data.kassererMedlemNummer,\n kassererTelefon: response.data.kassererTelefon,\n });\n });\n }\n\n getStyret().then(() => console.log(getValues()));\n getLastYearStyret().then(() => console.log(lastYearStyre));\n }, [isLoading, currentForeningReportNumber, location.state]);\n const lastYear =\n lastYearStyre.ar === 0 ? getRapportAar - 1 : lastYearStyre.ar;\n const year = ar === 0 ? getRapportAar : ar;\n\n return (\n
\n \n
\n
\n

\n 2. Styret og informasjon om foreningen{\" \"}\n

\n
\n {/*Table one starts here*/}\n
\n
\n

\n {`2.1 Styret forrige år (${lastYear})`}\n

\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
ÅrPosisjonMedlemsnrNavnTelefonEpost
\n

{lastYear}

\n
\n

Leder

\n
\n

{lastYearStyre.lederMedlemNummer}

\n
\n

{lastYearStyre.lederNavn}

\n
\n

{lastYearStyre.lederTelefon}

\n
\n

{lastYearStyre.lederEpost}

\n
\n

{lastYear}

\n
\n

NestLeder

\n
\n

{lastYearStyre.nestlederMedlemNummer}

\n
\n

{lastYearStyre.nestlederNavn}

\n
\n

{lastYearStyre.nestlederTelefon}

\n
\n

{lastYearStyre.nestlederEpost}

\n
\n

{lastYear}

\n
\n

Kasserer

\n
\n

{lastYearStyre.kassererMedlemNummer}

\n
\n

{lastYearStyre.kassererNavn}

\n
\n

{lastYearStyre.kassererTelefon}

\n
\n

{lastYearStyre.kassererEpost}

\n
\n
\n
\n {/*Table two starts here*/}\n
\n
\n
\n

\n {`2.2 Styret i år (${year})`}

\n
\n \n
\n
\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n {/*Table two - row two*/}\n \n \n \n \n \n \n \n \n {/*Table two - third row*/}\n \n \n \n \n \n \n \n \n \n
ÅrPosisjonMedlemsnrNavnTelefonEpost
\n

{year}

\n
\n

Leder

\n
\n \n \n \n \n \n \n \n
\n

{year}

\n
\n

Nestleder

\n
\n \n \n \n \n \n \n \n
\n

{year}

\n
\n

Kasserer

\n
\n \n \n \n \n \n \n \n
\n
\n
\n {/*This is the go back and forward buttons*/}\n \n \n
\n );\n};\n\nexport default Styret;\n","import React, { FC, useEffect, useState } from \"react\";\nimport FooterButtons from \"../customhtmlcomponents/FooterButtons\";\nimport { ResponseData } from \"../adminpanel/panels/types/types\";\nimport { useForm } from \"react-hook-form\";\nimport axios from \"../../services/ApiConfig\";\nimport { useHistory } from \"react-router-dom\";\nimport { URLS } from \"../../utility/UrlConstants\";\nimport NavigationBar from \"../NavigationBar\";\nimport getRapportAar from \"../../utility/dateUtils\";\n\ninterface IAktivitetProps {\n currentForeningReportNumber: number;\n username: string;\n message: React.Dispatch>;\n setModal: React.Dispatch>;\n}\n\ntype AktivitetState = {\n ar: number;\n foreningsNummer: number;\n\n kloverTurForrigeAr: string;\n kloverTurNavaerendeAr: string;\n\n ressursVennForrigeAr: string;\n ressursVennNavaerendeAr: string;\n\n omsorgBeredskapForrigeAr: string;\n omsorgBeredskapNavaerendeAr: string;\n\n moterOmKvinnehelseForrigeAr: string;\n moterOmKvinnehelseNavaerendeAr: string;\n\n helsedagerForrigeAr: string;\n helsedagerNavaerendeAr: string;\n\n motherhoodForrigeAr: string;\n motherhoodNavaerendeAr: string;\n\n kanskjeKommerKongenForrigeAr: string;\n kanskjeKommerKongenNavaerendeAr: string;\n\n brannsikkerhetForEldreForrigeAr: string;\n brannsikkerhetForEldreNavaerendeAr: string;\n\n egenberedskapForrigeAr: string;\n egenberedskapNavaerendeAr: string;\n\n forsteHjelpForEldreForrigeAr: string;\n forsteHjelpForEldreNavaerendeAr: string;\n\n annet: string;\n annetJaNei: string;\n};\n\ntype ActivityRow = {\n displayName: string;\n fieldName: string;\n fieldNameNextYear: string;\n};\n\nconst Aktivitet: FC = ({\n currentForeningReportNumber,\n username,\n message,\n setModal,\n}) => {\n const { register, setValue, handleSubmit, errors, getValues } =\n useForm();\n const [aar, setAar] = useState(getRapportAar);\n const [forrigeAr, setForrigeAr] = useState(getRapportAar - 1);\n const [isSubmitting, setIsSubmitting] = useState(false);\n const history = useHistory();\n const saveSuccessMessage = () => {\n message({\n body: {\n body: {\n message: `Aktiviteter ble lagret.`,\n },\n },\n });\n setModal(true);\n setTimeout(() => setModal(false), 2000);\n };\n const saveOnClick = async (e: React.BaseSyntheticEvent, link: string) => {\n await handleNavBarClick().then(() => history.push(link));\n };\n const handleNavBarClick = handleSubmit(async (getValues) => {\n postFormData(getValues, false);\n });\n\n const postFormData = async (getValues: any, redirectToNextPage: boolean) => {\n const values = {\n ...getValues,\n foreningsNummer: currentForeningReportNumber,\n };\n setIsSubmitting(true);\n axios\n .post(URLS.AKTIVITET_POST, values)\n .then((response) => {\n console.log(response);\n saveSuccessMessage();\n\n if (redirectToNextPage) {\n setTimeout(\n () =>\n {\n setIsSubmitting(false);\n history.push({\n pathname: \"/kos\",\n state: currentForeningReportNumber,\n })\n },\n 1750\n );\n }\n\n })\n .catch((error) => {\n console.log(error?.response?.data);\n message({\n body: {\n body: {\n error: \"Dessverre feilet lagring av Aktiviteter. Vennligst sjekk at alle felter er fylt inn med rett verdi og prøv igjen.\",\n },\n },\n });\n setModal(true);\n setTimeout(() => {\n setModal(false)\n setIsSubmitting(false)\n }, 5000);\n });\n }\n\n const kvinnehelseAktiviter: Array = [\n {\n fieldName: \"moterOmKvinnehelseForrigeAr\",\n fieldNameNextYear: \"moterOmKvinnehelseNavaerendeAr\",\n displayName: \"Åpne møter/arrangementer/foredrag om kvinnehelse rettet mot befolkningen utover egne medlemmer\",\n },\n {\n displayName: \"Språkvenn\",\n fieldName: \"sprakVennForrigeAr\",\n fieldNameNextYear: \"sprakVennNavaerendeAr\",\n },\n {\n displayName: \"Helsedager for innvandrede kvinner\",\n fieldName: \"helsedagerForrigeAr\",\n fieldNameNextYear: \"helsedagerNavaerendeAr\",\n },\n {\n displayName: \"Motherhood\",\n fieldName: \"motherhoodForrigeAr\",\n fieldNameNextYear: \"motherhoodNavaerendeAr\",\n },\n {\n displayName: \"Ressursvenn\",\n fieldName: \"ressursVennForrigeAr\",\n fieldNameNextYear: \"ressursVennNavaerendeAr\",\n }\n ];\n\n const tryggeLokalSamfunnActivitiesToDisplay: Array = [\n {\n displayName: \"Omsorgsberedskap\",\n fieldName: \"omsorgBeredskapForrigeAr\",\n fieldNameNextYear: \"omsorgBeredskapNavaerendeAr\",\n },\n {\n displayName: \"Trygghetstreff – brannsikkerhet for eldre\",\n fieldName: \"brannsikkerhetForEldreForrigeAr\",\n fieldNameNextYear: \"brannsikkerhetForEldreNavaerendeAr\",\n },\n {\n displayName: \"Egenberedskap – markering\",\n fieldName: \"egenberedskapForrigeAr\",\n fieldNameNextYear: \"egenberedskapNavaerendeAr\",\n },\n {\n displayName: \"Førstehjelp for eldre - opplæring og informasjon\",\n fieldName: \"forsteHjelpForEldreForrigeAr\",\n fieldNameNextYear: \"forsteHjelpForEldreNavaerendeAr\",\n },\n {\n displayName: \"Kløvertur\",\n fieldName: \"kloverTurForrigeAr\",\n fieldNameNextYear: \"kloverTurNavaerendeAr\",\n },\n {\n fieldName: \"kanskjeKommerKongenForrigeAr\",\n fieldNameNextYear: \"kanskjeKommerKongenNavaerendeAr\",\n displayName: \"Kanskje kommer kongen\"\n },\n ]\n\n const submit = handleSubmit((getValues) => {\n postFormData(getValues, true);\n });\n\n useEffect(() => {\n setValue(\"foreningsNummer\", currentForeningReportNumber);\n\n async function getAktiviteter() {\n const response = await axios.get(\n `${URLS.AKTIVITET_GET}${currentForeningReportNumber}`,\n {\n headers: {\n Accept: \"application/json\",\n \"Content-type\": \"application/json\",\n },\n }\n );\n console.log(response);\n Object.entries(response.data).forEach(([key, value]) => {\n // @ts-ignore\n setValue(key, value);\n });\n }\n\n getAktiviteter().then(() => console.log(getValues()));\n }, [currentForeningReportNumber, getValues, setValue]);\n\n const getActivityRow = (activity: ActivityRow) => (\n \n \n {activity.displayName}\n \n \n
\n \n \n \n \n
\n \n \n
\n \n
\n \n \n )\n\n const getHeaderRow = (header: string) => (\n \n {header}\n \n \n \n )\n\n return (\n <>\n \n
\n
\n
\n

\n 4. Aktiviteter{\" \"}\n

\n
\n {/*Table one starts here*/}\n
\n
\n
\n

\n 4.1 Aktiviteter\n

\n
\n \n \n \n \n \n \n \n \n {getHeaderRow(\"Kvinnehelse\")}\n {kvinnehelseAktiviter.map((activity: ActivityRow) => getActivityRow(activity))}\n {getHeaderRow(\"Trygge Lokalsamfunn\")}\n {tryggeLokalSamfunnActivitiesToDisplay.map((activity: ActivityRow) => getActivityRow(activity))}\n
Aktiviteter\n {`Lokalforeningen har utført denne aktiviteten i\n ${forrigeAr}`}\n \n {\" \"}\n {`Lokalforeningen har planer om å utføre\n denne\n aktiviteten i ${aar}`}\n
\n
\n
\n {/*This is the go back and forward buttons*/}\n \n
\n
\n \n );\n};\n\nexport default Aktivitet;\n","import React, { FC } from \"react\";\nimport Button from \"../customhtmlcomponents/Button\";\nimport { ResponseData } from \"../adminpanel/panels/types/types\";\nimport axios from \"../../services/ApiConfig\";\nimport { downloadFile } from \"../../utility/downloadFile\";\nimport { URLS } from \"../../utility/UrlConstants\";\nimport NavigationBar from \"../NavigationBar\";\n\ninterface IRapportProps {\n currentForeningReportNumber: number;\n username: string;\n message: React.Dispatch>;\n setModal: React.Dispatch>;\n}\n\nconst Rapport: FC = ({\n currentForeningReportNumber,\n message,\n setModal,\n}) => {\n const downloadRapport = () => {\n axios\n .get(`${URLS.LASTNED_RAPPORT_GET}${currentForeningReportNumber}`, {\n responseType: \"blob\",\n })\n .then((r) => {\n downloadFile(r, \"pdf\", -1, currentForeningReportNumber);\n })\n .catch((err) => console.error(err));\n };\n const saveOnClick = () => {};\n return (\n
\n \n
\n

\n 8. Rapport\n

\n
\n
\n
\n \n \n \n \n \n \n
\n \n
\n \n \n
\n Dersom du ønsker å skrive ut rapporten din, eller vil laste\n ned en PDF-variant av rapporten, velg \"Laste ned pdf\" under.\n
\n
\n
\n
\n );\n};\n\nexport default Rapport;\n","import { useState } from 'react';\n\nexport const getUser = () => {\n const userString = sessionStorage.getItem('user');\n return JSON.parse(userString);\n};\n\nexport const getScopes = () => { \n const scopesString = sessionStorage.getItem('scopes'); \n return JSON.parse(scopesString); \n};\n\nexport default function useUser() {\n const [user, setUser] = useState(getUser());\n\n const saveUser = (user, scopes) => {\n if (user === null) { \n sessionStorage.removeItem('user'); \n sessionStorage.removeItem('scopes'); \n } else { \n sessionStorage.setItem('user', JSON.stringify(user)); \n sessionStorage.setItem('scopes', JSON.stringify(scopes)); \n } \n setUser(user); \n };\n\n return {\n user,\n scopes: getScopes(),\n setUser: saveUser\n };\n};","import { useState } from 'react';\n\nexport const getCurrentForeningReportNumber = () => {\n const currentForeningReportNumber = sessionStorage.getItem('currentForeningReportNumber');\n return JSON.parse(currentForeningReportNumber)\n}\n\nexport default function useCurentForeningReportNumber() {\n const [currentForeningReportNumber, setCurrentForeningReportNumber] = useState(getCurrentForeningReportNumber)\n const saveCurrentForeningReportNumber = currentForeningReportNumber => {\n (currentForeningReportNumber === null)\n ? sessionStorage.removeItem('currentForeningReportNumber')\n : sessionStorage.setItem('currentForeningReportNumber', JSON.stringify(currentForeningReportNumber))\n setCurrentForeningReportNumber(currentForeningReportNumber)\n\n }\n return {\n currentForeningReportNumber,\n setCurrentForeningReportNumber: saveCurrentForeningReportNumber\n }\n}","export const kostnaderTemplate = [\n {\n text: \"Fastelavnsris\",\n name: \"kostnadFastelavensris\",\n kostnadFastelavensris: \"\",\n placeholder: \"Beløp\",\n },\n {\n text: \"Maiblomst\",\n name: \"kostnadMaiblomst\",\n kostnadMaiblomst: \"\",\n placeholder: \"Beløp\",\n },\n {\n text: \"Adventskalender\",\n name: \"kostnadAdventskalender\",\n kostnadAdventskalender: \"\",\n placeholder: \"Beløp\",\n },\n {\n text: \"Basar, messe, utlodning, bingo mm.\",\n name: \"kostnadBasarMesseUtlodningBingoMm\",\n kostnadBasarMesseUtlodningBingoMm: \"\",\n placeholder: \"Beløp\",\n },\n {\n text: \"N.K.S Fond + Min dag i dag\",\n name: \"nksFondMinDagIDag\",\n nksFondMinDagIDag: \"\",\n placeholder: \"\",\n },\n {\n text: \"Gaver/økonomiske bidrag\",\n name: \"gaverOkonomiskeBidrag\",\n gaverOkonomiskeBidrag: \"\",\n placeholder: \"Beløp\",\n },\n {\n text: \"Aktiviteter\",\n name: \"aktiviteter\",\n aktiviteter: \"\",\n placeholder: \"Beløp\",\n },\n {\n text: \"Husleie (dersom foreningen leier lokaler)\",\n name: \"husleie\",\n husleie: \"\",\n placeholder: \"Beløp\",\n },\n {\n text: \"Andre driftsutgifter\",\n name: \"andreDriftsutgifter\",\n andreDriftsutgifter: \"\",\n placeholder: \"Beløp\",\n },\n {\n text: \"KOSTNADER EGEN EIENDOM:\",\n name: \"kostnaderEgenEiendom\",\n placeholder: \"\",\n colSpan: 2,\n input: true,\n },\n {\n text: \"Driftskostnader\",\n name: \"driftskostnader\",\n driftskostnader: \"\",\n placeholder: \"Beløp\",\n },\n\n {\n text: \"Vedlikehold\",\n name: \"vedlikehold\",\n vedlikehold: \"\",\n placeholder: \"Beløp\",\n },\n {\n text: \"Avskrivninger\",\n name: \"avskrivninger\",\n avskrivninger: \"\",\n placeholder: \"Beløp\",\n },\n];\nexport const inntekterTemplate = [\n {\n text: \"Fastelavnsris\",\n name: \"inntektFastelavensris\",\n inntektFastelavensris: \"\",\n placeholder: \"Beløp\",\n },\n {\n text: \"Maiblomst\",\n name: \"inntektMaiblomst\",\n inntektMaiblomst: \"\",\n placeholder: \"Beløp\",\n },\n {\n text: \"Adventskalender\",\n name: \"inntektAdventskalender\",\n inntektAdventskalender: \"\",\n placeholder: \"Beløp\",\n },\n {\n text: \"Basar, messe, utlodning, bingo mm.\",\n name: \"inntektBasarMesseUtlodningBingoMm\",\n inntektBasarMesseUtlodningBingoMm: \"\",\n placeholder: \"Beløp\",\n },\n {\n text: \"Grasrotandelen\",\n name: \"grasrotandelen\",\n grasrotandelen: \"\",\n placeholder: \"Beløp\",\n },\n {\n text: \"Gaver\",\n name: \"gaver\",\n gaver: \"\",\n placeholder: \"Beløp\",\n },\n {\n text: \"MVA Refusjon\",\n name: \"mvaRefusjon\",\n mvarefusjon: \"\",\n placeholder: \"Beløp\",\n },\n {\n text: \"Tilbakeført kontigent\",\n name: \"tilbakefortKontigent\",\n tilbakefortKontigent: \"\",\n placeholder: \"Beløp\",\n },\n {\n text: \"Offentlige tilskudd\",\n name: \"offentligeTilskudd\",\n offentligeTilskudd: \"\",\n placeholder: \"Beløp\",\n },\n {\n text: \"Tilskudd som er øremerket\",\n name: \"tilskuddSomErOremerket\",\n tilskuddSomErOremerket: \"\",\n placeholder: \"Beløp\",\n },\n {\n text: \"Andre innteker\",\n name: \"andreInntekter\",\n andreInntekter: \"\",\n placeholder: \"Beløp\",\n },\n {\n text: \"Leieinntekter egen eiendom\",\n name: \"leieinntekterEgenEiendom\",\n leieinntekterEgenEiendom: \"\",\n placeholder: \"Beløp\",\n },\n {\n text: \"Faste leieinntekter på egen eiendom\",\n name: \"fasteLeieinntekterPaEgenEiendom\",\n fasteLeieinntekterPaEgenEiendom: \"\",\n placeholder: \"Beløp\",\n },\n];\nexport const kasseOgBankTemplate = [\n {\n text: \"Kasse og bank\",\n name: \"kasseOgBank\",\n kasseOgBank: \"\",\n placeholder: \"Beløp\",\n },\n {\n text: \"Beholdning av obligasjoner, aksjer, eller andre verdipapirer\",\n name: \"beholdningObligasjonerAksjerVerdipapir\",\n beholdningObligasjonerAksjerVerdipapir: \"\",\n placeholder: \"Beløp\",\n },\n {\n text: \"Verdien av fast eiendom (ta med verdien av alle faste eiendommer)\",\n name: \"verdienAvFastEiendom\",\n verdienAvFastEiendom: \"\",\n placeholder: \"Beløp\",\n },\n];\n","import NavigationBar from \"../NavigationBar\";\nimport React, { FC, useEffect, useState } from \"react\";\nimport { ResponseData } from \"../adminpanel/panels/types/types\";\nimport axios from \"../../services/ApiConfig\";\nimport { URLS } from \"../../utility/UrlConstants\";\nimport { useForm } from \"react-hook-form\";\nimport { useHistory } from \"react-router-dom\";\nimport Input from \"../customhtmlcomponents/Input\";\nimport {\n IntlNubmerFormatter,\n removeWhiteSpaces,\n} from \"../../utility/formatInputField\";\nimport { pick } from \"lodash\";\nimport FooterButtons from \"../customhtmlcomponents/FooterButtons\";\nimport {\n inntekterTemplate,\n kasseOgBankTemplate,\n kostnaderTemplate,\n} from \"./RegnskapTabellTemplate\";\nimport { AxiosResponse } from \"axios\";\n\ninterface IRegnskapstabellProps {\n currentForeningReportNumber: number;\n username: string;\n message: React.Dispatch>;\n setModal: React.Dispatch>;\n}\n\ntype RegnskapState = {\n // 7.1 inntekter\n inntektFastelavensris: number;\n inntektMaiblomst: number;\n inntektAdventskalender: number;\n inntektBasarMesseUtlodningBingoMm: number;\n grasrotandelen: number;\n gaver: number;\n mvaRefusjon: number;\n tilbakefortKontigent: number;\n offentligeTilskudd: number;\n tilskuddSomErOremerket: number;\n andreInntekter: number;\n leieinntekterEgenEiendom: number;\n fasteLeieinntekterPaEgenEiendom: number;\n totaleInntekter: number;\n resultat: number;\n // 7.2 kostnader\n kostnadFastelavensris: number;\n kostnadMaiblomst: number;\n kostnadAdventskalender: number;\n kostnadBasarMesseUtlodningBingoMm: number;\n nksFondMinDagIDag: number;\n gaverOkonomiskeBidrag: number;\n aktiviteter: number;\n husleie: number;\n andreDriftsutgifter: number;\n driftskostnader: number;\n vedlikehold: number;\n avskrivninger: number;\n totaleKostnader: number;\n // 7.3 Beholdning\n kasseOgBank: number;\n beholdningObligasjonerAksjerVerdipapir: number;\n verdienAvFastEiendom: number;\n};\nconst Regnskapstabell: FC = ({\n currentForeningReportNumber,\n message,\n setModal,\n}) => {\n const { register, setValue, handleSubmit, getValues } =\n useForm();\n const history = useHistory();\n const [kostnader, setKostnader] = useState(kostnaderTemplate);\n const [inntekter, setIntekter] = useState(inntekterTemplate);\n const [kasseOgBank, setKasseOgBank] = useState(kasseOgBankTemplate);\n const [isSubmitting, setIsSubmitting] = useState(false);\n\n const saveSuccessMessage = () => {\n message({\n body: {\n body: {\n message: `Regnskapstabell ble lagret.`,\n },\n },\n });\n setModal(true);\n setTimeout(() => setModal(false), 2650);\n };\n const saveOnClick = async (e: React.BaseSyntheticEvent, link: string) => {\n e.preventDefault();\n handleNavBarClick().then(() => history.push(link));\n };\n const handleNavBarClick = handleSubmit(() => {\n const formattedDto = prepareDto();\n let { resultat, ...rest } = formattedDto;\n\n const values = {\n foreningsNummer: currentForeningReportNumber,\n ...rest,\n resultat: 0,\n };\n postFormData(values, false)\n });\n\n const postFormData = async (dto: any, redirectToNextPage: boolean) => {\n setIsSubmitting(true);\n axios\n .post(URLS.REGNSKAP_POST, dto)\n .then((response: AxiosResponse) => {\n console.log(response);\n saveSuccessMessage();\n if(redirectToNextPage){\n setTimeout(\n () => {\n setIsSubmitting(false);\n history.push({\n pathname: \"/avslutt\",\n state: currentForeningReportNumber,\n }) \n }, 1750);\n }\n })\n .catch((error) => {\n console.log(error?.response?.data);\n message({\n body: {\n body: {\n error: \"Dessverre feilet lagring av Regnskapstabell. Vennligst sjekk at alle felter er fylt inn med rett verdi og prøv igjen.\",\n },\n },\n });\n setModal(true);\n setTimeout(() => {\n setModal(false);\n setIsSubmitting(false);\n }, 5000);\n });\n }\n\n\n useEffect(() => {\n async function getRegnskap() {\n await axios\n .get(`${URLS.REGNSKAP_GET}${currentForeningReportNumber}`, {\n headers: {\n Accept: \"application/json\",\n \"Content-type\": \"application/json\",\n },\n })\n .then((response) => {\n Object.entries(response.data).forEach(([key, value]) => {\n console.log(key, value);\n // @ts-ignore\n setValue(key, IntlNubmerFormatter(value));\n updateTotals();\n });\n console.log(response.data);\n })\n .catch((err) => {\n console.log({ err });\n const x = Object.values(err);\n console.log(x);\n });\n }\n\n getRegnskap();\n }, [currentForeningReportNumber]);\n\n const sum = (args: {}) =>\n Object.values(args)\n .map((item) => removeWhiteSpaces(item as string))\n .reduce((a, b) => a + b, 0);\n\n const updateTotals = () => {\n const obj = getValues();\n const income = pick(obj, [\n \"inntektFastelavensris\",\n \"inntektMaiblomst\",\n \"inntektAdventskalender\",\n \"inntektBasarMesseUtlodningBingoMm\",\n \"grasrotandelen\",\n \"gaver\",\n \"mvaRefusjon\",\n \"tilbakefortKontigent\",\n \"offentligeTilskudd\",\n \"tilskuddSomErOremerket\",\n \"andreInntekter\",\n \"leieinntekterEgenEiendom\",\n \"fasteLeieinntekterPaEgenEiendom\",\n ]);\n const expenses = pick(obj, [\n \"kostnadFastelavensris\",\n \"kostnadMaiblomst\",\n \"kostnadAdventskalender\",\n \"kostnadBasarMesseUtlodningBingoMm\",\n \"nksFondMinDagIDag\",\n \"gaverOkonomiskeBidrag\",\n \"aktiviteter\",\n \"husleie\",\n \"andreDriftsutgifter\",\n \"driftskostnader\",\n \"vedlikehold\",\n \"avskrivninger\",\n ]);\n const totalIncome = sum(income);\n const totalExpenses = sum(expenses);\n setValue(\"totaleInntekter\", IntlNubmerFormatter(totalIncome));\n setValue(\"totaleKostnader\", IntlNubmerFormatter(totalExpenses));\n const result = totalIncome - totalExpenses;\n setValue(\"resultat\", IntlNubmerFormatter(result));\n };\n\n const handleInntekerChange = (e: React.BaseSyntheticEvent) => {\n const { name, value } = e.target;\n setIntekter((prevState) =>\n prevState.map((intekt) => {\n if (intekt.name === name) {\n return { ...intekt, [name]: value };\n }\n return intekt;\n })\n );\n setValue(name, value);\n updateTotals();\n console.log(getValues());\n };\n \n const handleKostnaderChange = (e: React.BaseSyntheticEvent) => {\n const { name, value } = e.target;\n setKostnader((prevState) =>\n prevState.map((kostnad) => {\n if (kostnad.name === name) {\n return { ...kostnad, [name]: value };\n }\n return kostnad;\n })\n );\n setValue(name, value);\n updateTotals();\n console.log(getValues());\n };\n const handleKasseOgBankeChange = (e: React.BaseSyntheticEvent) => {\n const { name, value } = e.target;\n setKasseOgBank((prevState) =>\n prevState.map((kasseOgBank) => {\n if (kasseOgBank.name === name) {\n return { ...kasseOgBank, [name]: value };\n }\n return kasseOgBank;\n })\n );\n setValue(name, value);\n };\n const prepareDto = () => {\n let formValues = getValues();\n\n Object.entries(formValues).forEach(([key, value]) => {\n // @ts-ignore\n setValue(key, removeWhiteSpaces(value));\n });\n return getValues();\n };\n const submit = handleSubmit(() => {\n const formattedDto = prepareDto();\n let { resultat, ...rest } = formattedDto;\n\n const values = {\n foreningsNummer: currentForeningReportNumber,\n ...rest,\n resultat: 0,\n };\n\n postFormData(values, true)\n });\n\n return (\n
\n \n
\n
\n
\n {/*div for table one and two grid */}\n\n
\n

\n 7. Regnskapstabell\n

\n
\n {/* 7.1 & 7.2 wrapper */}\n
\n
\n {/*Table one starts here*/}\n
\n
\n
\n

\n 7.1 Inntekter\n

\n
\n \n \n \n \n \n \n \n \n {inntekter.map((item, index) => {\n return (\n \n \n \n \n );\n })}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n NB! MÅ VÆRE SAMME SOM STÅR I ÅRSREGNSKAPET\n \n \n \n
\n Inntekter\n \n Beløp\n
\n {item.text}\n \n \n \n \n NOK\n \n \n
\n \n
\n TOTALE INNTEKTER\n \n \n \n \n NOK\n \n \n
\n RESULTAT\n \n \n \n \n NOK\n \n \n
\n
\n
\n {/*Table two starts here*/}\n
\n
\n
\n

\n 7.2 Kostnader\n

\n
\n \n \n \n \n \n \n \n \n {kostnader.map((item, index) => {\n return (\n \n {item.input ? (\n \n KOSTNADER EGEN EIENDOM\n \n ) : (\n <>\n \n \n \n )}\n \n );\n })}\n \n \n \n \n \n \n \n \n \n \n
\n Kostnader\n \n Beløp\n
\n {item.text}\n \n \n \n \n NOK\n \n \n
\n \n
\n TOTALE KOSTNADER\n \n \n \n \n NOK\n \n \n
\n
\n
\n
\n
\n
\n
\n
\n

\n 7.3 Beholdning\n

\n
\n \n \n \n \n \n \n \n \n {kasseOgBank.map((item, index) => {\n return (\n \n \n \n \n );\n })}\n \n
\n Beskrivelse\n \n Beløp\n
\n {item.text}\n \n \n \n \n NOK\n \n \n
\n
\n
\n
\n \n \n
\n
\n );\n};\nexport default Regnskapstabell;\n","import React, { useState } from \"react\";\nimport \"./App.css\";\nimport { Route, Switch } from \"react-router\";\nimport LokalForening from \"./lokalforening/Lokalforening\";\nimport { Container } from \"@material-ui/core\";\nimport AdminPanel from \"./adminpanel/AdminPanel\";\nimport Login from \"./login/Login\";\nimport GaverBidrag from \"./gaverbidrag/GaverBidrag\";\nimport Home from \"./Home\";\nimport { BrowserRouter, NavLink } from \"react-router-dom\";\nimport Eiendom from \"./eiendom/Eiendom\";\nimport Modal from \"./customhtmlcomponents/modal/Modal\";\nimport { ResponseData } from \"./adminpanel/panels/types/types\";\nimport Styret from \"./styret/Styret\";\nimport Aktivitet from \"./aktiviteter/Aktiviteter\";\nimport Rapport from \"./rapport/Rapport\";\nimport Kos from \"./kos/Kos\";\nimport useToken from \"../services/useToken\";\nimport useUser from \"../services/useUser\";\nimport useCurentForeningReportNumber from \"../services/useForening\";\nimport Regnskapstabell from \"./regnskapstabell/Regnskapstabell\";\n\nfunction App() {\n const { user, scopes, setUser } = useUser();\n const isScopesSet = scopes !== undefined && scopes !== null;\n const isViewer = isScopesSet\n ? scopes.includes(\"ROLE_VIEWER\")\n : false;\n const isAdmin = isScopesSet\n ? scopes.includes(\"ROLE_ADMIN\")\n : false;\n\n const { currentForeningReportNumber, setCurrentForeningReportNumber } =\n useCurentForeningReportNumber();\n const { token, setToken } = useToken();\n const [modal, setModal] = useState(false);\n const [message, setMessage] = useState<{ body: ResponseData }>({\n body: {\n body: {\n foreningsNavn: \"\",\n foreningsNummer: 0,\n password: \"\",\n active: true,\n message: \"\",\n },\n },\n });\n return (\n \n
\n \n \n \n {!token ? (\n \n ) : (\n
\n
\n

{`Velkommen, ${user}`}

\n\n {(isAdmin || isViewer) && (\n window.confirm(\"Har du husket å lagre data?\")}\n >\n Admin panel\n \n )}\n setToken(\"\")}\n >\n LOGG UT\n \n
\n {modal && }\n \n (\n \n )}\n />\n (\n \n )}\n />\n } exact />\n (\n <>\n \n \n )}\n />\n (\n <>\n \n \n )}\n />\n (\n <>\n \n \n )}\n />\n (\n <>\n \n \n )}\n />\n (\n <>\n \n \n )}\n />\n (\n <>\n \n \n )}\n />\n (\n <>\n \n \n )}\n />\n (\n <>\n \n \n )}\n />\n \n
\n )}\n
\n
\n );\n}\n\nexport default App;\n","import { ReportHandler } from 'web-vitals';\n\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './components/App';\nimport reportWebVitals from './reportWebVitals';\nimport {BrowserRouter} from \"react-router-dom\";\n\nReactDOM.render(\n \n \n \n \n ,\n document.getElementById('root')\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"sourceRoot":""}