{"version":3,"file":"static/js/main.8e9e1d92.js","mappings":";uCAAAA,EAAOC,QAAU,EAAjB,yBCIQ,SAAUA,GAAW,aAIzB,SAASC,EAAOC,EAAGC,EAAGC,EAAGC,GAErB,IAAIC,GADJD,EAAaA,GAAc,IACIC,eAAiB,IAC5CC,EAAYF,EAAWE,WAAa,MACpCC,EAAKN,EAAEC,GACPM,EAAKP,EAAEE,GACPM,EAAQN,EAAID,EAEhB,GAAIK,EAAKC,EAAK,EACV,KAAM,iDAGV,GAAW,IAAPD,EAAU,OAAOL,EACrB,GAAW,IAAPM,EAAU,OAAOL,EAErB,IAAK,IAAIO,EAAI,EAAGA,EAAIL,IAAiBK,EAAG,CAEpC,IAAIC,EAAMT,GADVO,GAAS,GAELG,EAAOX,EAAEU,GAMb,GAJIC,EAAOL,GAAM,IACbL,EAAIS,GAGHE,KAAKC,IAAIL,GAASH,GAAwB,IAATM,EAClC,OAAOD,EAGf,OAAOT,EAAIO,EAKf,SAASM,EAAMC,GAA2B,IAAtB,IAAIC,EAAI,IAAIC,MAAMF,GAAaN,EAAI,EAAGA,EAAIM,IAAKN,EAAKO,EAAEP,GAAK,EAAK,OAAOO,EAC3F,SAASE,EAAOH,EAAEI,GAAK,OAAOL,EAAMC,GAAGK,KAAI,WAAa,OAAON,EAAMK,MAErE,SAASE,EAAIpB,EAAGC,GAEZ,IADA,IAAIoB,EAAM,EACDb,EAAI,EAAGA,EAAIR,EAAEsB,SAAUd,EAC5Ba,GAAOrB,EAAEQ,GAAKP,EAAEO,GAEpB,OAAOa,EAGX,SAASE,EAAMvB,GACX,OAAOW,KAAKa,KAAKJ,EAAIpB,EAAGA,IAG5B,SAASyB,EAAMJ,EAAKK,EAAOC,GACvB,IAAK,IAAInB,EAAI,EAAGA,EAAIkB,EAAMJ,SAAUd,EAChCa,EAAIb,GAAKkB,EAAMlB,GAAKmB,EAI5B,SAASC,EAAYP,EAAKQ,EAAIC,EAAIC,EAAIC,GAClC,IAAK,IAAIC,EAAI,EAAGA,EAAIZ,EAAIC,SAAUW,EAC9BZ,EAAIY,GAAKJ,EAAKC,EAAGG,GAAKF,EAAKC,EAAGC,GAKtC,SAASC,EAAWnC,EAAGoC,EAAIjC,GAGvB,IASIkC,EATAjC,GAFJD,EAAaA,GAAc,IAEIC,eAA6B,IAAZgC,EAAGb,OAC/Ce,EAAenC,EAAWmC,cAAgB,KAC1CC,EAAYpC,EAAWoC,WAAa,KACpCC,EAAgBrC,EAAWqC,eAAiB,KAC5CC,EAAetC,EAAWqC,eAAiB,KAC3CE,OAA0BC,IAAnBxC,EAAWuC,IAAqBvC,EAAWuC,IAAM,EACxDE,OAA0BD,IAAnBxC,EAAWyC,IAAqBzC,EAAWyC,IAAM,EACxDC,OAA0BF,IAAnBxC,EAAW0C,IAAqB1C,EAAW0C,KAAO,GACzDC,OAA8BH,IAArBxC,EAAW2C,MAAuB3C,EAAW2C,MAAQ,GAI9DC,EAAIX,EAAGb,OACPyB,EAAU,IAAI/B,MAAM8B,EAAI,GAC5BC,EAAQ,GAAKZ,EACbY,EAAQ,GAAGC,GAAKjD,EAAEoC,GAClBY,EAAQ,GAAGE,GAAK,EAChB,IAAK,IAAIzC,EAAI,EAAGA,EAAIsC,IAAKtC,EAAG,CACxB,IAAI0C,EAAQf,EAAGgB,QACfD,EAAM1C,GAAK0C,EAAM1C,GAAK0C,EAAM1C,GAAK6B,EAAeC,EAChDS,EAAQvC,EAAE,GAAK0C,EACfH,EAAQvC,EAAE,GAAGwC,GAAKjD,EAAEmD,GACpBH,EAAQvC,EAAE,GAAGyC,GAAKzC,EAAE,EAGxB,SAAS4C,EAAc1B,GACnB,IAAK,IAAIlB,EAAI,EAAGA,EAAIkB,EAAMJ,OAAQd,IAC9BuC,EAAQD,GAAGtC,GAAKkB,EAAMlB,GAE1BuC,EAAQD,GAAGE,GAAKtB,EAAMsB,GAU1B,IAPA,IAAIK,EAAY,SAASrD,EAAGC,GAAK,OAAOD,EAAEgD,GAAK/C,EAAE+C,IAE7CM,EAAWnB,EAAGgB,QACdI,EAAYpB,EAAGgB,QACfK,EAAarB,EAAGgB,QAChBM,EAAWtB,EAAGgB,QAETO,EAAY,EAAGA,EAAYvD,IAAiBuD,EAAW,CAG5D,GAFAX,EAAQY,KAAKN,GAETnD,EAAW0D,QAAS,CAGpB,IAAIC,EAAgBd,EAAQ5B,KAAI,SAAUL,GACtC,IAAIgD,EAAQhD,EAAEqC,QAGd,OAFAW,EAAMd,GAAKlC,EAAEkC,GACbc,EAAMb,GAAKnC,EAAEmC,GACNa,KAEXD,EAAcF,MAAK,SAAS3D,EAAEC,GAAK,OAAOD,EAAEiD,GAAKhD,EAAEgD,MAEnD/C,EAAW0D,QAAQG,KAAK,CAACjD,EAAGiC,EAAQ,GAAGI,QACdH,GAAID,EAAQ,GAAGC,GACfD,QAASc,IAItC,IADAzB,EAAU,EACL5B,EAAI,EAAGA,EAAIsC,IAAKtC,EACjB4B,EAAUzB,KAAKqD,IAAI5B,EAASzB,KAAKC,IAAImC,EAAQ,GAAGvC,GAAKuC,EAAQ,GAAGvC,KAGpE,GAAKG,KAAKC,IAAImC,EAAQ,GAAGC,GAAKD,EAAQD,GAAGE,IAAMT,GAC1CH,EAAUI,EACX,MAIJ,IAAKhC,EAAI,EAAGA,EAAIsC,IAAKtC,EAAG,CACpB8C,EAAS9C,GAAK,EACd,IAAK,IAAIyB,EAAI,EAAGA,EAAIa,IAAKb,EACrBqB,EAAS9C,IAAMuC,EAAQd,GAAGzB,GAE9B8C,EAAS9C,IAAMsC,EAKnB,IAAImB,EAAQlB,EAAQD,GAKpB,GAJAlB,EAAY2B,EAAW,EAAEd,EAAKa,GAAWb,EAAKwB,GAC9CV,EAAUP,GAAKjD,EAAEwD,GAGbA,EAAUP,GAAKD,EAAQ,GAAGC,GAC1BpB,EAAY6B,EAAU,EAAEd,EAAKW,GAAWX,EAAKsB,GAC7CR,EAAST,GAAKjD,EAAE0D,GACZA,EAAST,GAAKO,EAAUP,GACxBI,EAAcK,GAEdL,EAAcG,QAMjB,GAAIA,EAAUP,IAAMD,EAAQD,EAAE,GAAGE,GAAI,CACtC,IAAIkB,GAAe,EAsBnB,GApBIX,EAAUP,GAAKiB,EAAMjB,IAErBpB,EAAY4B,EAAY,EAAEZ,EAAKU,GAAWV,EAAKqB,GAC/CT,EAAWR,GAAKjD,EAAEyD,GACdA,EAAWR,GAAKiB,EAAMjB,GACtBI,EAAcI,GAEdU,GAAe,IAInBtC,EAAY4B,EAAY,EAAEZ,EAAMH,EAAKa,EAAUV,EAAIH,EAAKwB,GACxDT,EAAWR,GAAKjD,EAAEyD,GACdA,EAAWR,GAAKO,EAAUP,GAC1BI,EAAcI,GAEdU,GAAe,GAInBA,EAAc,CAEd,GAAIrB,GAAS,EAAG,MAGhB,IAAKrC,EAAI,EAAGA,EAAIuC,EAAQzB,SAAUd,EAC9BoB,EAAYmB,EAAQvC,GAAI,EAAIqC,EAAOE,EAAQ,GAAIF,EAAOE,EAAQvC,IAC9DuC,EAAQvC,GAAGwC,GAAKjD,EAAEgD,EAAQvC,UAIlC4C,EAAcG,GAKtB,OADAR,EAAQY,KAAKN,GACN,CAACL,GAAKD,EAAQ,GAAGC,GAChBlC,EAAIiC,EAAQ,IAUxB,SAASoB,EAAgBpE,EAAGqE,EAAIC,EAASC,EAAMtE,EAAGuE,EAAIC,GAClD,IAAIC,EAAOJ,EAAQrB,GAAI0B,EAAYtD,EAAIiD,EAAQM,QAASP,GACpDQ,EAAMH,EAAMI,EAAUJ,EACtBK,EAAWJ,EACXK,EAAK,EAMT,SAASC,EAAKC,EAAMC,EAAQC,GACxB,IAAK,IAAIzB,EAAY,EAAGA,EAAY,KAAMA,EAMtC,GALA1D,GAAKiF,EAAOC,GAAQ,EACpBtD,EAAY0C,EAAKxD,EAAG,EAAKuD,EAAQvD,EAAGd,EAAGoE,GACvCQ,EAAMN,EAAKtB,GAAKjD,EAAEuE,EAAKxD,EAAGwD,EAAKK,SAC/BG,EAAW1D,EAAIkD,EAAKK,QAASP,GAExBQ,EAAOH,EAAOF,EAAKvE,EAAI0E,GACvBE,GAAOO,EACRD,EAASlF,MAEL,CACJ,GAAIW,KAAKC,IAAIkE,KAAcN,EAAKE,EAC5B,OAAO1E,EAGP8E,GAAYI,EAASD,IAAQ,IAC7BC,EAASD,GAGbA,EAAOjF,EACPmF,EAASP,EAIjB,OAAO,EA7BX5E,EAAIA,GAAK,EACTuE,EAAKA,GAAM,KACXC,EAAKA,GAAM,GA8BX,IAAK,IAAId,EAAY,EAAGA,EAAY,KAAMA,EAAW,CAIjD,GAHA9B,EAAY0C,EAAKxD,EAAG,EAAKuD,EAAQvD,EAAGd,EAAGoE,GACvCQ,EAAMN,EAAKtB,GAAKjD,EAAEuE,EAAKxD,EAAGwD,EAAKK,SAC/BG,EAAW1D,EAAIkD,EAAKK,QAASP,GACxBQ,EAAOH,EAAOF,EAAKvE,EAAI0E,GACvBhB,GAAckB,GAAOC,EACtB,OAAOG,EAAKD,EAAI/E,EAAG6E,GAGvB,GAAIlE,KAAKC,IAAIkE,KAAcN,EAAKE,EAC5B,OAAO1E,EAGX,GAAI8E,GAAY,EACZ,OAAOE,EAAKhF,EAAG+E,EAAIH,GAGvBC,EAAUD,EACVG,EAAK/E,EACLA,GAAK,EAGT,OAAOA,EAGX,SAASoF,EAAkBrF,EAAGsF,EAASC,GAGnC,IAGIlB,EAAImB,EAEJpF,EALAkE,EAAU,CAACvD,EAAGuE,EAAQlC,QAASH,GAAI,EAAG2B,QAASU,EAAQlC,SACvDmB,EAAO,CAACxD,EAAGuE,EAAQlC,QAASH,GAAI,EAAG2B,QAASU,EAAQlC,SACpDqC,EAAKH,EAAQlC,QAEbnD,EAAI,EAIRG,GADAmF,EAASA,GAAU,IACInF,eAAkC,GAAjBkF,EAAQ/D,OAEhD+C,EAAQrB,GAAKjD,EAAEsE,EAAQvD,EAAGuD,EAAQM,SAElClD,EADA2C,EAAKC,EAAQM,QAAQxB,QACXkB,EAAQM,SAAS,GAE3B,IAAK,IAAInE,EAAI,EAAGA,EAAIL,IAAiBK,EAAG,CAWpC,GAVAR,EAAImE,EAAgBpE,EAAGqE,EAAIC,EAASC,EAAMtE,GAGtCsF,EAAO1B,SACP0B,EAAO1B,QAAQG,KAAK,CAACjD,EAAGuD,EAAQvD,EAAEqC,QACbH,GAAIqB,EAAQrB,GACZ2B,QAASN,EAAQM,QAAQxB,QACzBsC,MAAOzF,IAG3BA,EAKE,CAEH4B,EAAY4D,EAAI,EAAGlB,EAAKK,SAAU,EAAGN,EAAQM,SAE7C,IAAIe,EAAUtE,EAAIiD,EAAQM,QAASN,EAAQM,SAG3C/C,EAAYwC,EAFCzD,KAAKqD,IAAI,EAAG5C,EAAIoE,EAAIlB,EAAKK,SAAWe,GAEzBtB,GAAK,EAAGE,EAAKK,SAErCY,EAAOlB,EACPA,EAAUC,EACVA,EAAOiB,OAbP9D,EAAM2C,EAAIC,EAAQM,SAAU,GAgBhC,GAAIpD,EAAM8C,EAAQM,UAAY,KAC1B,MAWR,OAPIW,EAAO1B,SACP0B,EAAO1B,QAAQG,KAAK,CAACjD,EAAGuD,EAAQvD,EAAEqC,QACbH,GAAIqB,EAAQrB,GACZ2B,QAASN,EAAQM,QAAQxB,QACzBsC,MAAOzF,IAGzBqE,EAGX,SAASsB,EAAgB5F,EAAGsF,EAASC,GAMjC,IAJA,IAAInF,GADJmF,EAASA,GAAU,IACQnF,eAAkC,IAAjBkF,EAAQ/D,OAChDsE,EAAYN,EAAOM,WAAa,KAChCvB,EAAU,CAACvD,EAAGuE,EAAQlC,QAASH,GAAI,EAAG2B,QAASU,EAAQlC,SAElD3C,EAAI,EAAGA,EAAIL,IAChBkE,EAAQrB,GAAKjD,EAAEsE,EAAQvD,EAAGuD,EAAQM,SAC9BW,EAAO1B,SACP0B,EAAO1B,QAAQG,KAAK,CAACjD,EAAGuD,EAAQvD,EAAEqC,QACbH,GAAIqB,EAAQrB,GACZ2B,QAASN,EAAQM,QAAQxB,UAGlDvB,EAAYyC,EAAQvD,EAAG,EAAGuD,EAAQvD,GAAI8E,EAAWvB,EAAQM,WACrDpD,EAAM8C,EAAQM,UAAY,SATGnE,GAcrC,OAAO6D,EAGX,SAASwB,EAA0B9F,EAAGsF,EAASC,GAC3CA,EAASA,GAAU,GACnB,IAOIC,EAPAlB,EAAU,CAACvD,EAAGuE,EAAQlC,QAASH,GAAI,EAAG2B,QAASU,EAAQlC,SACvDmB,EAAO,CAACxD,EAAGuE,EAAQlC,QAASH,GAAI,EAAG2B,QAASU,EAAQlC,SACpDhD,EAAgBmF,EAAOnF,eAAkC,IAAjBkF,EAAQ/D,OAChDsE,EAAYN,EAAOM,WAAa,EAChCxB,EAAKiB,EAAQlC,QACboB,EAAKe,EAAOf,IAAM,KAClBC,EAAKc,EAAOd,IAAM,GAElBsB,EAAgB,GAEpB,GAAIR,EAAO1B,QAAS,CAEhB,IAAImC,EAAQhG,EACZA,EAAI,SAASe,EAAG6D,GAEZ,OADAmB,EAAc/B,KAAKjD,EAAEqC,SACd4C,EAAMjF,EAAG6D,IAIxBN,EAAQrB,GAAKjD,EAAEsE,EAAQvD,EAAGuD,EAAQM,SAClC,IAAK,IAAInE,EAAI,EAAGA,EAAIL,IAChBsB,EAAM2C,EAAIC,EAAQM,SAAU,GAC5BiB,EAAYzB,EAAgBpE,EAAGqE,EAAIC,EAASC,EAAMsB,EAAWrB,EAAIC,GAE7Dc,EAAO1B,UACP0B,EAAO1B,QAAQG,KAAK,CAACjD,EAAGuD,EAAQvD,EAAEqC,QACbH,GAAIqB,EAAQrB,GACZ2B,QAASN,EAAQM,QAAQxB,QACzB2C,cAAeA,EACfF,UAAWA,EACXH,MAAOG,IAC5BE,EAAgB,IAIpBP,EAAOlB,EACPA,EAAUC,EACVA,EAAOiB,IAEY,IAAdK,GAAqBrE,EAAM8C,EAAQM,SAAW,SAnBlBnE,GAsBrC,OAAO6D,EAGXxE,EAAQC,OAASA,EACjBD,EAAQqC,WAAaA,EACrBrC,EAAQuF,kBAAoBA,EAC5BvF,EAAQ8F,gBAAkBA,EAC1B9F,EAAQgG,0BAA4BA,EACpChG,EAAQgB,MAAQA,EAChBhB,EAAQoB,OAASA,EACjBpB,EAAQ0B,MAAQA,EAChB1B,EAAQ+B,YAAcA,EACtB/B,EAAQ4B,MAAQA,EAra+CuE,CAAQnG,iCCO3E,IAAIoG,EAAwBC,OAAOD,sBAC/BE,EAAiBD,OAAOE,UAAUD,eAClCE,EAAmBH,OAAOE,UAAUE,qBAExC,SAASC,EAASC,GACjB,GAAY,OAARA,QAAwB9D,IAAR8D,EACnB,MAAM,IAAIC,UAAU,yDAGrB,OAAOP,OAAOM,GA+Cf5G,EAAOC,QA5CP,WACC,IACC,IAAKqG,OAAOQ,OACX,OAAO,EAMR,IAAIC,EAAQ,IAAIC,OAAO,OAEvB,GADAD,EAAM,GAAK,KACkC,MAAzCT,OAAOW,oBAAoBF,GAAO,GACrC,OAAO,EAKR,IADA,IAAIG,EAAQ,GACHtG,EAAI,EAAGA,EAAI,GAAIA,IACvBsG,EAAM,IAAMF,OAAOG,aAAavG,IAAMA,EAKvC,GAAwB,eAHX0F,OAAOW,oBAAoBC,GAAO3F,KAAI,SAAU6F,GAC5D,OAAOF,EAAME,MAEHC,KAAK,IACf,OAAO,EAIR,IAAIC,EAAQ,GAIZ,MAHA,uBAAuBC,MAAM,IAAIC,SAAQ,SAAUC,GAClDH,EAAMG,GAAUA,KAGf,yBADEnB,OAAOoB,KAAKpB,OAAOQ,OAAO,GAAIQ,IAAQD,KAAK,IAM9C,MAAOM,GAER,OAAO,GAIQC,GAAoBtB,OAAOQ,OAAS,SAAUe,EAAQC,GAKtE,IAJA,IAAIC,EAEAC,EADAC,EAAKtB,EAASkB,GAGTK,EAAI,EAAGA,EAAIC,UAAUzG,OAAQwG,IAAK,CAG1C,IAAK,IAAIE,KAFTL,EAAOzB,OAAO6B,UAAUD,IAGnB3B,EAAe8B,KAAKN,EAAMK,KAC7BH,EAAGG,GAAOL,EAAKK,IAIjB,GAAI/B,EAAuB,CAC1B2B,EAAU3B,EAAsB0B,GAChC,IAAK,IAAInH,EAAI,EAAGA,EAAIoH,EAAQtG,OAAQd,IAC/B6F,EAAiB4B,KAAKN,EAAMC,EAAQpH,MACvCqH,EAAGD,EAAQpH,IAAMmH,EAAKC,EAAQpH,MAMlC,OAAOqH,qCC7EK,IAAIK,EAAGC,EAAQ,KAASC,EAAED,EAAQ,KAAiBpH,EAAEoH,EAAQ,KAAa,SAASjH,EAAElB,GAAG,IAAI,IAAIC,EAAE,yDAAyDD,EAAE2B,EAAE,EAAEA,EAAEoG,UAAUzG,OAAOK,IAAI1B,GAAG,WAAWoI,mBAAmBN,UAAUpG,IAAI,MAAM,yBAAyB3B,EAAE,WAAWC,EAAE,iHAAiH,IAAIiI,EAAG,MAAMI,MAAMpH,EAAE,MAAM,IAAIqH,EAAG,IAAIC,IAAIC,EAAG,GAAG,SAASC,EAAG1I,EAAEC,GAAG0I,EAAG3I,EAAEC,GAAG0I,EAAG3I,EAAE,UAAUC,GAC3e,SAAS0I,EAAG3I,EAAEC,GAAW,IAARwI,EAAGzI,GAAGC,EAAMD,EAAE,EAAEA,EAAEC,EAAEqB,OAAOtB,IAAIuI,EAAGK,IAAI3I,EAAED,IACzD,IAAI6I,IAAK,qBAAqBC,QAAQ,qBAAqBA,OAAOC,UAAU,qBAAqBD,OAAOC,SAASC,eAAeC,EAAG,8VAA8VC,EAAGhD,OAAOE,UAAUD,eACrfgD,EAAG,GAAGC,EAAG,GAC+M,SAASC,EAAErJ,EAAEC,EAAE0B,EAAE2H,EAAEC,EAAExJ,EAAEyJ,GAAGC,KAAKC,gBAAgB,IAAIzJ,GAAG,IAAIA,GAAG,IAAIA,EAAEwJ,KAAKE,cAAcL,EAAEG,KAAKG,mBAAmBL,EAAEE,KAAKI,gBAAgBlI,EAAE8H,KAAKK,aAAa9J,EAAEyJ,KAAKM,KAAK9J,EAAEwJ,KAAKO,YAAYjK,EAAE0J,KAAKQ,kBAAkBT,EAAE,IAAIU,EAAE,GACnb,uIAAuI/C,MAAM,KAAKC,SAAQ,SAASpH,GAAGkK,EAAElK,GAAG,IAAIqJ,EAAErJ,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,MAAM,CAAC,CAAC,gBAAgB,kBAAkB,CAAC,YAAY,SAAS,CAAC,UAAU,OAAO,CAAC,YAAY,eAAeoH,SAAQ,SAASpH,GAAG,IAAIC,EAAED,EAAE,GAAGkK,EAAEjK,GAAG,IAAIoJ,EAAEpJ,EAAE,GAAE,EAAGD,EAAE,GAAG,MAAK,GAAG,MAAM,CAAC,kBAAkB,YAAY,aAAa,SAASoH,SAAQ,SAASpH,GAAGkK,EAAElK,GAAG,IAAIqJ,EAAErJ,EAAE,GAAE,EAAGA,EAAEmK,cAAc,MAAK,GAAG,MACve,CAAC,cAAc,4BAA4B,YAAY,iBAAiB/C,SAAQ,SAASpH,GAAGkK,EAAElK,GAAG,IAAIqJ,EAAErJ,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,MAAM,8OAA8OmH,MAAM,KAAKC,SAAQ,SAASpH,GAAGkK,EAAElK,GAAG,IAAIqJ,EAAErJ,EAAE,GAAE,EAAGA,EAAEmK,cAAc,MAAK,GAAG,MACrb,CAAC,UAAU,WAAW,QAAQ,YAAY/C,SAAQ,SAASpH,GAAGkK,EAAElK,GAAG,IAAIqJ,EAAErJ,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,MAAM,CAAC,UAAU,YAAYoH,SAAQ,SAASpH,GAAGkK,EAAElK,GAAG,IAAIqJ,EAAErJ,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,MAAM,CAAC,OAAO,OAAO,OAAO,QAAQoH,SAAQ,SAASpH,GAAGkK,EAAElK,GAAG,IAAIqJ,EAAErJ,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,MAAM,CAAC,UAAU,SAASoH,SAAQ,SAASpH,GAAGkK,EAAElK,GAAG,IAAIqJ,EAAErJ,EAAE,GAAE,EAAGA,EAAEmK,cAAc,MAAK,GAAG,MAAM,IAAIC,EAAG,gBAAgB,SAASC,EAAGrK,GAAG,OAAOA,EAAE,GAAGsK,cAI3Y,SAASC,EAAGvK,EAAEC,EAAE0B,EAAE2H,GAAG,IAAIC,EAAEW,EAAE/D,eAAelG,GAAGiK,EAAEjK,GAAG,MAAW,OAAOsJ,EAAE,IAAIA,EAAEQ,MAAKT,IAAO,EAAErJ,EAAEqB,SAAS,MAAMrB,EAAE,IAAI,MAAMA,EAAE,MAAI,MAAMA,EAAE,IAAI,MAAMA,EAAE,QAPnJ,SAAYD,EAAEC,EAAE0B,EAAE2H,GAAG,GAAG,OAAOrJ,GAAG,qBAAqBA,GADwE,SAAYD,EAAEC,EAAE0B,EAAE2H,GAAG,GAAG,OAAO3H,GAAG,IAAIA,EAAEoI,KAAK,OAAM,EAAG,cAAc9J,GAAG,IAAK,WAAW,IAAK,SAAS,OAAM,EAAG,IAAK,UAAU,OAAGqJ,IAAc,OAAO3H,GAASA,EAAE+H,gBAAmD,WAAnC1J,EAAEA,EAAEmK,cAAchH,MAAM,EAAE,KAAsB,UAAUnD,GAAE,QAAQ,OAAM,GAC/TwK,CAAGxK,EAAEC,EAAE0B,EAAE2H,GAAG,OAAM,EAAG,GAAGA,EAAE,OAAM,EAAG,GAAG,OAAO3H,EAAE,OAAOA,EAAEoI,MAAM,KAAK,EAAE,OAAO9J,EAAE,KAAK,EAAE,OAAM,IAAKA,EAAE,KAAK,EAAE,OAAOwK,MAAMxK,GAAG,KAAK,EAAE,OAAOwK,MAAMxK,IAAI,EAAEA,EAAE,OAAM,EAOrDyK,CAAGzK,EAAE0B,EAAE4H,EAAED,KAAK3H,EAAE,MAAM2H,GAAG,OAAOC,EARpL,SAAYvJ,GAAG,QAAGkJ,EAAGjB,KAAKmB,EAAGpJ,KAAekJ,EAAGjB,KAAKkB,EAAGnJ,KAAeiJ,EAAG0B,KAAK3K,GAAUoJ,EAAGpJ,IAAG,GAAGmJ,EAAGnJ,IAAG,GAAS,IAQsE4K,CAAG3K,KAAK,OAAO0B,EAAE3B,EAAE6K,gBAAgB5K,GAAGD,EAAE8K,aAAa7K,EAAE,GAAG0B,IAAI4H,EAAEM,gBAAgB7J,EAAEuJ,EAAEO,cAAc,OAAOnI,EAAE,IAAI4H,EAAEQ,MAAQ,GAAGpI,GAAG1B,EAAEsJ,EAAEI,cAAcL,EAAEC,EAAEK,mBAAmB,OAAOjI,EAAE3B,EAAE6K,gBAAgB5K,IAAa0B,EAAE,KAAX4H,EAAEA,EAAEQ,OAAc,IAAIR,IAAG,IAAK5H,EAAE,GAAG,GAAGA,EAAE2H,EAAEtJ,EAAE+K,eAAezB,EAAErJ,EAAE0B,GAAG3B,EAAE8K,aAAa7K,EAAE0B,MAH5d,0jCAA0jCwF,MAAM,KAAKC,SAAQ,SAASpH,GAAG,IAAIC,EAAED,EAAEgL,QAAQZ,EACzmCC,GAAIH,EAAEjK,GAAG,IAAIoJ,EAAEpJ,EAAE,GAAE,EAAGD,EAAE,MAAK,GAAG,MAAM,2EAA2EmH,MAAM,KAAKC,SAAQ,SAASpH,GAAG,IAAIC,EAAED,EAAEgL,QAAQZ,EAAGC,GAAIH,EAAEjK,GAAG,IAAIoJ,EAAEpJ,EAAE,GAAE,EAAGD,EAAE,gCAA+B,GAAG,MAAM,CAAC,WAAW,WAAW,aAAaoH,SAAQ,SAASpH,GAAG,IAAIC,EAAED,EAAEgL,QAAQZ,EAAGC,GAAIH,EAAEjK,GAAG,IAAIoJ,EAAEpJ,EAAE,GAAE,EAAGD,EAAE,wCAAuC,GAAG,MAAM,CAAC,WAAW,eAAeoH,SAAQ,SAASpH,GAAGkK,EAAElK,GAAG,IAAIqJ,EAAErJ,EAAE,GAAE,EAAGA,EAAEmK,cAAc,MAAK,GAAG,MAC/cD,EAAEe,UAAU,IAAI5B,EAAE,YAAY,GAAE,EAAG,aAAa,gCAA+B,GAAG,GAAI,CAAC,MAAM,OAAO,SAAS,cAAcjC,SAAQ,SAASpH,GAAGkK,EAAElK,GAAG,IAAIqJ,EAAErJ,EAAE,GAAE,EAAGA,EAAEmK,cAAc,MAAK,GAAG,MAEzL,IAAIe,EAAGhD,EAAGiD,mDAAmDC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAChN,GAAG,oBAAoBC,QAAQA,OAAOC,IAAI,CAAC,IAAIC,EAAEF,OAAOC,IAAIlB,EAAGmB,EAAE,iBAAiBlB,EAAGkB,EAAE,gBAAgBjB,EAAGiB,EAAE,kBAAkBhB,EAAGgB,EAAE,qBAAqBf,EAAGe,EAAE,kBAAkBd,EAAGc,EAAE,kBAAkBb,EAAGa,EAAE,iBAAiBZ,EAAGY,EAAE,qBAAqBX,EAAGW,EAAE,kBAAkBV,EAAGU,EAAE,uBAAuBT,EAAGS,EAAE,cAAcR,EAAGQ,EAAE,cAAcP,EAAGO,EAAE,eAAeA,EAAE,eAAeN,EAAGM,EAAE,mBAAmBL,EAAGK,EAAE,0BAA0BJ,EAAGI,EAAE,mBAAmBH,EAAGG,EAAE,uBACxc,IAAmLC,EAA/KC,EAAG,oBAAoBJ,QAAQA,OAAOK,SAAS,SAASC,EAAG3M,GAAG,OAAG,OAAOA,GAAG,kBAAkBA,EAAS,KAAwC,oBAAnCA,EAAEyM,GAAIzM,EAAEyM,IAAKzM,EAAE,eAA0CA,EAAE,KAAY,SAAS4M,EAAG5M,GAAG,QAAG,IAASwM,EAAG,IAAI,MAAMlE,QAAS,MAAM3G,GAAG,IAAI1B,EAAE0B,EAAEkL,MAAMC,OAAOC,MAAM,gBAAgBP,EAAGvM,GAAGA,EAAE,IAAI,GAAG,MAAM,KAAKuM,EAAGxM,EAAE,IAAIgN,GAAG,EACjU,SAASC,EAAGjN,EAAEC,GAAG,IAAID,GAAGgN,EAAG,MAAM,GAAGA,GAAG,EAAG,IAAIrL,EAAE2G,MAAM4E,kBAAkB5E,MAAM4E,uBAAkB,EAAO,IAAI,GAAGjN,EAAE,GAAGA,EAAE,WAAW,MAAMqI,SAAUpC,OAAOiH,eAAelN,EAAEmG,UAAU,QAAQ,CAACgH,IAAI,WAAW,MAAM9E,WAAY,kBAAkB+E,SAASA,QAAQC,UAAU,CAAC,IAAID,QAAQC,UAAUrN,EAAE,IAAI,MAAMsN,GAAG,IAAIjE,EAAEiE,EAAEF,QAAQC,UAAUtN,EAAE,GAAGC,OAAO,CAAC,IAAIA,EAAEgI,OAAO,MAAMsF,GAAGjE,EAAEiE,EAAEvN,EAAEiI,KAAKhI,EAAEmG,eAAe,CAAC,IAAI,MAAMkC,QAAS,MAAMiF,GAAGjE,EAAEiE,EAAEvN,KAAK,MAAMuN,GAAG,GAAGA,GAAGjE,GAAG,kBAAkBiE,EAAEV,MAAM,CAAC,IAAI,IAAItD,EAAEgE,EAAEV,MAAM1F,MAAM,MACnfpH,EAAEuJ,EAAEuD,MAAM1F,MAAM,MAAMqC,EAAED,EAAEjI,OAAO,EAAEkM,EAAEzN,EAAEuB,OAAO,EAAE,GAAGkI,GAAG,GAAGgE,GAAGjE,EAAEC,KAAKzJ,EAAEyN,IAAIA,IAAI,KAAK,GAAGhE,GAAG,GAAGgE,EAAEhE,IAAIgE,IAAI,GAAGjE,EAAEC,KAAKzJ,EAAEyN,GAAG,CAAC,GAAG,IAAIhE,GAAG,IAAIgE,EAAG,GAAG,GAAGhE,IAAQ,IAAJgE,GAASjE,EAAEC,KAAKzJ,EAAEyN,GAAG,MAAM,KAAKjE,EAAEC,GAAGwB,QAAQ,WAAW,cAAc,GAAGxB,GAAG,GAAGgE,GAAG,QAD3H,QAC2IR,GAAG,EAAG1E,MAAM4E,kBAAkBvL,EAAE,OAAO3B,EAAEA,EAAEA,EAAEyN,aAAazN,EAAE0N,KAAK,IAAId,EAAG5M,GAAG,GAC7T,SAAS2N,EAAG3N,GAAG,OAAOA,EAAE4N,KAAK,KAAK,EAAE,OAAOhB,EAAG5M,EAAE+J,MAAM,KAAK,GAAG,OAAO6C,EAAG,QAAQ,KAAK,GAAG,OAAOA,EAAG,YAAY,KAAK,GAAG,OAAOA,EAAG,gBAAgB,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO5M,EAAEiN,EAAGjN,EAAE+J,MAAK,GAAM,KAAK,GAAG,OAAO/J,EAAEiN,EAAGjN,EAAE+J,KAAK8D,QAAO,GAAM,KAAK,GAAG,OAAO7N,EAAEiN,EAAGjN,EAAE+J,KAAK+D,SAAQ,GAAM,KAAK,EAAE,OAAO9N,EAAEiN,EAAGjN,EAAE+J,MAAK,GAAM,QAAQ,MAAM,IAC9T,SAASgE,EAAG/N,GAAG,GAAG,MAAMA,EAAE,OAAO,KAAK,GAAG,oBAAoBA,EAAE,OAAOA,EAAEyN,aAAazN,EAAE0N,MAAM,KAAK,GAAG,kBAAkB1N,EAAE,OAAOA,EAAE,OAAOA,GAAG,KAAKsL,EAAG,MAAM,WAAW,KAAKD,EAAG,MAAM,SAAS,KAAKG,EAAG,MAAM,WAAW,KAAKD,EAAG,MAAM,aAAa,KAAKK,EAAG,MAAM,WAAW,KAAKC,EAAG,MAAM,eAAe,GAAG,kBAAkB7L,EAAE,OAAOA,EAAEgO,UAAU,KAAKtC,EAAG,OAAO1L,EAAEyN,aAAa,WAAW,YAAY,KAAKhC,EAAG,OAAOzL,EAAEiO,SAASR,aAAa,WAAW,YAAY,KAAK9B,EAAG,IAAI1L,EAAED,EAAE6N,OACnd,OAD0d5N,EAAEA,EAAEwN,aAAaxN,EAAEyN,MAAM,GAC5e1N,EAAEyN,cAAc,KAAKxN,EAAE,cAAcA,EAAE,IAAI,cAAc,KAAK6L,EAAG,OAAOiC,EAAG/N,EAAE+J,MAAM,KAAKiC,EAAG,OAAO+B,EAAG/N,EAAE8N,SAAS,KAAK/B,EAAG9L,EAAED,EAAEkO,SAASlO,EAAEA,EAAEmO,MAAM,IAAI,OAAOJ,EAAG/N,EAAEC,IAAI,MAAM0B,KAAK,OAAO,KAAK,SAASyM,EAAGpO,GAAG,cAAcA,GAAG,IAAK,UAAU,IAAK,SAAS,IAAK,SAAS,IAAK,SAAS,IAAK,YAAY,OAAOA,EAAE,QAAQ,MAAM,IAAI,SAASqO,EAAGrO,GAAG,IAAIC,EAAED,EAAE+J,KAAK,OAAO/J,EAAEA,EAAEsO,WAAW,UAAUtO,EAAEmK,gBAAgB,aAAalK,GAAG,UAAUA,GAE1Z,SAASsO,EAAGvO,GAAGA,EAAEwO,gBAAgBxO,EAAEwO,cADvD,SAAYxO,GAAG,IAAIC,EAAEoO,EAAGrO,GAAG,UAAU,QAAQ2B,EAAEuE,OAAOuI,yBAAyBzO,EAAE0O,YAAYtI,UAAUnG,GAAGqJ,EAAE,GAAGtJ,EAAEC,GAAG,IAAID,EAAEmG,eAAelG,IAAI,qBAAqB0B,GAAG,oBAAoBA,EAAEgN,KAAK,oBAAoBhN,EAAEyL,IAAI,CAAC,IAAI7D,EAAE5H,EAAEgN,IAAI5O,EAAE4B,EAAEyL,IAAiL,OAA7KlH,OAAOiH,eAAenN,EAAEC,EAAE,CAAC2O,cAAa,EAAGD,IAAI,WAAW,OAAOpF,EAAEtB,KAAKwB,OAAO2D,IAAI,SAASpN,GAAGsJ,EAAE,GAAGtJ,EAAED,EAAEkI,KAAKwB,KAAKzJ,MAAMkG,OAAOiH,eAAenN,EAAEC,EAAE,CAAC4O,WAAWlN,EAAEkN,aAAmB,CAACC,SAAS,WAAW,OAAOxF,GAAGyF,SAAS,SAAS/O,GAAGsJ,EAAE,GAAGtJ,GAAGgP,aAAa,WAAWhP,EAAEwO,cACxf,YAAYxO,EAAEC,MAAuDgP,CAAGjP,IAAI,SAASkP,EAAGlP,GAAG,IAAIA,EAAE,OAAM,EAAG,IAAIC,EAAED,EAAEwO,cAAc,IAAIvO,EAAE,OAAM,EAAG,IAAI0B,EAAE1B,EAAE6O,WAAexF,EAAE,GAAqD,OAAlDtJ,IAAIsJ,EAAE+E,EAAGrO,GAAGA,EAAEmP,QAAQ,OAAO,QAAQnP,EAAE0B,QAAO1B,EAAEsJ,KAAa3H,IAAG1B,EAAE8O,SAAS/O,IAAG,GAAO,SAASoP,EAAGpP,GAAwD,GAAG,qBAAxDA,EAAEA,IAAI,qBAAqB+I,SAASA,cAAS,IAAkC,OAAO,KAAK,IAAI,OAAO/I,EAAEqP,eAAerP,EAAEsP,KAAK,MAAMrP,GAAG,OAAOD,EAAEsP,MAC/Z,SAASC,EAAGvP,EAAEC,GAAG,IAAI0B,EAAE1B,EAAEkP,QAAQ,OAAO/G,EAAE,GAAGnI,EAAE,CAACuP,oBAAe,EAAOC,kBAAa,EAAO/N,WAAM,EAAOyN,QAAQ,MAAMxN,EAAEA,EAAE3B,EAAE0P,cAAcC,iBAAiB,SAASC,GAAG5P,EAAEC,GAAG,IAAI0B,EAAE,MAAM1B,EAAEwP,aAAa,GAAGxP,EAAEwP,aAAanG,EAAE,MAAMrJ,EAAEkP,QAAQlP,EAAEkP,QAAQlP,EAAEuP,eAAe7N,EAAEyM,EAAG,MAAMnO,EAAEyB,MAAMzB,EAAEyB,MAAMC,GAAG3B,EAAE0P,cAAc,CAACC,eAAerG,EAAEuG,aAAalO,EAAEmO,WAAW,aAAa7P,EAAE8J,MAAM,UAAU9J,EAAE8J,KAAK,MAAM9J,EAAEkP,QAAQ,MAAMlP,EAAEyB,OAAO,SAASqO,GAAG/P,EAAEC,GAAe,OAAZA,EAAEA,EAAEkP,UAAiB5E,EAAGvK,EAAE,UAAUC,GAAE,GAC3d,SAAS+P,GAAGhQ,EAAEC,GAAG8P,GAAG/P,EAAEC,GAAG,IAAI0B,EAAEyM,EAAGnO,EAAEyB,OAAO4H,EAAErJ,EAAE8J,KAAK,GAAG,MAAMpI,EAAK,WAAW2H,GAAM,IAAI3H,GAAG,KAAK3B,EAAE0B,OAAO1B,EAAE0B,OAAOC,KAAE3B,EAAE0B,MAAM,GAAGC,GAAO3B,EAAE0B,QAAQ,GAAGC,IAAI3B,EAAE0B,MAAM,GAAGC,QAAQ,GAAG,WAAW2H,GAAG,UAAUA,EAA8B,YAA3BtJ,EAAE6K,gBAAgB,SAAgB5K,EAAEkG,eAAe,SAAS8J,GAAGjQ,EAAEC,EAAE8J,KAAKpI,GAAG1B,EAAEkG,eAAe,iBAAiB8J,GAAGjQ,EAAEC,EAAE8J,KAAKqE,EAAGnO,EAAEwP,eAAe,MAAMxP,EAAEkP,SAAS,MAAMlP,EAAEuP,iBAAiBxP,EAAEwP,iBAAiBvP,EAAEuP,gBACnZ,SAASU,GAAGlQ,EAAEC,EAAE0B,GAAG,GAAG1B,EAAEkG,eAAe,UAAUlG,EAAEkG,eAAe,gBAAgB,CAAC,IAAImD,EAAErJ,EAAE8J,KAAK,KAAK,WAAWT,GAAG,UAAUA,QAAG,IAASrJ,EAAEyB,OAAO,OAAOzB,EAAEyB,OAAO,OAAOzB,EAAE,GAAGD,EAAE0P,cAAcG,aAAalO,GAAG1B,IAAID,EAAE0B,QAAQ1B,EAAE0B,MAAMzB,GAAGD,EAAEyP,aAAaxP,EAAW,MAAT0B,EAAE3B,EAAE0N,QAAc1N,EAAE0N,KAAK,IAAI1N,EAAEwP,iBAAiBxP,EAAE0P,cAAcC,eAAe,KAAKhO,IAAI3B,EAAE0N,KAAK/L,GACvV,SAASsO,GAAGjQ,EAAEC,EAAE0B,GAAM,WAAW1B,GAAGmP,EAAGpP,EAAEmQ,iBAAiBnQ,IAAE,MAAM2B,EAAE3B,EAAEyP,aAAa,GAAGzP,EAAE0P,cAAcG,aAAa7P,EAAEyP,eAAe,GAAG9N,IAAI3B,EAAEyP,aAAa,GAAG9N,IAAwF,SAASyO,GAAGpQ,EAAEC,GAA6D,OAA1DD,EAAEoI,EAAE,CAACiI,cAAS,GAAQpQ,IAAMA,EAAlI,SAAYD,GAAG,IAAIC,EAAE,GAAuD,OAApDiI,EAAGoI,SAASlJ,QAAQpH,GAAE,SAASA,GAAG,MAAMA,IAAIC,GAAGD,MAAYC,EAAiDsQ,CAAGtQ,EAAEoQ,aAAUrQ,EAAEqQ,SAASpQ,GAASD,EACvU,SAASwQ,GAAGxQ,EAAEC,EAAE0B,EAAE2H,GAAe,GAAZtJ,EAAEA,EAAEyQ,QAAWxQ,EAAE,CAACA,EAAE,GAAG,IAAI,IAAIsJ,EAAE,EAAEA,EAAE5H,EAAEL,OAAOiI,IAAItJ,EAAE,IAAI0B,EAAE4H,KAAI,EAAG,IAAI5H,EAAE,EAAEA,EAAE3B,EAAEsB,OAAOK,IAAI4H,EAAEtJ,EAAEkG,eAAe,IAAInG,EAAE2B,GAAGD,OAAO1B,EAAE2B,GAAG+O,WAAWnH,IAAIvJ,EAAE2B,GAAG+O,SAASnH,GAAGA,GAAGD,IAAItJ,EAAE2B,GAAGgP,iBAAgB,OAAQ,CAAmB,IAAlBhP,EAAE,GAAGyM,EAAGzM,GAAG1B,EAAE,KAASsJ,EAAE,EAAEA,EAAEvJ,EAAEsB,OAAOiI,IAAI,CAAC,GAAGvJ,EAAEuJ,GAAG7H,QAAQC,EAAiD,OAA9C3B,EAAEuJ,GAAGmH,UAAS,OAAGpH,IAAItJ,EAAEuJ,GAAGoH,iBAAgB,IAAW,OAAO1Q,GAAGD,EAAEuJ,GAAGqH,WAAW3Q,EAAED,EAAEuJ,IAAI,OAAOtJ,IAAIA,EAAEyQ,UAAS,IACpY,SAASG,GAAG7Q,EAAEC,GAAG,GAAG,MAAMA,EAAE6Q,wBAAwB,MAAMxI,MAAMpH,EAAE,KAAK,OAAOkH,EAAE,GAAGnI,EAAE,CAACyB,WAAM,EAAO+N,kBAAa,EAAOY,SAAS,GAAGrQ,EAAE0P,cAAcG,eAAe,SAASkB,GAAG/Q,EAAEC,GAAG,IAAI0B,EAAE1B,EAAEyB,MAAM,GAAG,MAAMC,EAAE,CAA+B,GAA9BA,EAAE1B,EAAEoQ,SAASpQ,EAAEA,EAAEwP,aAAgB,MAAM9N,EAAE,CAAC,GAAG,MAAM1B,EAAE,MAAMqI,MAAMpH,EAAE,KAAK,GAAGF,MAAMgQ,QAAQrP,GAAG,CAAC,KAAK,GAAGA,EAAEL,QAAQ,MAAMgH,MAAMpH,EAAE,KAAKS,EAAEA,EAAE,GAAG1B,EAAE0B,EAAE,MAAM1B,IAAIA,EAAE,IAAI0B,EAAE1B,EAAED,EAAE0P,cAAc,CAACG,aAAazB,EAAGzM,IAC/Y,SAASsP,GAAGjR,EAAEC,GAAG,IAAI0B,EAAEyM,EAAGnO,EAAEyB,OAAO4H,EAAE8E,EAAGnO,EAAEwP,cAAc,MAAM9N,KAAIA,EAAE,GAAGA,KAAM3B,EAAE0B,QAAQ1B,EAAE0B,MAAMC,GAAG,MAAM1B,EAAEwP,cAAczP,EAAEyP,eAAe9N,IAAI3B,EAAEyP,aAAa9N,IAAI,MAAM2H,IAAItJ,EAAEyP,aAAa,GAAGnG,GAAG,SAAS4H,GAAGlR,GAAG,IAAIC,EAAED,EAAEmR,YAAYlR,IAAID,EAAE0P,cAAcG,cAAc,KAAK5P,GAAG,OAAOA,IAAID,EAAE0B,MAAMzB,GAAG,IAAImR,GAAS,+BAATA,GAAwF,6BAC9X,SAASC,GAAGrR,GAAG,OAAOA,GAAG,IAAK,MAAM,MAAM,6BAA6B,IAAK,OAAO,MAAM,qCAAqC,QAAQ,MAAM,gCAAgC,SAASsR,GAAGtR,EAAEC,GAAG,OAAO,MAAMD,GAAG,iCAAiCA,EAAEqR,GAAGpR,GAAG,+BAA+BD,GAAG,kBAAkBC,EAAE,+BAA+BD,EAC3U,IAAIuR,GAAevR,GAAZwR,IAAYxR,GAAsJ,SAASA,EAAEC,GAAG,GAAGD,EAAEyR,eAAeL,IAAQ,cAAcpR,EAAEA,EAAE0R,UAAUzR,MAAM,CAA2F,KAA1FsR,GAAGA,IAAIxI,SAASC,cAAc,QAAU0I,UAAU,QAAQzR,EAAE0R,UAAUC,WAAW,SAAa3R,EAAEsR,GAAGM,WAAW7R,EAAE6R,YAAY7R,EAAE8R,YAAY9R,EAAE6R,YAAY,KAAK5R,EAAE4R,YAAY7R,EAAE+R,YAAY9R,EAAE4R,cAArZ,qBAAqBG,OAAOA,MAAMC,wBAAwB,SAAShS,EAAE0B,EAAE2H,EAAEC,GAAGyI,MAAMC,yBAAwB,WAAW,OAAOjS,GAAEC,EAAE0B,OAAU3B,IACtK,SAASkS,GAAGlS,EAAEC,GAAG,GAAGA,EAAE,CAAC,IAAI0B,EAAE3B,EAAE6R,WAAW,GAAGlQ,GAAGA,IAAI3B,EAAEmS,WAAW,IAAIxQ,EAAEyQ,SAAwB,YAAdzQ,EAAE0Q,UAAUpS,GAAUD,EAAEmR,YAAYlR,EACrH,IAAIqS,GAAG,CAACC,yBAAwB,EAAGC,mBAAkB,EAAGC,kBAAiB,EAAGC,kBAAiB,EAAGC,SAAQ,EAAGC,cAAa,EAAGC,iBAAgB,EAAGC,aAAY,EAAGC,SAAQ,EAAGC,MAAK,EAAGC,UAAS,EAAGC,cAAa,EAAGC,YAAW,EAAGC,cAAa,EAAGC,WAAU,EAAGC,UAAS,EAAGC,SAAQ,EAAGC,YAAW,EAAGC,aAAY,EAAGC,cAAa,EAAGC,YAAW,EAAGC,eAAc,EAAGC,gBAAe,EAAGC,iBAAgB,EAAGC,YAAW,EAAGC,WAAU,EAAGC,YAAW,EAAGC,SAAQ,EAAGC,OAAM,EAAGC,SAAQ,EAAGC,SAAQ,EAAGC,QAAO,EAAGC,QAAO,EAAGvP,MAAK,EAAGwP,aAAY,EAC1fC,cAAa,EAAGC,aAAY,EAAGC,iBAAgB,EAAGC,kBAAiB,EAAGC,kBAAiB,EAAGC,eAAc,EAAGC,aAAY,GAAIC,GAAG,CAAC,SAAS,KAAK,MAAM,KAA6H,SAASC,GAAGjV,EAAEC,EAAE0B,GAAG,OAAO,MAAM1B,GAAG,mBAAmBA,GAAG,KAAKA,EAAE,GAAG0B,GAAG,kBAAkB1B,GAAG,IAAIA,GAAGqS,GAAGnM,eAAenG,IAAIsS,GAAGtS,IAAI,GAAGC,GAAG6M,OAAO7M,EAAE,KAC9Z,SAASiV,GAAGlV,EAAEC,GAAa,IAAI,IAAI0B,KAAlB3B,EAAEA,EAAEmV,MAAmBlV,EAAE,GAAGA,EAAEkG,eAAexE,GAAG,CAAC,IAAI2H,EAAE,IAAI3H,EAAEyT,QAAQ,MAAM7L,EAAE0L,GAAGtT,EAAE1B,EAAE0B,GAAG2H,GAAG,UAAU3H,IAAIA,EAAE,YAAY2H,EAAEtJ,EAAEqV,YAAY1T,EAAE4H,GAAGvJ,EAAE2B,GAAG4H,GADTrD,OAAOoB,KAAKgL,IAAIlL,SAAQ,SAASpH,GAAGgV,GAAG5N,SAAQ,SAASnH,GAAGA,EAAEA,EAAED,EAAEsV,OAAO,GAAGhL,cAActK,EAAEuV,UAAU,GAAGjD,GAAGrS,GAAGqS,GAAGtS,SACrG,IAAIwV,GAAGpN,EAAE,CAACqN,UAAS,GAAI,CAACC,MAAK,EAAGC,MAAK,EAAGC,IAAG,EAAGC,KAAI,EAAGC,OAAM,EAAGC,IAAG,EAAGC,KAAI,EAAGC,OAAM,EAAGC,QAAO,EAAGC,MAAK,EAAGC,MAAK,EAAGC,OAAM,EAAG3O,QAAO,EAAG4O,OAAM,EAAGC,KAAI,IAClT,SAASC,GAAGxW,EAAEC,GAAG,GAAGA,EAAE,CAAC,GAAGuV,GAAGxV,KAAK,MAAMC,EAAEoQ,UAAU,MAAMpQ,EAAE6Q,yBAAyB,MAAMxI,MAAMpH,EAAE,IAAIlB,IAAI,GAAG,MAAMC,EAAE6Q,wBAAwB,CAAC,GAAG,MAAM7Q,EAAEoQ,SAAS,MAAM/H,MAAMpH,EAAE,KAAK,GAAK,kBAAkBjB,EAAE6Q,2BAAyB,WAAW7Q,EAAE6Q,yBAAyB,MAAMxI,MAAMpH,EAAE,KAAM,GAAG,MAAMjB,EAAEkV,OAAO,kBAAkBlV,EAAEkV,MAAM,MAAM7M,MAAMpH,EAAE,MAC5V,SAASuV,GAAGzW,EAAEC,GAAG,IAAI,IAAID,EAAEoV,QAAQ,KAAK,MAAM,kBAAkBnV,EAAEyW,GAAG,OAAO1W,GAAG,IAAK,iBAAiB,IAAK,gBAAgB,IAAK,YAAY,IAAK,gBAAgB,IAAK,gBAAgB,IAAK,mBAAmB,IAAK,iBAAiB,IAAK,gBAAgB,OAAM,EAAG,QAAQ,OAAM,GAAI,SAAS2W,GAAG3W,GAA6F,OAA1FA,EAAEA,EAAEyH,QAAQzH,EAAE4W,YAAY9N,QAAS+N,0BAA0B7W,EAAEA,EAAE6W,yBAAgC,IAAI7W,EAAEoS,SAASpS,EAAE8W,WAAW9W,EAAE,IAAI+W,GAAG,KAAKC,GAAG,KAAKC,GAAG,KACxb,SAASC,GAAGlX,GAAG,GAAGA,EAAEmX,GAAGnX,GAAG,CAAC,GAAG,oBAAoB+W,GAAG,MAAMzO,MAAMpH,EAAE,MAAM,IAAIjB,EAAED,EAAEoX,UAAUnX,IAAIA,EAAEoX,GAAGpX,GAAG8W,GAAG/W,EAAEoX,UAAUpX,EAAE+J,KAAK9J,KAAK,SAASqX,GAAGtX,GAAGgX,GAAGC,GAAGA,GAAGlT,KAAK/D,GAAGiX,GAAG,CAACjX,GAAGgX,GAAGhX,EAAE,SAASuX,KAAK,GAAGP,GAAG,CAAC,IAAIhX,EAAEgX,GAAG/W,EAAEgX,GAAoB,GAAjBA,GAAGD,GAAG,KAAKE,GAAGlX,GAAMC,EAAE,IAAID,EAAE,EAAEA,EAAEC,EAAEqB,OAAOtB,IAAIkX,GAAGjX,EAAED,KAAK,SAASwX,GAAGxX,EAAEC,GAAG,OAAOD,EAAEC,GAAG,SAASwX,GAAGzX,EAAEC,EAAE0B,EAAE2H,EAAEC,GAAG,OAAOvJ,EAAEC,EAAE0B,EAAE2H,EAAEC,GAAG,SAASmO,MAAM,IAAIC,GAAGH,GAAGI,IAAG,EAAGC,IAAG,EAAG,SAASC,KAAQ,OAAOd,IAAI,OAAOC,KAAGS,KAAKH,MAE9Z,SAASQ,GAAG/X,EAAEC,GAAG,IAAI0B,EAAE3B,EAAEoX,UAAU,GAAG,OAAOzV,EAAE,OAAO,KAAK,IAAI2H,EAAE+N,GAAG1V,GAAG,GAAG,OAAO2H,EAAE,OAAO,KAAK3H,EAAE2H,EAAErJ,GAAGD,EAAE,OAAOC,GAAG,IAAK,UAAU,IAAK,iBAAiB,IAAK,gBAAgB,IAAK,uBAAuB,IAAK,cAAc,IAAK,qBAAqB,IAAK,cAAc,IAAK,qBAAqB,IAAK,YAAY,IAAK,mBAAmB,IAAK,gBAAgBqJ,GAAGA,EAAEsH,YAAqBtH,IAAI,YAAbtJ,EAAEA,EAAE+J,OAAuB,UAAU/J,GAAG,WAAWA,GAAG,aAAaA,IAAIA,GAAGsJ,EAAE,MAAMtJ,EAAE,QAAQA,GAAE,EAAG,GAAGA,EAAE,OAAO,KAAK,GAAG2B,GAAG,oBACleA,EAAE,MAAM2G,MAAMpH,EAAE,IAAIjB,SAAS0B,IAAI,OAAOA,EAAE,IAAIqW,IAAG,EAAG,GAAGnP,EAAG,IAAI,IAAIoP,GAAG,GAAG/R,OAAOiH,eAAe8K,GAAG,UAAU,CAACtJ,IAAI,WAAWqJ,IAAG,KAAMlP,OAAOoP,iBAAiB,OAAOD,GAAGA,IAAInP,OAAOqP,oBAAoB,OAAOF,GAAGA,IAAI,MAAMjY,IAAGgY,IAAG,EAAG,SAASI,GAAGpY,EAAEC,EAAE0B,EAAE2H,EAAEC,EAAExJ,EAAEyJ,EAAEgE,EAAED,GAAG,IAAI8K,EAAErX,MAAMoF,UAAUjD,MAAM8E,KAAKF,UAAU,GAAG,IAAI9H,EAAEqY,MAAM3W,EAAE0W,GAAG,MAAMrR,GAAGyC,KAAK8O,QAAQvR,IAAI,IAAIwR,IAAG,EAAGC,GAAG,KAAKC,IAAG,EAAGC,GAAG,KAAKC,GAAG,CAACL,QAAQ,SAASvY,GAAGwY,IAAG,EAAGC,GAAGzY,IAAI,SAAS6Y,GAAG7Y,EAAEC,EAAE0B,EAAE2H,EAAEC,EAAExJ,EAAEyJ,EAAEgE,EAAED,GAAGiL,IAAG,EAAGC,GAAG,KAAKL,GAAGE,MAAMM,GAAG7Q,WACvV,SAAS+Q,GAAG9Y,GAAG,IAAIC,EAAED,EAAE2B,EAAE3B,EAAE,GAAGA,EAAE+Y,UAAU,KAAK9Y,EAAE+Y,QAAQ/Y,EAAEA,EAAE+Y,WAAW,CAAChZ,EAAEC,EAAE,GAAO,KAAa,MAAjBA,EAAED,GAASiZ,SAActX,EAAE1B,EAAE+Y,QAAQhZ,EAAEC,EAAE+Y,aAAahZ,GAAG,OAAO,IAAIC,EAAE2N,IAAIjM,EAAE,KAAK,SAASuX,GAAGlZ,GAAG,GAAG,KAAKA,EAAE4N,IAAI,CAAC,IAAI3N,EAAED,EAAEmZ,cAAsE,GAAxD,OAAOlZ,IAAkB,QAAdD,EAAEA,EAAE+Y,aAAqB9Y,EAAED,EAAEmZ,gBAAmB,OAAOlZ,EAAE,OAAOA,EAAEmZ,WAAW,OAAO,KAAK,SAASC,GAAGrZ,GAAG,GAAG8Y,GAAG9Y,KAAKA,EAAE,MAAMsI,MAAMpH,EAAE,MAEpS,SAASoY,GAAGtZ,GAAW,GAARA,EADtN,SAAYA,GAAG,IAAIC,EAAED,EAAE+Y,UAAU,IAAI9Y,EAAE,CAAS,GAAG,QAAXA,EAAE6Y,GAAG9Y,IAAe,MAAMsI,MAAMpH,EAAE,MAAM,OAAOjB,IAAID,EAAE,KAAKA,EAAE,IAAI,IAAI2B,EAAE3B,EAAEsJ,EAAErJ,IAAI,CAAC,IAAIsJ,EAAE5H,EAAEqX,OAAO,GAAG,OAAOzP,EAAE,MAAM,IAAIxJ,EAAEwJ,EAAEwP,UAAU,GAAG,OAAOhZ,EAAE,CAAY,GAAG,QAAduJ,EAAEC,EAAEyP,QAAmB,CAACrX,EAAE2H,EAAE,SAAS,MAAM,GAAGC,EAAEgQ,QAAQxZ,EAAEwZ,MAAM,CAAC,IAAIxZ,EAAEwJ,EAAEgQ,MAAMxZ,GAAG,CAAC,GAAGA,IAAI4B,EAAE,OAAO0X,GAAG9P,GAAGvJ,EAAE,GAAGD,IAAIuJ,EAAE,OAAO+P,GAAG9P,GAAGtJ,EAAEF,EAAEA,EAAEyZ,QAAQ,MAAMlR,MAAMpH,EAAE,MAAO,GAAGS,EAAEqX,SAAS1P,EAAE0P,OAAOrX,EAAE4H,EAAED,EAAEvJ,MAAM,CAAC,IAAI,IAAIyJ,GAAE,EAAGgE,EAAEjE,EAAEgQ,MAAM/L,GAAG,CAAC,GAAGA,IAAI7L,EAAE,CAAC6H,GAAE,EAAG7H,EAAE4H,EAAED,EAAEvJ,EAAE,MAAM,GAAGyN,IAAIlE,EAAE,CAACE,GAAE,EAAGF,EAAEC,EAAE5H,EAAE5B,EAAE,MAAMyN,EAAEA,EAAEgM,QAAQ,IAAIhQ,EAAE,CAAC,IAAIgE,EAAEzN,EAAEwZ,MAAM/L,GAAG,CAAC,GAAGA,IAC5f7L,EAAE,CAAC6H,GAAE,EAAG7H,EAAE5B,EAAEuJ,EAAEC,EAAE,MAAM,GAAGiE,IAAIlE,EAAE,CAACE,GAAE,EAAGF,EAAEvJ,EAAE4B,EAAE4H,EAAE,MAAMiE,EAAEA,EAAEgM,QAAQ,IAAIhQ,EAAE,MAAMlB,MAAMpH,EAAE,OAAQ,GAAGS,EAAEoX,YAAYzP,EAAE,MAAMhB,MAAMpH,EAAE,MAAO,GAAG,IAAIS,EAAEiM,IAAI,MAAMtF,MAAMpH,EAAE,MAAM,OAAOS,EAAEyV,UAAU/S,UAAU1C,EAAE3B,EAAEC,EAAmBwZ,CAAGzZ,IAAOA,EAAE,OAAO,KAAK,IAAI,IAAIC,EAAED,IAAI,CAAC,GAAG,IAAIC,EAAE2N,KAAK,IAAI3N,EAAE2N,IAAI,OAAO3N,EAAE,GAAGA,EAAEsZ,MAAMtZ,EAAEsZ,MAAMP,OAAO/Y,EAAEA,EAAEA,EAAEsZ,UAAU,CAAC,GAAGtZ,IAAID,EAAE,MAAM,MAAMC,EAAEuZ,SAAS,CAAC,IAAIvZ,EAAE+Y,QAAQ/Y,EAAE+Y,SAAShZ,EAAE,OAAO,KAAKC,EAAEA,EAAE+Y,OAAO/Y,EAAEuZ,QAAQR,OAAO/Y,EAAE+Y,OAAO/Y,EAAEA,EAAEuZ,SAAS,OAAO,KAC5c,SAASE,GAAG1Z,EAAEC,GAAG,IAAI,IAAI0B,EAAE3B,EAAE+Y,UAAU,OAAO9Y,GAAG,CAAC,GAAGA,IAAID,GAAGC,IAAI0B,EAAE,OAAM,EAAG1B,EAAEA,EAAE+Y,OAAO,OAAM,EAAG,IAAIW,GAAGC,GAAGC,GAAGC,GAAGC,IAAG,EAAGC,GAAG,GAAGC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,IAAIC,IAAIC,GAAG,IAAID,IAAIE,GAAG,GAAGC,GAAG,6PAA6PrT,MAAM,KACrb,SAASsT,GAAGza,EAAEC,EAAE0B,EAAE2H,EAAEC,GAAG,MAAM,CAACmR,UAAU1a,EAAE2a,aAAa1a,EAAE2a,iBAAmB,GAAFjZ,EAAKkZ,YAAYtR,EAAEuR,iBAAiB,CAACxR,IAAI,SAASyR,GAAG/a,EAAEC,GAAG,OAAOD,GAAG,IAAK,UAAU,IAAK,WAAWia,GAAG,KAAK,MAAM,IAAK,YAAY,IAAK,YAAYC,GAAG,KAAK,MAAM,IAAK,YAAY,IAAK,WAAWC,GAAG,KAAK,MAAM,IAAK,cAAc,IAAK,aAAaC,GAAGY,OAAO/a,EAAEgb,WAAW,MAAM,IAAK,oBAAoB,IAAK,qBAAqBX,GAAGU,OAAO/a,EAAEgb,YAC3Z,SAASC,GAAGlb,EAAEC,EAAE0B,EAAE2H,EAAEC,EAAExJ,GAAG,OAAG,OAAOC,GAAGA,EAAE6a,cAAc9a,GAASC,EAAEya,GAAGxa,EAAE0B,EAAE2H,EAAEC,EAAExJ,GAAG,OAAOE,IAAY,QAARA,EAAEkX,GAAGlX,KAAa2Z,GAAG3Z,IAAID,IAAEA,EAAE4a,kBAAkBtR,EAAErJ,EAAED,EAAE8a,iBAAiB,OAAOvR,IAAI,IAAItJ,EAAEmV,QAAQ7L,IAAItJ,EAAE8D,KAAKwF,GAAUvJ,GAE9M,SAASmb,GAAGnb,GAAG,IAAIC,EAAEmb,GAAGpb,EAAEyH,QAAQ,GAAG,OAAOxH,EAAE,CAAC,IAAI0B,EAAEmX,GAAG7Y,GAAG,GAAG,OAAO0B,EAAE,GAAW,MAAR1B,EAAE0B,EAAEiM,MAAY,GAAW,QAAR3N,EAAEiZ,GAAGvX,IAAmH,OAAtG3B,EAAE0a,UAAUza,OAAE6Z,GAAG9Z,EAAEqb,cAAa,WAAWta,EAAEua,yBAAyBtb,EAAEub,UAAS,WAAW1B,GAAGlY,cAAoB,GAAG,IAAI1B,GAAG0B,EAAEyV,UAAUoE,QAA8D,YAArDxb,EAAE0a,UAAU,IAAI/Y,EAAEiM,IAAIjM,EAAEyV,UAAUqE,cAAc,MAAazb,EAAE0a,UAAU,KAC1U,SAASgB,GAAG1b,GAAG,GAAG,OAAOA,EAAE0a,UAAU,OAAM,EAAG,IAAI,IAAIza,EAAED,EAAE8a,iBAAiB,EAAE7a,EAAEqB,QAAQ,CAAC,IAAIK,EAAEga,GAAG3b,EAAE2a,aAAa3a,EAAE4a,iBAAiB3a,EAAE,GAAGD,EAAE6a,aAAa,GAAG,OAAOlZ,EAAE,OAAe,QAAR1B,EAAEkX,GAAGxV,KAAaiY,GAAG3Z,GAAGD,EAAE0a,UAAU/Y,GAAE,EAAG1B,EAAE2b,QAAQ,OAAM,EAAG,SAASC,GAAG7b,EAAEC,EAAE0B,GAAG+Z,GAAG1b,IAAI2B,EAAEqZ,OAAO/a,GACzQ,SAAS6b,KAAK,IAAI/B,IAAG,EAAG,EAAEC,GAAG1Y,QAAQ,CAAC,IAAItB,EAAEga,GAAG,GAAG,GAAG,OAAOha,EAAE0a,UAAU,CAAmB,QAAlB1a,EAAEmX,GAAGnX,EAAE0a,aAAqBf,GAAG3Z,GAAG,MAAM,IAAI,IAAIC,EAAED,EAAE8a,iBAAiB,EAAE7a,EAAEqB,QAAQ,CAAC,IAAIK,EAAEga,GAAG3b,EAAE2a,aAAa3a,EAAE4a,iBAAiB3a,EAAE,GAAGD,EAAE6a,aAAa,GAAG,OAAOlZ,EAAE,CAAC3B,EAAE0a,UAAU/Y,EAAE,MAAM1B,EAAE2b,QAAQ,OAAO5b,EAAE0a,WAAWV,GAAG4B,QAAQ,OAAO3B,IAAIyB,GAAGzB,MAAMA,GAAG,MAAM,OAAOC,IAAIwB,GAAGxB,MAAMA,GAAG,MAAM,OAAOC,IAAIuB,GAAGvB,MAAMA,GAAG,MAAMC,GAAGhT,QAAQyU,IAAIvB,GAAGlT,QAAQyU,IACrZ,SAASE,GAAG/b,EAAEC,GAAGD,EAAE0a,YAAYza,IAAID,EAAE0a,UAAU,KAAKX,KAAKA,IAAG,EAAGhZ,EAAEib,0BAA0Bjb,EAAEkb,wBAAwBH,MACrH,SAASI,GAAGlc,GAAG,SAASC,EAAEA,GAAG,OAAO8b,GAAG9b,EAAED,GAAG,GAAG,EAAEga,GAAG1Y,OAAO,CAACya,GAAG/B,GAAG,GAAGha,GAAG,IAAI,IAAI2B,EAAE,EAAEA,EAAEqY,GAAG1Y,OAAOK,IAAI,CAAC,IAAI2H,EAAE0Q,GAAGrY,GAAG2H,EAAEoR,YAAY1a,IAAIsJ,EAAEoR,UAAU,OAA+F,IAAxF,OAAOT,IAAI8B,GAAG9B,GAAGja,GAAG,OAAOka,IAAI6B,GAAG7B,GAAGla,GAAG,OAAOma,IAAI4B,GAAG5B,GAAGna,GAAGoa,GAAGhT,QAAQnH,GAAGqa,GAAGlT,QAAQnH,GAAO0B,EAAE,EAAEA,EAAE4Y,GAAGjZ,OAAOK,KAAI2H,EAAEiR,GAAG5Y,IAAK+Y,YAAY1a,IAAIsJ,EAAEoR,UAAU,MAAM,KAAK,EAAEH,GAAGjZ,QAAiB,QAARK,EAAE4Y,GAAG,IAAYG,WAAYS,GAAGxZ,GAAG,OAAOA,EAAE+Y,WAAWH,GAAGqB,QAC/X,SAASO,GAAGnc,EAAEC,GAAG,IAAI0B,EAAE,GAAkF,OAA/EA,EAAE3B,EAAEmK,eAAelK,EAAEkK,cAAcxI,EAAE,SAAS3B,GAAG,SAASC,EAAE0B,EAAE,MAAM3B,GAAG,MAAMC,EAAS0B,EAAE,IAAIya,GAAG,CAACC,aAAaF,GAAG,YAAY,gBAAgBG,mBAAmBH,GAAG,YAAY,sBAAsBI,eAAeJ,GAAG,YAAY,kBAAkBK,cAAcL,GAAG,aAAa,kBAAkBM,GAAG,GAAGC,GAAG,GACnF,SAASC,GAAG3c,GAAG,GAAGyc,GAAGzc,GAAG,OAAOyc,GAAGzc,GAAG,IAAIoc,GAAGpc,GAAG,OAAOA,EAAE,IAAY2B,EAAR1B,EAAEmc,GAAGpc,GAAK,IAAI2B,KAAK1B,EAAE,GAAGA,EAAEkG,eAAexE,IAAIA,KAAK+a,GAAG,OAAOD,GAAGzc,GAAGC,EAAE0B,GAAG,OAAO3B,EAA9X6I,IAAK6T,GAAG3T,SAASC,cAAc,OAAOmM,MAAM,mBAAmBrM,gBAAgBsT,GAAGC,aAAaO,iBAAiBR,GAAGE,mBAAmBM,iBAAiBR,GAAGG,eAAeK,WAAW,oBAAoB9T,eAAesT,GAAGI,cAAcK,YACxO,IAAIC,GAAGH,GAAG,gBAAgBI,GAAGJ,GAAG,sBAAsBK,GAAGL,GAAG,kBAAkBM,GAAGN,GAAG,iBAAiBO,GAAG,IAAI7C,IAAI8C,GAAG,IAAI9C,IAAI+C,GAAG,CAAC,QAAQ,QAAQN,GAAG,eAAeC,GAAG,qBAAqBC,GAAG,iBAAiB,UAAU,UAAU,iBAAiB,iBAAiB,iBAAiB,iBAAiB,UAAU,UAAU,YAAY,YAAY,QAAQ,QAAQ,QAAQ,QAAQ,oBAAoB,oBAAoB,OAAO,OAAO,aAAa,aAAa,iBAAiB,iBAAiB,YAAY,YAC/e,qBAAqB,qBAAqB,UAAU,UAAU,WAAW,WAAW,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,aAAa,aAAaC,GAAG,gBAAgB,UAAU,WAAW,SAASI,GAAGrd,EAAEC,GAAG,IAAI,IAAI0B,EAAE,EAAEA,EAAE3B,EAAEsB,OAAOK,GAAG,EAAE,CAAC,IAAI2H,EAAEtJ,EAAE2B,GAAG4H,EAAEvJ,EAAE2B,EAAE,GAAG4H,EAAE,MAAMA,EAAE,GAAGe,cAAcf,EAAEpG,MAAM,IAAIga,GAAG/P,IAAI9D,EAAErJ,GAAGid,GAAG9P,IAAI9D,EAAEC,GAAGb,EAAGa,EAAE,CAACD,MAA2BgU,EAAfvc,EAAEwc,gBAAkB,IAAIC,GAAE,EAC/X,SAASC,GAAGzd,GAAG,GAAG,KAAK,EAAEA,GAAG,OAAOwd,GAAE,GAAG,EAAE,GAAG,KAAK,EAAExd,GAAG,OAAOwd,GAAE,GAAG,EAAE,GAAG,KAAK,EAAExd,GAAG,OAAOwd,GAAE,GAAG,EAAE,IAAIvd,EAAE,GAAGD,EAAE,OAAG,IAAIC,GAASud,GAAE,GAAGvd,GAAK,KAAO,GAAFD,IAAawd,GAAE,GAAG,IAAc,KAAXvd,EAAE,IAAID,IAAkBwd,GAAE,GAAGvd,GAAK,KAAO,IAAFD,IAAcwd,GAAE,EAAE,KAAgB,KAAZvd,EAAE,KAAKD,IAAkBwd,GAAE,EAAEvd,GAAK,KAAO,KAAFD,IAAewd,GAAE,EAAE,MAAoB,KAAfvd,EAAE,QAAQD,IAAkBwd,GAAE,EAAEvd,GAAkB,KAAhBA,EAAE,SAASD,IAAkBwd,GAAE,EAAEvd,GAAO,SAAFD,GAAkBwd,GAAE,EAAE,UAAY,KAAO,UAAFxd,IAAoBwd,GAAE,EAAE,WAA2B,KAAjBvd,EAAE,UAAUD,IAAkBwd,GAAE,EAAEvd,GAAK,KAAK,WAAWD,IAAUwd,GAAE,EAAE,aACjfA,GAAE,EAASxd,GACX,SAAS0d,GAAG1d,EAAEC,GAAG,IAAI0B,EAAE3B,EAAE2d,aAAa,GAAG,IAAIhc,EAAE,OAAO6b,GAAE,EAAE,IAAIlU,EAAE,EAAEC,EAAE,EAAExJ,EAAEC,EAAE4d,aAAapU,EAAExJ,EAAE6d,eAAerQ,EAAExN,EAAE8d,YAAY,GAAG,IAAI/d,EAAEuJ,EAAEvJ,EAAEwJ,EAAEiU,GAAE,QAAQ,GAAiB,KAAdzd,EAAI,UAAF4B,GAAkB,CAAC,IAAI4L,EAAExN,GAAGyJ,EAAE,IAAI+D,GAAGjE,EAAEmU,GAAGlQ,GAAGhE,EAAEiU,IAAS,KAALhQ,GAAGzN,KAAUuJ,EAAEmU,GAAGjQ,GAAGjE,EAAEiU,SAAgB,KAAPzd,EAAE4B,GAAG6H,IAASF,EAAEmU,GAAG1d,GAAGwJ,EAAEiU,IAAG,IAAIhQ,IAAIlE,EAAEmU,GAAGjQ,GAAGjE,EAAEiU,IAAG,GAAG,IAAIlU,EAAE,OAAO,EAAqC,GAAxBA,EAAE3H,IAAI,GAAjB2H,EAAE,GAAGyU,GAAGzU,IAAa,EAAE,GAAGA,IAAI,GAAG,EAAK,IAAIrJ,GAAGA,IAAIqJ,GAAG,KAAKrJ,EAAEuJ,GAAG,CAAO,GAANiU,GAAGxd,GAAMsJ,GAAGiU,GAAE,OAAOvd,EAAEud,GAAEjU,EAAqB,GAAG,KAAtBtJ,EAAED,EAAEge,gBAAwB,IAAIhe,EAAEA,EAAEie,cAAche,GAAGqJ,EAAE,EAAErJ,GAAcsJ,EAAE,IAAb5H,EAAE,GAAGoc,GAAG9d,IAAUqJ,GAAGtJ,EAAE2B,GAAG1B,IAAIsJ,EAAE,OAAOD,EAC1e,SAAS4U,GAAGle,GAAgC,OAAO,KAApCA,GAAkB,WAAhBA,EAAE2d,cAAsC3d,EAAI,WAAFA,EAAa,WAAW,EAAE,SAASme,GAAGne,EAAEC,GAAG,OAAOD,GAAG,KAAK,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO,EAAE,KAAK,GAAG,OAAmB,KAAZA,EAAEoe,GAAG,IAAIne,IAASke,GAAG,GAAGle,GAAGD,EAAE,KAAK,GAAG,OAAoB,KAAbA,EAAEoe,GAAG,KAAKne,IAASke,GAAG,EAAEle,GAAGD,EAAE,KAAK,EAAE,OAAqB,KAAdA,EAAEoe,GAAG,MAAMne,MAA4B,KAAjBD,EAAEoe,GAAG,SAASne,MAAWD,EAAE,MAAMA,EAAE,KAAK,EAAE,OAA0B,KAAnBC,EAAEme,GAAG,WAAWne,MAAWA,EAAE,WAAWA,EAAE,MAAMqI,MAAMpH,EAAE,IAAIlB,IAAK,SAASoe,GAAGpe,GAAG,OAAOA,GAAGA,EAAE,SAASqe,GAAGre,GAAG,IAAI,IAAIC,EAAE,GAAG0B,EAAE,EAAE,GAAGA,EAAEA,IAAI1B,EAAE8D,KAAK/D,GAAG,OAAOC,EACrd,SAASqe,GAAGte,EAAEC,EAAE0B,GAAG3B,EAAE2d,cAAc1d,EAAE,IAAIqJ,EAAErJ,EAAE,EAAED,EAAE6d,gBAAgBvU,EAAEtJ,EAAE8d,aAAaxU,GAAEtJ,EAAEA,EAAEue,YAAWte,EAAE,GAAG8d,GAAG9d,IAAQ0B,EAAE,IAAIoc,GAAGpd,KAAK6d,MAAM7d,KAAK6d,MAAiC,SAAYxe,GAAG,OAAO,IAAIA,EAAE,GAAG,IAAIye,GAAGze,GAAG0e,GAAG,GAAG,GAAvED,GAAG9d,KAAKge,IAAID,GAAG/d,KAAKie,IAAqD,IAAIC,GAAG9d,EAAE+d,8BAA8BC,GAAGhe,EAAEua,yBAAyB0D,IAAG,EAAG,SAASC,GAAGjf,EAAEC,EAAE0B,EAAE2H,GAAGsO,IAAIF,KAAK,IAAInO,EAAE2V,GAAGnf,EAAE6X,GAAGA,IAAG,EAAG,IAAIH,GAAGlO,EAAEvJ,EAAEC,EAAE0B,EAAE2H,GAAf,SAA2BsO,GAAG7X,IAAI+X,MAAM,SAAS7U,GAAGjD,EAAEC,EAAE0B,EAAE2H,GAAGyV,GAAGF,GAAGK,GAAGC,KAAK,KAAKnf,EAAEC,EAAE0B,EAAE2H,IACjb,SAAS4V,GAAGlf,EAAEC,EAAE0B,EAAE2H,GAAU,IAAIC,EAAX,GAAGyV,GAAU,IAAIzV,EAAE,KAAO,EAAFtJ,KAAO,EAAE+Z,GAAG1Y,SAAS,EAAEkZ,GAAGpF,QAAQpV,GAAGA,EAAEya,GAAG,KAAKza,EAAEC,EAAE0B,EAAE2H,GAAG0Q,GAAGjW,KAAK/D,OAAO,CAAC,IAAID,EAAE4b,GAAG3b,EAAEC,EAAE0B,EAAE2H,GAAG,GAAG,OAAOvJ,EAAEwJ,GAAGwR,GAAG/a,EAAEsJ,OAAO,CAAC,GAAGC,EAAE,CAAC,IAAI,EAAEiR,GAAGpF,QAAQpV,GAA+B,OAA3BA,EAAEya,GAAG1a,EAAEC,EAAEC,EAAE0B,EAAE2H,QAAG0Q,GAAGjW,KAAK/D,GAAU,GAfhO,SAAYA,EAAEC,EAAE0B,EAAE2H,EAAEC,GAAG,OAAOtJ,GAAG,IAAK,UAAU,OAAOga,GAAGiB,GAAGjB,GAAGja,EAAEC,EAAE0B,EAAE2H,EAAEC,IAAG,EAAG,IAAK,YAAY,OAAO2Q,GAAGgB,GAAGhB,GAAGla,EAAEC,EAAE0B,EAAE2H,EAAEC,IAAG,EAAG,IAAK,YAAY,OAAO4Q,GAAGe,GAAGf,GAAGna,EAAEC,EAAE0B,EAAE2H,EAAEC,IAAG,EAAG,IAAK,cAAc,IAAIxJ,EAAEwJ,EAAE0R,UAAkD,OAAxCb,GAAGhN,IAAIrN,EAAEmb,GAAGd,GAAGzL,IAAI5O,IAAI,KAAKC,EAAEC,EAAE0B,EAAE2H,EAAEC,KAAU,EAAG,IAAK,oBAAoB,OAAOxJ,EAAEwJ,EAAE0R,UAAUX,GAAGlN,IAAIrN,EAAEmb,GAAGZ,GAAG3L,IAAI5O,IAAI,KAAKC,EAAEC,EAAE0B,EAAE2H,EAAEC,KAAI,EAAG,OAAM,EAe9H6V,CAAGrf,EAAEC,EAAEC,EAAE0B,EAAE2H,GAAG,OAAOyR,GAAG/a,EAAEsJ,GAAG+V,GAAGrf,EAAEC,EAAEqJ,EAAE,KAAK3H,KAC9Q,SAASga,GAAG3b,EAAEC,EAAE0B,EAAE2H,GAAG,IAAIC,EAAEoN,GAAGrN,GAAW,GAAG,QAAXC,EAAE6R,GAAG7R,IAAe,CAAC,IAAIxJ,EAAE+Y,GAAGvP,GAAG,GAAG,OAAOxJ,EAAEwJ,EAAE,SAAS,CAAC,IAAIC,EAAEzJ,EAAE6N,IAAI,GAAG,KAAKpE,EAAE,CAAS,GAAG,QAAXD,EAAE2P,GAAGnZ,IAAe,OAAOwJ,EAAEA,EAAE,UAAU,GAAG,IAAIC,EAAE,CAAC,GAAGzJ,EAAEqX,UAAUoE,QAAQ,OAAO,IAAIzb,EAAE6N,IAAI7N,EAAEqX,UAAUqE,cAAc,KAAKlS,EAAE,UAAUxJ,IAAIwJ,IAAIA,EAAE,OAAqB,OAAd8V,GAAGrf,EAAEC,EAAEqJ,EAAEC,EAAE5H,GAAU,KAAK,IAAI2d,GAAG,KAAKC,GAAG,KAAKC,GAAG,KACzT,SAASC,KAAK,GAAGD,GAAG,OAAOA,GAAG,IAAIxf,EAAkBsJ,EAAhBrJ,EAAEsf,GAAG5d,EAAE1B,EAAEqB,OAASiI,EAAE,UAAU+V,GAAGA,GAAG5d,MAAM4d,GAAGnO,YAAYpR,EAAEwJ,EAAEjI,OAAO,IAAItB,EAAE,EAAEA,EAAE2B,GAAG1B,EAAED,KAAKuJ,EAAEvJ,GAAGA,KAAK,IAAIwJ,EAAE7H,EAAE3B,EAAE,IAAIsJ,EAAE,EAAEA,GAAGE,GAAGvJ,EAAE0B,EAAE2H,KAAKC,EAAExJ,EAAEuJ,GAAGA,KAAK,OAAOkW,GAAGjW,EAAEpG,MAAMnD,EAAE,EAAEsJ,EAAE,EAAEA,OAAE,GAAQ,SAASoW,GAAG1f,GAAG,IAAIC,EAAED,EAAE2f,QAA+E,MAAvE,aAAa3f,EAAgB,KAAbA,EAAEA,EAAE4f,WAAgB,KAAK3f,IAAID,EAAE,IAAKA,EAAEC,EAAE,KAAKD,IAAIA,EAAE,IAAW,IAAIA,GAAG,KAAKA,EAAEA,EAAE,EAAE,SAAS6f,KAAK,OAAM,EAAG,SAASC,KAAK,OAAM,EACjY,SAASC,GAAG/f,GAAG,SAASC,EAAEA,EAAEqJ,EAAEC,EAAExJ,EAAEyJ,GAA6G,IAAI,IAAI7H,KAAlH8H,KAAKuW,WAAW/f,EAAEwJ,KAAKwW,YAAY1W,EAAEE,KAAKM,KAAKT,EAAEG,KAAKoR,YAAY9a,EAAE0J,KAAKhC,OAAO+B,EAAEC,KAAKyW,cAAc,KAAkBlgB,EAAEA,EAAEmG,eAAexE,KAAK1B,EAAED,EAAE2B,GAAG8H,KAAK9H,GAAG1B,EAAEA,EAAEF,GAAGA,EAAE4B,IAAgI,OAA5H8H,KAAK0W,oBAAoB,MAAMpgB,EAAEqgB,iBAAiBrgB,EAAEqgB,kBAAiB,IAAKrgB,EAAEsgB,aAAaR,GAAGC,GAAGrW,KAAK6W,qBAAqBR,GAAUrW,KAC1E,OAD+ErB,EAAEnI,EAAEmG,UAAU,CAACma,eAAe,WAAW9W,KAAK2W,kBAAiB,EAAG,IAAIpgB,EAAEyJ,KAAKoR,YAAY7a,IAAIA,EAAEugB,eAAevgB,EAAEugB,iBAAiB,mBAAmBvgB,EAAEqgB,cAC7ergB,EAAEqgB,aAAY,GAAI5W,KAAK0W,mBAAmBN,KAAKW,gBAAgB,WAAW,IAAIxgB,EAAEyJ,KAAKoR,YAAY7a,IAAIA,EAAEwgB,gBAAgBxgB,EAAEwgB,kBAAkB,mBAAmBxgB,EAAEygB,eAAezgB,EAAEygB,cAAa,GAAIhX,KAAK6W,qBAAqBT,KAAKa,QAAQ,aAAaC,aAAad,KAAY5f,EAChR,IAAoL2gB,GAAGC,GAAGC,GAAtLC,GAAG,CAACC,WAAW,EAAEC,QAAQ,EAAEC,WAAW,EAAEC,UAAU,SAASnhB,GAAG,OAAOA,EAAEmhB,WAAWC,KAAKC,OAAOjB,iBAAiB,EAAEkB,UAAU,GAAGC,GAAGxB,GAAGgB,IAAIS,GAAGpZ,EAAE,GAAG2Y,GAAG,CAACU,KAAK,EAAEC,OAAO,IAAIC,GAAG5B,GAAGyB,IAAaI,GAAGxZ,EAAE,GAAGoZ,GAAG,CAACK,QAAQ,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,iBAAiBC,GAAGC,OAAO,EAAEC,QAAQ,EAAEC,cAAc,SAAS3iB,GAAG,YAAO,IAASA,EAAE2iB,cAAc3iB,EAAE4iB,cAAc5iB,EAAE4W,WAAW5W,EAAE6iB,UAAU7iB,EAAE4iB,YAAY5iB,EAAE2iB,eAAeG,UAAU,SAAS9iB,GAAG,MAAG,cAC3eA,EAASA,EAAE8iB,WAAU9iB,IAAI8gB,KAAKA,IAAI,cAAc9gB,EAAE+J,MAAM6W,GAAG5gB,EAAE6hB,QAAQf,GAAGe,QAAQhB,GAAG7gB,EAAE8hB,QAAQhB,GAAGgB,SAASjB,GAAGD,GAAG,EAAEE,GAAG9gB,GAAU4gB,KAAImC,UAAU,SAAS/iB,GAAG,MAAM,cAAcA,EAAEA,EAAE+iB,UAAUlC,MAAMmC,GAAGjD,GAAG6B,IAAiCqB,GAAGlD,GAA7B3X,EAAE,GAAGwZ,GAAG,CAACsB,aAAa,KAA4CC,GAAGpD,GAA9B3X,EAAE,GAAGoZ,GAAG,CAACmB,cAAc,KAA0ES,GAAGrD,GAA5D3X,EAAE,GAAG2Y,GAAG,CAACsC,cAAc,EAAEC,YAAY,EAAEC,cAAc,KAAcC,GAAGpb,EAAE,GAAG2Y,GAAG,CAAC0C,cAAc,SAASzjB,GAAG,MAAM,kBAAkBA,EAAEA,EAAEyjB,cAAc3a,OAAO2a,iBAAiBC,GAAG3D,GAAGyD,IAAyBG,GAAG5D,GAArB3X,EAAE,GAAG2Y,GAAG,CAAC6C,KAAK,KAAcC,GAAG,CAACC,IAAI,SACxfC,SAAS,IAAIC,KAAK,YAAYC,GAAG,UAAUC,MAAM,aAAaC,KAAK,YAAYC,IAAI,SAASC,IAAI,KAAKC,KAAK,cAAcC,KAAK,cAAcC,OAAO,aAAaC,gBAAgB,gBAAgBC,GAAG,CAAC,EAAE,YAAY,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,UAAU,GAAG,aAAa,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KACtf,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,UAAU,IAAI,aAAa,IAAI,QAAQC,GAAG,CAACC,IAAI,SAASC,QAAQ,UAAUC,KAAK,UAAUC,MAAM,YAAY,SAASC,GAAGhlB,GAAG,IAAIC,EAAEwJ,KAAKoR,YAAY,OAAO5a,EAAEsiB,iBAAiBtiB,EAAEsiB,iBAAiBviB,MAAIA,EAAE2kB,GAAG3kB,OAAMC,EAAED,GAAM,SAASwiB,KAAK,OAAOwC,GAC9R,IAAIC,GAAG7c,EAAE,GAAGoZ,GAAG,CAACxZ,IAAI,SAAShI,GAAG,GAAGA,EAAEgI,IAAI,CAAC,IAAI/H,EAAE4jB,GAAG7jB,EAAEgI,MAAMhI,EAAEgI,IAAI,GAAG,iBAAiB/H,EAAE,OAAOA,EAAE,MAAM,aAAaD,EAAE+J,KAAc,MAAR/J,EAAE0f,GAAG1f,IAAU,QAAQ4G,OAAOG,aAAa/G,GAAI,YAAYA,EAAE+J,MAAM,UAAU/J,EAAE+J,KAAK2a,GAAG1kB,EAAE2f,UAAU,eAAe,IAAIuF,KAAK,EAAEC,SAAS,EAAEhD,QAAQ,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,EAAE8C,OAAO,EAAEC,OAAO,EAAE9C,iBAAiBC,GAAG5C,SAAS,SAAS5f,GAAG,MAAM,aAAaA,EAAE+J,KAAK2V,GAAG1f,GAAG,GAAG2f,QAAQ,SAAS3f,GAAG,MAAM,YAAYA,EAAE+J,MAAM,UAAU/J,EAAE+J,KAAK/J,EAAE2f,QAAQ,GAAG2F,MAAM,SAAStlB,GAAG,MAAM,aAC7eA,EAAE+J,KAAK2V,GAAG1f,GAAG,YAAYA,EAAE+J,MAAM,UAAU/J,EAAE+J,KAAK/J,EAAE2f,QAAQ,KAAK4F,GAAGxF,GAAGkF,IAAiIO,GAAGzF,GAA7H3X,EAAE,GAAGwZ,GAAG,CAAC3G,UAAU,EAAEwK,MAAM,EAAEC,OAAO,EAAEC,SAAS,EAAEC,mBAAmB,EAAEC,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAEC,YAAY,EAAEC,UAAU,KAAmIC,GAAGnG,GAArH3X,EAAE,GAAGoZ,GAAG,CAAC2E,QAAQ,EAAEC,cAAc,EAAEC,eAAe,EAAEhE,OAAO,EAAEC,QAAQ,EAAEH,QAAQ,EAAEC,SAAS,EAAEG,iBAAiBC,MAA0E8D,GAAGvG,GAA3D3X,EAAE,GAAG2Y,GAAG,CAACjX,aAAa,EAAEwZ,YAAY,EAAEC,cAAc,KAAcgD,GAAGne,EAAE,GAAGwZ,GAAG,CAAC4E,OAAO,SAASxmB,GAAG,MAAM,WAAWA,EAAEA,EAAEwmB,OAAO,gBAAgBxmB,GAAGA,EAAEymB,YAAY,GAClfC,OAAO,SAAS1mB,GAAG,MAAM,WAAWA,EAAEA,EAAE0mB,OAAO,gBAAgB1mB,GAAGA,EAAE2mB,YAAY,eAAe3mB,GAAGA,EAAE4mB,WAAW,GAAGC,OAAO,EAAEC,UAAU,IAAIC,GAAGhH,GAAGwG,IAAIS,GAAG,CAAC,EAAE,GAAG,GAAG,IAAIC,GAAGpe,GAAI,qBAAqBC,OAAOoe,GAAG,KAAKre,GAAI,iBAAiBE,WAAWme,GAAGne,SAASoe,cAAc,IAAIC,GAAGve,GAAI,cAAcC,SAASoe,GAAGG,GAAGxe,KAAMoe,IAAIC,IAAI,EAAEA,IAAI,IAAIA,IAAII,GAAG1gB,OAAOG,aAAa,IAAIwgB,IAAG,EAC1W,SAASC,GAAGxnB,EAAEC,GAAG,OAAOD,GAAG,IAAK,QAAQ,OAAO,IAAIgnB,GAAG5R,QAAQnV,EAAE0f,SAAS,IAAK,UAAU,OAAO,MAAM1f,EAAE0f,QAAQ,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,OAAM,EAAG,QAAQ,OAAM,GAAI,SAAS8H,GAAGznB,GAAc,MAAM,kBAAjBA,EAAEA,EAAE0hB,SAAkC,SAAS1hB,EAAEA,EAAE4jB,KAAK,KAAK,IAAI8D,IAAG,EAE9Q,IAAIC,GAAG,CAACC,OAAM,EAAGC,MAAK,EAAGC,UAAS,EAAG,kBAAiB,EAAGC,OAAM,EAAGC,OAAM,EAAGC,QAAO,EAAGC,UAAS,EAAGC,OAAM,EAAGC,QAAO,EAAGC,KAAI,EAAGC,MAAK,EAAGC,MAAK,EAAGC,KAAI,EAAGC,MAAK,GAAI,SAASC,GAAG1oB,GAAG,IAAIC,EAAED,GAAGA,EAAEsO,UAAUtO,EAAEsO,SAASnE,cAAc,MAAM,UAAUlK,IAAI0nB,GAAG3nB,EAAE+J,MAAM,aAAa9J,EAAQ,SAAS0oB,GAAG3oB,EAAEC,EAAE0B,EAAE2H,GAAGgO,GAAGhO,GAAsB,GAAnBrJ,EAAE2oB,GAAG3oB,EAAE,aAAgBqB,SAASK,EAAE,IAAI4f,GAAG,WAAW,SAAS,KAAK5f,EAAE2H,GAAGtJ,EAAE+D,KAAK,CAAC8kB,MAAMlnB,EAAEmnB,UAAU7oB,KAAK,IAAI8oB,GAAG,KAAKC,GAAG,KAAK,SAASC,GAAGjpB,GAAGkpB,GAAGlpB,EAAE,GAAG,SAASmpB,GAAGnpB,GAAe,GAAGkP,EAATka,GAAGppB,IAAY,OAAOA,EACne,SAASqpB,GAAGrpB,EAAEC,GAAG,GAAG,WAAWD,EAAE,OAAOC,EAAE,IAAIqpB,IAAG,EAAG,GAAGzgB,EAAG,CAAC,IAAI0gB,GAAG,GAAG1gB,EAAG,CAAC,IAAI2gB,GAAG,YAAYzgB,SAAS,IAAIygB,GAAG,CAAC,IAAIC,GAAG1gB,SAASC,cAAc,OAAOygB,GAAG3e,aAAa,UAAU,WAAW0e,GAAG,oBAAoBC,GAAGC,QAAQH,GAAGC,QAAQD,IAAG,EAAGD,GAAGC,MAAMxgB,SAASoe,cAAc,EAAEpe,SAASoe,cAAc,SAASwC,KAAKZ,KAAKA,GAAGa,YAAY,mBAAmBC,IAAIb,GAAGD,GAAG,MAAM,SAASc,GAAG7pB,GAAG,GAAG,UAAUA,EAAE8J,cAAcqf,GAAGH,IAAI,CAAC,IAAI/oB,EAAE,GAAyB,GAAtB0oB,GAAG1oB,EAAE+oB,GAAGhpB,EAAE2W,GAAG3W,IAAIA,EAAEipB,GAAMrR,GAAG5X,EAAEC,OAAO,CAAC2X,IAAG,EAAG,IAAIJ,GAAGxX,EAAEC,GAAT,QAAoB2X,IAAG,EAAGE,QAC3e,SAASgS,GAAG9pB,EAAEC,EAAE0B,GAAG,YAAY3B,GAAG2pB,KAAUX,GAAGrnB,GAARonB,GAAG9oB,GAAU8pB,YAAY,mBAAmBF,KAAK,aAAa7pB,GAAG2pB,KAAK,SAASK,GAAGhqB,GAAG,GAAG,oBAAoBA,GAAG,UAAUA,GAAG,YAAYA,EAAE,OAAOmpB,GAAGH,IAAI,SAASiB,GAAGjqB,EAAEC,GAAG,GAAG,UAAUD,EAAE,OAAOmpB,GAAGlpB,GAAG,SAASiqB,GAAGlqB,EAAEC,GAAG,GAAG,UAAUD,GAAG,WAAWA,EAAE,OAAOmpB,GAAGlpB,GAAmE,IAAIkqB,GAAG,oBAAoBjkB,OAAOwQ,GAAGxQ,OAAOwQ,GAA5G,SAAY1W,EAAEC,GAAG,OAAOD,IAAIC,IAAI,IAAID,GAAG,EAAEA,IAAI,EAAEC,IAAID,IAAIA,GAAGC,IAAIA,GAAoDmqB,GAAGlkB,OAAOE,UAAUD,eAC7a,SAASkkB,GAAGrqB,EAAEC,GAAG,GAAGkqB,GAAGnqB,EAAEC,GAAG,OAAM,EAAG,GAAG,kBAAkBD,GAAG,OAAOA,GAAG,kBAAkBC,GAAG,OAAOA,EAAE,OAAM,EAAG,IAAI0B,EAAEuE,OAAOoB,KAAKtH,GAAGsJ,EAAEpD,OAAOoB,KAAKrH,GAAG,GAAG0B,EAAEL,SAASgI,EAAEhI,OAAO,OAAM,EAAG,IAAIgI,EAAE,EAAEA,EAAE3H,EAAEL,OAAOgI,IAAI,IAAI8gB,GAAGniB,KAAKhI,EAAE0B,EAAE2H,MAAM6gB,GAAGnqB,EAAE2B,EAAE2H,IAAIrJ,EAAE0B,EAAE2H,KAAK,OAAM,EAAG,OAAM,EAAG,SAASghB,GAAGtqB,GAAG,KAAKA,GAAGA,EAAE6R,YAAY7R,EAAEA,EAAE6R,WAAW,OAAO7R,EAClU,SAASuqB,GAAGvqB,EAAEC,GAAG,IAAwBqJ,EAApB3H,EAAE2oB,GAAGtqB,GAAO,IAAJA,EAAE,EAAY2B,GAAG,CAAC,GAAG,IAAIA,EAAEyQ,SAAS,CAA0B,GAAzB9I,EAAEtJ,EAAE2B,EAAEwP,YAAY7P,OAAUtB,GAAGC,GAAGqJ,GAAGrJ,EAAE,MAAM,CAACuqB,KAAK7oB,EAAE8oB,OAAOxqB,EAAED,GAAGA,EAAEsJ,EAAEtJ,EAAE,CAAC,KAAK2B,GAAG,CAAC,GAAGA,EAAE+oB,YAAY,CAAC/oB,EAAEA,EAAE+oB,YAAY,MAAM1qB,EAAE2B,EAAEA,EAAEmV,WAAWnV,OAAE,EAAOA,EAAE2oB,GAAG3oB,IAAI,SAASgpB,GAAG3qB,EAAEC,GAAG,SAAOD,IAAGC,KAAED,IAAIC,KAAKD,GAAG,IAAIA,EAAEoS,YAAYnS,GAAG,IAAIA,EAAEmS,SAASuY,GAAG3qB,EAAEC,EAAE6W,YAAY,aAAa9W,EAAEA,EAAE4qB,SAAS3qB,KAAGD,EAAE6qB,4BAAwD,GAA7B7qB,EAAE6qB,wBAAwB5qB,MAClZ,SAAS6qB,KAAK,IAAI,IAAI9qB,EAAE8I,OAAO7I,EAAEmP,IAAKnP,aAAaD,EAAE+qB,mBAAmB,CAAC,IAAI,IAAIppB,EAAE,kBAAkB1B,EAAE+qB,cAAc7F,SAAS8F,KAAK,MAAM3hB,GAAG3H,GAAE,EAAG,IAAGA,EAAyB,MAAM1B,EAAEmP,GAA/BpP,EAAEC,EAAE+qB,eAAgCjiB,UAAU,OAAO9I,EAAE,SAASirB,GAAGlrB,GAAG,IAAIC,EAAED,GAAGA,EAAEsO,UAAUtO,EAAEsO,SAASnE,cAAc,OAAOlK,IAAI,UAAUA,IAAI,SAASD,EAAE+J,MAAM,WAAW/J,EAAE+J,MAAM,QAAQ/J,EAAE+J,MAAM,QAAQ/J,EAAE+J,MAAM,aAAa/J,EAAE+J,OAAO,aAAa9J,GAAG,SAASD,EAAEmrB,iBACxZ,IAAIC,GAAGviB,GAAI,iBAAiBE,UAAU,IAAIA,SAASoe,aAAakE,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,IAAG,EAC3F,SAASC,GAAGzrB,EAAEC,EAAE0B,GAAG,IAAI2H,EAAE3H,EAAEmH,SAASnH,EAAEA,EAAEoH,SAAS,IAAIpH,EAAEyQ,SAASzQ,EAAEA,EAAEwO,cAAcqb,IAAI,MAAMH,IAAIA,KAAKjc,EAAG9F,KAAU,mBAALA,EAAE+hB,KAAyBH,GAAG5hB,GAAGA,EAAE,CAACoiB,MAAMpiB,EAAEqiB,eAAeC,IAAItiB,EAAEuiB,cAAuFviB,EAAE,CAACwiB,YAA3ExiB,GAAGA,EAAE6G,eAAe7G,EAAE6G,cAAc4b,aAAajjB,QAAQkjB,gBAA+BF,WAAWG,aAAa3iB,EAAE2iB,aAAaC,UAAU5iB,EAAE4iB,UAAUC,YAAY7iB,EAAE6iB,aAAcZ,IAAIlB,GAAGkB,GAAGjiB,KAAKiiB,GAAGjiB,EAAsB,GAApBA,EAAEsf,GAAG0C,GAAG,aAAgBhqB,SAASrB,EAAE,IAAIshB,GAAG,WAAW,SAAS,KAAKthB,EAAE0B,GAAG3B,EAAE+D,KAAK,CAAC8kB,MAAM5oB,EAAE6oB,UAAUxf,IAAIrJ,EAAEwH,OAAO4jB,MACjfhO,GAAG,mjBAAmjBlW,MAAM,KAC5jB,GAAGkW,GAAG,oRAAoRlW,MAAM,KAAK,GAAGkW,GAAGD,GAAG,GAAG,IAAI,IAAIgP,GAAG,qFAAqFjlB,MAAM,KAAKklB,GAAG,EAAEA,GAAGD,GAAG9qB,OAAO+qB,KAAKlP,GAAG/P,IAAIgf,GAAGC,IAAI,GAAG1jB,EAAG,eAAe,CAAC,WAAW,cACleA,EAAG,eAAe,CAAC,WAAW,cAAcA,EAAG,iBAAiB,CAAC,aAAa,gBAAgBA,EAAG,iBAAiB,CAAC,aAAa,gBAAgBD,EAAG,WAAW,oEAAoEvB,MAAM,MAAMuB,EAAG,WAAW,uFAAuFvB,MAAM,MAAMuB,EAAG,gBAAgB,CAAC,iBAAiB,WAAW,YAAY,UAAUA,EAAG,mBAAmB,2DAA2DvB,MAAM,MAC5fuB,EAAG,qBAAqB,6DAA6DvB,MAAM,MAAMuB,EAAG,sBAAsB,8DAA8DvB,MAAM,MAAM,IAAImlB,GAAG,sNAAsNnlB,MAAM,KAAKolB,GAAG,IAAI/jB,IAAI,0CAA0CrB,MAAM,KAAKqlB,OAAOF,KACnf,SAASG,GAAGzsB,EAAEC,EAAE0B,GAAG,IAAI2H,EAAEtJ,EAAE+J,MAAM,gBAAgB/J,EAAEkgB,cAAcve,EA/CjE,SAAY3B,EAAEC,EAAE0B,EAAE2H,EAAEC,EAAExJ,EAAEyJ,EAAEgE,EAAED,GAA4B,GAAzBsL,GAAGP,MAAM7O,KAAK1B,WAAcyQ,GAAG,CAAC,IAAGA,GAAgC,MAAMlQ,MAAMpH,EAAE,MAA1C,IAAImX,EAAEI,GAAGD,IAAG,EAAGC,GAAG,KAA8BC,KAAKA,IAAG,EAAGC,GAAGN,IA+CjEqU,CAAGpjB,EAAErJ,OAAE,EAAOD,GAAGA,EAAEkgB,cAAc,KACpG,SAASgJ,GAAGlpB,EAAEC,GAAGA,EAAE,KAAO,EAAFA,GAAK,IAAI,IAAI0B,EAAE,EAAEA,EAAE3B,EAAEsB,OAAOK,IAAI,CAAC,IAAI2H,EAAEtJ,EAAE2B,GAAG4H,EAAED,EAAEuf,MAAMvf,EAAEA,EAAEwf,UAAU9oB,EAAE,CAAC,IAAID,OAAE,EAAO,GAAGE,EAAE,IAAI,IAAIuJ,EAAEF,EAAEhI,OAAO,EAAE,GAAGkI,EAAEA,IAAI,CAAC,IAAIgE,EAAElE,EAAEE,GAAG+D,EAAEC,EAAEmf,SAAStU,EAAE7K,EAAE0S,cAA2B,GAAb1S,EAAEA,EAAEof,SAAYrf,IAAIxN,GAAGwJ,EAAE+W,uBAAuB,MAAMtgB,EAAEysB,GAAGljB,EAAEiE,EAAE6K,GAAGtY,EAAEwN,OAAO,IAAI/D,EAAE,EAAEA,EAAEF,EAAEhI,OAAOkI,IAAI,CAAoD,GAA5C+D,GAAPC,EAAElE,EAAEE,IAAOmjB,SAAStU,EAAE7K,EAAE0S,cAAc1S,EAAEA,EAAEof,SAAYrf,IAAIxN,GAAGwJ,EAAE+W,uBAAuB,MAAMtgB,EAAEysB,GAAGljB,EAAEiE,EAAE6K,GAAGtY,EAAEwN,IAAI,GAAGmL,GAAG,MAAM1Y,EAAE2Y,GAAGD,IAAG,EAAGC,GAAG,KAAK3Y,EAC1a,SAAS6sB,GAAE7sB,EAAEC,GAAG,IAAI0B,EAAEmrB,GAAG7sB,GAAGqJ,EAAEtJ,EAAE,WAAW2B,EAAEorB,IAAIzjB,KAAK0jB,GAAG/sB,EAAED,EAAE,GAAE,GAAI2B,EAAEiH,IAAIU,IAAI,IAAI2jB,GAAG,kBAAkBtsB,KAAKusB,SAAStb,SAAS,IAAIzO,MAAM,GAAG,SAASgqB,GAAGntB,GAAGA,EAAEitB,MAAMjtB,EAAEitB,KAAI,EAAG1kB,EAAGnB,SAAQ,SAASnH,GAAGssB,GAAGQ,IAAI9sB,IAAImtB,GAAGntB,GAAE,EAAGD,EAAE,MAAMotB,GAAGntB,GAAE,EAAGD,EAAE,UACtO,SAASotB,GAAGptB,EAAEC,EAAE0B,EAAE2H,GAAG,IAAIC,EAAE,EAAExB,UAAUzG,aAAQ,IAASyG,UAAU,GAAGA,UAAU,GAAG,EAAEhI,EAAE4B,EAA6D,GAA3D,oBAAoB3B,GAAG,IAAI2B,EAAEyQ,WAAWrS,EAAE4B,EAAEwO,eAAkB,OAAO7G,IAAIrJ,GAAGssB,GAAGQ,IAAI/sB,GAAG,CAAC,GAAG,WAAWA,EAAE,OAAOuJ,GAAG,EAAExJ,EAAEuJ,EAAE,IAAIE,EAAEsjB,GAAG/sB,GAAGyN,EAAExN,EAAE,MAAMC,EAAE,UAAU,UAAUuJ,EAAEujB,IAAIvf,KAAKvN,IAAIsJ,GAAG,GAAGyjB,GAAGjtB,EAAEC,EAAEuJ,EAAEtJ,GAAGuJ,EAAEZ,IAAI4E,IAClS,SAASwf,GAAGhtB,EAAEC,EAAE0B,EAAE2H,GAAG,IAAIC,EAAE4T,GAAGxO,IAAI1O,GAAG,YAAO,IAASsJ,EAAE,EAAEA,GAAG,KAAK,EAAEA,EAAE0V,GAAG,MAAM,KAAK,EAAE1V,EAAEtG,GAAG,MAAM,QAAQsG,EAAE2V,GAAGvd,EAAE4H,EAAE4V,KAAK,KAAKlf,EAAE0B,EAAE3B,GAAGuJ,OAAE,GAAQyO,IAAI,eAAe/X,GAAG,cAAcA,GAAG,UAAUA,IAAIsJ,GAAE,GAAID,OAAE,IAASC,EAAEvJ,EAAEkY,iBAAiBjY,EAAE0B,EAAE,CAAC0rB,SAAQ,EAAGC,QAAQ/jB,IAAIvJ,EAAEkY,iBAAiBjY,EAAE0B,GAAE,QAAI,IAAS4H,EAAEvJ,EAAEkY,iBAAiBjY,EAAE0B,EAAE,CAAC2rB,QAAQ/jB,IAAIvJ,EAAEkY,iBAAiBjY,EAAE0B,GAAE,GACpW,SAAS0d,GAAGrf,EAAEC,EAAE0B,EAAE2H,EAAEC,GAAG,IAAIxJ,EAAEuJ,EAAE,GAAG,KAAO,EAAFrJ,IAAM,KAAO,EAAFA,IAAM,OAAOqJ,EAAEtJ,EAAE,OAAO,CAAC,GAAG,OAAOsJ,EAAE,OAAO,IAAIE,EAAEF,EAAEsE,IAAI,GAAG,IAAIpE,GAAG,IAAIA,EAAE,CAAC,IAAIgE,EAAElE,EAAE8N,UAAUqE,cAAc,GAAGjO,IAAIjE,GAAG,IAAIiE,EAAE4E,UAAU5E,EAAEsJ,aAAavN,EAAE,MAAM,GAAG,IAAIC,EAAE,IAAIA,EAAEF,EAAE0P,OAAO,OAAOxP,GAAG,CAAC,IAAI+D,EAAE/D,EAAEoE,IAAI,IAAG,IAAIL,GAAG,IAAIA,MAAKA,EAAE/D,EAAE4N,UAAUqE,iBAAkBlS,GAAG,IAAIgE,EAAE6E,UAAU7E,EAAEuJ,aAAavN,GAAE,OAAOC,EAAEA,EAAEwP,OAAO,KAAK,OAAOxL,GAAG,CAAS,GAAG,QAAXhE,EAAE4R,GAAG5N,IAAe,OAAe,GAAG,KAAXD,EAAE/D,EAAEoE,MAAc,IAAIL,EAAE,CAACjE,EAAEvJ,EAAEyJ,EAAE,SAASxJ,EAAEwN,EAAEA,EAAEsJ,YAAYxN,EAAEA,EAAE0P,QAvD7c,SAAYhZ,EAAEC,EAAE0B,GAAG,GAAGkW,GAAG,OAAO7X,EAAEC,EAAE0B,GAAGkW,IAAG,EAAG,IAAWF,GAAG3X,EAAEC,EAAE0B,GAAlB,QAA6BkW,IAAG,EAAGC,MAuDoYyV,EAAG,WAAW,IAAIjkB,EAAEvJ,EAAEwJ,EAAEoN,GAAGhV,GAAG6H,EAAE,GACpfxJ,EAAE,CAAC,IAAIwN,EAAE0P,GAAGvO,IAAI3O,GAAG,QAAG,IAASwN,EAAE,CAAC,IAAID,EAAEgU,GAAGzgB,EAAEd,EAAE,OAAOA,GAAG,IAAK,WAAW,GAAG,IAAI0f,GAAG/d,GAAG,MAAM3B,EAAE,IAAK,UAAU,IAAK,QAAQuN,EAAEgY,GAAG,MAAM,IAAK,UAAUzkB,EAAE,QAAQyM,EAAE4V,GAAG,MAAM,IAAK,WAAWriB,EAAE,OAAOyM,EAAE4V,GAAG,MAAM,IAAK,aAAa,IAAK,YAAY5V,EAAE4V,GAAG,MAAM,IAAK,QAAQ,GAAG,IAAIxhB,EAAE8gB,OAAO,MAAMziB,EAAE,IAAK,WAAW,IAAK,WAAW,IAAK,YAAY,IAAK,YAAY,IAAK,UAAU,IAAK,WAAW,IAAK,YAAY,IAAK,cAAcuN,EAAEyV,GAAG,MAAM,IAAK,OAAO,IAAK,UAAU,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,OAAOzV,EAC1iB0V,GAAG,MAAM,IAAK,cAAc,IAAK,WAAW,IAAK,YAAY,IAAK,aAAa1V,EAAE2Y,GAAG,MAAM,KAAKpJ,GAAG,KAAKC,GAAG,KAAKC,GAAGzP,EAAE6V,GAAG,MAAM,KAAKnG,GAAG1P,EAAE+Y,GAAG,MAAM,IAAK,SAAS/Y,EAAEoU,GAAG,MAAM,IAAK,QAAQpU,EAAEwZ,GAAG,MAAM,IAAK,OAAO,IAAK,MAAM,IAAK,QAAQxZ,EAAEmW,GAAG,MAAM,IAAK,oBAAoB,IAAK,qBAAqB,IAAK,gBAAgB,IAAK,cAAc,IAAK,cAAc,IAAK,aAAa,IAAK,cAAc,IAAK,YAAYnW,EAAEiY,GAAG,IAAIgI,EAAE,KAAO,EAAFvtB,GAAKwtB,GAAGD,GAAG,WAAWxtB,EAAE0tB,EAAEF,EAAE,OAAOhgB,EAAEA,EAAE,UAAU,KAAKA,EAAEggB,EAAE,GAAG,IAAI,IAAQG,EAAJC,EAAEtkB,EAAI,OAC/eskB,GAAG,CAAK,IAAIC,GAARF,EAAEC,GAAUxW,UAAsF,GAA5E,IAAIuW,EAAE/f,KAAK,OAAOigB,IAAIF,EAAEE,EAAE,OAAOH,IAAc,OAAVG,EAAE9V,GAAG6V,EAAEF,KAAYF,EAAEzpB,KAAK+pB,GAAGF,EAAEC,EAAEF,MAASF,EAAE,MAAMG,EAAEA,EAAE5U,OAAO,EAAEwU,EAAElsB,SAASkM,EAAE,IAAID,EAAEC,EAAE1M,EAAE,KAAKa,EAAE4H,GAAGC,EAAEzF,KAAK,CAAC8kB,MAAMrb,EAAEsb,UAAU0E,MAAM,GAAG,KAAO,EAAFvtB,GAAK,CAA4E,GAAnCsN,EAAE,aAAavN,GAAG,eAAeA,KAAtEwN,EAAE,cAAcxN,GAAG,gBAAgBA,IAA2C,KAAO,GAAFC,MAAQa,EAAEa,EAAEghB,eAAehhB,EAAEihB,eAAexH,GAAGta,KAAIA,EAAEitB,OAAgBxgB,GAAGC,KAAGA,EAAEjE,EAAET,SAASS,EAAEA,GAAGiE,EAAEjE,EAAE4G,eAAe3C,EAAEue,aAAave,EAAEwgB,aAAallB,OAAUyE,GAAqCA,EAAEjE,EAAiB,QAAfxI,GAAnCA,EAAEa,EAAEghB,eAAehhB,EAAEkhB,WAAkBzH,GAAGta,GAAG,QACleA,KAAR2sB,EAAE3U,GAAGhY,KAAU,IAAIA,EAAE8M,KAAK,IAAI9M,EAAE8M,OAAK9M,EAAE,QAAUyM,EAAE,KAAKzM,EAAEwI,GAAKiE,IAAIzM,GAAE,CAAgU,GAA/T0sB,EAAExK,GAAG6K,EAAE,eAAeH,EAAE,eAAeE,EAAE,QAAW,eAAe5tB,GAAG,gBAAgBA,IAAEwtB,EAAEhI,GAAGqI,EAAE,iBAAiBH,EAAE,iBAAiBE,EAAE,WAAUH,EAAE,MAAMlgB,EAAEC,EAAE4b,GAAG7b,GAAGogB,EAAE,MAAM7sB,EAAE0M,EAAE4b,GAAGtoB,IAAG0M,EAAE,IAAIggB,EAAEK,EAAED,EAAE,QAAQrgB,EAAE5L,EAAE4H,IAAK9B,OAAOgmB,EAAEjgB,EAAEmV,cAAcgL,EAAEE,EAAE,KAAKzS,GAAG7R,KAAKD,KAAIkkB,EAAE,IAAIA,EAAEE,EAAEE,EAAE,QAAQ9sB,EAAEa,EAAE4H,IAAK9B,OAAOkmB,EAAEH,EAAE7K,cAAc8K,EAAEI,EAAEL,GAAGC,EAAEI,EAAKtgB,GAAGzM,EAAEb,EAAE,CAAa,IAARytB,EAAE5sB,EAAE8sB,EAAE,EAAMD,EAAhBH,EAAEjgB,EAAkBogB,EAAEA,EAAEM,GAAGN,GAAGC,IAAQ,IAAJD,EAAE,EAAME,EAAEH,EAAEG,EAAEA,EAAEI,GAAGJ,GAAGF,IAAI,KAAK,EAAEC,EAAED,GAAGH,EAAES,GAAGT,GAAGI,IAAI,KAAK,EAAED,EAAEC,GAAGF,EACpfO,GAAGP,GAAGC,IAAI,KAAKC,KAAK,CAAC,GAAGJ,IAAIE,GAAG,OAAOA,GAAGF,IAAIE,EAAE3U,UAAU,MAAM9Y,EAAEutB,EAAES,GAAGT,GAAGE,EAAEO,GAAGP,GAAGF,EAAE,UAAUA,EAAE,KAAK,OAAOjgB,GAAG2gB,GAAG1kB,EAAEgE,EAAED,EAAEigB,GAAE,GAAI,OAAO1sB,GAAG,OAAO2sB,GAAGS,GAAG1kB,EAAEikB,EAAE3sB,EAAE0sB,GAAE,GAAiE,GAAG,YAA1CjgB,GAAjBC,EAAElE,EAAE8f,GAAG9f,GAAGR,QAAWwF,UAAUd,EAAEc,SAASnE,gBAA+B,UAAUoD,GAAG,SAASC,EAAEzD,KAAK,IAAIokB,EAAE9E,QAAQ,GAAGX,GAAGlb,GAAG,GAAG8b,GAAG6E,EAAEjE,OAAO,CAACiE,EAAEnE,GAAG,IAAIoE,EAAEtE,QAAQvc,EAAEC,EAAEc,WAAW,UAAUf,EAAEpD,gBAAgB,aAAaqD,EAAEzD,MAAM,UAAUyD,EAAEzD,QAAQokB,EAAElE,IAClV,OADyVkE,IAAIA,EAAEA,EAAEnuB,EAAEsJ,IAAKqf,GAAGnf,EAAE2kB,EAAExsB,EAAE4H,IAAW6kB,GAAGA,EAAEpuB,EAAEwN,EAAElE,GAAG,aAAatJ,IAAIouB,EAAE5gB,EAAEkC,gBACte0e,EAAEte,YAAY,WAAWtC,EAAEzD,MAAMkG,GAAGzC,EAAE,SAASA,EAAE9L,QAAO0sB,EAAE9kB,EAAE8f,GAAG9f,GAAGR,OAAc9I,GAAG,IAAK,WAAa0oB,GAAG0F,IAAI,SAASA,EAAEjD,mBAAgBE,GAAG+C,EAAE9C,GAAGhiB,EAAEiiB,GAAG,MAAK,MAAM,IAAK,WAAWA,GAAGD,GAAGD,GAAG,KAAK,MAAM,IAAK,YAAYG,IAAG,EAAG,MAAM,IAAK,cAAc,IAAK,UAAU,IAAK,UAAUA,IAAG,EAAGC,GAAGjiB,EAAE7H,EAAE4H,GAAG,MAAM,IAAK,kBAAkB,GAAG6hB,GAAG,MAAM,IAAK,UAAU,IAAK,QAAQK,GAAGjiB,EAAE7H,EAAE4H,GAAG,IAAI8kB,EAAE,GAAGpH,GAAGhnB,EAAE,CAAC,OAAOD,GAAG,IAAK,mBAAmB,IAAIsuB,EAAE,qBAAqB,MAAMruB,EAAE,IAAK,iBAAiBquB,EAAE,mBAAmB,MAAMruB,EACrf,IAAK,oBAAoBquB,EAAE,sBAAsB,MAAMruB,EAAEquB,OAAE,OAAY5G,GAAGF,GAAGxnB,EAAE2B,KAAK2sB,EAAE,oBAAoB,YAAYtuB,GAAG,MAAM2B,EAAEge,UAAU2O,EAAE,sBAAsBA,IAAIjH,IAAI,OAAO1lB,EAAE0jB,SAASqC,IAAI,uBAAuB4G,EAAE,qBAAqBA,GAAG5G,KAAK2G,EAAE5O,OAAYF,GAAG,UAARD,GAAG/V,GAAkB+V,GAAG5d,MAAM4d,GAAGnO,YAAYuW,IAAG,IAAe,GAAV0G,EAAExF,GAAGtf,EAAEglB,IAAOhtB,SAASgtB,EAAE,IAAI3K,GAAG2K,EAAEtuB,EAAE,KAAK2B,EAAE4H,GAAGC,EAAEzF,KAAK,CAAC8kB,MAAMyF,EAAExF,UAAUsF,IAAIC,EAAEC,EAAE1K,KAAKyK,EAAW,QAARA,EAAE5G,GAAG9lB,MAAc2sB,EAAE1K,KAAKyK,MAASA,EAAEjH,GA1BjK,SAAYpnB,EAAEC,GAAG,OAAOD,GAAG,IAAK,iBAAiB,OAAOynB,GAAGxnB,GAAG,IAAK,WAAW,OAAG,KAAKA,EAAEqlB,MAAa,MAAKiC,IAAG,EAAUD,IAAG,IAAK,YAAY,OAAOtnB,EAAEC,EAAE2jB,QAAS0D,IAAIC,GAAG,KAAKvnB,EAAE,QAAQ,OAAO,MA0BxBuuB,CAAGvuB,EAAE2B,GAzB1b,SAAY3B,EAAEC,GAAG,GAAGynB,GAAG,MAAM,mBAAmB1nB,IAAIinB,IAAIO,GAAGxnB,EAAEC,IAAID,EAAEyf,KAAKD,GAAGD,GAAGD,GAAG,KAAKoI,IAAG,EAAG1nB,GAAG,KAAK,OAAOA,GAAG,IAAK,QAAgQ,QAAQ,OAAO,KAA3P,IAAK,WAAW,KAAKC,EAAEkiB,SAASliB,EAAEoiB,QAAQpiB,EAAEqiB,UAAUriB,EAAEkiB,SAASliB,EAAEoiB,OAAO,CAAC,GAAGpiB,EAAEuuB,MAAM,EAAEvuB,EAAEuuB,KAAKltB,OAAO,OAAOrB,EAAEuuB,KAAK,GAAGvuB,EAAEqlB,MAAM,OAAO1e,OAAOG,aAAa9G,EAAEqlB,OAAO,OAAO,KAAK,IAAK,iBAAiB,OAAO+B,IAAI,OAAOpnB,EAAEolB,OAAO,KAAKplB,EAAE2jB,MAyB+E6K,CAAGzuB,EAAE2B,MAA2B,GAAxB2H,EAAEsf,GAAGtf,EAAE,kBAAqBhI,SAASiI,EAAE,IAAIoa,GAAG,gBACnf,cAAc,KAAKhiB,EAAE4H,GAAGC,EAAEzF,KAAK,CAAC8kB,MAAMtf,EAAEuf,UAAUxf,IAAIC,EAAEqa,KAAKyK,IAAGnF,GAAG1f,EAAEvJ,MAAK,SAAS6tB,GAAG9tB,EAAEC,EAAE0B,GAAG,MAAM,CAACgrB,SAAS3sB,EAAE4sB,SAAS3sB,EAAEigB,cAAcve,GAAG,SAASinB,GAAG5oB,EAAEC,GAAG,IAAI,IAAI0B,EAAE1B,EAAE,UAAUqJ,EAAE,GAAG,OAAOtJ,GAAG,CAAC,IAAIuJ,EAAEvJ,EAAED,EAAEwJ,EAAE6N,UAAU,IAAI7N,EAAEqE,KAAK,OAAO7N,IAAIwJ,EAAExJ,EAAY,OAAVA,EAAEgY,GAAG/X,EAAE2B,KAAY2H,EAAEolB,QAAQZ,GAAG9tB,EAAED,EAAEwJ,IAAc,OAAVxJ,EAAEgY,GAAG/X,EAAEC,KAAYqJ,EAAEvF,KAAK+pB,GAAG9tB,EAAED,EAAEwJ,KAAKvJ,EAAEA,EAAEgZ,OAAO,OAAO1P,EAAE,SAAS2kB,GAAGjuB,GAAG,GAAG,OAAOA,EAAE,OAAO,KAAK,GAAGA,EAAEA,EAAEgZ,aAAahZ,GAAG,IAAIA,EAAE4N,KAAK,OAAO5N,GAAI,KACxa,SAASkuB,GAAGluB,EAAEC,EAAE0B,EAAE2H,EAAEC,GAAG,IAAI,IAAIxJ,EAAEE,EAAE+f,WAAWxW,EAAE,GAAG,OAAO7H,GAAGA,IAAI2H,GAAG,CAAC,IAAIkE,EAAE7L,EAAE4L,EAAEC,EAAEuL,UAAUV,EAAE7K,EAAE4J,UAAU,GAAG,OAAO7J,GAAGA,IAAIjE,EAAE,MAAM,IAAIkE,EAAEI,KAAK,OAAOyK,IAAI7K,EAAE6K,EAAE9O,EAAa,OAAVgE,EAAEwK,GAAGpW,EAAE5B,KAAYyJ,EAAEklB,QAAQZ,GAAGnsB,EAAE4L,EAAEC,IAAKjE,GAAc,OAAVgE,EAAEwK,GAAGpW,EAAE5B,KAAYyJ,EAAEzF,KAAK+pB,GAAGnsB,EAAE4L,EAAEC,KAAM7L,EAAEA,EAAEqX,OAAO,IAAIxP,EAAElI,QAAQtB,EAAE+D,KAAK,CAAC8kB,MAAM5oB,EAAE6oB,UAAUtf,IAAI,SAASmlB,MAAM,IAAIC,GAAG,KAAKC,GAAG,KAAK,SAASC,GAAG9uB,EAAEC,GAAG,OAAOD,GAAG,IAAK,SAAS,IAAK,QAAQ,IAAK,SAAS,IAAK,WAAW,QAAQC,EAAE8uB,UAAU,OAAM,EAC3b,SAASC,GAAGhvB,EAAEC,GAAG,MAAM,aAAaD,GAAG,WAAWA,GAAG,aAAaA,GAAG,kBAAkBC,EAAEoQ,UAAU,kBAAkBpQ,EAAEoQ,UAAU,kBAAkBpQ,EAAE6Q,yBAAyB,OAAO7Q,EAAE6Q,yBAAyB,MAAM7Q,EAAE6Q,wBAAwBme,OAAO,IAAIC,GAAG,oBAAoBC,WAAWA,gBAAW,EAAOC,GAAG,oBAAoBC,aAAaA,kBAAa,EAAO,SAASC,GAAGtvB,GAAG,IAAIA,EAAEoS,SAASpS,EAAEmR,YAAY,GAAG,IAAInR,EAAEoS,WAAoB,OAATpS,EAAEA,EAAEsP,QAAetP,EAAEmR,YAAY,KACxc,SAASoe,GAAGvvB,GAAG,KAAK,MAAMA,EAAEA,EAAEA,EAAE0qB,YAAY,CAAC,IAAIzqB,EAAED,EAAEoS,SAAS,GAAG,IAAInS,GAAG,IAAIA,EAAE,MAAM,OAAOD,EAAE,SAASwvB,GAAGxvB,GAAGA,EAAEA,EAAEyvB,gBAAgB,IAAI,IAAIxvB,EAAE,EAAED,GAAG,CAAC,GAAG,IAAIA,EAAEoS,SAAS,CAAC,IAAIzQ,EAAE3B,EAAE4jB,KAAK,GAAG,MAAMjiB,GAAG,OAAOA,GAAG,OAAOA,EAAE,CAAC,GAAG,IAAI1B,EAAE,OAAOD,EAAEC,QAAQ,OAAO0B,GAAG1B,IAAID,EAAEA,EAAEyvB,gBAAgB,OAAO,KAAK,IAAIC,GAAG,EAA0D,IAAIC,GAAGhvB,KAAKusB,SAAStb,SAAS,IAAIzO,MAAM,GAAGysB,GAAG,gBAAgBD,GAAGE,GAAG,gBAAgBF,GAAG5B,GAAG,oBAAoB4B,GAAGG,GAAG,iBAAiBH,GAC9d,SAASvU,GAAGpb,GAAG,IAAIC,EAAED,EAAE4vB,IAAI,GAAG3vB,EAAE,OAAOA,EAAE,IAAI,IAAI0B,EAAE3B,EAAE8W,WAAWnV,GAAG,CAAC,GAAG1B,EAAE0B,EAAEosB,KAAKpsB,EAAEiuB,IAAI,CAAe,GAAdjuB,EAAE1B,EAAE8Y,UAAa,OAAO9Y,EAAEsZ,OAAO,OAAO5X,GAAG,OAAOA,EAAE4X,MAAM,IAAIvZ,EAAEwvB,GAAGxvB,GAAG,OAAOA,GAAG,CAAC,GAAG2B,EAAE3B,EAAE4vB,IAAI,OAAOjuB,EAAE3B,EAAEwvB,GAAGxvB,GAAG,OAAOC,EAAM0B,GAAJ3B,EAAE2B,GAAMmV,WAAW,OAAO,KAAK,SAASK,GAAGnX,GAAkB,QAAfA,EAAEA,EAAE4vB,KAAK5vB,EAAE+tB,MAAc,IAAI/tB,EAAE4N,KAAK,IAAI5N,EAAE4N,KAAK,KAAK5N,EAAE4N,KAAK,IAAI5N,EAAE4N,IAAI,KAAK5N,EAAE,SAASopB,GAAGppB,GAAG,GAAG,IAAIA,EAAE4N,KAAK,IAAI5N,EAAE4N,IAAI,OAAO5N,EAAEoX,UAAU,MAAM9O,MAAMpH,EAAE,KAAM,SAASmW,GAAGrX,GAAG,OAAOA,EAAE6vB,KAAK,KAClb,SAAS/C,GAAG9sB,GAAG,IAAIC,EAAED,EAAE8vB,IAAkC,YAA9B,IAAS7vB,IAAIA,EAAED,EAAE8vB,IAAI,IAAItnB,KAAYvI,EAAE,IAAI8vB,GAAG,GAAGC,IAAI,EAAE,SAASC,GAAGjwB,GAAG,MAAM,CAACqE,QAAQrE,GAAG,SAASkwB,GAAElwB,GAAG,EAAEgwB,KAAKhwB,EAAEqE,QAAQ0rB,GAAGC,IAAID,GAAGC,IAAI,KAAKA,MAAM,SAASG,GAAEnwB,EAAEC,GAAG+vB,KAAKD,GAAGC,IAAIhwB,EAAEqE,QAAQrE,EAAEqE,QAAQpE,EAAE,IAAImwB,GAAG,GAAGC,GAAEJ,GAAGG,IAAIttB,GAAEmtB,IAAG,GAAIK,GAAGF,GAC5P,SAASG,GAAGvwB,EAAEC,GAAG,IAAI0B,EAAE3B,EAAE+J,KAAKymB,aAAa,IAAI7uB,EAAE,OAAOyuB,GAAG,IAAI9mB,EAAEtJ,EAAEoX,UAAU,GAAG9N,GAAGA,EAAEmnB,8CAA8CxwB,EAAE,OAAOqJ,EAAEonB,0CAA0C,IAAS3wB,EAALwJ,EAAE,GAAK,IAAIxJ,KAAK4B,EAAE4H,EAAExJ,GAAGE,EAAEF,GAAoH,OAAjHuJ,KAAItJ,EAAEA,EAAEoX,WAAYqZ,4CAA4CxwB,EAAED,EAAE0wB,0CAA0CnnB,GAAUA,EAAE,SAASonB,GAAG3wB,GAAyB,OAAO,QAA7BA,EAAEA,EAAE4wB,yBAAmC,IAAS5wB,EAAE,SAAS6wB,KAAKX,GAAEptB,IAAGotB,GAAEG,IAAG,SAASS,GAAG9wB,EAAEC,EAAE0B,GAAG,GAAG0uB,GAAEhsB,UAAU+rB,GAAG,MAAM9nB,MAAMpH,EAAE,MAAMivB,GAAEE,GAAEpwB,GAAGkwB,GAAErtB,GAAEnB,GAC/e,SAASovB,GAAG/wB,EAAEC,EAAE0B,GAAG,IAAI2H,EAAEtJ,EAAEoX,UAAgC,GAAtBpX,EAAEC,EAAE2wB,kBAAqB,oBAAoBtnB,EAAE0nB,gBAAgB,OAAOrvB,EAAwB,IAAI,IAAI4H,KAA9BD,EAAEA,EAAE0nB,kBAAiC,KAAKznB,KAAKvJ,GAAG,MAAMsI,MAAMpH,EAAE,IAAI6M,EAAG9N,IAAI,UAAUsJ,IAAI,OAAOnB,EAAE,GAAGzG,EAAE2H,GAAG,SAAS2nB,GAAGjxB,GAAyG,OAAtGA,GAAGA,EAAEA,EAAEoX,YAAYpX,EAAEkxB,2CAA2Cd,GAAGE,GAAGD,GAAEhsB,QAAQ8rB,GAAEE,GAAErwB,GAAGmwB,GAAErtB,GAAEA,GAAEuB,UAAe,EAAG,SAAS8sB,GAAGnxB,EAAEC,EAAE0B,GAAG,IAAI2H,EAAEtJ,EAAEoX,UAAU,IAAI9N,EAAE,MAAMhB,MAAMpH,EAAE,MAAMS,GAAG3B,EAAE+wB,GAAG/wB,EAAEC,EAAEqwB,IAAIhnB,EAAE4nB,0CAA0ClxB,EAAEkwB,GAAEptB,IAAGotB,GAAEG,IAAGF,GAAEE,GAAErwB,IAAIkwB,GAAEptB,IAAGqtB,GAAErtB,GAAEnB,GAC7e,IAAIyvB,GAAG,KAAKC,GAAG,KAAKC,GAAGvwB,EAAEua,yBAAyBiW,GAAGxwB,EAAEib,0BAA0BwV,GAAGzwB,EAAE0wB,wBAAwBC,GAAG3wB,EAAE4wB,qBAAqBC,GAAG7wB,EAAE8wB,sBAAsBC,GAAG/wB,EAAEwc,aAAawU,GAAGhxB,EAAEixB,iCAAiCC,GAAGlxB,EAAEmxB,2BAA2BC,GAAGpxB,EAAE+d,8BAA8BsT,GAAGrxB,EAAEkb,wBAAwBoW,GAAGtxB,EAAEuxB,qBAAqBC,GAAGxxB,EAAEyxB,sBAAsBC,GAAG,GAAGC,QAAG,IAASd,GAAGA,GAAG,aAAae,GAAG,KAAKC,GAAG,KAAKC,IAAG,EAAGC,GAAGhB,KAAKiB,GAAE,IAAID,GAAGhB,GAAG,WAAW,OAAOA,KAAKgB,IACtd,SAASE,KAAK,OAAOjB,MAAM,KAAKE,GAAG,OAAO,GAAG,KAAKE,GAAG,OAAO,GAAG,KAAKC,GAAG,OAAO,GAAG,KAAKC,GAAG,OAAO,GAAG,KAAKE,GAAG,OAAO,GAAG,QAAQ,MAAMjqB,MAAMpH,EAAE,OAAQ,SAAS+xB,GAAGjzB,GAAG,OAAOA,GAAG,KAAK,GAAG,OAAOiyB,GAAG,KAAK,GAAG,OAAOE,GAAG,KAAK,GAAG,OAAOC,GAAG,KAAK,GAAG,OAAOC,GAAG,KAAK,GAAG,OAAOE,GAAG,QAAQ,MAAMjqB,MAAMpH,EAAE,OAAQ,SAASgyB,GAAGlzB,EAAEC,GAAW,OAARD,EAAEizB,GAAGjzB,GAAUsxB,GAAGtxB,EAAEC,GAAG,SAASkzB,GAAGnzB,EAAEC,EAAE0B,GAAW,OAAR3B,EAAEizB,GAAGjzB,GAAUuxB,GAAGvxB,EAAEC,EAAE0B,GAAG,SAASyxB,KAAK,GAAG,OAAOR,GAAG,CAAC,IAAI5yB,EAAE4yB,GAAGA,GAAG,KAAKpB,GAAGxxB,GAAGqzB,KAC3a,SAASA,KAAK,IAAIR,IAAI,OAAOF,GAAG,CAACE,IAAG,EAAG,IAAI7yB,EAAE,EAAE,IAAI,IAAIC,EAAE0yB,GAAGO,GAAG,IAAG,WAAW,KAAKlzB,EAAEC,EAAEqB,OAAOtB,IAAI,CAAC,IAAI2B,EAAE1B,EAAED,GAAG,GAAG2B,EAAEA,GAAE,SAAU,OAAOA,OAAMgxB,GAAG,KAAK,MAAMhxB,GAAG,MAAM,OAAOgxB,KAAKA,GAAGA,GAAGxvB,MAAMnD,EAAE,IAAIuxB,GAAGU,GAAGmB,IAAIzxB,EAA3J,QAAsKkxB,IAAG,IAAK,IAAIS,GAAGpoB,EAAGqoB,wBAAwB,SAASC,GAAGxzB,EAAEC,GAAG,GAAGD,GAAGA,EAAEyzB,aAAa,CAA4B,IAAI,IAAI9xB,KAAnC1B,EAAEmI,EAAE,GAAGnI,GAAGD,EAAEA,EAAEyzB,kBAA4B,IAASxzB,EAAE0B,KAAK1B,EAAE0B,GAAG3B,EAAE2B,IAAI,OAAO1B,EAAE,OAAOA,EAAE,IAAIyzB,GAAGzD,GAAG,MAAM0D,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAK,SAASC,KAAKD,GAAGD,GAAGD,GAAG,KAC5b,SAASI,GAAG/zB,GAAG,IAAIC,EAAEyzB,GAAGrvB,QAAQ6rB,GAAEwD,IAAI1zB,EAAE+J,KAAKkE,SAAS+lB,cAAc/zB,EAAE,SAASg0B,GAAGj0B,EAAEC,GAAG,KAAK,OAAOD,GAAG,CAAC,IAAI2B,EAAE3B,EAAE+Y,UAAU,IAAI/Y,EAAEk0B,WAAWj0B,KAAKA,EAAtB,CAAwB,GAAG,OAAO0B,IAAIA,EAAEuyB,WAAWj0B,KAAKA,EAAE,MAAW0B,EAAEuyB,YAAYj0B,OAAOD,EAAEk0B,YAAYj0B,EAAE,OAAO0B,IAAIA,EAAEuyB,YAAYj0B,GAAGD,EAAEA,EAAEgZ,QAAQ,SAASmb,GAAGn0B,EAAEC,GAAG0zB,GAAG3zB,EAAE6zB,GAAGD,GAAG,KAAsB,QAAjB5zB,EAAEA,EAAEo0B,eAAuB,OAAOp0B,EAAEq0B,eAAe,KAAKr0B,EAAEs0B,MAAMr0B,KAAKs0B,IAAG,GAAIv0B,EAAEq0B,aAAa,MACvY,SAASG,GAAGx0B,EAAEC,GAAG,GAAG4zB,KAAK7zB,IAAG,IAAKC,GAAG,IAAIA,EAAmG,GAA7F,kBAAkBA,GAAG,aAAaA,IAAE4zB,GAAG7zB,EAAEC,EAAE,YAAWA,EAAE,CAACw0B,QAAQz0B,EAAE00B,aAAaz0B,EAAEqE,KAAK,MAAS,OAAOsvB,GAAG,CAAC,GAAG,OAAOD,GAAG,MAAMrrB,MAAMpH,EAAE,MAAM0yB,GAAG3zB,EAAE0zB,GAAGS,aAAa,CAACE,MAAM,EAAED,aAAap0B,EAAE00B,WAAW,WAAWf,GAAGA,GAAGtvB,KAAKrE,EAAE,OAAOD,EAAEg0B,cAAc,IAAIY,IAAG,EAAG,SAASC,GAAG70B,GAAGA,EAAE80B,YAAY,CAACC,UAAU/0B,EAAEmZ,cAAc6b,gBAAgB,KAAKC,eAAe,KAAKC,OAAO,CAACC,QAAQ,MAAMC,QAAQ,MAC1a,SAASC,GAAGr1B,EAAEC,GAAGD,EAAEA,EAAE80B,YAAY70B,EAAE60B,cAAc90B,IAAIC,EAAE60B,YAAY,CAACC,UAAU/0B,EAAE+0B,UAAUC,gBAAgBh1B,EAAEg1B,gBAAgBC,eAAej1B,EAAEi1B,eAAeC,OAAOl1B,EAAEk1B,OAAOE,QAAQp1B,EAAEo1B,UAAU,SAASE,GAAGt1B,EAAEC,GAAG,MAAM,CAACs1B,UAAUv1B,EAAEw1B,KAAKv1B,EAAE2N,IAAI,EAAE6nB,QAAQ,KAAKC,SAAS,KAAKpxB,KAAK,MAAM,SAASqxB,GAAG31B,EAAEC,GAAmB,GAAG,QAAnBD,EAAEA,EAAE80B,aAAwB,CAAY,IAAInzB,GAAf3B,EAAEA,EAAEk1B,QAAeC,QAAQ,OAAOxzB,EAAE1B,EAAEqE,KAAKrE,GAAGA,EAAEqE,KAAK3C,EAAE2C,KAAK3C,EAAE2C,KAAKrE,GAAGD,EAAEm1B,QAAQl1B,GACrZ,SAAS21B,GAAG51B,EAAEC,GAAG,IAAI0B,EAAE3B,EAAE80B,YAAYxrB,EAAEtJ,EAAE+Y,UAAU,GAAG,OAAOzP,GAAoB3H,KAAhB2H,EAAEA,EAAEwrB,aAAmB,CAAC,IAAIvrB,EAAE,KAAKxJ,EAAE,KAAyB,GAAG,QAAvB4B,EAAEA,EAAEqzB,iBAA4B,CAAC,EAAE,CAAC,IAAIxrB,EAAE,CAAC+rB,UAAU5zB,EAAE4zB,UAAUC,KAAK7zB,EAAE6zB,KAAK5nB,IAAIjM,EAAEiM,IAAI6nB,QAAQ9zB,EAAE8zB,QAAQC,SAAS/zB,EAAE+zB,SAASpxB,KAAK,MAAM,OAAOvE,EAAEwJ,EAAExJ,EAAEyJ,EAAEzJ,EAAEA,EAAEuE,KAAKkF,EAAE7H,EAAEA,EAAE2C,WAAW,OAAO3C,GAAG,OAAO5B,EAAEwJ,EAAExJ,EAAEE,EAAEF,EAAEA,EAAEuE,KAAKrE,OAAOsJ,EAAExJ,EAAEE,EAAiH,OAA/G0B,EAAE,CAACozB,UAAUzrB,EAAEyrB,UAAUC,gBAAgBzrB,EAAE0rB,eAAel1B,EAAEm1B,OAAO5rB,EAAE4rB,OAAOE,QAAQ9rB,EAAE8rB,cAASp1B,EAAE80B,YAAYnzB,GAA4B,QAAnB3B,EAAE2B,EAAEszB,gBAAwBtzB,EAAEqzB,gBAAgB/0B,EAAED,EAAEsE,KACnfrE,EAAE0B,EAAEszB,eAAeh1B,EACnB,SAAS41B,GAAG71B,EAAEC,EAAE0B,EAAE2H,GAAG,IAAIC,EAAEvJ,EAAE80B,YAAYF,IAAG,EAAG,IAAI70B,EAAEwJ,EAAEyrB,gBAAgBxrB,EAAED,EAAE0rB,eAAeznB,EAAEjE,EAAE2rB,OAAOC,QAAQ,GAAG,OAAO3nB,EAAE,CAACjE,EAAE2rB,OAAOC,QAAQ,KAAK,IAAI5nB,EAAEC,EAAE6K,EAAE9K,EAAEjJ,KAAKiJ,EAAEjJ,KAAK,KAAK,OAAOkF,EAAEzJ,EAAEsY,EAAE7O,EAAElF,KAAK+T,EAAE7O,EAAE+D,EAAE,IAAIvG,EAAEhH,EAAE+Y,UAAU,GAAG,OAAO/R,EAAE,CAAiB,IAAI8uB,GAApB9uB,EAAEA,EAAE8tB,aAAoBG,eAAea,IAAItsB,IAAI,OAAOssB,EAAE9uB,EAAEguB,gBAAgB3c,EAAEyd,EAAExxB,KAAK+T,EAAErR,EAAEiuB,eAAe1nB,IAAI,GAAG,OAAOxN,EAAE,CAA8B,IAA7B+1B,EAAEvsB,EAAEwrB,UAAUvrB,EAAE,EAAExC,EAAEqR,EAAE9K,EAAE,OAAO,CAACC,EAAEzN,EAAEy1B,KAAK,IAAIO,EAAEh2B,EAAEw1B,UAAU,IAAIjsB,EAAEkE,KAAKA,EAAE,CAAC,OAAOxG,IAAIA,EAAEA,EAAE1C,KAAK,CAACixB,UAAUQ,EAAEP,KAAK,EAAE5nB,IAAI7N,EAAE6N,IAAI6nB,QAAQ11B,EAAE01B,QAAQC,SAAS31B,EAAE21B,SACrfpxB,KAAK,OAAOtE,EAAE,CAAC,IAAIg2B,EAAEh2B,EAAEc,EAAEf,EAAU,OAARyN,EAAEvN,EAAE81B,EAAEp0B,EAASb,EAAE8M,KAAK,KAAK,EAAc,GAAG,oBAAfooB,EAAEl1B,EAAE20B,SAAiC,CAACK,EAAEE,EAAE/tB,KAAK8tB,EAAED,EAAEtoB,GAAG,MAAMxN,EAAE81B,EAAEE,EAAE,MAAMh2B,EAAE,KAAK,EAAEg2B,EAAE/c,OAAe,KAAT+c,EAAE/c,MAAY,GAAG,KAAK,EAAsD,GAAG,QAA3CzL,EAAE,oBAAdwoB,EAAEl1B,EAAE20B,SAAgCO,EAAE/tB,KAAK8tB,EAAED,EAAEtoB,GAAGwoB,SAAe,IAASxoB,EAAE,MAAMxN,EAAE81B,EAAE1tB,EAAE,GAAG0tB,EAAEtoB,GAAG,MAAMxN,EAAE,KAAK,EAAE40B,IAAG,GAAI,OAAO70B,EAAE21B,WAAW11B,EAAEiZ,OAAO,GAAe,QAAZzL,EAAEjE,EAAE6rB,SAAiB7rB,EAAE6rB,QAAQ,CAACr1B,GAAGyN,EAAEzJ,KAAKhE,SAASg2B,EAAE,CAACR,UAAUQ,EAAEP,KAAKhoB,EAAEI,IAAI7N,EAAE6N,IAAI6nB,QAAQ11B,EAAE01B,QAAQC,SAAS31B,EAAE21B,SAASpxB,KAAK,MAAM,OAAO0C,GAAGqR,EAAErR,EAAE+uB,EAAExoB,EAAEuoB,GAAG9uB,EAAEA,EAAE1C,KAAKyxB,EAAEvsB,GAAGgE,EAAW,GAAG,QAAZzN,EAAEA,EAAEuE,MAC1e,IAAsB,QAAnBkJ,EAAEjE,EAAE2rB,OAAOC,SAAiB,MAAWp1B,EAAEyN,EAAElJ,KAAKkJ,EAAElJ,KAAK,KAAKiF,EAAE0rB,eAAeznB,EAAEjE,EAAE2rB,OAAOC,QAAQ,MAAc,OAAOnuB,IAAIuG,EAAEuoB,GAAGvsB,EAAEwrB,UAAUxnB,EAAEhE,EAAEyrB,gBAAgB3c,EAAE9O,EAAE0rB,eAAejuB,EAAEivB,IAAIzsB,EAAExJ,EAAEs0B,MAAM9qB,EAAExJ,EAAEmZ,cAAc2c,GAAG,SAASI,GAAGl2B,EAAEC,EAAE0B,GAA8B,GAA3B3B,EAAEC,EAAEm1B,QAAQn1B,EAAEm1B,QAAQ,KAAQ,OAAOp1B,EAAE,IAAIC,EAAE,EAAEA,EAAED,EAAEsB,OAAOrB,IAAI,CAAC,IAAIqJ,EAAEtJ,EAAEC,GAAGsJ,EAAED,EAAEosB,SAAS,GAAG,OAAOnsB,EAAE,CAAqB,GAApBD,EAAEosB,SAAS,KAAKpsB,EAAE3H,EAAK,oBAAoB4H,EAAE,MAAMjB,MAAMpH,EAAE,IAAIqI,IAAIA,EAAEtB,KAAKqB,KAAK,IAAI6sB,IAAI,IAAIjuB,EAAGkuB,WAAWC,KAC3b,SAASC,GAAGt2B,EAAEC,EAAE0B,EAAE2H,GAA8B3H,EAAE,QAAXA,EAAEA,EAAE2H,EAAtBrJ,EAAED,EAAEmZ,sBAAmC,IAASxX,EAAE1B,EAAEmI,EAAE,GAAGnI,EAAE0B,GAAG3B,EAAEmZ,cAAcxX,EAAE,IAAI3B,EAAEs0B,QAAQt0B,EAAE80B,YAAYC,UAAUpzB,GAC3I,IAAI40B,GAAG,CAACC,UAAU,SAASx2B,GAAG,SAAOA,EAAEA,EAAEy2B,kBAAiB3d,GAAG9Y,KAAKA,GAAM02B,gBAAgB,SAAS12B,EAAEC,EAAE0B,GAAG3B,EAAEA,EAAEy2B,gBAAgB,IAAIntB,EAAEqtB,KAAKptB,EAAEqtB,GAAG52B,GAAGD,EAAEu1B,GAAGhsB,EAAEC,GAAGxJ,EAAE01B,QAAQx1B,OAAE,IAAS0B,GAAG,OAAOA,IAAI5B,EAAE21B,SAAS/zB,GAAGg0B,GAAG31B,EAAED,GAAG82B,GAAG72B,EAAEuJ,EAAED,IAAIwtB,oBAAoB,SAAS92B,EAAEC,EAAE0B,GAAG3B,EAAEA,EAAEy2B,gBAAgB,IAAIntB,EAAEqtB,KAAKptB,EAAEqtB,GAAG52B,GAAGD,EAAEu1B,GAAGhsB,EAAEC,GAAGxJ,EAAE6N,IAAI,EAAE7N,EAAE01B,QAAQx1B,OAAE,IAAS0B,GAAG,OAAOA,IAAI5B,EAAE21B,SAAS/zB,GAAGg0B,GAAG31B,EAAED,GAAG82B,GAAG72B,EAAEuJ,EAAED,IAAIytB,mBAAmB,SAAS/2B,EAAEC,GAAGD,EAAEA,EAAEy2B,gBAAgB,IAAI90B,EAAEg1B,KAAKrtB,EAAEstB,GAAG52B,GAAGuJ,EAAE+rB,GAAG3zB,EAAE2H,GAAGC,EAAEqE,IAAI,OAAE,IAAS3N,GAAG,OAAOA,IAAIsJ,EAAEmsB,SACjfz1B,GAAG01B,GAAG31B,EAAEuJ,GAAGstB,GAAG72B,EAAEsJ,EAAE3H,KAAK,SAASq1B,GAAGh3B,EAAEC,EAAE0B,EAAE2H,EAAEC,EAAExJ,EAAEyJ,GAAiB,MAAM,oBAApBxJ,EAAEA,EAAEoX,WAAsC6f,sBAAsBj3B,EAAEi3B,sBAAsB3tB,EAAEvJ,EAAEyJ,IAAGvJ,EAAEmG,YAAWnG,EAAEmG,UAAU8wB,wBAAsB7M,GAAG1oB,EAAE2H,KAAK+gB,GAAG9gB,EAAExJ,IAC/M,SAASo3B,GAAGn3B,EAAEC,EAAE0B,GAAG,IAAI2H,GAAE,EAAGC,EAAE6mB,GAAOrwB,EAAEE,EAAEm3B,YAA2W,MAA/V,kBAAkBr3B,GAAG,OAAOA,EAAEA,EAAEy0B,GAAGz0B,IAAIwJ,EAAEonB,GAAG1wB,GAAGqwB,GAAGD,GAAEhsB,QAAyBtE,GAAGuJ,EAAE,QAAtBA,EAAErJ,EAAEuwB,oBAA4B,IAASlnB,GAAGinB,GAAGvwB,EAAEuJ,GAAG6mB,IAAInwB,EAAE,IAAIA,EAAE0B,EAAE5B,GAAGC,EAAEmZ,cAAc,OAAOlZ,EAAE6D,YAAO,IAAS7D,EAAE6D,MAAM7D,EAAE6D,MAAM,KAAK7D,EAAEo3B,QAAQd,GAAGv2B,EAAEoX,UAAUnX,EAAEA,EAAEw2B,gBAAgBz2B,EAAEsJ,KAAItJ,EAAEA,EAAEoX,WAAYqZ,4CAA4ClnB,EAAEvJ,EAAE0wB,0CAA0C3wB,GAAUE,EAC3Z,SAASq3B,GAAGt3B,EAAEC,EAAE0B,EAAE2H,GAAGtJ,EAAEC,EAAE6D,MAAM,oBAAoB7D,EAAEs3B,2BAA2Bt3B,EAAEs3B,0BAA0B51B,EAAE2H,GAAG,oBAAoBrJ,EAAEu3B,kCAAkCv3B,EAAEu3B,iCAAiC71B,EAAE2H,GAAGrJ,EAAE6D,QAAQ9D,GAAGu2B,GAAGO,oBAAoB72B,EAAEA,EAAE6D,MAAM,MAC/P,SAAS2zB,GAAGz3B,EAAEC,EAAE0B,EAAE2H,GAAG,IAAIC,EAAEvJ,EAAEoX,UAAU7N,EAAEmuB,MAAM/1B,EAAE4H,EAAEzF,MAAM9D,EAAEmZ,cAAc5P,EAAE8sB,KAAKF,GAAGtB,GAAG70B,GAAG,IAAID,EAAEE,EAAEm3B,YAAY,kBAAkBr3B,GAAG,OAAOA,EAAEwJ,EAAEkrB,QAAQD,GAAGz0B,IAAIA,EAAE4wB,GAAG1wB,GAAGqwB,GAAGD,GAAEhsB,QAAQkF,EAAEkrB,QAAQlE,GAAGvwB,EAAED,IAAI81B,GAAG71B,EAAE2B,EAAE4H,EAAED,GAAGC,EAAEzF,MAAM9D,EAAEmZ,cAA2C,oBAA7BpZ,EAAEE,EAAE03B,4BAAiDrB,GAAGt2B,EAAEC,EAAEF,EAAE4B,GAAG4H,EAAEzF,MAAM9D,EAAEmZ,eAAe,oBAAoBlZ,EAAE03B,0BAA0B,oBAAoBpuB,EAAEquB,yBAAyB,oBAAoBruB,EAAEsuB,2BAA2B,oBAAoBtuB,EAAEuuB,qBACve73B,EAAEsJ,EAAEzF,MAAM,oBAAoByF,EAAEuuB,oBAAoBvuB,EAAEuuB,qBAAqB,oBAAoBvuB,EAAEsuB,2BAA2BtuB,EAAEsuB,4BAA4B53B,IAAIsJ,EAAEzF,OAAOyyB,GAAGO,oBAAoBvtB,EAAEA,EAAEzF,MAAM,MAAM+xB,GAAG71B,EAAE2B,EAAE4H,EAAED,GAAGC,EAAEzF,MAAM9D,EAAEmZ,eAAe,oBAAoB5P,EAAEwuB,oBAAoB/3B,EAAEiZ,OAAO,GAAG,IAAI+e,GAAGh3B,MAAMgQ,QACvT,SAASinB,GAAGj4B,EAAEC,EAAE0B,GAAW,GAAG,QAAX3B,EAAE2B,EAAEu2B,MAAiB,oBAAoBl4B,GAAG,kBAAkBA,EAAE,CAAC,GAAG2B,EAAEw2B,OAAO,CAAY,GAAXx2B,EAAEA,EAAEw2B,OAAY,CAAC,GAAG,IAAIx2B,EAAEiM,IAAI,MAAMtF,MAAMpH,EAAE,MAAM,IAAIoI,EAAE3H,EAAEyV,UAAU,IAAI9N,EAAE,MAAMhB,MAAMpH,EAAE,IAAIlB,IAAI,IAAIuJ,EAAE,GAAGvJ,EAAE,OAAG,OAAOC,GAAG,OAAOA,EAAEi4B,KAAK,oBAAoBj4B,EAAEi4B,KAAKj4B,EAAEi4B,IAAIE,aAAa7uB,EAAStJ,EAAEi4B,KAAIj4B,EAAE,SAASD,GAAG,IAAIC,EAAEqJ,EAAE+sB,KAAKp2B,IAAIk2B,KAAKl2B,EAAEqJ,EAAE+sB,KAAK,IAAI,OAAOr2B,SAASC,EAAEsJ,GAAGtJ,EAAEsJ,GAAGvJ,GAAGC,EAAEm4B,WAAW7uB,EAAStJ,GAAE,GAAG,kBAAkBD,EAAE,MAAMsI,MAAMpH,EAAE,MAAM,IAAIS,EAAEw2B,OAAO,MAAM7vB,MAAMpH,EAAE,IAAIlB,IAAK,OAAOA,EAChe,SAASq4B,GAAGr4B,EAAEC,GAAG,GAAG,aAAaD,EAAE+J,KAAK,MAAMzB,MAAMpH,EAAE,GAAG,oBAAoBgF,OAAOE,UAAUwL,SAAS3J,KAAKhI,GAAG,qBAAqBiG,OAAOoB,KAAKrH,GAAGgH,KAAK,MAAM,IAAIhH,IAClK,SAASq4B,GAAGt4B,GAAG,SAASC,EAAEA,EAAE0B,GAAG,GAAG3B,EAAE,CAAC,IAAIsJ,EAAErJ,EAAEs4B,WAAW,OAAOjvB,GAAGA,EAAEkvB,WAAW72B,EAAE1B,EAAEs4B,WAAW52B,GAAG1B,EAAEw4B,YAAYx4B,EAAEs4B,WAAW52B,EAAEA,EAAE62B,WAAW,KAAK72B,EAAEsX,MAAM,GAAG,SAAStX,EAAEA,EAAE2H,GAAG,IAAItJ,EAAE,OAAO,KAAK,KAAK,OAAOsJ,GAAGrJ,EAAE0B,EAAE2H,GAAGA,EAAEA,EAAEkQ,QAAQ,OAAO,KAAK,SAASlQ,EAAEtJ,EAAEC,GAAG,IAAID,EAAE,IAAIqa,IAAI,OAAOpa,GAAG,OAAOA,EAAE+H,IAAIhI,EAAEoN,IAAInN,EAAE+H,IAAI/H,GAAGD,EAAEoN,IAAInN,EAAEy4B,MAAMz4B,GAAGA,EAAEA,EAAEuZ,QAAQ,OAAOxZ,EAAE,SAASuJ,EAAEvJ,EAAEC,GAAsC,OAAnCD,EAAE24B,GAAG34B,EAAEC,IAAKy4B,MAAM,EAAE14B,EAAEwZ,QAAQ,KAAYxZ,EAAE,SAASD,EAAEE,EAAE0B,EAAE2H,GAAa,OAAVrJ,EAAEy4B,MAAMpvB,EAAMtJ,EAA4B,QAAjBsJ,EAAErJ,EAAE8Y,YAA6BzP,EAAEA,EAAEovB,OAAQ/2B,GAAG1B,EAAEgZ,MAAM,EACpftX,GAAG2H,GAAErJ,EAAEgZ,MAAM,EAAStX,GADoaA,EACla,SAAS6H,EAAEvJ,GAAsC,OAAnCD,GAAG,OAAOC,EAAE8Y,YAAY9Y,EAAEgZ,MAAM,GAAUhZ,EAAE,SAASuN,EAAExN,EAAEC,EAAE0B,EAAE2H,GAAG,OAAG,OAAOrJ,GAAG,IAAIA,EAAE2N,MAAW3N,EAAE24B,GAAGj3B,EAAE3B,EAAE64B,KAAKvvB,IAAK0P,OAAOhZ,EAAEC,KAAEA,EAAEsJ,EAAEtJ,EAAE0B,IAAKqX,OAAOhZ,EAASC,GAAE,SAASsN,EAAEvN,EAAEC,EAAE0B,EAAE2H,GAAG,OAAG,OAAOrJ,GAAGA,EAAE64B,cAAcn3B,EAAEoI,OAAYT,EAAEC,EAAEtJ,EAAE0B,EAAE+1B,QAASQ,IAAID,GAAGj4B,EAAEC,EAAE0B,GAAG2H,EAAE0P,OAAOhZ,EAAEsJ,KAAEA,EAAEyvB,GAAGp3B,EAAEoI,KAAKpI,EAAEqG,IAAIrG,EAAE+1B,MAAM,KAAK13B,EAAE64B,KAAKvvB,IAAK4uB,IAAID,GAAGj4B,EAAEC,EAAE0B,GAAG2H,EAAE0P,OAAOhZ,EAASsJ,GAAE,SAAS+O,EAAErY,EAAEC,EAAE0B,EAAE2H,GAAG,OAAG,OAAOrJ,GAAG,IAAIA,EAAE2N,KAAK3N,EAAEmX,UAAUqE,gBAAgB9Z,EAAE8Z,eAAexb,EAAEmX,UAAU4hB,iBAAiBr3B,EAAEq3B,iBAAsB/4B,EACrgBg5B,GAAGt3B,EAAE3B,EAAE64B,KAAKvvB,IAAK0P,OAAOhZ,EAAEC,KAAEA,EAAEsJ,EAAEtJ,EAAE0B,EAAE0O,UAAU,KAAM2I,OAAOhZ,EAASC,GAAE,SAAS+G,EAAEhH,EAAEC,EAAE0B,EAAE2H,EAAEvJ,GAAG,OAAG,OAAOE,GAAG,IAAIA,EAAE2N,MAAW3N,EAAEi5B,GAAGv3B,EAAE3B,EAAE64B,KAAKvvB,EAAEvJ,IAAKiZ,OAAOhZ,EAAEC,KAAEA,EAAEsJ,EAAEtJ,EAAE0B,IAAKqX,OAAOhZ,EAASC,GAAE,SAAS61B,EAAE91B,EAAEC,EAAE0B,GAAG,GAAG,kBAAkB1B,GAAG,kBAAkBA,EAAE,OAAOA,EAAE24B,GAAG,GAAG34B,EAAED,EAAE64B,KAAKl3B,IAAKqX,OAAOhZ,EAAEC,EAAE,GAAG,kBAAkBA,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAE+N,UAAU,KAAK5C,EAAG,OAAOzJ,EAAEo3B,GAAG94B,EAAE8J,KAAK9J,EAAE+H,IAAI/H,EAAEy3B,MAAM,KAAK13B,EAAE64B,KAAKl3B,IAAKu2B,IAAID,GAAGj4B,EAAE,KAAKC,GAAG0B,EAAEqX,OAAOhZ,EAAE2B,EAAE,KAAK0J,EAAG,OAAOpL,EAAEg5B,GAAGh5B,EAAED,EAAE64B,KAAKl3B,IAAKqX,OAAOhZ,EAAEC,EAAE,GAAG+3B,GAAG/3B,IAAI0M,EAAG1M,GAAG,OAAOA,EAAEi5B,GAAGj5B,EACnfD,EAAE64B,KAAKl3B,EAAE,OAAQqX,OAAOhZ,EAAEC,EAAEo4B,GAAGr4B,EAAEC,GAAG,OAAO,KAAK,SAAS81B,EAAE/1B,EAAEC,EAAE0B,EAAE2H,GAAG,IAAIC,EAAE,OAAOtJ,EAAEA,EAAE+H,IAAI,KAAK,GAAG,kBAAkBrG,GAAG,kBAAkBA,EAAE,OAAO,OAAO4H,EAAE,KAAKiE,EAAExN,EAAEC,EAAE,GAAG0B,EAAE2H,GAAG,GAAG,kBAAkB3H,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAEqM,UAAU,KAAK5C,EAAG,OAAOzJ,EAAEqG,MAAMuB,EAAE5H,EAAEoI,OAAOuB,EAAGtE,EAAEhH,EAAEC,EAAE0B,EAAE+1B,MAAMrnB,SAAS/G,EAAEC,GAAGgE,EAAEvN,EAAEC,EAAE0B,EAAE2H,GAAG,KAAK,KAAK+B,EAAG,OAAO1J,EAAEqG,MAAMuB,EAAE8O,EAAErY,EAAEC,EAAE0B,EAAE2H,GAAG,KAAK,GAAG0uB,GAAGr2B,IAAIgL,EAAGhL,GAAG,OAAO,OAAO4H,EAAE,KAAKvC,EAAEhH,EAAEC,EAAE0B,EAAE2H,EAAE,MAAM+uB,GAAGr4B,EAAE2B,GAAG,OAAO,KAAK,SAASq0B,EAAEh2B,EAAEC,EAAE0B,EAAE2H,EAAEC,GAAG,GAAG,kBAAkBD,GAAG,kBAAkBA,EAAE,OAClekE,EAAEvN,EADueD,EAAEA,EAAE2O,IAAIhN,IACtf,KAAW,GAAG2H,EAAEC,GAAG,GAAG,kBAAkBD,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAE0E,UAAU,KAAK5C,EAAG,OAAOpL,EAAEA,EAAE2O,IAAI,OAAOrF,EAAEtB,IAAIrG,EAAE2H,EAAEtB,MAAM,KAAKsB,EAAES,OAAOuB,EAAGtE,EAAE/G,EAAED,EAAEsJ,EAAEouB,MAAMrnB,SAAS9G,EAAED,EAAEtB,KAAKuF,EAAEtN,EAAED,EAAEsJ,EAAEC,GAAG,KAAK8B,EAAG,OAA2CgN,EAAEpY,EAAtCD,EAAEA,EAAE2O,IAAI,OAAOrF,EAAEtB,IAAIrG,EAAE2H,EAAEtB,MAAM,KAAWsB,EAAEC,GAAG,GAAGyuB,GAAG1uB,IAAIqD,EAAGrD,GAAG,OAAwBtC,EAAE/G,EAAnBD,EAAEA,EAAE2O,IAAIhN,IAAI,KAAW2H,EAAEC,EAAE,MAAM8uB,GAAGp4B,EAAEqJ,GAAG,OAAO,KAAK,SAASxI,EAAEyI,EAAEC,EAAEgE,EAAED,GAAG,IAAI,IAAI8K,EAAE,KAAKuV,EAAE,KAAKF,EAAElkB,EAAEikB,EAAEjkB,EAAE,EAAEmkB,EAAE,KAAK,OAAOD,GAAGD,EAAEjgB,EAAElM,OAAOmsB,IAAI,CAACC,EAAEgL,MAAMjL,GAAGE,EAAED,EAAEA,EAAE,MAAMC,EAAED,EAAElU,QAAQ,IAAIxS,EAAE+uB,EAAExsB,EAAEmkB,EAAElgB,EAAEigB,GAAGlgB,GAAG,GAAG,OAAOvG,EAAE,CAAC,OAAO0mB,IAAIA,EAAEC,GAAG,MAAM3tB,GAAG0tB,GAAG,OACjf1mB,EAAE+R,WAAW9Y,EAAEsJ,EAAEmkB,GAAGlkB,EAAEzJ,EAAEiH,EAAEwC,EAAEikB,GAAG,OAAOG,EAAEvV,EAAErR,EAAE4mB,EAAEpU,QAAQxS,EAAE4mB,EAAE5mB,EAAE0mB,EAAEC,EAAE,GAAGF,IAAIjgB,EAAElM,OAAO,OAAOK,EAAE4H,EAAEmkB,GAAGrV,EAAE,GAAG,OAAOqV,EAAE,CAAC,KAAKD,EAAEjgB,EAAElM,OAAOmsB,IAAkB,QAAdC,EAAEoI,EAAEvsB,EAAEiE,EAAEigB,GAAGlgB,MAAc/D,EAAEzJ,EAAE2tB,EAAElkB,EAAEikB,GAAG,OAAOG,EAAEvV,EAAEqV,EAAEE,EAAEpU,QAAQkU,EAAEE,EAAEF,GAAG,OAAOrV,EAAE,IAAIqV,EAAEpkB,EAAEC,EAAEmkB,GAAGD,EAAEjgB,EAAElM,OAAOmsB,IAAsB,QAAlBE,EAAEqI,EAAEtI,EAAEnkB,EAAEkkB,EAAEjgB,EAAEigB,GAAGlgB,MAAcvN,GAAG,OAAO2tB,EAAE5U,WAAW2U,EAAE1S,OAAO,OAAO2S,EAAE3lB,IAAIylB,EAAEE,EAAE3lB,KAAKwB,EAAEzJ,EAAE4tB,EAAEnkB,EAAEikB,GAAG,OAAOG,EAAEvV,EAAEsV,EAAEC,EAAEpU,QAAQmU,EAAEC,EAAED,GAA4C,OAAzC3tB,GAAG0tB,EAAEtmB,SAAQ,SAASpH,GAAG,OAAOC,EAAEsJ,EAAEvJ,MAAYqY,EAAE,SAASmV,EAAEjkB,EAAEC,EAAEgE,EAAED,GAAG,IAAI8K,EAAE1L,EAAGa,GAAG,GAAG,oBAAoB6K,EAAE,MAAM/P,MAAMpH,EAAE,MAAkB,GAAG,OAAfsM,EAAE6K,EAAEpQ,KAAKuF,IAC1e,MAAMlF,MAAMpH,EAAE,MAAM,IAAI,IAAI0sB,EAAEvV,EAAE,KAAKqV,EAAElkB,EAAEikB,EAAEjkB,EAAE,EAAEmkB,EAAE,KAAK3mB,EAAEwG,EAAElJ,OAAO,OAAOopB,IAAI1mB,EAAEmyB,KAAK1L,IAAIzmB,EAAEwG,EAAElJ,OAAO,CAACopB,EAAEgL,MAAMjL,GAAGE,EAAED,EAAEA,EAAE,MAAMC,EAAED,EAAElU,QAAQ,IAAIgU,EAAEuI,EAAExsB,EAAEmkB,EAAE1mB,EAAEtF,MAAM6L,GAAG,GAAG,OAAOigB,EAAE,CAAC,OAAOE,IAAIA,EAAEC,GAAG,MAAM3tB,GAAG0tB,GAAG,OAAOF,EAAEzU,WAAW9Y,EAAEsJ,EAAEmkB,GAAGlkB,EAAEzJ,EAAEytB,EAAEhkB,EAAEikB,GAAG,OAAOG,EAAEvV,EAAEmV,EAAEI,EAAEpU,QAAQgU,EAAEI,EAAEJ,EAAEE,EAAEC,EAAE,GAAG3mB,EAAEmyB,KAAK,OAAOx3B,EAAE4H,EAAEmkB,GAAGrV,EAAE,GAAG,OAAOqV,EAAE,CAAC,MAAM1mB,EAAEmyB,KAAK1L,IAAIzmB,EAAEwG,EAAElJ,OAAwB,QAAjB0C,EAAE8uB,EAAEvsB,EAAEvC,EAAEtF,MAAM6L,MAAc/D,EAAEzJ,EAAEiH,EAAEwC,EAAEikB,GAAG,OAAOG,EAAEvV,EAAErR,EAAE4mB,EAAEpU,QAAQxS,EAAE4mB,EAAE5mB,GAAG,OAAOqR,EAAE,IAAIqV,EAAEpkB,EAAEC,EAAEmkB,IAAI1mB,EAAEmyB,KAAK1L,IAAIzmB,EAAEwG,EAAElJ,OAA4B,QAArB0C,EAAEgvB,EAAEtI,EAAEnkB,EAAEkkB,EAAEzmB,EAAEtF,MAAM6L,MAAcvN,GAAG,OAAOgH,EAAE+R,WAChf2U,EAAE1S,OAAO,OAAOhU,EAAEgB,IAAIylB,EAAEzmB,EAAEgB,KAAKwB,EAAEzJ,EAAEiH,EAAEwC,EAAEikB,GAAG,OAAOG,EAAEvV,EAAErR,EAAE4mB,EAAEpU,QAAQxS,EAAE4mB,EAAE5mB,GAA4C,OAAzChH,GAAG0tB,EAAEtmB,SAAQ,SAASpH,GAAG,OAAOC,EAAEsJ,EAAEvJ,MAAYqY,EAAE,OAAO,SAASrY,EAAEsJ,EAAEvJ,EAAEyN,GAAG,IAAID,EAAE,kBAAkBxN,GAAG,OAAOA,GAAGA,EAAEgK,OAAOuB,GAAI,OAAOvL,EAAEiI,IAAIuF,IAAIxN,EAAEA,EAAE23B,MAAMrnB,UAAU,IAAIgI,EAAE,kBAAkBtY,GAAG,OAAOA,EAAE,GAAGsY,EAAE,OAAOtY,EAAEiO,UAAU,KAAK5C,EAAGpL,EAAE,CAAS,IAARqY,EAAEtY,EAAEiI,IAAQuF,EAAEjE,EAAE,OAAOiE,GAAG,CAAC,GAAGA,EAAEvF,MAAMqQ,EAAE,CAAC,GAAmB,IAAZ9K,EAAEK,KAAY,GAAG7N,EAAEgK,OAAOuB,EAAG,CAAC3J,EAAE3B,EAAEuN,EAAEiM,UAASlQ,EAAEC,EAAEgE,EAAExN,EAAE23B,MAAMrnB,WAAY2I,OAAOhZ,EAAEA,EAAEsJ,EAAE,MAAMtJ,QAAgB,GAAGuN,EAAEurB,cAAc/4B,EAAEgK,KAAK,CAACpI,EAAE3B,EAAEuN,EAAEiM,UAC5elQ,EAAEC,EAAEgE,EAAExN,EAAE23B,QAASQ,IAAID,GAAGj4B,EAAEuN,EAAExN,GAAGuJ,EAAE0P,OAAOhZ,EAAEA,EAAEsJ,EAAE,MAAMtJ,EAAG2B,EAAE3B,EAAEuN,GAAG,MAAWtN,EAAED,EAAEuN,GAAGA,EAAEA,EAAEiM,QAAQzZ,EAAEgK,OAAOuB,IAAIhC,EAAE4vB,GAAGn5B,EAAE23B,MAAMrnB,SAASrQ,EAAE64B,KAAKrrB,EAAEzN,EAAEiI,MAAOgR,OAAOhZ,EAAEA,EAAEsJ,KAAIkE,EAAEurB,GAAGh5B,EAAEgK,KAAKhK,EAAEiI,IAAIjI,EAAE23B,MAAM,KAAK13B,EAAE64B,KAAKrrB,IAAK0qB,IAAID,GAAGj4B,EAAEsJ,EAAEvJ,GAAGyN,EAAEwL,OAAOhZ,EAAEA,EAAEwN,GAAG,OAAOhE,EAAExJ,GAAG,KAAKqL,EAAGrL,EAAE,CAAC,IAAIuN,EAAExN,EAAEiI,IAAI,OAAOsB,GAAG,CAAC,GAAGA,EAAEtB,MAAMuF,EAAX,CAAa,GAAG,IAAIjE,EAAEsE,KAAKtE,EAAE8N,UAAUqE,gBAAgB1b,EAAE0b,eAAenS,EAAE8N,UAAU4hB,iBAAiBj5B,EAAEi5B,eAAe,CAACr3B,EAAE3B,EAAEsJ,EAAEkQ,UAASlQ,EAAEC,EAAED,EAAEvJ,EAAEsQ,UAAU,KAAM2I,OAAOhZ,EAAEA,EAAEsJ,EAAE,MAAMtJ,EAAO2B,EAAE3B,EAAEsJ,GAAG,MAAWrJ,EAAED,EAAEsJ,GAAGA,EAAEA,EAAEkQ,SAAQlQ,EACpf2vB,GAAGl5B,EAAEC,EAAE64B,KAAKrrB,IAAKwL,OAAOhZ,EAAEA,EAAEsJ,EAAE,OAAOE,EAAExJ,GAAG,GAAG,kBAAkBD,GAAG,kBAAkBA,EAAE,OAAOA,EAAE,GAAGA,EAAE,OAAOuJ,GAAG,IAAIA,EAAEsE,KAAKjM,EAAE3B,EAAEsJ,EAAEkQ,UAASlQ,EAAEC,EAAED,EAAEvJ,IAAKiZ,OAAOhZ,EAAEA,EAAEsJ,IAAI3H,EAAE3B,EAAEsJ,IAAGA,EAAEsvB,GAAG74B,EAAEC,EAAE64B,KAAKrrB,IAAKwL,OAAOhZ,EAAEA,EAAEsJ,GAAGE,EAAExJ,GAAG,GAAGg4B,GAAGj4B,GAAG,OAAOe,EAAEd,EAAEsJ,EAAEvJ,EAAEyN,GAAG,GAAGb,EAAG5M,GAAG,OAAOytB,EAAExtB,EAAEsJ,EAAEvJ,EAAEyN,GAAc,GAAX6K,GAAGggB,GAAGr4B,EAAED,GAAM,qBAAqBA,IAAIwN,EAAE,OAAOvN,EAAE4N,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,MAAMtF,MAAMpH,EAAE,IAAI6M,EAAG/N,EAAE+J,OAAO,cAAe,OAAOpI,EAAE3B,EAAEsJ,IAAI,IAAI8vB,GAAGd,IAAG,GAAIe,GAAGf,IAAG,GAAIgB,GAAG,GAAGC,GAAGtJ,GAAGqJ,IAAIE,GAAGvJ,GAAGqJ,IAAIG,GAAGxJ,GAAGqJ,IACtd,SAASI,GAAG15B,GAAG,GAAGA,IAAIs5B,GAAG,MAAMhxB,MAAMpH,EAAE,MAAM,OAAOlB,EAAE,SAAS25B,GAAG35B,EAAEC,GAAyC,OAAtCkwB,GAAEsJ,GAAGx5B,GAAGkwB,GAAEqJ,GAAGx5B,GAAGmwB,GAAEoJ,GAAGD,IAAIt5B,EAAEC,EAAEmS,UAAmB,KAAK,EAAE,KAAK,GAAGnS,GAAGA,EAAEA,EAAE25B,iBAAiB35B,EAAEwR,aAAaH,GAAG,KAAK,IAAI,MAAM,QAAkErR,EAAEqR,GAArCrR,GAAvBD,EAAE,IAAIA,EAAEC,EAAE6W,WAAW7W,GAAMwR,cAAc,KAAKzR,EAAEA,EAAE65B,SAAkB3J,GAAEqJ,IAAIpJ,GAAEoJ,GAAGt5B,GAAG,SAAS65B,KAAK5J,GAAEqJ,IAAIrJ,GAAEsJ,IAAItJ,GAAEuJ,IAAI,SAASM,GAAG/5B,GAAG05B,GAAGD,GAAGp1B,SAAS,IAAIpE,EAAEy5B,GAAGH,GAAGl1B,SAAa1C,EAAE2P,GAAGrR,EAAED,EAAE+J,MAAM9J,IAAI0B,IAAIwuB,GAAEqJ,GAAGx5B,GAAGmwB,GAAEoJ,GAAG53B,IAAI,SAASq4B,GAAGh6B,GAAGw5B,GAAGn1B,UAAUrE,IAAIkwB,GAAEqJ,IAAIrJ,GAAEsJ,KAAK,IAAIS,GAAEhK,GAAG,GAC9c,SAASiK,GAAGl6B,GAAG,IAAI,IAAIC,EAAED,EAAE,OAAOC,GAAG,CAAC,GAAG,KAAKA,EAAE2N,IAAI,CAAC,IAAIjM,EAAE1B,EAAEkZ,cAAc,GAAG,OAAOxX,IAAmB,QAAfA,EAAEA,EAAEyX,aAAqB,OAAOzX,EAAEiiB,MAAM,OAAOjiB,EAAEiiB,MAAM,OAAO3jB,OAAO,GAAG,KAAKA,EAAE2N,UAAK,IAAS3N,EAAEk6B,cAAcC,aAAa,GAAG,KAAa,GAARn6B,EAAEgZ,OAAU,OAAOhZ,OAAO,GAAG,OAAOA,EAAEsZ,MAAM,CAACtZ,EAAEsZ,MAAMP,OAAO/Y,EAAEA,EAAEA,EAAEsZ,MAAM,SAAS,GAAGtZ,IAAID,EAAE,MAAM,KAAK,OAAOC,EAAEuZ,SAAS,CAAC,GAAG,OAAOvZ,EAAE+Y,QAAQ/Y,EAAE+Y,SAAShZ,EAAE,OAAO,KAAKC,EAAEA,EAAE+Y,OAAO/Y,EAAEuZ,QAAQR,OAAO/Y,EAAE+Y,OAAO/Y,EAAEA,EAAEuZ,QAAQ,OAAO,KAAK,IAAI6gB,GAAG,KAAKC,GAAG,KAAKC,IAAG,EACpd,SAASC,GAAGx6B,EAAEC,GAAG,IAAI0B,EAAE84B,GAAG,EAAE,KAAK,KAAK,GAAG94B,EAAEm3B,YAAY,UAAUn3B,EAAEoI,KAAK,UAAUpI,EAAEyV,UAAUnX,EAAE0B,EAAEqX,OAAOhZ,EAAE2B,EAAEsX,MAAM,EAAE,OAAOjZ,EAAEu4B,YAAYv4B,EAAEu4B,WAAWC,WAAW72B,EAAE3B,EAAEu4B,WAAW52B,GAAG3B,EAAEy4B,YAAYz4B,EAAEu4B,WAAW52B,EAAE,SAAS+4B,GAAG16B,EAAEC,GAAG,OAAOD,EAAE4N,KAAK,KAAK,EAAE,IAAIjM,EAAE3B,EAAE+J,KAAyE,OAAO,QAA3E9J,EAAE,IAAIA,EAAEmS,UAAUzQ,EAAEwI,gBAAgBlK,EAAEqO,SAASnE,cAAc,KAAKlK,KAAmBD,EAAEoX,UAAUnX,GAAE,GAAO,KAAK,EAAE,OAAoD,QAA7CA,EAAE,KAAKD,EAAE26B,cAAc,IAAI16B,EAAEmS,SAAS,KAAKnS,KAAYD,EAAEoX,UAAUnX,GAAE,GAAwB,QAAQ,OAAM,GACve,SAAS26B,GAAG56B,GAAG,GAAGu6B,GAAG,CAAC,IAAIt6B,EAAEq6B,GAAG,GAAGr6B,EAAE,CAAC,IAAI0B,EAAE1B,EAAE,IAAIy6B,GAAG16B,EAAEC,GAAG,CAAqB,KAApBA,EAAEsvB,GAAG5tB,EAAE+oB,gBAAqBgQ,GAAG16B,EAAEC,GAAuC,OAAnCD,EAAEiZ,OAAe,KAATjZ,EAAEiZ,MAAY,EAAEshB,IAAG,OAAGF,GAAGr6B,GAASw6B,GAAGH,GAAG14B,GAAG04B,GAAGr6B,EAAEs6B,GAAG/K,GAAGtvB,EAAE4R,iBAAiB7R,EAAEiZ,OAAe,KAATjZ,EAAEiZ,MAAY,EAAEshB,IAAG,EAAGF,GAAGr6B,GAAG,SAAS66B,GAAG76B,GAAG,IAAIA,EAAEA,EAAEgZ,OAAO,OAAOhZ,GAAG,IAAIA,EAAE4N,KAAK,IAAI5N,EAAE4N,KAAK,KAAK5N,EAAE4N,KAAK5N,EAAEA,EAAEgZ,OAAOqhB,GAAGr6B,EAC5S,SAAS86B,GAAG96B,GAAG,GAAGA,IAAIq6B,GAAG,OAAM,EAAG,IAAIE,GAAG,OAAOM,GAAG76B,GAAGu6B,IAAG,GAAG,EAAG,IAAIt6B,EAAED,EAAE+J,KAAK,GAAG,IAAI/J,EAAE4N,KAAK,SAAS3N,GAAG,SAASA,IAAI+uB,GAAG/uB,EAAED,EAAEm6B,eAAe,IAAIl6B,EAAEq6B,GAAGr6B,GAAGu6B,GAAGx6B,EAAEC,GAAGA,EAAEsvB,GAAGtvB,EAAEyqB,aAAmB,GAANmQ,GAAG76B,GAAM,KAAKA,EAAE4N,IAAI,CAAgD,KAA7B5N,EAAE,QAApBA,EAAEA,EAAEmZ,eAAyBnZ,EAAEoZ,WAAW,MAAW,MAAM9Q,MAAMpH,EAAE,MAAMlB,EAAE,CAAiB,IAAhBA,EAAEA,EAAE0qB,YAAgBzqB,EAAE,EAAED,GAAG,CAAC,GAAG,IAAIA,EAAEoS,SAAS,CAAC,IAAIzQ,EAAE3B,EAAE4jB,KAAK,GAAG,OAAOjiB,EAAE,CAAC,GAAG,IAAI1B,EAAE,CAACq6B,GAAG/K,GAAGvvB,EAAE0qB,aAAa,MAAM1qB,EAAEC,QAAQ,MAAM0B,GAAG,OAAOA,GAAG,OAAOA,GAAG1B,IAAID,EAAEA,EAAE0qB,YAAY4P,GAAG,WAAWA,GAAGD,GAAG9K,GAAGvvB,EAAEoX,UAAUsT,aAAa,KAAK,OAAM,EACtf,SAASqQ,KAAKT,GAAGD,GAAG,KAAKE,IAAG,EAAG,IAAIS,GAAG,GAAG,SAASC,KAAK,IAAI,IAAIj7B,EAAE,EAAEA,EAAEg7B,GAAG15B,OAAOtB,IAAIg7B,GAAGh7B,GAAGk7B,8BAA8B,KAAKF,GAAG15B,OAAO,EAAE,IAAI65B,GAAGjwB,EAAGkwB,uBAAuBC,GAAGnwB,EAAGqoB,wBAAwB+H,GAAG,EAAEC,GAAE,KAAKC,GAAE,KAAKC,GAAE,KAAKC,IAAG,EAAGC,IAAG,EAAG,SAASC,KAAK,MAAMtzB,MAAMpH,EAAE,MAAO,SAAS26B,GAAG77B,EAAEC,GAAG,GAAG,OAAOA,EAAE,OAAM,EAAG,IAAI,IAAI0B,EAAE,EAAEA,EAAE1B,EAAEqB,QAAQK,EAAE3B,EAAEsB,OAAOK,IAAI,IAAIwoB,GAAGnqB,EAAE2B,GAAG1B,EAAE0B,IAAI,OAAM,EAAG,OAAM,EAC9X,SAASm6B,GAAG97B,EAAEC,EAAE0B,EAAE2H,EAAEC,EAAExJ,GAAyH,GAAtHu7B,GAAGv7B,EAAEw7B,GAAEt7B,EAAEA,EAAEkZ,cAAc,KAAKlZ,EAAE60B,YAAY,KAAK70B,EAAEq0B,MAAM,EAAE6G,GAAG92B,QAAQ,OAAOrE,GAAG,OAAOA,EAAEmZ,cAAc4iB,GAAGC,GAAGh8B,EAAE2B,EAAE2H,EAAEC,GAAMoyB,GAAG,CAAC57B,EAAE,EAAE,EAAE,CAAO,GAAN47B,IAAG,IAAQ,GAAG57B,GAAG,MAAMuI,MAAMpH,EAAE,MAAMnB,GAAG,EAAE07B,GAAED,GAAE,KAAKv7B,EAAE60B,YAAY,KAAKqG,GAAG92B,QAAQ43B,GAAGj8B,EAAE2B,EAAE2H,EAAEC,SAASoyB,IAAkE,GAA9DR,GAAG92B,QAAQ63B,GAAGj8B,EAAE,OAAOu7B,IAAG,OAAOA,GAAEl3B,KAAKg3B,GAAG,EAAEG,GAAED,GAAED,GAAE,KAAKG,IAAG,EAAMz7B,EAAE,MAAMqI,MAAMpH,EAAE,MAAM,OAAOlB,EAAE,SAASm8B,KAAK,IAAIn8B,EAAE,CAACmZ,cAAc,KAAK4b,UAAU,KAAKqH,UAAU,KAAKC,MAAM,KAAK/3B,KAAK,MAA8C,OAAxC,OAAOm3B,GAAEF,GAAEpiB,cAAcsiB,GAAEz7B,EAAEy7B,GAAEA,GAAEn3B,KAAKtE,EAASy7B,GAC/e,SAASa,KAAK,GAAG,OAAOd,GAAE,CAAC,IAAIx7B,EAAEu7B,GAAExiB,UAAU/Y,EAAE,OAAOA,EAAEA,EAAEmZ,cAAc,UAAUnZ,EAAEw7B,GAAEl3B,KAAK,IAAIrE,EAAE,OAAOw7B,GAAEF,GAAEpiB,cAAcsiB,GAAEn3B,KAAK,GAAG,OAAOrE,EAAEw7B,GAAEx7B,EAAEu7B,GAAEx7B,MAAM,CAAC,GAAG,OAAOA,EAAE,MAAMsI,MAAMpH,EAAE,MAAUlB,EAAE,CAACmZ,eAAPqiB,GAAEx7B,GAAqBmZ,cAAc4b,UAAUyG,GAAEzG,UAAUqH,UAAUZ,GAAEY,UAAUC,MAAMb,GAAEa,MAAM/3B,KAAK,MAAM,OAAOm3B,GAAEF,GAAEpiB,cAAcsiB,GAAEz7B,EAAEy7B,GAAEA,GAAEn3B,KAAKtE,EAAE,OAAOy7B,GAAE,SAASc,GAAGv8B,EAAEC,GAAG,MAAM,oBAAoBA,EAAEA,EAAED,GAAGC,EACvY,SAASu8B,GAAGx8B,GAAG,IAAIC,EAAEq8B,KAAK36B,EAAE1B,EAAEo8B,MAAM,GAAG,OAAO16B,EAAE,MAAM2G,MAAMpH,EAAE,MAAMS,EAAE86B,oBAAoBz8B,EAAE,IAAIsJ,EAAEkyB,GAAEjyB,EAAED,EAAE8yB,UAAUr8B,EAAE4B,EAAEwzB,QAAQ,GAAG,OAAOp1B,EAAE,CAAC,GAAG,OAAOwJ,EAAE,CAAC,IAAIC,EAAED,EAAEjF,KAAKiF,EAAEjF,KAAKvE,EAAEuE,KAAKvE,EAAEuE,KAAKkF,EAAEF,EAAE8yB,UAAU7yB,EAAExJ,EAAE4B,EAAEwzB,QAAQ,KAAK,GAAG,OAAO5rB,EAAE,CAACA,EAAEA,EAAEjF,KAAKgF,EAAEA,EAAEyrB,UAAU,IAAIvnB,EAAEhE,EAAEzJ,EAAE,KAAKwN,EAAEhE,EAAE,EAAE,CAAC,IAAI8O,EAAE9K,EAAEioB,KAAK,IAAI8F,GAAGjjB,KAAKA,EAAE,OAAO7K,IAAIA,EAAEA,EAAElJ,KAAK,CAACkxB,KAAK,EAAEkH,OAAOnvB,EAAEmvB,OAAOC,aAAapvB,EAAEovB,aAAaC,WAAWrvB,EAAEqvB,WAAWt4B,KAAK,OAAOgF,EAAEiE,EAAEovB,eAAe38B,EAAEuN,EAAEqvB,WAAW58B,EAAEsJ,EAAEiE,EAAEmvB,YAAY,CAAC,IAAI11B,EAAE,CAACwuB,KAAKnd,EAAEqkB,OAAOnvB,EAAEmvB,OAAOC,aAAapvB,EAAEovB,aAC9fC,WAAWrvB,EAAEqvB,WAAWt4B,KAAK,MAAM,OAAOkJ,GAAGhE,EAAEgE,EAAExG,EAAEjH,EAAEuJ,GAAGkE,EAAEA,EAAElJ,KAAK0C,EAAEu0B,GAAEjH,OAAOjc,EAAE4d,IAAI5d,EAAE9K,EAAEA,EAAEjJ,WAAW,OAAOiJ,GAAGA,IAAIhE,GAAG,OAAOiE,EAAEzN,EAAEuJ,EAAEkE,EAAElJ,KAAKkF,EAAE2gB,GAAG7gB,EAAErJ,EAAEkZ,iBAAiBob,IAAG,GAAIt0B,EAAEkZ,cAAc7P,EAAErJ,EAAE80B,UAAUh1B,EAAEE,EAAEm8B,UAAU5uB,EAAE7L,EAAEk7B,kBAAkBvzB,EAAE,MAAM,CAACrJ,EAAEkZ,cAAcxX,EAAEm7B,UACtQ,SAASC,GAAG/8B,GAAG,IAAIC,EAAEq8B,KAAK36B,EAAE1B,EAAEo8B,MAAM,GAAG,OAAO16B,EAAE,MAAM2G,MAAMpH,EAAE,MAAMS,EAAE86B,oBAAoBz8B,EAAE,IAAIsJ,EAAE3H,EAAEm7B,SAASvzB,EAAE5H,EAAEwzB,QAAQp1B,EAAEE,EAAEkZ,cAAc,GAAG,OAAO5P,EAAE,CAAC5H,EAAEwzB,QAAQ,KAAK,IAAI3rB,EAAED,EAAEA,EAAEjF,KAAK,GAAGvE,EAAEC,EAAED,EAAEyJ,EAAEkzB,QAAQlzB,EAAEA,EAAElF,WAAWkF,IAAID,GAAG4gB,GAAGpqB,EAAEE,EAAEkZ,iBAAiBob,IAAG,GAAIt0B,EAAEkZ,cAAcpZ,EAAE,OAAOE,EAAEm8B,YAAYn8B,EAAE80B,UAAUh1B,GAAG4B,EAAEk7B,kBAAkB98B,EAAE,MAAM,CAACA,EAAEuJ,GACnV,SAAS0zB,GAAGh9B,EAAEC,EAAE0B,GAAG,IAAI2H,EAAErJ,EAAEg9B,YAAY3zB,EAAEA,EAAErJ,EAAEi9B,SAAS,IAAI3zB,EAAEtJ,EAAEi7B,8BAAyI,GAAxG,OAAO3xB,EAAEvJ,EAAEuJ,IAAID,GAAUtJ,EAAEA,EAAEm9B,kBAAiBn9B,GAAGs7B,GAAGt7B,KAAKA,KAAEC,EAAEi7B,8BAA8B5xB,EAAE0xB,GAAGj3B,KAAK9D,KAAMD,EAAE,OAAO2B,EAAE1B,EAAEi9B,SAAoB,MAAXlC,GAAGj3B,KAAK9D,GAASqI,MAAMpH,EAAE,MACzP,SAASk8B,GAAGp9B,EAAEC,EAAE0B,EAAE2H,GAAG,IAAIC,EAAE8zB,GAAE,GAAG,OAAO9zB,EAAE,MAAMjB,MAAMpH,EAAE,MAAM,IAAInB,EAAEE,EAAEg9B,YAAYzzB,EAAEzJ,EAAEE,EAAEi9B,SAAS1vB,EAAE2tB,GAAG92B,QAAQkJ,EAAEC,EAAE8vB,UAAS,WAAW,OAAON,GAAGzzB,EAAEtJ,EAAE0B,MAAK0W,EAAE9K,EAAE,GAAGvG,EAAEuG,EAAE,GAAGA,EAAEkuB,GAAE,IAAI3F,EAAE91B,EAAEmZ,cAAc4c,EAAED,EAAEO,KAAKL,EAAED,EAAEwH,YAAYz8B,EAAEg1B,EAAEpuB,OAAOouB,EAAEA,EAAE0H,UAAU,IAAIhQ,EAAE+N,GACuO,OADrOv7B,EAAEmZ,cAAc,CAACkd,KAAKN,EAAEruB,OAAOzH,EAAEu9B,UAAUl0B,GAAGkE,EAAEiwB,WAAU,WAAW1H,EAAEwH,YAAY57B,EAAEo0B,EAAE2H,YAAYrlB,EAAE,IAAIrY,EAAED,EAAEE,EAAEi9B,SAAS,IAAI/S,GAAG3gB,EAAExJ,GAAG,CAACA,EAAE2B,EAAE1B,EAAEi9B,SAAS/S,GAAGnjB,EAAEhH,KAAKqY,EAAErY,GAAGA,EAAE42B,GAAGpJ,GAAGjkB,EAAE4zB,kBAAkBn9B,EAAEuJ,EAAEoU,cAAc3d,EAAEuJ,EAAE4zB,iBAAiB5zB,EAAEyU,gBAAgBhe,EAAE,IAAI,IAAIsJ,EAC5fC,EAAE0U,cAAczQ,EAAExN,EAAE,EAAEwN,GAAG,CAAC,IAAID,EAAE,GAAGwQ,GAAGvQ,GAAGqgB,EAAE,GAAGtgB,EAAEjE,EAAEiE,IAAIvN,EAAEwN,IAAIqgB,MAAK,CAAClsB,EAAE1B,EAAEqJ,IAAIkE,EAAEiwB,WAAU,WAAW,OAAOn0B,EAAErJ,EAAEi9B,SAAQ,WAAW,IAAIl9B,EAAE+1B,EAAEwH,YAAY57B,EAAEo0B,EAAE2H,YAAY,IAAI/7B,EAAE3B,EAAEC,EAAEi9B,UAAU,IAAI5zB,EAAEstB,GAAGpJ,GAAGjkB,EAAE4zB,kBAAkB7zB,EAAEC,EAAEoU,aAAa,MAAMgQ,GAAGhsB,GAAE,WAAW,MAAMgsB,WAAS,CAAC1tB,EAAEqJ,IAAI6gB,GAAG6L,EAAEr0B,IAAIwoB,GAAGrpB,EAAEb,IAAIkqB,GAAG2L,EAAExsB,MAAKtJ,EAAE,CAACm1B,QAAQ,KAAK2H,SAAS,KAAKL,oBAAoBF,GAAGM,kBAAkB71B,IAAK81B,SAASzkB,EAAEslB,GAAGxe,KAAK,KAAKoc,GAAEv7B,GAAGuN,EAAE8uB,MAAMr8B,EAAEuN,EAAE6uB,UAAU,KAAKp1B,EAAEg2B,GAAGzzB,EAAEtJ,EAAE0B,GAAG4L,EAAE4L,cAAc5L,EAAEwnB,UAAU/tB,GAAUA,EACte,SAAS42B,GAAG59B,EAAEC,EAAE0B,GAAc,OAAOy7B,GAAZd,KAAiBt8B,EAAEC,EAAE0B,GAAG,SAASk8B,GAAG79B,GAAG,IAAIC,EAAEk8B,KAAmL,MAA9K,oBAAoBn8B,IAAIA,EAAEA,KAAKC,EAAEkZ,cAAclZ,EAAE80B,UAAU/0B,EAAoFA,GAAlFA,EAAEC,EAAEo8B,MAAM,CAAClH,QAAQ,KAAK2H,SAAS,KAAKL,oBAAoBF,GAAGM,kBAAkB78B,IAAO88B,SAASa,GAAGxe,KAAK,KAAKoc,GAAEv7B,GAAS,CAACC,EAAEkZ,cAAcnZ,GAChR,SAAS89B,GAAG99B,EAAEC,EAAE0B,EAAE2H,GAAkO,OAA/NtJ,EAAE,CAAC4N,IAAI5N,EAAE+9B,OAAO99B,EAAE+9B,QAAQr8B,EAAEs8B,KAAK30B,EAAEhF,KAAK,MAAsB,QAAhBrE,EAAEs7B,GAAEzG,cAAsB70B,EAAE,CAACs4B,WAAW,MAAMgD,GAAEzG,YAAY70B,EAAEA,EAAEs4B,WAAWv4B,EAAEsE,KAAKtE,GAAmB,QAAf2B,EAAE1B,EAAEs4B,YAAoBt4B,EAAEs4B,WAAWv4B,EAAEsE,KAAKtE,GAAGsJ,EAAE3H,EAAE2C,KAAK3C,EAAE2C,KAAKtE,EAAEA,EAAEsE,KAAKgF,EAAErJ,EAAEs4B,WAAWv4B,GAAWA,EAAE,SAASk+B,GAAGl+B,GAA4B,OAAdA,EAAE,CAACqE,QAAQrE,GAAhBm8B,KAA4BhjB,cAAcnZ,EAAE,SAASm+B,KAAK,OAAO7B,KAAKnjB,cAAc,SAASilB,GAAGp+B,EAAEC,EAAE0B,EAAE2H,GAAG,IAAIC,EAAE4yB,KAAKZ,GAAEtiB,OAAOjZ,EAAEuJ,EAAE4P,cAAc2kB,GAAG,EAAE79B,EAAE0B,OAAE,OAAO,IAAS2H,EAAE,KAAKA,GACjc,SAAS+0B,GAAGr+B,EAAEC,EAAE0B,EAAE2H,GAAG,IAAIC,EAAE+yB,KAAKhzB,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAIvJ,OAAE,EAAO,GAAG,OAAOy7B,GAAE,CAAC,IAAIhyB,EAAEgyB,GAAEriB,cAA0B,GAAZpZ,EAAEyJ,EAAEw0B,QAAW,OAAO10B,GAAGuyB,GAAGvyB,EAAEE,EAAEy0B,MAAmB,YAAZH,GAAG79B,EAAE0B,EAAE5B,EAAEuJ,GAAWiyB,GAAEtiB,OAAOjZ,EAAEuJ,EAAE4P,cAAc2kB,GAAG,EAAE79B,EAAE0B,EAAE5B,EAAEuJ,GAAG,SAASg1B,GAAGt+B,EAAEC,GAAG,OAAOm+B,GAAG,IAAI,EAAEp+B,EAAEC,GAAG,SAASs+B,GAAGv+B,EAAEC,GAAG,OAAOo+B,GAAG,IAAI,EAAEr+B,EAAEC,GAAG,SAASu+B,GAAGx+B,EAAEC,GAAG,OAAOo+B,GAAG,EAAE,EAAEr+B,EAAEC,GAAG,SAASw+B,GAAGz+B,EAAEC,GAAG,MAAG,oBAAoBA,GAASD,EAAEA,IAAIC,EAAED,GAAG,WAAWC,EAAE,QAAU,OAAOA,QAAG,IAASA,GAASD,EAAEA,IAAIC,EAAEoE,QAAQrE,EAAE,WAAWC,EAAEoE,QAAQ,YAAtE,EACxY,SAASq6B,GAAG1+B,EAAEC,EAAE0B,GAA6C,OAA1CA,EAAE,OAAOA,QAAG,IAASA,EAAEA,EAAE6qB,OAAO,CAACxsB,IAAI,KAAYq+B,GAAG,EAAE,EAAEI,GAAGtf,KAAK,KAAKlf,EAAED,GAAG2B,GAAG,SAASg9B,MAAM,SAASC,GAAG5+B,EAAEC,GAAG,IAAI0B,EAAE26B,KAAKr8B,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAIqJ,EAAE3H,EAAEwX,cAAc,OAAG,OAAO7P,GAAG,OAAOrJ,GAAG47B,GAAG57B,EAAEqJ,EAAE,IAAWA,EAAE,IAAG3H,EAAEwX,cAAc,CAACnZ,EAAEC,GAAUD,GAAE,SAAS6+B,GAAG7+B,EAAEC,GAAG,IAAI0B,EAAE26B,KAAKr8B,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAIqJ,EAAE3H,EAAEwX,cAAc,OAAG,OAAO7P,GAAG,OAAOrJ,GAAG47B,GAAG57B,EAAEqJ,EAAE,IAAWA,EAAE,IAAGtJ,EAAEA,IAAI2B,EAAEwX,cAAc,CAACnZ,EAAEC,GAAUD,GACzZ,SAAS8+B,GAAG9+B,EAAEC,GAAG,IAAI0B,EAAEqxB,KAAKE,GAAG,GAAGvxB,EAAE,GAAGA,GAAE,WAAW3B,GAAE,MAAMkzB,GAAG,GAAGvxB,EAAE,GAAGA,GAAE,WAAW,IAAIA,EAAE05B,GAAGxe,WAAWwe,GAAGxe,WAAW,EAAE,IAAI7c,GAAE,GAAIC,IAAV,QAAsBo7B,GAAGxe,WAAWlb,MAC5J,SAASg8B,GAAG39B,EAAEC,EAAE0B,GAAG,IAAI2H,EAAEqtB,KAAKptB,EAAEqtB,GAAG52B,GAAGD,EAAE,CAACy1B,KAAKjsB,EAAEmzB,OAAO/6B,EAAEg7B,aAAa,KAAKC,WAAW,KAAKt4B,KAAK,MAAMkF,EAAEvJ,EAAEk1B,QAA6E,GAArE,OAAO3rB,EAAEzJ,EAAEuE,KAAKvE,GAAGA,EAAEuE,KAAKkF,EAAElF,KAAKkF,EAAElF,KAAKvE,GAAGE,EAAEk1B,QAAQp1B,EAAEyJ,EAAExJ,EAAE+Y,UAAa/Y,IAAIu7B,IAAG,OAAO/xB,GAAGA,IAAI+xB,GAAEI,GAAGD,IAAG,MAAO,CAAC,GAAG,IAAI17B,EAAEs0B,QAAQ,OAAO9qB,GAAG,IAAIA,EAAE8qB,QAAiC,QAAxB9qB,EAAEvJ,EAAEw8B,qBAA8B,IAAI,IAAIjvB,EAAEvN,EAAE48B,kBAAkBtvB,EAAE/D,EAAEgE,EAAE7L,GAAmC,GAAhC5B,EAAE48B,aAAanzB,EAAEzJ,EAAE68B,WAAWrvB,EAAK4c,GAAG5c,EAAEC,GAAG,OAAO,MAAM6K,IAAawe,GAAG72B,EAAEuJ,EAAED,IAC9Z,IAAI4yB,GAAG,CAAC6C,YAAYvK,GAAGwK,YAAYpD,GAAGqD,WAAWrD,GAAG6B,UAAU7B,GAAGsD,oBAAoBtD,GAAGuD,gBAAgBvD,GAAGwD,QAAQxD,GAAGyD,WAAWzD,GAAG0D,OAAO1D,GAAG0B,SAAS1B,GAAG2D,cAAc3D,GAAG4D,iBAAiB5D,GAAG6D,cAAc7D,GAAG8D,iBAAiB9D,GAAG+D,oBAAoB/D,GAAGgE,0BAAyB,GAAI7D,GAAG,CAACgD,YAAYvK,GAAGwK,YAAY,SAASh/B,EAAEC,GAA4C,OAAzCk8B,KAAKhjB,cAAc,CAACnZ,OAAE,IAASC,EAAE,KAAKA,GAAUD,GAAGi/B,WAAWzK,GAAGiJ,UAAUa,GAAGY,oBAAoB,SAASl/B,EAAEC,EAAE0B,GAA6C,OAA1CA,EAAE,OAAOA,QAAG,IAASA,EAAEA,EAAE6qB,OAAO,CAACxsB,IAAI,KAAYo+B,GAAG,EAAE,EAAEK,GAAGtf,KAAK,KACvflf,EAAED,GAAG2B,IAAIw9B,gBAAgB,SAASn/B,EAAEC,GAAG,OAAOm+B,GAAG,EAAE,EAAEp+B,EAAEC,IAAIm/B,QAAQ,SAASp/B,EAAEC,GAAG,IAAI0B,EAAEw6B,KAAqD,OAAhDl8B,OAAE,IAASA,EAAE,KAAKA,EAAED,EAAEA,IAAI2B,EAAEwX,cAAc,CAACnZ,EAAEC,GAAUD,GAAGq/B,WAAW,SAASr/B,EAAEC,EAAE0B,GAAG,IAAI2H,EAAE6yB,KAAuK,OAAlKl8B,OAAE,IAAS0B,EAAEA,EAAE1B,GAAGA,EAAEqJ,EAAE6P,cAAc7P,EAAEyrB,UAAU90B,EAAmFD,GAAjFA,EAAEsJ,EAAE+yB,MAAM,CAAClH,QAAQ,KAAK2H,SAAS,KAAKL,oBAAoBz8B,EAAE68B,kBAAkB58B,IAAO68B,SAASa,GAAGxe,KAAK,KAAKoc,GAAEv7B,GAAS,CAACsJ,EAAE6P,cAAcnZ,IAAIs/B,OAAOpB,GAAGZ,SAASO,GAAG0B,cAAcZ,GAAGa,iBAAiB,SAASx/B,GAAG,IAAIC,EAAE49B,GAAG79B,GAAG2B,EAAE1B,EAAE,GAAGqJ,EAAErJ,EAAE,GAC5Z,OAD+Zq+B,IAAG,WAAW,IAAIr+B,EAAEo7B,GAAGxe,WAC9ewe,GAAGxe,WAAW,EAAE,IAAIvT,EAAEtJ,GAAN,QAAiBq7B,GAAGxe,WAAW5c,KAAI,CAACD,IAAW2B,GAAG89B,cAAc,WAAW,IAAIz/B,EAAE69B,IAAG,GAAI59B,EAAED,EAAE,GAA8B,OAANk+B,GAArBl+B,EAAE8+B,GAAG3f,KAAK,KAAKnf,EAAE,KAAgB,CAACA,EAAEC,IAAIy/B,iBAAiB,SAAS1/B,EAAEC,EAAE0B,GAAG,IAAI2H,EAAE6yB,KAAkF,OAA7E7yB,EAAE6P,cAAc,CAACkd,KAAK,CAACkH,YAAYt9B,EAAEy9B,YAAY,MAAMh2B,OAAO1H,EAAEw9B,UAAU77B,GAAUy7B,GAAG9zB,EAAEtJ,EAAEC,EAAE0B,IAAIg+B,oBAAoB,WAAW,GAAGpF,GAAG,CAAC,IAAIv6B,GAAE,EAAGC,EAzDlD,SAAYD,GAAG,MAAM,CAACgO,SAAS/B,EAAG2F,SAAS5R,EAAE2R,QAAQ3R,GAyDD6/B,EAAG,WAAiD,MAAtC7/B,IAAIA,GAAE,EAAG2B,EAAE,MAAM+tB,MAAM9d,SAAS,MAAYtJ,MAAMpH,EAAE,SAASS,EAAEk8B,GAAG59B,GAAG,GAC1Z,OAD6Z,KAAY,EAAPs7B,GAAE1C,QAAU0C,GAAEtiB,OAAO,IAAI6kB,GAAG,GAAE,WAAWn8B,EAAE,MAAM+tB,MAAM9d,SAAS,YAChf,EAAO,OAAc3R,EAAmC,OAAN49B,GAA3B59B,EAAE,MAAMyvB,MAAM9d,SAAS,KAAiB3R,GAAG2/B,0BAAyB,GAAI5D,GAAG,CAAC+C,YAAYvK,GAAGwK,YAAYJ,GAAGK,WAAWzK,GAAGiJ,UAAUc,GAAGW,oBAAoBR,GAAGS,gBAAgBX,GAAGY,QAAQP,GAAGQ,WAAW7C,GAAG8C,OAAOnB,GAAGb,SAAS,WAAW,OAAOd,GAAGD,KAAKgD,cAAcZ,GAAGa,iBAAiB,SAASx/B,GAAG,IAAIC,EAAEu8B,GAAGD,IAAI56B,EAAE1B,EAAE,GAAGqJ,EAAErJ,EAAE,GAA6F,OAA1Fs+B,IAAG,WAAW,IAAIt+B,EAAEo7B,GAAGxe,WAAWwe,GAAGxe,WAAW,EAAE,IAAIvT,EAAEtJ,GAAN,QAAiBq7B,GAAGxe,WAAW5c,KAAI,CAACD,IAAW2B,GAAG89B,cAAc,WAAW,IAAIz/B,EAAEw8B,GAAGD,IAAI,GAAG,MAAM,CAAC4B,KAAK95B,QAC9erE,IAAI0/B,iBAAiB9B,GAAG+B,oBAAoB,WAAW,OAAOnD,GAAGD,IAAI,IAAIqD,0BAAyB,GAAI3D,GAAG,CAAC8C,YAAYvK,GAAGwK,YAAYJ,GAAGK,WAAWzK,GAAGiJ,UAAUc,GAAGW,oBAAoBR,GAAGS,gBAAgBX,GAAGY,QAAQP,GAAGQ,WAAWtC,GAAGuC,OAAOnB,GAAGb,SAAS,WAAW,OAAOP,GAAGR,KAAKgD,cAAcZ,GAAGa,iBAAiB,SAASx/B,GAAG,IAAIC,EAAE88B,GAAGR,IAAI56B,EAAE1B,EAAE,GAAGqJ,EAAErJ,EAAE,GAA6F,OAA1Fs+B,IAAG,WAAW,IAAIt+B,EAAEo7B,GAAGxe,WAAWwe,GAAGxe,WAAW,EAAE,IAAIvT,EAAEtJ,GAAN,QAAiBq7B,GAAGxe,WAAW5c,KAAI,CAACD,IAAW2B,GAAG89B,cAAc,WAAW,IAAIz/B,EAAE+8B,GAAGR,IAAI,GAAG,MAAM,CAAC4B,KAAK95B,QACrfrE,IAAI0/B,iBAAiB9B,GAAG+B,oBAAoB,WAAW,OAAO5C,GAAGR,IAAI,IAAIqD,0BAAyB,GAAIE,GAAG50B,EAAG60B,kBAAkBxL,IAAG,EAAG,SAASyL,GAAGhgC,EAAEC,EAAE0B,EAAE2H,GAAGrJ,EAAEsZ,MAAM,OAAOvZ,EAAEq5B,GAAGp5B,EAAE,KAAK0B,EAAE2H,GAAG8vB,GAAGn5B,EAAED,EAAEuZ,MAAM5X,EAAE2H,GAAG,SAAS22B,GAAGjgC,EAAEC,EAAE0B,EAAE2H,EAAEC,GAAG5H,EAAEA,EAAEkM,OAAO,IAAI9N,EAAEE,EAAEi4B,IAA8B,OAA1B/D,GAAGl0B,EAAEsJ,GAAGD,EAAEwyB,GAAG97B,EAAEC,EAAE0B,EAAE2H,EAAEvJ,EAAEwJ,GAAM,OAAOvJ,GAAIu0B,IAA0Et0B,EAAEgZ,OAAO,EAAE+mB,GAAGhgC,EAAEC,EAAEqJ,EAAEC,GAAUtJ,EAAEsZ,QAAhGtZ,EAAE60B,YAAY90B,EAAE80B,YAAY70B,EAAEgZ,QAAQ,IAAIjZ,EAAEs0B,QAAQ/qB,EAAE22B,GAAGlgC,EAAEC,EAAEsJ,IACxW,SAAS42B,GAAGngC,EAAEC,EAAE0B,EAAE2H,EAAEC,EAAExJ,GAAG,GAAG,OAAOC,EAAE,CAAC,IAAIwJ,EAAE7H,EAAEoI,KAAK,MAAG,oBAAoBP,GAAI42B,GAAG52B,SAAI,IAASA,EAAEiqB,cAAc,OAAO9xB,EAAE0+B,cAAS,IAAS1+B,EAAE8xB,eAAsDzzB,EAAE+4B,GAAGp3B,EAAEoI,KAAK,KAAKT,EAAErJ,EAAEA,EAAE44B,KAAK94B,IAAKm4B,IAAIj4B,EAAEi4B,IAAIl4B,EAAEgZ,OAAO/Y,EAASA,EAAEsZ,MAAMvZ,IAAvGC,EAAE2N,IAAI,GAAG3N,EAAE8J,KAAKP,EAAE82B,GAAGtgC,EAAEC,EAAEuJ,EAAEF,EAAEC,EAAExJ,IAAoF,OAAVyJ,EAAExJ,EAAEuZ,MAAS,KAAKhQ,EAAExJ,KAAKwJ,EAAEC,EAAE2wB,eAA0Bx4B,EAAE,QAAdA,EAAEA,EAAE0+B,SAAmB1+B,EAAE0oB,IAAK9gB,EAAED,IAAItJ,EAAEk4B,MAAMj4B,EAAEi4B,KAAYgI,GAAGlgC,EAAEC,EAAEF,IAAGE,EAAEgZ,OAAO,GAAEjZ,EAAE24B,GAAGnvB,EAAEF,IAAK4uB,IAAIj4B,EAAEi4B,IAAIl4B,EAAEgZ,OAAO/Y,EAASA,EAAEsZ,MAAMvZ,GAClb,SAASsgC,GAAGtgC,EAAEC,EAAE0B,EAAE2H,EAAEC,EAAExJ,GAAG,GAAG,OAAOC,GAAGqqB,GAAGrqB,EAAEm6B,cAAc7wB,IAAItJ,EAAEk4B,MAAMj4B,EAAEi4B,IAAI,IAAG3D,IAAG,EAAG,KAAKx0B,EAAEwJ,GAAqC,OAAOtJ,EAAEq0B,MAAMt0B,EAAEs0B,MAAM4L,GAAGlgC,EAAEC,EAAEF,GAAhE,KAAa,MAARC,EAAEiZ,SAAesb,IAAG,GAA0C,OAAOgM,GAAGvgC,EAAEC,EAAE0B,EAAE2H,EAAEvJ,GACnL,SAASygC,GAAGxgC,EAAEC,EAAE0B,GAAG,IAAI2H,EAAErJ,EAAE06B,aAAapxB,EAAED,EAAE+G,SAAStQ,EAAE,OAAOC,EAAEA,EAAEmZ,cAAc,KAAK,GAAG,WAAW7P,EAAEuvB,MAAM,kCAAkCvvB,EAAEuvB,KAAK,GAAG,KAAY,EAAP54B,EAAE44B,MAAQ54B,EAAEkZ,cAAc,CAACsnB,UAAU,GAAGC,GAAGzgC,EAAE0B,OAAQ,IAAG,KAAO,WAAFA,GAA8E,OAAO3B,EAAE,OAAOD,EAAEA,EAAE0gC,UAAU9+B,EAAEA,EAAE1B,EAAEq0B,MAAMr0B,EAAEi0B,WAAW,WAAWj0B,EAAEkZ,cAAc,CAACsnB,UAAUzgC,GAAG0gC,GAAGzgC,EAAED,GAAG,KAAxKC,EAAEkZ,cAAc,CAACsnB,UAAU,GAAGC,GAAGzgC,EAAE,OAAOF,EAAEA,EAAE0gC,UAAU9+B,QAA0H,OAAO5B,GAAGuJ,EAAEvJ,EAAE0gC,UAAU9+B,EAAE1B,EAAEkZ,cAAc,MAAM7P,EAAE3H,EAAE++B,GAAGzgC,EAAEqJ,GAAe,OAAZ02B,GAAGhgC,EAAEC,EAAEsJ,EAAE5H,GAAU1B,EAAEsZ,MAC1e,SAASonB,GAAG3gC,EAAEC,GAAG,IAAI0B,EAAE1B,EAAEi4B,KAAO,OAAOl4B,GAAG,OAAO2B,GAAG,OAAO3B,GAAGA,EAAEk4B,MAAMv2B,KAAE1B,EAAEgZ,OAAO,KAAI,SAASsnB,GAAGvgC,EAAEC,EAAE0B,EAAE2H,EAAEC,GAAG,IAAIxJ,EAAE4wB,GAAGhvB,GAAG2uB,GAAGD,GAAEhsB,QAA4C,OAApCtE,EAAEwwB,GAAGtwB,EAAEF,GAAGo0B,GAAGl0B,EAAEsJ,GAAG5H,EAAEm6B,GAAG97B,EAAEC,EAAE0B,EAAE2H,EAAEvJ,EAAEwJ,GAAM,OAAOvJ,GAAIu0B,IAA0Et0B,EAAEgZ,OAAO,EAAE+mB,GAAGhgC,EAAEC,EAAE0B,EAAE4H,GAAUtJ,EAAEsZ,QAAhGtZ,EAAE60B,YAAY90B,EAAE80B,YAAY70B,EAAEgZ,QAAQ,IAAIjZ,EAAEs0B,QAAQ/qB,EAAE22B,GAAGlgC,EAAEC,EAAEsJ,IAC9P,SAASq3B,GAAG5gC,EAAEC,EAAE0B,EAAE2H,EAAEC,GAAG,GAAGonB,GAAGhvB,GAAG,CAAC,IAAI5B,GAAE,EAAGkxB,GAAGhxB,QAAQF,GAAE,EAAW,GAARo0B,GAAGl0B,EAAEsJ,GAAM,OAAOtJ,EAAEmX,UAAU,OAAOpX,IAAIA,EAAE+Y,UAAU,KAAK9Y,EAAE8Y,UAAU,KAAK9Y,EAAEgZ,OAAO,GAAGke,GAAGl3B,EAAE0B,EAAE2H,GAAGmuB,GAAGx3B,EAAE0B,EAAE2H,EAAEC,GAAGD,GAAE,OAAQ,GAAG,OAAOtJ,EAAE,CAAC,IAAIwJ,EAAEvJ,EAAEmX,UAAU5J,EAAEvN,EAAEk6B,cAAc3wB,EAAEkuB,MAAMlqB,EAAE,IAAID,EAAE/D,EAAEirB,QAAQpc,EAAE1W,EAAEy1B,YAAY,kBAAkB/e,GAAG,OAAOA,EAAEA,EAAEmc,GAAGnc,GAAyBA,EAAEkY,GAAGtwB,EAA1BoY,EAAEsY,GAAGhvB,GAAG2uB,GAAGD,GAAEhsB,SAAmB,IAAI2C,EAAErF,EAAEg2B,yBAAyB7B,EAAE,oBAAoB9uB,GAAG,oBAAoBwC,EAAEouB,wBAAwB9B,GAAG,oBAAoBtsB,EAAEguB,kCACpd,oBAAoBhuB,EAAE+tB,4BAA4B/pB,IAAIlE,GAAGiE,IAAI8K,IAAIif,GAAGr3B,EAAEuJ,EAAEF,EAAE+O,GAAGuc,IAAG,EAAG,IAAImB,EAAE91B,EAAEkZ,cAAc3P,EAAE1F,MAAMiyB,EAAEF,GAAG51B,EAAEqJ,EAAEE,EAAED,GAAGgE,EAAEtN,EAAEkZ,cAAc3L,IAAIlE,GAAGysB,IAAIxoB,GAAGzK,GAAEuB,SAASuwB,IAAI,oBAAoB5tB,IAAIsvB,GAAGr2B,EAAE0B,EAAEqF,EAAEsC,GAAGiE,EAAEtN,EAAEkZ,gBAAgB3L,EAAEonB,IAAIoC,GAAG/2B,EAAE0B,EAAE6L,EAAElE,EAAEysB,EAAExoB,EAAE8K,KAAKyd,GAAG,oBAAoBtsB,EAAEquB,2BAA2B,oBAAoBruB,EAAEsuB,qBAAqB,oBAAoBtuB,EAAEsuB,oBAAoBtuB,EAAEsuB,qBAAqB,oBAAoBtuB,EAAEquB,2BAA2BruB,EAAEquB,6BAA6B,oBACzeruB,EAAEuuB,oBAAoB93B,EAAEgZ,OAAO,KAAK,oBAAoBzP,EAAEuuB,oBAAoB93B,EAAEgZ,OAAO,GAAGhZ,EAAEk6B,cAAc7wB,EAAErJ,EAAEkZ,cAAc5L,GAAG/D,EAAEkuB,MAAMpuB,EAAEE,EAAE1F,MAAMyJ,EAAE/D,EAAEirB,QAAQpc,EAAE/O,EAAEkE,IAAI,oBAAoBhE,EAAEuuB,oBAAoB93B,EAAEgZ,OAAO,GAAG3P,GAAE,OAAQ,CAACE,EAAEvJ,EAAEmX,UAAUie,GAAGr1B,EAAEC,GAAGuN,EAAEvN,EAAEk6B,cAAc9hB,EAAEpY,EAAE8J,OAAO9J,EAAE64B,YAAYtrB,EAAEgmB,GAAGvzB,EAAE8J,KAAKyD,GAAGhE,EAAEkuB,MAAMrf,EAAEyd,EAAE71B,EAAE06B,aAAa5E,EAAEvsB,EAAEirB,QAAwB,kBAAhBlnB,EAAE5L,EAAEy1B,cAAiC,OAAO7pB,EAAEA,EAAEinB,GAAGjnB,GAAyBA,EAAEgjB,GAAGtwB,EAA1BsN,EAAEojB,GAAGhvB,GAAG2uB,GAAGD,GAAEhsB,SAAmB,IAAI2xB,EAAEr0B,EAAEg2B,0BAA0B3wB,EAAE,oBAAoBgvB,GACnf,oBAAoBxsB,EAAEouB,0BAA0B,oBAAoBpuB,EAAEguB,kCAAkC,oBAAoBhuB,EAAE+tB,4BAA4B/pB,IAAIsoB,GAAGC,IAAIxoB,IAAI+pB,GAAGr3B,EAAEuJ,EAAEF,EAAEiE,GAAGqnB,IAAG,EAAGmB,EAAE91B,EAAEkZ,cAAc3P,EAAE1F,MAAMiyB,EAAEF,GAAG51B,EAAEqJ,EAAEE,EAAED,GAAG,IAAIzI,EAAEb,EAAEkZ,cAAc3L,IAAIsoB,GAAGC,IAAIj1B,GAAGgC,GAAEuB,SAASuwB,IAAI,oBAAoBoB,IAAIM,GAAGr2B,EAAE0B,EAAEq0B,EAAE1sB,GAAGxI,EAAEb,EAAEkZ,gBAAgBd,EAAEuc,IAAIoC,GAAG/2B,EAAE0B,EAAE0W,EAAE/O,EAAEysB,EAAEj1B,EAAEyM,KAAKvG,GAAG,oBAAoBwC,EAAEq3B,4BAA4B,oBAAoBr3B,EAAEs3B,sBAAsB,oBAAoBt3B,EAAEs3B,qBAAqBt3B,EAAEs3B,oBAAoBx3B,EAC1gBxI,EAAEyM,GAAG,oBAAoB/D,EAAEq3B,4BAA4Br3B,EAAEq3B,2BAA2Bv3B,EAAExI,EAAEyM,IAAI,oBAAoB/D,EAAEu3B,qBAAqB9gC,EAAEgZ,OAAO,GAAG,oBAAoBzP,EAAEouB,0BAA0B33B,EAAEgZ,OAAO,OAAO,oBAAoBzP,EAAEu3B,oBAAoBvzB,IAAIxN,EAAEm6B,eAAepE,IAAI/1B,EAAEmZ,gBAAgBlZ,EAAEgZ,OAAO,GAAG,oBAAoBzP,EAAEouB,yBAAyBpqB,IAAIxN,EAAEm6B,eAAepE,IAAI/1B,EAAEmZ,gBAAgBlZ,EAAEgZ,OAAO,KAAKhZ,EAAEk6B,cAAc7wB,EAAErJ,EAAEkZ,cAAcrY,GAAG0I,EAAEkuB,MAAMpuB,EAAEE,EAAE1F,MAAMhD,EAAE0I,EAAEirB,QAAQlnB,EAAEjE,EAAE+O,IAAI,oBAAoB7O,EAAEu3B,oBAC7fvzB,IAAIxN,EAAEm6B,eAAepE,IAAI/1B,EAAEmZ,gBAAgBlZ,EAAEgZ,OAAO,GAAG,oBAAoBzP,EAAEouB,yBAAyBpqB,IAAIxN,EAAEm6B,eAAepE,IAAI/1B,EAAEmZ,gBAAgBlZ,EAAEgZ,OAAO,KAAK3P,GAAE,GAAI,OAAO03B,GAAGhhC,EAAEC,EAAE0B,EAAE2H,EAAEvJ,EAAEwJ,GACzL,SAASy3B,GAAGhhC,EAAEC,EAAE0B,EAAE2H,EAAEC,EAAExJ,GAAG4gC,GAAG3gC,EAAEC,GAAG,IAAIuJ,EAAE,KAAa,GAARvJ,EAAEgZ,OAAU,IAAI3P,IAAIE,EAAE,OAAOD,GAAG4nB,GAAGlxB,EAAE0B,GAAE,GAAIu+B,GAAGlgC,EAAEC,EAAEF,GAAGuJ,EAAErJ,EAAEmX,UAAU0oB,GAAGz7B,QAAQpE,EAAE,IAAIuN,EAAEhE,GAAG,oBAAoB7H,EAAEs/B,yBAAyB,KAAK33B,EAAEuE,SAAwI,OAA/H5N,EAAEgZ,OAAO,EAAE,OAAOjZ,GAAGwJ,GAAGvJ,EAAEsZ,MAAM6f,GAAGn5B,EAAED,EAAEuZ,MAAM,KAAKxZ,GAAGE,EAAEsZ,MAAM6f,GAAGn5B,EAAE,KAAKuN,EAAEzN,IAAIigC,GAAGhgC,EAAEC,EAAEuN,EAAEzN,GAAGE,EAAEkZ,cAAc7P,EAAExF,MAAMyF,GAAG4nB,GAAGlxB,EAAE0B,GAAE,GAAW1B,EAAEsZ,MAAM,SAAS2nB,GAAGlhC,GAAG,IAAIC,EAAED,EAAEoX,UAAUnX,EAAEkhC,eAAerQ,GAAG9wB,EAAEC,EAAEkhC,eAAelhC,EAAEkhC,iBAAiBlhC,EAAEw0B,SAASx0B,EAAEw0B,SAAS3D,GAAG9wB,EAAEC,EAAEw0B,SAAQ,GAAIkF,GAAG35B,EAAEC,EAAEwb,eAC7d,IAS0V2lB,GAAMC,GAAGC,GAT/VC,GAAG,CAACnoB,WAAW,KAAKooB,UAAU,GAClC,SAASC,GAAGzhC,EAAEC,EAAE0B,GAAG,IAAsC6H,EAAlCF,EAAErJ,EAAE06B,aAAapxB,EAAE0wB,GAAE51B,QAAQtE,GAAE,EAA6M,OAAvMyJ,EAAE,KAAa,GAARvJ,EAAEgZ,UAAazP,GAAE,OAAOxJ,GAAG,OAAOA,EAAEmZ,gBAAiB,KAAO,EAAF5P,IAAMC,GAAGzJ,GAAE,EAAGE,EAAEgZ,QAAQ,IAAI,OAAOjZ,GAAG,OAAOA,EAAEmZ,oBAAe,IAAS7P,EAAEo4B,WAAU,IAAKp4B,EAAEq4B,6BAA6Bp4B,GAAG,GAAG4mB,GAAE8J,GAAI,EAAF1wB,GAAQ,OAAOvJ,QAAG,IAASsJ,EAAEo4B,UAAU9G,GAAG36B,GAAGD,EAAEsJ,EAAE+G,SAAS9G,EAAED,EAAEo4B,SAAY3hC,GAASC,EAAE4hC,GAAG3hC,EAAED,EAAEuJ,EAAE5H,GAAG1B,EAAEsZ,MAAMJ,cAAc,CAACsnB,UAAU9+B,GAAG1B,EAAEkZ,cAAcooB,GAAGvhC,GAAK,kBAAkBsJ,EAAEu4B,2BAAiC7hC,EAAE4hC,GAAG3hC,EAAED,EAAEuJ,EAAE5H,GAAG1B,EAAEsZ,MAAMJ,cAAc,CAACsnB,UAAU9+B,GAC/f1B,EAAEkZ,cAAcooB,GAAGthC,EAAEq0B,MAAM,SAASt0B,KAAE2B,EAAEmgC,GAAG,CAACjJ,KAAK,UAAUxoB,SAASrQ,GAAGC,EAAE44B,KAAKl3B,EAAE,OAAQqX,OAAO/Y,EAASA,EAAEsZ,MAAM5X,KAAY3B,EAAEmZ,cAAkBpZ,GAASuJ,EAAEy4B,GAAG/hC,EAAEC,EAAEqJ,EAAE+G,SAAS/G,EAAEo4B,SAAS//B,GAAG5B,EAAEE,EAAEsZ,MAAMhQ,EAAEvJ,EAAEuZ,MAAMJ,cAAcpZ,EAAEoZ,cAAc,OAAO5P,EAAE,CAACk3B,UAAU9+B,GAAG,CAAC8+B,UAAUl3B,EAAEk3B,UAAU9+B,GAAG5B,EAAEm0B,WAAWl0B,EAAEk0B,YAAYvyB,EAAE1B,EAAEkZ,cAAcooB,GAAGj4B,IAAE3H,EAAEqgC,GAAGhiC,EAAEC,EAAEqJ,EAAE+G,SAAS1O,GAAG1B,EAAEkZ,cAAc,KAAYxX,IAClQ,SAASigC,GAAG5hC,EAAEC,EAAE0B,EAAE2H,GAAG,IAAIC,EAAEvJ,EAAE64B,KAAK94B,EAAEC,EAAEuZ,MAAuK,OAAjKtZ,EAAE,CAAC44B,KAAK,SAASxoB,SAASpQ,GAAG,KAAO,EAAFsJ,IAAM,OAAOxJ,GAAGA,EAAEm0B,WAAW,EAAEn0B,EAAE46B,aAAa16B,GAAGF,EAAE+hC,GAAG7hC,EAAEsJ,EAAE,EAAE,MAAM5H,EAAEu3B,GAAGv3B,EAAE4H,EAAED,EAAE,MAAMvJ,EAAEiZ,OAAOhZ,EAAE2B,EAAEqX,OAAOhZ,EAAED,EAAEyZ,QAAQ7X,EAAE3B,EAAEuZ,MAAMxZ,EAAS4B,EACrV,SAASqgC,GAAGhiC,EAAEC,EAAE0B,EAAE2H,GAAG,IAAIC,EAAEvJ,EAAEuZ,MAAiL,OAA3KvZ,EAAEuJ,EAAEiQ,QAAQ7X,EAAEg3B,GAAGpvB,EAAE,CAACsvB,KAAK,UAAUxoB,SAAS1O,IAAI,KAAY,EAAP1B,EAAE44B,QAAUl3B,EAAE2yB,MAAMhrB,GAAG3H,EAAEqX,OAAO/Y,EAAE0B,EAAE6X,QAAQ,KAAK,OAAOxZ,IAAIA,EAAEw4B,WAAW,KAAKx4B,EAAEiZ,MAAM,EAAEhZ,EAAEw4B,YAAYx4B,EAAEs4B,WAAWv4B,GAAUC,EAAEsZ,MAAM5X,EAC7N,SAASogC,GAAG/hC,EAAEC,EAAE0B,EAAE2H,EAAEC,GAAG,IAAIxJ,EAAEE,EAAE44B,KAAKrvB,EAAExJ,EAAEuZ,MAAMvZ,EAAEwJ,EAAEgQ,QAAQ,IAAIhM,EAAE,CAACqrB,KAAK,SAASxoB,SAAS1O,GAAoS,OAAjS,KAAO,EAAF5B,IAAME,EAAEsZ,QAAQ/P,IAAG7H,EAAE1B,EAAEsZ,OAAQ2a,WAAW,EAAEvyB,EAAEg5B,aAAantB,EAAiB,QAAfhE,EAAE7H,EAAE42B,aAAqBt4B,EAAEw4B,YAAY92B,EAAE82B,YAAYx4B,EAAEs4B,WAAW/uB,EAAEA,EAAEgvB,WAAW,MAAMv4B,EAAEw4B,YAAYx4B,EAAEs4B,WAAW,MAAM52B,EAAEg3B,GAAGnvB,EAAEgE,GAAG,OAAOxN,EAAEsJ,EAAEqvB,GAAG34B,EAAEsJ,IAAIA,EAAE4vB,GAAG5vB,EAAEvJ,EAAEwJ,EAAE,OAAQ0P,OAAO,EAAG3P,EAAE0P,OAAO/Y,EAAE0B,EAAEqX,OAAO/Y,EAAE0B,EAAE6X,QAAQlQ,EAAErJ,EAAEsZ,MAAM5X,EAAS2H,EAAE,SAAS24B,GAAGjiC,EAAEC,GAAGD,EAAEs0B,OAAOr0B,EAAE,IAAI0B,EAAE3B,EAAE+Y,UAAU,OAAOpX,IAAIA,EAAE2yB,OAAOr0B,GAAGg0B,GAAGj0B,EAAEgZ,OAAO/Y,GACtd,SAASiiC,GAAGliC,EAAEC,EAAE0B,EAAE2H,EAAEC,EAAExJ,GAAG,IAAIyJ,EAAExJ,EAAEmZ,cAAc,OAAO3P,EAAExJ,EAAEmZ,cAAc,CAACgpB,YAAYliC,EAAEmiC,UAAU,KAAKC,mBAAmB,EAAEC,KAAKh5B,EAAEi5B,KAAK5gC,EAAE6gC,SAASj5B,EAAEgvB,WAAWx4B,IAAIyJ,EAAE24B,YAAYliC,EAAEuJ,EAAE44B,UAAU,KAAK54B,EAAE64B,mBAAmB,EAAE74B,EAAE84B,KAAKh5B,EAAEE,EAAE+4B,KAAK5gC,EAAE6H,EAAEg5B,SAASj5B,EAAEC,EAAE+uB,WAAWx4B,GACvQ,SAAS0iC,GAAGziC,EAAEC,EAAE0B,GAAG,IAAI2H,EAAErJ,EAAE06B,aAAapxB,EAAED,EAAE8wB,YAAYr6B,EAAEuJ,EAAEi5B,KAAsC,GAAjCvC,GAAGhgC,EAAEC,EAAEqJ,EAAE+G,SAAS1O,GAAkB,KAAO,GAAtB2H,EAAE2wB,GAAE51B,UAAqBiF,EAAI,EAAFA,EAAI,EAAErJ,EAAEgZ,OAAO,OAAO,CAAC,GAAG,OAAOjZ,GAAG,KAAa,GAARA,EAAEiZ,OAAUjZ,EAAE,IAAIA,EAAEC,EAAEsZ,MAAM,OAAOvZ,GAAG,CAAC,GAAG,KAAKA,EAAE4N,IAAI,OAAO5N,EAAEmZ,eAAe8oB,GAAGjiC,EAAE2B,QAAQ,GAAG,KAAK3B,EAAE4N,IAAIq0B,GAAGjiC,EAAE2B,QAAQ,GAAG,OAAO3B,EAAEuZ,MAAM,CAACvZ,EAAEuZ,MAAMP,OAAOhZ,EAAEA,EAAEA,EAAEuZ,MAAM,SAAS,GAAGvZ,IAAIC,EAAE,MAAMD,EAAE,KAAK,OAAOA,EAAEwZ,SAAS,CAAC,GAAG,OAAOxZ,EAAEgZ,QAAQhZ,EAAEgZ,SAAS/Y,EAAE,MAAMD,EAAEA,EAAEA,EAAEgZ,OAAOhZ,EAAEwZ,QAAQR,OAAOhZ,EAAEgZ,OAAOhZ,EAAEA,EAAEwZ,QAAQlQ,GAAG,EAAS,GAAP6mB,GAAE8J,GAAE3wB,GAAM,KAAY,EAAPrJ,EAAE44B,MAAQ54B,EAAEkZ,cACze,UAAU,OAAO5P,GAAG,IAAK,WAAqB,IAAV5H,EAAE1B,EAAEsZ,MAAUhQ,EAAE,KAAK,OAAO5H,GAAiB,QAAd3B,EAAE2B,EAAEoX,YAAoB,OAAOmhB,GAAGl6B,KAAKuJ,EAAE5H,GAAGA,EAAEA,EAAE6X,QAAY,QAAJ7X,EAAE4H,IAAYA,EAAEtJ,EAAEsZ,MAAMtZ,EAAEsZ,MAAM,OAAOhQ,EAAE5H,EAAE6X,QAAQ7X,EAAE6X,QAAQ,MAAM0oB,GAAGjiC,GAAE,EAAGsJ,EAAE5H,EAAE5B,EAAEE,EAAEs4B,YAAY,MAAM,IAAK,YAA6B,IAAjB52B,EAAE,KAAK4H,EAAEtJ,EAAEsZ,MAAUtZ,EAAEsZ,MAAM,KAAK,OAAOhQ,GAAG,CAAe,GAAG,QAAjBvJ,EAAEuJ,EAAEwP,YAAuB,OAAOmhB,GAAGl6B,GAAG,CAACC,EAAEsZ,MAAMhQ,EAAE,MAAMvJ,EAAEuJ,EAAEiQ,QAAQjQ,EAAEiQ,QAAQ7X,EAAEA,EAAE4H,EAAEA,EAAEvJ,EAAEkiC,GAAGjiC,GAAE,EAAG0B,EAAE,KAAK5B,EAAEE,EAAEs4B,YAAY,MAAM,IAAK,WAAW2J,GAAGjiC,GAAE,EAAG,KAAK,UAAK,EAAOA,EAAEs4B,YAAY,MAAM,QAAQt4B,EAAEkZ,cAAc,KAAK,OAAOlZ,EAAEsZ,MAC/f,SAAS2mB,GAAGlgC,EAAEC,EAAE0B,GAAyD,GAAtD,OAAO3B,IAAIC,EAAEm0B,aAAap0B,EAAEo0B,cAAc6B,IAAIh2B,EAAEq0B,MAAS,KAAK3yB,EAAE1B,EAAEi0B,YAAY,CAAC,GAAG,OAAOl0B,GAAGC,EAAEsZ,QAAQvZ,EAAEuZ,MAAM,MAAMjR,MAAMpH,EAAE,MAAM,GAAG,OAAOjB,EAAEsZ,MAAM,CAA4C,IAAjC5X,EAAEg3B,GAAZ34B,EAAEC,EAAEsZ,MAAavZ,EAAE26B,cAAc16B,EAAEsZ,MAAM5X,EAAMA,EAAEqX,OAAO/Y,EAAE,OAAOD,EAAEwZ,SAASxZ,EAAEA,EAAEwZ,SAAQ7X,EAAEA,EAAE6X,QAAQmf,GAAG34B,EAAEA,EAAE26B,eAAgB3hB,OAAO/Y,EAAE0B,EAAE6X,QAAQ,KAAK,OAAOvZ,EAAEsZ,MAAM,OAAO,KAK5P,SAASmpB,GAAG1iC,EAAEC,GAAG,IAAIs6B,GAAG,OAAOv6B,EAAEwiC,UAAU,IAAK,SAASviC,EAAED,EAAEuiC,KAAK,IAAI,IAAI5gC,EAAE,KAAK,OAAO1B,GAAG,OAAOA,EAAE8Y,YAAYpX,EAAE1B,GAAGA,EAAEA,EAAEuZ,QAAQ,OAAO7X,EAAE3B,EAAEuiC,KAAK,KAAK5gC,EAAE6X,QAAQ,KAAK,MAAM,IAAK,YAAY7X,EAAE3B,EAAEuiC,KAAK,IAAI,IAAIj5B,EAAE,KAAK,OAAO3H,GAAG,OAAOA,EAAEoX,YAAYzP,EAAE3H,GAAGA,EAAEA,EAAE6X,QAAQ,OAAOlQ,EAAErJ,GAAG,OAAOD,EAAEuiC,KAAKviC,EAAEuiC,KAAK,KAAKviC,EAAEuiC,KAAK/oB,QAAQ,KAAKlQ,EAAEkQ,QAAQ,MAC7Z,SAASmpB,GAAG3iC,EAAEC,EAAE0B,GAAG,IAAI2H,EAAErJ,EAAE06B,aAAa,OAAO16B,EAAE2N,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,OAAO,KAAK,KAAK,EAQyC,KAAK,GAAG,OAAO+iB,GAAG1wB,EAAE8J,OAAO8mB,KAAK,KAR1C,KAAK,EAAsL,OAApLiJ,KAAK5J,GAAEptB,IAAGotB,GAAEG,IAAG4K,MAAK3xB,EAAErJ,EAAEmX,WAAY+pB,iBAAiB73B,EAAEmrB,QAAQnrB,EAAE63B,eAAe73B,EAAE63B,eAAe,MAAS,OAAOnhC,GAAG,OAAOA,EAAEuZ,QAAMuhB,GAAG76B,GAAGA,EAAEgZ,OAAO,EAAE3P,EAAEkS,UAAUvb,EAAEgZ,OAAO,MAAkB,KAAK,KAAK,EAAE+gB,GAAG/5B,GAAG,IAAIsJ,EAAEmwB,GAAGD,GAAGp1B,SAAkB,GAAT1C,EAAE1B,EAAE8J,KAAQ,OAAO/J,GAAG,MAAMC,EAAEmX,UAAUiqB,GAAGrhC,EAAEC,EAAE0B,EAAE2H,GAAKtJ,EAAEk4B,MAAMj4B,EAAEi4B,MAAMj4B,EAAEgZ,OAAO,SAAS,CAAC,IAAI3P,EAAE,CAAC,GAAG,OAC7frJ,EAAEmX,UAAU,MAAM9O,MAAMpH,EAAE,MAAM,OAAO,KAAsB,GAAjBlB,EAAE05B,GAAGH,GAAGl1B,SAAYy2B,GAAG76B,GAAG,CAACqJ,EAAErJ,EAAEmX,UAAUzV,EAAE1B,EAAE8J,KAAK,IAAIhK,EAAEE,EAAEk6B,cAA8B,OAAhB7wB,EAAEsmB,IAAI3vB,EAAEqJ,EAAEumB,IAAI9vB,EAAS4B,GAAG,IAAK,SAASkrB,GAAE,SAASvjB,GAAGujB,GAAE,QAAQvjB,GAAG,MAAM,IAAK,SAAS,IAAK,SAAS,IAAK,QAAQujB,GAAE,OAAOvjB,GAAG,MAAM,IAAK,QAAQ,IAAK,QAAQ,IAAItJ,EAAE,EAAEA,EAAEssB,GAAGhrB,OAAOtB,IAAI6sB,GAAEP,GAAGtsB,GAAGsJ,GAAG,MAAM,IAAK,SAASujB,GAAE,QAAQvjB,GAAG,MAAM,IAAK,MAAM,IAAK,QAAQ,IAAK,OAAOujB,GAAE,QAAQvjB,GAAGujB,GAAE,OAAOvjB,GAAG,MAAM,IAAK,UAAUujB,GAAE,SAASvjB,GAAG,MAAM,IAAK,QAAQsG,GAAGtG,EAAEvJ,GAAG8sB,GAAE,UAAUvjB,GAAG,MAAM,IAAK,SAASA,EAAEoG,cAC5f,CAACkzB,cAAc7iC,EAAE8iC,UAAUhW,GAAE,UAAUvjB,GAAG,MAAM,IAAK,WAAWyH,GAAGzH,EAAEvJ,GAAG8sB,GAAE,UAAUvjB,GAAkB,IAAI,IAAIE,KAAvBgN,GAAG7U,EAAE5B,GAAGC,EAAE,KAAkBD,EAAEA,EAAEoG,eAAeqD,KAAKD,EAAExJ,EAAEyJ,GAAG,aAAaA,EAAE,kBAAkBD,EAAED,EAAE6H,cAAc5H,IAAIvJ,EAAE,CAAC,WAAWuJ,IAAI,kBAAkBA,GAAGD,EAAE6H,cAAc,GAAG5H,IAAIvJ,EAAE,CAAC,WAAW,GAAGuJ,IAAId,EAAGtC,eAAeqD,IAAI,MAAMD,GAAG,aAAaC,GAAGqjB,GAAE,SAASvjB,IAAI,OAAO3H,GAAG,IAAK,QAAQ4M,EAAGjF,GAAG4G,GAAG5G,EAAEvJ,GAAE,GAAI,MAAM,IAAK,WAAWwO,EAAGjF,GAAG4H,GAAG5H,GAAG,MAAM,IAAK,SAAS,IAAK,SAAS,MAAM,QAAQ,oBAAoBvJ,EAAE+iC,UAAUx5B,EAAEy5B,QACtfpU,IAAIrlB,EAAEtJ,EAAEC,EAAE60B,YAAYxrB,EAAE,OAAOA,IAAIrJ,EAAEgZ,OAAO,OAAO,CAAiZ,OAAhZzP,EAAE,IAAID,EAAE6I,SAAS7I,EAAEA,EAAE4G,cAAcnQ,IAAIoR,KAAUpR,EAAEqR,GAAG1P,IAAI3B,IAAIoR,GAAQ,WAAWzP,IAAG3B,EAAEwJ,EAAER,cAAc,QAAS0I,UAAU,qBAAuB1R,EAAEA,EAAE8R,YAAY9R,EAAE6R,aAAa,kBAAkBvI,EAAEoN,GAAG1W,EAAEwJ,EAAER,cAAcrH,EAAE,CAAC+U,GAAGpN,EAAEoN,MAAM1W,EAAEwJ,EAAER,cAAcrH,GAAG,WAAWA,IAAI6H,EAAExJ,EAAEsJ,EAAEu5B,SAASr5B,EAAEq5B,UAAS,EAAGv5B,EAAE05B,OAAOx5B,EAAEw5B,KAAK15B,EAAE05B,QAAQhjC,EAAEwJ,EAAEy5B,gBAAgBjjC,EAAE2B,GAAG3B,EAAE4vB,IAAI3vB,EAAED,EAAE6vB,IAAIvmB,EAAE83B,GAAGphC,EAAEC,GAASA,EAAEmX,UAAUpX,EAAEwJ,EAAEiN,GAAG9U,EAAE2H,GAAU3H,GAAG,IAAK,SAASkrB,GAAE,SAAS7sB,GAAG6sB,GAAE,QAAQ7sB,GACpfuJ,EAAED,EAAE,MAAM,IAAK,SAAS,IAAK,SAAS,IAAK,QAAQujB,GAAE,OAAO7sB,GAAGuJ,EAAED,EAAE,MAAM,IAAK,QAAQ,IAAK,QAAQ,IAAIC,EAAE,EAAEA,EAAE+iB,GAAGhrB,OAAOiI,IAAIsjB,GAAEP,GAAG/iB,GAAGvJ,GAAGuJ,EAAED,EAAE,MAAM,IAAK,SAASujB,GAAE,QAAQ7sB,GAAGuJ,EAAED,EAAE,MAAM,IAAK,MAAM,IAAK,QAAQ,IAAK,OAAOujB,GAAE,QAAQ7sB,GAAG6sB,GAAE,OAAO7sB,GAAGuJ,EAAED,EAAE,MAAM,IAAK,UAAUujB,GAAE,SAAS7sB,GAAGuJ,EAAED,EAAE,MAAM,IAAK,QAAQsG,GAAG5P,EAAEsJ,GAAGC,EAAEgG,EAAGvP,EAAEsJ,GAAGujB,GAAE,UAAU7sB,GAAG,MAAM,IAAK,SAASuJ,EAAE6G,GAAGpQ,EAAEsJ,GAAG,MAAM,IAAK,SAAStJ,EAAE0P,cAAc,CAACkzB,cAAct5B,EAAEu5B,UAAUt5B,EAAEnB,EAAE,GAAGkB,EAAE,CAAC5H,WAAM,IAASmrB,GAAE,UAAU7sB,GAAG,MAAM,IAAK,WAAW+Q,GAAG/Q,EAAEsJ,GAAGC,EACpfsH,GAAG7Q,EAAEsJ,GAAGujB,GAAE,UAAU7sB,GAAG,MAAM,QAAQuJ,EAAED,EAAEkN,GAAG7U,EAAE4H,GAAG,IAAIiE,EAAEjE,EAAE,IAAIxJ,KAAKyN,EAAE,GAAGA,EAAErH,eAAepG,GAAG,CAAC,IAAIwN,EAAEC,EAAEzN,GAAG,UAAUA,EAAEmV,GAAGlV,EAAEuN,GAAG,4BAA4BxN,EAAuB,OAApBwN,EAAEA,EAAEA,EAAE0hB,YAAO,IAAgBzd,GAAGxR,EAAEuN,GAAI,aAAaxN,EAAE,kBAAkBwN,GAAG,aAAa5L,GAAG,KAAK4L,IAAI2E,GAAGlS,EAAEuN,GAAG,kBAAkBA,GAAG2E,GAAGlS,EAAE,GAAGuN,GAAG,mCAAmCxN,GAAG,6BAA6BA,GAAG,cAAcA,IAAI0I,EAAGtC,eAAepG,GAAG,MAAMwN,GAAG,aAAaxN,GAAG8sB,GAAE,SAAS7sB,GAAG,MAAMuN,GAAGhD,EAAGvK,EAAED,EAAEwN,EAAE/D,IAAI,OAAO7H,GAAG,IAAK,QAAQ4M,EAAGvO,GAAGkQ,GAAGlQ,EAAEsJ,GAAE,GACnf,MAAM,IAAK,WAAWiF,EAAGvO,GAAGkR,GAAGlR,GAAG,MAAM,IAAK,SAAS,MAAMsJ,EAAE5H,OAAO1B,EAAE8K,aAAa,QAAQ,GAAGsD,EAAG9E,EAAE5H,QAAQ,MAAM,IAAK,SAAS1B,EAAE6iC,WAAWv5B,EAAEu5B,SAAmB,OAAV9iC,EAAEuJ,EAAE5H,OAAc8O,GAAGxQ,IAAIsJ,EAAEu5B,SAAS9iC,GAAE,GAAI,MAAMuJ,EAAEmG,cAAce,GAAGxQ,IAAIsJ,EAAEu5B,SAASv5B,EAAEmG,cAAa,GAAI,MAAM,QAAQ,oBAAoBlG,EAAEu5B,UAAU9iC,EAAE+iC,QAAQpU,IAAIG,GAAGntB,EAAE2H,KAAKrJ,EAAEgZ,OAAO,GAAG,OAAOhZ,EAAEi4B,MAAMj4B,EAAEgZ,OAAO,KAAK,OAAO,KAAK,KAAK,EAAE,GAAGjZ,GAAG,MAAMC,EAAEmX,UAAUkqB,GAAGthC,EAAEC,EAAED,EAAEm6B,cAAc7wB,OAAO,CAAC,GAAG,kBAAkBA,GAAG,OAAOrJ,EAAEmX,UAAU,MAAM9O,MAAMpH,EAAE,MAC/eS,EAAE+3B,GAAGD,GAAGp1B,SAASq1B,GAAGH,GAAGl1B,SAASy2B,GAAG76B,IAAIqJ,EAAErJ,EAAEmX,UAAUzV,EAAE1B,EAAEk6B,cAAc7wB,EAAEsmB,IAAI3vB,EAAEqJ,EAAE+I,YAAY1Q,IAAI1B,EAAEgZ,OAAO,MAAK3P,GAAG,IAAI3H,EAAEyQ,SAASzQ,EAAEA,EAAEwO,eAAe+yB,eAAe55B,IAAKsmB,IAAI3vB,EAAEA,EAAEmX,UAAU9N,GAAG,OAAO,KAAK,KAAK,GAA0B,OAAvB4mB,GAAE+J,IAAG3wB,EAAErJ,EAAEkZ,cAAiB,KAAa,GAARlZ,EAAEgZ,QAAiBhZ,EAAEq0B,MAAM3yB,EAAE1B,IAAEqJ,EAAE,OAAOA,EAAE3H,GAAE,EAAG,OAAO3B,OAAE,IAASC,EAAEk6B,cAAcuH,UAAU5G,GAAG76B,GAAG0B,EAAE,OAAO3B,EAAEmZ,cAAiB7P,IAAI3H,GAAG,KAAY,EAAP1B,EAAE44B,QAAW,OAAO74B,IAAG,IAAKC,EAAEk6B,cAAcwH,4BAA4B,KAAe,EAAV1H,GAAE51B,SAAW,IAAI8+B,KAAIA,GAAE,IAAW,IAAIA,IAAG,IAAIA,KAAEA,GACrf,GAAE,OAAO9F,IAAG,KAAQ,UAAHpH,KAAe,KAAQ,UAAHmN,KAAeC,GAAGhG,GAAEiG,OAAMh6B,GAAG3H,KAAE1B,EAAEgZ,OAAO,GAAS,MAAK,KAAK,EAAE,OAAO6gB,KAAW,OAAO95B,GAAGmtB,GAAGltB,EAAEmX,UAAUqE,eAAe,KAAK,KAAK,GAAG,OAAOsY,GAAG9zB,GAAG,KAA0C,KAAK,GAA0B,GAAvBiwB,GAAE+J,IAAwB,QAArB3wB,EAAErJ,EAAEkZ,eAA0B,OAAO,KAAsC,GAAjCpZ,EAAE,KAAa,GAARE,EAAEgZ,OAA2B,QAAjBzP,EAAEF,EAAE84B,WAAsB,GAAGriC,EAAE2iC,GAAGp5B,GAAE,OAAQ,CAAC,GAAG,IAAI65B,IAAG,OAAOnjC,GAAG,KAAa,GAARA,EAAEiZ,OAAU,IAAIjZ,EAAEC,EAAEsZ,MAAM,OAAOvZ,GAAG,CAAS,GAAG,QAAXwJ,EAAE0wB,GAAGl6B,IAAe,CACjW,IADkWC,EAAEgZ,OAAO,GAAGypB,GAAGp5B,GAAE,GAAoB,QAAhBvJ,EAAEyJ,EAAEsrB,eAAuB70B,EAAE60B,YAAY/0B,EAAEE,EAAEgZ,OAAO,GACnf,OAAO3P,EAAEivB,aAAat4B,EAAEw4B,YAAY,MAAMx4B,EAAEs4B,WAAWjvB,EAAEivB,WAAWjvB,EAAE3H,EAAMA,EAAE1B,EAAEsZ,MAAM,OAAO5X,GAAO3B,EAAEsJ,GAANvJ,EAAE4B,GAAQsX,OAAO,EAAElZ,EAAEy4B,WAAW,KAAKz4B,EAAE04B,YAAY,KAAK14B,EAAEw4B,WAAW,KAAmB,QAAd/uB,EAAEzJ,EAAEgZ,YAAoBhZ,EAAEm0B,WAAW,EAAEn0B,EAAEu0B,MAAMt0B,EAAED,EAAEwZ,MAAM,KAAKxZ,EAAEo6B,cAAc,KAAKp6B,EAAEoZ,cAAc,KAAKpZ,EAAE+0B,YAAY,KAAK/0B,EAAEq0B,aAAa,KAAKr0B,EAAEqX,UAAU,OAAOrX,EAAEm0B,WAAW1qB,EAAE0qB,WAAWn0B,EAAEu0B,MAAM9qB,EAAE8qB,MAAMv0B,EAAEwZ,MAAM/P,EAAE+P,MAAMxZ,EAAEo6B,cAAc3wB,EAAE2wB,cAAcp6B,EAAEoZ,cAAc3P,EAAE2P,cAAcpZ,EAAE+0B,YAAYtrB,EAAEsrB,YAAY/0B,EAAEgK,KAAKP,EAAEO,KAAK/J,EAAEwJ,EAAE4qB,aACpfr0B,EAAEq0B,aAAa,OAAOp0B,EAAE,KAAK,CAACs0B,MAAMt0B,EAAEs0B,MAAMD,aAAar0B,EAAEq0B,eAAe1yB,EAAEA,EAAE6X,QAA2B,OAAnB2W,GAAE8J,GAAY,EAAVA,GAAE51B,QAAU,GAAUpE,EAAEsZ,MAAMvZ,EAAEA,EAAEwZ,QAAQ,OAAOlQ,EAAEi5B,MAAMxP,KAAIwQ,KAAKtjC,EAAEgZ,OAAO,GAAGlZ,GAAE,EAAG2iC,GAAGp5B,GAAE,GAAIrJ,EAAEq0B,MAAM,cAAc,CAAC,IAAIv0B,EAAE,GAAW,QAARC,EAAEk6B,GAAG1wB,KAAa,GAAGvJ,EAAEgZ,OAAO,GAAGlZ,GAAE,EAAmB,QAAhB4B,EAAE3B,EAAE80B,eAAuB70B,EAAE60B,YAAYnzB,EAAE1B,EAAEgZ,OAAO,GAAGypB,GAAGp5B,GAAE,GAAI,OAAOA,EAAEi5B,MAAM,WAAWj5B,EAAEk5B,WAAWh5B,EAAEuP,YAAYwhB,GAAG,OAAmC,QAA5Bt6B,EAAEA,EAAEs4B,WAAWjvB,EAAEivB,cAAsBt4B,EAAEu4B,WAAW,MAAM,UAAU,EAAEzF,KAAIzpB,EAAE+4B,mBAAmBkB,IAAI,aAAa5hC,IAAI1B,EAAEgZ,OACjf,GAAGlZ,GAAE,EAAG2iC,GAAGp5B,GAAE,GAAIrJ,EAAEq0B,MAAM,UAAUhrB,EAAE64B,aAAa34B,EAAEgQ,QAAQvZ,EAAEsZ,MAAMtZ,EAAEsZ,MAAM/P,IAAa,QAAT7H,EAAE2H,EAAEg5B,MAAc3gC,EAAE6X,QAAQhQ,EAAEvJ,EAAEsZ,MAAM/P,EAAEF,EAAEg5B,KAAK94B,GAAG,OAAO,OAAOF,EAAEi5B,MAAM5gC,EAAE2H,EAAEi5B,KAAKj5B,EAAE84B,UAAUzgC,EAAE2H,EAAEi5B,KAAK5gC,EAAE6X,QAAQlQ,EAAEivB,WAAWt4B,EAAEs4B,WAAWjvB,EAAE+4B,mBAAmBtP,KAAIpxB,EAAE6X,QAAQ,KAAKvZ,EAAEg6B,GAAE51B,QAAQ8rB,GAAE8J,GAAEl6B,EAAI,EAAFE,EAAI,EAAI,EAAFA,GAAK0B,GAAG,KAAK,KAAK,GAAG,KAAK,GAAG,OAAO6hC,KAAK,OAAOxjC,GAAG,OAAOA,EAAEmZ,iBAAiB,OAAOlZ,EAAEkZ,gBAAgB,kCAAkC7P,EAAEuvB,OAAO54B,EAAEgZ,OAAO,GAAG,KAAK,MAAM3Q,MAAMpH,EAAE,IAAIjB,EAAE2N,MAChd,SAAS61B,GAAGzjC,GAAG,OAAOA,EAAE4N,KAAK,KAAK,EAAE+iB,GAAG3wB,EAAE+J,OAAO8mB,KAAK,IAAI5wB,EAAED,EAAEiZ,MAAM,OAAS,KAAFhZ,GAAQD,EAAEiZ,OAAS,KAAHhZ,EAAQ,GAAGD,GAAG,KAAK,KAAK,EAAgC,GAA9B85B,KAAK5J,GAAEptB,IAAGotB,GAAEG,IAAG4K,KAAkB,KAAO,IAApBh7B,EAAED,EAAEiZ,QAAoB,MAAM3Q,MAAMpH,EAAE,MAAyB,OAAnBlB,EAAEiZ,OAAS,KAAHhZ,EAAQ,GAAUD,EAAE,KAAK,EAAE,OAAOg6B,GAAGh6B,GAAG,KAAK,KAAK,GAAG,OAAOkwB,GAAE+J,IAAe,MAAZh6B,EAAED,EAAEiZ,QAAcjZ,EAAEiZ,OAAS,KAAHhZ,EAAQ,GAAGD,GAAG,KAAK,KAAK,GAAG,OAAOkwB,GAAE+J,IAAG,KAAK,KAAK,EAAE,OAAOH,KAAK,KAAK,KAAK,GAAG,OAAO/F,GAAG/zB,GAAG,KAAK,KAAK,GAAG,KAAK,GAAG,OAAOwjC,KAAK,KAAK,QAAQ,OAAO,MACra,SAASE,GAAG1jC,EAAEC,GAAG,IAAI,IAAI0B,EAAE,GAAG2H,EAAErJ,EAAE,GAAG0B,GAAGgM,EAAGrE,GAAGA,EAAEA,EAAE0P,aAAa1P,GAAG,IAAIC,EAAE5H,EAAE,MAAM5B,GAAGwJ,EAAE,6BAA6BxJ,EAAE4jC,QAAQ,KAAK5jC,EAAE8M,MAAM,MAAM,CAACnL,MAAM1B,EAAE0H,OAAOzH,EAAE4M,MAAMtD,GAAG,SAASq6B,GAAG5jC,EAAEC,GAAG,IAAI4jC,QAAQC,MAAM7jC,EAAEyB,OAAO,MAAMC,GAAGwtB,YAAW,WAAW,MAAMxtB,MAlB3Py/B,GAAG,SAASphC,EAAEC,GAAG,IAAI,IAAI0B,EAAE1B,EAAEsZ,MAAM,OAAO5X,GAAG,CAAC,GAAG,IAAIA,EAAEiM,KAAK,IAAIjM,EAAEiM,IAAI5N,EAAE+R,YAAYpQ,EAAEyV,gBAAgB,GAAG,IAAIzV,EAAEiM,KAAK,OAAOjM,EAAE4X,MAAM,CAAC5X,EAAE4X,MAAMP,OAAOrX,EAAEA,EAAEA,EAAE4X,MAAM,SAAS,GAAG5X,IAAI1B,EAAE,MAAM,KAAK,OAAO0B,EAAE6X,SAAS,CAAC,GAAG,OAAO7X,EAAEqX,QAAQrX,EAAEqX,SAAS/Y,EAAE,OAAO0B,EAAEA,EAAEqX,OAAOrX,EAAE6X,QAAQR,OAAOrX,EAAEqX,OAAOrX,EAAEA,EAAE6X,UAChS6nB,GAAG,SAASrhC,EAAEC,EAAE0B,EAAE2H,GAAG,IAAIC,EAAEvJ,EAAEm6B,cAAc,GAAG5wB,IAAID,EAAE,CAACtJ,EAAEC,EAAEmX,UAAUsiB,GAAGH,GAAGl1B,SAAS,IAAyUmF,EAArUzJ,EAAE,KAAK,OAAO4B,GAAG,IAAK,QAAQ4H,EAAEgG,EAAGvP,EAAEuJ,GAAGD,EAAEiG,EAAGvP,EAAEsJ,GAAGvJ,EAAE,GAAG,MAAM,IAAK,SAASwJ,EAAE6G,GAAGpQ,EAAEuJ,GAAGD,EAAE8G,GAAGpQ,EAAEsJ,GAAGvJ,EAAE,GAAG,MAAM,IAAK,SAASwJ,EAAEnB,EAAE,GAAGmB,EAAE,CAAC7H,WAAM,IAAS4H,EAAElB,EAAE,GAAGkB,EAAE,CAAC5H,WAAM,IAAS3B,EAAE,GAAG,MAAM,IAAK,WAAWwJ,EAAEsH,GAAG7Q,EAAEuJ,GAAGD,EAAEuH,GAAG7Q,EAAEsJ,GAAGvJ,EAAE,GAAG,MAAM,QAAQ,oBAAoBwJ,EAAEu5B,SAAS,oBAAoBx5B,EAAEw5B,UAAU9iC,EAAE+iC,QAAQpU,IAAyB,IAAItW,KAAzB7B,GAAG7U,EAAE2H,GAAS3H,EAAE,KAAc4H,EAAE,IAAID,EAAEnD,eAAekS,IAAI9O,EAAEpD,eAAekS,IAAI,MAAM9O,EAAE8O,GAAG,GAAG,UAC3eA,EAAE,CAAC,IAAI7K,EAAEjE,EAAE8O,GAAG,IAAI7O,KAAKgE,EAAEA,EAAErH,eAAeqD,KAAK7H,IAAIA,EAAE,IAAIA,EAAE6H,GAAG,QAAQ,4BAA4B6O,GAAG,aAAaA,GAAG,mCAAmCA,GAAG,6BAA6BA,GAAG,cAAcA,IAAI5P,EAAGtC,eAAekS,GAAGtY,IAAIA,EAAE,KAAKA,EAAEA,GAAG,IAAIgE,KAAKsU,EAAE,OAAO,IAAIA,KAAK/O,EAAE,CAAC,IAAIiE,EAAEjE,EAAE+O,GAAyB,GAAtB7K,EAAE,MAAMjE,EAAEA,EAAE8O,QAAG,EAAU/O,EAAEnD,eAAekS,IAAI9K,IAAIC,IAAI,MAAMD,GAAG,MAAMC,GAAG,GAAG,UAAU6K,EAAE,GAAG7K,EAAE,CAAC,IAAIhE,KAAKgE,GAAGA,EAAErH,eAAeqD,IAAI+D,GAAGA,EAAEpH,eAAeqD,KAAK7H,IAAIA,EAAE,IAAIA,EAAE6H,GAAG,IAAI,IAAIA,KAAK+D,EAAEA,EAAEpH,eAAeqD,IAAIgE,EAAEhE,KAAK+D,EAAE/D,KAAK7H,IAClfA,EAAE,IAAIA,EAAE6H,GAAG+D,EAAE/D,SAAS7H,IAAI5B,IAAIA,EAAE,IAAIA,EAAEgE,KAAKsU,EAAE1W,IAAIA,EAAE4L,MAAM,4BAA4B8K,GAAG9K,EAAEA,EAAEA,EAAE0hB,YAAO,EAAOzhB,EAAEA,EAAEA,EAAEyhB,YAAO,EAAO,MAAM1hB,GAAGC,IAAID,IAAIxN,EAAEA,GAAG,IAAIgE,KAAKsU,EAAE9K,IAAI,aAAa8K,EAAE,kBAAkB9K,GAAG,kBAAkBA,IAAIxN,EAAEA,GAAG,IAAIgE,KAAKsU,EAAE,GAAG9K,GAAG,mCAAmC8K,GAAG,6BAA6BA,IAAI5P,EAAGtC,eAAekS,IAAI,MAAM9K,GAAG,aAAa8K,GAAGwU,GAAE,SAAS7sB,GAAGD,GAAGyN,IAAID,IAAIxN,EAAE,KAAK,kBAAkBwN,GAAG,OAAOA,GAAGA,EAAES,WAAW/B,EAAGsB,EAAEqE,YAAY7R,EAAEA,GAAG,IAAIgE,KAAKsU,EAAE9K,IAAI5L,IAAI5B,EAAEA,GAAG,IAAIgE,KAAK,QAC/epC,GAAG,IAAI0W,EAAEtY,GAAKE,EAAE60B,YAAYzc,KAAEpY,EAAEgZ,OAAO,KAAIqoB,GAAG,SAASthC,EAAEC,EAAE0B,EAAE2H,GAAG3H,IAAI2H,IAAIrJ,EAAEgZ,OAAO,IAcgL,IAAI8qB,GAAG,oBAAoBC,QAAQA,QAAQ3pB,IAAI,SAAS4pB,GAAGjkC,EAAEC,EAAE0B,IAAGA,EAAE2zB,IAAI,EAAE3zB,IAAKiM,IAAI,EAAEjM,EAAE8zB,QAAQ,CAACyO,QAAQ,MAAM,IAAI56B,EAAErJ,EAAEyB,MAAsD,OAAhDC,EAAE+zB,SAAS,WAAWyO,KAAKA,IAAG,EAAGC,GAAG96B,GAAGs6B,GAAG5jC,EAAEC,IAAW0B,EACpb,SAAS0iC,GAAGrkC,EAAEC,EAAE0B,IAAGA,EAAE2zB,IAAI,EAAE3zB,IAAKiM,IAAI,EAAE,IAAItE,EAAEtJ,EAAE+J,KAAKk3B,yBAAyB,GAAG,oBAAoB33B,EAAE,CAAC,IAAIC,EAAEtJ,EAAEyB,MAAMC,EAAE8zB,QAAQ,WAAmB,OAARmO,GAAG5jC,EAAEC,GAAUqJ,EAAEC,IAAI,IAAIxJ,EAAEC,EAAEoX,UAA8O,OAApO,OAAOrX,GAAG,oBAAoBA,EAAEukC,oBAAoB3iC,EAAE+zB,SAAS,WAAW,oBAAoBpsB,IAAI,OAAOi7B,GAAGA,GAAG,IAAI/7B,IAAI,CAACiB,OAAO86B,GAAG37B,IAAIa,MAAMm6B,GAAG5jC,EAAEC,IAAI,IAAI0B,EAAE1B,EAAE4M,MAAMpD,KAAK66B,kBAAkBrkC,EAAEyB,MAAM,CAAC8iC,eAAe,OAAO7iC,EAAEA,EAAE,OAAcA,EAAE,IAAI8iC,GAAG,oBAAoBC,QAAQA,QAAQl8B,IACxc,SAASm8B,GAAG3kC,GAAG,IAAIC,EAAED,EAAEk4B,IAAI,GAAG,OAAOj4B,EAAE,GAAG,oBAAoBA,EAAE,IAAIA,EAAE,MAAM,MAAM0B,GAAGijC,GAAG5kC,EAAE2B,QAAQ1B,EAAEoE,QAAQ,KAAK,SAASwgC,GAAG7kC,EAAEC,GAAG,OAAOA,EAAE2N,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAA8Q,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,OAAjS,KAAK,EAAE,GAAW,IAAR3N,EAAEgZ,OAAW,OAAOjZ,EAAE,CAAC,IAAI2B,EAAE3B,EAAEm6B,cAAc7wB,EAAEtJ,EAAEmZ,cAA4BlZ,GAAdD,EAAEC,EAAEmX,WAAcwgB,wBAAwB33B,EAAE64B,cAAc74B,EAAE8J,KAAKpI,EAAE6xB,GAAGvzB,EAAE8J,KAAKpI,GAAG2H,GAAGtJ,EAAE8kC,oCAAoC7kC,EAAE,OAAO,KAAK,EAA6C,YAAnC,IAARA,EAAEgZ,OAAWqW,GAAGrvB,EAAEmX,UAAUqE,gBAA0D,MAAMnT,MAAMpH,EAAE,MAC5e,SAAS6jC,GAAG/kC,EAAEC,EAAE0B,GAAG,OAAOA,EAAEiM,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAgD,GAAG,QAAhC3N,EAAE,QAAlBA,EAAE0B,EAAEmzB,aAAuB70B,EAAEs4B,WAAW,MAAiB,CAACv4B,EAAEC,EAAEA,EAAEqE,KAAK,EAAE,CAAC,GAAG,KAAW,EAANtE,EAAE4N,KAAO,CAAC,IAAItE,EAAEtJ,EAAE+9B,OAAO/9B,EAAEg+B,QAAQ10B,IAAItJ,EAAEA,EAAEsE,WAAWtE,IAAIC,GAAgD,GAAG,QAAhCA,EAAE,QAAlBA,EAAE0B,EAAEmzB,aAAuB70B,EAAEs4B,WAAW,MAAiB,CAACv4B,EAAEC,EAAEA,EAAEqE,KAAK,EAAE,CAAC,IAAIiF,EAAEvJ,EAAEsJ,EAAEC,EAAEjF,KAAa,KAAO,GAAfiF,EAAEA,EAAEqE,OAAe,KAAO,EAAFrE,KAAOy7B,GAAGrjC,EAAE3B,GAAGilC,GAAGtjC,EAAE3B,IAAIA,EAAEsJ,QAAQtJ,IAAIC,GAAG,OAAO,KAAK,EACtR,OADwRD,EAAE2B,EAAEyV,UAAkB,EAARzV,EAAEsX,QAAU,OAAOhZ,EAAED,EAAE+3B,qBAAqBzuB,EAAE3H,EAAEm3B,cAAcn3B,EAAEoI,KAAK9J,EAAEk6B,cAAc3G,GAAG7xB,EAAEoI,KAAK9J,EAAEk6B,eAAen6B,EAAE+gC,mBAAmBz3B,EACxgBrJ,EAAEkZ,cAAcnZ,EAAE8kC,4CAAuD,QAAhB7kC,EAAE0B,EAAEmzB,cAAsBoB,GAAGv0B,EAAE1B,EAAED,IAAU,KAAK,EAAkB,GAAG,QAAnBC,EAAE0B,EAAEmzB,aAAwB,CAAQ,GAAP90B,EAAE,KAAQ,OAAO2B,EAAE4X,MAAM,OAAO5X,EAAE4X,MAAM3L,KAAK,KAAK,EAA4B,KAAK,EAAE5N,EAAE2B,EAAE4X,MAAMnC,UAAU8e,GAAGv0B,EAAE1B,EAAED,GAAG,OAAO,KAAK,EAA2E,OAAzEA,EAAE2B,EAAEyV,eAAU,OAAOnX,GAAW,EAAR0B,EAAEsX,OAAS6V,GAAGntB,EAAEoI,KAAKpI,EAAEw4B,gBAAgBn6B,EAAEklC,SAAe,KAAK,EAAS,KAAK,EAAS,KAAK,GACnX,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,OAD6U,KAAK,GACzY,YAD4Y,OAAOvjC,EAAEwX,gBAAgBxX,EAAEA,EAAEoX,UAAU,OAAOpX,IAAIA,EAAEA,EAAEwX,cAAc,OAAOxX,IAAIA,EAAEA,EAAEyX,WAAW,OAAOzX,GAAGua,GAAGva,OACzb,MAAM2G,MAAMpH,EAAE,MAC5E,SAASikC,GAAGnlC,EAAEC,GAAG,IAAI,IAAI0B,EAAE3B,IAAI,CAAC,GAAG,IAAI2B,EAAEiM,IAAI,CAAC,IAAItE,EAAE3H,EAAEyV,UAAU,GAAGnX,EAAY,oBAAVqJ,EAAEA,EAAE6L,OAA4BE,YAAY/L,EAAE+L,YAAY,UAAU,OAAO,aAAa/L,EAAE87B,QAAQ,WAAW,CAAC97B,EAAE3H,EAAEyV,UAAU,IAAI7N,EAAE5H,EAAEw4B,cAAchlB,MAAM5L,OAAE,IAASA,GAAG,OAAOA,GAAGA,EAAEpD,eAAe,WAAWoD,EAAE67B,QAAQ,KAAK97B,EAAE6L,MAAMiwB,QAAQnwB,GAAG,UAAU1L,SAAS,GAAG,IAAI5H,EAAEiM,IAAIjM,EAAEyV,UAAU/E,UAAUpS,EAAE,GAAG0B,EAAEw4B,mBAAmB,IAAI,KAAKx4B,EAAEiM,KAAK,KAAKjM,EAAEiM,KAAK,OAAOjM,EAAEwX,eAAexX,IAAI3B,IAAI,OAAO2B,EAAE4X,MAAM,CAAC5X,EAAE4X,MAAMP,OAAOrX,EAAEA,EAAEA,EAAE4X,MAAM,SAAS,GAAG5X,IACtf3B,EAAE,MAAM,KAAK,OAAO2B,EAAE6X,SAAS,CAAC,GAAG,OAAO7X,EAAEqX,QAAQrX,EAAEqX,SAAShZ,EAAE,OAAO2B,EAAEA,EAAEqX,OAAOrX,EAAE6X,QAAQR,OAAOrX,EAAEqX,OAAOrX,EAAEA,EAAE6X,SACjH,SAAS6rB,GAAGrlC,EAAEC,GAAG,GAAGoxB,IAAI,oBAAoBA,GAAGiU,qBAAqB,IAAIjU,GAAGiU,qBAAqBlU,GAAGnxB,GAAG,MAAMF,IAAI,OAAOE,EAAE2N,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAmB,GAAG,QAAnB5N,EAAEC,EAAE60B,cAAyC,QAAf90B,EAAEA,EAAEu4B,YAAqB,CAAC,IAAI52B,EAAE3B,EAAEA,EAAEsE,KAAK,EAAE,CAAC,IAAIgF,EAAE3H,EAAE4H,EAAED,EAAE00B,QAAgB,GAAR10B,EAAEA,EAAEsE,SAAO,IAASrE,EAAE,GAAG,KAAO,EAAFD,GAAK07B,GAAG/kC,EAAE0B,OAAO,CAAC2H,EAAErJ,EAAE,IAAIsJ,IAAI,MAAMxJ,GAAG6kC,GAAGt7B,EAAEvJ,IAAI4B,EAAEA,EAAE2C,WAAW3C,IAAI3B,GAAG,MAAM,KAAK,EAAsB,GAApB2kC,GAAG1kC,GAAoB,oBAAjBD,EAAEC,EAAEmX,WAAmCmuB,qBAAqB,IAAIvlC,EAAE03B,MAAMz3B,EAAEk6B,cAAcn6B,EAAE8D,MAAM7D,EAAEkZ,cAAcnZ,EAAEulC,uBAAuB,MAAMxlC,GAAG6kC,GAAG3kC,EAC/gBF,GAAG,MAAM,KAAK,EAAE4kC,GAAG1kC,GAAG,MAAM,KAAK,EAAEulC,GAAGxlC,EAAEC,IAAI,SAASwlC,GAAGzlC,GAAGA,EAAE+Y,UAAU,KAAK/Y,EAAEuZ,MAAM,KAAKvZ,EAAEo0B,aAAa,KAAKp0B,EAAEy4B,YAAY,KAAKz4B,EAAEu4B,WAAW,KAAKv4B,EAAEm6B,cAAc,KAAKn6B,EAAEmZ,cAAc,KAAKnZ,EAAE26B,aAAa,KAAK36B,EAAEgZ,OAAO,KAAKhZ,EAAE80B,YAAY,KAAK,SAAS4Q,GAAG1lC,GAAG,OAAO,IAAIA,EAAE4N,KAAK,IAAI5N,EAAE4N,KAAK,IAAI5N,EAAE4N,IACnS,SAAS+3B,GAAG3lC,GAAGA,EAAE,CAAC,IAAI,IAAIC,EAAED,EAAEgZ,OAAO,OAAO/Y,GAAG,CAAC,GAAGylC,GAAGzlC,GAAG,MAAMD,EAAEC,EAAEA,EAAE+Y,OAAO,MAAM1Q,MAAMpH,EAAE,MAAO,IAAIS,EAAE1B,EAAgB,OAAdA,EAAE0B,EAAEyV,UAAiBzV,EAAEiM,KAAK,KAAK,EAAE,IAAItE,GAAE,EAAG,MAAM,KAAK,EAA+B,KAAK,EAAErJ,EAAEA,EAAEwb,cAAcnS,GAAE,EAAG,MAAM,QAAQ,MAAMhB,MAAMpH,EAAE,MAAe,GAARS,EAAEsX,QAAW/G,GAAGjS,EAAE,IAAI0B,EAAEsX,QAAQ,IAAIjZ,EAAEC,EAAE,IAAI0B,EAAE3B,IAAI,CAAC,KAAK,OAAO2B,EAAE6X,SAAS,CAAC,GAAG,OAAO7X,EAAEqX,QAAQ0sB,GAAG/jC,EAAEqX,QAAQ,CAACrX,EAAE,KAAK,MAAM3B,EAAE2B,EAAEA,EAAEqX,OAAiC,IAA1BrX,EAAE6X,QAAQR,OAAOrX,EAAEqX,OAAWrX,EAAEA,EAAE6X,QAAQ,IAAI7X,EAAEiM,KAAK,IAAIjM,EAAEiM,KAAK,KAAKjM,EAAEiM,KAAK,CAAC,GAAW,EAARjM,EAAEsX,MAAQ,SAAShZ,EAAE,GAAG,OAC/e0B,EAAE4X,OAAO,IAAI5X,EAAEiM,IAAI,SAAS3N,EAAO0B,EAAE4X,MAAMP,OAAOrX,EAAEA,EAAEA,EAAE4X,MAAM,KAAa,EAAR5X,EAAEsX,OAAS,CAACtX,EAAEA,EAAEyV,UAAU,MAAMpX,GAAGsJ,EAAEs8B,GAAG5lC,EAAE2B,EAAE1B,GAAG4lC,GAAG7lC,EAAE2B,EAAE1B,GACzH,SAAS2lC,GAAG5lC,EAAEC,EAAE0B,GAAG,IAAI2H,EAAEtJ,EAAE4N,IAAIrE,EAAE,IAAID,GAAG,IAAIA,EAAE,GAAGC,EAAEvJ,EAAEuJ,EAAEvJ,EAAEoX,UAAUpX,EAAEoX,UAAUuV,SAAS1sB,EAAE,IAAI0B,EAAEyQ,SAASzQ,EAAEmV,WAAWgvB,aAAa9lC,EAAEC,GAAG0B,EAAEmkC,aAAa9lC,EAAEC,IAAI,IAAI0B,EAAEyQ,UAAUnS,EAAE0B,EAAEmV,YAAagvB,aAAa9lC,EAAE2B,IAAK1B,EAAE0B,GAAIoQ,YAAY/R,GAA4B,QAAxB2B,EAAEA,EAAEokC,2BAA8B,IAASpkC,GAAG,OAAO1B,EAAE8iC,UAAU9iC,EAAE8iC,QAAQpU,UAAU,GAAG,IAAIrlB,GAAc,QAAVtJ,EAAEA,EAAEuZ,OAAgB,IAAIqsB,GAAG5lC,EAAEC,EAAE0B,GAAG3B,EAAEA,EAAEwZ,QAAQ,OAAOxZ,GAAG4lC,GAAG5lC,EAAEC,EAAE0B,GAAG3B,EAAEA,EAAEwZ,QAC9Y,SAASqsB,GAAG7lC,EAAEC,EAAE0B,GAAG,IAAI2H,EAAEtJ,EAAE4N,IAAIrE,EAAE,IAAID,GAAG,IAAIA,EAAE,GAAGC,EAAEvJ,EAAEuJ,EAAEvJ,EAAEoX,UAAUpX,EAAEoX,UAAUuV,SAAS1sB,EAAE0B,EAAEmkC,aAAa9lC,EAAEC,GAAG0B,EAAEoQ,YAAY/R,QAAQ,GAAG,IAAIsJ,GAAc,QAAVtJ,EAAEA,EAAEuZ,OAAgB,IAAIssB,GAAG7lC,EAAEC,EAAE0B,GAAG3B,EAAEA,EAAEwZ,QAAQ,OAAOxZ,GAAG6lC,GAAG7lC,EAAEC,EAAE0B,GAAG3B,EAAEA,EAAEwZ,QACrN,SAASgsB,GAAGxlC,EAAEC,GAAG,IAAI,IAAasJ,EAAExJ,EAAX4B,EAAE1B,EAAEqJ,GAAE,IAAS,CAAC,IAAIA,EAAE,CAACA,EAAE3H,EAAEqX,OAAOhZ,EAAE,OAAO,CAAC,GAAG,OAAOsJ,EAAE,MAAMhB,MAAMpH,EAAE,MAAoB,OAAdqI,EAAED,EAAE8N,UAAiB9N,EAAEsE,KAAK,KAAK,EAAE7N,GAAE,EAAG,MAAMC,EAAE,KAAK,EAAiC,KAAK,EAAEuJ,EAAEA,EAAEkS,cAAc1b,GAAE,EAAG,MAAMC,EAAEsJ,EAAEA,EAAE0P,OAAO1P,GAAE,EAAG,GAAG,IAAI3H,EAAEiM,KAAK,IAAIjM,EAAEiM,IAAI,CAAC5N,EAAE,IAAI,IAAIwJ,EAAExJ,EAAEwN,EAAE7L,EAAE4L,EAAEC,IAAI,GAAG63B,GAAG77B,EAAE+D,GAAG,OAAOA,EAAEgM,OAAO,IAAIhM,EAAEK,IAAIL,EAAEgM,MAAMP,OAAOzL,EAAEA,EAAEA,EAAEgM,UAAU,CAAC,GAAGhM,IAAIC,EAAE,MAAMxN,EAAE,KAAK,OAAOuN,EAAEiM,SAAS,CAAC,GAAG,OAAOjM,EAAEyL,QAAQzL,EAAEyL,SAASxL,EAAE,MAAMxN,EAAEuN,EAAEA,EAAEyL,OAAOzL,EAAEiM,QAAQR,OAAOzL,EAAEyL,OAAOzL,EAAEA,EAAEiM,QAAQzZ,GAAGyJ,EAAED,EAAEiE,EAAE7L,EAAEyV,UACrf,IAAI5N,EAAE4I,SAAS5I,EAAEsN,WAAWhF,YAAYtE,GAAGhE,EAAEsI,YAAYtE,IAAIjE,EAAEuI,YAAYnQ,EAAEyV,gBAAgB,GAAG,IAAIzV,EAAEiM,KAAK,GAAG,OAAOjM,EAAE4X,MAAM,CAAChQ,EAAE5H,EAAEyV,UAAUqE,cAAc1b,GAAE,EAAG4B,EAAE4X,MAAMP,OAAOrX,EAAEA,EAAEA,EAAE4X,MAAM,eAAe,GAAG8rB,GAAGrlC,EAAE2B,GAAG,OAAOA,EAAE4X,MAAM,CAAC5X,EAAE4X,MAAMP,OAAOrX,EAAEA,EAAEA,EAAE4X,MAAM,SAAS,GAAG5X,IAAI1B,EAAE,MAAM,KAAK,OAAO0B,EAAE6X,SAAS,CAAC,GAAG,OAAO7X,EAAEqX,QAAQrX,EAAEqX,SAAS/Y,EAAE,OAAkB,KAAX0B,EAAEA,EAAEqX,QAAapL,MAAMtE,GAAE,GAAI3H,EAAE6X,QAAQR,OAAOrX,EAAEqX,OAAOrX,EAAEA,EAAE6X,SAClZ,SAASwsB,GAAGhmC,EAAEC,GAAG,OAAOA,EAAE2N,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,IAAIjM,EAAE1B,EAAE60B,YAAyC,GAAG,QAAhCnzB,EAAE,OAAOA,EAAEA,EAAE42B,WAAW,MAAiB,CAAC,IAAIjvB,EAAE3H,EAAEA,EAAE2C,KAAK,GAAG,KAAW,EAANgF,EAAEsE,OAAS5N,EAAEsJ,EAAE00B,QAAQ10B,EAAE00B,aAAQ,OAAO,IAASh+B,GAAGA,KAAKsJ,EAAEA,EAAEhF,WAAWgF,IAAI3H,GAAG,OAAO,KAAK,EAErJ,KAAK,GAAoG,KAAK,GAAG,OAF6C,KAAK,EAAgB,GAAG,OAAjBA,EAAE1B,EAAEmX,WAAqB,CAAC9N,EAAErJ,EAAEk6B,cAAc,IAAI5wB,EAAE,OAAOvJ,EAAEA,EAAEm6B,cAAc7wB,EAAEtJ,EAAEC,EAAE8J,KAAK,IAAIhK,EAAEE,EAAE60B,YAA+B,GAAnB70B,EAAE60B,YAAY,KAAQ,OAAO/0B,EAAE,CAAgF,IAA/E4B,EAAEkuB,IAAIvmB,EAAE,UAAUtJ,GAAG,UAAUsJ,EAAES,MAAM,MAAMT,EAAEoE,MAAMqC,GAAGpO,EAAE2H,GAAGmN,GAAGzW,EAAEuJ,GAAGtJ,EAAEwW,GAAGzW,EAAEsJ,GAAOC,EAAE,EAAEA,EAAExJ,EAAEuB,OAAOiI,GAClf,EAAE,CAAC,IAAIC,EAAEzJ,EAAEwJ,GAAGiE,EAAEzN,EAAEwJ,EAAE,GAAG,UAAUC,EAAE0L,GAAGvT,EAAE6L,GAAG,4BAA4BhE,EAAEgI,GAAG7P,EAAE6L,GAAG,aAAahE,EAAE0I,GAAGvQ,EAAE6L,GAAGjD,EAAG5I,EAAE6H,EAAEgE,EAAEvN,GAAG,OAAOD,GAAG,IAAK,QAAQgQ,GAAGrO,EAAE2H,GAAG,MAAM,IAAK,WAAW2H,GAAGtP,EAAE2H,GAAG,MAAM,IAAK,SAAStJ,EAAE2B,EAAE+N,cAAckzB,YAAYjhC,EAAE+N,cAAckzB,cAAct5B,EAAEu5B,SAAmB,OAAV9iC,EAAEuJ,EAAE5H,OAAc8O,GAAG7O,IAAI2H,EAAEu5B,SAAS9iC,GAAE,GAAIC,MAAMsJ,EAAEu5B,WAAW,MAAMv5B,EAAEmG,aAAae,GAAG7O,IAAI2H,EAAEu5B,SAASv5B,EAAEmG,cAAa,GAAIe,GAAG7O,IAAI2H,EAAEu5B,SAASv5B,EAAEu5B,SAAS,GAAG,IAAG,MAAO,OAAO,KAAK,EAAE,GAAG,OAAO5iC,EAAEmX,UAAU,MAAM9O,MAAMpH,EAAE,MAC/c,YADqdjB,EAAEmX,UAAU/E,UACjfpS,EAAEk6B,eAAqB,KAAK,EAA8D,aAA5Dx4B,EAAE1B,EAAEmX,WAAYoE,UAAU7Z,EAAE6Z,SAAQ,EAAGU,GAAGva,EAAE8Z,iBAAsC,KAAK,GAAyD,OAAtD,OAAOxb,EAAEkZ,gBAAgB8sB,GAAGlT,KAAIoS,GAAGllC,EAAEsZ,OAAM,SAAK2sB,GAAGjmC,GAAU,KAAK,GAAS,YAANimC,GAAGjmC,GAAyB,KAAK,GAAG,KAAK,GAAgC,YAA7BklC,GAAGllC,EAAE,OAAOA,EAAEkZ,eAAsB,MAAM7Q,MAAMpH,EAAE,MAAO,SAASglC,GAAGlmC,GAAG,IAAIC,EAAED,EAAE80B,YAAY,GAAG,OAAO70B,EAAE,CAACD,EAAE80B,YAAY,KAAK,IAAInzB,EAAE3B,EAAEoX,UAAU,OAAOzV,IAAIA,EAAE3B,EAAEoX,UAAU,IAAIqtB,IAAIxkC,EAAEmH,SAAQ,SAASnH,GAAG,IAAIqJ,EAAE68B,GAAGhnB,KAAK,KAAKnf,EAAEC,GAAG0B,EAAEorB,IAAI9sB,KAAK0B,EAAEiH,IAAI3I,GAAGA,EAAEmmC,KAAK98B,EAAEA,QACne,SAAS+8B,GAAGrmC,EAAEC,GAAG,OAAO,OAAOD,IAAsB,QAAlBA,EAAEA,EAAEmZ,gBAAwB,OAAOnZ,EAAEoZ,cAA+B,QAAlBnZ,EAAEA,EAAEkZ,gBAAwB,OAAOlZ,EAAEmZ,YAAe,IAAIktB,GAAG3lC,KAAK4lC,KAAKC,GAAGt7B,EAAGkwB,uBAAuBqL,GAAGv7B,EAAG60B,kBAAkB2G,GAAE,EAAErJ,GAAE,KAAKsJ,GAAE,KAAKrD,GAAE,EAAEsD,GAAG,EAAEC,GAAG5W,GAAG,GAAGkT,GAAE,EAAE2D,GAAG,KAAKC,GAAG,EAAE9Q,GAAG,EAAEmN,GAAG,EAAE4D,GAAG,EAAEC,GAAG,KAAKhB,GAAG,EAAE1C,GAAG2D,EAAAA,EAAS,SAASC,KAAK5D,GAAGxQ,KAAI,IAAI,IA8BsFqU,GA9BlFC,GAAE,KAAKlD,IAAG,EAAGC,GAAG,KAAKG,GAAG,KAAK+C,IAAG,EAAGC,GAAG,KAAKC,GAAG,GAAGC,GAAG,GAAGC,GAAG,GAAGC,GAAG,KAAKC,GAAG,EAAEC,GAAG,KAAKC,IAAI,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,KAAKC,IAAG,EAAG,SAASvR,KAAK,OAAO,KAAO,GAAF+P,IAAM3T,MAAK,IAAI+U,GAAGA,GAAGA,GAAG/U,KAC3e,SAAS6D,GAAG52B,GAAY,GAAG,KAAO,GAAnBA,EAAEA,EAAE64B,OAAkB,OAAO,EAAE,GAAG,KAAO,EAAF74B,GAAK,OAAO,KAAKgzB,KAAK,EAAE,EAAkB,GAAhB,IAAI+U,KAAKA,GAAGhB,IAAO,IAAIzT,GAAGzW,WAAW,CAAC,IAAImrB,KAAKA,GAAG,OAAOf,GAAGA,GAAGtpB,aAAa,GAAG3d,EAAE+nC,GAAG,IAAI9nC,EAAE,SAAS+nC,GAAsD,OAA7C,KAAN/nC,IAAIA,KAA8B,KAAPA,GAAbD,EAAE,SAASA,IAAOA,KAAUC,EAAE,OAAcA,EAA4D,OAA1DD,EAAEgzB,KAAK,KAAO,EAAF0T,KAAM,KAAK1mC,EAAEA,EAAEme,GAAG,GAAG4pB,IAAa/nC,EAAEme,GAAVne,EAtK3Q,SAAYA,GAAG,OAAOA,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO,EAAE,QAAQ,OAAO,GAsKuJmoC,CAAGnoC,GAAU+nC,IAAY/nC,EACnT,SAAS62B,GAAG72B,EAAEC,EAAE0B,GAAG,GAAG,GAAGimC,GAAG,MAAMA,GAAG,EAAEC,GAAG,KAAKv/B,MAAMpH,EAAE,MAAgB,GAAG,QAAblB,EAAEooC,GAAGpoC,EAAEC,IAAe,OAAO,KAAKqe,GAAGte,EAAEC,EAAE0B,GAAG3B,IAAIq9B,KAAI+F,IAAInjC,EAAE,IAAIkjC,IAAGE,GAAGrjC,EAAEsjC,KAAI,IAAIh6B,EAAE0pB,KAAK,IAAI/yB,EAAE,KAAO,EAAFymC,KAAM,KAAO,GAAFA,IAAM2B,GAAGroC,IAAIsoC,GAAGtoC,EAAE2B,GAAG,IAAI+kC,KAAIS,KAAK/T,QAAQ,KAAO,EAAFsT,KAAM,KAAKp9B,GAAG,KAAKA,IAAI,OAAOq+B,GAAGA,GAAG,IAAIn/B,IAAI,CAACxI,IAAI2nC,GAAG/+B,IAAI5I,IAAIsoC,GAAGtoC,EAAE2B,IAAIslC,GAAGjnC,EAAE,SAASooC,GAAGpoC,EAAEC,GAAGD,EAAEs0B,OAAOr0B,EAAE,IAAI0B,EAAE3B,EAAE+Y,UAAqC,IAA3B,OAAOpX,IAAIA,EAAE2yB,OAAOr0B,GAAG0B,EAAE3B,EAAMA,EAAEA,EAAEgZ,OAAO,OAAOhZ,GAAGA,EAAEk0B,YAAYj0B,EAAgB,QAAd0B,EAAE3B,EAAE+Y,aAAqBpX,EAAEuyB,YAAYj0B,GAAG0B,EAAE3B,EAAEA,EAAEA,EAAEgZ,OAAO,OAAO,IAAIrX,EAAEiM,IAAIjM,EAAEyV,UAAU,KACze,SAASkxB,GAAGtoC,EAAEC,GAAG,IAAI,IAAI0B,EAAE3B,EAAEuoC,aAAaj/B,EAAEtJ,EAAE6d,eAAetU,EAAEvJ,EAAE8d,YAAY/d,EAAEC,EAAEwoC,gBAAgBh/B,EAAExJ,EAAE2d,aAAa,EAAEnU,GAAG,CAAC,IAAIgE,EAAE,GAAGuQ,GAAGvU,GAAG+D,EAAE,GAAGC,EAAE6K,EAAEtY,EAAEyN,GAAG,IAAI,IAAI6K,GAAG,GAAG,KAAK9K,EAAEjE,IAAI,KAAKiE,EAAEhE,GAAG,CAAC8O,EAAEpY,EAAEwd,GAAGlQ,GAAG,IAAIvG,EAAEwW,GAAEzd,EAAEyN,GAAG,IAAIxG,EAAEqR,EAAE,IAAI,GAAGrR,EAAEqR,EAAE,KAAK,QAAQA,GAAGpY,IAAID,EAAE4d,cAAcrQ,GAAG/D,IAAI+D,EAAwB,GAAtBjE,EAAEoU,GAAG1d,EAAEA,IAAIq9B,GAAEiG,GAAE,GAAGrjC,EAAEud,GAAK,IAAIlU,EAAE,OAAO3H,IAAIA,IAAI8wB,IAAIjB,GAAG7vB,GAAG3B,EAAEuoC,aAAa,KAAKvoC,EAAEyoC,iBAAiB,OAAO,CAAC,GAAG,OAAO9mC,EAAE,CAAC,GAAG3B,EAAEyoC,mBAAmBxoC,EAAE,OAAO0B,IAAI8wB,IAAIjB,GAAG7vB,GAAG,KAAK1B,GAAG0B,EAAE0mC,GAAGlpB,KAAK,KAAKnf,GAAG,OAAO2yB,IAAIA,GAAG,CAAChxB,GAAGixB,GAAGrB,GAAGU,GAAGoB,KAAKV,GAAG5uB,KAAKpC,GACrfA,EAAE8wB,IAAI,KAAKxyB,EAAE0B,EAAEwxB,GAAG,GAAGkV,GAAGlpB,KAAK,KAAKnf,KAAK2B,EAzK+F,SAAY3B,GAAG,OAAOA,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,EAAE,OAAO,GAAG,QAAQ,MAAMsI,MAAMpH,EAAE,IAAIlB,KAyKxT0oC,CAAGzoC,GAAG0B,EAAEwxB,GAAGxxB,EAAEgnC,GAAGxpB,KAAK,KAAKnf,KAAKA,EAAEyoC,iBAAiBxoC,EAAED,EAAEuoC,aAAa5mC,GAC5G,SAASgnC,GAAG3oC,GAAiB,GAAd8nC,IAAI,EAAEE,GAAGD,GAAG,EAAK,KAAO,GAAFrB,IAAM,MAAMp+B,MAAMpH,EAAE,MAAM,IAAIjB,EAAED,EAAEuoC,aAAa,GAAGK,MAAM5oC,EAAEuoC,eAAetoC,EAAE,OAAO,KAAK,IAAI0B,EAAE+b,GAAG1d,EAAEA,IAAIq9B,GAAEiG,GAAE,GAAG,GAAG,IAAI3hC,EAAE,OAAO,KAAK,IAAI2H,EAAE3H,EAAM4H,EAAEm9B,GAAEA,IAAG,GAAG,IAAI3mC,EAAE8oC,KAAkC,IAA1BxL,KAAIr9B,GAAGsjC,KAAIh6B,IAAE69B,KAAK2B,GAAG9oC,EAAEsJ,MAAM,IAAIy/B,KAAK,MAAM,MAAMv7B,GAAGw7B,GAAGhpC,EAAEwN,GAAgE,GAApDsmB,KAAK0S,GAAGniC,QAAQtE,EAAE2mC,GAAEn9B,EAAE,OAAOo9B,GAAEr9B,EAAE,GAAG+zB,GAAE,KAAKiG,GAAE,EAAEh6B,EAAE65B,IAAM,KAAK4D,GAAG3D,IAAI0F,GAAG9oC,EAAE,QAAQ,GAAG,IAAIsJ,EAAE,CAAyF,GAAxF,IAAIA,IAAIo9B,IAAG,GAAG1mC,EAAEwb,UAAUxb,EAAEwb,SAAQ,EAAG8T,GAAGtvB,EAAEyb,gBAAwB,KAAR9Z,EAAEuc,GAAGle,MAAWsJ,EAAE2/B,GAAGjpC,EAAE2B,KAAQ,IAAI2H,EAAE,MAAMrJ,EAAE6mC,GAAGgC,GAAG9oC,EAAE,GAAGqjC,GAAGrjC,EAAE2B,GAAG2mC,GAAGtoC,EAAE+yB,MAAK9yB,EAC3c,OAD6cD,EAAEkpC,aACrflpC,EAAEqE,QAAQ0U,UAAU/Y,EAAEmpC,cAAcxnC,EAAS2H,GAAG,KAAK,EAAE,KAAK,EAAE,MAAMhB,MAAMpH,EAAE,MAAM,KAAK,EACI,KAAK,EAAEkoC,GAAGppC,GAAG,MADH,KAAK,EAAU,GAARqjC,GAAGrjC,EAAE2B,IAAS,SAAFA,KAAcA,GAAiB,IAAb2H,EAAE28B,GAAG,IAAIlT,MAAU,CAAC,GAAG,IAAIrV,GAAG1d,EAAE,GAAG,MAAyB,KAAnBuJ,EAAEvJ,EAAE6d,gBAAqBlc,KAAKA,EAAE,CAACg1B,KAAK32B,EAAE8d,aAAa9d,EAAE6d,eAAetU,EAAE,MAAMvJ,EAAEqpC,cAAcna,GAAGka,GAAGjqB,KAAK,KAAKnf,GAAGsJ,GAAG,MAAM8/B,GAAGppC,GAAG,MAAM,KAAK,EAAU,GAARqjC,GAAGrjC,EAAE2B,IAAS,QAAFA,KAAaA,EAAE,MAAqB,IAAf2H,EAAEtJ,EAAEue,WAAehV,GAAG,EAAE,EAAE5H,GAAG,CAAC,IAAI6H,EAAE,GAAGuU,GAAGpc,GAAG5B,EAAE,GAAGyJ,GAAEA,EAAEF,EAAEE,IAAKD,IAAIA,EAAEC,GAAG7H,IAAI5B,EACjZ,GADmZ4B,EAAE4H,EAClZ,IAD4Z5H,GAAG,KAAXA,EAAEoxB,KAAIpxB,GAAW,IAAI,IAAIA,EAAE,IAAI,KAAKA,EAAE,KAAK,KAAKA,EAAE,KAAK,IAAIA,EAAE,IAAI,KAClfA,EAAE,KAAK,KAAK2kC,GAAG3kC,EAAE,OAAOA,GAAU,CAAC3B,EAAEqpC,cAAcna,GAAGka,GAAGjqB,KAAK,KAAKnf,GAAG2B,GAAG,MAAMynC,GAAGppC,GAAG,MAAyB,QAAQ,MAAMsI,MAAMpH,EAAE,OAAkB,OAAVonC,GAAGtoC,EAAE+yB,MAAY/yB,EAAEuoC,eAAetoC,EAAE0oC,GAAGxpB,KAAK,KAAKnf,GAAG,KAAK,SAASqjC,GAAGrjC,EAAEC,GAAuD,IAApDA,IAAI+mC,GAAG/mC,IAAImjC,GAAGpjC,EAAE6d,gBAAgB5d,EAAED,EAAE8d,cAAc7d,EAAMD,EAAEA,EAAEwoC,gBAAgB,EAAEvoC,GAAG,CAAC,IAAI0B,EAAE,GAAGoc,GAAG9d,GAAGqJ,EAAE,GAAG3H,EAAE3B,EAAE2B,IAAI,EAAE1B,IAAIqJ,GAC1U,SAAS++B,GAAGroC,GAAG,GAAG,KAAO,GAAF0mC,IAAM,MAAMp+B,MAAMpH,EAAE,MAAW,GAAL0nC,KAAQ5oC,IAAIq9B,IAAG,KAAKr9B,EAAE4d,aAAa0lB,IAAG,CAAC,IAAIrjC,EAAEqjC,GAAM3hC,EAAEsnC,GAAGjpC,EAAEC,GAAG,KAAK8mC,GAAG3D,MAAgBzhC,EAAEsnC,GAAGjpC,EAAfC,EAAEyd,GAAG1d,EAAEC,UAA6B0B,EAAEsnC,GAAGjpC,EAAfC,EAAEyd,GAAG1d,EAAE,IAAgH,GAAnG,IAAIA,EAAE4N,KAAK,IAAIjM,IAAI+kC,IAAG,GAAG1mC,EAAEwb,UAAUxb,EAAEwb,SAAQ,EAAG8T,GAAGtvB,EAAEyb,gBAAwB,KAARxb,EAAEie,GAAGle,MAAW2B,EAAEsnC,GAAGjpC,EAAEC,KAAQ,IAAI0B,EAAE,MAAMA,EAAEmlC,GAAGgC,GAAG9oC,EAAE,GAAGqjC,GAAGrjC,EAAEC,GAAGqoC,GAAGtoC,EAAE+yB,MAAKpxB,EAAuE,OAArE3B,EAAEkpC,aAAalpC,EAAEqE,QAAQ0U,UAAU/Y,EAAEmpC,cAAclpC,EAAEmpC,GAAGppC,GAAGsoC,GAAGtoC,EAAE+yB,MAAY,KACnR,SAASuW,GAAGtpC,EAAEC,GAAG,IAAI0B,EAAE+kC,GAAEA,IAAG,EAAE,IAAI,OAAO1mC,EAAEC,GAAb,QAA4B,KAAJymC,GAAE/kC,KAAUwlC,KAAK/T,OAAO,SAASmW,GAAGvpC,EAAEC,GAAG,IAAI0B,EAAE+kC,GAAEA,KAAI,EAAEA,IAAG,EAAE,IAAI,OAAO1mC,EAAEC,GAAb,QAA4B,KAAJymC,GAAE/kC,KAAUwlC,KAAK/T,OAAO,SAASsN,GAAG1gC,EAAEC,GAAGkwB,GAAE0W,GAAGD,IAAIA,IAAI3mC,EAAE8mC,IAAI9mC,EAAE,SAASujC,KAAKoD,GAAGC,GAAGxiC,QAAQ6rB,GAAE2W,IAC5V,SAASiC,GAAG9oC,EAAEC,GAAGD,EAAEkpC,aAAa,KAAKlpC,EAAEmpC,cAAc,EAAE,IAAIxnC,EAAE3B,EAAEqpC,cAAiD,IAAlC,IAAI1nC,IAAI3B,EAAEqpC,eAAe,EAAEja,GAAGztB,IAAO,OAAOglC,GAAE,IAAIhlC,EAAEglC,GAAE3tB,OAAO,OAAOrX,GAAG,CAAC,IAAI2H,EAAE3H,EAAE,OAAO2H,EAAEsE,KAAK,KAAK,EAA6B,QAA3BtE,EAAEA,EAAES,KAAK6mB,yBAA4B,IAAStnB,GAAGunB,KAAK,MAAM,KAAK,EAAEiJ,KAAK5J,GAAEptB,IAAGotB,GAAEG,IAAG4K,KAAK,MAAM,KAAK,EAAEjB,GAAG1wB,GAAG,MAAM,KAAK,EAAEwwB,KAAK,MAAM,KAAK,GAAc,KAAK,GAAG5J,GAAE+J,IAAG,MAAM,KAAK,GAAGlG,GAAGzqB,GAAG,MAAM,KAAK,GAAG,KAAK,GAAGk6B,KAAK7hC,EAAEA,EAAEqX,OAAOqkB,GAAEr9B,EAAE2mC,GAAEhO,GAAG34B,EAAEqE,QAAQ,MAAMi/B,GAAEsD,GAAGG,GAAG9mC,EAAEkjC,GAAE,EAAE2D,GAAG,KAAKE,GAAG5D,GAAGnN,GAAG,EACvc,SAAS+S,GAAGhpC,EAAEC,GAAG,OAAE,CAAC,IAAI0B,EAAEglC,GAAE,IAAuB,GAAnB7S,KAAKqH,GAAG92B,QAAQ63B,GAAMR,GAAG,CAAC,IAAI,IAAIpyB,EAAEiyB,GAAEpiB,cAAc,OAAO7P,GAAG,CAAC,IAAIC,EAAED,EAAE+yB,MAAM,OAAO9yB,IAAIA,EAAE4rB,QAAQ,MAAM7rB,EAAEA,EAAEhF,KAAKo3B,IAAG,EAAyC,GAAtCJ,GAAG,EAAEG,GAAED,GAAED,GAAE,KAAKI,IAAG,EAAG8K,GAAGpiC,QAAQ,KAAQ,OAAO1C,GAAG,OAAOA,EAAEqX,OAAO,CAACmqB,GAAE,EAAE2D,GAAG7mC,EAAE0mC,GAAE,KAAK,MAAM3mC,EAAE,CAAC,IAAID,EAAEC,EAAEwJ,EAAE7H,EAAEqX,OAAOxL,EAAE7L,EAAE4L,EAAEtN,EAAoD,GAAlDA,EAAEqjC,GAAE91B,EAAEyL,OAAO,KAAKzL,EAAEirB,YAAYjrB,EAAE+qB,WAAW,KAAQ,OAAOhrB,GAAG,kBAAkBA,GAAG,oBAAoBA,EAAE64B,KAAK,CAAC,IAAI/tB,EAAE9K,EAAE,GAAG,KAAY,EAAPC,EAAEqrB,MAAQ,CAAC,IAAI7xB,EAAEwG,EAAEuL,UAAU/R,GAAGwG,EAAEsnB,YAAY9tB,EAAE8tB,YAAYtnB,EAAE2L,cAAcnS,EAAEmS,cAAc3L,EAAE8mB,MAAMttB,EAAEstB,QACpf9mB,EAAEsnB,YAAY,KAAKtnB,EAAE2L,cAAc,MAAM,IAAI2c,EAAE,KAAe,EAAVmE,GAAE51B,SAAW0xB,EAAEvsB,EAAE,EAAE,CAAC,IAAIwsB,EAAE,GAAGA,EAAE,KAAKD,EAAEnoB,IAAI,CAAC,IAAI9M,EAAEi1B,EAAE5c,cAAc,GAAG,OAAOrY,EAAEk1B,EAAE,OAAOl1B,EAAEsY,eAAqB,CAAC,IAAIoU,EAAEuI,EAAEoE,cAAcnE,OAAE,IAASxI,EAAEkU,YAAY,IAAKlU,EAAEmU,6BAA8B7L,IAAS,GAAGE,EAAE,CAAC,IAAIvI,EAAEsI,EAAEjB,YAAY,GAAG,OAAOrH,EAAE,CAAC,IAAIC,EAAE,IAAIllB,IAAIklB,EAAE9kB,IAAIyP,GAAG0d,EAAEjB,YAAYpH,OAAOD,EAAE7kB,IAAIyP,GAAG,GAAG,KAAY,EAAP0d,EAAE8C,MAAQ,CAA2C,GAA1C9C,EAAE9c,OAAO,GAAGzL,EAAEyL,OAAO,MAAMzL,EAAEyL,QAAQ,KAAQ,IAAIzL,EAAEI,IAAI,GAAG,OAAOJ,EAAEuL,UAAUvL,EAAEI,IAAI,OAAO,CAAC,IAAIggB,EAAE0H,IAAI,EAAE,GAAG1H,EAAEhgB,IAAI,EAAE+nB,GAAGnoB,EAAEogB,GAAGpgB,EAAE8mB,OAAO,EAAE,MAAMt0B,EAAEuN,OAC5f,EAAOC,EAAEvN,EAAE,IAAI0tB,EAAE5tB,EAAEypC,UAA+G,GAArG,OAAO7b,GAAGA,EAAE5tB,EAAEypC,UAAU,IAAIzF,GAAGx2B,EAAE,IAAI/E,IAAImlB,EAAEvgB,IAAIiL,EAAE9K,SAAgB,KAAXA,EAAEogB,EAAEhf,IAAI0J,MAAgB9K,EAAE,IAAI/E,IAAImlB,EAAEvgB,IAAIiL,EAAE9K,KAASA,EAAEwf,IAAIvf,GAAG,CAACD,EAAE3E,IAAI4E,GAAG,IAAIqgB,EAAE4b,GAAGtqB,KAAK,KAAKpf,EAAEsY,EAAE7K,GAAG6K,EAAE+tB,KAAKvY,EAAEA,GAAGkI,EAAE9c,OAAO,KAAK8c,EAAEzB,MAAMr0B,EAAE,MAAMD,EAAE+1B,EAAEA,EAAE/c,aAAa,OAAO+c,GAAGxoB,EAAEjF,OAAOyF,EAAGP,EAAEzD,OAAO,qBAAqB,yLAAyL,IAAIo5B,KAAIA,GAAE,GAAG51B,EAAEm2B,GAAGn2B,EAAEC,GAAGuoB,EACpfvsB,EAAE,EAAE,CAAC,OAAOusB,EAAEnoB,KAAK,KAAK,EAAE7N,EAAEwN,EAAEwoB,EAAE9c,OAAO,KAAKhZ,IAAIA,EAAE81B,EAAEzB,OAAOr0B,EAAkB21B,GAAGG,EAAbkO,GAAGlO,EAAEh2B,EAAEE,IAAW,MAAMD,EAAE,KAAK,EAAED,EAAEwN,EAAE,IAAI6gB,EAAE2H,EAAEhsB,KAAKskB,EAAE0H,EAAE3e,UAAU,GAAG,KAAa,GAAR2e,EAAE9c,SAAY,oBAAoBmV,EAAE6S,0BAA0B,OAAO5S,GAAG,oBAAoBA,EAAEiW,oBAAoB,OAAOC,KAAKA,GAAGxX,IAAIsB,KAAK,CAAC0H,EAAE9c,OAAO,KAAKhZ,IAAIA,EAAE81B,EAAEzB,OAAOr0B,EAAkB21B,GAAGG,EAAbsO,GAAGtO,EAAEh2B,EAAEE,IAAW,MAAMD,GAAG+1B,EAAEA,EAAE/c,aAAa,OAAO+c,GAAG2T,GAAG/nC,GAAG,MAAMgoC,GAAI1pC,EAAE0pC,EAAGhD,KAAIhlC,GAAG,OAAOA,IAAIglC,GAAEhlC,EAAEA,EAAEqX,QAAQ,SAAS,OAC/a,SAAS6vB,KAAK,IAAI7oC,EAAEwmC,GAAGniC,QAAsB,OAAdmiC,GAAGniC,QAAQ63B,GAAU,OAAOl8B,EAAEk8B,GAAGl8B,EAAE,SAASipC,GAAGjpC,EAAEC,GAAG,IAAI0B,EAAE+kC,GAAEA,IAAG,GAAG,IAAIp9B,EAAEu/B,KAA2B,IAAtBxL,KAAIr9B,GAAGsjC,KAAIrjC,GAAG6oC,GAAG9oC,EAAEC,KAAM,IAAI2pC,KAAK,MAAM,MAAMrgC,GAAGy/B,GAAGhpC,EAAEuJ,GAAkC,GAAtBuqB,KAAK4S,GAAE/kC,EAAE6kC,GAAGniC,QAAQiF,EAAK,OAAOq9B,GAAE,MAAMr+B,MAAMpH,EAAE,MAAiB,OAAXm8B,GAAE,KAAKiG,GAAE,EAASH,GAAE,SAASyG,KAAK,KAAK,OAAOjD,IAAGkD,GAAGlD,IAAG,SAASoC,KAAK,KAAK,OAAOpC,KAAIjV,MAAMmY,GAAGlD,IAAG,SAASkD,GAAG7pC,GAAG,IAAIC,EAAEmnC,GAAGpnC,EAAE+Y,UAAU/Y,EAAE4mC,IAAI5mC,EAAEm6B,cAAcn6B,EAAE26B,aAAa,OAAO16B,EAAEypC,GAAG1pC,GAAG2mC,GAAE1mC,EAAEwmC,GAAGpiC,QAAQ,KAC5a,SAASqlC,GAAG1pC,GAAG,IAAIC,EAAED,EAAE,EAAE,CAAC,IAAI2B,EAAE1B,EAAE8Y,UAAqB,GAAX/Y,EAAEC,EAAE+Y,OAAU,KAAa,KAAR/Y,EAAEgZ,OAAY,CAAc,GAAG,QAAhBtX,EAAEghC,GAAGhhC,EAAE1B,EAAE2mC,KAAqB,YAAJD,GAAEhlC,GAAa,GAAG,MAAPA,EAAE1B,GAAY2N,KAAK,KAAKjM,EAAEiM,KAAK,OAAOjM,EAAEwX,eAAe,KAAQ,WAAHytB,KAAgB,KAAY,EAAPjlC,EAAEk3B,MAAQ,CAAC,IAAI,IAAIvvB,EAAE,EAAEC,EAAE5H,EAAE4X,MAAM,OAAOhQ,GAAGD,GAAGC,EAAE+qB,MAAM/qB,EAAE2qB,WAAW3qB,EAAEA,EAAEiQ,QAAQ7X,EAAEuyB,WAAW5qB,EAAE,OAAOtJ,GAAG,KAAa,KAARA,EAAEiZ,SAAc,OAAOjZ,EAAEy4B,cAAcz4B,EAAEy4B,YAAYx4B,EAAEw4B,aAAa,OAAOx4B,EAAEs4B,aAAa,OAAOv4B,EAAEu4B,aAAav4B,EAAEu4B,WAAWC,WAAWv4B,EAAEw4B,aAAaz4B,EAAEu4B,WAAWt4B,EAAEs4B,YAAY,EAAEt4B,EAAEgZ,QAAQ,OAC/ejZ,EAAEu4B,WAAWv4B,EAAEu4B,WAAWC,WAAWv4B,EAAED,EAAEy4B,YAAYx4B,EAAED,EAAEu4B,WAAWt4B,QAAQ,CAAS,GAAG,QAAX0B,EAAE8hC,GAAGxjC,IAAkC,OAAlB0B,EAAEsX,OAAO,UAAK0tB,GAAEhlC,GAAS,OAAO3B,IAAIA,EAAEy4B,YAAYz4B,EAAEu4B,WAAW,KAAKv4B,EAAEiZ,OAAO,MAAkB,GAAG,QAAfhZ,EAAEA,EAAEuZ,SAAyB,YAAJmtB,GAAE1mC,GAAS0mC,GAAE1mC,EAAED,QAAQ,OAAOC,GAAG,IAAIkjC,KAAIA,GAAE,GAAG,SAASiG,GAAGppC,GAAG,IAAIC,EAAE+yB,KAA8B,OAAzBE,GAAG,GAAG4W,GAAG3qB,KAAK,KAAKnf,EAAEC,IAAW,KACtT,SAAS6pC,GAAG9pC,EAAEC,GAAG,GAAG2oC,WAAW,OAAOrB,IAAI,GAAG,KAAO,GAAFb,IAAM,MAAMp+B,MAAMpH,EAAE,MAAM,IAAIS,EAAE3B,EAAEkpC,aAAa,GAAG,OAAOvnC,EAAE,OAAO,KAA2C,GAAtC3B,EAAEkpC,aAAa,KAAKlpC,EAAEmpC,cAAc,EAAKxnC,IAAI3B,EAAEqE,QAAQ,MAAMiE,MAAMpH,EAAE,MAAMlB,EAAEuoC,aAAa,KAAK,IAAIj/B,EAAE3H,EAAE2yB,MAAM3yB,EAAEuyB,WAAW3qB,EAAED,EAAEvJ,EAAEC,EAAE2d,cAAcpU,EAAEvJ,EAAE2d,aAAapU,EAAEvJ,EAAE6d,eAAe,EAAE7d,EAAE8d,YAAY,EAAE9d,EAAE4d,cAAcrU,EAAEvJ,EAAEm9B,kBAAkB5zB,EAAEvJ,EAAEge,gBAAgBzU,EAAEA,EAAEvJ,EAAEie,cAAc,IAAI,IAAIzU,EAAExJ,EAAEue,WAAW/Q,EAAExN,EAAEwoC,gBAAgB,EAAEzoC,GAAG,CAAC,IAAIwN,EAAE,GAAGwQ,GAAGhe,GAAGsY,EAAE,GAAG9K,EAAEhE,EAAEgE,GAAG,EAAE/D,EAAE+D,IAAI,EAAEC,EAAED,IAAI,EAAExN,IAAIsY,EACnV,GADqV,OACjfsvB,IAAI,KAAO,GAAFr+B,IAAOq+B,GAAG5a,IAAI/sB,IAAI2nC,GAAG3sB,OAAOhb,GAAGA,IAAIq9B,KAAIsJ,GAAEtJ,GAAE,KAAKiG,GAAE,GAAG,EAAE3hC,EAAEsX,MAAM,OAAOtX,EAAE42B,YAAY52B,EAAE42B,WAAWC,WAAW72B,EAAE2H,EAAE3H,EAAE82B,aAAanvB,EAAE3H,EAAE2H,EAAE3H,EAAE82B,YAAe,OAAOnvB,EAAE,CAAwC,GAAvCC,EAAEm9B,GAAEA,IAAG,GAAGD,GAAGpiC,QAAQ,KAAKuqB,GAAG5P,GAAakM,GAAV1hB,EAAEshB,MAAc,CAAC,GAAG,mBAAmBthB,EAAEgE,EAAE,CAACke,MAAMliB,EAAEmiB,eAAeC,IAAIpiB,EAAEqiB,mBAAmB7rB,EAAE,GAAGwN,GAAGA,EAAEhE,EAAE2G,gBAAgB3C,EAAEue,aAAajjB,QAAQuP,EAAE7K,EAAEwe,cAAcxe,EAAEwe,iBAAiB,IAAI3T,EAAE0xB,WAAW,CAACv8B,EAAE6K,EAAEyT,WAAW/rB,EAAEsY,EAAE4T,aAAa1e,EAAE8K,EAAE6T,UAAU7T,EAAEA,EAAE8T,YAAY,IAAI3e,EAAE4E,SAAS7E,EAAE6E,SAAS,MAAMu3B,GAAIn8B,EAAE,KACnf,MAAMxN,EAAE,IAAIgH,EAAE,EAAE8uB,GAAG,EAAEC,GAAG,EAAEC,EAAE,EAAEl1B,EAAE,EAAE0sB,EAAEhkB,EAAEikB,EAAE,KAAKxtB,EAAE,OAAO,CAAC,IAAI,IAAIytB,EAAKF,IAAIhgB,GAAG,IAAIzN,GAAG,IAAIytB,EAAEpb,WAAW0jB,EAAE9uB,EAAEjH,GAAGytB,IAAIjgB,GAAG,IAAI8K,GAAG,IAAImV,EAAEpb,WAAW2jB,EAAE/uB,EAAEqR,GAAG,IAAImV,EAAEpb,WAAWpL,GAAGwmB,EAAEnb,UAAU/Q,QAAW,QAAQosB,EAAEF,EAAE3b,aAAkB4b,EAAED,EAAEA,EAAEE,EAAE,OAAO,CAAC,GAAGF,IAAIhkB,EAAE,MAAMvJ,EAA8C,GAA5CwtB,IAAIjgB,KAAKwoB,IAAIj2B,IAAI+1B,EAAE9uB,GAAGymB,IAAIlgB,KAAKzM,IAAIuX,IAAI0d,EAAE/uB,GAAM,QAAQ0mB,EAAEF,EAAE9C,aAAa,MAAU+C,GAAJD,EAAEC,GAAM3W,WAAW0W,EAAEE,EAAElgB,GAAG,IAAIsoB,IAAI,IAAIC,EAAE,KAAK,CAACrK,MAAMoK,EAAElK,IAAImK,QAAQvoB,EAAE,KAAKA,EAAEA,GAAG,CAACke,MAAM,EAAEE,IAAI,QAAQpe,EAAE,KAAKqhB,GAAG,CAACmb,YAAYxgC,EAAEygC,eAAez8B,GAAGwR,IAAG,EAAGipB,GAAG,KAAKC,IAAG,EAAGb,GAAE/9B,EAAE,GAAG,IAAI4gC,KAAK,MAAMP,GAAI,GAAG,OACvgBtC,GAAE,MAAM/+B,MAAMpH,EAAE,MAAM0jC,GAAGyC,GAAEsC,GAAItC,GAAEA,GAAE7O,kBAAiB,OAAO6O,IAAGY,GAAG,KAAKZ,GAAE/9B,EAAE,GAAG,IAAI,IAAIE,EAAExJ,EAAE,OAAOqnC,IAAG,CAAC,IAAIzZ,EAAEyZ,GAAEpuB,MAA+B,GAAvB,GAAF2U,GAAM1b,GAAGm1B,GAAEjwB,UAAU,IAAS,IAAFwW,EAAM,CAAC,IAAID,EAAE0Z,GAAEtuB,UAAU,GAAG,OAAO4U,EAAE,CAAC,IAAIE,EAAEF,EAAEuK,IAAI,OAAOrK,IAAI,oBAAoBA,EAAEA,EAAE,MAAMA,EAAExpB,QAAQ,OAAO,OAAS,KAAFupB,GAAQ,KAAK,EAAE+X,GAAG0B,IAAGA,GAAEpuB,QAAQ,EAAE,MAAM,KAAK,EAAE0sB,GAAG0B,IAAGA,GAAEpuB,QAAQ,EAAE+sB,GAAGqB,GAAEtuB,UAAUsuB,IAAG,MAAM,KAAK,KAAKA,GAAEpuB,QAAQ,KAAK,MAAM,KAAK,KAAKouB,GAAEpuB,QAAQ,KAAK+sB,GAAGqB,GAAEtuB,UAAUsuB,IAAG,MAAM,KAAK,EAAErB,GAAGqB,GAAEtuB,UAAUsuB,IAAG,MAAM,KAAK,EAAM7B,GAAGh8B,EAAPgE,EAAE65B,IAAU,IAAIlZ,EAAE3gB,EAAEuL,UAAU0sB,GAAGj4B,GAAG,OACnf2gB,GAAGsX,GAAGtX,GAAGkZ,GAAEA,GAAE7O,YAAY,MAAMmR,GAAI,GAAG,OAAOtC,GAAE,MAAM/+B,MAAMpH,EAAE,MAAM0jC,GAAGyC,GAAEsC,GAAItC,GAAEA,GAAE7O,kBAAiB,OAAO6O,IAAkD,GAA/CxZ,EAAEgB,GAAGlB,EAAE7C,KAAK8C,EAAEC,EAAEmc,YAAYxgC,EAAEqkB,EAAEoc,eAAkBtc,IAAIC,GAAGA,GAAGA,EAAEzd,eAAewa,GAAGiD,EAAEzd,cAAcypB,gBAAgBhM,GAAG,CAAC,OAAOpkB,GAAG0hB,GAAG0C,KAAKD,EAAEnkB,EAAEkiB,WAAc,KAARmC,EAAErkB,EAAEoiB,OAAiBiC,EAAEF,GAAG,mBAAmBC,GAAGA,EAAEjC,eAAegC,EAAEC,EAAE/B,aAAalrB,KAAKwpC,IAAItc,EAAED,EAAElsB,MAAMJ,UAAUusB,GAAGF,EAAEC,EAAEzd,eAAepH,WAAW4kB,EAAE5B,aAAajjB,QAASkjB,eAAe6B,EAAEA,EAAE7B,eAAexe,EAAEogB,EAAEzc,YAAY7P,OAAO6sB,EAAExtB,KAAKwpC,IAAI3gC,EAAEkiB,MAAMle,GAAGhE,OAAE,IACpfA,EAAEoiB,IAAIuC,EAAExtB,KAAKwpC,IAAI3gC,EAAEoiB,IAAIpe,IAAIqgB,EAAEuc,QAAQjc,EAAE3kB,IAAIgE,EAAEhE,EAAEA,EAAE2kB,EAAEA,EAAE3gB,GAAGA,EAAE+c,GAAGqD,EAAEO,GAAGpuB,EAAEwqB,GAAGqD,EAAEpkB,GAAGgE,GAAGzN,IAAI,IAAI8tB,EAAEkc,YAAYlc,EAAE/B,aAAate,EAAEgd,MAAMqD,EAAE5B,eAAeze,EAAEid,QAAQoD,EAAE3B,YAAYnsB,EAAEyqB,MAAMqD,EAAE1B,cAAcpsB,EAAE0qB,WAAUkD,EAAEA,EAAE0c,eAAgBC,SAAS98B,EAAEgd,KAAKhd,EAAEid,QAAQoD,EAAE0c,kBAAkBpc,EAAE3kB,GAAGqkB,EAAE2c,SAAS7c,GAAGE,EAAEuc,OAAOrqC,EAAEyqB,KAAKzqB,EAAE0qB,UAAUkD,EAAE8c,OAAO1qC,EAAEyqB,KAAKzqB,EAAE0qB,QAAQoD,EAAE2c,SAAS7c,OAAQA,EAAE,GAAG,IAAIE,EAAED,EAAEC,EAAEA,EAAE/W,YAAY,IAAI+W,EAAEzb,UAAUub,EAAE5pB,KAAK,CAACmgC,QAAQrW,EAAE6c,KAAK7c,EAAE8c,WAAWC,IAAI/c,EAAEgd,YAAmD,IAAvC,oBAAoBjd,EAAEsX,OAAOtX,EAAEsX,QAAYtX,EACrf,EAAEA,EAAED,EAAErsB,OAAOssB,KAAIC,EAAEF,EAAEC,IAAKsW,QAAQyG,WAAW9c,EAAE6c,KAAK7c,EAAEqW,QAAQ2G,UAAUhd,EAAE+c,IAAI5rB,KAAK4P,GAAGC,GAAGD,GAAG,KAAK5uB,EAAEqE,QAAQ1C,EAAE0lC,GAAE/9B,EAAE,GAAG,IAAI,IAAIskB,EAAE5tB,EAAE,OAAOqnC,IAAG,CAAC,IAAIjZ,EAAEiZ,GAAEpuB,MAAgC,GAAxB,GAAFmV,GAAM2W,GAAGnX,EAAEyZ,GAAEtuB,UAAUsuB,IAAQ,IAAFjZ,EAAM,CAACT,OAAE,EAAO,IAAIU,EAAEgZ,GAAEnP,IAAI,GAAG,OAAO7J,EAAE,CAAC,IAAIC,EAAE+Y,GAAEjwB,UAAiBiwB,GAAEz5B,IAA8B+f,EAAEW,EAAE,oBAAoBD,EAAEA,EAAEV,GAAGU,EAAEhqB,QAAQspB,GAAG0Z,GAAEA,GAAE7O,YAAY,MAAMmR,GAAI,GAAG,OAAOtC,GAAE,MAAM/+B,MAAMpH,EAAE,MAAM0jC,GAAGyC,GAAEsC,GAAItC,GAAEA,GAAE7O,kBAAiB,OAAO6O,IAAGA,GAAE,KAAK3U,KAAKgU,GAAEn9B,OAAOvJ,EAAEqE,QAAQ1C,EAAE,GAAG2lC,GAAGA,IAAG,EAAGC,GAAGvnC,EAAEwnC,GAAGvnC,OAAO,IAAIonC,GAAE/9B,EAAE,OAAO+9B,IAAGpnC,EACpfonC,GAAE7O,WAAW6O,GAAE7O,WAAW,KAAa,EAAR6O,GAAEpuB,SAAUmV,EAAEiZ,IAAI7tB,QAAQ,KAAK4U,EAAEhX,UAAU,MAAMiwB,GAAEpnC,EAAqF,GAAlE,KAAjBqJ,EAAEtJ,EAAE2d,gBAAqB4mB,GAAG,MAAM,IAAIj7B,EAAEtJ,IAAI6nC,GAAGD,MAAMA,GAAG,EAAEC,GAAG7nC,GAAG4nC,GAAG,EAAEjmC,EAAEA,EAAEyV,UAAaia,IAAI,oBAAoBA,GAAGyZ,kBAAkB,IAAIzZ,GAAGyZ,kBAAkB1Z,GAAGzvB,OAAE,EAAO,MAAsB,GAAhBA,EAAE0C,QAAQ4U,QAAW,MAAM0wB,IAAe,GAAVrB,GAAGtoC,EAAE+yB,MAAQoR,GAAG,MAAMA,IAAG,EAAGnkC,EAAEokC,GAAGA,GAAG,KAAKpkC,EAAE,OAAG,KAAO,EAAF0mC,KAAiBtT,KAAL,KACjW,SAAS8W,KAAK,KAAK,OAAO7C,IAAG,CAAC,IAAIrnC,EAAEqnC,GAAEtuB,UAAUmvB,IAAI,OAAOD,KAAK,KAAa,EAARZ,GAAEpuB,OAASS,GAAG2tB,GAAEY,MAAMC,IAAG,GAAI,KAAKb,GAAEz5B,KAAKy4B,GAAGrmC,EAAEqnC,KAAI3tB,GAAG2tB,GAAEY,MAAMC,IAAG,IAAK,IAAIjoC,EAAEonC,GAAEpuB,MAAM,KAAO,IAAFhZ,IAAQ4kC,GAAG7kC,EAAEqnC,IAAG,KAAO,IAAFpnC,IAAQqnC,KAAKA,IAAG,EAAGnU,GAAG,IAAG,WAAgB,OAALyV,KAAY,SAAQvB,GAAEA,GAAE7O,YAAY,SAASoQ,KAAK,GAAG,KAAKpB,GAAG,CAAC,IAAIxnC,EAAE,GAAGwnC,GAAG,GAAGA,GAAS,OAANA,GAAG,GAAUtU,GAAGlzB,EAAE+qC,IAAI,OAAM,EAAG,SAAS9F,GAAGjlC,EAAEC,GAAGwnC,GAAG1jC,KAAK9D,EAAED,GAAGsnC,KAAKA,IAAG,EAAGnU,GAAG,IAAG,WAAgB,OAALyV,KAAY,SAAQ,SAAS5D,GAAGhlC,EAAEC,GAAGynC,GAAG3jC,KAAK9D,EAAED,GAAGsnC,KAAKA,IAAG,EAAGnU,GAAG,IAAG,WAAgB,OAALyV,KAAY,SACzd,SAASmC,KAAK,GAAG,OAAOxD,GAAG,OAAM,EAAG,IAAIvnC,EAAEunC,GAAW,GAARA,GAAG,KAAQ,KAAO,GAAFb,IAAM,MAAMp+B,MAAMpH,EAAE,MAAM,IAAIjB,EAAEymC,GAAEA,IAAG,GAAG,IAAI/kC,EAAE+lC,GAAGA,GAAG,GAAG,IAAI,IAAIp+B,EAAE,EAAEA,EAAE3H,EAAEL,OAAOgI,GAAG,EAAE,CAAC,IAAIC,EAAE5H,EAAE2H,GAAGvJ,EAAE4B,EAAE2H,EAAE,GAAGE,EAAED,EAAEy0B,QAAyB,GAAjBz0B,EAAEy0B,aAAQ,EAAU,oBAAoBx0B,EAAE,IAAIA,IAAI,MAAM+D,GAAG,GAAG,OAAOxN,EAAE,MAAMuI,MAAMpH,EAAE,MAAM0jC,GAAG7kC,EAAEwN,IAAe,IAAX5L,EAAE8lC,GAAGA,GAAG,GAAOn+B,EAAE,EAAEA,EAAE3H,EAAEL,OAAOgI,GAAG,EAAE,CAACC,EAAE5H,EAAE2H,GAAGvJ,EAAE4B,EAAE2H,EAAE,GAAG,IAAI,IAAIkE,EAAEjE,EAAEw0B,OAAOx0B,EAAEy0B,QAAQxwB,IAAI,MAAMD,GAAG,GAAG,OAAOxN,EAAE,MAAMuI,MAAMpH,EAAE,MAAM0jC,GAAG7kC,EAAEwN,IAAI,IAAIC,EAAExN,EAAEqE,QAAQo0B,YAAY,OAAOjrB,GAAGxN,EAAEwN,EAAEgrB,WAAWhrB,EAAEgrB,WAAW,KAAa,EAARhrB,EAAEyL,QAAUzL,EAAEgM,QACjf,KAAKhM,EAAE4J,UAAU,MAAM5J,EAAExN,EAAW,OAAT0mC,GAAEzmC,EAAEmzB,MAAW,EAAG,SAAS4X,GAAGhrC,EAAEC,EAAE0B,GAAyBg0B,GAAG31B,EAAfC,EAAEgkC,GAAGjkC,EAAfC,EAAEyjC,GAAG/hC,EAAE1B,GAAY,IAAWA,EAAE02B,KAAe,QAAV32B,EAAEooC,GAAGpoC,EAAE,MAAcse,GAAGte,EAAE,EAAEC,GAAGqoC,GAAGtoC,EAAEC,IACzI,SAAS2kC,GAAG5kC,EAAEC,GAAG,GAAG,IAAID,EAAE4N,IAAIo9B,GAAGhrC,EAAEA,EAAEC,QAAQ,IAAI,IAAI0B,EAAE3B,EAAEgZ,OAAO,OAAOrX,GAAG,CAAC,GAAG,IAAIA,EAAEiM,IAAI,CAACo9B,GAAGrpC,EAAE3B,EAAEC,GAAG,MAAW,GAAG,IAAI0B,EAAEiM,IAAI,CAAC,IAAItE,EAAE3H,EAAEyV,UAAU,GAAG,oBAAoBzV,EAAEoI,KAAKk3B,0BAA0B,oBAAoB33B,EAAEg7B,oBAAoB,OAAOC,KAAKA,GAAGxX,IAAIzjB,IAAI,CAAW,IAAIC,EAAE86B,GAAG1iC,EAAnB3B,EAAE0jC,GAAGzjC,EAAED,GAAgB,GAA4B,GAAzB21B,GAAGh0B,EAAE4H,GAAGA,EAAEotB,KAAkB,QAAbh1B,EAAEymC,GAAGzmC,EAAE,IAAe2c,GAAG3c,EAAE,EAAE4H,GAAG++B,GAAG3mC,EAAE4H,QAAQ,GAAG,oBAAoBD,EAAEg7B,oBAAoB,OAAOC,KAAKA,GAAGxX,IAAIzjB,IAAI,IAAIA,EAAEg7B,kBAAkBrkC,EAAED,GAAG,MAAMD,IAAI,OAAO4B,EAAEA,EAAEqX,QACpd,SAASywB,GAAGzpC,EAAEC,EAAE0B,GAAG,IAAI2H,EAAEtJ,EAAEwpC,UAAU,OAAOlgC,GAAGA,EAAE0R,OAAO/a,GAAGA,EAAE02B,KAAK32B,EAAE8d,aAAa9d,EAAE6d,eAAelc,EAAE07B,KAAIr9B,IAAIsjC,GAAE3hC,KAAKA,IAAI,IAAIwhC,IAAG,IAAIA,KAAM,SAAFG,MAAcA,IAAG,IAAIvQ,KAAIkT,GAAG6C,GAAG9oC,EAAE,GAAGgnC,IAAIrlC,GAAG2mC,GAAGtoC,EAAEC,GAAG,SAASkmC,GAAGnmC,EAAEC,GAAG,IAAI0B,EAAE3B,EAAEoX,UAAU,OAAOzV,GAAGA,EAAEqZ,OAAO/a,GAAO,KAAJA,EAAE,KAAmB,KAAO,GAAhBA,EAAED,EAAE64B,OAAe54B,EAAE,EAAE,KAAO,EAAFA,GAAKA,EAAE,KAAK+yB,KAAK,EAAE,GAAG,IAAI+U,KAAKA,GAAGhB,IAAuB,KAAnB9mC,EAAEme,GAAG,UAAU2pB,OAAY9nC,EAAE,WAAW0B,EAAEg1B,KAAe,QAAV32B,EAAEooC,GAAGpoC,EAAEC,MAAcqe,GAAGte,EAAEC,EAAE0B,GAAG2mC,GAAGtoC,EAAE2B,IAUjZ,SAASspC,GAAGjrC,EAAEC,EAAE0B,EAAE2H,GAAGG,KAAKmE,IAAI5N,EAAEyJ,KAAKzB,IAAIrG,EAAE8H,KAAK+P,QAAQ/P,KAAK8P,MAAM9P,KAAKuP,OAAOvP,KAAK2N,UAAU3N,KAAKM,KAAKN,KAAKqvB,YAAY,KAAKrvB,KAAKivB,MAAM,EAAEjvB,KAAKyuB,IAAI,KAAKzuB,KAAKkxB,aAAa16B,EAAEwJ,KAAK2qB,aAAa3qB,KAAK0P,cAAc1P,KAAKqrB,YAAYrrB,KAAK0wB,cAAc,KAAK1wB,KAAKovB,KAAKvvB,EAAEG,KAAKwP,MAAM,EAAExP,KAAK8uB,WAAW9uB,KAAKgvB,YAAYhvB,KAAK+uB,WAAW,KAAK/uB,KAAKyqB,WAAWzqB,KAAK6qB,MAAM,EAAE7qB,KAAKsP,UAAU,KAAK,SAAS0hB,GAAGz6B,EAAEC,EAAE0B,EAAE2H,GAAG,OAAO,IAAI2hC,GAAGjrC,EAAEC,EAAE0B,EAAE2H,GAAG,SAAS82B,GAAGpgC,GAAiB,UAAdA,EAAEA,EAAEoG,aAAuBpG,EAAEkrC,kBAErd,SAASvS,GAAG34B,EAAEC,GAAG,IAAI0B,EAAE3B,EAAE+Y,UACuB,OADb,OAAOpX,IAAGA,EAAE84B,GAAGz6B,EAAE4N,IAAI3N,EAAED,EAAEgI,IAAIhI,EAAE64B,OAAQC,YAAY94B,EAAE84B,YAAYn3B,EAAEoI,KAAK/J,EAAE+J,KAAKpI,EAAEyV,UAAUpX,EAAEoX,UAAUzV,EAAEoX,UAAU/Y,EAAEA,EAAE+Y,UAAUpX,IAAIA,EAAEg5B,aAAa16B,EAAE0B,EAAEoI,KAAK/J,EAAE+J,KAAKpI,EAAEsX,MAAM,EAAEtX,EAAE62B,WAAW,KAAK72B,EAAE82B,YAAY,KAAK92B,EAAE42B,WAAW,MAAM52B,EAAEuyB,WAAWl0B,EAAEk0B,WAAWvyB,EAAE2yB,MAAMt0B,EAAEs0B,MAAM3yB,EAAE4X,MAAMvZ,EAAEuZ,MAAM5X,EAAEw4B,cAAcn6B,EAAEm6B,cAAcx4B,EAAEwX,cAAcnZ,EAAEmZ,cAAcxX,EAAEmzB,YAAY90B,EAAE80B,YAAY70B,EAAED,EAAEo0B,aAAazyB,EAAEyyB,aAAa,OAAOn0B,EAAE,KAAK,CAACq0B,MAAMr0B,EAAEq0B,MAAMD,aAAap0B,EAAEo0B,cAC3e1yB,EAAE6X,QAAQxZ,EAAEwZ,QAAQ7X,EAAE+2B,MAAM14B,EAAE04B,MAAM/2B,EAAEu2B,IAAIl4B,EAAEk4B,IAAWv2B,EACvD,SAASo3B,GAAG/4B,EAAEC,EAAE0B,EAAE2H,EAAEC,EAAExJ,GAAG,IAAIyJ,EAAE,EAAM,GAAJF,EAAEtJ,EAAK,oBAAoBA,EAAEogC,GAAGpgC,KAAKwJ,EAAE,QAAQ,GAAG,kBAAkBxJ,EAAEwJ,EAAE,OAAOxJ,EAAE,OAAOA,GAAG,KAAKsL,EAAG,OAAO4tB,GAAGv3B,EAAE0O,SAAS9G,EAAExJ,EAAEE,GAAG,KAAKiM,EAAG1C,EAAE,EAAED,GAAG,GAAG,MAAM,KAAKgC,EAAG/B,EAAE,EAAED,GAAG,EAAE,MAAM,KAAKiC,EAAG,OAAOxL,EAAEy6B,GAAG,GAAG94B,EAAE1B,EAAI,EAAFsJ,IAAOuvB,YAAYttB,EAAGxL,EAAE+J,KAAKyB,EAAGxL,EAAEs0B,MAAMv0B,EAAEC,EAAE,KAAK4L,EAAG,OAAO5L,EAAEy6B,GAAG,GAAG94B,EAAE1B,EAAEsJ,IAAKQ,KAAK6B,EAAG5L,EAAE84B,YAAYltB,EAAG5L,EAAEs0B,MAAMv0B,EAAEC,EAAE,KAAK6L,EAAG,OAAO7L,EAAEy6B,GAAG,GAAG94B,EAAE1B,EAAEsJ,IAAKuvB,YAAYjtB,EAAG7L,EAAEs0B,MAAMv0B,EAAEC,EAAE,KAAKmM,EAAG,OAAO21B,GAAGngC,EAAE4H,EAAExJ,EAAEE,GAAG,KAAKmM,EAAG,OAAOpM,EAAEy6B,GAAG,GAAG94B,EAAE1B,EAAEsJ,IAAKuvB,YAAY1sB,EAAGpM,EAAEs0B,MAAMv0B,EAAEC,EAAE,QAAQ,GAAG,kBAChfA,GAAG,OAAOA,EAAE,OAAOA,EAAEgO,UAAU,KAAKvC,EAAGjC,EAAE,GAAG,MAAMxJ,EAAE,KAAK0L,EAAGlC,EAAE,EAAE,MAAMxJ,EAAE,KAAK2L,EAAGnC,EAAE,GAAG,MAAMxJ,EAAE,KAAK8L,EAAGtC,EAAE,GAAG,MAAMxJ,EAAE,KAAK+L,EAAGvC,EAAE,GAAGF,EAAE,KAAK,MAAMtJ,EAAE,KAAKgM,EAAGxC,EAAE,GAAG,MAAMxJ,EAAE,MAAMsI,MAAMpH,EAAE,IAAI,MAAMlB,EAAEA,SAASA,EAAE,KAAuD,OAAjDC,EAAEw6B,GAAGjxB,EAAE7H,EAAE1B,EAAEsJ,IAAKuvB,YAAY94B,EAAEC,EAAE8J,KAAKT,EAAErJ,EAAEq0B,MAAMv0B,EAASE,EAAE,SAASi5B,GAAGl5B,EAAEC,EAAE0B,EAAE2H,GAA2B,OAAxBtJ,EAAEy6B,GAAG,EAAEz6B,EAAEsJ,EAAErJ,IAAKq0B,MAAM3yB,EAAS3B,EAAE,SAAS8hC,GAAG9hC,EAAEC,EAAE0B,EAAE2H,GAA6C,OAA1CtJ,EAAEy6B,GAAG,GAAGz6B,EAAEsJ,EAAErJ,IAAK64B,YAAY3sB,EAAGnM,EAAEs0B,MAAM3yB,EAAS3B,EAAE,SAAS44B,GAAG54B,EAAEC,EAAE0B,GAA8B,OAA3B3B,EAAEy6B,GAAG,EAAEz6B,EAAE,KAAKC,IAAKq0B,MAAM3yB,EAAS3B,EAClc,SAASi5B,GAAGj5B,EAAEC,EAAE0B,GAA8J,OAA3J1B,EAAEw6B,GAAG,EAAE,OAAOz6B,EAAEqQ,SAASrQ,EAAEqQ,SAAS,GAAGrQ,EAAEgI,IAAI/H,IAAKq0B,MAAM3yB,EAAE1B,EAAEmX,UAAU,CAACqE,cAAczb,EAAEyb,cAAc0vB,gBAAgB,KAAKnS,eAAeh5B,EAAEg5B,gBAAuB/4B,EACrL,SAASmrC,GAAGprC,EAAEC,EAAE0B,GAAG8H,KAAKmE,IAAI3N,EAAEwJ,KAAKgS,cAAczb,EAAEyJ,KAAKy/B,aAAaz/B,KAAK+/B,UAAU//B,KAAKpF,QAAQoF,KAAK0hC,gBAAgB,KAAK1hC,KAAK4/B,eAAe,EAAE5/B,KAAK03B,eAAe13B,KAAKgrB,QAAQ,KAAKhrB,KAAK+R,QAAQ7Z,EAAE8H,KAAK8+B,aAAa,KAAK9+B,KAAKg/B,iBAAiB,EAAEh/B,KAAK8U,WAAWF,GAAG,GAAG5U,KAAK++B,gBAAgBnqB,IAAI,GAAG5U,KAAKuU,eAAevU,KAAK0/B,cAAc1/B,KAAK0zB,iBAAiB1zB,KAAKmU,aAAanU,KAAKqU,YAAYrU,KAAKoU,eAAepU,KAAKkU,aAAa,EAAElU,KAAKwU,cAAcI,GAAG,GAAG5U,KAAK4hC,gCAAgC,KAC7e,SAASC,GAAGtrC,EAAEC,EAAE0B,GAAG,IAAI2H,EAAE,EAAEvB,UAAUzG,aAAQ,IAASyG,UAAU,GAAGA,UAAU,GAAG,KAAK,MAAM,CAACiG,SAAS3C,EAAGrD,IAAI,MAAMsB,EAAE,KAAK,GAAGA,EAAE+G,SAASrQ,EAAEyb,cAAcxb,EAAE+4B,eAAer3B,GACxK,SAAS4pC,GAAGvrC,EAAEC,EAAE0B,EAAE2H,GAAG,IAAIC,EAAEtJ,EAAEoE,QAAQtE,EAAE42B,KAAKntB,EAAEotB,GAAGrtB,GAAGvJ,EAAE,GAAG2B,EAAE,CAAqB1B,EAAE,CAAC,GAAG6Y,GAA1BnX,EAAEA,EAAE80B,mBAA8B90B,GAAG,IAAIA,EAAEiM,IAAI,MAAMtF,MAAMpH,EAAE,MAAM,IAAIsM,EAAE7L,EAAE,EAAE,CAAC,OAAO6L,EAAEI,KAAK,KAAK,EAAEJ,EAAEA,EAAE4J,UAAUqd,QAAQ,MAAMx0B,EAAE,KAAK,EAAE,GAAG0wB,GAAGnjB,EAAEzD,MAAM,CAACyD,EAAEA,EAAE4J,UAAU8Z,0CAA0C,MAAMjxB,GAAGuN,EAAEA,EAAEwL,aAAa,OAAOxL,GAAG,MAAMlF,MAAMpH,EAAE,MAAO,GAAG,IAAIS,EAAEiM,IAAI,CAAC,IAAIL,EAAE5L,EAAEoI,KAAK,GAAG4mB,GAAGpjB,GAAG,CAAC5L,EAAEovB,GAAGpvB,EAAE4L,EAAEC,GAAG,MAAMxN,GAAG2B,EAAE6L,OAAO7L,EAAEyuB,GACrW,OADwW,OAAOnwB,EAAEw0B,QAAQx0B,EAAEw0B,QAAQ9yB,EAAE1B,EAAEkhC,eAAex/B,GAAE1B,EAAEq1B,GAAGv1B,EAAEyJ,IAAKisB,QAAQ,CAACyO,QAAQlkC,GAAuB,QAApBsJ,OAAE,IAASA,EAAE,KAAKA,KAC1erJ,EAAEy1B,SAASpsB,GAAGqsB,GAAGpsB,EAAEtJ,GAAG42B,GAAGttB,EAAEC,EAAEzJ,GAAUyJ,EAAE,SAASgiC,GAAGxrC,GAAe,OAAZA,EAAEA,EAAEqE,SAAckV,OAAyBvZ,EAAEuZ,MAAM3L,IAAoD5N,EAAEuZ,MAAMnC,WAAhF,KAA2F,SAASq0B,GAAGzrC,EAAEC,GAAqB,GAAG,QAArBD,EAAEA,EAAEmZ,gBAA2B,OAAOnZ,EAAEoZ,WAAW,CAAC,IAAIzX,EAAE3B,EAAEwhC,UAAUxhC,EAAEwhC,UAAU,IAAI7/B,GAAGA,EAAE1B,EAAE0B,EAAE1B,GAAG,SAASyrC,GAAG1rC,EAAEC,GAAGwrC,GAAGzrC,EAAEC,IAAID,EAAEA,EAAE+Y,YAAY0yB,GAAGzrC,EAAEC,GACxV,SAAS0rC,GAAG3rC,EAAEC,EAAE0B,GAAG,IAAI2H,EAAE,MAAM3H,GAAG,MAAMA,EAAEiqC,kBAAkBjqC,EAAEiqC,iBAAiBC,gBAAgB,KAAiK,GAA5JlqC,EAAE,IAAIypC,GAAGprC,EAAEC,EAAE,MAAM0B,IAAG,IAAKA,EAAE6Z,SAASvb,EAAEw6B,GAAG,EAAE,KAAK,KAAK,IAAIx6B,EAAE,EAAE,IAAIA,EAAE,EAAE,GAAG0B,EAAE0C,QAAQpE,EAAEA,EAAEmX,UAAUzV,EAAEkzB,GAAG50B,GAAGD,EAAE+tB,IAAIpsB,EAAE0C,QAAQ8oB,GAAG,IAAIntB,EAAEoS,SAASpS,EAAE8W,WAAW9W,GAAMsJ,EAAE,IAAItJ,EAAE,EAAEA,EAAEsJ,EAAEhI,OAAOtB,IAAI,CAAQ,IAAIuJ,GAAXtJ,EAAEqJ,EAAEtJ,IAAWi9B,YAAY1zB,EAAEA,EAAEtJ,EAAEi9B,SAAS,MAAMv7B,EAAE0pC,gCAAgC1pC,EAAE0pC,gCAAgC,CAACprC,EAAEsJ,GAAG5H,EAAE0pC,gCAAgCtnC,KAAK9D,EAAEsJ,GAAGE,KAAKqiC,cAAcnqC,EAC/R,SAASoqC,GAAG/rC,GAAG,SAASA,GAAG,IAAIA,EAAEoS,UAAU,IAAIpS,EAAEoS,UAAU,KAAKpS,EAAEoS,WAAW,IAAIpS,EAAEoS,UAAU,iCAAiCpS,EAAEqS,YAEvT,SAAS25B,GAAGhsC,EAAEC,EAAE0B,EAAE2H,EAAEC,GAAG,IAAIxJ,EAAE4B,EAAEokC,oBAAoB,GAAGhmC,EAAE,CAAC,IAAIyJ,EAAEzJ,EAAE+rC,cAAc,GAAG,oBAAoBviC,EAAE,CAAC,IAAIiE,EAAEjE,EAAEA,EAAE,WAAW,IAAIvJ,EAAEwrC,GAAGhiC,GAAGgE,EAAEvF,KAAKjI,IAAIurC,GAAGtrC,EAAEuJ,EAAExJ,EAAEuJ,OAAO,CAAmD,GAAlDxJ,EAAE4B,EAAEokC,oBAD1K,SAAY/lC,EAAEC,GAA0H,GAAvHA,IAA2DA,MAAvDA,EAAED,EAAE,IAAIA,EAAEoS,SAASpS,EAAE45B,gBAAgB55B,EAAE6R,WAAW,OAAa,IAAI5R,EAAEmS,WAAWnS,EAAEgsC,aAAa,qBAAwBhsC,EAAE,IAAI,IAAI0B,EAAEA,EAAE3B,EAAEmS,WAAWnS,EAAE8R,YAAYnQ,GAAG,OAAO,IAAIgqC,GAAG3rC,EAAE,EAAEC,EAAE,CAACub,SAAQ,QAAI,GAC3B0wB,CAAGvqC,EAAE2H,GAAGE,EAAEzJ,EAAE+rC,cAAiB,oBAAoBviC,EAAE,CAAC,IAAIgE,EAAEhE,EAAEA,EAAE,WAAW,IAAIvJ,EAAEwrC,GAAGhiC,GAAG+D,EAAEtF,KAAKjI,IAAIupC,IAAG,WAAWgC,GAAGtrC,EAAEuJ,EAAExJ,EAAEuJ,MAAK,OAAOiiC,GAAGhiC,GAGlG,SAAS2iC,GAAGnsC,EAAEC,GAAG,IAAI0B,EAAE,EAAEoG,UAAUzG,aAAQ,IAASyG,UAAU,GAAGA,UAAU,GAAG,KAAK,IAAIgkC,GAAG9rC,GAAG,MAAMqI,MAAMpH,EAAE,MAAM,OAAOoqC,GAAGtrC,EAAEC,EAAE,KAAK0B,GA1BtWylC,GAAG,SAASpnC,EAAEC,EAAE0B,GAAG,IAAI2H,EAAErJ,EAAEq0B,MAAM,GAAG,OAAOt0B,EAAE,GAAGA,EAAEm6B,gBAAgBl6B,EAAE06B,cAAc73B,GAAEuB,QAAQkwB,IAAG,MAAQ,IAAG,KAAK5yB,EAAE2H,GAAoC,CAAO,OAANirB,IAAG,EAAUt0B,EAAE2N,KAAK,KAAK,EAAEszB,GAAGjhC,GAAG86B,KAAK,MAAM,KAAK,EAAEhB,GAAG95B,GAAG,MAAM,KAAK,EAAE0wB,GAAG1wB,EAAE8J,OAAOknB,GAAGhxB,GAAG,MAAM,KAAK,EAAE05B,GAAG15B,EAAEA,EAAEmX,UAAUqE,eAAe,MAAM,KAAK,GAAGnS,EAAErJ,EAAEk6B,cAAcz4B,MAAM,IAAI6H,EAAEtJ,EAAE8J,KAAKkE,SAASkiB,GAAEuD,GAAGnqB,EAAEyqB,eAAezqB,EAAEyqB,cAAc1qB,EAAE,MAAM,KAAK,GAAG,GAAG,OAAOrJ,EAAEkZ,cAAe,OAAG,KAAKxX,EAAE1B,EAAEsZ,MAAM2a,YAAmBuN,GAAGzhC,EAAEC,EAAE0B,IAAGwuB,GAAE8J,GAAY,EAAVA,GAAE51B,SAA8B,QAAnBpE,EAAEigC,GAAGlgC,EAAEC,EAAE0B,IAC/e1B,EAAEuZ,QAAQ,MAAK2W,GAAE8J,GAAY,EAAVA,GAAE51B,SAAW,MAAM,KAAK,GAA0B,GAAvBiF,EAAE,KAAK3H,EAAE1B,EAAEi0B,YAAe,KAAa,GAARl0B,EAAEiZ,OAAU,CAAC,GAAG3P,EAAE,OAAOm5B,GAAGziC,EAAEC,EAAE0B,GAAG1B,EAAEgZ,OAAO,GAA+F,GAA1E,QAAlB1P,EAAEtJ,EAAEkZ,iBAAyB5P,EAAE64B,UAAU,KAAK74B,EAAEg5B,KAAK,KAAKh5B,EAAEgvB,WAAW,MAAMpI,GAAE8J,GAAEA,GAAE51B,SAAYiF,EAAE,MAAW,OAAO,KAAK,KAAK,GAAG,KAAK,GAAG,OAAOrJ,EAAEq0B,MAAM,EAAEkM,GAAGxgC,EAAEC,EAAE0B,GAAG,OAAOu+B,GAAGlgC,EAAEC,EAAE0B,GAD3L4yB,GAAG,KAAa,MAARv0B,EAAEiZ,YACyLsb,IAAG,EAAa,OAAVt0B,EAAEq0B,MAAM,EAASr0B,EAAE2N,KAAK,KAAK,EAA+I,GAA7ItE,EAAErJ,EAAE8J,KAAK,OAAO/J,IAAIA,EAAE+Y,UAAU,KAAK9Y,EAAE8Y,UAAU,KAAK9Y,EAAEgZ,OAAO,GAAGjZ,EAAEC,EAAE06B,aAAapxB,EAAEgnB,GAAGtwB,EAAEowB,GAAEhsB,SAAS8vB,GAAGl0B,EAAE0B,GAAG4H,EAAEuyB,GAAG,KAAK77B,EAAEqJ,EAAEtJ,EAAEuJ,EAAE5H,GAAG1B,EAAEgZ,OAAO,EAAK,kBACre1P,GAAG,OAAOA,GAAG,oBAAoBA,EAAEsE,aAAQ,IAAStE,EAAEyE,SAAS,CAAiD,GAAhD/N,EAAE2N,IAAI,EAAE3N,EAAEkZ,cAAc,KAAKlZ,EAAE60B,YAAY,KAAQnE,GAAGrnB,GAAG,CAAC,IAAIvJ,GAAE,EAAGkxB,GAAGhxB,QAAQF,GAAE,EAAGE,EAAEkZ,cAAc,OAAO5P,EAAEzF,YAAO,IAASyF,EAAEzF,MAAMyF,EAAEzF,MAAM,KAAK+wB,GAAG50B,GAAG,IAAIuJ,EAAEF,EAAEquB,yBAAyB,oBAAoBnuB,GAAG8sB,GAAGr2B,EAAEqJ,EAAEE,EAAExJ,GAAGuJ,EAAE8tB,QAAQd,GAAGt2B,EAAEmX,UAAU7N,EAAEA,EAAEktB,gBAAgBx2B,EAAEw3B,GAAGx3B,EAAEqJ,EAAEtJ,EAAE2B,GAAG1B,EAAE+gC,GAAG,KAAK/gC,EAAEqJ,GAAE,EAAGvJ,EAAE4B,QAAQ1B,EAAE2N,IAAI,EAAEoyB,GAAG,KAAK//B,EAAEsJ,EAAE5H,GAAG1B,EAAEA,EAAEsZ,MAAM,OAAOtZ,EAAE,KAAK,GAAGsJ,EAAEtJ,EAAE64B,YAAY94B,EAAE,CAChX,OADiX,OAAOA,IAAIA,EAAE+Y,UAAU,KAAK9Y,EAAE8Y,UAAU,KAAK9Y,EAAEgZ,OAAO,GACnfjZ,EAAEC,EAAE06B,aAAuBpxB,GAAVxJ,EAAEwJ,EAAE4E,OAAU5E,EAAE2E,UAAUjO,EAAE8J,KAAKR,EAAExJ,EAAEE,EAAE2N,IAOxD,SAAY5N,GAAG,GAAG,oBAAoBA,EAAE,OAAOogC,GAAGpgC,GAAG,EAAE,EAAE,QAAG,IAASA,GAAG,OAAOA,EAAE,CAAc,IAAbA,EAAEA,EAAEgO,YAAgBrC,EAAG,OAAO,GAAG,GAAG3L,IAAI8L,EAAG,OAAO,GAAG,OAAO,EAPlFsgC,CAAG7iC,GAAGvJ,EAAEwzB,GAAGjqB,EAAEvJ,GAAUD,GAAG,KAAK,EAAEE,EAAEsgC,GAAG,KAAKtgC,EAAEsJ,EAAEvJ,EAAE2B,GAAG,MAAM3B,EAAE,KAAK,EAAEC,EAAE2gC,GAAG,KAAK3gC,EAAEsJ,EAAEvJ,EAAE2B,GAAG,MAAM3B,EAAE,KAAK,GAAGC,EAAEggC,GAAG,KAAKhgC,EAAEsJ,EAAEvJ,EAAE2B,GAAG,MAAM3B,EAAE,KAAK,GAAGC,EAAEkgC,GAAG,KAAKlgC,EAAEsJ,EAAEiqB,GAAGjqB,EAAEQ,KAAK/J,GAAGsJ,EAAE3H,GAAG,MAAM3B,EAAE,MAAMsI,MAAMpH,EAAE,IAAIqI,EAAE,KAAM,OAAOtJ,EAAE,KAAK,EAAE,OAAOqJ,EAAErJ,EAAE8J,KAAKR,EAAEtJ,EAAE06B,aAA2C4F,GAAGvgC,EAAEC,EAAEqJ,EAArCC,EAAEtJ,EAAE64B,cAAcxvB,EAAEC,EAAEiqB,GAAGlqB,EAAEC,GAAc5H,GAAG,KAAK,EAAE,OAAO2H,EAAErJ,EAAE8J,KAAKR,EAAEtJ,EAAE06B,aAA2CiG,GAAG5gC,EAAEC,EAAEqJ,EAArCC,EAAEtJ,EAAE64B,cAAcxvB,EAAEC,EAAEiqB,GAAGlqB,EAAEC,GAAc5H,GAAG,KAAK,EAAwB,GAAtBu/B,GAAGjhC,GAAGqJ,EAAErJ,EAAE60B,YAAe,OAAO90B,GAAG,OAAOsJ,EAAE,MAAMhB,MAAMpH,EAAE,MAC3Y,GAA9GoI,EAAErJ,EAAE06B,aAA+BpxB,EAAE,QAApBA,EAAEtJ,EAAEkZ,eAAyB5P,EAAE26B,QAAQ,KAAK7O,GAAGr1B,EAAEC,GAAG41B,GAAG51B,EAAEqJ,EAAE,KAAK3H,IAAG2H,EAAErJ,EAAEkZ,cAAc+qB,WAAe36B,EAAEwxB,KAAK96B,EAAEigC,GAAGlgC,EAAEC,EAAE0B,OAAO,CAAuF,IAArE5B,GAAjBwJ,EAAEtJ,EAAEmX,WAAiBoE,WAAQ8e,GAAG/K,GAAGtvB,EAAEmX,UAAUqE,cAAc5J,YAAYwoB,GAAGp6B,EAAEF,EAAEw6B,IAAG,GAAMx6B,EAAE,CAAqC,GAAG,OAAvCC,EAAEuJ,EAAE8hC,iCAA2C,IAAI9hC,EAAE,EAAEA,EAAEvJ,EAAEsB,OAAOiI,GAAG,GAAExJ,EAAEC,EAAEuJ,IAAK2xB,8BAA8Bl7B,EAAEuJ,EAAE,GAAGyxB,GAAGj3B,KAAKhE,GAAoB,IAAjB4B,EAAE03B,GAAGp5B,EAAE,KAAKqJ,EAAE3H,GAAO1B,EAAEsZ,MAAM5X,EAAEA,GAAGA,EAAEsX,OAAe,EAATtX,EAAEsX,MAAS,KAAKtX,EAAEA,EAAE6X,aAAawmB,GAAGhgC,EAAEC,EAAEqJ,EAAE3H,GAAGo5B,KAAK96B,EAAEA,EAAEsZ,MAAM,OAAOtZ,EAAE,KAAK,EAAE,OAAO85B,GAAG95B,GAAG,OAAOD,GACnf46B,GAAG36B,GAAGqJ,EAAErJ,EAAE8J,KAAKR,EAAEtJ,EAAE06B,aAAa56B,EAAE,OAAOC,EAAEA,EAAEm6B,cAAc,KAAK3wB,EAAED,EAAE8G,SAAS2e,GAAG1lB,EAAEC,GAAGC,EAAE,KAAK,OAAOzJ,GAAGivB,GAAG1lB,EAAEvJ,KAAKE,EAAEgZ,OAAO,IAAI0nB,GAAG3gC,EAAEC,GAAG+/B,GAAGhgC,EAAEC,EAAEuJ,EAAE7H,GAAG1B,EAAEsZ,MAAM,KAAK,EAAE,OAAO,OAAOvZ,GAAG46B,GAAG36B,GAAG,KAAK,KAAK,GAAG,OAAOwhC,GAAGzhC,EAAEC,EAAE0B,GAAG,KAAK,EAAE,OAAOg4B,GAAG15B,EAAEA,EAAEmX,UAAUqE,eAAenS,EAAErJ,EAAE06B,aAAa,OAAO36B,EAAEC,EAAEsZ,MAAM6f,GAAGn5B,EAAE,KAAKqJ,EAAE3H,GAAGq+B,GAAGhgC,EAAEC,EAAEqJ,EAAE3H,GAAG1B,EAAEsZ,MAAM,KAAK,GAAG,OAAOjQ,EAAErJ,EAAE8J,KAAKR,EAAEtJ,EAAE06B,aAA2CsF,GAAGjgC,EAAEC,EAAEqJ,EAArCC,EAAEtJ,EAAE64B,cAAcxvB,EAAEC,EAAEiqB,GAAGlqB,EAAEC,GAAc5H,GAAG,KAAK,EAAE,OAAOq+B,GAAGhgC,EAAEC,EAAEA,EAAE06B,aAAah5B,GAAG1B,EAAEsZ,MAAM,KAAK,EACtc,KAAK,GAAG,OAAOymB,GAAGhgC,EAAEC,EAAEA,EAAE06B,aAAatqB,SAAS1O,GAAG1B,EAAEsZ,MAAM,KAAK,GAAGvZ,EAAE,CAACsJ,EAAErJ,EAAE8J,KAAKkE,SAAS1E,EAAEtJ,EAAE06B,aAAanxB,EAAEvJ,EAAEk6B,cAAcp6B,EAAEwJ,EAAE7H,MAAM,IAAI8L,EAAEvN,EAAE8J,KAAKkE,SAAiD,GAAxCkiB,GAAEuD,GAAGlmB,EAAEwmB,eAAexmB,EAAEwmB,cAAcj0B,EAAK,OAAOyJ,EAAE,GAAGgE,EAAEhE,EAAE9H,MAA0G,KAApG3B,EAAEoqB,GAAG3c,EAAEzN,GAAG,EAAwF,GAArF,oBAAoBuJ,EAAE+iC,sBAAsB/iC,EAAE+iC,sBAAsB7+B,EAAEzN,GAAG,cAAqB,GAAGyJ,EAAE6G,WAAW9G,EAAE8G,WAAWvN,GAAEuB,QAAQ,CAACpE,EAAEigC,GAAGlgC,EAAEC,EAAE0B,GAAG,MAAM3B,QAAQ,IAAc,QAAVwN,EAAEvN,EAAEsZ,SAAiB/L,EAAEwL,OAAO/Y,GAAG,OAAOuN,GAAG,CAAC,IAAID,EAAEC,EAAE4mB,aAAa,GAAG,OAAO7mB,EAAE,CAAC/D,EAAEgE,EAAE+L,MAAM,IAAI,IAAIlB,EACtf9K,EAAE8mB,aAAa,OAAOhc,GAAG,CAAC,GAAGA,EAAEoc,UAAUnrB,GAAG,KAAK+O,EAAEqc,aAAa30B,GAAG,CAAC,IAAIyN,EAAEI,OAAMyK,EAAEid,IAAI,EAAE3zB,GAAGA,IAAKiM,IAAI,EAAE+nB,GAAGnoB,EAAE6K,IAAI7K,EAAE8mB,OAAO3yB,EAAgB,QAAd0W,EAAE7K,EAAEuL,aAAqBV,EAAEic,OAAO3yB,GAAGsyB,GAAGzmB,EAAEwL,OAAOrX,GAAG4L,EAAE+mB,OAAO3yB,EAAE,MAAM0W,EAAEA,EAAE/T,WAAWkF,EAAE,KAAKgE,EAAEI,KAAIJ,EAAEzD,OAAO9J,EAAE8J,KAAK,KAAayD,EAAE+L,MAAM,GAAG,OAAO/P,EAAEA,EAAEwP,OAAOxL,OAAO,IAAIhE,EAAEgE,EAAE,OAAOhE,GAAG,CAAC,GAAGA,IAAIvJ,EAAE,CAACuJ,EAAE,KAAK,MAAkB,GAAG,QAAfgE,EAAEhE,EAAEgQ,SAAoB,CAAChM,EAAEwL,OAAOxP,EAAEwP,OAAOxP,EAAEgE,EAAE,MAAMhE,EAAEA,EAAEwP,OAAOxL,EAAEhE,EAAEw2B,GAAGhgC,EAAEC,EAAEsJ,EAAE8G,SAAS1O,GAAG1B,EAAEA,EAAEsZ,MAAM,OAAOtZ,EAAE,KAAK,EAAE,OAAOsJ,EAAEtJ,EAAE8J,KAAsBT,GAAjBvJ,EAAEE,EAAE06B,cAAiBtqB,SAAS8jB,GAAGl0B,EAAE0B,GACnd2H,EAAEA,EADodC,EAAEirB,GAAGjrB,EACpfxJ,EAAEusC,wBAA8BrsC,EAAEgZ,OAAO,EAAE+mB,GAAGhgC,EAAEC,EAAEqJ,EAAE3H,GAAG1B,EAAEsZ,MAAM,KAAK,GAAG,OAAgBxZ,EAAEyzB,GAAXjqB,EAAEtJ,EAAE8J,KAAY9J,EAAE06B,cAA6BwF,GAAGngC,EAAEC,EAAEsJ,EAAtBxJ,EAAEyzB,GAAGjqB,EAAEQ,KAAKhK,GAAcuJ,EAAE3H,GAAG,KAAK,GAAG,OAAO2+B,GAAGtgC,EAAEC,EAAEA,EAAE8J,KAAK9J,EAAE06B,aAAarxB,EAAE3H,GAAG,KAAK,GAAG,OAAO2H,EAAErJ,EAAE8J,KAAKR,EAAEtJ,EAAE06B,aAAapxB,EAAEtJ,EAAE64B,cAAcxvB,EAAEC,EAAEiqB,GAAGlqB,EAAEC,GAAG,OAAOvJ,IAAIA,EAAE+Y,UAAU,KAAK9Y,EAAE8Y,UAAU,KAAK9Y,EAAEgZ,OAAO,GAAGhZ,EAAE2N,IAAI,EAAE+iB,GAAGrnB,IAAItJ,GAAE,EAAGixB,GAAGhxB,IAAID,GAAE,EAAGm0B,GAAGl0B,EAAE0B,GAAGw1B,GAAGl3B,EAAEqJ,EAAEC,GAAGkuB,GAAGx3B,EAAEqJ,EAAEC,EAAE5H,GAAGq/B,GAAG,KAAK/gC,EAAEqJ,GAAE,EAAGtJ,EAAE2B,GAAG,KAAK,GAAG,OAAO8gC,GAAGziC,EAAEC,EAAE0B,GAAG,KAAK,GAAoB,KAAK,GAAG,OAAO6+B,GAAGxgC,EAAEC,EAAE0B,GAAG,MAAM2G,MAAMpH,EAAE,IAAIjB,EAAE2N,OAa/e+9B,GAAGvlC,UAAUyH,OAAO,SAAS7N,GAAGurC,GAAGvrC,EAAEyJ,KAAKqiC,cAAc,KAAK,OAAOH,GAAGvlC,UAAUmmC,QAAQ,WAAW,IAAIvsC,EAAEyJ,KAAKqiC,cAAc7rC,EAAED,EAAEyb,cAAc8vB,GAAG,KAAKvrC,EAAE,MAAK,WAAWC,EAAE8tB,IAAI,SAEwJpU,GAAG,SAAS3Z,GAAM,KAAKA,EAAE4N,MAAgBipB,GAAG72B,EAAE,EAAV22B,MAAe+U,GAAG1rC,EAAE,KAAK4Z,GAAG,SAAS5Z,GAAM,KAAKA,EAAE4N,MAAgBipB,GAAG72B,EAAE,SAAV22B,MAAsB+U,GAAG1rC,EAAE,YACnc6Z,GAAG,SAAS7Z,GAAG,GAAG,KAAKA,EAAE4N,IAAI,CAAC,IAAI3N,EAAE02B,KAAKh1B,EAAEi1B,GAAG52B,GAAG62B,GAAG72B,EAAE2B,EAAE1B,GAAGyrC,GAAG1rC,EAAE2B,KAAKmY,GAAG,SAAS9Z,EAAEC,GAAG,OAAOA,KAC7F8W,GAAG,SAAS/W,EAAEC,EAAE0B,GAAG,OAAO1B,GAAG,IAAK,QAAyB,GAAjB+P,GAAGhQ,EAAE2B,GAAG1B,EAAE0B,EAAE+L,KAAQ,UAAU/L,EAAEoI,MAAM,MAAM9J,EAAE,CAAC,IAAI0B,EAAE3B,EAAE2B,EAAEmV,YAAYnV,EAAEA,EAAEmV,WAAsF,IAA3EnV,EAAEA,EAAE6qC,iBAAiB,cAAcC,KAAKC,UAAU,GAAGzsC,GAAG,mBAAuBA,EAAE,EAAEA,EAAE0B,EAAEL,OAAOrB,IAAI,CAAC,IAAIqJ,EAAE3H,EAAE1B,GAAG,GAAGqJ,IAAItJ,GAAGsJ,EAAEqjC,OAAO3sC,EAAE2sC,KAAK,CAAC,IAAIpjC,EAAE8N,GAAG/N,GAAG,IAAIC,EAAE,MAAMjB,MAAMpH,EAAE,KAAKgO,EAAG5F,GAAG0G,GAAG1G,EAAEC,KAAK,MAAM,IAAK,WAAW0H,GAAGjR,EAAE2B,GAAG,MAAM,IAAK,SAAmB,OAAV1B,EAAE0B,EAAED,QAAe8O,GAAGxQ,IAAI2B,EAAEkhC,SAAS5iC,GAAE,KAAMuX,GAAG8xB,GAC9Z7xB,GAAG,SAASzX,EAAEC,EAAE0B,EAAE2H,EAAEC,GAAG,IAAIxJ,EAAE2mC,GAAEA,IAAG,EAAE,IAAI,OAAOxT,GAAG,GAAGlzB,EAAEmf,KAAK,KAAKlf,EAAE0B,EAAE2H,EAAEC,IAAnC,QAAmD,KAAJm9B,GAAE3mC,KAAUonC,KAAK/T,QAAQ1b,GAAG,WAAW,KAAO,GAAFgvB,MAhD/H,WAAc,GAAG,OAAOiB,GAAG,CAAC,IAAI3nC,EAAE2nC,GAAGA,GAAG,KAAK3nC,EAAEoH,SAAQ,SAASpH,GAAGA,EAAE4d,cAAc,GAAG5d,EAAE2d,aAAa2qB,GAAGtoC,EAAE+yB,SAAOK,KAgDsBwZ,GAAKhE,OAAOjxB,GAAG,SAAS3X,EAAEC,GAAG,IAAI0B,EAAE+kC,GAAEA,IAAG,EAAE,IAAI,OAAO1mC,EAAEC,GAAb,QAA4B,KAAJymC,GAAE/kC,KAAUwlC,KAAK/T,QAA+I,IAAIyZ,GAAG,CAACC,OAAO,CAAC31B,GAAGiS,GAAG/R,GAAGC,GAAGC,GAAGqxB,GAAG,CAACvkC,SAAQ,KAAM0oC,GAAG,CAACC,wBAAwB5xB,GAAG6xB,WAAW,EAAEC,QAAQ,SAASC,oBAAoB,aACveC,GAAG,CAACH,WAAWF,GAAGE,WAAWC,QAAQH,GAAGG,QAAQC,oBAAoBJ,GAAGI,oBAAoBE,eAAeN,GAAGM,eAAeC,kBAAkB,KAAKC,4BAA4B,KAAKC,4BAA4B,KAAKC,cAAc,KAAKC,wBAAwB,KAAKC,wBAAwB,KAAKC,mBAAmB,KAAKC,eAAe,KAAKC,qBAAqB5iC,EAAGkwB,uBAAuB2S,wBAAwB,SAAS/tC,GAAW,OAAO,QAAfA,EAAEsZ,GAAGtZ,IAAmB,KAAKA,EAAEoX,WAAW41B,wBAAwBD,GAAGC,yBAR/I,WAAc,OAAO,MAS7WgB,4BAA4B,KAAKC,gBAAgB,KAAKC,aAAa,KAAKC,kBAAkB,KAAKC,gBAAgB,MAAM,GAAG,qBAAqBC,+BAA+B,CAAC,IAAI7oC,GAAG6oC,+BAA+B,IAAI7oC,GAAG8oC,YAAY9oC,GAAG+oC,cAAc,IAAInd,GAAG5rB,GAAGgpC,OAAOpB,IAAI/b,GAAG7rB,GAAG,MAAMxF,MAAKH,EAAQsL,mDAAmD0hC,GAAGhtC,EAAQ4uC,aAAatC,GACnXtsC,EAAQ6uC,YAAY,SAAS1uC,GAAG,GAAG,MAAMA,EAAE,OAAO,KAAK,GAAG,IAAIA,EAAEoS,SAAS,OAAOpS,EAAE,IAAIC,EAAED,EAAEy2B,gBAAgB,QAAG,IAASx2B,EAAE,CAAC,GAAG,oBAAoBD,EAAE6N,OAAO,MAAMvF,MAAMpH,EAAE,MAAM,MAAMoH,MAAMpH,EAAE,IAAIgF,OAAOoB,KAAKtH,KAA0C,OAA5BA,EAAE,QAAVA,EAAEsZ,GAAGrZ,IAAc,KAAKD,EAAEoX,WAAoBvX,EAAQ8uC,UAAU,SAAS3uC,EAAEC,GAAG,IAAI0B,EAAE+kC,GAAE,GAAG,KAAO,GAAF/kC,GAAM,OAAO3B,EAAEC,GAAGymC,IAAG,EAAE,IAAI,GAAG1mC,EAAE,OAAOkzB,GAAG,GAAGlzB,EAAEmf,KAAK,KAAKlf,IAAlC,QAA8CymC,GAAE/kC,EAAEyxB,OAAOvzB,EAAQ2b,QAAQ,SAASxb,EAAEC,EAAE0B,GAAG,IAAIoqC,GAAG9rC,GAAG,MAAMqI,MAAMpH,EAAE,MAAM,OAAO8qC,GAAG,KAAKhsC,EAAEC,GAAE,EAAG0B,IACnd9B,EAAQgO,OAAO,SAAS7N,EAAEC,EAAE0B,GAAG,IAAIoqC,GAAG9rC,GAAG,MAAMqI,MAAMpH,EAAE,MAAM,OAAO8qC,GAAG,KAAKhsC,EAAEC,GAAE,EAAG0B,IAAI9B,EAAQ+uC,uBAAuB,SAAS5uC,GAAG,IAAI+rC,GAAG/rC,GAAG,MAAMsI,MAAMpH,EAAE,KAAK,QAAOlB,EAAE+lC,sBAAqBwD,IAAG,WAAWyC,GAAG,KAAK,KAAKhsC,GAAE,GAAG,WAAWA,EAAE+lC,oBAAoB,KAAK/lC,EAAE+tB,IAAI,YAAS,IAAQluB,EAAQgvC,wBAAwBvF,GAAGzpC,EAAQivC,sBAAsB,SAAS9uC,EAAEC,GAAG,OAAOksC,GAAGnsC,EAAEC,EAAE,EAAE8H,UAAUzG,aAAQ,IAASyG,UAAU,GAAGA,UAAU,GAAG,OAC9alI,EAAQkvC,oCAAoC,SAAS/uC,EAAEC,EAAE0B,EAAE2H,GAAG,IAAIyiC,GAAGpqC,GAAG,MAAM2G,MAAMpH,EAAE,MAAM,GAAG,MAAMlB,QAAG,IAASA,EAAEy2B,gBAAgB,MAAMnuB,MAAMpH,EAAE,KAAK,OAAO8qC,GAAGhsC,EAAEC,EAAE0B,GAAE,EAAG2H,IAAIzJ,EAAQqtC,QAAQ,4CCtS7L,SAAS8B,IAEP,GAC4C,qBAAnCX,gCAC4C,oBAA5CA,+BAA+BW,SAcxC,IAEEX,+BAA+BW,SAASA,GACxC,MAAOznC,GAGPs8B,QAAQC,MAAMv8B,IAOhBynC,GACApvC,EAAOC,QAAU,EAAjBD,uCC1BWuI,EAAQ,KAAiB,IAAIpI,EAAEoI,EAAQ,KAASqB,EAAE,MAA6B,GAAvB3J,EAAQovC,SAAS,MAAS,oBAAoB5iC,QAAQA,OAAOC,IAAI,CAAC,IAAIkB,EAAEnB,OAAOC,IAAI9C,EAAEgE,EAAE,iBAAiB3N,EAAQovC,SAASzhC,EAAE,kBAAkB,IAAIpF,EAAErI,EAAEoL,mDAAmD40B,kBAAkB/4B,EAAEd,OAAOE,UAAUD,eAAe4vB,EAAE,CAAC/tB,KAAI,EAAGkwB,KAAI,EAAGgX,QAAO,EAAGC,UAAS,GACrW,SAASxhB,EAAEhsB,EAAE3B,EAAEuN,GAAG,IAAItN,EAAEqJ,EAAE,GAAGC,EAAE,KAAK8O,EAAE,KAAiF,IAAIpY,UAAhF,IAASsN,IAAIhE,EAAE,GAAGgE,QAAG,IAASvN,EAAEgI,MAAMuB,EAAE,GAAGvJ,EAAEgI,UAAK,IAAShI,EAAEk4B,MAAM7f,EAAErY,EAAEk4B,KAAcl4B,EAAEgH,EAAEiB,KAAKjI,EAAEC,KAAK81B,EAAE5vB,eAAelG,KAAKqJ,EAAErJ,GAAGD,EAAEC,IAAI,GAAG0B,GAAGA,EAAE8xB,aAAa,IAAIxzB,KAAKD,EAAE2B,EAAE8xB,kBAAe,IAASnqB,EAAErJ,KAAKqJ,EAAErJ,GAAGD,EAAEC,IAAI,MAAM,CAAC+N,SAASxE,EAAEO,KAAKpI,EAAEqG,IAAIuB,EAAE2uB,IAAI7f,EAAEqf,MAAMpuB,EAAE6uB,OAAO/vB,EAAE/D,SAASxE,EAAQuvC,IAAIzhB,EAAE9tB,EAAQwvC,KAAK1hB,oCCD1U,IAAItV,EAAElQ,EAAQ,KAAiBnB,EAAE,MAAM+uB,EAAE,MAAMl2B,EAAQovC,SAAS,MAAMpvC,EAAQyvC,WAAW,MAAMzvC,EAAQ0vC,SAAS,MAAM,IAAI5hB,EAAE,MAAM5sB,EAAE,MAAM6sB,EAAE,MAAM/tB,EAAQ2vC,SAAS,MAAM,IAAI9hB,EAAE,MAAMG,EAAE,MACpM,GAAG,oBAAoBxhB,QAAQA,OAAOC,IAAI,CAAC,IAAIkhB,EAAEnhB,OAAOC,IAAItF,EAAEwmB,EAAE,iBAAiBuI,EAAEvI,EAAE,gBAAgB3tB,EAAQovC,SAASzhB,EAAE,kBAAkB3tB,EAAQyvC,WAAW9hB,EAAE,qBAAqB3tB,EAAQ0vC,SAAS/hB,EAAE,kBAAkBG,EAAEH,EAAE,kBAAkBzsB,EAAEysB,EAAE,iBAAiBI,EAAEJ,EAAE,qBAAqB3tB,EAAQ2vC,SAAShiB,EAAE,kBAAkBE,EAAEF,EAAE,cAAcK,EAAEL,EAAE,cAAc,IAAI1sB,EAAE,oBAAoBuL,QAAQA,OAAOK,SACtR,SAAS+gB,EAAEztB,GAAG,IAAI,IAAIC,EAAE,yDAAyDD,EAAE2B,EAAE,EAAEA,EAAEoG,UAAUzG,OAAOK,IAAI1B,GAAG,WAAWoI,mBAAmBN,UAAUpG,IAAI,MAAM,yBAAyB3B,EAAE,WAAWC,EAAE,iHACpU,IAAI61B,EAAE,CAACU,UAAU,WAAW,OAAM,GAAIO,mBAAmB,aAAaD,oBAAoB,aAAaJ,gBAAgB,cAAcrtB,EAAE,GAAG,SAAS2sB,EAAEh2B,EAAEC,EAAE0B,GAAG8H,KAAKiuB,MAAM13B,EAAEyJ,KAAKgrB,QAAQx0B,EAAEwJ,KAAK4sB,KAAKhtB,EAAEI,KAAK4tB,QAAQ11B,GAAGm0B,EACpN,SAAS5rB,KAA6B,SAASqC,EAAEvM,EAAEC,EAAE0B,GAAG8H,KAAKiuB,MAAM13B,EAAEyJ,KAAKgrB,QAAQx0B,EAAEwJ,KAAK4sB,KAAKhtB,EAAEI,KAAK4tB,QAAQ11B,GAAGm0B,EADsGE,EAAE5vB,UAAU8kC,iBAAiB,GAAGlV,EAAE5vB,UAAUqpC,SAAS,SAASzvC,EAAEC,GAAG,GAAG,kBAAkBD,GAAG,oBAAoBA,GAAG,MAAMA,EAAE,MAAMsI,MAAMmlB,EAAE,KAAKhkB,KAAK4tB,QAAQX,gBAAgBjtB,KAAKzJ,EAAEC,EAAE,aAAa+1B,EAAE5vB,UAAUspC,YAAY,SAAS1vC,GAAGyJ,KAAK4tB,QAAQN,mBAAmBttB,KAAKzJ,EAAE,gBACndkK,EAAE9D,UAAU4vB,EAAE5vB,UAAsF,IAAIoX,EAAEjR,EAAEnG,UAAU,IAAI8D,EAAEsT,EAAE9O,YAAYnC,EAAE8L,EAAEmF,EAAEwY,EAAE5vB,WAAWoX,EAAE0Z,sBAAqB,EAAG,IAAIrK,EAAE,CAACxoB,QAAQ,MAAM6rB,EAAEhqB,OAAOE,UAAUD,eAAegqB,EAAE,CAACnoB,KAAI,EAAGkwB,KAAI,EAAGgX,QAAO,EAAGC,UAAS,GAChS,SAAShhB,EAAEnuB,EAAEC,EAAE0B,GAAG,IAAI4H,EAAED,EAAE,GAAGiE,EAAE,KAAKC,EAAE,KAAK,GAAG,MAAMvN,EAAE,IAAIsJ,UAAK,IAAStJ,EAAEi4B,MAAM1qB,EAAEvN,EAAEi4B,UAAK,IAASj4B,EAAE+H,MAAMuF,EAAE,GAAGtN,EAAE+H,KAAK/H,EAAEiwB,EAAEjoB,KAAKhI,EAAEsJ,KAAK4mB,EAAEhqB,eAAeoD,KAAKD,EAAEC,GAAGtJ,EAAEsJ,IAAI,IAAIC,EAAEzB,UAAUzG,OAAO,EAAE,GAAG,IAAIkI,EAAEF,EAAE+G,SAAS1O,OAAO,GAAG,EAAE6H,EAAE,CAAC,IAAI,IAAIzJ,EAAEiB,MAAMwI,GAAGpB,EAAE,EAAEA,EAAEoB,EAAEpB,IAAIrI,EAAEqI,GAAGL,UAAUK,EAAE,GAAGkB,EAAE+G,SAAStQ,EAAE,GAAGC,GAAGA,EAAEyzB,aAAa,IAAIlqB,KAAKC,EAAExJ,EAAEyzB,kBAAe,IAASnqB,EAAEC,KAAKD,EAAEC,GAAGC,EAAED,IAAI,MAAM,CAACyE,SAAShH,EAAE+C,KAAK/J,EAAEgI,IAAIuF,EAAE2qB,IAAI1qB,EAAEkqB,MAAMpuB,EAAE6uB,OAAOtL,EAAExoB,SACxU,SAASiqB,EAAEtuB,GAAG,MAAM,kBAAkBA,GAAG,OAAOA,GAAGA,EAAEgO,WAAWhH,EAAqG,IAAIqpB,EAAE,OAAO,SAASvtB,EAAE9C,EAAEC,GAAG,MAAM,kBAAkBD,GAAG,OAAOA,GAAG,MAAMA,EAAEgI,IAA7K,SAAgBhI,GAAG,IAAIC,EAAE,CAAC,IAAI,KAAK,IAAI,MAAM,MAAM,IAAID,EAAEgL,QAAQ,SAAQ,SAAShL,GAAG,OAAOC,EAAED,MAAmF2vC,CAAO,GAAG3vC,EAAEgI,KAAK/H,EAAE2R,SAAS,IAC5W,SAASmhB,EAAE/yB,EAAEC,EAAE0B,EAAE4H,EAAED,GAAG,IAAIiE,SAASvN,EAAK,cAAcuN,GAAG,YAAYA,IAAEvN,EAAE,MAAK,IAAIwN,GAAE,EAAG,GAAG,OAAOxN,EAAEwN,GAAE,OAAQ,OAAOD,GAAG,IAAK,SAAS,IAAK,SAASC,GAAE,EAAG,MAAM,IAAK,SAAS,OAAOxN,EAAEgO,UAAU,KAAKhH,EAAE,KAAK+uB,EAAEvoB,GAAE,GAAI,GAAGA,EAAE,OAAWlE,EAAEA,EAANkE,EAAExN,GAASA,EAAE,KAAKuJ,EAAE,IAAIzG,EAAE0K,EAAE,GAAGjE,EAAEvI,MAAMgQ,QAAQ1H,IAAI3H,EAAE,GAAG,MAAM3B,IAAI2B,EAAE3B,EAAEgL,QAAQqlB,EAAE,OAAO,KAAK0C,EAAEzpB,EAAErJ,EAAE0B,EAAE,IAAG,SAAS3B,GAAG,OAAOA,MAAK,MAAMsJ,IAAIglB,EAAEhlB,KAAKA,EAD/W,SAAWtJ,EAAEC,GAAG,MAAM,CAAC+N,SAAShH,EAAE+C,KAAK/J,EAAE+J,KAAK/B,IAAI/H,EAAEi4B,IAAIl4B,EAAEk4B,IAAIR,MAAM13B,EAAE03B,MAAMS,OAAOn4B,EAAEm4B,QAC4R/J,CAAE9kB,EAAE3H,IAAI2H,EAAEtB,KAAKwF,GAAGA,EAAExF,MAAMsB,EAAEtB,IAAI,IAAI,GAAGsB,EAAEtB,KAAKgD,QAAQqlB,EAAE,OAAO,KAAKrwB,IAAIC,EAAE8D,KAAKuF,IAAI,EAAyB,GAAvBkE,EAAE,EAAEjE,EAAE,KAAKA,EAAE,IAAIA,EAAE,IAAOvI,MAAMgQ,QAAQhR,GAAG,IAAI,IAAIwJ,EACzf,EAAEA,EAAExJ,EAAEsB,OAAOkI,IAAI,CAAQ,IAAIzJ,EAAEwJ,EAAEzG,EAAfyK,EAAEvN,EAAEwJ,GAAeA,GAAGgE,GAAGulB,EAAExlB,EAAEtN,EAAE0B,EAAE5B,EAAEuJ,QAAQ,GAAGvJ,EANhE,SAAWC,GAAG,OAAG,OAAOA,GAAG,kBAAkBA,EAAS,KAAsC,oBAAjCA,EAAEc,GAAGd,EAAEc,IAAId,EAAE,eAA0CA,EAAE,KAMlDkB,CAAElB,GAAG,oBAAoBD,EAAE,IAAIC,EAAED,EAAEkI,KAAKjI,GAAGwJ,EAAE,IAAI+D,EAAEvN,EAAEsE,QAAQ60B,MAA6B3rB,GAAGulB,EAA1BxlB,EAAEA,EAAE7L,MAA0BzB,EAAE0B,EAAtB5B,EAAEwJ,EAAEzG,EAAEyK,EAAE/D,KAAkBF,QAAQ,GAAG,WAAWiE,EAAE,MAAMtN,EAAE,GAAGD,EAAEsI,MAAMmlB,EAAE,GAAG,oBAAoBxtB,EAAE,qBAAqBiG,OAAOoB,KAAKtH,GAAGiH,KAAK,MAAM,IAAIhH,IAAI,OAAOuN,EAAE,SAASysB,EAAEj6B,EAAEC,EAAE0B,GAAG,GAAG,MAAM3B,EAAE,OAAOA,EAAE,IAAIuJ,EAAE,GAAGD,EAAE,EAAmD,OAAjDypB,EAAE/yB,EAAEuJ,EAAE,GAAG,IAAG,SAASvJ,GAAG,OAAOC,EAAEgI,KAAKtG,EAAE3B,EAAEsJ,QAAcC,EAC1Z,SAAS8kB,EAAEruB,GAAG,IAAI,IAAIA,EAAE4vC,QAAQ,CAAC,IAAI3vC,EAAED,EAAE6vC,QAAQ5vC,EAAEA,IAAID,EAAE4vC,QAAQ,EAAE5vC,EAAE6vC,QAAQ5vC,EAAEA,EAAEmmC,MAAK,SAASnmC,GAAG,IAAID,EAAE4vC,UAAU3vC,EAAEA,EAAE6vC,QAAQ9vC,EAAE4vC,QAAQ,EAAE5vC,EAAE6vC,QAAQ5vC,MAAI,SAASA,GAAG,IAAID,EAAE4vC,UAAU5vC,EAAE4vC,QAAQ,EAAE5vC,EAAE6vC,QAAQ5vC,MAAK,GAAG,IAAID,EAAE4vC,QAAQ,OAAO5vC,EAAE6vC,QAAQ,MAAM7vC,EAAE6vC,QAAS,IAAItU,EAAE,CAACl3B,QAAQ,MAAM,SAASm3B,IAAI,IAAIx7B,EAAEu7B,EAAEl3B,QAAQ,GAAG,OAAOrE,EAAE,MAAMsI,MAAMmlB,EAAE,MAAM,OAAOztB,EAAE,IAAIy7B,EAAE,CAACL,uBAAuBG,EAAEhI,wBAAwB,CAAC1W,WAAW,GAAGkjB,kBAAkBlT,EAAEkjB,qBAAqB,CAAC1rC,SAAQ,GAAIqC,OAAO2R,GACjexY,EAAQyQ,SAAS,CAACnP,IAAI84B,EAAE7yB,QAAQ,SAASpH,EAAEC,EAAE0B,GAAGs4B,EAAEj6B,GAAE,WAAWC,EAAEqY,MAAM7O,KAAK1B,aAAYpG,IAAIquC,MAAM,SAAShwC,GAAG,IAAIC,EAAE,EAAuB,OAArBg6B,EAAEj6B,GAAE,WAAWC,OAAaA,GAAGgwC,QAAQ,SAASjwC,GAAG,OAAOi6B,EAAEj6B,GAAE,SAASA,GAAG,OAAOA,MAAK,IAAIkwC,KAAK,SAASlwC,GAAG,IAAIsuB,EAAEtuB,GAAG,MAAMsI,MAAMmlB,EAAE,MAAM,OAAOztB,IAAIH,EAAQu2B,UAAUJ,EAAEn2B,EAAQswC,cAAc5jC,EAAE1M,EAAQsL,mDAAmDswB,EAChX57B,EAAQuwC,aAAa,SAASpwC,EAAEC,EAAE0B,GAAG,GAAG,OAAO3B,QAAG,IAASA,EAAE,MAAMsI,MAAMmlB,EAAE,IAAIztB,IAAI,IAAIuJ,EAAE8O,EAAE,GAAGrY,EAAE03B,OAAOpuB,EAAEtJ,EAAEgI,IAAIuF,EAAEvN,EAAEk4B,IAAI1qB,EAAExN,EAAEm4B,OAAO,GAAG,MAAMl4B,EAAE,CAAoE,QAAnE,IAASA,EAAEi4B,MAAM3qB,EAAEtN,EAAEi4B,IAAI1qB,EAAEqf,EAAExoB,cAAS,IAASpE,EAAE+H,MAAMsB,EAAE,GAAGrJ,EAAE+H,KAAQhI,EAAE+J,MAAM/J,EAAE+J,KAAK0pB,aAAa,IAAIjqB,EAAExJ,EAAE+J,KAAK0pB,aAAa,IAAI1zB,KAAKE,EAAEiwB,EAAEjoB,KAAKhI,EAAEF,KAAKowB,EAAEhqB,eAAepG,KAAKwJ,EAAExJ,QAAG,IAASE,EAAEF,SAAI,IAASyJ,EAAEA,EAAEzJ,GAAGE,EAAEF,IAAI,IAAIA,EAAEgI,UAAUzG,OAAO,EAAE,GAAG,IAAIvB,EAAEwJ,EAAE8G,SAAS1O,OAAO,GAAG,EAAE5B,EAAE,CAACyJ,EAAExI,MAAMjB,GAAG,IAAI,IAAIqI,EAAE,EAAEA,EAAErI,EAAEqI,IAAIoB,EAAEpB,GAAGL,UAAUK,EAAE,GAAGmB,EAAE8G,SAAS7G,EAAE,MAAM,CAACwE,SAAShH,EAAE+C,KAAK/J,EAAE+J,KACxf/B,IAAIsB,EAAE4uB,IAAI3qB,EAAEmqB,MAAMnuB,EAAE4uB,OAAO3qB,IAAI3N,EAAQwwC,cAAc,SAASrwC,EAAEC,GAA8K,YAA3K,IAASA,IAAIA,EAAE,OAAMD,EAAE,CAACgO,SAASjN,EAAEsrC,sBAAsBpsC,EAAE+zB,cAAch0B,EAAEswC,eAAetwC,EAAEuwC,aAAa,EAAEC,SAAS,KAAKC,SAAS,OAAQD,SAAS,CAACxiC,SAAS2f,EAAE1f,SAASjO,GAAUA,EAAEywC,SAASzwC,GAAGH,EAAQmJ,cAAcmlB,EAAEtuB,EAAQ6wC,cAAc,SAAS1wC,GAAG,IAAIC,EAAEkuB,EAAEhP,KAAK,KAAKnf,GAAY,OAATC,EAAE8J,KAAK/J,EAASC,GAAGJ,EAAQ8wC,UAAU,WAAW,MAAM,CAACtsC,QAAQ,OAAOxE,EAAQ+wC,WAAW,SAAS5wC,GAAG,MAAM,CAACgO,SAAS4f,EAAE/f,OAAO7N,IAAIH,EAAQgxC,eAAeviB,EAC3ezuB,EAAQixC,KAAK,SAAS9wC,GAAG,MAAM,CAACgO,SAAS6f,EAAE3f,SAAS,CAAC0hC,SAAS,EAAEC,QAAQ7vC,GAAGmO,MAAMkgB,IAAIxuB,EAAQkxC,KAAK,SAAS/wC,EAAEC,GAAG,MAAM,CAAC+N,SAAS0f,EAAE3jB,KAAK/J,EAAEqgC,aAAQ,IAASpgC,EAAE,KAAKA,IAAIJ,EAAQm/B,YAAY,SAASh/B,EAAEC,GAAG,OAAOu7B,IAAIwD,YAAYh/B,EAAEC,IAAIJ,EAAQo/B,WAAW,SAASj/B,EAAEC,GAAG,OAAOu7B,IAAIyD,WAAWj/B,EAAEC,IAAIJ,EAAQ0/B,cAAc,aAAa1/B,EAAQ49B,UAAU,SAASz9B,EAAEC,GAAG,OAAOu7B,IAAIiC,UAAUz9B,EAAEC,IAAIJ,EAAQq/B,oBAAoB,SAASl/B,EAAEC,EAAE0B,GAAG,OAAO65B,IAAI0D,oBAAoBl/B,EAAEC,EAAE0B,IAC9c9B,EAAQs/B,gBAAgB,SAASn/B,EAAEC,GAAG,OAAOu7B,IAAI2D,gBAAgBn/B,EAAEC,IAAIJ,EAAQu/B,QAAQ,SAASp/B,EAAEC,GAAG,OAAOu7B,IAAI4D,QAAQp/B,EAAEC,IAAIJ,EAAQw/B,WAAW,SAASr/B,EAAEC,EAAE0B,GAAG,OAAO65B,IAAI6D,WAAWr/B,EAAEC,EAAE0B,IAAI9B,EAAQy/B,OAAO,SAASt/B,GAAG,OAAOw7B,IAAI8D,OAAOt/B,IAAIH,EAAQy9B,SAAS,SAASt9B,GAAG,OAAOw7B,IAAI8B,SAASt9B,IAAIH,EAAQqtC,QAAQ,2CCnBnTttC,EAAOC,QAAU,EAAjBD,uCCAAA,EAAOC,QAAU,EAAjBD,sBCIF,IAAIoxC,EAAW,SAAUnxC,GACvB,aAEA,IAEI6C,EAFAuuC,EAAK/qC,OAAOE,UACZ8qC,EAASD,EAAG9qC,eAEZgrC,EAA4B,oBAAX9kC,OAAwBA,OAAS,GAClD+kC,EAAiBD,EAAQzkC,UAAY,aACrC2kC,EAAsBF,EAAQG,eAAiB,kBAC/CC,EAAoBJ,EAAQK,aAAe,gBAE/C,SAASC,EAAOC,EAAK1pC,EAAKtG,GAOxB,OANAwE,OAAOiH,eAAeukC,EAAK1pC,EAAK,CAC9BtG,MAAOA,EACPmN,YAAY,EACZD,cAAc,EACd+iC,UAAU,IAELD,EAAI1pC,GAEb,IAEEypC,EAAO,GAAI,IACX,MAAOlqC,GACPkqC,EAAS,SAASC,EAAK1pC,EAAKtG,GAC1B,OAAOgwC,EAAI1pC,GAAOtG,GAItB,SAASkwC,EAAKC,EAASC,EAASC,EAAMC,GAEpC,IAAIC,EAAiBH,GAAWA,EAAQ1rC,qBAAqB8rC,EAAYJ,EAAUI,EAC/EC,EAAYjsC,OAAO63B,OAAOkU,EAAe7rC,WACzCquB,EAAU,IAAI2d,EAAQJ,GAAe,IAMzC,OAFAG,EAAUE,QAuMZ,SAA0BR,EAASE,EAAMtd,GACvC,IAAI3wB,EAAQwuC,EAEZ,OAAO,SAAgBC,EAAQC,GAC7B,GAAI1uC,IAAU2uC,EACZ,MAAM,IAAInqC,MAAM,gCAGlB,GAAIxE,IAAU4uC,EAAmB,CAC/B,GAAe,UAAXH,EACF,MAAMC,EAKR,OAAOG,IAMT,IAHAle,EAAQ8d,OAASA,EACjB9d,EAAQ+d,IAAMA,IAED,CACX,IAAII,EAAWne,EAAQme,SACvB,GAAIA,EAAU,CACZ,IAAIC,EAAiBC,EAAoBF,EAAUne,GACnD,GAAIoe,EAAgB,CAClB,GAAIA,IAAmBE,EAAkB,SACzC,OAAOF,GAIX,GAAuB,SAAnBpe,EAAQ8d,OAGV9d,EAAQue,KAAOve,EAAQwe,MAAQxe,EAAQ+d,SAElC,GAAuB,UAAnB/d,EAAQ8d,OAAoB,CACrC,GAAIzuC,IAAUwuC,EAEZ,MADAxuC,EAAQ4uC,EACFje,EAAQ+d,IAGhB/d,EAAQye,kBAAkBze,EAAQ+d,SAEN,WAAnB/d,EAAQ8d,QACjB9d,EAAQ0e,OAAO,SAAU1e,EAAQ+d,KAGnC1uC,EAAQ2uC,EAER,IAAIW,EAASC,EAASxB,EAASE,EAAMtd,GACrC,GAAoB,WAAhB2e,EAAOrpC,KAAmB,CAO5B,GAJAjG,EAAQ2wB,EAAQ0E,KACZuZ,EACAY,EAEAF,EAAOZ,MAAQO,EACjB,SAGF,MAAO,CACLrxC,MAAO0xC,EAAOZ,IACdrZ,KAAM1E,EAAQ0E,MAGS,UAAhBia,EAAOrpC,OAChBjG,EAAQ4uC,EAGRje,EAAQ8d,OAAS,QACjB9d,EAAQ+d,IAAMY,EAAOZ,OA/QPe,CAAiB1B,EAASE,EAAMtd,GAE7C0d,EAcT,SAASkB,EAASG,EAAI9B,EAAKc,GACzB,IACE,MAAO,CAAEzoC,KAAM,SAAUyoC,IAAKgB,EAAGvrC,KAAKypC,EAAKc,IAC3C,MAAOjrC,GACP,MAAO,CAAEwC,KAAM,QAASyoC,IAAKjrC,IAhBjC1H,EAAQ+xC,KAAOA,EAoBf,IAAIU,EAAyB,iBACzBgB,EAAyB,iBACzBb,EAAoB,YACpBC,EAAoB,YAIpBK,EAAmB,GAMvB,SAASb,KACT,SAASuB,KACT,SAASC,KAIT,IAAIC,EAAoB,GACxBlC,EAAOkC,EAAmBvC,GAAgB,WACxC,OAAO3nC,QAGT,IAAImqC,EAAW1tC,OAAO2tC,eAClBC,EAA0BF,GAAYA,EAASA,EAASG,EAAO,MAC/DD,GACAA,IAA4B7C,GAC5BC,EAAOjpC,KAAK6rC,EAAyB1C,KAGvCuC,EAAoBG,GAGtB,IAAIE,EAAKN,EAA2BttC,UAClC8rC,EAAU9rC,UAAYF,OAAO63B,OAAO4V,GAYtC,SAASM,EAAsB7tC,GAC7B,CAAC,OAAQ,QAAS,UAAUgB,SAAQ,SAASmrC,GAC3Cd,EAAOrrC,EAAWmsC,GAAQ,SAASC,GACjC,OAAO/oC,KAAK4oC,QAAQE,EAAQC,SAkClC,SAAS0B,EAAc/B,EAAWgC,GAChC,SAASC,EAAO7B,EAAQC,EAAK6B,EAASC,GACpC,IAAIlB,EAASC,EAASlB,EAAUI,GAASJ,EAAWK,GACpD,GAAoB,UAAhBY,EAAOrpC,KAEJ,CACL,IAAIwqC,EAASnB,EAAOZ,IAChB9wC,EAAQ6yC,EAAO7yC,MACnB,OAAIA,GACiB,kBAAVA,GACPwvC,EAAOjpC,KAAKvG,EAAO,WACdyyC,EAAYE,QAAQ3yC,EAAM8yC,SAASpO,MAAK,SAAS1kC,GACtD0yC,EAAO,OAAQ1yC,EAAO2yC,EAASC,MAC9B,SAAS/sC,GACV6sC,EAAO,QAAS7sC,EAAK8sC,EAASC,MAI3BH,EAAYE,QAAQ3yC,GAAO0kC,MAAK,SAASqO,GAI9CF,EAAO7yC,MAAQ+yC,EACfJ,EAAQE,MACP,SAASzQ,GAGV,OAAOsQ,EAAO,QAAStQ,EAAOuQ,EAASC,MAvBzCA,EAAOlB,EAAOZ,KA4BlB,IAAIkC,EAgCJjrC,KAAK4oC,QA9BL,SAAiBE,EAAQC,GACvB,SAASmC,IACP,OAAO,IAAIR,GAAY,SAASE,EAASC,GACvCF,EAAO7B,EAAQC,EAAK6B,EAASC,MAIjC,OAAOI,EAaLA,EAAkBA,EAAgBtO,KAChCuO,EAGAA,GACEA,KAkHV,SAAS7B,EAAoBF,EAAUne,GACrC,IAAI8d,EAASK,EAASlmC,SAAS+nB,EAAQ8d,QACvC,GAAIA,IAAW7vC,EAAW,CAKxB,GAFA+xB,EAAQme,SAAW,KAEI,UAAnBne,EAAQ8d,OAAoB,CAE9B,GAAIK,EAASlmC,SAAT,SAGF+nB,EAAQ8d,OAAS,SACjB9d,EAAQ+d,IAAM9vC,EACdowC,EAAoBF,EAAUne,GAEP,UAAnBA,EAAQ8d,QAGV,OAAOQ,EAIXte,EAAQ8d,OAAS,QACjB9d,EAAQ+d,IAAM,IAAI/rC,UAChB,kDAGJ,OAAOssC,EAGT,IAAIK,EAASC,EAASd,EAAQK,EAASlmC,SAAU+nB,EAAQ+d,KAEzD,GAAoB,UAAhBY,EAAOrpC,KAIT,OAHA0qB,EAAQ8d,OAAS,QACjB9d,EAAQ+d,IAAMY,EAAOZ,IACrB/d,EAAQme,SAAW,KACZG,EAGT,IAAI6B,EAAOxB,EAAOZ,IAElB,OAAMoC,EAOFA,EAAKzb,MAGP1E,EAAQme,EAASiC,YAAcD,EAAKlzC,MAGpC+yB,EAAQnwB,KAAOsuC,EAASkC,QAQD,WAAnBrgB,EAAQ8d,SACV9d,EAAQ8d,OAAS,OACjB9d,EAAQ+d,IAAM9vC,GAUlB+xB,EAAQme,SAAW,KACZG,GANE6B,GA3BPngB,EAAQ8d,OAAS,QACjB9d,EAAQ+d,IAAM,IAAI/rC,UAAU,oCAC5BguB,EAAQme,SAAW,KACZG,GAoDX,SAASgC,EAAaC,GACpB,IAAIC,EAAQ,CAAEC,OAAQF,EAAK,IAEvB,KAAKA,IACPC,EAAME,SAAWH,EAAK,IAGpB,KAAKA,IACPC,EAAMG,WAAaJ,EAAK,GACxBC,EAAMI,SAAWL,EAAK,IAGxBvrC,KAAK6rC,WAAWvxC,KAAKkxC,GAGvB,SAASM,EAAcN,GACrB,IAAI7B,EAAS6B,EAAMO,YAAc,GACjCpC,EAAOrpC,KAAO,gBACPqpC,EAAOZ,IACdyC,EAAMO,WAAapC,EAGrB,SAAShB,EAAQJ,GAIfvoC,KAAK6rC,WAAa,CAAC,CAAEJ,OAAQ,SAC7BlD,EAAY5qC,QAAQ2tC,EAActrC,MAClCA,KAAKgsC,OAAM,GA8Bb,SAAS1B,EAAO2B,GACd,GAAIA,EAAU,CACZ,IAAIC,EAAiBD,EAAStE,GAC9B,GAAIuE,EACF,OAAOA,EAAe1tC,KAAKytC,GAG7B,GAA6B,oBAAlBA,EAASpxC,KAClB,OAAOoxC,EAGT,IAAKjrC,MAAMirC,EAASp0C,QAAS,CAC3B,IAAId,GAAK,EAAG8D,EAAO,SAASA,IAC1B,OAAS9D,EAAIk1C,EAASp0C,QACpB,GAAI4vC,EAAOjpC,KAAKytC,EAAUl1C,GAGxB,OAFA8D,EAAK5C,MAAQg0C,EAASl1C,GACtB8D,EAAK60B,MAAO,EACL70B,EAOX,OAHAA,EAAK5C,MAAQgB,EACb4B,EAAK60B,MAAO,EAEL70B,GAGT,OAAOA,EAAKA,KAAOA,GAKvB,MAAO,CAAEA,KAAMquC,GAIjB,SAASA,IACP,MAAO,CAAEjxC,MAAOgB,EAAWy2B,MAAM,GA+MnC,OA7mBAsa,EAAkBrtC,UAAYstC,EAC9BjC,EAAOuC,EAAI,cAAeN,GAC1BjC,EAAOiC,EAA4B,cAAeD,GAClDA,EAAkBhmC,YAAcgkC,EAC9BiC,EACAnC,EACA,qBAaF1xC,EAAQ+1C,oBAAsB,SAASC,GACrC,IAAIC,EAAyB,oBAAXD,GAAyBA,EAAOnnC,YAClD,QAAOonC,IACHA,IAASrC,GAG2B,uBAAnCqC,EAAKroC,aAAeqoC,EAAKpoC,QAIhC7N,EAAQk2C,KAAO,SAASF,GAQtB,OAPI3vC,OAAO8vC,eACT9vC,OAAO8vC,eAAeH,EAAQnC,IAE9BmC,EAAOI,UAAYvC,EACnBjC,EAAOoE,EAAQtE,EAAmB,sBAEpCsE,EAAOzvC,UAAYF,OAAO63B,OAAOiW,GAC1B6B,GAOTh2C,EAAQq2C,MAAQ,SAAS1D,GACvB,MAAO,CAAEgC,QAAShC,IAsEpByB,EAAsBC,EAAc9tC,WACpCqrC,EAAOyC,EAAc9tC,UAAWirC,GAAqB,WACnD,OAAO5nC,QAET5J,EAAQq0C,cAAgBA,EAKxBr0C,EAAQs2C,MAAQ,SAAStE,EAASC,EAASC,EAAMC,EAAamC,QACxC,IAAhBA,IAAwBA,EAAciC,SAE1C,IAAIC,EAAO,IAAInC,EACbtC,EAAKC,EAASC,EAASC,EAAMC,GAC7BmC,GAGF,OAAOt0C,EAAQ+1C,oBAAoB9D,GAC/BuE,EACAA,EAAK/xC,OAAO8hC,MAAK,SAASmO,GACxB,OAAOA,EAAOpb,KAAOob,EAAO7yC,MAAQ20C,EAAK/xC,WAuKjD2vC,EAAsBD,GAEtBvC,EAAOuC,EAAIzC,EAAmB,aAO9BE,EAAOuC,EAAI5C,GAAgB,WACzB,OAAO3nC,QAGTgoC,EAAOuC,EAAI,YAAY,WACrB,MAAO,wBAkCTn0C,EAAQyH,KAAO,SAASgvC,GACtB,IAAIhvC,EAAO,GACX,IAAK,IAAIU,KAAOsuC,EACdhvC,EAAKvD,KAAKiE,GAMZ,OAJAV,EAAKivC,UAIE,SAASjyC,IACd,KAAOgD,EAAKhG,QAAQ,CAClB,IAAI0G,EAAMV,EAAKkvC,MACf,GAAIxuC,KAAOsuC,EAGT,OAFAhyC,EAAK5C,MAAQsG,EACb1D,EAAK60B,MAAO,EACL70B,EAQX,OADAA,EAAK60B,MAAO,EACL70B,IAsCXzE,EAAQk0C,OAASA,EAMjB3B,EAAQhsC,UAAY,CAClBsI,YAAa0jC,EAEbqD,MAAO,SAASgB,GAcd,GAbAhtC,KAAKitC,KAAO,EACZjtC,KAAKnF,KAAO,EAGZmF,KAAKupC,KAAOvpC,KAAKwpC,MAAQvwC,EACzB+G,KAAK0vB,MAAO,EACZ1vB,KAAKmpC,SAAW,KAEhBnpC,KAAK8oC,OAAS,OACd9oC,KAAK+oC,IAAM9vC,EAEX+G,KAAK6rC,WAAWluC,QAAQmuC,IAEnBkB,EACH,IAAK,IAAI/oC,KAAQjE,KAEQ,MAAnBiE,EAAK4H,OAAO,IACZ47B,EAAOjpC,KAAKwB,KAAMiE,KACjBjD,OAAOiD,EAAKvK,MAAM,MACrBsG,KAAKiE,GAAQhL,IAMrBi0C,KAAM,WACJltC,KAAK0vB,MAAO,EAEZ,IACIyd,EADYntC,KAAK6rC,WAAW,GACLE,WAC3B,GAAwB,UAApBoB,EAAW7sC,KACb,MAAM6sC,EAAWpE,IAGnB,OAAO/oC,KAAKotC,MAGd3D,kBAAmB,SAAS4D,GAC1B,GAAIrtC,KAAK0vB,KACP,MAAM2d,EAGR,IAAIriB,EAAUhrB,KACd,SAASstC,EAAOC,EAAKC,GAYnB,OAXA7D,EAAOrpC,KAAO,QACdqpC,EAAOZ,IAAMsE,EACbriB,EAAQnwB,KAAO0yC,EAEXC,IAGFxiB,EAAQ8d,OAAS,OACjB9d,EAAQ+d,IAAM9vC,KAGNu0C,EAGZ,IAAK,IAAIz2C,EAAIiJ,KAAK6rC,WAAWh0C,OAAS,EAAGd,GAAK,IAAKA,EAAG,CACpD,IAAIy0C,EAAQxrC,KAAK6rC,WAAW90C,GACxB4yC,EAAS6B,EAAMO,WAEnB,GAAqB,SAAjBP,EAAMC,OAIR,OAAO6B,EAAO,OAGhB,GAAI9B,EAAMC,QAAUzrC,KAAKitC,KAAM,CAC7B,IAAIQ,EAAWhG,EAAOjpC,KAAKgtC,EAAO,YAC9BkC,EAAajG,EAAOjpC,KAAKgtC,EAAO,cAEpC,GAAIiC,GAAYC,EAAY,CAC1B,GAAI1tC,KAAKitC,KAAOzB,EAAME,SACpB,OAAO4B,EAAO9B,EAAME,UAAU,GACzB,GAAI1rC,KAAKitC,KAAOzB,EAAMG,WAC3B,OAAO2B,EAAO9B,EAAMG,iBAGjB,GAAI8B,GACT,GAAIztC,KAAKitC,KAAOzB,EAAME,SACpB,OAAO4B,EAAO9B,EAAME,UAAU,OAG3B,KAAIgC,EAMT,MAAM,IAAI7uC,MAAM,0CALhB,GAAImB,KAAKitC,KAAOzB,EAAMG,WACpB,OAAO2B,EAAO9B,EAAMG,gBAU9BjC,OAAQ,SAASppC,EAAMyoC,GACrB,IAAK,IAAIhyC,EAAIiJ,KAAK6rC,WAAWh0C,OAAS,EAAGd,GAAK,IAAKA,EAAG,CACpD,IAAIy0C,EAAQxrC,KAAK6rC,WAAW90C,GAC5B,GAAIy0C,EAAMC,QAAUzrC,KAAKitC,MACrBxF,EAAOjpC,KAAKgtC,EAAO,eACnBxrC,KAAKitC,KAAOzB,EAAMG,WAAY,CAChC,IAAIgC,EAAenC,EACnB,OAIAmC,IACU,UAATrtC,GACS,aAATA,IACDqtC,EAAalC,QAAU1C,GACvBA,GAAO4E,EAAahC,aAGtBgC,EAAe,MAGjB,IAAIhE,EAASgE,EAAeA,EAAa5B,WAAa,GAItD,OAHApC,EAAOrpC,KAAOA,EACdqpC,EAAOZ,IAAMA,EAET4E,GACF3tC,KAAK8oC,OAAS,OACd9oC,KAAKnF,KAAO8yC,EAAahC,WAClBrC,GAGFtpC,KAAK4tC,SAASjE,IAGvBiE,SAAU,SAASjE,EAAQiC,GACzB,GAAoB,UAAhBjC,EAAOrpC,KACT,MAAMqpC,EAAOZ,IAcf,MAXoB,UAAhBY,EAAOrpC,MACS,aAAhBqpC,EAAOrpC,KACTN,KAAKnF,KAAO8uC,EAAOZ,IACM,WAAhBY,EAAOrpC,MAChBN,KAAKotC,KAAOptC,KAAK+oC,IAAMY,EAAOZ,IAC9B/oC,KAAK8oC,OAAS,SACd9oC,KAAKnF,KAAO,OACa,WAAhB8uC,EAAOrpC,MAAqBsrC,IACrC5rC,KAAKnF,KAAO+wC,GAGPtC,GAGTuE,OAAQ,SAASlC,GACf,IAAK,IAAI50C,EAAIiJ,KAAK6rC,WAAWh0C,OAAS,EAAGd,GAAK,IAAKA,EAAG,CACpD,IAAIy0C,EAAQxrC,KAAK6rC,WAAW90C,GAC5B,GAAIy0C,EAAMG,aAAeA,EAGvB,OAFA3rC,KAAK4tC,SAASpC,EAAMO,WAAYP,EAAMI,UACtCE,EAAcN,GACPlC,IAKb,MAAS,SAASmC,GAChB,IAAK,IAAI10C,EAAIiJ,KAAK6rC,WAAWh0C,OAAS,EAAGd,GAAK,IAAKA,EAAG,CACpD,IAAIy0C,EAAQxrC,KAAK6rC,WAAW90C,GAC5B,GAAIy0C,EAAMC,SAAWA,EAAQ,CAC3B,IAAI9B,EAAS6B,EAAMO,WACnB,GAAoB,UAAhBpC,EAAOrpC,KAAkB,CAC3B,IAAIwtC,EAASnE,EAAOZ,IACpB+C,EAAcN,GAEhB,OAAOsC,GAMX,MAAM,IAAIjvC,MAAM,0BAGlBkvC,cAAe,SAAS9B,EAAUb,EAAYC,GAa5C,OAZArrC,KAAKmpC,SAAW,CACdlmC,SAAUqnC,EAAO2B,GACjBb,WAAYA,EACZC,QAASA,GAGS,SAAhBrrC,KAAK8oC,SAGP9oC,KAAK+oC,IAAM9vC,GAGNqwC,IAQJlzC,EA9sBM,CAqtBgBD,EAAOC,SAGtC,IACE43C,mBAAqBzG,EACrB,MAAO0G,GAWmB,kBAAfC,WACTA,WAAWF,mBAAqBzG,EAEhC4G,SAAS,IAAK,yBAAdA,CAAwC5G,oCCvuB/B,IAAIjxC,EAAEyJ,EAAEgE,EAAED,EAAE,GAAG,kBAAkBsqC,aAAa,oBAAoBA,YAAYx2B,IAAI,CAAC,IAAIhJ,EAAEw/B,YAAYh4C,EAAQ0d,aAAa,WAAW,OAAOlF,EAAEgJ,WAAW,CAAC,IAAI0U,EAAE3U,KAAKuM,EAAEoI,EAAE1U,MAAMxhB,EAAQ0d,aAAa,WAAW,OAAOwY,EAAE1U,MAAMsM,GAC3O,GAAG,qBAAqB7kB,QAAQ,oBAAoBgvC,eAAe,CAAC,IAAIlqB,EAAE,KAAKF,EAAE,KAAKF,EAAE,SAAFA,IAAa,GAAG,OAAOI,EAAE,IAAI,IAAI5tB,EAAEH,EAAQ0d,eAAeqQ,GAAE,EAAG5tB,GAAG4tB,EAAE,KAAK,MAAM3tB,GAAG,MAAMkvB,WAAW3B,EAAE,GAAGvtB,IAAKF,EAAE,SAASC,GAAG,OAAO4tB,EAAEuB,WAAWpvB,EAAE,EAAEC,IAAI4tB,EAAE5tB,EAAEmvB,WAAW3B,EAAE,KAAKhkB,EAAE,SAASxJ,EAAEC,GAAGytB,EAAEyB,WAAWnvB,EAAEC,IAAIuN,EAAE,WAAW6hB,aAAa3B,IAAI7tB,EAAQ8xB,qBAAqB,WAAW,OAAM,GAAIpkB,EAAE1N,EAAQk4C,wBAAwB,iBAAiB,CAAC,IAAIj3C,EAAEgI,OAAOqmB,WAAWjuB,EAAE4H,OAAOumB,aAAa,GAAG,qBAAqBwU,QAAQ,CAAC,IAAIpW,EAC7f3kB,OAAOkvC,qBAAqB,oBAAoBlvC,OAAOmvC,uBAAuBpU,QAAQC,MAAM,sJAAsJ,oBAAoBrW,GAAGoW,QAAQC,MAAM,qJAAqJ,IAAIhO,GAAE,EAAGzsB,EAAE,KAAK2sB,GAAG,EAAE9rB,EAAE,EAAEqC,EAAE,EAAE1M,EAAQ8xB,qBAAqB,WAAW,OAAO9xB,EAAQ0d,gBAChgBhR,GAAGgB,EAAE,aAAa1N,EAAQk4C,wBAAwB,SAAS/3C,GAAG,EAAEA,GAAG,IAAIA,EAAE6jC,QAAQC,MAAM,mHAAmH55B,EAAE,EAAElK,EAAEW,KAAKu3C,MAAM,IAAIl4C,GAAG,GAAG,IAAIwd,EAAE,IAAIs6B,eAAejrB,EAAErP,EAAE26B,MAAM36B,EAAE46B,MAAMC,UAAU,WAAW,GAAG,OAAOhvC,EAAE,CAAC,IAAIrJ,EAAEH,EAAQ0d,eAAehR,EAAEvM,EAAEkK,EAAE,IAAIb,GAAE,EAAGrJ,GAAG6sB,EAAEyrB,YAAY,OAAOxiB,GAAE,EAAGzsB,EAAE,MAAM,MAAMpJ,GAAG,MAAM4sB,EAAEyrB,YAAY,MAAMr4C,QAAS61B,GAAE,GAAI/1B,EAAE,SAASC,GAAGqJ,EAAErJ,EAAE81B,IAAIA,GAAE,EAAGjJ,EAAEyrB,YAAY,QAAQ9uC,EAAE,SAASxJ,EAAEC,GAAG+1B,EACtfl1B,GAAE,WAAWd,EAAEH,EAAQ0d,kBAAiBtd,IAAIuN,EAAE,WAAWtM,EAAE80B,GAAGA,GAAG,GAAG,SAAS9F,EAAElwB,EAAEC,GAAG,IAAI0B,EAAE3B,EAAEsB,OAAOtB,EAAE+D,KAAK9D,GAAGD,EAAE,OAAO,CAAC,IAAIsJ,EAAE3H,EAAE,IAAI,EAAE4H,EAAEvJ,EAAEsJ,GAAG,UAAG,IAASC,GAAG,EAAE4mB,EAAE5mB,EAAEtJ,IAA0B,MAAMD,EAA7BA,EAAEsJ,GAAGrJ,EAAED,EAAE2B,GAAG4H,EAAE5H,EAAE2H,GAAgB,SAAS6kB,EAAEnuB,GAAU,YAAO,KAAdA,EAAEA,EAAE,IAAqB,KAAKA,EAChP,SAASouB,EAAEpuB,GAAG,IAAIC,EAAED,EAAE,GAAG,QAAG,IAASC,EAAE,CAAC,IAAI0B,EAAE3B,EAAEw2C,MAAM,GAAG70C,IAAI1B,EAAE,CAACD,EAAE,GAAG2B,EAAE3B,EAAE,IAAI,IAAIsJ,EAAE,EAAEC,EAAEvJ,EAAEsB,OAAOgI,EAAEC,GAAG,CAAC,IAAInB,EAAE,GAAGkB,EAAE,GAAG,EAAEtC,EAAEhH,EAAEoI,GAAGylB,EAAEzlB,EAAE,EAAErH,EAAEf,EAAE6tB,GAAG,QAAG,IAAS7mB,GAAG,EAAEmpB,EAAEnpB,EAAErF,QAAG,IAASZ,GAAG,EAAEovB,EAAEpvB,EAAEiG,IAAIhH,EAAEsJ,GAAGvI,EAAEf,EAAE6tB,GAAGlsB,EAAE2H,EAAEukB,IAAI7tB,EAAEsJ,GAAGtC,EAAEhH,EAAEoI,GAAGzG,EAAE2H,EAAElB,OAAQ,WAAG,IAASrH,GAAG,EAAEovB,EAAEpvB,EAAEY,IAA0B,MAAM3B,EAA7BA,EAAEsJ,GAAGvI,EAAEf,EAAE6tB,GAAGlsB,EAAE2H,EAAEukB,IAAgB,OAAO5tB,EAAE,OAAO,KAAK,SAASkwB,EAAEnwB,EAAEC,GAAG,IAAI0B,EAAE3B,EAAEu4C,UAAUt4C,EAAEs4C,UAAU,OAAO,IAAI52C,EAAEA,EAAE3B,EAAEiD,GAAGhD,EAAEgD,GAAG,IAAIqrB,EAAE,GAAG+B,EAAE,GAAGvtB,EAAE,EAAEiwB,EAAE,KAAKkH,EAAE,EAAE5L,GAAE,EAAGkN,GAAE,EAAGC,GAAE,EACja,SAASC,EAAEz7B,GAAG,IAAI,IAAIC,EAAEkuB,EAAEkC,GAAG,OAAOpwB,GAAG,CAAC,GAAG,OAAOA,EAAEy1B,SAAStH,EAAEiC,OAAQ,MAAGpwB,EAAEu4C,WAAWx4C,GAAgD,MAA9CouB,EAAEiC,GAAGpwB,EAAEs4C,UAAUt4C,EAAEw4C,eAAevoB,EAAE5B,EAAEruB,GAAcA,EAAEkuB,EAAEkC,IAAI,SAASgN,EAAEr9B,GAAa,GAAVw7B,GAAE,EAAGC,EAAEz7B,IAAOu7B,EAAE,GAAG,OAAOpN,EAAEG,GAAGiN,GAAE,EAAGx7B,EAAEojC,OAAO,CAAC,IAAIljC,EAAEkuB,EAAEkC,GAAG,OAAOpwB,GAAGuJ,EAAE6zB,EAAEp9B,EAAEu4C,UAAUx4C,IACtP,SAASmjC,EAAEnjC,EAAEC,GAAGs7B,GAAE,EAAGC,IAAIA,GAAE,EAAGhuB,KAAK6gB,GAAE,EAAG,IAAI1sB,EAAEs4B,EAAE,IAAS,IAALwB,EAAEx7B,GAAO8yB,EAAE5E,EAAEG,GAAG,OAAOyE,MAAMA,EAAE0lB,eAAex4C,IAAID,IAAIH,EAAQ8xB,yBAAyB,CAAC,IAAIroB,EAAEypB,EAAE2C,SAAS,GAAG,oBAAoBpsB,EAAE,CAACypB,EAAE2C,SAAS,KAAKuE,EAAElH,EAAE2lB,cAAc,IAAInvC,EAAED,EAAEypB,EAAE0lB,gBAAgBx4C,GAAGA,EAAEJ,EAAQ0d,eAAe,oBAAoBhU,EAAEwpB,EAAE2C,SAASnsB,EAAEwpB,IAAI5E,EAAEG,IAAIF,EAAEE,GAAGmN,EAAEx7B,QAAQmuB,EAAEE,GAAGyE,EAAE5E,EAAEG,GAAG,GAAG,OAAOyE,EAAE,IAAI3qB,GAAE,MAAO,CAAC,IAAIpB,EAAEmnB,EAAEkC,GAAG,OAAOrpB,GAAGwC,EAAE6zB,EAAEr2B,EAAEwxC,UAAUv4C,GAAGmI,GAAE,EAAG,OAAOA,EAArX,QAA+X2qB,EAAE,KAAKkH,EAAEt4B,EAAE0sB,GAAE,GAAI,IAAIiV,EAAE/1B,EAAE1N,EAAQ2yB,sBAAsB,EACte3yB,EAAQqyB,2BAA2B,EAAEryB,EAAQyyB,qBAAqB,EAAEzyB,EAAQoc,wBAAwB,EAAEpc,EAAQ84C,mBAAmB,KAAK94C,EAAQif,8BAA8B,EAAEjf,EAAQ4xB,wBAAwB,SAASzxB,GAAGA,EAAE01B,SAAS,MAAM71B,EAAQ+4C,2BAA2B,WAAWrd,GAAGlN,IAAIkN,GAAE,EAAGx7B,EAAEojC,KAAKtjC,EAAQmyB,iCAAiC,WAAW,OAAOiI,GAAGp6B,EAAQg5C,8BAA8B,WAAW,OAAO1qB,EAAEG,IACpazuB,EAAQi5C,cAAc,SAAS94C,GAAG,OAAOi6B,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAIh6B,EAAE,EAAE,MAAM,QAAQA,EAAEg6B,EAAE,IAAIt4B,EAAEs4B,EAAEA,EAAEh6B,EAAE,IAAI,OAAOD,IAAX,QAAuBi6B,EAAEt4B,IAAI9B,EAAQk5C,wBAAwB,aAAal5C,EAAQgyB,sBAAsByR,EAAEzjC,EAAQyb,yBAAyB,SAAStb,EAAEC,GAAG,OAAOD,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQA,EAAE,EAAE,IAAI2B,EAAEs4B,EAAEA,EAAEj6B,EAAE,IAAI,OAAOC,IAAX,QAAuBg6B,EAAEt4B,IACpW9B,EAAQmc,0BAA0B,SAAShc,EAAEC,EAAE0B,GAAG,IAAI2H,EAAEzJ,EAAQ0d,eAA8F,OAA/E,kBAAkB5b,GAAG,OAAOA,EAAaA,EAAE,kBAAZA,EAAEA,EAAEq3C,QAA6B,EAAEr3C,EAAE2H,EAAE3H,EAAE2H,EAAG3H,EAAE2H,EAAStJ,GAAG,KAAK,EAAE,IAAIuJ,GAAG,EAAE,MAAM,KAAK,EAAEA,EAAE,IAAI,MAAM,KAAK,EAAEA,EAAE,WAAW,MAAM,KAAK,EAAEA,EAAE,IAAI,MAAM,QAAQA,EAAE,IAA2M,OAAjMvJ,EAAE,CAACiD,GAAGH,IAAI4yB,SAASz1B,EAAEy4C,cAAc14C,EAAEw4C,UAAU72C,EAAE82C,eAAvDlvC,EAAE5H,EAAE4H,EAAoEgvC,WAAW,GAAG52C,EAAE2H,GAAGtJ,EAAEu4C,UAAU52C,EAAEuuB,EAAEG,EAAErwB,GAAG,OAAOmuB,EAAEG,IAAItuB,IAAImuB,EAAEkC,KAAKmL,EAAEhuB,IAAIguB,GAAE,EAAGhyB,EAAE6zB,EAAE17B,EAAE2H,MAAMtJ,EAAEu4C,UAAUhvC,EAAE2mB,EAAE5B,EAAEtuB,GAAGu7B,GAAGlN,IAAIkN,GAAE,EAAGx7B,EAAEojC,KAAYnjC,GAC1dH,EAAQo5C,sBAAsB,SAASj5C,GAAG,IAAIC,EAAEg6B,EAAE,OAAO,WAAW,IAAIt4B,EAAEs4B,EAAEA,EAAEh6B,EAAE,IAAI,OAAOD,EAAEsY,MAAM7O,KAAK1B,WAAxB,QAA2CkyB,EAAEt4B,uCChB3H/B,EAAOC,QAAU,EAAjBD,OCFEs5C,EAA2B,GAG/B,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqB12C,IAAjB22C,EACH,OAAOA,EAAax5C,QAGrB,IAAID,EAASs5C,EAAyBE,GAAY,CAGjDv5C,QAAS,IAOV,OAHAy5C,EAAoBF,GAAUnxC,KAAKrI,EAAOC,QAASD,EAAQA,EAAOC,QAASs5C,GAGpEv5C,EAAOC,uDCrBA,SAAS05C,EAAkBC,EAAKC,IAClC,MAAPA,GAAeA,EAAMD,EAAIl4C,UAAQm4C,EAAMD,EAAIl4C,QAE/C,IAAK,IAAId,EAAI,EAAGk5C,EAAO,IAAI14C,MAAMy4C,GAAMj5C,EAAIi5C,EAAKj5C,IAC9Ck5C,EAAKl5C,GAAKg5C,EAAIh5C,GAGhB,OAAOk5C,ECNM,SAASC,EAA4BC,EAAGC,GACrD,GAAKD,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAO,EAAiBA,EAAGC,GACtD,IAAI7yC,EAAId,OAAOE,UAAUwL,SAAS3J,KAAK2xC,GAAGz2C,MAAM,GAAI,GAEpD,MADU,WAAN6D,GAAkB4yC,EAAElrC,cAAa1H,EAAI4yC,EAAElrC,YAAYhB,MAC7C,QAAN1G,GAAqB,QAANA,EAAoBhG,MAAM2G,KAAKiyC,GACxC,cAAN5yC,GAAqB,2CAA2C2D,KAAK3D,GAAW,EAAiB4yC,EAAGC,QAAxG,GCHa,SAASC,EAAmBN,GACzC,OCJa,SAA4BA,GACzC,GAAIx4C,MAAMgQ,QAAQwoC,GAAM,OAAO,EAAiBA,GDGzC,CAAkBA,IELZ,SAA0BnD,GACvC,GAAsB,qBAAXhqC,QAAmD,MAAzBgqC,EAAKhqC,OAAOK,WAA2C,MAAtB2pC,EAAK,cAAuB,OAAOr1C,MAAM2G,KAAK0uC,GFInF,CAAgBmD,IAAQ,EAA2BA,IGLvE,WACb,MAAM,IAAI/yC,UAAU,wIHIwE,GID/E,SAASszC,EAAeP,EAAKh5C,GAC1C,OCLa,SAAyBg5C,GACtC,GAAIx4C,MAAMgQ,QAAQwoC,GAAM,OAAOA,EDIxB,CAAeA,IELT,SAA+BA,EAAKh5C,GACjD,IAAIw5C,EAAY,MAAPR,EAAc,KAAyB,qBAAXntC,QAA0BmtC,EAAIntC,OAAOK,WAAa8sC,EAAI,cAE3F,GAAU,MAANQ,EAAJ,CACA,IAIIC,EAAIC,EAJJC,EAAO,GACPC,GAAK,EACLC,GAAK,EAIT,IACE,IAAKL,EAAKA,EAAG/xC,KAAKuxC,KAAQY,GAAMH,EAAKD,EAAG11C,QAAQ60B,QAC9CghB,EAAKp2C,KAAKk2C,EAAGv4C,QAETlB,GAAK25C,EAAK74C,SAAWd,GAH4B45C,GAAK,IAK5D,MAAO7yC,GACP8yC,GAAK,EACLH,EAAK3yC,EACL,QACA,IACO6yC,GAAsB,MAAhBJ,EAAW,QAAWA,EAAW,SAC5C,QACA,GAAIK,EAAI,MAAMH,GAIlB,OAAOC,GFtBuB,CAAqBX,EAAKh5C,IAAM,EAA2Bg5C,EAAKh5C,IGLjF,WACb,MAAM,IAAIiG,UAAU,6IHIgF,GILvF,SAAS6zC,EAAgB5I,EAAK1pC,EAAKtG,GAYhD,OAXIsG,KAAO0pC,EACTxrC,OAAOiH,eAAeukC,EAAK1pC,EAAK,CAC9BtG,MAAOA,EACPmN,YAAY,EACZD,cAAc,EACd+iC,UAAU,IAGZD,EAAI1pC,GAAOtG,EAGNgwC,ECZT,SAAS6I,KAEM,WAASC,GACtB,OAAmB,MAAZA,EAAmBD,EAAO,WAC/B,OAAO9wC,KAAKgxC,cAAcD,ICEf,SAASE,EAAM55C,GAC5B,OAAY,MAALA,EAAY,GAAKE,MAAMgQ,QAAQlQ,GAAKA,EAAIE,MAAM2G,KAAK7G,GCP5D,SAAS65C,IACP,MAAO,GAGM,WAASH,GACtB,OAAmB,MAAZA,EAAmBG,EAAQ,WAChC,OAAOlxC,KAAK+iC,iBAAiBgO,ICNlB,WAASA,GACtB,OAAO,WACL,OAAO/wC,KAAKmxC,QAAQJ,IAIjB,SAASK,EAAaL,GAC3B,OAAO,SAAShwB,GACd,OAAOA,EAAKowB,QAAQJ,ICNxB,IAAIM,EAAO95C,MAAMoF,UAAU00C,KAQ3B,SAASC,IACP,OAAOtxC,KAAKuxC,kBCTd,IAAIC,EAASj6C,MAAMoF,UAAU60C,OAE7B,SAAS5qC,IACP,OAAOrP,MAAM2G,KAAK8B,KAAK4G,UCLV,WAAS6qC,GACtB,OAAO,IAAIl6C,MAAMk6C,EAAO55C,QCMnB,SAAS65C,EAAUC,EAAQC,GAChC5xC,KAAK0G,cAAgBirC,EAAOjrC,cAC5B1G,KAAKgI,aAAe2pC,EAAO3pC,aAC3BhI,KAAK6xC,MAAQ,KACb7xC,KAAK8xC,QAAUH,EACf3xC,KAAK+xC,SAAWH,ECZH,WAASv6C,GACtB,OAAO,WACL,OAAOA,GCEX,SAAS26C,EAAUL,EAAQM,EAAOC,EAAOT,EAAQU,EAAMh4B,GASrD,IARA,IACI4G,EADAhqB,EAAI,EAEJq7C,EAAcH,EAAMp6C,OACpBw6C,EAAal4B,EAAKtiB,OAKfd,EAAIs7C,IAAct7C,GACnBgqB,EAAOkxB,EAAMl7C,KACfgqB,EAAKgxB,SAAW53B,EAAKpjB,GACrB06C,EAAO16C,GAAKgqB,GAEZmxB,EAAMn7C,GAAK,IAAI26C,EAAUC,EAAQx3B,EAAKpjB,IAK1C,KAAOA,EAAIq7C,IAAer7C,GACpBgqB,EAAOkxB,EAAMl7C,MACfo7C,EAAKp7C,GAAKgqB,GAKhB,SAASuxB,EAAQX,EAAQM,EAAOC,EAAOT,EAAQU,EAAMh4B,EAAM5b,GACzD,IAAIxH,EACAgqB,EAKAwxB,EAJAC,EAAiB,IAAI5hC,IACrBwhC,EAAcH,EAAMp6C,OACpBw6C,EAAal4B,EAAKtiB,OAClB46C,EAAY,IAAIl7C,MAAM66C,GAK1B,IAAKr7C,EAAI,EAAGA,EAAIq7C,IAAer7C,GACzBgqB,EAAOkxB,EAAMl7C,MACf07C,EAAU17C,GAAKw7C,EAAWh0C,EAAIC,KAAKuiB,EAAMA,EAAKgxB,SAAUh7C,EAAGk7C,GAAS,GAChEO,EAAelvB,IAAIivB,GACrBJ,EAAKp7C,GAAKgqB,EAEVyxB,EAAe7uC,IAAI4uC,EAAUxxB,IAQnC,IAAKhqB,EAAI,EAAGA,EAAIs7C,IAAct7C,EAC5Bw7C,EAAWh0C,EAAIC,KAAKmzC,EAAQx3B,EAAKpjB,GAAIA,EAAGojB,GAAQ,IAC5C4G,EAAOyxB,EAAettC,IAAIqtC,KAC5Bd,EAAO16C,GAAKgqB,EACZA,EAAKgxB,SAAW53B,EAAKpjB,GACrBy7C,EAAejhC,OAAOghC,IAEtBL,EAAMn7C,GAAK,IAAI26C,EAAUC,EAAQx3B,EAAKpjB,IAK1C,IAAKA,EAAI,EAAGA,EAAIq7C,IAAer7C,GACxBgqB,EAAOkxB,EAAMl7C,KAAQy7C,EAAettC,IAAIutC,EAAU17C,MAAQgqB,IAC7DoxB,EAAKp7C,GAAKgqB,GAKhB,SAAS6wB,EAAM7wB,GACb,OAAOA,EAAKgxB,SAgDd,SAASW,EAAUv4B,GACjB,MAAuB,kBAATA,GAAqB,WAAYA,EAC3CA,EACA5iB,MAAM2G,KAAKic,GCzGjB,SAASw4B,EAAUp8C,EAAGC,GACpB,OAAOD,EAAIC,GAAK,EAAID,EAAIC,EAAI,EAAID,GAAKC,EAAI,EAAIo8C,ICrBhC,SAAS,EAA2BzC,EAAG0C,GACpD,IAAIC,EAAuB,qBAAXlwC,QAA0ButC,EAAEvtC,OAAOK,WAAaktC,EAAE,cAElE,IAAK2C,EAAI,CACP,GAAIv7C,MAAMgQ,QAAQ4oC,KAAO2C,EAAK,EAA2B3C,KAAO0C,GAAkB1C,GAAyB,kBAAbA,EAAEt4C,OAAqB,CAC/Gi7C,IAAI3C,EAAI2C,GACZ,IAAI/7C,EAAI,EAEJgd,EAAI,aAER,MAAO,CACL1V,EAAG0V,EACHxW,EAAG,WACD,OAAIxG,GAAKo5C,EAAEt4C,OAAe,CACxB63B,MAAM,GAED,CACLA,MAAM,EACNz3B,MAAOk4C,EAAEp5C,OAGb+I,EAAG,SAAW2wC,GACZ,MAAMA,GAERn6C,EAAGyd,GAIP,MAAM,IAAI/W,UAAU,yIAGtB,IAEIc,EAFAi1C,GAAmB,EACnBC,GAAS,EAEb,MAAO,CACL30C,EAAG,WACDy0C,EAAKA,EAAGt0C,KAAK2xC,IAEf5yC,EAAG,WACD,IAAI01C,EAAOH,EAAGj4C,OAEd,OADAk4C,EAAmBE,EAAKvjB,KACjBujB,GAETnzC,EAAG,SAAWozC,GACZF,GAAS,EACTl1C,EAAMo1C,GAER58C,EAAG,WACD,IACOy8C,GAAoC,MAAhBD,EAAW,QAAWA,EAAW,SAC1D,QACA,GAAIE,EAAQ,MAAMl1C,KJrC1B4zC,EAAU/0C,UAAY,CACpBsI,YAAaysC,EACbppC,YAAa,SAASwH,GAAS,OAAO9P,KAAK8xC,QAAQzV,aAAavsB,EAAO9P,KAAK6xC,QAC5ExV,aAAc,SAASvsB,EAAOjV,GAAQ,OAAOmF,KAAK8xC,QAAQzV,aAAavsB,EAAOjV,IAC9Em2C,cAAe,SAASD,GAAY,OAAO/wC,KAAK8xC,QAAQd,cAAcD,IACtEhO,iBAAkB,SAASgO,GAAY,OAAO/wC,KAAK8xC,QAAQ/O,iBAAiBgO,KKpBvE,IAAIoC,EAAQ,+BAEnB,GACEC,IAAK,6BACLD,MAAOA,EACPE,MAAO,+BACPC,IAAK,uCACLC,MAAO,iCCLM,WAAStvC,GACtB,IAAIuvC,EAASvvC,GAAQ,GAAIlN,EAAIy8C,EAAO7nC,QAAQ,KAE5C,OADI5U,GAAK,GAAqC,WAA/By8C,EAASvvC,EAAKvK,MAAM,EAAG3C,MAAiBkN,EAAOA,EAAKvK,MAAM3C,EAAI,IACtE08C,EAAW/2C,eAAe82C,GAAU,CAACE,MAAOD,EAAWD,GAASG,MAAO1vC,GAAQA,ECHxF,SAAS2vC,EAAW3vC,GAClB,OAAO,WACLjE,KAAKoB,gBAAgB6C,IAIzB,SAAS4vC,EAAaC,GACpB,OAAO,WACL9zC,KAAK+zC,kBAAkBD,EAASJ,MAAOI,EAASH,QAIpD,SAASK,EAAa/vC,EAAMhM,GAC1B,OAAO,WACL+H,KAAKqB,aAAa4C,EAAMhM,IAI5B,SAASg8C,EAAeH,EAAU77C,GAChC,OAAO,WACL+H,KAAKsB,eAAewyC,EAASJ,MAAOI,EAASH,MAAO17C,IAIxD,SAASi8C,EAAajwC,EAAMhM,GAC1B,OAAO,WACL,IAAImsB,EAAInsB,EAAM4W,MAAM7O,KAAM1B,WACjB,MAAL8lB,EAAWpkB,KAAKoB,gBAAgB6C,GAC/BjE,KAAKqB,aAAa4C,EAAMmgB,IAIjC,SAAS+vB,EAAeL,EAAU77C,GAChC,OAAO,WACL,IAAImsB,EAAInsB,EAAM4W,MAAM7O,KAAM1B,WACjB,MAAL8lB,EAAWpkB,KAAK+zC,kBAAkBD,EAASJ,MAAOI,EAASH,OAC1D3zC,KAAKsB,eAAewyC,EAASJ,MAAOI,EAASH,MAAOvvB,ICtC9C,WAASrD,GACtB,OAAQA,EAAKra,eAAiBqa,EAAKra,cAAc4b,aACzCvB,EAAKzhB,UAAYyhB,GAClBA,EAAKuB,YCDd,SAAS8xB,EAAYnwC,GACnB,OAAO,WACLjE,KAAK0L,MAAM2oC,eAAepwC,IAI9B,SAASqwC,EAAcrwC,EAAMhM,EAAO6Z,GAClC,OAAO,WACL9R,KAAK0L,MAAME,YAAY3H,EAAMhM,EAAO6Z,IAIxC,SAASyiC,EAActwC,EAAMhM,EAAO6Z,GAClC,OAAO,WACL,IAAIsS,EAAInsB,EAAM4W,MAAM7O,KAAM1B,WACjB,MAAL8lB,EAAWpkB,KAAK0L,MAAM2oC,eAAepwC,GACpCjE,KAAK0L,MAAME,YAAY3H,EAAMmgB,EAAGtS,IAalC,SAAS0iC,EAAWzzB,EAAM9c,GAC/B,OAAO8c,EAAKrV,MAAM+oC,iBAAiBxwC,IAC5Bqe,EAAYvB,GAAM2zB,iBAAiB3zB,EAAM,MAAM0zB,iBAAiBxwC,GCjCzE,SAAS0wC,EAAe1wC,GACtB,OAAO,kBACEjE,KAAKiE,IAIhB,SAAS2wC,EAAiB3wC,EAAMhM,GAC9B,OAAO,WACL+H,KAAKiE,GAAQhM,GAIjB,SAAS48C,EAAiB5wC,EAAMhM,GAC9B,OAAO,WACL,IAAImsB,EAAInsB,EAAM4W,MAAM7O,KAAM1B,WACjB,MAAL8lB,SAAkBpkB,KAAKiE,GACtBjE,KAAKiE,GAAQmgB,GChBtB,SAAS0wB,EAAWC,GAClB,OAAOA,EAAO1xC,OAAO3F,MAAM,SAG7B,SAASs3C,EAAUj0B,GACjB,OAAOA,EAAKi0B,WAAa,IAAIC,EAAUl0B,GAGzC,SAASk0B,EAAUl0B,GACjB/gB,KAAKk1C,MAAQn0B,EACb/gB,KAAKm1C,OAASL,EAAW/zB,EAAKq0B,aAAa,UAAY,IAuBzD,SAASC,EAAWt0B,EAAMu0B,GAExB,IADA,IAAIC,EAAOP,EAAUj0B,GAAOhqB,GAAK,EAAGwG,EAAI+3C,EAAMz9C,SACrCd,EAAIwG,GAAGg4C,EAAKp2C,IAAIm2C,EAAMv+C,IAGjC,SAASy+C,EAAcz0B,EAAMu0B,GAE3B,IADA,IAAIC,EAAOP,EAAUj0B,GAAOhqB,GAAK,EAAGwG,EAAI+3C,EAAMz9C,SACrCd,EAAIwG,GAAGg4C,EAAKE,OAAOH,EAAMv+C,IAGpC,SAAS2+C,EAAYJ,GACnB,OAAO,WACLD,EAAWr1C,KAAMs1C,IAIrB,SAASK,EAAaL,GACpB,OAAO,WACLE,EAAcx1C,KAAMs1C,IAIxB,SAASM,EAAgBN,EAAOr9C,GAC9B,OAAO,YACJA,EAAM4W,MAAM7O,KAAM1B,WAAa+2C,EAAaG,GAAex1C,KAAMs1C,ICzDtE,SAASO,IACP71C,KAAK0H,YAAc,GAGrB,SAASouC,GAAa79C,GACpB,OAAO,WACL+H,KAAK0H,YAAczP,GAIvB,SAAS89C,GAAa99C,GACpB,OAAO,WACL,IAAImsB,EAAInsB,EAAM4W,MAAM7O,KAAM1B,WAC1B0B,KAAK0H,YAAmB,MAAL0c,EAAY,GAAKA,GCbxC,SAAS4xB,KACPh2C,KAAKiI,UAAY,GAGnB,SAASguC,GAAah+C,GACpB,OAAO,WACL+H,KAAKiI,UAAYhQ,GAIrB,SAASi+C,GAAaj+C,GACpB,OAAO,WACL,IAAImsB,EAAInsB,EAAM4W,MAAM7O,KAAM1B,WAC1B0B,KAAKiI,UAAiB,MAALmc,EAAY,GAAKA,GCbtC,SAAS+xB,KACHn2C,KAAKihB,aAAajhB,KAAKqN,WAAW/E,YAAYtI,MCDpD,SAASo2C,KACHp2C,KAAKgmB,iBAAiBhmB,KAAKqN,WAAWgvB,aAAar8B,KAAMA,KAAKqN,WAAWjF,YCE/E,SAASiuC,GAAepyC,GACtB,OAAO,WACL,IAAI3E,EAAWU,KAAK0G,cAChB4vC,EAAMt2C,KAAKgI,aACf,OAAOsuC,IAAQnD,GAAS7zC,EAAS6wB,gBAAgBnoB,eAAiBmrC,EAC5D7zC,EAASC,cAAc0E,GACvB3E,EAASk6B,gBAAgB8c,EAAKryC,IAIxC,SAASsyC,GAAazC,GACpB,OAAO,WACL,OAAO9zC,KAAK0G,cAAc8yB,gBAAgBsa,EAASJ,MAAOI,EAASH,QAIxD,YAAS1vC,GACtB,IAAI6vC,EAAW0C,EAAUvyC,GACzB,OAAQ6vC,EAASH,MACX4C,GACAF,IAAgBvC,GCpBxB,SAAS2C,KACP,OAAO,KCJT,SAAShB,KACP,IAAI9D,EAAS3xC,KAAKqN,WACdskC,GAAQA,EAAOtpC,YAAYrI,MCFjC,SAAS02C,KACP,IAAIC,EAAQ32C,KAAK42C,WAAU,GAAQjF,EAAS3xC,KAAKqN,WACjD,OAAOskC,EAASA,EAAOtV,aAAasa,EAAO32C,KAAKihB,aAAe01B,EAGjE,SAASE,KACP,IAAIF,EAAQ32C,KAAK42C,WAAU,GAAOjF,EAAS3xC,KAAKqN,WAChD,OAAOskC,EAASA,EAAOtV,aAAasa,EAAO32C,KAAKihB,aAAe01B,ECDjE,SAASG,GAAeC,GACtB,OAAOA,EAAU1zC,OAAO3F,MAAM,SAAShG,KAAI,SAASysB,GAClD,IAAIlgB,EAAO,GAAIlN,EAAIotB,EAAExY,QAAQ,KAE7B,OADI5U,GAAK,IAAGkN,EAAOkgB,EAAEzqB,MAAM3C,EAAI,GAAIotB,EAAIA,EAAEzqB,MAAM,EAAG3C,IAC3C,CAACuJ,KAAM6jB,EAAGlgB,KAAMA,MAI3B,SAAS+yC,GAASC,GAChB,OAAO,WACL,IAAIC,EAAKl3C,KAAKm3C,KACd,GAAKD,EAAL,CACA,IAAK,IAAkC/G,EAA9B33C,EAAI,EAAGzB,GAAK,EAAG4H,EAAIu4C,EAAGr/C,OAAWW,EAAImG,IAAKnG,EAC7C23C,EAAI+G,EAAG1+C,GAAMy+C,EAAS32C,MAAQ6vC,EAAE7vC,OAAS22C,EAAS32C,MAAS6vC,EAAElsC,OAASgzC,EAAShzC,KAGjFizC,IAAKngD,GAAKo5C,EAFVnwC,KAAK0O,oBAAoByhC,EAAE7vC,KAAM6vC,EAAEhtB,SAAUgtB,EAAEnpC,WAK7CjQ,EAAGmgD,EAAGr/C,OAASd,SACTiJ,KAAKm3C,OAIrB,SAASC,GAAMH,EAAUh/C,EAAO+O,GAC9B,OAAO,WACL,IAAoBmpC,EAAhB+G,EAAKl3C,KAAKm3C,KAASh0B,EAhC3B,SAAyBA,GACvB,OAAO,SAAS/D,GACd+D,EAAS3kB,KAAKwB,KAAMof,EAAOpf,KAAK+xC,WA8BEsF,CAAgBp/C,GAClD,GAAIi/C,EAAI,IAAK,IAAI1+C,EAAI,EAAGmG,EAAIu4C,EAAGr/C,OAAQW,EAAImG,IAAKnG,EAC9C,IAAK23C,EAAI+G,EAAG1+C,IAAI8H,OAAS22C,EAAS32C,MAAQ6vC,EAAElsC,OAASgzC,EAAShzC,KAI5D,OAHAjE,KAAK0O,oBAAoByhC,EAAE7vC,KAAM6vC,EAAEhtB,SAAUgtB,EAAEnpC,SAC/ChH,KAAKyO,iBAAiB0hC,EAAE7vC,KAAM6vC,EAAEhtB,SAAWA,EAAUgtB,EAAEnpC,QAAUA,QACjEmpC,EAAEl4C,MAAQA,GAId+H,KAAKyO,iBAAiBwoC,EAAS32C,KAAM6iB,EAAUnc,GAC/CmpC,EAAI,CAAC7vC,KAAM22C,EAAS32C,KAAM2D,KAAMgzC,EAAShzC,KAAMhM,MAAOA,EAAOkrB,SAAUA,EAAUnc,QAASA,GACrFkwC,EACAA,EAAG58C,KAAK61C,GADJnwC,KAAKm3C,KAAO,CAAChH,ICzC1B,SAASmH,GAAcv2B,EAAMzgB,EAAMzE,GACjC,IAAIwD,EAASijB,EAAYvB,GACrB3B,EAAQ/f,EAAOk4C,YAEE,oBAAVn4B,EACTA,EAAQ,IAAIA,EAAM9e,EAAMzE,IAExBujB,EAAQ/f,EAAOC,SAASk4C,YAAY,SAChC37C,GAAQujB,EAAMq4B,UAAUn3C,EAAMzE,EAAO2b,QAAS3b,EAAO4b,YAAa2H,EAAMnH,OAASpc,EAAOoc,QACvFmH,EAAMq4B,UAAUn3C,GAAM,GAAO,IAGpCygB,EAAKu2B,cAAcl4B,GAGrB,SAASs4B,GAAiBp3C,EAAMzE,GAC9B,OAAO,WACL,OAAOy7C,GAAct3C,KAAMM,EAAMzE,IAIrC,SAAS87C,GAAiBr3C,EAAMzE,GAC9B,OAAO,WACL,OAAOy7C,GAAct3C,KAAMM,EAAMzE,EAAOgT,MAAM7O,KAAM1B,aVZxD22C,EAAUt4C,UAAY,CACpBwC,IAAK,SAAS8E,GACJjE,KAAKm1C,OAAOxpC,QAAQ1H,GACpB,IACNjE,KAAKm1C,OAAO76C,KAAK2J,GACjBjE,KAAKk1C,MAAM7zC,aAAa,QAASrB,KAAKm1C,OAAO33C,KAAK,QAGtDi4C,OAAQ,SAASxxC,GACf,IAAIlN,EAAIiJ,KAAKm1C,OAAOxpC,QAAQ1H,GACxBlN,GAAK,IACPiJ,KAAKm1C,OAAOyC,OAAO7gD,EAAG,GACtBiJ,KAAKk1C,MAAM7zC,aAAa,QAASrB,KAAKm1C,OAAO33C,KAAK,QAGtD2jB,SAAU,SAASld,GACjB,OAAOjE,KAAKm1C,OAAOxpC,QAAQ1H,IAAS,iCW7BzB,gGACJ4zC,EAAS73C,KAAK83C,QAASt/C,EAAI,EAAGmG,EAAIk5C,EAAOhgD,OADrC,YAC6CW,EAAImG,GADjD,iBAEFszC,EAAQ4F,EAAOr/C,GAAIzB,EAAI,EAAGwG,EAAI00C,EAAMp6C,OAFlC,YAEgDd,EAAIwG,GAFpD,sBAGLwjB,EAAOkxB,EAAMl7C,IAHR,gBAGY,OAHZ,SAGkBgqB,EAHlB,SAEyDhqB,EAFzD,yBACsDyB,EADtD,6DCmCR,IAAIu/C,GAAO,CAAC,MAEZ,SAASC,GAAUH,EAAQI,GAChCj4C,KAAK83C,QAAUD,EACf73C,KAAKk4C,SAAWD,EAGlB,SAASE,KACP,OAAO,IAAIH,GAAU,CAAC,CAAC14C,SAAS6wB,kBAAmB4nB,IAOrDC,GAAUr7C,UAAYw7C,GAAUx7C,UAAV,GACpBsI,YAAa+yC,GACbI,OCjDa,SAASA,GACA,oBAAXA,IAAuBA,EAASrH,EAASqH,IAEpD,IAAK,IAAIP,EAAS73C,KAAK83C,QAASn5C,EAAIk5C,EAAOhgD,OAAQwgD,EAAY,IAAI9gD,MAAMoH,GAAInG,EAAI,EAAGA,EAAImG,IAAKnG,EAC3F,IAAK,IAAiFuoB,EAAMu3B,EAAnFrG,EAAQ4F,EAAOr/C,GAAI+E,EAAI00C,EAAMp6C,OAAQ0gD,EAAWF,EAAU7/C,GAAK,IAAIjB,MAAMgG,GAAmBxG,EAAI,EAAGA,EAAIwG,IAAKxG,GAC9GgqB,EAAOkxB,EAAMl7C,MAAQuhD,EAAUF,EAAO55C,KAAKuiB,EAAMA,EAAKgxB,SAAUh7C,EAAGk7C,MAClE,aAAclxB,IAAMu3B,EAAQvG,SAAWhxB,EAAKgxB,UAChDwG,EAASxhD,GAAKuhD,GAKpB,OAAO,IAAIN,GAAUK,EAAWr4C,KAAKk4C,WDsCrCM,UE3Ca,SAASJ,GACYA,EAAZ,oBAAXA,EAPb,SAAkBA,GAChB,OAAO,WACL,OAAOnH,EAAMmH,EAAOvpC,MAAM7O,KAAM1B,aAKSm6C,CAASL,GACtCM,EAAYN,GAE1B,IAAK,IAAIP,EAAS73C,KAAK83C,QAASn5C,EAAIk5C,EAAOhgD,OAAQwgD,EAAY,GAAIJ,EAAU,GAAIz/C,EAAI,EAAGA,EAAImG,IAAKnG,EAC/F,IAAK,IAAyCuoB,EAArCkxB,EAAQ4F,EAAOr/C,GAAI+E,EAAI00C,EAAMp6C,OAAcd,EAAI,EAAGA,EAAIwG,IAAKxG,GAC9DgqB,EAAOkxB,EAAMl7C,MACfshD,EAAU/9C,KAAK89C,EAAO55C,KAAKuiB,EAAMA,EAAKgxB,SAAUh7C,EAAGk7C,IACnDgG,EAAQ39C,KAAKymB,IAKnB,OAAO,IAAIi3B,GAAUK,EAAWJ,IF+BhCU,Y1BxCa,SAASr1C,GACtB,OAAOtD,KAAKo4C,OAAgB,MAAT90C,EAAgBguC,EAXrC,SAAmBhuC,GACjB,OAAO,WACL,OAAO+tC,EAAK7yC,KAAKwB,KAAK4G,SAAUtD,IAU5Bs1C,CAA2B,oBAAVt1C,EAAuBA,EAAQ8tC,EAAa9tC,M0BuCnEu1C,ezBzCa,SAASv1C,GACtB,OAAOtD,KAAKw4C,UAAmB,MAATl1C,EAAgBsD,EAPxC,SAAwBtD,GACtB,OAAO,WACL,OAAOkuC,EAAOhzC,KAAKwB,KAAK4G,SAAUtD,IAM9Bw1C,CAAgC,oBAAVx1C,EAAuBA,EAAQ8tC,EAAa9tC,MyBwCxEkuC,OGrDa,SAASluC,GACD,oBAAVA,IAAsBA,EAAQy1C,EAAQz1C,IAEjD,IAAK,IAAIu0C,EAAS73C,KAAK83C,QAASn5C,EAAIk5C,EAAOhgD,OAAQwgD,EAAY,IAAI9gD,MAAMoH,GAAInG,EAAI,EAAGA,EAAImG,IAAKnG,EAC3F,IAAK,IAAuEuoB,EAAnEkxB,EAAQ4F,EAAOr/C,GAAI+E,EAAI00C,EAAMp6C,OAAQ0gD,EAAWF,EAAU7/C,GAAK,GAAUzB,EAAI,EAAGA,EAAIwG,IAAKxG,GAC3FgqB,EAAOkxB,EAAMl7C,KAAOuM,EAAM9E,KAAKuiB,EAAMA,EAAKgxB,SAAUh7C,EAAGk7C,IAC1DsG,EAASj+C,KAAKymB,GAKpB,OAAO,IAAIi3B,GAAUK,EAAWr4C,KAAKk4C,WH2CrC/9B,KrBqBa,SAASliB,EAAOsG,GAC7B,IAAKD,UAAUzG,OAAQ,OAAON,MAAM2G,KAAK8B,KAAM4xC,GAE/C,IAAIl8B,EAAOnX,EAAM+zC,EAAUN,EACvBiG,EAAUj4C,KAAKk4C,SACfL,EAAS73C,KAAK83C,QAEG,oBAAV7/C,IAAsBA,EAAQ+gD,EAAS/gD,IAElD,IAAK,IAAI0G,EAAIk5C,EAAOhgD,OAAQ45C,EAAS,IAAIl6C,MAAMoH,GAAIuzC,EAAQ,IAAI36C,MAAMoH,GAAIwzC,EAAO,IAAI56C,MAAMoH,GAAInG,EAAI,EAAGA,EAAImG,IAAKnG,EAAG,CAC/G,IAAIm5C,EAASsG,EAAQz/C,GACjBy5C,EAAQ4F,EAAOr/C,GACf45C,EAAcH,EAAMp6C,OACpBsiB,EAAOu4B,EAAUz6C,EAAMuG,KAAKmzC,EAAQA,GAAUA,EAAOI,SAAUv5C,EAAGy/C,IAClE5F,EAAal4B,EAAKtiB,OAClBohD,EAAa/G,EAAM15C,GAAK,IAAIjB,MAAM86C,GAClC6G,EAAczH,EAAOj5C,GAAK,IAAIjB,MAAM86C,GACpC8G,EAAYhH,EAAK35C,GAAK,IAAIjB,MAAM66C,GAEpC18B,EAAKi8B,EAAQM,EAAOgH,EAAYC,EAAaC,EAAWh/B,EAAM5b,GAK9D,IAAK,IAAoB66C,EAAUv+C,EAA1Bw+C,EAAK,EAAGC,EAAK,EAAmBD,EAAKhH,IAAcgH,EAC1D,GAAID,EAAWH,EAAWI,GAAK,CAE7B,IADIA,GAAMC,IAAIA,EAAKD,EAAK,KACfx+C,EAAOq+C,EAAYI,OAAUA,EAAKjH,IAC3C+G,EAASvH,MAAQh3C,GAAQ,MAQ/B,OAHA42C,EAAS,IAAIuG,GAAUvG,EAAQwG,IACxBsB,OAASrH,EAChBT,EAAO+H,MAAQrH,EACRV,GqBxDPS,MvBvDa,WACb,OAAO,IAAI8F,GAAUh4C,KAAKu5C,QAAUv5C,KAAK83C,QAAQpgD,IAAI+hD,GAASz5C,KAAKk4C,WuBuDnE/F,KIxDa,WACb,OAAO,IAAI6F,GAAUh4C,KAAKw5C,OAASx5C,KAAK83C,QAAQpgD,IAAI+hD,GAASz5C,KAAKk4C,WJwDlE16C,KK5Da,SAASk8C,EAASC,EAAUC,GACzC,IAAI1H,EAAQlyC,KAAKkyC,QAAST,EAASzxC,KAAMmyC,EAAOnyC,KAAKmyC,OAYrD,MAXuB,oBAAZuH,GACTxH,EAAQwH,EAAQxH,MACLA,EAAQA,EAAMiG,aAEzBjG,EAAQA,EAAM2H,OAAOH,EAAU,IAEjB,MAAZC,IACFlI,EAASkI,EAASlI,MACNA,EAASA,EAAO0G,aAEhB,MAAVyB,EAAgBzH,EAAKsD,SAAemE,EAAOzH,GACxCD,GAAST,EAASS,EAAM4H,MAAMrI,GAAQ/mC,QAAU+mC,GLgDvDqI,MM3Da,SAAS9uB,GAGtB,IAFA,IAAImtB,EAAYntB,EAAQmtB,UAAYntB,EAAQmtB,YAAcntB,EAEjD+uB,EAAU/5C,KAAK83C,QAASkC,EAAU7B,EAAUL,QAASmC,EAAKF,EAAQliD,OAAQqiD,EAAKF,EAAQniD,OAAQ8G,EAAIzH,KAAKwpC,IAAIuZ,EAAIC,GAAKC,EAAS,IAAI5iD,MAAM0iD,GAAKzhD,EAAI,EAAGA,EAAImG,IAAKnG,EACpK,IAAK,IAAmGuoB,EAA/Fq5B,EAASL,EAAQvhD,GAAI6hD,EAASL,EAAQxhD,GAAI+E,EAAI68C,EAAOviD,OAAQiiD,EAAQK,EAAO3hD,GAAK,IAAIjB,MAAMgG,GAAUxG,EAAI,EAAGA,EAAIwG,IAAKxG,GACxHgqB,EAAOq5B,EAAOrjD,IAAMsjD,EAAOtjD,MAC7B+iD,EAAM/iD,GAAKgqB,GAKjB,KAAOvoB,EAAIyhD,IAAMzhD,EACf2hD,EAAO3hD,GAAKuhD,EAAQvhD,GAGtB,OAAO,IAAIw/C,GAAUmC,EAAQn6C,KAAKk4C,WN6ClCC,UAhBF,WACE,OAAOn4C,MAgBP0K,MO/Da,WAEb,IAAK,IAAImtC,EAAS73C,KAAK83C,QAASt/C,GAAK,EAAGmG,EAAIk5C,EAAOhgD,SAAUW,EAAImG,GAC/D,IAAK,IAA8DoiB,EAA1DkxB,EAAQ4F,EAAOr/C,GAAIzB,EAAIk7C,EAAMp6C,OAAS,EAAGgD,EAAOo3C,EAAMl7C,KAAYA,GAAK,IAC1EgqB,EAAOkxB,EAAMl7C,MACX8D,GAA6C,EAArCkmB,EAAKK,wBAAwBvmB,IAAWA,EAAKwS,WAAWgvB,aAAatb,EAAMlmB,GACvFA,EAAOkmB,GAKb,OAAO/gB,MPqDP9F,KpB9Da,SAAS08B,GAGtB,SAAS0jB,EAAY/jD,EAAGC,GACtB,OAAOD,GAAKC,EAAIogC,EAAQrgC,EAAEw7C,SAAUv7C,EAAEu7C,WAAax7C,GAAKC,EAHrDogC,IAASA,EAAU+b,GAMxB,IAAK,IAAIkF,EAAS73C,KAAK83C,QAASn5C,EAAIk5C,EAAOhgD,OAAQ0iD,EAAa,IAAIhjD,MAAMoH,GAAInG,EAAI,EAAGA,EAAImG,IAAKnG,EAAG,CAC/F,IAAK,IAAmFuoB,EAA/EkxB,EAAQ4F,EAAOr/C,GAAI+E,EAAI00C,EAAMp6C,OAAQ2iD,EAAYD,EAAW/hD,GAAK,IAAIjB,MAAMgG,GAAUxG,EAAI,EAAGA,EAAIwG,IAAKxG,GACxGgqB,EAAOkxB,EAAMl7C,MACfyjD,EAAUzjD,GAAKgqB,GAGnBy5B,EAAUtgD,KAAKogD,GAGjB,OAAO,IAAItC,GAAUuC,EAAYv6C,KAAKk4C,UAAUxtC,SoB+ChDlM,KQjEa,WACb,IAAIytB,EAAW3tB,UAAU,GAGzB,OAFAA,UAAU,GAAK0B,KACfisB,EAASpd,MAAM,KAAMvQ,WACd0B,MR8DPy6C,MSlEa,WACb,OAAOljD,MAAM2G,KAAK8B,OTkElB+gB,KUnEa,WAEb,IAAK,IAAI82B,EAAS73C,KAAK83C,QAASt/C,EAAI,EAAGmG,EAAIk5C,EAAOhgD,OAAQW,EAAImG,IAAKnG,EACjE,IAAK,IAAIy5C,EAAQ4F,EAAOr/C,GAAIzB,EAAI,EAAGwG,EAAI00C,EAAMp6C,OAAQd,EAAIwG,IAAKxG,EAAG,CAC/D,IAAIgqB,EAAOkxB,EAAMl7C,GACjB,GAAIgqB,EAAM,OAAOA,EAIrB,OAAO,MV2DPwY,KWpEa,WACb,IADwB,EACpBA,EAAO,EADa,IAELv5B,MAFK,IAExB,sCAA2Bu5B,GAFH,8BAGxB,OAAOA,GXkEP2X,MYrEa,WACb,OAAQlxC,KAAK+gB,QZqEb25B,KatEa,SAASzuB,GAEtB,IAAK,IAAI4rB,EAAS73C,KAAK83C,QAASt/C,EAAI,EAAGmG,EAAIk5C,EAAOhgD,OAAQW,EAAImG,IAAKnG,EACjE,IAAK,IAAgDuoB,EAA5CkxB,EAAQ4F,EAAOr/C,GAAIzB,EAAI,EAAGwG,EAAI00C,EAAMp6C,OAAcd,EAAIwG,IAAKxG,GAC9DgqB,EAAOkxB,EAAMl7C,KAAIk1B,EAASztB,KAAKuiB,EAAMA,EAAKgxB,SAAUh7C,EAAGk7C,GAI/D,OAAOjyC,Mb+DP26C,KhB7Ba,SAAS12C,EAAMhM,GAC5B,IAAI67C,EAAW0C,EAAUvyC,GAEzB,GAAI3F,UAAUzG,OAAS,EAAG,CACxB,IAAIkpB,EAAO/gB,KAAK+gB,OAChB,OAAO+yB,EAASH,MACV5yB,EAAK65B,eAAe9G,EAASJ,MAAOI,EAASH,OAC7C5yB,EAAKq0B,aAAatB,GAG1B,OAAO9zC,KAAK06C,MAAe,MAATziD,EACX67C,EAASH,MAAQE,EAAeD,EAAgC,oBAAV37C,EACtD67C,EAASH,MAAQQ,EAAiBD,EAClCJ,EAASH,MAAQM,EAAiBD,GAAgBF,EAAU77C,KgBiBnEyT,MdlDa,SAASzH,EAAMhM,EAAO6Z,GACnC,OAAOxT,UAAUzG,OAAS,EACpBmI,KAAK06C,MAAe,MAATziD,EACLm8C,EAA+B,oBAAVn8C,EACrBs8C,EACAD,GAAerwC,EAAMhM,EAAmB,MAAZ6Z,EAAmB,GAAKA,IAC1D0iC,EAAWx0C,KAAK+gB,OAAQ9c,Ic6C9B42C,SbrDa,SAAS52C,EAAMhM,GAC5B,OAAOqG,UAAUzG,OAAS,EACpBmI,KAAK06C,MAAe,MAATziD,EACP08C,EAAkC,oBAAV18C,EACxB48C,EACAD,GAAkB3wC,EAAMhM,IAC5B+H,KAAK+gB,OAAO9c,IagDlB62C,QZba,SAAS72C,EAAMhM,GAC5B,IAAIq9C,EAAQR,EAAW7wC,EAAO,IAE9B,GAAI3F,UAAUzG,OAAS,EAAG,CAExB,IADA,IAAI09C,EAAOP,EAAUh1C,KAAK+gB,QAAShqB,GAAK,EAAGwG,EAAI+3C,EAAMz9C,SAC5Cd,EAAIwG,GAAG,IAAKg4C,EAAKp0B,SAASm0B,EAAMv+C,IAAK,OAAO,EACrD,OAAO,EAGT,OAAOiJ,KAAK06C,MAAuB,oBAAVziD,EACnB29C,EAAkB39C,EAClBy9C,EACAC,GAAcL,EAAOr9C,KYE3B4mB,KX1Da,SAAS5mB,GACtB,OAAOqG,UAAUzG,OACXmI,KAAK06C,KAAc,MAATziD,EACN49C,GAA+B,oBAAV59C,EACrB89C,GACAD,IAAc79C,IAClB+H,KAAK+gB,OAAOrZ,aWqDlBqzC,KV3Da,SAAS9iD,GACtB,OAAOqG,UAAUzG,OACXmI,KAAK06C,KAAc,MAATziD,EACN+9C,IAA+B,oBAAV/9C,EACrBi+C,GACAD,IAAch+C,IAClB+H,KAAK+gB,OAAO9Y,WUsDlBkuC,MTzEa,WACb,OAAOn2C,KAAK06C,KAAKvE,KSyEjBC,MR1Ea,WACb,OAAOp2C,KAAK06C,KAAKtE,KQ0EjByD,Oc7Ea,SAAS51C,GACtB,IAAIqwB,EAAyB,oBAATrwB,EAAsBA,EAAO+2C,GAAQ/2C,GACzD,OAAOjE,KAAKo4C,QAAO,WACjB,OAAOp4C,KAAKsI,YAAYgsB,EAAOzlB,MAAM7O,KAAM1B,gBd2E7C28C,ONzEa,SAASh3C,EAAMi3C,GAC5B,IAAI5mB,EAAyB,oBAATrwB,EAAsBA,EAAO+2C,GAAQ/2C,GACrDm0C,EAAmB,MAAV8C,EAAiBzE,GAAiC,oBAAXyE,EAAwBA,EAASnK,EAASmK,GAC9F,OAAOl7C,KAAKo4C,QAAO,WACjB,OAAOp4C,KAAKq8B,aAAa/H,EAAOzlB,MAAM7O,KAAM1B,WAAY85C,EAAOvpC,MAAM7O,KAAM1B,YAAc,UMsE3Fm3C,OL5Ea,WACb,OAAOz1C,KAAK06C,KAAKjF,KK4EjBkB,MJxEa,SAASwE,GACtB,OAAOn7C,KAAKo4C,OAAO+C,EAAOtE,GAAsBH,KIwEhD9E,MenFa,SAAS35C,GACtB,OAAOqG,UAAUzG,OACXmI,KAAK66C,SAAS,WAAY5iD,GAC1B+H,KAAK+gB,OAAOgxB,UfiFlBmF,GHpCa,SAASD,EAAUh/C,EAAO+O,GACvC,IAA+CjQ,EAAyBotB,EAApE4yB,EAAYD,GAAeG,EAAW,IAAQ15C,EAAIw5C,EAAUl/C,OAEhE,KAAIyG,UAAUzG,OAAS,GAAvB,CAaA,IADAq/C,EAAKj/C,EAAQm/C,GAAQJ,GAChBjgD,EAAI,EAAGA,EAAIwG,IAAKxG,EAAGiJ,KAAK06C,KAAKxD,EAAGH,EAAUhgD,GAAIkB,EAAO+O,IAC1D,OAAOhH,KAbL,IAAIk3C,EAAKl3C,KAAK+gB,OAAOo2B,KACrB,GAAID,EAAI,IAAK,IAA0B/G,EAAtB33C,EAAI,EAAGmG,EAAIu4C,EAAGr/C,OAAWW,EAAImG,IAAKnG,EACjD,IAAKzB,EAAI,EAAGo5C,EAAI+G,EAAG1+C,GAAIzB,EAAIwG,IAAKxG,EAC9B,IAAKotB,EAAI4yB,EAAUhgD,IAAIuJ,OAAS6vC,EAAE7vC,MAAQ6jB,EAAElgB,OAASksC,EAAElsC,KACrD,OAAOksC,EAAEl4C,OG6BjBo7B,SFxDa,SAAS/yB,EAAMzE,GAC5B,OAAOmE,KAAK06C,MAAwB,oBAAX7+C,EACnB87C,GACAD,IAAkBp3C,EAAMzE,MEsD7B+G,OAAOK,SAAWm4C,IAGrB,UgBzFIC,GAAO,CAACpjD,MAAO,cAEnB,SAASo7B,KACP,IAAK,IAAyClP,EAArCptB,EAAI,EAAGwG,EAAIe,UAAUzG,OAAQyjD,EAAI,GAAOvkD,EAAIwG,IAAKxG,EAAG,CAC3D,KAAMotB,EAAI7lB,UAAUvH,GAAK,KAAQotB,KAAKm3B,GAAM,QAAQp6C,KAAKijB,GAAI,MAAM,IAAItlB,MAAM,iBAAmBslB,GAChGm3B,EAAEn3B,GAAK,GAET,OAAO,IAAIo3B,GAASD,GAGtB,SAASC,GAASD,GAChBt7C,KAAKs7C,EAAIA,EAGX,SAASxE,GAAeC,EAAWyE,GACjC,OAAOzE,EAAU1zC,OAAO3F,MAAM,SAAShG,KAAI,SAASysB,GAClD,IAAIlgB,EAAO,GAAIlN,EAAIotB,EAAExY,QAAQ,KAE7B,GADI5U,GAAK,IAAGkN,EAAOkgB,EAAEzqB,MAAM3C,EAAI,GAAIotB,EAAIA,EAAEzqB,MAAM,EAAG3C,IAC9CotB,IAAMq3B,EAAM9+C,eAAeynB,GAAI,MAAM,IAAItlB,MAAM,iBAAmBslB,GACtE,MAAO,CAAC7jB,KAAM6jB,EAAGlgB,KAAMA,MA6C3B,SAASiB,GAAI5E,EAAM2D,GACjB,IAAK,IAA4B/L,EAAxBnB,EAAI,EAAGwG,EAAI+C,EAAKzI,OAAWd,EAAIwG,IAAKxG,EAC3C,IAAKmB,EAAIoI,EAAKvJ,IAAIkN,OAASA,EACzB,OAAO/L,EAAED,MAKf,SAAS0L,GAAIrD,EAAM2D,EAAMgoB,GACvB,IAAK,IAAIl1B,EAAI,EAAGwG,EAAI+C,EAAKzI,OAAQd,EAAIwG,IAAKxG,EACxC,GAAIuJ,EAAKvJ,GAAGkN,OAASA,EAAM,CACzB3D,EAAKvJ,GAAKskD,GAAM/6C,EAAOA,EAAK5G,MAAM,EAAG3C,GAAGgsB,OAAOziB,EAAK5G,MAAM3C,EAAI,IAC9D,MAIJ,OADgB,MAAZk1B,GAAkB3rB,EAAKhG,KAAK,CAAC2J,KAAMA,EAAMhM,MAAOg0B,IAC7C3rB,EAzDTi7C,GAAS5+C,UAAY02B,GAAS12B,UAAY,CACxCsI,YAAas2C,GACbrE,GAAI,SAASD,EAAUhrB,GACrB,IAEI9H,EAFAm3B,EAAIt7C,KAAKs7C,EACTtpB,EAAI8kB,GAAeG,EAAW,GAAIqE,GAElCvkD,GAAK,EACLwG,EAAIy0B,EAAEn6B,OAGV,KAAIyG,UAAUzG,OAAS,GAAvB,CAOA,GAAgB,MAAZo0B,GAAwC,oBAAbA,EAAyB,MAAM,IAAIptB,MAAM,qBAAuBotB,GAC/F,OAASl1B,EAAIwG,GACX,GAAI4mB,GAAK8yB,EAAWjlB,EAAEj7B,IAAIuJ,KAAMg7C,EAAEn3B,GAAKxgB,GAAI23C,EAAEn3B,GAAI8yB,EAAShzC,KAAMgoB,QAC3D,GAAgB,MAAZA,EAAkB,IAAK9H,KAAKm3B,EAAGA,EAAEn3B,GAAKxgB,GAAI23C,EAAEn3B,GAAI8yB,EAAShzC,KAAM,MAG1E,OAAOjE,KAZL,OAASjJ,EAAIwG,GAAG,IAAK4mB,GAAK8yB,EAAWjlB,EAAEj7B,IAAIuJ,QAAU6jB,EAAIjf,GAAIo2C,EAAEn3B,GAAI8yB,EAAShzC,OAAQ,OAAOkgB,GAc/Fs3B,KAAM,WACJ,IAAIA,EAAO,GAAIH,EAAIt7C,KAAKs7C,EACxB,IAAK,IAAIn3B,KAAKm3B,EAAGG,EAAKt3B,GAAKm3B,EAAEn3B,GAAGzqB,QAChC,OAAO,IAAI6hD,GAASE,IAEtBj9C,KAAM,SAAS8B,EAAMo7C,GACnB,IAAKn+C,EAAIe,UAAUzG,OAAS,GAAK,EAAG,IAAK,IAAgC0F,EAAG4mB,EAA/Bw3B,EAAO,IAAIpkD,MAAMgG,GAAIxG,EAAI,EAASA,EAAIwG,IAAKxG,EAAG4kD,EAAK5kD,GAAKuH,UAAUvH,EAAI,GACnH,IAAKiJ,KAAKs7C,EAAE5+C,eAAe4D,GAAO,MAAM,IAAIzB,MAAM,iBAAmByB,GACrE,IAAuBvJ,EAAI,EAAGwG,GAAzB4mB,EAAInkB,KAAKs7C,EAAEh7C,IAAoBzI,OAAQd,EAAIwG,IAAKxG,EAAGotB,EAAEptB,GAAGkB,MAAM4W,MAAM6sC,EAAMC,IAEjF9sC,MAAO,SAASvO,EAAMo7C,EAAMC,GAC1B,IAAK37C,KAAKs7C,EAAE5+C,eAAe4D,GAAO,MAAM,IAAIzB,MAAM,iBAAmByB,GACrE,IAAK,IAAI6jB,EAAInkB,KAAKs7C,EAAEh7C,GAAOvJ,EAAI,EAAGwG,EAAI4mB,EAAEtsB,OAAQd,EAAIwG,IAAKxG,EAAGotB,EAAEptB,GAAGkB,MAAM4W,MAAM6sC,EAAMC,KAuBvF,IC/EIC,GACAC,GD8EJ,MCnFIC,GAAQ,EACRC,GAAU,EACVC,GAAW,EAIXC,GAAY,EACZC,GAAW,EACXC,GAAY,EACZC,GAA+B,kBAAhBhO,aAA4BA,YAAYx2B,IAAMw2B,YAAcz2B,KAC3E0kC,GAA6B,kBAAXh9C,QAAuBA,OAAOmvC,sBAAwBnvC,OAAOmvC,sBAAsB94B,KAAKrW,QAAU,SAAS/I,GAAKovB,WAAWpvB,EAAG,KAE7I,SAASshB,KACd,OAAOskC,KAAaG,GAASC,IAAWJ,GAAWE,GAAMxkC,MAAQukC,IAGnE,SAASG,KACPJ,GAAW,EAGN,SAASK,KACdv8C,KAAKw8C,MACLx8C,KAAKy8C,MACLz8C,KAAK6xC,MAAQ,KA0BR,SAAS6K,GAAMzwB,EAAUsjB,EAAOzwB,GACrC,IAAIqF,EAAI,IAAIo4B,GAEZ,OADAp4B,EAAEw4B,QAAQ1wB,EAAUsjB,EAAOzwB,GACpBqF,EAcT,SAASy4B,KACPV,IAAYD,GAAYG,GAAMxkC,OAASukC,GACvCL,GAAQC,GAAU,EAClB,KAdK,WACLnkC,OACEkkC,GAEF,IADA,IAAkBh8C,EAAdqkB,EAAIy3B,GACDz3B,IACArkB,EAAIo8C,GAAW/3B,EAAEs4B,QAAU,GAAGt4B,EAAEq4B,MAAMh+C,UAAKvF,EAAW6G,GAC3DqkB,EAAIA,EAAE0tB,QAENiK,GAOAe,GADF,QAGEf,GAAQ,EAWZ,WACE,IAAIgB,EAAmBC,EAAfC,EAAKpB,GAAc98B,EAAO2e,EAAAA,EAClC,KAAOuf,GACDA,EAAGR,OACD19B,EAAOk+B,EAAGP,QAAO39B,EAAOk+B,EAAGP,OAC/BK,EAAKE,EAAIA,EAAKA,EAAGnL,QAEjBkL,EAAKC,EAAGnL,MAAOmL,EAAGnL,MAAQ,KAC1BmL,EAAKF,EAAKA,EAAGjL,MAAQkL,EAAKnB,GAAWmB,GAGzClB,GAAWiB,EACXG,GAAMn+B,GAtBJo+B,GACAhB,GAAW,GAIf,SAASiB,KACP,IAAIvlC,EAAMwkC,GAAMxkC,MAAO23B,EAAQ33B,EAAMqkC,GACjC1M,EA7EU,MA6ES4M,IAAa5M,EAAO0M,GAAYrkC,GAkBzD,SAASqlC,GAAMn+B,GACTg9B,KACAC,KAASA,GAAUn2B,aAAam2B,KACxBj9B,EAAOo9B,GACP,IACNp9B,EAAO2e,EAAAA,IAAUse,GAAUr2B,WAAWk3B,GAAM99B,EAAOs9B,GAAMxkC,MAAQukC,KACjEH,KAAUA,GAAWoB,cAAcpB,OAElCA,KAAUC,GAAYG,GAAMxkC,MAAOokC,GAAWqB,YAAYF,GAvGnD,MAwGZrB,GAAQ,EAAGO,GAASO,MCzGT,YAAS3wB,EAAUsjB,EAAOzwB,GACvC,IAAIqF,EAAI,IAAIo4B,GAMZ,OALAhN,EAAiB,MAATA,EAAgB,GAAKA,EAC7BprB,EAAEw4B,SAAQ,SAAAW,GACRn5B,EAAE+oB,OACFjhB,EAASqxB,EAAU/N,KAClBA,EAAOzwB,GACHqF,EDiBTo4B,GAAM5/C,UAAY+/C,GAAM//C,UAAY,CAClCsI,YAAas3C,GACbI,QAAS,SAAS1wB,EAAUsjB,EAAOzwB,GACjC,GAAwB,oBAAbmN,EAAyB,MAAM,IAAIjvB,UAAU,8BACxD8hB,GAAgB,MAARA,EAAelH,MAASkH,IAAkB,MAATywB,EAAgB,GAAKA,GACzDvvC,KAAK6xC,OAASgK,KAAa77C,OAC1B67C,GAAUA,GAAShK,MAAQ7xC,KAC1B47C,GAAW57C,KAChB67C,GAAW77C,MAEbA,KAAKw8C,MAAQvwB,EACbjsB,KAAKy8C,MAAQ39B,EACbm+B,MAEF/P,KAAM,WACAltC,KAAKw8C,QACPx8C,KAAKw8C,MAAQ,KACbx8C,KAAKy8C,MAAQhf,EAAAA,EACbwf,QEzCN,IAAIM,GAAUlqB,GAAS,QAAS,MAAO,SAAU,aAC7CmqB,GAAa,GAUF,YAASz8B,EAAM9c,EAAMzK,EAAIy1B,EAAOgjB,EAAOwL,GACpD,IAAIC,EAAY38B,EAAK48B,aACrB,GAAKD,GACA,GAAIlkD,KAAMkkD,EAAW,YADV38B,EAAK48B,aAAe,IAmCtC,SAAgB58B,EAAMvnB,EAAI8uC,GACxB,IACIsV,EADAF,EAAY38B,EAAK48B,aAQrB,SAASE,EAASP,GAChBhV,EAAKjuC,MAtDc,EAuDnBiuC,EAAKoU,MAAMC,QAAQ16B,EAAOqmB,EAAKiH,MAAOjH,EAAKxpB,MAGvCwpB,EAAKiH,OAAS+N,GAASr7B,EAAMq7B,EAAUhV,EAAKiH,OAGlD,SAASttB,EAAMq7B,GACb,IAAIvmD,EAAGyB,EAAG+E,EAAG4yC,EAGb,GAjEmB,IAiEf7H,EAAKjuC,MAAqB,OAAO6yC,IAErC,IAAKn2C,KAAK2mD,EAER,IADAvN,EAAIuN,EAAU3mD,IACRkN,OAASqkC,EAAKrkC,KAApB,CAKA,GAxEe,IAwEXksC,EAAE91C,MAAmB,OAAO0hD,GAAQ95B,GAvEzB,IA0EXkuB,EAAE91C,OACJ81C,EAAE91C,MAzES,EA0EX81C,EAAEuM,MAAMxP,OACRiD,EAAE+G,GAAG14C,KAAK,YAAauiB,EAAMA,EAAKgxB,SAAU5B,EAAElhB,MAAOkhB,EAAE8B,cAChDyL,EAAU3mD,KAITA,EAAIyC,IACZ22C,EAAE91C,MAjFS,EAkFX81C,EAAEuM,MAAMxP,OACRiD,EAAE+G,GAAG14C,KAAK,SAAUuiB,EAAMA,EAAKgxB,SAAU5B,EAAElhB,MAAOkhB,EAAE8B,cAC7CyL,EAAU3mD,IAoBrB,GAZAglD,IAAQ,WA/FS,IAgGXzT,EAAKjuC,QACPiuC,EAAKjuC,MAhGQ,EAiGbiuC,EAAKoU,MAAMC,QAAQmB,EAAMxV,EAAKiH,MAAOjH,EAAKxpB,MAC1Cg/B,EAAKR,OAMThV,EAAKjuC,MA1Ga,EA2GlBiuC,EAAK4O,GAAG14C,KAAK,QAASuiB,EAAMA,EAAKgxB,SAAUzJ,EAAKrZ,MAAOqZ,EAAK2J,OA3G1C,IA4Gd3J,EAAKjuC,MAAT,CAKA,IAJAiuC,EAAKjuC,MA5GY,EA+GjBujD,EAAQ,IAAIrmD,MAAMgG,EAAI+qC,EAAKsV,MAAM/lD,QAC5Bd,EAAI,EAAGyB,GAAK,EAAGzB,EAAIwG,IAAKxG,GACvBo5C,EAAI7H,EAAKsV,MAAM7mD,GAAGkB,MAAMuG,KAAKuiB,EAAMA,EAAKgxB,SAAUzJ,EAAKrZ,MAAOqZ,EAAK2J,UACrE2L,IAAQplD,GAAK23C,GAGjByN,EAAM/lD,OAASW,EAAI,GAGrB,SAASslD,EAAKR,GAKZ,IAJA,IAAIn5B,EAAIm5B,EAAUhV,EAAKyV,SAAWzV,EAAK0V,KAAKx/C,KAAK,KAAM8+C,EAAUhV,EAAKyV,WAAazV,EAAKoU,MAAMC,QAAQzP,GAAO5E,EAAKjuC,MAvHlG,EAuHkH,GAC9HtD,GAAK,EACLwG,EAAIqgD,EAAM/lD,SAELd,EAAIwG,GACXqgD,EAAM7mD,GAAGyH,KAAKuiB,EAAMoD,GA5HN,IAgIZmkB,EAAKjuC,QACPiuC,EAAK4O,GAAG14C,KAAK,MAAOuiB,EAAMA,EAAKgxB,SAAUzJ,EAAKrZ,MAAOqZ,EAAK2J,OAC1D/E,KAIJ,SAASA,IAIP,IAAK,IAAIn2C,KAHTuxC,EAAKjuC,MAtIU,EAuIfiuC,EAAKoU,MAAMxP,cACJwQ,EAAUlkD,GACHkkD,EAAW,cAClB38B,EAAK48B,aA7FdD,EAAUlkD,GAAM8uC,EAChBA,EAAKoU,MAAQA,GAAMmB,EAAU,EAAGvV,EAAKxpB,MAxCrCwV,CAAOvT,EAAMvnB,EAAI,CACfyK,KAAMA,EACNgrB,MAAOA,EACPgjB,MAAOA,EACPiF,GAAIqG,GACJK,MAAOJ,GACP1+B,KAAM2+B,EAAO3+B,KACbywB,MAAOkO,EAAOlO,MACdwO,SAAUN,EAAOM,SACjBC,KAAMP,EAAOO,KACbtB,MAAO,KACPriD,MAvBiB,IA2Bd,SAAS4jD,GAAKl9B,EAAMvnB,GACzB,IAAIqkD,EAAW34C,GAAI6b,EAAMvnB,GACzB,GAAIqkD,EAASxjD,MA7BM,EA6BW,MAAM,IAAIwE,MAAM,+BAC9C,OAAOg/C,EAGF,SAASl6C,GAAIod,EAAMvnB,GACxB,IAAIqkD,EAAW34C,GAAI6b,EAAMvnB,GACzB,GAAIqkD,EAASxjD,MAhCM,EAgCW,MAAM,IAAIwE,MAAM,6BAC9C,OAAOg/C,EAGF,SAAS34C,GAAI6b,EAAMvnB,GACxB,IAAIqkD,EAAW98B,EAAK48B,aACpB,IAAKE,KAAcA,EAAWA,EAASrkD,IAAM,MAAM,IAAIqF,MAAM,wBAC7D,OAAOg/C,EChDM,YAAStnD,EAAGC,GACzB,OAAOD,GAAKA,EAAGC,GAAKA,EAAG,SAAS2tB,GAC9B,OAAO5tB,GAAK,EAAI4tB,GAAK3tB,EAAI2tB,GCF7B,ICEI+5B,GDFAC,GAAU,IAAMjnD,KAAKknD,GAEdC,GAAW,CACpBC,WAAY,EACZC,WAAY,EACZC,OAAQ,EACRC,MAAO,EACPC,OAAQ,EACRC,OAAQ,GAGK,YAASpoD,EAAGC,EAAG0B,EAAG2H,EAAGC,EAAGxJ,GACrC,IAAIooD,EAAQC,EAAQF,EAKpB,OAJIC,EAASxnD,KAAKa,KAAKxB,EAAIA,EAAIC,EAAIA,MAAID,GAAKmoD,EAAQloD,GAAKkoD,IACrDD,EAAQloD,EAAI2B,EAAI1B,EAAIqJ,KAAG3H,GAAK3B,EAAIkoD,EAAO5+C,GAAKrJ,EAAIioD,IAChDE,EAASznD,KAAKa,KAAKG,EAAIA,EAAI2H,EAAIA,MAAI3H,GAAKymD,EAAQ9+C,GAAK8+C,EAAQF,GAASE,GACtEpoD,EAAIsJ,EAAIrJ,EAAI0B,IAAG3B,GAAKA,EAAGC,GAAKA,EAAGioD,GAASA,EAAOC,GAAUA,GACtD,CACLJ,WAAYx+C,EACZy+C,WAAYjoD,EACZkoD,OAAQtnD,KAAK0nD,MAAMpoD,EAAGD,GAAK4nD,GAC3BM,MAAOvnD,KAAK2nD,KAAKJ,GAASN,GAC1BO,OAAQA,EACRC,OAAQA,GEpBZ,SAASG,GAAqBC,EAAOC,EAASC,EAASC,GAErD,SAASnS,EAAI1uC,GACX,OAAOA,EAAExG,OAASwG,EAAE0uC,MAAQ,IAAM,GAsCpC,OAAO,SAASx2C,EAAGC,GACjB,IAAI6H,EAAI,GACJ6lB,EAAI,GAOR,OANA3tB,EAAIwoD,EAAMxoD,GAAIC,EAAIuoD,EAAMvoD,GAtC1B,SAAmBuL,EAAIC,EAAIkL,EAAII,EAAIjP,EAAG6lB,GACpC,GAAIniB,IAAOmL,GAAMlL,IAAOsL,EAAI,CAC1B,IAAIvW,EAAIsH,EAAE/D,KAAK,aAAc,KAAM0kD,EAAS,KAAMC,GAClD/6B,EAAE5pB,KAAK,CAACvD,EAAGA,EAAI,EAAGM,EAAGmnB,GAAOzc,EAAImL,IAAM,CAACnW,EAAGA,EAAI,EAAGM,EAAGmnB,GAAOxc,EAAIsL,UACtDJ,GAAMI,IACfjP,EAAE/D,KAAK,aAAe4S,EAAK8xC,EAAU1xC,EAAK2xC,GAkC5CE,CAAU5oD,EAAE+nD,WAAY/nD,EAAEgoD,WAAY/nD,EAAE8nD,WAAY9nD,EAAE+nD,WAAYlgD,EAAG6lB,GA9BvE,SAAgB3tB,EAAGC,EAAG6H,EAAG6lB,GACnB3tB,IAAMC,GACJD,EAAIC,EAAI,IAAKA,GAAK,IAAcA,EAAID,EAAI,MAAKA,GAAK,KACtD2tB,EAAE5pB,KAAK,CAACvD,EAAGsH,EAAE/D,KAAKyyC,EAAI1uC,GAAK,UAAW,KAAM6gD,GAAY,EAAG7nD,EAAGmnB,GAAOjoB,EAAGC,MAC/DA,GACT6H,EAAE/D,KAAKyyC,EAAI1uC,GAAK,UAAY7H,EAAI0oD,GA0BlCV,CAAOjoD,EAAEioD,OAAQhoD,EAAEgoD,OAAQngD,EAAG6lB,GAtBhC,SAAe3tB,EAAGC,EAAG6H,EAAG6lB,GAClB3tB,IAAMC,EACR0tB,EAAE5pB,KAAK,CAACvD,EAAGsH,EAAE/D,KAAKyyC,EAAI1uC,GAAK,SAAU,KAAM6gD,GAAY,EAAG7nD,EAAGmnB,GAAOjoB,EAAGC,KAC9DA,GACT6H,EAAE/D,KAAKyyC,EAAI1uC,GAAK,SAAW7H,EAAI0oD,GAmBjCT,CAAMloD,EAAEkoD,MAAOjoD,EAAEioD,MAAOpgD,EAAG6lB,GAf7B,SAAeniB,EAAIC,EAAIkL,EAAII,EAAIjP,EAAG6lB,GAChC,GAAIniB,IAAOmL,GAAMlL,IAAOsL,EAAI,CAC1B,IAAIvW,EAAIsH,EAAE/D,KAAKyyC,EAAI1uC,GAAK,SAAU,KAAM,IAAK,KAAM,KACnD6lB,EAAE5pB,KAAK,CAACvD,EAAGA,EAAI,EAAGM,EAAGmnB,GAAOzc,EAAImL,IAAM,CAACnW,EAAGA,EAAI,EAAGM,EAAGmnB,GAAOxc,EAAIsL,UAC/C,IAAPJ,GAAmB,IAAPI,GACrBjP,EAAE/D,KAAKyyC,EAAI1uC,GAAK,SAAW6O,EAAK,IAAMI,EAAK,KAW7CtV,CAAMzB,EAAEmoD,OAAQnoD,EAAEooD,OAAQnoD,EAAEkoD,OAAQloD,EAAEmoD,OAAQtgD,EAAG6lB,GACjD3tB,EAAIC,EAAI,KACD,SAAS2tB,GAEd,IADA,IAA0BgsB,EAAtBp5C,GAAK,EAAGwG,EAAI2mB,EAAErsB,SACTd,EAAIwG,GAAGc,GAAG8xC,EAAIjsB,EAAEntB,IAAIA,GAAKo5C,EAAE94C,EAAE8sB,GACtC,OAAO9lB,EAAEb,KAAK,MAKb,IAAI4hD,GAA0BN,IDxD9B,SAAkB7mD,GACvB,IAAM0G,EAAI,IAA0B,oBAAd0gD,UAA2BA,UAAYC,iBAAiBrnD,EAAQ,IACtF,OAAO0G,EAAE4gD,WAAalB,GAAWmB,GAAU7gD,EAAEpI,EAAGoI,EAAEnI,EAAGmI,EAAEzG,EAAGyG,EAAEkB,EAAGlB,EAAEmB,EAAGnB,EAAErI,KCsDJ,OAAQ,MAAO,QACxEmpD,GAA0BX,IDpD9B,SAAkB7mD,GACvB,OAAa,MAATA,EAAsBomD,IACrBH,KAASA,GAAU5+C,SAASk6B,gBAAgB,6BAA8B,MAC/E0kB,GAAQ78C,aAAa,YAAapJ,IAC5BA,EAAQimD,GAAQwB,UAAUC,QAAQC,eAEjCJ,IADPvnD,EAAQA,EAAM4nD,QACStpD,EAAG0B,EAAMzB,EAAGyB,EAAMC,EAAGD,EAAM4H,EAAG5H,EAAM6H,EAAG7H,EAAM3B,GAFL+nD,MCgDG,KAAM,IAAK,KC5D/E,SAASyB,GAAYtmD,EAAIyK,GACvB,IAAI87C,EAAQC,EACZ,OAAO,WACL,IAAInC,EAAWl6C,GAAI3D,KAAMxG,GACrBokD,EAAQC,EAASD,MAKrB,GAAIA,IAAUmC,EAEZ,IAAK,IAAIhpD,EAAI,EAAGwG,GADhByiD,EAASD,EAASnC,GACS/lD,OAAQd,EAAIwG,IAAKxG,EAC1C,GAAIipD,EAAOjpD,GAAGkN,OAASA,EAAM,EAC3B+7C,EAASA,EAAOtmD,SACTk+C,OAAO7gD,EAAG,GACjB,MAKN8mD,EAASD,MAAQoC,GAIrB,SAASC,GAAczmD,EAAIyK,EAAMhM,GAC/B,IAAI8nD,EAAQC,EACZ,GAAqB,oBAAV/nD,EAAsB,MAAM,IAAI4G,MAC3C,OAAO,WACL,IAAIg/C,EAAWl6C,GAAI3D,KAAMxG,GACrBokD,EAAQC,EAASD,MAKrB,GAAIA,IAAUmC,EAAQ,CACpBC,GAAUD,EAASnC,GAAOlkD,QAC1B,IAAK,IAAIyqB,EAAI,CAAClgB,KAAMA,EAAMhM,MAAOA,GAAQlB,EAAI,EAAGwG,EAAIyiD,EAAOnoD,OAAQd,EAAIwG,IAAKxG,EAC1E,GAAIipD,EAAOjpD,GAAGkN,OAASA,EAAM,CAC3B+7C,EAAOjpD,GAAKotB,EACZ,MAGAptB,IAAMwG,GAAGyiD,EAAO1lD,KAAK6pB,GAG3B05B,EAASD,MAAQoC,GAsBd,SAASE,GAAW9sC,EAAYnP,EAAMhM,GAC3C,IAAIuB,EAAK4Z,EAAW+sC,IAOpB,OALA/sC,EAAWsnC,MAAK,WACd,IAAImD,EAAWl6C,GAAI3D,KAAMxG,IACxBqkD,EAAS5lD,QAAU4lD,EAAS5lD,MAAQ,KAAKgM,GAAQhM,EAAM4W,MAAM7O,KAAM1B,cAG/D,SAASyiB,GACd,OAAO7b,GAAI6b,EAAMvnB,GAAIvB,MAAMgM,IC9EhB,YAASgB,EAAa1I,EAASI,GAC5CsI,EAAYtI,UAAYJ,EAAQI,UAAYA,EAC5CA,EAAUsI,YAAcA,EAGnB,SAAS07B,GAAOgR,EAAQyO,GAC7B,IAAIzjD,EAAYF,OAAO63B,OAAOqd,EAAOh1C,WACrC,IAAK,IAAI4B,KAAO6hD,EAAYzjD,EAAU4B,GAAO6hD,EAAW7hD,GACxD,OAAO5B,ECNF,SAAS0jD,MAET,IAAIC,GAAS,GACTC,GAAW,EAAID,GAEtBE,GAAM,sBACNC,GAAM,gDACNC,GAAM,iDACNC,GAAQ,qBACRC,GAAe,IAAIC,OAAO,UAAY,CAACL,GAAKA,GAAKA,IAAO,QACxDM,GAAe,IAAID,OAAO,UAAY,CAACH,GAAKA,GAAKA,IAAO,QACxDK,GAAgB,IAAIF,OAAO,WAAa,CAACL,GAAKA,GAAKA,GAAKC,IAAO,QAC/DO,GAAgB,IAAIH,OAAO,WAAa,CAACH,GAAKA,GAAKA,GAAKD,IAAO,QAC/DQ,GAAe,IAAIJ,OAAO,UAAY,CAACJ,GAAKC,GAAKA,IAAO,QACxDQ,GAAgB,IAAIL,OAAO,WAAa,CAACJ,GAAKC,GAAKA,GAAKD,IAAO,QAE/DU,GAAQ,CACVC,UAAW,SACXC,aAAc,SACdC,KAAM,MACNC,WAAY,QACZC,MAAO,SACPC,MAAO,SACPC,OAAQ,SACRC,MAAO,EACPC,eAAgB,SAChBC,KAAM,IACNC,WAAY,QACZC,MAAO,SACPC,UAAW,SACXC,UAAW,QACXC,WAAY,QACZC,UAAW,SACXC,MAAO,SACPC,eAAgB,QAChBC,SAAU,SACVC,QAAS,SACTC,KAAM,MACNC,SAAU,IACVC,SAAU,MACVC,cAAe,SACfC,SAAU,SACVC,UAAW,MACXC,SAAU,SACVC,UAAW,SACXC,YAAa,QACbC,eAAgB,QAChBC,WAAY,SACZC,WAAY,SACZC,QAAS,QACTC,WAAY,SACZC,aAAc,QACdC,cAAe,QACfC,cAAe,QACfC,cAAe,QACfC,cAAe,MACfC,WAAY,QACZC,SAAU,SACVC,YAAa,MACbC,QAAS,QACTC,QAAS,QACTC,WAAY,QACZC,UAAW,SACXC,YAAa,SACbC,YAAa,QACbC,QAAS,SACTC,UAAW,SACXC,WAAY,SACZC,KAAM,SACNC,UAAW,SACXC,KAAM,QACNC,MAAO,MACPC,YAAa,SACbC,KAAM,QACNC,SAAU,SACVC,QAAS,SACTC,UAAW,SACXC,OAAQ,QACRC,MAAO,SACPC,MAAO,SACPC,SAAU,SACVC,cAAe,SACfC,UAAW,QACXC,aAAc,SACdC,UAAW,SACXC,WAAY,SACZC,UAAW,SACXC,qBAAsB,SACtBC,UAAW,SACXC,WAAY,QACZC,UAAW,SACXC,UAAW,SACXC,YAAa,SACbC,cAAe,QACfC,aAAc,QACdC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,SAChBC,YAAa,SACbC,KAAM,MACNC,UAAW,QACXC,MAAO,SACPC,QAAS,SACTC,OAAQ,QACRC,iBAAkB,QAClBC,WAAY,IACZC,aAAc,SACdC,aAAc,QACdC,eAAgB,QAChBC,gBAAiB,QACjBC,kBAAmB,MACnBC,gBAAiB,QACjBC,gBAAiB,SACjBC,aAAc,QACdC,UAAW,SACXC,UAAW,SACXC,SAAU,SACVC,YAAa,SACbC,KAAM,IACNC,QAAS,SACTC,MAAO,QACPC,UAAW,QACXC,OAAQ,SACRC,UAAW,SACXC,OAAQ,SACRC,cAAe,SACfC,UAAW,SACXC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,UAAW,SACXC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,WAAY,SACZC,OAAQ,QACRC,cAAe,QACfC,IAAK,SACLC,UAAW,SACXC,UAAW,QACXC,YAAa,QACbC,OAAQ,SACRC,WAAY,SACZC,SAAU,QACVC,SAAU,SACVC,OAAQ,SACRC,OAAQ,SACRC,QAAS,QACTC,UAAW,QACXC,UAAW,QACXC,UAAW,QACXC,KAAM,SACNC,YAAa,MACbC,UAAW,QACXC,IAAK,SACLC,KAAM,MACNC,QAAS,SACTC,OAAQ,SACRC,UAAW,QACXC,OAAQ,SACRC,MAAO,SACPC,MAAO,SACPC,WAAY,SACZC,OAAQ,SACRC,YAAa,UAiBf,SAASC,KACP,OAAOxqD,KAAKyqD,MAAMC,YAOpB,SAASC,KACP,OAAO3qD,KAAKyqD,MAAMG,YAGL,SAASzsC,GAAM0sC,GAC5B,IAAIlsD,EAAGiQ,EAEP,OADAi8C,GAAUA,EAAS,IAAIxnD,OAAO3C,eACtB/B,EAAIgiD,GAAMmK,KAAKD,KAAYj8C,EAAIjQ,EAAE,GAAG9G,OAAQ8G,EAAIosD,SAASpsD,EAAE,GAAI,IAAW,IAANiQ,EAAUo8C,GAAKrsD,GAC/E,IAANiQ,EAAU,IAAIq8C,GAAKtsD,GAAK,EAAI,GAAQA,GAAK,EAAI,IAAQA,GAAK,EAAI,GAAY,IAAJA,GAAiB,GAAJA,IAAY,EAAU,GAAJA,EAAU,GACzG,IAANiQ,EAAUs8C,GAAKvsD,GAAK,GAAK,IAAMA,GAAK,GAAK,IAAMA,GAAK,EAAI,KAAW,IAAJA,GAAY,KACrE,IAANiQ,EAAUs8C,GAAMvsD,GAAK,GAAK,GAAQA,GAAK,EAAI,IAAQA,GAAK,EAAI,GAAQA,GAAK,EAAI,IAAQA,GAAK,EAAI,GAAY,IAAJA,IAAkB,GAAJA,IAAY,EAAU,GAAJA,GAAY,KAClJ,OACCA,EAAIiiD,GAAakK,KAAKD,IAAW,IAAII,GAAItsD,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAI,IAC3DA,EAAImiD,GAAagK,KAAKD,IAAW,IAAII,GAAW,IAAPtsD,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAK,IAC/FA,EAAIoiD,GAAc+J,KAAKD,IAAWK,GAAKvsD,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,KAC3DA,EAAIqiD,GAAc8J,KAAKD,IAAWK,GAAY,IAAPvsD,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAKA,EAAE,KAC/FA,EAAIsiD,GAAa6J,KAAKD,IAAWM,GAAKxsD,EAAE,GAAIA,EAAE,GAAK,IAAKA,EAAE,GAAK,IAAK,IACpEA,EAAIuiD,GAAc4J,KAAKD,IAAWM,GAAKxsD,EAAE,GAAIA,EAAE,GAAK,IAAKA,EAAE,GAAK,IAAKA,EAAE,IACxEwiD,GAAMzkD,eAAemuD,GAAUG,GAAK7J,GAAM0J,IAC/B,gBAAXA,EAA2B,IAAII,GAAIrY,IAAKA,IAAKA,IAAK,GAClD,KAGR,SAASoY,GAAKztD,GACZ,OAAO,IAAI0tD,GAAI1tD,GAAK,GAAK,IAAMA,GAAK,EAAI,IAAU,IAAJA,EAAU,GAG1D,SAAS2tD,GAAK5zD,EAAGyI,EAAGvJ,EAAGD,GAErB,OADIA,GAAK,IAAGe,EAAIyI,EAAIvJ,EAAIo8C,KACjB,IAAIqY,GAAI3zD,EAAGyI,EAAGvJ,EAAGD,GAGnB,SAAS60D,GAAWjb,GAEzB,OADMA,aAAakQ,KAAQlQ,EAAIhyB,GAAMgyB,IAChCA,EAEE,IAAI8a,IADX9a,EAAIA,EAAEsa,OACWnzD,EAAG64C,EAAEpwC,EAAGowC,EAAE35C,EAAG25C,EAAE1lC,SAFjB,IAAIwgD,GAKd,SAASR,GAAInzD,EAAGyI,EAAGvJ,EAAGiU,GAC3B,OAA4B,IAArBnM,UAAUzG,OAAeuzD,GAAW9zD,GAAK,IAAI2zD,GAAI3zD,EAAGyI,EAAGvJ,EAAc,MAAXiU,EAAkB,EAAIA,GAGlF,SAASwgD,GAAI3zD,EAAGyI,EAAGvJ,EAAGiU,GAC3BzK,KAAK1I,GAAKA,EACV0I,KAAKD,GAAKA,EACVC,KAAKxJ,GAAKA,EACVwJ,KAAKyK,SAAWA,EA2BlB,SAAS4gD,KACP,MAAO,IAAMC,GAAItrD,KAAK1I,GAAKg0D,GAAItrD,KAAKD,GAAKurD,GAAItrD,KAAKxJ,GAGpD,SAAS+0D,KACP,IAAIh1D,EAAIyJ,KAAKyK,QACb,OAAc,KADQlU,EAAIyK,MAAMzK,GAAK,EAAIW,KAAKqD,IAAI,EAAGrD,KAAKwpC,IAAI,EAAGnqC,KAC/C,OAAS,SACrBW,KAAKqD,IAAI,EAAGrD,KAAKwpC,IAAI,IAAKxpC,KAAKs0D,MAAMxrD,KAAK1I,IAAM,IAAM,KACtDJ,KAAKqD,IAAI,EAAGrD,KAAKwpC,IAAI,IAAKxpC,KAAKs0D,MAAMxrD,KAAKD,IAAM,IAAM,KACtD7I,KAAKqD,IAAI,EAAGrD,KAAKwpC,IAAI,IAAKxpC,KAAKs0D,MAAMxrD,KAAKxJ,IAAM,KACzC,IAAND,EAAU,IAAM,KAAOA,EAAI,KAGpC,SAAS+0D,GAAIrzD,GAEX,QADAA,EAAQf,KAAKqD,IAAI,EAAGrD,KAAKwpC,IAAI,IAAKxpC,KAAKs0D,MAAMvzD,IAAU,KACvC,GAAK,IAAM,IAAMA,EAAMkQ,SAAS,IAGlD,SAASgjD,GAAKpnD,EAAG1F,EAAGuQ,EAAGrY,GAIrB,OAHIA,GAAK,EAAGwN,EAAI1F,EAAIuQ,EAAIgkC,IACfhkC,GAAK,GAAKA,GAAK,EAAG7K,EAAI1F,EAAIu0C,IAC1Bv0C,GAAK,IAAG0F,EAAI6uC,KACd,IAAI6Y,GAAI1nD,EAAG1F,EAAGuQ,EAAGrY,GAGnB,SAASm1D,GAAWvb,GACzB,GAAIA,aAAasb,GAAK,OAAO,IAAIA,GAAItb,EAAEpsC,EAAGosC,EAAE9xC,EAAG8xC,EAAEvhC,EAAGuhC,EAAE1lC,SAEtD,GADM0lC,aAAakQ,KAAQlQ,EAAIhyB,GAAMgyB,KAChCA,EAAG,OAAO,IAAIsb,GACnB,GAAItb,aAAasb,GAAK,OAAOtb,EAE7B,IAAI74C,GADJ64C,EAAIA,EAAEsa,OACInzD,EAAI,IACVyI,EAAIowC,EAAEpwC,EAAI,IACVvJ,EAAI25C,EAAE35C,EAAI,IACVkqC,EAAMxpC,KAAKwpC,IAAIppC,EAAGyI,EAAGvJ,GACrB+D,EAAMrD,KAAKqD,IAAIjD,EAAGyI,EAAGvJ,GACrBuN,EAAI6uC,IACJv0C,EAAI9D,EAAMmmC,EACV9xB,GAAKrU,EAAMmmC,GAAO,EAUtB,OATIriC,GACa0F,EAAXzM,IAAMiD,GAAUwF,EAAIvJ,GAAK6H,EAAc,GAAT0B,EAAIvJ,GAC7BuJ,IAAMxF,GAAU/D,EAAIc,GAAK+G,EAAI,GAC5B/G,EAAIyI,GAAK1B,EAAI,EACvBA,GAAKuQ,EAAI,GAAMrU,EAAMmmC,EAAM,EAAInmC,EAAMmmC,EACrC38B,GAAK,IAEL1F,EAAIuQ,EAAI,GAAKA,EAAI,EAAI,EAAI7K,EAEpB,IAAI0nD,GAAI1nD,EAAG1F,EAAGuQ,EAAGuhC,EAAE1lC,SAO5B,SAASghD,GAAI1nD,EAAG1F,EAAGuQ,EAAGnE,GACpBzK,KAAK+D,GAAKA,EACV/D,KAAK3B,GAAKA,EACV2B,KAAK4O,GAAKA,EACV5O,KAAKyK,SAAWA,EAyClB,SAASkhD,GAAQ5nD,EAAGm2C,EAAI0R,GACtB,OAGY,KAHJ7nD,EAAI,GAAKm2C,GAAM0R,EAAK1R,GAAMn2C,EAAI,GAChCA,EAAI,IAAM6nD,EACV7nD,EAAI,IAAMm2C,GAAM0R,EAAK1R,IAAO,IAAMn2C,GAAK,GACvCm2C,GCjXD,SAAS2R,GAAM7O,EAAI8O,EAAIzzD,EAAIE,EAAIwzD,GACpC,IAAIhP,EAAKC,EAAKA,EAAIgP,EAAKjP,EAAKC,EAC5B,QAAS,EAAI,EAAIA,EAAK,EAAID,EAAKiP,GAAMF,GAC9B,EAAI,EAAI/O,EAAK,EAAIiP,GAAM3zD,GACvB,EAAI,EAAI2kD,EAAK,EAAID,EAAK,EAAIiP,GAAMzzD,EACjCyzD,EAAKD,GAAM,EDoKnB/jB,GAAOqY,GAAOliC,GAAO,CACnBs9B,KAAM,SAASwQ,GACb,OAAOxvD,OAAOQ,OAAO,IAAI+C,KAAKiF,YAAajF,KAAMisD,IAEnDC,YAAa,WACX,OAAOlsD,KAAKyqD,MAAMyB,eAEpBZ,IAAKd,GACLE,UAAWF,GACX2B,UASF,WACE,OAAOT,GAAW1rD,MAAMmsD,aATxBvB,UAAWD,GACXxiD,SAAUwiD,KA6DZ3iB,GAAOijB,GAAKR,GAAK9pB,GAAO0f,GAAO,CAC7BE,SAAU,SAASz8C,GAEjB,OADAA,EAAS,MAALA,EAAYy8C,GAAWrpD,KAAKk1D,IAAI7L,GAAUz8C,GACvC,IAAImnD,GAAIjrD,KAAK1I,EAAIwM,EAAG9D,KAAKD,EAAI+D,EAAG9D,KAAKxJ,EAAIsN,EAAG9D,KAAKyK,UAE1D61C,OAAQ,SAASx8C,GAEf,OADAA,EAAS,MAALA,EAAYw8C,GAASppD,KAAKk1D,IAAI9L,GAAQx8C,GACnC,IAAImnD,GAAIjrD,KAAK1I,EAAIwM,EAAG9D,KAAKD,EAAI+D,EAAG9D,KAAKxJ,EAAIsN,EAAG9D,KAAKyK,UAE1DggD,IAAK,WACH,OAAOzqD,MAETksD,YAAa,WACX,OAAS,IAAOlsD,KAAK1I,GAAK0I,KAAK1I,EAAI,QAC1B,IAAO0I,KAAKD,GAAKC,KAAKD,EAAI,QAC1B,IAAOC,KAAKxJ,GAAKwJ,KAAKxJ,EAAI,OAC3B,GAAKwJ,KAAKyK,SAAWzK,KAAKyK,SAAW,GAE/C6gD,IAAKD,GACLX,UAAWW,GACXT,UAAWW,GACXpjD,SAAUojD,MAiEZvjB,GAAOyjB,IAXA,SAAa1nD,EAAG1F,EAAGuQ,EAAGnE,GAC3B,OAA4B,IAArBnM,UAAUzG,OAAe6zD,GAAW3nD,GAAK,IAAI0nD,GAAI1nD,EAAG1F,EAAGuQ,EAAc,MAAXnE,EAAkB,EAAIA,KAUxEk2B,GAAO0f,GAAO,CAC7BE,SAAU,SAASz8C,GAEjB,OADAA,EAAS,MAALA,EAAYy8C,GAAWrpD,KAAKk1D,IAAI7L,GAAUz8C,GACvC,IAAI2nD,GAAIzrD,KAAK+D,EAAG/D,KAAK3B,EAAG2B,KAAK4O,EAAI9K,EAAG9D,KAAKyK,UAElD61C,OAAQ,SAASx8C,GAEf,OADAA,EAAS,MAALA,EAAYw8C,GAASppD,KAAKk1D,IAAI9L,GAAQx8C,GACnC,IAAI2nD,GAAIzrD,KAAK+D,EAAG/D,KAAK3B,EAAG2B,KAAK4O,EAAI9K,EAAG9D,KAAKyK,UAElDggD,IAAK,WACH,IAAI1mD,EAAI/D,KAAK+D,EAAI,IAAqB,KAAd/D,KAAK+D,EAAI,GAC7B1F,EAAI2C,MAAM+C,IAAM/C,MAAMhB,KAAK3B,GAAK,EAAI2B,KAAK3B,EACzCuQ,EAAI5O,KAAK4O,EACTg9C,EAAKh9C,GAAKA,EAAI,GAAMA,EAAI,EAAIA,GAAKvQ,EACjC67C,EAAK,EAAItrC,EAAIg9C,EACjB,OAAO,IAAIX,GACTU,GAAQ5nD,GAAK,IAAMA,EAAI,IAAMA,EAAI,IAAKm2C,EAAI0R,GAC1CD,GAAQ5nD,EAAGm2C,EAAI0R,GACfD,GAAQ5nD,EAAI,IAAMA,EAAI,IAAMA,EAAI,IAAKm2C,EAAI0R,GACzC5rD,KAAKyK,UAGTyhD,YAAa,WACX,OAAQ,GAAKlsD,KAAK3B,GAAK2B,KAAK3B,GAAK,GAAK2C,MAAMhB,KAAK3B,KACzC,GAAK2B,KAAK4O,GAAK5O,KAAK4O,GAAK,GACzB,GAAK5O,KAAKyK,SAAWzK,KAAKyK,SAAW,GAE/C0hD,UAAW,WACT,IAAI51D,EAAIyJ,KAAKyK,QACb,OAAc,KADQlU,EAAIyK,MAAMzK,GAAK,EAAIW,KAAKqD,IAAI,EAAGrD,KAAKwpC,IAAI,EAAGnqC,KAC/C,OAAS,UACpByJ,KAAK+D,GAAK,GAAK,KACA,KAAf/D,KAAK3B,GAAK,GAAW,MACN,KAAf2B,KAAK4O,GAAK,GAAW,KACf,IAANrY,EAAU,IAAM,KAAOA,EAAI,SExWtC,gBAAec,GAAC,OAAI,kBAAMA,ICE1B,SAASg1D,GAAO91D,EAAGsJ,GACjB,OAAO,SAASskB,GACd,OAAO5tB,EAAI4tB,EAAItkB,GAeZ,SAASysD,GAAM70D,GACpB,OAAoB,KAAZA,GAAKA,GAAW80D,GAAU,SAASh2D,EAAGC,GAC5C,OAAOA,EAAID,EAbf,SAAqBA,EAAGC,EAAGiB,GACzB,OAAOlB,EAAIW,KAAKk1D,IAAI71D,EAAGkB,GAAIjB,EAAIU,KAAKk1D,IAAI51D,EAAGiB,GAAKlB,EAAGkB,EAAI,EAAIA,EAAG,SAAS0sB,GACrE,OAAOjtB,KAAKk1D,IAAI71D,EAAI4tB,EAAI3tB,EAAGiB,IAWZ+0D,CAAYj2D,EAAGC,EAAGiB,GAAKuhD,GAASh4C,MAAMzK,GAAKC,EAAID,IAInD,SAASg2D,GAAQh2D,EAAGC,GACjC,IAAIqJ,EAAIrJ,EAAID,EACZ,OAAOsJ,EAAIwsD,GAAO91D,EAAGsJ,GAAKm5C,GAASh4C,MAAMzK,GAAKC,EAAID,GCtBpD,OAAe,SAAUk2D,EAASh1D,GAChC,IAAI0mB,EAAQmuC,GAAM70D,GAElB,SAASgzD,EAAIxoC,EAAOE,GAClB,IAAI7qB,EAAI6mB,GAAO8D,EAAQyqC,GAASzqC,IAAQ3qB,GAAI6qB,EAAMuqC,GAASvqC,IAAM7qB,GAC7DyI,EAAIoe,EAAM8D,EAAMliB,EAAGoiB,EAAIpiB,GACvBvJ,EAAI2nB,EAAM8D,EAAMzrB,EAAG2rB,EAAI3rB,GACvBiU,EAAU8hD,GAAQtqC,EAAMxX,QAAS0X,EAAI1X,SACzC,OAAO,SAAS0Z,GAKd,OAJAlC,EAAM3qB,EAAIA,EAAE6sB,GACZlC,EAAMliB,EAAIA,EAAEokB,GACZlC,EAAMzrB,EAAIA,EAAE2tB,GACZlC,EAAMxX,QAAUA,EAAQ0Z,GACjBlC,EAAQ,IAMnB,OAFAwoC,EAAI6B,MAAQG,EAELhC,EAnBT,CAoBG,GAEH,SAASkC,GAAUC,GACjB,OAAO,SAASC,GACd,IAII91D,EAAGonB,EAJH5gB,EAAIsvD,EAAOh1D,OACXP,EAAI,IAAIC,MAAMgG,GACdwC,EAAI,IAAIxI,MAAMgG,GACd/G,EAAI,IAAIe,MAAMgG,GAElB,IAAKxG,EAAI,EAAGA,EAAIwG,IAAKxG,EACnBonB,EAAQuuC,GAASG,EAAO91D,IACxBO,EAAEP,GAAKonB,EAAM7mB,GAAK,EAClByI,EAAEhJ,GAAKonB,EAAMpe,GAAK,EAClBvJ,EAAEO,GAAKonB,EAAM3nB,GAAK,EAMpB,OAJAc,EAAIs1D,EAAOt1D,GACXyI,EAAI6sD,EAAO7sD,GACXvJ,EAAIo2D,EAAOp2D,GACX2nB,EAAM1T,QAAU,EACT,SAAS0Z,GAId,OAHAhG,EAAM7mB,EAAIA,EAAE6sB,GACZhG,EAAMpe,EAAIA,EAAEokB,GACZhG,EAAM3nB,EAAIA,EAAE2tB,GACLhG,EAAQ,KAKCwuC,IH7CP,SAASriB,GACtB,IAAI/sC,EAAI+sC,EAAOzyC,OAAS,EACxB,OAAO,SAASssB,GACd,IAAIptB,EAAIotB,GAAK,EAAKA,EAAI,EAAKA,GAAK,GAAKA,EAAI,EAAG5mB,EAAI,GAAKrG,KAAKu3C,MAAMtqB,EAAI5mB,GAChElF,EAAKiyC,EAAOvzC,GACZwB,EAAK+xC,EAAOvzC,EAAI,GAChB+0D,EAAK/0D,EAAI,EAAIuzC,EAAOvzC,EAAI,GAAK,EAAIsB,EAAKE,EACtCwzD,EAAKh1D,EAAIwG,EAAI,EAAI+sC,EAAOvzC,EAAI,GAAK,EAAIwB,EAAKF,EAC9C,OAAOwzD,IAAO1nC,EAAIptB,EAAIwG,GAAKA,EAAGuuD,EAAIzzD,EAAIE,EAAIwzD,OGsClBY,ICpDb,SAASriB,GACtB,IAAI/sC,EAAI+sC,EAAOzyC,OACf,OAAO,SAASssB,GACd,IAAIptB,EAAIG,KAAKu3C,QAAQtqB,GAAK,GAAK,IAAMA,EAAIA,GAAK5mB,GAC1CuuD,EAAKxhB,GAAQvzC,EAAIwG,EAAI,GAAKA,GAC1BlF,EAAKiyC,EAAOvzC,EAAIwG,GAChBhF,EAAK+xC,GAAQvzC,EAAI,GAAKwG,GACtBwuD,EAAKzhB,GAAQvzC,EAAI,GAAKwG,GAC1B,OAAOsuD,IAAO1nC,EAAIptB,EAAIwG,GAAKA,EAAGuuD,EAAIzzD,EAAIE,EAAIwzD,OD2CvC,IEnDHe,GAAM,8CACNC,GAAM,IAAIlM,OAAOiM,GAAI7uD,OAAQ,KAclB,YAAS1H,EAAGC,GACzB,IACIw2D,EACAC,EACAC,EAHA/3B,EAAK23B,GAAIK,UAAYJ,GAAII,UAAY,EAIrCp2D,GAAK,EACLsH,EAAI,GACJ6lB,EAAI,GAMR,IAHA3tB,GAAQ,GAAIC,GAAQ,IAGZw2D,EAAKF,GAAIhC,KAAKv0D,MACd02D,EAAKF,GAAIjC,KAAKt0D,MACf02D,EAAKD,EAAGh+B,OAASkG,IACpB+3B,EAAK12D,EAAEkD,MAAMy7B,EAAI+3B,GACb7uD,EAAEtH,GAAIsH,EAAEtH,IAAMm2D,EACb7uD,IAAItH,GAAKm2D,IAEXF,EAAKA,EAAG,OAASC,EAAKA,EAAG,IACxB5uD,EAAEtH,GAAIsH,EAAEtH,IAAMk2D,EACb5uD,IAAItH,GAAKk2D,GAEd5uD,IAAItH,GAAK,KACTmtB,EAAE5pB,KAAK,CAACvD,EAAGA,EAAGM,EAAGmnB,GAAOwuC,EAAIC,MAE9B93B,EAAK43B,GAAII,UAYX,OARIh4B,EAAK3+B,EAAEqB,SACTq1D,EAAK12D,EAAEkD,MAAMy7B,GACT92B,EAAEtH,GAAIsH,EAAEtH,IAAMm2D,EACb7uD,IAAItH,GAAKm2D,GAKT7uD,EAAExG,OAAS,EAAKqsB,EAAE,GA7C3B,SAAa1tB,GACX,OAAO,SAAS2tB,GACd,OAAO3tB,EAAE2tB,GAAK,IA4CVipC,CAAIlpC,EAAE,GAAG7sB,GApDjB,SAAcb,GACZ,OAAO,WACL,OAAOA,GAmDH62D,CAAK72D,IACJA,EAAI0tB,EAAErsB,OAAQ,SAASssB,GACtB,IAAK,IAAWgsB,EAAPp5C,EAAI,EAAMA,EAAIP,IAAKO,EAAGsH,GAAG8xC,EAAIjsB,EAAEntB,IAAIA,GAAKo5C,EAAE94C,EAAE8sB,GACrD,OAAO9lB,EAAEb,KAAK,MC1DT,YAASjH,EAAGC,GACzB,IAAI0B,EACJ,OAAqB,kBAAN1B,EAAiB82D,GAC1B92D,aAAa2nB,GAAQovC,IACpBr1D,EAAIimB,GAAM3nB,KAAOA,EAAI0B,EAAGq1D,IACzBC,IAAmBj3D,EAAGC,GCH9B,SAASo9C,GAAW3vC,GAClB,OAAO,WACLjE,KAAKoB,gBAAgB6C,IAIzB,SAAS4vC,GAAaC,GACpB,OAAO,WACL9zC,KAAK+zC,kBAAkBD,EAASJ,MAAOI,EAASH,QAIpD,SAASK,GAAa/vC,EAAMwpD,EAAaC,GACvC,IAAIC,EAEAC,EADAC,EAAUH,EAAS,GAEvB,OAAO,WACL,IAAII,EAAU9tD,KAAKo1C,aAAanxC,GAChC,OAAO6pD,IAAYD,EAAU,KACvBC,IAAYH,EAAWC,EACvBA,EAAeH,EAAYE,EAAWG,EAASJ,IAIzD,SAASzZ,GAAeH,EAAU2Z,EAAaC,GAC7C,IAAIC,EAEAC,EADAC,EAAUH,EAAS,GAEvB,OAAO,WACL,IAAII,EAAU9tD,KAAK46C,eAAe9G,EAASJ,MAAOI,EAASH,OAC3D,OAAOma,IAAYD,EAAU,KACvBC,IAAYH,EAAWC,EACvBA,EAAeH,EAAYE,EAAWG,EAASJ,IAIzD,SAASxZ,GAAajwC,EAAMwpD,EAAax1D,GACvC,IAAI01D,EACAI,EACAH,EACJ,OAAO,WACL,IAAIE,EAA+BD,EAAtBH,EAASz1D,EAAM+H,MAC5B,GAAc,MAAV0tD,EAGJ,OAFAI,EAAU9tD,KAAKo1C,aAAanxC,OAC5B4pD,EAAUH,EAAS,IACU,KACvBI,IAAYH,GAAYE,IAAYE,EAAWH,GAC9CG,EAAWF,EAASD,EAAeH,EAAYE,EAAWG,EAASJ,IAL1C1tD,KAAKoB,gBAAgB6C,IASzD,SAASkwC,GAAeL,EAAU2Z,EAAax1D,GAC7C,IAAI01D,EACAI,EACAH,EACJ,OAAO,WACL,IAAIE,EAA+BD,EAAtBH,EAASz1D,EAAM+H,MAC5B,GAAc,MAAV0tD,EAGJ,OAFAI,EAAU9tD,KAAK46C,eAAe9G,EAASJ,MAAOI,EAASH,WACvDka,EAAUH,EAAS,IACU,KACvBI,IAAYH,GAAYE,IAAYE,EAAWH,GAC9CG,EAAWF,EAASD,EAAeH,EAAYE,EAAWG,EAASJ,IAL1C1tD,KAAK+zC,kBAAkBD,EAASJ,MAAOI,EAASH,QC5DpF,SAASqa,GAAgB/pD,EAAMlN,GAC7B,OAAO,SAASotB,GACdnkB,KAAKqB,aAAa4C,EAAMlN,EAAEyH,KAAKwB,KAAMmkB,KAIzC,SAAS8pC,GAAkBna,EAAU/8C,GACnC,OAAO,SAASotB,GACdnkB,KAAKsB,eAAewyC,EAASJ,MAAOI,EAASH,MAAO58C,EAAEyH,KAAKwB,KAAMmkB,KAIrE,SAAS+pC,GAAYpa,EAAU77C,GAC7B,IAAI6kD,EAAIzD,EACR,SAASuE,IACP,IAAI7mD,EAAIkB,EAAM4W,MAAM7O,KAAM1B,WAE1B,OADIvH,IAAMsiD,IAAIyD,GAAMzD,EAAKtiD,IAAMk3D,GAAkBna,EAAU/8C,IACpD+lD,EAGT,OADAc,EAAMuQ,OAASl2D,EACR2lD,EAGT,SAASwQ,GAAUnqD,EAAMhM,GACvB,IAAI6kD,EAAIzD,EACR,SAASuE,IACP,IAAI7mD,EAAIkB,EAAM4W,MAAM7O,KAAM1B,WAE1B,OADIvH,IAAMsiD,IAAIyD,GAAMzD,EAAKtiD,IAAMi3D,GAAgB/pD,EAAMlN,IAC9C+lD,EAGT,OADAc,EAAMuQ,OAASl2D,EACR2lD,EC/BT,SAASyQ,GAAc70D,EAAIvB,GACzB,OAAO,WACLgmD,GAAKj+C,KAAMxG,GAAI+1C,OAASt3C,EAAM4W,MAAM7O,KAAM1B,YAI9C,SAASgwD,GAAc90D,EAAIvB,GACzB,OAAOA,GAASA,EAAO,WACrBgmD,GAAKj+C,KAAMxG,GAAI+1C,MAAQt3C,GCR3B,SAASs2D,GAAiB/0D,EAAIvB,GAC5B,OAAO,WACL0L,GAAI3D,KAAMxG,GAAIukD,UAAY9lD,EAAM4W,MAAM7O,KAAM1B,YAIhD,SAASkwD,GAAiBh1D,EAAIvB,GAC5B,OAAOA,GAASA,EAAO,WACrB0L,GAAI3D,KAAMxG,GAAIukD,SAAW9lD,GCR7B,SAASw2D,GAAaj1D,EAAIvB,GACxB,GAAqB,oBAAVA,EAAsB,MAAM,IAAI4G,MAC3C,OAAO,WACL8E,GAAI3D,KAAMxG,GAAIwkD,KAAO/lD,GCKzB,SAASy2D,GAAWl1D,EAAIyK,EAAMkf,GAC5B,IAAIwrC,EAAKC,EAAKC,EAThB,SAAe5qD,GACb,OAAQA,EAAO,IAAIZ,OAAO3F,MAAM,SAASoxD,OAAM,SAAS3qC,GACtD,IAAIptB,EAAIotB,EAAExY,QAAQ,KAElB,OADI5U,GAAK,IAAGotB,EAAIA,EAAEzqB,MAAM,EAAG3C,KACnBotB,GAAW,UAANA,KAKKlC,CAAMhe,GAAQg6C,GAAOt6C,GACzC,OAAO,WACL,IAAIk6C,EAAWgR,EAAI7uD,KAAMxG,GACrB09C,EAAK2G,EAAS3G,GAKdA,IAAOyX,IAAMC,GAAOD,EAAMzX,GAAIuE,QAAQvE,GAAGjzC,EAAMkf,GAEnD06B,EAAS3G,GAAK0X,GCnBlB,IAAI5W,GAAYG,GAAAA,UAAAA,YCiBhB,SAAS/D,GAAYnwC,GACnB,OAAO,WACLjE,KAAK0L,MAAM2oC,eAAepwC,ICrB9B,SAAS8qD,GAAiB9qD,EAAMlN,EAAG+a,GACjC,OAAO,SAASqS,GACdnkB,KAAK0L,MAAME,YAAY3H,EAAMlN,EAAEyH,KAAKwB,KAAMmkB,GAAIrS,IAIlD,SAASk9C,GAAW/qD,EAAMhM,EAAO6Z,GAC/B,IAAIqS,EAAGk1B,EACP,SAASuE,IACP,IAAI7mD,EAAIkB,EAAM4W,MAAM7O,KAAM1B,WAE1B,OADIvH,IAAMsiD,IAAIl1B,GAAKk1B,EAAKtiD,IAAMg4D,GAAiB9qD,EAAMlN,EAAG+a,IACjDqS,EAGT,OADAy5B,EAAMuQ,OAASl2D,EACR2lD,ECdT,SAASqR,GAAgBl4D,GACvB,OAAO,SAASotB,GACdnkB,KAAK0H,YAAc3Q,EAAEyH,KAAKwB,KAAMmkB,IAIpC,SAAS+qC,GAAUj3D,GACjB,IAAI6kD,EAAIzD,EACR,SAASuE,IACP,IAAI7mD,EAAIkB,EAAM4W,MAAM7O,KAAM1B,WAE1B,OADIvH,IAAMsiD,IAAIyD,GAAMzD,EAAKtiD,IAAMk4D,GAAgBl4D,IACxC+lD,EAGT,OADAc,EAAMuQ,OAASl2D,EACR2lD,ECQT,IAAIpkD,GAAK,EAEF,SAAS21D,GAAWtX,EAAQI,EAASh0C,EAAMzK,GAChDwG,KAAK83C,QAAUD,EACf73C,KAAKk4C,SAAWD,EAChBj4C,KAAKovD,MAAQnrD,EACbjE,KAAKmgD,IAAM3mD,EAON,SAAS61D,KACd,QAAS71D,GAGX,IAAI81D,GAAsBnX,GAAAA,UAE1BgX,GAAWxyD,UAVI,SAAoBsH,GACjC,OAAOk0C,KAAY/kC,WAAWnP,IASEtH,UAAX,GACrBsI,YAAakqD,GACb/W,OCvCa,SAASA,GACtB,IAAIn0C,EAAOjE,KAAKovD,MACZ51D,EAAKwG,KAAKmgD,IAEQ,oBAAX/H,IAAuBA,EAASrH,EAASqH,IAEpD,IAAK,IAAIP,EAAS73C,KAAK83C,QAASn5C,EAAIk5C,EAAOhgD,OAAQwgD,EAAY,IAAI9gD,MAAMoH,GAAInG,EAAI,EAAGA,EAAImG,IAAKnG,EAC3F,IAAK,IAAiFuoB,EAAMu3B,EAAnFrG,EAAQ4F,EAAOr/C,GAAI+E,EAAI00C,EAAMp6C,OAAQ0gD,EAAWF,EAAU7/C,GAAK,IAAIjB,MAAMgG,GAAmBxG,EAAI,EAAGA,EAAIwG,IAAKxG,GAC9GgqB,EAAOkxB,EAAMl7C,MAAQuhD,EAAUF,EAAO55C,KAAKuiB,EAAMA,EAAKgxB,SAAUh7C,EAAGk7C,MAClE,aAAclxB,IAAMu3B,EAAQvG,SAAWhxB,EAAKgxB,UAChDwG,EAASxhD,GAAKuhD,EACduF,GAAStF,EAASxhD,GAAIkN,EAAMzK,EAAIzC,EAAGwhD,EAAUrzC,GAAI6b,EAAMvnB,KAK7D,OAAO,IAAI21D,GAAW9W,EAAWr4C,KAAKk4C,SAAUj0C,EAAMzK,IDwBtDg/C,UExCa,SAASJ,GACtB,IAAIn0C,EAAOjE,KAAKovD,MACZ51D,EAAKwG,KAAKmgD,IAEQ,oBAAX/H,IAAuBA,EAASM,EAAYN,IAEvD,IAAK,IAAIP,EAAS73C,KAAK83C,QAASn5C,EAAIk5C,EAAOhgD,OAAQwgD,EAAY,GAAIJ,EAAU,GAAIz/C,EAAI,EAAGA,EAAImG,IAAKnG,EAC/F,IAAK,IAAyCuoB,EAArCkxB,EAAQ4F,EAAOr/C,GAAI+E,EAAI00C,EAAMp6C,OAAcd,EAAI,EAAGA,EAAIwG,IAAKxG,EAClE,GAAIgqB,EAAOkxB,EAAMl7C,GAAI,CACnB,IAAK,IAA2D+Y,EAAvDlJ,EAAWwxC,EAAO55C,KAAKuiB,EAAMA,EAAKgxB,SAAUh7C,EAAGk7C,GAAesd,EAAUrqD,GAAI6b,EAAMvnB,GAAKsK,EAAI,EAAG8K,EAAIhI,EAAS/O,OAAQiM,EAAI8K,IAAK9K,GAC/HgM,EAAQlJ,EAAS9C,KACnB+5C,GAAS/tC,EAAO7L,EAAMzK,EAAIsK,EAAG8C,EAAU2oD,GAG3ClX,EAAU/9C,KAAKsM,GACfqxC,EAAQ39C,KAAKymB,GAKnB,OAAO,IAAIouC,GAAW9W,EAAWJ,EAASh0C,EAAMzK,IFqBhDm/C,YAAa2W,GAAoB3W,YACjCE,eAAgByW,GAAoBzW,eACpCrH,OG5Ca,SAASluC,GACD,oBAAVA,IAAsBA,EAAQy1C,EAAQz1C,IAEjD,IAAK,IAAIu0C,EAAS73C,KAAK83C,QAASn5C,EAAIk5C,EAAOhgD,OAAQwgD,EAAY,IAAI9gD,MAAMoH,GAAInG,EAAI,EAAGA,EAAImG,IAAKnG,EAC3F,IAAK,IAAuEuoB,EAAnEkxB,EAAQ4F,EAAOr/C,GAAI+E,EAAI00C,EAAMp6C,OAAQ0gD,EAAWF,EAAU7/C,GAAK,GAAUzB,EAAI,EAAGA,EAAIwG,IAAKxG,GAC3FgqB,EAAOkxB,EAAMl7C,KAAOuM,EAAM9E,KAAKuiB,EAAMA,EAAKgxB,SAAUh7C,EAAGk7C,IAC1DsG,EAASj+C,KAAKymB,GAKpB,OAAO,IAAIouC,GAAW9W,EAAWr4C,KAAKk4C,SAAUl4C,KAAKovD,MAAOpvD,KAAKmgD,MHkCjErG,MI9Ca,SAAS1mC,GACtB,GAAIA,EAAW+sC,MAAQngD,KAAKmgD,IAAK,MAAM,IAAIthD,MAE3C,IAAK,IAAIk7C,EAAU/5C,KAAK83C,QAASkC,EAAU5mC,EAAW0kC,QAASmC,EAAKF,EAAQliD,OAAQqiD,EAAKF,EAAQniD,OAAQ8G,EAAIzH,KAAKwpC,IAAIuZ,EAAIC,GAAKC,EAAS,IAAI5iD,MAAM0iD,GAAKzhD,EAAI,EAAGA,EAAImG,IAAKnG,EACrK,IAAK,IAAmGuoB,EAA/Fq5B,EAASL,EAAQvhD,GAAI6hD,EAASL,EAAQxhD,GAAI+E,EAAI68C,EAAOviD,OAAQiiD,EAAQK,EAAO3hD,GAAK,IAAIjB,MAAMgG,GAAUxG,EAAI,EAAGA,EAAIwG,IAAKxG,GACxHgqB,EAAOq5B,EAAOrjD,IAAMsjD,EAAOtjD,MAC7B+iD,EAAM/iD,GAAKgqB,GAKjB,KAAOvoB,EAAIyhD,IAAMzhD,EACf2hD,EAAO3hD,GAAKuhD,EAAQvhD,GAGtB,OAAO,IAAI22D,GAAWhV,EAAQn6C,KAAKk4C,SAAUl4C,KAAKovD,MAAOpvD,KAAKmgD,MJgC9DhI,UJ7Ca,WACb,OAAO,IAAIH,GAAUh4C,KAAK83C,QAAS93C,KAAKk4C,WI6CxC9kC,WK/Ca,WAKb,IAJA,IAAInP,EAAOjE,KAAKovD,MACZI,EAAMxvD,KAAKmgD,IACXsP,EAAMJ,KAEDxX,EAAS73C,KAAK83C,QAASn5C,EAAIk5C,EAAOhgD,OAAQW,EAAI,EAAGA,EAAImG,IAAKnG,EACjE,IAAK,IAAyCuoB,EAArCkxB,EAAQ4F,EAAOr/C,GAAI+E,EAAI00C,EAAMp6C,OAAcd,EAAI,EAAGA,EAAIwG,IAAKxG,EAClE,GAAIgqB,EAAOkxB,EAAMl7C,GAAI,CACnB,IAAIw4D,EAAUrqD,GAAI6b,EAAMyuC,GACxB3R,GAAS98B,EAAM9c,EAAMwrD,EAAK14D,EAAGk7C,EAAO,CAClCnzB,KAAMywC,EAAQzwC,KAAOywC,EAAQhgB,MAAQggB,EAAQxR,SAC7CxO,MAAO,EACPwO,SAAUwR,EAAQxR,SAClBC,KAAMuR,EAAQvR,OAMtB,OAAO,IAAImR,GAAWtX,EAAQ73C,KAAKk4C,SAAUj0C,EAAMwrD,IL6BnDjxD,KAAM8wD,GAAoB9wD,KAC1Bi8C,MAAO6U,GAAoB7U,MAC3B15B,KAAMuuC,GAAoBvuC,KAC1BwY,KAAM+1B,GAAoB/1B,KAC1B2X,MAAOoe,GAAoBpe,MAC3BwJ,KAAM4U,GAAoB5U,KAC1BxD,GLhCa,SAASjzC,EAAMkf,GAC5B,IAAI3pB,EAAKwG,KAAKmgD,IAEd,OAAO7hD,UAAUzG,OAAS,EACpBqN,GAAIlF,KAAK+gB,OAAQvnB,GAAI09C,GAAGA,GAAGjzC,GAC3BjE,KAAK06C,KAAKgU,GAAWl1D,EAAIyK,EAAMkf,KK4BrCw3B,KVaa,SAAS12C,EAAMhM,GAC5B,IAAI67C,EAAW0C,EAAUvyC,GAAOlN,EAAiB,cAAb+8C,EAA2BgL,GAAuB2O,GACtF,OAAOztD,KAAKouD,UAAUnqD,EAAuB,oBAAVhM,GAC5B67C,EAASH,MAAQQ,GAAiBD,IAAcJ,EAAU/8C,EAAGmpD,GAAWlgD,KAAM,QAAUiE,EAAMhM,IACtF,MAATA,GAAiB67C,EAASH,MAAQE,GAAeD,IAAYE,IAC5DA,EAASH,MAAQM,GAAiBD,IAAcF,EAAU/8C,EAAGkB,KUjBpEm2D,UTvBa,SAASnqD,EAAMhM,GAC5B,IAAIsG,EAAM,QAAU0F,EACpB,GAAI3F,UAAUzG,OAAS,EAAG,OAAQ0G,EAAMyB,KAAK49C,MAAMr/C,KAASA,EAAI4vD,OAChE,GAAa,MAATl2D,EAAe,OAAO+H,KAAK49C,MAAMr/C,EAAK,MAC1C,GAAqB,oBAAVtG,EAAsB,MAAM,IAAI4G,MAC3C,IAAIi1C,EAAW0C,EAAUvyC,GACzB,OAAOjE,KAAK49C,MAAMr/C,GAAMu1C,EAASH,MAAQua,GAAcE,IAAWta,EAAU77C,KSkB5EyT,MHQa,SAASzH,EAAMhM,EAAO6Z,GACnC,IAAI/a,EAAqB,eAAhBkN,GAAQ,IAAsB66C,GAAuB2O,GAC9D,OAAgB,MAATx1D,EAAgB+H,KAClBgvD,WAAW/qD,EAjElB,SAAmBA,EAAMwpD,GACvB,IAAIE,EACAI,EACAH,EACJ,OAAO,WACL,IAAIE,EAAUpiD,EAAM1L,KAAMiE,GACtB4pD,GAAW7tD,KAAK0L,MAAM2oC,eAAepwC,GAAOyH,EAAM1L,KAAMiE,IAC5D,OAAO6pD,IAAYD,EAAU,KACvBC,IAAYH,GAAYE,IAAYE,EAAWH,EAC/CA,EAAeH,EAAYE,EAAWG,EAASC,EAAWF,IAwD5C6B,CAAUzrD,EAAMlN,IACjCmgD,GAAG,aAAejzC,EAAMmwC,GAAYnwC,IACpB,oBAAVhM,EAAuB+H,KAC7BgvD,WAAW/qD,EArClB,SAAuBA,EAAMwpD,EAAax1D,GACxC,IAAI01D,EACAI,EACAH,EACJ,OAAO,WACL,IAAIE,EAAUpiD,EAAM1L,KAAMiE,GACtBypD,EAASz1D,EAAM+H,MACf6tD,EAAUH,EAAS,GAEvB,OADc,MAAVA,IAAoC1tD,KAAK0L,MAAM2oC,eAAepwC,GAA9C4pD,EAAUH,EAA2ChiD,EAAM1L,KAAMiE,IAC9E6pD,IAAYD,EAAU,KACvBC,IAAYH,GAAYE,IAAYE,EAAWH,GAC9CG,EAAWF,EAASD,EAAeH,EAAYE,EAAWG,EAASJ,KA0BtDnZ,CAActwC,EAAMlN,EAAGmpD,GAAWlgD,KAAM,SAAWiE,EAAMhM,KAC1EyiD,KAvBP,SAA0BlhD,EAAIyK,GAC5B,IAAI0qD,EAAKC,EAAKe,EAAwDla,EAA7Cl3C,EAAM,SAAW0F,EAAMmb,EAAQ,OAAS7gB,EACjE,OAAO,WACL,IAAIs/C,EAAWl6C,GAAI3D,KAAMxG,GACrB09C,EAAK2G,EAAS3G,GACd/zB,EAAkC,MAAvB06B,EAAS5lD,MAAMsG,GAAek3C,IAAWA,EAASrB,GAAYnwC,SAAShL,EAKlFi+C,IAAOyX,GAAOgB,IAAcxsC,IAAWyrC,GAAOD,EAAMzX,GAAIuE,QAAQvE,GAAG93B,EAAOuwC,EAAYxsC,GAE1F06B,EAAS3G,GAAK0X,GAWNgB,CAAiB5vD,KAAKmgD,IAAKl8C,IACjCjE,KACCgvD,WAAW/qD,EApDlB,SAAuBA,EAAMwpD,EAAaC,GACxC,IAAIC,EAEAC,EADAC,EAAUH,EAAS,GAEvB,OAAO,WACL,IAAII,EAAUpiD,EAAM1L,KAAMiE,GAC1B,OAAO6pD,IAAYD,EAAU,KACvBC,IAAYH,EAAWC,EACvBA,EAAeH,EAAYE,EAAWG,EAASJ,IA4CjCpZ,CAAcrwC,EAAMlN,EAAGkB,GAAQ6Z,GAChDolC,GAAG,aAAejzC,EAAM,OGjB7B+qD,WF5Ca,SAAS/qD,EAAMhM,EAAO6Z,GACnC,IAAIvT,EAAM,UAAY0F,GAAQ,IAC9B,GAAI3F,UAAUzG,OAAS,EAAG,OAAQ0G,EAAMyB,KAAK49C,MAAMr/C,KAASA,EAAI4vD,OAChE,GAAa,MAATl2D,EAAe,OAAO+H,KAAK49C,MAAMr/C,EAAK,MAC1C,GAAqB,oBAAVtG,EAAsB,MAAM,IAAI4G,MAC3C,OAAOmB,KAAK49C,MAAMr/C,EAAKywD,GAAW/qD,EAAMhM,EAAmB,MAAZ6Z,EAAmB,GAAKA,KEwCvE+M,KM/Ca,SAAS5mB,GACtB,OAAO+H,KAAK49C,MAAM,OAAyB,oBAAV3lD,EARnC,SAAsBA,GACpB,OAAO,WACL,IAAIy1D,EAASz1D,EAAM+H,MACnBA,KAAK0H,YAAwB,MAAVgmD,EAAiB,GAAKA,GAMrC3X,CAAamK,GAAWlgD,KAAM,OAAQ/H,IAf9C,SAAsBA,GACpB,OAAO,WACL+H,KAAK0H,YAAczP,GAcf69C,CAAsB,MAAT79C,EAAgB,GAAKA,EAAQ,MN6ChDi3D,UD9Ca,SAASj3D,GACtB,IAAIsG,EAAM,OACV,GAAID,UAAUzG,OAAS,EAAG,OAAQ0G,EAAMyB,KAAK49C,MAAMr/C,KAASA,EAAI4vD,OAChE,GAAa,MAATl2D,EAAe,OAAO+H,KAAK49C,MAAMr/C,EAAK,MAC1C,GAAqB,oBAAVtG,EAAsB,MAAM,IAAI4G,MAC3C,OAAOmB,KAAK49C,MAAMr/C,EAAK2wD,GAAUj3D,KC0CjCw9C,OOxDa,WACb,OAAOz1C,KAAKk3C,GAAG,aATjB,SAAwB19C,GACtB,OAAO,WACL,IAAIm4C,EAAS3xC,KAAKqN,WAClB,IAAK,IAAItW,KAAKiJ,KAAK29C,aAAc,IAAK5mD,IAAMyC,EAAI,OAC5Cm4C,GAAQA,EAAOtpC,YAAYrI,OAKJ6vD,CAAe7vD,KAAKmgD,OPwDjDvC,MpBda,SAAS35C,EAAMhM,GAC5B,IAAIuB,EAAKwG,KAAKmgD,IAId,GAFAl8C,GAAQ,GAEJ3F,UAAUzG,OAAS,EAAG,CAExB,IADA,IACkCssB,EAD9By5B,EAAQ14C,GAAIlF,KAAK+gB,OAAQvnB,GAAIokD,MACxB7mD,EAAI,EAAGwG,EAAIqgD,EAAM/lD,OAAWd,EAAIwG,IAAKxG,EAC5C,IAAKotB,EAAIy5B,EAAM7mD,IAAIkN,OAASA,EAC1B,OAAOkgB,EAAElsB,MAGb,OAAO,KAGT,OAAO+H,KAAK06C,MAAe,MAATziD,EAAgB6nD,GAAcG,IAAezmD,EAAIyK,EAAMhM,KoBAzEs3C,MRpDa,SAASt3C,GACtB,IAAIuB,EAAKwG,KAAKmgD,IAEd,OAAO7hD,UAAUzG,OACXmI,KAAK06C,MAAuB,oBAAVziD,EACdo2D,GACAC,IAAe90D,EAAIvB,IACvBiN,GAAIlF,KAAK+gB,OAAQvnB,GAAI+1C,OQ8C3BwO,SPrDa,SAAS9lD,GACtB,IAAIuB,EAAKwG,KAAKmgD,IAEd,OAAO7hD,UAAUzG,OACXmI,KAAK06C,MAAuB,oBAAVziD,EACds2D,GACAC,IAAkBh1D,EAAIvB,IAC1BiN,GAAIlF,KAAK+gB,OAAQvnB,GAAIukD,UO+C3BC,KN3Da,SAAS/lD,GACtB,IAAIuB,EAAKwG,KAAKmgD,IAEd,OAAO7hD,UAAUzG,OACXmI,KAAK06C,KAAK+T,GAAaj1D,EAAIvB,IAC3BiN,GAAIlF,KAAK+gB,OAAQvnB,GAAIwkD,MMuD3B8R,YQ3Da,SAAS73D,GACtB,GAAqB,oBAAVA,EAAsB,MAAM,IAAI4G,MAC3C,OAAOmB,KAAK06C,KAVd,SAAqBlhD,EAAIvB,GACvB,OAAO,WACL,IAAImsB,EAAInsB,EAAM4W,MAAM7O,KAAM1B,WAC1B,GAAiB,oBAAN8lB,EAAkB,MAAM,IAAIvlB,MACvC8E,GAAI3D,KAAMxG,GAAIwkD,KAAO55B,GAMN0rC,CAAY9vD,KAAKmgD,IAAKloD,KR0DvCkqB,ISpEa,WACb,IAAIwsC,EAAKC,EAAKlT,EAAO17C,KAAMxG,EAAKkiD,EAAKyE,IAAK5mB,EAAOmiB,EAAKniB,OACtD,OAAO,IAAIoT,SAAQ,SAAS/B,EAASC,GACnC,IAAIklB,EAAS,CAAC93D,MAAO4yC,GACjB1oB,EAAM,CAAClqB,MAAO,WAA4B,MAATshC,GAAYqR,MAEjD8Q,EAAKhB,MAAK,WACR,IAAImD,EAAWl6C,GAAI3D,KAAMxG,GACrB09C,EAAK2G,EAAS3G,GAKdA,IAAOyX,KACTC,GAAOD,EAAMzX,GAAIuE,QACbH,EAAEyU,OAAOz1D,KAAKy1D,GAClBnB,EAAItT,EAAE0U,UAAU11D,KAAKy1D,GACrBnB,EAAItT,EAAEn5B,IAAI7nB,KAAK6nB,IAGjB07B,EAAS3G,GAAK0X,KAIH,IAATr1B,GAAYqR,ST6CjBhoC,OAAOK,SAAWqsD,GAAoB1sD,OAAOK,WUlEhD,IAAIgtD,GAAgB,CAClBnxC,KAAM,KACNywB,MAAO,EACPwO,SAAU,IACVC,KCDK,SAAoB75B,GACzB,QAASA,GAAK,IAAM,EAAIA,EAAIA,EAAIA,GAAKA,GAAK,GAAKA,EAAIA,EAAI,GAAK,IDG9D,SAASorC,GAAQxuC,EAAMvnB,GAErB,IADA,IAAIikD,IACKA,EAAS18B,EAAK48B,iBAAmBF,EAASA,EAAOjkD,KACxD,KAAMunB,EAAOA,EAAK1T,YAChB,MAAM,IAAIxO,MAAJ,qBAAwBrF,EAAxB,eAGV,OAAOikD,EEfTtF,GAAAA,UAAAA,UCFe,SAASl0C,GACtB,OAAOjE,KAAK06C,MAAK,YCDJ,SAAS35B,EAAM9c,GAC5B,IACI45C,EACAqS,EAEAn5D,EAJA2mD,EAAY38B,EAAK48B,aAGjBzM,GAAQ,EAGZ,GAAKwM,EAAL,CAIA,IAAK3mD,KAFLkN,EAAe,MAARA,EAAe,KAAOA,EAAO,GAE1By5C,GACHG,EAAWH,EAAU3mD,IAAIkN,OAASA,GACvCisD,EAASrS,EAASxjD,MvCPA,GuCOoBwjD,EAASxjD,MvCJ/B,EuCKhBwjD,EAASxjD,MvCJM,EuCKfwjD,EAASnB,MAAMxP,OACf2Q,EAAS3G,GAAG14C,KAAK0xD,EAAS,YAAc,SAAUnvC,EAAMA,EAAKgxB,SAAU8L,EAAS5uB,MAAO4uB,EAAS5L,cACzFyL,EAAU3mD,IAL8Bm6C,GAAQ,EAQrDA,UAAcnwB,EAAK48B,cDlBrBqS,CAAUhwD,KAAMiE,ODCpBk0C,GAAAA,UAAAA,WFiBe,SAASl0C,GACtB,IAAIzK,EACAikD,EAEAx5C,aAAgBkrD,IAClB31D,EAAKyK,EAAKk8C,IAAKl8C,EAAOA,EAAKmrD,QAE3B51D,EAAK61D,MAAU5R,EAASwS,IAAenxC,KAAOlH,KAAO3T,EAAe,MAARA,EAAe,KAAOA,EAAO,IAG3F,IAAK,IAAI4zC,EAAS73C,KAAK83C,QAASn5C,EAAIk5C,EAAOhgD,OAAQW,EAAI,EAAGA,EAAImG,IAAKnG,EACjE,IAAK,IAAyCuoB,EAArCkxB,EAAQ4F,EAAOr/C,GAAI+E,EAAI00C,EAAMp6C,OAAcd,EAAI,EAAGA,EAAIwG,IAAKxG,GAC9DgqB,EAAOkxB,EAAMl7C,KACf8mD,GAAS98B,EAAM9c,EAAMzK,EAAIzC,EAAGk7C,EAAOwL,GAAU8R,GAAQxuC,EAAMvnB,IAKjE,OAAO,IAAI21D,GAAWtX,EAAQ73C,KAAKk4C,SAAUj0C,EAAMzK,IK1B7BtC,KAAjBC,IAAiBD,KAAZqD,IAAYrD,KAAPwpC,IAEjB,SAASyvB,GAAQrwD,GACf,MAAO,EAAEA,EAAE,IAAKA,EAAE,IAGpB,SAASswD,GAAQtwD,GACf,MAAO,CAACqwD,GAAQrwD,EAAE,IAAKqwD,GAAQrwD,EAAE,KAKxB,CAAC,IAAK,KAAKpI,IAAI4I,IAOf,CAAC,IAAK,KAAK5I,IAAI4I,IAOf,CAAC,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,MAAM5I,IAAI4I,IA8D5D,SAASA,GAAK6jB,GACZ,MAAO,CAAC7jB,KAAM6jB,GCpGD,YAAS4sB,GACtB,MAA2B,kBAAbA,EACR,IAAIiH,GAAU,CAAC14C,SAASyjC,iBAAiBgO,IAAY,CAACzxC,SAAS6wB,kBAC/D,IAAI6nB,GAAU,CAAC/G,EAAMF,IAAYgH,ICNlC,SAASsY,GAAUvsD,EAAGzM,EAAGI,GAC9BuI,KAAK8D,EAAIA,EACT9D,KAAK3I,EAAIA,EACT2I,KAAKvI,EAAIA,EAGX44D,GAAU1zD,UAAY,CACpBsI,YAAaorD,GACbr4D,MAAO,SAAS8L,GACd,OAAa,IAANA,EAAU9D,KAAO,IAAIqwD,GAAUrwD,KAAK8D,EAAIA,EAAG9D,KAAK3I,EAAG2I,KAAKvI,IAEjE0nD,UAAW,SAAS9nD,EAAGI,GACrB,OAAa,IAANJ,EAAgB,IAANI,EAAUuI,KAAO,IAAIqwD,GAAUrwD,KAAK8D,EAAG9D,KAAK3I,EAAI2I,KAAK8D,EAAIzM,EAAG2I,KAAKvI,EAAIuI,KAAK8D,EAAIrM,IAEjGoX,MAAO,SAASpV,GACd,MAAO,CAACA,EAAM,GAAKuG,KAAK8D,EAAI9D,KAAK3I,EAAGoC,EAAM,GAAKuG,KAAK8D,EAAI9D,KAAKvI,IAE/D64D,OAAQ,SAASj5D,GACf,OAAOA,EAAI2I,KAAK8D,EAAI9D,KAAK3I,GAE3Bk5D,OAAQ,SAAS94D,GACf,OAAOA,EAAIuI,KAAK8D,EAAI9D,KAAKvI,GAE3B+4D,OAAQ,SAAS90C,GACf,MAAO,EAAEA,EAAS,GAAK1b,KAAK3I,GAAK2I,KAAK8D,GAAI4X,EAAS,GAAK1b,KAAKvI,GAAKuI,KAAK8D,IAEzE2sD,QAAS,SAASp5D,GAChB,OAAQA,EAAI2I,KAAK3I,GAAK2I,KAAK8D,GAE7B4sD,QAAS,SAASj5D,GAChB,OAAQA,EAAIuI,KAAKvI,GAAKuI,KAAK8D,GAE7B6sD,SAAU,SAASt5D,GACjB,OAAOA,EAAEokD,OAAOmV,OAAOv5D,EAAEqnB,QAAQhnB,IAAIsI,KAAKywD,QAASzwD,MAAMtI,IAAIL,EAAEm5D,OAAQn5D,KAEzEw5D,SAAU,SAASp5D,GACjB,OAAOA,EAAEgkD,OAAOmV,OAAOn5D,EAAEinB,QAAQhnB,IAAIsI,KAAK0wD,QAAS1wD,MAAMtI,IAAID,EAAE+4D,OAAQ/4D,KAEzE0Q,SAAU,WACR,MAAO,aAAenI,KAAK3I,EAAI,IAAM2I,KAAKvI,EAAI,WAAauI,KAAK8D,EAAI,MAIlD,IAAIusD,GAAU,EAAG,EAAG,GAEpBA,GAAU1zD,wBC3C1Bm0D,GAAU,MAiBhB,SAASC,GAAiBC,EAASC,GAEjC,IAAMC,EA4IR,SAA+BF,GAG7B,IADA,IAAMp5D,EAAM,GACHb,EAAI,EAAGA,EAAIi6D,EAAQn5D,SAAUd,EACpC,IAAK,IAAIyB,EAAIzB,EAAI,EAAGyB,EAAIw4D,EAAQn5D,SAAUW,EAAG,CAC3C,IAD2C,MACzB24D,GAAyBH,EAAQj6D,GAAIi6D,EAAQx4D,KADpB,IAE3C,2BAA2B,KAAhB8zB,EAAgB,QACzBA,EAAE8kC,YAAc,CAACr6D,EAAGyB,GACpBZ,EAAI0C,KAAKgyB,IAJgC,+BAQ/C,OAAO10B,EAxJoBy5D,CAAsBL,GAG3CM,EAAcJ,EAAmB1f,QAAO,SAACllB,GAAD,OAgIhD,SAA4B7yB,EAAOu3D,GACjC,OAAOA,EAAQlC,OAAM,SAACyC,GAAD,OAAYC,GAAS/3D,EAAO83D,GAAUA,EAAOE,OAASX,MAjItBY,CAAmBplC,EAAG0kC,MAEvEW,EAAU,EACVC,EAAc,EAEZC,EAAO,GAIb,GAAIP,EAAYz5D,OAAS,EAAG,CAI1B,IADA,IAAMi6D,EAASC,GAAUT,GAChBv6D,EAAI,EAAGA,EAAIu6D,EAAYz5D,SAAUd,EAAG,CAC3C,IAAMu1B,EAAIglC,EAAYv6D,GACtBu1B,EAAE0lC,MAAQ96D,KAAK0nD,MAAMtyB,EAAEj1B,EAAIy6D,EAAOz6D,EAAGi1B,EAAE70B,EAAIq6D,EAAOr6D,GAEpD65D,EAAYp3D,MAAK,SAAC3D,EAAGC,GAAJ,OAAUA,EAAEw7D,MAAQz7D,EAAEy7D,SAKvC,IADA,IAAIC,EAAKX,EAAYA,EAAYz5D,OAAS,GACjCd,EAAI,EAAGA,EAAIu6D,EAAYz5D,SAAUd,EAAG,CAC3C,IAAMm7D,EAAKZ,EAAYv6D,GAGvB66D,IAAgBK,EAAG56D,EAAI66D,EAAG76D,IAAM66D,EAAGz6D,EAAIw6D,EAAGx6D,GAO1C,IAJA,IAAM06D,EAAW,CAAE96D,GAAI66D,EAAG76D,EAAI46D,EAAG56D,GAAK,EAAGI,GAAIy6D,EAAGz6D,EAAIw6D,EAAGx6D,GAAK,GAExD26D,EAAM,KAED55D,EAAI,EAAGA,EAAI05D,EAAGd,YAAYv5D,SAAUW,EAC3C,GAAIy5D,EAAGb,YAAYiB,SAASH,EAAGd,YAAY54D,IAAK,CAG9C,IAAM+4D,EAASP,EAAQkB,EAAGd,YAAY54D,IAChC85D,EAAKp7D,KAAK0nD,MAAMsT,EAAG76D,EAAIk6D,EAAOl6D,EAAG66D,EAAGz6D,EAAI85D,EAAO95D,GAC/C86D,EAAKr7D,KAAK0nD,MAAMqT,EAAG56D,EAAIk6D,EAAOl6D,EAAG46D,EAAGx6D,EAAI85D,EAAO95D,GAEjD+6D,EAAYD,EAAKD,EACjBE,EAAY,IACdA,GAAa,EAAIt7D,KAAKknD,IAKxB,IAAM7nD,EAAIg8D,EAAKC,EAAY,EACvBx2C,EAAQw1C,GAASW,EAAU,CAC7B96D,EAAGk6D,EAAOl6D,EAAIk6D,EAAOE,OAASv6D,KAAKu7D,IAAIl8D,GACvCkB,EAAG85D,EAAO95D,EAAI85D,EAAOE,OAASv6D,KAAKw7D,IAAIn8D,KAKrCylB,EAAwB,EAAhBu1C,EAAOE,SACjBz1C,EAAwB,EAAhBu1C,EAAOE,SAIN,MAAPW,GAAeA,EAAIp2C,MAAQA,KAC7Bo2C,EAAM,CAAEb,OAAAA,EAAQv1C,MAAAA,EAAOk2C,GAAAA,EAAID,GAAAA,EAAIU,MAAO32C,EAAQu1C,EAAOE,OAAQmB,OAAO,IAK/D,MAAPR,IACFP,EAAKv3D,KAAK83D,GACVT,GAAWkB,GAAWT,EAAIb,OAAOE,OAAQW,EAAIp2C,OAC7Ci2C,EAAKC,QAGJ,CAIL,IADA,IAAIY,EAAW9B,EAAQ,GACdj6D,EAAI,EAAGA,EAAIi6D,EAAQn5D,SAAUd,EAChCi6D,EAAQj6D,GAAG06D,OAASqB,EAASrB,SAC/BqB,EAAW9B,EAAQj6D,IAOvB,IADA,IAAIg8D,GAAW,EACNh8D,EAAI,EAAGA,EAAIi6D,EAAQn5D,SAAUd,EACpC,GAAIy6D,GAASR,EAAQj6D,GAAI+7D,GAAY57D,KAAKC,IAAI27D,EAASrB,OAAST,EAAQj6D,GAAG06D,QAAS,CAClFsB,GAAW,EACX,MAIAA,EACFpB,EAAUC,EAAc,GAExBD,EAAUmB,EAASrB,OAASqB,EAASrB,OAASv6D,KAAKknD,GACnDyT,EAAKv3D,KAAK,CACRi3D,OAAQuB,EACRZ,GAAI,CAAE76D,EAAGy7D,EAASz7D,EAAGI,EAAGq7D,EAASr7D,EAAIq7D,EAASrB,QAC9CQ,GAAI,CAAE56D,EAAGy7D,EAASz7D,EAAIy5D,GAASr5D,EAAGq7D,EAASr7D,EAAIq7D,EAASrB,QACxDz1C,MAAyB,EAAlB82C,EAASrB,OAChBkB,OAAO,EACPC,OAAO,KAgBb,OAXAhB,GAAe,EAEXX,IACFA,EAAMhlD,KAAO0lD,EAAUC,EACvBX,EAAMU,QAAUA,EAChBV,EAAMW,YAAcA,EACpBX,EAAMY,KAAOA,EACbZ,EAAMK,YAAcA,EACpBL,EAAMC,mBAAqBA,GAGtBS,EAAUC,EAuCnB,SAASiB,GAAWv7D,EAAG0kB,GACrB,OAAO1kB,EAAIA,EAAIJ,KAAK87D,KAAK,EAAIh3C,EAAQ1kB,IAAMA,EAAI0kB,GAAS9kB,KAAKa,KAAKikB,GAAS,EAAI1kB,EAAI0kB,IASrF,SAASw1C,GAASU,EAAID,GACpB,OAAO/6D,KAAKa,MAAMm6D,EAAG76D,EAAI46D,EAAG56D,IAAM66D,EAAG76D,EAAI46D,EAAG56D,IAAM66D,EAAGz6D,EAAIw6D,EAAGx6D,IAAMy6D,EAAGz6D,EAAIw6D,EAAGx6D,IAY9E,SAASw7D,GAAcC,EAAIC,EAAItzD,GAE7B,GAAIA,GAAKqzD,EAAKC,EACZ,OAAO,EAIT,GAAItzD,GAAK3I,KAAKC,IAAI+7D,EAAKC,GACrB,OAAOj8D,KAAKknD,GAAKlnD,KAAKwpC,IAAIwyB,EAAIC,GAAMj8D,KAAKwpC,IAAIwyB,EAAIC,GAGnD,IACM76D,EAAK66D,GAAMtzD,EAAIA,EAAIqzD,EAAKA,EAAKC,EAAKA,IAAO,EAAItzD,GACnD,OAAOgzD,GAAWK,EAFPA,GAAMrzD,EAAIA,EAAIszD,EAAKA,EAAKD,EAAKA,IAAO,EAAIrzD,IAEvBgzD,GAAWM,EAAI76D,GAY7C,SAAS64D,GAAyBe,EAAID,GACpC,IAAMpyD,EAAI2xD,GAASU,EAAID,GACjBiB,EAAKhB,EAAGT,OACR0B,EAAKlB,EAAGR,OAGd,GAAI5xD,GAAKqzD,EAAKC,GAAMtzD,GAAK3I,KAAKC,IAAI+7D,EAAKC,GACrC,MAAO,GAGT,IAAM58D,GAAK28D,EAAKA,EAAKC,EAAKA,EAAKtzD,EAAIA,IAAM,EAAIA,GACvCkE,EAAI7M,KAAKa,KAAKm7D,EAAKA,EAAK38D,EAAIA,GAC5BmC,EAAKw5D,EAAG76D,EAAKd,GAAK07D,EAAG56D,EAAI66D,EAAG76D,GAAMwI,EAClCuzD,EAAKlB,EAAGz6D,EAAKlB,GAAK07D,EAAGx6D,EAAIy6D,EAAGz6D,GAAMoI,EAClCwzD,IAAOpB,EAAGx6D,EAAIy6D,EAAGz6D,IAAMsM,EAAIlE,GAC3ByzD,IAAOrB,EAAG56D,EAAI66D,EAAG76D,IAAM0M,EAAIlE,GAEjC,MAAO,CACL,CAAExI,EAAGqB,EAAK26D,EAAI57D,EAAG27D,EAAKE,GACtB,CAAEj8D,EAAGqB,EAAK26D,EAAI57D,EAAG27D,EAAKE,IAS1B,SAASvB,GAAUwB,GACjB,IADyB,EACnBzB,EAAS,CAAEz6D,EAAG,EAAGI,EAAG,GADD,IAEL87D,GAFK,IAEzB,2BAA4B,KAAjB95D,EAAiB,QAC1Bq4D,EAAOz6D,GAAKoC,EAAMpC,EAClBy6D,EAAOr6D,GAAKgC,EAAMhC,GAJK,8BAQzB,OAFAq6D,EAAOz6D,GAAKk8D,EAAO17D,OACnBi6D,EAAOr6D,GAAK87D,EAAO17D,OACZi6D,EAUT,SAAS0B,GAAKC,GAAuB,IAAjBh9D,EAAiB,uDAAJ,GAC/BA,EAAWC,cAAgBD,EAAWC,eAAiB,IAevD,IAbA,IAAMg9D,EAAgBj9D,EAAWi9D,eAAiBC,GAC5CC,EAAOn9D,EAAWo9D,cAAgBA,GAGlCC,EAAQC,GAAgBN,EAAMh9D,GAG9Bu6D,EAAU0C,EAAcI,EAAOr9D,GAG/Bu9D,EAASv3D,OAAOoB,KAAKmzD,GAErBp1D,EAAU,GAChB,MAAoBo4D,EAApB,eAA4B,CAAvB,IAAMC,EAAK,KACdr4D,EAAQtB,KAAK02D,EAAQiD,GAAO58D,GAC5BuE,EAAQtB,KAAK02D,EAAQiD,GAAOx8D,GAwB9B,IApBA,IAAMy8D,GAAWz7D,EAAAA,GAAAA,aACf,SAAC6xC,GAEC,IADA,IAAM1vC,EAAU,GACP7D,EAAI,EAAGA,EAAIi9D,EAAOn8D,SAAUd,EAAG,CACtC,IAAMk9D,EAAQD,EAAOj9D,GACrB6D,EAAQq5D,GAAS,CACf58D,EAAGizC,EAAO,EAAIvzC,GACdU,EAAG6yC,EAAO,EAAIvzC,EAAI,GAClB06D,OAAQT,EAAQiD,GAAOxC,QAI3B,OAAOmC,EAAKh5D,EAASk5D,KAEvBl4D,EACAnF,GAII09D,EAAYD,EAAS78D,EAClBN,EAAI,EAAGA,EAAIi9D,EAAOn8D,SAAUd,EAAG,CACtC,IAAMk9D,EAAQD,EAAOj9D,GACrBi6D,EAAQiD,GAAO58D,EAAI88D,EAAU,EAAIp9D,GACjCi6D,EAAQiD,GAAOx8D,EAAI08D,EAAU,EAAIp9D,EAAI,GAGvC,OAAOi6D,EAaT,SAASoD,GAA0BlB,EAAIC,EAAIkB,GAEzC,OAAIn9D,KAAKwpC,IAAIwyB,EAAIC,GAAMj8D,KAAKwpC,IAAIwyB,EAAIC,GAAMj8D,KAAKknD,IAAMiW,EAZzC,MAaHn9D,KAAKC,IAAI+7D,EAAKC,IAGhB98D,EAAAA,GAAAA,SAAO,SAACm7D,GAAD,OAAcyB,GAAcC,EAAIC,EAAI3B,GAAY6C,IAAS,EAAGnB,EAAKC,GAWjF,SAASY,GAAgBD,GAAwB,IAAjBr9D,EAAiB,uDAAJ,GACrC69D,EAAW79D,EAAW69D,SACtBh9D,EAAIw8D,EAAMp8D,KAAI,SAAC2G,GAAD,OAAO5B,OAAOQ,OAAO,GAAIoB,MAE7C,SAASk2D,EAAMxkB,GACb,OAAOA,EAAIvyC,KAAK,KAGlB,GAAI82D,EAAU,CAGZ,IAHY,EAGN/tB,EAAQ,IAAI31B,IAHN,IAIOtZ,GAJP,IAIZ,2BACE,IADoB,IAAX2U,EAAW,QACXlV,EAAI,EAAGA,EAAIkV,EAAKwnD,KAAK57D,OAAQd,IAAK,CACzC,IAAM+gC,EAAK36B,OAAO8O,EAAKwnD,KAAK18D,IAC5BwvC,EAAM5iC,IAAIm0B,EAAI7rB,EAAKstB,MAAQgN,EAAMrhC,IAAI4yB,IAAO,IAC5C,IAAK,IAAIt/B,EAAIzB,EAAI,EAAGyB,EAAIyT,EAAKwnD,KAAK57D,OAAQW,IAAK,CAC7C,IAAM6kC,EAAKlgC,OAAO8O,EAAKwnD,KAAKj7D,IACtBg8D,EAAK,GAAH,OAAM18B,EAAN,YAAYuF,GACdo3B,EAAK,GAAH,OAAMp3B,EAAN,YAAYvF,GACpByO,EAAM5iC,IAAI6wD,EAAIvoD,EAAKstB,MAAQgN,EAAMrhC,IAAIsvD,IAAO,IAC5CjuB,EAAM5iC,IAAI8wD,EAAIxoD,EAAKstB,MAAQgN,EAAMrhC,IAAIuvD,IAAO,MAbtC,wCAiBOn9D,GAjBP,IAiBZ,2BAAsB,KAAX2U,EAAW,QAChBA,EAAKwnD,KAAK57D,OAAS,IACrBoU,EAAKstB,KAAOgN,EAAMrhC,IAAIqvD,EAAMtoD,EAAKwnD,SAnBzB,+BAyBd,IAjC+C,EAiCzCiB,EAAM,GAGNC,EAAQ,IAAI51D,IApC6B,IAqC5BzH,GArC4B,IAqC/C,2BAAsB,KAAX2U,EAAW,QACpB,GAAyB,IAArBA,EAAKwnD,KAAK57D,OACZ68D,EAAIp6D,KAAK2R,EAAKwnD,KAAK,SACd,GAAyB,IAArBxnD,EAAKwnD,KAAK57D,OAAc,CACjC,IAAMtB,EAAI0V,EAAKwnD,KAAK,GACdj9D,EAAIyV,EAAKwnD,KAAK,GACpBkB,EAAMx1D,IAAIo1D,EAAMtoD,EAAKwnD,OACrBkB,EAAMx1D,IAAIo1D,EAAM,CAAC/9D,EAAGD,OA5CuB,8BAgD/Cm+D,EAAIx6D,MAAK,SAAC3D,EAAGC,GAAJ,OAAWD,IAAMC,EAAI,EAAID,EAAIC,GAAK,EAAI,KAE/C,IAAK,IAAIO,EAAI,EAAGA,EAAI29D,EAAI78D,SAAUd,EAEhC,IADA,IAAMR,EAAIm+D,EAAI39D,GACLyB,EAAIzB,EAAI,EAAGyB,EAAIk8D,EAAI78D,SAAUW,EAAG,CACvC,IAAMhC,EAAIk+D,EAAIl8D,GACTm8D,EAAMrxC,IAAIixC,EAAM,CAACh+D,EAAGC,MACvBc,EAAEgD,KAAK,CAAEm5D,KAAM,CAACl9D,EAAGC,GAAI+iC,KAAM,IAInC,OAAOjiC,EAUT,SAASs9D,GAAoBd,EAAOL,EAAMO,GAKxC,IAAMa,GAAYr9D,EAAAA,GAAAA,QAAOi8D,EAAK57D,OAAQ47D,EAAK57D,QAIrCi9D,GAAct9D,EAAAA,GAAAA,QAAOi8D,EAAK57D,OAAQ47D,EAAK57D,QA0B7C,OAtBAi8D,EACGtiB,QAAO,SAACn6C,GAAD,OAAyB,IAAlBA,EAAEo8D,KAAK57D,UACrB8F,SAAQ,SAAC/C,GACR,IAAMqmC,EAAO+yB,EAAOp5D,EAAQ64D,KAAK,IAC3BsB,EAAQf,EAAOp5D,EAAQ64D,KAAK,IAG5BjC,EAAW4C,GAFNl9D,KAAKa,KAAK07D,EAAKxyB,GAAM1H,KAAOriC,KAAKknD,IACjClnD,KAAKa,KAAK07D,EAAKsB,GAAOx7B,KAAOriC,KAAKknD,IACMxjD,EAAQ2+B,MAE3Ds7B,EAAU5zB,GAAM8zB,GAASF,EAAUE,GAAO9zB,GAAQuwB,EAIlD,IAAIt5D,EAAI,EACJ0C,EAAQ2+B,KAAO,OAASriC,KAAKwpC,IAAI+yB,EAAKxyB,GAAM1H,KAAMk6B,EAAKsB,GAAOx7B,MAChErhC,EAAI,EACK0C,EAAQ2+B,MAAQ,QACzBrhC,GAAK,GAEP48D,EAAY7zB,GAAM8zB,GAASD,EAAYC,GAAO9zB,GAAQ/oC,KAGnD,CAAE28D,UAAAA,EAAWC,YAAAA,GAItB,SAASE,GAAuB39D,EAAG6D,EAAS25D,EAAWC,GACrD,IAAK,IAAI/9D,EAAI,EAAGA,EAAImE,EAAQrD,SAAUd,EACpCmE,EAAQnE,GAAK,EAIf,IADA,IAAI68D,EAAO,EACF78D,EAAI,EAAGA,EAAI89D,EAAUh9D,SAAUd,EAGtC,IAFA,IAAMwhC,EAAKlhC,EAAE,EAAIN,GACXyhC,EAAKnhC,EAAE,EAAIN,EAAI,GACZyB,EAAIzB,EAAI,EAAGyB,EAAIq8D,EAAUh9D,SAAUW,EAAG,CAC7C,IAAMqlC,EAAKxmC,EAAE,EAAImB,GACXslC,EAAKzmC,EAAE,EAAImB,EAAI,GACfy8D,EAAMJ,EAAU99D,GAAGyB,GACnB08D,EAAaJ,EAAY/9D,GAAGyB,GAE5B28D,GAAmBt3B,EAAKtF,IAAOsF,EAAKtF,IAAOuF,EAAKtF,IAAOsF,EAAKtF,GAC5Dg5B,EAAWt6D,KAAKa,KAAKo9D,GACrBr+D,EAAQq+D,EAAkBF,EAAMA,EAEjCC,EAAa,GAAK1D,GAAYyD,GAASC,EAAa,GAAK1D,GAAYyD,IAI1ErB,GAAQ,EAAI98D,EAAQA,EAEpBoE,EAAQ,EAAInE,IAAM,EAAID,GAASyhC,EAAKsF,GACpC3iC,EAAQ,EAAInE,EAAI,IAAM,EAAID,GAAS0hC,EAAKsF,GAExC5iC,EAAQ,EAAI1C,IAAM,EAAI1B,GAAS+mC,EAAKtF,GACpCr9B,EAAQ,EAAI1C,EAAI,IAAM,EAAI1B,GAASgnC,EAAKtF,IAG5C,OAAOo7B,EAOT,SAASD,GAAkBG,GAAoB,IAAbj4D,EAAa,uDAAJ,GACrCD,EAAUw5D,GAAatB,EAAOj4D,GAC5B+3D,EAAO/3D,EAAOg4D,cAAgBA,GAMpC,GAAIC,EAAMj8D,QAAU,EAAG,CACrB,IAAMw9D,EAAcC,GAAqBxB,EAAOj4D,GAC1C05D,EAAkB3B,EAAKyB,EAAavB,GACpC0B,EAAa5B,EAAKh4D,EAASk4D,GAE7ByB,EAAkB,KAAOC,IAC3B55D,EAAUy5D,GAGd,OAAOz5D,EAQT,SAAS05D,GAAqBxB,GAAoB,MAAbj4D,EAAa,uDAAJ,GACtC45D,EAAW55D,EAAO45D,UAAY,GAG9BhC,EAAO,GACPO,EAAS,GALiC,IAM7BF,GAN6B,IAMhD,2BAA0B,KAAf7nD,EAAe,QACC,IAArBA,EAAKwnD,KAAK57D,SACZm8D,EAAO/nD,EAAKwnD,KAAK,IAAMA,EAAK57D,OAC5B47D,EAAKn5D,KAAK2R,KATkC,8BAahD,MAAiC2oD,GAAoBd,EAAOL,EAAMO,GAA5Da,EAAN,EAAMA,UAAWC,EAAjB,EAAiBA,YAIXY,GAAO59D,EAAAA,GAAAA,OAAM+8D,EAAUn9D,IAAII,GAAAA,QAAU+8D,EAAUh9D,OACrDg9D,EAAYA,EAAUn9D,KAAI,SAACi+D,GAAD,OAASA,EAAIj+D,KAAI,SAACO,GAAD,OAAWA,EAAQy9D,QAK9D,IAHA,IAAMztB,EAAM,SAAC5wC,EAAG6D,GAAJ,OAAgB85D,GAAuB39D,EAAG6D,EAAS25D,EAAWC,IAEtEc,EAAO,KACF7+D,EAAI,EAAGA,EAAI0+D,IAAY1+D,EAAG,CACjC,IAAM6E,GAAUxE,EAAAA,GAAAA,OAAyB,EAAnBy9D,EAAUh9D,QAAYH,IAAIR,KAAKusB,QAE/C7oB,GAAUe,EAAAA,GAAAA,mBAAkBssC,EAAKrsC,EAASC,KAC3C+5D,GAAQh7D,EAAQrB,GAAKq8D,EAAKr8D,MAC7Bq8D,EAAOh7D,GASX,IALA,IAAMu5D,EAAYyB,EAAKv+D,EAIjB25D,EAAU,GACPj6D,EAAI,EAAGA,EAAI08D,EAAK57D,SAAUd,EAAG,CACpC,IAAM4M,EAAM8vD,EAAK18D,GACjBi6D,EAAQrtD,EAAI8vD,KAAK,IAAM,CACrBp8D,EAAG88D,EAAU,EAAIp9D,GAAK2+D,EACtBj+D,EAAG08D,EAAU,EAAIp9D,EAAI,GAAK2+D,EAC1BjE,OAAQv6D,KAAKa,KAAK4L,EAAI41B,KAAOriC,KAAKknD,KAItC,GAAIviD,EAAO1B,QAAS,WACF0B,EAAO1B,SADL,IAClB,2BAAgC,KAArB4J,EAAqB,SAC9B/L,EAAAA,GAAAA,OAAM+L,EAAE1M,EAAGq+D,IAFK,+BAKpB,OAAO1E,EAUT,SAASoE,GAAatB,EAAOj4D,GAC3B,IADmC,EAC7B+3D,EAAO/3D,GAAUA,EAAOg4D,aAAeh4D,EAAOg4D,aAAeA,GAI7D7C,EAAU,GAEV6E,EAAc,GAPe,IAQhB/B,GARgB,IAQnC,2BAA0B,KAAf7nD,EAAe,QACxB,GAAyB,IAArBA,EAAKwnD,KAAK57D,OAAc,CAC1B,IAAM8L,EAAMsI,EAAKwnD,KAAK,GACtBzC,EAAQrtD,GAAO,CACbtM,EAAG,KACHI,EAAG,KACHq+D,MAAO9E,EAAQn5D,OACf0hC,KAAMttB,EAAKstB,KACXk4B,OAAQv6D,KAAKa,KAAKkU,EAAKstB,KAAOriC,KAAKknD,KAErCyX,EAAYlyD,GAAO,KAlBY,wCAsBnCmwD,EAAQA,EAAMtiB,QAAO,SAACj7C,GAAD,OAAyB,IAAlBA,EAAEk9D,KAAK57D,WAtBA,IAyBnC,2BAA6B,KAAlB+C,EAAkB,QACvBm7D,EAA2B,MAAlBn7D,EAAQm7D,OAAiBn7D,EAAQm7D,OAAS,EACjD90B,EAAOrmC,EAAQ64D,KAAK,GACpBsB,EAAQn6D,EAAQ64D,KAAK,GAGvB74D,EAAQ2+B,KAnSF,OAmSkBriC,KAAKwpC,IAAIswB,EAAQ/vB,GAAM1H,KAAMy3B,EAAQ+D,GAAOx7B,QACtEw8B,EAAS,GAGXF,EAAY50B,GAAM3mC,KAAK,CAAEqJ,IAAKoxD,EAAOx7B,KAAM3+B,EAAQ2+B,KAAMw8B,OAAAA,IACzDF,EAAYd,GAAOz6D,KAAK,CAAEqJ,IAAKs9B,EAAM1H,KAAM3+B,EAAQ2+B,KAAMw8B,OAAAA,KApCxB,8BAwCnC,IAAMC,EAAiB,GAWvB,SAASp8D,EAAUrD,EAAGC,GACpB,OAAOA,EAAE+iC,KAAOhjC,EAAEgjC,KAXpB98B,OAAOoB,KAAKg4D,GAAal4D,SAAQ,SAACgG,GAEhC,IADA,IAAI41B,EAAO,EACFxiC,EAAI,EAAGA,EAAI8+D,EAAYlyD,GAAK9L,SAAUd,EAC7CwiC,GAAQs8B,EAAYlyD,GAAK5M,GAAGwiC,KAAOs8B,EAAYlyD,GAAK5M,GAAGg/D,OAGzDC,EAAe17D,KAAK,CAAEqJ,IAAAA,EAAK41B,KAAAA,OAO7By8B,EAAe97D,KAAKN,GAGpB,IAAMq8D,EAAa,GACnB,SAASC,EAAaz7B,GACpB,OAAOA,EAAQ92B,OAAOsyD,EAQxB,SAASE,EAAY18D,EAAOw1B,GAC1B+hC,EAAQ/hC,GAAO53B,EAAIoC,EAAMpC,EACzB25D,EAAQ/hC,GAAOx3B,EAAIgC,EAAMhC,EACzBw+D,EAAWhnC,IAAS,EAItBknC,EAAY,CAAE9+D,EAAG,EAAGI,EAAG,GAAKu+D,EAAe,GAAGryD,KAK9C,IAAK,IAAI5M,EAAI,EAAGA,EAAIi/D,EAAen+D,SAAUd,EAAG,CAC9C,IAAMq/D,EAAWJ,EAAej/D,GAAG4M,IAC7B0wD,EAAUwB,EAAYO,GAAU5kB,OAAO0kB,GACvCvyD,EAAMqtD,EAAQoF,GAGpB,GAFA/B,EAAQn6D,KAAKN,GAEU,IAAnBy6D,EAAQx8D,OAEV,KAAM,8CAKR,IADA,IAAM07D,EAAS,GACN/6D,EAAI,EAAGA,EAAI67D,EAAQx8D,SAAUW,EAAG,CAEvC,IAAM05D,EAAKlB,EAAQqD,EAAQ77D,GAAGmL,KACxB0yD,EAAKjC,GAA0BzwD,EAAI8tD,OAAQS,EAAGT,OAAQ4C,EAAQ77D,GAAG+gC,MAGvEg6B,EAAOj5D,KAAK,CAAEjD,EAAG66D,EAAG76D,EAAIg/D,EAAI5+D,EAAGy6D,EAAGz6D,IAClC87D,EAAOj5D,KAAK,CAAEjD,EAAG66D,EAAG76D,EAAIg/D,EAAI5+D,EAAGy6D,EAAGz6D,IAClC87D,EAAOj5D,KAAK,CAAE7C,EAAGy6D,EAAGz6D,EAAI4+D,EAAIh/D,EAAG66D,EAAG76D,IAClCk8D,EAAOj5D,KAAK,CAAE7C,EAAGy6D,EAAGz6D,EAAI4+D,EAAIh/D,EAAG66D,EAAG76D,IAIlC,IAAK,IAAIyM,EAAItL,EAAI,EAAGsL,EAAIuwD,EAAQx8D,SAAUiM,EAAG,CAC3C,IAAMmuD,EAAKjB,EAAQqD,EAAQvwD,GAAGH,KACxB2yD,EAAKlC,GAA0BzwD,EAAI8tD,OAAQQ,EAAGR,OAAQ4C,EAAQvwD,GAAGy1B,MAEjEg9B,EAAcpF,GAClB,CAAE95D,EAAG66D,EAAG76D,EAAGI,EAAGy6D,EAAGz6D,EAAGg6D,OAAQ4E,GAC5B,CAAEh/D,EAAG46D,EAAG56D,EAAGI,EAAGw6D,EAAGx6D,EAAGg6D,OAAQ6E,IAE9B/C,EAAOj5D,KAAP,MAAAi5D,EAAM,EAASgD,KAQnB,IAFA,IAAIC,EAAW,KACXC,EAAYlD,EAAO,GACvB,MAAoBA,EAApB,eAA4B,CAAvB,IAAM95D,EAAK,KACdu3D,EAAQoF,GAAU/+D,EAAIoC,EAAMpC,EAC5B25D,EAAQoF,GAAU3+D,EAAIgC,EAAMhC,EAC5B,IAAMi/D,EAAY9C,EAAK5C,EAAS8C,GAC5B4C,EAAYF,IACdA,EAAWE,EACXD,EAAYh9D,GAIhB08D,EAAYM,EAAWL,GAGzB,OAAOpF,EAWT,SAAS6C,GAAa7C,EAAS2F,GAC7B,IADuC,EACnCC,EAAS,EAD0B,IAGpBD,GAHoB,IAGvC,2BAA6B,KAAlB1qD,EAAkB,QAC3B,GAAyB,IAArBA,EAAKwnD,KAAK57D,OAAd,CAIA,IAAIw8D,OAAO,EACX,GAAyB,IAArBpoD,EAAKwnD,KAAK57D,OAAc,CAC1B,IAAMopC,EAAO+vB,EAAQ/kD,EAAKwnD,KAAK,IACzBsB,EAAQ/D,EAAQ/kD,EAAKwnD,KAAK,IAChCY,EAAUpB,GAAchyB,EAAKwwB,OAAQsD,EAAMtD,OAAQD,GAASvwB,EAAM8zB,SAElEV,EAAUtD,GAAiB9kD,EAAKwnD,KAAK/7D,KAAI,SAACmI,GAAD,OAAOmxD,EAAQnxD,OAI1D+2D,IAD8B,MAAf3qD,EAAK8pD,OAAiB9pD,EAAK8pD,OAAS,IAC/B1B,EAAUpoD,EAAKstB,OAAS86B,EAAUpoD,EAAKstB,QAlBtB,8BAqBvC,OAAOq9B,EAGT,SAASC,GAAqB7F,EAAS2F,GACrC,IAD+C,EAC3CC,EAAS,EADkC,IAG5BD,GAH4B,IAG/C,2BAA6B,KAAlB1qD,EAAkB,QAC3B,GAAyB,IAArBA,EAAKwnD,KAAK57D,OAAd,CAIA,IAAIw8D,OAAO,EACX,GAAyB,IAArBpoD,EAAKwnD,KAAK57D,OAAc,CAC1B,IAAMopC,EAAO+vB,EAAQ/kD,EAAKwnD,KAAK,IACzBsB,EAAQ/D,EAAQ/kD,EAAKwnD,KAAK,IAChCY,EAAUpB,GAAchyB,EAAKwwB,OAAQsD,EAAMtD,OAAQD,GAASvwB,EAAM8zB,SAElEV,EAAUtD,GAAiB9kD,EAAKwnD,KAAK/7D,KAAI,SAACmI,GAAD,OAAOmxD,EAAQnxD,OAG1D,IAAMk2D,EAAwB,MAAf9pD,EAAK8pD,OAAiB9pD,EAAK8pD,OAAS,EAC7Ce,EAAsB5/D,KAAKge,KAAKm/C,EAAU,IAAMpoD,EAAKstB,KAAO,IAClEq9B,GAAUb,EAASe,EAAsBA,IAnBI,8BAsB/C,OAAOF,EAST,SAASG,GAAiB/F,EAASgG,EAAaC,GAQ9C,GAPwB,MAApBA,EACFjG,EAAQ92D,MAAK,SAAC3D,EAAGC,GAAJ,OAAUA,EAAEi7D,OAASl7D,EAAEk7D,UAEpCT,EAAQ92D,KAAK+8D,GAIXjG,EAAQn5D,OAAS,EAAG,CACtB,IADsB,EAChBq/D,EAAWlG,EAAQ,GAAG35D,EACtB8/D,EAAWnG,EAAQ,GAAGv5D,EAFN,IAIDu5D,GAJC,IAItB,2BAA8B,KAAnBO,EAAmB,QAC5BA,EAAOl6D,GAAK6/D,EACZ3F,EAAO95D,GAAK0/D,GANQ,+BAUD,IAAnBnG,EAAQn5D,SAGG25D,GAASR,EAAQ,GAAIA,EAAQ,IAC/B95D,KAAKC,IAAI65D,EAAQ,GAAGS,OAAST,EAAQ,GAAGS,UACjDT,EAAQ,GAAG35D,EAAI25D,EAAQ,GAAG35D,EAAI25D,EAAQ,GAAGS,OAAST,EAAQ,GAAGS,OAAS,MACtET,EAAQ,GAAGv5D,EAAIu5D,EAAQ,GAAGv5D,IAM9B,GAAIu5D,EAAQn5D,OAAS,EAAG,CACtB,IADsB,EAChBu/D,EAAWlgE,KAAK0nD,MAAMoS,EAAQ,GAAG35D,EAAG25D,EAAQ,GAAGv5D,GAAKu/D,EACpD9+D,EAAIhB,KAAKw7D,IAAI0E,GACb/4D,EAAInH,KAAKu7D,IAAI2E,GAHG,IAKDpG,GALC,IAKtB,2BAA8B,KAAnBO,EAAmB,QACtBl6D,EAAIk6D,EAAOl6D,EACXI,EAAI85D,EAAO95D,EACjB85D,EAAOl6D,EAAIa,EAAIb,EAAIgH,EAAI5G,EACvB85D,EAAO95D,EAAI4G,EAAIhH,EAAIa,EAAIT,GATH,+BAexB,GAAIu5D,EAAQn5D,OAAS,EAAG,CAEtB,IADA,IAAIm6D,EAAQ96D,KAAK0nD,MAAMoS,EAAQ,GAAG35D,EAAG25D,EAAQ,GAAGv5D,GAAKu/D,EAC9ChF,EAAQ,GACbA,GAAS,EAAI96D,KAAKknD,GAEpB,KAAO4T,EAAQ,EAAI96D,KAAKknD,IACtB4T,GAAS,EAAI96D,KAAKknD,GAEpB,GAAI4T,EAAQ96D,KAAKknD,GAAI,CACnB,IADmB,EACbiZ,EAAQrG,EAAQ,GAAGv5D,GAAK,MAAQu5D,EAAQ,GAAG35D,GAD9B,IAEE25D,GAFF,IAEnB,2BAA8B,KAAnBO,EAAmB,QACxB1xD,GAAK0xD,EAAOl6D,EAAIggE,EAAQ9F,EAAO95D,IAAM,EAAI4/D,EAAQA,GACrD9F,EAAOl6D,EAAI,EAAIwI,EAAI0xD,EAAOl6D,EAC1Bk6D,EAAO95D,EAAI,EAAIoI,EAAIw3D,EAAQ9F,EAAO95D,GALjB,iCAsEzB,SAAS6/D,GAAetG,GACtB,IAAMuG,EAAS,SAAC13D,GAGd,MAAO,CAAEtF,IAFEy2D,EAAQwG,QAAO,SAACC,EAAKv/D,GAAN,OAAYhB,KAAKqD,IAAIk9D,EAAKv/D,EAAE2H,GAAK3H,EAAEu5D,UAASiG,OAAOC,mBAE3Dj3B,IADPswB,EAAQwG,QAAO,SAACC,EAAKv/D,GAAN,OAAYhB,KAAKwpC,IAAI+2B,EAAKv/D,EAAE2H,GAAK3H,EAAEu5D,UAASiG,OAAOE,qBAG/E,MAAO,CAAEC,OAAQN,EAAO,KAAMO,OAAQP,EAAO,MAU/C,SAASQ,GAAkB7D,EAAU8C,EAAaC,GAC7B,MAAfD,IACFA,EAAc9/D,KAAKknD,GAAK,GAK1B,IAPkE,EAO9D4S,EAAUgH,GAAmB9D,GAAUx8D,KAAI,SAACmI,GAAD,OAAOpD,OAAOQ,OAAO,GAAI4C,MAGlEo4D,EAhFR,SAAyBjH,GAOvB,SAAS3f,EAAKkgB,GAIZ,OAHIA,EAAO5f,SAAW4f,IACpBA,EAAO5f,OAASN,EAAKkgB,EAAO5f,SAEvB4f,EAAO5f,OAGhB,SAASumB,EAAM7gE,EAAGI,GAChB,IAAM0gE,EAAQ9mB,EAAKh6C,GACb+gE,EAAQ/mB,EAAK55C,GACnB0gE,EAAMxmB,OAASymB,EAfjBpH,EAAQrzD,SAAQ,SAAC4zD,GACfA,EAAO5f,OAAS4f,KAkBlB,IAAK,IAAIx6D,EAAI,EAAGA,EAAIi6D,EAAQn5D,SAAUd,EACpC,IAAK,IAAIyB,EAAIzB,EAAI,EAAGyB,EAAIw4D,EAAQn5D,SAAUW,EAAG,CAC3C,IAAM6/D,EAAcrH,EAAQj6D,GAAG06D,OAAST,EAAQx4D,GAAGi5D,OAC/CD,GAASR,EAAQj6D,GAAIi6D,EAAQx4D,IAAM,MAAQ6/D,GAC7CH,EAAMlH,EAAQx4D,GAAIw4D,EAAQj6D,IAQhC,IADA,IAAMuhE,EAAmB,IAAI1nD,IACpB7Z,EAAI,EAAGA,EAAIi6D,EAAQn5D,SAAUd,EAAG,CACvC,IAAMk9D,EAAQ5iB,EAAK2f,EAAQj6D,IAAI46C,OAAOsiB,MACjCqE,EAAiBh1C,IAAI2wC,IACxBqE,EAAiB30D,IAAIswD,EAAO,IAE9BqE,EAAiBpzD,IAAI+uD,GAAO35D,KAAK02D,EAAQj6D,IAS3C,OALAi6D,EAAQrzD,SAAQ,SAAC4zD,UACRA,EAAO5f,UAITp6C,MAAM2G,KAAKo6D,EAAiBhuB,UAiClBiuB,CAAgBvH,GAViC,IAa5CiH,GAb4C,IAalE,2BAAgC,KAArBO,EAAqB,QAC9BzB,GAAiByB,EAASxB,EAAaC,GACvC,IAAMwB,EAASnB,GAAekB,GAC9BA,EAAQj/B,MAAQk/B,EAAOZ,OAAOt9D,IAAMk+D,EAAOZ,OAAOn3B,MAAQ+3B,EAAOX,OAAOv9D,IAAMk+D,EAAOX,OAAOp3B,KAC5F83B,EAAQC,OAASA,GAjB+C,8BAmBlER,EAAS/9D,MAAK,SAAC3D,EAAGC,GAAJ,OAAUA,EAAE+iC,KAAOhjC,EAAEgjC,QAInC,IAAIm/B,GADJ1H,EAAUiH,EAAS,IACQQ,OACrBE,GAAWD,EAAab,OAAOt9D,IAAMm+D,EAAab,OAAOn3B,KAAO,GAOtE,SAASk4B,EAAWJ,EAASzD,EAAO8D,GAClC,GAAKL,EAAL,CAIA,IAEIM,EAEAC,EAJEN,EAASD,EAAQC,OAMvB,GAAI1D,EACF+D,EAAUJ,EAAab,OAAOt9D,IAAMk+D,EAAOZ,OAAOn3B,IAAMi4B,MACnD,CACLG,EAAUJ,EAAab,OAAOt9D,IAAMk+D,EAAOZ,OAAOt9D,IAClD,IAAMy+D,GACHP,EAAOZ,OAAOt9D,IAAMk+D,EAAOZ,OAAOn3B,KAAO,GAAKg4B,EAAab,OAAOt9D,IAAMm+D,EAAab,OAAOn3B,KAAO,EAClGs4B,EAAY,IACdF,GAAWE,GAIf,GAAIH,EACFE,EAAUL,EAAaZ,OAAOv9D,IAAMk+D,EAAOX,OAAOp3B,IAAMi4B,MACnD,CACLI,EAAUL,EAAaZ,OAAOv9D,IAAMk+D,EAAOX,OAAOv9D,IAClD,IAAMy+D,GACHP,EAAOX,OAAOv9D,IAAMk+D,EAAOX,OAAOp3B,KAAO,GAAKg4B,EAAaZ,OAAOv9D,IAAMm+D,EAAaZ,OAAOp3B,KAAO,EAClGs4B,EAAY,IACdD,GAAWC,GA7B2B,UAiC1BR,GAjC0B,IAiC1C,2BAAyB,KAAdtgE,EAAc,QACvBA,EAAEb,GAAKyhE,EACP5gE,EAAET,GAAKshE,EACP/H,EAAQ12D,KAAKpC,IApC2B,gCAyC5C,IADA,IAAI+2B,EAAQ,EACLA,EAAQgpC,EAASpgE,QACtB+gE,EAAWX,EAAShpC,IAAQ,GAAM,GAClC2pC,EAAWX,EAAShpC,EAAQ,IAAI,GAAO,GACvC2pC,EAAWX,EAAShpC,EAAQ,IAAI,GAAM,GACtCA,GAAS,EAITypC,EAAepB,GAAetG,GAIhC,OAAOiI,GAAiBjI,GAe1B,SAASkI,GAAchF,EAAUl4C,EAAOC,EAAQk9C,EAASC,GACvD,IAAMpI,EAAUgH,GAAmB9D,GAEnCl4C,GAAS,EAAIm9C,EACbl9C,GAAU,EAAIk9C,EAEd,IAQIE,EAEAC,EAVJ,EAA2BhC,GAAetG,GAAlC6G,EAAR,EAAQA,OAAQC,EAAhB,EAAgBA,OAEhB,GAAID,EAAOt9D,MAAQs9D,EAAOn3B,KAAOo3B,EAAOv9D,MAAQu9D,EAAOp3B,IAErD,OADAtG,QAAQllB,IAAI,4CACLg/C,EAOT,GAAIkF,EAAY,CACd,IAAMG,EAAoD,EAAlCriE,KAAKa,KAAKqhE,EAAaliE,KAAKknD,IACpDib,EAAWr9C,EAAQu9C,EACnBD,EAAWr9C,EAASs9C,OAEpBF,EAAWr9C,GAAS67C,EAAOt9D,IAAMs9D,EAAOn3B,KACxC44B,EAAWr9C,GAAU67C,EAAOv9D,IAAMu9D,EAAOp3B,KAG3C,IAAM84B,EAAUtiE,KAAKwpC,IAAI44B,EAAUD,GAE7BP,GAAW98C,GAAS67C,EAAOt9D,IAAMs9D,EAAOn3B,KAAO84B,GAAW,EAC1DT,GAAW98C,GAAU67C,EAAOv9D,IAAMu9D,EAAOp3B,KAAO84B,GAAW,EAEjE,OAAOP,GACLjI,EAAQt5D,KAAI,SAAC65D,GAAD,MAAa,CACvBE,OAAQ+H,EAAUjI,EAAOE,OACzBp6D,EAAG8hE,EAAUL,GAAWvH,EAAOl6D,EAAIwgE,EAAOn3B,KAAO84B,EACjD/hE,EAAG0hE,EAAUJ,GAAWxH,EAAO95D,EAAIqgE,EAAOp3B,KAAO84B,EACjDvF,MAAO1C,EAAO0C,WASpB,SAASgF,GAAiBjI,GAExB,IAFiC,EAE3B15D,EAAI,GAFuB,IAGZ05D,GAHY,IAGjC,2BAA8B,KAAnBO,EAAmB,QAC5Bj6D,EAAEi6D,EAAO0C,OAAS1C,GAJa,8BAMjC,OAAOj6D,EAMT,SAAS0gE,GAAmB9D,GAE1B,OADez3D,OAAOoB,KAAKq2D,GACbx8D,KAAI,SAAC8B,GAAD,OAAQiD,OAAOQ,OAAOi3D,EAAS16D,GAAK,CAAEy6D,MAAOz6D,OAgYjE,SAASigE,GAASzI,EAAS0I,GACzB,OAAO,SAAUv/C,GACf,IAAM0E,EAAO7e,KACPgc,EAAQg1C,EAAQ72C,EAAKs5C,KAAK,IAAIhC,QAAU,GACxCkI,EAAQD,EAASv/C,IAAS,GAE1By/C,EAAQD,EAAMj8D,MAAM,OAAOovC,UAE3B+sB,GAAYF,EAAM9hE,OAAS+hE,EAAM/hE,QADtB,EAGbiiE,EAAOF,EAAM7sB,MACbgtB,EAAO,CAACD,GACRE,EAAa,EAEjBn7C,EAAKnX,YAAc,KACnB,IAAMuyD,EAAS,GAEf,SAASpgB,EAAOigB,GACd,IAAMI,EAAQr7C,EAAKnY,cAAc8yB,gBAAgB3a,EAAK7W,aAAc,SAIpE,OAHAkyD,EAAMxyD,YAAcoyD,EACpBG,EAAO3/D,KAAK4/D,GACZr7C,EAAKg7B,OAAOqgB,GACLA,EAIT,IAFA,IAAIA,EAAQrgB,EAAOigB,GAGjBA,EAAOF,EAAM7sB,OADF,CAKXgtB,EAAKz/D,KAAKw/D,GACV,IAAMK,EAASJ,EAAKv8D,KAAK,KACzB08D,EAAMxyD,YAAcyyD,EAChBA,EAAOtiE,OAASgiE,GAAYK,EAAME,wBAA0Bp+C,IAC9D+9C,EAAKhtB,MACLmtB,EAAMxyD,YAAcqyD,EAAKv8D,KAAK,KAC9Bu8D,EAAO,CAACD,GACRI,EAAQrgB,EAAOigB,GACfE,KAIJ,IAAMp+D,EAAU,IA9BG,IA8BKo+D,EAA2B,EAC7C3iE,EAAIwnB,EAAKu2B,aAAa,KACtB39C,EAAIonB,EAAKu2B,aAAa,KAC5B6kB,EAAOt8D,SAAQ,SAACwmB,EAAGptB,GACjBotB,EAAE9iB,aAAa,IAAKhK,GACpB8sB,EAAE9iB,aAAa,IAAK5J,GACpB0sB,EAAE9iB,aAAa,KAAf,UAAwBzF,EApCP,IAoCiB7E,EAAlC,WAYN,SAASsjE,GAAaz/D,EAAS0/D,EAAUC,GAGvC,IAFA,IAAIC,EAASF,EAAS,GAAG7I,OAASD,GAAS8I,EAAS,GAAI1/D,GAE/C7D,EAAI,EAAGA,EAAIujE,EAASziE,SAAUd,EAAG,CACxC,IAAM4H,EAAI27D,EAASvjE,GAAG06D,OAASD,GAAS8I,EAASvjE,GAAI6D,GACjD+D,GAAK67D,IACPA,EAAS77D,GAIb,IAAK,IAAI5H,EAAI,EAAGA,EAAIwjE,EAAS1iE,SAAUd,EAAG,CACxC,IAAM4H,EAAI6yD,GAAS+I,EAASxjE,GAAI6D,GAAW2/D,EAASxjE,GAAG06D,OACnD9yD,GAAK67D,IACPA,EAAS77D,GAGb,OAAO67D,EAYT,SAASC,GAAkBH,EAAUC,EAAUG,GAI7C,IAJoE,EAI9DnH,EAAS,GAJqD,IAKpD+G,GALoD,IAKpE,2BAA0B,KAAfpiE,EAAe,QACxBq7D,EAAOj5D,KAAK,CAAEjD,EAAGa,EAAEb,EAAGI,EAAGS,EAAET,IAC3B87D,EAAOj5D,KAAK,CAAEjD,EAAGa,EAAEb,EAAIa,EAAEu5D,OAAS,EAAGh6D,EAAGS,EAAET,IAC1C87D,EAAOj5D,KAAK,CAAEjD,EAAGa,EAAEb,EAAIa,EAAEu5D,OAAS,EAAGh6D,EAAGS,EAAET,IAC1C87D,EAAOj5D,KAAK,CAAEjD,EAAGa,EAAEb,EAAGI,EAAGS,EAAET,EAAIS,EAAEu5D,OAAS,IAC1C8B,EAAOj5D,KAAK,CAAEjD,EAAGa,EAAEb,EAAGI,EAAGS,EAAET,EAAIS,EAAEu5D,OAAS,KAVwB,8BAgBpE,IAHA,IAAI71D,EAAU23D,EAAO,GACjBiH,EAASH,GAAa9G,EAAO,GAAI+G,EAAUC,GAEtCxjE,EAAI,EAAGA,EAAIw8D,EAAO17D,SAAUd,EAAG,CACtC,IAAM4H,EAAI07D,GAAa9G,EAAOx8D,GAAIujE,EAAUC,GACxC57D,GAAK67D,IACP5+D,EAAU23D,EAAOx8D,GACjByjE,EAAS77D,GAKb,IAzBoE,EAyB9Du1D,GAAWz7D,EAAAA,GAAAA,aACf,SAAC6zB,GAAD,OAAQ,EAAI+tC,GAAa,CAAEhjE,EAAGi1B,EAAE,GAAI70B,EAAG60B,EAAE,IAAMguC,EAAUC,KACzD,CAAC3+D,EAAQvE,EAAGuE,EAAQnE,GACpB,CAAEf,cAAe,IAAKoC,cAAe,QACrCzB,EAEIO,EAAM,CAAEP,EAAGqjE,EAAwB,EAAIxG,EAAS,GAAIz8D,EAAGy8D,EAAS,IAIlEyG,GAAQ,EAnCwD,IAoCpDL,GApCoD,IAoCpE,2BAA0B,KAAfvjE,EAAe,QACxB,GAAIy6D,GAAS55D,EAAKb,GAAKA,EAAE06D,OAAQ,CAC/BkJ,GAAQ,EACR,QAvCgE,wCA2CpDJ,GA3CoD,IA2CpE,2BAA0B,KAAfz6D,EAAe,QACxB,GAAI0xD,GAAS55D,EAAKkI,GAAKA,EAAE2xD,OAAQ,CAC/BkJ,GAAQ,EACR,QA9CgE,8BAiDpE,GAAIA,EACF,OAAO/iE,EAGT,GAAuB,GAAnB0iE,EAASziE,OACX,MAAO,CAAER,EAAGijE,EAAS,GAAGjjE,EAAGI,EAAG6iE,EAAS,GAAG7iE,GAE5C,IAAMmjE,EAAY,GAGlB,OAFA7J,GAAiBuJ,EAAUM,GAEG,IAA1BA,EAAU/I,KAAKh6D,OACV,CAAER,EAAG,EAAGI,GAAI,IAAMs7D,UAAU,GAER,GAAzB6H,EAAU/I,KAAKh6D,OACV,CAAER,EAAGujE,EAAU/I,KAAK,GAAGN,OAAOl6D,EAAGI,EAAGmjE,EAAU/I,KAAK,GAAGN,OAAO95D,GAElE8iE,EAAS1iE,OAEJ4iE,GAAkBH,EAAU,IAM9BvI,GAAU6I,EAAU/I,KAAKn6D,KAAI,SAACnB,GAAD,OAAOA,EAAE27D,OAK/C,SAAS2I,GAAsB7J,GAG7B,IAFA,IAAMp5D,EAAM,GACNkjE,EAAYr+D,OAAOoB,KAAKmzD,GAC9B,MAAuB8J,EAAvB,eAAkC,CAChCljE,EADiB,MACD,GAElB,IAAK,IAAIb,EAAI,EAAGA,EAAI+jE,EAAUjjE,OAAQd,IAGpC,IAFA,IAAMq+B,EAAK0lC,EAAU/jE,GACfR,EAAIy6D,EAAQ57B,GACT58B,EAAIzB,EAAI,EAAGyB,EAAIsiE,EAAUjjE,SAAUW,EAAG,CAC7C,IAAMujC,EAAK++B,EAAUtiE,GACfhC,EAAIw6D,EAAQj1B,GACZl8B,EAAI2xD,GAASj7D,EAAGC,GAElBqJ,EAAIrJ,EAAEi7D,QAAUl7D,EAAEk7D,OAAS,MAC7B75D,EAAImkC,GAAIzhC,KAAK86B,GACJv1B,EAAItJ,EAAEk7D,QAAUj7D,EAAEi7D,OAAS,OACpC75D,EAAIw9B,GAAI96B,KAAKyhC,GAInB,OAAOnkC,EAGT,SAASmjE,GAAmB/J,EAAS8C,EAAO4G,GAG1C,IAFA,IAAM9iE,EAAM,GACNojE,EAAaH,GAAsB7J,GAChCj6D,EAAI,EAAGA,EAAI+8D,EAAMj8D,SAAUd,EAAG,CAKrC,IAJA,IAAMkV,EAAO6nD,EAAM/8D,GAAG08D,KAChBwH,EAAU,GACVC,EAAU,GAEP1iE,EAAI,EAAGA,EAAIyT,EAAKpU,SAAUW,EAAG,CACpCyiE,EAAQhvD,EAAKzT,KAAM,EAKnB,IAJA,IAAMm+D,EAAWqE,EAAW/uD,EAAKzT,IAIxBsL,EAAI,EAAGA,EAAI6yD,EAAS9+D,SAAUiM,EACrCo3D,EAAQvE,EAAS7yD,KAAM,EAI3B,IAAMw2D,EAAW,GACXC,EAAW,GACjB,IAAK,IAAItG,KAASjD,EACZiD,KAASgH,EACXX,EAAShgE,KAAK02D,EAAQiD,IACXA,KAASiH,GACpBX,EAASjgE,KAAK02D,EAAQiD,IAG1B,IAAMkH,EAASV,GAAkBH,EAAUC,EAAUG,GACrD9iE,EAAIqU,GAAQkvD,EACRA,EAAOpI,UAAYe,EAAM/8D,GAAGwiC,KAAO,GACrCa,QAAQllB,IAAI,iBAAmBjJ,EAAO,8BAG1C,OAAOrU,EAkET,SAASwjE,GAAeC,GACtB,IAAMC,EAASD,EAAK39D,MAAM,KAC1B,MAAO,CAAErG,EAAGqgE,OAAO6D,WAAWD,EAAO,IAAK7jE,EAAGigE,OAAO6D,WAAWD,EAAO,IAAK7J,QAASiG,OAAO6D,WAAWD,EAAO,KAG/G,SAASE,GAAqBxK,GAC5B,GAAuB,IAAnBA,EAAQn5D,OACV,MAAO,GAET,IAAMo5D,EAAQ,GAEd,OADAF,GAAiBC,EAASC,GACnBA,EAAMY,KAGf,SAAS4J,GAAW5J,EAAMrG,GACxB,GAAoB,IAAhBqG,EAAKh6D,OACP,MAAO,QAET,IAAM6jE,EAAUxkE,KAAKk1D,IAAI,GAAIZ,GAAS,GAChCl0D,EAAa,MAATk0D,EAAgB,SAACpnC,GAAD,OAAOltB,KAAKs0D,MAAMpnC,EAAIs3C,GAAWA,GAAU,SAACt3C,GAAD,OAAOA,GAC5E,GAAmB,GAAfytC,EAAKh6D,OAAa,CACpB,IAAM05D,EAASM,EAAK,GAAGN,OACvB,OApCJ,SAAoBl6D,EAAGI,EAAGH,GACxB,IAAMM,EAAM,GAKZ,OAJAA,EAAI0C,KAAK,MAAOjD,EAAGI,GACnBG,EAAI0C,KAAK,OAAQhD,EAAG,GACpBM,EAAI0C,KAAK,MAAOhD,EAAGA,EAAG,EAAG,EAAG,EAAO,EAAJA,EAAO,GACtCM,EAAI0C,KAAK,MAAOhD,EAAGA,EAAG,EAAG,EAAG,EAAQ,GAAJA,EAAO,GAChCM,EAAI4F,KAAK,KA8BPm+D,CAAWrkE,EAAEi6D,EAAOl6D,GAAIC,EAAEi6D,EAAO95D,GAAIH,EAAEi6D,EAAOE,SAGvD,IAX+B,EAWzB75D,EAAM,CAAC,MAAON,EAAEu6D,EAAK,GAAGI,GAAG56D,GAAIC,EAAEu6D,EAAK,GAAGI,GAAGx6D,IAXnB,IAYbo6D,GAZa,IAY/B,2BAAwB,KAAbO,EAAa,QAChBX,EAASn6D,EAAE86D,EAAIb,OAAOE,QAC5B75D,EAAI0C,KAAK,MAAOm3D,EAAQA,EAAQ,EAAGW,EAAIO,MAAQ,EAAI,EAAGP,EAAIQ,MAAQ,EAAI,EAAGt7D,EAAE86D,EAAIF,GAAG76D,GAAIC,EAAE86D,EAAIF,GAAGz6D,KAdlE,8BAgB/B,OAAOG,EAAI4F,KAAK,KAQlB,SAASo+D,GAAqB5K,EAASxF,GACrC,OAAOiQ,GAAWD,GAAqBxK,GAAUxF,iBCpvDnD,GAhBiB,SAAC,GAAwC,IAAtCmK,EAAqC,EAArCA,IAAKkG,EAAgC,EAAhCA,qBAEvB,KAA+BhoC,EAAAA,EAAAA,WAAS,GAAxC,GAAOioC,EAAP,KAAiBC,EAAjB,KAOA,OACE,iCACE,mBAAOz7D,KAAK,WAAWoF,QAASo2D,EAAUE,SAPzB,SAAC,GAAqB,IAAnBh+D,EAAkB,EAAlBA,OACtB+9D,GAAYD,GACZD,EAAqBlG,EAAK33D,EAAO0H,eC6ZrC,OA9ZA,WACE,MCNa,WACb,IAAMu2D,EAA8B,qBAAX58D,OAEzB,SAAS68D,IAGP,MAAO,CACLlgD,MAHYigD,EAAY58D,OAAO88D,WAAa,KAI5ClgD,OAHaggD,EAAY58D,OAAO+8D,YAAc,MAOlD,SAAgDvoC,EAAAA,EAAAA,UAC9CqoC,KADF,GAAOG,EAAP,KAAyBC,EAAzB,KAeA,OAXAtoC,EAAAA,EAAAA,YAAU,WACR,GAAIioC,EAAW,CAAC,IACLM,EAAT,WACED,EAAoBJ,MAItB,OADA78D,OAAOoP,iBAAiB,SAAU8tD,GAC3B,kBAAMl9D,OAAOqP,oBAAoB,SAAU6tD,OAEnD,CAACN,IAEGI,EDrBmBG,GAAlBvgD,EAAR,EAAQA,OAAQD,EAAhB,EAAgBA,MAEhB,KAA0B6X,EAAAA,EAAAA,UAAS,IAAnC,GAAO4oC,EAAP,KAAcC,EAAd,KACA,KAA0B7oC,EAAAA,EAAAA,UAAS,IAAnC,GAAO8oC,EAAP,KAAcC,EAAd,KACA,KAA0B/oC,EAAAA,EAAAA,UAAS,IAAnC,GAAOgpC,EAAP,KAAcC,EAAd,KACA,KAA0BjpC,EAAAA,EAAAA,UAAS,IAAnC,GAAOkpC,EAAP,KAAcC,EAAd,KACA,KAA4BnpC,EAAAA,EAAAA,UAAS,IAArC,GAAOopC,EAAP,KAAeC,EAAf,KACA,KAA4BrpC,EAAAA,EAAAA,UAAS,IAArC,GAAOspC,EAAP,KAAeC,EAAf,KACA,KAA4BvpC,EAAAA,EAAAA,UAAS,IAArC,GAAOwpC,EAAP,KAAeC,EAAf,KACA,KAA8BzpC,EAAAA,EAAAA,UAAS,IAAvC,GAAO0pC,EAAP,KAAgBC,EAAhB,KACA,KAAgC3pC,EAAAA,EAAAA,UAAS,IAAzC,GAAO4pC,EAAP,KAAiBC,EAAjB,KAEMC,GAAS9nC,EAAAA,EAAAA,QAAO,MAChB+nC,GAAS/nC,EAAAA,EAAAA,QAAO,MAChBgoC,GAAShoC,EAAAA,EAAAA,QAAO,MAChBioC,GAAUjoC,EAAAA,EAAAA,QAAO,MACjBkoC,GAAUloC,EAAAA,EAAAA,QAAO,MACjBmoC,GAAUnoC,EAAAA,EAAAA,QAAO,MACjBooC,GAAWpoC,EAAAA,EAAAA,QAAO,MAIxB,KAAwChC,EAAAA,EAAAA,UAAS,IAAI90B,IAAI,CAAC,KAA1D,GAAOm/D,EAAP,KAAqBC,EAArB,KAIA,KAA8BtqC,EAAAA,EAAAA,WAAS,GAAvC,GAAOuqC,EAAP,KAAgBC,EAAhB,MACArqC,EAAAA,EAAAA,YAAU,WACJoqC,GACFC,GAAW,KAEZ,CAACD,IAEJ,IAWA,KAAgCvqC,EAAAA,EAAAA,WAAS,GAAzC,GAAOyqC,EAAP,KAAiBC,EAAjB,KAEA,KAAwB1qC,EAAAA,EAAAA,UAAS,CAC/B,CAAE4/B,KAAM,CAAC,KAAMl6B,KAAM,IAAMogC,MAAOgD,GAClC,CAAElJ,KAAM,CAAC,KAAMl6B,KAAM,IAAMogC,MAAOkD,GAClC,CAAEpJ,KAAM,CAAC,KAAMl6B,KAAM,IAAMogC,MAAOoD,GAClC,CAAEtJ,KAAM,CAAC,IAAK,KAAMl6B,KAAM,IAAKogC,MAAOsD,GACtC,CAAExJ,KAAM,CAAC,IAAK,KAAMl6B,KAAM,IAAKogC,MAAOwD,GACtC,CAAE1J,KAAM,CAAC,IAAK,KAAMl6B,KAAM,IAAKogC,MAAO0D,GACtC,CAAE5J,KAAM,CAAC,IAAK,IAAK,KAAMl6B,KAAM,IAAKogC,MAAO4D,KAP7C,GAAO9J,EAAP,KAAa+K,EAAb,MA2BAxqC,EAAAA,EAAAA,YAAU,WACJsqC,IACFC,GAAY,GACXl/D,OAAeo/D,KAAK,QAArB,OAAsC,CACpCC,YAAa,iBAGhB,CAACJ,IAEJ,IA+BMK,EAAU,SAAC9/C,GACFA,EAAKhnB,OAElB,OAAO,KAGH+mE,EAAe,SAAC//C,GACPA,EAAKhnB,OAElB,OAAOgnB,EAAKhnB,OAAS,EAAI,IAAM,GAI3BgnE,GAAa,SAAChgD,EAAclb,GAChCA,EAAIkb,IAsFN,OAnFAmV,EAAAA,EAAAA,YAAU,WAGR,IAAI8qC,EAAS,CACX,CAAErL,KAAM,CAAC,KAAMl6B,KAAMolC,EAAQhC,GAAQhD,MAAOgD,GAC5C,CAAElJ,KAAM,CAAC,KAAMl6B,KAAMolC,EAAQ9B,GAAQlD,MAAOkD,GAC5C,CAAEpJ,KAAM,CAAC,IAAK,KAAMl6B,KAAMqlC,EAAa3B,GAAStD,MAAOsD,IAErDiB,EAAa56C,IAAI,KACnBw7C,EAAM,YACDA,GADC,CAEJ,CAAErL,KAAM,CAAC,KAAMl6B,KAAMolC,EAAQ5B,GAAQpD,MAAOoD,GAC5C,CAAEtJ,KAAM,CAAC,IAAK,KAAMl6B,KAAMqlC,EAAazB,GAASxD,MAAOwD,GACvD,CAAE1J,KAAM,CAAC,IAAK,KAAMl6B,KAAMqlC,EAAavB,GAAS1D,MAAO0D,GACvD,CAAE5J,KAAM,CAAC,IAAK,IAAK,KAAMl6B,KAAMqlC,EAAarB,GAAU5D,MAAO4D,MAGjEiB,EAAQM,KACP,CAACnC,EAAOE,EAAOE,EAAOE,EAAQE,EAAQE,EAAQE,EAASa,KAE1DpqC,EAAAA,EAAAA,YAAU,WAER,IAAI+qC,EFg7BR,WAAmC,IAAd/3D,EAAc,uDAAJ,GACzBg4D,GAAa,EACfhjD,EAAQ,IACRC,EAAS,IACTk9C,EAAU,GACVpb,EAAW,IACXiZ,EAAc9/D,KAAKknD,GAAK,EACxB6gB,GAAY,EACZ7F,EAAa,KACbjxB,GAAO,EACP+2B,GAAS,EACTC,EAAW,KACXlI,EAAmB,KACnB3C,GAAW,EACX9I,EAAQ,KACRkP,KAAwB1zD,IAAWA,EAAQ0zD,wBAAwB1zD,EAAQ0zD,sBAG3E0E,EAAY,GAIZC,EACEr4D,GAAWA,EAAQq4D,aACfr4D,EAAQq4D,aACRr4D,GAAWA,EAAQs4D,YACnBt4D,EAAQs4D,YACR,CACE,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAERC,EAAc,EACdC,EAAU,SAAUjhE,GAClB,GAAIA,KAAO6gE,EACT,OAAOA,EAAU7gE,GAEnB,IAAI3G,EAAOwnE,EAAU7gE,GAAO8gE,EAAaE,GAKzC,OAJAA,GAAe,IACIF,EAAaxnE,SAC9B0nE,EAAc,GAET3nE,GAET6nE,EAAiBjM,GACjBI,EAAOC,GAET,SAASkL,EAAM5mB,GACb,IAAIh+B,EAAOg+B,EAAUvG,QAGf8tB,EAAW,IAAI3gE,IACrBob,EAAKxc,SAAQ,SAACi0C,GACM,GAAdA,EAAMrY,MAAkC,GAArBqY,EAAM6hB,KAAK57D,QAChC6nE,EAASvgE,IAAIyyC,EAAM6hB,KAAK,OAG5Bt5C,EAAOA,EAAKq3B,QAAO,SAACI,GAAD,OAAYA,EAAM6hB,KAAKkM,MAAK,SAACh8D,GAAD,OAAS+7D,EAASp8C,IAAI3f,SAErE,IAAIqtD,EAAU,GACV4O,EAAc,GAElB,GAAIzlD,EAAKtiB,OAAS,EAAG,CACnB,IAAIq8D,EAAWuL,EAAetlD,EAAM,CAAE05C,aAAcD,EAAMU,SAAAA,IAEtD2K,IACF/K,EAAW6D,GAAkB7D,EAAU8C,EAAaC,IAGtDjG,EAAUkI,GAAchF,EAAUl4C,EAAOC,EAAQk9C,EAASC,GAC1DwG,EAAc7E,GAAmB/J,EAAS72C,EAAMugD,GAKlD,IAAMmF,EAAS,GAOf,SAASlG,EAAM95D,GACb,OAAIA,EAAE4zD,QAAQoM,EACLA,EAAOhgE,EAAE4zD,MAEG,GAAjB5zD,EAAE4zD,KAAK57D,OACF,GAAKgI,EAAE4zD,KAAK,QADrB,EAVFt5C,EAAKxc,SAAQ,SAACi0C,GACRA,EAAM+nB,QACRkG,EAAOjuB,EAAM6hB,MAAQ7hB,EAAM+nB,UAc/BxhB,EAAUK,UAAU,OAAOr+B,KAAK,CAAC62C,IAAU9e,QAAQ2H,OAAO,OAE1D,IAAMzG,EAAM+E,EAAUC,OAAO,OAEzB4mB,EACF5rB,EAAIuH,KAAK,UAAT,cAA2B3+B,EAA3B,YAAoCC,IAEpCm3B,EAAIuH,KAAK,QAAS3+B,GAAO2+B,KAAK,SAAU1+B,GAK1C,IAAMm9B,EAAW,GACb0mB,GAAc,EAUlB,SAASC,EAAUlgE,GACjB,OAAO,SAACskB,GACN,IAAMjsB,EAAI2H,EAAE4zD,KAAK/7D,KAAI,SAACiM,GACpB,IAAIse,EAAQm3B,EAASz1C,GACjBwe,EAAM6uC,EAAQrtD,GAOlB,OANKse,IACHA,EAAQ,CAAE5qB,EAAG2kB,EAAQ,EAAGvkB,EAAGwkB,EAAS,EAAGw1C,OAAQ,IAE5CtvC,IACHA,EAAM,CAAE9qB,EAAG2kB,EAAQ,EAAGvkB,EAAGwkB,EAAS,EAAGw1C,OAAQ,IAExC,CACLp6D,EAAG4qB,EAAM5qB,GAAK,EAAI8sB,GAAKhC,EAAI9qB,EAAI8sB,EAC/B1sB,EAAGwqB,EAAMxqB,GAAK,EAAI0sB,GAAKhC,EAAI1qB,EAAI0sB,EAC/BstC,OAAQxvC,EAAMwvC,QAAU,EAAIttC,GAAKhC,EAAIsvC,OAASttC,MAGlD,OAAOy3C,GAAqB1jE,EAAGszD,IA1BnCpY,EAAIoF,UAAU,mBAAmBkC,MAAK,SAAU76C,GAC9C,IAAMw7D,EAAOr7D,KAAKo1C,aAAa,KACV,GAAjBv1C,EAAE4zD,KAAK57D,QAAewjE,IAAS/G,IACjCwL,GAAc,EACd1mB,EAASv5C,EAAE4zD,KAAK,IAAM2H,GAAeC,OA2BzC,IAAM5gB,EAAQrH,EAAIoF,UAAU,cAAcr+B,KAAKA,GAAM,SAACta,GAAD,OAAOA,EAAE4zD,QAGxDvhB,EAAQuI,EACXvI,QACA2H,OAAO,KACPc,KACC,SACA,SAAC96C,GAAD,+BACqC,GAAjBA,EAAE4zD,KAAK57D,OAAc,SAAW,gBADpD,OAEIgI,EAAEmgE,QAAUngE,EAAEse,MAAQ,iBAAmB,OAG9Cw8B,KAAK,kBAAkB,SAAC96C,GAAD,OAAOA,EAAE4zD,KAAKj2D,KAAK,QAEvCyiE,EAAY/tB,EAAM2H,OAAO,QACzBqmB,EAAYhuB,EACf2H,OAAO,QACPc,KAAK,QAAS,SACd97B,MAAK,SAAChf,GAAD,OAAO85D,EAAM95D,MAClB86C,KAAK,cAAe,UACpBA,KAAK,KAAM,SACXA,KAAK,IAAK3+B,EAAQ,GAClB2+B,KAAK,IAAK1+B,EAAS,GAqBtB,SAASkkD,EAAa9hE,GACpB,MAA4B,oBAAjBA,EAAE+U,WACJ/U,EAAE+U,WAAW,QAAQ2qC,SAASA,GAEhC1/C,EAtBL6gE,IACFe,EACGv0D,MAAM,eAAgB,KACtB8lC,QAAO,SAAC3xC,GAAD,OAAwB,GAAjBA,EAAE4zD,KAAK57D,UACrB6T,MAAM,QAAQ,SAAC7L,GAAD,OAAQA,EAAEmgE,OAASngE,EAAEmgE,OAASngE,EAAEse,MAAQte,EAAEse,MAAQqhD,EAAQ3/D,EAAE4zD,SAC1E/nD,MAAM,eAAgB,OAEzBw0D,EAAUx0D,MAAM,QAAQ,SAAC7L,GACvB,OAAIA,EAAEmgE,QAAUngE,EAAEse,MACT,OAELnX,EAAQo5D,SACHp5D,EAAQo5D,SAEO,GAAjBvgE,EAAE4zD,KAAK57D,OAAc2nE,EAAQ3/D,EAAE4zD,MAAQ,WAYlD,IAAIhiB,EAAS0G,EACT2nB,GAA4C,oBAAtBruB,EAAOr+B,YAC/Bq+B,EAAS0uB,EAAahoB,IACfK,UAAU,QAAQ4V,UAAU,IAAK2R,GAExCtuB,EAAO+G,UAAU,QAAQmC,KAAK,KAAK,SAAC96C,GAAD,OAAO+7D,GAAqB/7D,EAAE4zD,KAAK/7D,KAAI,SAACiM,GAAD,OAASqtD,EAAQrtD,SAAQ6nD,GAGrG,IAAM6U,EAAa5uB,EAChB+G,UAAU,QACVhH,QAAO,SAAC3xC,GAAD,OAAOA,EAAE4zD,QAAQmM,KACxB/gD,MAAK,SAAChf,GAAD,OAAO85D,EAAM95D,MAClB86C,KAAK,KAAK,SAAC96C,GAAD,OAAO3I,KAAKu3C,MAAMmxB,EAAY//D,EAAE4zD,MAAMp8D,MAChDsjD,KAAK,KAAK,SAAC96C,GAAD,OAAO3I,KAAKu3C,MAAMmxB,EAAY//D,EAAE4zD,MAAMh8D,MAE/C0wC,IACE23B,EAGE,OAAQO,EACVA,EAAWnpB,GAAG,MAAOuiB,GAASzI,EAAS2I,IAEvC0G,EAAW3lB,KAAK,MAAO+e,GAASzI,EAAS2I,IAG3C0G,EAAW3lB,KAAK+e,GAASzI,EAAS2I,KAKtC,IAAMxnB,EAAOguB,EAAa1lB,EAAMtI,QAAQsD,SACR,oBAArBgF,EAAMrnC,YACf++B,EAAKqG,UAAU,QAAQ4V,UAAU,IAAK2R,GAGxC,IAAMO,EAAWnuB,EACdqG,UAAU,QACVmC,KAAK,IAAK3+B,EAAQ,GAClB2+B,KAAK,IAAK1+B,EAAS,GAUtB,OANiB,OAAbkjD,IACFe,EAAUx0D,MAAM,YAAa,OAC7B20D,EAAW30D,MAAM,YAAayzD,GAC9BmB,EAAS50D,MAAM,YAAa,QAGvB,CAAEslD,QAAAA,EAAS4O,YAAAA,EAAanlB,MAAAA,EAAOvI,MAAAA,EAAOT,OAAAA,EAAQU,KAAAA,GA8GvD,OA3GA4sB,EAAM52B,KAAO,SAAUmT,GACrB,OAAKh9C,UAAUzG,QACfswC,EAAOmT,EACAyjB,GAFuB52B,GAKhC42B,EAAMC,WAAa,WAEjB,OADAA,GAAa,EACND,GAGTA,EAAM/iD,MAAQ,SAAUs/B,GACtB,OAAKh9C,UAAUzG,QACfmkB,EAAQs/B,EACDyjB,GAFuB/iD,GAKhC+iD,EAAM9iD,OAAS,SAAUq/B,GACvB,OAAKh9C,UAAUzG,QACfokB,EAASq/B,EACFyjB,GAFuB9iD,GAKhC8iD,EAAM5F,QAAU,SAAU7d,GACxB,OAAKh9C,UAAUzG,QACfshE,EAAU7d,EACHyjB,GAFuB5F,GAKhC4F,EAAMzK,SAAW,SAAUhZ,GACzB,OAAKh9C,UAAUzG,QACfy8D,EAAWhZ,EACJyjB,GAFuBzK,GAKhCyK,EAAMS,QAAU,SAAUlkB,GACxB,OAAKh9C,UAAUzG,QACf2nE,EAAUlkB,EACHyjB,GAFuBS,GAKhCT,EAAMlS,OAAS,SAAUvR,GACvB,OAAKh9C,UAAUzG,QACf2nE,EAAUlkB,EACHyjB,GAFuBlS,QAKhCkS,EAAMI,SAAW,SAAU7jB,GACzB,OAAKh9C,UAAUzG,QACfsnE,EAAW7jB,EACJyjB,GAFuBI,GAKhCJ,EAAMvT,MAAQ,SAAUlQ,GACtB,OAAKh9C,UAAUzG,QACf2zD,EAAQlQ,EACDyjB,GAFuBvT,GAKhCuT,EAAMhhB,SAAW,SAAUzC,GACzB,OAAKh9C,UAAUzG,QACfkmD,EAAWzC,EACJyjB,GAFuBhhB,GAKhCghB,EAAMU,eAAiB,SAAUnkB,GAC/B,OAAKh9C,UAAUzG,QACf4nE,EAAiBnkB,EACVyjB,GAFuBU,GAKhCV,EAAME,UAAY,SAAU3jB,GAC1B,OAAKh9C,UAAUzG,QACfonE,EAAY3jB,EACLyjB,GAFuBE,GAKhCF,EAAM3F,WAAa,SAAU9d,GAC3B,OAAKh9C,UAAUzG,QACfuhE,EAAa9d,EACNyjB,GAFuB3F,GAKhC2F,EAAMG,OAAS,SAAU5jB,GACvB,OAAKh9C,UAAUzG,QACfqnE,EAAS5jB,EACFyjB,GAFuBG,GAKhCH,EAAM/H,YAAc,SAAU1b,GAC5B,OAAKh9C,UAAUzG,QACfm/D,EAAc1b,EACPyjB,GAFuB/H,GAKhC+H,EAAM9H,iBAAmB,SAAU3b,GACjC,OAAKh9C,UAAUzG,QACfo/D,EAAmB3b,EACZyjB,GAFuB9H,GAKhC8H,EAAMlL,aAAe,SAAUvY,GAC7B,OAAKh9C,UAAUzG,QACf+7D,EAAa,YAANtY,EAAkBuY,GAAqB,aAANvY,EAAmBub,GAAuBvb,EAC3EyjB,GAFuBnL,GAKzBmL,EElxCYvL,CAAiB,IAO9B+M,GAAW,GAGb,qUAAqUr/D,KACnUs/D,UAAUC,YAEZ,0kDAA0kDv/D,KACxkDs/D,UAAUC,UAAUC,OAAO,EAAG,OAGhCH,GAAW,GAEb,IAAMx8C,EAAY/H,GAAS,IACvBjY,EAAYkY,GAAU,IACrBskD,IACHx8D,GAAQ,GAEVg7D,EAAM/iD,MAAM+H,EAAQ,GAAJA,GAAS9H,OAAOlY,GEtLrB,SAASgtC,GACtB,MAA2B,kBAAbA,EACR,IAAIiH,GAAU,CAAC,CAAC14C,SAAS0xC,cAAcD,KAAa,CAACzxC,SAAS6wB,kBAC9D,IAAI6nB,GAAU,CAAC,CAACjH,IAAYgH,IFoLhC4oB,CAAU,SAAS/uB,MAAM6hB,GAAMj1D,KAAKugE,GACpC4B,GAAa,sBAAsBzpB,GAAG,SAAS,WAE7C,OADgBl3C,KAAa4gE,WAAW,kBAAkB3oE,OAExD,IAAK,IACF0lE,EAAe/iE,QAAQ6gC,QACxB,MACF,IAAK,IACFmiC,EAAehjE,QAAQ6gC,QACxB,MACF,IAAK,IACFoiC,EAAejjE,QAAQ6gC,YAI9BklC,GAAa,4BAA4BzpB,GAAG,SAAS,WAEnD,OADgBl3C,KAAa4gE,WAAW,kBAAkB3oE,OAExD,IAAK,MACF8lE,EAAgBnjE,QAAQ6gC,QACzB,MACF,IAAK,MACFuiC,EAAgBpjE,QAAQ6gC,QACzB,MACF,IAAK,MACFqiC,EAAgBljE,QAAQ6gC,QACzB,MACF,IAAK,QACFwiC,EAAiBrjE,QAAQ6gC,cAI/B,CAACg4B,KAKF,kBAAKj6D,GAAG,YAAYqnE,UAAU,8BAA9B,WACE,iBACErnE,GAAG,aACHqnE,UAAU,4EAFZ,+CAOA,kBACErnE,GAAG,aACHqnE,UAAU,oEAFZ,WAIE,2BACE,kBAAKA,UAAU,uCAAf,UAhBK,CAAC,EAAG,EAAG,EAAG,EAAG,GAiBVnpE,KAAI,SAAC6F,GAAD,OACR,kBAAasjE,UAAU,mCAAvB,WACE,qBACEA,UAAU,iFACVxnC,QAAS,kBA7KP,SAAC97B,GACjBujE,aAAaC,QAAb,UAAwBxjE,EAAxB,MAA+Bk/D,GAC/BqE,aAAaC,QAAb,UAAwBxjE,EAAxB,MAA+Bo/D,GAC/BmE,aAAaC,QAAb,UAAwBxjE,EAAxB,MAA+Bs/D,GAC/BiE,aAAaC,QAAb,UAAwBxjE,EAAxB,MAA+Bw/D,GAC/B+D,aAAaC,QAAb,UAAwBxjE,EAAxB,OAAgC0/D,GAChC6D,aAAaC,QAAb,UAAwBxjE,EAAxB,OAAgC4/D,GAChC2D,aAAaC,QAAb,UAAwBxjE,EAAxB,OAAgC8/D,GAChCyD,aAAaC,QAAb,UAAwBxjE,EAAxB,QAAiCggE,GACjCuD,aAAaC,QAAb,UAAwBxjE,EAAxB,SAAkCkgE,GAClCc,GAAY,GAmKiByC,CAAUzjE,IAF3B,kBAIQA,MAER,qBACEsjE,UAAU,mFACVxnC,QAAS,kBA5JP,SAAC97B,GACjBm/D,EAASoE,aAAaG,QAAb,UAAwB1jE,EAAxB,QAAkC,IAC3Cq/D,EAASkE,aAAaG,QAAb,UAAwB1jE,EAAxB,QAAkC,IAC3Cu/D,EAASgE,aAAaG,QAAb,UAAwB1jE,EAAxB,QAAkC,IAC3Cy/D,EAAS8D,aAAaG,QAAb,UAAwB1jE,EAAxB,QAAkC,IAC3C2/D,EAAU4D,aAAaG,QAAb,UAAwB1jE,EAAxB,SAAmC,IAC7C6/D,EAAU0D,aAAaG,QAAb,UAAwB1jE,EAAxB,SAAmC,IAC7C+/D,EAAUwD,aAAaG,QAAb,UAAwB1jE,EAAxB,SAAmC,IAC7CigE,EAAWsD,aAAaG,QAAb,UAAwB1jE,EAAxB,UAAoC,IAC/CmgE,EAAYoD,aAAaG,QAAb,UAAwB1jE,EAAxB,WAAqC,IAEhD8B,OAAeo/D,KAAK,QAArB,OAAsC,CACpCC,YAAY,aAAD,OAAenhE,KAgJC2jE,CAAU3jE,IAF3B,kBAIQA,MAER,iBAAKsjE,UAAU,OAAf,SAAuBC,aAAaG,QAAb,UAAwB1jE,EAAxB,WAbfA,OAgBZ,oBACEsjE,UAAU,2EACVxnC,QArJM,WAChBqjC,EAAS,IACTE,EAAS,IACTE,EAAS,IACTE,EAAS,IACTE,EAAU,IACVE,EAAU,IACVE,EAAU,IACVE,EAAW,IACXE,EAAY,IACXr+D,OAAeo/D,KAAK,QAArB,OAAsC,CACpCC,YAAY,UAwIN,8BAQJ,kBAAKmC,UAAU,8CAAf,WACE,mBAAOA,UAAU,QAAjB,UACE,kBAAMA,UAAU,YAAhB,sBAEF,mBACErnE,GAAG,SACHvB,MAAOwkE,EACPoE,UAAU,QACV7E,SAAU,SAACl8D,GAAD,OAAO++D,GAAW/+D,EAAE9B,OAAO/F,MAAOykE,UAGhD,kBAAKmE,UAAU,8CAAf,WACE,mBAAOA,UAAU,QAAjB,UACE,kBAAMA,UAAU,YAAhB,sBAEF,sBACErnE,GAAG,SACHvB,MAAO0kE,EACPkE,UAAU,QACVpyC,IAAKkvC,EACL3B,SAAU,SAACl8D,GAAD,OAAO++D,GAAW/+D,EAAE9B,OAAO/F,MAAO2kE,UAGhD,kBAAKiE,UAAU,8CAAf,WACE,mBAAOA,UAAU,QAAjB,UACE,kBAAMA,UAAU,YAAhB,sBAEF,sBACErnE,GAAG,SACHvB,MAAO4kE,EACPpuC,IAAKmvC,EACLiD,UAAU,QACV7E,SAAU,SAACl8D,GAAD,OAAO++D,GAAW/+D,EAAE9B,OAAO/F,MAAO6kE,UAGhD,kBAAK+D,UAAU,8CAAf,WACE,UAAC,GAAD,CAAUlL,IAAK,EAAGkG,qBAhQG,SAAClG,EAAajwD,GACrCA,EACFw4D,EAAa/+D,IAAIw2D,IACPjwD,GAAWw4D,EAAa56C,IAAIqyC,IACtCuI,EAAa3sD,OAAOokD,GAEtBwI,EAAgBD,GAChBG,GAAW,OA0PL,mBAAOwC,UAAU,QAAjB,UACE,kBAAMA,UAAU,YAAhB,sBAEF,sBACErnE,GAAG,SACHvB,MAAO8kE,EACPtuC,IAAKovC,EACLgD,UAAU,QACV15D,UAAW+2D,EAAa56C,IAAI,GAC5B04C,SAAU,SAACl8D,GAAD,OAAO++D,GAAW/+D,EAAE9B,OAAO/F,MAAO+kE,UAIhD,kBAAK6D,UAAU,8CAAf,WACE,mBAAOA,UAAU,QAAjB,UACE,kBAAMA,UAAU,YAAhB,+BAEF,sBACErnE,GAAG,SACHvB,MAAOglE,EACPxuC,IAAKqvC,EACL+C,UAAU,QACV7E,SAAU,SAACl8D,GAAD,OAAO++D,GAAW/+D,EAAE9B,OAAO/F,MAAOilE,UAIhD,kBAAK2D,UAAU,8CAAf,WACE,mBAAOA,UAAU,QAAjB,UACE,kBAAMA,UAAU,YAAhB,+BAEF,sBACErnE,GAAG,SACHvB,MAAOklE,EACP1uC,IAAKsvC,EACL8C,UAAU,QACV15D,UAAW+2D,EAAa56C,IAAI,GAC5B04C,SAAU,SAACl8D,GAAD,OAAO++D,GAAW/+D,EAAE9B,OAAO/F,MAAOmlE,UAIhD,kBAAKyD,UAAU,8CAAf,WACE,mBAAOA,UAAU,QAAjB,UACE,kBAAMA,UAAU,YAAhB,+BAEF,sBACErnE,GAAG,SACHvB,MAAOolE,EACP5uC,IAAKuvC,EACL6C,UAAU,QACV15D,UAAW+2D,EAAa56C,IAAI,GAC5B04C,SAAU,SAACl8D,GAAD,OAAO++D,GAAW/+D,EAAE9B,OAAO/F,MAAOqlE,UAGhD,kBAAKuD,UAAU,8CAAf,WACE,mBAAOA,UAAU,QAAjB,UACE,kBAAMA,UAAU,YAAhB,wCAEF,sBACErnE,GAAG,SACHvB,MAAOslE,EACP9uC,IAAKwvC,EACL4C,UAAU,QACV15D,UAAW+2D,EAAa56C,IAAI,GAC5B04C,SAAU,SAACl8D,GAAD,OAAO++D,GAAW/+D,EAAE9B,OAAO/F,MAAOulE,UAGhD,kBAAKqD,UAAU,8CAAf,WACE,mBAAOA,UAAU,QAAjB,UACE,mBAAMA,UAAU,YAAhB,mBACO,gCADP,aACuB,gCAAa,IACjC3C,EAAa56C,IAAI,KAChB,yCACK,yCAKX,sBACE9pB,GAAG,SACHvB,MAAOwlE,EACPoD,UAAU,QACV7E,SAAU,SAACl8D,GAAD,OAAO++D,GAAW/+D,EAAE9B,OAAO/F,MAAOylE,aAKlD,iBAAKmD,UAAU,0DAAf,SACGpE,KAEH,iBAAKoE,UAAU,MAAf,UACE,kBAAKA,UAAU,iFAAf,WACIzC,IACA,iBACE5kE,GAAG,OACHqnE,UAAU,+BACVn1D,MAAO,CAAEy1D,UAAW,aAGxB,iBAAKN,UAAU,wCAAf,SACGpD,UAIP,iBACEjkE,GAAG,aACHqnE,UAAU,gFAFZ,UAIE,eACEr/C,KAAK,mCACLxjB,OAAO,SACPq7B,QAAS,WACNh6B,OAAeo/D,KAAK,QAAS,WAAY,CACxCC,YAAa,cALnB,4BGhZR0C,EAAAA,QACE,UAAC,aAAD,WACE,UAAC,GAAD,MAEF9hE,SAAS+hE,eAAe","sources":["../node_modules/@babel/runtime/regenerator/index.js","../node_modules/fmin/build/fmin.js","../node_modules/object-assign/index.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../webpack/bootstrap","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/d3-selection/src/selector.js","../node_modules/d3-selection/src/array.js","../node_modules/d3-selection/src/selectorAll.js","../node_modules/d3-selection/src/matcher.js","../node_modules/d3-selection/src/selection/selectChild.js","../node_modules/d3-selection/src/selection/selectChildren.js","../node_modules/d3-selection/src/selection/sparse.js","../node_modules/d3-selection/src/selection/enter.js","../node_modules/d3-selection/src/constant.js","../node_modules/d3-selection/src/selection/data.js","../node_modules/d3-selection/src/selection/sort.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/d3-selection/src/namespaces.js","../node_modules/d3-selection/src/namespace.js","../node_modules/d3-selection/src/selection/attr.js","../node_modules/d3-selection/src/window.js","../node_modules/d3-selection/src/selection/style.js","../node_modules/d3-selection/src/selection/property.js","../node_modules/d3-selection/src/selection/classed.js","../node_modules/d3-selection/src/selection/text.js","../node_modules/d3-selection/src/selection/html.js","../node_modules/d3-selection/src/selection/raise.js","../node_modules/d3-selection/src/selection/lower.js","../node_modules/d3-selection/src/creator.js","../node_modules/d3-selection/src/selection/insert.js","../node_modules/d3-selection/src/selection/remove.js","../node_modules/d3-selection/src/selection/clone.js","../node_modules/d3-selection/src/selection/on.js","../node_modules/d3-selection/src/selection/dispatch.js","../node_modules/d3-selection/src/selection/iterator.js","../node_modules/d3-selection/src/selection/index.js","../node_modules/d3-selection/src/selection/select.js","../node_modules/d3-selection/src/selection/selectAll.js","../node_modules/d3-selection/src/selection/filter.js","../node_modules/d3-selection/src/selection/exit.js","../node_modules/d3-selection/src/selection/join.js","../node_modules/d3-selection/src/selection/merge.js","../node_modules/d3-selection/src/selection/order.js","../node_modules/d3-selection/src/selection/call.js","../node_modules/d3-selection/src/selection/nodes.js","../node_modules/d3-selection/src/selection/node.js","../node_modules/d3-selection/src/selection/size.js","../node_modules/d3-selection/src/selection/empty.js","../node_modules/d3-selection/src/selection/each.js","../node_modules/d3-selection/src/selection/append.js","../node_modules/d3-selection/src/selection/datum.js","../node_modules/d3-dispatch/src/dispatch.js","../node_modules/d3-timer/src/timer.js","../node_modules/d3-timer/src/timeout.js","../node_modules/d3-transition/src/transition/schedule.js","../node_modules/d3-interpolate/src/number.js","../node_modules/d3-interpolate/src/transform/decompose.js","../node_modules/d3-interpolate/src/transform/parse.js","../node_modules/d3-interpolate/src/transform/index.js","../node_modules/d3-transition/src/transition/tween.js","../node_modules/d3-color/src/define.js","../node_modules/d3-color/src/color.js","../node_modules/d3-interpolate/src/basis.js","../node_modules/d3-interpolate/src/constant.js","../node_modules/d3-interpolate/src/color.js","../node_modules/d3-interpolate/src/rgb.js","../node_modules/d3-interpolate/src/basisClosed.js","../node_modules/d3-interpolate/src/string.js","../node_modules/d3-transition/src/transition/interpolate.js","../node_modules/d3-transition/src/transition/attr.js","../node_modules/d3-transition/src/transition/attrTween.js","../node_modules/d3-transition/src/transition/delay.js","../node_modules/d3-transition/src/transition/duration.js","../node_modules/d3-transition/src/transition/ease.js","../node_modules/d3-transition/src/transition/on.js","../node_modules/d3-transition/src/transition/selection.js","../node_modules/d3-transition/src/transition/style.js","../node_modules/d3-transition/src/transition/styleTween.js","../node_modules/d3-transition/src/transition/textTween.js","../node_modules/d3-transition/src/transition/index.js","../node_modules/d3-transition/src/transition/select.js","../node_modules/d3-transition/src/transition/selectAll.js","../node_modules/d3-transition/src/transition/filter.js","../node_modules/d3-transition/src/transition/merge.js","../node_modules/d3-transition/src/transition/transition.js","../node_modules/d3-transition/src/transition/text.js","../node_modules/d3-transition/src/transition/remove.js","../node_modules/d3-transition/src/transition/easeVarying.js","../node_modules/d3-transition/src/transition/end.js","../node_modules/d3-transition/src/selection/transition.js","../node_modules/d3-ease/src/cubic.js","../node_modules/d3-transition/src/selection/index.js","../node_modules/d3-transition/src/selection/interrupt.js","../node_modules/d3-transition/src/interrupt.js","../node_modules/d3-brush/src/brush.js","../node_modules/d3-selection/src/selectAll.js","../node_modules/d3-zoom/src/transform.js","../node_modules/@upsetjs/venn.js/build/venn.esm.js","InputBox/index.tsx","App.tsx","hooks/useWindowDimensions.js","../node_modules/d3-selection/src/select.js","index.tsx"],"sourcesContent":["module.exports = require(\"regenerator-runtime\");\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (factory((global.fmin = global.fmin || {})));\n}(this, function (exports) { 'use strict';\n\n /** finds the zeros of a function, given two starting points (which must\n * have opposite signs */\n function bisect(f, a, b, parameters) {\n parameters = parameters || {};\n var maxIterations = parameters.maxIterations || 100,\n tolerance = parameters.tolerance || 1e-10,\n fA = f(a),\n fB = f(b),\n delta = b - a;\n\n if (fA * fB > 0) {\n throw \"Initial bisect points must have opposite signs\";\n }\n\n if (fA === 0) return a;\n if (fB === 0) return b;\n\n for (var i = 0; i < maxIterations; ++i) {\n delta /= 2;\n var mid = a + delta,\n fMid = f(mid);\n\n if (fMid * fA >= 0) {\n a = mid;\n }\n\n if ((Math.abs(delta) < tolerance) || (fMid === 0)) {\n return mid;\n }\n }\n return a + delta;\n }\n\n // need some basic operations on vectors, rather than adding a dependency,\n // just define here\n function zeros(x) { var r = new Array(x); for (var i = 0; i < x; ++i) { r[i] = 0; } return r; }\n function zerosM(x,y) { return zeros(x).map(function() { return zeros(y); }); }\n\n function dot(a, b) {\n var ret = 0;\n for (var i = 0; i < a.length; ++i) {\n ret += a[i] * b[i];\n }\n return ret;\n }\n\n function norm2(a) {\n return Math.sqrt(dot(a, a));\n }\n\n function scale(ret, value, c) {\n for (var i = 0; i < value.length; ++i) {\n ret[i] = value[i] * c;\n }\n }\n\n function weightedSum(ret, w1, v1, w2, v2) {\n for (var j = 0; j < ret.length; ++j) {\n ret[j] = w1 * v1[j] + w2 * v2[j];\n }\n }\n\n /** minimizes a function using the downhill simplex method */\n function nelderMead(f, x0, parameters) {\n parameters = parameters || {};\n\n var maxIterations = parameters.maxIterations || x0.length * 200,\n nonZeroDelta = parameters.nonZeroDelta || 1.05,\n zeroDelta = parameters.zeroDelta || 0.001,\n minErrorDelta = parameters.minErrorDelta || 1e-6,\n minTolerance = parameters.minErrorDelta || 1e-5,\n rho = (parameters.rho !== undefined) ? parameters.rho : 1,\n chi = (parameters.chi !== undefined) ? parameters.chi : 2,\n psi = (parameters.psi !== undefined) ? parameters.psi : -0.5,\n sigma = (parameters.sigma !== undefined) ? parameters.sigma : 0.5,\n maxDiff;\n\n // initialize simplex.\n var N = x0.length,\n simplex = new Array(N + 1);\n simplex[0] = x0;\n simplex[0].fx = f(x0);\n simplex[0].id = 0;\n for (var i = 0; i < N; ++i) {\n var point = x0.slice();\n point[i] = point[i] ? point[i] * nonZeroDelta : zeroDelta;\n simplex[i+1] = point;\n simplex[i+1].fx = f(point);\n simplex[i+1].id = i+1;\n }\n\n function updateSimplex(value) {\n for (var i = 0; i < value.length; i++) {\n simplex[N][i] = value[i];\n }\n simplex[N].fx = value.fx;\n }\n\n var sortOrder = function(a, b) { return a.fx - b.fx; };\n\n var centroid = x0.slice(),\n reflected = x0.slice(),\n contracted = x0.slice(),\n expanded = x0.slice();\n\n for (var iteration = 0; iteration < maxIterations; ++iteration) {\n simplex.sort(sortOrder);\n\n if (parameters.history) {\n // copy the simplex (since later iterations will mutate) and\n // sort it to have a consistent order between iterations\n var sortedSimplex = simplex.map(function (x) {\n var state = x.slice();\n state.fx = x.fx;\n state.id = x.id;\n return state;\n });\n sortedSimplex.sort(function(a,b) { return a.id - b.id; });\n\n parameters.history.push({x: simplex[0].slice(),\n fx: simplex[0].fx,\n simplex: sortedSimplex});\n }\n\n maxDiff = 0;\n for (i = 0; i < N; ++i) {\n maxDiff = Math.max(maxDiff, Math.abs(simplex[0][i] - simplex[1][i]));\n }\n\n if ((Math.abs(simplex[0].fx - simplex[N].fx) < minErrorDelta) &&\n (maxDiff < minTolerance)) {\n break;\n }\n\n // compute the centroid of all but the worst point in the simplex\n for (i = 0; i < N; ++i) {\n centroid[i] = 0;\n for (var j = 0; j < N; ++j) {\n centroid[i] += simplex[j][i];\n }\n centroid[i] /= N;\n }\n\n // reflect the worst point past the centroid and compute loss at reflected\n // point\n var worst = simplex[N];\n weightedSum(reflected, 1+rho, centroid, -rho, worst);\n reflected.fx = f(reflected);\n\n // if the reflected point is the best seen, then possibly expand\n if (reflected.fx < simplex[0].fx) {\n weightedSum(expanded, 1+chi, centroid, -chi, worst);\n expanded.fx = f(expanded);\n if (expanded.fx < reflected.fx) {\n updateSimplex(expanded);\n } else {\n updateSimplex(reflected);\n }\n }\n\n // if the reflected point is worse than the second worst, we need to\n // contract\n else if (reflected.fx >= simplex[N-1].fx) {\n var shouldReduce = false;\n\n if (reflected.fx > worst.fx) {\n // do an inside contraction\n weightedSum(contracted, 1+psi, centroid, -psi, worst);\n contracted.fx = f(contracted);\n if (contracted.fx < worst.fx) {\n updateSimplex(contracted);\n } else {\n shouldReduce = true;\n }\n } else {\n // do an outside contraction\n weightedSum(contracted, 1-psi * rho, centroid, psi*rho, worst);\n contracted.fx = f(contracted);\n if (contracted.fx < reflected.fx) {\n updateSimplex(contracted);\n } else {\n shouldReduce = true;\n }\n }\n\n if (shouldReduce) {\n // if we don't contract here, we're done\n if (sigma >= 1) break;\n\n // do a reduction\n for (i = 1; i < simplex.length; ++i) {\n weightedSum(simplex[i], 1 - sigma, simplex[0], sigma, simplex[i]);\n simplex[i].fx = f(simplex[i]);\n }\n }\n } else {\n updateSimplex(reflected);\n }\n }\n\n simplex.sort(sortOrder);\n return {fx : simplex[0].fx,\n x : simplex[0]};\n }\n\n /// searches along line 'pk' for a point that satifies the wolfe conditions\n /// See 'Numerical Optimization' by Nocedal and Wright p59-60\n /// f : objective function\n /// pk : search direction\n /// current: object containing current gradient/loss\n /// next: output: contains next gradient/loss\n /// returns a: step size taken\n function wolfeLineSearch(f, pk, current, next, a, c1, c2) {\n var phi0 = current.fx, phiPrime0 = dot(current.fxprime, pk),\n phi = phi0, phi_old = phi0,\n phiPrime = phiPrime0,\n a0 = 0;\n\n a = a || 1;\n c1 = c1 || 1e-6;\n c2 = c2 || 0.1;\n\n function zoom(a_lo, a_high, phi_lo) {\n for (var iteration = 0; iteration < 16; ++iteration) {\n a = (a_lo + a_high)/2;\n weightedSum(next.x, 1.0, current.x, a, pk);\n phi = next.fx = f(next.x, next.fxprime);\n phiPrime = dot(next.fxprime, pk);\n\n if ((phi > (phi0 + c1 * a * phiPrime0)) ||\n (phi >= phi_lo)) {\n a_high = a;\n\n } else {\n if (Math.abs(phiPrime) <= -c2 * phiPrime0) {\n return a;\n }\n\n if (phiPrime * (a_high - a_lo) >=0) {\n a_high = a_lo;\n }\n\n a_lo = a;\n phi_lo = phi;\n }\n }\n\n return 0;\n }\n\n for (var iteration = 0; iteration < 10; ++iteration) {\n weightedSum(next.x, 1.0, current.x, a, pk);\n phi = next.fx = f(next.x, next.fxprime);\n phiPrime = dot(next.fxprime, pk);\n if ((phi > (phi0 + c1 * a * phiPrime0)) ||\n (iteration && (phi >= phi_old))) {\n return zoom(a0, a, phi_old);\n }\n\n if (Math.abs(phiPrime) <= -c2 * phiPrime0) {\n return a;\n }\n\n if (phiPrime >= 0 ) {\n return zoom(a, a0, phi);\n }\n\n phi_old = phi;\n a0 = a;\n a *= 2;\n }\n\n return a;\n }\n\n function conjugateGradient(f, initial, params) {\n // allocate all memory up front here, keep out of the loop for perfomance\n // reasons\n var current = {x: initial.slice(), fx: 0, fxprime: initial.slice()},\n next = {x: initial.slice(), fx: 0, fxprime: initial.slice()},\n yk = initial.slice(),\n pk, temp,\n a = 1,\n maxIterations;\n\n params = params || {};\n maxIterations = params.maxIterations || initial.length * 20;\n\n current.fx = f(current.x, current.fxprime);\n pk = current.fxprime.slice();\n scale(pk, current.fxprime,-1);\n\n for (var i = 0; i < maxIterations; ++i) {\n a = wolfeLineSearch(f, pk, current, next, a);\n\n // todo: history in wrong spot?\n if (params.history) {\n params.history.push({x: current.x.slice(),\n fx: current.fx,\n fxprime: current.fxprime.slice(),\n alpha: a});\n }\n\n if (!a) {\n // faiiled to find point that satifies wolfe conditions.\n // reset direction for next iteration\n scale(pk, current.fxprime, -1);\n\n } else {\n // update direction using Polak–Ribiere CG method\n weightedSum(yk, 1, next.fxprime, -1, current.fxprime);\n\n var delta_k = dot(current.fxprime, current.fxprime),\n beta_k = Math.max(0, dot(yk, next.fxprime) / delta_k);\n\n weightedSum(pk, beta_k, pk, -1, next.fxprime);\n\n temp = current;\n current = next;\n next = temp;\n }\n\n if (norm2(current.fxprime) <= 1e-5) {\n break;\n }\n }\n\n if (params.history) {\n params.history.push({x: current.x.slice(),\n fx: current.fx,\n fxprime: current.fxprime.slice(),\n alpha: a});\n }\n\n return current;\n }\n\n function gradientDescent(f, initial, params) {\n params = params || {};\n var maxIterations = params.maxIterations || initial.length * 100,\n learnRate = params.learnRate || 0.001,\n current = {x: initial.slice(), fx: 0, fxprime: initial.slice()};\n\n for (var i = 0; i < maxIterations; ++i) {\n current.fx = f(current.x, current.fxprime);\n if (params.history) {\n params.history.push({x: current.x.slice(),\n fx: current.fx,\n fxprime: current.fxprime.slice()});\n }\n\n weightedSum(current.x, 1, current.x, -learnRate, current.fxprime);\n if (norm2(current.fxprime) <= 1e-5) {\n break;\n }\n }\n\n return current;\n }\n\n function gradientDescentLineSearch(f, initial, params) {\n params = params || {};\n var current = {x: initial.slice(), fx: 0, fxprime: initial.slice()},\n next = {x: initial.slice(), fx: 0, fxprime: initial.slice()},\n maxIterations = params.maxIterations || initial.length * 100,\n learnRate = params.learnRate || 1,\n pk = initial.slice(),\n c1 = params.c1 || 1e-3,\n c2 = params.c2 || 0.1,\n temp,\n functionCalls = [];\n\n if (params.history) {\n // wrap the function call to track linesearch samples\n var inner = f;\n f = function(x, fxprime) {\n functionCalls.push(x.slice());\n return inner(x, fxprime);\n };\n }\n\n current.fx = f(current.x, current.fxprime);\n for (var i = 0; i < maxIterations; ++i) {\n scale(pk, current.fxprime, -1);\n learnRate = wolfeLineSearch(f, pk, current, next, learnRate, c1, c2);\n\n if (params.history) {\n params.history.push({x: current.x.slice(),\n fx: current.fx,\n fxprime: current.fxprime.slice(),\n functionCalls: functionCalls,\n learnRate: learnRate,\n alpha: learnRate});\n functionCalls = [];\n }\n\n\n temp = current;\n current = next;\n next = temp;\n\n if ((learnRate === 0) || (norm2(current.fxprime) < 1e-5)) break;\n }\n\n return current;\n }\n\n exports.bisect = bisect;\n exports.nelderMead = nelderMead;\n exports.conjugateGradient = conjugateGradient;\n exports.gradientDescent = gradientDescent;\n exports.gradientDescentLineSearch = gradientDescentLineSearch;\n exports.zeros = zeros;\n exports.zerosM = zerosM;\n exports.norm2 = norm2;\n exports.weightedSum = weightedSum;\n exports.scale = scale;\n\n}));","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/** @license React v17.0.2\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),m=require(\"object-assign\"),r=require(\"scheduler\");function y(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function B(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(oa,\npa);D[b]=new B(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return m({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(y(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;ad?0:1<c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Oe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Pe=fa&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Oe(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;az?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;zz?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;af))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0c?98:c,function(){a(!0)});gg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eJi&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;ee&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10 component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;tO()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","/** @license React v0.20.2\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f,g,h,k;if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}\nif(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var t=null,u=null,w=function(){if(null!==t)try{var a=exports.unstable_now();t(!0,a);t=null}catch(b){throw setTimeout(w,0),b;}};f=function(a){null!==t?setTimeout(f,0,a):(t=a,setTimeout(w,0))};g=function(a,b){u=setTimeout(a,b)};h=function(){clearTimeout(u)};exports.unstable_shouldYield=function(){return!1};k=exports.unstable_forceFrameRate=function(){}}else{var x=window.setTimeout,y=window.clearTimeout;if(\"undefined\"!==typeof console){var z=\nwindow.cancelAnimationFrame;\"function\"!==typeof window.requestAnimationFrame&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\");\"function\"!==typeof z&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\")}var A=!1,B=null,C=-1,D=5,E=0;exports.unstable_shouldYield=function(){return exports.unstable_now()>=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","// Given something array like (or null), returns something that is strictly an\n// array. This is used to ensure that array-like objects passed to d3.selectAll\n// or selection.selectAll are converted into proper arrays when creating a\n// selection; we don’t ever want to create a selection backed by a live\n// HTMLCollection or NodeList. However, note that selection.selectAll will use a\n// static NodeList as a group, since it safely derived from querySelectorAll.\nexport default function array(x) {\n return x == null ? [] : Array.isArray(x) ? x : Array.from(x);\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n","import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return Array.from(this.children);\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = arraylike(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n\n// Given some data, this returns an array-like view of it: an object that\n// exposes a length property and allows numeric indexing. Note that unlike\n// selectAll, this isn’t worried about “live” collections because the resulting\n// array will only be used briefly while data is being bound. (It is possible to\n// cause the data to change while iterating by using a key function, but please\n// don’t; we’d rather avoid a gratuitous copy.)\nfunction arraylike(data) {\n return typeof data === \"object\" && \"length\" in data\n ? data // Array, TypedArray, NodeList, array-like\n : Array.from(data); // Map, Set, iterable, string, or anything else\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n","import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n","import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n","import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n","import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n return array(select.apply(this, arguments));\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n if (typeof onenter === \"function\") {\n enter = onenter(enter);\n if (enter) enter = enter.selection();\n } else {\n enter = enter.append(onenter + \"\");\n }\n if (onupdate != null) {\n update = onupdate(update);\n if (update) update = update.selection();\n }\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(context) {\n var selection = context.selection ? context.selection() : context;\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","var noop = {value: () => {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(elapsed => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy: function(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\")\n + (this.h || 0) + \", \"\n + (this.s || 0) * 100 + \"%, \"\n + (this.l || 0) * 100 + \"%\"\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n selectChild: selection_prototype.selectChild,\n selectChildren: selection_prototype.selectChildren,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error;\n set(this, id).ease = v;\n };\n}\n\nexport default function(value) {\n if (typeof value !== \"function\") throw new Error;\n return this.each(easeVarying(this._id, value));\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolate} from \"d3-interpolate\";\nimport {pointer, select} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport BrushEvent from \"./event.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\nvar MODE_DRAG = {name: \"drag\"},\n MODE_SPACE = {name: \"space\"},\n MODE_HANDLE = {name: \"handle\"},\n MODE_CENTER = {name: \"center\"};\n\nconst {abs, max, min} = Math;\n\nfunction number1(e) {\n return [+e[0], +e[1]];\n}\n\nfunction number2(e) {\n return [number1(e[0]), number1(e[1])];\n}\n\nvar X = {\n name: \"x\",\n handles: [\"w\", \"e\"].map(type),\n input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; },\n output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }\n};\n\nvar Y = {\n name: \"y\",\n handles: [\"n\", \"s\"].map(type),\n input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; },\n output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }\n};\n\nvar XY = {\n name: \"xy\",\n handles: [\"n\", \"w\", \"e\", \"s\", \"nw\", \"ne\", \"sw\", \"se\"].map(type),\n input: function(xy) { return xy == null ? null : number2(xy); },\n output: function(xy) { return xy; }\n};\n\nvar cursors = {\n overlay: \"crosshair\",\n selection: \"move\",\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n};\n\nvar flipX = {\n e: \"w\",\n w: \"e\",\n nw: \"ne\",\n ne: \"nw\",\n se: \"sw\",\n sw: \"se\"\n};\n\nvar flipY = {\n n: \"s\",\n s: \"n\",\n nw: \"sw\",\n ne: \"se\",\n se: \"ne\",\n sw: \"nw\"\n};\n\nvar signsX = {\n overlay: +1,\n selection: +1,\n n: null,\n e: +1,\n s: null,\n w: -1,\n nw: -1,\n ne: +1,\n se: +1,\n sw: -1\n};\n\nvar signsY = {\n overlay: +1,\n selection: +1,\n n: -1,\n e: null,\n s: +1,\n w: null,\n nw: -1,\n ne: -1,\n se: +1,\n sw: +1\n};\n\nfunction type(t) {\n return {type: t};\n}\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var svg = this.ownerSVGElement || this;\n if (svg.hasAttribute(\"viewBox\")) {\n svg = svg.viewBox.baseVal;\n return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]];\n }\n return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\n// Like d3.local, but with the name “__brush” rather than auto-generated.\nfunction local(node) {\n while (!node.__brush) if (!(node = node.parentNode)) return;\n return node.__brush;\n}\n\nfunction empty(extent) {\n return extent[0][0] === extent[1][0]\n || extent[0][1] === extent[1][1];\n}\n\nexport function brushSelection(node) {\n var state = node.__brush;\n return state ? state.dim.output(state.selection) : null;\n}\n\nexport function brushX() {\n return brush(X);\n}\n\nexport function brushY() {\n return brush(Y);\n}\n\nexport default function() {\n return brush(XY);\n}\n\nfunction brush(dim) {\n var extent = defaultExtent,\n filter = defaultFilter,\n touchable = defaultTouchable,\n keys = true,\n listeners = dispatch(\"start\", \"brush\", \"end\"),\n handleSize = 6,\n touchending;\n\n function brush(group) {\n var overlay = group\n .property(\"__brush\", initialize)\n .selectAll(\".overlay\")\n .data([type(\"overlay\")]);\n\n overlay.enter().append(\"rect\")\n .attr(\"class\", \"overlay\")\n .attr(\"pointer-events\", \"all\")\n .attr(\"cursor\", cursors.overlay)\n .merge(overlay)\n .each(function() {\n var extent = local(this).extent;\n select(this)\n .attr(\"x\", extent[0][0])\n .attr(\"y\", extent[0][1])\n .attr(\"width\", extent[1][0] - extent[0][0])\n .attr(\"height\", extent[1][1] - extent[0][1]);\n });\n\n group.selectAll(\".selection\")\n .data([type(\"selection\")])\n .enter().append(\"rect\")\n .attr(\"class\", \"selection\")\n .attr(\"cursor\", cursors.selection)\n .attr(\"fill\", \"#777\")\n .attr(\"fill-opacity\", 0.3)\n .attr(\"stroke\", \"#fff\")\n .attr(\"shape-rendering\", \"crispEdges\");\n\n var handle = group.selectAll(\".handle\")\n .data(dim.handles, function(d) { return d.type; });\n\n handle.exit().remove();\n\n handle.enter().append(\"rect\")\n .attr(\"class\", function(d) { return \"handle handle--\" + d.type; })\n .attr(\"cursor\", function(d) { return cursors[d.type]; });\n\n group\n .each(redraw)\n .attr(\"fill\", \"none\")\n .attr(\"pointer-events\", \"all\")\n .on(\"mousedown.brush\", started)\n .filter(touchable)\n .on(\"touchstart.brush\", started)\n .on(\"touchmove.brush\", touchmoved)\n .on(\"touchend.brush touchcancel.brush\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n brush.move = function(group, selection, event) {\n if (group.tween) {\n group\n .on(\"start.brush\", function(event) { emitter(this, arguments).beforestart().start(event); })\n .on(\"interrupt.brush end.brush\", function(event) { emitter(this, arguments).end(event); })\n .tween(\"brush\", function() {\n var that = this,\n state = that.__brush,\n emit = emitter(that, arguments),\n selection0 = state.selection,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(this, arguments) : selection, state.extent),\n i = interpolate(selection0, selection1);\n\n function tween(t) {\n state.selection = t === 1 && selection1 === null ? null : i(t);\n redraw.call(that);\n emit.brush();\n }\n\n return selection0 !== null && selection1 !== null ? tween : tween(1);\n });\n } else {\n group\n .each(function() {\n var that = this,\n args = arguments,\n state = that.__brush,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(that, args) : selection, state.extent),\n emit = emitter(that, args).beforestart();\n\n interrupt(that);\n state.selection = selection1 === null ? null : selection1;\n redraw.call(that);\n emit.start(event).brush(event).end(event);\n });\n }\n };\n\n brush.clear = function(group, event) {\n brush.move(group, null, event);\n };\n\n function redraw() {\n var group = select(this),\n selection = local(this).selection;\n\n if (selection) {\n group.selectAll(\".selection\")\n .style(\"display\", null)\n .attr(\"x\", selection[0][0])\n .attr(\"y\", selection[0][1])\n .attr(\"width\", selection[1][0] - selection[0][0])\n .attr(\"height\", selection[1][1] - selection[0][1]);\n\n group.selectAll(\".handle\")\n .style(\"display\", null)\n .attr(\"x\", function(d) { return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })\n .attr(\"y\", function(d) { return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })\n .attr(\"width\", function(d) { return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })\n .attr(\"height\", function(d) { return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });\n }\n\n else {\n group.selectAll(\".selection,.handle\")\n .style(\"display\", \"none\")\n .attr(\"x\", null)\n .attr(\"y\", null)\n .attr(\"width\", null)\n .attr(\"height\", null);\n }\n }\n\n function emitter(that, args, clean) {\n var emit = that.__brush.emitter;\n return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean);\n }\n\n function Emitter(that, args, clean) {\n this.that = that;\n this.args = args;\n this.state = that.__brush;\n this.active = 0;\n this.clean = clean;\n }\n\n Emitter.prototype = {\n beforestart: function() {\n if (++this.active === 1) this.state.emitter = this, this.starting = true;\n return this;\n },\n start: function(event, mode) {\n if (this.starting) this.starting = false, this.emit(\"start\", event, mode);\n else this.emit(\"brush\", event);\n return this;\n },\n brush: function(event, mode) {\n this.emit(\"brush\", event, mode);\n return this;\n },\n end: function(event, mode) {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\", event, mode);\n return this;\n },\n emit: function(type, event, mode) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new BrushEvent(type, {\n sourceEvent: event,\n target: brush,\n selection: dim.output(this.state.selection),\n mode,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function started(event) {\n if (touchending && !event.touches) return;\n if (!filter.apply(this, arguments)) return;\n\n var that = this,\n type = event.target.__data__.type,\n mode = (keys && event.metaKey ? type = \"overlay\" : type) === \"selection\" ? MODE_DRAG : (keys && event.altKey ? MODE_CENTER : MODE_HANDLE),\n signX = dim === Y ? null : signsX[type],\n signY = dim === X ? null : signsY[type],\n state = local(that),\n extent = state.extent,\n selection = state.selection,\n W = extent[0][0], w0, w1,\n N = extent[0][1], n0, n1,\n E = extent[1][0], e0, e1,\n S = extent[1][1], s0, s1,\n dx = 0,\n dy = 0,\n moving,\n shifting = signX && signY && keys && event.shiftKey,\n lockX,\n lockY,\n points = Array.from(event.touches || [event], t => {\n const i = t.identifier;\n t = pointer(t, that);\n t.point0 = t.slice();\n t.identifier = i;\n return t;\n });\n\n interrupt(that);\n var emit = emitter(that, arguments, true).beforestart();\n\n if (type === \"overlay\") {\n if (selection) moving = true;\n const pts = [points[0], points[1] || points[0]];\n state.selection = selection = [[\n w0 = dim === Y ? W : min(pts[0][0], pts[1][0]),\n n0 = dim === X ? N : min(pts[0][1], pts[1][1])\n ], [\n e0 = dim === Y ? E : max(pts[0][0], pts[1][0]),\n s0 = dim === X ? S : max(pts[0][1], pts[1][1])\n ]];\n if (points.length > 1) move(event);\n } else {\n w0 = selection[0][0];\n n0 = selection[0][1];\n e0 = selection[1][0];\n s0 = selection[1][1];\n }\n\n w1 = w0;\n n1 = n0;\n e1 = e0;\n s1 = s0;\n\n var group = select(that)\n .attr(\"pointer-events\", \"none\");\n\n var overlay = group.selectAll(\".overlay\")\n .attr(\"cursor\", cursors[type]);\n\n if (event.touches) {\n emit.moved = moved;\n emit.ended = ended;\n } else {\n var view = select(event.view)\n .on(\"mousemove.brush\", moved, true)\n .on(\"mouseup.brush\", ended, true);\n if (keys) view\n .on(\"keydown.brush\", keydowned, true)\n .on(\"keyup.brush\", keyupped, true)\n\n dragDisable(event.view);\n }\n\n redraw.call(that);\n emit.start(event, mode.name);\n\n function moved(event) {\n for (const p of event.changedTouches || [event]) {\n for (const d of points)\n if (d.identifier === p.identifier) d.cur = pointer(p, that);\n }\n if (shifting && !lockX && !lockY && points.length === 1) {\n const point = points[0];\n if (abs(point.cur[0] - point[0]) > abs(point.cur[1] - point[1]))\n lockY = true;\n else\n lockX = true;\n }\n for (const point of points)\n if (point.cur) point[0] = point.cur[0], point[1] = point.cur[1];\n moving = true;\n noevent(event);\n move(event);\n }\n\n function move(event) {\n const point = points[0], point0 = point.point0;\n var t;\n\n dx = point[0] - point0[0];\n dy = point[1] - point0[1];\n\n switch (mode) {\n case MODE_SPACE:\n case MODE_DRAG: {\n if (signX) dx = max(W - w0, min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = max(N - n0, min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n case MODE_HANDLE: {\n if (points[1]) {\n if (signX) w1 = max(W, min(E, points[0][0])), e1 = max(W, min(E, points[1][0])), signX = 1;\n if (signY) n1 = max(N, min(S, points[0][1])), s1 = max(N, min(S, points[1][1])), signY = 1;\n } else {\n if (signX < 0) dx = max(W - w0, min(E - w0, dx)), w1 = w0 + dx, e1 = e0;\n else if (signX > 0) dx = max(W - e0, min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = max(N - n0, min(S - n0, dy)), n1 = n0 + dy, s1 = s0;\n else if (signY > 0) dy = max(N - s0, min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n }\n break;\n }\n case MODE_CENTER: {\n if (signX) w1 = max(W, min(E, w0 - dx * signX)), e1 = max(W, min(E, e0 + dx * signX));\n if (signY) n1 = max(N, min(S, n0 - dy * signY)), s1 = max(N, min(S, s0 + dy * signY));\n break;\n }\n }\n\n if (e1 < w1) {\n signX *= -1;\n t = w0, w0 = e0, e0 = t;\n t = w1, w1 = e1, e1 = t;\n if (type in flipX) overlay.attr(\"cursor\", cursors[type = flipX[type]]);\n }\n\n if (s1 < n1) {\n signY *= -1;\n t = n0, n0 = s0, s0 = t;\n t = n1, n1 = s1, s1 = t;\n if (type in flipY) overlay.attr(\"cursor\", cursors[type = flipY[type]]);\n }\n\n if (state.selection) selection = state.selection; // May be set by brush.move!\n if (lockX) w1 = selection[0][0], e1 = selection[1][0];\n if (lockY) n1 = selection[0][1], s1 = selection[1][1];\n\n if (selection[0][0] !== w1\n || selection[0][1] !== n1\n || selection[1][0] !== e1\n || selection[1][1] !== s1) {\n state.selection = [[w1, n1], [e1, s1]];\n redraw.call(that);\n emit.brush(event, mode.name);\n }\n }\n\n function ended(event) {\n nopropagation(event);\n if (event.touches) {\n if (event.touches.length) return;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n } else {\n dragEnable(event.view, moving);\n view.on(\"keydown.brush keyup.brush mousemove.brush mouseup.brush\", null);\n }\n group.attr(\"pointer-events\", \"all\");\n overlay.attr(\"cursor\", cursors.overlay);\n if (state.selection) selection = state.selection; // May be set by brush.move (on start)!\n if (empty(selection)) state.selection = null, redraw.call(that);\n emit.end(event, mode.name);\n }\n\n function keydowned(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n shifting = signX && signY;\n break;\n }\n case 18: { // ALT\n if (mode === MODE_HANDLE) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n move(event);\n }\n break;\n }\n case 32: { // SPACE; takes priority over ALT\n if (mode === MODE_HANDLE || mode === MODE_CENTER) {\n if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;\n if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;\n mode = MODE_SPACE;\n overlay.attr(\"cursor\", cursors.selection);\n move(event);\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n\n function keyupped(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move(event);\n }\n break;\n }\n case 18: { // ALT\n if (mode === MODE_CENTER) {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n move(event);\n }\n break;\n }\n case 32: { // SPACE\n if (mode === MODE_SPACE) {\n if (event.altKey) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n } else {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n }\n overlay.attr(\"cursor\", cursors[type]);\n move(event);\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n }\n\n function touchmoved(event) {\n emitter(this, arguments).moved(event);\n }\n\n function touchended(event) {\n emitter(this, arguments).ended(event);\n }\n\n function initialize() {\n var state = this.__brush || {selection: null};\n state.extent = number2(extent.apply(this, arguments));\n state.dim = dim;\n return state;\n }\n\n brush.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant(number2(_)), brush) : extent;\n };\n\n brush.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), brush) : filter;\n };\n\n brush.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), brush) : touchable;\n };\n\n brush.handleSize = function(_) {\n return arguments.length ? (handleSize = +_, brush) : handleSize;\n };\n\n brush.keyModifiers = function(_) {\n return arguments.length ? (keys = !!_, brush) : keys;\n };\n\n brush.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? brush : value;\n };\n\n return brush;\n}\n","import array from \"./array.js\";\nimport {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([document.querySelectorAll(selector)], [document.documentElement])\n : new Selection([array(selector)], root);\n}\n","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n","import { nelderMead, bisect, norm2, zeros, conjugateGradient, scale, zerosM } from 'fmin';\n\nconst SMALL$1 = 1e-10;\n\n/**\n * Returns the intersection area of a bunch of circles (where each circle\n * is an object having an x,y and radius property)\n * @param {ReadonlyArray<{x: number, y: number, radius: number}>} circles\n * @param {undefined | { area?: number, arcArea?: number, polygonArea?: number, arcs?: ReadonlyArray<{ circle: {x: number, y: number, radius: number}, width: number, p1: {x: number, y: number}, p2: {x: number, y: number} }>, innerPoints: ReadonlyArray<{\n x: number;\n y: number;\n parentIndex: [number, number];\n}>, intersectionPoints: ReadonlyArray<{\n x: number;\n y: number;\n parentIndex: [number, number];\n}> }} stats\n * @returns {number}\n */\nfunction intersectionArea(circles, stats) {\n // get all the intersection points of the circles\n const intersectionPoints = getIntersectionPoints(circles);\n\n // filter out points that aren't included in all the circles\n const innerPoints = intersectionPoints.filter((p) => containedInCircles(p, circles));\n\n let arcArea = 0;\n let polygonArea = 0;\n /** @type {{ circle: {x: number, y: number, radius: number}, width: number, p1: {x: number, y: number}, p2: {x: number, y: number} }[]} */\n const arcs = [];\n\n // if we have intersection points that are within all the circles,\n // then figure out the area contained by them\n if (innerPoints.length > 1) {\n // sort the points by angle from the center of the polygon, which lets\n // us just iterate over points to get the edges\n const center = getCenter(innerPoints);\n for (let i = 0; i < innerPoints.length; ++i) {\n const p = innerPoints[i];\n p.angle = Math.atan2(p.x - center.x, p.y - center.y);\n }\n innerPoints.sort((a, b) => b.angle - a.angle);\n\n // iterate over all points, get arc between the points\n // and update the areas\n let p2 = innerPoints[innerPoints.length - 1];\n for (let i = 0; i < innerPoints.length; ++i) {\n const p1 = innerPoints[i];\n\n // polygon area updates easily ...\n polygonArea += (p2.x + p1.x) * (p1.y - p2.y);\n\n // updating the arc area is a little more involved\n const midPoint = { x: (p1.x + p2.x) / 2, y: (p1.y + p2.y) / 2 };\n /** @types null | { circle: {x: number, y: number, radius: number}, width: number, p1: {x: number, y: number}, p2: {x: number, y: number} } */\n let arc = null;\n\n for (let j = 0; j < p1.parentIndex.length; ++j) {\n if (p2.parentIndex.includes(p1.parentIndex[j])) {\n // figure out the angle halfway between the two points\n // on the current circle\n const circle = circles[p1.parentIndex[j]];\n const a1 = Math.atan2(p1.x - circle.x, p1.y - circle.y);\n const a2 = Math.atan2(p2.x - circle.x, p2.y - circle.y);\n\n let angleDiff = a2 - a1;\n if (angleDiff < 0) {\n angleDiff += 2 * Math.PI;\n }\n\n // and use that angle to figure out the width of the\n // arc\n const a = a2 - angleDiff / 2;\n let width = distance(midPoint, {\n x: circle.x + circle.radius * Math.sin(a),\n y: circle.y + circle.radius * Math.cos(a),\n });\n\n // clamp the width to the largest is can actually be\n // (sometimes slightly overflows because of FP errors)\n if (width > circle.radius * 2) {\n width = circle.radius * 2;\n }\n\n // pick the circle whose arc has the smallest width\n if (arc == null || arc.width > width) {\n arc = { circle, width, p1, p2, large: width > circle.radius, sweep: true };\n }\n }\n }\n\n if (arc != null) {\n arcs.push(arc);\n arcArea += circleArea(arc.circle.radius, arc.width);\n p2 = p1;\n }\n }\n } else {\n // no intersection points, is either disjoint - or is completely\n // overlapped. figure out which by examining the smallest circle\n let smallest = circles[0];\n for (let i = 1; i < circles.length; ++i) {\n if (circles[i].radius < smallest.radius) {\n smallest = circles[i];\n }\n }\n\n // make sure the smallest circle is completely contained in all\n // the other circles\n let disjoint = false;\n for (let i = 0; i < circles.length; ++i) {\n if (distance(circles[i], smallest) > Math.abs(smallest.radius - circles[i].radius)) {\n disjoint = true;\n break;\n }\n }\n\n if (disjoint) {\n arcArea = polygonArea = 0;\n } else {\n arcArea = smallest.radius * smallest.radius * Math.PI;\n arcs.push({\n circle: smallest,\n p1: { x: smallest.x, y: smallest.y + smallest.radius },\n p2: { x: smallest.x - SMALL$1, y: smallest.y + smallest.radius },\n width: smallest.radius * 2,\n large: true,\n sweep: true,\n });\n }\n }\n\n polygonArea /= 2;\n\n if (stats) {\n stats.area = arcArea + polygonArea;\n stats.arcArea = arcArea;\n stats.polygonArea = polygonArea;\n stats.arcs = arcs;\n stats.innerPoints = innerPoints;\n stats.intersectionPoints = intersectionPoints;\n }\n\n return arcArea + polygonArea;\n}\n\n/**\n * returns whether a point is contained by all of a list of circles\n * @param {{x: number, y: number}} point\n * @param {ReadonlyArray<{x: number, y: number, radius: number}>} circles\n * @returns {boolean}\n */\nfunction containedInCircles(point, circles) {\n return circles.every((circle) => distance(point, circle) < circle.radius + SMALL$1);\n}\n\n/**\n * Gets all intersection points between a bunch of circles\n * @param {ReadonlyArray<{x: number, y: number, radius: number}>} circles\n * @returns {ReadonlyArray<{x: number, y: number, parentIndex: [number, number]}>}\n */\nfunction getIntersectionPoints(circles) {\n /** @type {{x: number, y: number, parentIndex: [number, number]}[]} */\n const ret = [];\n for (let i = 0; i < circles.length; ++i) {\n for (let j = i + 1; j < circles.length; ++j) {\n const intersect = circleCircleIntersection(circles[i], circles[j]);\n for (const p of intersect) {\n p.parentIndex = [i, j];\n ret.push(p);\n }\n }\n }\n return ret;\n}\n\n/**\n * Circular segment area calculation. See http://mathworld.wolfram.com/CircularSegment.html\n * @param {number} r\n * @param {number} width\n * @returns {number}\n **/\nfunction circleArea(r, width) {\n return r * r * Math.acos(1 - width / r) - (r - width) * Math.sqrt(width * (2 * r - width));\n}\n\n/**\n * euclidean distance between two points\n * @param {{x: number, y: number}} p1\n * @param {{x: number, y: number}} p2\n * @returns {number}\n **/\nfunction distance(p1, p2) {\n return Math.sqrt((p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y) * (p1.y - p2.y));\n}\n\n/**\n * Returns the overlap area of two circles of radius r1 and r2 - that\n * have their centers separated by distance d. Simpler faster\n * circle intersection for only two circles\n * @param {number} r1\n * @param {number} r2\n * @param {number} d\n * @returns {number}\n */\nfunction circleOverlap(r1, r2, d) {\n // no overlap\n if (d >= r1 + r2) {\n return 0;\n }\n\n // completely overlapped\n if (d <= Math.abs(r1 - r2)) {\n return Math.PI * Math.min(r1, r2) * Math.min(r1, r2);\n }\n\n const w1 = r1 - (d * d - r2 * r2 + r1 * r1) / (2 * d);\n const w2 = r2 - (d * d - r1 * r1 + r2 * r2) / (2 * d);\n return circleArea(r1, w1) + circleArea(r2, w2);\n}\n\n/**\n * Given two circles (containing a x/y/radius attributes),\n * returns the intersecting points if possible\n * note: doesn't handle cases where there are infinitely many\n * intersection points (circles are equivalent):, or only one intersection point\n * @param {{x: number, y: number, radius: number}} p1\n * @param {{x: number, y: number, radius: number}} p2\n * @returns {ReadonlyArray<{x: number, y: number}>}\n **/\nfunction circleCircleIntersection(p1, p2) {\n const d = distance(p1, p2);\n const r1 = p1.radius;\n const r2 = p2.radius;\n\n // if to far away, or self contained - can't be done\n if (d >= r1 + r2 || d <= Math.abs(r1 - r2)) {\n return [];\n }\n\n const a = (r1 * r1 - r2 * r2 + d * d) / (2 * d);\n const h = Math.sqrt(r1 * r1 - a * a);\n const x0 = p1.x + (a * (p2.x - p1.x)) / d;\n const y0 = p1.y + (a * (p2.y - p1.y)) / d;\n const rx = -(p2.y - p1.y) * (h / d);\n const ry = -(p2.x - p1.x) * (h / d);\n\n return [\n { x: x0 + rx, y: y0 - ry },\n { x: x0 - rx, y: y0 + ry },\n ];\n}\n\n/**\n * Returns the center of a bunch of points\n * @param {ReadonlyArray<{x: number, y: number}>} points\n * @returns {{x: number, y: number}}\n */\nfunction getCenter(points) {\n const center = { x: 0, y: 0 };\n for (const point of points) {\n center.x += point.x;\n center.y += point.y;\n }\n center.x /= points.length;\n center.y /= points.length;\n return center;\n}\n\n/**\n * given a list of set objects, and their corresponding overlaps\n * updates the (x, y, radius) attribute on each set such that their positions\n * roughly correspond to the desired overlaps\n * @param {readonly {sets: readonly string[]; size: number; weight?: number}[]} sets\n * @returns {{[setid: string]: {x: number, y: number, radius: number}}}\n */\nfunction venn(sets, parameters = {}) {\n parameters.maxIterations = parameters.maxIterations || 500;\n\n const initialLayout = parameters.initialLayout || bestInitialLayout;\n const loss = parameters.lossFunction || lossFunction;\n\n // add in missing pairwise areas as having 0 size\n const areas = addMissingAreas(sets, parameters);\n\n // initial layout is done greedily\n const circles = initialLayout(areas, parameters);\n\n // transform x/y coordinates to a vector to optimize\n const setids = Object.keys(circles);\n /** @type {number[]} */\n const initial = [];\n for (const setid of setids) {\n initial.push(circles[setid].x);\n initial.push(circles[setid].y);\n }\n\n // optimize initial layout from our loss function\n const solution = nelderMead(\n (values) => {\n const current = {};\n for (let i = 0; i < setids.length; ++i) {\n const setid = setids[i];\n current[setid] = {\n x: values[2 * i],\n y: values[2 * i + 1],\n radius: circles[setid].radius,\n // size : circles[setid].size\n };\n }\n return loss(current, areas);\n },\n initial,\n parameters\n );\n\n // transform solution vector back to x/y points\n const positions = solution.x;\n for (let i = 0; i < setids.length; ++i) {\n const setid = setids[i];\n circles[setid].x = positions[2 * i];\n circles[setid].y = positions[2 * i + 1];\n }\n\n return circles;\n}\n\nconst SMALL = 1e-10;\n\n/**\n * Returns the distance necessary for two circles of radius r1 + r2 to\n * have the overlap area 'overlap'\n * @param {number} r1\n * @param {number} r2\n * @param {number} overlap\n * @returns {number}\n */\nfunction distanceFromIntersectArea(r1, r2, overlap) {\n // handle complete overlapped circles\n if (Math.min(r1, r2) * Math.min(r1, r2) * Math.PI <= overlap + SMALL) {\n return Math.abs(r1 - r2);\n }\n\n return bisect((distance) => circleOverlap(r1, r2, distance) - overlap, 0, r1 + r2);\n}\n\n/**\n * Missing pair-wise intersection area data can cause problems:\n * treating as an unknown means that sets will be laid out overlapping,\n * which isn't what people expect. To reflect that we want disjoint sets\n * here, set the overlap to 0 for all missing pairwise set intersections\n * @param {ReadonlyArray<{sets: ReadonlyArray, size: number}>} areas\n * @returns {ReadonlyArray<{sets: ReadonlyArray, size: number}>}\n */\nfunction addMissingAreas(areas, parameters = {}) {\n const distinct = parameters.distinct;\n const r = areas.map((s) => Object.assign({}, s));\n\n function toKey(arr) {\n return arr.join(';');\n }\n\n if (distinct) {\n // recreate the full ones by adding things up but just to level two since the rest doesn't matter\n /** @types Map */\n const count = new Map();\n for (const area of r) {\n for (let i = 0; i < area.sets.length; i++) {\n const si = String(area.sets[i]);\n count.set(si, area.size + (count.get(si) || 0));\n for (let j = i + 1; j < area.sets.length; j++) {\n const sj = String(area.sets[j]);\n const k1 = `${si};${sj}`;\n const k2 = `${sj};${si}`;\n count.set(k1, area.size + (count.get(k1) || 0));\n count.set(k2, area.size + (count.get(k2) || 0));\n }\n }\n }\n for (const area of r) {\n if (area.sets.length < 3) {\n area.size = count.get(toKey(area.sets));\n }\n }\n }\n\n // two circle intersections that aren't defined\n const ids = [];\n\n /** @type {Set} */\n const pairs = new Set();\n for (const area of r) {\n if (area.sets.length === 1) {\n ids.push(area.sets[0]);\n } else if (area.sets.length === 2) {\n const a = area.sets[0];\n const b = area.sets[1];\n pairs.add(toKey(area.sets));\n pairs.add(toKey([b, a]));\n }\n }\n\n ids.sort((a, b) => (a === b ? 0 : a < b ? -1 : +1));\n\n for (let i = 0; i < ids.length; ++i) {\n const a = ids[i];\n for (let j = i + 1; j < ids.length; ++j) {\n const b = ids[j];\n if (!pairs.has(toKey([a, b]))) {\n r.push({ sets: [a, b], size: 0 });\n }\n }\n }\n return r;\n}\n\n/**\n * Returns two matrices, one of the euclidean distances between the sets\n * and the other indicating if there are subset or disjoint set relationships\n * @param {ReadonlyArray<{sets: ReadonlyArray}>} areas\n * @param {ReadonlyArray<{size: number}>} sets\n * @param {ReadonlyArray} setids\n */\nfunction getDistanceMatrices(areas, sets, setids) {\n // initialize an empty distance matrix between all the points\n /**\n * @type {number[][]}\n */\n const distances = zerosM(sets.length, sets.length);\n /**\n * @type {number[][]}\n */\n const constraints = zerosM(sets.length, sets.length);\n\n // compute required distances between all the sets such that\n // the areas match\n areas\n .filter((x) => x.sets.length === 2)\n .forEach((current) => {\n const left = setids[current.sets[0]];\n const right = setids[current.sets[1]];\n const r1 = Math.sqrt(sets[left].size / Math.PI);\n const r2 = Math.sqrt(sets[right].size / Math.PI);\n const distance = distanceFromIntersectArea(r1, r2, current.size);\n\n distances[left][right] = distances[right][left] = distance;\n\n // also update constraints to indicate if its a subset or disjoint\n // relationship\n let c = 0;\n if (current.size + 1e-10 >= Math.min(sets[left].size, sets[right].size)) {\n c = 1;\n } else if (current.size <= 1e-10) {\n c = -1;\n }\n constraints[left][right] = constraints[right][left] = c;\n });\n\n return { distances, constraints };\n}\n\n/// computes the gradient and loss simultaneously for our constrained MDS optimizer\nfunction constrainedMDSGradient(x, fxprime, distances, constraints) {\n for (let i = 0; i < fxprime.length; ++i) {\n fxprime[i] = 0;\n }\n\n let loss = 0;\n for (let i = 0; i < distances.length; ++i) {\n const xi = x[2 * i];\n const yi = x[2 * i + 1];\n for (let j = i + 1; j < distances.length; ++j) {\n const xj = x[2 * j];\n const yj = x[2 * j + 1];\n const dij = distances[i][j];\n const constraint = constraints[i][j];\n\n const squaredDistance = (xj - xi) * (xj - xi) + (yj - yi) * (yj - yi);\n const distance = Math.sqrt(squaredDistance);\n const delta = squaredDistance - dij * dij;\n\n if ((constraint > 0 && distance <= dij) || (constraint < 0 && distance >= dij)) {\n continue;\n }\n\n loss += 2 * delta * delta;\n\n fxprime[2 * i] += 4 * delta * (xi - xj);\n fxprime[2 * i + 1] += 4 * delta * (yi - yj);\n\n fxprime[2 * j] += 4 * delta * (xj - xi);\n fxprime[2 * j + 1] += 4 * delta * (yj - yi);\n }\n }\n return loss;\n}\n\n/**\n * takes the best working variant of either constrained MDS or greedy\n * @param {ReadonlyArray<{sets: ReadonlyArray, size: number}>} areas\n */\nfunction bestInitialLayout(areas, params = {}) {\n let initial = greedyLayout(areas, params);\n const loss = params.lossFunction || lossFunction;\n\n // greedylayout is sufficient for all 2/3 circle cases. try out\n // constrained MDS for higher order problems, take its output\n // if it outperforms. (greedy is aesthetically better on 2/3 circles\n // since it axis aligns)\n if (areas.length >= 8) {\n const constrained = constrainedMDSLayout(areas, params);\n const constrainedLoss = loss(constrained, areas);\n const greedyLoss = loss(initial, areas);\n\n if (constrainedLoss + 1e-8 < greedyLoss) {\n initial = constrained;\n }\n }\n return initial;\n}\n\n/**\n * use the constrained MDS variant to generate an initial layout\n * @param {ReadonlyArray<{sets: ReadonlyArray, size: number}>} areas\n * @returns {{[key: string]: {x: number, y: number, radius: number}}}\n */\nfunction constrainedMDSLayout(areas, params = {}) {\n const restarts = params.restarts || 10;\n\n // bidirectionally map sets to a rowid (so we can create a matrix)\n const sets = [];\n const setids = {};\n for (const area of areas) {\n if (area.sets.length === 1) {\n setids[area.sets[0]] = sets.length;\n sets.push(area);\n }\n }\n\n let { distances, constraints } = getDistanceMatrices(areas, sets, setids);\n\n // keep distances bounded, things get messed up otherwise.\n // TODO: proper preconditioner?\n const norm = norm2(distances.map(norm2)) / distances.length;\n distances = distances.map((row) => row.map((value) => value / norm));\n\n const obj = (x, fxprime) => constrainedMDSGradient(x, fxprime, distances, constraints);\n\n let best = null;\n for (let i = 0; i < restarts; ++i) {\n const initial = zeros(distances.length * 2).map(Math.random);\n\n const current = conjugateGradient(obj, initial, params);\n if (!best || current.fx < best.fx) {\n best = current;\n }\n }\n\n const positions = best.x;\n\n // translate rows back to (x,y,radius) coordinates\n /** @type {{[key: string]: {x: number, y: number, radius: number}}} */\n const circles = {};\n for (let i = 0; i < sets.length; ++i) {\n const set = sets[i];\n circles[set.sets[0]] = {\n x: positions[2 * i] * norm,\n y: positions[2 * i + 1] * norm,\n radius: Math.sqrt(set.size / Math.PI),\n };\n }\n\n if (params.history) {\n for (const h of params.history) {\n scale(h.x, norm);\n }\n }\n return circles;\n}\n\n/**\n * Lays out a Venn diagram greedily, going from most overlapped sets to\n * least overlapped, attempting to position each new set such that the\n * overlapping areas to already positioned sets are basically right\n * @param {ReadonlyArray<{size: number, sets: ReadonlyArray}>} areas\n * @return {{[key: string]: {x: number, y: number, radius: number}}}\n */\nfunction greedyLayout(areas, params) {\n const loss = params && params.lossFunction ? params.lossFunction : lossFunction;\n\n // define a circle for each set\n /** @type {{[key: string]: {x: number, y: number, radius: number}}} */\n const circles = {};\n /** @type {{[key: string]: {set: string, size: number, weight: number}[]}} */\n const setOverlaps = {};\n for (const area of areas) {\n if (area.sets.length === 1) {\n const set = area.sets[0];\n circles[set] = {\n x: 1e10,\n y: 1e10,\n rowid: circles.length,\n size: area.size,\n radius: Math.sqrt(area.size / Math.PI),\n };\n setOverlaps[set] = [];\n }\n }\n\n areas = areas.filter((a) => a.sets.length === 2);\n\n // map each set to a list of all the other sets that overlap it\n for (const current of areas) {\n let weight = current.weight != null ? current.weight : 1.0;\n const left = current.sets[0];\n const right = current.sets[1];\n\n // completely overlapped circles shouldn't be positioned early here\n if (current.size + SMALL >= Math.min(circles[left].size, circles[right].size)) {\n weight = 0;\n }\n\n setOverlaps[left].push({ set: right, size: current.size, weight });\n setOverlaps[right].push({ set: left, size: current.size, weight });\n }\n\n // get list of most overlapped sets\n const mostOverlapped = [];\n Object.keys(setOverlaps).forEach((set) => {\n let size = 0;\n for (let i = 0; i < setOverlaps[set].length; ++i) {\n size += setOverlaps[set][i].size * setOverlaps[set][i].weight;\n }\n\n mostOverlapped.push({ set, size });\n });\n\n // sort by size desc\n function sortOrder(a, b) {\n return b.size - a.size;\n }\n mostOverlapped.sort(sortOrder);\n\n // keep track of what sets have been laid out\n const positioned = {};\n function isPositioned(element) {\n return element.set in positioned;\n }\n\n /**\n * adds a point to the output\n * @param {{x: number, y: number}} point\n * @param {number} index\n */\n function positionSet(point, index) {\n circles[index].x = point.x;\n circles[index].y = point.y;\n positioned[index] = true;\n }\n\n // add most overlapped set at (0,0)\n positionSet({ x: 0, y: 0 }, mostOverlapped[0].set);\n\n // get distances between all points. TODO, necessary?\n // answer: probably not\n // var distances = venn.getDistanceMatrices(circles, areas).distances;\n for (let i = 1; i < mostOverlapped.length; ++i) {\n const setIndex = mostOverlapped[i].set;\n const overlap = setOverlaps[setIndex].filter(isPositioned);\n const set = circles[setIndex];\n overlap.sort(sortOrder);\n\n if (overlap.length === 0) {\n // this shouldn't happen anymore with addMissingAreas\n throw 'ERROR: missing pairwise overlap information';\n }\n\n /** @type {{x: number, y: number}[]} */\n const points = [];\n for (var j = 0; j < overlap.length; ++j) {\n // get appropriate distance from most overlapped already added set\n const p1 = circles[overlap[j].set];\n const d1 = distanceFromIntersectArea(set.radius, p1.radius, overlap[j].size);\n\n // sample positions at 90 degrees for maximum aesthetics\n points.push({ x: p1.x + d1, y: p1.y });\n points.push({ x: p1.x - d1, y: p1.y });\n points.push({ y: p1.y + d1, x: p1.x });\n points.push({ y: p1.y - d1, x: p1.x });\n\n // if we have at least 2 overlaps, then figure out where the\n // set should be positioned analytically and try those too\n for (let k = j + 1; k < overlap.length; ++k) {\n const p2 = circles[overlap[k].set];\n const d2 = distanceFromIntersectArea(set.radius, p2.radius, overlap[k].size);\n\n const extraPoints = circleCircleIntersection(\n { x: p1.x, y: p1.y, radius: d1 },\n { x: p2.x, y: p2.y, radius: d2 }\n );\n points.push(...extraPoints);\n }\n }\n\n // we have some candidate positions for the set, examine loss\n // at each position to figure out where to put it at\n let bestLoss = 1e50;\n let bestPoint = points[0];\n for (const point of points) {\n circles[setIndex].x = point.x;\n circles[setIndex].y = point.y;\n const localLoss = loss(circles, areas);\n if (localLoss < bestLoss) {\n bestLoss = localLoss;\n bestPoint = point;\n }\n }\n\n positionSet(bestPoint, setIndex);\n }\n\n return circles;\n}\n\n/**\n * Given a bunch of sets, and the desired overlaps between these sets - computes\n * the distance from the actual overlaps to the desired overlaps. Note that\n * this method ignores overlaps of more than 2 circles\n * @param {{[key: string]: <{x: number, y: number, radius: number}>}} circles\n * @param {ReadonlyArray<{size: number, sets: ReadonlyArray, weight?: number}>} overlaps\n * @returns {number}\n */\nfunction lossFunction(circles, overlaps) {\n let output = 0;\n\n for (const area of overlaps) {\n if (area.sets.length === 1) {\n continue;\n }\n /** @type {number} */\n let overlap;\n if (area.sets.length === 2) {\n const left = circles[area.sets[0]];\n const right = circles[area.sets[1]];\n overlap = circleOverlap(left.radius, right.radius, distance(left, right));\n } else {\n overlap = intersectionArea(area.sets.map((d) => circles[d]));\n }\n\n const weight = area.weight != null ? area.weight : 1.0;\n output += weight * (overlap - area.size) * (overlap - area.size);\n }\n\n return output;\n}\n\nfunction logRatioLossFunction(circles, overlaps) {\n let output = 0;\n\n for (const area of overlaps) {\n if (area.sets.length === 1) {\n continue;\n }\n /** @type {number} */\n let overlap;\n if (area.sets.length === 2) {\n const left = circles[area.sets[0]];\n const right = circles[area.sets[1]];\n overlap = circleOverlap(left.radius, right.radius, distance(left, right));\n } else {\n overlap = intersectionArea(area.sets.map((d) => circles[d]));\n }\n\n const weight = area.weight != null ? area.weight : 1.0;\n const differenceFromIdeal = Math.log((overlap + 1) / (area.size + 1));\n output += weight * differenceFromIdeal * differenceFromIdeal;\n }\n\n return output;\n}\n\n/**\n * orientates a bunch of circles to point in orientation\n * @param {{x :number, y: number, radius: number}[]} circles\n * @param {number | undefined} orientation\n * @param {((a: {x :number, y: number, radius: number}, b: {x :number, y: number, radius: number}) => number) | undefined} orientationOrder\n */\nfunction orientateCircles(circles, orientation, orientationOrder) {\n if (orientationOrder == null) {\n circles.sort((a, b) => b.radius - a.radius);\n } else {\n circles.sort(orientationOrder);\n }\n\n // shift circles so largest circle is at (0, 0)\n if (circles.length > 0) {\n const largestX = circles[0].x;\n const largestY = circles[0].y;\n\n for (const circle of circles) {\n circle.x -= largestX;\n circle.y -= largestY;\n }\n }\n\n if (circles.length === 2) {\n // if the second circle is a subset of the first, arrange so that\n // it is off to one side. hack for https://github.com/benfred/venn.js/issues/120\n const dist = distance(circles[0], circles[1]);\n if (dist < Math.abs(circles[1].radius - circles[0].radius)) {\n circles[1].x = circles[0].x + circles[0].radius - circles[1].radius - 1e-10;\n circles[1].y = circles[0].y;\n }\n }\n\n // rotate circles so that second largest is at an angle of 'orientation'\n // from largest\n if (circles.length > 1) {\n const rotation = Math.atan2(circles[1].x, circles[1].y) - orientation;\n const c = Math.cos(rotation);\n const s = Math.sin(rotation);\n\n for (const circle of circles) {\n const x = circle.x;\n const y = circle.y;\n circle.x = c * x - s * y;\n circle.y = s * x + c * y;\n }\n }\n\n // mirror solution if third solution is above plane specified by\n // first two circles\n if (circles.length > 2) {\n let angle = Math.atan2(circles[2].x, circles[2].y) - orientation;\n while (angle < 0) {\n angle += 2 * Math.PI;\n }\n while (angle > 2 * Math.PI) {\n angle -= 2 * Math.PI;\n }\n if (angle > Math.PI) {\n const slope = circles[1].y / (1e-10 + circles[1].x);\n for (const circle of circles) {\n var d = (circle.x + slope * circle.y) / (1 + slope * slope);\n circle.x = 2 * d - circle.x;\n circle.y = 2 * d * slope - circle.y;\n }\n }\n }\n}\n\n/**\n *\n * @param {ReadonlyArray<{x: number, y: number, radius: number}>} circles\n * @returns {{x: number, y: number, radius: number}[][]}\n */\nfunction disjointCluster(circles) {\n // union-find clustering to get disjoint sets\n circles.forEach((circle) => {\n circle.parent = circle;\n });\n\n // path compression step in union find\n function find(circle) {\n if (circle.parent !== circle) {\n circle.parent = find(circle.parent);\n }\n return circle.parent;\n }\n\n function union(x, y) {\n const xRoot = find(x);\n const yRoot = find(y);\n xRoot.parent = yRoot;\n }\n\n // get the union of all overlapping sets\n for (let i = 0; i < circles.length; ++i) {\n for (let j = i + 1; j < circles.length; ++j) {\n const maxDistance = circles[i].radius + circles[j].radius;\n if (distance(circles[i], circles[j]) + 1e-10 < maxDistance) {\n union(circles[j], circles[i]);\n }\n }\n }\n\n // find all the disjoint clusters and group them together\n /** @type {Map} */\n const disjointClusters = new Map();\n for (let i = 0; i < circles.length; ++i) {\n const setid = find(circles[i]).parent.setid;\n if (!disjointClusters.has(setid)) {\n disjointClusters.set(setid, []);\n }\n disjointClusters.get(setid).push(circles[i]);\n }\n\n // cleanup bookkeeping\n circles.forEach((circle) => {\n delete circle.parent;\n });\n\n // return in more usable form\n return Array.from(disjointClusters.values());\n}\n\n/**\n * @param {ReadonlyArray<{x :number, y: number, radius: number}>} circles\n * @returns {{xRange: [number, number], yRange: [number, number]}}\n */\nfunction getBoundingBox(circles) {\n const minMax = (d) => {\n const hi = circles.reduce((acc, c) => Math.max(acc, c[d] + c.radius), Number.NEGATIVE_INFINITY);\n const lo = circles.reduce((acc, c) => Math.min(acc, c[d] - c.radius), Number.POSITIVE_INFINITY);\n return { max: hi, min: lo };\n };\n return { xRange: minMax('x'), yRange: minMax('y') };\n}\n\n/**\n *\n * @param {{[setid: string]: {x: number, y: number, radius: number}}} solution\n * @param {undefined | number} orientation\n * @param {((a: {x :number, y: number, radius: number}, b: {x :number, y: number, radius: number}) => number) | undefined} orientationOrder\n * @returns {{[setid: string]: {x: number, y: number, radius: number}}}\n */\nfunction normalizeSolution(solution, orientation, orientationOrder) {\n if (orientation == null) {\n orientation = Math.PI / 2;\n }\n\n // work with a list instead of a dictionary, and take a copy so we\n // don't mutate input\n let circles = fromObjectNotation(solution).map((d) => Object.assign({}, d));\n\n // get all the disjoint clusters\n const clusters = disjointCluster(circles);\n\n // orientate all disjoint sets, get sizes\n for (const cluster of clusters) {\n orientateCircles(cluster, orientation, orientationOrder);\n const bounds = getBoundingBox(cluster);\n cluster.size = (bounds.xRange.max - bounds.xRange.min) * (bounds.yRange.max - bounds.yRange.min);\n cluster.bounds = bounds;\n }\n clusters.sort((a, b) => b.size - a.size);\n\n // orientate the largest at 0,0, and get the bounds\n circles = clusters[0];\n let returnBounds = circles.bounds;\n const spacing = (returnBounds.xRange.max - returnBounds.xRange.min) / 50;\n\n /**\n * @param {ReadonlyArray<{x: number, y: number, radius: number, setid: string}>} cluster\n * @param {boolean} right\n * @param {boolean} bottom\n */\n function addCluster(cluster, right, bottom) {\n if (!cluster) {\n return;\n }\n\n const bounds = cluster.bounds;\n /** @type {number} */\n let xOffset;\n /** @type {number} */\n let yOffset;\n\n if (right) {\n xOffset = returnBounds.xRange.max - bounds.xRange.min + spacing;\n } else {\n xOffset = returnBounds.xRange.max - bounds.xRange.max;\n const centreing =\n (bounds.xRange.max - bounds.xRange.min) / 2 - (returnBounds.xRange.max - returnBounds.xRange.min) / 2;\n if (centreing < 0) {\n xOffset += centreing;\n }\n }\n\n if (bottom) {\n yOffset = returnBounds.yRange.max - bounds.yRange.min + spacing;\n } else {\n yOffset = returnBounds.yRange.max - bounds.yRange.max;\n const centreing =\n (bounds.yRange.max - bounds.yRange.min) / 2 - (returnBounds.yRange.max - returnBounds.yRange.min) / 2;\n if (centreing < 0) {\n yOffset += centreing;\n }\n }\n\n for (const c of cluster) {\n c.x += xOffset;\n c.y += yOffset;\n circles.push(c);\n }\n }\n\n let index = 1;\n while (index < clusters.length) {\n addCluster(clusters[index], true, false);\n addCluster(clusters[index + 1], false, true);\n addCluster(clusters[index + 2], true, true);\n index += 3;\n\n // have one cluster (in top left). lay out next three relative\n // to it in a grid\n returnBounds = getBoundingBox(circles);\n }\n\n // convert back to solution form\n return toObjectNotation(circles);\n}\n\n/**\n * Scales a solution from venn.venn or venn.greedyLayout such that it fits in\n * a rectangle of width/height - with padding around the borders. also\n * centers the diagram in the available space at the same time.\n * If the scale parameter is not null, this automatic scaling is ignored in favor of this custom one\n * @param {{[setid: string]: {x: number, y: number, radius: number}}} solution\n * @param {number} width\n * @param {number} height\n * @param {number} padding\n * @param {boolean} scaleToFit\n * @returns {{[setid: string]: {x: number, y: number, radius: number}}}\n */\nfunction scaleSolution(solution, width, height, padding, scaleToFit) {\n const circles = fromObjectNotation(solution);\n\n width -= 2 * padding;\n height -= 2 * padding;\n\n const { xRange, yRange } = getBoundingBox(circles);\n\n if (xRange.max === xRange.min || yRange.max === yRange.min) {\n console.log('not scaling solution: zero size detected');\n return solution;\n }\n\n /** @type {number} */\n let xScaling;\n /** @type {number} */\n let yScaling;\n if (scaleToFit) {\n const toScaleDiameter = Math.sqrt(scaleToFit / Math.PI) * 2;\n xScaling = width / toScaleDiameter;\n yScaling = height / toScaleDiameter;\n } else {\n xScaling = width / (xRange.max - xRange.min);\n yScaling = height / (yRange.max - yRange.min);\n }\n\n const scaling = Math.min(yScaling, xScaling);\n // while we're at it, center the diagram too\n const xOffset = (width - (xRange.max - xRange.min) * scaling) / 2;\n const yOffset = (height - (yRange.max - yRange.min) * scaling) / 2;\n\n return toObjectNotation(\n circles.map((circle) => ({\n radius: scaling * circle.radius,\n x: padding + xOffset + (circle.x - xRange.min) * scaling,\n y: padding + yOffset + (circle.y - yRange.min) * scaling,\n setid: circle.setid,\n }))\n );\n}\n\n/**\n * @param {readonly {x: number, y: number, radius: number, setid: string}[]} circles\n * @returns {{[setid: string]: {x: number, y: number, radius: number, setid: string}}}\n */\nfunction toObjectNotation(circles) {\n /** @type {{[setid: string]: {x: number, y: number, radius: number, setid: string}}} */\n const r = {};\n for (const circle of circles) {\n r[circle.setid] = circle;\n }\n return r;\n}\n/**\n * @param {{[setid: string]: {x: number, y: number, radius: number}}} solution\n * @returns {{x: number, y: number, radius: number, setid: string}[]}}\n */\nfunction fromObjectNotation(solution) {\n const setids = Object.keys(solution);\n return setids.map((id) => Object.assign(solution[id], { setid: id }));\n}\n\n/*global console:true*/\n\n/**\n * VennDiagram includes an optional `options` parameter containing the following option(s):\n *\n * `colourScheme: Array`\n * A list of color values to be applied when coloring diagram circles.\n *\n * `symmetricalTextCentre: Boolean`\n * Whether to symmetrically center each circle's text horizontally and vertically.\n * Defaults to `false`.\n *\n * `textFill: String`\n * The color to be applied to the text within each circle.\n *\n * @param {object} options\n */\nfunction VennDiagram(options = {}) {\n let useViewBox = false,\n width = 600,\n height = 350,\n padding = 15,\n duration = 1000,\n orientation = Math.PI / 2,\n normalize = true,\n scaleToFit = null,\n wrap = true,\n styled = true,\n fontSize = null,\n orientationOrder = null,\n distinct = false,\n round = null,\n symmetricalTextCentre = options && options.symmetricalTextCentre ? options.symmetricalTextCentre : false,\n // mimic the behaviour of d3.scale.category10 from the previous\n // version of d3\n colourMap = {},\n // so this is the same as d3.schemeCategory10, which is only defined in d3 4.0\n // since we can support older versions of d3 as long as we don't force this,\n // I'm hackily redefining below. TODO: remove this and change to d3.schemeCategory10\n colourScheme =\n options && options.colourScheme\n ? options.colourScheme\n : options && options.colorScheme\n ? options.colorScheme\n : [\n '#1f77b4',\n '#ff7f0e',\n '#2ca02c',\n '#d62728',\n '#9467bd',\n '#8c564b',\n '#e377c2',\n '#7f7f7f',\n '#bcbd22',\n '#17becf',\n ],\n colourIndex = 0,\n colours = function (key) {\n if (key in colourMap) {\n return colourMap[key];\n }\n var ret = (colourMap[key] = colourScheme[colourIndex]);\n colourIndex += 1;\n if (colourIndex >= colourScheme.length) {\n colourIndex = 0;\n }\n return ret;\n },\n layoutFunction = venn,\n loss = lossFunction;\n\n function chart(selection) {\n let data = selection.datum();\n\n // handle 0-sized sets by removing from input\n const toRemove = new Set();\n data.forEach((datum) => {\n if (datum.size == 0 && datum.sets.length == 1) {\n toRemove.add(datum.sets[0]);\n }\n });\n data = data.filter((datum) => !datum.sets.some((set) => toRemove.has(set)));\n\n let circles = {};\n let textCentres = {};\n\n if (data.length > 0) {\n let solution = layoutFunction(data, { lossFunction: loss, distinct });\n\n if (normalize) {\n solution = normalizeSolution(solution, orientation, orientationOrder);\n }\n\n circles = scaleSolution(solution, width, height, padding, scaleToFit);\n textCentres = computeTextCentres(circles, data, symmetricalTextCentre);\n }\n\n // Figure out the current label for each set. These can change\n // and D3 won't necessarily update (fixes https://github.com/benfred/venn.js/issues/103)\n const labels = {};\n data.forEach((datum) => {\n if (datum.label) {\n labels[datum.sets] = datum.label;\n }\n });\n\n function label(d) {\n if (d.sets in labels) {\n return labels[d.sets];\n }\n if (d.sets.length == 1) {\n return '' + d.sets[0];\n }\n }\n\n // create svg if not already existing\n selection.selectAll('svg').data([circles]).enter().append('svg');\n\n const svg = selection.select('svg');\n\n if (useViewBox) {\n svg.attr('viewBox', `0 0 ${width} ${height}`);\n } else {\n svg.attr('width', width).attr('height', height);\n }\n\n // to properly transition intersection areas, we need the\n // previous circles locations. load from elements\n const previous = {};\n let hasPrevious = false;\n svg.selectAll('.venn-area path').each(function (d) {\n const path = this.getAttribute('d');\n if (d.sets.length == 1 && path && !distinct) {\n hasPrevious = true;\n previous[d.sets[0]] = circleFromPath(path);\n }\n });\n // interpolate intersection area paths between previous and\n // current paths\n function pathTween(d) {\n return (t) => {\n const c = d.sets.map((set) => {\n let start = previous[set];\n let end = circles[set];\n if (!start) {\n start = { x: width / 2, y: height / 2, radius: 1 };\n }\n if (!end) {\n end = { x: width / 2, y: height / 2, radius: 1 };\n }\n return {\n x: start.x * (1 - t) + end.x * t,\n y: start.y * (1 - t) + end.y * t,\n radius: start.radius * (1 - t) + end.radius * t,\n };\n });\n return intersectionAreaPath(c, round);\n };\n }\n\n // update data, joining on the set ids\n const nodes = svg.selectAll('.venn-area').data(data, (d) => d.sets);\n\n // create new nodes\n const enter = nodes\n .enter()\n .append('g')\n .attr(\n 'class',\n (d) =>\n `venn-area venn-${d.sets.length == 1 ? 'circle' : 'intersection'}${\n d.colour || d.color ? ' venn-coloured' : ''\n }`\n )\n .attr('data-venn-sets', (d) => d.sets.join('_'));\n\n const enterPath = enter.append('path');\n const enterText = enter\n .append('text')\n .attr('class', 'label')\n .text((d) => label(d))\n .attr('text-anchor', 'middle')\n .attr('dy', '.35em')\n .attr('x', width / 2)\n .attr('y', height / 2);\n\n // apply minimal style if wanted\n if (styled) {\n enterPath\n .style('fill-opacity', '0')\n .filter((d) => d.sets.length == 1)\n .style('fill', (d) => (d.colour ? d.colour : d.color ? d.color : colours(d.sets)))\n .style('fill-opacity', '.25');\n\n enterText.style('fill', (d) => {\n if (d.colour || d.color) {\n return '#FFF';\n }\n if (options.textFill) {\n return options.textFill;\n }\n return d.sets.length == 1 ? colours(d.sets) : '#444';\n });\n }\n\n function asTransition(s) {\n if (typeof s.transition === 'function') {\n return s.transition('venn').duration(duration);\n }\n return s;\n }\n\n // update existing, using pathTween if necessary\n let update = selection;\n if (hasPrevious && typeof update.transition === 'function') {\n update = asTransition(selection);\n update.selectAll('path').attrTween('d', pathTween);\n } else {\n update.selectAll('path').attr('d', (d) => intersectionAreaPath(d.sets.map((set) => circles[set])), round);\n }\n\n const updateText = update\n .selectAll('text')\n .filter((d) => d.sets in textCentres)\n .text((d) => label(d))\n .attr('x', (d) => Math.floor(textCentres[d.sets].x))\n .attr('y', (d) => Math.floor(textCentres[d.sets].y));\n\n if (wrap) {\n if (hasPrevious) {\n // d3 4.0 uses 'on' for events on transitions,\n // but d3 3.0 used 'each' instead. switch appropriately\n if ('on' in updateText) {\n updateText.on('end', wrapText(circles, label));\n } else {\n updateText.each('end', wrapText(circles, label));\n }\n } else {\n updateText.each(wrapText(circles, label));\n }\n }\n\n // remove old\n const exit = asTransition(nodes.exit()).remove();\n if (typeof nodes.transition === 'function') {\n exit.selectAll('path').attrTween('d', pathTween);\n }\n\n const exitText = exit\n .selectAll('text')\n .attr('x', width / 2)\n .attr('y', height / 2);\n\n // if we've been passed a fontSize explicitly, use it to\n // transition\n if (fontSize !== null) {\n enterText.style('font-size', '0px');\n updateText.style('font-size', fontSize);\n exitText.style('font-size', '0px');\n }\n\n return { circles, textCentres, nodes, enter, update, exit };\n }\n\n chart.wrap = function (_) {\n if (!arguments.length) return wrap;\n wrap = _;\n return chart;\n };\n\n chart.useViewBox = function () {\n useViewBox = true;\n return chart;\n };\n\n chart.width = function (_) {\n if (!arguments.length) return width;\n width = _;\n return chart;\n };\n\n chart.height = function (_) {\n if (!arguments.length) return height;\n height = _;\n return chart;\n };\n\n chart.padding = function (_) {\n if (!arguments.length) return padding;\n padding = _;\n return chart;\n };\n\n chart.distinct = function (_) {\n if (!arguments.length) return distinct;\n distinct = _;\n return chart;\n };\n\n chart.colours = function (_) {\n if (!arguments.length) return colours;\n colours = _;\n return chart;\n };\n\n chart.colors = function (_) {\n if (!arguments.length) return colors;\n colours = _;\n return chart;\n };\n\n chart.fontSize = function (_) {\n if (!arguments.length) return fontSize;\n fontSize = _;\n return chart;\n };\n\n chart.round = function (_) {\n if (!arguments.length) return round;\n round = _;\n return chart;\n };\n\n chart.duration = function (_) {\n if (!arguments.length) return duration;\n duration = _;\n return chart;\n };\n\n chart.layoutFunction = function (_) {\n if (!arguments.length) return layoutFunction;\n layoutFunction = _;\n return chart;\n };\n\n chart.normalize = function (_) {\n if (!arguments.length) return normalize;\n normalize = _;\n return chart;\n };\n\n chart.scaleToFit = function (_) {\n if (!arguments.length) return scaleToFit;\n scaleToFit = _;\n return chart;\n };\n\n chart.styled = function (_) {\n if (!arguments.length) return styled;\n styled = _;\n return chart;\n };\n\n chart.orientation = function (_) {\n if (!arguments.length) return orientation;\n orientation = _;\n return chart;\n };\n\n chart.orientationOrder = function (_) {\n if (!arguments.length) return orientationOrder;\n orientationOrder = _;\n return chart;\n };\n\n chart.lossFunction = function (_) {\n if (!arguments.length) return loss;\n loss = _ === 'default' ? lossFunction : _ === 'logRatio' ? logRatioLossFunction : _;\n return chart;\n };\n\n return chart;\n}\n\n// sometimes text doesn't fit inside the circle, if thats the case lets wrap\n// the text here such that it fits\n// todo: looks like this might be merged into d3 (\n// https://github.com/mbostock/d3/issues/1642),\n// also worth checking out is\n// http://engineering.findthebest.com/wrapping-axis-labels-in-d3-js/\n// this seems to be one of those things that should be easy but isn't\nfunction wrapText(circles, labeller) {\n return function (data) {\n const text = this;\n const width = circles[data.sets[0]].radius || 50;\n const label = labeller(data) || '';\n\n const words = label.split(/\\s+/).reverse();\n const maxLines = 3;\n const minChars = (label.length + words.length) / maxLines;\n\n let word = words.pop();\n let line = [word];\n let lineNumber = 0;\n const lineHeight = 1.1; // ems\n text.textContent = null; // clear\n const tspans = [];\n\n function append(word) {\n const tspan = text.ownerDocument.createElementNS(text.namespaceURI, 'tspan');\n tspan.textContent = word;\n tspans.push(tspan);\n text.append(tspan);\n return tspan;\n }\n let tspan = append(word);\n\n while (true) {\n word = words.pop();\n if (!word) {\n break;\n }\n line.push(word);\n const joined = line.join(' ');\n tspan.textContent = joined;\n if (joined.length > minChars && tspan.getComputedTextLength() > width) {\n line.pop();\n tspan.textContent = line.join(' ');\n line = [word];\n tspan = append(word);\n lineNumber++;\n }\n }\n\n const initial = 0.35 - (lineNumber * lineHeight) / 2;\n const x = text.getAttribute('x');\n const y = text.getAttribute('y');\n tspans.forEach((t, i) => {\n t.setAttribute('x', x);\n t.setAttribute('y', y);\n t.setAttribute('dy', `${initial + i * lineHeight}em`);\n });\n };\n}\n\n/**\n *\n * @param {{x: number, y: number}} current\n * @param {ReadonlyArray<{x: number, y: number}>} interior\n * @param {ReadonlyArray<{x: number, y: number}>} exterior\n * @returns {number}\n */\nfunction circleMargin(current, interior, exterior) {\n let margin = interior[0].radius - distance(interior[0], current);\n\n for (let i = 1; i < interior.length; ++i) {\n const m = interior[i].radius - distance(interior[i], current);\n if (m <= margin) {\n margin = m;\n }\n }\n\n for (let i = 0; i < exterior.length; ++i) {\n const m = distance(exterior[i], current) - exterior[i].radius;\n if (m <= margin) {\n margin = m;\n }\n }\n return margin;\n}\n\n/**\n * compute the center of some circles by maximizing the margin of\n * the center point relative to the circles (interior) after subtracting\n * nearby circles (exterior)\n * @param {readonly {x: number, y: number, radius: number}[]} interior\n * @param {readonly {x: number, y: number, radius: number}[]} exterior\n * @param {boolean} symmetricalTextCentre\n * @returns {{x:number, y: number}}\n */\nfunction computeTextCentre(interior, exterior, symmetricalTextCentre) {\n // get an initial estimate by sampling around the interior circles\n // and taking the point with the biggest margin\n /** @type {{x: number, y: number}[]} */\n const points = [];\n for (const c of interior) {\n points.push({ x: c.x, y: c.y });\n points.push({ x: c.x + c.radius / 2, y: c.y });\n points.push({ x: c.x - c.radius / 2, y: c.y });\n points.push({ x: c.x, y: c.y + c.radius / 2 });\n points.push({ x: c.x, y: c.y - c.radius / 2 });\n }\n\n let initial = points[0];\n let margin = circleMargin(points[0], interior, exterior);\n\n for (let i = 1; i < points.length; ++i) {\n const m = circleMargin(points[i], interior, exterior);\n if (m >= margin) {\n initial = points[i];\n margin = m;\n }\n }\n\n // maximize the margin numerically\n const solution = nelderMead(\n (p) => -1 * circleMargin({ x: p[0], y: p[1] }, interior, exterior),\n [initial.x, initial.y],\n { maxIterations: 500, minErrorDelta: 1e-10 }\n ).x;\n\n const ret = { x: symmetricalTextCentre ? 0 : solution[0], y: solution[1] };\n\n // check solution, fallback as needed (happens if fully overlapped\n // etc)\n let valid = true;\n for (const i of interior) {\n if (distance(ret, i) > i.radius) {\n valid = false;\n break;\n }\n }\n\n for (const e of exterior) {\n if (distance(ret, e) < e.radius) {\n valid = false;\n break;\n }\n }\n if (valid) {\n return ret;\n }\n\n if (interior.length == 1) {\n return { x: interior[0].x, y: interior[0].y };\n }\n const areaStats = {};\n intersectionArea(interior, areaStats);\n\n if (areaStats.arcs.length === 0) {\n return { x: 0, y: -1000, disjoint: true };\n }\n if (areaStats.arcs.length == 1) {\n return { x: areaStats.arcs[0].circle.x, y: areaStats.arcs[0].circle.y };\n }\n if (exterior.length) {\n // try again without other circles\n return computeTextCentre(interior, []);\n }\n // take average of all the points in the intersection\n // polygon. this should basically never happen\n // and has some issues:\n // https://github.com/benfred/venn.js/issues/48#issuecomment-146069777\n return getCenter(areaStats.arcs.map((a) => a.p1));\n}\n\n// given a dictionary of {setid : circle}, returns\n// a dictionary of setid to list of circles that completely overlap it\nfunction getOverlappingCircles(circles) {\n const ret = {};\n const circleids = Object.keys(circles);\n for (const circleid of circleids) {\n ret[circleid] = [];\n }\n for (let i = 0; i < circleids.length; i++) {\n const ci = circleids[i];\n const a = circles[ci];\n for (let j = i + 1; j < circleids.length; ++j) {\n const cj = circleids[j];\n const b = circles[cj];\n const d = distance(a, b);\n\n if (d + b.radius <= a.radius + 1e-10) {\n ret[cj].push(ci);\n } else if (d + a.radius <= b.radius + 1e-10) {\n ret[ci].push(cj);\n }\n }\n }\n return ret;\n}\n\nfunction computeTextCentres(circles, areas, symmetricalTextCentre) {\n const ret = {};\n const overlapped = getOverlappingCircles(circles);\n for (let i = 0; i < areas.length; ++i) {\n const area = areas[i].sets;\n const areaids = {};\n const exclude = {};\n\n for (let j = 0; j < area.length; ++j) {\n areaids[area[j]] = true;\n const overlaps = overlapped[area[j]];\n // keep track of any circles that overlap this area,\n // and don't consider for purposes of computing the text\n // centre\n for (let k = 0; k < overlaps.length; ++k) {\n exclude[overlaps[k]] = true;\n }\n }\n\n const interior = [];\n const exterior = [];\n for (let setid in circles) {\n if (setid in areaids) {\n interior.push(circles[setid]);\n } else if (!(setid in exclude)) {\n exterior.push(circles[setid]);\n }\n }\n const centre = computeTextCentre(interior, exterior, symmetricalTextCentre);\n ret[area] = centre;\n if (centre.disjoint && areas[i].size > 0) {\n console.log('WARNING: area ' + area + ' not represented on screen');\n }\n }\n return ret;\n}\n\n// sorts all areas in the venn diagram, so that\n// a particular area is on top (relativeTo) - and\n// all other areas are so that the smallest areas are on top\nfunction sortAreas(div, relativeTo) {\n // figure out sets that are completely overlapped by relativeTo\n const overlaps = getOverlappingCircles(div.selectAll('svg').datum());\n const exclude = new Set();\n for (const check of relativeTo.sets) {\n for (let setid in overlaps) {\n const overlap = overlaps[setid];\n for (let j = 0; j < overlap.length; ++j) {\n if (overlap[j] == check) {\n exclude.add(setid);\n break;\n }\n }\n }\n }\n\n // checks that all sets are in exclude;\n function shouldExclude(sets) {\n return sets.every((set) => !exclude.has(set));\n }\n\n // need to sort div's so that Z order is correct\n div.selectAll('g').sort((a, b) => {\n // highest order set intersections first\n if (a.sets.length != b.sets.length) {\n return a.sets.length - b.sets.length;\n }\n\n if (a == relativeTo) {\n return shouldExclude(b.sets) ? -1 : 1;\n }\n if (b == relativeTo) {\n return shouldExclude(a.sets) ? 1 : -1;\n }\n\n // finally by size\n return b.size - a.size;\n });\n}\n\n/**\n * @param {number} x\n * @param {number} y\n * @param {number} r\n * @returns {string}\n */\nfunction circlePath(x, y, r) {\n const ret = [];\n ret.push('\\nM', x, y);\n ret.push('\\nm', -r, 0);\n ret.push('\\na', r, r, 0, 1, 0, r * 2, 0);\n ret.push('\\na', r, r, 0, 1, 0, -r * 2, 0);\n return ret.join(' ');\n}\n\n/**\n * inverse of the circlePath function, returns a circle object from an svg path\n * @param {string} path\n * @returns {{x: number, y: number, radius: number}}\n */\nfunction circleFromPath(path) {\n const tokens = path.split(' ');\n return { x: Number.parseFloat(tokens[1]), y: Number.parseFloat(tokens[2]), radius: -Number.parseFloat(tokens[4]) };\n}\n\nfunction intersectionAreaArcs(circles) {\n if (circles.length === 0) {\n return [];\n }\n const stats = {};\n intersectionArea(circles, stats);\n return stats.arcs;\n}\n\nfunction arcsToPath(arcs, round) {\n if (arcs.length === 0) {\n return 'M 0 0';\n }\n const rFactor = Math.pow(10, round || 0);\n const r = round != null ? (v) => Math.round(v * rFactor) / rFactor : (v) => v;\n if (arcs.length == 1) {\n const circle = arcs[0].circle;\n return circlePath(r(circle.x), r(circle.y), r(circle.radius));\n }\n // draw path around arcs\n const ret = ['\\nM', r(arcs[0].p2.x), r(arcs[0].p2.y)];\n for (const arc of arcs) {\n const radius = r(arc.circle.radius);\n ret.push('\\nA', radius, radius, 0, arc.large ? 1 : 0, arc.sweep ? 1 : 0, r(arc.p1.x), r(arc.p1.y));\n }\n return ret.join(' ');\n}\n\n/**\n * returns a svg path of the intersection area of a bunch of circles\n * @param {ReadonlyArray<{x: number, y: number, radius: number}>} circles\n * @returns {string}\n */\nfunction intersectionAreaPath(circles, round) {\n return arcsToPath(intersectionAreaArcs(circles), round);\n}\n\nfunction layout(data, options = {}) {\n const {\n lossFunction: loss,\n layoutFunction: layout = venn,\n normalize = true,\n orientation = Math.PI / 2,\n orientationOrder,\n width = 600,\n height = 350,\n padding = 15,\n scaleToFit = false,\n symmetricalTextCentre = false,\n distinct,\n round = 2,\n } = options;\n\n let solution = layout(data, {\n lossFunction: loss === 'default' || !loss ? lossFunction : loss === 'logRatio' ? logRatioLossFunction : loss,\n distinct,\n });\n\n if (normalize) {\n solution = normalizeSolution(solution, orientation, orientationOrder);\n }\n\n const circles = scaleSolution(solution, width, height, padding, scaleToFit);\n const textCentres = computeTextCentres(circles, data, symmetricalTextCentre);\n\n const circleLookup = new Map(\n Object.keys(circles).map((set) => [\n set,\n {\n set,\n x: circles[set].x,\n y: circles[set].y,\n radius: circles[set].radius,\n },\n ])\n );\n const helpers = data.map((area) => {\n const circles = area.sets.map((s) => circleLookup.get(s));\n const arcs = intersectionAreaArcs(circles);\n const path = arcsToPath(arcs, round);\n return { circles, arcs, path, area, has: new Set(area.sets) };\n });\n\n function genDistinctPath(sets) {\n let r = '';\n for (const e of helpers) {\n if (e.has.size > sets.length && sets.every((s) => e.has.has(s))) {\n r += ' ' + e.path;\n }\n }\n return r;\n }\n\n return helpers.map(({ circles, arcs, path, area }) => {\n return {\n data: area,\n text: textCentres[area.sets],\n circles,\n arcs,\n path,\n distinctPath: path + genDistinctPath(area.sets),\n };\n });\n}\n\nexport { VennDiagram, bestInitialLayout, circleArea, circleCircleIntersection, circleFromPath, circleOverlap, circlePath, computeTextCentre, computeTextCentres, disjointCluster, distance, distanceFromIntersectArea, greedyLayout, intersectionArea, intersectionAreaPath, layout, logRatioLossFunction, lossFunction, normalizeSolution, scaleSolution, sortAreas, venn, wrapText };\n","import React, { useState } from \"react\";\n\nconst InputBox = ({ row, onHandleCheckedItems }: any) => {\n // console.log(\"row\", row);\n const [bChecked, setChecked] = useState(true);\n\n const checkHandler = ({ target }: any) => {\n setChecked(!bChecked);\n onHandleCheckedItems(row, target.checked);\n };\n\n return (\n <>\n \n \n );\n};\n\nexport default InputBox;\n","import React, { useEffect, useState } from \"react\";\nimport * as d3 from \"d3\";\nimport * as venn from \"@upsetjs/venn.js\";\nimport useWindowDimensions from \"./hooks/useWindowDimensions\";\nimport InputBox from \"./InputBox\";\nimport { useRef } from \"react\";\n\nfunction App() {\n const { height, width } = useWindowDimensions();\n\n const [title, setTitle] = useState(\"\");\n const [textA, setTextA] = useState(\"\");\n const [textB, setTextB] = useState(\"\");\n const [textC, setTextC] = useState(\"\");\n const [textAB, setTextAB] = useState(\"\");\n const [textAC, setTextAC] = useState(\"\");\n const [textBC, setTextBC] = useState(\"\");\n const [textABC, setTextABC] = useState(\"\");\n const [textComp, setTextComp] = useState(\"\");\n\n const inputA = useRef(null);\n const inputB = useRef(null);\n const inputC = useRef(null);\n const inputAB = useRef(null);\n const inputAC = useRef(null);\n const inputBC = useRef(null);\n const inputABC = useRef(null);\n\n // C를 포함할지 말지 선택\n // 단 버그가 있음. 껏다가 켜면 색상값이 틀어지므로, 사실상 저장 후 다시 refrash해서 써야 함..\n const [checkedItems, setCheckedItems] = useState(new Set([3]));\n\n // C를 제외할 때, 다시 랜더링이 필요하여 만든 상태\n // true 가 되는 순간 다이어그램 div를 제거하고, 다시 false가 되면서 재출력한다.\n const [refrash, setRefrash] = useState(false);\n useEffect(() => {\n if (refrash) {\n setRefrash(false);\n }\n }, [refrash]);\n\n const onHandleCheckedItems = (row: number, checked: boolean) => {\n if (checked) {\n checkedItems.add(row);\n } else if (!checked && checkedItems.has(row)) {\n checkedItems.delete(row);\n }\n setCheckedItems(checkedItems);\n setRefrash(true);\n // console.log(row, checkedItems);\n };\n\n const [isSaving, setIsSaving] = useState(false);\n\n const [sets, setSets] = useState([\n { sets: [\"A\"], size: 1000, label: textA },\n { sets: [\"B\"], size: 1000, label: textB },\n { sets: [\"C\"], size: 1000, label: textC },\n { sets: [\"A\", \"B\"], size: 300, label: textAB },\n { sets: [\"C\", \"A\"], size: 300, label: textAC },\n { sets: [\"C\", \"B\"], size: 300, label: textBC },\n { sets: [\"C\", \"A\", \"B\"], size: 100, label: textABC },\n ]);\n\n //저장 key값은 \"저장공간-field\" 패턴으로 구성\n //1-a, 1-b, 1-c, 1-ab, 1-ac, 1-bc, 1-abc\n //2-a, 2-b, 2-c, 2-ab, 2-ac, 2-bc, 2-abc\n const saveTexts = (n: number) => {\n localStorage.setItem(`${n}-t`, title);\n localStorage.setItem(`${n}-a`, textA);\n localStorage.setItem(`${n}-b`, textB);\n localStorage.setItem(`${n}-c`, textC);\n localStorage.setItem(`${n}-ab`, textAB);\n localStorage.setItem(`${n}-ac`, textAC);\n localStorage.setItem(`${n}-bc`, textBC);\n localStorage.setItem(`${n}-abc`, textABC);\n localStorage.setItem(`${n}-comp`, textComp);\n setIsSaving(true);\n };\n\n //저장 직후 title 이 보이도록 갱신\n useEffect(() => {\n if (isSaving) {\n setIsSaving(false);\n (window as any).gtag(\"event\", `save`, {\n event_label: \"save item\",\n });\n }\n }, [isSaving]);\n\n const loadTexts = (n: number) => {\n setTitle(localStorage.getItem(`${n}-t`) || \"\");\n setTextA(localStorage.getItem(`${n}-a`) || \"\");\n setTextB(localStorage.getItem(`${n}-b`) || \"\");\n setTextC(localStorage.getItem(`${n}-c`) || \"\");\n setTextAB(localStorage.getItem(`${n}-ab`) || \"\");\n setTextAC(localStorage.getItem(`${n}-ac`) || \"\");\n setTextBC(localStorage.getItem(`${n}-bc`) || \"\");\n setTextABC(localStorage.getItem(`${n}-abc`) || \"\");\n setTextComp(localStorage.getItem(`${n}-comp`) || \"\");\n\n (window as any).gtag(\"event\", `load`, {\n event_label: `load item ${n}`,\n });\n };\n\n const initTexts = () => {\n setTitle(\"\");\n setTextA(\"\");\n setTextB(\"\");\n setTextC(\"\");\n setTextAB(\"\");\n setTextAC(\"\");\n setTextBC(\"\");\n setTextABC(\"\");\n setTextComp(\"\");\n (window as any).gtag(\"event\", `init`, {\n event_label: `init`,\n });\n };\n\n const getSize = (text: string) => {\n const size = text.length * 70;\n // return size > 1000 ? size : 1000;\n return 1000;\n };\n\n const getMinorSize = (text: string) => {\n const size = text.length * 50;\n // return size > 300 ? size : 300;\n return text.length > 0 ? 300 : 0;\n // return 300;\n };\n\n const textChange = (text: string, set: any) => {\n set(text);\n };\n\n useEffect(() => {\n // 벤다이어그램에 들어갈 글자를 갱신하는 함수\n // C가 포함되느냐 아니냐에 따라 set의 형태가 변한다.\n let newVen = [\n { sets: [\"A\"], size: getSize(textA), label: textA },\n { sets: [\"B\"], size: getSize(textB), label: textB },\n { sets: [\"A\", \"B\"], size: getMinorSize(textAB), label: textAB },\n ];\n if (checkedItems.has(3)) {\n newVen = [\n ...newVen,\n { sets: [\"C\"], size: getSize(textC), label: textC },\n { sets: [\"C\", \"A\"], size: getMinorSize(textAC), label: textAC },\n { sets: [\"C\", \"B\"], size: getMinorSize(textBC), label: textBC },\n { sets: [\"C\", \"A\", \"B\"], size: getMinorSize(textABC), label: textABC },\n ];\n }\n setSets(newVen);\n }, [textA, textB, textC, textAB, textAC, textBC, textABC, refrash]);\n\n useEffect(() => {\n // 벤다이어그램 그리는 함수, 각종 설정 가능\n let chart: any = venn.VennDiagram({\n // colourScheme: [\"rgb(235, 237, 238)\", \"#F26250\"],\n // colourScheme: [\"blue\", \"green\", \"red\"],\n // textFill: \"#000\",\n });\n\n // 모바일의 경우, 키보드로 인해 height 가 반토막이 나는 현상을 막기 위한 코드\n let isMobile = false; //initiate as false\n // device detection\n if (\n /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(\n navigator.userAgent\n ) ||\n /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(\n navigator.userAgent.substr(0, 4)\n )\n ) {\n isMobile = true;\n }\n const w: number = width || 500;\n let h: number = height || 500;\n if (!isMobile) {\n h = h / 2;\n }\n chart.width(w - w * 0.1).height(h);\n d3.select(\"#venn\").datum(sets).call(chart);\n d3.selectAll(\"#venn .venn-circle\").on(\"click\", function () {\n const nodeId = (this as any).attributes[\"data-venn-sets\"].value;\n switch (nodeId) {\n case \"A\":\n (inputA as any).current.focus();\n break;\n case \"B\":\n (inputB as any).current.focus();\n break;\n case \"C\":\n (inputC as any).current.focus();\n break;\n }\n });\n d3.selectAll(\"#venn .venn-intersection\").on(\"click\", function () {\n const nodeId = (this as any).attributes[\"data-venn-sets\"].value;\n switch (nodeId) {\n case \"C_A\":\n (inputAC as any).current.focus();\n break;\n case \"C_B\":\n (inputBC as any).current.focus();\n break;\n case \"A_B\":\n (inputAB as any).current.focus();\n break;\n case \"C_A_B\":\n (inputABC as any).current.focus();\n break;\n }\n });\n }, [sets]);\n\n const loop = [1, 2, 3, 4, 5];\n\n return (\n
\n \n Miracle Venn Diagram Editor V1.1\n
\n\n \n
\n
\n {loop.map((n) => (\n
\n saveTexts(n)}\n >\n save {n}\n \n loadTexts(n)}\n >\n load {n}\n \n
{localStorage.getItem(`${n}-t`)}
\n
\n ))}\n \n init Texts\n \n
\n
\n
\n \n textChange(e.target.value, setTitle)}\n >\n
\n
\n \n textChange(e.target.value, setTextA)}\n >\n
\n
\n \n textChange(e.target.value, setTextB)}\n >\n
\n
\n \n \n textChange(e.target.value, setTextC)}\n >\n
\n\n
\n \n textChange(e.target.value, setTextAB)}\n >\n
\n\n
\n \n textChange(e.target.value, setTextAC)}\n >\n
\n\n
\n \n textChange(e.target.value, setTextBC)}\n >\n
\n
\n \n textChange(e.target.value, setTextABC)}\n >\n
\n
\n \n textChange(e.target.value, setTextComp)}\n >\n
\n \n {/* ------------------------- */}\n
\n {title}\n
\n
\n
\n {!refrash && (\n \n )}\n
\n {textComp}\n
\n
\n
\n \n {\n (window as any).gtag(\"event\", \"About_us\", {\n event_label: \"About_us\",\n });\n }}\n >\n About us\n \n \n \n );\n}\n\nexport default App;\n","import { useState, useEffect } from \"react\";\n\nexport default function useWindowDimensions() {\n const hasWindow = typeof window !== \"undefined\";\n\n function getWindowDimensions() {\n const width = hasWindow ? window.innerWidth : null;\n const height = hasWindow ? window.innerHeight : null;\n return {\n width,\n height,\n };\n }\n\n const [windowDimensions, setWindowDimensions] = useState(\n getWindowDimensions()\n );\n\n useEffect(() => {\n if (hasWindow) {\n function handleResize() {\n setWindowDimensions(getWindowDimensions());\n }\n\n window.addEventListener(\"resize\", handleResize);\n return () => window.removeEventListener(\"resize\", handleResize);\n }\n }, [hasWindow]);\n\n return windowDimensions;\n}\n","import {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n);\n"],"names":["module","exports","bisect","f","a","b","parameters","maxIterations","tolerance","fA","fB","delta","i","mid","fMid","Math","abs","zeros","x","r","Array","zerosM","y","map","dot","ret","length","norm2","sqrt","scale","value","c","weightedSum","w1","v1","w2","v2","j","nelderMead","x0","maxDiff","nonZeroDelta","zeroDelta","minErrorDelta","minTolerance","rho","undefined","chi","psi","sigma","N","simplex","fx","id","point","slice","updateSimplex","sortOrder","centroid","reflected","contracted","expanded","iteration","sort","history","sortedSimplex","state","push","max","worst","shouldReduce","wolfeLineSearch","pk","current","next","c1","c2","phi0","phiPrime0","fxprime","phi","phi_old","phiPrime","a0","zoom","a_lo","a_high","phi_lo","conjugateGradient","initial","params","temp","yk","alpha","delta_k","gradientDescent","learnRate","gradientDescentLineSearch","functionCalls","inner","factory","getOwnPropertySymbols","Object","hasOwnProperty","prototype","propIsEnumerable","propertyIsEnumerable","toObject","val","TypeError","assign","test1","String","getOwnPropertyNames","test2","fromCharCode","n","join","test3","split","forEach","letter","keys","err","shouldUseNative","target","source","from","symbols","to","s","arguments","key","call","aa","require","m","encodeURIComponent","Error","ba","Set","ca","da","ea","add","fa","window","document","createElement","ha","ia","ja","ka","B","d","e","g","this","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","type","sanitizeURL","removeEmptyString","D","toLowerCase","oa","pa","toUpperCase","qa","ma","isNaN","na","test","la","removeAttribute","setAttribute","setAttributeNS","replace","xlinkHref","ra","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","sa","ta","ua","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Symbol","for","E","Ma","Ka","iterator","La","Na","stack","trim","match","Oa","Pa","prepareStackTrace","defineProperty","set","Reflect","construct","k","h","displayName","name","Qa","tag","render","_render","Ra","$$typeof","_context","_payload","_init","Sa","Ta","nodeName","Va","_valueTracker","getOwnPropertyDescriptor","constructor","get","configurable","enumerable","getValue","setValue","stopTracking","Ua","Wa","checked","Xa","activeElement","body","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","initialValue","controlled","$a","ab","bb","cb","ownerDocument","eb","children","Children","db","fb","options","selected","defaultSelected","disabled","gb","dangerouslySetInnerHTML","hb","isArray","ib","jb","textContent","kb","lb","mb","nb","ob","namespaceURI","innerHTML","valueOf","toString","firstChild","removeChild","appendChild","MSApp","execUnsafeLocalFunction","pb","lastChild","nodeType","nodeValue","qb","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","rb","sb","tb","style","indexOf","setProperty","charAt","substring","ub","menuitem","area","base","br","col","embed","hr","img","input","keygen","link","meta","param","track","wbr","vb","wb","is","xb","srcElement","correspondingUseElement","parentNode","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","Pb","Qb","addEventListener","removeEventListener","Rb","l","apply","onError","Sb","Tb","Ub","Vb","Wb","Xb","Zb","alternate","return","flags","$b","memoizedState","dehydrated","ac","cc","child","sibling","bc","dc","ec","fc","gc","hc","ic","jc","kc","lc","mc","nc","Map","oc","pc","qc","rc","blockedOn","domEventName","eventSystemFlags","nativeEvent","targetContainers","sc","delete","pointerId","tc","vc","wc","lanePriority","unstable_runWithPriority","priority","hydrate","containerInfo","xc","yc","shift","zc","Ac","Bc","unstable_scheduleCallback","unstable_NormalPriority","Cc","Dc","Ec","animationend","animationiteration","animationstart","transitionend","Fc","Gc","Hc","animation","transition","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","unstable_now","F","Rc","Uc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","Vc","entangledLanes","entanglements","Wc","Xc","Yc","Zc","$c","eventTimes","clz32","bd","cd","log","LN2","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","bind","uc","jd","kd","ld","md","nd","od","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","stopPropagation","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","Date","now","isTrusted","td","ud","view","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","data","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","code","location","repeat","locale","which","Rd","Td","width","height","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","color","date","datetime","email","month","number","password","range","search","tel","text","time","url","week","me","ne","oe","event","listeners","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","Le","node","offset","nextSibling","Me","contains","compareDocumentPosition","Ne","HTMLIFrameElement","contentWindow","href","Oe","contentEditable","Pe","Qe","Re","Se","Te","Ue","start","selectionStart","end","selectionEnd","anchorNode","defaultView","getSelection","anchorOffset","focusNode","focusOffset","Ve","We","Xe","Ye","concat","Ze","Yb","instance","listener","G","$e","has","af","bf","random","cf","df","capture","passive","Nb","w","z","u","q","t","v","ef","ff","parentWindow","gf","hf","J","K","Q","L","je","char","ke","unshift","jf","kf","lf","mf","autoFocus","nf","__html","of","setTimeout","pf","clearTimeout","qf","rf","sf","previousSibling","tf","vf","wf","xf","yf","zf","Af","Bf","H","I","Cf","M","Df","Ef","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","childContextTypes","Gf","Hf","If","getChildContext","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","unstable_cancelCallback","Qf","unstable_shouldYield","Rf","unstable_requestPaint","Sf","Tf","unstable_getCurrentPriorityLevel","Uf","unstable_ImmediatePriority","Vf","Wf","Xf","unstable_LowPriority","Yf","unstable_IdlePriority","Zf","$f","ag","bg","cg","dg","O","eg","fg","gg","hg","ig","jg","kg","ReactCurrentBatchConfig","lg","defaultProps","mg","ng","og","pg","qg","rg","_currentValue","sg","childLanes","tg","dependencies","firstContext","lanes","ug","vg","context","observedBits","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","effects","yg","zg","eventTime","lane","payload","callback","Ag","Bg","Cg","A","p","C","Dg","Eg","Fg","Component","refs","Gg","Kg","isMounted","_reactInternals","enqueueSetState","Hg","Ig","Jg","enqueueReplaceState","enqueueForceUpdate","Lg","shouldComponentUpdate","isPureReactComponent","Mg","contextType","updater","Ng","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Og","props","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Pg","Qg","ref","_owner","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","index","Tg","Ug","mode","elementType","Vg","implementation","Wg","Xg","done","Yg","Zg","$g","ah","bh","ch","dh","eh","documentElement","tagName","fh","gh","hh","P","ih","memoizedProps","revealOrder","jh","kh","lh","mh","nh","oh","pendingProps","ph","qh","rh","sh","th","uh","_workInProgressVersionPrimary","vh","ReactCurrentDispatcher","wh","xh","R","S","T","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","baseQueue","queue","Ih","Jh","Kh","lastRenderedReducer","action","eagerReducer","eagerState","lastRenderedState","dispatch","Lh","Mh","_getVersion","_source","mutableReadLanes","Nh","U","useState","getSnapshot","subscribe","useEffect","setSnapshot","Oh","Ph","Qh","Rh","create","destroy","deps","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","readContext","useCallback","useContext","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useDebugValue","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","ReactCurrentOwner","fi","gi","hi","ii","ji","compare","ki","li","mi","baseLanes","ni","oi","pi","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","qi","getDerivedStateFromError","ri","pendingContext","Bi","Di","Ei","si","retryLane","ti","fallback","unstable_avoidThisFallback","ui","unstable_expectedLoadTime","vi","wi","xi","yi","zi","isBackwards","rendering","renderingStartTime","last","tail","tailMode","Ai","Fi","Gi","wasMultiple","multiple","onClick","onclick","size","createElementNS","createTextNode","V","Hi","Ii","W","Ji","Ki","Li","Mi","message","Ni","console","error","Oi","WeakMap","Pi","element","Qi","Ri","Si","componentDidCatch","Ti","componentStack","Ui","WeakSet","Vi","Wi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","$i","focus","aj","display","bj","onCommitFiberUnmount","componentWillUnmount","cj","dj","ej","fj","gj","hj","insertBefore","_reactRootContainer","ij","jj","kj","lj","then","mj","nj","ceil","oj","pj","X","Y","qj","rj","sj","tj","uj","vj","Infinity","wj","ck","Z","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Sc","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Tc","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","timeoutHandle","Wj","Xj","pingCache","Yj","Zj","va","ak","bk","dk","rangeCount","focusedElem","selectionRange","ek","min","extend","createRange","setStart","removeAllRanges","addRange","setEnd","left","scrollLeft","top","scrollTop","onCommitFiberRoot","fk","gk","ik","isReactComponent","pendingChildren","jk","mutableSourceEagerHydrationData","kk","lk","mk","nk","ok","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","hasAttribute","sk","uk","hk","_calculateChangedBits","unstable_observedBits","unmount","querySelectorAll","JSON","stringify","form","Vj","vk","Events","wk","findFiberByHostInstance","bundleType","version","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","__REACT_DEVTOOLS_GLOBAL_HOOK__","isDisabled","supportsFiber","inject","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","checkDCE","Fragment","__self","__source","jsx","jsxs","StrictMode","Profiler","Suspense","setState","forceUpdate","escape","_status","_result","default","IsSomeRendererActing","count","toArray","only","PureComponent","cloneElement","createContext","_currentValue2","_threadCount","Provider","Consumer","createFactory","createRef","forwardRef","isValidElement","lazy","memo","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","obj","writable","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","GenStateSuspendedStart","method","arg","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","fn","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","resolve","reject","result","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","info","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","object","reverse","pop","skipTempReset","prev","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","globalThis","Function","performance","MessageChannel","unstable_forceFrameRate","cancelAnimationFrame","requestAnimationFrame","floor","port2","port1","onmessage","postMessage","sortIndex","startTime","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","delay","unstable_wrapCallback","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","_arrayLikeToArray","arr","len","arr2","_unsupportedIterableToArray","o","minLen","_toConsumableArray","_slicedToArray","_i","_s","_e","_arr","_n","_d","_defineProperty","none","selector","querySelector","array","empty","matches","childMatcher","find","childFirst","firstElementChild","filter","update","EnterNode","parent","datum","_next","_parent","__data__","bindIndex","group","enter","exit","groupLength","dataLength","bindKey","keyValue","nodeByKeyValue","keyValues","arraylike","ascending","NaN","allowArrayLike","it","normalCompletion","didErr","step","_e2","xhtml","svg","xlink","xml","xmlns","prefix","namespaces","space","local","attrRemove","attrRemoveNS","fullname","removeAttributeNS","attrConstant","attrConstantNS","attrFunction","attrFunctionNS","styleRemove","removeProperty","styleConstant","styleFunction","styleValue","getPropertyValue","getComputedStyle","propertyRemove","propertyConstant","propertyFunction","classArray","string","classList","ClassList","_node","_names","getAttribute","classedAdd","names","list","classedRemove","remove","classedTrue","classedFalse","classedFunction","textRemove","textConstant","textFunction","htmlRemove","htmlConstant","htmlFunction","raise","lower","creatorInherit","uri","creatorFixed","namespace","constantNull","selection_cloneShallow","clone","cloneNode","selection_cloneDeep","parseTypenames","typenames","onRemove","typename","on","__on","onAdd","contextListener","dispatchEvent","CustomEvent","createEvent","initEvent","dispatchConstant","dispatchFunction","splice","groups","_groups","root","Selection","parents","_parents","selection","select","subgroups","subnode","subgroup","selectAll","arrayAll","selectorAll","selectChild","childFind","selectChildren","childrenFilter","matcher","constant","enterGroup","updateGroup","exitGroup","previous","i0","i1","_enter","_exit","sparse","onenter","onupdate","onexit","append","merge","groups0","groups1","m0","m1","merges","group0","group1","compareNode","sortgroups","sortgroup","nodes","each","attr","getAttributeNS","property","classed","html","creator","insert","before","deep","selection_iterator","noop","_","Dispatch","types","copy","that","args","taskHead","taskTail","frame","timeout","interval","clockLast","clockNow","clockSkew","clock","setFrame","clearNow","Timer","_call","_time","timer","restart","wake","timerFlush","t0","t2","t1","sleep","nap","poke","clearInterval","setInterval","elapsed","emptyOn","emptyTween","timing","schedules","__transition","tween","schedule","tick","duration","ease","init","svgNode","degrees","PI","identity","translateX","translateY","rotate","skewX","scaleX","scaleY","atan2","atan","interpolateTransform","parse","pxComma","pxParen","degParen","translate","interpolateTransformCss","DOMMatrix","WebKitCSSMatrix","isIdentity","decompose","interpolateTransformSvg","transform","baseVal","consolidate","matrix","tweenRemove","tween0","tween1","tweenFunction","tweenValue","_id","definition","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","RegExp","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color_formatHex","rgb","formatHex","color_formatRgb","formatRgb","format","exec","parseInt","rgbn","Rgb","rgba","hsla","rgbConvert","rgb_formatHex","hex","rgb_formatRgb","round","Hsl","hslConvert","hsl2rgb","m2","basis","v0","v3","t3","channels","displayable","formatHsl","pow","linear","gamma","nogamma","exponential","rgbGamma","colorRgb","rgbSpline","spline","colors","reA","reB","am","bm","bs","lastIndex","one","zero","interpolateNumber","interpolateRgb","interpolateString","interpolate","value1","string00","interpolate0","string1","string0","string10","attrInterpolate","attrInterpolateNS","attrTweenNS","_value","attrTween","delayFunction","delayConstant","durationFunction","durationConstant","easeConstant","onFunction","on0","on1","sit","every","styleInterpolate","styleTween","textInterpolate","textTween","Transition","_name","newId","selection_prototype","inherit","id0","id1","styleNull","listener0","styleMaybeRemove","removeFunction","easeVarying","cancel","interrupt","defaultTiming","active","number1","number2","Transform","applyX","applyY","invert","invertX","invertY","rescaleX","domain","rescaleY","SMALL$1","intersectionArea","circles","stats","intersectionPoints","circleCircleIntersection","parentIndex","getIntersectionPoints","innerPoints","circle","distance","radius","containedInCircles","arcArea","polygonArea","arcs","center","getCenter","angle","p2","p1","midPoint","arc","includes","a1","a2","angleDiff","sin","cos","large","sweep","circleArea","smallest","disjoint","acos","circleOverlap","r1","r2","y0","rx","ry","points","venn","sets","initialLayout","bestInitialLayout","loss","lossFunction","areas","addMissingAreas","setids","setid","solution","positions","distanceFromIntersectArea","overlap","distinct","toKey","k1","k2","ids","pairs","getDistanceMatrices","distances","constraints","right","constrainedMDSGradient","dij","constraint","squaredDistance","greedyLayout","constrained","constrainedMDSLayout","constrainedLoss","greedyLoss","restarts","norm","row","best","setOverlaps","rowid","weight","mostOverlapped","positioned","isPositioned","positionSet","setIndex","d1","d2","extraPoints","bestLoss","bestPoint","localLoss","overlaps","output","logRatioLossFunction","differenceFromIdeal","orientateCircles","orientation","orientationOrder","largestX","largestY","rotation","slope","getBoundingBox","minMax","reduce","acc","Number","NEGATIVE_INFINITY","POSITIVE_INFINITY","xRange","yRange","normalizeSolution","fromObjectNotation","clusters","union","xRoot","yRoot","maxDistance","disjointClusters","disjointCluster","cluster","bounds","returnBounds","spacing","addCluster","bottom","xOffset","yOffset","centreing","toObjectNotation","scaleSolution","padding","scaleToFit","xScaling","yScaling","toScaleDiameter","scaling","wrapText","labeller","label","words","minChars","word","line","lineNumber","tspans","tspan","joined","getComputedTextLength","circleMargin","interior","exterior","margin","computeTextCentre","symmetricalTextCentre","valid","areaStats","getOverlappingCircles","circleids","computeTextCentres","overlapped","areaids","exclude","centre","circleFromPath","path","tokens","parseFloat","intersectionAreaArcs","arcsToPath","rFactor","circlePath","intersectionAreaPath","onHandleCheckedItems","bChecked","setChecked","onChange","hasWindow","getWindowDimensions","innerWidth","innerHeight","windowDimensions","setWindowDimensions","handleResize","useWindowDimensions","title","setTitle","textA","setTextA","textB","setTextB","textC","setTextC","textAB","setTextAB","textAC","setTextAC","textBC","setTextBC","textABC","setTextABC","textComp","setTextComp","inputA","inputB","inputC","inputAB","inputAC","inputBC","inputABC","checkedItems","setCheckedItems","refrash","setRefrash","isSaving","setIsSaving","setSets","gtag","event_label","getSize","getMinorSize","textChange","newVen","chart","useViewBox","normalize","styled","fontSize","colourMap","colourScheme","colorScheme","colourIndex","colours","layoutFunction","toRemove","some","textCentres","labels","hasPrevious","pathTween","colour","enterPath","enterText","asTransition","textFill","updateText","exitText","isMobile","navigator","userAgent","substr","d3","attributes","className","localStorage","setItem","saveTexts","getItem","loadTexts","textAlign","ReactDOM","getElementById"],"sourceRoot":""}