{"version":3,"sources":["../node_modules/@ionic/core/dist/esm-es5 lazy /^/.//.*/.entry/.js$/ groupOptions: {} namespace object","../node_modules/ionicons/dist/esm-es5 lazy /^/.//.*/.entry/.js$/ groupOptions: {} namespace object","utils/webservice.js","context/AuthContext.js","components/ExploreContainer.tsx","pages/Calendario.tsx","utils/utils.js","pages/Corsi.tsx","pages/DatiInfoStudent.tsx","pages/Login.tsx","pages/Loading.tsx","pages/PagamentoCorso.tsx","components/ModalOrari.tsx","pages/CalendarioCorso.tsx","components/SpinnerLoading.tsx","pages/ListGuide.tsx","utils/icons.js","pages/Bacheca.tsx","pages/MaterialeApp.tsx","pages/CalendarioCorsoTeorico.tsx","pages/CapitoliMaterialeApp.tsx","pages/BachecaInstructor.tsx","pages/ListAllieviInstructor.tsx","pages/QrcodeInstructor.tsx","pages/CalendarioInstructor.tsx","components/ModalAddOrariInstructor.tsx","pages/OrariGuidaInstructor.tsx","pages/AddGuida.tsx","App.tsx","serviceWorkerRegistration.ts","reportWebVitals.ts","index.tsx"],"names":["map","webpackAsyncContext","req","__webpack_require__","o","Promise","resolve","then","e","Error","code","ids","id","keys","Object","module","exports","axios","defaults","baseURL","timeout","withCredentials","credentials","mode","headers","post","interceptors","response","use","error","reject","create","TOKEN_HEADER","configHeader","setToken","_token_","REMOVE_ORARIO_GUIDA_CALENDARIO","GET_ORARI_GUIDE_DAY","ADD_ORARIO_STUDENT_CALENDARIO","INFO_STUDENT_CALENDARIO","GET_CALENDAR_INSTRUCTOR","requestWebService","link","dati","fetch","method","body","JSON","stringify","json","data","status","localStorage","removeItem","document","cookie","window","location","href","tkn","expires","moment","add","toString","secure","hostname","successHTTP","catch","errorHTTP","res","err","message","AuthContext","React","ExploreContainer","msg","className","style","marginTop","color","onClick","reload","Calendario","infoUser","useContext","useQuery","user","courses","calendar","coinStudent","coinDaPagare","retry","slot","icon","menu","Fragment","padding","fontSize","length","item","index","totale_coin","filter","id_iscrizione","coin_da_pagare","coin_disponibili","corso","paddingLeft","paddingRight","fullname_instructor","to","pathname","id_corso","state","isCalcNumber","n","Number","replace","capitalize","s","charAt","toUpperCase","slice","compare","a","b","inizio","activeDaysCalendarStudent","currentDate","days","i","push","format","getUnixDate","value","format_date","unix","Corsi","payments","importo_iscrizione","toFixed","sumPayments","data_iscrizione","DatiInfoStudent","contract","target","nome","cognome","data_nascita","luogo_nascita","codice_fiscale","email","cellulare","telefono","provincia","localita","indirizzo","note_allievo","LoginPage","signIn","useState","showLoading","setShowLoading","showActionSheet","setShowActionSheet","useIonToast","present","password","autoscuola","setState","login","buttons","position","duration","token","setItem","fullname","userType","type","alt","src","placeholder","onIonChange","detail","clearOnEdit","clearInput","button","fill","minWidth","isOpen","onDidDismiss","cssClass","text","handler","role","LoadingPage","fullscreen","width","height","PagamentoCorsoPage","useLocation","setData","useEffect","importo","note","ModalOrari","istruttore","onChange","day","idIscrizione","iduser","selected","setSelected","showConfirmModal","setShowConfirmModal","orari","setOrari","_array","inst","date","forEach","_conf","oggi","orainizio","ora_inizio","mm","ora_fine","diff","_conf_date","_show","_d","_o_i","fine","show","sort","users","data_inizio","_index","findIndex","init","disabled","backdropDismiss","header","blah","datainizio","split","datafine","val","data_fine","saveNewOrario","CalendarioCorsoPage","useParams","iscrizione","showModal","setShowModal","setCalendar","items","setItems","coin","setCoin","instructor","setInstructor","btnGuida","setBtnGuida","selectedDate","setSelectedDate","getInfoStudentCalendario","loading","history","back","checkData","btn_guida","checkActiveDay","current","Date","defaultHref","headerRender","monthOptions","onTypeChange","clone","localeData","months","month","monthsShort","Option","year","year_","parseInt","options","mesi","titolo","gutter","size","dropdownMatchSelectWidth","newYear","now","String","selectedMonth","newValue","dateCellRender","top","left","zIndex","borderRadius","background","locale","disabledDate","onSelect","innerWidth","margin","textAlign","weekday","_ora_inizio","_current_date","iconEdit","createOutline","trashOutline","setTimeout","findIndexItems","splice","SpinnerLoading","ListGuidePage","setLoading","_calendar","Array","IconCalendario","xmlns","viewBox","strokeWidth","stroke","strokeLinecap","strokeLinejoin","d","x","y","rx","x1","y1","x2","y2","IconPagamenti","IconMaterialeGuida","cx","cy","r","IconMaterialeTeoria","IconLink","IconAula","IconScanQrcode","IconUsers","IconOrari","points","BachecaApp","setPostoAula","posto_aula","refetch","active_corso_pratico","active_corso_teorico","links","itm","MaterialeApp","tipo","capitolo","includes","TypeLink","linkIcon","titolo_capitolo","video","title","frameBorder","allow","allowFullScreen","immagine","CalendarioCorsoTeoricoPage","useIonAlert","presentAlert","calendarUser","setCalendarUser","calendario","savePostoAula","annulaPostoAula","prenotato","id_orari_corso_teorico","posti","allievi","CapitoliMaterialeApp","useHistory","capitoli","BachecaInstructorApp","ListAllieviInstructor","list","setList","searchValue","setSearchValue","setAutoscuola","setUser","console","log","alert","searchAllievi","query","undefined","trim","term","id_autoscuola","showClearButton","onKeyUp","key","keyCode","onIonClear","float","routerLink","QrcodeInstructor","setMetodi","setServizi","spinning","calendar_student","student","qrcode","errorMsg","successMsg","showAddCoin","courses_student","orario_saved","paymentMethods","services","checkQrCode","qr","_orari","array","allievo","metodi","servizi","setOrario","facingMode","delay","onError","onScan","cancelText","okText","method_payment","data_ins","addCoin","CalendarioInstructorPage","ModalAddOrariInstructor","closeModal","start","end","saveOrari","alertError","params","min","max","displayFormat","doneText","minuteValues","OrariGuidaInstructorPage","filterMonth","filterYear","getOrariInstructor","removeGuidaCalendar","fontWeight","defaultValue","AddGuidaPage","match","setPayments","corsi","setCorsi","noGuide","setNoGuide","noGuideCorso","setNoGuideCorso","noOrari","setNoOrari","selectedOrario","setSelectedOrario","getInitialData","result","count","element","interfaceOptions","borderBottom","coinSpesi","calendarioInstructor","dataValue","cal","queryClient","QueryClient","defaultOptions","queries","refetchOnWindowFocus","refetchOnMount","staleTime","App","useCookies","cookies","setCookie","removeCookie","useReducer","prevState","action","app_started","dispatch","bootstrapAsync","addEventListener","preventDefault","getItem","infouser","parse","authContext","path","maxAge","Provider","client","contentId","exact","render","props","Boolean","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","StrictMode","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"6KAAA,IAAIA,EAAM,CACT,8BAA+B,CAC9B,IACA,GAED,uBAAwB,CACvB,IACA,GAED,uBAAwB,CACvB,IACA,GAED,0BAA2B,CAC1B,IACA,IAED,6BAA8B,CAC7B,IACA,IAED,0BAA2B,CAC1B,IACA,IAED,0BAA2B,CAC1B,IACA,IAED,wBAAyB,CACxB,IACA,IAED,0BAA2B,CAC1B,IACA,IAED,sBAAuB,CACtB,IACA,IAED,uBAAwB,CACvB,IACA,IAED,4BAA6B,CAC5B,IACA,IAED,uBAAwB,CACvB,IACA,IAED,qBAAsB,CACrB,IACA,IAED,mCAAoC,CACnC,IACA,IAED,uBAAwB,CACvB,IACA,IAED,+BAAgC,CAC/B,IACA,IAED,wBAAyB,CACxB,IACA,IAED,yBAA0B,CACzB,IACA,IAED,wBAAyB,CACxB,IACA,IAED,uBAAwB,CACvB,IACA,GAED,uBAAwB,CACvB,IACA,IAED,yBAA0B,CACzB,IACA,GAED,8BAA+B,CAC9B,IACA,IAED,yBAA0B,CACzB,IACA,IAED,uBAAwB,CACvB,IACA,IAED,6BAA8B,CAC7B,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,+BAAgC,CAC/B,IACA,IAED,yBAA0B,CACzB,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,0BAA2B,CAC1B,IACA,IAED,yBAA0B,CACzB,IACA,IAED,yBAA0B,CACzB,IACA,IAED,4BAA6B,CAC5B,IACA,IAED,2BAA4B,CAC3B,IACA,IAED,uBAAwB,CACvB,IACA,IAED,sBAAuB,CACtB,IACA,IAED,0BAA2B,CAC1B,IACA,IAED,uBAAwB,CACvB,IACA,IAED,wBAAyB,CACxB,IACA,IAED,gCAAiC,CAChC,IACA,KAGF,SAASC,EAAoBC,GAC5B,IAAIC,EAAoBC,EAAEJ,EAAKE,GAC9B,OAAOG,QAAQC,UAAUC,MAAK,WAC7B,IAAIC,EAAI,IAAIC,MAAM,uBAAyBP,EAAM,KAEjD,MADAM,EAAEE,KAAO,mBACHF,CACP,IAGD,IAAIG,EAAMX,EAAIE,GAAMU,EAAKD,EAAI,GAC7B,OAAOR,EAAoBK,EAAEG,EAAI,IAAIJ,MAAK,WACzC,OAAOJ,EAAoBS,EAC5B,GACD,CACAX,EAAoBY,KAAO,WAC1B,OAAOC,OAAOD,KAAKb,EACpB,EACAC,EAAoBW,GAAK,IACzBG,EAAOC,QAAUf,C,sBChMjB,IAAID,EAAM,CACT,sBAAuB,CACtB,IACA,KAGF,SAASC,EAAoBC,GAC5B,IAAIC,EAAoBC,EAAEJ,EAAKE,GAC9B,OAAOG,QAAQC,UAAUC,MAAK,WAC7B,IAAIC,EAAI,IAAIC,MAAM,uBAAyBP,EAAM,KAEjD,MADAM,EAAEE,KAAO,mBACHF,CACP,IAGD,IAAIG,EAAMX,EAAIE,GAAMU,EAAKD,EAAI,GAC7B,OAAOR,EAAoBK,EAAEG,EAAI,IAAIJ,MAAK,WACzC,OAAOJ,EAAoBS,EAC5B,GACD,CACAX,EAAoBY,KAAO,WAC1B,OAAOC,OAAOD,KAAKb,EACpB,EACAC,EAAoBW,GAAK,IACzBG,EAAOC,QAAUf,C,wlBCtBjBgB,IAAMC,SAASC,QAAoF,+CACnGF,IAAMC,SAASE,QAAU,KACzBH,IAAMC,SAASG,iBAAkB,EACjCJ,IAAMC,SAASI,YAAc,cAC7BL,IAAMC,SAASK,KAAO,UACtBN,IAAMC,SAASM,QAAQC,KAAK,gBAAkB,kCAG9CR,IAAMS,aAAaC,SAASC,KAAI,SAAUD,GAEtC,OAAOA,CACX,IAAG,SAAUE,GAET,OAAOxB,QAAQyB,OAAOD,EAC1B,IAEiBZ,IAAMc,OAAO,CAC1BZ,QAAmF,+CACnFC,QAAS,OAFb,IAKIY,EAAe,KAEfC,EAAe,CACf,UAAWD,EACX,eAAgB,oBAGPE,EAAW,SAACC,GACrBH,EAAeG,EACfF,EAAa,WAAaE,CAC9B,EAoBaC,EAAiC,4BACjCC,EAAsB,uBAEtBC,EAAgC,iCAChCC,EAA0B,2BAa1BC,EAA0B,2BAUhC,SAASC,EAAkBC,EAAMC,GACpC,OAAOC,MArCgF,+CAqC/DF,EAAM,CAC1BG,OAAQ,OACRrB,QAASS,EACTb,QAAS,KACT0B,KAAMC,KAAKC,UAAUL,KAEpBpC,MAAK,SAAAoB,GAAQ,OAAIA,EAASsB,MAAM,IAChC1C,MAAK,SAAA2C,GAOF,GAN4CA,GAAQA,EAAKC,QAAyB,KAAfD,EAAKC,SACpEC,aAAaC,WAAW,YACxBC,SAASC,OAAS,iCAClBC,OAAOC,SAASC,KAAO,KAGvBR,GAAQA,EAAKS,IAAK,CAClBL,SAASC,OAAS,iCAClB,IAAIK,EAAUC,MAASC,IAAI,GAAI,QAAQC,WACnCC,EAAS,SACmB,aAA5BR,OAAOC,SAASQ,WAChBD,EAAS,IAEbV,SAASC,OAAS,aAAeL,EAAKS,IAAM,aAAeC,EAAU,YAAcI,EAAS,GAChG,CACA,OAAOE,EAAYhB,EACvB,IACCiB,OAAM,SAACtC,GAEJ,OAAOuC,EAAUvC,EACrB,GACR,CA0BA,IAAMqC,EAAc,SAACG,GACjB,OAAOA,CACX,EAEMD,EAAY,SAACE,GACf,MAAW,+BAAPA,EACO,CAAEzC,OAAO,EAAM0C,QAAS,WAE5B,aAAE1C,OAAO,GAASyC,EAAI3C,SACjC,E,QC/Ia6C,EAAcC,kB,wBCkBZC,EAZoC,SAAH,GAAiB,IAAXC,EAAG,EAAHA,IACpD,OACE,sBAAKC,UAAU,kBAAiB,UAC9B,4BAAID,IACJ,8BAAG,MAAG,cAAC,IAAS,CAACE,MAAO,CAAEC,UAAW,IAAMC,MAAM,UAAUC,QAAS,WAClExB,OAAOC,SAASwB,QAClB,EAAE,SAAC,4BAIT,ECgKeC,EAtJc,WAC5B,IAAQC,EAAaC,qBAAWZ,GAAxBW,SAER,EAAgCE,mBAC/B,uBAAsB,gCACtB,8GACiB5C,EHkBiB,wBGlBuB,CAAE7B,GAAIuE,EAASG,OAAQ,KAAD,EAAvE,KAAHjB,EAAG,SAEkB,KAAdA,EAAIlB,OAAa,yCACpB,CACNoC,QAASlB,EAAIkB,QACbC,SAAUnB,EAAImB,SACdC,YAAapB,EAAIoB,YACjBC,aAAcrB,EAAIqB,eAClB,aAEI,IAAIjF,MAAM4D,EAAIlB,OAAS,IAAMkB,EAAInB,MAAM,KAAD,sCAE7C,CACCyC,MAAO,IAhBDxC,EAAM,EAANA,OAAQD,EAAI,EAAJA,KAAMrB,EAAK,EAALA,MAgItB,OACC,eAAC,IAAO,CAACjB,GAAG,eAAc,UACzB,cAAC,IAAS,UACT,eAAC,IAAU,WACV,cAAC,IAAU,CAACgF,KAAK,QAAO,SACvB,cAAC,IAAa,UACb,cAAC,IAAS,UACT,cAAC,IAAO,CAACC,KAAMC,IAAMf,MAAM,oBAI9B,cAAC,IAAQ,UAAC,oBAGZ,cAAC,IAAU,UAzHG,YAAX5B,EACI,4BAAG,YAEI,UAAXA,EACI,cAAC,EAAgB,CAACwB,IAAK,mBAAqB9C,EAAM0C,UAI3C,YAAXpB,EAEF,eAAC,IAAM4C,SAAQ,WACd,oBAAIlB,MAAO,CAAEmB,QAAS,GAAIC,SAAU,IAAK,SAAC,gDAClB,GAAvB/C,EAAKqC,QAAQW,QAAe,cAAC,EAAgB,CAACvB,IAAI,+BAClDzB,EAAKqC,QAAQvF,KAAI,SAACmG,EAAWC,GAC7B,IAAIC,EAAcnD,EAAKuC,YAAYa,QAClC,SAAC9F,GAAM,OAAKA,EAAE+F,eAAiBJ,EAAKI,aAAa,IAE9CC,EAAiBtD,EAAKwC,aAAaY,QACtC,SAAC9F,GAAM,OAAKA,EAAE+F,eAAiBJ,EAAKI,aAAa,IAE9Cf,EAAWtC,EAAKsC,SAASc,QAAO,SAAC9F,GAAM,OAAKA,EAAE+F,eAAiBJ,EAAKI,aAAa,IACjFE,EAAmB,EAKvB,OAJIJ,EAAYH,OAAS,IACxBO,EAAmBJ,EAAY,GAAGA,YAAcb,EAASU,QAIzD,8BACC,eAAC,IAAO,WACP,eAAC,IAAa,WACb,cAAC,IAAe,UAAC,UACjB,cAAC,IAAY,CAACrB,MAAO,CAAEoB,SAAU,IAAK,SAAEE,EAAKO,WAE9C,eAAC,IAAc,CAAC7B,MAAO,CAAE8B,YAAa,EAAGC,aAAc,IAAK,UAC3D,cAAC,IAAO,UACP,eAAC,IAAQ,CAAChC,UAAU,gBAAe,UAClC,cAAC,IAAO,CAACG,MAAM,OAAM,SACpB,6BAAKoB,EAAKU,qBAAuB,QAElC,4BAAG,oBAGL,cAAC,IAAO,UACP,eAAC,IAAQ,CAACjC,UAAU,gBAAe,UAClC,cAAC,IAAO,CAACG,MAAM,OAAM,SACpB,6BACEsB,EAAYH,OAAS,EAAIG,EAAY,GAAGA,YAAc,MAGzD,4BAAG,qBAGL,cAAC,IAAO,UACP,eAAC,IAAQ,CAACzB,UAAU,gBAAe,UAClC,cAAC,IAAO,CAACG,MAAM,OAAM,SACpB,6BAAK0B,MAEN,4BAAG,0BAIL,cAAC,IAAO,UACP,eAAC,IAAQ,CAAC7B,UAAU,gBAAe,UAClC,cAAC,IAAO,CAACG,MAAM,OAAM,SACpB,6BACEyB,EAAeN,OAAS,EACxBM,EAAe,GAAGd,aAElB,MAIH,4BAAG,wBAGL,cAAC,IAAO,UACP,cAAC,IAAI,CACJoB,GAAI,CACHC,SAAU,qBAAuBZ,EAAKa,SAAW,IAAMb,EAAKI,cAC5DU,MAAO,CAAC,GACP,SACF,4BAIF,cAAC,IAAO,UACP,cAAC,IAAI,CACJH,GAAI,CACHC,SAAU,qBAAuBZ,EAAKa,SAAW,IAAMb,EAAKI,cAC5DU,MAAO,CAAC,GACP,SACF,8BAhEKb,EAwEZ,OAKI,cAAC,IAAML,SAAQ,QAoBxB,E,OC/KO,SAASmB,EAAaC,GAC3B,OAAOC,OAAOD,EAAEpD,WAAWsD,QAAQ,IAAK,KAC1C,CAGO,IAmCMC,EAAa,SAACC,GACzB,MAAiB,kBAANA,EAAuB,GAC3BA,EAAEC,OAAO,GAAGC,cAAgBF,EAAEG,MAAM,EAC7C,EAEO,SAASC,EAAQC,EAAGC,GACzB,OAAID,EAAEE,OAASD,EAAEC,QACP,EAENF,EAAEE,OAASD,EAAEC,OACR,EAEF,CACT,CAEO,SAASC,IAGd,IAFA,IAAIC,EAAcnE,MAASC,IAAI,EAAG,OAC9BmE,EAAO,GACFC,EAAI,EAAGA,GAAK,EAAGA,IACtBD,EAAKE,KAAKtE,IAAOmE,GAAalE,IAAIoE,EAAG,QAAQE,OAAO,eAEtD,OAAOH,CACT,CAEO,IAMMI,EAAc,SAACC,GAC1B,IAAIC,EAAc1E,IAAOyE,GAAOF,OAAO,cAEvC,OADWvE,IAAO0E,EAAc,aAAaC,MAE/C,ECwEeC,EAtHS,WACvB,IAAQtD,EAAaC,qBAAWZ,GAAxBW,SAER,EAAgCE,mBAC/B,kBAAiB,gCACjB,8GACiB5C,ELgBY,mBKhBuB,CAAE7B,GAAIuE,EAASG,OAAQ,KAAD,EAAlE,KAAHjB,EAAG,SACkB,KAAdA,EAAIlB,OAAa,yCACpB,CACNoC,QAASlB,EAAIkB,QACbmD,SAAUrE,EAAIqE,WACd,aAEI,IAAIjI,MAAM4D,EAAIlB,OAAS,IAAMkB,EAAInB,MAAM,KAAD,sCAE7C,CACCyC,MAAO,IAbDxC,EAAM,EAANA,OAAQD,EAAI,EAAJA,KAAMrB,EAAK,EAALA,MAgGtB,OACC,eAAC,IAAO,WACP,cAAC,IAAS,UACT,eAAC,IAAU,WACV,cAAC,IAAU,CAAC+D,KAAK,QAAO,SACvB,cAAC,IAAa,UACb,cAAC,IAAS,UACT,cAAC,IAAO,CAACC,KAAMC,IAAMf,MAAM,oBAI9B,cAAC,IAAQ,UAAC,eAGZ,cAAC,IAAU,UA5FG,YAAX5B,EACI,4BAAG,YAEI,UAAXA,EACI,8BAAG,oBAAkBtB,EAAM0C,WAGpB,YAAXpB,EAEF,cAAC,IAAM4C,SAAQ,UACb7C,EAAKqC,QAAQvF,KAAI,SAACmG,EAAWC,GAC7B,IAAIsC,EAAWxF,EAAKwF,SAASpC,QAAO,SAAC9F,GAAM,OAAKA,EAAE+F,eAAiBJ,EAAKI,aAAa,IACrF,OACC,8BACC,eAAC,IAAO,WACP,eAAC,IAAa,WACb,cAAC,IAAe,UAAC,UACjB,cAAC,IAAY,CAAC1B,MAAO,CAAEoB,SAAU,IAAK,SAAEE,EAAKO,WAE9C,eAAC,IAAc,CAAC7B,MAAO,CAAE8B,YAAa,EAAGC,aAAc,IAAK,UAC3D,cAAC,IAAO,UACP,eAAC,IAAQ,CAAChC,UAAU,gBAAe,UAClC,cAAC,IAAO,CAACG,MAAM,OAAM,SACpB,6BAAKoB,EAAKU,qBAAuB,QAElC,4BAAG,oBAGL,cAAC,IAAO,UACP,eAAC,IAAQ,CAACjC,UAAU,gBAAe,UAClC,cAAC,IAAO,CAACG,MAAM,OAAM,SACpB,+BAAKoB,EAAKwC,mBAAmBC,QAAQ,GAAG,eAEzC,4BAAG,iBAGL,cAAC,IAAO,UACP,eAAC,IAAQ,CAAChE,UAAU,gBAAe,UAClC,cAAC,IAAO,CAACG,MAAM,OAAM,SACpB,8BACGmC,EAAaf,EAAKwC,oBACnBzB,EAAaf,EAAK0C,cAAcD,QAAQ,GAAK,cAGhD,4BAAG,mBAGL,cAAC,IAAO,UACP,eAAC,IAAQ,CAAChE,UAAU,gBAAe,UAClC,cAAC,IAAO,CAACG,MAAM,OAAM,SACpB,6BAAKlB,IAAOsC,EAAK2C,iBAAiBV,OAAO,mBAE1C,4BAAG,yBAGJM,EAASxC,OAAS,GAClB,cAAC,IAAO,UACP,cAAC,IAAI,CACJY,GAAI,CACHC,SAAU,mBAAqBZ,EAAKa,SACpCC,MAAO,CAAEyB,SAAUA,EAAUhC,MAAOP,EAAKO,QACxC,SACF,kCAjDIN,EA0DZ,MAII,cAAC,IAAML,SAAQ,QAoBxB,ECqDegD,G,OAhLmB,WACjC,IAAQ5D,EAAaC,qBAAWZ,GAAxBW,SAER,EAAgCE,mBAC/B,YAAW,gCACX,8GACiB5C,ENsBM,aMtBuB,CAAE7B,GAAIuE,EAASG,OAAQ,KAAD,EAA5D,KAAHjB,EAAG,SACkB,KAAdA,EAAIlB,OAAa,yCACpBkB,EAAIiB,MAAI,aAEV,IAAI7E,MAAM4D,EAAIlB,OAAS,IAAMkB,EAAInB,MAAM,KAAD,sCAE7C,CACCyC,MAAO,IAVDxC,EAAM,EAANA,OAAQD,EAAI,EAAJA,KAAMrB,EAAK,EAALA,MA0JtB,OACC,eAAC,IAAO,WACP,cAAC,IAAS,UACT,eAAC,IAAU,WACV,cAAC,IAAU,CAAC+D,KAAK,QAAO,SACvB,cAAC,IAAa,UACb,cAAC,IAAS,UACT,cAAC,IAAO,CAACC,KAAMC,IAAMf,MAAM,oBAI9B,cAAC,IAAQ,UAAC,qBAGZ,cAAC,IAAU,UAzJG,YAAX5B,EACI,4BAAG,YAEI,UAAXA,EACI,8BAAG,oBAAkBtB,EAAM0C,WAGpB,YAAXpB,EAEF,eAAC,IAAM4C,SAAQ,WACb7C,EAAK8F,UAAY,cAAC,IAAO,UACzB,eAAC,IAAQ,CAACpE,UAAU,gBAAe,UAClC,cAAC,IAAO,CAACG,MAAM,OAAM,SACpB,6BAAI,mBAAGrB,KAAM,uCAAyCR,EAAK8F,SAAUC,OAAO,SAAQ,SAAC,0BAEtF,4BAAG,mBAGL,cAAC,IAAO,UACP,eAAC,IAAQ,CAACrE,UAAU,gBAAe,UAClC,cAAC,IAAO,CAACG,MAAM,OAAM,SACpB,6BAAK7B,EAAKgG,SAEX,4BAAG,cAGL,cAAC,IAAO,UACP,eAAC,IAAQ,CAACtE,UAAU,gBAAe,UAClC,cAAC,IAAO,CAACG,MAAM,OAAM,SACpB,6BAAK7B,EAAKiG,YAEX,4BAAG,iBAGJjG,EAAKkG,cACL,cAAC,IAAO,UACP,eAAC,IAAQ,CAACxE,UAAU,gBAAe,UAClC,cAAC,IAAO,CAACG,MAAM,OAAM,SACpB,6BAAKlB,IAAOX,EAAKkG,cAAchB,OAAO,mBAEvC,4BAAG,yBAILlF,EAAKmG,eACL,cAAC,IAAO,UACP,eAAC,IAAQ,CAACzE,UAAU,gBAAe,UAClC,cAAC,IAAO,CAACG,MAAM,OAAM,SACpB,6BAAK7B,EAAKmG,kBAEX,4BAAG,0BAILnG,EAAKoG,gBACL,cAAC,IAAO,UACP,eAAC,IAAQ,CAAC1E,UAAU,gBAAe,UAClC,cAAC,IAAO,CAACG,MAAM,OAAM,SACpB,6BAAK7B,EAAKoG,mBAEX,4BAAG,wBAIN,cAAC,IAAO,UACP,eAAC,IAAQ,CAAC1E,UAAU,gBAAe,UAClC,cAAC,IAAO,CAACG,MAAM,OAAM,SACpB,6BAAK7B,EAAKqG,UAEX,4BAAG,eAGJrG,EAAKsG,WACL,cAAC,IAAO,UACP,eAAC,IAAQ,CAAC5E,UAAU,gBAAe,UAClC,cAAC,IAAO,CAACG,MAAM,OAAM,SACpB,6BAAK7B,EAAKsG,cAEX,4BAAG,mBAILtG,EAAKuG,UACL,cAAC,IAAO,UACP,eAAC,IAAQ,CAAC7E,UAAU,gBAAe,UAClC,cAAC,IAAO,CAACG,MAAM,OAAM,SACpB,6BAAK7B,EAAKuG,aAEX,4BAAG,kBAILvG,EAAKwG,WACL,cAAC,IAAO,UACP,eAAC,IAAQ,CAAC9E,UAAU,gBAAe,UAClC,cAAC,IAAO,CAACG,MAAM,OAAM,SACpB,6BAAK7B,EAAKwG,cAEX,4BAAG,mBAILxG,EAAKyG,UACL,cAAC,IAAO,UACP,eAAC,IAAQ,CAAC/E,UAAU,gBAAe,UAClC,cAAC,IAAO,CAACG,MAAM,OAAM,SACpB,6BAAK7B,EAAKyG,aAEX,4BAAG,qBAILzG,EAAK0G,WACL,cAAC,IAAO,UACP,eAAC,IAAQ,CAAChF,UAAU,gBAAe,UAClC,cAAC,IAAO,CAACG,MAAM,OAAM,SACpB,6BAAK7B,EAAK0G,cAEX,4BAAG,mBAIL1G,EAAK2G,cACL,cAAC,IAAO,UACP,eAAC,IAAQ,CAACjF,UAAU,gBAAe,UAClC,cAAC,IAAO,CAACG,MAAM,OAAM,SACpB,6BAAK7B,EAAK2G,iBAEX,4BAAG,iBAQF,cAAC,IAAM9D,SAAQ,QAoBxB,G,+FCWe+D,G,OA/La,WAC3B,IAAQC,EAAW3E,qBAAWZ,GAAtBuF,OACR,EAAwCC,oBAAS,GAAM,mBAA/CC,EAAW,KAAEC,EAAc,KACnC,EAAgDF,oBAAS,GAAM,mBAAvDG,EAAe,KAAEC,EAAkB,KAC3C,EAAoBC,cAAZC,EAAyB,iBAAlB,GAEf,EAA4BN,mBAAS,CACpCT,MAAO,GACPgB,SAAU,GACVC,WAAY,KACX,mBAJMvD,EAAK,KAAEwD,EAAQ,KAMjBC,EAAK,iDAAG,iGACRzD,EAAMsC,MAAM,CAAD,eAMZ,OALHe,EAAQ,CACPK,QAAS,GACTpG,QAAS,2BACTqG,SAAU,MACVC,SAAU,OACR,mBACI,GAAK,UAER5D,EAAMsD,SAAS,CAAD,eAMf,OALHD,EAAQ,CACPK,QAAS,GACTpG,QAAS,8BACTqG,SAAU,MACVC,SAAU,OACR,mBACI,GAAK,UAER5D,EAAMuD,WAAW,CAAD,eAMjB,OALHF,EAAQ,CACPK,QAAS,GACTpG,QAAS,gCACTqG,SAAU,MACVC,SAAU,OACR,mBACI,GAAK,OAEQ,OAArBX,GAAe,GAAM,UACLzH,EPXQ,cOWsBwE,GAAO,KAAD,IAAhD5C,EAAG,SACkB,KAAdA,EAAIlB,QAAiBkB,EAAIyG,OACnC1H,aAAa2H,QACZ,WACAhI,KAAKC,UAAU,CACdwH,WAAYnG,EAAIiB,KAAKkF,WACrBlF,KAAMjB,EAAIiB,KAAKA,KACf0F,SAAU3G,EAAIiB,KAAK0F,SACnBC,SAAU5G,EAAIiB,KAAK4F,QAGrBhJ,EAASmC,EAAIyG,OACbf,EAAO,CACNS,WAAYnG,EAAIiB,KAAKkF,WACrBlF,KAAMjB,EAAIiB,KAAKA,KACf0F,SAAU3G,EAAIiB,KAAK0F,SACnBF,MAAOzG,EAAIyG,MACXG,SAAU5G,EAAIiB,KAAK4F,QAEV7G,GAAqB,KAAdA,EAAIlB,OACrBmH,EAAQ,CACPK,QAAS,GACTpG,QAAS,8CACTqG,SAAU,MACVC,SAAU,QAEDxG,GAAOA,EAAIlB,OACrBmH,EAAQ,CACPK,QAAS,GACTpG,QAAS,yCACTqG,SAAU,MACVC,SAAU,QAUZX,GAAe,GAAO,4CACtB,kBAvEU,mCAyEX,OACC,eAAC,IAAO,CAACtJ,GAAG,eAAc,UACzB,cAAC,IAAU,UACV,qBAAKgE,UAAU,aAAY,SAC1B,sBAAKA,UAAU,mCAAkC,UAChD,qBAAKA,UAAU,OAAM,SACpB,qBAAKuG,IAAI,2BAA2BC,IAAK,uBAE1C,sBAAKxG,UAAU,aAAY,UAC1B,eAAC,IAAO,WACP,cAAC,IAAQ,CAACgG,SAAS,WAAU,SAAC,UAC9B,cAAC,IAAQ,CACRM,KAAK,QACLG,YAAa,QACbC,YAAa,SAAC9K,GACbiK,EAAS,2BACLxD,GAAK,IACRsC,MAAO/I,EAAE+K,OAAOjD,QAElB,OAGF,eAAC,IAAO,WACP,cAAC,IAAQ,CAACsC,SAAS,WAAU,SAAC,aAC9B,cAAC,IAAQ,CACRM,KAAK,WACLM,aAAa,EACbC,YAAY,EACZJ,YAAa,WACbC,YAAa,SAAC9K,GACbiK,EAAS,2BACLxD,GAAK,IACRsD,SAAU/J,EAAE+K,OAAOjD,QAErB,OAGF,eAAC,IAAO,CACPoD,QAAM,EACN7G,MAAO,CAAEC,UAAW,GAAI6B,YAAa,GACrC3B,QAAS,WACRoF,GAAmB,EACpB,EAAE,WAEAnD,EAAMuD,YAAc,cAAC,IAAQ,UAAC,yBACX,KAApBvD,EAAMuD,YAAqB,cAAC,IAAQ,UAAC,8BACjB,KAApBvD,EAAMuD,YAAqB,cAAC,IAAQ,UAAC,sCAGvC,cAAC,IAAS,CACTzF,MAAM,WACN4G,KAAK,UACL3G,QAAS,WACR0F,GACD,EACA7F,MAAO,CAAE+G,SAAU,IAAK9G,UAAW,IAAK,SACxC,oBAOL,cAAC,IAAc,CACd+G,OAAQ1B,EACR2B,aAAc,kBAAM1B,GAAmB,EAAM,EAC7C2B,SAAS,kBACTpB,QAAS,CACR,CACCqB,KAAM,4BACNC,QAAS,WACR7B,GAAmB,GACnBK,EAAS,2BACLxD,GAAK,IACRuD,WAAY,MAEd,GAED,CACCwB,KAAM,iCACNC,QAAS,WACR7B,GAAmB,GACnBK,EAAS,2BACLxD,GAAK,IACRuD,WAAY,MAEd,GAED,CACCwB,KAAM,SACNE,KAAM,SACND,QAAS,WAAO,MAInB,cAAC,IAAU,CACVF,SAAS,kBACTF,OAAQ5B,EACR6B,aAAc,kBAAM5B,GAAe,EAAM,EACzC3F,QAAS,OAKb,GCzLe4H,G,OAhBe,WAC7B,OACC,cAAC,IAAO,CAACvL,GAAG,eAAc,SACzB,cAAC,IAAU,CAACwL,YAAU,WACrB,qBAAKxH,UAAU,UAAS,SACvB,qBACCuG,IAAI,2BACJC,IAAK,oCACLvG,MAAO,CAAEwH,MAAO,IAAKC,OAAQ,eAMnC,GC0FeC,G,OAtFsB,WACpC,IAAQtF,EAAUuF,cAAVvF,MAER,EAAwBxC,IAAMuF,SAAS,CACtCtB,SAAU,GACVhC,MAAO,KACN,mBAHKxD,EAAI,KAAEuJ,EAAO,KAmBpB,OAdAhI,IAAMiI,WAAU,WAETzF,EAGJwF,EAAQ,CACP/D,SAAUzB,EAAMyB,SAChBhC,MAAOO,EAAMP,QAJdlD,OAAOC,SAASC,KAAO,QAS1B,GAAG,IAGF,eAAC,IAAO,CAAC9C,GAAG,eAAc,UACzB,cAAC,IAAS,UACT,eAAC,IAAU,WACV,cAAC,IAAU,CAACgF,KAAK,QAAO,SACvB,cAAC,IAAa,CAACoG,KAAK,OAErB,cAAC,IAAQ,UAAE,mBAGb,eAAC,IAAU,WACV,oBAAInH,MAAO,CAAEmB,QAAS,IAAK,SAAE9C,EAAKwD,QACjCxD,EAAKwF,UACLxF,EAAKwF,SAAS1I,KAAI,SAACmG,EAAWC,GAC7B,OACC,8BACC,eAAC,IAAO,WACP,eAAC,IAAa,WACb,cAAC,IAAe,UAAC,cACjB,cAAC,IAAY,CAACvB,MAAO,CAAEoB,SAAU,IAAK,SAAEE,EAAKO,WAE9C,eAAC,IAAc,CAAC7B,MAAO,CAAE8B,YAAa,EAAGC,aAAc,IAAK,UAC3D,cAAC,IAAO,UACP,eAAC,IAAQ,CAAChC,UAAU,gBAAe,UAClC,cAAC,IAAO,CAACG,MAAM,OAAM,SACpB,+BAAKoB,EAAKwG,QAAQ/D,QAAQ,GAAG,eAE9B,4BAAG,iBAGL,cAAC,IAAO,UACP,eAAC,IAAQ,CAAChE,UAAU,gBAAe,UAClC,cAAC,IAAO,CAACG,MAAM,OAAM,SACpB,6BAAKlB,IAAOsC,EAAKjD,MAAMkF,OAAO,mBAE/B,4BAAG,cAGL,cAAC,IAAO,UACP,eAAC,IAAQ,CAACxD,UAAU,gBAAe,UAClC,cAAC,IAAO,CAACG,MAAM,OAAM,SACpB,6BAAKoB,EAAKtD,WAEX,4BAAG,2BAGL,cAAC,IAAO,UACP,eAAC,IAAQ,CAAC+B,UAAU,gBAAe,UAClC,cAAC,IAAO,CAACG,MAAM,OAAM,SACpB,6BAAKoB,EAAKyG,SAEX,4BAAG,qBApCExG,EA2CZ,SAIL,G,oECpFA,SAASuB,EAAQC,EAAQC,GACvB,OAAID,EAAEE,OAASD,EAAEC,QACP,EAENF,EAAEE,OAASD,EAAEC,OACR,EAEF,CACT,CAGA,IA0Je+E,EA1J8B,SAAH,GAAyE,IAAnEhB,EAAM,EAANA,OAAQiB,EAAU,EAAVA,WAAYC,EAAQ,EAARA,SAAUC,EAAG,EAAHA,IAAKC,EAAY,EAAZA,aAAcC,EAAM,EAANA,OAAQtM,EAAE,EAAFA,GAEvG,EAAgC6D,IAAMuF,SAAiB,IAAG,mBAAnDmD,EAAQ,KAAEC,EAAW,KAC5B,EAAsC3I,IAAMuF,UAAkB,GAAM,mBAA7DC,EAAW,KAAEC,EAAc,KAClC,EAAgDzF,IAAMuF,UAAkB,GAAM,mBAAvEqD,EAAgB,KAAEC,EAAmB,KAC5C,EAA0B7I,IAAMuF,SAAc,IAAG,mBAA1CuD,EAAK,KAAEC,EAAQ,KAGtB/I,IAAMiI,WAAU,WACK,aA8ClB,OA9CkB,kCAAnB,8FACMe,EAAuB,GAG3BhL,EAAkBJ,EAAqB,CAAEa,KAAMW,IAAOmJ,EAAM,aAAaxE,OAAQkF,KAAMZ,IAAcvM,MAAK,SAAC8D,GAEzG,GAAIA,GAAqB,KAAdA,EAAIlB,QAAiBkB,EAAIkJ,MAAMrH,OAAS,EAAG,CACpD,IAAIyH,EAAO9J,IAAOmJ,EAAM,aAAa5E,OAAO,cAE5C/D,EAAIkJ,MAAMK,SAAQ,SAACzH,GAOjB,IANA,IAAI0H,EAAQhK,IAAOmJ,EAAM,aAAa5E,OAAO,cACzC0F,EAAOjK,IAAOmJ,EAAM,aAAa5E,OAAO,cACxC2F,EAAYlK,IAAO8J,EAAO,IAAMxH,EAAK6H,YAErCC,EADUpK,IAAO8J,EAAO,IAAMxH,EAAK+H,UACtBC,KAAKJ,EAAW,UAAY,GACzCK,EAAavK,IAAOmJ,EAAM,aACrB9E,EAAI,EAAGA,EAAI+F,EAAI/F,IAAK,CAC3B,IAAImG,GAAQ,EACRC,EAAKzK,IAAOuK,GAAYhG,OAAO,cAC/BmG,EAAO1K,IAAOyK,EAAK,IAAMzK,IAAOkK,GAAWjK,IAAI,GAAKoE,EAAG,KAAKE,OAAO,UAAUI,OAC5EsF,GAAQD,GAAShK,IAAOmJ,EAAM,aAAa5E,OAAO,SAAWvE,IAAOkK,GAAWjK,IAAI,GAAKoE,EAAG,KAAKE,OAAO,WAC1GiG,GAAQ,GAENxK,MAAS2E,OAAS+F,IACpBF,GAAQ,GAEVZ,EAAOtF,KAAK,CACVL,OAAQjE,IAAOkK,GAAWjK,IAAI,GAAKoE,EAAG,KAAKE,OAAO,SAClDoG,KAAM3K,IAAOkK,GAAWjK,IAAI,IAAMoE,EAAI,GAAI,KAAKE,OAAO,SACtDqG,KAAMJ,GAEV,CACF,IACAZ,EAASA,EAAOiB,KAAK/G,GACrBtD,EAAIsK,MAAMf,SAAQ,SAACzH,GACjB,IACI6H,EAAanK,IAAO2E,KAAKrC,EAAKyI,aAAaxG,OAAO,SAClDyG,EAASpB,EAAOqB,WAAU,SAAAtO,GAAC,OAAIA,EAAEsH,QAAUkG,CAAU,IACrDa,GAAU,IACZpB,EAAOoB,GAAQJ,MAAO,EAE1B,IACAjB,EAASC,EACX,CACAvD,GAAe,EACjB,IAAE,4CACH,sBAKD,OAJI2B,GAhDiB,WACF,wBAgDjBkD,GAGK,WACL3B,EAAY,GACd,CAEF,GAAG,CAACvB,IA4CJ,OACE,sBAAKjH,UAAU,kBAAiB,UAC7BqF,GAAe,cAAC,IAAU,KACzBA,GAAe,cAAC,IAAO,UACvB,cAAC,IAAa,CAAC3B,MAAO6E,EAAU7B,YAAa,SAAA9K,GA7C9B,IAAC8H,KA8CD9H,EAAE+K,OAAOjD,SA3C1B8E,EAAY9E,GACZgF,GAAoB,GA2ClB,EAAE,SACCC,EAAMvN,KAAI,SAACmG,EAAkBC,GAC5B,OAAO,eAAC,IAAO,WACb,cAAC,IAAQ,UAAED,EAAK2B,OAAS,MAAQ3B,EAAKqI,OACtC,cAAC,IAAQ,CAACQ,UAAW7I,EAAKsI,KAAM7I,KAAK,MAAM0C,MAAOnC,EAAK2B,OAAS,IAAM3B,EAAKqI,SAFxDpI,EAIvB,QAIJ,cAAC,IAAQ,CACPyF,OAAQwB,EACR4B,iBAAiB,EACjBlD,SAAS,kBACTmD,OAAQ,eACR3K,QAAS,wCACToG,QAAS,CACP,CACEqB,KAAM,KACNE,KAAM,SACNH,SAAU,YACVE,QAAS,SAACkD,GACR/B,EAAY,IACZE,GAAoB,EAEtB,GAEF,CACEtB,KAAM,KACNC,QAAS,WACPqB,GAAoB,GAnEV,WAEpB,IAAI8B,EAAavL,IAAOmJ,EAAM,IAAMG,EAASkC,MAAM,KAAK,GAAK,OAAOjH,OAAO,uBACvEkH,EAAWzL,IAAOmJ,EAAM,IAAMG,EAASkC,MAAM,KAAK,GAAK,OAAOjH,OAAO,uBACrEmH,EAAM,CACR3O,GAAIA,GAAM,KACVsM,OAAQA,EACR3G,cAAe0G,GAAgB,KAC/B/J,KAAMW,IAAOmJ,EAAM,IAAIxE,OACvBoG,YAAa/K,IAAOuL,GAAY5G,OAChCgH,UAAW3L,IAAOyL,GAAU9G,OAC5BkF,KAAMZ,GAKJsC,GAAcE,GAAY1O,EAC5B6B,EVxE0C,oCUwEU8M,GAAKhP,MAAK,SAAC8D,GACzDA,GAAqB,KAAdA,EAAIlB,QACb4J,GAEJ,IACSqC,GAAcE,GACvB7M,EAAkBH,EAA+BiN,GAAKhP,MAAK,SAAC8D,GACtDA,GAAqB,KAAdA,EAAIlB,QACb4J,GAEJ,GAEJ,CAuCY0C,EACF,QAMZ,EC4OeC,GAtYuB,WACrC,IAAQvK,EAAaV,IAAMW,WAAWZ,GAA9BW,SACR,EAA4BwK,cAAtBjJ,EAAK,EAALA,MAAOkJ,EAAU,EAAVA,WAEb,EAAkBvF,cAAXC,EAAwB,iBAAjB,GACd,EAAkC7F,IAAMuF,SAAS,CAChD6B,QAAQ,EACRmB,IAAK,GACLpM,GAAI,IACH,mBAJKiP,EAAS,KAAEC,EAAY,KAK9B,EAAgCrL,IAAMuF,SAAoB,IAAG,mBAAtDxE,EAAQ,KAAEuK,EAAW,KAC5B,EAA0BtL,IAAMuF,SAAoB,IAAG,mBAAhDgG,EAAK,KAAEC,EAAQ,KACtB,EAAwBxL,IAAMuF,SAAS,GAAE,mBAAlCkG,EAAI,KAAEC,EAAO,KACpB,EAAoC1L,IAAMuF,SAAS,GAAE,mBAA9CoG,EAAU,KAAEC,EAAa,KAChC,EAAgC5L,IAAMuF,SAAS,GAAE,mBAA1CsG,EAAQ,KAAEC,EAAW,KAC5B,EAAwC9L,IAAMuF,SAASnG,OAAS,mBAAzD2M,EAAY,KAAEC,GAAe,KACpC,GAAgDhM,IAAMuF,SAAS,CAC9DyE,MAAM,EACN7N,GAAI,IACH,qBAHKyM,GAAgB,MAAEC,GAAmB,MAI5C,GAAsC7I,IAAMuF,UAAS,GAAM,qBAApDC,GAAW,MAAEC,GAAc,MAElCzF,IAAMiI,WAAU,WACXhG,GAASkJ,GACZc,GAAyB,GAE3B,GAAG,IAGH,IAAMA,GAAwB,iDAAG,WAAOC,GAAe,2EACtDlO,EAAkBF,EAAyB,CAAEgE,cAAeqJ,IAAcrP,MAAK,SAAC8D,GAC/E,IAAIA,GAAqB,KAAdA,EAAIlB,OAgBd,OADAK,OAAOoN,QAAQC,QACR,EAfP,IAAKxM,EAAI+L,WAER,OADA5M,OAAOoN,QAAQC,QACR,EAGR,IAAMC,EAAYzM,EAAImB,SAASc,QAC9B,SAAC9F,GAAM,OAAKqD,IAAO2E,KAAKhI,EAAE0C,MAAMkF,OAAO,eAAiBvE,IAAO2M,GAAcpI,OAAO,aAAa,IAElG2H,EAAY1L,EAAImB,UAChByK,EAASa,GACTT,EAAchM,EAAI+L,YAClBG,EAAYlM,EAAI0M,WAChBZ,EAAQ9L,EAAI6L,MAAQ,GAKjBS,GACHzG,IAAe,EAEjB,IAAE,2CACF,gBAxB6B,sCA0CxB8G,GAAiB,SAACC,GACvB,IACI3K,EADOyB,IACOzB,QAAO,SAAC9F,GAAC,OAAKA,GAAKqD,IAAOoN,GAAS7I,OAAO,aAAa,IACzE,QAAI9B,GAAUA,EAAOJ,OAAS,GACzBmC,EAAY,IAAI6I,OAAW7I,EAAY/B,EAAO,GAAK,iBAKpDzC,IAAOoN,GAAS7I,OAAO,eAAiBvE,MAASuE,OAAO,cAI7D,EA2DA,OACC,eAAC,IAAO,CAACxH,GAAG,eAAc,UACzB,cAAC,IAAS,UACT,eAAC,IAAU,WACV,cAAC,IAAU,CAACgF,KAAK,QAAO,SACvB,cAAC,IAAa,CAACoG,KAAK,GAAGmF,YAAY,kBAKpC,cAAC,IAAQ,UAAC,oBAGZ,eAAC,IAAU,WACV,qBAAKvM,UAAU,0BAAyB,SACvC,cAAC,IAAQ,CACRwM,aAAc,YAQb,IAR2D,IAA3C9I,EAAK,EAALA,MAAayE,GAAF,EAAJ7B,KAAc,EAAR6B,UAGvBsE,GAH6C,EAAZC,aAGlB,IAEfL,EAAU3I,EAAMiJ,QAChBC,EAAalJ,EAAMkJ,aACnBC,EAAS,GACNvJ,EAAI,EAAGA,EAAI,GAAIA,IACvB+I,EAAQS,MAAMxJ,GACduJ,EAAOtJ,KAAKqJ,EAAWG,YAAYV,IAGpC,IAAK,IAAI7K,EAZK,EAYUA,EAXZ,GAWyBA,IACpCiL,EAAalJ,KACZ,cAAC,IAAOyJ,OAAM,CAAChN,UAAU,aAAa0D,MAAOmJ,EAAOrL,GAAO,SACzDqL,EAAOrL,IAAM,UADqDA,KAKxDkC,EAAMoJ,QAKpB,IALA,IAEMG,EAAOvJ,EAAMuJ,OACbC,EAAQC,SAASlO,MAASuE,OAAO,SACjC4J,EAAU,GACP9J,EAAI4J,EAAO5J,EAAI4J,EAAQ,EAAG5J,GAAK,EACvC8J,EAAQ7J,KACP,cAAC,IAAOyJ,OAAM,CAAStJ,MAAOJ,EAAGtD,UAAU,YAAW,SACpDsD,GADkBA,IAMtB,IAAM+J,EAAO,CACZ,CAAEC,OAAQ,MAAO5J,MAAO,GACxB,CAAE4J,OAAQ,MAAO5J,MAAO,GACxB,CAAE4J,OAAQ,MAAO5J,MAAO,GACxB,CAAE4J,OAAQ,MAAO5J,MAAO,GACxB,CAAE4J,OAAQ,MAAO5J,MAAO,GACxB,CAAE4J,OAAQ,MAAO5J,MAAO,GACxB,CAAE4J,OAAQ,MAAO5J,MAAO,GACxB,CAAE4J,OAAQ,MAAO5J,MAAO,GACxB,CAAE4J,OAAQ,MAAO5J,MAAO,GACxB,CAAE4J,OAAQ,MAAO5J,MAAO,IACxB,CAAE4J,OAAQ,MAAO5J,MAAO,IACxB,CAAE4J,OAAQ,MAAO5J,MAAO,KAEzB,OACC,qBAAKzD,MAAO,CAAEmB,QAAS,GAAI,SAC1B,eAAC,IAAG,CAACmM,OAAQ,EAAE,UACd,cAAC,IAAG,UACH,cAAC,IAAM,CACNC,KAAK,QACLC,0BAA0B,EAC1BzN,UAAU,iBACVmI,SAAU,SAACuF,GACV,IAAMC,EAAMjK,EAAMiJ,QAAQM,KAAKE,SAASO,IACxCvF,EAASwF,EACV,EACAjK,MAAOkK,OAAOX,GAAM,SAEnBG,MAGH,cAAC,IAAG,UACH,cAAC,IAAM,CACNI,KAAK,QACLC,0BAA0B,EAC1B/J,MAAOzE,IAAOyE,GAAOF,OAAO,OAC5B2E,SAAU,SAAC0F,GACV,IAAInM,EAAS2L,EAAK3L,QAAO,SAAC9F,GAAM,OAAKA,EAAE0R,QAAUO,CAAa,IACxDC,EAAWpK,EAAMiJ,QACvBmB,EAAShB,MAAMK,UAAUzL,EAAO,GAAGgC,MAAQ,GAAGvE,WAAY,KAC1DgJ,EAAS2F,EACV,EAAE,SAEDrB,UAMP,EACAsB,eA5JkB,SAACrK,GACvB,IAAMwI,EAAYtL,EAASc,QAC1B,SAAC9F,GAAM,OAAKqD,IAAO2E,KAAKhI,EAAE0C,MAAMkF,OAAO,eAAiBvE,IAAOyE,GAAOF,OAAO,aAAa,IAE3F,OAAI0I,GAAaA,EAAU5K,OAAS,EAElC,qBAAKrB,MAAO,CAAE+F,SAAU,WAAYgI,KAAM,EAAGC,MAAO,EAAGxG,MAAO,GAAIC,OAAQ,GAAIwG,OAAQ,GAAI,SACzF,qBAAKjO,MAAO,CAAEwH,MAAO,GAAIC,OAAQ,GAAIyG,aAAc,MAAOC,WAAY,eAKlE,cAAC,IAAMjN,SAAQ,GACvB,EAgJKkN,OAAQA,IACR1R,KAAM,QACN2R,aA5LgB,SAACjC,GACrB,QAAKA,GAUED,GAAeC,EACvB,EAiLK7E,YAAY,EACZ+G,SAlJY,SAAC7K,GACjB,IAAMwI,EAAYtL,EAASc,QAC1B,SAAC9F,GAAM,OAAKqD,IAAO2E,KAAKhI,EAAE0C,MAAMkF,OAAO,eAAiBvE,IAAOyE,GAAOF,OAAO,aAAa,IAE3FqI,GAAgBnI,GAChB2H,EAASa,EACV,EA6IKjM,MAAO,CAAEwH,MAAO7I,OAAO4P,gBAGzB,sBAAKvO,MAAO,CAAEmB,QAAS,YAAa,UACnC,qBAAKnB,MAAO,CAAEwH,MAAO,OAAQgH,OAAQ,WAAYC,UAAW,UAAW,SACrEpD,EAAO,GAAMI,EAAW,GAAM,cAAC,IAAS,CACxCtB,SAhJDnL,IAAO2M,GAAcpI,OAAO,cAAgBvE,MAASuE,OAAO,eAIlC,GAA1BoI,EAAa+C,WAA4C,GAA1B/C,EAAa+C,UA6I3CvO,QAAS,WAER8K,EAAa,CACZjE,QAAQ,EACRmB,IAAKnJ,IAAO2M,GAAcpI,OAAO,cACjCxH,GAAI,GAEN,EACAmE,MAAM,UAAS,SACf,2BAKDiL,GAASA,EAAMhQ,KAAI,SAACmG,EAAWC,GAC/B,IAAIoN,EAAc3P,IAAO2E,KAAKrC,EAAKyI,aAC/B6E,EAAgB5P,MAEhB6P,GAAW,EAIf,OALSF,EAAYrF,KAAKsF,EAAe,QAEhC,KACRC,GAAW,GAGX,eAAC,IAAO,WACP,eAAC,IAAQ,CAAC9O,UAAU,gBAAe,UAClC,cAAC,IAAO,CAACG,MAAM,OAAM,SACpB,+BACElB,IAAO2E,KAAKrC,EAAKyI,aAAaxG,OAAO,SAAS,KAAG,IACjDvE,IAAO2E,KAAKrC,EAAKqJ,WAAWpH,OAAO,SAAU,SAGhD,4BAAG,oBAEHsL,GAAY,cAAC,IAAO,CAAC7N,KAAM8N,IAAe/N,KAAK,MAAMZ,QAAS,WAE9D8K,EAAa,CACZjE,QAAQ,EACRmB,IAAKnJ,IAAO2E,KAAKrC,EAAKjD,MAAMkF,OAAO,cACnCxH,GAAIuF,EAAKvF,IAEX,IACC8S,GACA,cAAC,IAAO,CACP7N,KAAM+N,IACN7O,MAAM,SACNa,KAAK,MACLZ,QAAS,WACRsI,GAAoB,CACnBmB,MAAM,EACN7N,GAAIuF,EAAKvF,IAEX,MA5BWwF,EAiChB,UAIF,eAAC,IAAQ,CAACyF,OAAQgE,EAAUhE,OAAQE,SAAS,kBAAiB,UAC7D,cAAC,IAAS,UACT,eAAC,IAAU,WACV,cAAC,IAAU,CAACnG,KAAK,QAAO,SACvB,cAAC,IAAS,CACTZ,QAAS,WACR8K,EAAa,CACZjE,QAAQ,EACRmB,IAAK,GACLpM,GAAI,GAEN,EAAE,SACF,aAIF,cAAC,IAAQ,UAAC,0BAGZ,cAAC,IAAU,CAACiE,MAAO,CAAEmB,QAAS,IAAK,SAClC,cAAC,EAAU,CAAC6F,OAAQgE,EAAUhE,OAAQiB,WAAYsD,EAAYpD,IAAK6C,EAAU7C,IAAKE,OAAQ/H,EAASG,KAAM2H,aAAc2C,EAAYhP,GAAIiP,EAAUjP,GAAImM,SAAU,WAC9J+C,EAAa,CACZjE,QAAQ,EACRmB,IAAK,GACLpM,GAAI,IAELsJ,IAAe,GACf2J,YAAW,WACVnD,GAAyB,UAC1B,GAAG,IACJ,SAIF,cAAC,IAAQ,CACR7E,OAAQwB,GAAiBoB,KACzBQ,iBAAiB,EACjBlD,SAAS,kBACTmD,OAAQ,OACR3K,QAAS,8BACToG,QAAS,CACR,CACCqB,KAAM,KACNE,KAAM,SACNH,SAAU,YACVE,QAAS,SAACkD,GACT7B,GAAoB,CACnBmB,MAAM,EACN7N,GAAI,GAEN,GAED,CACCoL,KAAM,KACNC,QAAS,WAxPY,IAACrL,IAyPHyM,GAAiBzM,GAxPxCsJ,IAAe,GACfzH,EAAkBL,EAAgC,CAAExB,GAAIA,IAAML,MAAK,SAAC8D,GACnE,IAAIM,EAAM,yCACV,GAAIN,GAAOA,GAAqB,KAAdA,EAAIlB,OAAe,CACpC,IAAI2L,EAAYkB,EAAMlB,WAAU,SAACtO,GAAM,OAAKA,EAAEI,IAAMA,CAAE,IAClDkT,EAAiB9D,EAAMlB,WAAU,SAACtO,GAAM,OAAKA,EAAEI,IAAMA,CAAE,IAC3DoP,EAAM+D,OAAOjF,EAAW,GACxBkB,EAAM+D,OAAOD,EAAgB,GAC7B7D,EAASD,GACTrL,EAAM,4BACP,CACAuF,IAAe,GACfI,EAAQ,CACPK,QAAS,GACTpG,QAASI,EACTiG,SAAU,SACVC,SAAU,MAEZ,IAuOKyC,GAAoB,CACnBmB,MAAM,EACN7N,GAAI,GAEN,MAKH,cAAC,IAAU,CACVmL,SAAS,kBACTF,OAAQ5B,GACR6B,aAAc,kBAAM5B,IAAe,EAAM,EACzC3F,QAAS,OAIb,ECrZeyP,I,cARkB,WAC7B,OACI,qBAAKpP,UAAU,YAAW,SACtB,cAAC,IAAU,KAGvB,GCmEeqP,GA1DiB,WAC/B,MAA4BtE,cAAtBjJ,EAAK,EAALA,MAAOkJ,EAAU,EAAVA,WAEb,EAAgCnL,IAAMuF,SAAqB,IAAG,mBAAvDxE,EAAQ,KAAEuK,EAAW,KAC5B,EAA8BtL,IAAMuF,UAAkB,GAAK,mBAApD2G,EAAO,KAAEuD,EAAU,KAC1BzP,IAAMiI,WAAU,WACXhG,GAASkJ,GACZc,GAEF,GAAG,IAEH,IAAMA,EAAwB,iDAAG,wFAChCjO,EAAkBF,EAAyB,CAAEgE,cAAeqJ,IAAcrP,MAAK,SAAC8D,GAC/E,IAAIA,GAAqB,KAAdA,EAAIlB,OAad,OADAK,OAAOoN,QAAQC,QACR,EAZP,IAAKxM,EAAI+L,WAER,OADA5M,OAAOoN,QAAQC,QACR,EAER,IAAIsD,EAAiB,IAAIC,MACrB/P,EAAImB,UAAYnB,EAAImB,SAASU,OAAS,IACzCiO,EAAY9P,EAAImB,SAASkJ,MAAK,SAAC9G,EAAQC,GAAM,OAAMD,EAAE1E,KAAO2E,EAAE3E,KAAQ,EAAM2E,EAAE3E,KAAO0E,EAAE1E,MAAS,EAAI,CAAE,KAEvGgR,GAAW,GACXnE,EAAYoE,EAKd,IAAE,2CACF,kBAlB6B,mCAoB9B,OACC,eAAC,IAAO,CAACvT,GAAG,eAAc,UACzB,cAAC,IAAS,UACT,eAAC,IAAU,WACV,cAAC,IAAU,CAACgF,KAAK,QAAO,SACvB,cAAC,IAAa,CAACoG,KAAK,GAAGmF,YAAY,kBAEpC,cAAC,IAAQ,UAAC,6BAGZ,eAAC,IAAU,WACTR,GAA8B,GAAnBnL,EAASU,QAAe,cAAC,GAAc,KACjDyK,GAAWnL,GAAYA,EAASxF,KAAI,SAACmG,EAAMC,GAC5C,OAAO,cAAC,IAAO,UACd,eAAC,IAAQ,CAACxB,UAAU,gBAAe,UAClC,cAAC,IAAO,CAACG,MAAM,OAAM,SACpB,+BAAKlB,IAAO2E,KAAKrC,EAAKyI,aAAaxG,OAAO,SAAS,MAAIvE,IAAO2E,KAAKrC,EAAKyI,aAAaxG,OAAO,cAE7F,4BAAIvE,IAAO2E,KAAKrC,EAAKjD,MAAMkF,OAAO,qBALfhC,EAQtB,SAIJ,EC7EaiO,I,OAAiB,SAAH,OAAMhI,EAAK,EAALA,MAAOC,EAAM,EAANA,OAAM,OAAQ,sBAAKgI,MAAM,6BAA6B1P,UAAU,8CAA8CyH,MAAOA,EAAOC,OAAQA,EAAQiI,QAAQ,YAAYC,YAAY,MAAMC,OAAO,UAAU9I,KAAK,OAAO+I,cAAc,QAAQC,eAAe,QAAO,UACjS,sBAAMF,OAAO,OAAOG,EAAE,gBAAgBjJ,KAAK,SAC3C,sBAAMkJ,EAAE,IAAIC,EAAE,IAAIzI,MAAM,KAAKC,OAAO,KAAKyI,GAAG,MAC5C,sBAAMC,GAAG,KAAKC,GAAG,IAAIC,GAAG,KAAKC,GAAG,MAChC,sBAAMH,GAAG,IAAIC,GAAG,IAAIC,GAAG,IAAIC,GAAG,MAC9B,sBAAMH,GAAG,IAAIC,GAAG,KAAKC,GAAG,KAAKC,GAAG,OAChC,sBAAMN,EAAE,IAAIC,EAAE,KAAKzI,MAAM,IAAIC,OAAO,QAChC,GAEO8I,GAAgB,SAAH,OAAM/I,EAAK,EAALA,MAAOC,EAAM,EAANA,OAAM,OAAQ,sBAAKgI,MAAM,6BAA6B1P,UAAU,6CAA6CyH,MAAOA,EAAOC,OAAQA,EAAQiI,QAAQ,YAAYC,YAAY,MAAMC,OAAO,UAAU9I,KAAK,OAAO+I,cAAc,QAAQC,eAAe,QAAO,UAC/R,sBAAMF,OAAO,OAAOG,EAAE,gBAAgBjJ,KAAK,SAC3C,sBAAMiJ,EAAE,2BACR,sBAAMA,EAAE,sBACJ,EAEOS,GAAqB,SAAH,OAAMhJ,EAAK,EAALA,MAAOC,EAAM,EAANA,OAAM,OAAQ,sBAAKgI,MAAM,6BAA6B1P,UAAU,6CAA6CyH,MAAOA,EAAOC,OAAQA,EAAQiI,QAAQ,YAAYC,YAAY,MAAMC,OAAO,UAAU9I,KAAK,OAAO+I,cAAc,QAAQC,eAAe,QAAO,UACpS,sBAAMF,OAAO,OAAOG,EAAE,gBAAgBjJ,KAAK,SAC3C,wBAAQ2J,GAAG,IAAIC,GAAG,KAAKC,EAAE,MACzB,wBAAQF,GAAG,KAAKC,GAAG,KAAKC,EAAE,MAC1B,sBAAMZ,EAAE,2EACJ,EAEOa,GAAsB,SAAH,OAAMpJ,EAAK,EAALA,MAAOC,EAAM,EAANA,OAAM,OAAQ,sBAAKgI,MAAM,6BAA6B1P,UAAU,6CAA6CyH,MAAOA,EAAOC,OAAQA,EAAQiI,QAAQ,YAAYC,YAAY,MAAMC,OAAO,UAAU9I,KAAK,OAAO+I,cAAc,QAAQC,eAAe,QAAO,UACrS,sBAAMF,OAAO,OAAOG,EAAE,gBAAgBjJ,KAAK,SAC3C,sBAAMiJ,EAAE,0FACR,sBAAMI,GAAG,KAAKC,GAAG,IAAIC,GAAG,KAAKC,GAAG,MAChC,sBAAMH,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,SAC7B,EAGOO,GAAW,SAAH,OAAMrJ,EAAK,EAALA,MAAOC,EAAM,EAANA,OAAM,OAAQ,sBAAKgI,MAAM,6BAA6B1P,UAAU,6CAA6CyH,MAAOA,EAAOC,OAAQA,EAAQiI,QAAQ,YAAYC,YAAY,MAAMC,OAAO,UAAU9I,KAAK,OAAO+I,cAAc,QAAQC,eAAe,QAAO,UAC1R,sBAAMF,OAAO,OAAOG,EAAE,gBAAgBjJ,KAAK,SAC3C,sBAAMiJ,EAAE,6DACR,sBAAMA,EAAE,8DACJ,EAEOe,GAAW,SAAH,OAAMtJ,EAAK,EAALA,MAAOC,EAAM,EAANA,OAAM,OAAQ,sBAAKgI,MAAM,6BAA6B1P,UAAU,6CAA6CyH,MAAOA,EAAOC,OAAQA,EAAQiI,QAAQ,YAAYC,YAAY,MAAMC,OAAO,UAAU9I,KAAK,OAAO+I,cAAc,QAAQC,eAAe,QAAO,UAC1R,sBAAMF,OAAO,OAAOG,EAAE,gBAAgBjJ,KAAK,SAC3C,wBAAQ2J,GAAG,IAAIC,GAAG,IAAIC,EAAE,MACxB,wBAAQF,GAAG,IAAIC,GAAG,KAAKC,EAAE,MACzB,wBAAQF,GAAG,IAAIC,GAAG,KAAKC,EAAE,MACzB,wBAAQF,GAAG,KAAKC,GAAG,IAAIC,EAAE,MACzB,wBAAQF,GAAG,KAAKC,GAAG,KAAKC,EAAE,MAC1B,wBAAQF,GAAG,KAAKC,GAAG,KAAKC,EAAE,QACtB,EAGOI,GAAiB,SAAH,OAAMvJ,EAAK,EAALA,MAAOC,EAAM,EAANA,OAAM,OAAQ,sBAAKgI,MAAM,6BAA6B1P,UAAU,sCAAsCyH,MAAOA,EAAOC,OAAQA,EAAQiI,QAAQ,YAAYC,YAAY,MAAMC,OAAO,UAAU9I,KAAK,OAAO+I,cAAc,QAAQC,eAAe,QAAO,UACzR,sBAAMF,OAAO,OAAOG,EAAE,gBAAgBjJ,KAAK,SAC3C,sBAAMkJ,EAAE,IAAIC,EAAE,IAAIzI,MAAM,IAAIC,OAAO,IAAIyI,GAAG,MAC1C,sBAAMC,GAAG,IAAIC,GAAG,KAAKC,GAAG,IAAIC,GAAG,UAC/B,sBAAMN,EAAE,KAAKC,EAAE,IAAIzI,MAAM,IAAIC,OAAO,IAAIyI,GAAG,MAC3C,sBAAMC,GAAG,IAAIC,GAAG,IAAIC,GAAG,IAAIC,GAAG,SAC9B,sBAAMN,EAAE,IAAIC,EAAE,KAAKzI,MAAM,IAAIC,OAAO,IAAIyI,GAAG,MAC3C,sBAAMC,GAAG,KAAKC,GAAG,IAAIC,GAAG,KAAKC,GAAG,SAChC,sBAAMH,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,OACjC,sBAAMH,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,UACjC,sBAAMH,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,OACjC,sBAAMH,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,OACjC,sBAAMH,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,OACjC,sBAAMH,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,SAC7B,EAEOU,GAAY,SAAH,OAAMxJ,EAAK,EAALA,MAAOC,EAAM,EAANA,OAAM,OAAQ,sBAAKgI,MAAM,6BAA6B1P,UAAU,qCAAqCyH,MAAOA,EAAOC,OAAQA,EAAQiI,QAAQ,YAAYC,YAAY,MAAMC,OAAO,UAAU9I,KAAK,OAAO+I,cAAc,QAAQC,eAAe,QAAO,UACnR,sBAAMF,OAAO,OAAOG,EAAE,gBAAgBjJ,KAAK,SAC3C,wBAAQ2J,GAAG,IAAIC,GAAG,IAAIC,EAAE,MACxB,sBAAMZ,EAAE,8CACR,sBAAMA,EAAE,8BACR,sBAAMA,EAAE,mCACJ,EAEOkB,GAAY,SAAH,OAAMzJ,EAAK,EAALA,MAAOC,EAAM,EAANA,OAAM,OAAQ,sBAAKgI,MAAM,6BAA6B1P,UAAU,qCAAqCyH,MAAOA,EAAOC,OAAQA,EAAQiI,QAAQ,YAAYC,YAAY,MAAMC,OAAO,UAAU9I,KAAK,OAAO+I,cAAc,QAAQC,eAAe,QAAO,UACrR,sBAAMF,OAAO,OAAOG,EAAE,gBAAgBjJ,KAAK,SAC3C,wBAAQ2J,GAAG,KAAKC,GAAG,KAAKC,EAAE,MAC1B,0BAAUO,OAAO,uBACX,ECiHSC,GAhKc,WAC5B,MAAmCvR,IAAMW,WAAWZ,GAA5CyR,EAAY,EAAZA,aACFxS,GADwB,EAAR0B,SACLqH,eAEjB,EAAyCnH,mBACxC,iBAAgB,gCAChB,8GACiB5C,EfYW,kBeZuB,CAAC,GAAG,KAAD,EAA9C,KAAH4B,EAAG,SACkB,KAAdA,EAAIlB,OAAa,gBACE,OAA7B8S,EAAa5R,EAAI6R,YAAY,kBACtB7R,GAAG,aAEL,IAAI5D,MAAM4D,EAAIlB,OAAS,IAAMkB,EAAInB,MAAM,KAAD,sCAE7C,CACCyC,MAAO,IAXDxC,EAAM,EAANA,OAAQD,EAAI,EAAJA,KAAMrB,EAAK,EAALA,MAAOsU,EAAO,EAAPA,QAgB7B1R,IAAMiI,WAAU,WAIf,MAHe,YAAXvJ,GAA6C,YAArBM,EAASsD,UACpCoP,IAEM,WAAQ,CAChB,GAAG,CAAC1S,IA+EJ,OACC,eAAC,IAAO,WACP,cAAC,IAAS,UACT,eAAC,IAAU,WACV,cAAC,IAAU,CAACmC,KAAK,QAAO,SACvB,cAAC,IAAa,UACb,cAAC,IAAS,UACT,cAAC,IAAO,CAACC,KAAMC,IAAMf,MAAM,oBAI9B,cAAC,IAAQ,UAAC,6BAGZ,cAAC,IAAU,UAEV,eAAC,IAAM,WACN,cAAC,IAAM,CAACqN,KAAK,IAAG,SACf,qBAAKxN,UAAU,iBAAgB,SAC9B,eAAC,IAAI,CACJkC,GAAI,CACHC,SAAU,cACVE,MAAO,CAAC,GACP,UAEF,qBAAKrC,UAAU,oBAAmB,SACjC,cAAC,GAAc,CAACyH,MAAO,GAAIC,OAAQ,OAGpC,6BAAI,4BAIP,cAAC,IAAM,CAAC8F,KAAK,IAAG,SACf,qBAAKxN,UAAU,iBAAgB,SAC9B,eAAC,IAAI,CACJkC,GAAI,CACHC,SAAU,SACVE,MAAO,CAAC,GACP,UAEF,qBAAKrC,UAAU,oBAAmB,SACjC,cAAC,GAAa,CAACyH,MAAO,GAAIC,OAAQ,OAEnC,6BAAI,qBAvHK,YAAXnJ,EACI,cAAC,GAAc,IAER,UAAXA,EACI,cAAC,EAAgB,CAACwB,IAAK,mBAAqB9C,EAAM0C,UAG3C,YAAXpB,EAEF,eAAC,IAAM4C,SAAQ,WACb7C,EAAKgT,YAAc,cAAC,IAAM,CAAC9D,KAAK,IAAG,SACnC,qBAAKxN,UAAU,iBAAgB,SAC9B,eAAC,IAAI,CACJkC,GAAI,CACHC,SAAU,4BACVE,MAAO,CAAC,GACP,UAEF,qBAAKrC,UAAU,oBAAmB,SACjC,cAAC,GAAQ,CAACyH,MAAO,GAAIC,OAAQ,OAG9B,6BAAI,kCAINpJ,EAAKkT,sBAAwB,cAAC,IAAM,CAAChE,KAAK,IAAG,SAC7C,qBAAKxN,UAAU,iBAAgB,SAC9B,eAAC,IAAI,CACJkC,GAAI,CACHC,SAAU,gCACVE,MAAO,CAAC,GACP,UAEF,qBAAKrC,UAAU,oBAAmB,SACjC,cAAC,GAAkB,CAACyH,MAAO,GAAIC,OAAQ,OAGxC,6BAAI,2BAINpJ,EAAKmT,sBAAwB,cAAC,IAAM,CAACjE,KAAK,IAAG,SAC7C,qBAAKxN,UAAU,iBAAgB,SAC9B,eAAC,IAAI,CACJkC,GAAI,CACHC,SAAU,iCACVE,MAAO,CAAC,GACP,UAEF,qBAAKrC,UAAU,oBAAmB,SACjC,cAAC,GAAmB,CAACyH,MAAO,GAAIC,OAAQ,OAEzC,6BAAI,4BAINpJ,EAAKoT,MAAMtW,KAAI,SAACuW,EAAUnQ,GAC1B,OAAO,cAAC,IAAM,CAAagM,KAAK,IAAG,SAClC,qBAAKxN,UAAU,iBAAgB,SAC9B,oBAAGlB,KAAM6S,EAAI7T,KAAMuG,OAAO,SAAQ,UACjC,qBAAKrE,UAAU,oBAAmB,SACjC,cAAC,GAAQ,CAACyH,MAAO,GAAIC,OAAQ,OAE9B,6BAAKiK,EAAIrE,eANQ9L,EAUrB,OAII,cAAC,IAAML,SAAQ,WAyDxB,EClDeyQ,I,OA1GgB,WAC9B,MAAyB7G,cAAnB8G,EAAI,EAAJA,KAAMC,EAAQ,EAARA,SAGZ,EAAgCrR,mBAC/B,gBAAe,gCACf,iGACM,CAAC,QAAS,UAAUsR,SAASF,GAAM,CAAD,qBAChC,IAAIhW,MAAM,SAAS,KAAD,kBAETgC,EhBQU,iBgBRuB,CAAEgU,KAAMA,EAAMC,SAAUA,IAAY,KAAD,EAA7E,KAAHrS,EAAG,SACkB,KAAdA,EAAIlB,OAAa,yCAMpBkB,EAAIiS,OAAS,IAAE,aAEjB,IAAI7V,MAAM4D,EAAIlB,OAAS,IAAMkB,EAAInB,MAAM,KAAD,sCAE7C,CACCyC,MAAO,IAlBDxC,EAAM,EAANA,OAAQD,EAAI,EAAJA,KAAMrB,EAAK,EAALA,MAsBhB+U,EAAW,SAAH,OAAM1E,EAAM,EAANA,OAAY,EAAJxP,KAAI,OAAa,eAAC,IAAa,WAC1D,cAAC,IAAe,UACf,cAAC,IAAO,CAACmD,KAAMgR,IAAUjR,KAAK,YAE/B,cAAC,IAAY,UAAEsM,GAAU,OAEV,EAyDhB,OACC,eAAC,IAAO,WACP,cAAC,IAAS,UACT,eAAC,IAAU,WACV,cAAC,IAAU,CAACtM,KAAK,QAAO,SACvB,cAAC,IAAU,CAACA,KAAK,QAAO,SACvB,cAAC,IAAa,CAACoG,KAAK,GAAGmF,YAAY,iBAGrC,cAAC,IAAQ,UAAU,SAARsF,EAAkB,kBAAoB,0BAGnD,cAAC,IAAU,UAjEG,YAAXtT,EACI,cAAC,GAAc,IAER,UAAXA,EACI,cAAC,EAAgB,CAACwB,IAAK,mBAAqB9C,EAAM0C,UAG3C,YAAXpB,EAEF,eAAC,IAAM4C,SAAQ,WACb7C,EAAKgD,OAAS,GAAK,oBAAIrB,MAAO,CAAEyO,UAAW,SAAUtN,QAAS,UAAWjB,MAAO,WAAY,SAAE7B,EAAK,GAAG4T,kBACtG5T,EAAKlD,KAAI,SAACmG,EAAWC,GACrB,OAAID,EAAK4Q,MACD,eAAC,IAAO,WACd,qBAAKnS,UAAU,mBAAkB,SAChC,wBAAQyH,MAAM,OAAOC,OAAO,MAAMlB,IAAKjF,EAAK4Q,MAAOC,MAAM,mBAAmBC,YAAY,IAAIC,MAAM,2FAA2FC,iBAAe,MAE7M,cAACP,EAAQ,CAAC1E,OAAQ/L,EAAK+L,OAAQxP,KAAMyD,EAAKzD,OACzCyD,EAAKzD,MAAQ,cAAC,IAAc,CAACmC,MAAO,CAAEyO,UAAW,UAAW,SAC5D,cAAC,IAAS,CAAC5P,KAAMyC,EAAKzD,KAAMuG,OAAO,SAAS0C,KAAK,UAAU/F,KAAK,QAAO,SAAC,mBANrDQ,GAUlBD,EAAKiR,SACD,eAAC,IAAO,WACd,qBAAKxS,UAAU,mBAAkB,SAChC,qBAAKwG,IAAKjF,EAAKiR,aAEhB,cAACR,EAAQ,CAAC1E,OAAQ/L,EAAK+L,OAAQxP,KAAMyD,EAAKzD,OACzCyD,EAAKzD,MAAQ,cAAC,IAAc,CAACmC,MAAO,CAAEyO,UAAW,UAAW,SAC5D,cAAC,IAAS,CAAC5P,KAAMyC,EAAKzD,KAAMuG,OAAO,SAAS0C,KAAK,UAAU/F,KAAK,QAAO,SAAC,mBANrDQ,GAUlBD,EAAKzD,KACD,cAAC,IAAO,UAEd,eAAC,IAAc,WACbyD,EAAK+L,QAAU,GAChB,uBACC/L,EAAKzD,MAAQ,cAAC,IAAS,CAACgB,KAAMyC,EAAKzD,KAAMuG,OAAO,SAAS0C,KAAK,UAAU/F,KAAK,QAAO,SAAC,oBAIlF,cAAC,IAAMG,SAAQ,GACvB,OAKI,cAAC,IAAMA,SAAQ,QAkBxB,GCqMesR,I,OA3S8B,WAC5C,IAAQlS,EAAaV,IAAMW,WAAWZ,GAA9BW,SAER,EAAkBkF,cAAXC,EAAwB,iBAAjB,GACd,EAAuBgN,cAAhBC,EAA6B,iBAAjB,GACnB,EAAgC9S,IAAMuF,SAAoB,IAAG,mBAAtDxE,EAAQ,KAAEuK,EAAW,KAC5B,EAAwCtL,IAAMuF,SAAoB,IAAG,mBAA9DwN,EAAY,KAAEC,EAAe,KACpC,EAAsChT,IAAMuF,UAAS,GAAM,mBAApDC,EAAW,KAAEC,EAAc,KAClC,EAA0BzF,IAAMuF,SAAoB,IAAG,mBAAhDgG,EAAK,KAAEC,EAAQ,KACtB,EAAwCxL,IAAMuF,SAASnG,OAAS,mBAAzD2M,EAAY,KAAEC,EAAe,KAEpChM,IAAMiI,WAAU,WACfgE,GAAyB,EAAO7M,MAASuE,OAAO,cACjD,GAAG,IACH,IAAMsI,EAAwB,iDAAG,WAAOC,EAAkBzN,GAAY,2EACrET,EjBWiC,4BiBXM,CAAES,KAAMA,IAAQ3C,MAAK,SAAC8D,GAC5D,IAAIA,GAAqB,KAAdA,EAAIlB,OAWd,OADAK,OAAOoN,QAAQC,QACR,EATP,IAAMC,EAAYzM,EAAIkJ,MAAMjH,QAC3B,SAAC9F,GAAM,OAAKqD,IAAOrD,EAAE0C,MAAMkF,OAAO,eAAiBvE,IAAO2M,GAAcpI,OAAO,aAAa,IAG7F6H,EAASa,GACTf,EAAY1L,EAAIkJ,OAChBkK,EAAgBpT,EAAIqT,YAKjB/G,GACHzG,GAAe,EAEjB,IAAE,2CACF,gBAnB6B,wCA6ExByN,EAAgB,SAAC/W,GACtBsJ,GAAe,GACfzH,EjBlE6B,mBiBkEM,CAAE6C,KAAMH,EAASG,KAAM4Q,WAAYtV,IAAML,MAAK,SAAC8D,GAC7EA,GAAqB,KAAdA,EAAIlB,QACduN,GAAyB,EAAM7M,MAASuE,OAAO,eAC/CyL,YAAW,WACVvJ,EAAQ,CACPK,QAAS,GACTpG,QAAS,6BACTqG,SAAU,SACVC,SAAU,MAEZ,GAAG,OAEHX,GAAe,GACfI,EAAQ,CACPK,QAAS,GACTpG,QAAS,sCACTqG,SAAU,SACVC,SAAU,OAGb,GAED,EAiBM+M,EAAkB,SAAChX,GACxBsJ,GAAe,GACfzH,EjB1GgC,sBiB0GM,CAAE6C,KAAMH,EAASG,KAAM4Q,WAAYtV,IAAML,MAAK,SAAC8D,GAEhFA,GAAqB,KAAdA,EAAIlB,QACduN,GAAyB,EAAM7M,MAASuE,OAAO,eAC/CyL,YAAW,WACVvJ,EAAQ,CACPK,QAAS,GACTpG,QAAS,6BACTqG,SAAU,SACVC,SAAU,MAEZ,GAAG,OAEHX,GAAe,GACfI,EAAQ,CACPK,QAAS,GACTpG,QAAS,sCACTqG,SAAU,SACVC,SAAU,OAGb,GAED,EAGA,OACC,eAAC,IAAO,CAACjK,GAAG,eAAc,UACzB,cAAC,IAAS,UACT,eAAC,IAAU,WACV,cAAC,IAAU,CAACgF,KAAK,QAAO,SACvB,cAAC,IAAa,CAACoG,KAAK,GAAGmF,YAAY,eAEpC,cAAC,IAAQ,UAAC,yBAGZ,eAAC,IAAU,WACV,qBAAKvM,UAAU,0BAAyB,SACvC,cAAC,IAAQ,CACR0D,MAAOkI,EACPY,aAAc,YAQb,IAR2D,IAA3C9I,EAAK,EAALA,MAAayE,GAAF,EAAJ7B,KAAc,EAAR6B,UAGvBsE,GAH6C,EAAZC,aAGlB,IAEfL,EAAU3I,EAAMiJ,QAChBC,EAAalJ,EAAMkJ,aACnBC,EAAS,GACNvJ,EAAI,EAAGA,EAAI,GAAIA,IACvB+I,EAAQS,MAAMxJ,GACduJ,EAAOtJ,KAAKqJ,EAAWG,YAAYV,IAGpC,IAAK,IAAI7K,EAZK,EAYUA,EAXZ,GAWyBA,IACpCiL,EAAalJ,KACZ,cAAC,IAAOyJ,OAAM,CAAChN,UAAU,aAAa0D,MAAOmJ,EAAOrL,GAAO,SACzDqL,EAAOrL,IAAM,UADqDA,KAKxDkC,EAAMoJ,QAKpB,IALA,IAEMG,EAAOvJ,EAAMuJ,OACbC,EAAQC,SAASlO,MAASuE,OAAO,SACjC4J,EAAU,GACP9J,EAAI4J,EAAO5J,EAAI4J,EAAQ,EAAG5J,GAAK,EACvC8J,EAAQ7J,KACP,cAAC,IAAOyJ,OAAM,CAAStJ,MAAOJ,EAAGtD,UAAU,YAAW,SACpDsD,GADkBA,IAKtB,IAAM+J,EAAO,CACZ,CAAEC,OAAQ,MAAO5J,MAAO,GACxB,CAAE4J,OAAQ,MAAO5J,MAAO,GACxB,CAAE4J,OAAQ,MAAO5J,MAAO,GACxB,CAAE4J,OAAQ,MAAO5J,MAAO,GACxB,CAAE4J,OAAQ,MAAO5J,MAAO,GACxB,CAAE4J,OAAQ,MAAO5J,MAAO,GACxB,CAAE4J,OAAQ,MAAO5J,MAAO,GACxB,CAAE4J,OAAQ,MAAO5J,MAAO,GACxB,CAAE4J,OAAQ,MAAO5J,MAAO,GACxB,CAAE4J,OAAQ,MAAO5J,MAAO,IACxB,CAAE4J,OAAQ,MAAO5J,MAAO,IACxB,CAAE4J,OAAQ,MAAO5J,MAAO,KAEzB,OACC,qBAAKzD,MAAO,CAAEmB,QAAS,GAAI,SAC1B,eAAC,IAAG,CAACmM,OAAQ,EAAE,UACd,cAAC,IAAG,UACH,cAAC,IAAM,CACNC,KAAK,QACLC,0BAA0B,EAC1BzN,UAAU,iBACVmI,SAAU,SAACuF,GACV,IAAMC,EAAMjK,EAAMiJ,QAAQM,KAAKE,SAASO,IACxCvF,EAASwF,EACV,EACAjK,MAAOkK,OAAOX,GAAM,SAEnBG,MAGH,cAAC,IAAG,UACH,cAAC,IAAM,CACNI,KAAK,QACLC,0BAA0B,EAC1B/J,MAAOzE,IAAOyE,GAAOF,OAAO,OAC5B2E,SAAU,SAAC0F,GACV,IAAInM,EAAS2L,EAAK3L,QAAO,SAAC9F,GAAM,OAAKA,EAAE0R,QAAUO,CAAa,IACxDC,EAAWpK,EAAMiJ,QACvBmB,EAAShB,MAAMK,UAAUzL,EAAO,GAAGgC,MAAQ,GAAGvE,WAAY,KAC1DgJ,EAAS2F,EACV,EAAE,SAEDrB,UAMP,EACAsB,eAtNkB,SAACrK,GACvB,IAAMwI,EAAYtL,EAASc,QAC1B,SAAC9F,GAAM,OAAKqD,IAAOrD,EAAE0C,MAAMkF,OAAO,eAAiBvE,IAAOyE,GAAOF,OAAO,aAAa,IAUtF,OAAI0I,GAAaA,EAAU5K,OAAS,EAElC,qBAAKrB,MAAO,CAAE+F,SAAU,WAAYgI,KAAM,EAAGC,MAAO,EAAGxG,MAAO,GAAIC,OAAQ,GAAIwG,OAAQ,GAAI,SACzF,qBAAKjO,MAAO,CAAEwH,MAAO,GAAIC,OAAQ,GAAIyG,aAAc,MAAOC,WAAY,eAKlE,cAAC,IAAMjN,SAAQ,GACvB,EAkMKkN,OAAQA,IACR1R,KAAM,QACN2R,aAhOgB,SAACjC,GACrB,OAAIpN,IAAOoN,GAAS7I,OAAO,cAAgBvE,MAASuE,OAAO,aAI5D,EA4NKgE,YAAY,EACZ+G,SApMY,SAAC7K,GACjB,IAAMwI,EAAYtL,EAASc,QAC1B,SAAC9F,GAAM,OAAKqD,IAAOrD,EAAE0C,MAAMkF,OAAO,eAAiBvE,IAAOyE,GAAOF,OAAO,aAAa,IAEtFqI,EAAgBnI,GAChB2H,EAASa,EACV,EA+LKjM,MAAO,CAAEwH,MAAO7I,OAAO4P,gBAGxBpD,GAASA,EAAMhQ,KAAI,SAACmG,EAAWC,GAC/B,IAAIyR,GAAY,EACZL,EAAatR,OAAS,IACPsR,EAAa1I,WAAU,SAACtO,GAAM,OAAKA,EAAEsX,wBAA0B3R,EAAKvF,EAAE,KACvE,IAChBiX,GAAY,IAId,OACC,eAAC,IAAO,WACP,eAAC,IAAQ,CAACjT,UAAU,gBAAe,UAClC,cAAC,IAAO,CAACG,MAAM,OAAM,SACpB,6BAAKlB,IAAOsC,EAAKjD,MAAMkF,OAAO,eAAiB,IAAMjC,EAAK6H,eAE3D,8BAAG,sBAAoB7H,EAAK4R,MAAQ5R,EAAK6R,cAGvC7R,EAAK4R,MAAQ5R,EAAK6R,UAAaH,GAAc,cAAC,IAAS,CAAClM,KAAK,UAAU/F,KAAK,MAAMb,MAAM,WAAWC,QAAS,WAlNjG,IAACpE,IAkNoHuF,EAAKvF,GAhN7I2W,EAAa,CACZxL,SAAU,GACVmD,OAAQ,wBACR3K,QAAS,iCACToG,QAAS,CACR,SACA,CACCqB,KAAM,KAAMC,QAAS,SAAC2I,GACrB+C,EAAc/W,EACf,KAuM8I,EAAE,SAAC,YAC7IiX,GAAc,cAAC,IAAS,CAAClM,KAAK,UAAU/F,KAAK,MAAMb,MAAM,SAASC,QAAS,WAvKvD,IAACpE,IAuKkFuF,EAAKvF,GAtKnH2W,EAAa,CACZxL,SAAU,GACVmD,OAAQ,UACR3K,QAAS,kCACToG,QAAS,CACR,SACA,CACCqB,KAAM,KAAMC,QAAS,SAAC2I,GACrBgD,EAAgBhX,EACjB,KA6JoH,EAAE,SAAC,gBATxGwF,EAYhB,OAED,cAAC,IAAU,CACV2F,SAAS,kBACTF,OAAQ5B,EACR6B,aAAc,kBAAM5B,GAAe,EAAM,EACzC3F,QAAS,OAIb,GCzOe0T,GA1EwB,WACtC,IAAMxB,EAAS9G,cAAT8G,KACA7F,EAAUsH,cAGhB,EAAgC7S,mBAC/B,yBAAwB,gCACxB,iGACM,CAAC,QAAS,UAAUsR,SAASF,GAAM,CAAD,qBAChC,IAAIhW,MAAM,SAAS,KAAD,kBAGTgC,ElB2BmB,0BkB3BuB,CAAEgU,KAAMA,IAAQ,KAAD,EAAlE,KAAHpS,EAAG,SACkB,KAAdA,EAAIlB,OAAa,yCAEpBkB,EAAI8T,UAAY,IAAE,aAEpB,IAAI1X,MAAM4D,EAAIlB,OAAS,IAAMkB,EAAInB,MAAM,KAAD,sCAE7C,CACCyC,MAAO,IAfDxC,EAAM,EAANA,OAAQD,EAAI,EAAJA,KAAMrB,EAAK,EAALA,MAoDtB,OACC,eAAC,IAAO,WACP,cAAC,IAAS,UACT,eAAC,IAAU,WACV,cAAC,IAAU,CAAC+D,KAAK,QAAO,SACvB,cAAC,IAAU,CAACA,KAAK,QAAO,SACvB,cAAC,IAAa,CAACoG,KAAK,GAAGmF,YAAY,iBAGrC,cAAC,IAAQ,UAAU,SAARsF,EAAkB,kBAAoB,0BAGnD,cAAC,IAAU,UA3CG,YAAXtT,EACI,cAAC,GAAc,IAER,UAAXA,EACI,cAAC,EAAgB,CAACwB,IAAK,mBAAqB9C,EAAM0C,UAG3C,YAAXpB,EAEF,cAAC,IAAM4C,SAAQ,UACb7C,EAAKlD,KAAI,SAACmG,EAAWC,GACrB,OAAO,cAAC,IAAO,UACd,cAAC,IAAO,CAACsF,QAAM,EAAC1G,QAAS,WACxB4L,EAAQzI,KAAK,CACZpB,SAAU,kBAAoB0P,EAAO,IAAMtQ,EAAKvF,GAAGmD,WACnDkD,MAAO,CAAC,GAEV,EAAGsE,QAAM,WACR,cAAC,IAAQ,UACPpF,EAAK+L,YARY9L,EAYtB,MAKI,cAAC,IAAML,SAAQ,QAkBxB,ECwBeqS,I,OA1FwB,WACtC,MAAmC3T,IAAMW,WAAWZ,GAAhC,EAAZyR,aAAsB,EAAR9Q,SACLqH,cAGjB,OACC,eAAC,IAAO,WACP,cAAC,IAAS,UACT,eAAC,IAAU,WACV,cAAC,IAAU,CAAC5G,KAAK,QAAO,SACvB,cAAC,IAAa,UACb,cAAC,IAAS,UACT,cAAC,IAAO,CAACC,KAAMC,IAAMf,MAAM,oBAI9B,cAAC,IAAQ,UAAC,6BAGZ,cAAC,IAAU,UAEV,eAAC,IAAM,WACN,cAAC,IAAM,CAACqN,KAAK,IAAG,SACf,qBAAKxN,UAAU,iBAAgB,SAC9B,eAAC,IAAI,CACJkC,GAAI,CACHC,SAAU,yBACVE,MAAO,CAAC,GACP,UAEF,qBAAKrC,UAAU,oBAAmB,SACjC,cAAC,GAAc,CAACyH,MAAO,GAAIC,OAAQ,OAGpC,6BAAI,sBAIP,cAAC,IAAM,CAAC8F,KAAK,IAAG,SACf,qBAAKxN,UAAU,iBAAgB,SAC9B,eAAC,IAAI,CACJkC,GAAI,CACHC,SAAU,qBACVE,MAAO,CAAC,GACP,UAEF,qBAAKrC,UAAU,oBAAmB,SACjC,cAAC,GAAc,CAACyH,MAAO,GAAIC,OAAQ,OAEpC,6BAAI,+BAIP,cAAC,IAAM,CAAC8F,KAAK,IAAG,SACf,qBAAKxN,UAAU,iBAAgB,SAC9B,eAAC,IAAI,CACJkC,GAAI,CACHC,SAAU,2BACVE,MAAO,CAAC,GACP,UAEF,qBAAKrC,UAAU,oBAAmB,SACjC,cAAC,GAAS,CAACyH,MAAO,GAAIC,OAAQ,OAE/B,6BAAI,mBAIP,cAAC,IAAM,CAAC8F,KAAK,IAAG,SACf,qBAAKxN,UAAU,iBAAgB,SAC9B,eAAC,IAAI,CACJkC,GAAI,CACHC,SAAU,0BACVE,MAAO,CAAC,GACP,UAEF,qBAAKrC,UAAU,oBAAmB,SACjC,cAAC,GAAS,CAACyH,MAAO,GAAIC,OAAQ,OAE/B,6BAAI,8BASZ,GCKe+L,GAtGyB,WACvC,MAAwB5T,IAAMuF,SAAqB,IAAG,mBAA/CsO,EAAI,KAAEC,EAAO,KACpB,EAA8B9T,IAAMuF,UAAkB,GAAK,mBAApD2G,EAAO,KAAEuD,EAAU,KAC1B,EAAsCzP,IAAMuF,SAAS,IAAG,mBAAjDwO,EAAW,KAAEC,EAAc,KAClC,EAAoChU,IAAMuF,SAAwB,MAAK,mBAAhEQ,EAAU,KAAEkO,EAAa,KAChC,EAAwBjU,IAAMuF,SAAwB,MAAK,mBAApD1E,EAAI,KAAEqT,EAAO,KAEpBlU,IAAMiI,WAAU,WACfgE,GACD,GAAG,IAEH,IAAMA,EAAwB,iDAAG,wFAChCwD,GAAW,GACXzR,EpB8BqC,sBoB9BM,CAAC,GAAGlC,MAAK,SAAC8D,GACpDuU,QAAQC,IAAI,4CAA6CxU,GACrDA,GAAsB,MAAfA,EAAIlB,QACdoV,EAAQlU,EAAIiU,MAAQ,IACpBI,EAAcrU,EAAImG,YAClBmO,EAAQtU,EAAIiB,OAEZwT,MAAM,yCAEP5E,GAAW,EACZ,IAAG,2CACH,kBAb6B,mCAexB6E,EAAa,iDAAG,WAAOzQ,GAAc,iFACc,IAAlD0Q,OAAkBC,IAAV3Q,EAAsBA,EAAQkQ,GACjCU,OAAO,CAAD,eACW,OAA3BxI,IAA2B,0BAG5BwD,GAAW,GAGXzR,EpBUuC,6BoBVM,CAC5C0W,KAAMH,EACNI,cAAe5O,EACf4F,WAAY9K,IACV/E,MAAK,SAAC8D,GACJA,GAAsB,MAAfA,EAAIlB,OACdoV,EAAQlU,EAAIiU,MAAQ,IAEpBQ,MAAM,8BAEP5E,GAAW,EACZ,IAAG,2CACH,gBArBkB,sCA4BnB,OACC,eAAC,IAAO,CAACtT,GAAG,eAAc,UACzB,eAAC,IAAS,WACT,eAAC,IAAU,WACV,cAAC,IAAU,CAACgF,KAAK,QAAO,SACvB,cAAC,IAAa,CAACoG,KAAK,GAAGmF,YAAY,eAEpC,cAAC,IAAQ,UAAC,eAEX,cAAC,IAAU,UACV,cAAC,IAAY,CACZ9F,YAAY,mBACZ/C,MAAOkQ,EACPa,gBAAgB,SAChBC,QAAS,SAAC9Y,GACK,UAAVA,EAAE+Y,KAAiC,KAAd/Y,EAAEgZ,SAC1BT,GAEF,EACAU,WAAY,WACXhB,EAAe,IACf/H,GACD,EACApF,YA3Be,SAAC9K,GACpBiY,EAAejY,EAAEyI,OAAOX,OAAS,GAClC,SA4BE,eAAC,IAAU,WACTqI,GAA2B,IAAhB2H,EAAKpS,QAAgB,cAAC,GAAc,KAC9CyK,GAAW2H,GAAQA,EAAKtY,KAAI,SAACmG,EAAMC,GACpC,OACC,cAAC,IAAO,UACP,eAAC,IAAQ,CAACxB,UAAU,gBAAe,UAClC,cAAC,IAAO,CAACG,MAAM,OAAM,SACpB,6BAAKoB,EAAK+C,KAAO,IAAM/C,EAAKgD,YAE5BhD,EAAKoD,OAAS,8BAAG,WAASpD,EAAKoD,SAC/BpD,EAAKqD,WAAa,8BAAG,eAAarD,EAAKqD,aACvCrD,EAAKsD,UAAY,8BAAG,cAAYtD,EAAKsD,YACtC,cAAC,IAAS,CAAC,gBAAW1E,MAAM,UAAUF,MAAO,CAAE6U,MAAO,SAAWC,WAAY,cAAgBxT,EAAK+G,OAAO,SAAC,uBAR9F9G,EAYhB,SAIJ,E,+BCyUewT,I,OAnaoB,WAAO,aAC/BjK,eACV,IAAQxK,EAAaV,IAAMW,WAAWZ,GAA9BW,SAER,EAAkBkF,cAAXC,EAAwB,iBAAjB,GACd,EAAsC7F,IAAMuF,UAAS,GAAM,mBAApDC,EAAW,KAAEC,EAAc,KAClC,EAAqCzF,IAAMuF,SAAS,IAAG,mBAA/B6P,GAAF,KAAW,MACjC,EAA8BpV,IAAMuF,SAAS,CAAC,CAACpJ,GAAI,KAAMsR,OAAQ,QAAO,mBAAxD4H,GAAF,KAAY,MAE1B,EAA0BrV,IAAMuF,SAAS,CACxC+P,UAAU,EACVC,iBAAkB,GAClB9J,KAAM,EACN+J,QAAS,GACTC,OAAQ,GACRC,SAAU,GACVC,WAAY,GACZ7M,MAAO,GACP8M,aAAa,EACbC,gBAAiB,GACjBC,aAAc,GACdC,eAAgB,GAChBC,SAAU,KACV7N,KAAM,GACNS,kBAAkB,IACjB,mBAhBKpG,EAAK,KAAEwD,EAAQ,KAqBtBhG,IAAMiI,WAAU,WAkBf,MAhBoB,IAAhBzF,EAAMiT,SAC6B,GAAlCjT,EAAMiT,OAAO7K,MAAM,KAAKnJ,OAC3BwU,IAEAjQ,EAAS,2BACLxD,GAAK,IACRgT,QAAS,GACT1M,MAAO,GACP2C,KAAM,EACNkK,WAAY,GACZD,SAAU,GACVJ,UAAU,EACV1M,kBAAkB,MAId,WAAQ,CAChB,GAAG,CAACpG,EAAMiT,SAEV,IAAMQ,EAAW,iDAAG,sHACa,OAA5BC,EAAK1T,EAAMiT,OAAO7K,MAAM,KAAK,EAAD,OAEhB5M,ErBjBkB,wBqBiBsB,CAAE6C,KAAMqV,EAAG,GAAI/K,WAAY+K,EAAG,KAAM,KAAD,EA4E1F,OA5EGtW,EAAG,OAEH8V,EAAW,GACXG,EAAuB,GACvBL,EAAe,GACfW,EAAc,GACd1K,EAAO,EACP2K,EAAa,GACbb,EAAwB,GACxBE,EAASjT,EAAMiT,OAEf7V,GAAOA,EAAIiW,iBAAmBjW,EAAIiW,gBAAgBpU,OAAS,IAC9DoU,EAAkBjW,EAAIiW,iBAGnBjW,GAAqB,KAAdA,EAAIlB,QACV2X,EAAezW,EAAIiB,KACvB2U,EAAUa,EAAQ5R,KAAO,IAAM4R,EAAQ3R,QACvC9E,EAAIkJ,MAAMK,SAAQ,SAACzH,GAQlB,IAPA,IAAI0H,EAAQhK,MAASuE,OAAO,cACxB0F,EAAOjK,MAASuE,OAAO,cACvB2F,EAAYlK,IAAOiK,EAAO,IAAM3H,EAAK6H,YAErCC,EADUpK,IAAOiK,EAAO,IAAM3H,EAAK+H,UACtBC,KAAKJ,EAAW,UAAY,GACzCK,EAAavK,MAERqE,EAAI,EAAGA,EAAI+F,EAAI/F,IAAK,CAC5B,IAAImG,GAAQ,EACRC,EAAKzK,IAAOuK,GAAYhG,OAAO,cAC/BmG,EAAO1K,IAAOyK,EAAK,IAAMzK,IAAOkK,GAAWjK,IAAI,GAAKoE,EAAG,KAAKE,OAAO,UAAUI,OAC5EsF,GAAQD,GAAShK,MAASuE,OAAO,SAAWvE,IAAOkK,GAAWjK,IAAI,GAAKoE,EAAG,KAAKE,OAAO,WAC1FiG,GAAQ,GAELxK,MAAS2E,OAAS+F,IACrBF,GAAQ,GAETwM,EAAM1S,KAAK,CACVL,OAAQjE,IAAOkK,GAAWjK,IAAI,GAAKoE,EAAG,KAAKE,OAAO,SAClDoG,KAAM3K,IAAOkK,GAAWjK,IAAI,IAAMoE,EAAI,GAAI,KAAKE,OAAO,SACtDqG,KAAMJ,GAER,CAED,IACAuM,EAASC,EAAMnM,KAAK/G,GAEpBtD,EAAIsK,MAAMf,SAAQ,SAACzH,EAAWC,GAE7B,GAAID,EAAK+G,QAAU4N,EAAQ5N,OAAQ,CAClC,IAAIc,EAAanK,IAAO2E,KAAKrC,EAAKyI,aAAaxG,OAAO,UAClDyG,EAAS+L,EAAO9L,WAAU,SAACtO,GAAM,OAAKA,EAAEsH,QAAUkG,CAAU,MAClD,IACb4M,EAAO/L,GAAQJ,MAAO,EAExB,KAAO,CACN,IACII,EADAb,EAAanK,IAAO2E,KAAKrC,EAAKyI,aAAaxG,OAAO,UAClDyG,EAAS+L,EAAO9L,WAAU,SAACtO,GAAM,OAAKA,EAAEsH,QAAUkG,CAAU,MAClD,IACb4M,EAAO/L,GAAQJ,MAAO,EAExB,CACD,IAGAyB,EAAO7L,EAAI6L,KAEX8J,EAAmB3V,EAAI2V,kBAGvBG,EAFU9V,GAAqB,KAAdA,EAAIlB,OAEV,iDACDkB,GAAqB,KAAdA,EAAIlB,OAEV,6BAGA,6CACX,UAEkBV,ErBvFe,wBqBuFyB,CAAC2W,cAAerH,SAAS5M,EAASqF,cAAa,QAAhG,OAANuQ,EAAM,iBACUtY,ErBvFK,eqBuF0B,CAAC2W,cAAerH,SAAS5M,EAASqF,cAAa,QAA9FwQ,EAAO,OACXnB,EAAUkB,EAAO7X,MACjB4W,EAAWkB,EAAQ9X,MAEnBuH,EAAS,2BACLxD,GAAK,IACRiT,OAAQA,EACRI,gBAAiBA,EACjBD,YAAaC,EAAgBpU,OAAS,EACtCkU,WAAY,GACZH,QAASA,EACTD,iBAAkBA,EAClBzM,MAAOqN,EACP1K,KAAMA,EACNiK,SAAUA,EACVJ,UAAU,KACT,4CACF,kBAnGgB,mCA6GXkB,EAAS,iDAAG,0GAoBT,OAnBJN,EAAK1T,EAAMiT,OAAO7K,MAAM,KACxBnM,EAAOW,MAASuE,OAAO,cACvBE,EAAQrB,EAAMsT,aACdvM,EAAa1F,EAAM+G,MAAM,KAAK,GAC9BnB,EAAW5F,EAAM+G,MAAM,KAAK,GAC5BE,EAAM,CACT3O,GAAI,KACJsM,OAAQyN,EAAG,GACXpU,cAAeoU,EAAG,GAClBzX,KAAMW,MAAS2E,OACfoG,YAAa/K,IAAOX,EAAO,IAAM8K,EAAa,OAAOxF,OACrDgH,UAAW3L,IAAOX,EAAO,IAAMgL,EAAW,OAAO1F,QAGlD0B,GAAe,GAEf2J,YAAW,WAGX,GAAG,KAAK,UAGQpR,ErBjJsC,4CqBiJsB8M,GAAK,KAAD,GAA5ElL,EAAG,OACP6F,GAAe,GAEX7F,GAAOA,EAAIlB,QAAwB,KAAdkB,EAAIlB,QAC5BmH,EAAQ,CACPK,QAAS,GACTpG,QAAS,6BACTqG,SAAU,SACVC,SAAU,OAEXJ,EAAS,2BACLxD,GAAK,IACRoG,kBAAkB,EAClB+M,WAAY,4BACZH,QAAS,GACT1M,MAAO,GACPyM,iBAAkB,GAClB9J,KAAM,EACNiK,SAAU,GACVJ,UAAU,OAGXzP,EAAQ,CACPK,QAAS,GACTpG,QAAS,uCACTqG,SAAU,SACVC,SAAU,OAEXJ,EAAS,2BACLxD,GAAK,IACRoG,kBAAkB,EAClB8M,SAAU,2CAEX,4CAED,kBA1Dc,mCA4If,OACC,eAAC,IAAO,WACP,cAAC,IAAS,UACT,eAAC,IAAU,WACV,cAAC,IAAU,CAACvU,KAAK,QAAO,SACvB,cAAC,IAAa,CAACoG,KAAK,GAAGmF,YAAY,0BAEpC,cAAC,IAAQ,UAAC,qBAGZ,eAAC,IAAU,WACV,qBAAKtM,MAAO,CAAEC,UAAW,IAAK,UAC3BmC,EAAMiT,QAAU,cAAC,KAAQ,CAC1BgB,WAAY,cACZC,MAAO,IACPtW,MAAO,CAAEwH,MAAO,IAAKC,OAAQ,IAAK0G,WAAY,OAAQK,OAAQ,UAC9D+H,QAAS,SAAC9W,GAEV,EACA+W,OAAQ,SAACnY,GACJA,GACHuH,EAAS,2BACLxD,GAAK,IACRiT,OAAQhX,IAGX,MAGF,sBAAK2B,MAAO,CAAEyO,UAAW,SAAUxO,UAAW,IAAK,UACjDmC,EAAMiT,QAAU,+BAAI,YAAS,sBAAMrV,MAAO,CAAEE,MAAO,SAAU,SAAEkC,EAAMiT,aACpEjT,EAAMmT,YAAcnT,EAAMgT,UAAYhT,EAAMkT,UAAY,6BAAKlT,EAAMgT,WACnEhT,EAAMmT,YAAcnT,EAAMgT,SAAWhT,EAAMiJ,MAAQ,IAAMjJ,EAAMkT,UAAY,+BAAI,sBAAoBlT,EAAMiJ,SACzGjJ,EAAMmT,YAAcnT,EAAMgT,UAAYhT,EAAMkT,eAAwClB,GAA5BhS,EAAMqT,gBAAgB,IAAmB,+BAAI,YAAUrT,EAAMqT,gBAAgB,GAAS,SAC9IrT,EAAMmT,YAAcnT,EAAMiJ,KAAO,GAAKjJ,EAAMsG,MAAMrH,OAAS,IAAMe,EAAMkT,UAAY,6BAAI,uBACvFlT,EAAMmT,YAAcnT,EAAMiT,QAAUjT,EAAMsG,MAAMrH,QAAU,IAAMe,EAAMkT,UAAY,oBAAItV,MAAO,CAAEE,MAAO,WAAY,SAAC,+BAGnHkC,EAAMmT,YAAcnT,EAAMiJ,KAAO,GAAKjJ,EAAMsG,MAAMrH,OAAS,IAAMe,EAAMkT,UAAY,eAAC,IAAO,WAC5F,cAAC,IAAQ,UAAC,qBACV,cAAC,IAAS,CAACmB,WAAY,SAAUC,OAAQ,QAASjT,MAAOrB,EAAMsT,aAAclP,YAAY,QAAQC,YAAa,SAAA9K,GA5L1F,IAAC8H,EA6LhB9H,GAAKA,EAAE+K,QAAU/K,EAAE+K,OAAOjD,QA7LVA,EA8LF9H,EAAE+K,OAAOjD,MA7LhCmC,EAAS,2BACLxD,GAAK,IACRoG,kBAAkB,EAClBkN,aAAcjS,KA4LX,EAAE,SACArB,EAAMsG,MAAMvN,KAAI,SAACmG,EAAWC,GAC5B,OAAO,cAAC,IAAe,CAAa4I,UAAW7I,EAAKsI,KAAMnG,MAAOnC,EAAK2B,OAAS,IAAM3B,EAAKqI,KAAK,SAAErI,EAAK2B,OAAS,MAAQ3B,EAAKqI,MAA/FpI,EAC9B,SAKDa,EAAMkT,UAAY,oBAAItV,MAAO,CAAEE,MAAO,OAAQ,SAAEkC,EAAMkT,WACtDlT,EAAMmT,YAAc,oBAAIvV,MAAO,CAAEE,MAAO,SAAU,SAAEkC,EAAMmT,aAC1DnT,EAAMoT,aAAe,cAAC,IAAS,CAACxV,MAAO,CAAEC,UAAW,IAAMC,MAAM,UAAUC,QAAS,YArIxE,WACfkF,GAAe,GACf,IAAI5E,EAAY2B,EAAMqT,gBAAgB,GAYtC7X,ErBpMkC,mBqByLpB,CACb2W,cAAejU,EAASqF,WACxB0C,OAAQ5H,EAAK4H,OACb3G,cAAejB,EAAKiB,cACpBoG,QAASrH,EAAK4K,KACdtD,KAAM,GACNsD,KAAM,EACNsL,eAAgB,YAChBC,SAAU5X,MAASuE,OAAO,sBAGsB7H,MAAK,SAAC8D,GACtD6F,GAAe,GACX7F,GAAqB,KAAdA,EAAIlB,OACduX,IAEApQ,EAAQ,CACPK,QAAS,GACTpG,QAAS,uCACTqG,SAAU,SACVC,SAAU,MAGb,GAED,CAyGgG6Q,EAAU,EAAE,SAAC,+BAsB1G,cAAC,IAAQ,CACR7P,OAAQ5E,EAAMoG,iBACd4B,iBAAiB,EACjBlD,SAAS,kBACTmD,OAAQ,QACR3K,QAAS,uCACToG,QAAS,CACR,CACCqB,KAAM,KACNE,KAAM,SACNH,SAAU,YACVE,QAAS,WACRxB,EAAS,2BACLxD,GAAK,IACRoG,kBAAkB,EAClBkN,aAAc,KAEhB,GAED,CACCvO,KAAM,KACNC,QAAS,WACRxB,EAAS,2BACLxD,GAAK,IACRoG,kBAAkB,KAEnB4N,GACD,MAIH,cAAC,IAAU,CACVlP,SAAS,kBACTF,OAAQ5B,EACR6B,aAAc,kBAAM5B,GAAe,EAAM,EACzC3F,QAAS,UAMd,GCrDeoX,I,OA1W4B,WAC1C,IAAQxW,EAAaV,IAAMW,WAAWZ,GAA9BW,SACR,EAA4BwK,cAAfC,GAAF,EAALlJ,MAAiB,EAAVkJ,YAEb,EAAkBvF,cAAXC,EAAwB,iBAAjB,GACd,EAAkC7F,IAAMuF,SAAS,CAChD6B,QAAQ,EACRmB,IAAK,GACLpM,GAAI,EACJsM,OAAQ,IACP,mBALK2C,EAAS,KAAEC,EAAY,KAM9B,EAAgCrL,IAAMuF,SAAoB,IAAG,mBAAtDxE,EAAQ,KAAEuK,EAAW,KAC5B,EAA0BtL,IAAMuF,SAAoB,IAAG,mBAAhDgG,EAAK,KAAEC,EAAQ,KACtB,EAAwCxL,IAAMuF,SAASnG,OAAS,mBAAzD2M,EAAY,KAAEC,EAAe,KACpC,EAAgDhM,IAAMuF,SAAS,CAC9DyE,MAAM,EACN7N,GAAI,IACH,mBAHKyM,EAAgB,KAAEC,EAAmB,KAI5C,EAAsC7I,IAAMuF,UAAS,GAAK,mBAAnDC,EAAW,KAAEC,EAAc,KAElCzF,IAAMiI,WAAU,WACfgE,GACD,GAAG,IAGH,IAAMA,EAAwB,iDAAG,wFAChCjO,EAAkBD,EAAyB,CAAC,GAAGjC,MAAK,SAAC8D,GACpD,IAAIA,GAAqB,KAAdA,EAAIlB,OAQd,OADAK,OAAOoN,QAAQC,QACR,EAPP,IAAMC,EAAYzM,EAAInB,KAAKoD,QAC1B,SAAC9F,GAAM,OAAKqD,IAAO2E,KAAKhI,EAAE0C,MAAMkF,OAAO,eAAiBvE,IAAO2M,GAAcpI,OAAO,aAAa,IAElG2H,EAAY1L,EAAInB,MAChB+M,EAASa,GAKV5G,GAAe,EAChB,IAAE,2CACF,kBAd6B,mCAwG9B,OACC,eAAC,IAAO,CAACtJ,GAAG,eAAc,UACzB,cAAC,IAAS,UACT,eAAC,IAAU,WACV,cAAC,IAAU,CAACgF,KAAK,QAAO,SACvB,cAAC,IAAa,CAACoG,KAAK,GAAGmF,YAAY,0BAKpC,cAAC,IAAQ,UAAC,oBAGZ,eAAC,IAAU,WACV,qBAAKvM,UAAU,0BAAyB,SACvC,cAAC,IAAQ,CACRwM,aAAc,YAQb,IAR2D,IAA3C9I,EAAK,EAALA,MAAayE,GAAF,EAAJ7B,KAAc,EAAR6B,UAGvBsE,GAH6C,EAAZC,aAGlB,IAEfL,EAAU3I,EAAMiJ,QAChBC,EAAalJ,EAAMkJ,aACnBC,EAAS,GACNvJ,EAAI,EAAGA,EAAI,GAAIA,IACvB+I,EAAQS,MAAMxJ,GACduJ,EAAOtJ,KAAKqJ,EAAWG,YAAYV,IAGpC,IAAK,IAAI7K,EAZK,EAYUA,EAXZ,GAWyBA,IACpCiL,EAAalJ,KACZ,cAAC,IAAOyJ,OAAM,CAAChN,UAAU,aAAa0D,MAAOmJ,EAAOrL,GAAO,SACzDqL,EAAOrL,IAAM,UADqDA,KAKxDkC,EAAMoJ,QAKpB,IALA,IAEMG,EAAOvJ,EAAMuJ,OACbC,EAAQC,SAASlO,MAASuE,OAAO,SACjC4J,EAAU,GACP9J,EAAI4J,EAAO5J,EAAI4J,EAAQ,EAAG5J,GAAK,EACvC8J,EAAQ7J,KACP,cAAC,IAAOyJ,OAAM,CAAStJ,MAAOJ,EAAGtD,UAAU,YAAW,SACpDsD,GADkBA,IAMtB,IAAM+J,EAAO,CACZ,CAAEC,OAAQ,MAAO5J,MAAO,GACxB,CAAE4J,OAAQ,MAAO5J,MAAO,GACxB,CAAE4J,OAAQ,MAAO5J,MAAO,GACxB,CAAE4J,OAAQ,MAAO5J,MAAO,GACxB,CAAE4J,OAAQ,MAAO5J,MAAO,GACxB,CAAE4J,OAAQ,MAAO5J,MAAO,GACxB,CAAE4J,OAAQ,MAAO5J,MAAO,GACxB,CAAE4J,OAAQ,MAAO5J,MAAO,GACxB,CAAE4J,OAAQ,MAAO5J,MAAO,GACxB,CAAE4J,OAAQ,MAAO5J,MAAO,IACxB,CAAE4J,OAAQ,MAAO5J,MAAO,IACxB,CAAE4J,OAAQ,MAAO5J,MAAO,KAEzB,OACC,qBAAKzD,MAAO,CAAEmB,QAAS,GAAI,SAC1B,eAAC,IAAG,CAACmM,OAAQ,EAAE,UACd,cAAC,IAAG,UACH,cAAC,IAAM,CACNC,KAAK,QACLC,0BAA0B,EAC1BzN,UAAU,iBACVmI,SAAU,SAACuF,GACV,IAAMC,EAAMjK,EAAMiJ,QAAQM,KAAKE,SAASO,IACxCvF,EAASwF,EACV,EACAjK,MAAOkK,OAAOX,GAAM,SAEnBG,MAGH,cAAC,IAAG,UACH,cAAC,IAAM,CACNI,KAAK,QACLC,0BAA0B,EAC1B/J,MAAOzE,IAAOyE,GAAOF,OAAO,OAC5B2E,SAAU,SAAC0F,GACV,IAAInM,EAAS2L,EAAK3L,QAAO,SAAC9F,GAAM,OAAKA,EAAE0R,QAAUO,CAAa,IACxDC,EAAWpK,EAAMiJ,QACvBmB,EAAShB,MAAMK,UAAUzL,EAAO,GAAGgC,MAAQ,GAAGvE,WAAY,KAC1DgJ,EAAS2F,EACV,EAAE,SAEDrB,UAMP,EACAsB,eA5JkB,SAACrK,GACvB,IAAMwI,EAAYtL,EAASc,QAC1B,SAAC9F,GAAM,OAAKqD,IAAO2E,KAAKhI,EAAE0C,MAAMkF,OAAO,eAAiBvE,IAAOyE,GAAOF,OAAO,aAAa,IAE3F,OAAI0I,GAAaA,EAAU5K,OAAS,EAElC,qBAAKrB,MAAO,CAAE+F,SAAU,WAAYgI,KAAM,EAAGC,MAAO,EAAGxG,MAAO,GAAIC,OAAQ,GAAIwG,OAAQ,GAAI,SACzF,qBAAKjO,MAAO,CAAEwH,MAAO,GAAIC,OAAQ,GAAIyG,aAAc,MAAOC,WAAY,eAKlE,cAAC,IAAMjN,SAAQ,GACvB,EAgJKkN,OAAQA,IACR1R,KAAM,QAEN6K,YAAY,EACZ+G,SAlJY,SAAC7K,GACjB,IAAMwI,EAAYtL,EAASc,QAC1B,SAAC9F,GAAM,OAAKqD,IAAO2E,KAAKhI,EAAE0C,MAAMkF,OAAO,eAAiBvE,IAAOyE,GAAOF,OAAO,aAAa,IAE3FqI,EAAgBnI,GAChB2H,EAASa,EACV,EA6IKjM,MAAO,CAAEwH,MAAO7I,OAAO4P,gBAGzB,qBAAKvO,MAAO,CAAEmB,QAAS,YAAa,SAClCgK,GAASA,EAAMhQ,KAAI,SAACmG,EAAWC,GAC/B,IAAIoN,EAAc3P,IAAO2E,KAAKrC,EAAKyI,aAC/B6E,EAAgB5P,MAEhB6P,GAAW,EAIf,OALSF,EAAYrF,KAAKsF,EAAe,QAEhC,IACRC,GAAW,GAGX,eAAC,IAAO,WACP,eAAC,IAAQ,CAAC9O,UAAU,gBAAe,UAClC,cAAC,IAAO,CAACG,MAAM,OAAM,SACpB,+BACElB,IAAO2E,KAAKrC,EAAKyI,aAAaxG,OAAO,SAAS,KAAG,IACjDvE,IAAO2E,KAAKrC,EAAKqJ,WAAWpH,OAAO,SAAU,SAGhD,4BAAIjC,EAAK6E,cAET0I,GAAY,cAAC,IAAO,CAAC7N,KAAM8N,IAAe/N,KAAK,MAAMZ,QAAS,WAE9D8K,EAAa,CACZjE,QAAQ,EACRmB,IAAKnJ,IAAO2E,KAAKrC,EAAKjD,MAAMkF,OAAO,cACnCxH,GAAIuF,EAAKvF,GACTsM,OAAQ/G,EAAK+G,QAEf,IACCwG,GACA,cAAC,IAAO,CACP7N,KAAM+N,IACN7O,MAAM,SACNa,KAAK,MACLZ,QAAS,WACRsI,EAAoB,CACnBmB,MAAM,EACN7N,GAAIuF,EAAKvF,IAEX,MA7BWwF,EAkChB,SAIF,eAAC,IAAQ,CAACyF,OAAQgE,EAAUhE,OAAQE,SAAS,kBAAiB,UAC7D,cAAC,IAAS,UACT,eAAC,IAAU,WACV,cAAC,IAAU,CAACnG,KAAK,QAAO,SACvB,cAAC,IAAS,CACTZ,QAAS,WACR8K,EAAa,CACZjE,QAAQ,EACRmB,IAAK,GACLpM,GAAI,EACJsM,OAAQ,GAEV,EAAE,SACF,aAIF,cAAC,IAAQ,UAAC,0BAGZ,cAAC,IAAU,CAACrI,MAAO,CAAEmB,QAAS,IAAK,SAClC,cAAC,EAAU,CAAC6F,OAAQgE,EAAUhE,OAAQiB,WAAY3H,EAASG,KAAM0H,IAAK6C,EAAU7C,IAAKE,OAAQ2C,EAAU3C,OAAQD,aAAc2C,EAAYhP,GAAIiP,EAAUjP,GAAImM,SAAU,WACpK+C,EAAa,CACZjE,QAAQ,EACRmB,IAAK,GACLpM,GAAI,EACJsM,OAAQ,IAEThD,GAAe,GACf2J,YAAW,WACVnD,GACD,GAAG,IACJ,SAIF,cAAC,IAAQ,CACR7E,OAAQwB,EAAiBoB,KACzBQ,iBAAiB,EACjBlD,SAAS,kBACTmD,OAAQ,UACR3K,QAAS,0CACToG,QAAS,CACR,CACCqB,KAAM,KACNE,KAAM,SACNH,SAAU,YACVE,QAAS,SAACkD,GACT7B,EAAoB,CACnBmB,MAAM,EACN7N,GAAI,GAEN,GAED,CACCoL,KAAM,KACNC,QAAS,WA1OY,IAACrL,IA2OHyM,EAAiBzM,GA1OxCsJ,GAAe,GACfzH,EAAkBL,EAAgC,CAAExB,GAAIA,IAAML,MAAK,SAAC8D,GACnE,IAAIM,EAAM,yCACV,GAAIN,GAAOA,GAAqB,KAAdA,EAAIlB,OAAe,CACpC,IAAI2L,EAAYkB,EAAMlB,WAAU,SAACtO,GAAM,OAAKA,EAAEI,IAAMA,CAAE,IAClDkT,EAAiB9D,EAAMlB,WAAU,SAACtO,GAAM,OAAKA,EAAEI,IAAMA,CAAE,IAC3DoP,EAAM+D,OAAOjF,EAAW,GACxBkB,EAAM+D,OAAOD,EAAgB,GAC7B7D,EAASD,GACTrL,EAAM,4BACP,CACAuF,GAAe,GACfI,EAAQ,CACPK,QAAS,GACTpG,QAASI,EACTiG,SAAU,SACVC,SAAU,MAEZ,IAyNKyC,EAAoB,CACnBmB,MAAM,EACN7N,GAAI,GAEN,MAKH,cAAC,IAAU,CACVmL,SAAS,kBACTF,OAAQ5B,EACR6B,aAAc,kBAAM5B,GAAe,EAAM,EACzC3F,QAAS,OAIb,GC3PeqX,I,cAlI2C,SAAH,GAAwB,IAAlBC,EAAU,EAAVA,WAE3D,EAAkBxR,cAAXC,EAAwB,iBAAjB,GACd,EAAuBgN,cAAhBC,EAA6B,iBAAjB,GACnB,EAAsC9S,IAAMuF,UAAS,GAAM,mBAApDC,EAAW,KAAEC,EAAc,KAElC,EAA0BzF,IAAMuF,SAAS,CACvC8R,MAAOjY,MAASuE,OAAO,cACvB2T,IAAK,GACL/N,WAAY,GACZE,SAAU,KACV,mBALKjH,EAAK,KAAEwD,EAAQ,KAOhBuR,EAAS,iDAAG,iGACX/U,EAAM6U,MAAM,CAAD,eACuC,OAArDG,EAAW,0CAA0C,mBAC9C,GAAK,UAEThV,EAAM8U,IAAI,CAAD,eACuC,OAAnDE,EAAW,wCAAwC,mBAC5C,GAAK,UAEThV,EAAM+G,WAAW,CAAD,eACiC,OAApDiO,EAAW,yCAAyC,mBAC7C,GAAK,UAEThV,EAAMiH,SAAS,CAAD,gBACiC,OAAlD+N,EAAW,uCAAuC,mBAC3C,GAAK,QAGVC,EAAS,CACXlO,WAAY/G,EAAM+G,WAClBE,SAAUjH,EAAMiH,SAChB4N,MAAO7U,EAAM6U,MACbC,IAAK9U,EAAM8U,IACX7Y,KAAM+D,EAAM6U,OAGd5R,GAAe,GACfzH,EvBsBoC,oBuBtBQyZ,GAAQ3b,MAAK,SAAC8D,GAEpDA,GAAqB,KAAdA,EAAIlB,QACbmH,EAAQ,CACNK,QAAS,GACTpG,QAAS,6BACTqG,SAAU,SACVC,SAAU,OAEZgR,KAEAvR,EAAQ,CACNK,QAAS,GACTpG,QAAS,2CACTqG,SAAU,SACVC,SAAU,OAGdX,GAAe,EACjB,IAAE,4CACH,kBA/Cc,mCAiDT+R,EAAa,SAACtX,GAClB4S,EAAa,CACXxL,SAAU,GACVmD,OAAQ,eACR3K,QAASI,EACTgG,QAAS,CACP,WAGN,EAEA,OACE,sBAAK/F,UAAU,kBAAiB,UAC9B,eAAC,IAAO,WACN,cAAC,IAAQ,UAAC,gBACV,cAAC,IAAW,CAACuX,IAAKtY,MAASuE,OAAO,cAAegU,IAAKvY,MAASC,IAAI,EAAG,QAAQsE,OAAO,cAAeiU,cAAc,aAAaf,WAAW,SAASgB,SAAU,QAASjR,YAAY,cAAc/C,MAAOrB,EAAM6U,MAAOxQ,YAAa,SAAC9K,GAChOiK,EAAS,2BACJxD,GAAK,IACR6U,MAAOjY,IAAOrD,EAAE+K,OAAOjD,OAAOF,OAAO,gBAEzC,OAEF,eAAC,IAAO,WACN,cAAC,IAAQ,UAAC,cACV,cAAC,IAAW,CAAC+T,IAAKlV,EAAM6U,MAAOM,IAAKvY,MAASC,IAAI,EAAG,QAAQsE,OAAO,cAAeiU,cAAc,aAAaf,WAAW,SAASgB,SAAU,QAASjR,YAAY,sBAAsBC,YAAa,SAAC9K,GAClMiK,EAAS,2BACJxD,GAAK,IACR8U,IAAKlY,IAAOrD,EAAE+K,OAAOjD,OAAOF,OAAO,gBAEvC,OAEF,eAAC,IAAO,WACN,cAAC,IAAQ,UAAC,eACV,cAAC,IAAW,CAACiU,cAAc,QAAQE,aAAa,OAAOjB,WAAW,SAASgB,SAAU,QAASjR,YAAY,uBAAuBC,YAAa,SAAC9K,GAC7IiK,EAAS,2BACJxD,GAAK,IACR+G,WAAYnK,IAAOrD,EAAE+K,OAAOjD,OAAOF,OAAO,WAE9C,OAEF,eAAC,IAAO,WACN,cAAC,IAAQ,UAAC,aACV,cAAC,IAAW,CAAC+T,IAAKlV,EAAM+G,WAAYqO,cAAc,QAAQE,aAAa,OAAOjB,WAAW,SAASgB,SAAU,QAASjR,YAAY,qBAAqBC,YAAa,SAAC9K,GAClKiK,EAAS,2BACJxD,GAAK,IACRiH,SAAUrK,IAAOrD,EAAE+K,OAAOjD,OAAOF,OAAO,WAE5C,OAEF,qBAAKvD,MAAO,CAAEyO,UAAW,SAAUxO,UAAW,IAAK,SACjD,cAAC,IAAS,CACRE,QAAS,WACPgX,GACF,EAAE,SACH,YAIH,cAAC,IAAU,CACTjQ,SAAS,kBACTF,OAAQ5B,EACR6B,aAAc,kBAAM5B,GAAe,EAAM,EACzC3F,QAAS,OAIjB,GC3GAV,MAASoP,OAAO,MAEhB,IAmNeuJ,GAnN4B,WACrBpX,qBAAWZ,GAAxBW,SAAR,IAEA,EAAkBkF,cAAXC,EAAwB,iBAAjB,GACd,EAAsC7F,IAAMuF,UAAS,GAAK,mBAAnDC,EAAW,KAAEC,EAAc,KAClC,EAAkCzF,IAAMuF,UAAS,GAAM,mBAAhD6F,EAAS,KAAEC,EAAY,KAC9B,EAA0BrL,IAAMuF,SAAS,CACxCgG,MAAO,GACPyM,YAAanV,EAAWzD,MAASuE,OAAO,SACxCsU,WAAY7Y,MAASuE,OAAO,UAC3B,mBAJKnB,EAAK,KAAEwD,EAAQ,KAKtB,EAAgDhG,IAAMuF,SAAS,CAC9DyE,MAAM,EACN7N,GAAI,IACH,mBAHKyM,EAAgB,KAAEC,EAAmB,KAK5C7I,IAAMiI,WAAU,WACfiQ,EAAmB9Y,MAASuE,OAAO,cACpC,GAAG,IAEH,IAAMuU,EAAqB,SAAChP,GAE3BlL,ExBgBkC,wBwBhBM,CAAEkL,KAAMA,IAAQpN,MAAK,SAAC8D,GACzDA,GAAqB,KAAdA,EAAIlB,OACdsH,EAAS,2BACLxD,GAAK,IACR+I,MAAO3L,EAAInB,MAAQ,GACnBuZ,YAAanV,EAAWzD,IAAO8J,GAAMvF,OAAO,SAC5CsU,WAAY7Y,IAAO8J,GAAMvF,OAAO,WAGjCkC,EAAQ,CACPK,QAAS,GACTpG,QAAS,2CACTqG,SAAU,SACVC,SAAU,OAGZX,GAAe,EAChB,GACD,EAEM0S,EAAmB,iDAAG,WAAOhc,GAAU,2EAC5CsJ,GAAe,GACfzH,ExBJiC,uBwBIM,CAAE7B,GAAIA,IAAML,MAAK,SAAC8D,GACxD,GAAIA,GAAOA,EAAIlB,QAAwB,KAAdkB,EAAIlB,OAAe,CAC3CmH,EAAQ,CACPK,QAAS,GACTpG,QAAS,6BACTqG,SAAU,SACVC,SAAU,OAGX,IAAIoD,EAAKpK,MAASuE,OAAO,MACrBnB,EAAMwV,cACTxO,EAAKpK,MAAS6N,MAAMzK,EAAMwV,aAAarU,OAAO,OAE/C,IAAIyJ,EAAO5K,EAAMyV,YAAc7Y,MAASuE,OAAO,QAC3CuF,EAAO9J,IAAOgO,EAAO,IAAM5D,EAAK,gBAAgB7F,OAAO,cAC3DuU,EAAmBhP,EAEpB,MACCrD,EAAQ,CACPK,QAAS,GACTpG,QAAS,2CACTqG,SAAU,SACVC,SAAU,OAGZX,GAAe,EAChB,IAAE,2CACF,gBA7BwB,sCA+BzB,OACC,eAAC,IAAO,WACP,cAAC,IAAS,UACT,eAAC,IAAU,WACV,cAAC,IAAU,CAACtE,KAAK,QAAO,SACvB,cAAC,IAAa,CAACoG,KAAK,GAAGmF,YAAY,0BAEpC,cAAC,IAAQ,UAAC,qBAGZ,eAAC,IAAU,WACV,sBAAMtM,MAAO,CAAE8B,YAAa,GAAIC,aAAc,GAAIiW,WAAY,QAAS,SAAC,WACxE,eAAC,IAAO,WACP,cAAC,IAAQ,UAAC,SACV,eAAC,IAAS,CAACvB,WAAY,SAAUC,OAAQ,QAASuB,aAAc7V,EAAMyV,WAAYrR,YAAapE,EAAMyV,WAAYpR,YAAa,SAAA9K,GAC7H,GAAIA,EAAE+K,OAAOjD,MAAO,CACnB,IAAI2F,EAAKpK,MAAS6N,MAAMzK,EAAMwV,aAAarU,OAAO,MAC9CuF,EAAO9J,IAAOrD,EAAE+K,OAAOjD,MAAQ,IAAM2F,EAAK,gBAAgB7F,OAAO,cACrEuU,EAAmBhP,EACpB,CACD,EAAE,UACD,cAAC,IAAe,CAACrF,MAAO,OAAO,SAAE,SACjC,cAAC,IAAe,CAACA,MAAO,OAAO,SAAE,eAGnC,eAAC,IAAO,WACP,cAAC,IAAQ,UAAC,SACV,cAAC,IAAS,CAACgT,WAAY,SAAUC,OAAQ,QAASuB,aAAc7V,EAAMwV,YAAapR,YAAapE,EAAMwV,YAAanR,YAAa,SAAA9K,GAC/H,GAAIA,EAAE+K,OAAOjD,MAAO,CACnB,IAAI2F,EAAKpK,MAAS6N,MAAMlR,EAAE+K,OAAOjD,OAAOF,OAAO,MAC3CuF,EAAO9J,IAAOoD,EAAMyV,WAAa,IAAMzO,EAAK,gBAAgB7F,OAAO,cACvEuU,EAAmBhP,EACpB,CACD,EAAE,SACA9J,IAAO4N,SAASzR,KAAI,SAACmG,EAAMC,GAC3B,OAAO,cAAC,IAAe,CAAakC,MAAOhB,EAAWnB,GAAM,SAAEmB,EAAWnB,IAA5CC,EAC9B,SAGF,cAAC,IAAO,UACP,eAAC,IAAM,WACN,cAAC,IAAM,CAACgM,KAAK,IAAG,SACf,oBAAIvN,MAAO,CAAEC,UAAW,GAAI6B,YAAa,GAAIC,aAAc,IAAK,SAAC,YAElE,cAAC,IAAM,CAACwL,KAAK,IAAG,SACf,cAAC,IAAS,CAACpN,QAAS,WACnB8K,GAAa,EACd,EAAE,SAAC,4BAIJ7F,GAAehD,EAAM+I,MAAM9J,QAAU,GAAK,oBAAIrB,MAAO,CAAEC,UAAW,GAAI6B,YAAa,GAAIC,aAAc,GAAI0M,UAAW,SAAUvO,MAAO,WAAY,SAAC,2BACnJkC,EAAM+I,OAAS/I,EAAM+I,MAAMhQ,KAAI,SAACmG,EAAWC,GAC3C,OAAO,eAAC,IAAO,WACd,eAAC,IAAQ,CAACxB,UAAU,gBAAe,UAClC,cAAC,IAAO,CAACG,MAAM,OAAM,SACpB,6BAAKoB,EAAKjD,SAEX,8BAAIiD,EAAK6H,WAAW,MAAI7H,EAAK+H,eAE9B,cAAC,IAAO,CAACrI,KAAM+N,IAAchO,KAAK,MAAMb,MAAM,SAASC,QAAS,WAC/DsI,EAAoB,CACnBmB,MAAM,EACN7N,GAAIuF,EAAKvF,IAEX,MAZoBwF,EActB,OAED,eAAC,IAAQ,CAACyF,OAAQgE,EAAW9D,SAAS,kBAAiB,UACtD,cAAC,IAAS,UACT,eAAC,IAAU,WACV,cAAC,IAAU,CAACnG,KAAK,QAAO,SACvB,cAAC,IAAS,CACTZ,QAAS,WACR8K,GAAa,EACd,EAAE,SACF,aAIF,cAAC,IAAQ,UAAC,+BAGZ,cAAC,IAAU,CAACjL,MAAO,CAAEmB,QAAS,IAAK,SAClC,cAAC,GAAuB,CAAC6V,WAAY,WACpC/L,GAAa,GACb,IAAI7B,EAAKpK,MAASuE,OAAO,MACrBnB,EAAMwV,cACTxO,EAAKpK,MAAS6N,MAAMzK,EAAMwV,aAAarU,OAAO,OAE/C,IAAIyJ,EAAO5K,EAAMyV,YAAc7Y,MAASuE,OAAO,QAC3CuF,EAAO9J,IAAOgO,EAAO,IAAM5D,EAAK,gBAAgB7F,OAAO,cAC3DuU,EAAmBhP,EAEpB,SAGF,cAAC,IAAU,CACV5B,SAAS,kBACTF,OAAQ5B,EACR6B,aAAc,kBAAM5B,GAAe,EAAM,EACzC3F,QAAS,KAEV,cAAC,IAAQ,CACRsH,OAAQwB,EAAiBoB,KACzBQ,iBAAiB,EACjBlD,SAAS,kBACTmD,OAAQ,UACR3K,QAAS,0CACToG,QAAS,CACR,CACCqB,KAAM,KACNE,KAAM,SACNH,SAAU,YACVE,QAAS,SAACkD,GACT7B,EAAoB,CACnBmB,MAAM,EACN7N,GAAI,GAEN,GAED,CACCoL,KAAM,KACNC,QAAS,WACR2Q,EAAoBvP,EAAiBzM,IACrC0M,EAAoB,CACnBmB,MAAM,EACN7N,GAAI,GAEN,QAMN,E,OC3NAiD,MAASoP,OAAO,MAQhB,IA2Oe8J,GA3OmC,SAAH,GAAmB,IAAbC,EAAK,EAALA,MACzC7X,EAAaC,qBAAWZ,GAAxBW,SAGR,EAAgCV,IAAMuF,SAAS,IAAG,mBAA3CtB,EAAQ,KAAEuU,EAAW,KAC5B,EAA0BxY,IAAMuF,SAAqF,IAAG,mBAAjHkT,EAAK,KAAEC,EAAQ,KACtB,EAA8B1Y,IAAMuF,UAAS,GAAM,mBAA5CoT,EAAO,KAAEC,EAAU,KAC1B,EAAwC5Y,IAAMuF,UAAS,GAAM,mBAAtDsT,EAAY,KAAEC,EAAe,KACpC,EAA8B9Y,IAAMuF,UAAS,GAAM,mBAA5CwT,EAAO,KAAEC,EAAU,KAC1B,EAAgChZ,IAAMuF,SAAS,IAAG,mBAA3CxE,EAAQ,KAAEuK,EAAW,KAC5B,EAAwCtL,IAAMuF,SAAS,IAAG,mBAAnDwG,EAAY,KAAEC,EAAe,KACpC,EAA4ChM,IAAMuF,WAA0F,mBAArI0T,EAAc,KAAEC,EAAiB,KACxC,EAA0BlZ,IAAMuF,SAAS,IAAG,mBAArCuD,EAAK,KAAEC,EAAQ,KAEtB,GAAkBnD,cAAXC,GAAwB,kBAAjB,GACd,GAAsC7F,IAAMuF,UAAS,GAAK,qBAC1D,IADkB,MAAgB,MACRvF,IAAMuF,SAAS,CACrC+P,UAAU,EACVC,iBAAkB,GAClB9J,KAAM,EACN+J,QAAS,GACTC,OAAQ,GACRC,SAAU,GACVC,WAAY,GACZ7M,MAAO,GACP8M,aAAa,EACbC,gBAAiB,GACjBC,aAAc,GACdC,eAAgB,GAChB9T,WAAOuS,EACPwB,SAAU,KACV7N,KAAM,GACNS,kBAAkB,KACpB,qBAjBKpG,GAAK,MAAEwD,GAAQ,MAmBtBhG,IAAMiI,WAAU,WAEZkR,IACJ,GAAG,IAEH,IAAMA,GAAc,iDAAG,kHAGAnb,EzBEG,qByBF+B,CAAEyK,OAAQ8P,EAAMd,OAAOhP,SAAU,KAAD,EAA3E,OAAN2Q,EAAM,gBACapb,EzBEO,0ByBFmC,CAAEyK,OAAQ8P,EAAMd,OAAOhP,SAAU,KAAD,EAA7FwK,EAAU,OAEVoG,EAAQD,EAAOtY,QAAQW,OAE3B2X,EAAOtY,QAAQqI,SAAQ,SAACmQ,GAChBA,EAAqB,YAAMA,EAA4B,kBAG/D,IAEa,GAATD,GAAyF,GAA3ED,EAAOtY,QAAQe,QAAO,SAAC9F,GAAM,OAAe,MAAVA,EAAE0P,MAA0B,GAAV1P,EAAE0P,IAAS,IAAEhK,QAC/EmX,GAAW,GAGftN,EAAY2H,EAAWxU,MACvBia,EAASU,EAAOtY,SAChB0X,EAAYY,EAAOnV,UAEnB,4CACH,kBAvBmB,mCAqHpB,OACI,eAAC,IAAO,WACJ,cAAC,IAAS,UACN,eAAC,IAAU,WACP,cAAC,IAAU,CAAC9C,KAAK,QAAO,SACpB,cAAC,IAAa,CAACoG,KAAK,GAAGmF,YAAY,0BAEvC,cAAC,IAAQ,UAAC,wBAGlB,cAAC,IAAU,UACP,sBAAKtM,MAAO,CAAEyO,UAAW,SAAUxO,UAAW,IAAK,WAE7CsY,GAAW,qCACT,cAAC,IAAS,CACN/R,YAAY,kBACZ2S,iBAAkB,CAAEjS,SAAU,cAC9BlH,MAAO,CAAEoZ,aAAc,kBAAmBnZ,UAAW,IACrDwG,YAAa,SAAC9K,GACV,IAAI0P,EAAOxH,EAASpC,QAAO,SAACyX,GAAY,OAAKA,EAAuB,eAAKvd,EAAE+K,OAAOjD,MAAqB,aAAC,IACpG4V,EAAY1Y,EAASc,QAAO,SAACyX,GAAY,OAAKA,EAAuB,eAAKvd,EAAE+K,OAAOjD,MAAqB,aAAC,IAAEpC,OAE/GgK,EAAKtC,SAAQ,SAACzH,GACGA,EAAK+J,IACtB,IAEIxH,EAASpC,QAAO,SAACyX,GAAY,MAA0B,aAArBA,EAAgB,MAAgB,IAAE7X,OAAS,IAC7EqX,GAAgB,GAMpB9S,GAAS,2BAAKxD,IAAK,IAAEP,MAAOlG,EAAE+K,OAAOjD,QACzC,EAAE,SAED4U,EAAMld,KAAI,SAACmG,EAAMC,GACd,OAAO,cAAC,IAAe,CAACkC,MAAOnC,EAAK,SAAcA,EAAKO,OAAbN,EAC9C,MAIY,MAAfa,GAAMP,QAAkB4W,GAAgB,eAAC,IAAO,CAACzY,MAAO,CAAEC,UAAW,GAAImZ,aAAc,mBAAoB,UACxG,cAAC,IAAQ,UAAE,mBACX,cAAC,IAAW,CACR5B,cAAc,aAEdD,IAAI,OACJ9T,MAAOkI,EACPlF,YAAa,SAAC9K,GA7IzB,IAAC8H,EA6IgCmI,EAAgBjQ,EAAE+K,OAAOjD,OA7IzDA,EA6I2E9H,EAAE+K,OAAOjD,MA5IlGmV,GAAW,GAEXhb,EAAkBJ,EAAqB,CAAEa,KAAMW,IAAOyE,GAAOE,OAAQkF,KAAMvI,EAASG,OAAQ/E,KAAI,iDAAC,WAAO8D,GAAG,6GACtE5B,EAAkBD,EAAyB,CAAC,GAAG,KAAD,EAA3E2b,EAAoB,OACpB5Q,EAAQlJ,EAAIkJ,MACZI,EAAO9J,MAASuE,OAAO,cACvBgW,EAAYva,IAAOyE,GAAOF,OAAO,cACjCyS,EAAa,GACbD,EAAc,GAClBrN,EAAMK,SAAQ,SAACzH,GAKX,IAJA,IAAI4H,EAAYlK,IAAO8J,EAAO,IAAMxH,EAAK6H,YAErCC,EADUpK,IAAO8J,EAAO,IAAMxH,EAAK+H,UACtBC,KAAKJ,EAAW,UAAY,GAEpC7F,EAAI,EAAGA,EAAI+F,EAAI/F,IACdyF,GAAQyQ,IAAava,MAASuE,OAAO,SAAWvE,IAAOkK,GAAWjK,IAAI,GAAKoE,EAAG,KAAKE,OAAO,UAChGyS,EAAM1S,KAAK,CACPvH,GAAIuF,EAAKvF,GACTsC,KAAMW,IAAOsC,EAAKjD,KAAKa,YAAYqE,OAAO,cAC1CN,OAAQjE,IAAOkK,GAAWjK,IAAI,GAAKoE,EAAG,KAAKE,OAAO,SAClDoG,KAAM3K,IAAOkK,GAAWjK,IAAI,IAAMoE,EAAI,GAAI,KAAKE,OAAO,SACtDqG,MAAM,GAIlB,IACAmM,EAASC,EAAMnM,KAAK/G,QAEQsR,GAAxBkF,GAEkB,IADdE,EAAMF,EAAqBjb,KAAKoD,QAAO,SAACyX,GAAY,OAAKla,IAAO2E,KAAKuV,EAAQ7a,MAAMkF,OAAO,cAAcrE,YAAcF,IAAOyE,GAAOF,OAAO,cAAcrE,UAAU,KAC/JmC,QASJmY,EAAIzQ,SAAQ,SAACzH,GACTyU,EAASA,EAAOtU,QAAO,SAACyX,GAAY,OAChCla,IAAO2E,KAAKrC,EAAKjD,MAAMkF,OAAO,cAAcrE,YAAcga,EAAQ7a,MAClEW,IAAO2E,KAAKrC,EAAKyI,aAAaxG,OAAO,SAASrE,YAAcga,EAAQjW,OAAO/D,UAAU,GAC7F,IAKa,GAAjB6W,EAAO1U,OACPuX,GAAW,GAEXjQ,EAASoN,GACZ,4CACJ,mDAnD+F,GA0IW,UAK9FpK,IAAiBgN,GAAW,cAAC,IAAS,CACnCnS,YAAY,mBACZ2S,iBAAkB,CAAEjS,SAAU,cAC9BlH,MAAO,CAAEoZ,aAAc,kBAAmBnZ,UAAW,IACrDwG,YAAa,SAAC9K,GACVmd,EAAkBnd,EAAE+K,OAAOjD,MAC/B,EAAE,SAEDiF,EAAMvN,KAAI,SAACmG,EAAMC,GACd,OAAO,cAAC,IAAe,CAACkC,MAAOnC,EAAK,SAAcA,EAAa,OAAI,IAAMA,EAAW,MAA1CC,EAC9C,MAGHoK,GAAgBkN,IAAmBN,IAAYE,IAAiBE,GAAW,cAAC,IAAS,CAAC3Y,MAAO,CAAEC,UAAW,IAAMC,MAAM,UAAUC,QAtGhI,WACb,IAAIoK,EAAavL,IAAOA,IAAO2M,GAAcpI,OAAO,cAAgB,IAAMsV,EAAgB5V,QAAQU,OAC9F8G,EAAWzL,IAAOA,IAAO2M,GAAcpI,OAAO,cAAgB,IAAMsV,EAAgBlP,MAAMhG,OAE1F+G,EAAM,CACNhJ,cAAeU,GAAMP,MAAsB,cAC3CwG,OAAQ8P,EAAMd,OAAOhP,OACrBhK,KAAMW,IAAO2M,GAAchI,OAC3BoG,YAAaQ,EACbI,UAAWF,EACX5B,KAAMvI,EAASG,MAGnB7C,EAAkBH,EAA+BiN,GAAKhP,MAAK,SAAC8D,GAEpDA,GAAqB,KAAdA,EAAIlB,QACXmH,GAAQ,CACJK,QAAS,GACTpG,QAAS,yCACTqG,SAAU,SACVC,SAAU,MAEdrH,OAAOoN,QAAQC,QAEfvG,GAAQ,CACJK,QAAS,GACTpG,QAAS,uCACTqG,SAAU,SACVC,SAAU,MAGtB,GACJ,EAsEmK,SAAE,mBAEpJuS,GAAW,oBAAIvY,MAAO,CAAEmB,QAAS,GAAI,SAAC,gDACtCsX,GAAgB,oBAAIzY,MAAO,CAAEmB,QAAS,GAAI,SAAC,8CAC3CwX,GAAW,oBAAI3Y,MAAO,CAAEC,UAAW,GAAIkB,QAAS,GAAI,SAAC,sDAK1E,EC3MMsY,GAAc,IAAIC,cAAY,CACnCC,eAAgB,CACfC,QAAS,CACRC,sBAAsB,EACtBC,gBAAgB,EAChBC,UAAW,MAmRCC,GA9QO,WACrB,MAA2CC,YAAW,CAAC,cAAa,mBAA7DC,EAAO,KAAEC,EAAS,KAAEC,EAAY,KACjCtb,EAAMob,EAAmB,YAAK,EACpC,EAAgDta,IAAMuF,UAAS,GAAM,mBAA9DqD,EAAgB,KAAEC,EAAmB,KAE5C,EAA0B7I,IAAMya,YAC/B,SAACC,EAAgBC,GAChB,OAAQA,EAAOlU,MACd,IAAK,UACJ,OAAO,2BACHiU,GAAS,IACZxO,SAAS,EACT0O,YAAaD,EAAOC,YACpB/Z,KAAM8Z,EAAO9Z,MAAQ,KACrB0F,SAAUoU,EAAOpU,UAAY,KAC7BF,MAAOsU,EAAOtU,OAAS,KACvBG,SAAUmU,EAAOnU,UAAY,UAC7BT,WAAY4U,EAAO5U,YAAc,OAEnC,IAAK,cACJ,OAAO,2BACH2U,GAAS,IACZxO,SAAS,IAEX,IAAK,aACJ,OAAO,2BACHwO,GAAS,IACZjJ,WAAYkJ,EAAOlJ,aAAc,IAGrC,GACA,CACCmJ,cAAa1b,EACbgN,SAAShN,EACT2B,KAAM,KACN0F,SAAU,KACVF,MAAO,KACPG,SAAU,KACVT,WAAY,KACZ0L,YAAY,IAEb,mBApCMjP,EAAK,KAAEqY,EAAQ,KAsCtB7a,IAAMiI,WAAU,WACf,IAAM6S,EAAc,iDAAG,gGAEtB/b,OAAOgc,iBAAiB,uBAAuB,SAAChf,GAE/CoY,QAAQC,IAAI,mCAEZrY,EAAEif,iBAEejf,CAClB,IAGI0b,EAAS,CACZmD,aAAa,EACb/Z,KAAM,KACN0F,SAAU,KACVF,MAAO,KACPG,SAAU,KACVT,WAAY,MAET7G,GAAOP,aAAasc,QAAQ,cAC/Bxd,EAASyB,GACLgc,EAAW5c,KAAK6c,MAAMxc,aAAasc,QAAQ,aAAe,MAC9DxD,EAAS,CACRmD,aAAa,EACb/Z,KAAMqa,EAASra,KACf0F,SAAU2U,EAAS3U,SACnBF,MAAOnH,EACPsH,SAAU0U,EAAS1U,UAAY,UAC/BT,WAAYmV,EAASnV,aASvB8U,EAAS,aAAEpU,KAAM,WAAcgR,IAAU,2CACzC,kBAvCmB,mCAwCpBqD,GACD,GAAG,IAEH,IAAMM,EAAc,CAEnB9V,OAAO,WAAD,sCAAE,WAAO7G,GAAS,2EACvB8b,EAAU,YAAa9b,EAAK4H,MAAO,CAClC9G,QAAQ,EACR8b,KAAM,IACNC,OAAQ,SAETT,EAAS,aAAEpU,KAAM,UAAWmU,aAAa,GAASnc,IAAQ,2CAC1D,mDAPM,GAQPiC,SAAU8B,EACVgP,aAAa,WAAD,sCAAE,WAAOC,GAAmB,2EACvCoJ,EAAS,CAAEpU,KAAM,aAAcgL,WAAYA,IAAc,2CACzD,mDAFY,IAKd,OAAKjP,EAAMoY,aAAepY,EAAM0J,QAE9B,cAAC,IAAM,UACN,cAAC,EAAW,MAKV1J,EAAMoY,YAWV,cAAC7a,EAAYwb,SAAQ,CAAC1X,MAAOuX,EAAY,SACxC,cAAC,sBAAmB,CAACI,OAAQ3B,GAAY,SACxC,cAAC,IAAM,UACN,eAAC,IAAc,WACd,eAAC,IAAO,CAAC4B,UAAU,eAAc,UAChC,cAAC,IAAS,UACT,cAAC,IAAU,CAACnb,MAAM,WAAU,SAC3B,cAAC,IAAQ,CAACA,MAAM,QAAO,SAAEkC,EAAM+D,eAGjC,cAAC,IAAU,CAACoB,YAAU,WACrB,sBAAKxH,UAAU,eAAc,UAC5B,sBAAKA,UAAU,aAAY,UACL,KAApBqC,EAAMuD,YACN,mBAAG5F,UAAU,kBAAiB,SAAC,8BAEX,KAApBqC,EAAMuD,YACN,mBAAG5F,UAAU,kBAAiB,SAAC,mCAEb,WAAlBqC,EAAMgE,UAAyB,eAAC,IAAO,WACvC,cAAC,IAAa,UAAC,cAAC,IAAO,CAAC0O,WAAW,WAAU,SAAC,WAC9C,cAAC,IAAa,UAAC,cAAC,IAAO,CAACA,WAAW,cAAa,SAAC,uBACjD,cAAC,IAAa,UAAC,cAAC,IAAO,CAACA,WAAW,SAAQ,SAAC,gBAC5C,cAAC,IAAa,UAAC,cAAC,IAAO,CAACA,WAAW,qBAAoB,SAAC,kBACxD,cAAC,IAAa,UACb,cAAC,IAAO,CACP3U,QAAO,gCAAE,wFACRsI,GAAoB,GAAM,2CACzB,SACF,cAKgB,cAAlBrG,EAAMgE,UAA4B,eAAC,IAAO,WAC1C,cAAC,IAAa,UAAC,cAAC,IAAO,CAAC0O,WAAW,sBAAqB,SAAC,WACzD,cAAC,IAAa,UACb,cAAC,IAAO,CACP3U,QAAO,gCAAE,wFACRsI,GAAoB,GAAM,2CACzB,SACF,iBAOJ,qBAAK1I,UAAU,YAAW,SACzB,qBACCuG,IAAI,2BACJC,IAAK,mBACLvG,MAAO,CAAEwH,MAAO,iBAQrB,eAAC,IAAe,CAACzL,GAAG,eAAc,UACjC,cAAC,IAAK,CAACuf,OAAK,EAACL,KAAK,IAAG,SAClB7Y,EAAMgE,UAA8B,WAAlBhE,EAAMgE,SAAqD,cAAC,IAAQ,CAACnE,GAAG,wBAA1C,cAAC,IAAQ,CAACA,GAAG,eAEhE,cAAC,IAAK,CAACqZ,OAAK,EAACL,KAAK,WAAU,SAC3B,cAAC,GAAU,MAEZ,cAAC,IAAK,CAACK,OAAK,EAACL,KAAK,sBAAqB,SACtC,cAAC,GAAoB,MAEtB,cAAC,IAAK,CAACK,OAAK,EAACL,KAAK,cAAa,SAC9B,cAAC,EAAU,MAEZ,cAAC,IAAK,CAACK,OAAK,EAACL,KAAK,4BAA2B,SAC5C,cAAC,GAA0B,MAE5B,cAAC,IAAK,CAACK,OAAK,EAACL,KAAK,gCAA+B,SAChD,cAAC,GAAoB,MAEtB,cAAC,IAAK,CAACK,OAAK,EAACL,KAAK,iCAAgC,SACjD,cAAC,GAAY,MAEd,cAAC,IAAK,CAACK,OAAK,EAACL,KAAK,uCAAsC,SACvD,cAAC,GAAmB,MAErB,cAAC,IAAK,CAACK,OAAK,EAACL,KAAK,uCAAsC,SACvD,cAAC,GAAa,MAEf,cAAC,IAAK,CAACK,OAAK,EAACL,KAAK,2BAA0B,SAC3C,cAAC,GAAqB,MAGvB,cAAC,IAAK,CAACK,OAAK,EAACL,KAAK,SAAQ,SACzB,cAAC,EAAK,MAEP,cAAC,IAAK,CAACK,OAAK,EAACL,KAAK,yBAAwB,SACzC,cAAC,EAAkB,MAEpB,cAAC,IAAK,CAACA,KAAK,qBAAoB,SAC/B,cAAC,EAAe,MAEjB,cAAC,IAAK,CAACA,KAAK,qBAAoB,SAC/B,cAAC,GAAgB,MAElB,cAAC,IAAK,CAACA,KAAK,yBAAwB,SACnC,cAAC,GAAwB,MAE1B,cAAC,IAAK,CAACA,KAAK,0BAAyB,SACpC,cAAC,GAAwB,MAE1B,cAAC,IAAK,CAACA,KAAK,qBAAqBM,OAAQ,SAAAC,GAAK,OAAI,cAAC,GAAY,eAAKA,GAAQ,IAE5E,cAAC,IAAK,CAACD,OAAQ,kBAAM,cAAC,IAAQ,CAACtZ,GAAG,KAAM,OAEzC,cAAC,IAAQ,CACR+E,OAAQwB,EACR4B,iBAAiB,EACjBlD,SAAS,kBACTmD,OAAQ,OACR3K,QAAS,8BACToG,QAAS,CACR,CACCqB,KAAM,KACNE,KAAM,SACNH,SAAU,YACVE,QAAS,SAACkD,GACT7B,GAAoB,EACrB,GAED,CACCtB,KAAM,KACNC,QAAS,WACRqB,GAAoB,GACpB2R,EAAa,aACbK,EAAS,CAAEpU,KAAM,YACjB1H,OAAOC,SAASC,KAAO,GACxB,eAjJN,cAACc,EAAYwb,SAAQ,CAAC1X,MAAOuX,EAAY,SACxC,cAAC,IAAM,UACN,cAAC,EAAS,OAyJf,ECvUoBS,QACW,cAA7B9c,OAAOC,SAASQ,UAEe,UAA7BT,OAAOC,SAASQ,UAEhBT,OAAOC,SAASQ,SAAS+Y,MAAM,2DCfnC,IAYeuD,GAZS,SAACC,GACnBA,GAAeA,aAAuBC,UACxC,+BAAqBlgB,MAAK,YAAkD,IAA/CmgB,EAAM,EAANA,OAAQC,EAAM,EAANA,OAAQC,EAAM,EAANA,OAAQC,EAAM,EAANA,OAAQC,EAAO,EAAPA,QAC3DJ,EAAOF,GACPG,EAAOH,GACPI,EAAOJ,GACPK,EAAOL,GACPM,EAAQN,EACV,GAEJ,ECNAO,IAASX,OACR,cAAC,IAAMY,WAAU,UAChB,cAAC,GAAG,MAEL1d,SAAS2d,eAAe,SF2HnB,kBAAmBC,WACrBA,UAAUC,cAAcC,MACrB7gB,MAAK,SAAC8gB,GACLA,EAAaC,YACf,IACCnd,OAAM,SAACtC,GACN+W,QAAQ/W,MAAMA,EAAM0C,QACtB,IErHNgc,I","file":"static/js/main.66ac2b64.chunk.js","sourcesContent":["var map = {\n\t\"./ion-action-sheet.entry.js\": [\n\t\t260,\n\t\t5\n\t],\n\t\"./ion-alert.entry.js\": [\n\t\t261,\n\t\t6\n\t],\n\t\"./ion-app_8.entry.js\": [\n\t\t262,\n\t\t7\n\t],\n\t\"./ion-avatar_3.entry.js\": [\n\t\t263,\n\t\t17\n\t],\n\t\"./ion-back-button.entry.js\": [\n\t\t264,\n\t\t18\n\t],\n\t\"./ion-backdrop.entry.js\": [\n\t\t265,\n\t\t43\n\t],\n\t\"./ion-button_2.entry.js\": [\n\t\t266,\n\t\t19\n\t],\n\t\"./ion-card_5.entry.js\": [\n\t\t267,\n\t\t20\n\t],\n\t\"./ion-checkbox.entry.js\": [\n\t\t268,\n\t\t21\n\t],\n\t\"./ion-chip.entry.js\": [\n\t\t269,\n\t\t22\n\t],\n\t\"./ion-col_3.entry.js\": [\n\t\t270,\n\t\t44\n\t],\n\t\"./ion-datetime_3.entry.js\": [\n\t\t271,\n\t\t10\n\t],\n\t\"./ion-fab_3.entry.js\": [\n\t\t272,\n\t\t23\n\t],\n\t\"./ion-img.entry.js\": [\n\t\t273,\n\t\t45\n\t],\n\t\"./ion-infinite-scroll_2.entry.js\": [\n\t\t274,\n\t\t46\n\t],\n\t\"./ion-input.entry.js\": [\n\t\t275,\n\t\t24\n\t],\n\t\"./ion-item-option_3.entry.js\": [\n\t\t276,\n\t\t25\n\t],\n\t\"./ion-item_8.entry.js\": [\n\t\t277,\n\t\t26\n\t],\n\t\"./ion-loading.entry.js\": [\n\t\t278,\n\t\t27\n\t],\n\t\"./ion-menu_3.entry.js\": [\n\t\t279,\n\t\t28\n\t],\n\t\"./ion-modal.entry.js\": [\n\t\t280,\n\t\t8\n\t],\n\t\"./ion-nav_2.entry.js\": [\n\t\t281,\n\t\t14\n\t],\n\t\"./ion-popover.entry.js\": [\n\t\t282,\n\t\t9\n\t],\n\t\"./ion-progress-bar.entry.js\": [\n\t\t283,\n\t\t29\n\t],\n\t\"./ion-radio_2.entry.js\": [\n\t\t284,\n\t\t30\n\t],\n\t\"./ion-range.entry.js\": [\n\t\t285,\n\t\t31\n\t],\n\t\"./ion-refresher_2.entry.js\": [\n\t\t286,\n\t\t11\n\t],\n\t\"./ion-reorder_2.entry.js\": [\n\t\t287,\n\t\t16\n\t],\n\t\"./ion-ripple-effect.entry.js\": [\n\t\t288,\n\t\t47\n\t],\n\t\"./ion-route_4.entry.js\": [\n\t\t289,\n\t\t32\n\t],\n\t\"./ion-searchbar.entry.js\": [\n\t\t290,\n\t\t33\n\t],\n\t\"./ion-segment_2.entry.js\": [\n\t\t291,\n\t\t34\n\t],\n\t\"./ion-select_3.entry.js\": [\n\t\t292,\n\t\t35\n\t],\n\t\"./ion-slide_2.entry.js\": [\n\t\t293,\n\t\t48\n\t],\n\t\"./ion-spinner.entry.js\": [\n\t\t294,\n\t\t13\n\t],\n\t\"./ion-split-pane.entry.js\": [\n\t\t295,\n\t\t49\n\t],\n\t\"./ion-tab-bar_2.entry.js\": [\n\t\t296,\n\t\t36\n\t],\n\t\"./ion-tab_2.entry.js\": [\n\t\t297,\n\t\t15\n\t],\n\t\"./ion-text.entry.js\": [\n\t\t298,\n\t\t37\n\t],\n\t\"./ion-textarea.entry.js\": [\n\t\t299,\n\t\t38\n\t],\n\t\"./ion-toast.entry.js\": [\n\t\t300,\n\t\t39\n\t],\n\t\"./ion-toggle.entry.js\": [\n\t\t301,\n\t\t12\n\t],\n\t\"./ion-virtual-scroll.entry.js\": [\n\t\t302,\n\t\t50\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 165;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./ion-icon.entry.js\": [\n\t\t303,\n\t\t57\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 167;\nmodule.exports = webpackAsyncContext;","import axios from 'axios';\nimport moment from 'moment';\naxios.defaults.baseURL = process.env.NODE_ENV !== 'production' ? \"http://localhost:3006/app/api\" : \"https://portaleautoscuolacrocetta.it/app/api\";\naxios.defaults.timeout = 2 * 60 * 1000;\naxios.defaults.withCredentials = true;\naxios.defaults.credentials = 'same-origin';\naxios.defaults.mode = 'no-cors';\naxios.defaults.headers.post['Content-Type'] = 'application/json; charset=utf-8';\n\n\naxios.interceptors.response.use(function (response) {\n // Do something with response data\n return response;\n}, function (error) {\n // Do something with response error\n return Promise.reject(error);\n});\n\nvar uploadLink = axios.create({\n baseURL: process.env.NODE_ENV !== 'production' ? \"http://localhost:3006/app/api\" : \"https://portaleautoscuolacrocetta.it/app/api\",\n timeout: 120 * 1000\n});\n\nvar TOKEN_HEADER = null;\n\nvar configHeader = {\n \"X-Token\": TOKEN_HEADER,\n 'Content-Type': 'application/json',\n}\n\nexport const setToken = (_token_) => {\n TOKEN_HEADER = _token_;\n configHeader[\"X-Token\"] = _token_;\n}\n\nconst config = {\n \"headers\": {\n \"content-type\": 'multipart/form-data; boundary=----WebKitFormBoundaryqTqJIxvkWFYqvP5s',\n \"X-Token\": TOKEN_HEADER,\n }\n}\n\n\n\nconst LINK_API = process.env.NODE_ENV !== 'production' ? \"http://localhost:3006/app/api\" : \"https://portaleautoscuolacrocetta.it/app/api\";\nexport const VALIDATION_TOKEN = \"/validation-token\";\nexport const LOGIN_AUTH = \"/login-auth\";\nexport const INFO_USER_AUTH = \"/init-user-auth\";\nexport const MATERIALE_APP = \"/materiale-app\";\nexport const LOGOUT_AUTH = \"/logout-auth\";\nexport const INFO_USER = \"/info-user\";\nexport const INFO_USER_CORSI = \"/info-user-corsi\";\nexport const INFO_USER_CALENDARIO = \"/info-user-calendario\";\nexport const REMOVE_ORARIO_GUIDA_CALENDARIO = \"/user-remove-orario-guida\";\nexport const GET_ORARI_GUIDE_DAY = \"/get-orari-guide-day\";\nexport const UPDATE_ORARIO_STUDENT_CALENDARIO = \"/update-orario-student-calendario\";\nexport const ADD_ORARIO_STUDENT_CALENDARIO = \"/add-orario-student-calendario\";\nexport const INFO_STUDENT_CALENDARIO = \"/info-student-calendario\";\nexport const ORARI_CORSO_TEORICO = \"/info-orari-corso-teorico\";\nexport const SAVE_POSTO_AULA = \"/save-posto-aula\";\nexport const ANNULLA_POSTO_AULA = \"/annulla-posto-aula\";\nexport const CAPITOLI_MATERIALI_APP = \"/capitoli-materiale-app\";\nexport const LIST_ALLIEVI_INSTRUCTOR = \"/allievi-istruttore\";\n\nexport const SEARCH_ALLIEVI_INSTRUCTOR = \"/search-allievi-istruttore\";\n\nexport const CHECK_QRCODE_STUDENT = \"/check-qrcode-student\";\nexport const ADD_ORARIO_STUDENT_CALENDARIO_INSTRUCTOR = \"/add-orario-student-calendario-instructor\";\nexport const LINK_ADD_COIN_REGALO = \"/add-coin-regalo\";\nexport const LINK_ADD_COIN_PAGAMENTO = \"/add-coin-pagamento\";\nexport const GET_CALENDAR_INSTRUCTOR = \"/get-calendar-instructor\";\nexport const GET_ORARI_INSTRUCTOR = \"/get-orari-instructor\";\nexport const GET_ADD_ORARI_INSTRUCTOR = \"/add-orario-guide\";\nexport const DELETE_ORARIO_GUIDE = \"/delete-orario-guide\";\nexport const GET_METODI_PAGAMENTO = \"/get-metodi-pagamento\";\nexport const GET_SERVIZI = \"/get-servizi\";\nexport const GET_ISCRIZIONI = \"/iscrizioni-utente\";\nexport const GET_CALENDARIO_STUDENT = \"/get-calendario-student\";\n\n\nexport function requestWebService(link, dati) {\n return fetch(LINK_API + link, {\n method: 'POST',\n headers: configHeader,\n timeout: 2 * 60 * 1000,\n body: JSON.stringify(dati),\n })\n .then(response => response.json())\n .then(data => {\n if (process.env.NODE_ENV == 'production' && data && data.status && data.status == 401) {\n localStorage.removeItem('infouser')\n document.cookie = '__tknAC__=; Max-Age=-99999999;';\n window.location.href = '/';\n }\n \n if (data && data.tkn) {\n document.cookie = '__tknAC__=; Max-Age=-99999999;';\n var expires = moment().add(90, 'days').toString();\n var secure = 'secure';\n if (window.location.hostname == 'localhost') {\n secure = '';\n }\n document.cookie = \"__tknAC__=\" + data.tkn + \"; expires=\" + expires + \"; path=/;\" + secure + \";\";\n }\n return successHTTP(data);\n })\n .catch((error) => {\n\n return errorHTTP(error);\n });\n}\n\n\nexport function requestWebServiceOLD(link, dati) {\n\n return axios\n .post(link, { ...dati, withCredentials: true, mode: \"no-cors\", credentials: 'same-origin' }, configHeader)\n .then(function (response) {\n return successHTTP(response.data);\n })\n .catch(function (error) {\n return errorHTTP(error);\n });\n}\n\nexport function requestUpload(link, dati) {\n return uploadLink\n .post(link, dati, config)\n .then(function (response) {\n return successHTTP(response.data);\n })\n .catch(function (error) {\n return errorHTTP(error);\n });\n}\n\nconst successHTTP = (res) => {\n return res;\n};\n\nconst errorHTTP = (err) => {\n if (err == 'timeout of 10000ms exceeded') {\n return { error: true, message: 'timeout' };\n }\n return { error: true, ...err.response };\n};\n","import * as React from 'react';\n\nexport const AuthContext = React.createContext();","import { IonButton, IonRouterLink } from '@ionic/react';\nimport { Link } from 'react-router-dom';\nimport './ExploreContainer.css';\n\ninterface ContainerProps {\n msg: string;\n}\n\nconst ExploreContainer: React.FC = ({ msg }) => {\n return (\n
\n

{msg}

\n

{\n window.location.reload();\n }}>Ricarica la pagina\n

\n
\n );\n};\n\nexport default ExploreContainer;\n","import {\n\tIonButton,\n\tIonButtons,\n\tIonCard,\n\tIonCardContent,\n\tIonCardHeader,\n\tIonCardSubtitle,\n\tIonCardTitle,\n\tIonContent,\n\tIonHeader,\n\tIonIcon,\n\tIonItem,\n\tIonMenuToggle,\n\tIonPage,\n\tIonText,\n\tIonTitle,\n\tIonToolbar\n} from '@ionic/react';\nimport './Calendario.css';\nimport { menu } from 'ionicons/icons';\nimport { requestWebService, INFO_USER_CALENDARIO } from '../utils/webservice';\nimport { useQuery } from 'react-query';\nimport React, { useContext } from 'react';\nimport { AuthContext } from '../context/AuthContext';\nimport { IonLabel } from '@ionic/react';\nimport { Link } from 'react-router-dom';\nimport ExploreContainer from '../components/ExploreContainer';\n\nconst Calendario: React.FC = () => {\n\tconst { infoUser } = useContext(AuthContext);\n\n\tconst { status, data, error } = useQuery(\n\t\t'INFO_USER_CALENDARIO',\n\t\tasync (): Promise => {\n\t\t\tvar res = await requestWebService(INFO_USER_CALENDARIO, { id: infoUser.user });\n\n\t\t\tif (res && res.status == 200) {\n\t\t\t\treturn {\n\t\t\t\t\tcourses: res.courses,\n\t\t\t\t\tcalendar: res.calendar,\n\t\t\t\t\tcoinStudent: res.coinStudent,\n\t\t\t\t\tcoinDaPagare: res.coinDaPagare\n\t\t\t\t};\n\t\t\t}\n\t\t\tthrow new Error(res.status + ' ' + res.data);\n\t\t},\n\t\t{\n\t\t\tretry: 1\n\t\t}\n\t);\n\n\tconst renderPage = () => {\n\t\tif (status === 'loading') {\n\t\t\treturn

Loading

;\n\t\t}\n\t\tif (status === 'error') {\n\t\t\treturn ;\n\t\t}\n\n\n\t\tif (status === 'success') {\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t

** 1 COIN CORRISPONDE A 30 MINUTI DI GUIDA

\n\t\t\t\t\t{data.courses.length == 0 && }\n\t\t\t\t\t{data.courses.map((item: any, index: number) => {\n\t\t\t\t\t\tvar totale_coin = data.coinStudent.filter(\n\t\t\t\t\t\t\t(e: any) => e.id_iscrizione == item.id_iscrizione\n\t\t\t\t\t\t);\n\t\t\t\t\t\tvar coin_da_pagare = data.coinDaPagare.filter(\n\t\t\t\t\t\t\t(e: any) => e.id_iscrizione == item.id_iscrizione\n\t\t\t\t\t\t);\n\t\t\t\t\t\tvar calendar = data.calendar.filter((e: any) => e.id_iscrizione == item.id_iscrizione);\n\t\t\t\t\t\tvar coin_disponibili = 0;\n\t\t\t\t\t\tif (totale_coin.length > 0) {\n\t\t\t\t\t\t\tcoin_disponibili = totale_coin[0].totale_coin - calendar.length;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tCorso\n\t\t\t\t\t\t\t\t\t\t{item.corso}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t

{item.fullname_instructor || '-'}

\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t

Istruttore

\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{totale_coin.length > 0 ? totale_coin[0].totale_coin : 0}\n\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t

Totale coin

\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t

{coin_disponibili}

\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t

Coin disponibili

\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{coin_da_pagare.length > 0 ? (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tcoin_da_pagare[0].coinDaPagare\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t

Coin da pagare

\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\tVisualizza calendario\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\tVisualizza guide\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t
\n\t\t\t);\n\n\t\t}\n\t\treturn ;\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\tCalendario\n\t\t\t\t\n\t\t\t\n\t\t\t{renderPage()}\n\t\t\n\t);\n};\n\nexport default Calendario;\n","import moment from 'moment';\nexport function isCalcNumber(n) {\n return Number(n.toString().replace(',', '.'));\n}\n\n\nexport const langDatePicker = {\n lang: {\n \"locale\": \"it_IT\",\n \"placeholder\": \"Seleziona data\",\n \"rangePlaceholder\": [\"Data inizio\", \"Data fine\"],\n \"today\": \"Oggi\",\n \"now\": \"Adesso\",\n \"backToToday\": \"Domani\",\n \"ok\": \"Ok\",\n \"clear\": \"Rimuovi\",\n \"month\": \"Mese\",\n \"year\": \"Anno\",\n \"timeSelect\": \"Seleziona ora\",\n \"dateSelect\": \"Seleziona data\",\n \"monthSelect\": \"Seleziona mese\",\n \"yearSelect\": \"Seleziona anno\",\n \"decadeSelect\": \"Scegli un decennio\",\n \"previousMonth\": \"Mese precedente\",\n \"nextMonth\": \"Prossimo mese\",\n \"previousYear\": \"Ultimo anno\",\n \"nextYear\": \"Prossimo anno\",\n \"previousDecade\": \"Ultimo decennio\",\n \"nextDecade\": \"Prossimo decennio\",\n \"previousCentury\": \"L'ultimo secolo\",\n \"nextCentury\": \"Prossimo secolo\",\n \"yearFormat\": \"YYYY\",\n \"dateFormat\": \"M/D/YYYY\",\n \"dayFormat\": \"D\",\n \"dateTimeFormat\": \"M/D/YYYY HH:mm:ss\",\n \"monthFormat\": \"MMMM\",\n \"monthBeforeYear\": true,\n }\n};\n\n\nexport const capitalize = (s) => {\n if (typeof s !== 'string') return ''\n return s.charAt(0).toUpperCase() + s.slice(1)\n}\n\nexport function compare(a, b) {\n if (a.inizio < b.inizio) {\n return -1;\n }\n if (a.inizio > b.inizio) {\n return 1;\n }\n return 0;\n}\n\nexport function activeDaysCalendarStudent() {\n var currentDate = moment().add(1, 'day');\n var days = [];\n for (var i = 0; i <= 8; i++) {\n days.push(moment(currentDate).add(i, 'days').format(\"YYYY-MM-DD\"));\n }\n return days;\n}\n\nexport const extractUnixDate = (value) => {\n var format_date = moment.unix(value).format('YYYY-MM-DD')\n var date = moment(format_date + \" 00:00:00\").unix();\n return date;\n}\n\nexport const getUnixDate = (value) => {\n var format_date = moment(value).format('YYYY-MM-DD');\n var date = moment(format_date + \" 00:00:00\").unix();\n return date;\n}\n\n\nexport const sortCalendar = (a, b) => {\n if (a.data < b.data) {\n return -1;\n }\n if (a.data > b.data) {\n return 1;\n }\n return 0;\n}\n\n","import React, { useContext } from 'react';\nimport {\n\tIonContent,\n\tIonHeader,\n\tIonPage,\n\tIonTitle,\n\tIonToolbar,\n\tIonButtons,\n\tIonMenuToggle,\n\tIonButton,\n\tIonIcon,\n\tIonCard,\n\tIonCardHeader,\n\tIonCardSubtitle,\n\tIonCardTitle,\n\tIonCardContent,\n\tIonItem,\n\tIonLabel,\n\tIonText\n} from '@ionic/react';\nimport { menu } from 'ionicons/icons';\nimport './Corsi.css';\nimport moment from 'moment';\nimport { useQuery } from 'react-query';\nimport { requestWebService, INFO_USER_CORSI } from '../utils/webservice';\nimport { AuthContext } from '../context/AuthContext';\nimport { isCalcNumber } from '../utils/utils';\nimport { Link } from 'react-router-dom';\n\nconst Corsi: React.FC = () => {\n\tconst { infoUser } = useContext(AuthContext);\n\n\tconst { status, data, error } = useQuery(\n\t\t'INFO_USER_CORSI',\n\t\tasync (): Promise => {\n\t\t\tvar res = await requestWebService(INFO_USER_CORSI, { id: infoUser.user });\n\t\t\tif (res && res.status == 200) {\n\t\t\t\treturn {\n\t\t\t\t\tcourses: res.courses,\n\t\t\t\t\tpayments: res.payments\n\t\t\t\t};\n\t\t\t}\n\t\t\tthrow new Error(res.status + ' ' + res.data);\n\t\t},\n\t\t{\n\t\t\tretry: 1\n\t\t}\n\t);\n\n\tconst renderPage = () => {\n\t\tif (status === 'loading') {\n\t\t\treturn

Loading

;\n\t\t}\n\t\tif (status === 'error') {\n\t\t\treturn

Error Message : {error.message}

;\n\t\t}\n\n\t\tif (status === 'success') {\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t{data.courses.map((item: any, index: number) => {\n\t\t\t\t\t\tvar payments = data.payments.filter((e: any) => e.id_iscrizione == item.id_iscrizione);\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tCorso\n\t\t\t\t\t\t\t\t\t\t{item.corso}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t

{item.fullname_instructor || '-'}

\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t

Istruttore

\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t

{item.importo_iscrizione.toFixed(2)} ā‚¬

\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t

Importo

\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{(isCalcNumber(item.importo_iscrizione) -\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tisCalcNumber(item.sumPayments)).toFixed(2) + ' ā‚¬'}\n\t\t\t\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t

Da pagare

\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t

{moment(item.data_iscrizione).format('DD MMM YYYY')}

\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t

Data iscrizione

\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t{payments.length > 0 && (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\tVisualizza pagamenti\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t
\n\t\t\t);\n\t\t}\n\t\treturn ;\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\tCorsi\n\t\t\t\t\n\t\t\t\n\t\t\t{renderPage()}\n\t\t\n\t);\n};\n\nexport default Corsi;\n","import React, { useContext } from 'react';\nimport {\n\tIonContent,\n\tIonHeader,\n\tIonPage,\n\tIonTitle,\n\tIonToolbar,\n\tIonButtons,\n\tIonMenuToggle,\n\tIonButton,\n\tIonIcon,\n\tIonItem,\n\tIonLabel,\n\tIonText\n} from '@ionic/react';\nimport { menu } from 'ionicons/icons';\nimport './DatiInfoStudent.css';\nimport { useQuery } from 'react-query';\nimport { requestWebService, INFO_USER } from '../utils/webservice';\nimport { AuthContext } from '../context/AuthContext';\nimport moment from 'moment';\n\nconst DatiInfoStudent: React.FC = () => {\n\tconst { infoUser } = useContext(AuthContext);\n\n\tconst { status, data, error } = useQuery(\n\t\t'INFO_USER',\n\t\tasync () => {\n\t\t\tvar res = await requestWebService(INFO_USER, { id: infoUser.user });\n\t\t\tif (res && res.status == 200) {\n\t\t\t\treturn res.user;\n\t\t\t}\n\t\t\tthrow new Error(res.status + ' ' + res.data);\n\t\t},\n\t\t{\n\t\t\tretry: 1\n\t\t}\n\t);\n\n\tconst renderPage = () => {\n\t\tif (status === 'loading') {\n\t\t\treturn

Loading

;\n\t\t}\n\t\tif (status === 'error') {\n\t\t\treturn

Error Message : {error.message}

;\n\t\t}\n\n\t\tif (status === 'success') {\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t{data.contract && \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t

Scarica contratto

\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

Contratto

\n\t\t\t\t\t\t
\n\t\t\t\t\t
}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t

{data.nome}

\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

Nome

\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t

{data.cognome}

\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

Cognome

\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t{data.data_nascita && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t

{moment(data.data_nascita).format(\"DD MMM YYYY\")}

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

Data di nascita

\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t)}\n\t\t\t\t\t{data.luogo_nascita && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t

{data.luogo_nascita}

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

Luogo di nascita

\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t)}\n\t\t\t\t\t{data.codice_fiscale && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t

{data.codice_fiscale}

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

Codice fiscale

\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t)}\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t

{data.email}

\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

Email

\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t{data.cellulare && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t

{data.cellulare}

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

Cellulare

\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t)}\n\t\t\t\t\t{data.telefono && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t

{data.telefono}

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

Telefono

\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t)}\n\t\t\t\t\t{data.provincia && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t

{data.provincia}

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

Provincia

\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t)}\n\t\t\t\t\t{data.localita && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t

{data.localita}

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

LocalitĆ 

\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t)}\n\t\t\t\t\t{data.indirizzo && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t

{data.indirizzo}

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

Indirizzo

\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t)}\n\t\t\t\t\t{data.note_allievo && (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t

{data.note_allievo}

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

Note

\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t)}\n\t\t\t\t
\n\t\t\t);\n\t\t}\n\n\t\treturn ;\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\tI miei dati\n\t\t\t\t\n\t\t\t\n\t\t\t{renderPage()}\n\t\t\n\t);\n};\n\nexport default DatiInfoStudent;\n","import React, { useContext, useState } from 'react';\nimport {\n\tIonItem,\n\tIonLabel,\n\tIonContent,\n\tIonInput,\n\tIonPage,\n\tIonActionSheet,\n\tIonButton,\n\tIonLoading,\n\tuseIonToast\n} from '@ionic/react';\nimport './Login.css';\nimport { requestWebService, LOGIN_AUTH, setToken } from '../utils/webservice';\nimport { AuthContext } from '../context/AuthContext';\n\nconst LoginPage: React.FC = () => {\n\tconst { signIn } = useContext(AuthContext);\n\tconst [ showLoading, setShowLoading ] = useState(false);\n\tconst [ showActionSheet, setShowActionSheet ] = useState(false);\n\tconst [ present ] = useIonToast();\n\n\tconst [ state, setState ] = useState({\n\t\temail: '',\n\t\tpassword: '',\n\t\tautoscuola: ''\n\t});\n\n\tconst login = async () => {\n\t\tif (!state.email) {\n\t\t\tpresent({\n\t\t\t\tbuttons: [],\n\t\t\t\tmessage: 'Email campo obbligatorio',\n\t\t\t\tposition: 'top',\n\t\t\t\tduration: 2500\n\t\t\t});\n\t\t\treturn false;\n\t\t}\n\t\tif (!state.password) {\n\t\t\tpresent({\n\t\t\t\tbuttons: [],\n\t\t\t\tmessage: 'Password campo obbligatorio',\n\t\t\t\tposition: 'top',\n\t\t\t\tduration: 2500\n\t\t\t});\n\t\t\treturn false;\n\t\t}\n\t\tif (!state.autoscuola) {\n\t\t\tpresent({\n\t\t\t\tbuttons: [],\n\t\t\t\tmessage: 'Autoscuola campo obbligatorio',\n\t\t\t\tposition: 'top',\n\t\t\t\tduration: 2500\n\t\t\t});\n\t\t\treturn false;\n\t\t}\n\t\tsetShowLoading(true);\n\t\tvar res = await requestWebService(LOGIN_AUTH, state);\n\t\tif (res && res.status == 200 && res.token) {\n\t\t\tlocalStorage.setItem(\n\t\t\t\t'infouser',\n\t\t\t\tJSON.stringify({\n\t\t\t\t\tautoscuola: res.user.autoscuola,\n\t\t\t\t\tuser: res.user.user,\n\t\t\t\t\tfullname: res.user.fullname,\n\t\t\t\t\tuserType: res.user.type\n\t\t\t\t})\n\t\t\t);\n\t\t\tsetToken(res.token);\n\t\t\tsignIn({\n\t\t\t\tautoscuola: res.user.autoscuola,\n\t\t\t\tuser: res.user.user,\n\t\t\t\tfullname: res.user.fullname,\n\t\t\t\ttoken: res.token,\n\t\t\t\tuserType: res.user.type\n\t\t\t});\n\t\t} else if (res && res.status == 201) {\n\t\t\tpresent({\n\t\t\t\tbuttons: [],\n\t\t\t\tmessage: 'Errore: il tuo account ĆØ stato bloccato.',\n\t\t\t\tposition: 'top',\n\t\t\t\tduration: 2500\n\t\t\t});\n\t\t} else if (res && res.status == 1000) {\n\t\t\tpresent({\n\t\t\t\tbuttons: [],\n\t\t\t\tmessage: 'Errore: impossibile eseguire il login.',\n\t\t\t\tposition: 'top',\n\t\t\t\tduration: 2500\n\t\t\t});\n\t\t} else {\n\t\t\tpresent({\n\t\t\t\tbuttons: [],\n\t\t\t\tmessage: 'Errore: impossibile eseguire il login.',\n\t\t\t\tposition: 'top',\n\t\t\t\tduration: 2500\n\t\t\t});\n\t\t}\n\t\tsetShowLoading(false);\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\"Logo\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tEmail\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tsetState({\n\t\t\t\t\t\t\t\t\t\t\t...state,\n\t\t\t\t\t\t\t\t\t\t\temail: e.detail.value\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tPassword\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tsetState({\n\t\t\t\t\t\t\t\t\t\t\t...state,\n\t\t\t\t\t\t\t\t\t\t\tpassword: e.detail.value\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tsetShowActionSheet(true);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{!state.autoscuola && Seleziona autoscuola}\n\t\t\t\t\t\t\t\t{state.autoscuola == '1' && Autoscuola Crocetta Parma}\n\t\t\t\t\t\t\t\t{state.autoscuola == '3' && Autoscuola Crocetta Langhirano}\n\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tlogin();\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tstyle={{ minWidth: 120, marginTop: 20 }}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tEntra\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t\t setShowActionSheet(false)}\n\t\t\t\tcssClass=\"my-custom-class\"\n\t\t\t\tbuttons={[\n\t\t\t\t\t{\n\t\t\t\t\t\ttext: 'Autoscuola Crocetta Parma',\n\t\t\t\t\t\thandler: () => {\n\t\t\t\t\t\t\tsetShowActionSheet(false);\n\t\t\t\t\t\t\tsetState({\n\t\t\t\t\t\t\t\t...state,\n\t\t\t\t\t\t\t\tautoscuola: '1'\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\ttext: 'Autoscuola Crocetta Langhirano',\n\t\t\t\t\t\thandler: () => {\n\t\t\t\t\t\t\tsetShowActionSheet(false);\n\t\t\t\t\t\t\tsetState({\n\t\t\t\t\t\t\t\t...state,\n\t\t\t\t\t\t\t\tautoscuola: '3'\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\ttext: 'Chiudi',\n\t\t\t\t\t\trole: 'cancel',\n\t\t\t\t\t\thandler: () => {}\n\t\t\t\t\t}\n\t\t\t\t]}\n\t\t\t/>\n\t\t\t setShowLoading(false)}\n\t\t\t\tmessage={''}\n\t\t\t/>\n\t\t\t\n\t\t
\n\t);\n};\n\nexport default LoginPage;\n","import React from 'react';\nimport { IonContent, IonPage } from '@ionic/react';\nimport './Loading.css';\n\nconst LoadingPage: React.FC = () => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default LoadingPage;\n","import React from 'react';\nimport {\n\tIonContent,\n\tIonPage,\n\tIonHeader,\n\tIonToolbar,\n\tIonTitle,\n\tIonButtons,\n\tIonBackButton,\n\tIonCard,\n\tIonCardHeader,\n\tIonCardSubtitle,\n\tIonCardTitle,\n\tIonCardContent,\n\tIonItem,\n\tIonLabel,\n\tIonText\n} from '@ionic/react';\nimport './PagamentoCorso.css';\nimport moment from 'moment';\nimport { useLocation } from 'react-router-dom';\n\nconst PagamentoCorsoPage: React.FC = () => {\n\tconst { state } = useLocation();\n\n\tconst [data, setData] = React.useState({\n\t\tpayments: [],\n\t\tcorso: ''\n\t});\n\n\tReact.useEffect(() => {\n\t\tfunction init() {\n\t\t\tif (!state) {\n\t\t\t\twindow.location.href = '/corsi';\n\t\t\t} else {\n\t\t\t\tsetData({\n\t\t\t\t\tpayments: state.payments,\n\t\t\t\t\tcorso: state.corso\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tinit();\n\t}, []);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{'Pagamenti'}\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t

{data.corso}

\n\t\t\t\t{data.payments &&\n\t\t\t\t\tdata.payments.map((item: any, index: number) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tPagamento\n\t\t\t\t\t\t\t\t\t\t{item.corso}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t

{item.importo.toFixed(2)} ā‚¬

\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t

Importo

\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t

{moment(item.data).format('DD MMM YYYY')}

\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t

Data

\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t

{item.method}

\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t

Tipo di pagamento

\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t

{item.note}

\n\t\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t\t

note

\n\t\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default PagamentoCorsoPage;\n","import { IonList, IonRadioGroup, IonLabel, IonItem, IonRadio, IonSpinner, IonAlert, } from '@ionic/react';\nimport React from 'react';\nimport './ModalOrari.css';\nimport moment from 'moment';\nimport { requestWebService, GET_ORARI_GUIDE_DAY, UPDATE_ORARIO_STUDENT_CALENDARIO, ADD_ORARIO_STUDENT_CALENDARIO } from '../utils/webservice';\n\ninterface ContainerProps {\n istruttore: number;\n onChange: Function;\n isOpen: Boolean;\n day?: String;\n idIscrizione: number;\n iduser: number;\n id: number;\n}\n\ninterface OrariProps {\n inizio: string;\n fine: string;\n show: boolean;\n}\n\nfunction compare(a: any, b: any) {\n if (a.inizio < b.inizio) {\n return -1;\n }\n if (a.inizio > b.inizio) {\n return 1;\n }\n return 0;\n}\n\n\nconst ModalOrari: React.FC = ({ isOpen, istruttore, onChange, day, idIscrizione, iduser, id }) => {\n\n const [selected, setSelected] = React.useState('');\n const [showLoading, setShowLoading] = React.useState(false);\n const [showConfirmModal, setShowConfirmModal] = React.useState(false);\n const [orari, setOrari] = React.useState([]);\n\n\n React.useEffect(() => {\n async function init() {\n let _array: OrariProps[] = [];\n\n\n requestWebService(GET_ORARI_GUIDE_DAY, { data: moment(day + \"T00:00:00\").unix(), inst: istruttore }).then((res) => {\n \n if (res && res.status == 200 && res.orari.length > 0) {\n var date = moment(day + \"T00:00:00\").format(\"YYYY-MM-DD\");\n\n res.orari.forEach((item: any) => {\n var _conf = moment(day + \"T00:00:00\").format(\"YYYY-MM-DD\");\n var oggi = moment(day + \"T00:00:00\").format(\"YYYY-MM-DD\");\n var orainizio = moment(date + \"T\" + item.ora_inizio);\n var orafine = moment(date + \"T\" + item.ora_fine);\n var mm = orafine.diff(orainizio, 'minute') / 30;\n var _conf_date = moment(day + \"T00:00:00\");\n for (var i = 0; i < mm; i++) {\n var _show = true;\n var _d = moment(_conf_date).format('YYYY-MM-DD');\n var _o_i = moment(_d + \"T\" + moment(orainizio).add(30 * i, 'm').format(\"HH:mm\")).unix();\n if ((oggi == _conf && moment(day + \"T00:00:00\").format(\"HH:mm\") > moment(orainizio).add(30 * i, 'm').format(\"HH:mm\"))) {\n _show = false\n }\n if (moment().unix() > _o_i) {\n _show = false\n }\n _array.push({\n inizio: moment(orainizio).add(30 * i, 'm').format(\"HH:mm\"),\n fine: moment(orainizio).add(30 * (i + 1), 'm').format(\"HH:mm\"),\n show: _show\n });\n }\n });\n _array = _array.sort(compare);\n res.users.forEach((item: any) => {\n var ora_inizio = \"\";\n var ora_inizio = moment.unix(item.data_inizio).format(\"HH:mm\");\n var _index = _array.findIndex(e => e.inizio == ora_inizio);\n if (_index >= 0) {\n _array[_index].show = false;\n }\n });\n setOrari(_array);\n }\n setShowLoading(false);\n })\n }\n if (isOpen) {\n init();\n }\n\n return () => {\n setSelected('');\n }\n\n }, [isOpen]);\n\n\n const selectOrario = (value: string) => {\n\n if (value) {\n setSelected(value);\n setShowConfirmModal(true);\n\n }\n\n }\n\n const saveNewOrario = () => {\n //var date = moment().format(\"YYYY-MM-DD\")\n var datainizio = moment(day + \"T\" + selected.split(\"-\")[0] + \":00\").format(\"YYYY-MM-DD HH:mm:ss\");\n var datafine = moment(day + \"T\" + selected.split(\"-\")[1] + \":00\").format(\"YYYY-MM-DD HH:mm:ss\");\n var val = {\n id: id || null,\n iduser: iduser,\n id_iscrizione: idIscrizione || null,\n data: moment(day + \"\").unix(),\n data_inizio: moment(datainizio).unix(),\n data_fine: moment(datafine).unix(),\n inst: istruttore\n };\n\n \n\n if (datainizio && datafine && id) {\n requestWebService(UPDATE_ORARIO_STUDENT_CALENDARIO, val).then((res) => {\n if (res && res.status == 200) {\n onChange();\n }\n })\n } else if (datainizio && datafine) { \n requestWebService(ADD_ORARIO_STUDENT_CALENDARIO, val).then((res) => {\n if (res && res.status == 200) {\n onChange();\n }\n })\n }\n }\n\n return (\n
\n {showLoading && }\n {!showLoading && \n {\n selectOrario(e.detail.value)\n }}>\n {orari.map((item: OrariProps, index: number) => {\n return \n {item.inizio + \" - \" + item.fine}\n \n \n })}\n \n }\n\n {\n setSelected('');\n setShowConfirmModal(false);\n\n }\n },\n {\n text: 'SI',\n handler: () => {\n setShowConfirmModal(false);\n saveNewOrario();\n }\n }\n ]}\n />\n
\n );\n};\n\nexport default ModalOrari;\n","import {\n\tIonButton,\n\tIonButtons,\n\tIonContent,\n\tIonHeader,\n\tIonItem,\n\tIonPage,\n\tIonText,\n\tIonTitle,\n\tIonToolbar,\n\tIonBackButton,\n\tIonModal,\n\tIonLabel,\n\tIonIcon,\n\tuseIonToast,\n\tIonAlert,\n\tIonLoading\n} from '@ionic/react';\nimport './CalendarioCorso.css';\nimport { Calendar, Select, Col, Row } from 'antd';\nimport React from 'react';\nimport moment from 'moment';\nimport { useLocation, useParams } from 'react-router-dom';\nimport { getUnixDate, activeDaysCalendarStudent } from '../utils/utils';\nimport 'moment/locale/it';\nimport locale from 'antd/es/date-picker/locale/it_IT';\nimport { createOutline, trashOutline } from 'ionicons/icons';\nimport { requestWebService, REMOVE_ORARIO_GUIDA_CALENDARIO, INFO_STUDENT_CALENDARIO } from '../utils/webservice';\nimport ModalOrari from '../components/ModalOrari';\nimport { AuthContext } from '../context/AuthContext';\n\nconst CalendarioCorsoPage: React.FC = () => {\n\tconst { infoUser } = React.useContext(AuthContext);\n\tlet { corso, iscrizione } = useParams();\n\n\tconst [present] = useIonToast();\n\tconst [showModal, setShowModal] = React.useState({\n\t\tisOpen: false,\n\t\tday: '',\n\t\tid: 0\n\t});\n\tconst [calendar, setCalendar] = React.useState>([]);\n\tconst [items, setItems] = React.useState>([]);\n\tconst [coin, setCoin] = React.useState(0);\n\tconst [instructor, setInstructor] = React.useState(0);\n\tconst [btnGuida, setBtnGuida] = React.useState(0);\n\tconst [selectedDate, setSelectedDate] = React.useState(moment());\n\tconst [showConfirmModal, setShowConfirmModal] = React.useState({\n\t\tshow: false,\n\t\tid: 0\n\t});\n\tconst [showLoading, setShowLoading] = React.useState(false);\n\n\tReact.useEffect(() => {\n\t\tif (corso && iscrizione) {\n\t\t\tgetInfoStudentCalendario('');\n\t\t}\n\t}, []);\n\n\n\tconst getInfoStudentCalendario = async (loading: string) => {\n\t\trequestWebService(INFO_STUDENT_CALENDARIO, { id_iscrizione: iscrizione }).then((res) => {\n\t\t\tif (res && res.status == 200) {\n\t\t\t\tif (!res.instructor) {\n\t\t\t\t\twindow.history.back();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\n\t\t\t\tconst checkData = res.calendar.filter(\n\t\t\t\t\t(e: any) => moment.unix(e.data).format('YYYY-MM-DD') == moment(selectedDate).format('YYYY-MM-DD')\n\t\t\t\t);\n\t\t\t\tsetCalendar(res.calendar);\n\t\t\t\tsetItems(checkData);\n\t\t\t\tsetInstructor(res.instructor);\n\t\t\t\tsetBtnGuida(res.btn_guida);\n\t\t\t\tsetCoin(res.coin || 0);\n\t\t\t} else {\n\t\t\t\twindow.history.back();\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (loading) {\n\t\t\t\tsetShowLoading(false);\n\t\t\t}\n\t\t})\n\t}\n\n\n\n\tconst disabledDate = (current: any) => {\n\t\tif (!current) {\n\t\t\treturn false;\n\t\t}\n\t\t// if (moment(current).format('YYYY-MM-DD') < moment().format('YYYY-MM-DD')) {\n\t\t// \treturn true;\n\t\t// }\n\t\t// if (current.weekday() == 5 || current.weekday() == 6) {\n\t\t// \treturn true;\n\t\t// }\n\n\t\treturn checkActiveDay(current);\n\t};\n\n\tconst checkActiveDay = (current: any) => {\n\t\tvar days = activeDaysCalendarStudent();\n\t\tvar filter = days.filter((e) => e == moment(current).format('YYYY-MM-DD'));\n\t\tif (filter && filter.length > 0) {\n\t\t\tif (getUnixDate(new Date()) <= getUnixDate(filter[0] + 'T00:00:00')) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tif (moment(current).format('YYYY-MM-DD') <= moment().format('YYYY-MM-DD')) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t};\n\n\tconst dateCellRender = (value: any) => {\n\t\tconst checkData = calendar.filter(\n\t\t\t(e: any) => moment.unix(e.data).format('YYYY-MM-DD') == moment(value).format('YYYY-MM-DD')\n\t\t);\n\t\tif (checkData && checkData.length > 0) {\n\t\t\treturn (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t);\n\t\t}\n\n\t\treturn ;\n\t};\n\n\tconst onSelect = (value: any) => {\n\t\tconst checkData = calendar.filter(\n\t\t\t(e: any) => moment.unix(e.data).format('YYYY-MM-DD') == moment(value).format('YYYY-MM-DD')\n\t\t);\n\t\tsetSelectedDate(value);\n\t\tsetItems(checkData);\n\t};\n\n\tconst checkAddButton = () => {\n\t\tif (moment(selectedDate).format('YYYY-MM-DD') < moment().format('YYYY-MM-DD')) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (selectedDate.weekday() == 5 || selectedDate.weekday() == 6) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t};\n\n\tconst removeDayCalendar = (id: number) => {\n\t\tsetShowLoading(true);\n\t\trequestWebService(REMOVE_ORARIO_GUIDA_CALENDARIO, { id: id }).then((res) => {\n\t\t\tvar msg = 'Errore : impossibile eliminare i dati.';\n\t\t\tif (res && res && res.status == 200) {\n\t\t\t\tvar findIndex = items.findIndex((e: any) => e.id == id);\n\t\t\t\tvar findIndexItems = items.findIndex((e: any) => e.id == id);\n\t\t\t\titems.splice(findIndex, 1);\n\t\t\t\titems.splice(findIndexItems, 1);\n\t\t\t\tsetItems(items);\n\t\t\t\tmsg = 'Guida eliminata con succes';\n\t\t\t}\n\t\t\tsetShowLoading(false);\n\t\t\tpresent({\n\t\t\t\tbuttons: [],\n\t\t\t\tmessage: msg,\n\t\t\t\tposition: 'bottom',\n\t\t\t\tduration: 4500\n\t\t\t});\n\t\t});\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{/* {\n\t\t\t\t\t\t\t\t\twindow.history.back();\n\t\t\t\t\t\t\t\t}} slot=\"end\" ios={chevronBackOutline} md={arrowBackOutline} /> */}\n\t\t\t\t\tCalendario\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t {\n\t\t\t\t\t\t\tconst start = 0;\n\t\t\t\t\t\t\tconst end = 12;\n\t\t\t\t\t\t\tconst monthOptions = [];\n\n\t\t\t\t\t\t\tconst current = value.clone();\n\t\t\t\t\t\t\tconst localeData = value.localeData();\n\t\t\t\t\t\t\tconst months = [];\n\t\t\t\t\t\t\tfor (let i = 0; i < 12; i++) {\n\t\t\t\t\t\t\t\tcurrent.month(i);\n\t\t\t\t\t\t\t\tmonths.push(localeData.monthsShort(current));\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfor (let index = start; index < end; index++) {\n\t\t\t\t\t\t\t\tmonthOptions.push(\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{months[index]}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst month = value.month();\n\n\t\t\t\t\t\t\tconst year = value.year();\n\t\t\t\t\t\t\tconst year_ = parseInt(moment().format(\"YYYY\"));\n\t\t\t\t\t\t\tconst options = [];\n\t\t\t\t\t\t\tfor (let i = year_; i < year_ + 2; i += 1) {\n\t\t\t\t\t\t\t\toptions.push(\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{i}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\t\t\tconst mesi = [\n\t\t\t\t\t\t\t\t{ titolo: 'gen', value: 1 },\n\t\t\t\t\t\t\t\t{ titolo: 'feb', value: 2 },\n\t\t\t\t\t\t\t\t{ titolo: 'mar', value: 3 },\n\t\t\t\t\t\t\t\t{ titolo: 'apr', value: 4 },\n\t\t\t\t\t\t\t\t{ titolo: 'mag', value: 5 },\n\t\t\t\t\t\t\t\t{ titolo: 'giu', value: 6 },\n\t\t\t\t\t\t\t\t{ titolo: 'lug', value: 7 },\n\t\t\t\t\t\t\t\t{ titolo: 'ago', value: 8 },\n\t\t\t\t\t\t\t\t{ titolo: 'set', value: 9 },\n\t\t\t\t\t\t\t\t{ titolo: 'ott', value: 10 },\n\t\t\t\t\t\t\t\t{ titolo: 'nov', value: 11 },\n\t\t\t\t\t\t\t\t{ titolo: 'dic', value: 12 }\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst now = value.clone().year(parseInt(newYear));\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange(now);\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={String(year)}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{options}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\tvar filter = mesi.filter((e: any) => e.titolo == selectedMonth);\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst newValue = value.clone();\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewValue.month(parseInt((filter[0].value - 1).toString(), 10));\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange(newValue);\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{monthOptions}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tdateCellRender={dateCellRender}\n\t\t\t\t\t\tlocale={locale}\n\t\t\t\t\t\tmode={'month'}\n\t\t\t\t\t\tdisabledDate={disabledDate}\n\t\t\t\t\t\tfullscreen={false}\n\t\t\t\t\t\tonSelect={onSelect}\n\t\t\t\t\t\tstyle={{ width: window.innerWidth }}\n\t\t\t\t\t/>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t{coin > 0 && (btnGuida > 0) && {\n\n\t\t\t\t\t\t\t\tsetShowModal({\n\t\t\t\t\t\t\t\t\tisOpen: true,\n\t\t\t\t\t\t\t\t\tday: moment(selectedDate).format(\"YYYY-MM-DD\"),\n\t\t\t\t\t\t\t\t\tid: 0\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\tAggiungi nuova guida\n\t\t\t\t\t\t}\n\t\t\t\t\t
\n\n\t\t\t\t\t{items && items.map((item: any, index: number) => {\n\t\t\t\t\t\tvar _ora_inizio = moment.unix(item.data_inizio);\n\t\t\t\t\t\tvar _current_date = moment();\n\t\t\t\t\t\tvar hh = _ora_inizio.diff(_current_date, 'hour');\n\t\t\t\t\t\tvar iconEdit = false;\n\t\t\t\t\t\tif (hh > 24) {\n\t\t\t\t\t\t\ticonEdit = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t{moment.unix(item.data_inizio).format('HH:mm')} -{' '}\n\t\t\t\t\t\t\t\t\t\t\t{moment.unix(item.data_fine).format('HH:mm')}{' '}\n\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t

Orario guida

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{iconEdit && {\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tsetShowModal({\n\t\t\t\t\t\t\t\t\t\tisOpen: true,\n\t\t\t\t\t\t\t\t\t\tday: moment.unix(item.data).format(\"YYYY-MM-DD\"),\n\t\t\t\t\t\t\t\t\t\tid: item.id\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}} />}\n\t\t\t\t\t\t\t\t{iconEdit && (\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tsetShowConfirmModal({\n\t\t\t\t\t\t\t\t\t\t\t\tshow: true,\n\t\t\t\t\t\t\t\t\t\t\t\tid: item.id\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t
\n\t\t\t
\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tsetShowModal({\n\t\t\t\t\t\t\t\t\t\tisOpen: false,\n\t\t\t\t\t\t\t\t\t\tday: '',\n\t\t\t\t\t\t\t\t\t\tid: 0\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tChiudi\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tSeleziona orario\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\tsetShowModal({\n\t\t\t\t\t\t\tisOpen: false,\n\t\t\t\t\t\t\tday: '',\n\t\t\t\t\t\t\tid: 0\n\t\t\t\t\t\t});\n\t\t\t\t\t\tsetShowLoading(true);\n\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\tgetInfoStudentCalendario('loading');\n\t\t\t\t\t\t}, 2 * 500)\n\t\t\t\t\t}} />\n\t\t\t\t\n\t\t\t\n\n\t\t\t {\n\t\t\t\t\t\t\tsetShowConfirmModal({\n\t\t\t\t\t\t\t\tshow: false,\n\t\t\t\t\t\t\t\tid: 0\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\ttext: 'SI',\n\t\t\t\t\t\thandler: () => {\n\t\t\t\t\t\t\tremoveDayCalendar(showConfirmModal.id);\n\t\t\t\t\t\t\tsetShowConfirmModal({\n\t\t\t\t\t\t\t\tshow: false,\n\t\t\t\t\t\t\t\tid: 0\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]}\n\t\t\t/>\n\n\t\t\t setShowLoading(false)}\n\t\t\t\tmessage={''}\n\t\t\t/>\n\t\t
\n\t);\n};\n\nexport default CalendarioCorsoPage;\n","\nimport { IonSpinner } from '@ionic/react';\nimport './SpinnerLoading.css';\n\n\n\nconst SpinnerLoading: React.FC = () => {\n return (\n
\n \n
\n );\n};\n\nexport default SpinnerLoading;\n","import {\n\tIonButtons,\n\tIonContent,\n\tIonHeader,\n\tIonItem,\n\tIonPage,\n\tIonText,\n\tIonTitle,\n\tIonToolbar,\n\tIonBackButton,\n\tIonLabel,\n\tIonSpinner\n} from '@ionic/react';\nimport './ListGuide.css';\nimport React from 'react';\nimport moment from 'moment';\nimport { useParams } from 'react-router-dom';\nimport 'moment/locale/it';\nimport { requestWebService, INFO_STUDENT_CALENDARIO } from '../utils/webservice';\nimport SpinnerLoading from '../components/SpinnerLoading';\n\nconst ListGuidePage: React.FC = () => {\n\tlet { corso, iscrizione } = useParams();\n\n\tconst [calendar, setCalendar] = React.useState>([]);\n\tconst [loading, setLoading] = React.useState(true);\n\tReact.useEffect(() => {\n\t\tif (corso && iscrizione) {\n\t\t\tgetInfoStudentCalendario();\n\t\t}\n\t}, []);\n\n\tconst getInfoStudentCalendario = async () => {\n\t\trequestWebService(INFO_STUDENT_CALENDARIO, { id_iscrizione: iscrizione }).then((res) => {\n\t\t\tif (res && res.status == 200) {\n\t\t\t\tif (!res.instructor) {\n\t\t\t\t\twindow.history.back();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tvar _calendar: any = new Array();\n\t\t\t\tif (res.calendar && res.calendar.length > 0) {\n\t\t\t\t\t_calendar = res.calendar.sort((a: any, b: any) => (a.data < b.data) ? 1 : ((b.data < a.data) ? -1 : 0))\n\t\t\t\t}\n\t\t\t\tsetLoading(false);\n\t\t\t\tsetCalendar(_calendar);\n\t\t\t} else {\n\t\t\t\twindow.history.back();\n\t\t\t\treturn false;\n\t\t\t}\n\t\t})\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\tGuide fatte/da fare\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{loading && calendar.length == 0 && }\n\t\t\t\t{!loading && calendar && calendar.map((item, index) => {\n\t\t\t\t\treturn \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t

{moment.unix(item.data_inizio).format(\"HH:mm\")} - {moment.unix(item.data_inizio).format(\"HH:mm\")}

\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

{moment.unix(item.data).format(\"DD MMM YYYY\")}

\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t})}\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default ListGuidePage;\n","export const IconCalendario = ({ width, height }) => (\n \n \n \n \n \n \n);\n\nexport const IconPagamenti = ({ width, height }) => (\n \n \n \n);\n\nexport const IconMaterialeGuida = ({ width, height }) => (\n \n \n \n \n);\n\nexport const IconMaterialeTeoria = ({ width, height }) => (\n \n \n \n \n);\n\n\nexport const IconLink = ({ width, height }) => (\n \n \n \n);\n\nexport const IconAula = ({ width, height }) => (\n \n \n \n \n \n \n \n);\n\n\nexport const IconScanQrcode = ({ width, height }) => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nexport const IconUsers = ({ width, height }) => (\n \n \n \n \n \n);\n\nexport const IconOrari = ({ width, height }) => (\n\n\n\n);\n\n\n","import React, { } from 'react';\nimport {\n\tIonContent,\n\tIonHeader,\n\tIonPage,\n\tIonTitle,\n\tIonToolbar,\n\tIonButtons,\n\tIonMenuToggle,\n\tIonButton,\n\tIonIcon,\n\tIonRow,\n\tIonCol,\n\tIonItem,\n\tIonLabel,\n\tIonText\n} from '@ionic/react';\nimport { menu } from 'ionicons/icons';\nimport './Bacheca.css';\nimport { Link, useLocation } from 'react-router-dom';\nimport { useQuery } from 'react-query';\nimport { requestWebService, INFO_USER_AUTH } from '../utils/webservice';\nimport SpinnerLoading from '../components/SpinnerLoading';\nimport ExploreContainer from '../components/ExploreContainer';\nimport { AuthContext } from '../context/AuthContext';\nimport { IconCalendario, IconPagamenti, IconMaterialeGuida, IconMaterialeTeoria, IconLink, IconAula } from '../utils/icons';\n\n\nconst BachecaApp: React.FC = () => {\n\tconst { setPostoAula, infoUser } = React.useContext(AuthContext);\n\tconst location = useLocation();\n\n\tconst { status, data, error, refetch } = useQuery(\n\t\t'INFO_USER_AUTH',\n\t\tasync () => {\n\t\t\tvar res = await requestWebService(INFO_USER_AUTH, {});\n\t\t\tif (res && res.status == 200) {\n\t\t\t\tsetPostoAula(res.posto_aula);\n\t\t\t\treturn res;\n\t\t\t}\n\t\t\tthrow new Error(res.status + ' ' + res.data);\n\t\t},\n\t\t{\n\t\t\tretry: 1\n\t\t}\n\t);\n\n\n\tReact.useEffect(() => {\n\t\tif (status === 'success' && location.pathname == '/bacheca') {\n\t\t\trefetch();\n\t\t}\n\t\treturn () => { }\n\t}, [location])\n\n\n\tconst renderPage = () => {\n\t\tif (status === 'loading') {\n\t\t\treturn ;\n\t\t}\n\t\tif (status === 'error') {\n\t\t\treturn ;\n\t\t}\n\n\t\tif (status === 'success') {\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t{data.posto_aula && \n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t

Prenota posto in aula

\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
}\n\t\t\t\t\t{data.active_corso_pratico && \n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t

Materiale Guida

\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
}\n\t\t\t\t\t{data.active_corso_teorico && \n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

Materiale Teoria

\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
}\n\t\t\t\t\t{data.links.map((itm: any, index: number) => {\n\t\t\t\t\t\treturn \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t})}\n\t\t\t\t
\n\t\t\t);\n\t\t}\n\t\treturn ;\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\tAutoscuola Crocetta\n\t\t\t\t\n\t\t\t\n\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t

Calendario guide

\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

Pagamenti

\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t{renderPage()}\n\t\t\t\t
\n\t\t\t
\n\n\t\t
\n\t);\n};\n\nexport default BachecaApp;\n","import React, { } from 'react';\nimport {\n\tIonContent,\n\tIonHeader,\n\tIonPage,\n\tIonTitle,\n\tIonToolbar,\n\tIonButtons,\n\tIonMenuToggle,\n\tIonButton,\n\tIonIcon,\n\tIonItem,\n\tIonLabel,\n\tIonText,\n\tIonCard,\n\tIonCardHeader,\n\tIonCardSubtitle,\n\tIonCardTitle,\n\tIonCardContent,\n\tIonBackButton\n} from '@ionic/react';\nimport { link as linkIcon, menu, pin } from 'ionicons/icons';\nimport './MaterialeApp.css';\nimport { useQuery } from 'react-query';\nimport { requestWebService, MATERIALE_APP } from '../utils/webservice';\nimport { useParams } from 'react-router';\nimport SpinnerLoading from '../components/SpinnerLoading';\nimport ExploreContainer from '../components/ExploreContainer';\n\n\nconst MaterialeApp: React.FC = () => {\n\tlet { tipo, capitolo } = useParams();\n\n\n\tconst { status, data, error } = useQuery(\n\t\t'MATERIALE_APP',\n\t\tasync () => {\n\t\t\tif (!['guida', 'teoria'].includes(tipo)) {\n\t\t\t\tthrow new Error(\"Error\");\n\t\t\t}\n\t\t\tvar res = await requestWebService(MATERIALE_APP, { tipo: tipo, capitolo: capitolo });\n\t\t\tif (res && res.status == 200) {\n\t\t\t\t// var result = res.links.reduce(function (r: any, a: any) {\n\t\t\t\t// \tr[a.titolo_capitolo] = r[a.titolo_capitolo] || [];\n\t\t\t\t// \tr[a.titolo_capitolo].push(a);\n\t\t\t\t// \treturn r;\n\t\t\t\t// }, Object.create(null));\n\t\t\t\treturn res.links || [];\n\t\t\t}\n\t\t\tthrow new Error(res.status + ' ' + res.data);\n\t\t},\n\t\t{\n\t\t\tretry: 1\n\t\t}\n\t);\n\n\tconst TypeLink = ({ titolo, link }: any) => (\n\t\t\n\t\t\t\n\t\t\n\t\t{titolo || ''}\n\n\t)\n\n\tconst renderPage = () => {\n\n\t\tif (status === 'loading') {\n\t\t\treturn ;\n\t\t}\n\t\tif (status === 'error') {\n\t\t\treturn ;\n\t\t}\n\n\t\tif (status === 'success') {\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t{data.length > 0 &&

{data[0].titolo_capitolo}

}\n\t\t\t\t\t{data.map((item: any, index: number) => {\n\t\t\t\t\t\tif (item.video) {\n\t\t\t\t\t\t\treturn \n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{item.link && \n\t\t\t\t\t\t\t\t\tVisualizza\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (item.immagine) {\n\t\t\t\t\t\t\treturn \n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{item.link && \n\t\t\t\t\t\t\t\t\tVisualizza\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (item.link) {\n\t\t\t\t\t\t\treturn \n\t\t\t\t\t\t\t\t{/* */}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{item.titolo || ''}\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{item.link && Visualizza}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn ;\n\t\t\t\t\t})}\n\t\t\t\t
\n\t\t\t);\n\t\t}\n\n\t\treturn ;\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{tipo == 'guida' ? 'Materiali Guida' : 'Materiale Teoria'}\n\t\t\t\t\n\t\t\t\n\t\t\t{renderPage()}\n\t\t\n\t);\n};\n\nexport default MaterialeApp;\n","import {\n\tIonButton,\n\tIonButtons,\n\tIonContent,\n\tIonHeader,\n\tIonItem,\n\tIonPage,\n\tIonText,\n\tIonTitle,\n\tIonToolbar,\n\tIonBackButton,\n\tIonModal,\n\tIonLabel,\n\tIonIcon,\n\tuseIonToast,\n\tIonAlert,\n\tIonLoading,\n\tuseIonAlert\n} from '@ionic/react';\nimport './CalendarioCorsoTeorico.css';\nimport { Calendar, Select, Col, Row } from 'antd';\nimport React from 'react';\nimport moment from 'moment';\n\nimport 'moment/locale/it';\nimport locale from 'antd/es/date-picker/locale/it_IT';\nimport { createOutline, trashOutline } from 'ionicons/icons';\nimport { requestWebService, SAVE_POSTO_AULA, ORARI_CORSO_TEORICO, ANNULLA_POSTO_AULA } from '../utils/webservice';\nimport ModalOrari from '../components/ModalOrari';\nimport { AuthContext } from '../context/AuthContext';\nimport { useQuery } from 'react-query';\n\nconst CalendarioCorsoTeoricoPage: React.FC = () => {\n\tconst { infoUser } = React.useContext(AuthContext);\n\n\tconst [present] = useIonToast();\n\tconst [presentAlert] = useIonAlert();\n\tconst [calendar, setCalendar] = React.useState>([]);\n\tconst [calendarUser, setCalendarUser] = React.useState>([]);\n\tconst [showLoading, setShowLoading] = React.useState(false);\n\tconst [items, setItems] = React.useState>([]);\n\tconst [selectedDate, setSelectedDate] = React.useState(moment());\n\n\tReact.useEffect(() => {\n\t\tgetInfoStudentCalendario(false, moment().format(\"YYYY-MM-DD\"));\n\t}, []);\n\tconst getInfoStudentCalendario = async (loading: boolean, data: string) => {\n\t\trequestWebService(ORARI_CORSO_TEORICO, { data: data }).then((res) => {\n\t\t\tif (res && res.status == 200) {\n\n\t\t\t\tconst checkData = res.orari.filter(\n\t\t\t\t\t(e: any) => moment(e.data).format('YYYY-MM-DD') == moment(selectedDate).format('YYYY-MM-DD')\n\t\t\t\t);\n\n\t\t\t\tsetItems(checkData);\n\t\t\t\tsetCalendar(res.orari);\n\t\t\t\tsetCalendarUser(res.calendario);\n\t\t\t} else {\n\t\t\t\twindow.history.back();\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (loading) {\n\t\t\t\tsetShowLoading(false);\n\t\t\t}\n\t\t})\n\t}\n\n\tconst disabledDate = (current: any) => {\n\t\tif (moment(current).format('YYYY-MM-DD') < moment().format('YYYY-MM-DD')) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t};\n\n\tconst dateCellRender = (value: any) => {\n\t\tconst checkData = calendar.filter(\n\t\t\t(e: any) => moment(e.data).format('YYYY-MM-DD') == moment(value).format('YYYY-MM-DD')\n\t\t);\n\t\t// allievi: 0\n\t\t// data: \"2021-05-21\"\n\t\t// id: 3\n\t\t// ora_fine: \"23:30\"\n\t\t// ora_inizio: \"20:30\"\n\t\t// posti: 5\n\n\n\t\tif (checkData && checkData.length > 0) {\n\t\t\treturn (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t);\n\t\t}\n\n\t\treturn ;\n\t};\n\n\tconst onSelect = (value: any) => {\n\t\tconst checkData = calendar.filter(\n\t\t\t(e: any) => moment(e.data).format('YYYY-MM-DD') == moment(value).format('YYYY-MM-DD')\n\t\t);\n\t\tsetSelectedDate(value);\n\t\tsetItems(checkData);\n\t};\n\n\tconst PrenotaAula = (id: number) => {\n\n\t\tpresentAlert({\n\t\t\tcssClass: '',\n\t\t\theader: 'Prenota posto in aula',\n\t\t\tmessage: 'Sei sicuro di voler prenotare?',\n\t\t\tbuttons: [\n\t\t\t\t'Chiudi',\n\t\t\t\t{\n\t\t\t\t\ttext: 'SI', handler: (d) => {\n\t\t\t\t\t\tsavePostoAula(id);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t],\n\t\t})\n\t}\n\n\n\tconst savePostoAula = (id: number) => {\n\t\tsetShowLoading(true);\n\t\trequestWebService(SAVE_POSTO_AULA, { user: infoUser.user, posto_aula: id }).then((res) => {\n\t\t\tif (res && res.status == 200) {\n\t\t\t\tgetInfoStudentCalendario(true, moment().format(\"YYYY-MM-DD\"));\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tpresent({\n\t\t\t\t\t\tbuttons: [],\n\t\t\t\t\t\tmessage: \"Dati salvati con successo.\",\n\t\t\t\t\t\tposition: 'bottom',\n\t\t\t\t\t\tduration: 4500\n\t\t\t\t\t});\n\t\t\t\t}, 500)\n\t\t\t} else {\n\t\t\t\tsetShowLoading(false);\n\t\t\t\tpresent({\n\t\t\t\t\tbuttons: [],\n\t\t\t\t\tmessage: \"Errore: impossibile salvare i dati.\",\n\t\t\t\t\tposition: 'bottom',\n\t\t\t\t\tduration: 4500\n\t\t\t\t});\n\t\t\t}\n\t\t})\n\t\t//\tSAVE_POSTO_AULA\n\t}\n\n\tconst AnnullaPrenotazione = (id: number) => {\n\t\tpresentAlert({\n\t\t\tcssClass: '',\n\t\t\theader: 'Annulla',\n\t\t\tmessage: 'Vuoi annullare la prenotazione?',\n\t\t\tbuttons: [\n\t\t\t\t'Chiudi',\n\t\t\t\t{\n\t\t\t\t\ttext: 'SI', handler: (d) => {\n\t\t\t\t\t\tannulaPostoAula(id);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t],\n\t\t})\n\t}\n\tconst annulaPostoAula = (id: number) => {\n\t\tsetShowLoading(true);\n\t\trequestWebService(ANNULLA_POSTO_AULA, { user: infoUser.user, posto_aula: id }).then((res) => {\n\n\t\t\tif (res && res.status == 200) {\n\t\t\t\tgetInfoStudentCalendario(true, moment().format(\"YYYY-MM-DD\"));\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tpresent({\n\t\t\t\t\t\tbuttons: [],\n\t\t\t\t\t\tmessage: \"Dati salvati con successo.\",\n\t\t\t\t\t\tposition: 'bottom',\n\t\t\t\t\t\tduration: 4500\n\t\t\t\t\t});\n\t\t\t\t}, 500)\n\t\t\t} else {\n\t\t\t\tsetShowLoading(false);\n\t\t\t\tpresent({\n\t\t\t\t\tbuttons: [],\n\t\t\t\t\tmessage: \"Errore: impossibile salvare i dati.\",\n\t\t\t\t\tposition: 'bottom',\n\t\t\t\t\tduration: 4500\n\t\t\t\t});\n\t\t\t}\n\t\t})\n\t\t//\tSAVE_POSTO_AULA\n\t}\n\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\tCalendario Aula\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t {\n\t\t\t\t\t\t\tconst start = 0;\n\t\t\t\t\t\t\tconst end = 12;\n\t\t\t\t\t\t\tconst monthOptions = [];\n\n\t\t\t\t\t\t\tconst current = value.clone();\n\t\t\t\t\t\t\tconst localeData = value.localeData();\n\t\t\t\t\t\t\tconst months = [];\n\t\t\t\t\t\t\tfor (let i = 0; i < 12; i++) {\n\t\t\t\t\t\t\t\tcurrent.month(i);\n\t\t\t\t\t\t\t\tmonths.push(localeData.monthsShort(current));\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfor (let index = start; index < end; index++) {\n\t\t\t\t\t\t\t\tmonthOptions.push(\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{months[index]}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst month = value.month();\n\n\t\t\t\t\t\t\tconst year = value.year();\n\t\t\t\t\t\t\tconst year_ = parseInt(moment().format(\"YYYY\"));\n\t\t\t\t\t\t\tconst options = [];\n\t\t\t\t\t\t\tfor (let i = year_; i < year_ + 2; i += 1) {\n\t\t\t\t\t\t\t\toptions.push(\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{i}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst mesi = [\n\t\t\t\t\t\t\t\t{ titolo: 'gen', value: 1 },\n\t\t\t\t\t\t\t\t{ titolo: 'feb', value: 2 },\n\t\t\t\t\t\t\t\t{ titolo: 'mar', value: 3 },\n\t\t\t\t\t\t\t\t{ titolo: 'apr', value: 4 },\n\t\t\t\t\t\t\t\t{ titolo: 'mag', value: 5 },\n\t\t\t\t\t\t\t\t{ titolo: 'giu', value: 6 },\n\t\t\t\t\t\t\t\t{ titolo: 'lug', value: 7 },\n\t\t\t\t\t\t\t\t{ titolo: 'ago', value: 8 },\n\t\t\t\t\t\t\t\t{ titolo: 'set', value: 9 },\n\t\t\t\t\t\t\t\t{ titolo: 'ott', value: 10 },\n\t\t\t\t\t\t\t\t{ titolo: 'nov', value: 11 },\n\t\t\t\t\t\t\t\t{ titolo: 'dic', value: 12 }\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst now = value.clone().year(parseInt(newYear));\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange(now);\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={String(year)}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{options}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\tvar filter = mesi.filter((e: any) => e.titolo == selectedMonth);\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst newValue = value.clone();\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewValue.month(parseInt((filter[0].value - 1).toString(), 10));\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange(newValue);\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{monthOptions}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tdateCellRender={dateCellRender}\n\t\t\t\t\t\tlocale={locale}\n\t\t\t\t\t\tmode={'month'}\n\t\t\t\t\t\tdisabledDate={disabledDate}\n\t\t\t\t\t\tfullscreen={false}\n\t\t\t\t\t\tonSelect={onSelect}\n\t\t\t\t\t\tstyle={{ width: window.innerWidth }}\n\t\t\t\t\t/>\n\t\t\t\t
\n\t\t\t\t{items && items.map((item: any, index: number) => {\n\t\t\t\t\tvar prenotato = false;\n\t\t\t\t\tif (calendarUser.length > 0) {\n\t\t\t\t\t\tconst checkUser = calendarUser.findIndex((e: any) => e.id_orari_corso_teorico == item.id);\n\t\t\t\t\t\tif (checkUser >= 0) {\n\t\t\t\t\t\t\tprenotato = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t

{moment(item.data).format(\"DD MMM YYYY\") + \" \" + item.ora_inizio}

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

Posti disponibili: {item.posti - item.allievi}

\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{((item.posti > item.allievi) && !prenotato) && { PrenotaAula(item.id) }}>Prenota}\n\t\t\t\t\t\t\t{(prenotato) && { AnnullaPrenotazione(item.id) }}>Prenotato}\n\t\t\t\t\t\t
\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t
\n\t\t\t setShowLoading(false)}\n\t\t\t\tmessage={''}\n\t\t\t/>\n\t\t
\n\t);\n};\n\nexport default CalendarioCorsoTeoricoPage;\n","import React, { } from 'react';\nimport {\n\tIonContent,\n\tIonHeader,\n\tIonPage,\n\tIonTitle,\n\tIonToolbar,\n\tIonButtons,\n\tIonItem,\n\tIonLabel,\n\tIonList,\n\tIonBackButton\n} from '@ionic/react';\nimport { link as linkIcon, menu, pin } from 'ionicons/icons';\nimport './MaterialeApp.css';\nimport { useQuery } from 'react-query';\nimport { requestWebService, CAPITOLI_MATERIALI_APP } from '../utils/webservice';\nimport { useHistory, useParams } from 'react-router-dom';\nimport SpinnerLoading from '../components/SpinnerLoading';\nimport ExploreContainer from '../components/ExploreContainer';\n\n\nconst CapitoliMaterialeApp: React.FC = () => {\n\tlet { tipo } = useParams();\n\tconst history = useHistory();\n\n\n\tconst { status, data, error } = useQuery(\n\t\t'CAPITOLI_MATERIALI_APP',\n\t\tasync () => {\n\t\t\tif (!['guida', 'teoria'].includes(tipo)) {\n\t\t\t\tthrow new Error(\"Error\");\n\t\t\t}\n\n\t\t\tvar res = await requestWebService(CAPITOLI_MATERIALI_APP, { tipo: tipo });\n\t\t\tif (res && res.status == 200) {\n\n\t\t\t\treturn res.capitoli || [];\n\t\t\t}\n\t\t\tthrow new Error(res.status + ' ' + res.data);\n\t\t},\n\t\t{\n\t\t\tretry: 1\n\t\t}\n\t);\n\n\tconst renderPage = () => {\n\n\t\tif (status === 'loading') {\n\t\t\treturn ;\n\t\t}\n\t\tif (status === 'error') {\n\t\t\treturn ;\n\t\t}\n\n\t\tif (status === 'success') {\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t{data.map((item: any, index: number) => {\n\t\t\t\t\t\treturn \n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\thistory.push({\n\t\t\t\t\t\t\t\t\tpathname: '/materiale-app/' + tipo + '/' + item.id.toString(),\n\t\t\t\t\t\t\t\t\tstate: {}\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}} detail>\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{item.titolo}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t})}\n\t\t\t\t\n\t\t\t);\n\t\t}\n\n\t\treturn ;\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{tipo == 'guida' ? 'Materiali Guida' : 'Materiale Teoria'}\n\t\t\t\t\n\t\t\t\n\t\t\t{renderPage()}\n\t\t\n\t);\n};\n\nexport default CapitoliMaterialeApp;\n","import React, { } from 'react';\nimport {\n\tIonContent,\n\tIonHeader,\n\tIonPage,\n\tIonTitle,\n\tIonToolbar,\n\tIonButtons,\n\tIonMenuToggle,\n\tIonButton,\n\tIonIcon,\n\tIonRow,\n\tIonCol,\n\tIonItem,\n\tIonLabel,\n\tIonText\n} from '@ionic/react';\nimport { menu } from 'ionicons/icons';\nimport './BachecaInstructor.css';\nimport { Link, useLocation } from 'react-router-dom';\nimport { useQuery } from 'react-query';\nimport { requestWebService, INFO_USER_AUTH } from '../utils/webservice';\nimport SpinnerLoading from '../components/SpinnerLoading';\nimport ExploreContainer from '../components/ExploreContainer';\nimport { AuthContext } from '../context/AuthContext';\nimport { IconCalendario, IconPagamenti, IconMaterialeGuida, IconMaterialeTeoria, IconLink, IconAula, IconScanQrcode, IconUsers, IconOrari } from '../utils/icons';\n\n\nconst BachecaInstructorApp: React.FC = () => {\n\tconst { setPostoAula, infoUser } = React.useContext(AuthContext);\n\tconst location = useLocation();\n\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\tAutoscuola Crocetta\n\t\t\t\t\n\t\t\t\n\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t

Calendario

\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

Scan QrCode - Guida

\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

Allievi

\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

Orari guida

\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\n\t\t
\n\t);\n};\n\nexport default BachecaInstructorApp;\n","import {\n\tIonButtons,\n\tIonContent,\n\tIonHeader,\n\tIonItem,\n\tIonPage,\n\tIonText,\n\tIonTitle,\n\tIonToolbar,\n\tIonBackButton,\n\tIonLabel,\n\tIonButton,\n\tIonSearchbar\n} from '@ionic/react';\nimport './ListGuide.css';\nimport React from 'react';\nimport { requestWebService, LIST_ALLIEVI_INSTRUCTOR, SEARCH_ALLIEVI_INSTRUCTOR } from '../utils/webservice';\nimport SpinnerLoading from '../components/SpinnerLoading';\n\nconst ListAllieviInstructor: React.FC = () => {\n\tconst [list, setList] = React.useState>([]);\n\tconst [loading, setLoading] = React.useState(true);\n\tconst [searchValue, setSearchValue] = React.useState(\"\");\n\tconst [autoscuola, setAutoscuola] = React.useState(null);\n\tconst [user, setUser] = React.useState(null);\n\n\tReact.useEffect(() => {\n\t\tgetInfoStudentCalendario(); // Carica l'elenco iniziale\n\t}, []);\n\n\tconst getInfoStudentCalendario = async () => {\n\t\tsetLoading(true);\n\t\trequestWebService(LIST_ALLIEVI_INSTRUCTOR, {}).then((res) => {\n\t\t\tconsole.log('Dati ricevuti da LIST_ALLIEVI_INSTRUCTOR:', res); // Aggiungi questo log per visualizzare la risposta completa\n\t\t\tif (res && res.status === 200) {\n\t\t\t\tsetList(res.list || []);\n\t\t\t\tsetAutoscuola(res.autoscuola); // Memorizza l'ID dell'autoscuola\n\t\t\t\tsetUser(res.user); // Memorizza l'ID dell'istruttore\n\t\t\t} else {\n\t\t\t\talert(\"Errore nel caricamento degli allievi.\");\n\t\t\t}\n\t\t\tsetLoading(false);\n\t\t});\n\t};\n\n\tconst searchAllievi = async (value?: string) => {\n\t\tconst query = value !== undefined ? value : searchValue;\n\t\tif (!query.trim()) {\n\t\t\tgetInfoStudentCalendario();\n\t\t\treturn;\n\t\t}\n\t\tsetLoading(true);\n\n\t\t// Passa term, id_autoscuola e instructor nella richiesta\n\t\trequestWebService(SEARCH_ALLIEVI_INSTRUCTOR, {\n\t\t\tterm: query,\n\t\t\tid_autoscuola: autoscuola, // Usa il valore autoscuola dallo stato\n\t\t\tinstructor: user // Usa il valore dell'istruttore dallo stato\n\t\t}).then((res) => {\n\t\t\tif (res && res.status === 200) {\n\t\t\t\tsetList(res.list || []);\n\t\t\t} else {\n\t\t\t\talert(\"Errore durante la ricerca.\");\n\t\t\t}\n\t\t\tsetLoading(false);\n\t\t});\n\t};\n\t\n\n\tconst handleInput = (e: any) => {\n\t\tsetSearchValue(e.target.value || \"\");\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\tAllievi\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tif (e.key === 'Enter' || e.keyCode === 13) {\n\t\t\t\t\t\t\t\tsearchAllievi();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonIonClear={() => { \n\t\t\t\t\t\t\tsetSearchValue(\"\"); \n\t\t\t\t\t\t\tgetInfoStudentCalendario(); // Ricarica la lista completa quando il campo di ricerca viene svuotato\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonIonChange={handleInput}>\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{loading && list.length === 0 && }\n\t\t\t\t{!loading && list && list.map((item, index) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t

{item.nome + \" \" + item.cognome}

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{item.email &&

Email : {item.email}

}\n\t\t\t\t\t\t\t\t{item.cellulare &&

Cellulare : {item.cellulare}

}\n\t\t\t\t\t\t\t\t{item.telefono &&

Telefono : {item.telefono}

}\n\t\t\t\t\t\t\t\tAggiungi guida\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default ListAllieviInstructor;\n","import {\n\tIonButtons,\n\tIonContent,\n\tIonHeader,\n\tIonItem,\n\tIonPage,\n\tIonTitle,\n\tIonToolbar,\n\tIonBackButton,\n\tIonLabel,\n\tIonButton,\n\tIonSelect,\n\tIonSelectOption,\n\tIonAlert,\n\tIonLoading,\n\tuseIonToast,\n\tIonItemDivider,\n\tIonTextarea\n} from '@ionic/react';\nimport QrReader from 'react-qr-reader';\nimport './QrcodeInstructor.css';\nimport React from 'react';\nimport moment from 'moment';\nimport { useParams } from 'react-router-dom';\nimport 'moment/locale/it';\nimport { requestWebService, ADD_ORARIO_STUDENT_CALENDARIO_INSTRUCTOR, CHECK_QRCODE_STUDENT, LINK_ADD_COIN_REGALO, GET_METODI_PAGAMENTO, GET_SERVIZI, LINK_ADD_COIN_PAGAMENTO } from '../utils/webservice';\nimport { AuthContext } from '../context/AuthContext';\nimport { compare } from '../utils/utils';\n\nconst QrcodeInstructor: React.FC = () => {\n\tlet { } = useParams();\n\tconst { infoUser } = React.useContext(AuthContext);\n\t\n\tconst [present] = useIonToast();\n\tconst [showLoading, setShowLoading] = React.useState(false);\n\tconst [metodiPagamento, setMetodi] = React.useState([]);\n\tconst [servizi, setServizi] = React.useState([{id: null, titolo: null}]);\n\n\tconst [state, setState] = React.useState({\n\t\tspinning: false,\n\t\tcalendar_student: [],\n\t\tcoin: 0,\n\t\tstudent: '',\n\t\tqrcode: '',\n\t\terrorMsg: '',\n\t\tsuccessMsg: '',\n\t\torari: [],\n\t\tshowAddCoin: false,\n\t\tcourses_student: [],\n\t\torario_saved: '',\n\t\tpaymentMethods: \"\",\n\t\tservices: null,\n\t\tnote: \"\",\n\t\tshowConfirmModal: false\n\t});\n\n//26-21-qr-code\n\n\n\tReact.useEffect(() => {\n\n\t\tif (state.qrcode != '') {\n\t\t\tif (state.qrcode.split('-').length == 4) {\n\t\t\t\tcheckQrCode();\n\t\t\t} else {\n\t\t\t\tsetState({\n\t\t\t\t\t...state,\n\t\t\t\t\tstudent: '',\n\t\t\t\t\torari: [],\n\t\t\t\t\tcoin: 0,\n\t\t\t\t\tsuccessMsg: '',\n\t\t\t\t\terrorMsg: \"\",\n\t\t\t\t\tspinning: false,\n\t\t\t\t\tshowConfirmModal: false\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\treturn () => { }\n\t}, [state.qrcode]);\n\n\tconst checkQrCode = async () => {\n\t\tvar qr = state.qrcode.split('-');\n\n\t\tvar res = await requestWebService(CHECK_QRCODE_STUDENT, { user: qr[0], iscrizione: qr[1] });\n\n\t\tvar errorMsg = '';\n\t\tvar courses_student: any = [];\n\t\tvar student: any = '';\n\t\tvar _orari: any = [];\n\t\tvar coin = 0;\n\t\tvar array: any = [];\n\t\tvar calendar_student: any = [];\n\t\tvar qrcode = state.qrcode;\n\n\t\tif (res && res.courses_student && res.courses_student.length > 0) {\n\t\t\tcourses_student = res.courses_student;\n\t\t}\n\n\t\tif (res && res.status == 200) {\n\t\t\tvar allievo: any = res.user;\n\t\t\tstudent = allievo.nome + \" \" + allievo.cognome;\n\t\t\tres.orari.forEach((item: any) => {\n\t\t\t\tvar _conf = moment().format(\"YYYY-MM-DD\");\n\t\t\t\tvar oggi = moment().format(\"YYYY-MM-DD\");\n\t\t\t\tvar orainizio = moment(oggi + \"T\" + item.ora_inizio);\n\t\t\t\tvar orafine = moment(oggi + \"T\" + item.ora_fine);\n\t\t\t\tvar mm = orafine.diff(orainizio, 'minute') / 30;\n\t\t\t\tvar _conf_date = moment();\n\n\t\t\t\tfor (var i = 0; i < mm; i++) {\n\t\t\t\t\tvar _show = true;\n\t\t\t\t\tvar _d = moment(_conf_date).format('YYYY-MM-DD');\n\t\t\t\t\tvar _o_i = moment(_d + \"T\" + moment(orainizio).add(30 * i, 'm').format(\"HH:mm\")).unix();\n\t\t\t\t\tif ((oggi == _conf && moment().format(\"HH:mm\") > moment(orainizio).add(30 * i, 'm').format(\"HH:mm\"))) {\n\t\t\t\t\t\t_show = false\n\t\t\t\t\t}\n\t\t\t\t\tif (moment().unix() > _o_i) {\n\t\t\t\t\t\t_show = false\n\t\t\t\t\t}\n\t\t\t\t\tarray.push({\n\t\t\t\t\t\tinizio: moment(orainizio).add(30 * i, 'm').format(\"HH:mm\"),\n\t\t\t\t\t\tfine: moment(orainizio).add(30 * (i + 1), 'm').format(\"HH:mm\"),\n\t\t\t\t\t\tshow: _show\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t});\n\t\t\t_orari = array.sort(compare);\n\t\n\t\t\tres.users.forEach((item: any, index: number) => {\n\n\t\t\t\tif (item.iduser != allievo.iduser) {\n\t\t\t\t\tvar ora_inizio = moment.unix(item.data_inizio).format(\"HH:mm\");\t\t\t\t\n\t\t\t\t\tvar _index = _orari.findIndex((e: any) => e.inizio == ora_inizio);\t\t\t\t\n\t\t\t\t\tif (_index >= 0) {\n\t\t\t\t\t\t_orari[_index].show = false;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tvar ora_inizio = moment.unix(item.data_inizio).format(\"HH:mm\");\t\t\t\t\t\n\t\t\t\t\tvar _index = _orari.findIndex((e: any) => e.inizio == ora_inizio);\n\t\t\t\t\tif (_index >= 0) {\n\t\t\t\t\t\t_orari[_index].show = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\t\n\t\t\t\n\t\t\tcoin = res.coin;\n\n\t\t\tcalendar_student = res.calendar_student;\n\t\t} else if (res && res.status == 201) {\n\t\t\t//error qrcode non valido - instructor\n\t\t\terrorMsg = \"Errore: questo allievo ha un altro istruttore.\";\n\t\t} else if (res && res.status == 203) {\n\t\t\t//error qrcode non valido\n\t\t\terrorMsg = \"Errore: qrcode non valido.\";\n\t\t} else {\n\t\t\t//\tqrcode = '';\n\t\t\terrorMsg = \"Errore: impossibile raggiungere il server.\";\n\t\t}\n\n\t\tvar metodi = await requestWebService(GET_METODI_PAGAMENTO, {id_autoscuola: parseInt(infoUser.autoscuola)})\n\t\tvar servizi = await requestWebService(GET_SERVIZI, {id_autoscuola: parseInt(infoUser.autoscuola)})\n\t\tsetMetodi(metodi.data);\n\t\tsetServizi(servizi.data);\n\n\t\tsetState({\n\t\t\t...state,\n\t\t\tqrcode: qrcode,\n\t\t\tcourses_student: courses_student,\n\t\t\tshowAddCoin: courses_student.length > 0 ? true : false,\n\t\t\tsuccessMsg: '',\n\t\t\tstudent: student,\n\t\t\tcalendar_student: calendar_student,\n\t\t\torari: _orari,\n\t\t\tcoin: coin,\n\t\t\terrorMsg: errorMsg,\n\t\t\tspinning: false,\n\t\t})\n\t}\n\n\tconst confirmSetOrario = (value: string) => {\n\t\tsetState({\n\t\t\t...state,\n\t\t\tshowConfirmModal: true,\n\t\t\torario_saved: value\n\t\t})\n\t}\n\n\tconst setOrario = async () => {\n\t\tvar qr = state.qrcode.split('-');\n\t\tvar data = moment().format(\"YYYY-MM-DD\");\n\t\tvar value = state.orario_saved;\n\t\tvar ora_inizio = value.split(\"-\")[0];\n\t\tvar ora_fine = value.split(\"-\")[1];\n\t\tvar val = {\n\t\t\tid: null,\n\t\t\tiduser: qr[0],\n\t\t\tid_iscrizione: qr[1],\n\t\t\tdata: moment().unix(),\n\t\t\tdata_inizio: moment(data + \" \" + ora_inizio + \":00\").unix(),\n\t\t\tdata_fine: moment(data + \" \" + ora_fine + \":00\").unix()\n\t\t}\n\n\t\tsetShowLoading(true);\n\n\t\tsetTimeout(() => {\n\n\n\t\t}, 4000)\n\n\n\t\tvar res = await requestWebService(ADD_ORARIO_STUDENT_CALENDARIO_INSTRUCTOR, val);\n\t\tsetShowLoading(false);\n\n\t\tif (res && res.status && res.status == 200) {\n\t\t\tpresent({\n\t\t\t\tbuttons: [],\n\t\t\t\tmessage: 'Dati salvati con successo.',\n\t\t\t\tposition: 'bottom',\n\t\t\t\tduration: 6500\n\t\t\t});\n\t\t\tsetState({\n\t\t\t\t...state,\n\t\t\t\tshowConfirmModal: false,\n\t\t\t\tsuccessMsg: 'Dati salvati con succeso.',\n\t\t\t\tstudent: '',\n\t\t\t\torari: [],\n\t\t\t\tcalendar_student: [],\n\t\t\t\tcoin: 0,\n\t\t\t\terrorMsg: '',\n\t\t\t\tspinning: false\n\t\t\t})\n\t\t} else {\n\t\t\tpresent({\n\t\t\t\tbuttons: [],\n\t\t\t\tmessage: 'Errore : impossibile salvare i dati.',\n\t\t\t\tposition: 'bottom',\n\t\t\t\tduration: 6500\n\t\t\t});\n\t\t\tsetState({\n\t\t\t\t...state,\n\t\t\t\tshowConfirmModal: false,\n\t\t\t\terrorMsg: 'Errore : impossibile salvare i dati.',\n\t\t\t})\n\t\t}\n\n\t}\n\n\n\tconst addCoin = () => {\n\t\tsetShowLoading(true);\n\t\tvar user: any = state.courses_student[0];\n\t\tvar formAdd = {\n\t\t\tid_autoscuola: infoUser.autoscuola,\n\t\t\tiduser: user.iduser,\n\t\t\tid_iscrizione: user.id_iscrizione,\n\t\t\timporto: user.coin,\n\t\t\tnote: \"\",\n\t\t\tcoin: 1,\n\t\t\tmethod_payment: \"Da pagare\",\n\t\t\tdata_ins: moment().format(\"YYYY-MM-DD HH:mm\")\n\t\t};\n\n\t\trequestWebService(LINK_ADD_COIN_REGALO, formAdd).then((res) => {\n\t\t\tsetShowLoading(false);\n\t\t\tif (res && res.status == 200) {\n\t\t\t\tcheckQrCode();\n\t\t\t} else {\n\t\t\t\tpresent({\n\t\t\t\t\tbuttons: [],\n\t\t\t\t\tmessage: 'Errore : impossibile salvare i dati.',\n\t\t\t\t\tposition: 'bottom',\n\t\t\t\t\tduration: 6500\n\t\t\t\t});\n\t\t\t}\n\t\t})\n\n\t}\n\n\tconst addPaidCoin = () => {\n\t\tif(state.paymentMethods == \"\"){\n\t\t\tpresent({\n\t\t\t\tbuttons: [],\n\t\t\t\tmessage: 'Errore : seleziona un tipo di pagamento',\n\t\t\t\tposition: 'bottom',\n\t\t\t\tduration: 3000\n\t\t\t});\n\t\t\treturn false;\n\t\t} if(state.services == null){\n\t\t\tpresent({\n\t\t\t\tbuttons: [],\n\t\t\t\tmessage: 'Errore : seleziona un servizio.',\n\t\t\t\tposition: 'bottom',\n\t\t\t\tduration: 3000\n\t\t\t});\n\t\t\treturn false;\n\t\t}\n\n\t\tsetShowLoading(true);\n\t\tvar user: any = state.courses_student[0];\n\t\tvar formAdd = {\n\t\t\tid_autoscuola: infoUser.autoscuola,\n\t\t\tiduser: user.iduser,\n\t\t\tid_iscrizione: user.id_iscrizione,\n\t\t\timporto: user.coin,\n\t\t\tnote: state.note,\n\t\t\tcoin: 1,\n\t\t\tmethod_payment: state.paymentMethods,\n\t\t\tid_servizio: state.services,\n\t\t\tdata_ins: moment().format(\"YYYY-MM-DD HH:mm\")\n\t\t};\n\n\t\trequestWebService(LINK_ADD_COIN_PAGAMENTO, formAdd).then((res) => {\n\t\t\tsetShowLoading(false);\n\t\t\tif (res && res.status == 200) {\n\t\t\t\tcheckQrCode();\n\t\t\t} else {\n\t\t\t\tpresent({\n\t\t\t\t\tbuttons: [],\n\t\t\t\t\tmessage: 'Errore : impossibile salvare i dati.',\n\t\t\t\t\tposition: 'bottom',\n\t\t\t\t\tduration: 6500\n\t\t\t\t});\n\t\t\t}\n\t\t})\n\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\tScan QrCode\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t{!state.qrcode && {\n\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tonScan={(data) => {\n\t\t\t\t\t\t\tif (data) {\n\t\t\t\t\t\t\t\tsetState({\n\t\t\t\t\t\t\t\t\t...state,\n\t\t\t\t\t\t\t\t\tqrcode: data\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>}\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t{state.qrcode &&

QRCode - {state.qrcode}

}\n\t\t\t\t\t{!state.successMsg && state.student && !state.errorMsg &&

{state.student}

}\n\t\t\t\t\t{!state.successMsg && state.student && state.coin >= 0 && !state.errorMsg &&

Coin disponibili : {state.coin}

}\n\t\t\t\t\t{!state.successMsg && state.student && !state.errorMsg && state.courses_student[0] != undefined &&

Importo: {state.courses_student[0][\"coin\"]}

}\n\t\t\t\t\t{!state.successMsg && state.coin > 0 && state.orari.length > 0 && !state.errorMsg &&

Orari disponibili

}\n\t\t\t\t\t{!state.successMsg && state.qrcode && state.orari.length <= 0 && !state.errorMsg &&

Nessun orario disponibile

}\n\n\n\t\t\t\t\t{!state.successMsg && state.coin > 0 && state.orari.length > 0 && !state.errorMsg && \n\t\t\t\t\t\tSelezione orario\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\tif (e && e.detail && e.detail.value) {\n\t\t\t\t\t\t\t\tconfirmSetOrario(e.detail.value)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}}>\n\t\t\t\t\t\t\t{state.orari.map((item: any, index: number) => {\n\t\t\t\t\t\t\t\treturn {item.inizio + \" - \" + item.fine}\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\n\n\t\t\t\t\t{state.errorMsg &&

{state.errorMsg}

}\n\t\t\t\t\t{state.successMsg &&

{state.successMsg}

}\n\t\t\t\t\t{state.showAddCoin && { addCoin() }}>Aggiungi coin da pagare}\n\n\t\t\t\t\t{/* Aggiungi coin giĆ  pagato con metodo e tutto */}\n\t\t\t\t\t{/* {state.showAddCoin && <>\n\t\t\t\t\t\t\n\t\t\t\t\t\t

Oppure aggiungi coin a pagamento

\n\t\t\t\t\t\t setState({...state, paymentMethods: e.detail.value,})}>\n\t\t\t\t\t\t\t{metodiPagamento.map((item, index) => {\n\t\t\t\t\t\t\t\treturn {item}\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\n\t\t\t\t\t\t setState({...state, services: e.detail.value,})}>\n\t\t\t\t\t\t\t{servizi.map((item, index) => {\n\t\t\t\t\t\t\t\treturn {item.titolo}\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\n\t\t\t\t\t\t setState({...state, note: e.detail.value || \"\",})}>\n\t\t\t\t\t\t { addPaidCoin() }}>Aggiungi coin a pagamento\n\t\t\t\t\t} */}\n\n\n\t\t\t\t
\n\t\t\t\t {\n\t\t\t\t\t\t\t\tsetState({\n\t\t\t\t\t\t\t\t\t...state,\n\t\t\t\t\t\t\t\t\tshowConfirmModal: false,\n\t\t\t\t\t\t\t\t\torario_saved: ''\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttext: 'SI',\n\t\t\t\t\t\t\thandler: () => {\n\t\t\t\t\t\t\t\tsetState({\n\t\t\t\t\t\t\t\t\t...state,\n\t\t\t\t\t\t\t\t\tshowConfirmModal: false\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\tsetOrario();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t]}\n\t\t\t\t/>\n\t\t\t\t setShowLoading(false)}\n\t\t\t\t\tmessage={''}\n\t\t\t\t/>\n\t\t\t
\n\n\t\t
\n\t);\n};\n\nexport default QrcodeInstructor;\n","import {\n\tIonButton,\n\tIonButtons,\n\tIonContent,\n\tIonHeader,\n\tIonItem,\n\tIonPage,\n\tIonText,\n\tIonTitle,\n\tIonToolbar,\n\tIonBackButton,\n\tIonModal,\n\tIonLabel,\n\tIonIcon,\n\tuseIonToast,\n\tIonAlert,\n\tIonLoading\n} from '@ionic/react';\nimport './CalendarioInstructor.css';\nimport { Calendar, Select, Col, Row } from 'antd';\nimport React from 'react';\nimport moment from 'moment';\nimport { useLocation, useParams } from 'react-router-dom';\nimport { getUnixDate, activeDaysCalendarStudent } from '../utils/utils';\nimport 'moment/locale/it';\nimport locale from 'antd/es/date-picker/locale/it_IT';\nimport { createOutline, trashOutline } from 'ionicons/icons';\nimport { requestWebService, REMOVE_ORARIO_GUIDA_CALENDARIO, GET_CALENDAR_INSTRUCTOR } from '../utils/webservice';\nimport ModalOrari from '../components/ModalOrari';\nimport { AuthContext } from '../context/AuthContext';\n\nconst CalendarioInstructorPage: React.FC = () => {\n\tconst { infoUser } = React.useContext(AuthContext);\n\tlet { corso, iscrizione } = useParams();\n\n\tconst [present] = useIonToast();\n\tconst [showModal, setShowModal] = React.useState({\n\t\tisOpen: false,\n\t\tday: '',\n\t\tid: 0,\n\t\tiduser: 0\n\t});\n\tconst [calendar, setCalendar] = React.useState>([]);\n\tconst [items, setItems] = React.useState>([]);\n\tconst [selectedDate, setSelectedDate] = React.useState(moment());\n\tconst [showConfirmModal, setShowConfirmModal] = React.useState({\n\t\tshow: false,\n\t\tid: 0\n\t});\n\tconst [showLoading, setShowLoading] = React.useState(true);\n\n\tReact.useEffect(() => {\n\t\tgetInfoStudentCalendario();\n\t}, []);\n\n\n\tconst getInfoStudentCalendario = async () => {\n\t\trequestWebService(GET_CALENDAR_INSTRUCTOR, {}).then((res) => {\n\t\t\tif (res && res.status == 200) {\n\t\t\t\tconst checkData = res.data.filter(\n\t\t\t\t\t(e: any) => moment.unix(e.data).format('YYYY-MM-DD') == moment(selectedDate).format('YYYY-MM-DD')\n\t\t\t\t);\n\t\t\t\tsetCalendar(res.data);\n\t\t\t\tsetItems(checkData);\n\t\t\t} else {\n\t\t\t\twindow.history.back();\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tsetShowLoading(false);\n\t\t})\n\t}\n\n\n\n\tconst disabledDate = (current: any) => {\n\t\tif (!current) {\n\t\t\treturn false;\n\t\t}\n\t\t// if (moment(current).format('YYYY-MM-DD') < moment().format('YYYY-MM-DD')) {\n\t\t// \treturn true;\n\t\t// }\n\t\t// if (current.weekday() == 5 || current.weekday() == 6) {\n\t\t// \treturn true;\n\t\t// }\n\n\t\treturn checkActiveDay(current);\n\t};\n\n\tconst checkActiveDay = (current: any) => {\n\t\tvar days = activeDaysCalendarStudent();\n\t\tvar filter = days.filter((e) => e == moment(current).format('YYYY-MM-DD'));\n\t\tif (filter && filter.length > 0) {\n\t\t\tif (getUnixDate(new Date()) <= getUnixDate(filter[0] + 'T00:00:00')) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tif (moment(current).format('YYYY-MM-DD') <= moment().format('YYYY-MM-DD')) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t};\n\n\tconst dateCellRender = (value: any) => {\n\t\tconst checkData = calendar.filter(\n\t\t\t(e: any) => moment.unix(e.data).format('YYYY-MM-DD') == moment(value).format('YYYY-MM-DD')\n\t\t);\n\t\tif (checkData && checkData.length > 0) {\n\t\t\treturn (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t);\n\t\t}\n\n\t\treturn ;\n\t};\n\n\tconst onSelect = (value: any) => {\n\t\tconst checkData = calendar.filter(\n\t\t\t(e: any) => moment.unix(e.data).format('YYYY-MM-DD') == moment(value).format('YYYY-MM-DD')\n\t\t);\n\t\tsetSelectedDate(value);\n\t\tsetItems(checkData);\n\t};\n\n\tconst checkAddButton = () => {\n\t\tif (moment(selectedDate).format('YYYY-MM-DD') < moment().format('YYYY-MM-DD')) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (selectedDate.weekday() == 5 || selectedDate.weekday() == 6) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t};\n\n\tconst removeDayCalendar = (id: number) => {\n\t\tsetShowLoading(true);\n\t\trequestWebService(REMOVE_ORARIO_GUIDA_CALENDARIO, { id: id }).then((res) => {\n\t\t\tvar msg = 'Errore : impossibile eliminare i dati.';\n\t\t\tif (res && res && res.status == 200) {\n\t\t\t\tvar findIndex = items.findIndex((e: any) => e.id == id);\n\t\t\t\tvar findIndexItems = items.findIndex((e: any) => e.id == id);\n\t\t\t\titems.splice(findIndex, 1);\n\t\t\t\titems.splice(findIndexItems, 1);\n\t\t\t\tsetItems(items);\n\t\t\t\tmsg = 'Guida eliminata con succes';\n\t\t\t}\n\t\t\tsetShowLoading(false);\n\t\t\tpresent({\n\t\t\t\tbuttons: [],\n\t\t\t\tmessage: msg,\n\t\t\t\tposition: 'bottom',\n\t\t\t\tduration: 4500\n\t\t\t});\n\t\t});\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{/* {\n\t\t\t\t\t\t\t\t\twindow.history.back();\n\t\t\t\t\t\t\t\t}} slot=\"end\" ios={chevronBackOutline} md={arrowBackOutline} /> */}\n\t\t\t\t\tCalendario\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t {\n\t\t\t\t\t\t\tconst start = 0;\n\t\t\t\t\t\t\tconst end = 12;\n\t\t\t\t\t\t\tconst monthOptions = [];\n\n\t\t\t\t\t\t\tconst current = value.clone();\n\t\t\t\t\t\t\tconst localeData = value.localeData();\n\t\t\t\t\t\t\tconst months = [];\n\t\t\t\t\t\t\tfor (let i = 0; i < 12; i++) {\n\t\t\t\t\t\t\t\tcurrent.month(i);\n\t\t\t\t\t\t\t\tmonths.push(localeData.monthsShort(current));\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfor (let index = start; index < end; index++) {\n\t\t\t\t\t\t\t\tmonthOptions.push(\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{months[index]}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst month = value.month();\n\n\t\t\t\t\t\t\tconst year = value.year();\n\t\t\t\t\t\t\tconst year_ = parseInt(moment().format(\"YYYY\"));\n\t\t\t\t\t\t\tconst options = [];\n\t\t\t\t\t\t\tfor (let i = year_; i < year_ + 2; i += 1) {\n\t\t\t\t\t\t\t\toptions.push(\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t{i}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst mesi = [\n\t\t\t\t\t\t\t\t{ titolo: 'gen', value: 1 },\n\t\t\t\t\t\t\t\t{ titolo: 'feb', value: 2 },\n\t\t\t\t\t\t\t\t{ titolo: 'mar', value: 3 },\n\t\t\t\t\t\t\t\t{ titolo: 'apr', value: 4 },\n\t\t\t\t\t\t\t\t{ titolo: 'mag', value: 5 },\n\t\t\t\t\t\t\t\t{ titolo: 'giu', value: 6 },\n\t\t\t\t\t\t\t\t{ titolo: 'lug', value: 7 },\n\t\t\t\t\t\t\t\t{ titolo: 'ago', value: 8 },\n\t\t\t\t\t\t\t\t{ titolo: 'set', value: 9 },\n\t\t\t\t\t\t\t\t{ titolo: 'ott', value: 10 },\n\t\t\t\t\t\t\t\t{ titolo: 'nov', value: 11 },\n\t\t\t\t\t\t\t\t{ titolo: 'dic', value: 12 }\n\t\t\t\t\t\t\t];\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst now = value.clone().year(parseInt(newYear));\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange(now);\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={String(year)}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{options}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\tvar filter = mesi.filter((e: any) => e.titolo == selectedMonth);\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst newValue = value.clone();\n\t\t\t\t\t\t\t\t\t\t\t\t\tnewValue.month(parseInt((filter[0].value - 1).toString(), 10));\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange(newValue);\n\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{monthOptions}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tdateCellRender={dateCellRender}\n\t\t\t\t\t\tlocale={locale}\n\t\t\t\t\t\tmode={'month'}\n\t\t\t\t\t\t//disabledDate={disabledDate}\n\t\t\t\t\t\tfullscreen={false}\n\t\t\t\t\t\tonSelect={onSelect}\n\t\t\t\t\t\tstyle={{ width: window.innerWidth }}\n\t\t\t\t\t/>\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t{items && items.map((item: any, index: number) => {\n\t\t\t\t\t\tvar _ora_inizio = moment.unix(item.data_inizio);\n\t\t\t\t\t\tvar _current_date = moment();\n\t\t\t\t\t\tvar hh = _ora_inizio.diff(_current_date, 'hour');\n\t\t\t\t\t\tvar iconEdit = false;\n\t\t\t\t\t\tif (hh > 0) {\n\t\t\t\t\t\t\ticonEdit = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t\t\t{moment.unix(item.data_inizio).format('HH:mm')} -{' '}\n\t\t\t\t\t\t\t\t\t\t\t{moment.unix(item.data_fine).format('HH:mm')}{' '}\n\t\t\t\t\t\t\t\t\t\t

\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t

{item.fullname}

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{iconEdit && {\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tsetShowModal({\n\t\t\t\t\t\t\t\t\t\tisOpen: true,\n\t\t\t\t\t\t\t\t\t\tday: moment.unix(item.data).format(\"YYYY-MM-DD\"),\n\t\t\t\t\t\t\t\t\t\tid: item.id,\n\t\t\t\t\t\t\t\t\t\tiduser: item.iduser\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}} />}\n\t\t\t\t\t\t\t\t{iconEdit && (\n\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\tsetShowConfirmModal({\n\t\t\t\t\t\t\t\t\t\t\t\tshow: true,\n\t\t\t\t\t\t\t\t\t\t\t\tid: item.id\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t
\n\t\t\t
\n\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tsetShowModal({\n\t\t\t\t\t\t\t\t\t\tisOpen: false,\n\t\t\t\t\t\t\t\t\t\tday: '',\n\t\t\t\t\t\t\t\t\t\tid: 0,\n\t\t\t\t\t\t\t\t\t\tiduser: 0\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tChiudi\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tSeleziona orario\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\tsetShowModal({\n\t\t\t\t\t\t\tisOpen: false,\n\t\t\t\t\t\t\tday: '',\n\t\t\t\t\t\t\tid: 0,\n\t\t\t\t\t\t\tiduser: 0\n\t\t\t\t\t\t});\n\t\t\t\t\t\tsetShowLoading(true);\n\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\tgetInfoStudentCalendario();\n\t\t\t\t\t\t}, 2 * 500)\n\t\t\t\t\t}} />\n\t\t\t\t\n\t\t\t\n\n\t\t\t {\n\t\t\t\t\t\t\tsetShowConfirmModal({\n\t\t\t\t\t\t\t\tshow: false,\n\t\t\t\t\t\t\t\tid: 0\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\ttext: 'SI',\n\t\t\t\t\t\thandler: () => {\n\t\t\t\t\t\t\tremoveDayCalendar(showConfirmModal.id);\n\t\t\t\t\t\t\tsetShowConfirmModal({\n\t\t\t\t\t\t\t\tshow: false,\n\t\t\t\t\t\t\t\tid: 0\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]}\n\t\t\t/>\n\n\t\t\t setShowLoading(false)}\n\t\t\t\tmessage={''}\n\t\t\t/>\n\t\t
\n\t);\n};\n\nexport default CalendarioInstructorPage;\n","import { IonLabel, IonItem, IonDatetime, IonButton, useIonAlert, IonLoading, useIonToast } from '@ionic/react';\nimport React from 'react';\nimport './ModalAddOrariInstructor.css';\nimport moment from 'moment';\nimport { requestWebService, GET_ADD_ORARI_INSTRUCTOR } from '../utils/webservice';\n\ntype ParamsFunction = {\n closeModal: Function\n}\n\nconst ModalAddOrariInstructor: React.FC = ({ closeModal }) => {\n\n const [present] = useIonToast();\n const [presentAlert] = useIonAlert();\n const [showLoading, setShowLoading] = React.useState(false);\n\n const [state, setState] = React.useState({\n start: moment().format(\"YYYY-MM-DD\"),\n end: '',\n ora_inizio: '',\n ora_fine: '',\n });\n\n const saveOrari = async () => {\n if (!state.start) {\n alertError(\"Erore: data inizio campo obbligatorio.\");\n return false;\n }\n if (!state.end) {\n alertError(\"Erore: data fine campo obbligatorio.\");\n return false;\n }\n if (!state.ora_inizio) {\n alertError(\"Erore: ora inizio campo obbligatorio.\");\n return false;\n }\n if (!state.ora_fine) {\n alertError(\"Erore: ora fine campo obbligatorio.\");\n return false;\n }\n\n var params = {\n ora_inizio: state.ora_inizio,\n ora_fine: state.ora_fine,\n start: state.start,\n end: state.end,\n data: state.start\n }\n\n setShowLoading(true);\n requestWebService(GET_ADD_ORARI_INSTRUCTOR, params).then((res) => {\n\n if (res && res.status == 200) {\n present({\n buttons: [],\n message: \"Dati salvati con successo.\",\n position: 'bottom',\n duration: 7500\n });\n closeModal()\n } else {\n present({\n buttons: [],\n message: \"Errore: impossibile visualizzare i dati.\",\n position: 'bottom',\n duration: 7500\n });\n }\n setShowLoading(false);\n })\n }\n\n const alertError = (msg: string) => {\n presentAlert({\n cssClass: '',\n header: 'Nuovo orario',\n message: msg,\n buttons: [\n 'Chiudi'\n ],\n })\n }\n\n return (\n
\n \n Data inizio\n {\n setState({\n ...state,\n start: moment(e.detail.value).format(\"YYYY-MM-DD\")\n })\n }}>\n \n \n Data fine\n {\n setState({\n ...state,\n end: moment(e.detail.value).format(\"YYYY-MM-DD\")\n })\n }}>\n \n \n Ora inizio\n {\n setState({\n ...state,\n ora_inizio: moment(e.detail.value).format(\"HH:mm\")\n })\n }}>\n \n \n Ora fine\n {\n setState({\n ...state,\n ora_fine: moment(e.detail.value).format(\"HH:mm\")\n })\n }}>\n \n
\n {\n saveOrari();\n }}\n >\n Salva\n \n
\n setShowLoading(false)}\n message={''}\n />\n
\n );\n};\n\nexport default ModalAddOrariInstructor;\n","import React, { useContext } from 'react';\nimport {\n\tIonContent,\n\tIonHeader,\n\tIonPage,\n\tIonTitle,\n\tIonToolbar,\n\tIonButtons,\n\tIonBackButton,\n\tIonButton,\n\tIonIcon,\n\tIonItem,\n\tuseIonToast,\n\tIonLoading,\n\tIonText,\n\tIonLabel,\n\tIonSelect,\n\tIonSelectOption,\n\tIonCol,\n\tIonGrid,\n\tIonRow,\n\tIonModal,\n\tIonAlert\n} from '@ionic/react';\nimport './OrariGuidaInstructor.css';\nimport { requestWebService, GET_ORARI_INSTRUCTOR, DELETE_ORARIO_GUIDE } from '../utils/webservice';\nimport { AuthContext } from '../context/AuthContext';\nimport moment from 'moment';\nimport { capitalize } from '../utils/utils';\nimport ModalAddOrariInstructor from '../components/ModalAddOrariInstructor';\nimport { trashOutline } from 'ionicons/icons';\nmoment().locale(\"it\");\n\nconst OrariGuidaInstructorPage: React.FC = () => {\n\tconst { infoUser } = useContext(AuthContext);\n\n\tconst [present] = useIonToast();\n\tconst [showLoading, setShowLoading] = React.useState(true);\n\tconst [showModal, setShowModal] = React.useState(false);\n\tconst [state, setState] = React.useState({\n\t\titems: [],\n\t\tfilterMonth: capitalize(moment().format('MMMM')),\n\t\tfilterYear: moment().format('YYYY')\n\t});\n\tconst [showConfirmModal, setShowConfirmModal] = React.useState({\n\t\tshow: false,\n\t\tid: 0\n\t});\n\n\tReact.useEffect(() => {\n\t\tgetOrariInstructor(moment().format(\"YYYY-MM-DD\"));\n\t}, []);\n\n\tconst getOrariInstructor = (date: string) => {\n\n\t\trequestWebService(GET_ORARI_INSTRUCTOR, { date: date }).then((res) => {\n\t\t\tif (res && res.status == 200) {\n\t\t\t\tsetState({\n\t\t\t\t\t...state,\n\t\t\t\t\titems: res.data || [],\n\t\t\t\t\tfilterMonth: capitalize(moment(date).format('MMMM')),\n\t\t\t\t\tfilterYear: moment(date).format('YYYY')\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tpresent({\n\t\t\t\t\tbuttons: [],\n\t\t\t\t\tmessage: \"Errore: impossibile visualizzare i dati.\",\n\t\t\t\t\tposition: 'bottom',\n\t\t\t\t\tduration: 7500\n\t\t\t\t});\n\t\t\t}\n\t\t\tsetShowLoading(false);\n\t\t})\n\t}\n\n\tconst removeGuidaCalendar = async (id: number) => {\n\t\tsetShowLoading(true);\n\t\trequestWebService(DELETE_ORARIO_GUIDE, { id: id }).then((res) => {\n\t\t\tif (res && res.status && res.status == 200) {\n\t\t\t\tpresent({\n\t\t\t\t\tbuttons: [],\n\t\t\t\t\tmessage: \"Dati salvati con successo.\",\n\t\t\t\t\tposition: 'bottom',\n\t\t\t\t\tduration: 7500\n\t\t\t\t});\n\n\t\t\t\tvar mm = moment().format(\"MM\");\n\t\t\t\tif (state.filterMonth) {\n\t\t\t\t\tmm = moment().month(state.filterMonth).format(\"MM\");\n\t\t\t\t}\n\t\t\t\tvar year = state.filterYear || moment().format(\"YYYY\");\n\t\t\t\tvar date = moment(year + \"-\" + mm + \"-01T00:00:00\").format(\"YYYY-MM-DD\");\n\t\t\t\tgetOrariInstructor(date);\n\n\t\t\t} else {\n\t\t\t\tpresent({\n\t\t\t\t\tbuttons: [],\n\t\t\t\t\tmessage: \"Errore: impossibile visualizzare i dati.\",\n\t\t\t\t\tposition: 'bottom',\n\t\t\t\t\tduration: 7500\n\t\t\t\t});\n\t\t\t}\n\t\t\tsetShowLoading(false);\n\t\t})\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\tOrari Guida\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\tFiltri\n\t\t\t\t\n\t\t\t\t\tAnno\n\t\t\t\t\t {\n\t\t\t\t\t\tif (e.detail.value) {\n\t\t\t\t\t\t\tvar mm = moment().month(state.filterMonth).format(\"MM\");\n\t\t\t\t\t\t\tvar date = moment(e.detail.value + \"-\" + mm + \"-01T00:00:00\").format(\"YYYY-MM-DD\");\n\t\t\t\t\t\t\tgetOrariInstructor(date);\n\t\t\t\t\t\t}\n\t\t\t\t\t}}>\n\t\t\t\t\t\t{'2020'}\n\t\t\t\t\t\t{'2021'}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tMese\n\t\t\t\t\t {\n\t\t\t\t\t\tif (e.detail.value) {\n\t\t\t\t\t\t\tvar mm = moment().month(e.detail.value).format(\"MM\");\n\t\t\t\t\t\t\tvar date = moment(state.filterYear + \"-\" + mm + \"-01T00:00:00\").format(\"YYYY-MM-DD\");\n\t\t\t\t\t\t\tgetOrariInstructor(date);\n\t\t\t\t\t\t}\n\t\t\t\t\t}}>\n\t\t\t\t\t\t{moment.months().map((item, index) => {\n\t\t\t\t\t\t\treturn {capitalize(item)}\n\t\t\t\t\t\t})}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t

Orari

\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetShowModal(true);\n\t\t\t\t\t\t\t}}>Aggiungi orario\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t{!showLoading && state.items.length <= 0 &&

Nessun orario inserito

}\n\t\t\t\t{state.items && state.items.map((item: any, index: number) => {\n\t\t\t\t\treturn \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t

{item.data}

\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

{item.ora_inizio} - {item.ora_fine}

\n\t\t\t\t\t\t
\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\tsetShowConfirmModal({\n\t\t\t\t\t\t\t\tshow: true,\n\t\t\t\t\t\t\t\tid: item.id\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}} />\n\t\t\t\t\t
\n\t\t\t\t})}\n\t\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\tsetShowModal(false);\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tChiudi\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tAggiungi nuovo orario\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\tsetShowModal(false);\n\t\t\t\t\t\tvar mm = moment().format(\"MM\");\n\t\t\t\t\t\tif (state.filterMonth) {\n\t\t\t\t\t\t\tmm = moment().month(state.filterMonth).format(\"MM\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvar year = state.filterYear || moment().format(\"YYYY\");\n\t\t\t\t\t\tvar date = moment(year + \"-\" + mm + \"-01T00:00:00\").format(\"YYYY-MM-DD\");\n\t\t\t\t\t\tgetOrariInstructor(date);\n\n\t\t\t\t\t}} />\n\t\t\t\t\n\t\t\t\n\t\t\t setShowLoading(false)}\n\t\t\t\tmessage={''}\n\t\t\t/>\n\t\t\t {\n\t\t\t\t\t\t\tsetShowConfirmModal({\n\t\t\t\t\t\t\t\tshow: false,\n\t\t\t\t\t\t\t\tid: 0\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\ttext: 'SI',\n\t\t\t\t\t\thandler: () => {\n\t\t\t\t\t\t\tremoveGuidaCalendar(showConfirmModal.id);\n\t\t\t\t\t\t\tsetShowConfirmModal({\n\t\t\t\t\t\t\t\tshow: false,\n\t\t\t\t\t\t\t\tid: 0\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t]}\n\t\t\t/>\n\t\t
\n\t);\n};\n\nexport default OrariGuidaInstructorPage;\n","import React, { useContext } from 'react';\nimport {\n IonContent,\n IonHeader,\n IonPage,\n IonTitle,\n IonToolbar,\n IonButtons,\n IonBackButton,\n IonButton,\n IonItem,\n useIonToast,\n IonLabel,\n IonSelect,\n IonSelectOption,\n IonDatetime\n} from '@ionic/react';\nimport './AddGuida.css';\nimport { requestWebService, GET_METODI_PAGAMENTO, GET_SERVIZI, GET_ISCRIZIONI, GET_ORARI_GUIDE_DAY, ADD_ORARIO_STUDENT_CALENDARIO, GET_CALENDARIO_STUDENT, GET_CALENDAR_INSTRUCTOR } from '../utils/webservice';\nimport { AuthContext } from '../context/AuthContext';\nimport moment from 'moment';\nimport { RouteComponentProps, Router } from 'react-router';\nimport { compare } from '../utils/utils';\nmoment().locale(\"it\");\n\n\ninterface AddGuidaPageProps\n extends RouteComponentProps<{\n iduser: string;\n }> { }\n\nconst AddGuidaPage: React.FC = ({ match }) => {\n const { infoUser } = useContext(AuthContext);\n //const [metodiPagamento, setMetodi] = React.useState([]);\n //const [servizi, setServizi] = React.useState([{ id: null, titolo: null }]);\n const [payments, setPayments] = React.useState([]);\n const [corsi, setCorsi] = React.useState<{ id_corso: number, id_iscrizione: number, coin: number, corso: string }[]>([]);\n const [noGuide, setNoGuide] = React.useState(false);\n const [noGuideCorso, setNoGuideCorso] = React.useState(false);\n const [noOrari, setNoOrari] = React.useState(false);\n const [calendar, setCalendar] = React.useState([]);\n const [selectedDate, setSelectedDate] = React.useState(\"\");\n const [selectedOrario, setSelectedOrario] = React.useState<{ data: string, id: number, instructor: number, inizio: string, fine: string }>();\n const [orari, setOrari] = React.useState([]);\n\n const [present] = useIonToast();\n const [showLoading, setShowLoading] = React.useState(true);\n const [state, setState] = React.useState({\n spinning: false,\n calendar_student: [],\n coin: 1,\n student: '',\n qrcode: '',\n errorMsg: '',\n successMsg: '',\n orari: [],\n showAddCoin: false,\n courses_student: [],\n orario_saved: '',\n paymentMethods: \"\",\n corso: undefined,\n services: null,\n note: \"\",\n showConfirmModal: false\n });\n\n React.useEffect(() => {\n\n getInitialData();\n }, []);\n\n const getInitialData = async () => {\n //var metodi = await requestWebService(GET_METODI_PAGAMENTO, { id_autoscuola: parseInt(infoUser.autoscuola) });\n // var servizi = await requestWebService(GET_SERVIZI, { id_autoscuola: parseInt(infoUser.autoscuola) });\n var result = await requestWebService(GET_ISCRIZIONI, { iduser: match.params.iduser });\n var calendario = await requestWebService(GET_CALENDARIO_STUDENT, { iduser: match.params.iduser });\n\n var count = result.courses.length;\n \n result.courses.forEach((element: any) => {\n if (element[\"sumPayments\"] !== element[\"importo_iscrizione\"]) {\n //count = count - 1;\n }\n });\n\n if (count == 0 || result.courses.filter((e: any) => e.coin != null && e.coin != 0).length == 0) {\n setNoGuide(true);\n }\n\n setCalendar(calendario.data);\n setCorsi(result.courses);\n setPayments(result.payments);\n //setMetodi(metodi.data);\n //setServizi(servizi.data);\n }\n\n const getOrari = (value: any) => {\n setNoOrari(false);\n\n requestWebService(GET_ORARI_GUIDE_DAY, { data: moment(value).unix(), inst: infoUser.user }).then(async (res) => {\n var calendarioInstructor = await requestWebService(GET_CALENDAR_INSTRUCTOR, {});\n var orari = res.orari;\n var date = moment().format(\"YYYY-MM-DD\");\n var dataValue = moment(value).format(\"YYYY-MM-DD\");\n var array: any = [];\n var _orari: any = [];\n orari.forEach((item: any) => {\n var orainizio = moment(date + \"T\" + item.ora_inizio);\n var orafine = moment(date + \"T\" + item.ora_fine);\n var mm = orafine.diff(orainizio, 'minute') / 30;\n\n for (var i = 0; i < mm; i++) {\n if (!(date == dataValue && moment().format(\"HH:mm\") > moment(orainizio).add(30 * i, 'm').format(\"HH:mm\"))) { }\n array.push({\n id: item.id,\n data: moment(item.data.toString()).format(\"YYYY-MM-DD\"),\n inizio: moment(orainizio).add(30 * i, 'm').format(\"HH:mm\"),\n fine: moment(orainizio).add(30 * (i + 1), 'm').format(\"HH:mm\"),\n show: true\n });\n\n }\n });\n _orari = array.sort(compare);\n\n if (calendarioInstructor != undefined) {\n var cal = calendarioInstructor.data.filter((element: any) => moment.unix(element.data).format(\"YYYY-MM-DD\").toString() >= moment(value).format(\"YYYY-MM-DD\").toString());\n if (cal.length != 0) {\n\n // console.log(cal);\n // console.log(moment.unix(cal[0].data).format(\"YYYY-MMM-DD\").toString());\n // console.log(moment.unix(cal[0].data_inizio).format(\"HH:mm\").toString());\n // console.log(_orari[0].data);\n // console.log(_orari[0].inizio);\n\n\n cal.forEach((item: any) => {\n _orari = _orari.filter((element: any) =>\n moment.unix(item.data).format(\"YYYY-MM-DD\").toString() != element.data ||\n moment.unix(item.data_inizio).format(\"HH:mm\").toString() != element.inizio.toString());\n });\n }\n }\n\n\n if (_orari.length == 0) {\n setNoOrari(true);\n } else {\n setOrari(_orari);\n }\n });\n }\n\n const addGuida = () => {\n var datainizio = moment(moment(selectedDate).format(\"YYYY-MM-DD\") + \" \" + selectedOrario!.inizio).unix();\n var datafine = moment(moment(selectedDate).format(\"YYYY-MM-DD\") + \" \" + selectedOrario!.fine).unix();\n\n var val = {\n id_iscrizione: state.corso![\"id_iscrizione\"],\n iduser: match.params.iduser,\n data: moment(selectedDate).unix(),\n data_inizio: datainizio,\n data_fine: datafine,\n inst: infoUser.user\n };\n\n requestWebService(ADD_ORARIO_STUDENT_CALENDARIO, val).then((res) => {\n\n if (res && res.status == 200) {\n present({\n buttons: [],\n message: 'Successo : guida aggiunta con successo',\n position: 'bottom',\n duration: 3000\n });\n window.history.back();\n } else {\n present({\n buttons: [],\n message: \"Errore: impossibile salvare al guida\",\n position: 'bottom',\n duration: 7500\n });\n }\n });\n }\n\n\n return (\n \n \n \n \n \n \n Aggiungi Guida\n \n \n \n
\n\n {!noGuide && <>\n {\n var coin = payments.filter((element: any) => element[\"id_iscrizione\"] == e.detail.value[\"id_iscrizione\"]);\n var coinSpesi = calendar.filter((element: any) => element[\"id_iscrizione\"] == e.detail.value[\"id_iscrizione\"]).length;\n var totalCoin = 0;\n coin.forEach((item: any) => {\n totalCoin += item.coin;\n })\n totalCoin = totalCoin - coinSpesi;\n if (payments.filter((element: any) => element[\"method\"] == \"Da pagare\").length > 10) {\n setNoGuideCorso(true);\n }\n // setNoGuideCorso(\n // totalCoin <= 0 || \n // e.detail.value[\"corso_teorico\"] != 2 || \n // payments.filter((element: any) => element[\"method\"] == \"Da pagare\").length > 10);\n setState({ ...state, corso: e.detail.value, })\n }}\n >\n {corsi.map((item, index) => {\n return {item.corso}\n })}\n \n\n\n {state.corso != null && !noGuideCorso && \n Seleziona data\n { setSelectedDate(e.detail.value!); getOrari(e.detail.value!); }}\n >\n }\n }\n\n {selectedDate && !noOrari && {\n setSelectedOrario(e.detail.value!);\n }}\n >\n {orari.map((item, index) => {\n return {item[\"inizio\"] + \"-\" + item[\"fine\"]}\n })}\n }\n\n {selectedDate && selectedOrario && !noGuide && !noGuideCorso && !noOrari && Aggiungi guida}\n\n {noGuide &&

Non puoi fissare guide per questo allievo

}\n {noGuideCorso &&

Non puoi fissare guide per questo corso

}\n {noOrari &&

Non hai orari disponibili per questa data

}\n
\n
\n
\n );\n};\n\nexport default AddGuidaPage;\n","import React from 'react';\nimport { Switch, Route, Redirect, RouteComponentProps } from 'react-router-dom';\nimport {\n\tIonApp,\n\tIonMenu,\n\tIonHeader,\n\tIonRouterOutlet,\n\tIonToolbar,\n\tIonTitle,\n\tIonContent,\n\tIonList,\n\tIonItem,\n\tIonAlert,\n\tIonMenuToggle\n} from '@ionic/react';\nimport { IonReactRouter } from '@ionic/react-router';\nimport Calendario from './pages/Calendario';\nimport Corsi from './pages/Corsi';\nimport DatiInfoStudent from './pages/DatiInfoStudent';\n\n/* Core CSS required for Ionic components to work properly */\nimport '@ionic/react/css/core.css';\n\n/* Basic CSS for apps built with Ionic */\nimport '@ionic/react/css/normalize.css';\nimport '@ionic/react/css/structure.css';\nimport '@ionic/react/css/typography.css';\n\n/* Optional CSS utils that can be commented out */\nimport '@ionic/react/css/padding.css';\nimport '@ionic/react/css/float-elements.css';\nimport '@ionic/react/css/text-alignment.css';\nimport '@ionic/react/css/text-transformation.css';\nimport '@ionic/react/css/flex-utils.css';\nimport '@ionic/react/css/display.css';\n\n/* Theme variables */\nimport '../node_modules/antd/dist/antd.css';\nimport './theme/variables.css';\nimport { useCookies } from 'react-cookie';\nimport LoginPage from './pages/Login';\nimport { AuthContext } from './context/AuthContext';\nimport { requestWebService, setToken, VALIDATION_TOKEN } from './utils/webservice';\nimport LoadingPage from './pages/Loading';\nimport { QueryClient, QueryClientProvider } from 'react-query';\nimport PagamentoCorsoPage from './pages/PagamentoCorso';\nimport CalendarioCorsoPage from './pages/CalendarioCorso';\nimport ListGuidePage from './pages/ListGuide';\nimport BachecaApp from './pages/Bacheca';\nimport MaterialeApp from './pages/MaterialeApp';\nimport CalendarioCorsoTeoricoPage from './pages/CalendarioCorsoTeorico';\nimport CapitoliMaterialeApp from './pages/CapitoliMaterialeApp';\nimport BachecaInstructorApp from './pages/BachecaInstructor';\nimport ListAllieviInstructor from './pages/ListAllieviInstructor';\nimport QrcodeInstructor from './pages/QrcodeInstructor';\nimport CalendarioInstructorPage from './pages/CalendarioInstructor';\nimport OrariGuidaInstructorPage from './pages/OrariGuidaInstructor';\nimport AddGuidaPage from './pages/AddGuida';\nconst dev = process.env.NODE_ENV !== 'production';\n\n\nconst queryClient = new QueryClient({\n\tdefaultOptions: {\n\t\tqueries: {\n\t\t\trefetchOnWindowFocus: false,\n\t\t\trefetchOnMount: true,\n\t\t\tstaleTime: 0\n\t\t}\n\t}\n});\n\nconst App: React.FC = () => {\n\tconst [cookies, setCookie, removeCookie] = useCookies(['__tknAC__']);\n\tconst tkn = cookies['__tknAC__'] || false;\n\tconst [showConfirmModal, setShowConfirmModal] = React.useState(false);\n\n\tconst [state, dispatch] = React.useReducer(\n\t\t(prevState: any, action: any) => {\n\t\t\tswitch (action.type) {\n\t\t\t\tcase 'SIGN_IN':\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...prevState,\n\t\t\t\t\t\tloading: false,\n\t\t\t\t\t\tapp_started: action.app_started,\n\t\t\t\t\t\tuser: action.user || null,\n\t\t\t\t\t\tfullname: action.fullname || null,\n\t\t\t\t\t\ttoken: action.token || null,\n\t\t\t\t\t\tuserType: action.userType || 'student',\n\t\t\t\t\t\tautoscuola: action.autoscuola || null\n\t\t\t\t\t};\n\t\t\t\tcase 'SET_LOADING':\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...prevState,\n\t\t\t\t\t\tloading: false\n\t\t\t\t\t};\n\t\t\t\tcase 'POSTO_AULA':\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...prevState,\n\t\t\t\t\t\tposto_aula: action.posto_aula || false\n\t\t\t\t\t};\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tapp_started: tkn ? true : false,\n\t\t\tloading: tkn ? false : true,\n\t\t\tuser: null,\n\t\t\tfullname: null,\n\t\t\ttoken: null,\n\t\t\tuserType: null,\n\t\t\tautoscuola: null,\n\t\t\tposto_aula: false\n\t\t}\n\t);\n\n\tReact.useEffect(() => {\n\t\tconst bootstrapAsync = async () => {\n\t\t\tlet deferredPrompt;\n\t\t\twindow.addEventListener('beforeinstallprompt', (e: any) => {\n\n\t\t\t\tconsole.log('beforeinstallprompt Event fired');\n\t\t\t\t// Prevent Chrome 67 and earlier from automatically showing the prompt\n\t\t\t\te.preventDefault();\n\t\t\t\t// Stash the event so it can be triggered later.\n\t\t\t\tdeferredPrompt = e;\n\t\t\t});\n\n\n\t\t\tlet params = {\n\t\t\t\tapp_started: false,\n\t\t\t\tuser: null,\n\t\t\t\tfullname: null,\n\t\t\t\ttoken: null,\n\t\t\t\tuserType: null,\n\t\t\t\tautoscuola: null\n\t\t\t};\n\t\t\tif (tkn && localStorage.getItem('infouser')) {\n\t\t\t\tsetToken(tkn);\n\t\t\t\tvar infouser = JSON.parse(localStorage.getItem('infouser') || '{}');\n\t\t\t\tparams = {\n\t\t\t\t\tapp_started: true,\n\t\t\t\t\tuser: infouser.user,\n\t\t\t\t\tfullname: infouser.fullname,\n\t\t\t\t\ttoken: tkn,\n\t\t\t\t\tuserType: infouser.userType || 'student',\n\t\t\t\t\tautoscuola: infouser.autoscuola\n\t\t\t\t};\n\t\t\t\t// var res: any = await requestWebService(VALIDATION_TOKEN, {});\n\t\t\t\t// if (res && res.status == 200) {\n\n\t\t\t\t// } else if (res && res.status == 201) {\n\t\t\t\t// \tremoveCookie('__tknAC__');\n\t\t\t\t// }\n\t\t\t}\n\t\t\tdispatch({ type: 'SIGN_IN', ...params });\n\t\t};\n\t\tbootstrapAsync();\n\t}, []);\n\n\tconst authContext = {\n\t\t//\t\tsecure: dev ? false : true,\n\t\tsignIn: async (data: any) => {\n\t\t\tsetCookie('__tknAC__', data.token, {\n\t\t\t\tsecure: false,\n\t\t\t\tpath: '/',\n\t\t\t\tmaxAge: 30 * 24 * 60 * 60 * 1000\n\t\t\t});\n\t\t\tdispatch({ type: 'SIGN_IN', app_started: true, ...data });\n\t\t},\n\t\tinfoUser: state,\n\t\tsetPostoAula: async (posto_aula: boolean) => {\n\t\t\tdispatch({ type: 'POSTO_AULA', posto_aula: posto_aula });\n\t\t},\n\t};\n\n\tif (!state.app_started && state.loading) {\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n\n\tif (!state.app_started) {\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{state.fullname}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t{state.autoscuola == '1' && (\n\t\t\t\t\t\t\t\t\t\t\t

Autoscuola Crocetta Parma

\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t{state.autoscuola == '3' && (\n\t\t\t\t\t\t\t\t\t\t\t

Autoscuola Crocetta Langhirano

\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t{state.userType == 'student' && \n\t\t\t\t\t\t\t\t\t\t\tHome\n\t\t\t\t\t\t\t\t\t\t\tCalendario guide\n\t\t\t\t\t\t\t\t\t\t\tPagamenti\n\t\t\t\t\t\t\t\t\t\t\tI miei dati\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetShowConfirmModal(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\tEsci\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t{state.userType == 'instructor' && \n\t\t\t\t\t\t\t\t\t\t\tHome\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetShowConfirmModal(true);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\tEsci\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\n\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{!state.userType || state.userType == 'student' ? : }\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t }>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t } />\n\t\t\t\t\t\t\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tsetShowConfirmModal(false);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttext: 'SI',\n\t\t\t\t\t\t\t\t\thandler: () => {\n\t\t\t\t\t\t\t\t\t\tsetShowConfirmModal(false);\n\t\t\t\t\t\t\t\t\t\tremoveCookie('__tknAC__');\n\t\t\t\t\t\t\t\t\t\tdispatch({ type: 'SIGN_IN' });\n\t\t\t\t\t\t\t\t\t\twindow.location.href = '/';\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
\n\t\t\t\t
\n\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default App;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://cra.link/PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(/^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)\n);\n\ntype Config = {\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\n};\n\n\nexport function register(config?: Config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://cra.link/PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl: string, config?: Config) {\n navigator.serviceWorker\n .register(swUrl)\n .then((registration) => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://cra.link/PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch((error) => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' },\n })\n .then((response) => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log('No internet connection found. App is running in offline mode.');\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then((registration) => {\n registration.unregister();\n })\n .catch((error) => {\n console.error(error.message);\n });\n }\n}\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 App from './App';\nimport * as serviceWorkerRegistration from './serviceWorkerRegistration';\nimport reportWebVitals from './reportWebVitals';\n\nReactDOM.render(\n\t\n\t\t\n\t,\n\tdocument.getElementById('root')\n);\n\n\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://cra.link/PWA\nserviceWorkerRegistration.unregister();\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":""}