aiber-martin/www/2-es5.js.map
Martin Donnelly a4b8625d0f init
2020-12-17 16:23:12 +00:00

1 line
93 KiB
Plaintext

{"version":3,"sources":["webpack:///node_modules/@ionic/core/dist/esm/ion-app_8.entry.js"],"names":["appCss","App","hostRef","rIC","isHybrid","window","getBoolean","then","module","startTapClick","startStatusTap","needInputShims","startInputShims","startHardwareBackButton","startKeyboardAssist","startFocusVisible","mode","callback","requestIdleCallback","setTimeout","style","buttonsIosCss","buttonsMdCss","Buttons","collapse","ios","md","contentCss","Content","ionScrollStart","ionScroll","ionScrollEnd","isScrolling","lastScroll","queued","cTop","cBottom","detail","scrollTop","scrollLeft","type","event","undefined","startX","startY","startTime","currentX","currentY","velocityX","velocityY","deltaX","deltaY","currentTime","data","fullscreen","scrollX","scrollY","scrollEvents","onScrollEnd","resize","ev","preventDefault","stopPropagation","forceOverscroll","readDimensions","page","getPageElement","el","top","Math","max","offsetTop","bottom","offsetHeight","dirty","timeStamp","Date","now","shouldStart","onScrollStart","ts","updateScrollDetail","scrollEl","emit","Promise","resolve","duration","scrollToPoint","y","scrollHeight","clientHeight","x","promise","r","fromY","fromX","step","linearTime","min","easedT","pow","floor","requestAnimationFrame","watchDog","clearInterval","setInterval","shouldForceOverscroll","transitionShadow","color","id","part","ref","onScroll","name","getParentElement","parentElement","parentNode","host","tabs","closest","timestamp","prevX","prevY","prevT","timeDelta","footerIosCss","footerMdCss","Footer","translucent","role","TRANSITION","cloneElement","tagName","getCachedEl","document","querySelector","clonedEl","createElement","classList","add","setProperty","body","appendChild","createHeaderIndex","headerEl","toolbars","querySelectorAll","Array","from","map","toolbar","ionTitleEl","background","shadowRoot","innerTitleEl","ionButtonsEl","handleContentScroll","scrollHeaderIndex","contentEl","scale","nativeRefresher","scaleLargeTitles","setToolbarBackgroundOpacity","opacity","removeProperty","toString","handleToolbarBorderIntersection","mainHeaderIndex","isIntersecting","intersectionRatio","forEach","handleToolbarIntersection","intersection","intersectionRect","intersectionArea","width","height","rootArea","rootBounds","isPageHidden","leftDiff","abs","left","boundingClientRect","rightDiff","right","isPageTransitioning","setHeaderActive","hasValidIntersection","headerIndex","active","remove","transition","ionTitle","titleDiv","size","transform","headerIosCss","headerMdCss","Header","collapsibleHeaderInitialized","checkCollapsibleHeader","destroyCollapsibleHeader","hasCollapse","canCollapse","pageEl","title","setupCollapsibleHeader","intersectionObserver","disconnect","contentScrollCallback","removeEventListener","collapsibleMainHeader","console","error","IntersectionObserver","getScrollElement","headers","find","header","toolbarIntersection","root","threshold","observe","length","addEventListener","routeOutletCss","RouterOutlet","ionNavWillLoad","ionNavWillChange","ionNavDidChange","animationEnabled","animated","gesture","enable","swipeHandler","createSwipeBackGesture","canStart","onStart","ani","progressStep","shouldComplete","dur","onFinish","onEnd","oneTimeCallback","newStepValue","easing","progressEnd","swipeHandlerChanged","destroy","enteringEl","leavingEl","opts","lock","unlock","changed","params","direction","animation","setRoot","animationBuilder","element","activeEl","component","activeComponent","delegate","commit","get","Object","assign","baseEl","progressCallback","progressAnimation","p","waitPromise","titleIosCss","titleMdCss","ToolbarTitle","ionStyle","emitStyle","getSize","toolbarIosCss","toolbarMdCss","Toolbar","childrenStyles","Map","buttons","firstButtons","button","slot","buttonsReversed","reverse","lastButtons","target","updatedStyles","newStyles","childStyles","hasStyleChange","keys","key","childKey","newValue","set","value"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;;AAQA,UAAMA,MAAM,GAAG,wKAAf;;AAEA,UAAMC,GAAG;AACL,qBAAYC,OAAZ,EAAqB;AAAA;;AACjB,uEAAiB,IAAjB,EAAuBA,OAAvB;AACH;;AAHI;AAAA;AAAA,6CAIc;AACf;AACIC,iBAAG,CAAC,YAAM;AACN,oBAAMC,QAAQ,GAAG,oEAAWC,MAAX,EAAmB,QAAnB,CAAjB;;AACA,oBAAI,CAAC,4DAAOC,UAAP,CAAkB,UAAlB,CAAL,EAAoC;AAChC;AAAA;AAAA;AAAA;AAAA,gFAAkCC,IAAlC,CAAuC,UAAAC,MAAM;AAAA,2BAAIA,MAAM,CAACC,aAAP,CAAqB,2DAArB,CAAJ;AAAA,mBAA7C;AACH;;AACD,oBAAI,4DAAOH,UAAP,CAAkB,WAAlB,EAA+BF,QAA/B,CAAJ,EAA8C;AAC1C;AAAA;AAAA;AAAA;AAAA,iFAAmCG,IAAnC,CAAwC,UAAAC,MAAM;AAAA,2BAAIA,MAAM,CAACE,cAAP,EAAJ;AAAA,mBAA9C;AACH;;AACD,oBAAI,4DAAOJ,UAAP,CAAkB,YAAlB,EAAgCK,cAAc,EAA9C,CAAJ,EAAuD;AACnD;AAAA;AAAA;AAAA;AAAA,kFAAoCJ,IAApC,CAAyC,UAAAC,MAAM;AAAA,2BAAIA,MAAM,CAACI,eAAP,CAAuB,2DAAvB,CAAJ;AAAA,mBAA/C;AACH;;AACD,oBAAI,4DAAON,UAAP,CAAkB,oBAAlB,EAAwCF,QAAxC,CAAJ,EAAuD;AACnD;AAAA;AAAA,2FAA6CG,IAA7C,CAAkD,UAAAC,MAAM;AAAA,2BAAIA,MAAM,CAACK,uBAAP,EAAJ;AAAA,mBAAxD;AACH;;AACD,oBAAI,OAAOR,MAAP,KAAkB,WAAtB,EAAmC;AAC/B;AAAA;AAAA;AAAA;AAAA,+EAAiCE,IAAjC,CAAsC,UAAAC,MAAM;AAAA,2BAAIA,MAAM,CAACM,mBAAP,CAA2BT,MAA3B,CAAJ;AAAA,mBAA5C;AACH;;AACD;AAAA;AAAA;AAAA;AAAA,kFAAsCE,IAAtC,CAA2C,UAAAC,MAAM;AAAA,yBAAIA,MAAM,CAACO,iBAAP,EAAJ;AAAA,iBAAjD;AACH,eAlBE,CAAH;AAmBH;AACJ;AA1BI;AAAA;AAAA,mCA2BI;AAAA;;AACL,gBAAMC,IAAI,GAAG,oEAAW,IAAX,CAAb;AACA,mBAAQ,6DAAE,oDAAF,EAAQ;AAAE,6DACTA,IADS,EACF,IADE,2BAEV,UAFU,EAEE,IAFF,2BAGV,yBAHU,EAGiB,4DAAOV,UAAP,CAAkB,wBAAlB,CAHjB;AAAF,aAAR,CAAR;AAKH;AAlCI;AAAA;AAAA,8BAmCI;AAAE,mBAAO,6DAAW,IAAX,CAAP;AAA0B;AAnChC;;AAAA;AAAA,SAAT;;AAqCA,UAAMK,cAAc,GAAG,SAAjBA,cAAiB,GAAM;AACzB,eAAO,oEAAWN,MAAX,EAAmB,KAAnB,KAA6B,oEAAWA,MAAX,EAAmB,QAAnB,CAApC;AACH,OAFD;;AAGA,UAAMF,GAAG,GAAG,SAANA,GAAM,CAACc,QAAD,EAAc;AACtB,YAAI,yBAAyBZ,MAA7B,EAAqC;AACjCA,gBAAM,CAACa,mBAAP,CAA2BD,QAA3B;AACH,SAFD,MAGK;AACDE,oBAAU,CAACF,QAAD,EAAW,EAAX,CAAV;AACH;AACJ,OAPD;;AAQAhB,SAAG,CAACmB,KAAJ,GAAYpB,MAAZ;AAEA,UAAMqB,aAAa,GAAG,ijGAAtB;AAEA,UAAMC,YAAY,GAAG,o8GAArB;;AAEA,UAAMC,OAAO;AACT,yBAAYrB,OAAZ,EAAqB;AAAA;;AACjB,uEAAiB,IAAjB,EAAuBA,OAAvB;AACA;;;;;;;;;;;;;AAYA,eAAKsB,QAAL,GAAgB,KAAhB;AACH;;AAhBQ;AAAA;AAAA,mCAiBA;AAAA;;AACL,gBAAMR,IAAI,GAAG,oEAAW,IAAX,CAAb;AACA,mBAAQ,6DAAE,oDAAF,EAAQ;AAAE,+DACTA,IADS,EACF,IADE,4BAET,kBAFS,EAEY,KAAKQ,QAFjB;AAAF,aAAR,CAAR;AAIH;AAvBQ;;AAAA;AAAA,SAAb;;AAyBAD,aAAO,CAACH,KAAR,GAAgB;AACZK,WAAG,EAAEJ,aADO;AAEZK,UAAE,EAAEJ;AAFQ,OAAhB;AAKA,UAAMK,UAAU,GAAG,6vHAAnB;;AAEA,UAAMC,OAAO;AACT,yBAAY1B,OAAZ,EAAqB;AAAA;;AACjB,uEAAiB,IAAjB,EAAuBA,OAAvB;AACA,eAAK2B,cAAL,GAAsB,6DAAY,IAAZ,EAAkB,gBAAlB,EAAoC,CAApC,CAAtB;AACA,eAAKC,SAAL,GAAiB,6DAAY,IAAZ,EAAkB,WAAlB,EAA+B,CAA/B,CAAjB;AACA,eAAKC,YAAL,GAAoB,6DAAY,IAAZ,EAAkB,cAAlB,EAAkC,CAAlC,CAApB;AACA,eAAKC,WAAL,GAAmB,KAAnB;AACA,eAAKC,UAAL,GAAkB,CAAlB;AACA,eAAKC,MAAL,GAAc,KAAd;AACA,eAAKC,IAAL,GAAY,CAAC,CAAb;AACA,eAAKC,OAAL,GAAe,CAAC,CAAhB,CATiB,CAUjB;AACA;AACA;;AACA,eAAKC,MAAL,GAAc;AACVC,qBAAS,EAAE,CADD;AAEVC,sBAAU,EAAE,CAFF;AAGVC,gBAAI,EAAE,QAHI;AAIVC,iBAAK,EAAEC,SAJG;AAKVC,kBAAM,EAAE,CALE;AAMVC,kBAAM,EAAE,CANE;AAOVC,qBAAS,EAAE,CAPD;AAQVC,oBAAQ,EAAE,CARA;AASVC,oBAAQ,EAAE,CATA;AAUVC,qBAAS,EAAE,CAVD;AAWVC,qBAAS,EAAE,CAXD;AAYVC,kBAAM,EAAE,CAZE;AAaVC,kBAAM,EAAE,CAbE;AAcVC,uBAAW,EAAE,CAdH;AAeVC,gBAAI,EAAEX,SAfI;AAgBVV,uBAAW,EAAE;AAhBH,WAAd;AAkBA;;;;;;AAKA,eAAKsB,UAAL,GAAkB,KAAlB;AACA;;;;AAGA,eAAKC,OAAL,GAAe,KAAf;AACA;;;;AAGA,eAAKC,OAAL,GAAe,IAAf;AACA;;;;;AAIA,eAAKC,YAAL,GAAoB,KAApB;AACH;;AAnDQ;AAAA;AAAA,iDAoDc;AACnB,iBAAKC,WAAL;AACH;AAtDQ;AAAA;AAAA,sCAuDG;AACR,iBAAKC,MAAL;AACH;AAzDQ;AAAA;AAAA,kCA0DDC,EA1DC,EA0DG;AACR,gBAAI,KAAK5B,WAAT,EAAsB;AAClB4B,gBAAE,CAACC,cAAH;AACAD,gBAAE,CAACE,eAAH;AACH;AACJ;AA/DQ;AAAA;AAAA,kDAgEe;AAAA,gBACZC,eADY,GACQ,IADR,CACZA,eADY;AAEpB,gBAAM/C,IAAI,GAAG,oEAAW,IAAX,CAAb;AACA,mBAAO+C,eAAe,KAAKrB,SAApB,GACD1B,IAAI,KAAK,KAAT,IAAkB,oEAAW,KAAX,CADjB,GAED+C,eAFN;AAGH;AAtEQ;AAAA;AAAA,mCAuEA;AAAA;;AACL,gBAAI,KAAKT,UAAT,EAAqB;AACjB,2EAAS;AAAA,uBAAM,KAAI,CAACU,cAAL,EAAN;AAAA,eAAT;AACH,aAFD,MAGK,IAAI,KAAK7B,IAAL,KAAc,CAAd,IAAmB,KAAKC,OAAL,KAAiB,CAAxC,EAA2C;AAC5C,mBAAKD,IAAL,GAAY,KAAKC,OAAL,GAAe,CAA3B;AACA,2EAAY,IAAZ;AACH;AACJ;AA/EQ;AAAA;AAAA,2CAgFQ;AACb,gBAAM6B,IAAI,GAAGC,cAAc,CAAC,KAAKC,EAAN,CAA3B;AACA,gBAAMC,GAAG,GAAGC,IAAI,CAACC,GAAL,CAAS,KAAKH,EAAL,CAAQI,SAAjB,EAA4B,CAA5B,CAAZ;AACA,gBAAMC,MAAM,GAAGH,IAAI,CAACC,GAAL,CAASL,IAAI,CAACQ,YAAL,GAAoBL,GAApB,GAA0B,KAAKD,EAAL,CAAQM,YAA3C,EAAyD,CAAzD,CAAf;AACA,gBAAMC,KAAK,GAAGN,GAAG,KAAK,KAAKjC,IAAb,IAAqBqC,MAAM,KAAK,KAAKpC,OAAnD;;AACA,gBAAIsC,KAAJ,EAAW;AACP,mBAAKvC,IAAL,GAAYiC,GAAZ;AACA,mBAAKhC,OAAL,GAAeoC,MAAf;AACA,2EAAY,IAAZ;AACH;AACJ;AA1FQ;AAAA;AAAA,mCA2FAZ,EA3FA,EA2FI;AAAA;;AACT,gBAAMe,SAAS,GAAGC,IAAI,CAACC,GAAL,EAAlB;AACA,gBAAMC,WAAW,GAAG,CAAC,KAAK9C,WAA1B;AACA,iBAAKC,UAAL,GAAkB0C,SAAlB;;AACA,gBAAIG,WAAJ,EAAiB;AACb,mBAAKC,aAAL;AACH;;AACD,gBAAI,CAAC,KAAK7C,MAAN,IAAgB,KAAKuB,YAAzB,EAAuC;AACnC,mBAAKvB,MAAL,GAAc,IAAd;AACA,2EAAS,UAAA8C,EAAE,EAAI;AACX,sBAAI,CAAC9C,MAAL,GAAc,KAAd;AACA,sBAAI,CAACG,MAAL,CAAYI,KAAZ,GAAoBmB,EAApB;AACAqB,kCAAkB,CAAC,MAAI,CAAC5C,MAAN,EAAc,MAAI,CAAC6C,QAAnB,EAA6BF,EAA7B,EAAiCF,WAAjC,CAAlB;;AACA,sBAAI,CAAChD,SAAL,CAAeqD,IAAf,CAAoB,MAAI,CAAC9C,MAAzB;AACH,eALD;AAMH;AACJ;AACD;;;;;;;;;AA5GS;AAAA;AAAA,6CAoHU;AACf,mBAAO+C,OAAO,CAACC,OAAR,CAAgB,KAAKH,QAArB,CAAP;AACH;AACD;;;;;;AAvHS;AAAA;AAAA,wCA4HiB;AAAA,gBAAdI,QAAc,uEAAH,CAAG;AACtB,mBAAO,KAAKC,aAAL,CAAmB7C,SAAnB,EAA8B,CAA9B,EAAiC4C,QAAjC,CAAP;AACH;AACD;;;;;;AA/HS;AAAA;AAAA,2CAoIoB;AAAA,gBAAdA,QAAc,uEAAH,CAAG;AACzB,gBAAME,CAAC,GAAG,KAAKN,QAAL,CAAcO,YAAd,GAA6B,KAAKP,QAAL,CAAcQ,YAArD;AACA,mBAAO,KAAKH,aAAL,CAAmB7C,SAAnB,EAA8B8C,CAA9B,EAAiCF,QAAjC,CAAP;AACH;AACD;;;;;;;;AAxIS;AAAA;AAAA,wCA+IKK,CA/IL,EA+IQH,CA/IR,EA+IWF,QA/IX,EA+IqB;AAC1B,mBAAO,KAAKC,aAAL,CAAmBI,CAAC,GAAG,KAAKT,QAAL,CAAc3C,UAArC,EAAiDiD,CAAC,GAAG,KAAKN,QAAL,CAAc5C,SAAnE,EAA8EgD,QAA9E,CAAP;AACH;AACD;;;;;;;;AAlJS;AAAA;AAAA;AAAA,0GAyJWK,CAzJX,EAyJcH,CAzJd;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAyJiBF,8BAzJjB,2DAyJ4B,CAzJ5B;AA0JCnB,wBA1JD,GA0JM,KAAKe,QA1JX;;AAAA,4BA2JDI,QAAQ,GAAG,EA3JV;AAAA;AAAA;AAAA;;AA4JD,0BAAIE,CAAC,IAAI,IAAT,EAAe;AACXrB,0BAAE,CAAC7B,SAAH,GAAekD,CAAf;AACH;;AACD,0BAAIG,CAAC,IAAI,IAAT,EAAe;AACXxB,0BAAE,CAAC5B,UAAH,GAAgBoD,CAAhB;AACH;;AAjKA;;AAAA;AAqKD9C,+BArKC,GAqKW,CArKX;AAsKC+C,6BAtKD,GAsKW,IAAIR,OAAJ,CAAY,UAAAS,CAAC;AAAA,+BAAIR,OAAO,GAAGQ,CAAd;AAAA,uBAAb,CAtKX;AAuKCC,2BAvKD,GAuKS3B,EAAE,CAAC7B,SAvKZ;AAwKCyD,2BAxKD,GAwKS5B,EAAE,CAAC5B,UAxKZ;AAyKCY,4BAzKD,GAyKUqC,CAAC,IAAI,IAAL,GAAYA,CAAC,GAAGM,KAAhB,GAAwB,CAzKlC;AA0KC5C,4BA1KD,GA0KUyC,CAAC,IAAI,IAAL,GAAYA,CAAC,GAAGI,KAAhB,GAAwB,CA1KlC,EA2KL;;AACMC,0BA5KD,GA4KQ,SAAPA,IAAO,CAACrB,SAAD,EAAe;AACxB,4BAAMsB,UAAU,GAAG5B,IAAI,CAAC6B,GAAL,CAAS,CAAT,EAAa,CAACvB,SAAS,GAAG9B,SAAb,IAA0ByC,QAAvC,IAAoD,CAAvE;AACA,4BAAMa,MAAM,GAAG9B,IAAI,CAAC+B,GAAL,CAASH,UAAT,EAAqB,CAArB,IAA0B,CAAzC;;AACA,4BAAI9C,MAAM,KAAK,CAAf,EAAkB;AACdgB,4BAAE,CAAC7B,SAAH,GAAe+B,IAAI,CAACgC,KAAL,CAAYF,MAAM,GAAGhD,MAAV,GAAoB2C,KAA/B,CAAf;AACH;;AACD,4BAAI5C,MAAM,KAAK,CAAf,EAAkB;AACdiB,4BAAE,CAAC5B,UAAH,GAAgB8B,IAAI,CAACgC,KAAL,CAAYF,MAAM,GAAGjD,MAAV,GAAoB6C,KAA/B,CAAhB;AACH;;AACD,4BAAII,MAAM,GAAG,CAAb,EAAgB;AACZ;AACA;AACA;AACAG,+CAAqB,CAACN,IAAD,CAArB;AACH,yBALD,MAMK;AACDX,iCAAO;AACV;AACJ,uBA9LI,EA+LL;;;AACAiB,2CAAqB,CAAC,UAAAtB,EAAE,EAAI;AACxBnC,iCAAS,GAAGmC,EAAZ;AACAgB,4BAAI,CAAChB,EAAD,CAAJ;AACH,uBAHoB,CAArB;AAhMK,uDAoMEY,OApMF;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,0CAsMO;AAAA;;AACZ,iBAAK5D,WAAL,GAAmB,IAAnB;AACA,iBAAKH,cAAL,CAAoBsD,IAApB,CAAyB;AACrBnD,yBAAW,EAAE;AADQ,aAAzB;;AAGA,gBAAI,KAAKuE,QAAT,EAAmB;AACfC,2BAAa,CAAC,KAAKD,QAAN,CAAb;AACH,aAPW,CAQZ;;;AACA,iBAAKA,QAAL,GAAgBE,WAAW,CAAC,YAAM;AAC9B,kBAAI,MAAI,CAACxE,UAAL,GAAkB2C,IAAI,CAACC,GAAL,KAAa,GAAnC,EAAwC;AACpC,sBAAI,CAACnB,WAAL;AACH;AACJ,aAJ0B,EAIxB,GAJwB,CAA3B;AAKH;AApNQ;AAAA;AAAA,wCAqNK;AACV8C,yBAAa,CAAC,KAAKD,QAAN,CAAb;AACA,iBAAKA,QAAL,GAAgB,IAAhB;;AACA,gBAAI,KAAKvE,WAAT,EAAsB;AAClB,mBAAKA,WAAL,GAAmB,KAAnB;AACA,mBAAKD,YAAL,CAAkBoD,IAAlB,CAAuB;AACnBnD,2BAAW,EAAE;AADM,eAAvB;AAGH;AACJ;AA9NQ;AAAA;AAAA,mCA+NA;AAAA;AAAA;;AAAA,gBACGuB,OADH,GACwB,IADxB,CACGA,OADH;AAAA,gBACYC,OADZ,GACwB,IADxB,CACYA,OADZ;AAEL,gBAAMxC,IAAI,GAAG,oEAAW,IAAX,CAAb;AACA,gBAAM+C,eAAe,GAAG,KAAK2C,qBAAL,EAAxB;;AACA,gBAAMC,gBAAgB,GAAI3F,IAAI,KAAK,KAAT,IAAkB,4DAAOV,UAAP,CAAkB,8BAAlB,EAAkD,IAAlD,CAA5C;;AACA,iBAAKqD,MAAL;AACA,mBAAQ,6DAAE,oDAAF,EAAQ;AAAE,uBAAO,6DAAmB,KAAKiD,KAAxB,0CAChB5F,IADgB,EACT,IADS,4BAEjB,gBAFiB,EAEC,6DAAY,aAAZ,EAA2B,KAAKmD,EAAhC,CAFD,4BAGjB,YAHiB,EAGHJ,eAHG,YAAT;AAIR3C,mBAAK,EAAE;AACP,0CAAmB,KAAKe,IAAxB,OADO;AAEP,6CAAsB,KAAKC,OAA3B;AAFO;AAJC,aAAR,EAOC,6DAAE,KAAF,EAAS;AAAEyE,gBAAE,EAAE,oBAAN;AAA4BC,kBAAI,EAAE;AAAlC,aAAT,CAPD,EAO6D,6DAAE,MAAF,EAAU;AAAE,uBAAO;AAChF,gCAAgB,IADgE;AAEhF,4BAAYvD,OAFoE;AAGhF,4BAAYC,OAHoE;AAIhF,8BAAc,CAACD,OAAO,IAAIC,OAAZ,KAAwBO;AAJ0C,eAAT;AAKxEgD,iBAAG,EAAE,aAAA5C,EAAE;AAAA,uBAAI,MAAI,CAACe,QAAL,GAAgBf,EAApB;AAAA,eALiE;AAKzC6C,sBAAQ,EAAG,KAAKvD,YAAN,GAAsB,UAAAG,EAAE;AAAA,uBAAI,MAAI,CAACoD,QAAL,CAAcpD,EAAd,CAAJ;AAAA,eAAxB,GAAgDlB,SALjB;AAK4BoE,kBAAI,EAAE;AALlC,aAAV,EAKwD,6DAAE,MAAF,EAAU,IAAV,CALxD,CAP7D,EAYuIH,gBAAgB,GAAI,6DAAE,KAAF,EAAS;AAAE,uBAAO;AAAT,aAAT,EAAyC,6DAAE,KAAF,EAAS;AAAE,uBAAO;AAAT,aAAT,CAAzC,EAAkF,6DAAE,KAAF,EAAS;AAAE,uBAAO;AAAT,aAAT,CAAlF,CAAJ,GAAmI,IAZ1R,EAYgS,6DAAE,MAAF,EAAU;AAAEM,kBAAI,EAAE;AAAR,aAAV,CAZhS,CAAR;AAaH;AAlPQ;AAAA;AAAA,8BAmPA;AAAE,mBAAO,6DAAW,IAAX,CAAP;AAA0B;AAnP5B;;AAAA;AAAA,SAAb;;AAqPA,UAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,CAAC/C,EAAD,EAAQ;AAC7B,YAAIA,EAAE,CAACgD,aAAP,EAAsB;AAClB;AACA,iBAAOhD,EAAE,CAACgD,aAAV;AACH;;AACD,YAAIhD,EAAE,CAACiD,UAAH,IAAiBjD,EAAE,CAACiD,UAAH,CAAcC,IAAnC,EAAyC;AACrC;AACA,iBAAOlD,EAAE,CAACiD,UAAH,CAAcC,IAArB;AACH;;AACD,eAAO,IAAP;AACH,OAVD;;AAWA,UAAMnD,cAAc,GAAG,SAAjBA,cAAiB,CAACC,EAAD,EAAQ;AAC3B,YAAMmD,IAAI,GAAGnD,EAAE,CAACoD,OAAH,CAAW,UAAX,CAAb;;AACA,YAAID,IAAJ,EAAU;AACN,iBAAOA,IAAP;AACH;;AACD,YAAMrD,IAAI,GAAGE,EAAE,CAACoD,OAAH,CAAW,uCAAX,CAAb;;AACA,YAAItD,IAAJ,EAAU;AACN,iBAAOA,IAAP;AACH;;AACD,eAAOiD,gBAAgB,CAAC/C,EAAD,CAAvB;AACH,OAVD,C,CAWA;;;AACA,UAAMc,kBAAkB,GAAG,SAArBA,kBAAqB,CAAC5C,MAAD,EAAS8B,EAAT,EAAaqD,SAAb,EAAwB1C,WAAxB,EAAwC;AAC/D,YAAM2C,KAAK,GAAGpF,MAAM,CAACS,QAArB;AACA,YAAM4E,KAAK,GAAGrF,MAAM,CAACU,QAArB;AACA,YAAM4E,KAAK,GAAGtF,MAAM,CAACe,WAArB;AACA,YAAMN,QAAQ,GAAGqB,EAAE,CAAC5B,UAApB;AACA,YAAMQ,QAAQ,GAAGoB,EAAE,CAAC7B,SAApB;AACA,YAAMsF,SAAS,GAAGJ,SAAS,GAAGG,KAA9B;;AACA,YAAI7C,WAAJ,EAAiB;AACb;AACAzC,gBAAM,CAACQ,SAAP,GAAmB2E,SAAnB;AACAnF,gBAAM,CAACM,MAAP,GAAgBG,QAAhB;AACAT,gBAAM,CAACO,MAAP,GAAgBG,QAAhB;AACAV,gBAAM,CAACW,SAAP,GAAmBX,MAAM,CAACY,SAAP,GAAmB,CAAtC;AACH;;AACDZ,cAAM,CAACe,WAAP,GAAqBoE,SAArB;AACAnF,cAAM,CAACS,QAAP,GAAkBT,MAAM,CAACE,UAAP,GAAoBO,QAAtC;AACAT,cAAM,CAACU,QAAP,GAAkBV,MAAM,CAACC,SAAP,GAAmBS,QAArC;AACAV,cAAM,CAACa,MAAP,GAAgBJ,QAAQ,GAAGT,MAAM,CAACM,MAAlC;AACAN,cAAM,CAACc,MAAP,GAAgBJ,QAAQ,GAAGV,MAAM,CAACO,MAAlC;;AACA,YAAIgF,SAAS,GAAG,CAAZ,IAAiBA,SAAS,GAAG,GAAjC,EAAsC;AAClC,cAAM5E,SAAS,GAAG,CAACF,QAAQ,GAAG2E,KAAZ,IAAqBG,SAAvC;AACA,cAAM3E,SAAS,GAAG,CAACF,QAAQ,GAAG2E,KAAZ,IAAqBE,SAAvC;AACAvF,gBAAM,CAACW,SAAP,GAAmBA,SAAS,GAAG,GAAZ,GAAkBX,MAAM,CAACW,SAAP,GAAmB,GAAxD;AACAX,gBAAM,CAACY,SAAP,GAAmBA,SAAS,GAAG,GAAZ,GAAkBZ,MAAM,CAACY,SAAP,GAAmB,GAAxD;AACH;AACJ,OAzBD;;AA0BArB,aAAO,CAACR,KAAR,GAAgBO,UAAhB;AAEA,UAAMkG,YAAY,GAAG,ilBAArB;AAEA,UAAMC,WAAW,GAAG,4yBAApB;;AAEA,UAAMC,MAAM;AACR,wBAAY7H,OAAZ,EAAqB;AAAA;;AACjB,uEAAiB,IAAjB,EAAuBA,OAAvB;AACA;;;;;;;;;AAQA,eAAK8H,WAAL,GAAmB,KAAnB;AACH;;AAZO;AAAA;AAAA,mCAaC;AAAA;;AACL,gBAAMhH,IAAI,GAAG,oEAAW,IAAX,CAAb;AACA,gBAAMgH,WAAW,GAAG,KAAKA,WAAzB;AACA,mBAAQ,6DAAE,oDAAF,EAAQ;AAAEC,kBAAI,EAAE,aAAR;AAAuB,+DAC9BjH,IAD8B,EACvB,IADuB,6CAGpBA,IAHoB,GAGX,IAHW,kDAIPgH,WAJO,yDAKRhH,IALQ,GAKCgH,WALD;AAAvB,aAAR,EAMChH,IAAI,KAAK,KAAT,IAAkBgH,WAAlB,IACL,6DAAE,KAAF,EAAS;AAAE,uBAAO;AAAT,aAAT,CAPI,EAOsC,6DAAE,MAAF,EAAU,IAAV,CAPtC,CAAR;AAQH;AAxBO;;AAAA;AAAA,SAAZ;;AA0BAD,YAAM,CAAC3G,KAAP,GAAe;AACXK,WAAG,EAAEoG,YADM;AAEXnG,UAAE,EAAEoG;AAFO,OAAf;AAKA,UAAMI,UAAU,GAAG,sBAAnB;;AACA,UAAMC,YAAY,GAAG,SAAfA,YAAe,CAACC,OAAD,EAAa;AAC9B,YAAMC,WAAW,GAAGC,QAAQ,CAACC,aAAT,WAA0BH,OAA1B,yBAApB;;AACA,YAAIC,WAAW,KAAK,IAApB,EAA0B;AACtB,iBAAOA,WAAP;AACH;;AACD,YAAMG,QAAQ,GAAGF,QAAQ,CAACG,aAAT,CAAuBL,OAAvB,CAAjB;AACAI,gBAAQ,CAACE,SAAT,CAAmBC,GAAnB,CAAuB,oBAAvB;AACAH,gBAAQ,CAACpH,KAAT,CAAewH,WAAf,CAA2B,SAA3B,EAAsC,MAAtC;AACAN,gBAAQ,CAACO,IAAT,CAAcC,WAAd,CAA0BN,QAA1B;AACA,eAAOA,QAAP;AACH,OAVD;;AAWA,UAAMO,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,QAAD,EAAc;AACpC,YAAI,CAACA,QAAL,EAAe;AACX;AACH;;AACD,YAAMC,QAAQ,GAAGD,QAAQ,CAACE,gBAAT,CAA0B,aAA1B,CAAjB;AACA,eAAO;AACH/E,YAAE,EAAE6E,QADD;AAEHC,kBAAQ,EAAEE,KAAK,CAACC,IAAN,CAAWH,QAAX,EAAqBI,GAArB,CAAyB,UAACC,OAAD,EAAa;AAC5C,gBAAMC,UAAU,GAAGD,OAAO,CAACf,aAAR,CAAsB,WAAtB,CAAnB;AACA,mBAAO;AACHpE,gBAAE,EAAEmF,OADD;AAEHE,wBAAU,EAAEF,OAAO,CAACG,UAAR,CAAmBlB,aAAnB,CAAiC,qBAAjC,CAFT;AAGHgB,wBAAU,EAAVA,UAHG;AAIHG,0BAAY,EAAGH,UAAD,GAAeA,UAAU,CAACE,UAAX,CAAsBlB,aAAtB,CAAoC,gBAApC,CAAf,GAAuE,IAJlF;AAKHoB,0BAAY,EAAER,KAAK,CAACC,IAAN,CAAWE,OAAO,CAACJ,gBAAR,CAAyB,aAAzB,CAAX,KAAuD;AALlE,aAAP;AAOH,WATS,KASJ;AAXH,SAAP;AAaH,OAlBD;;AAmBA,UAAMU,mBAAmB,GAAG,SAAtBA,mBAAsB,CAAC1E,QAAD,EAAW2E,iBAAX,EAA8BC,SAA9B,EAA4C;AACpE,qEAAS,YAAM;AACX,cAAMxH,SAAS,GAAG4C,QAAQ,CAAC5C,SAA3B;AACA,cAAMyH,KAAK,GAAG,+DAAM,CAAN,EAAS,IAAK,CAACzH,SAAD,GAAa,GAA3B,EAAiC,GAAjC,CAAd,CAFW,CAGX;;AACA,cAAM0H,eAAe,GAAGF,SAAS,CAACvB,aAAV,CAAwB,gCAAxB,CAAxB;;AACA,cAAIyB,eAAe,KAAK,IAAxB,EAA8B;AAC1B,yEAAU,YAAM;AACZC,8BAAgB,CAACJ,iBAAiB,CAACZ,QAAnB,EAA6Bc,KAA7B,CAAhB;AACH,aAFD;AAGH;AACJ,SAVD;AAWH,OAZD;;AAaA,UAAMG,2BAA2B,GAAG,SAA9BA,2BAA8B,CAACZ,OAAD,EAAUa,OAAV,EAAsB;AACtD,YAAIA,OAAO,KAAKzH,SAAhB,EAA2B;AACvB4G,iBAAO,CAACE,UAAR,CAAmBpI,KAAnB,CAAyBgJ,cAAzB,CAAwC,WAAxC;AACH,SAFD,MAGK;AACDd,iBAAO,CAACE,UAAR,CAAmBpI,KAAnB,CAAyBwH,WAAzB,CAAqC,WAArC,EAAkDuB,OAAO,CAACE,QAAR,EAAlD;AACH;AACJ,OAPD;;AAQA,UAAMC,+BAA+B,GAAG,SAAlCA,+BAAkC,CAAC1G,EAAD,EAAK2G,eAAL,EAAyB;AAC7D,YAAI,CAAC3G,EAAE,CAAC,CAAD,CAAF,CAAM4G,cAAX,EAA2B;AACvB;AACH;AACD;;;;;;;;AAMA,YAAMT,KAAK,GAAInG,EAAE,CAAC,CAAD,CAAF,CAAM6G,iBAAN,GAA0B,GAA3B,GAAkC,CAAlC,GAAuC,CAAC,IAAI7G,EAAE,CAAC,CAAD,CAAF,CAAM6G,iBAAX,IAAgC,GAAjC,GAAwC,EAA5F;AACAF,uBAAe,CAACtB,QAAhB,CAAyByB,OAAzB,CAAiC,UAAApB,OAAO,EAAI;AACxCY,qCAA2B,CAACZ,OAAD,EAAWS,KAAK,KAAK,CAAX,GAAgBrH,SAAhB,GAA4BqH,KAAtC,CAA3B;AACH,SAFD;AAGH,OAdD;AAeA;;;;;;;AAKA,UAAMY,yBAAyB,GAAG,SAA5BA,yBAA4B,CAAC/G,EAAD,EAAK2G,eAAL,EAAsBV,iBAAtB,EAA4C;AAC1E,qEAAU,YAAM;AACZS,yCAA+B,CAAC1G,EAAD,EAAK2G,eAAL,CAA/B;AACA,cAAM9H,KAAK,GAAGmB,EAAE,CAAC,CAAD,CAAhB;AACA,cAAMgH,YAAY,GAAGnI,KAAK,CAACoI,gBAA3B;AACA,cAAMC,gBAAgB,GAAGF,YAAY,CAACG,KAAb,GAAqBH,YAAY,CAACI,MAA3D;AACA,cAAMC,QAAQ,GAAGxI,KAAK,CAACyI,UAAN,CAAiBH,KAAjB,GAAyBtI,KAAK,CAACyI,UAAN,CAAiBF,MAA3D;AACA,cAAMG,YAAY,GAAGL,gBAAgB,KAAK,CAArB,IAA0BG,QAAQ,KAAK,CAA5D;AACA,cAAMG,QAAQ,GAAG/G,IAAI,CAACgH,GAAL,CAAST,YAAY,CAACU,IAAb,GAAoB7I,KAAK,CAAC8I,kBAAN,CAAyBD,IAAtD,CAAjB;AACA,cAAME,SAAS,GAAGnH,IAAI,CAACgH,GAAL,CAAST,YAAY,CAACa,KAAb,GAAqBhJ,KAAK,CAAC8I,kBAAN,CAAyBE,KAAvD,CAAlB;AACA,cAAMC,mBAAmB,GAAGZ,gBAAgB,GAAG,CAAnB,KAAyBM,QAAQ,IAAI,CAAZ,IAAiBI,SAAS,IAAI,CAAvD,CAA5B;;AACA,cAAIL,YAAY,IAAIO,mBAApB,EAAyC;AACrC;AACH;;AACD,cAAIjJ,KAAK,CAAC+H,cAAV,EAA0B;AACtBmB,2BAAe,CAACpB,eAAD,EAAkB,KAAlB,CAAf;AACAoB,2BAAe,CAAC9B,iBAAD,CAAf;AACH,WAHD,MAIK;AACD;;;;;;;;AAQA,gBAAM+B,oBAAoB,GAAIhB,YAAY,CAACjF,CAAb,KAAmB,CAAnB,IAAwBiF,YAAY,CAACpF,CAAb,KAAmB,CAA5C,IAAmDoF,YAAY,CAACG,KAAb,KAAuB,CAAvB,IAA4BH,YAAY,CAACI,MAAb,KAAwB,CAApI;;AACA,gBAAIY,oBAAJ,EAA0B;AACtBD,6BAAe,CAACpB,eAAD,CAAf;AACAoB,6BAAe,CAAC9B,iBAAD,EAAoB,KAApB,CAAf;AACAK,yCAA2B,CAACK,eAAe,CAACtB,QAAhB,CAAyB,CAAzB,CAAD,CAA3B;AACH;AACJ;AACJ,SAjCD;AAkCH,OAnCD;;AAoCA,UAAM0C,eAAe,GAAG,SAAlBA,eAAkB,CAACE,WAAD,EAAgC;AAAA,YAAlBC,MAAkB,uEAAT,IAAS;;AACpD,YAAIA,MAAJ,EAAY;AACRD,qBAAW,CAAC1H,EAAZ,CAAeuE,SAAf,CAAyBqD,MAAzB,CAAgC,mCAAhC;AACH,SAFD,MAGK;AACDF,qBAAW,CAAC1H,EAAZ,CAAeuE,SAAf,CAAyBC,GAAzB,CAA6B,mCAA7B;AACH;AACJ,OAPD;;AAQA,UAAMsB,gBAAgB,GAAG,SAAnBA,gBAAmB,GAAkD;AAAA,YAAjDhB,QAAiD,uEAAtC,EAAsC;AAAA,YAAlCc,KAAkC,uEAA1B,CAA0B;AAAA,YAAvBiC,UAAuB,uEAAV,KAAU;AACvE/C,gBAAQ,CAACyB,OAAT,CAAiB,UAAApB,OAAO,EAAI;AACxB,cAAM2C,QAAQ,GAAG3C,OAAO,CAACC,UAAzB;AACA,cAAM2C,QAAQ,GAAG5C,OAAO,CAACI,YAAzB;;AACA,cAAI,CAACuC,QAAD,IAAaA,QAAQ,CAACE,IAAT,KAAkB,OAAnC,EAA4C;AACxC;AACH;;AACDD,kBAAQ,CAAC9K,KAAT,CAAe4K,UAAf,GAA6BA,UAAD,GAAe9D,UAAf,GAA4B,EAAxD;AACAgE,kBAAQ,CAAC9K,KAAT,CAAegL,SAAf,qBAAsCrC,KAAtC,eAAgDA,KAAhD;AACH,SARD;AASH,OAVD;;AAYA,UAAMsC,YAAY,GAAG,utDAArB;AAEA,UAAMC,WAAW,GAAG,m0BAApB;;AAEA,UAAMC,MAAM;AACR,wBAAYrM,OAAZ,EAAqB;AAAA;;AACjB,uEAAiB,IAAjB,EAAuBA,OAAvB;AACA,eAAKsM,4BAAL,GAAoC,KAApC;AACA;;;;;;;;;AAQA,eAAKxE,WAAL,GAAmB,KAAnB;AACH;;AAbO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6BAeE,KAAKyE,sBAAL,EAfF;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6BAkBE,KAAKA,sBAAL,EAlBF;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,iDAoBe;AACnB,iBAAKC,wBAAL;AACH;AAtBO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAwBJ;AACMC,iCAzBF,GAyBgB,KAAKnL,QAAL,KAAkB,UAzBlC;AA0BEoL,iCA1BF,GA0BiBD,WAAW,IAAI,oEAAW,IAAX,MAAqB,KAArC,GAA8CA,WAA9C,GAA4D,KA1B5E;;AAAA,4BA2BA,CAACC,WAAD,IAAgB,KAAKJ,4BA3BrB;AAAA;AAAA;AAAA;;AA4BA,2BAAKE,wBAAL;AA5BA;AAAA;;AAAA;AAAA,4BA8BKE,WAAW,IAAI,CAAC,KAAKJ,4BA9B1B;AAAA;AAAA;AAAA;;AA+BMK,4BA/BN,GA+Be,KAAK1I,EAAL,CAAQoD,OAAR,CAAgB,uCAAhB,CA/Bf;AAgCMuC,+BAhCN,GAgCmB+C,MAAD,GAAWA,MAAM,CAACtE,aAAP,CAAqB,aAArB,CAAX,GAAiD,IAhCnE,EAiCA;;AACA,mFAAU,YAAM;AACZ,4BAAMuE,KAAK,GAAG3E,YAAY,CAAC,WAAD,CAA1B;AACA2E,6BAAK,CAACX,IAAN,GAAa,OAAb;AACAhE,oCAAY,CAAC,iBAAD,CAAZ;AACH,uBAJD;AAlCA;AAAA,6BAuCM,KAAK4E,sBAAL,CAA4BjD,SAA5B,EAAuC+C,MAAvC,CAvCN;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,qDA0CmB;AACvB,gBAAI,KAAKG,oBAAT,EAA+B;AAC3B,mBAAKA,oBAAL,CAA0BC,UAA1B;AACA,mBAAKD,oBAAL,GAA4BtK,SAA5B;AACH;;AACD,gBAAI,KAAKwC,QAAL,IAAiB,KAAKgI,qBAA1B,EAAiD;AAC7C,mBAAKhI,QAAL,CAAciI,mBAAd,CAAkC,QAAlC,EAA4C,KAAKD,qBAAjD;AACA,mBAAKA,qBAAL,GAA6BxK,SAA7B;AACH;;AACD,gBAAI,KAAK0K,qBAAT,EAAgC;AAC5B,mBAAKA,qBAAL,CAA2B1E,SAA3B,CAAqCqD,MAArC,CAA4C,sBAA5C;AACA,mBAAKqB,qBAAL,GAA6B1K,SAA7B;AACH;AACJ;AAvDO;AAAA;AAAA;AAAA,oHAwDqBoH,SAxDrB,EAwDgC+C,MAxDhC;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAyDA,CAAC/C,SAAD,IAAc,CAAC+C,MAzDf;AAAA;AAAA;AAAA;;AA0DAQ,6BAAO,CAACC,KAAR,CAAc,+EAAd;AA1DA;;AAAA;AAAA,4BA6DA,OAAOC,oBAAP,KAAgC,WA7DhC;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA,6BAgEkBzD,SAAS,CAAC0D,gBAAV,EAhElB;;AAAA;AAgEJ,2BAAKtI,QAhED;AAiEEuI,6BAjEF,GAiEYZ,MAAM,CAAC3D,gBAAP,CAAwB,YAAxB,CAjEZ;AAkEJ,2BAAKkE,qBAAL,GAA6BjE,KAAK,CAACC,IAAN,CAAWqE,OAAX,EAAoBC,IAApB,CAAyB,UAACC,MAAD;AAAA,+BAAYA,MAAM,CAACnM,QAAP,KAAoB,UAAhC;AAAA,uBAAzB,CAA7B;;AAlEI,0BAmEC,KAAK4L,qBAnEN;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAsEE7C,qCAtEF,GAsEoBxB,iBAAiB,CAAC,KAAKqE,qBAAN,CAtErC;AAuEEvD,uCAvEF,GAuEsBd,iBAAiB,CAAC,KAAK5E,EAAN,CAvEvC;;AAAA,4BAwEA,CAACoG,eAAD,IAAoB,CAACV,iBAxErB;AAAA;AAAA;AAAA;;AAAA;;AAAA;AA2EJ8B,qCAAe,CAACpB,eAAD,EAAkB,KAAlB,CAAf;AACAA,qCAAe,CAACtB,QAAhB,CAAyByB,OAAzB,CAAiC,UAAApB,OAAO,EAAI;AACxCY,mDAA2B,CAACZ,OAAD,EAAU,CAAV,CAA3B;AACH,uBAFD;AAGA;;;;;;;AAMMsE,yCArFF,GAqFwB,SAAtBA,mBAAsB,CAAChK,EAAD,EAAQ;AAAE+G,iDAAyB,CAAC/G,EAAD,EAAK2G,eAAL,EAAsBV,iBAAtB,CAAzB;AAAoE,uBArFtG;;AAsFJ,2BAAKmD,oBAAL,GAA4B,IAAIO,oBAAJ,CAAyBK,mBAAzB,EAA8C;AAAEC,4BAAI,EAAE/D,SAAR;AAAmBgE,iCAAS,EAAE,CAAC,IAAD,EAAO,GAAP,EAAY,GAAZ,EAAiB,GAAjB,EAAsB,GAAtB,EAA2B,GAA3B,EAAgC,GAAhC,EAAqC,GAArC,EAA0C,CAA1C;AAA9B,uBAA9C,CAA5B;AACA,2BAAKd,oBAAL,CAA0Be,OAA1B,CAAkClE,iBAAiB,CAACZ,QAAlB,CAA2BY,iBAAiB,CAACZ,QAAlB,CAA2B+E,MAA3B,GAAoC,CAA/D,EAAkE7J,EAApG;AACA;;;;;;AAKA,2BAAK+I,qBAAL,GAA6B,YAAM;AAAEtD,2CAAmB,CAAC,MAAI,CAAC1E,QAAN,EAAgB2E,iBAAhB,EAAmCC,SAAnC,CAAnB;AAAmE,uBAAxG;;AACA,2BAAK5E,QAAL,CAAc+I,gBAAd,CAA+B,QAA/B,EAAyC,KAAKf,qBAA9C;AACA,mFAAU,YAAM;AACZ,4BAAI,MAAI,CAACE,qBAAL,KAA+B1K,SAAnC,EAA8C;AAC1C,gCAAI,CAAC0K,qBAAL,CAA2B1E,SAA3B,CAAqCC,GAArC,CAAyC,sBAAzC;AACH;AACJ,uBAJD;AAKA,2BAAK6D,4BAAL,GAAoC,IAApC;;AApGI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,mCAsGC;AAAA;;AAAA,gBACGxE,WADH,GACmB,IADnB,CACGA,WADH;AAEL,gBAAMhH,IAAI,GAAG,oEAAW,IAAX,CAAb;AACA,gBAAMQ,QAAQ,GAAG,KAAKA,QAAL,IAAiB,MAAlC;AACA,mBAAQ,6DAAE,oDAAF,EAAQ;AAAEyG,kBAAI,EAAE,QAAR;AAAkB,+DACzBjH,IADyB,EAClB,IADkB,6CAGfA,IAHe,GAGN,IAHM,kDAIF,KAAKgH,WAJH,sDAKNxG,QALM,GAKO,IALP,yDAMHR,IANG,GAMM,KAAKgH,WANX;AAAlB,aAAR,EAOChH,IAAI,KAAK,KAAT,IAAkBgH,WAAlB,IACL,6DAAE,KAAF,EAAS;AAAE,uBAAO;AAAT,aAAT,CARI,EAQsC,6DAAE,MAAF,EAAU,IAAV,CARtC,CAAR;AASH;AAnHO;AAAA;AAAA,8BAoHC;AAAE,mBAAO,6DAAW,IAAX,CAAP;AAA0B;AApH7B;;AAAA;AAAA,SAAZ;;AAsHAuE,YAAM,CAACnL,KAAP,GAAe;AACXK,WAAG,EAAE4K,YADM;AAEX3K,UAAE,EAAE4K;AAFO,OAAf;AAKA,UAAM4B,cAAc,GAAG,4GAAvB;;AAEA,UAAMC,YAAY;AACd,8BAAYjO,OAAZ,EAAqB;AAAA;;AACjB,uEAAiB,IAAjB,EAAuBA,OAAvB;AACA,eAAKkO,cAAL,GAAsB,6DAAY,IAAZ,EAAkB,gBAAlB,EAAoC,CAApC,CAAtB;AACA,eAAKC,gBAAL,GAAwB,6DAAY,IAAZ,EAAkB,kBAAlB,EAAsC,CAAtC,CAAxB;AACA,eAAKC,eAAL,GAAuB,6DAAY,IAAZ,EAAkB,iBAAlB,EAAqC,CAArC,CAAvB;AACA,eAAKC,gBAAL,GAAwB,IAAxB;AACA;;;;AAGA,eAAKvN,IAAL,GAAY,oEAAW,IAAX,CAAZ;AACA;;;;AAGA,eAAKwN,QAAL,GAAgB,IAAhB;AACH;;AAfa;AAAA;AAAA,gDAgBQ;AAClB,gBAAI,KAAKC,OAAT,EAAkB;AACd,mBAAKA,OAAL,CAAaC,MAAb,CAAoB,KAAKC,YAAL,KAAsBjM,SAA1C;AACH;AACJ;AApBa;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6BAsBY;AAAA;AAAA;AAAA;AAAA,oFAtBZ;;AAAA;AAsBV,2BAAK+L,OAtBK,kBAsBgDG,sBAtBhD,CAsBuE,KAAKzK,EAtB5E,EAsBgF;AAAA,+BAAM,CAAC,CAAC,MAAI,CAACwK,YAAP,IAAuB,MAAI,CAACA,YAAL,CAAkBE,QAAlB,EAAvB,IAAuD,MAAI,CAACN,gBAAlE;AAAA,uBAtBhF,EAsBoK;AAAA,+BAAM,MAAI,CAACI,YAAL,IAAqB,MAAI,CAACA,YAAL,CAAkBG,OAAlB,EAA3B;AAAA,uBAtBpK,EAsB4N,UAAA9I,IAAI;AAAA,+BAAI,MAAI,CAAC+I,GAAL,IAAY,MAAI,CAACA,GAAL,CAASC,YAAT,CAAsBhJ,IAAtB,CAAhB;AAAA,uBAtBhO,EAsB6Q,UAACiJ,cAAD,EAAiBjJ,IAAjB,EAAuBkJ,GAAvB,EAA+B;AAClT,4BAAI,MAAI,CAACH,GAAT,EAAc;AACV,gCAAI,CAACR,gBAAL,GAAwB,KAAxB;;AACA,gCAAI,CAACQ,GAAL,CAASI,QAAT,CAAkB,YAAM;AACpB,kCAAI,CAACZ,gBAAL,GAAwB,IAAxB;;AACA,gCAAI,MAAI,CAACI,YAAT,EAAuB;AACnB,oCAAI,CAACA,YAAL,CAAkBS,KAAlB,CAAwBH,cAAxB;AACH;AACJ,2BALD,EAKG;AAAEI,2CAAe,EAAE;AAAnB,2BALH,EAFU,CAQV;;;AACA,8BAAIC,YAAY,GAAIL,cAAD,GAAmB,CAAC,KAApB,GAA4B,KAA/C;AACA;;;;;;;;;AAQA,8BAAI,CAACA,cAAL,EAAqB;AACjB,kCAAI,CAACF,GAAL,CAASQ,MAAT,CAAgB,gCAAhB;;AACAD,wCAAY,IAAI,oEAAwB,CAAC,CAAD,EAAI,CAAJ,CAAxB,EAAgC,CAAC,CAAD,EAAI,CAAJ,CAAhC,EAAwC,CAAC,IAAD,EAAO,IAAP,CAAxC,EAAsD,CAAC,CAAD,EAAI,CAAJ,CAAtD,EAA8DtJ,IAA9D,EAAoE,CAApE,CAAhB;AACH,2BAHD,MAIK;AACDsJ,wCAAY,IAAI,oEAAwB,CAAC,CAAD,EAAI,CAAJ,CAAxB,EAAgC,CAAC,IAAD,EAAO,IAAP,CAAhC,EAA8C,CAAC,CAAD,EAAI,CAAJ,CAA9C,EAAsD,CAAC,CAAD,EAAI,CAAJ,CAAtD,EAA8DtJ,IAA9D,EAAoE,CAApE,CAAhB;AACH;;AACD,gCAAI,CAAC+I,GAAL,CAASS,WAAT,CAAqBP,cAAc,GAAG,CAAH,GAAO,CAA1C,EAA6CK,YAA7C,EAA2DJ,GAA3D;AACH;AACJ,uBAlDS;AAmDV,2BAAKO,mBAAL;;AAnDU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,8CAqDM;AAChB,iBAAKrB,cAAL,CAAoBjJ,IAApB;AACH;AAvDa;AAAA;AAAA,iDAwDS;AACnB,gBAAI,KAAKsJ,OAAT,EAAkB;AACd,mBAAKA,OAAL,CAAaiB,OAAb;AACA,mBAAKjB,OAAL,GAAe/L,SAAf;AACH;AACJ;AACD;;AA9Dc;AAAA;AAAA;AAAA,oGA+DDiN,UA/DC,EA+DWC,SA/DX,EA+DsBC,IA/DtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6BAgEW,KAAKC,IAAL,EAhEX;;AAAA;AAgEJC,4BAhEI;AAiENC,6BAjEM,GAiEI,KAjEJ;AAAA;AAAA;AAAA,6BAmEU,KAAKhE,UAAL,CAAgB2D,UAAhB,EAA4BC,SAA5B,EAAuCC,IAAvC,CAnEV;;AAAA;AAmENG,6BAnEM;AAAA;AAAA;;AAAA;AAAA;AAAA;AAsEN3C,6BAAO,CAACC,KAAR;;AAtEM;AAwEVyC,4BAAM;AAxEI,wDAyEHC,OAzEG;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AA2Ed;;AA3Ec;AAAA;AAAA;AAAA,wGA4EGnJ,EA5EH,EA4EOoJ,MA5EP,EA4EeC,SA5Ef,EA4E0BC,SA5E1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6BA6EY,KAAKC,OAAL,CAAavJ,EAAb,EAAiBoJ,MAAjB,EAAyB;AAC3C3K,gCAAQ,EAAE4K,SAAS,KAAK,MAAd,GAAuB,CAAvB,GAA2BxN,SADM;AAE3CwN,iCAAS,EAAEA,SAAS,KAAK,MAAd,GAAuB,MAAvB,GAAgC,SAFA;AAG3CG,wCAAgB,EAAEF;AAHyB,uBAAzB,CA7EZ;;AAAA;AA6EJH,6BA7EI;AAAA,wDAkFH;AACHA,+BAAO,EAAPA,OADG;AAEHM,+BAAO,EAAE,KAAKC;AAFX,uBAlFG;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAuFd;;AAvFc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAyFJzE,4BAzFI,GAyFK,KAAKyE,QAzFV;AAAA,wDA0FHzE,MAAM,GAAG;AACZjF,0BAAE,EAAEiF,MAAM,CAAC1D,OADC;AAEZkI,+BAAO,EAAExE;AAFG,uBAAH,GAGTpJ,SA7FM;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sGA+FA8N,SA/FA,EA+FWP,MA/FX,EA+FmBJ,IA/FnB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAgGN,KAAKY,eAAL,KAAyBD,SAhGnB;AAAA;AAAA;AAAA;;AAAA,yDAiGC,KAjGD;;AAAA;AAmGV;AACMZ,+BApGI,GAoGQ,KAAKW,QApGb;AAAA;AAAA,6BAqGe,0EAAgB,KAAKG,QAArB,EAA+B,KAAKvM,EAApC,EAAwCqM,SAAxC,EAAmD,CAAC,UAAD,EAAa,oBAAb,CAAnD,EAAuFP,MAAvF,CArGf;;AAAA;AAqGJN,gCArGI;AAsGV,2BAAKc,eAAL,GAAuBD,SAAvB;AACA,2BAAKD,QAAL,GAAgBZ,UAAhB,CAvGU,CAwGV;;AAxGU;AAAA,6BAyGJ,KAAKgB,MAAL,CAAYhB,UAAZ,EAAwBC,SAAxB,EAAmCC,IAAnC,CAzGI;;AAAA;AAAA;AAAA,6BA0GJ,0EAAgB,KAAKa,QAArB,EAA+Bd,SAA/B,CA1GI;;AAAA;AAAA,yDA2GH,IA3GG;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yGA6GGD,UA7GH,EA6GeC,SA7Gf;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA6G0BC,0BA7G1B,iEA6GiC,EA7GjC;;AAAA,4BA8GND,SAAS,KAAKD,UA9GR;AAAA;AAAA;AAAA;;AAAA,yDA+GC,KA/GD;;AAAA;AAiHV;AACA,2BAAKtB,gBAAL,CAAsBlJ,IAAtB;AACQhB,wBAnHE,GAmHW,IAnHX,CAmHFA,EAnHE,EAmHEnD,IAnHF,GAmHW,IAnHX,CAmHEA,IAnHF;AAoHJwN,8BApHI,GAoHO,KAAKA,QAAL,IAAiB,4DAAOlO,UAAP,CAAkB,UAAlB,EAA8B,IAA9B,CApHxB;AAqHJ+P,sCArHI,GAqHe,KAAKF,SAAL,IAAkBN,IAAI,CAACQ,gBAAvB,IAA2C,4DAAOO,GAAP,CAAW,cAAX,CArH1D;AAAA;AAAA,6BAsHJ,6DAAWC,MAAM,CAACC,MAAP,CAAcD,MAAM,CAACC,MAAP,CAAc;AAAE9P,4BAAI,EAAJA,IAAF;AACzCwN,gCAAQ,EAARA,QADyC;AAEzCmB,kCAAU,EAAVA,UAFyC;AAGzCC,iCAAS,EAATA,SAHyC;AAG9BmB,8BAAM,EAAE5M,EAHsB;AAGlB6M,wCAAgB,EAAGnB,IAAI,CAACoB,iBAAL,GACpC,UAAAlC,GAAG;AAAA,iCAAI,MAAI,CAACA,GAAL,GAAWA,GAAf;AAAA,yBADiC,GAEpCrM;AALmC,uBAAd,EAKPmN,IALO,CAAd,EAKc;AAAEQ,wCAAgB,EAAhBA;AAAF,uBALd,CAAX,CAtHI;;AAAA;AA4HV;AACA,2BAAK/B,eAAL,CAAqBnJ,IAArB;AA7HU,yDA8HH,IA9HG;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiIJ+L,uBAjII,GAiIA,KAAKC,WAjIL;AAmIV,2BAAKA,WAAL,GAAmB,IAAI/L,OAAJ,CAAY,UAAAS,CAAC;AAAA,+BAAIR,OAAO,GAAGQ,CAAd;AAAA,uBAAb,CAAnB;;AAnIU,4BAoINqL,CAAC,KAAKxO,SApIA;AAAA;AAAA;AAAA;;AAAA;AAAA,6BAqIAwO,CArIA;;AAAA;AAAA,yDAuIH7L,OAvIG;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,mCAyIL;AACL,mBAAQ,6DAAE,MAAF,EAAU,IAAV,CAAR;AACH;AA3Ia;AAAA;AAAA,8BA4IL;AAAE,mBAAO,6DAAW,IAAX,CAAP;AAA0B;AA5IvB;AAAA;AAAA,8BA6IQ;AAAE,mBAAO;AAC3B,8BAAgB,CAAC,qBAAD;AADW,aAAP;AAEpB;AA/IU;;AAAA;AAAA,SAAlB;;AAiJA8I,kBAAY,CAAC/M,KAAb,GAAqB8M,cAArB;AAEA,UAAMkD,WAAW,GAAG,+5EAApB;AAEA,UAAMC,UAAU,GAAG,01BAAnB;;AAEA,UAAMC,YAAY;AACd,8BAAYpR,OAAZ,EAAqB;AAAA;;AACjB,uEAAiB,IAAjB,EAAuBA,OAAvB;AACA,eAAKqR,QAAL,GAAgB,6DAAY,IAAZ,EAAkB,UAAlB,EAA8B,CAA9B,CAAhB;AACH;;AAJa;AAAA;AAAA,wCAKA;AACV,iBAAKC,SAAL;AACH;AAPa;AAAA;AAAA,8CAQM;AAChB,iBAAKA,SAAL;AACH;AAVa;AAAA;AAAA,sCAWF;AACR,gBAAMrF,IAAI,GAAG,KAAKsF,OAAL,EAAb;AACA,iBAAKF,QAAL,CAAcpM,IAAd,qCACcgH,IADd,GACuB,IADvB;AAGH;AAhBa;AAAA;AAAA,oCAiBJ;AACN,mBAAQ,KAAKA,IAAL,KAAczJ,SAAf,GAA4B,KAAKyJ,IAAjC,GAAwC,SAA/C;AACH;AAnBa;AAAA;AAAA,mCAoBL;AAAA;;AACL,gBAAMnL,IAAI,GAAG,oEAAW,IAAX,CAAb;AACA,gBAAMmL,IAAI,GAAG,KAAKsF,OAAL,EAAb;AACA,mBAAQ,6DAAE,oDAAF,EAAQ;AAAE,uBAAO,6DAAmB,KAAK7K,KAAxB,4CAChB5F,IADgB,EACT,IADS,6CAEPmL,IAFO,GAEE,IAFF;AAAT,aAAR,EAGE,6DAAE,KAAF,EAAS;AAAE,uBAAO;AAAT,aAAT,EAAqC,6DAAE,MAAF,EAAU,IAAV,CAArC,CAHF,CAAR;AAIH;AA3Ba;AAAA;AAAA,8BA4BL;AAAE,mBAAO,6DAAW,IAAX,CAAP;AAA0B;AA5BvB;AAAA;AAAA,8BA6BQ;AAAE,mBAAO;AAC3B,sBAAQ,CAAC,aAAD;AADmB,aAAP;AAEpB;AA/BU;;AAAA;AAAA,SAAlB;;AAiCAmF,kBAAY,CAAClQ,KAAb,GAAqB;AACjBK,WAAG,EAAE2P,WADY;AAEjB1P,UAAE,EAAE2P;AAFa,OAArB;AAKA,UAAMK,aAAa,GAAG,owGAAtB;AAEA,UAAMC,YAAY,GAAG,+oGAArB;;AAEA,UAAMC,OAAO;AACT,yBAAY1R,OAAZ,EAAqB;AAAA;;AACjB,uEAAiB,IAAjB,EAAuBA,OAAvB;AACA,eAAK2R,cAAL,GAAsB,IAAIC,GAAJ,EAAtB;AACH;;AAJQ;AAAA;AAAA,8CAKW;AAChB,gBAAMC,OAAO,GAAG5I,KAAK,CAACC,IAAN,CAAW,KAAKjF,EAAL,CAAQ+E,gBAAR,CAAyB,aAAzB,CAAX,CAAhB;AACA,gBAAM8I,YAAY,GAAGD,OAAO,CAACrE,IAAR,CAAa,UAAAuE,MAAM,EAAI;AACxC,qBAAOA,MAAM,CAACC,IAAP,KAAgB,OAAvB;AACH,aAFoB,CAArB;;AAGA,gBAAIF,YAAJ,EAAkB;AACdA,0BAAY,CAACtJ,SAAb,CAAuBC,GAAvB,CAA2B,oBAA3B;AACH;;AACD,gBAAMwJ,eAAe,GAAGJ,OAAO,CAACK,OAAR,EAAxB;AACA,gBAAMC,WAAW,GAAGF,eAAe,CAACzE,IAAhB,CAAqB,UAAAuE,MAAM;AAAA,qBAAIA,MAAM,CAACC,IAAP,KAAgB,KAApB;AAAA,aAA3B,KAChBC,eAAe,CAACzE,IAAhB,CAAqB,UAAAuE,MAAM;AAAA,qBAAIA,MAAM,CAACC,IAAP,KAAgB,SAApB;AAAA,aAA3B,CADgB,IAEhBC,eAAe,CAACzE,IAAhB,CAAqB,UAAAuE,MAAM;AAAA,qBAAIA,MAAM,CAACC,IAAP,KAAgB,WAApB;AAAA,aAA3B,CAFJ;;AAGA,gBAAIG,WAAJ,EAAiB;AACbA,yBAAW,CAAC3J,SAAZ,CAAsBC,GAAtB,CAA0B,mBAA1B;AACH;AACJ;AApBQ;AAAA;AAAA,wCAqBK/E,EArBL,EAqBS;AACdA,cAAE,CAACE,eAAH;AACA,gBAAMsE,OAAO,GAAGxE,EAAE,CAAC0O,MAAH,CAAUlK,OAA1B;AACA,gBAAMmK,aAAa,GAAG3O,EAAE,CAACvB,MAAzB;AACA,gBAAMmQ,SAAS,GAAG,EAAlB;AACA,gBAAMC,WAAW,GAAG,KAAKZ,cAAL,CAAoBjB,GAApB,CAAwBxI,OAAxB,KAAoC,EAAxD;AACA,gBAAIsK,cAAc,GAAG,KAArB;AACA7B,kBAAM,CAAC8B,IAAP,CAAYJ,aAAZ,EAA2B7H,OAA3B,CAAmC,UAAAkI,GAAG,EAAI;AACtC,kBAAMC,QAAQ,qBAAcD,GAAd,CAAd;AACA,kBAAME,QAAQ,GAAGP,aAAa,CAACK,GAAD,CAA9B;;AACA,kBAAIE,QAAQ,KAAKL,WAAW,CAACI,QAAD,CAA5B,EAAwC;AACpCH,8BAAc,GAAG,IAAjB;AACH;;AACD,kBAAII,QAAJ,EAAc;AACVN,yBAAS,CAACK,QAAD,CAAT,GAAsB,IAAtB;AACH;AACJ,aATD;;AAUA,gBAAIH,cAAJ,EAAoB;AAChB,mBAAKb,cAAL,CAAoBkB,GAApB,CAAwB3K,OAAxB,EAAiCoK,SAAjC;AACA,2EAAY,IAAZ;AACH;AACJ;AA1CQ;AAAA;AAAA,mCA2CA;AAAA;;AACL,gBAAMxR,IAAI,GAAG,oEAAW,IAAX,CAAb;AACA,gBAAMyR,WAAW,GAAG,EAApB;AACA,iBAAKZ,cAAL,CAAoBnH,OAApB,CAA4B,UAAAsI,KAAK,EAAI;AACjCnC,oBAAM,CAACC,MAAP,CAAc2B,WAAd,EAA2BO,KAA3B;AACH,aAFD;AAGA,mBAAQ,6DAAE,oDAAF,EAAQ;AAAE,uBAAOnC,MAAM,CAACC,MAAP,CAAcD,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkB2B,WAAlB,CAAd,EAA8C,6DAAmB,KAAK7L,KAAxB,4CAC9D5F,IAD8D,EACvD,IADuD,6BAE/D,YAF+D,EAEjD,6DAAY,aAAZ,EAA2B,KAAKmD,EAAhC,CAFiD,aAA9C;AAAT,aAAR,EAGG,6DAAE,KAAF,EAAS;AAAE,uBAAO;AAAT,aAAT,CAHH,EAG8C,6DAAE,KAAF,EAAS;AAAE,uBAAO;AAAT,aAAT,EAAyC,6DAAE,MAAF,EAAU;AAAE8C,kBAAI,EAAE;AAAR,aAAV,CAAzC,EAAuE,6DAAE,MAAF,EAAU;AAAEA,kBAAI,EAAE;AAAR,aAAV,CAAvE,EAAyG,6DAAE,KAAF,EAAS;AAAE,uBAAO;AAAT,aAAT,EAAuC,6DAAE,MAAF,EAAU,IAAV,CAAvC,CAAzG,EAAkK,6DAAE,MAAF,EAAU;AAAEA,kBAAI,EAAE;AAAR,aAAV,CAAlK,EAAkM,6DAAE,MAAF,EAAU;AAAEA,kBAAI,EAAE;AAAR,aAAV,CAAlM,CAH9C,CAAR;AAIH;AArDQ;AAAA;AAAA,8BAsDA;AAAE,mBAAO,6DAAW,IAAX,CAAP;AAA0B;AAtD5B;;AAAA;AAAA,SAAb;;AAwDA2K,aAAO,CAACxQ,KAAR,GAAgB;AACZK,WAAG,EAAEiQ,aADO;AAEZhQ,UAAE,EAAEiQ;AAFQ,OAAhB","file":"2-es5.js","sourcesContent":["import { r as registerInstance, h, H as Host, i as getElement, e as createEvent, f as readTask, j as forceUpdate, c as writeTask } from './index-92848855.js';\nimport { b as getIonMode, c as config, i as isPlatform } from './ionic-global-23e7365a.js';\nimport { c as clamp } from './helpers-5c745fbd.js';\nimport { t as transition } from './index-9b2fc761.js';\nimport { g as getTimeGivenProgression } from './cubic-bezier-685f606a.js';\nimport { c as createColorClasses, h as hostContext } from './theme-5641d27f.js';\nimport { a as attachComponent, d as detachComponent } from './framework-delegate-d1eb6504.js';\n\nconst appCss = \"html.plt-mobile ion-app{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}ion-app.force-statusbar-padding{--ion-safe-area-top:20px}\";\n\nconst App = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n }\n componentDidLoad() {\n {\n rIC(() => {\n const isHybrid = isPlatform(window, 'hybrid');\n if (!config.getBoolean('_testing')) {\n import('./tap-click-252af35a.js').then(module => module.startTapClick(config));\n }\n if (config.getBoolean('statusTap', isHybrid)) {\n import('./status-tap-0b3e89c4.js').then(module => module.startStatusTap());\n }\n if (config.getBoolean('inputShims', needInputShims())) {\n import('./input-shims-4f0dbb39.js').then(module => module.startInputShims(config));\n }\n if (config.getBoolean('hardwareBackButton', isHybrid)) {\n import('./hardware-back-button-7b6ede21.js').then(module => module.startHardwareBackButton());\n }\n if (typeof window !== 'undefined') {\n import('./keyboard-dd970efc.js').then(module => module.startKeyboardAssist(window));\n }\n import('./focus-visible-15ada7f7.js').then(module => module.startFocusVisible());\n });\n }\n }\n render() {\n const mode = getIonMode(this);\n return (h(Host, { class: {\n [mode]: true,\n 'ion-page': true,\n 'force-statusbar-padding': config.getBoolean('_forceStatusbarPadding'),\n } }));\n }\n get el() { return getElement(this); }\n};\nconst needInputShims = () => {\n return isPlatform(window, 'ios') && isPlatform(window, 'mobile');\n};\nconst rIC = (callback) => {\n if ('requestIdleCallback' in window) {\n window.requestIdleCallback(callback);\n }\n else {\n setTimeout(callback, 32);\n }\n};\nApp.style = appCss;\n\nconst buttonsIosCss = \".sc-ion-buttons-ios-h{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:99}.sc-ion-buttons-ios-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-ios-s ion-button{--padding-start:5px;--padding-end:5px;margin-left:2px;margin-right:2px;height:32px;font-size:17px;font-weight:400}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.sc-ion-buttons-ios-s ion-button{margin-left:unset;margin-right:unset;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px}}.sc-ion-buttons-ios-s ion-button:not(.button-round){--border-radius:4px}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button{--color:initial;--border-color:initial;--background-focused:var(--ion-color-contrast)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-solid,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-solid{--background:var(--ion-color-contrast);--background-focused:#000;--background-focused-opacity:.12;--background-activated:#000;--background-activated-opacity:.12;--background-hover:var(--ion-color-base);--background-hover-opacity:0.45;--color:var(--ion-color-base);--color-focused:var(--ion-color-base)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-clear,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-clear{--color-activated:var(--ion-color-contrast);--color-focused:var(--ion-color-contrast)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-outline,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-outline{--color-activated:var(--ion-color-base);--color-focused:var(--ion-color-contrast)}.sc-ion-buttons-ios-s .button-clear,.sc-ion-buttons-ios-s .button-outline{--background-activated:transparent;--background-focused:currentColor;--background-hover:transparent}.sc-ion-buttons-ios-s .button-solid:not(.ion-color){--background-focused:#000;--background-focused-opacity:.12;--background-activated:#000;--background-activated-opacity:.12}.sc-ion-buttons-ios-s ion-icon[slot=start]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;margin-right:0.3em;font-size:24px;line-height:0.67}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.sc-ion-buttons-ios-s ion-icon[slot=start]{margin-right:unset;-webkit-margin-end:0.3em;margin-inline-end:0.3em}}.sc-ion-buttons-ios-s ion-icon[slot=end]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;margin-left:0.4em;font-size:24px;line-height:0.67}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.sc-ion-buttons-ios-s ion-icon[slot=end]{margin-left:unset;-webkit-margin-start:0.4em;margin-inline-start:0.4em}}.sc-ion-buttons-ios-s ion-icon[slot=icon-only]{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;font-size:28px;line-height:0.67}\";\n\nconst buttonsMdCss = \".sc-ion-buttons-md-h{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:99}.sc-ion-buttons-md-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-md-s ion-button{--padding-top:0;--padding-bottom:0;--padding-start:8px;--padding-end:8px;--box-shadow:none;margin-left:2px;margin-right:2px;height:32px;font-size:14px;font-weight:500}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.sc-ion-buttons-md-s ion-button{margin-left:unset;margin-right:unset;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px}}.sc-ion-buttons-md-s ion-button:not(.button-round){--border-radius:2px}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button{--color:initial;--color-focused:var(--ion-color-contrast);--color-hover:var(--ion-color-contrast);--background-activated:transparent;--background-focused:var(--ion-color-contrast);--background-hover:var(--ion-color-contrast)}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button-solid,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button-solid{--background:var(--ion-color-contrast);--background-activated:transparent;--background-focused:var(--ion-color-shade);--background-hover:var(--ion-color-base);--color:var(--ion-color-base);--color-focused:var(--ion-color-base);--color-hover:var(--ion-color-base)}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button-outline,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button-outline{--border-color:var(--ion-color-contrast)}.sc-ion-buttons-md-s .button-has-icon-only.button-clear{--padding-top:12px;--padding-end:12px;--padding-bottom:12px;--padding-start:12px;--border-radius:50%;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:48px;height:48px}.sc-ion-buttons-md-s .button{--background-hover:currentColor}.sc-ion-buttons-md-s .button-solid{--color:var(--ion-toolbar-background, var(--ion-background-color, #fff));--background:var(--ion-toolbar-color, var(--ion-text-color, #424242));--background-activated:transparent;--background-focused:currentColor}.sc-ion-buttons-md-s .button-outline{--color:initial;--background:transparent;--background-activated:transparent;--background-focused:currentColor;--background-hover:currentColor;--border-color:currentColor}.sc-ion-buttons-md-s .button-clear{--color:initial;--background:transparent;--background-activated:transparent;--background-focused:currentColor;--background-hover:currentColor}.sc-ion-buttons-md-s ion-icon[slot=start]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;margin-right:0.3em;font-size:1.4em}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.sc-ion-buttons-md-s ion-icon[slot=start]{margin-right:unset;-webkit-margin-end:0.3em;margin-inline-end:0.3em}}.sc-ion-buttons-md-s ion-icon[slot=end]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;margin-left:0.4em;font-size:1.4em}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.sc-ion-buttons-md-s ion-icon[slot=end]{margin-left:unset;-webkit-margin-start:0.4em;margin-inline-start:0.4em}}.sc-ion-buttons-md-s ion-icon[slot=icon-only]{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;font-size:1.8em}\";\n\nconst Buttons = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n /**\n * If true, buttons will disappear when its\n * parent toolbar has fully collapsed if the toolbar\n * is not the first toolbar. If the toolbar is the\n * first toolbar, the buttons will be hidden and will\n * only be shown once all toolbars have fully collapsed.\n *\n * Only applies in `ios` mode with `collapse` set to\n * `true` on `ion-header`.\n *\n * Typically used for [Collapsible Large Titles](https://ionicframework.com/docs/api/title#collapsible-large-titles)\n */\n this.collapse = false;\n }\n render() {\n const mode = getIonMode(this);\n return (h(Host, { class: {\n [mode]: true,\n ['buttons-collapse']: this.collapse\n } }));\n }\n};\nButtons.style = {\n ios: buttonsIosCss,\n md: buttonsMdCss\n};\n\nconst contentCss = \":host{--background:var(--ion-background-color, #fff);--color:var(--ion-text-color, #000);--padding-top:0px;--padding-bottom:0px;--padding-start:0px;--padding-end:0px;--keyboard-offset:0px;--offset-top:0px;--offset-bottom:0px;--overflow:auto;display:block;position:relative;-ms-flex:1;flex:1;width:100%;height:100%;margin:0 !important;padding:0 !important;font-family:var(--ion-font-family, inherit);contain:size style}:host(.ion-color) .inner-scroll{background:var(--ion-color-base);color:var(--ion-color-contrast)}:host(.outer-content){--background:var(--ion-color-step-50, #f2f2f2)}#background-content{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);position:absolute;background:var(--background)}.inner-scroll{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:calc(var(--padding-top) + var(--offset-top));padding-bottom:calc(var(--padding-bottom) + var(--keyboard-offset) + var(--offset-bottom));position:absolute;color:var(--color);-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.inner-scroll{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.scroll-y,.scroll-x{-webkit-overflow-scrolling:touch;will-change:scroll-position}.scroll-y{-ms-touch-action:pan-y;touch-action:pan-y;overflow-y:var(--overflow);overscroll-behavior-y:contain}.scroll-x{-ms-touch-action:pan-x;touch-action:pan-x;overflow-x:var(--overflow);overscroll-behavior-x:contain}.scroll-x.scroll-y{-ms-touch-action:auto;touch-action:auto}.overscroll::before,.overscroll::after{position:absolute;width:1px;height:1px;content:\\\"\\\"}.overscroll::before{bottom:-1px}.overscroll::after{top:-1px}:host(.content-sizing){contain:none}:host(.content-sizing) .inner-scroll{position:relative}.transition-effect{display:none;position:absolute;left:-100%;width:100%;height:100vh;opacity:0;pointer-events:none}.transition-cover{position:absolute;right:0;width:100%;height:100%;background:black;opacity:0.1}.transition-shadow{display:block;position:absolute;right:0;width:10px;height:100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAgCAYAAAAIXrg4AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ1IDc5LjE2MzQ5OSwgMjAxOC8wOC8xMy0xNjo0MDoyMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTE3MDgzRkQ5QTkyMTFFOUEwNzQ5MkJFREE1NUY2MjQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTE3MDgzRkU5QTkyMTFFOUEwNzQ5MkJFREE1NUY2MjQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoxMTcwODNGQjlBOTIxMUU5QTA3NDkyQkVEQTU1RjYyNCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoxMTcwODNGQzlBOTIxMUU5QTA3NDkyQkVEQTU1RjYyNCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmePEuQAAABNSURBVHjaYvz//z8DIxAwMDAwATGMhmFmPDQuOSZks0AMmoJBaQHjkPfB0Lfg/2gQjVow+HPy/yHvg9GiYjQfjMbBqAWjFgy/4hogwADYqwdzxy5BuwAAAABJRU5ErkJggg==);background-repeat:repeat-y;background-size:10px 16px}::slotted([slot=fixed]){position:absolute}\";\n\nconst Content = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.ionScrollStart = createEvent(this, \"ionScrollStart\", 7);\n this.ionScroll = createEvent(this, \"ionScroll\", 7);\n this.ionScrollEnd = createEvent(this, \"ionScrollEnd\", 7);\n this.isScrolling = false;\n this.lastScroll = 0;\n this.queued = false;\n this.cTop = -1;\n this.cBottom = -1;\n // Detail is used in a hot loop in the scroll event, by allocating it here\n // V8 will be able to inline any read/write to it since it's a monomorphic class.\n // https://mrale.ph/blog/2015/01/11/whats-up-with-monomorphism.html\n this.detail = {\n scrollTop: 0,\n scrollLeft: 0,\n type: 'scroll',\n event: undefined,\n startX: 0,\n startY: 0,\n startTime: 0,\n currentX: 0,\n currentY: 0,\n velocityX: 0,\n velocityY: 0,\n deltaX: 0,\n deltaY: 0,\n currentTime: 0,\n data: undefined,\n isScrolling: true,\n };\n /**\n * If `true`, the content will scroll behind the headers\n * and footers. This effect can easily be seen by setting the toolbar\n * to transparent.\n */\n this.fullscreen = false;\n /**\n * If you want to enable the content scrolling in the X axis, set this property to `true`.\n */\n this.scrollX = false;\n /**\n * If you want to disable the content scrolling in the Y axis, set this property to `false`.\n */\n this.scrollY = true;\n /**\n * Because of performance reasons, ionScroll events are disabled by default, in order to enable them\n * and start listening from (ionScroll), set this property to `true`.\n */\n this.scrollEvents = false;\n }\n disconnectedCallback() {\n this.onScrollEnd();\n }\n onAppLoad() {\n this.resize();\n }\n onClick(ev) {\n if (this.isScrolling) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n }\n shouldForceOverscroll() {\n const { forceOverscroll } = this;\n const mode = getIonMode(this);\n return forceOverscroll === undefined\n ? mode === 'ios' && isPlatform('ios')\n : forceOverscroll;\n }\n resize() {\n if (this.fullscreen) {\n readTask(() => this.readDimensions());\n }\n else if (this.cTop !== 0 || this.cBottom !== 0) {\n this.cTop = this.cBottom = 0;\n forceUpdate(this);\n }\n }\n readDimensions() {\n const page = getPageElement(this.el);\n const top = Math.max(this.el.offsetTop, 0);\n const bottom = Math.max(page.offsetHeight - top - this.el.offsetHeight, 0);\n const dirty = top !== this.cTop || bottom !== this.cBottom;\n if (dirty) {\n this.cTop = top;\n this.cBottom = bottom;\n forceUpdate(this);\n }\n }\n onScroll(ev) {\n const timeStamp = Date.now();\n const shouldStart = !this.isScrolling;\n this.lastScroll = timeStamp;\n if (shouldStart) {\n this.onScrollStart();\n }\n if (!this.queued && this.scrollEvents) {\n this.queued = true;\n readTask(ts => {\n this.queued = false;\n this.detail.event = ev;\n updateScrollDetail(this.detail, this.scrollEl, ts, shouldStart);\n this.ionScroll.emit(this.detail);\n });\n }\n }\n /**\n * Get the element where the actual scrolling takes place.\n * This element can be used to subscribe to `scroll` events or manually modify\n * `scrollTop`. However, it's recommended to use the API provided by `ion-content`:\n *\n * i.e. Using `ionScroll`, `ionScrollStart`, `ionScrollEnd` for scrolling events\n * and `scrollToPoint()` to scroll the content into a certain point.\n */\n getScrollElement() {\n return Promise.resolve(this.scrollEl);\n }\n /**\n * Scroll to the top of the component.\n *\n * @param duration The amount of time to take scrolling to the top. Defaults to `0`.\n */\n scrollToTop(duration = 0) {\n return this.scrollToPoint(undefined, 0, duration);\n }\n /**\n * Scroll to the bottom of the component.\n *\n * @param duration The amount of time to take scrolling to the bottom. Defaults to `0`.\n */\n scrollToBottom(duration = 0) {\n const y = this.scrollEl.scrollHeight - this.scrollEl.clientHeight;\n return this.scrollToPoint(undefined, y, duration);\n }\n /**\n * Scroll by a specified X/Y distance in the component.\n *\n * @param x The amount to scroll by on the horizontal axis.\n * @param y The amount to scroll by on the vertical axis.\n * @param duration The amount of time to take scrolling by that amount.\n */\n scrollByPoint(x, y, duration) {\n return this.scrollToPoint(x + this.scrollEl.scrollLeft, y + this.scrollEl.scrollTop, duration);\n }\n /**\n * Scroll to a specified X/Y location in the component.\n *\n * @param x The point to scroll to on the horizontal axis.\n * @param y The point to scroll to on the vertical axis.\n * @param duration The amount of time to take scrolling to that point. Defaults to `0`.\n */\n async scrollToPoint(x, y, duration = 0) {\n const el = this.scrollEl;\n if (duration < 32) {\n if (y != null) {\n el.scrollTop = y;\n }\n if (x != null) {\n el.scrollLeft = x;\n }\n return;\n }\n let resolve;\n let startTime = 0;\n const promise = new Promise(r => resolve = r);\n const fromY = el.scrollTop;\n const fromX = el.scrollLeft;\n const deltaY = y != null ? y - fromY : 0;\n const deltaX = x != null ? x - fromX : 0;\n // scroll loop\n const step = (timeStamp) => {\n const linearTime = Math.min(1, ((timeStamp - startTime) / duration)) - 1;\n const easedT = Math.pow(linearTime, 3) + 1;\n if (deltaY !== 0) {\n el.scrollTop = Math.floor((easedT * deltaY) + fromY);\n }\n if (deltaX !== 0) {\n el.scrollLeft = Math.floor((easedT * deltaX) + fromX);\n }\n if (easedT < 1) {\n // do not use DomController here\n // must use nativeRaf in order to fire in the next frame\n // TODO: remove as any\n requestAnimationFrame(step);\n }\n else {\n resolve();\n }\n };\n // chill out for a frame first\n requestAnimationFrame(ts => {\n startTime = ts;\n step(ts);\n });\n return promise;\n }\n onScrollStart() {\n this.isScrolling = true;\n this.ionScrollStart.emit({\n isScrolling: true\n });\n if (this.watchDog) {\n clearInterval(this.watchDog);\n }\n // watchdog\n this.watchDog = setInterval(() => {\n if (this.lastScroll < Date.now() - 120) {\n this.onScrollEnd();\n }\n }, 100);\n }\n onScrollEnd() {\n clearInterval(this.watchDog);\n this.watchDog = null;\n if (this.isScrolling) {\n this.isScrolling = false;\n this.ionScrollEnd.emit({\n isScrolling: false\n });\n }\n }\n render() {\n const { scrollX, scrollY } = this;\n const mode = getIonMode(this);\n const forceOverscroll = this.shouldForceOverscroll();\n const transitionShadow = (mode === 'ios' && config.getBoolean('experimentalTransitionShadow', true));\n this.resize();\n return (h(Host, { class: createColorClasses(this.color, {\n [mode]: true,\n 'content-sizing': hostContext('ion-popover', this.el),\n 'overscroll': forceOverscroll,\n }), style: {\n '--offset-top': `${this.cTop}px`,\n '--offset-bottom': `${this.cBottom}px`,\n } }, h(\"div\", { id: \"background-content\", part: \"background\" }), h(\"main\", { class: {\n 'inner-scroll': true,\n 'scroll-x': scrollX,\n 'scroll-y': scrollY,\n 'overscroll': (scrollX || scrollY) && forceOverscroll\n }, ref: el => this.scrollEl = el, onScroll: (this.scrollEvents) ? ev => this.onScroll(ev) : undefined, part: \"scroll\" }, h(\"slot\", null)), transitionShadow ? (h(\"div\", { class: \"transition-effect\" }, h(\"div\", { class: \"transition-cover\" }), h(\"div\", { class: \"transition-shadow\" }))) : null, h(\"slot\", { name: \"fixed\" })));\n }\n get el() { return getElement(this); }\n};\nconst getParentElement = (el) => {\n if (el.parentElement) {\n // normal element with a parent element\n return el.parentElement;\n }\n if (el.parentNode && el.parentNode.host) {\n // shadow dom's document fragment\n return el.parentNode.host;\n }\n return null;\n};\nconst getPageElement = (el) => {\n const tabs = el.closest('ion-tabs');\n if (tabs) {\n return tabs;\n }\n const page = el.closest('ion-app,ion-page,.ion-page,page-inner');\n if (page) {\n return page;\n }\n return getParentElement(el);\n};\n// ******** DOM READ ****************\nconst updateScrollDetail = (detail, el, timestamp, shouldStart) => {\n const prevX = detail.currentX;\n const prevY = detail.currentY;\n const prevT = detail.currentTime;\n const currentX = el.scrollLeft;\n const currentY = el.scrollTop;\n const timeDelta = timestamp - prevT;\n if (shouldStart) {\n // remember the start positions\n detail.startTime = timestamp;\n detail.startX = currentX;\n detail.startY = currentY;\n detail.velocityX = detail.velocityY = 0;\n }\n detail.currentTime = timestamp;\n detail.currentX = detail.scrollLeft = currentX;\n detail.currentY = detail.scrollTop = currentY;\n detail.deltaX = currentX - detail.startX;\n detail.deltaY = currentY - detail.startY;\n if (timeDelta > 0 && timeDelta < 100) {\n const velocityX = (currentX - prevX) / timeDelta;\n const velocityY = (currentY - prevY) / timeDelta;\n detail.velocityX = velocityX * 0.7 + detail.velocityX * 0.3;\n detail.velocityY = velocityY * 0.7 + detail.velocityY * 0.3;\n }\n};\nContent.style = contentCss;\n\nconst footerIosCss = \"ion-footer{display:block;position:relative;-ms-flex-order:1;order:1;width:100%;z-index:10}ion-footer ion-toolbar:last-of-type{padding-bottom:var(--ion-safe-area-bottom, 0)}.footer-ios ion-toolbar:first-of-type{--border-width:0.55px 0 0}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.footer-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}.footer-translucent-ios ion-toolbar{--opacity:.8}}.footer-ios.ion-no-border ion-toolbar:first-of-type{--border-width:0}\";\n\nconst footerMdCss = \"ion-footer{display:block;position:relative;-ms-flex-order:1;order:1;width:100%;z-index:10}ion-footer ion-toolbar:last-of-type{padding-bottom:var(--ion-safe-area-bottom, 0)}.footer-md::before{left:0;top:-2px;bottom:auto;background-position:left 0 top 0;position:absolute;width:100%;height:2px;background-image:url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAHBAMAAADzDtBxAAAAD1BMVEUAAAAAAAAAAAAAAAAAAABPDueNAAAABXRSTlMUCS0gBIh/TXEAAAAaSURBVAjXYxCEAgY4UIICBmMogMsgFLtAAQCNSwXZKOdPxgAAAABJRU5ErkJggg==\\\");background-repeat:repeat-x;content:\\\"\\\"}[dir=rtl] .footer-md::before,:host-context([dir=rtl]) .footer-md::before{left:unset;right:unset;right:0}[dir=rtl] .footer-md::before,:host-context([dir=rtl]) .footer-md::before{background-position:right 0 top 0}.footer-md.ion-no-border::before{display:none}\";\n\nconst Footer = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n /**\n * If `true`, the footer will be translucent.\n * Only applies when the mode is `\"ios\"` and the device supports\n * [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).\n *\n * Note: In order to scroll content behind the footer, the `fullscreen`\n * attribute needs to be set on the content.\n */\n this.translucent = false;\n }\n render() {\n const mode = getIonMode(this);\n const translucent = this.translucent;\n return (h(Host, { role: \"contentinfo\", class: {\n [mode]: true,\n // Used internally for styling\n [`footer-${mode}`]: true,\n [`footer-translucent`]: translucent,\n [`footer-translucent-${mode}`]: translucent,\n } }, mode === 'ios' && translucent &&\n h(\"div\", { class: \"footer-background\" }), h(\"slot\", null)));\n }\n};\nFooter.style = {\n ios: footerIosCss,\n md: footerMdCss\n};\n\nconst TRANSITION = 'all 0.2s ease-in-out';\nconst cloneElement = (tagName) => {\n const getCachedEl = document.querySelector(`${tagName}.ion-cloned-element`);\n if (getCachedEl !== null) {\n return getCachedEl;\n }\n const clonedEl = document.createElement(tagName);\n clonedEl.classList.add('ion-cloned-element');\n clonedEl.style.setProperty('display', 'none');\n document.body.appendChild(clonedEl);\n return clonedEl;\n};\nconst createHeaderIndex = (headerEl) => {\n if (!headerEl) {\n return;\n }\n const toolbars = headerEl.querySelectorAll('ion-toolbar');\n return {\n el: headerEl,\n toolbars: Array.from(toolbars).map((toolbar) => {\n const ionTitleEl = toolbar.querySelector('ion-title');\n return {\n el: toolbar,\n background: toolbar.shadowRoot.querySelector('.toolbar-background'),\n ionTitleEl,\n innerTitleEl: (ionTitleEl) ? ionTitleEl.shadowRoot.querySelector('.toolbar-title') : null,\n ionButtonsEl: Array.from(toolbar.querySelectorAll('ion-buttons')) || []\n };\n }) || []\n };\n};\nconst handleContentScroll = (scrollEl, scrollHeaderIndex, contentEl) => {\n readTask(() => {\n const scrollTop = scrollEl.scrollTop;\n const scale = clamp(1, 1 + (-scrollTop / 500), 1.1);\n // Native refresher should not cause titles to scale\n const nativeRefresher = contentEl.querySelector('ion-refresher.refresher-native');\n if (nativeRefresher === null) {\n writeTask(() => {\n scaleLargeTitles(scrollHeaderIndex.toolbars, scale);\n });\n }\n });\n};\nconst setToolbarBackgroundOpacity = (toolbar, opacity) => {\n if (opacity === undefined) {\n toolbar.background.style.removeProperty('--opacity');\n }\n else {\n toolbar.background.style.setProperty('--opacity', opacity.toString());\n }\n};\nconst handleToolbarBorderIntersection = (ev, mainHeaderIndex) => {\n if (!ev[0].isIntersecting) {\n return;\n }\n /**\n * There is a bug in Safari where overflow scrolling on a non-body element\n * does not always reset the scrollTop position to 0 when letting go. It will\n * set to 1 once the rubber band effect has ended. This causes the background to\n * appear slightly on certain app setups.\n */\n const scale = (ev[0].intersectionRatio > 0.9) ? 0 : ((1 - ev[0].intersectionRatio) * 100) / 75;\n mainHeaderIndex.toolbars.forEach(toolbar => {\n setToolbarBackgroundOpacity(toolbar, (scale === 1) ? undefined : scale);\n });\n};\n/**\n * If toolbars are intersecting, hide the scrollable toolbar content\n * and show the primary toolbar content. If the toolbars are not intersecting,\n * hide the primary toolbar content and show the scrollable toolbar content\n */\nconst handleToolbarIntersection = (ev, mainHeaderIndex, scrollHeaderIndex) => {\n writeTask(() => {\n handleToolbarBorderIntersection(ev, mainHeaderIndex);\n const event = ev[0];\n const intersection = event.intersectionRect;\n const intersectionArea = intersection.width * intersection.height;\n const rootArea = event.rootBounds.width * event.rootBounds.height;\n const isPageHidden = intersectionArea === 0 && rootArea === 0;\n const leftDiff = Math.abs(intersection.left - event.boundingClientRect.left);\n const rightDiff = Math.abs(intersection.right - event.boundingClientRect.right);\n const isPageTransitioning = intersectionArea > 0 && (leftDiff >= 5 || rightDiff >= 5);\n if (isPageHidden || isPageTransitioning) {\n return;\n }\n if (event.isIntersecting) {\n setHeaderActive(mainHeaderIndex, false);\n setHeaderActive(scrollHeaderIndex);\n }\n else {\n /**\n * There is a bug with IntersectionObserver on Safari\n * where `event.isIntersecting === false` when cancelling\n * a swipe to go back gesture. Checking the intersection\n * x, y, width, and height provides a workaround. This bug\n * does not happen when using Safari + Web Animations,\n * only Safari + CSS Animations.\n */\n const hasValidIntersection = (intersection.x === 0 && intersection.y === 0) || (intersection.width !== 0 && intersection.height !== 0);\n if (hasValidIntersection) {\n setHeaderActive(mainHeaderIndex);\n setHeaderActive(scrollHeaderIndex, false);\n setToolbarBackgroundOpacity(mainHeaderIndex.toolbars[0]);\n }\n }\n });\n};\nconst setHeaderActive = (headerIndex, active = true) => {\n if (active) {\n headerIndex.el.classList.remove('header-collapse-condense-inactive');\n }\n else {\n headerIndex.el.classList.add('header-collapse-condense-inactive');\n }\n};\nconst scaleLargeTitles = (toolbars = [], scale = 1, transition = false) => {\n toolbars.forEach(toolbar => {\n const ionTitle = toolbar.ionTitleEl;\n const titleDiv = toolbar.innerTitleEl;\n if (!ionTitle || ionTitle.size !== 'large') {\n return;\n }\n titleDiv.style.transition = (transition) ? TRANSITION : '';\n titleDiv.style.transform = `scale3d(${scale}, ${scale}, 1)`;\n });\n};\n\nconst headerIosCss = \"ion-header{display:block;position:relative;-ms-flex-order:-1;order:-1;width:100%;z-index:10}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 0)}.header-ios ion-toolbar:last-of-type{--border-width:0 0 0.55px}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.header-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}.header-translucent-ios ion-toolbar{--opacity:.8}.header-collapse-condense-inactive .header-background{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}}.header-ios.ion-no-border ion-toolbar:last-of-type{--border-width:0}.header-collapse-condense{z-index:9}.header-collapse-condense ion-toolbar{position:-webkit-sticky;position:sticky;top:0}.header-collapse-condense ion-toolbar:first-of-type{padding-top:7px;z-index:1}.header-collapse-condense ion-toolbar{--background:var(--ion-background-color, #fff);z-index:0}.header-collapse-condense ion-toolbar ion-searchbar{height:48px;padding-top:0px;padding-bottom:13px}.header-collapse-main ion-toolbar.in-toolbar ion-title,.header-collapse-main ion-toolbar.in-toolbar ion-buttons{-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-title,.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-buttons.buttons-collapse{opacity:0;pointer-events:none}.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-title,.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-buttons.buttons-collapse{visibility:hidden}\";\n\nconst headerMdCss = \"ion-header{display:block;position:relative;-ms-flex-order:-1;order:-1;width:100%;z-index:10}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 0)}.header-md::after{left:0;bottom:-5px;background-position:left 0 top -2px;position:absolute;width:100%;height:5px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAHBAMAAADzDtBxAAAAD1BMVEUAAAAAAAAAAAAAAAAAAABPDueNAAAABXRSTlMUCS0gBIh/TXEAAAAaSURBVAjXYxCEAgY4UIICBmMogMsgFLtAAQCNSwXZKOdPxgAAAABJRU5ErkJggg==);background-repeat:repeat-x;content:\\\"\\\"}[dir=rtl] .header-md::after,:host-context([dir=rtl]) .header-md::after{left:unset;right:unset;right:0}[dir=rtl] .header-md::after,:host-context([dir=rtl]) .header-md::after{background-position:right 0 top -2px}.header-collapse-condense{display:none}.header-md.ion-no-border::after{display:none}\";\n\nconst Header = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.collapsibleHeaderInitialized = false;\n /**\n * If `true`, the header will be translucent.\n * Only applies when the mode is `\"ios\"` and the device supports\n * [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).\n *\n * Note: In order to scroll content behind the header, the `fullscreen`\n * attribute needs to be set on the content.\n */\n this.translucent = false;\n }\n async componentDidLoad() {\n await this.checkCollapsibleHeader();\n }\n async componentDidUpdate() {\n await this.checkCollapsibleHeader();\n }\n disconnectedCallback() {\n this.destroyCollapsibleHeader();\n }\n async checkCollapsibleHeader() {\n // Determine if the header can collapse\n const hasCollapse = this.collapse === 'condense';\n const canCollapse = (hasCollapse && getIonMode(this) === 'ios') ? hasCollapse : false;\n if (!canCollapse && this.collapsibleHeaderInitialized) {\n this.destroyCollapsibleHeader();\n }\n else if (canCollapse && !this.collapsibleHeaderInitialized) {\n const pageEl = this.el.closest('ion-app,ion-page,.ion-page,page-inner');\n const contentEl = (pageEl) ? pageEl.querySelector('ion-content') : null;\n // Cloned elements are always needed in iOS transition\n writeTask(() => {\n const title = cloneElement('ion-title');\n title.size = 'large';\n cloneElement('ion-back-button');\n });\n await this.setupCollapsibleHeader(contentEl, pageEl);\n }\n }\n destroyCollapsibleHeader() {\n if (this.intersectionObserver) {\n this.intersectionObserver.disconnect();\n this.intersectionObserver = undefined;\n }\n if (this.scrollEl && this.contentScrollCallback) {\n this.scrollEl.removeEventListener('scroll', this.contentScrollCallback);\n this.contentScrollCallback = undefined;\n }\n if (this.collapsibleMainHeader) {\n this.collapsibleMainHeader.classList.remove('header-collapse-main');\n this.collapsibleMainHeader = undefined;\n }\n }\n async setupCollapsibleHeader(contentEl, pageEl) {\n if (!contentEl || !pageEl) {\n console.error('ion-header requires a content to collapse, make sure there is an ion-content.');\n return;\n }\n if (typeof IntersectionObserver === 'undefined') {\n return;\n }\n this.scrollEl = await contentEl.getScrollElement();\n const headers = pageEl.querySelectorAll('ion-header');\n this.collapsibleMainHeader = Array.from(headers).find((header) => header.collapse !== 'condense');\n if (!this.collapsibleMainHeader) {\n return;\n }\n const mainHeaderIndex = createHeaderIndex(this.collapsibleMainHeader);\n const scrollHeaderIndex = createHeaderIndex(this.el);\n if (!mainHeaderIndex || !scrollHeaderIndex) {\n return;\n }\n setHeaderActive(mainHeaderIndex, false);\n mainHeaderIndex.toolbars.forEach(toolbar => {\n setToolbarBackgroundOpacity(toolbar, 0);\n });\n /**\n * Handle interaction between toolbar collapse and\n * showing/hiding content in the primary ion-header\n * as well as progressively showing/hiding the main header\n * border as the top-most toolbar collapses or expands.\n */\n const toolbarIntersection = (ev) => { handleToolbarIntersection(ev, mainHeaderIndex, scrollHeaderIndex); };\n this.intersectionObserver = new IntersectionObserver(toolbarIntersection, { root: contentEl, threshold: [0.25, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1] });\n this.intersectionObserver.observe(scrollHeaderIndex.toolbars[scrollHeaderIndex.toolbars.length - 1].el);\n /**\n * Handle scaling of large iOS titles and\n * showing/hiding border on last toolbar\n * in primary header\n */\n this.contentScrollCallback = () => { handleContentScroll(this.scrollEl, scrollHeaderIndex, contentEl); };\n this.scrollEl.addEventListener('scroll', this.contentScrollCallback);\n writeTask(() => {\n if (this.collapsibleMainHeader !== undefined) {\n this.collapsibleMainHeader.classList.add('header-collapse-main');\n }\n });\n this.collapsibleHeaderInitialized = true;\n }\n render() {\n const { translucent } = this;\n const mode = getIonMode(this);\n const collapse = this.collapse || 'none';\n return (h(Host, { role: \"banner\", class: {\n [mode]: true,\n // Used internally for styling\n [`header-${mode}`]: true,\n [`header-translucent`]: this.translucent,\n [`header-collapse-${collapse}`]: true,\n [`header-translucent-${mode}`]: this.translucent,\n } }, mode === 'ios' && translucent &&\n h(\"div\", { class: \"header-background\" }), h(\"slot\", null)));\n }\n get el() { return getElement(this); }\n};\nHeader.style = {\n ios: headerIosCss,\n md: headerMdCss\n};\n\nconst routeOutletCss = \":host{left:0;right:0;top:0;bottom:0;position:absolute;contain:layout size style;overflow:hidden;z-index:0}\";\n\nconst RouterOutlet = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.ionNavWillLoad = createEvent(this, \"ionNavWillLoad\", 7);\n this.ionNavWillChange = createEvent(this, \"ionNavWillChange\", 3);\n this.ionNavDidChange = createEvent(this, \"ionNavDidChange\", 3);\n this.animationEnabled = true;\n /**\n * The mode determines which platform styles to use.\n */\n this.mode = getIonMode(this);\n /**\n * If `true`, the router-outlet should animate the transition of components.\n */\n this.animated = true;\n }\n swipeHandlerChanged() {\n if (this.gesture) {\n this.gesture.enable(this.swipeHandler !== undefined);\n }\n }\n async connectedCallback() {\n this.gesture = (await import('./swipe-back-0a6a44c8.js')).createSwipeBackGesture(this.el, () => !!this.swipeHandler && this.swipeHandler.canStart() && this.animationEnabled, () => this.swipeHandler && this.swipeHandler.onStart(), step => this.ani && this.ani.progressStep(step), (shouldComplete, step, dur) => {\n if (this.ani) {\n this.animationEnabled = false;\n this.ani.onFinish(() => {\n this.animationEnabled = true;\n if (this.swipeHandler) {\n this.swipeHandler.onEnd(shouldComplete);\n }\n }, { oneTimeCallback: true });\n // Account for rounding errors in JS\n let newStepValue = (shouldComplete) ? -0.001 : 0.001;\n /**\n * Animation will be reversed here, so need to\n * reverse the easing curve as well\n *\n * Additionally, we need to account for the time relative\n * to the new easing curve, as `stepValue` is going to be given\n * in terms of a linear curve.\n */\n if (!shouldComplete) {\n this.ani.easing('cubic-bezier(1, 0, 0.68, 0.28)');\n newStepValue += getTimeGivenProgression([0, 0], [1, 0], [0.68, 0.28], [1, 1], step)[0];\n }\n else {\n newStepValue += getTimeGivenProgression([0, 0], [0.32, 0.72], [0, 1], [1, 1], step)[0];\n }\n this.ani.progressEnd(shouldComplete ? 1 : 0, newStepValue, dur);\n }\n });\n this.swipeHandlerChanged();\n }\n componentWillLoad() {\n this.ionNavWillLoad.emit();\n }\n disconnectedCallback() {\n if (this.gesture) {\n this.gesture.destroy();\n this.gesture = undefined;\n }\n }\n /** @internal */\n async commit(enteringEl, leavingEl, opts) {\n const unlock = await this.lock();\n let changed = false;\n try {\n changed = await this.transition(enteringEl, leavingEl, opts);\n }\n catch (e) {\n console.error(e);\n }\n unlock();\n return changed;\n }\n /** @internal */\n async setRouteId(id, params, direction, animation) {\n const changed = await this.setRoot(id, params, {\n duration: direction === 'root' ? 0 : undefined,\n direction: direction === 'back' ? 'back' : 'forward',\n animationBuilder: animation\n });\n return {\n changed,\n element: this.activeEl\n };\n }\n /** @internal */\n async getRouteId() {\n const active = this.activeEl;\n return active ? {\n id: active.tagName,\n element: active,\n } : undefined;\n }\n async setRoot(component, params, opts) {\n if (this.activeComponent === component) {\n return false;\n }\n // attach entering view to DOM\n const leavingEl = this.activeEl;\n const enteringEl = await attachComponent(this.delegate, this.el, component, ['ion-page', 'ion-page-invisible'], params);\n this.activeComponent = component;\n this.activeEl = enteringEl;\n // commit animation\n await this.commit(enteringEl, leavingEl, opts);\n await detachComponent(this.delegate, leavingEl);\n return true;\n }\n async transition(enteringEl, leavingEl, opts = {}) {\n if (leavingEl === enteringEl) {\n return false;\n }\n // emit nav will change event\n this.ionNavWillChange.emit();\n const { el, mode } = this;\n const animated = this.animated && config.getBoolean('animated', true);\n const animationBuilder = this.animation || opts.animationBuilder || config.get('navAnimation');\n await transition(Object.assign(Object.assign({ mode,\n animated,\n enteringEl,\n leavingEl, baseEl: el, progressCallback: (opts.progressAnimation\n ? ani => this.ani = ani\n : undefined) }, opts), { animationBuilder }));\n // emit nav changed event\n this.ionNavDidChange.emit();\n return true;\n }\n async lock() {\n const p = this.waitPromise;\n let resolve;\n this.waitPromise = new Promise(r => resolve = r);\n if (p !== undefined) {\n await p;\n }\n return resolve;\n }\n render() {\n return (h(\"slot\", null));\n }\n get el() { return getElement(this); }\n static get watchers() { return {\n \"swipeHandler\": [\"swipeHandlerChanged\"]\n }; }\n};\nRouterOutlet.style = routeOutletCss;\n\nconst titleIosCss = \":host{--color:initial;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);color:var(--color)}:host(.ion-color){color:var(--ion-color-base)}.toolbar-title{display:block;width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;pointer-events:auto}:host(.title-small) .toolbar-title{white-space:normal}:host{left:0;top:0;padding-left:90px;padding-right:90px;padding-top:0;padding-bottom:0;position:absolute;width:100%;height:100%;-webkit-transform:translateZ(0);transform:translateZ(0);font-size:17px;font-weight:600;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;pointer-events:none}:host-context([dir=rtl]){left:unset;right:unset;right:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:90px;padding-inline-start:90px;-webkit-padding-end:90px;padding-inline-end:90px}}:host(.title-small){padding-left:9px;padding-right:9px;padding-top:6px;padding-bottom:16px;position:relative;font-size:13px;font-weight:normal}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.title-small){padding-left:unset;padding-right:unset;-webkit-padding-start:9px;padding-inline-start:9px;-webkit-padding-end:9px;padding-inline-end:9px}}:host(.title-large){padding-left:16px;padding-right:16px;padding-top:0;padding-bottom:0;-webkit-transform-origin:left center;transform-origin:left center;bottom:0;-ms-flex-align:end;align-items:flex-end;min-width:100%;padding-bottom:6px;font-size:34px;font-weight:700;text-align:start}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host(.title-large){padding-left:unset;padding-right:unset;-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px}}:host-context([dir=rtl]):host(.title-large),:host-context([dir=rtl]).title-large{-webkit-transform-origin:right center;transform-origin:right center}:host(.title-large.ion-cloned-element){--color:var(--ion-text-color, #000)}:host(.title-large) .toolbar-title{-webkit-transform-origin:inherit;transform-origin:inherit}:host-context([dir=rtl]):host(.title-large) .toolbar-title,:host-context([dir=rtl]).title-large .toolbar-title{-webkit-transform-origin:calc(100% - inherit);transform-origin:calc(100% - inherit)}\";\n\nconst titleMdCss = \":host{--color:initial;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);color:var(--color)}:host(.ion-color){color:var(--ion-color-base)}.toolbar-title{display:block;width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;pointer-events:auto}:host(.title-small) .toolbar-title{white-space:normal}:host{padding-left:20px;padding-right:20px;padding-top:0;padding-bottom:0;font-size:20px;font-weight:500;letter-spacing:0.0125em}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:20px;padding-inline-start:20px;-webkit-padding-end:20px;padding-inline-end:20px}}:host(.title-small){width:100%;height:100%;font-size:15px;font-weight:normal}\";\n\nconst ToolbarTitle = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.ionStyle = createEvent(this, \"ionStyle\", 7);\n }\n sizeChanged() {\n this.emitStyle();\n }\n connectedCallback() {\n this.emitStyle();\n }\n emitStyle() {\n const size = this.getSize();\n this.ionStyle.emit({\n [`title-${size}`]: true\n });\n }\n getSize() {\n return (this.size !== undefined) ? this.size : 'default';\n }\n render() {\n const mode = getIonMode(this);\n const size = this.getSize();\n return (h(Host, { class: createColorClasses(this.color, {\n [mode]: true,\n [`title-${size}`]: true,\n }) }, h(\"div\", { class: \"toolbar-title\" }, h(\"slot\", null))));\n }\n get el() { return getElement(this); }\n static get watchers() { return {\n \"size\": [\"sizeChanged\"]\n }; }\n};\nToolbarTitle.style = {\n ios: titleIosCss,\n md: titleMdCss\n};\n\nconst toolbarIosCss = \":host{--border-width:0;--border-style:solid;--opacity:1;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;padding-left:var(--ion-safe-area-left);padding-right:var(--ion-safe-area-right);display:block;position:relative;width:100%;color:var(--color);font-family:var(--ion-font-family, inherit);contain:content;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--ion-safe-area-left);padding-inline-start:var(--ion-safe-area-left);-webkit-padding-end:var(--ion-safe-area-right);padding-inline-end:var(--ion-safe-area-right)}}:host(.ion-color){color:var(--ion-color-contrast)}:host(.ion-color) .toolbar-background{background:var(--ion-color-base)}.toolbar-container{padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;position:relative;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;width:100%;min-height:var(--min-height);contain:content;overflow:hidden;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.toolbar-container{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.toolbar-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;opacity:var(--opacity);z-index:-1;pointer-events:none}::slotted(ion-progress-bar){left:0;right:0;bottom:0;position:absolute}:host{--background:var(--ion-toolbar-background, var(--ion-color-step-50, #fff));--color:var(--ion-toolbar-color, var(--ion-text-color, #000));--border-color:var(--ion-toolbar-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.2))));--padding-top:3px;--padding-bottom:3px;--padding-start:4px;--padding-end:4px;--min-height:44px}.toolbar-content{-ms-flex:1;flex:1;-ms-flex-order:4;order:4;min-width:0}:host(.toolbar-segment) .toolbar-content{display:-ms-inline-flexbox;display:inline-flex}:host(.toolbar-searchbar) .toolbar-container{padding-top:0;padding-bottom:0}:host(.toolbar-searchbar) ::slotted(*){-ms-flex-item-align:start;align-self:start}:host(.toolbar-searchbar) ::slotted(ion-chip){margin-top:3px}:host(.toolbar-searchbar) ::slotted(ion-back-button){height:38px}::slotted(ion-buttons){min-height:38px}::slotted([slot=start]){-ms-flex-order:2;order:2}::slotted([slot=secondary]){-ms-flex-order:3;order:3}::slotted([slot=primary]){-ms-flex-order:5;order:5;text-align:end}::slotted([slot=end]){-ms-flex-order:6;order:6;text-align:end}:host(.toolbar-title-large) .toolbar-container{-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:start;align-items:flex-start}:host(.toolbar-title-large) .toolbar-content ion-title{-ms-flex:1;flex:1;-ms-flex-order:8;order:8;min-width:100%}\";\n\nconst toolbarMdCss = \":host{--border-width:0;--border-style:solid;--opacity:1;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;padding-left:var(--ion-safe-area-left);padding-right:var(--ion-safe-area-right);display:block;position:relative;width:100%;color:var(--color);font-family:var(--ion-font-family, inherit);contain:content;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--ion-safe-area-left);padding-inline-start:var(--ion-safe-area-left);-webkit-padding-end:var(--ion-safe-area-right);padding-inline-end:var(--ion-safe-area-right)}}:host(.ion-color){color:var(--ion-color-contrast)}:host(.ion-color) .toolbar-background{background:var(--ion-color-base)}.toolbar-container{padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;position:relative;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;width:100%;min-height:var(--min-height);contain:content;overflow:hidden;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.toolbar-container{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.toolbar-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;opacity:var(--opacity);z-index:-1;pointer-events:none}::slotted(ion-progress-bar){left:0;right:0;bottom:0;position:absolute}:host{--background:var(--ion-toolbar-background, var(--ion-background-color, #fff));--color:var(--ion-toolbar-color, var(--ion-text-color, #424242));--border-color:var(--ion-toolbar-border-color, var(--ion-border-color, var(--ion-color-step-150, #c1c4cd)));--padding-top:0;--padding-bottom:0;--padding-start:0;--padding-end:0;--min-height:56px}.toolbar-content{-ms-flex:1;flex:1;-ms-flex-order:3;order:3;min-width:0;max-width:100%}::slotted(ion-segment){min-height:var(--min-height)}::slotted(.buttons-first-slot){margin-left:4px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted(.buttons-first-slot){margin-left:unset;-webkit-margin-start:4px;margin-inline-start:4px}}::slotted(.buttons-last-slot){margin-right:4px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted(.buttons-last-slot){margin-right:unset;-webkit-margin-end:4px;margin-inline-end:4px}}::slotted([slot=start]){-ms-flex-order:2;order:2}::slotted([slot=secondary]){-ms-flex-order:4;order:4}::slotted([slot=primary]){-ms-flex-order:5;order:5;text-align:end}::slotted([slot=end]){-ms-flex-order:6;order:6;text-align:end}\";\n\nconst Toolbar = class {\n constructor(hostRef) {\n registerInstance(this, hostRef);\n this.childrenStyles = new Map();\n }\n componentWillLoad() {\n const buttons = Array.from(this.el.querySelectorAll('ion-buttons'));\n const firstButtons = buttons.find(button => {\n return button.slot === 'start';\n });\n if (firstButtons) {\n firstButtons.classList.add('buttons-first-slot');\n }\n const buttonsReversed = buttons.reverse();\n const lastButtons = buttonsReversed.find(button => button.slot === 'end') ||\n buttonsReversed.find(button => button.slot === 'primary') ||\n buttonsReversed.find(button => button.slot === 'secondary');\n if (lastButtons) {\n lastButtons.classList.add('buttons-last-slot');\n }\n }\n childrenStyle(ev) {\n ev.stopPropagation();\n const tagName = ev.target.tagName;\n const updatedStyles = ev.detail;\n const newStyles = {};\n const childStyles = this.childrenStyles.get(tagName) || {};\n let hasStyleChange = false;\n Object.keys(updatedStyles).forEach(key => {\n const childKey = `toolbar-${key}`;\n const newValue = updatedStyles[key];\n if (newValue !== childStyles[childKey]) {\n hasStyleChange = true;\n }\n if (newValue) {\n newStyles[childKey] = true;\n }\n });\n if (hasStyleChange) {\n this.childrenStyles.set(tagName, newStyles);\n forceUpdate(this);\n }\n }\n render() {\n const mode = getIonMode(this);\n const childStyles = {};\n this.childrenStyles.forEach(value => {\n Object.assign(childStyles, value);\n });\n return (h(Host, { class: Object.assign(Object.assign({}, childStyles), createColorClasses(this.color, {\n [mode]: true,\n 'in-toolbar': hostContext('ion-toolbar', this.el),\n })) }, h(\"div\", { class: \"toolbar-background\" }), h(\"div\", { class: \"toolbar-container\" }, h(\"slot\", { name: \"start\" }), h(\"slot\", { name: \"secondary\" }), h(\"div\", { class: \"toolbar-content\" }, h(\"slot\", null)), h(\"slot\", { name: \"primary\" }), h(\"slot\", { name: \"end\" }))));\n }\n get el() { return getElement(this); }\n};\nToolbar.style = {\n ios: toolbarIosCss,\n md: toolbarMdCss\n};\n\nexport { App as ion_app, Buttons as ion_buttons, Content as ion_content, Footer as ion_footer, Header as ion_header, RouterOutlet as ion_router_outlet, ToolbarTitle as ion_title, Toolbar as ion_toolbar };\n"]}