{"version":3,"file":"react-pdf.main.e64cbf6b.js","mappings":";2IAsBA,IAA2CA,KAAMC,QAAND,KASxCE,WAT8CD,QASlC,IACC,MACN,aACA,IAAIE,oBAAsB,CAC7B,CAED,CAAEC,EAAyBC,KAIjCC,OAAOC,eAAeF,EAAS,aAAc,CAC3CG,OAAO,IAETH,EAAQI,eAAiBJ,EAAQK,KAAOL,EAAQM,sBAAwBN,EAAQO,4BAA8BP,EAAQQ,kBAAoBR,EAAQS,oBAAsBT,EAAQU,kBAAoBV,EAAQW,eAAiBX,EAAQY,kBAAoBZ,EAAQa,kBAAoBb,EAAQc,oBAAsBd,EAAQe,IAAMf,EAAQgB,oBAAsBhB,EAAQiB,wBAA0BjB,EAAQkB,YAAclB,EAAQmB,oBAAsBnB,EAAQoB,oBAAsBpB,EAAQqB,UAAYrB,EAAQsB,gBAAkBtB,EAAQuB,YAAcvB,EAAQwB,YAAcxB,EAAQyB,qBAAuBzB,EAAQ0B,wBAA0B1B,EAAQ2B,oBAAsB3B,EAAQ4B,cAAgB5B,EAAQ6B,gBAAkB7B,EAAQ8B,eAAiB9B,EAAQ+B,oBAAsB/B,EAAQgC,iBAAmBhC,EAAQiC,eAAiBjC,EAAQkC,eAAiBlC,EAAQmC,oBAAsBnC,EAAQoC,qBAAuBpC,EAAQqC,uBAAyBrC,EAAQsC,2BAA6BtC,EAAQuC,0BAA4BvC,EAAQwC,0BAA4BxC,EAAQyC,oBAAiB,EACtiCzC,EAAQ0C,OAqVR,SAAgBC,EAAMC,GACfD,GACHE,EAAYD,EAEhB,EAxVA5C,EAAQ8C,cAAgBA,EACxB9C,EAAQ+C,uBAoWR,SAAgCC,EAAKC,EAAU,KAAMC,EAAU,MAC7D,IAAKF,EACH,OAAO,KAET,IACE,GAAIE,GAA0B,iBAARF,EAAkB,CACtC,GAAIE,EAAQC,oBAAsBH,EAAII,WAAW,QAAS,CACxD,MAAMC,EAAOL,EAAIM,MAAM,OACnBD,GAAME,QAAU,IAClBP,EAAM,UAAUA,IAEpB,CACA,GAAIE,EAAQM,mBACV,IACER,EAAMS,EAAmBT,EAC3B,CAAE,MAAO,CAEb,CACA,MAAMU,EAAcT,EAAU,IAAIU,IAAIX,EAAKC,GAAW,IAAIU,IAAIX,GAC9D,GA/BJ,SAA0BA,GACxB,OAAQA,GAAKY,UACX,IAAK,QACL,IAAK,SACL,IAAK,OACL,IAAK,UACL,IAAK,OACH,OAAO,EACT,QACE,OAAO,EAEb,CAoBQC,CAAiBH,GACnB,OAAOA,CAEX,CAAE,MAAO,CACT,OAAO,IACT,EA3XA1D,EAAQ8D,oBA0uBR,SAA6BC,EAAO,IAAIC,MAEtC,MADe,CAACD,EAAKE,iBAAiBC,YAAaH,EAAKI,cAAgB,GAAGD,WAAWE,SAAS,EAAG,KAAML,EAAKM,aAAaH,WAAWE,SAAS,EAAG,KAAML,EAAKO,cAAcJ,WAAWE,SAAS,EAAG,KAAML,EAAKQ,gBAAgBL,WAAWE,SAAS,EAAG,KAAML,EAAKS,gBAAgBN,WAAWE,SAAS,EAAG,MACvRK,KAAK,GACrB,EA5uBAzE,EAAQ0E,QA2wBR,WACE,GAAsB,oBAAXC,QAAwD,mBAAvBA,QAAQC,WAClD,OAAOD,OAAOC,aAEhB,MAAMC,EAAM,IAAIC,WAAW,IAC3B,GAAsB,oBAAXH,QAA6D,mBAA5BA,QAAQI,gBAClDJ,OAAOI,gBAAgBF,QAEvB,IAAK,IAAIG,EAAI,EAAGA,EAAI,GAAIA,IACtBH,EAAIG,GAAKC,KAAKC,MAAsB,IAAhBD,KAAKE,UAG7B,OAAOrC,EAAc+B,EACvB,EAvxBA7E,EAAQoF,kBAgUR,WACE,OAAOC,CACT,EAjUArF,EAAQsF,KAkUR,SAAc1C,GACRyC,GAAajF,EAAemF,OAC9BC,QAAQC,IAAI,SAAS7C,IAEzB,EArUA5C,EAAQ0F,cAwtBR,SAAuBC,GACrB,MAAoB,iBAANA,QAAoCC,IAAlBD,GAAGE,UACrC,EAztBA7F,EAAQ8F,aA0tBR,SAAsBC,EAAMC,GAC1B,GAAID,EAAKxC,SAAWyC,EAAKzC,OACvB,OAAO,EAET,IAAK,IAAIyB,EAAI,EAAGiB,EAAKF,EAAKxC,OAAQyB,EAAIiB,EAAIjB,IACxC,GAAIe,EAAKf,KAAOgB,EAAKhB,GACnB,OAAO,EAGX,OAAO,CACT,EAnuBAhF,EAAQkG,cAAW,EACnBlG,EAAQmG,iBA4vBR,SAA0BC,GAKxB,OAJKC,IACHA,EAAiB,2UACjBC,EAAmB,IAAIC,IAAI,CAAC,CAAC,IAAK,SAE7BH,EAAII,WAAWH,GAAgB,CAACI,EAAGC,EAAIC,IACrCD,EAAKA,EAAGE,UAAU,QAAUN,EAAiBO,IAAIF,IAE5D,EAnwBA3G,EAAQ8G,cAydR,SAAuBC,GACrB,MAAMC,EAAM/G,OAAOgH,OAAO,MAC1B,IAAK,MAAOC,EAAK/G,KAAU4G,EACzBC,EAAIE,GAAO/G,EAEb,OAAO6G,CACT,EA9dAhH,EAAQmH,WAqdR,SAAoBH,GAClB,OAAO/G,OAAOmH,KAAKJ,GAAKzD,MAC1B,EAtdAvD,EAAQqH,kBAmTR,SAA2BC,GACrBC,OAAOC,UAAUF,KACnBjC,EAAYiC,EAEhB,EAtTAtH,EAAQyH,OAASA,EACjBzH,EAAQ0H,SA+cR,SAAkBvH,GAChB,OAAOwH,OAAOC,aAAazH,GAAS,GAAK,IAAMA,GAAS,GAAK,IAAMA,GAAS,EAAI,IAAc,IAARA,EACxF,EAhdAH,EAAQ6H,cAAgBA,EACxB7H,EAAQ8H,kBA2qBR,SAA2B1B,GACzB,GAAIA,EAAI,IAAM,IAAQ,CACpB,IAAI2B,EAQJ,GAPe,MAAX3B,EAAI,IAA4B,MAAXA,EAAI,GAC3B2B,EAAW,WACS,MAAX3B,EAAI,IAA4B,MAAXA,EAAI,GAClC2B,EAAW,WACS,MAAX3B,EAAI,IAA4B,MAAXA,EAAI,IAA4B,MAAXA,EAAI,KACvD2B,EAAW,SAETA,EACF,IACE,MAAMC,EAAU,IAAIC,YAAYF,EAAU,CACxCG,OAAO,IAEHC,EAASN,EAAczB,GAC7B,OAAO4B,EAAQI,OAAOD,EACxB,CAAE,MAAOE,GACPC,EAAK,uBAAuBD,MAC9B,CAEJ,CACA,MAAME,EAAS,GACf,IAAK,IAAIvD,EAAI,EAAGiB,EAAKG,EAAI7C,OAAQyB,EAAIiB,EAAIjB,IAAK,CAC5C,MAAMwD,EAAOC,EAAwBrC,EAAIsC,WAAW1D,IACpDuD,EAAOI,KAAKH,EAAOb,OAAOC,aAAaY,GAAQpC,EAAIwC,OAAO5D,GAC5D,CACA,OAAOuD,EAAO9D,KAAK,GACrB,EAtsBAzE,EAAQyD,mBAAqBA,EAC7BzD,EAAQ6C,YAAcA,EACtB7C,EAAQ6I,mBAwsBR,SAA4BzC,GAC1B,OAAO0C,SAASC,mBAAmB3C,GACrC,EAzsBApG,EAAQsI,KAAOA,EACf,MAAMpC,IAA8B,iBAAZ8C,SAAwBA,QAAU,IAAO,oBAAuBA,QAAQC,SAASC,IAAQF,QAAQC,SAASE,UAAYH,QAAQI,MAAyB,YAAjBJ,QAAQI,MACtKpJ,EAAQkG,SAAWA,EAEnBlG,EAAQsB,gBADgB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAGxCtB,EAAQyB,qBADqB,CAAC,KAAO,EAAG,EAAG,KAAO,EAAG,GAGrDzB,EAAQiB,wBADwB,IAGhCjB,EAAQkB,YADY,KAGpBlB,EAAQmB,oBADoB,IAG5BnB,EAAQ6B,gBAHoB,IAFR,KAgBpB7B,EAAQS,oBAVoB,CAC1B4I,IAAK,EACLC,QAAS,EACTC,MAAO,EACPC,KAAM,EACNC,kBAAmB,GACnBC,oBAAqB,GACrBC,oBAAqB,GACrBC,OAAQ,KASV5J,EAAQiC,eANe,CACrB4H,QAAS,EACTC,OAAQ,EACRC,aAAc,EACdC,eAAgB,GAIlBhK,EAAQqC,uBADuB,yBAS/BrC,EAAQoC,qBAPqB,CAC3ByH,SAAU,EACVI,KAAM,EACNC,SAAU,EACVC,MAAO,GACPC,IAAK,IAaPpK,EAAQsC,2BAV2B,CACjC+H,OAAQ,EACRC,OAAQ,EACRC,cAAe,GACfC,eAAgB,GAChBC,iBAAkB,GAClBC,UAAW,GACXC,cAAe,GACfC,YAAa,IAaf5K,EAAQW,eAVe,CACrB4I,MAAO,EACPsB,gBAAiB,EACjBC,KAAM,GACNC,mBAAoB,GACpBC,uBAAwB,IACxBC,uBAAwB,IACxBC,SAAU,KACVC,mBAAoB,MAetBnL,EAAQQ,kBAZkB,CACxB4K,KAAM,EACNC,OAAQ,EACRC,YAAa,EACbC,UAAW,EACXC,iBAAkB,EAClBC,mBAAoB,EACpBC,wBAAyB,EACzBC,YAAa,EACbC,iBAAkB,EAClBC,iBAAkB,GAQpB7L,EAAQqB,UALU,CAChByK,eAAgB,EAChBC,UAAW,EACXC,WAAY,GA+BdhM,EAAQ8B,eA5Be,CACrBmK,KAAM,EACNC,KAAM,EACNhC,SAAU,EACViC,KAAM,EACNC,OAAQ,EACRC,OAAQ,EACRC,QAAS,EACTC,SAAU,EACVC,UAAW,EACXC,UAAW,GACXC,SAAU,GACVC,UAAW,GACXxC,MAAO,GACPyC,MAAO,GACPxC,IAAK,GACLyC,MAAO,GACPC,eAAgB,GAChBC,MAAO,GACPC,MAAO,GACPC,OAAQ,GACRC,OAAQ,GACRC,YAAa,GACbC,QAAS,GACTC,UAAW,GACXC,OAAQ,GACRC,OAAQ,IAOVvN,EAAQ+B,oBAJoB,CAC1ByL,MAAO,QACPC,MAAO,KAeTzN,EAAQkC,eAZe,CACrBqJ,UAAW,EACXmC,OAAQ,EACRnE,MAAO,EACPoE,OAAQ,EACRC,SAAU,GACVC,OAAQ,GACRC,SAAU,GACVC,OAAQ,IACRC,aAAc,IACdC,eAAgB,KAwBlBjO,EAAQmC,oBArBoB,CAC1B2L,SAAU,EACVI,SAAU,EACVC,SAAU,EACVC,UAAW,KACXC,SAAU,KACVC,cAAe,MACfC,MAAO,MACPC,WAAY,MACZC,MAAO,OACPC,KAAM,OACNC,KAAM,OACNC,WAAY,QACZC,YAAa,QACbC,gBAAiB,QACjBC,YAAa,QACbC,KAAM,SACNC,SAAU,SACVC,eAAgB,SAChBC,kBAAmB,UAUrBnP,EAAQuC,0BAP0B,CAChC6M,MAAO,EACPC,OAAQ,EACRC,QAAS,EACTC,MAAO,EACP9C,UAAW,GAmBbzM,EAAQwC,0BAhB0B,CAChCgN,EAAG,cACHC,EAAG,aACHC,EAAG,aACHC,EAAG,WACHC,GAAI,QACJC,GAAI,OACJC,GAAI,WACJC,GAAI,YACJC,GAAI,cACJC,GAAI,gBACJC,EAAG,YACHC,EAAG,SACHC,EAAG,WACHC,EAAG,aAULrQ,EAAQ0B,wBAPwB,CAC9B4O,GAAI,YACJC,GAAI,WACJC,GAAI,UACJC,GAAI,YACJC,GAAI,YAON1Q,EAAQc,oBAJoB,CAC1B6P,EAAG,WACHN,EAAG,aAGL,MAAMjQ,EAAiB,CACrBwQ,OAAQ,EACRC,SAAU,EACVtL,MAAO,GAETvF,EAAQI,eAAiBA,EAKzBJ,EAAQ2B,oBAJoB,CAC1BsI,KAAM,EACN6G,OAAQ,GA6FV9Q,EAAQe,IA1FI,CACVgQ,WAAY,EACZC,aAAc,EACdC,WAAY,EACZC,YAAa,EACbC,cAAe,EACfC,QAAS,EACTC,mBAAoB,EACpBC,YAAa,EACbC,UAAW,EACXC,KAAM,GACNC,QAAS,GACTC,UAAW,GACXC,OAAQ,GACRC,OAAQ,GACRC,QAAS,GACTC,SAAU,GACVC,SAAU,GACVC,UAAW,GACXC,UAAW,GACXC,OAAQ,GACRC,YAAa,GACbC,KAAM,GACNC,OAAQ,GACRC,WAAY,GACZC,aAAc,GACdC,gBAAiB,GACjBC,kBAAmB,GACnBC,QAAS,GACTC,KAAM,GACNC,OAAQ,GACRC,UAAW,GACXC,QAAS,GACTC,eAAgB,GAChBC,eAAgB,GAChBC,UAAW,GACXC,WAAY,GACZC,QAAS,GACTC,qBAAsB,GACtBC,YAAa,GACbC,SAAU,GACVC,mBAAoB,GACpBC,cAAe,GACfC,SAAU,GACVC,SAAU,GACVC,eAAgB,GAChBC,iBAAkB,GAClBC,2BAA4B,GAC5BC,aAAc,GACdC,sBAAuB,GACvBC,oBAAqB,GACrBC,kBAAmB,GACnBC,eAAgB,GAChBC,gBAAiB,GACjBC,aAAc,GACdC,cAAe,GACfC,cAAe,GACfC,YAAa,GACbC,kBAAmB,GACnBC,gBAAiB,GACjBC,mBAAoB,GACpBC,iBAAkB,GAClBC,YAAa,GACbC,iBAAkB,GAClBC,eAAgB,GAChBC,eAAgB,GAChBC,aAAc,GACdC,UAAW,GACXC,eAAgB,GAChBC,mBAAoB,GACpBC,wBAAyB,GACzBC,iBAAkB,GAClBC,YAAa,GACbC,UAAW,GACXC,sBAAuB,GACvBC,oBAAqB,GACrBC,WAAY,GACZC,SAAU,GACVC,gBAAiB,GACjBC,cAAe,GACfC,sBAAuB,GACvBC,2BAA4B,GAC5BC,kBAAmB,GACnBC,wBAAyB,GACzBC,6BAA8B,GAC9BC,wBAAyB,GACzBC,4BAA6B,GAC7BC,yBAA0B,GAC1BC,cAAe,IAOjBtW,EAAQY,kBAJkB,CACxB2V,cAAe,EACfC,mBAAoB,GAGtB,IAAInR,EAAYjF,EAAeyQ,SAc/B,SAASvI,EAAK1F,GACRyC,GAAajF,EAAeyQ,UAC9BrL,QAAQC,IAAI,YAAY7C,IAE5B,CACA,SAASC,EAAYD,GACnB,MAAM,IAAI6T,MAAM7T,EAClB,CA2CA,SAAS6E,EAAOT,EAAK0P,EAAMvW,EAAOwW,GAAkB,GAOlD,OANA1W,OAAOC,eAAe8G,EAAK0P,EAAM,CAC/BvW,QACAyW,YAAaD,EACbE,cAAc,EACdC,UAAU,IAEL3W,CACT,CACA,MAAMyB,EAAgB,WACpB,SAASA,EAAcmV,EAASC,GAC1BC,KAAKC,cAAgBtV,GACvBiB,EAAY,oCAEdoU,KAAKF,QAAUA,EACfE,KAAKD,KAAOA,CACd,CAGA,OAFApV,EAAcuV,UAAY,IAAIV,MAC9B7U,EAAcsV,YAActV,EACrBA,CACT,CAXsB,GA0DtB,SAASkB,EAAcsU,GACA,iBAAVA,QAAwCxR,IAAlBwR,GAAO7T,QACtCV,EAAY,sCAEd,MAAMU,EAAS6T,EAAM7T,OACf8T,EAAqB,KAC3B,GAAI9T,EAAS8T,EACX,OAAO1P,OAAOC,aAAa0P,MAAM,KAAMF,GAEzC,MAAM7O,EAAS,GACf,IAAK,IAAIvD,EAAI,EAAGA,EAAIzB,EAAQyB,GAAKqS,EAAoB,CACnD,MAAME,EAAWtS,KAAKuS,IAAIxS,EAAIqS,EAAoB9T,GAC5CkU,EAAQL,EAAMM,SAAS1S,EAAGuS,GAChChP,EAAOI,KAAKhB,OAAOC,aAAa0P,MAAM,KAAMG,GAC9C,CACA,OAAOlP,EAAO9D,KAAK,GACrB,CACA,SAASoD,EAAczB,GACF,iBAARA,GACTvD,EAAY,sCAEd,MAAMU,EAAS6C,EAAI7C,OACb6T,EAAQ,IAAItS,WAAWvB,GAC7B,IAAK,IAAIyB,EAAI,EAAGA,EAAIzB,IAAUyB,EAC5BoS,EAAMpS,GAAyB,IAApBoB,EAAIsC,WAAW1D,GAE5B,OAAOoS,CACT,CAzEApX,EAAQ4B,cAAgBA,EAOxB5B,EAAQa,kBANR,cAAgCe,EAC9B,WAAAsV,CAAYtU,EAAK4F,GACfmP,MAAM/U,EAAK,qBACXqU,KAAKzO,KAAOA,CACd,GASFxI,EAAQM,sBANR,cAAoCsB,EAClC,WAAAsV,CAAYtU,EAAKgV,GACfD,MAAM/U,EAAK,yBACXqU,KAAKW,QAAUA,CACjB,GAQF5X,EAAQoB,oBALR,cAAkCQ,EAChC,WAAAsV,CAAYtU,GACV+U,MAAM/U,EAAK,sBACb,GAQF5C,EAAQgB,oBALR,cAAkCY,EAChC,WAAAsV,CAAYtU,GACV+U,MAAM/U,EAAK,sBACb,GASF5C,EAAQO,4BANR,cAA0CqB,EACxC,WAAAsV,CAAYtU,EAAKiV,GACfF,MAAM/U,EAAK,+BACXqU,KAAKY,OAASA,CAChB,GAQF7X,EAAQuB,YALR,cAA0BK,EACxB,WAAAsV,CAAYtU,GACV+U,MAAM/U,EAAK,cACb,GAQF5C,EAAQyC,eALR,cAA6Bb,EAC3B,WAAAsV,CAAYtU,GACV+U,MAAM/U,EAAK,iBACb,GAoFF5C,EAAQwB,YA1BR,MACE,yBAAWsW,GACT,OAAOrQ,EAAOwP,KAAM,iBAhBxB,WACE,MAAMc,EAAU,IAAIjT,WAAW,GAG/B,OAFAiT,EAAQ,GAAK,EAEQ,IADN,IAAIC,YAAYD,EAAQ5P,OAAQ,EAAG,GACpC,EAChB,CAW0C2P,GACxC,CACA,0BAAWG,GACT,OAAOxQ,EAAOwP,KAAM,kBAbxB,WACE,IAEE,OADA,IAAIiB,SAAS,KACN,CACT,CAAE,MACA,OAAO,CACT,CACF,CAM2CD,GACzC,CACA,qCAAWE,GACT,OAAO1Q,EAAOwP,KAAM,6BAAyD,oBAApBmB,gBAC3D,CACA,mBAAWC,GACT,MAAyB,oBAAdC,UACF7Q,EAAOwP,KAAM,WAAY,CAC9BsB,OAAO,EACPC,OAAO,IAGJ/Q,EAAOwP,KAAM,WAAY,CAC9BsB,MAAOD,UAAUD,SAASI,SAAS,OACnCD,MAAOF,UAAUD,SAASI,SAAS,QAEvC,CACA,8BAAWC,GACT,OAAOjR,EAAOwP,KAAM,sBAAuBpX,WAAW8Y,KAAKC,WAAW,4BACxE,GAGF,MAAMC,EAAa,IAAIC,MAAM,KAAK1R,QAAQL,KAAIgS,GAAKA,EAAE7U,SAAS,IAAIE,SAAS,EAAG,OAsK9EpE,EAAQK,KArKR,MACE,mBAAO2Y,CAAaC,EAAGC,EAAGC,GACxB,MAAO,IAAIN,EAAWI,KAAKJ,EAAWK,KAAKL,EAAWM,IACxD,CACA,kBAAOC,CAAY1H,EAAW2H,GAC5B,IAAIC,EACA5H,EAAU,IACRA,EAAU,GAAK,IACjB4H,EAAOD,EAAO,GACdA,EAAO,GAAKA,EAAO,GACnBA,EAAO,GAAKC,GAEdD,EAAO,IAAM3H,EAAU,GACvB2H,EAAO,IAAM3H,EAAU,GACnBA,EAAU,GAAK,IACjB4H,EAAOD,EAAO,GACdA,EAAO,GAAKA,EAAO,GACnBA,EAAO,GAAKC,GAEdD,EAAO,IAAM3H,EAAU,GACvB2H,EAAO,IAAM3H,EAAU,KAEvB4H,EAAOD,EAAO,GACdA,EAAO,GAAKA,EAAO,GACnBA,EAAO,GAAKC,EACZA,EAAOD,EAAO,GACdA,EAAO,GAAKA,EAAO,GACnBA,EAAO,GAAKC,EACR5H,EAAU,GAAK,IACjB4H,EAAOD,EAAO,GACdA,EAAO,GAAKA,EAAO,GACnBA,EAAO,GAAKC,GAEdD,EAAO,IAAM3H,EAAU,GACvB2H,EAAO,IAAM3H,EAAU,GACnBA,EAAU,GAAK,IACjB4H,EAAOD,EAAO,GACdA,EAAO,GAAKA,EAAO,GACnBA,EAAO,GAAKC,GAEdD,EAAO,IAAM3H,EAAU,GACvB2H,EAAO,IAAM3H,EAAU,IAEzB2H,EAAO,IAAM3H,EAAU,GACvB2H,EAAO,IAAM3H,EAAU,GACvB2H,EAAO,IAAM3H,EAAU,GACvB2H,EAAO,IAAM3H,EAAU,EACzB,CACA,gBAAOA,CAAU6H,EAAIC,GACnB,MAAO,CAACD,EAAG,GAAKC,EAAG,GAAKD,EAAG,GAAKC,EAAG,GAAID,EAAG,GAAKC,EAAG,GAAKD,EAAG,GAAKC,EAAG,GAAID,EAAG,GAAKC,EAAG,GAAKD,EAAG,GAAKC,EAAG,GAAID,EAAG,GAAKC,EAAG,GAAKD,EAAG,GAAKC,EAAG,GAAID,EAAG,GAAKC,EAAG,GAAKD,EAAG,GAAKC,EAAG,GAAKD,EAAG,GAAIA,EAAG,GAAKC,EAAG,GAAKD,EAAG,GAAKC,EAAG,GAAKD,EAAG,GAChN,CACA,qBAAOE,CAAeC,EAAGC,GAGvB,MAAO,CAFID,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,GAAKA,EAAE,GAC9BD,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,GAAKA,EAAE,GAE3C,CACA,4BAAOC,CAAsBF,EAAGC,GAC9B,MAAME,EAAIF,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAGjC,MAAO,EAFKD,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,IAAME,IACxDH,EAAE,GAAKC,EAAE,GAAKD,EAAE,GAAKC,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,IAAME,EAExE,CACA,iCAAOC,CAA2Bb,EAAGU,GACnC,MAAMjT,EAAKuQ,KAAKwC,eAAeR,EAAGU,GAC5BhT,EAAKsQ,KAAKwC,eAAeR,EAAEc,MAAM,EAAG,GAAIJ,GACxCK,EAAK/C,KAAKwC,eAAe,CAACR,EAAE,GAAIA,EAAE,IAAKU,GACvCM,EAAKhD,KAAKwC,eAAe,CAACR,EAAE,GAAIA,EAAE,IAAKU,GAC7C,MAAO,CAAC1U,KAAKuS,IAAI9Q,EAAG,GAAIC,EAAG,GAAIqT,EAAG,GAAIC,EAAG,IAAKhV,KAAKuS,IAAI9Q,EAAG,GAAIC,EAAG,GAAIqT,EAAG,GAAIC,EAAG,IAAKhV,KAAKiV,IAAIxT,EAAG,GAAIC,EAAG,GAAIqT,EAAG,GAAIC,EAAG,IAAKhV,KAAKiV,IAAIxT,EAAG,GAAIC,EAAG,GAAIqT,EAAG,GAAIC,EAAG,IAC7J,CACA,uBAAOE,CAAiBR,GACtB,MAAME,EAAIF,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GACjC,MAAO,CAACA,EAAE,GAAKE,GAAIF,EAAE,GAAKE,GAAIF,EAAE,GAAKE,EAAGF,EAAE,GAAKE,GAAIF,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,IAAME,GAAIF,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,IAAME,EACnH,CACA,oCAAOO,CAA8BT,GACnC,MAAMU,EAAY,CAACV,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,IACjCW,EAAIX,EAAE,GAAKU,EAAU,GAAKV,EAAE,GAAKU,EAAU,GAC3ClB,EAAIQ,EAAE,GAAKU,EAAU,GAAKV,EAAE,GAAKU,EAAU,GAC3CE,EAAIZ,EAAE,GAAKU,EAAU,GAAKV,EAAE,GAAKU,EAAU,GAC3CR,EAAIF,EAAE,GAAKU,EAAU,GAAKV,EAAE,GAAKU,EAAU,GAC3CG,GAASF,EAAIT,GAAK,EAClBY,EAASxV,KAAKyV,MAAMJ,EAAIT,IAAM,EAAI,GAAKS,EAAIT,EAAIU,EAAIpB,IAAM,EACzDwB,EAAKH,EAAQC,GAAU,EACvBG,EAAKJ,EAAQC,GAAU,EAC7B,MAAO,CAACxV,KAAKyV,KAAKC,GAAK1V,KAAKyV,KAAKE,GACnC,CACA,oBAAOC,CAAcC,GACnB,MAAM7B,EAAI6B,EAAKf,MAAM,GASrB,OARIe,EAAK,GAAKA,EAAK,KACjB7B,EAAE,GAAK6B,EAAK,GACZ7B,EAAE,GAAK6B,EAAK,IAEVA,EAAK,GAAKA,EAAK,KACjB7B,EAAE,GAAK6B,EAAK,GACZ7B,EAAE,GAAK6B,EAAK,IAEP7B,CACT,CACA,gBAAO8B,CAAUC,EAAOC,GACtB,MAAMC,EAAOjW,KAAKiV,IAAIjV,KAAKuS,IAAIwD,EAAM,GAAIA,EAAM,IAAK/V,KAAKuS,IAAIyD,EAAM,GAAIA,EAAM,KACvEE,EAAQlW,KAAKuS,IAAIvS,KAAKiV,IAAIc,EAAM,GAAIA,EAAM,IAAK/V,KAAKiV,IAAIe,EAAM,GAAIA,EAAM,KAC9E,GAAIC,EAAOC,EACT,OAAO,KAET,MAAMC,EAAOnW,KAAKiV,IAAIjV,KAAKuS,IAAIwD,EAAM,GAAIA,EAAM,IAAK/V,KAAKuS,IAAIyD,EAAM,GAAIA,EAAM,KACvEI,EAAQpW,KAAKuS,IAAIvS,KAAKiV,IAAIc,EAAM,GAAIA,EAAM,IAAK/V,KAAKiV,IAAIe,EAAM,GAAIA,EAAM,KAC9E,OAAIG,EAAOC,EACF,KAEF,CAACH,EAAME,EAAMD,EAAOE,EAC7B,CACA,wBAAOC,CAAkBC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GACnD,MAAMC,EAAU,GACdC,EAAS,CAAC,GAAI,IAChB,IAAI1B,EAAGnB,EAAGoB,EAAG0B,EAAGC,EAAIC,EAAIC,EAAMC,EAC9B,IAAK,IAAIrX,EAAI,EAAGA,EAAI,IAAKA,EAUvB,GATU,IAANA,GACFmU,EAAI,EAAIoC,EAAK,GAAKE,EAAK,EAAIE,EAC3BrB,GAAK,EAAIiB,EAAK,EAAIE,EAAK,EAAIE,EAAK,EAAIE,EACpCtB,EAAI,EAAIkB,EAAK,EAAIF,IAEjBpC,EAAI,EAAIqC,EAAK,GAAKE,EAAK,EAAIE,EAC3BtB,GAAK,EAAIkB,EAAK,EAAIE,EAAK,EAAIE,EAAK,EAAIE,EACpCvB,EAAI,EAAImB,EAAK,EAAIF,GAEfvW,KAAKqX,IAAIhC,GAAK,MAAlB,CACE,GAAIrV,KAAKqX,IAAInD,GAAK,MAChB,SAEF8C,GAAK1B,EAAIpB,EACL,EAAI8C,GAAKA,EAAI,GACfF,EAAQpT,KAAKsT,EAGjB,MACAG,EAAOjD,EAAIA,EAAI,EAAIoB,EAAID,EACvB+B,EAAWpX,KAAKyV,KAAK0B,GACjBA,EAAO,IAGXF,IAAO/C,EAAIkD,IAAa,EAAI/B,GACxB,EAAI4B,GAAMA,EAAK,GACjBH,EAAQpT,KAAKuT,GAEfC,IAAOhD,EAAIkD,IAAa,EAAI/B,GACxB,EAAI6B,GAAMA,EAAK,GACjBJ,EAAQpT,KAAKwT,IAGjB,IACEI,EADEC,EAAIT,EAAQxY,OAEhB,MAAMkZ,EAAOD,EACb,KAAOA,KACLP,EAAIF,EAAQS,GACZD,EAAK,EAAIN,EACTD,EAAO,GAAGQ,GAAKD,EAAKA,EAAKA,EAAKhB,EAAK,EAAIgB,EAAKA,EAAKN,EAAIR,EAAK,EAAIc,EAAKN,EAAIA,EAAIN,EAAKM,EAAIA,EAAIA,EAAIJ,EAC5FG,EAAO,GAAGQ,GAAKD,EAAKA,EAAKA,EAAKf,EAAK,EAAIe,EAAKA,EAAKN,EAAIP,EAAK,EAAIa,EAAKN,EAAIA,EAAIL,EAAKK,EAAIA,EAAIA,EAAIH,EAO9F,OALAE,EAAO,GAAGS,GAAQlB,EAClBS,EAAO,GAAGS,GAAQjB,EAClBQ,EAAO,GAAGS,EAAO,GAAKZ,EACtBG,EAAO,GAAGS,EAAO,GAAKX,EACtBE,EAAO,GAAGzY,OAASyY,EAAO,GAAGzY,OAASkZ,EAAO,EACtC,CAACxX,KAAKuS,OAAOwE,EAAO,IAAK/W,KAAKuS,OAAOwE,EAAO,IAAK/W,KAAKiV,OAAO8B,EAAO,IAAK/W,KAAKiV,OAAO8B,EAAO,IACrG,GAGF,MAAMvT,EAA0B,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,IAAO,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,MAAQ,MAAQ,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,IAAO,EAAG,MA8BjrB,SAAShF,EAAmB2C,GAC1B,OAAOsW,mBAAmBC,OAAOvW,GACnC,CAwCApG,EAAQU,kBAlBR,MACE,IAAW,EACX,WAAAwW,GACED,KAAK2F,QAAU,IAAIC,SAAQ,CAACC,EAASC,KACnC9F,KAAK6F,QAAUE,IACb/F,MAAK,GAAW,EAChB6F,EAAQE,EAAK,EAEf/F,KAAK8F,OAASE,IACZhG,MAAK,GAAW,EAChB8F,EAAOE,EAAO,CACf,GAEL,CACA,WAAIC,GACF,OAAOjG,MAAK,CACd,GAGF,IAAI5Q,EAAiB,KACjBC,EAAmB,KAyBvBtG,EAAQgC,iBADiB,oBAGlB,EAED,CAAEjC,wBAAyBC,QAASmd,uBAI1Cld,OAAOC,eAAeF,QAAS,aAAc,CAC3CG,OAAO,IAETH,QAAQod,WAAapd,QAAQqd,cAAgBrd,QAAQsd,UAAYtd,QAAQud,aAAevd,QAAQwd,iBAAmBxd,QAAQyd,uBAAyBzd,QAAQ0d,sBAAwB1d,QAAQ2d,aAAe3d,QAAQ4d,+BAAiC5d,QAAQ6d,qBAAuB7d,QAAQ8d,qBAAuB9d,QAAQ+d,8BAA2B,EACrV9d,OAAOC,eAAeF,QAAS,cAAe,CAC5C4W,YAAY,EACZ/P,IAAK,WACH,OAAOmX,YAAYC,WACrB,IAEFje,QAAQke,WAAQ,EAChBle,QAAQme,YAAcA,YACtBne,QAAQoe,aAAU,EAClB,IAAIC,MAAQlB,oBAAoB,GAC5BmB,oBAAsBnB,oBAAoB,GAC1CoB,eAAiBpB,oBAAoB,GACrCqB,aAAerB,oBAAoB,GACnCsB,mBAAqBtB,oBAAoB,IACzCuB,QAAUvB,oBAAoB,IAC9BwB,gBAAkBxB,oBAAoB,IACtCyB,iBAAmBzB,oBAAoB,IACvC0B,UAAY1B,oBAAoB,IAChC2B,yBAA2B3B,oBAAoB,IAC/C4B,kBAAoB5B,oBAAoB,IACxC6B,qBAAuB7B,oBAAoB,IAC3C8B,gBAAkB9B,oBAAoB,IACtC+B,oBAAsB/B,oBAAoB,IAC1Ca,YAAcb,oBAAoB,IAClCgC,UAAYhC,oBAAoB,IACpC,MAAMiC,yBAA2B,MAC3BC,4BAA8B,IAC9BC,wBAA0B,IAC1BxB,qBAAuBO,MAAMnY,SAAWuY,mBAAmBc,kBAAoBhB,eAAeiB,iBACpGxf,QAAQ8d,qBAAuBA,qBAC/B,MAAMC,yBAA2BM,MAAMnY,SAAWuY,mBAAmBgB,sBAAwBlB,eAAemB,qBAC5G1f,QAAQ+d,yBAA2BA,yBACnC,MAAMF,qBAAuBQ,MAAMnY,SAAWuY,mBAAmBkB,kBAAoBpB,eAAeqB,iBACpG5f,QAAQ6d,qBAAuBA,qBAC/B,MAAMD,+BAAiCS,MAAMnY,SAAWuY,mBAAmBoB,4BAA8BtB,eAAeuB,2BAExH,SAAS3B,YAAY4B,GAUnB,GATmB,iBAARA,GAAoBA,aAAepc,IAC5Coc,EAAM,CACJ/c,IAAK+c,IAEE,EAAI1B,MAAM3Y,eAAeqa,KAClCA,EAAM,CACJ/C,KAAM+C,IAGS,iBAARA,EACT,MAAM,IAAItJ,MAAM,4DAElB,IAAKsJ,EAAI/c,MAAQ+c,EAAI/C,OAAS+C,EAAIC,MAChC,MAAM,IAAIvJ,MAAM,+DAElB,MAAMwJ,EAAO,IAAIxC,wBACX,MACJyC,GACED,EACEjd,EAAM+c,EAAI/c,IAAMmd,WAAWJ,EAAI/c,KAAO,KACtCga,EAAO+C,EAAI/C,KAAOoD,YAAYL,EAAI/C,MAAQ,KAC1CqD,EAAcN,EAAIM,aAAe,KACjCC,GAA0C,IAAxBP,EAAIO,gBACtBC,EAAWR,EAAIQ,UAAY,KAC3BC,EAAiBT,EAAIC,iBAAiBtC,sBAAwBqC,EAAIC,MAAQ,KAC1ES,EAAiBlZ,OAAOC,UAAUuY,EAAIU,iBAAmBV,EAAIU,eAAiB,EAAIV,EAAIU,eAAiBrB,yBAC7G,IAAIsB,EAASX,EAAIW,kBAAkBpD,UAAYyC,EAAIW,OAAS,KAC5D,MAAMrb,EAAY0a,EAAI1a,UAChBsb,EAAuC,iBAAnBZ,EAAIY,aAA4B,EAAIpC,eAAeqC,cAAcb,EAAIY,YAA+B,KAAjBZ,EAAIY,WAC3GE,EAAiC,iBAAhBd,EAAIc,QAAuBd,EAAIc,QAAU,KAC1DC,GAAgC,IAAnBf,EAAIe,WACjBC,EAAoBhB,EAAIgB,mBAAqBhD,yBAC7CiD,EAAyD,iBAA5BjB,EAAIiB,oBAAmCjB,EAAIiB,oBAAsB,KAC9FC,EAA0BlB,EAAIkB,yBAA2BrD,+BACzDsD,GAAoC,IAArBnB,EAAIoB,aACnBC,EAAe7Z,OAAOC,UAAUuY,EAAIqB,eAAiBrB,EAAIqB,cAAgB,EAAIrB,EAAIqB,cAAgB,EACjGnJ,GAA0C,IAAxB8H,EAAI9H,gBACtBE,EAAuE,kBAAnC4H,EAAI5H,2BAA2C4H,EAAI5H,4BAA8BkG,MAAMnY,SAC3Hmb,EAAuB9Z,OAAOC,UAAUuY,EAAIsB,sBAAwBtB,EAAIsB,sBAAwB,EAChGC,EAAiD,kBAAxBvB,EAAIuB,gBAAgCvB,EAAIuB,gBAAkBjD,MAAMnY,SACzFqb,GAAkD,IAA5BxB,EAAIwB,oBAC1BC,GAA8B,IAAlBzB,EAAIyB,UAChBC,EAAgB1B,EAAI0B,eAAiB5hB,WAAW6hB,SAChDC,GAAoC,IAArB5B,EAAI4B,aACnBC,GAAsC,IAAtB7B,EAAI6B,cACpBC,GAA4C,IAAzB9B,EAAI8B,iBACvBC,GAAwB,IAAf/B,EAAI+B,OACbve,EAASid,EAAiBA,EAAejd,OAASwc,EAAIxc,QAAUwe,IAChEC,EAA+C,kBAAvBjC,EAAIiC,eAA+BjC,EAAIiC,gBAAkB3D,MAAMnY,WAAaob,EACpGW,EAA+C,kBAAvBlC,EAAIkC,eAA+BlC,EAAIkC,eAAiBlB,IAAsBxC,eAAemB,sBAAwBuB,IAA4B1C,eAAeuB,4BAA8Be,GAAWG,IAAuB,EAAIzC,eAAe2D,iBAAiBrB,EAASa,SAASS,WAAY,EAAI5D,eAAe2D,iBAAiBlB,EAAqBU,SAASS,SAC5XC,EAAgBrC,EAAIqC,eAAiB,IAAItE,qBAAqB,CAClE2D,kBAEIY,EAAgBtC,EAAIsC,eAAiB,IAAIxE,qBAAqB,CAClEqC,QACAuB,mBAGF,EAAIpD,MAAMhX,mBAAmBhC,GAC7B,MAAMid,EAAmB,CACvBF,gBACAC,iBAWF,GATKJ,IACHK,EAAiBC,kBAAoB,IAAIxB,EAAkB,CACzD9d,QAAS4d,EACT2B,aAAc1B,IAEhBwB,EAAiBG,wBAA0B,IAAIxB,EAAwB,CACrEhe,QAAS+d,MAGRN,EAAQ,CACX,MAAMgC,EAAe,CACnBrd,YACAsd,KAAMhE,gBAAgBiE,oBAAoBC,YAE5CnC,EAASgC,EAAaC,KAAOrF,UAAUwF,SAASJ,GAAgB,IAAIpF,UAAUoF,GAC9EzC,EAAK8C,QAAUrC,CACjB,CACA,MAAMsC,EAAiB,CACrB9C,QACA+C,WAAY,WACZjG,OACAuD,WACAsB,mBACApB,iBACAld,SACAod,aACAa,YACA0B,iBAAkB,CAChB9B,eACAE,kBACAJ,eACAjJ,kBACAE,6BACAkJ,uBACAE,sBACAS,iBACAnB,QAASoB,EAAiBpB,EAAU,KACpCG,oBAAqBiB,EAAiBjB,EAAsB,OAG1DmC,EAAkB,CACtBjC,eACAjJ,kBACAqJ,kBACAC,sBACAC,YACAC,gBACAI,mBACAC,SACAsB,aAvDmB,MAsGrB,OA7CA1C,EAAO9D,QAAQyG,MAAK,WAClB,GAAIpD,EAAKqD,UACP,MAAM,IAAI7M,MAAM,mBAElB,MAAM8M,EAAkBC,eAAe9C,EAAQsC,GACzCS,EAAuB,IAAI5G,SAAQ,SAAUC,GACjD,IAAI4G,EAW6BC,MAV7BnD,EACFkD,EAAgB,IAAI3E,kBAAkB6E,uBAAuB,CAC3DrgB,SACAsgB,YAAarD,EAAeqD,YAC5BC,gBAAiBtD,EAAesD,gBAChCC,2BAA4BvD,EAAeuD,2BAC3CpC,eACAC,iBACCpB,GACOxD,IACqB2G,EAMQ,CACrC3gB,MACAO,SACA8c,cACAC,kBACAG,iBACAkB,eACAC,iBAPF8B,EALMrF,MAAMnY,SACD,IAAIgZ,oBAAoB8E,cAAcL,IAExC,EAAIpF,eAAe2D,iBAAiByB,EAAO3gB,KAAO,IAAIgc,qBAAqBiF,eAAeN,GAAU,IAAI1E,gBAAgBiF,iBAAiBP,IAYpJ7G,EAAQ4G,EACV,IACA,OAAO7G,QAAQsH,IAAI,CAACZ,EAAiBE,IAAuBJ,MAAK,UAAWe,EAAUV,IACpF,GAAIzD,EAAKqD,UACP,MAAM,IAAI7M,MAAM,mBAElB,MAAM4N,EAAiB,IAAIzF,iBAAiB0F,eAAepE,EAAOkE,EAAU1D,EAAOiC,MAC7E4B,EAAY,IAAIC,gBAAgBH,EAAgBpE,EAAMyD,EAAeP,EAAiBb,GAC5FrC,EAAKwE,WAAaF,EAClBF,EAAeK,KAAK,QAAS,KAC/B,GACF,IAAGC,MAAM1E,EAAK2E,YAAY7H,QACnBkD,CACT,CACA4E,eAAerB,eAAe9C,EAAQoE,GACpC,GAAIpE,EAAO4C,UACT,MAAM,IAAI7M,MAAM,wBAElB,MAAM2N,QAAiB1D,EAAO2D,eAAeU,gBAAgB,gBAAiBD,EAAQA,EAAO9H,KAAO,CAAC8H,EAAO9H,KAAK7U,QAAU,MAC3H,GAAIuY,EAAO4C,UACT,MAAM,IAAI7M,MAAM,wBAElB,OAAO2N,CACT,CACA,SAASjE,WAAW6E,GAClB,GAAIA,aAAerhB,IACjB,OAAOqhB,EAAIC,KAEb,IACE,OAAO,IAAIthB,IAAIqhB,EAAKE,OAAOC,UAAUF,IACvC,CAAE,MACA,GAAI5G,MAAMnY,UAA2B,iBAAR8e,EAC3B,OAAOA,CAEX,CACA,MAAM,IAAIvO,MAAM,qFAClB,CACA,SAAS2J,YAAY4E,GACnB,GAAI3G,MAAMnY,UAA8B,oBAAXkf,QAA0BJ,aAAeI,OACpE,MAAM,IAAI3O,MAAM,qEAElB,GAAIuO,aAAelgB,YAAckgB,EAAInf,aAAemf,EAAI7c,OAAOtC,WAC7D,OAAOmf,EAET,GAAmB,iBAARA,EACT,OAAO,EAAI3G,MAAMxW,eAAemd,GAElC,GAAmB,iBAARA,IAAqBK,MAAML,GAAKzhB,UAAW,EAAI8a,MAAM3Y,eAAesf,GAC7E,OAAO,IAAIlgB,WAAWkgB,GAExB,MAAM,IAAIvO,MAAM,6GAClB,CAxMAzW,QAAQ4d,+BAAiCA,+BAyMzC,MAAMH,uBACJ6H,SAAgB,EAChB,WAAApO,GACED,KAAK2N,YAAc,IAAIvG,MAAM3d,kBAC7BuW,KAAKwN,WAAa,KAClBxN,KAAK8L,QAAU,KACf9L,KAAKiJ,MAAQ,IAAIzC,wBAAuB,IACxCxG,KAAKqM,WAAY,EACjBrM,KAAKsO,WAAa,KAClBtO,KAAKuO,WAAa,IACpB,CACA,WAAI5I,GACF,OAAO3F,KAAK2N,YAAYhI,OAC1B,CACA,aAAM6I,GACJxO,KAAKqM,WAAY,EACjB,IACMrM,KAAK8L,SAASJ,OAChB1L,KAAK8L,QAAQ2C,iBAAkB,SAE3BzO,KAAKwN,YAAYgB,UACzB,CAAE,MAAOpd,GAIP,MAHI4O,KAAK8L,SAASJ,aACT1L,KAAK8L,QAAQ2C,gBAEhBrd,CACR,CACA4O,KAAKwN,WAAa,KACdxN,KAAK8L,UACP9L,KAAK8L,QAAQ0C,UACbxO,KAAK8L,QAAU,KAEnB,EAEF/iB,QAAQyd,uBAAyBA,uBACjC,MAAMC,sBACJ,WAAAxG,CAAY3T,EAAQsgB,EAAaC,GAAkB,EAAOC,EAA6B,MACrF9M,KAAK1T,OAASA,EACd0T,KAAK4M,YAAcA,EACnB5M,KAAK6M,gBAAkBA,EACvB7M,KAAK8M,2BAA6BA,EAClC9M,KAAK0O,gBAAkB,GACvB1O,KAAK2O,mBAAqB,GAC1B3O,KAAK4O,0BAA4B,GACjC5O,KAAK6O,0BAA4B,GACjC7O,KAAK8O,iBAAmB,IAAI1H,MAAM3d,iBACpC,CACA,gBAAAslB,CAAiBC,GACfhP,KAAK0O,gBAAgBhd,KAAKsd,EAC5B,CACA,mBAAAC,CAAoBD,GAClBhP,KAAK2O,mBAAmBjd,KAAKsd,EAC/B,CACA,0BAAAE,CAA2BF,GACzBhP,KAAK4O,0BAA0Bld,KAAKsd,EACtC,CACA,0BAAAG,CAA2BH,GACzBhP,KAAK6O,0BAA0Bnd,KAAKsd,EACtC,CACA,WAAAI,CAAYC,EAAO7O,GACjB,IAAK,MAAMwO,KAAYhP,KAAK0O,gBAC1BM,EAASK,EAAO7O,EAEpB,CACA,cAAA8O,CAAeC,EAAQC,GACrBxP,KAAK8O,iBAAiBnJ,QAAQyG,MAAK,KACjC,IAAK,MAAM4C,KAAYhP,KAAK2O,mBAC1BK,EAASO,EAAQC,EACnB,GAEJ,CACA,qBAAAC,CAAsBjP,GACpBR,KAAK8O,iBAAiBnJ,QAAQyG,MAAK,KACjC,IAAK,MAAM4C,KAAYhP,KAAK4O,0BAC1BI,EAASxO,EACX,GAEJ,CACA,qBAAAkP,GACE1P,KAAK8O,iBAAiBnJ,QAAQyG,MAAK,KACjC,IAAK,MAAM4C,KAAYhP,KAAK6O,0BAC1BG,GACF,GAEJ,CACA,cAAAW,GACE3P,KAAK8O,iBAAiBjJ,SACxB,CACA,gBAAA+J,CAAiBP,EAAOQ,IACtB,EAAIzI,MAAMxb,aAAa,yDACzB,CACA,KAAAkkB,GAAS,EAEX/mB,QAAQ0d,sBAAwBA,sBAChC,MAAMF,iBACJ,WAAAtG,CAAY8P,EAASzC,GACnBtN,KAAKgQ,SAAWD,EAChB/P,KAAKwN,WAAaF,EAClBtkB,OAAOC,eAAe+W,KAAM,gBAAiB,CAC3C9W,MAAO,MACL,EAAIoe,eAAe2I,YAAY,yFACxBjQ,KAAKkQ,eAAe9D,MAAK+D,IAC9B,IAAKA,EACH,OAAOA,EAET,MAAMC,EAAQ,GACd,IAAK,MAAMrQ,KAAQoQ,EACjBC,EAAM1e,QAAQye,EAAGpQ,IAEnB,OAAOqQ,CAAK,MAIpB,CACA,qBAAIC,GACF,OAAOrQ,KAAKwN,WAAW6C,iBACzB,CACA,iBAAIjF,GACF,OAAOpL,KAAKwN,WAAWpC,aACzB,CACA,YAAIkF,GACF,OAAOtQ,KAAKgQ,SAASM,QACvB,CACA,gBAAIC,GACF,OAAOvQ,KAAKgQ,SAASO,YACvB,CACA,aAAIC,GACF,OAAO,EAAIpJ,MAAM5W,QAAQwP,KAAM,cAAeA,KAAKwN,WAAWiD,YAChE,CACA,cAAIC,GACF,OAAO1Q,KAAKwN,WAAWiD,WACzB,CACA,OAAAE,CAAQC,GACN,OAAO5Q,KAAKwN,WAAWmD,QAAQC,EACjC,CACA,YAAAC,CAAaC,GACX,OAAO9Q,KAAKwN,WAAWqD,aAAaC,EACtC,CACA,eAAAC,GACE,OAAO/Q,KAAKwN,WAAWuD,iBACzB,CACA,cAAAC,CAAeC,GACb,OAAOjR,KAAKwN,WAAWwD,eAAeC,EACxC,CACA,aAAAC,GACE,OAAOlR,KAAKwN,WAAW0D,eACzB,CACA,aAAAC,GACE,OAAOnR,KAAKwN,WAAW2D,eACzB,CACA,WAAAC,GACE,OAAOpR,KAAKwN,WAAW4D,aACzB,CACA,oBAAAC,GACE,OAAOrR,KAAKwN,WAAW6D,sBACzB,CACA,aAAAC,GACE,OAAOtR,KAAKwN,WAAW8D,eACzB,CACA,cAAAC,GACE,OAAOvR,KAAKwN,WAAW+D,gBACzB,CACA,YAAArB,GACE,OAAOlQ,KAAKwN,WAAWgE,iBACzB,CACA,UAAAC,GACE,OAAOzR,KAAKwN,WAAWiE,YACzB,CACA,wBAAAC,GACE,OAAO1R,KAAKwN,WAAWkE,0BACzB,CACA,cAAAC,GACE,OAAO3R,KAAKwN,WAAWmE,gBACzB,CACA,WAAAC,GACE,OAAO5R,KAAKwN,WAAWoE,aACzB,CACA,WAAAC,GACE,OAAO7R,KAAKwN,WAAWqE,aACzB,CACA,OAAAC,GACE,OAAO9R,KAAKwN,WAAWsE,SACzB,CACA,YAAAC,GACE,OAAO/R,KAAKwN,WAAWuE,cACzB,CACA,eAAAC,GACE,OAAOhS,KAAKwN,WAAWyE,uBAAuBtM,OAChD,CACA,OAAAuM,CAAQC,GAAkB,GACxB,OAAOnS,KAAKwN,WAAW4E,aAAaD,GAAmBnS,KAAKwQ,UAC9D,CACA,OAAAhC,GACE,OAAOxO,KAAKqS,YAAY7D,SAC1B,CACA,iBAAI8D,GACF,OAAOtS,KAAKwN,WAAW8E,aACzB,CACA,eAAID,GACF,OAAOrS,KAAKwN,WAAW6E,WACzB,CACA,eAAAE,GACE,OAAOvS,KAAKwN,WAAW+E,iBACzB,CACA,YAAAC,GACE,OAAOxS,KAAKwN,WAAWgF,cACzB,CACA,sBAAAC,GACE,OAAOzS,KAAKwN,WAAWiF,wBACzB,EAEF1pB,QAAQwd,iBAAmBA,iBAC3B,MAAMD,aACJ,GAAyB,KACzB,IAAkB,EAClB,WAAArG,CAAYyS,EAAWC,EAAUrF,EAAWzC,GAAS,GACnD7K,KAAK4S,WAAaF,EAClB1S,KAAK6S,UAAYF,EACjB3S,KAAKwN,WAAaF,EAClBtN,KAAK8S,OAASjI,EAAS,IAAIvD,eAAeyL,UAAc,KACxD/S,KAAKgT,QAAUnI,EACf7K,KAAKiT,WAAa3F,EAAU2F,WAC5BjT,KAAKkT,KAAO,IAAIC,WAChBnT,KAAKoT,0BAA2B,EAChCpT,KAAKqT,cAAgB,IAAI/jB,IACzB0Q,KAAKqM,WAAY,CACnB,CACA,cAAIuE,GACF,OAAO5Q,KAAK4S,WAAa,CAC3B,CACA,UAAIU,GACF,OAAOtT,KAAK6S,UAAUS,MACxB,CACA,OAAIxC,GACF,OAAO9Q,KAAK6S,UAAU/B,GACxB,CACA,YAAIyC,GACF,OAAOvT,KAAK6S,UAAUU,QACxB,CACA,QAAIC,GACF,OAAOxT,KAAK6S,UAAUW,IACxB,CACA,WAAAC,EAAY,MACVC,EAAK,SACLC,EAAW3T,KAAKsT,OAAM,QACtBM,EAAU,EAAC,QACXC,EAAU,EAAC,SACXC,GAAW,GACT,CAAC,GACH,OAAO,IAAIxM,eAAeyM,aAAa,CACrCC,QAAShU,KAAKwT,KACdE,QACAC,WACAC,UACAC,UACAC,YAEJ,CACA,cAAAG,EAAe,OACbC,EAAS,WACP,CAAC,GACH,MAAMC,EAAanU,KAAKwN,WAAW4G,mBAAmBF,GACtD,OAAOlU,KAAKwN,WAAWyG,eAAejU,KAAK4S,WAAYuB,EAAWE,gBACpE,CACA,YAAAnE,GACE,OAAOlQ,KAAKwN,WAAW8G,iBAAiBtU,KAAK4S,WAC/C,CACA,iBAAIxH,GACF,OAAOpL,KAAKwN,WAAWpC,aACzB,CACA,aAAIoF,GACF,OAAO,EAAIpJ,MAAM5W,QAAQwP,KAAM,cAAeA,KAAKwN,WAAWiD,YAChE,CACA,YAAM8D,GACJ,OAAOvU,KAAKwN,WAAWiD,aAAa+D,SAASxU,KAAK4S,aAAe,IACnE,CACA,MAAA6B,EAAO,cACLC,EAAa,SACbC,EAAQ,OACRT,EAAS,UAAS,eAClBU,EAAiBxN,MAAMpc,eAAe6H,OAAM,UAC5C4H,EAAY,KAAI,WAChBoa,EAAa,KAAI,6BACjBC,EAA+B,KAAI,oBACnCC,EAAsB,KAAI,WAC1BC,EAAa,KAAI,uBACjBC,EAAyB,OAEzBjV,KAAK8S,QAAQoC,KAAK,WAClB,MAAMf,EAAanU,KAAKwN,WAAW4G,mBAAmBF,EAAQU,EAAgBK,GAC9EjV,MAAK,GAAkB,EACvBA,MAAK,IACA8U,IACHA,EAA+B9U,KAAKwN,WAAWkE,4BAEjD,IAAIyD,EAAcnV,KAAKqT,cAAczjB,IAAIukB,EAAWiB,UAC/CD,IACHA,EAAcnsB,OAAOgH,OAAO,MAC5BgQ,KAAKqT,cAAcgC,IAAIlB,EAAWiB,SAAUD,IAE1CA,EAAYG,4BACdC,aAAaJ,EAAYG,2BACzBH,EAAYG,0BAA4B,MAE1C,MAAME,KAAiBrB,EAAWE,gBAAkBjN,MAAM5d,oBAAoB8I,OACzE6iB,EAAYM,yBACfN,EAAYM,uBAAyB,IAAIrO,MAAM3d,kBAC/C0rB,EAAYO,aAAe,CACzBC,QAAS,GACTC,UAAW,GACXC,WAAW,EACXC,eAAgB,MAElB9V,KAAK8S,QAAQoC,KAAK,gBAClBlV,KAAK+V,kBAAkB5B,IAEzB,MAAM6B,EAAWC,IACfd,EAAYe,YAAYC,OAAOC,IAC3BpW,KAAKoT,0BAA4BoC,KACnCxV,MAAK,GAAkB,GAEzBA,MAAK,GAAawV,GACdS,GACFG,EAAmBC,WAAWvQ,OAAOmQ,GACrCjW,KAAKsW,mBAAmB,CACtBnB,cACAnP,OAAQiQ,aAAiBzW,MAAQyW,EAAQ,IAAIzW,MAAMyW,MAGrDG,EAAmBC,WAAWxQ,UAEhC7F,KAAK8S,QAAQyD,QAAQ,aACrBvW,KAAK8S,QAAQyD,QAAQ,UAAU,EAE3BH,EAAqB,IAAII,mBAAmB,CAChDC,SAAUT,EACVtJ,OAAQ,CACNgI,gBACAC,WACAla,YACAoa,cAEF3B,KAAMlT,KAAKkT,KACXD,WAAYjT,KAAKiT,WACjB8B,sBACAW,aAAcP,EAAYO,aAC1BhD,UAAW1S,KAAK4S,WAChBzH,cAAenL,KAAKwN,WAAWrC,cAC/BC,cAAepL,KAAKwN,WAAWpC,cAC/BsL,0BAA2BlB,EAC3B3K,OAAQ7K,KAAKgT,QACbgC,gBAEDG,EAAYe,cAAgB,IAAIS,KAAOC,IAAIR,GAC5C,MAAMS,EAAaT,EAAmBpN,KAatC,OAZApD,QAAQsH,IAAI,CAACiI,EAAYM,uBAAuB9P,QAASmP,IAA+B1I,MAAK,EAAE0K,EAAcC,MACvG/W,KAAKqM,UACP2J,KAGFhW,KAAK8S,QAAQoC,KAAK,aAClBkB,EAAmBY,mBAAmB,CACpCF,eACAC,0BAEFX,EAAmBa,sBAAqB,IACvCvJ,MAAMsI,GACFa,CACT,CACA,eAAAK,EAAgB,OACdhD,EAAS,UAAS,eAClBU,EAAiBxN,MAAMpc,eAAe6H,OAAM,uBAC5CoiB,EAAyB,MACvB,CAAC,GAOH,MAAMd,EAAanU,KAAKwN,WAAW4G,mBAAmBF,EAAQU,EAAgBK,GAAwB,GACtG,IAKIkC,EALAhC,EAAcnV,KAAKqT,cAAczjB,IAAIukB,EAAWiB,UAoBpD,OAnBKD,IACHA,EAAcnsB,OAAOgH,OAAO,MAC5BgQ,KAAKqT,cAAcgC,IAAIlB,EAAWiB,SAAUD,IAGzCA,EAAYiC,uBACfD,EAAanuB,OAAOgH,OAAO,MAC3BmnB,EAAWF,oBAfb,WACM9B,EAAYO,aAAaG,YAC3BV,EAAYiC,qBAAqBvR,QAAQsP,EAAYO,cACrDP,EAAYe,YAAYC,OAAOgB,GAEnC,EAWEhC,EAAYiC,qBAAuB,IAAIhQ,MAAM3d,mBAC5C0rB,EAAYe,cAAgB,IAAIS,KAAOC,IAAIO,GAC5ChC,EAAYO,aAAe,CACzBC,QAAS,GACTC,UAAW,GACXC,WAAW,EACXC,eAAgB,MAElB9V,KAAK8S,QAAQoC,KAAK,gBAClBlV,KAAK+V,kBAAkB5B,IAElBgB,EAAYiC,qBAAqBzR,OAC1C,CACA,iBAAA0R,EAAkB,qBAChBC,GAAuB,EAAK,qBAC5BC,GAAuB,GACrB,CAAC,GAEH,OAAOvX,KAAKwN,WAAWJ,eAAeoK,eAAe,iBAAkB,CACrE9E,UAAW1S,KAAK4S,WAChB0E,sBAA+C,IAAzBA,EACtBC,sBAA+C,IAAzBA,GACrB,CACDE,cAN8B,IAO9BC,KAAKC,GACIA,EAAYC,MAAMtrB,QAG/B,CACA,cAAAurB,CAAenL,EAAS,CAAC,GACvB,GAAI1M,KAAKwN,WAAWiD,YAClB,OAAOzQ,KAAKuU,SAASnI,MAAK0L,GACjB5P,UAAU6P,QAAQJ,YAAYG,KAGzC,MAAME,EAAiBhY,KAAKqX,kBAAkB3K,GAC9C,OAAO,IAAI9G,SAAQ,SAAUC,EAASC,GAepC,MAAMmS,EAASD,EAAeE,YACxBP,EAAc,CAClBC,MAAO,GACPO,OAAQnvB,OAAOgH,OAAO,QAjBxB,SAASooB,IACPH,EAAOI,OAAOjM,MAAK,UAAU,MAC3BljB,EAAK,KACLovB,IAEIA,EACFzS,EAAQ8R,IAGV3uB,OAAOuvB,OAAOZ,EAAYQ,OAAQjvB,EAAMivB,QACxCR,EAAYC,MAAMlmB,QAAQxI,EAAM0uB,OAChCQ,IACF,GAAGtS,EACL,CAMAsS,EACF,GACF,CACA,aAAAI,GACE,OAAOxY,KAAKwN,WAAWgL,cAAcxY,KAAK4S,WAC5C,CACA,QAAA6F,GACEzY,KAAKqM,WAAY,EACjB,MAAMqM,EAAS,GACf,IAAK,MAAMvD,KAAenV,KAAKqT,cAAcsF,SAM3C,GALA3Y,KAAKsW,mBAAmB,CACtBnB,cACAnP,OAAQ,IAAIxG,MAAM,uBAClBoZ,OAAO,KAELzD,EAAYiC,qBAGhB,IAAK,MAAMhB,KAAsBjB,EAAYe,YAC3CwC,EAAOhnB,KAAK0kB,EAAmByC,WAC/BzC,EAAmB0C,SAMvB,OAHA9Y,KAAKkT,KAAK6F,QACV/Y,MAAK,GAAkB,EACvBA,MAAK,IACE4F,QAAQsH,IAAIwL,EACrB,CACA,OAAAxG,CAAQ8G,GAAa,GACnBhZ,MAAK,GAAkB,EACvB,MAAMiZ,EAAUjZ,MAAK,GAAY,GAIjC,OAHIgZ,GAAcC,IAChBjZ,KAAK8S,SAAW,IAAIxL,eAAeyL,WAE9BkG,CACT,CACA,GAAYC,GAAU,GAEpB,GADAlZ,MAAK,KACAA,MAAK,GAAmBA,KAAKqM,UAChC,OAAO,EAET,GAAI6M,EAKF,OAJAlZ,MAAK,EAAyBmZ,YAAW,KACvCnZ,MAAK,EAAyB,KAC9BA,MAAK,GAAY,EAAM,GACtBqI,0BACI,EAET,IAAK,MAAM,YACT6N,EAAW,aACXR,KACG1V,KAAKqT,cAAcsF,SACtB,GAAIzC,EAAYwB,KAAO,IAAMhC,EAAaG,UACxC,OAAO,EAMX,OAHA7V,KAAKqT,cAAc0F,QACnB/Y,KAAKkT,KAAK6F,QACV/Y,MAAK,GAAkB,GAChB,CACT,CACA,KACMA,MAAK,IACPuV,aAAavV,MAAK,GAClBA,MAAK,EAAyB,KAElC,CACA,gBAAAoZ,CAAiBtC,EAAc1B,GAC7B,MAAMD,EAAcnV,KAAKqT,cAAczjB,IAAIwlB,GACtCD,IAGLnV,KAAK8S,QAAQyD,QAAQ,gBACrBpB,EAAYM,wBAAwB5P,QAAQiR,GAC9C,CACA,gBAAAuC,CAAiBC,EAAmBnE,GAClC,IAAK,IAAIpnB,EAAI,EAAGiB,EAAKsqB,EAAkBhtB,OAAQyB,EAAIiB,EAAIjB,IACrDonB,EAAYO,aAAaC,QAAQjkB,KAAK4nB,EAAkB3D,QAAQ5nB,IAChEonB,EAAYO,aAAaE,UAAUlkB,KAAK4nB,EAAkB1D,UAAU7nB,IAEtEonB,EAAYO,aAAaG,UAAYyD,EAAkBzD,UACvDV,EAAYO,aAAaI,eAAiBwD,EAAkBxD,eAC5D,IAAK,MAAMM,KAAsBjB,EAAYe,YAC3CE,EAAmBa,sBAEjBqC,EAAkBzD,WACpB7V,MAAK,GAAY,EAErB,CACA,iBAAA+V,EAAkB,gBAChB1B,EAAe,SACfe,EAAQ,8BACRmE,IAEA,MAAM,IACJzpB,EAAG,UACH0pB,GACED,EAOEtB,EANiBjY,KAAKwN,WAAWJ,eAAeoK,eAAe,kBAAmB,CACtF9E,UAAW1S,KAAK4S,WAChBsB,OAAQG,EACRe,WACA/E,kBAAmBvgB,GAClB0pB,GAC2BtB,YACxB/C,EAAcnV,KAAKqT,cAAczjB,IAAIwlB,GAC3CD,EAAYsE,aAAexB,EAC3B,MAAMG,EAAO,KACXH,EAAOI,OAAOjM,MAAK,EACjBljB,QACAovB,WAEIA,EACFnD,EAAYsE,aAAe,KAGzBzZ,KAAKwN,WAAWnB,YAGpBrM,KAAKqZ,iBAAiBnwB,EAAOisB,GAC7BiD,IAAM,IACLpS,IAED,GADAmP,EAAYsE,aAAe,MACvBzZ,KAAKwN,WAAWnB,UAApB,CAGA,GAAI8I,EAAYO,aAAc,CAC5BP,EAAYO,aAAaG,WAAY,EACrC,IAAK,MAAMO,KAAsBjB,EAAYe,YAC3CE,EAAmBa,sBAErBjX,MAAK,GAAY,EACnB,CACA,GAAImV,EAAYM,uBACdN,EAAYM,uBAAuB3P,OAAOE,OACrC,KAAImP,EAAYiC,qBAGrB,MAAMpR,EAFNmP,EAAYiC,qBAAqBtR,OAAOE,EAG1C,CAdA,CAcA,GACA,EAEJoS,GACF,CACA,kBAAA9B,EAAmB,YACjBnB,EAAW,OACXnP,EAAM,MACN4S,GAAQ,IAER,GAAKzD,EAAYsE,aAAjB,CAOA,GAJItE,EAAYG,4BACdC,aAAaJ,EAAYG,2BACzBH,EAAYG,0BAA4B,OAErCsD,EAAO,CACV,GAAIzD,EAAYe,YAAYwB,KAAO,EACjC,OAEF,GAAI1R,aAAkBsB,eAAeoS,4BAA6B,CAChE,IAAIC,EAAQvR,4BAYZ,OAXIpC,EAAO4T,WAAa,GAAK5T,EAAO4T,WAAa,MAC/CD,GAAS3T,EAAO4T,iBAElBzE,EAAYG,0BAA4B6D,YAAW,KACjDhE,EAAYG,0BAA4B,KACxCtV,KAAKsW,mBAAmB,CACtBnB,cACAnP,SACA4S,OAAO,GACP,GACDe,GAEL,CACF,CAGA,GAFAxE,EAAYsE,aAAaX,OAAO,IAAI1R,MAAM5b,eAAewa,EAAOlG,UAAU4N,OAAM,SAChFyH,EAAYsE,aAAe,MACvBzZ,KAAKwN,WAAWnB,UAApB,CAGA,IAAK,MAAOwN,EAAaC,KAAmB9Z,KAAKqT,cAC/C,GAAIyG,IAAmB3E,EAAa,CAClCnV,KAAKqT,cAAc8C,OAAO0D,GAC1B,KACF,CAEF7Z,KAAKkS,SAPL,CA7BA,CAqCF,CACA,SAAI6H,GACF,OAAO/Z,KAAK8S,MACd,EAEF/pB,QAAQud,aAAeA,aACvB,MAAMI,aACJ,GAAa,IAAIiQ,IACjB,GAAY/Q,QAAQC,UACpB,WAAAmU,CAAYjqB,EAAKkqB,GACf,MAAMC,EAAQ,CACZnU,KAAMoU,gBAAgBpqB,EAAKkqB,EAAW,CACpCA,YACE,OAENja,MAAK,EAAUoM,MAAK,KAClB,IAAK,MAAM4C,KAAYhP,MAAK,EAC1BgP,EAASoL,KAAKpa,KAAMka,EACtB,GAEJ,CACA,gBAAAG,CAAiBta,EAAMiP,GACrBhP,MAAK,EAAW4W,IAAI5H,EACtB,CACA,mBAAAsL,CAAoBva,EAAMiP,GACxBhP,MAAK,EAAWmW,OAAOnH,EACzB,CACA,SAAAuL,GACEva,MAAK,EAAW+Y,OAClB,EAEFhwB,QAAQ2d,aAAeA,aACvB,MAAMN,cAAgB,CACpBoU,kBAAkB,EAClBC,kBAAmB,KACnBC,aAAc,GAId,GAFF3xB,QAAQqd,cAAgBA,cAElBgB,MAAMnY,SACRmX,cAAcoU,kBAAmB,EACjCpU,cAAcqU,kBAAoB,uBAC7B,GAAwB,iBAAbhQ,SAAuB,CACvC,MAAMkQ,EAAgBlQ,UAAUmQ,eAAe9R,IAC3C6R,IACFvU,cAAcqU,kBAAoBE,EAAcE,QAAQ,4BAA6B,eAEzF,CACAzU,cAAc0U,aAAe,SAAU9uB,EAAS+uB,GAC9C,IAAIC,EACJ,IAEE,GADAA,EAAO,IAAItuB,IAAIV,IACVgvB,EAAKC,QAA0B,SAAhBD,EAAKC,OACvB,OAAO,CAEX,CAAE,MACA,OAAO,CACT,CACA,MAAMC,EAAQ,IAAIxuB,IAAIquB,EAAUC,GAChC,OAAOA,EAAKC,SAAWC,EAAMD,MAC/B,EACA7U,cAAc+U,iBAAmB,SAAUpvB,GACzC,MAAMqvB,EAAU,kBAAkBrvB,OAClC,OAAOW,IAAI2uB,gBAAgB,IAAIC,KAAK,CAACF,IACvC,EAEF,MAAM/U,UACJgI,SACA,WAAApO,EAAY,KACVF,EAAO,KAAI,KACX2L,EAAO,KAAI,UACXtd,GAAY,EAAIgZ,MAAMjZ,sBACpB,CAAC,GAQH,GAPA6R,KAAKD,KAAOA,EACZC,KAAKqM,WAAY,EACjBrM,KAAK5R,UAAYA,EACjB4R,KAAK8O,iBAAmB,IAAI1H,MAAM3d,kBAClCuW,KAAKub,MAAQ,KACbvb,KAAKwb,WAAa,KAClBxb,KAAKyb,gBAAkB,KACnB/P,EAAM,CACR,GAAIrF,WAAU,GAAcqV,IAAIhQ,GAC9B,MAAM,IAAIlM,MAAM,gDAIlB,OAFC6G,WAAU,IAAiB,IAAIsV,SAAWtG,IAAI3J,EAAM1L,WACrDA,KAAK4b,oBAAoBlQ,EAE3B,CACA1L,KAAK6b,aACP,CACA,WAAIlW,GACF,OAAO3F,KAAK8O,iBAAiBnJ,OAC/B,CACA,QAAI+F,GACF,OAAO1L,KAAKub,KACd,CACA,kBAAInO,GACF,OAAOpN,KAAKyb,eACd,CACA,mBAAAG,CAAoBlQ,GAClB1L,KAAKub,MAAQ7P,EACb1L,KAAKyb,gBAAkB,IAAI9T,iBAAiB0F,eAAe,OAAQ,SAAU3B,GAC7E1L,KAAKyb,gBAAgBK,GAAG,SAAS,WAAa,IAC9C9b,KAAK8O,iBAAiBjJ,UACtB7F,KAAKyb,gBAAgBhO,KAAK,YAAa,CACrCrf,UAAW4R,KAAK5R,WAEpB,CACA,WAAAytB,GACE,IAAKzV,cAAcoU,mBAAqBnU,UAAU0V,gCAAiC,CACjF,IAAI,UACFC,GACE3V,UACJ,IACOD,cAAc0U,aAAa7M,OAAOC,SAASF,KAAMgO,KACpDA,EAAY5V,cAAc+U,iBAAiB,IAAIzuB,IAAIsvB,EAAW/N,OAAOC,UAAUF,OAEjF,MAAMvE,EAAS,IAAIwS,OAAOD,GACpB5O,EAAiB,IAAIzF,iBAAiB0F,eAAe,OAAQ,SAAU5D,GACvEyS,EAAiB,KACrBzS,EAAO6Q,oBAAoB,QAAS6B,GACpC/O,EAAeoB,UACf/E,EAAO8Q,YACHva,KAAKqM,UACPrM,KAAK8O,iBAAiBhJ,OAAO,IAAItG,MAAM,yBAEvCQ,KAAKoc,kBACP,EAEID,EAAgB,KACfnc,KAAKwb,YACRU,GACF,EAEFzS,EAAO4Q,iBAAiB,QAAS8B,GACjC/O,EAAe0O,GAAG,QAAQ/V,IACxB0D,EAAO6Q,oBAAoB,QAAS6B,GAChCnc,KAAKqM,UACP6P,IAGEnW,GACF/F,KAAKyb,gBAAkBrO,EACvBpN,KAAKub,MAAQ9R,EACbzJ,KAAKwb,WAAa/R,EAClBzJ,KAAK8O,iBAAiBjJ,UACtBuH,EAAeK,KAAK,YAAa,CAC/Brf,UAAW4R,KAAK5R,cAGlB4R,KAAKoc,mBACLhP,EAAeoB,UACf/E,EAAO8Q,YACT,IAEFnN,EAAe0O,GAAG,SAAS/V,IAEzB,GADA0D,EAAO6Q,oBAAoB,QAAS6B,GAChCnc,KAAKqM,UACP6P,SAGF,IACEG,GACF,CAAE,MACArc,KAAKoc,kBACP,KAEF,MAAMC,EAAW,KACf,MAAMC,EAAU,IAAIzuB,WACpBuf,EAAeK,KAAK,OAAQ6O,EAAS,CAACA,EAAQprB,QAAQ,EAGxD,YADAmrB,GAEF,CAAE,OACA,EAAIjV,MAAM/Y,MAAM,gCAClB,CACF,CACA2R,KAAKoc,kBACP,CACA,gBAAAA,GACOhW,cAAcoU,oBACjB,EAAIpT,MAAM/V,MAAM,2BAChB+U,cAAcoU,kBAAmB,GAEnCnU,UAAUkW,uBAAuBnQ,MAAKoQ,IACpC,GAAIxc,KAAKqM,UAEP,YADArM,KAAK8O,iBAAiBhJ,OAAO,IAAItG,MAAM,yBAGzC,MAAMkM,EAAO,IAAIhF,aACjB1G,KAAKub,MAAQ7P,EACb,MAAMuF,EAAK,OAAO7K,cAAcsU,eAC1B+B,EAAgB,IAAI9U,iBAAiB0F,eAAe4D,EAAK,UAAWA,EAAIvF,GAC9E8Q,EAAqBE,MAAMD,EAAe/Q,GAC1C,MAAM0B,EAAiB,IAAIzF,iBAAiB0F,eAAe4D,EAAIA,EAAK,UAAWvF,GAC/E1L,KAAKyb,gBAAkBrO,EACvBpN,KAAK8O,iBAAiBjJ,UACtBuH,EAAeK,KAAK,YAAa,CAC/Brf,UAAW4R,KAAK5R,WAChB,IACDsf,OAAM1H,IACPhG,KAAK8O,iBAAiBhJ,OAAO,IAAItG,MAAM,mCAAmCwG,EAAOlG,aAAa,GAElG,CACA,OAAA0O,GACExO,KAAKqM,WAAY,EACbrM,KAAKwb,aACPxb,KAAKwb,WAAWjB,YAChBva,KAAKwb,WAAa,MAEpBnV,WAAU,GAAc8P,OAAOnW,KAAKub,OACpCvb,KAAKub,MAAQ,KACTvb,KAAKyb,kBACPzb,KAAKyb,gBAAgBjN,UACrBxO,KAAKyb,gBAAkB,KAE3B,CACA,eAAO5P,CAASa,GACd,IAAKA,GAAQhB,KACX,MAAM,IAAIlM,MAAM,kDAElB,MAAMmd,EAAa3c,MAAK,GAAcpQ,IAAI8c,EAAOhB,MACjD,GAAIiR,EAAY,CACd,GAAIA,EAAWlO,gBACb,MAAM,IAAIjP,MAAM,2HAElB,OAAOmd,CACT,CACA,OAAO,IAAItW,UAAUqG,EACvB,CACA,oBAAWsP,GACT,GAAItU,gBAAgBiE,oBAAoBqQ,UACtC,OAAOtU,gBAAgBiE,oBAAoBqQ,UAE7C,GAAwC,OAApC5V,cAAcqU,kBAIhB,OAHKrT,MAAMnY,WACT,EAAIqY,eAAe2I,YAAY,iDAE1B7J,cAAcqU,kBAEvB,MAAM,IAAIjb,MAAM,gDAClB,CACA,0CAAWuc,GACT,IACE,OAAOnzB,WAAWg0B,aAAaJ,sBAAwB,IACzD,CAAE,MACA,OAAO,IACT,CACF,CACA,iCAAWD,GACT,MAAMM,OAASjP,UACb,MAAMkP,yBAA2B9c,KAAK+b,gCACtC,GAAIe,yBACF,OAAOA,yBAET,GAAI1V,MAAMnY,SAA2C,CACnD,MAAMwa,OAASsT,KAAK,UAALA,CAAgB/c,KAAKgc,WACpC,OAAOvS,OAAO+S,oBAChB,CAEA,aADM,EAAIlV,eAAe0V,YAAYhd,KAAKgc,WACnC/N,OAAO2O,YAAYJ,oBAAoB,EAEhD,OAAO,EAAIpV,MAAM5W,QAAQwP,KAAM,yBAA0B6c,SAC3D,EAEF9zB,QAAQsd,UAAYA,UACpB,MAAMkH,gBACJ,GAAkB,IAAIje,IACtB,GAAa,IAAIA,IACjB,GAAgB,IAAIA,IACpB,GAAsB,KACtB,WAAA2Q,CAAYmN,EAAgBiF,EAAa5F,EAAeC,EAAQ/jB,GAC9DqX,KAAKoN,eAAiBA,EACtBpN,KAAKqS,YAAcA,EACnBrS,KAAKiT,WAAa,IAAIE,WACtBnT,KAAKid,WAAa,IAAI1V,aAAa2V,WAAW,CAC5C1S,cAAekC,EAAOlC,cACtB2B,aAAcO,EAAOP,eAEvBnM,KAAKmd,QAAUzQ,EACf1M,KAAKmL,cAAgBxiB,EAAQwiB,cAC7BnL,KAAKoL,cAAgBziB,EAAQyiB,cAC7BpL,KAAKsL,kBAAoB3iB,EAAQ2iB,kBACjCtL,KAAKwL,wBAA0B7iB,EAAQ6iB,wBACvCxL,KAAKqM,WAAY,EACjBrM,KAAKod,kBAAoB,KACzBpd,KAAKqd,eAAiB5Q,EACtBzM,KAAKsd,YAAc,KACnBtd,KAAKud,cAAgB,KACrBvd,KAAKiS,uBAAyB,IAAI7K,MAAM3d,kBACxCuW,KAAKwd,qBACP,CACA,GAAmBzd,EAAMgG,EAAO,MAC9B,MAAM0X,EAAgBzd,MAAK,EAAgBpQ,IAAImQ,GAC/C,GAAI0d,EACF,OAAOA,EAET,MAAM9X,EAAU3F,KAAKoN,eAAeU,gBAAgB/N,EAAMgG,GAE1D,OADA/F,MAAK,EAAgBqV,IAAItV,EAAM4F,GACxBA,CACT,CACA,qBAAI0K,GACF,OAAO,EAAIjJ,MAAM5W,QAAQwP,KAAM,oBAAqB,IAAIqH,oBAAoBqW,kBAC9E,CACA,kBAAAtJ,CAAmBF,EAAQU,EAAiBxN,MAAMpc,eAAe6H,OAAQoiB,EAAyB,KAAM0I,GAAW,GACjH,IAAItJ,EAAkBjN,MAAM5d,oBAAoB6I,QAC5CknB,EAAgClS,oBAAoBuW,kBACxD,OAAQ1J,GACN,IAAK,MACHG,EAAkBjN,MAAM5d,oBAAoB4I,IAC5C,MACF,IAAK,UACH,MACF,IAAK,QACHiiB,EAAkBjN,MAAM5d,oBAAoB8I,MAC5C,MACF,SACE,EAAI8U,MAAM/V,MAAM,wCAAwC6iB,KAE5D,OAAQU,GACN,KAAKxN,MAAMpc,eAAe4H,QACxByhB,GAAmBjN,MAAM5d,oBAAoBkJ,oBAC7C,MACF,KAAK0U,MAAMpc,eAAe6H,OACxB,MACF,KAAKuU,MAAMpc,eAAe8H,aACxBuhB,GAAmBjN,MAAM5d,oBAAoBgJ,kBAC7C,MACF,KAAK4U,MAAMpc,eAAe+H,eACxBshB,GAAmBjN,MAAM5d,oBAAoBiJ,oBAE7C8mB,GAD0BlF,EAAkBjN,MAAM5d,oBAAoB8I,OAAS2iB,aAAkC5N,oBAAoBwW,uBAAyB5I,EAAyBjV,KAAKqQ,mBAC1IyN,aAClD,MACF,SACE,EAAI1W,MAAM/V,MAAM,gDAAgDujB,KAKpE,OAHI+I,IACFtJ,GAAmBjN,MAAM5d,oBAAoBmJ,QAExC,CACL0hB,kBACAe,SAAU,GAAGf,KAAmBkF,EAA8BwE,OAC9DxE,gCAEJ,CACA,OAAA/K,GACE,GAAIxO,KAAKod,kBACP,OAAOpd,KAAKod,kBAAkBzX,QAEhC3F,KAAKqM,WAAY,EACjBrM,KAAKod,kBAAoB,IAAIhW,MAAM3d,kBACnCuW,MAAK,GAAqB8F,OAAO,IAAItG,MAAM,oDAC3C,MAAMkZ,EAAS,GACf,IAAK,MAAMsF,KAAQhe,MAAK,EAAW2Y,SACjCD,EAAOhnB,KAAKssB,EAAKvF,YAEnBzY,MAAK,EAAW+Y,QAChB/Y,MAAK,EAAc+Y,QACf/Y,KAAKie,eAAe,sBACtBje,KAAKqQ,kBAAkB6N,gBAEzB,MAAMC,EAAane,KAAKoN,eAAeU,gBAAgB,YAAa,MAcpE,OAbA4K,EAAOhnB,KAAKysB,GACZvY,QAAQsH,IAAIwL,GAAQtM,MAAK,KACvBpM,KAAKiT,WAAW8F,QAChB/Y,KAAKid,WAAWlE,QAChB/Y,MAAK,EAAgB+Y,QACrB/Y,KAAKoL,cAAcoD,UACnBxO,KAAKqd,gBAAgBe,kBAAkB,IAAIhX,MAAM5b,eAAe,2BAC5DwU,KAAKoN,iBACPpN,KAAKoN,eAAeoB,UACpBxO,KAAKoN,eAAiB,MAExBpN,KAAKod,kBAAkBvX,SAAS,GAC/B7F,KAAKod,kBAAkBtX,QACnB9F,KAAKod,kBAAkBzX,OAChC,CACA,mBAAA6X,GACE,MAAM,eACJpQ,EAAc,YACdiF,GACErS,KACJoN,EAAe0O,GAAG,aAAa,CAAC/V,EAAMsY,MACpC,EAAIjX,MAAM3b,QAAQuU,KAAKqd,eAAgB,mDACvCrd,KAAKsd,YAActd,KAAKqd,eAAeiB,gBACvCte,KAAKsd,YAAY/O,WAAagQ,IAC5Bve,KAAKud,cAAgB,CACnBhO,OAAQgP,EAAIhP,OACZC,MAAO+O,EAAI/O,MACZ,EAEH6O,EAAKG,OAAS,KACZxe,KAAKsd,YAAYjF,OAAOjM,MAAK,UAAU,MACrCljB,EAAK,KACLovB,IAEIA,EACF+F,EAAKI,UAGP,EAAIrX,MAAM3b,QAAQvC,aAAiBw1B,YAAa,wCAChDL,EAAKM,QAAQ,IAAI9wB,WAAW3E,GAAQ,EAAG,CAACA,IAC1C,IAAGwkB,OAAM1H,IACPqY,EAAKpI,MAAMjQ,EAAO,GAClB,EAEJqY,EAAKO,SAAW5Y,IACdhG,KAAKsd,YAAYxE,OAAO9S,GACxBqY,EAAKQ,MAAMnR,OAAMoR,IACf,IAAI9e,KAAKqM,UAGT,MAAMyS,CAAW,GACjB,CACH,IAEH1R,EAAe0O,GAAG,sBAAsB/V,IACtC,MAAMgZ,EAAoB,IAAI3X,MAAM3d,kBAC9Bu1B,EAAahf,KAAKsd,YAmBxB,OAlBA0B,EAAWC,aAAa7S,MAAK,KACtB4S,EAAWE,sBAAyBF,EAAWG,mBAC9Cnf,KAAKud,eACPlL,EAAY9D,aAAavO,KAAKud,eAEhCyB,EAAWzQ,WAAagQ,IACtBlM,EAAY9D,aAAa,CACvBgB,OAAQgP,EAAIhP,OACZC,MAAO+O,EAAI/O,OACX,GAGNuP,EAAkBlZ,QAAQ,CACxBqZ,qBAAsBF,EAAWE,qBACjCC,iBAAkBH,EAAWG,iBAC7BC,cAAeJ,EAAWI,eAC1B,GACDL,EAAkBjZ,QACdiZ,EAAkBpZ,OAAO,IAElCyH,EAAe0O,GAAG,kBAAkB,CAAC/V,EAAMsY,MACzC,EAAIjX,MAAM3b,QAAQuU,KAAKqd,eAAgB,wDACvC,MAAMgC,EAAcrf,KAAKqd,eAAeiC,eAAevZ,EAAKsJ,MAAOtJ,EAAK8J,KACnEwP,GAILhB,EAAKG,OAAS,KACZa,EAAYhH,OAAOjM,MAAK,UAAU,MAChCljB,EAAK,KACLovB,IAEIA,EACF+F,EAAKI,UAGP,EAAIrX,MAAM3b,QAAQvC,aAAiBw1B,YAAa,6CAChDL,EAAKM,QAAQ,IAAI9wB,WAAW3E,GAAQ,EAAG,CAACA,IAC1C,IAAGwkB,OAAM1H,IACPqY,EAAKpI,MAAMjQ,EAAO,GAClB,EAEJqY,EAAKO,SAAW5Y,IACdqZ,EAAYvG,OAAO9S,GACnBqY,EAAKQ,MAAMnR,OAAMoR,IACf,IAAI9e,KAAKqM,UAGT,MAAMyS,CAAW,GACjB,GAzBFT,EAAKI,OA0BN,IAEHrR,EAAe0O,GAAG,UAAU,EAC1B/L,cAEA/P,KAAKuf,UAAYxP,EAAQO,SACzBtQ,KAAKyQ,YAAcV,EAAQyP,kBACpBzP,EAAQyP,WACfnN,EAAY1E,YAAY9H,QAAQ,IAAIU,iBAAiBwJ,EAAS/P,MAAM,IAEtEoN,EAAe0O,GAAG,gBAAgB,SAAU1qB,GAC1C,IAAI4U,EACJ,OAAQ5U,EAAG2O,MACT,IAAK,oBACHiG,EAAS,IAAIoB,MAAMxd,kBAAkBwH,EAAG0O,QAAS1O,EAAGG,MACpD,MACF,IAAK,sBACHyU,EAAS,IAAIoB,MAAMjd,oBAAoBiH,EAAG0O,SAC1C,MACF,IAAK,sBACHkG,EAAS,IAAIoB,MAAMrd,oBAAoBqH,EAAG0O,SAC1C,MACF,IAAK,8BACHkG,EAAS,IAAIoB,MAAM9d,4BAA4B8H,EAAG0O,QAAS1O,EAAGwP,QAC9D,MACF,IAAK,wBACHoF,EAAS,IAAIoB,MAAM/d,sBAAsB+H,EAAG0O,QAAS1O,EAAGuP,SACxD,MACF,SACE,EAAIyG,MAAMxb,aAAa,0CAE3BymB,EAAY1E,YAAY7H,OAAOE,EACjC,IACAoH,EAAe0O,GAAG,mBAAmB2D,IAEnC,GADAzf,MAAK,EAAsB,IAAIoH,MAAM3d,kBACjC4oB,EAAY/D,WAAY,CAC1B,MAAMoR,EAAiBpW,IACjBA,aAAoB9J,MACtBQ,MAAK,EAAoB8F,OAAOwD,GAEhCtJ,MAAK,EAAoB6F,QAAQ,CAC/ByD,YAEJ,EAEF,IACE+I,EAAY/D,WAAWoR,EAAgBD,EAAUluB,KACnD,CAAE,MAAOH,GACP4O,MAAK,EAAoB8F,OAAO1U,EAClC,CACF,MACE4O,MAAK,EAAoB8F,OAAO,IAAIsB,MAAMxd,kBAAkB61B,EAAU3f,QAAS2f,EAAUluB,OAE3F,OAAOyO,MAAK,EAAoB2F,OAAO,IAEzCyH,EAAe0O,GAAG,cAAc/V,IAC9BsM,EAAY9D,aAAa,CACvBgB,OAAQxJ,EAAKzZ,OACbkjB,MAAOzJ,EAAKzZ,SAEd0T,KAAKiS,uBAAuBpM,QAAQE,EAAK,IAE3CqH,EAAe0O,GAAG,mBAAmB/V,IAC/B/F,KAAKqM,WAGIrM,MAAK,EAAWpQ,IAAImW,EAAK2M,WACjC0G,iBAAiBrT,EAAK+Q,aAAc/Q,EAAKqP,SAAS,IAEzDhI,EAAe0O,GAAG,aAAa,EAAE7K,EAAI9e,EAAMwtB,MACzC,IAAI3f,KAAKqM,YAGLrM,KAAKiT,WAAWyI,IAAIzK,GAGxB,OAAQ9e,GACN,IAAK,OACH,MAAMua,EAAS1M,KAAKmd,QACpB,GAAI,UAAWwC,EAAc,CAC3B,MAAMC,EAAgBD,EAAa1J,OACnC,EAAI7O,MAAM/V,MAAM,8BAA8BuuB,KAC9C5f,KAAKiT,WAAWpN,QAAQoL,EAAI2O,GAC5B,KACF,CACA,MAAMC,EAAcnT,EAAO7B,QAAUjiB,WAAWk3B,eAAeC,QAAU,CAACC,EAAMj0B,IAAQnD,WAAWk3B,cAAcG,UAAUD,EAAMj0B,GAAO,KAClIi0B,EAAO,IAAIzY,aAAa2Y,eAAeP,EAAc,CACzD3e,gBAAiB0L,EAAO1L,gBACxBqJ,gBAAiBqC,EAAOrC,gBACxBJ,aAAcyC,EAAOzC,aACrB4V,gBAEF7f,KAAKid,WAAWkD,KAAKH,GAAMtS,OAAM1H,GACxBoH,EAAeU,gBAAgB,eAAgB,CACpDmD,SAEDmP,SAAQ,MACJ1T,EAAOpC,qBAAuB0V,EAAKja,OACtCia,EAAKja,KAAO,MAEd/F,KAAKiT,WAAWpN,QAAQoL,EAAI+O,EAAK,IAEnC,MACF,IAAK,WACL,IAAK,QACL,IAAK,UACHhgB,KAAKiT,WAAWpN,QAAQoL,EAAI0O,GAC5B,MACF,QACE,MAAM,IAAIngB,MAAM,kCAAkCrN,KACtD,IAEFib,EAAe0O,GAAG,OAAO,EAAE7K,EAAIyB,EAAWvgB,EAAMkuB,MAC9C,GAAIrgB,KAAKqM,UACP,OAEF,MAAMiU,EAAYtgB,MAAK,EAAWpQ,IAAI8iB,GACtC,IAAI4N,EAAUpN,KAAKwI,IAAIzK,GAGvB,OAAQ9e,GACN,IAAK,QAEH,GADAmuB,EAAUpN,KAAKrN,QAAQoL,EAAIoP,GACvBA,EAAW,CACb,IAAI/zB,EACJ,GAAI+zB,EAAUE,OAAQ,CACpB,MAAM,MACJC,EAAK,OACLC,GACEJ,EACJ/zB,EAASk0B,EAAQC,EAAS,CAC5B,MACEn0B,EAAS+zB,EAAUta,MAAMzZ,QAAU,EAEjCA,EAAS8a,MAAMpd,0BACjBs2B,EAAUlN,0BAA2B,EAEzC,CACA,MACF,IAAK,UACHkN,EAAUpN,KAAKrN,QAAQoL,EAAIoP,GAC3B,MACF,QACE,MAAM,IAAI7gB,MAAM,2BAA2BrN,KAC/C,IAEFib,EAAe0O,GAAG,eAAe/V,IAC3B/F,KAAKqM,WAGTgG,EAAY9D,aAAa,CACvBgB,OAAQxJ,EAAKwJ,OACbC,MAAOzJ,EAAKyJ,OACZ,IAEJpC,EAAe0O,GAAG,oBAAoB/V,GAChC/F,KAAKqM,UACAzG,QAAQE,OAAO,IAAItG,MAAM,0BAE7BQ,KAAKsL,kBAGHtL,KAAKsL,kBAAkBoV,MAAM3a,GAF3BH,QAAQE,OAAO,IAAItG,MAAM,6EAIpC4N,EAAe0O,GAAG,yBAAyB/V,GACrC/F,KAAKqM,UACAzG,QAAQE,OAAO,IAAItG,MAAM,0BAE7BQ,KAAKwL,wBAGHxL,KAAKwL,wBAAwBkV,MAAM3a,GAFjCH,QAAQE,OAAO,IAAItG,MAAM,kFAItC,CACA,OAAAsS,GACE,OAAO9R,KAAKoN,eAAeU,gBAAgB,UAAW,KACxD,CACA,YAAAiE,GACM/R,KAAKqQ,kBAAkBqH,MAAQ,IACjC,EAAItQ,MAAM/V,MAAM,kGAElB,MAAM,IACJvB,EAAG,UACH0pB,GACExZ,KAAKqQ,kBAAkByN,aAC3B,OAAO9d,KAAKoN,eAAeU,gBAAgB,eAAgB,CACzD0C,YAAaxQ,KAAKyQ,YAClBH,SAAUtQ,KAAKuf,UACflP,kBAAmBvgB,EACnB6wB,SAAU3gB,KAAKsd,aAAaqD,UAAY,MACvCnH,GAAW4G,SAAQ,KACpBpgB,KAAKqQ,kBAAkB6N,eAAe,GAE1C,CACA,OAAAvN,CAAQC,GACN,IAAKtgB,OAAOC,UAAUqgB,IAAeA,GAAc,GAAKA,EAAa5Q,KAAKuf,UACxE,OAAO3Z,QAAQE,OAAO,IAAItG,MAAM,0BAElC,MAAMkT,EAAY9B,EAAa,EAC7B6M,EAAgBzd,MAAK,EAAcpQ,IAAI8iB,GACzC,GAAI+K,EACF,OAAOA,EAET,MAAM9X,EAAU3F,KAAKoN,eAAeU,gBAAgB,UAAW,CAC7D4E,cACCtG,MAAKuG,IACN,GAAI3S,KAAKqM,UACP,MAAM,IAAI7M,MAAM,uBAElB,MAAMwe,EAAO,IAAI1X,aAAaoM,EAAWC,EAAU3S,KAAMA,KAAKmd,QAAQtS,QAEtE,OADA7K,MAAK,EAAWqV,IAAI3C,EAAWsL,GACxBA,CAAI,IAGb,OADAhe,MAAK,EAAcqV,IAAI3C,EAAW/M,GAC3BA,CACT,CACA,YAAAkL,CAAaC,GACX,MAAmB,iBAARA,GAA4B,OAARA,IAAiBxgB,OAAOC,UAAUugB,EAAI8P,MAAQ9P,EAAI8P,IAAM,IAAMtwB,OAAOC,UAAUugB,EAAI+P,MAAQ/P,EAAI+P,IAAM,EAC3Hjb,QAAQE,OAAO,IAAItG,MAAM,+BAE3BQ,KAAKoN,eAAeU,gBAAgB,eAAgB,CACzD8S,IAAK9P,EAAI8P,IACTC,IAAK/P,EAAI+P,KAEb,CACA,cAAA5M,CAAevB,EAAWwB,GACxB,OAAOlU,KAAKoN,eAAeU,gBAAgB,iBAAkB,CAC3D4E,YACAwB,UAEJ,CACA,eAAA3B,GACE,OAAOvS,MAAK,EAAmB,kBACjC,CACA,YAAAwS,GACE,OAAOxS,MAAK,EAAmB,eACjC,CACA,sBAAAyS,GACE,OAAOzS,KAAKoN,eAAeU,gBAAgB,yBAA0B,KACvE,CACA,eAAAiD,GACE,OAAO/Q,KAAKoN,eAAeU,gBAAgB,kBAAmB,KAChE,CACA,cAAAkD,CAAeC,GACb,MAAkB,iBAAPA,EACFrL,QAAQE,OAAO,IAAItG,MAAM,iCAE3BQ,KAAKoN,eAAeU,gBAAgB,iBAAkB,CAC3DmD,MAEJ,CACA,aAAAC,GACE,OAAOlR,KAAKoN,eAAeU,gBAAgB,gBAAiB,KAC9D,CACA,aAAAqD,GACE,OAAOnR,KAAKoN,eAAeU,gBAAgB,gBAAiB,KAC9D,CACA,WAAAsD,GACE,OAAOpR,KAAKoN,eAAeU,gBAAgB,cAAe,KAC5D,CACA,oBAAAuD,GACE,OAAOrR,KAAKoN,eAAeU,gBAAgB,uBAAwB,KACrE,CACA,aAAAwD,GACE,OAAOtR,KAAKoN,eAAeU,gBAAgB,gBAAiB,KAC9D,CACA,cAAAyD,GACE,OAAOvR,KAAKoN,eAAeU,gBAAgB,iBAAkB,KAC/D,CACA,eAAA0D,GACE,OAAOxR,MAAK,EAAmB,kBACjC,CACA,gBAAAsU,CAAiB5B,GACf,OAAO1S,KAAKoN,eAAeU,gBAAgB,mBAAoB,CAC7D4E,aAEJ,CACA,aAAA8F,CAAc9F,GACZ,OAAO1S,KAAKoN,eAAeU,gBAAgB,gBAAiB,CAC1D4E,aAEJ,CACA,UAAAjB,GACE,OAAOzR,KAAKoN,eAAeU,gBAAgB,aAAc,KAC3D,CACA,wBAAA4D,GACE,OAAO1R,KAAKoN,eAAeU,gBAAgB,2BAA4B,MAAM1B,MAAK0U,GACzE,IAAIjZ,yBAAyBkZ,sBAAsBD,IAE9D,CACA,cAAAnP,GACE,OAAO3R,KAAKoN,eAAeU,gBAAgB,iBAAkB,KAC/D,CACA,WAAA8D,GACE,MAAM7R,EAAO,cACX0d,EAAgBzd,MAAK,EAAgBpQ,IAAImQ,GAC3C,GAAI0d,EACF,OAAOA,EAET,MAAM9X,EAAU3F,KAAKoN,eAAeU,gBAAgB/N,EAAM,MAAMqM,MAAK0U,IAC5D,CACLzyB,KAAMyyB,EAAQ,GACdE,SAAUF,EAAQ,GAAK,IAAIlZ,UAAUqZ,SAASH,EAAQ,IAAM,KAC5DhU,2BAA4B9M,KAAKsd,aAAaqD,UAAY,KAC1DvB,cAAepf,KAAKsd,aAAa8B,eAAiB,SAItD,OADApf,MAAK,EAAgBqV,IAAItV,EAAM4F,GACxBA,CACT,CACA,WAAAkM,GACE,OAAO7R,KAAKoN,eAAeU,gBAAgB,cAAe,KAC5D,CACA,kBAAMsE,CAAaD,GAAkB,GACnC,IAAInS,KAAKqM,UAAT,OAGMrM,KAAKoN,eAAeU,gBAAgB,UAAW,MACrD,IAAK,MAAMkQ,KAAQhe,MAAK,EAAW2Y,SAEjC,IAD0BqF,EAAK9L,UAE7B,MAAM,IAAI1S,MAAM,sBAAsBwe,EAAKpN,sCAG/C5Q,KAAKiT,WAAW8F,QACX5G,GACHnS,KAAKid,WAAWlE,QAElB/Y,MAAK,EAAgB+Y,QACrB/Y,KAAKoL,cAAcoD,SAAQ,EAb3B,CAcF,CACA,iBAAI8D,GACF,MAAM,iBACJ1H,EAAgB,UAChBL,GACEvK,KAAKmd,QACT,OAAO,EAAI/V,MAAM5W,QAAQwP,KAAM,gBAAiB,CAC9C4K,mBACAL,aAEJ,EAEF,MAAM4I,WACJ,GAAQnqB,OAAOgH,OAAO,MACtB,GAAWkxB,GACT,OAAOlhB,MAAK,EAAMkhB,KAAW,CAC3B7K,WAAY,IAAIjP,MAAM3d,kBACtBsc,KAAM,KAEV,CACA,GAAAnW,CAAIsxB,EAAOzK,EAAW,MACpB,GAAIA,EAAU,CACZ,MAAM1mB,EAAMiQ,MAAK,EAAWkhB,GAE5B,OADAnxB,EAAIsmB,WAAW1Q,QAAQyG,MAAK,IAAMqK,EAAS1mB,EAAIgW,QACxC,IACT,CACA,MAAMhW,EAAMiQ,MAAK,EAAMkhB,GACvB,IAAKnxB,GAAKsmB,WAAWpQ,QACnB,MAAM,IAAIzG,MAAM,6CAA6C0hB,MAE/D,OAAOnxB,EAAIgW,IACb,CACA,GAAA2V,CAAIwF,GACF,MAAMnxB,EAAMiQ,MAAK,EAAMkhB,GACvB,OAAOnxB,GAAKsmB,WAAWpQ,UAAW,CACpC,CACA,OAAAJ,CAAQqb,EAAOnb,EAAO,MACpB,MAAMhW,EAAMiQ,MAAK,EAAWkhB,GAC5BnxB,EAAIgW,KAAOA,EACXhW,EAAIsmB,WAAWxQ,SACjB,CACA,KAAAkT,GACE,IAAK,MAAMmI,KAASlhB,MAAK,EAAO,CAC9B,MAAM,KACJ+F,GACE/F,MAAK,EAAMkhB,GACfnb,GAAMwa,QAAQ9B,OAChB,CACAze,MAAK,EAAQhX,OAAOgH,OAAO,KAC7B,EAEF,MAAMmW,WACJ,GAAsB,KACtB,WAAAlG,CAAYmW,GACVpW,MAAK,EAAsBoW,EAC3BpW,KAAKmhB,WAAa,IACpB,CACA,WAAIxb,GACF,OAAO3F,MAAK,EAAoBqW,WAAW1Q,OAC7C,CACA,MAAAmT,CAAOc,EAAa,GAClB5Z,MAAK,EAAoB8Y,OAAO,KAAMc,EACxC,CACA,kBAAI9D,GACF,MAAM,eACJA,GACE9V,MAAK,EAAoB0V,aAC7B,IAAKI,EACH,OAAO,EAET,MAAM,oBACJf,GACE/U,MAAK,EACT,OAAO8V,EAAesL,MAAQtL,EAAeuL,QAAUtM,GAAqB2C,KAAO,CACrF,EAEF3uB,QAAQod,WAAaA,WACrB,MAAMqQ,mBACJnI,SAAsB,IAAIiT,QAC1B,WAAArhB,EAAY,SACVwW,EAAQ,OACR/J,EAAM,KACNwG,EAAI,WACJD,EAAU,oBACV8B,EAAmB,aACnBW,EAAY,UACZhD,EAAS,cACTvH,EAAa,cACbC,EAAa,yBACbsL,GAA2B,EAAK,OAChC7L,GAAS,EAAK,WACdmK,EAAa,OAEbhV,KAAKyW,SAAWA,EAChBzW,KAAK0M,OAASA,EACd1M,KAAKkT,KAAOA,EACZlT,KAAKiT,WAAaA,EAClBjT,KAAK+U,oBAAsBA,EAC3B/U,KAAKuhB,gBAAkB,KACvBvhB,KAAK0V,aAAeA,EACpB1V,KAAK4S,WAAaF,EAClB1S,KAAKmL,cAAgBA,EACrBnL,KAAKoL,cAAgBA,EACrBpL,KAAKgT,QAAUnI,EACf7K,KAAKgV,WAAaA,EAClBhV,KAAKwhB,SAAU,EACfxhB,KAAKyhB,sBAAwB,KAC7BzhB,KAAK0hB,eAAgB,EACrB1hB,KAAK2hB,2BAAyD,IAA7BjL,GAAuD,oBAAXzI,OAC7EjO,KAAK4hB,WAAY,EACjB5hB,KAAKqW,WAAa,IAAIjP,MAAM3d,kBAC5BuW,KAAKgJ,KAAO,IAAI7C,WAAWnG,MAC3BA,KAAK6hB,aAAe7hB,KAAK8Y,OAAOqH,KAAKngB,MACrCA,KAAK8hB,eAAiB9hB,KAAK+hB,UAAU5B,KAAKngB,MAC1CA,KAAKgiB,mBAAqBhiB,KAAKiiB,cAAc9B,KAAKngB,MAClDA,KAAKkiB,WAAaliB,KAAKmiB,MAAMhC,KAAKngB,MAClCA,KAAKyH,QAAUiF,EAAOgI,cAAc2M,MACtC,CACA,aAAIxI,GACF,OAAO7Y,KAAKqW,WAAW1Q,QAAQ+H,OAAM,WAAa,GACpD,CACA,kBAAAsJ,EAAmB,aACjBF,GAAe,EAAK,sBACpBC,IAEA,GAAI/W,KAAK4hB,UACP,OAEF,GAAI5hB,KAAKyH,QAAS,CAChB,GAAI+O,oBAAmB,EAAakF,IAAI1b,KAAKyH,SAC3C,MAAM,IAAIjI,MAAM,mJAElBgX,oBAAmB,EAAaI,IAAI5W,KAAKyH,QAC3C,CACIzH,KAAKgT,SAAWpqB,WAAWw5B,gBAAgBrC,UAC7C/f,KAAKqiB,QAAUz5B,WAAWw5B,eAAepyB,OAAOgQ,KAAK4S,YACrD5S,KAAKqiB,QAAQC,KAAKtiB,KAAK0V,cACvB1V,KAAKqiB,QAAQE,eAAiBviB,KAAKqiB,QAAQG,qBAE7C,MAAM,cACJ9N,EAAa,SACbC,EAAQ,UACRla,EAAS,WACToa,GACE7U,KAAK0M,OACT1M,KAAKyiB,IAAM,IAAIhb,QAAQib,eAAehO,EAAe1U,KAAKiT,WAAYjT,KAAKkT,KAAMlT,KAAKmL,cAAenL,KAAKoL,cAAe,CACvH2L,yBACC/W,KAAK+U,oBAAqB/U,KAAKgV,YAClChV,KAAKyiB,IAAIE,aAAa,CACpBloB,YACAka,WACAmC,eACAjC,eAEF7U,KAAKuhB,gBAAkB,EACvBvhB,KAAK0hB,eAAgB,EACrB1hB,KAAKyhB,yBACP,CACA,MAAA3I,CAAO7C,EAAQ,KAAM2D,EAAa,GAChC5Z,KAAKwhB,SAAU,EACfxhB,KAAK4hB,WAAY,EACjB5hB,KAAKyiB,KAAKG,aACVpM,oBAAmB,EAAaL,OAAOnW,KAAKyH,SAC5CzH,KAAKyW,SAASR,GAAS,IAAI3O,eAAeoS,4BAA4B,6BAA6B1Z,KAAK4S,WAAa,IAAKgH,GAC5H,CACA,mBAAA3C,GACOjX,KAAK0hB,eAIV1hB,KAAKqiB,SAASQ,mBAAmB7iB,KAAK0V,cAClC1V,KAAKwhB,SAGTxhB,KAAK+hB,aAPH/hB,KAAKyhB,wBAA0BzhB,KAAK8hB,cAQxC,CACA,SAAAC,GACE/hB,KAAKwhB,SAAU,EACXxhB,KAAK4hB,YAGL5hB,KAAKgJ,KAAKmY,WACZnhB,KAAKgJ,KAAKmY,WAAWnhB,KAAKgiB,oBAE1BhiB,KAAKiiB,gBAET,CACA,aAAAA,GACMjiB,KAAK2hB,0BACP1T,OAAO6U,uBAAsB,KAC3B9iB,KAAKkiB,aAAaxU,MAAM1N,KAAK6hB,aAAa,IAG5Cjc,QAAQC,UAAUuG,KAAKpM,KAAKkiB,YAAYxU,MAAM1N,KAAK6hB,aAEvD,CACA,WAAMM,GACAniB,KAAK4hB,YAGT5hB,KAAKuhB,gBAAkBvhB,KAAKyiB,IAAIM,oBAAoB/iB,KAAK0V,aAAc1V,KAAKuhB,gBAAiBvhB,KAAK8hB,eAAgB9hB,KAAKqiB,SACnHriB,KAAKuhB,kBAAoBvhB,KAAK0V,aAAaE,UAAUtpB,SACvD0T,KAAKwhB,SAAU,EACXxhB,KAAK0V,aAAaG,YACpB7V,KAAKyiB,IAAIG,aACTpM,oBAAmB,EAAaL,OAAOnW,KAAKyH,SAC5CzH,KAAKyW,aAGX,EAEF,MAAMtP,QAAU,WAChBpe,QAAQoe,QAAUA,QAClB,MAAMF,MAAQ,YACdle,QAAQke,MAAQA,KAET,EAED,CAAEne,EAAyBC,EAASmd,KAI1Cld,OAAOC,eAAeF,EAAS,aAAc,CAC3CG,OAAO,IAETH,EAAQ60B,kBAAoB70B,EAAQ80B,uBAAyB90B,EAAQ20B,uBAAoB,EACzF,IAAItW,EAAQlB,EAAoB,GAC5B8c,EAAU9c,EAAoB,GAC9B+c,EAAc/c,EAAoB,GACtC,MAAM0X,EAAoB50B,OAAOk6B,OAAO,CACtCpzB,IAAK,KACLiuB,KAAM,GACNvE,eAAW7qB,IAEb5F,EAAQ60B,kBAAoBA,EAC5B,MAAMF,EACJ,IAAY,EACZ,GAAW,IAAIpuB,IACf,WAAA2Q,GACED,KAAKmjB,cAAgB,KACrBnjB,KAAKojB,gBAAkB,KACvBpjB,KAAKqjB,mBAAqB,IAC5B,CACA,QAAAC,CAASrzB,EAAKszB,GACZ,MAAMr6B,EAAQ8W,MAAK,EAASpQ,IAAIK,GAChC,YAActB,IAAVzF,EACKq6B,EAEFv6B,OAAOuvB,OAAOgL,EAAcr6B,EACrC,CACA,WAAAs6B,CAAYvzB,GACV,OAAO+P,MAAK,EAASpQ,IAAIK,EAC3B,CACA,MAAAwzB,CAAOxzB,GAKL,GAJA+P,MAAK,EAASmW,OAAOlmB,GACM,IAAvB+P,MAAK,EAAS0X,MAChB1X,KAAKke,gBAEgC,mBAA5Ble,KAAKqjB,mBAAmC,CACjD,IAAK,MAAMn6B,KAAS8W,MAAK,EAAS2Y,SAChC,GAAIzvB,aAAiB85B,EAAQU,iBAC3B,OAGJ1jB,KAAKqjB,mBAAmB,KAC1B,CACF,CACA,QAAAM,CAAS1zB,EAAK/G,GACZ,MAAM6G,EAAMiQ,MAAK,EAASpQ,IAAIK,GAC9B,IAAI2zB,GAAW,EACf,QAAYj1B,IAARoB,EACF,IAAK,MAAO8zB,EAAO9V,KAAQ/kB,OAAO86B,QAAQ56B,GACpC6G,EAAI8zB,KAAW9V,IACjB6V,GAAW,EACX7zB,EAAI8zB,GAAS9V,QAIjB6V,GAAW,EACX5jB,MAAK,EAASqV,IAAIplB,EAAK/G,GAErB06B,GACF5jB,MAAK,IAEH9W,aAAiB85B,EAAQU,kBAAuD,mBAA5B1jB,KAAKqjB,oBAC3DrjB,KAAKqjB,mBAAmBn6B,EAAM+W,YAAY8jB,MAE9C,CACA,GAAArI,CAAIzrB,GACF,OAAO+P,MAAK,EAAS0b,IAAIzrB,EAC3B,CACA,MAAA+zB,GACE,OAAOhkB,MAAK,EAAS0X,KAAO,GAAI,EAAItQ,EAAMvX,eAAemQ,MAAK,GAAY,IAC5E,CACA,MAAAikB,CAAOl0B,GACL,IAAK,MAAOE,EAAK8d,KAAQ/kB,OAAO86B,QAAQ/zB,GACtCiQ,KAAK2jB,SAAS1zB,EAAK8d,EAEvB,CACA,QAAI2J,GACF,OAAO1X,MAAK,EAAS0X,IACvB,CACA,KACO1X,MAAK,IACRA,MAAK,GAAY,EACiB,mBAAvBA,KAAKmjB,eACdnjB,KAAKmjB,gBAGX,CACA,aAAAjF,GACMle,MAAK,IACPA,MAAK,GAAY,EACmB,mBAAzBA,KAAKojB,iBACdpjB,KAAKojB,kBAGX,CACA,SAAIc,GACF,OAAO,IAAIrG,EAAuB7d,KACpC,CACA,gBAAI8d,GACF,GAA2B,IAAvB9d,MAAK,EAAS0X,KAChB,OAAOkG,EAET,MAAM9tB,EAAM,IAAIR,IACdyuB,EAAO,IAAIkF,EAAYkB,eACvB3K,EAAY,GACR4K,EAAUp7B,OAAOgH,OAAO,MAC9B,IAAIq0B,GAAY,EAChB,IAAK,MAAOp0B,EAAK8d,KAAQ/N,MAAK,EAAU,CACtC,MAAMskB,EAAavW,aAAeiV,EAAQU,iBAAmB3V,EAAIwW,WAAU,EAAOH,GAAWrW,EACzFuW,IACFx0B,EAAIulB,IAAIplB,EAAKq0B,GACbvG,EAAKyG,OAAO,GAAGv0B,KAAOw0B,KAAKC,UAAUJ,MACrCD,MAAgBC,EAAW/D,OAE/B,CACA,GAAI8D,EACF,IAAK,MAAMn7B,KAAS4G,EAAI6oB,SAClBzvB,EAAMq3B,QACR/G,EAAU9nB,KAAKxI,EAAMq3B,QAI3B,OAAOzwB,EAAI4nB,KAAO,EAAI,CACpB5nB,MACAiuB,KAAMA,EAAK4G,YACXnL,aACEoE,CACN,EAEF70B,EAAQ20B,kBAAoBA,EAC5B,MAAMG,UAA+BH,EACnC,GACA,WAAAzd,CAAY2kB,GACVlkB,QACA,MAAM,IACJ5Q,EAAG,KACHiuB,EAAI,UACJvE,GACEoL,EAAO9G,aACL+G,EAAQ1K,gBAAgBrqB,EAAK0pB,EAAY,CAC7CS,SAAUT,GACR,MACJxZ,MAAK,EAAgB,CACnBlQ,IAAK+0B,EACL9G,OACAvE,YAEJ,CACA,SAAI0K,IACF,EAAI9c,EAAMxb,aAAa,+CACzB,CACA,gBAAIkyB,GACF,OAAO9d,MAAK,CACd,EAEFjX,EAAQ80B,uBAAyBA,CAE1B,EAED,CAAE/0B,EAAyBC,EAASmd,KAI1Cld,OAAOC,eAAeF,EAAS,aAAc,CAC3CG,OAAO,IAETH,EAAQ26B,sBAAmB,EAC3B,IAAIoB,EAAS5e,EAAoB,GAC7BkB,EAAQlB,EAAoB,GAC5BoB,EAAiBpB,EAAoB,GACzC,MAAMwd,EACJ,GAAW,GACX,IAAqB,EACrB,GAAiB,KACjB,GAAkB,KAClB,GAAyB,KACzB,IAAmB,EACnB,GAAe,KACf,GAAgB1jB,KAAK+kB,QAAQ5E,KAAKngB,MAClC,GAAiBA,KAAKglB,SAAS7E,KAAKngB,MACpC,IAAkB,EAClB,IAAa,EACb,IAAgB,EAChBilB,gBAAkBj8B,OAAOgH,OAAO,MAChCk1B,WAAa,KACbC,qBAAsB,EACtBC,aAAe,KACf,IAAe,EACf,GAAU1B,EAAiB2B,UAC3BhX,yBAA2B,EAC3BA,qBAAuB,IAAIyW,EAAOQ,aAClCjX,eAAiB,EACjBA,yBAA2B,EAC3B,WAAApO,CAAYslB,GACNvlB,KAAKC,cAAgByjB,IACvB,EAAItc,EAAMxb,aAAa,uCAEzBoU,KAAK4kB,OAASW,EAAWX,OACzB5kB,KAAKiR,GAAKsU,EAAWtU,GACrBjR,KAAKwgB,MAAQxgB,KAAKygB,OAAS,KAC3BzgB,KAAK0S,UAAY6S,EAAWX,OAAOlS,UACnC1S,KAAKD,KAAOwlB,EAAWxlB,KACvBC,KAAKwlB,IAAM,KACXxlB,KAAKklB,WAAaK,EAAWE,UAC7BzlB,KAAK0lB,oBAAsB,KAC3B1lB,KAAK2lB,sBAAuB,EAC5B3lB,KAAKilB,gBAAgBW,WAAaL,EAAWK,WAC7C5lB,KAAK6lB,oBAAsB,KAC3B,MAAM,SACJlS,EACAmS,SAAS,UACPC,EAAS,WACTC,EAAU,MACVC,EAAK,MACLC,IAEAlmB,KAAK4kB,OAAOjQ,SAChB3U,KAAK2T,SAAWA,EAChB3T,KAAKmmB,cAAgB,IAAMxS,EAAW3T,KAAKklB,WAAWkB,eAAezS,UAAY,IACjF3T,KAAKqmB,eAAiB,CAACN,EAAWC,GAClChmB,KAAKsmB,gBAAkB,CAACL,EAAOC,GAC/B,MAAO1F,EAAOC,GAAUzgB,KAAKumB,iBAC7BvmB,KAAKwmB,EAAIjB,EAAWiB,EAAIhG,EACxBxgB,KAAKymB,EAAIlB,EAAWkB,EAAIhG,EACxBzgB,KAAK0mB,iBAAkB,EACvB1mB,KAAK2mB,SAAU,CACjB,CACA,cAAIC,GACF,OAAO59B,OAAO69B,eAAe7mB,MAAMC,YAAY8jB,KACjD,CACA,4BAAW+C,GACT,OAAO,EAAI1f,EAAM5W,QAAQwP,KAAM,oBAAqBA,KAAK+mB,cAAcC,WAAW,cACpF,CACA,8BAAOC,CAAwBC,GAC7B,MAAMC,EAAa,IAAIC,EAAW,CAChCnW,GAAIiW,EAAOtC,OAAOyC,YAClBzC,OAAQsC,EAAOtC,OACfa,UAAWyB,EAAOhC,aAEpBiC,EAAWzB,oBAAsBwB,EAAOxB,oBACxCyB,EAAWR,SAAU,EACrBQ,EAAWjC,WAAWoC,uBAAuBH,EAC/C,CACA,iBAAOI,CAAWC,EAAMv7B,EAAU,MAEhC,GADAy3B,EAAiB0B,eAAiB,IAAI91B,IAAI,CAAC,+BAAgC,oCAAqC,sCAAsCQ,KAAIX,GAAO,CAACA,EAAKq4B,EAAK53B,IAAIT,OAC5KlD,GAASw7B,QACX,IAAK,MAAMt4B,KAAOlD,EAAQw7B,QACxB/D,EAAiB0B,aAAa/P,IAAIlmB,EAAKq4B,EAAK53B,IAAIT,IAGpD,IAA2C,IAAvCu0B,EAAiBgE,iBACnB,OAEF,MAAMC,EAAQC,iBAAiBnd,SAASod,iBACxCnE,EAAiBgE,iBAAmBI,WAAWH,EAAMI,iBAAiB,qBAAuB,CAC/F,CACA,0BAAOC,CAAoBjE,EAAOkE,GAAS,CAC3C,oCAAWC,GACT,MAAO,EACT,CACA,+BAAOC,CAAyBC,GAC9B,OAAO,CACT,CACA,YAAOC,CAAMC,EAAM1D,IACjB,EAAIxd,EAAMxb,aAAa,kBACzB,CACA,sBAAI28B,GACF,MAAO,EACT,CACA,gBAAIC,GACF,OAAOxoB,MAAK,CACd,CACA,gBAAIwoB,CAAat/B,GACf8W,MAAK,EAAe9W,EACpB8W,KAAKwlB,KAAKiD,UAAUC,OAAO,YAAax/B,EAC1C,CACA,MAAAy/B,GACE,MAAO5C,EAAWC,GAAchmB,KAAKqmB,eACrC,OAAQrmB,KAAK4oB,gBACX,KAAK,GACH5oB,KAAKwmB,GAAKxmB,KAAKygB,OAASuF,GAA0B,EAAZD,GACtC/lB,KAAKymB,GAAKzmB,KAAKwgB,MAAQuF,GAA0B,EAAbC,GACpC,MACF,KAAK,IACHhmB,KAAKwmB,GAAKxmB,KAAKwgB,MAAQ,EACvBxgB,KAAKymB,GAAKzmB,KAAKygB,OAAS,EACxB,MACF,KAAK,IACHzgB,KAAKwmB,GAAKxmB,KAAKygB,OAASuF,GAA0B,EAAZD,GACtC/lB,KAAKymB,GAAKzmB,KAAKwgB,MAAQuF,GAA0B,EAAbC,GACpC,MACF,QACEhmB,KAAKwmB,GAAKxmB,KAAKwgB,MAAQ,EACvBxgB,KAAKymB,GAAKzmB,KAAKygB,OAAS,EAG5BzgB,KAAK6oB,mBACP,CACA,WAAAC,CAAYpc,GACV1M,KAAKklB,WAAW4D,YAAYpc,EAC9B,CACA,gBAAIqc,GACF,OAAO/oB,KAAKklB,WAAW6D,YACzB,CACA,eAAAC,GACEhpB,KAAKwlB,IAAImC,MAAMsB,OAAS,CAC1B,CACA,eAAAC,GACElpB,KAAKwlB,IAAImC,MAAMsB,OAASjpB,MAAK,CAC/B,CACA,SAAAmpB,CAAUvE,GACO,OAAXA,IACF5kB,KAAK0S,UAAYkS,EAAOlS,UACxB1S,KAAKqmB,eAAiBzB,EAAOyB,gBAE/BrmB,KAAK4kB,OAASA,CAChB,CACA,OAAAG,CAAQ7K,GACDla,KAAKmlB,sBAGLnlB,MAAK,EAGRA,MAAK,GAAkB,EAFvBA,KAAK4kB,OAAOwE,YAAYppB,MAI5B,CACA,QAAAglB,CAAS9K,GACP,IAAKla,KAAKmlB,oBACR,OAEF,IAAKnlB,KAAK0mB,gBACR,OAEF,MAAM2C,EAASnP,EAAMoP,cACjBD,GAAQE,QAAQ,IAAIvpB,KAAKiR,QAG7BiJ,EAAMsP,iBACDxpB,KAAK4kB,QAAQ6E,qBAChBzpB,KAAK0pB,iBAET,CACA,cAAAA,GACM1pB,KAAK2pB,UACP3pB,KAAKyjB,SAELzjB,KAAK4pB,QAET,CACA,MAAAA,GACE5pB,KAAKsnB,wBACP,CACA,sBAAAA,GACEtnB,KAAKklB,WAAWoC,uBAAuBtnB,KACzC,CACA,KAAA6pB,CAAMrD,EAAGC,EAAGqD,EAAIC,GACd,MAAOvJ,EAAOC,GAAUzgB,KAAKumB,kBAC5BuD,EAAIC,GAAM/pB,KAAKgqB,wBAAwBF,EAAIC,GAC5C/pB,KAAKwmB,GAAKA,EAAIsD,GAAMtJ,EACpBxgB,KAAKymB,GAAKA,EAAIsD,GAAMtJ,EACpBzgB,KAAK6oB,mBACP,CACA,IAAYrI,EAAOC,GAAS+F,EAAGC,IAC5BD,EAAGC,GAAKzmB,KAAKgqB,wBAAwBxD,EAAGC,GACzCzmB,KAAKwmB,GAAKA,EAAIhG,EACdxgB,KAAKymB,GAAKA,EAAIhG,EACdzgB,KAAK6oB,mBACP,CACA,SAAAoB,CAAUzD,EAAGC,GACXzmB,MAAK,EAAWA,KAAKumB,iBAAkBC,EAAGC,EAC5C,CACA,eAAAyD,CAAgB1D,EAAGC,GACjBzmB,MAAK,EAAWA,KAAKqmB,eAAgBG,EAAGC,GACxCzmB,KAAKwlB,IAAI2E,eAAe,CACtBC,MAAO,WAEX,CACA,IAAAC,CAAKP,EAAIC,GACP,MAAOO,EAAaC,GAAgBvqB,KAAKumB,iBAGzC,GAFAvmB,KAAKwmB,GAAKsD,EAAKQ,EACftqB,KAAKymB,GAAKsD,EAAKQ,EACXvqB,KAAK4kB,SAAW5kB,KAAKwmB,EAAI,GAAKxmB,KAAKwmB,EAAI,GAAKxmB,KAAKymB,EAAI,GAAKzmB,KAAKymB,EAAI,GAAI,CACzE,MAAM,EACJD,EAAC,EACDC,GACEzmB,KAAKwlB,IAAIgF,wBACTxqB,KAAK4kB,OAAO6F,cAAczqB,KAAMwmB,EAAGC,KACrCzmB,KAAKwmB,GAAKx4B,KAAKC,MAAM+R,KAAKwmB,GAC1BxmB,KAAKymB,GAAKz4B,KAAKC,MAAM+R,KAAKymB,GAE9B,CACA,IAAI,EACFD,EAAC,EACDC,GACEzmB,KACJ,MAAO0qB,EAAIC,GAAM3qB,MAAK,IACtBwmB,GAAKkE,EACLjE,GAAKkE,EACL3qB,KAAKwlB,IAAImC,MAAMiD,KAAO,IAAI,IAAMpE,GAAGqE,QAAQ,MAC3C7qB,KAAKwlB,IAAImC,MAAMmD,IAAM,IAAI,IAAMrE,GAAGoE,QAAQ,MAC1C7qB,KAAKwlB,IAAI2E,eAAe,CACtBC,MAAO,WAEX,CACA,KACE,MAAOE,EAAaC,GAAgBvqB,KAAKumB,kBACnC,iBACJmB,GACEhE,EACE8C,EAAIkB,EAAmB4C,EACvB7D,EAAIiB,EAAmB6C,EAC7B,OAAQvqB,KAAK2T,UACX,KAAK,GACH,MAAO,EAAE6S,EAAGC,GACd,KAAK,IACH,MAAO,CAACD,EAAGC,GACb,KAAK,IACH,MAAO,CAACD,GAAIC,GACd,QACE,MAAO,EAAED,GAAIC,GAEnB,CACA,iBAAAoC,GACE,MAAO9C,EAAWC,GAAchmB,KAAKqmB,eACrC,IAAI,EACFG,EAAC,EACDC,EAAC,MACDjG,EAAK,OACLC,GACEzgB,KAKJ,OAJAwgB,GAASuF,EACTtF,GAAUuF,EACVQ,GAAKT,EACLU,GAAKT,EACGhmB,KAAK2T,UACX,KAAK,EACH6S,EAAIx4B,KAAKiV,IAAI,EAAGjV,KAAKuS,IAAIwlB,EAAYvF,EAAOgG,IAC5CC,EAAIz4B,KAAKiV,IAAI,EAAGjV,KAAKuS,IAAIylB,EAAavF,EAAQgG,IAC9C,MACF,KAAK,GACHD,EAAIx4B,KAAKiV,IAAI,EAAGjV,KAAKuS,IAAIwlB,EAAYtF,EAAQ+F,IAC7CC,EAAIz4B,KAAKuS,IAAIylB,EAAYh4B,KAAKiV,IAAIud,EAAOiG,IACzC,MACF,KAAK,IACHD,EAAIx4B,KAAKuS,IAAIwlB,EAAW/3B,KAAKiV,IAAIud,EAAOgG,IACxCC,EAAIz4B,KAAKuS,IAAIylB,EAAYh4B,KAAKiV,IAAIwd,EAAQgG,IAC1C,MACF,KAAK,IACHD,EAAIx4B,KAAKuS,IAAIwlB,EAAW/3B,KAAKiV,IAAIwd,EAAQ+F,IACzCC,EAAIz4B,KAAKiV,IAAI,EAAGjV,KAAKuS,IAAIylB,EAAaxF,EAAOiG,IAGjDzmB,KAAKwmB,EAAIA,GAAKT,EACd/lB,KAAKymB,EAAIA,GAAKT,EACd,MAAO0E,EAAIC,GAAM3qB,MAAK,IACtBwmB,GAAKkE,EACLjE,GAAKkE,EACL,MAAM,MACJhD,GACE3nB,KAAKwlB,IACTmC,EAAMiD,KAAO,IAAI,IAAMpE,GAAGqE,QAAQ,MAClClD,EAAMmD,IAAM,IAAI,IAAMrE,GAAGoE,QAAQ,MACjC7qB,KAAK+qB,WACP,CACA,QAAO,CAAavE,EAAGC,EAAGuE,GACxB,OAAQA,GACN,KAAK,GACH,MAAO,CAACvE,GAAID,GACd,KAAK,IACH,MAAO,EAAEA,GAAIC,GACf,KAAK,IACH,MAAO,EAAEA,EAAGD,GACd,QACE,MAAO,CAACA,EAAGC,GAEjB,CACA,uBAAAuD,CAAwBxD,EAAGC,GACzB,OAAO/C,GAAiB,EAAa8C,EAAGC,EAAGzmB,KAAK4oB,eAClD,CACA,uBAAAqC,CAAwBzE,EAAGC,GACzB,OAAO/C,GAAiB,EAAa8C,EAAGC,EAAG,IAAMzmB,KAAK4oB,eACxD,CACA,GAAmBjV,GACjB,OAAQA,GACN,KAAK,GACH,CACE,MAAOoS,EAAWC,GAAchmB,KAAKqmB,eACrC,MAAO,CAAC,GAAIN,EAAYC,EAAYA,EAAaD,EAAW,EAC9D,CACF,KAAK,IACH,MAAO,EAAE,EAAG,EAAG,GAAI,GACrB,KAAK,IACH,CACE,MAAOA,EAAWC,GAAchmB,KAAKqmB,eACrC,MAAO,CAAC,EAAGN,EAAYC,GAAaA,EAAaD,EAAW,EAC9D,CACF,QACE,MAAO,CAAC,EAAG,EAAG,EAAG,GAEvB,CACA,eAAImF,GACF,OAAOlrB,KAAKklB,WAAWkB,eAAe+E,SACxC,CACA,kBAAIvC,GACF,OAAQ5oB,KAAKklB,WAAWkB,eAAezS,SAAW3T,KAAKmmB,cAAgB,GACzE,CACA,oBAAII,GACF,MAAM,YACJ2E,EACA7E,gBAAiBN,EAAWC,IAC1BhmB,KACEorB,EAAcrF,EAAYmF,EAC1BG,EAAerF,EAAakF,EAClC,OAAO9jB,EAAM7c,YAAYkX,oBAAsB,CAACzT,KAAKs9B,MAAMF,GAAcp9B,KAAKs9B,MAAMD,IAAiB,CAACD,EAAaC,EACrH,CACA,OAAAE,CAAQ/K,EAAOC,GACb,MAAO6J,EAAaC,GAAgBvqB,KAAKumB,iBACzCvmB,KAAKwlB,IAAImC,MAAMnH,MAAQ,IAAI,IAAMA,EAAQ8J,GAAaO,QAAQ,MACzD7qB,MAAK,IACRA,KAAKwlB,IAAImC,MAAMlH,OAAS,IAAI,IAAMA,EAAS8J,GAAcM,QAAQ,OAEnE7qB,MAAK,GAAgByoB,UAAUC,OAAO,QAASlI,EAAQkD,EAAiB8H,mBAAqB/K,EAASiD,EAAiB8H,kBACzH,CACA,OAAAC,GACE,MAAM,MACJ9D,GACE3nB,KAAKwlB,KACH,OACJ/E,EAAM,MACND,GACEmH,EACE+D,EAAelL,EAAMmL,SAAS,KAC9BC,GAAiB5rB,MAAK,GAAoBygB,EAAOkL,SAAS,KAChE,GAAID,GAAgBE,EAClB,OAEF,MAAOtB,EAAaC,GAAgBvqB,KAAKumB,iBACpCmF,IACH/D,EAAMnH,MAAQ,IAAI,IAAMsH,WAAWtH,GAAS8J,GAAaO,QAAQ,OAE9D7qB,MAAK,GAAqB4rB,IAC7BjE,EAAMlH,OAAS,IAAI,IAAMqH,WAAWrH,GAAU8J,GAAcM,QAAQ,MAExE,CACA,qBAAAgB,GACE,MAAO,CAAC,EAAG,EACb,CACA,KACE,GAAI7rB,MAAK,EACP,OAEFA,MAAK,EAAeyK,SAASqhB,cAAc,OAC3C9rB,MAAK,EAAayoB,UAAU7R,IAAI,YAChC,MAAMmV,EAAU,CAAC,UAAW,WAAY,cAAe,cAClD/rB,KAAK2lB,sBACRoG,EAAQr6B,KAAK,YAAa,cAAe,eAAgB,cAE3D,IAAK,MAAMqO,KAAQgsB,EAAS,CAC1B,MAAMvG,EAAM/a,SAASqhB,cAAc,OACnC9rB,MAAK,EAAagsB,OAAOxG,GACzBA,EAAIiD,UAAU7R,IAAI,UAAW7W,GAC7BylB,EAAInL,iBAAiB,cAAera,MAAK,EAAoBmgB,KAAKngB,KAAMD,IACxEylB,EAAInL,iBAAiB,cAAe/S,EAAe2kB,cACrD,CACAjsB,KAAKwlB,IAAI0G,QAAQlsB,MAAK,EACxB,CACA,GAAoBD,EAAMma,GACxBA,EAAMsP,iBACN,MAAM,MACJjoB,GACE6F,EAAM7c,YAAY6W,SACtB,GAAqB,IAAjB8Y,EAAMiS,QAAgBjS,EAAMkS,SAAW7qB,EACzC,OAEF,MAAM8qB,EAA0BrsB,MAAK,EAAoBmgB,KAAKngB,KAAMD,GAC9DusB,EAAiBtsB,KAAKwoB,aAC5BxoB,KAAKwoB,cAAe,EACpB,MAAM+D,EAAqB,CACzBC,SAAS,EACTC,SAAS,GAEXxe,OAAOoM,iBAAiB,cAAegS,EAAyBE,GAChE,MAAMG,EAAS1sB,KAAKwmB,EACdmG,EAAS3sB,KAAKymB,EACdmG,EAAa5sB,KAAKwgB,MAClBqM,EAAc7sB,KAAKygB,OACnBqM,EAAoB9sB,KAAK4kB,OAAOY,IAAImC,MAAMoF,OAC1CC,EAAchtB,KAAKwlB,IAAImC,MAAMoF,OACnC/sB,KAAKwlB,IAAImC,MAAMoF,OAAS/sB,KAAK4kB,OAAOY,IAAImC,MAAMoF,OAAS9e,OAAO2Z,iBAAiB1N,EAAMmP,QAAQ0D,OAC7F,MAAME,EAAoB,KACxBjtB,KAAKwoB,aAAe8D,EACpBre,OAAOqM,oBAAoB,YAAa2S,GACxChf,OAAOqM,oBAAoB,OAAQ2S,GACnChf,OAAOqM,oBAAoB,cAAe+R,EAAyBE,GACnEvsB,KAAK4kB,OAAOY,IAAImC,MAAMoF,OAASD,EAC/B9sB,KAAKwlB,IAAImC,MAAMoF,OAASC,EACxB,MAAME,EAAOltB,KAAKwmB,EACZ2G,EAAOntB,KAAKymB,EACZ2G,EAAWptB,KAAKwgB,MAChB6M,EAAYrtB,KAAKygB,OACnByM,IAASR,GAAUS,IAASR,GAAUS,IAAaR,GAAcS,IAAcR,GAGnF7sB,KAAK8oB,YAAY,CACfwE,IAAK,KACHttB,KAAKwgB,MAAQ4M,EACbptB,KAAKygB,OAAS4M,EACdrtB,KAAKwmB,EAAI0G,EACTltB,KAAKymB,EAAI0G,EACT,MAAO7C,EAAaC,GAAgBvqB,KAAKumB,iBACzCvmB,KAAKurB,QAAQjB,EAAc8C,EAAU7C,EAAe8C,GACpDrtB,KAAK6oB,mBAAmB,EAE1B0E,KAAM,KACJvtB,KAAKwgB,MAAQoM,EACb5sB,KAAKygB,OAASoM,EACd7sB,KAAKwmB,EAAIkG,EACT1sB,KAAKymB,EAAIkG,EACT,MAAOrC,EAAaC,GAAgBvqB,KAAKumB,iBACzCvmB,KAAKurB,QAAQjB,EAAcsC,EAAYrC,EAAesC,GACtD7sB,KAAK6oB,mBAAmB,EAE1B2E,UAAU,GACV,EAEJvf,OAAOoM,iBAAiB,YAAa4S,GACrChf,OAAOoM,iBAAiB,OAAQ4S,EAClC,CACA,GAAoBltB,EAAMma,GACxB,MAAOoQ,EAAaC,GAAgBvqB,KAAKumB,iBACnCmG,EAAS1sB,KAAKwmB,EACdmG,EAAS3sB,KAAKymB,EACdmG,EAAa5sB,KAAKwgB,MAClBqM,EAAc7sB,KAAKygB,OACnBgN,EAAW/J,EAAiBgK,SAAWpD,EACvCqD,EAAYjK,EAAiBgK,SAAWnD,EACxCe,EAAQ9E,GAAKx4B,KAAKs9B,MAAU,IAAJ9E,GAAa,IACrCoH,EAAiB5tB,MAAK,EAAmBA,KAAK2T,UAC9Cka,EAAS,CAACrH,EAAGC,IAAM,CAACmH,EAAe,GAAKpH,EAAIoH,EAAe,GAAKnH,EAAGmH,EAAe,GAAKpH,EAAIoH,EAAe,GAAKnH,GAC/GqH,EAAoB9tB,MAAK,EAAmB,IAAMA,KAAK2T,UAE7D,IAAIoa,EACAC,EACAC,GAAa,EACbC,GAAe,EACnB,OAAQnuB,GACN,IAAK,UACHkuB,GAAa,EACbF,EAAW,CAACI,EAAGC,IAAM,CAAC,EAAG,GACzBJ,EAAc,CAACG,EAAGC,IAAM,CAACD,EAAGC,GAC5B,MACF,IAAK,YACHL,EAAW,CAACI,EAAGC,IAAM,CAACD,EAAI,EAAG,GAC7BH,EAAc,CAACG,EAAGC,IAAM,CAACD,EAAI,EAAGC,GAChC,MACF,IAAK,WACHH,GAAa,EACbF,EAAW,CAACI,EAAGC,IAAM,CAACD,EAAG,GACzBH,EAAc,CAACG,EAAGC,IAAM,CAAC,EAAGA,GAC5B,MACF,IAAK,cACHF,GAAe,EACfH,EAAW,CAACI,EAAGC,IAAM,CAACD,EAAGC,EAAI,GAC7BJ,EAAc,CAACG,EAAGC,IAAM,CAAC,EAAGA,EAAI,GAChC,MACF,IAAK,cACHH,GAAa,EACbF,EAAW,CAACI,EAAGC,IAAM,CAACD,EAAGC,GACzBJ,EAAc,CAACG,EAAGC,IAAM,CAAC,EAAG,GAC5B,MACF,IAAK,eACHL,EAAW,CAACI,EAAGC,IAAM,CAACD,EAAI,EAAGC,GAC7BJ,EAAc,CAACG,EAAGC,IAAM,CAACD,EAAI,EAAG,GAChC,MACF,IAAK,aACHF,GAAa,EACbF,EAAW,CAACI,EAAGC,IAAM,CAAC,EAAGA,GACzBJ,EAAc,CAACG,EAAGC,IAAM,CAACD,EAAG,GAC5B,MACF,IAAK,aACHD,GAAe,EACfH,EAAW,CAACI,EAAGC,IAAM,CAAC,EAAGA,EAAI,GAC7BJ,EAAc,CAACG,EAAGC,IAAM,CAACD,EAAGC,EAAI,GAGpC,MAAMC,EAAQN,EAASnB,EAAYC,GAC7ByB,EAAgBN,EAAYpB,EAAYC,GAC9C,IAAI0B,EAAsBV,KAAUS,GACpC,MAAME,EAAYlD,EAAMoB,EAAS6B,EAAoB,IAC/CE,EAAYnD,EAAMqB,EAAS4B,EAAoB,IACrD,IAAIG,EAAS,EACTC,EAAS,GACRC,EAAQC,GAAU7uB,KAAKgqB,wBAAwB9P,EAAM4U,UAAW5U,EAAM6U,WApDzD,IAACvI,EAAGC,EAsDtB,IADCmI,EAAQC,IArDUrI,EAqDUoI,EAAStE,EArDhB7D,EAqD6BoI,EAAStE,EArDhC,CAACuD,EAAkB,GAAKtH,EAAIsH,EAAkB,GAAKrH,EAAGqH,EAAkB,GAAKtH,EAAIsH,EAAkB,GAAKrH,IAsDhIwH,EAAY,CACd,MAAMe,EAAUhhC,KAAKihC,MAAMrC,EAAYC,GACvC6B,EAASC,EAAS3gC,KAAKiV,IAAIjV,KAAKuS,IAAIvS,KAAKihC,MAAMX,EAAc,GAAKD,EAAM,GAAKO,EAAQN,EAAc,GAAKD,EAAM,GAAKQ,GAAUG,EAAS,EAAIpC,EAAY,EAAIC,GAAcY,EAAWb,EAAYe,EAAYd,EAC7M,MAAWqB,EACTQ,EAAS1gC,KAAKiV,IAAIwqB,EAAUz/B,KAAKuS,IAAI,EAAGvS,KAAKqX,IAAIipB,EAAc,GAAKD,EAAM,GAAKO,KAAYhC,EAE3F+B,EAAS3gC,KAAKiV,IAAI0qB,EAAW3/B,KAAKuS,IAAI,EAAGvS,KAAKqX,IAAIipB,EAAc,GAAKD,EAAM,GAAKQ,KAAYhC,EAE9F,MAAMO,EAAW9B,EAAMsB,EAAa8B,GAC9BrB,EAAY/B,EAAMuB,EAAc8B,GACtCJ,EAAsBV,KAAUG,EAAYZ,EAAUC,IACtD,MAAMH,EAAOsB,EAAYD,EAAoB,GACvCpB,EAAOsB,EAAYF,EAAoB,GAC7CvuB,KAAKwgB,MAAQ4M,EACbptB,KAAKygB,OAAS4M,EACdrtB,KAAKwmB,EAAI0G,EACTltB,KAAKymB,EAAI0G,EACTntB,KAAKurB,QAAQjB,EAAc8C,EAAU7C,EAAe8C,GACpDrtB,KAAK6oB,mBACP,CACA,sBAAMqG,GACJ,GAAIlvB,MAAK,EACP,OAEF,MAAMmvB,EAAUnvB,MAAK,EAAiByK,SAASqhB,cAAc,UAC7DqD,EAAQC,UAAY,UACpB,MAAMzjC,QAAY+3B,EAAiB0B,aAAax1B,IAAI,gCAoBpD,GAnBAu/B,EAAQxX,YAAchsB,EACtBwjC,EAAQE,aAAa,aAAc1jC,GACnCwjC,EAAQG,SAAW,IACnBH,EAAQ9U,iBAAiB,cAAe/S,EAAe2kB,eACvDkD,EAAQ9U,iBAAiB,eAAeH,GAASA,EAAMqV,oBACvDJ,EAAQ9U,iBAAiB,SAASH,IAChCA,EAAMsP,iBACNxpB,KAAKklB,WAAWsK,YAAYxvB,KAAK,GAChC,CACDysB,SAAS,IAEX0C,EAAQ9U,iBAAiB,WAAWH,IAC9BA,EAAMmP,SAAW8F,GAAyB,UAAdjV,EAAMjqB,MACpCiqB,EAAMsP,iBACNxpB,KAAKklB,WAAWsK,YAAYxvB,MAC9B,IAEFA,MAAK,IACLA,KAAKwlB,IAAIwG,OAAOmD,IACXzL,EAAiB8H,kBAAmB,CACvC,MAAMiE,EAAU,GAChB/L,EAAiB8H,kBAAoBx9B,KAAKuS,IAAI,IAAKvS,KAAKs9B,MAAM6D,EAAQ3E,wBAAwBhK,OAAS,EAAIiP,EAAU,MACvH,CACF,CACA,OAAM,GACJ,MAAMtD,EAASnsB,MAAK,EACpB,IAAKmsB,EACH,OAEF,IAAKnsB,MAAK,IAAaA,MAAK,EAG1B,OAFAmsB,EAAO1D,UAAUhF,OAAO,aACxBzjB,MAAK,GAAiByjB,SAGxBC,EAAiB0B,aAAax1B,IAAI,qCAAqCwc,MAAKzgB,IAC1EwgC,EAAOkD,aAAa,aAAc1jC,EAAI,IAExC,IAAI+jC,EAAU1vB,MAAK,EACnB,IAAK0vB,EAAS,CACZ1vB,MAAK,EAAkB0vB,EAAUjlB,SAASqhB,cAAc,QACxD4D,EAAQN,UAAY,UACpBM,EAAQL,aAAa,OAAQ,WAC7B,MAAMpe,EAAKye,EAAQze,GAAK,oBAAoBjR,KAAKiR,KACjDkb,EAAOkD,aAAa,mBAAoBpe,GACxC,MAAM0e,EAAwB,IAC9BxD,EAAO9R,iBAAiB,cAAc,KACpCra,MAAK,EAAyBmZ,YAAW,KACvCnZ,MAAK,EAAyB,KAC9BA,MAAK,EAAgByoB,UAAU7R,IAAI,QACnC5W,KAAKklB,WAAW0K,UAAUC,SAAS,kBAAmB,CACpDhiB,OAAQ7N,KACRW,QAAS,CACPxO,KAAM,UACN29B,QAAS9vB,KAAK4mB,WACd7gB,KAAM,CACJgqB,OAAQ,sBAGZ,GACDJ,EAAsB,IAE3BxD,EAAO9R,iBAAiB,cAAc,KACpC9E,aAAavV,MAAK,GAClBA,MAAK,EAAyB,KAC9BA,MAAK,GAAiByoB,UAAUhF,OAAO,OAAO,GAElD,CACA0I,EAAO1D,UAAU7R,IAAI,QACrB8Y,EAAQM,UAAYhwB,MAAK,QAA2B0jB,EAAiB0B,aAAax1B,IAAI,sCAAwCoQ,MAAK,EAC9H0vB,EAAQO,YACX9D,EAAOH,OAAO0D,EAElB,CACA,mBAAAQ,GACE,OAAOlwB,KAAKwlB,IAAIgF,uBAClB,CACA,eAAI2F,GACF,MAAO,CACLhB,QAASnvB,MAAK,EACdowB,WAAYpwB,MAAK,EAErB,CACA,eAAImwB,EAAY,QACdhB,EAAO,WACPiB,IAEIpwB,MAAK,IAAamvB,GAAWnvB,MAAK,IAAuBowB,IAG7DpwB,MAAK,EAAWmvB,EAChBnvB,MAAK,EAAqBowB,EAC1BpwB,MAAK,IACP,CACA,MAAAyU,GACEzU,KAAKwlB,IAAM/a,SAASqhB,cAAc,OAClC9rB,KAAKwlB,IAAI6J,aAAa,wBAAyB,IAAMrvB,KAAK2T,UAAY,KACtE3T,KAAKwlB,IAAI4J,UAAYpvB,KAAKD,KAC1BC,KAAKwlB,IAAI6J,aAAa,KAAMrvB,KAAKiR,IACjCjR,KAAKwlB,IAAI6J,aAAa,WAAY,GAClCrvB,KAAKkpB,kBACLlpB,KAAKwlB,IAAInL,iBAAiB,UAAWra,MAAK,GAC1CA,KAAKwlB,IAAInL,iBAAiB,WAAYra,MAAK,GAC3C,MAAOsqB,EAAaC,GAAgBvqB,KAAKumB,iBACrCvmB,KAAK4oB,eAAiB,KAAQ,IAChC5oB,KAAKwlB,IAAImC,MAAM0I,SAAW,IAAI,IAAM9F,EAAeD,GAAaO,QAAQ,MACxE7qB,KAAKwlB,IAAImC,MAAM2I,UAAY,IAAI,IAAMhG,EAAcC,GAAcM,QAAQ,OAE3E,MAAOf,EAAIC,GAAM/pB,KAAK6rB,wBAGtB,OAFA7rB,KAAKiqB,UAAUH,EAAIC,IACnB,EAAIjF,EAAOyL,YAAYvwB,KAAMA,KAAKwlB,IAAK,CAAC,gBACjCxlB,KAAKwlB,GACd,CACA,WAAAgL,CAAYtW,GACV,MAAM,MACJ3Y,GACE6F,EAAM7c,YAAY6W,SACD,IAAjB8Y,EAAMiS,QAAgBjS,EAAMkS,SAAW7qB,EACzC2Y,EAAMsP,kBAGRxpB,MAAK,GAAkB,EACvBA,MAAK,EAAkBka,GACzB,CACA,GAAkBA,GAChB,IAAKla,KAAKwoB,aACR,OAEF,MAAMiI,EAAazwB,KAAKklB,WAAWuL,WAAWzwB,MAE9C,IAAIusB,EAAoBmE,EADxB1wB,KAAKklB,WAAWyL,mBAEZF,IACFlE,EAAqB,CACnBC,SAAS,EACTC,SAAS,GAEXiE,EAAsBE,IACpB,MAAO9G,EAAIC,GAAM/pB,KAAKgqB,wBAAwB4G,EAAE9B,UAAW8B,EAAE7B,WAC7D/uB,KAAKklB,WAAW2L,oBAAoB/G,EAAIC,EAAG,EAE7C9b,OAAOoM,iBAAiB,cAAeqW,EAAqBnE,IAE9D,MAAMU,EAAoB,KAOxB,GANAhf,OAAOqM,oBAAoB,YAAa2S,GACxChf,OAAOqM,oBAAoB,OAAQ2S,GAC/BwD,GACFxiB,OAAOqM,oBAAoB,cAAeoW,EAAqBnE,GAEjEvsB,MAAK,GAAkB,GAClBA,KAAKklB,WAAW4L,iBAAkB,CACrC,MAAM,MACJvvB,GACE6F,EAAM7c,YAAY6W,SAClB8Y,EAAMkS,UAAY7qB,GAAS2Y,EAAM6W,UAAY7W,EAAM8W,SAAWzvB,EAChEvB,KAAK4kB,OAAOqM,eAAejxB,MAE3BA,KAAK4kB,OAAOwE,YAAYppB,KAE5B,GAEFiO,OAAOoM,iBAAiB,YAAa4S,GACrChf,OAAOoM,iBAAiB,OAAQ4S,EAClC,CACA,SAAAlC,GACE/qB,KAAK4kB,QAAQsM,gBAAgBlxB,KAC/B,CACA,qBAAAmxB,CAAsBvM,EAAQ4B,EAAGC,GAC/B7B,EAAOwM,aAAapxB,MACpBA,KAAKwmB,EAAIA,EACTxmB,KAAKymB,EAAIA,EACTzmB,KAAK6oB,mBACP,CACA,OAAAwI,CAAQvH,EAAIC,GACV,MAAMrW,EAAQ1T,KAAKkrB,aACZnF,EAAWC,GAAchmB,KAAKqmB,gBAC9BJ,EAAOC,GAASlmB,KAAKsmB,gBACtBgL,EAASxH,EAAKpW,EACd6d,EAASxH,EAAKrW,EACd8S,EAAIxmB,KAAKwmB,EAAIT,EACbU,EAAIzmB,KAAKymB,EAAIT,EACbxF,EAAQxgB,KAAKwgB,MAAQuF,EACrBtF,EAASzgB,KAAKygB,OAASuF,EAC7B,OAAQhmB,KAAK2T,UACX,KAAK,EACH,MAAO,CAAC6S,EAAI8K,EAASrL,EAAOD,EAAaS,EAAI8K,EAAS9Q,EAASyF,EAAOM,EAAI8K,EAAS9Q,EAAQyF,EAAOD,EAAaS,EAAI8K,EAASrL,GAC9H,KAAK,GACH,MAAO,CAACM,EAAI+K,EAAStL,EAAOD,EAAaS,EAAI6K,EAASpL,EAAOM,EAAI+K,EAAS9Q,EAASwF,EAAOD,EAAaS,EAAI6K,EAAS9Q,EAAQ0F,GAC9H,KAAK,IACH,MAAO,CAACM,EAAI8K,EAAS9Q,EAAQyF,EAAOD,EAAaS,EAAI8K,EAASrL,EAAOM,EAAI8K,EAASrL,EAAOD,EAAaS,EAAI8K,EAAS9Q,EAASyF,GAC9H,KAAK,IACH,MAAO,CAACM,EAAI+K,EAAS9Q,EAASwF,EAAOD,EAAaS,EAAI6K,EAAS9Q,EAAQ0F,EAAOM,EAAI+K,EAAStL,EAAOD,EAAaS,EAAI6K,EAASpL,GAC9H,QACE,MAAM,IAAI1mB,MAAM,oBAEtB,CACA,sBAAAgyB,CAAuB3tB,EAAMmiB,GAC3B,MAAOxhB,EAAIC,EAAIC,EAAIC,GAAMd,EACnB2c,EAAQ9b,EAAKF,EACbic,EAAS9b,EAAKF,EACpB,OAAQzE,KAAK2T,UACX,KAAK,EACH,MAAO,CAACnP,EAAIwhB,EAAarhB,EAAI6b,EAAOC,GACtC,KAAK,GACH,MAAO,CAACjc,EAAIwhB,EAAavhB,EAAIgc,EAAQD,GACvC,KAAK,IACH,MAAO,CAAC9b,EAAIshB,EAAavhB,EAAI+b,EAAOC,GACtC,KAAK,IACH,MAAO,CAAC/b,EAAIshB,EAAarhB,EAAI8b,EAAQD,GACvC,QACE,MAAM,IAAIhhB,MAAM,oBAEtB,CACA,SAAAiyB,GAAa,CACb,OAAA9H,GACE,OAAO,CACT,CACA,cAAA+H,GACE1xB,MAAK,GAAgB,CACvB,CACA,eAAA2xB,GACE3xB,MAAK,GAAgB,CACvB,CACA,YAAA4xB,GACE,OAAO5xB,MAAK,CACd,CACA,uBAAA6xB,GACE,OAAO,CACT,CACA,gBAAAC,GACE,OAAO9xB,KAAKwlB,MAAQxlB,KAAK0mB,eAC3B,CACA,OAAAqL,GACE/xB,KAAKwlB,KAAKnL,iBAAiB,UAAWra,MAAK,GAC3CA,KAAKwlB,KAAKnL,iBAAiB,WAAYra,MAAK,EAC9C,CACA,SAAAukB,CAAUyN,GAAe,EAAO5N,EAAU,OACxC,EAAIhd,EAAMxb,aAAa,iCACzB,CACA,kBAAOqmC,CAAYlsB,EAAM6e,EAAQa,GAC/B,MAAMyB,EAAS,IAAIlnB,KAAKE,UAAUD,YAAY,CAC5C2kB,SACA3T,GAAI2T,EAAOyC,YACX5B,cAEFyB,EAAOvT,SAAW5N,EAAK4N,SACvB,MAAOoS,EAAWC,GAAckB,EAAOb,gBAChCG,EAAGC,EAAGjG,EAAOC,GAAUyG,EAAOsK,uBAAuBzrB,EAAKlC,KAAMmiB,GAKvE,OAJAkB,EAAOV,EAAIA,EAAIT,EACfmB,EAAOT,EAAIA,EAAIT,EACfkB,EAAO1G,MAAQA,EAAQuF,EACvBmB,EAAOzG,OAASA,EAASuF,EAClBkB,CACT,CACA,MAAAzD,GACEzjB,KAAKwlB,IAAIlL,oBAAoB,UAAWta,MAAK,GAC7CA,KAAKwlB,IAAIlL,oBAAoB,WAAYta,MAAK,GACzCA,KAAK2pB,WACR3pB,KAAK4pB,SAEH5pB,KAAK4kB,OACP5kB,KAAK4kB,OAAOnB,OAAOzjB,MAEnBA,KAAKklB,WAAWgN,aAAalyB,MAE/BA,MAAK,GAAgByjB,SACrBzjB,MAAK,EAAiB,KACtBA,MAAK,EAAkB,IACzB,CACA,eAAImyB,GACF,OAAO,CACT,CACA,aAAAC,GACMpyB,KAAKmyB,cACPnyB,MAAK,IACLA,MAAK,EAAayoB,UAAUhF,OAAO,UAEvC,CACA,MAAA4O,GACEryB,KAAKoyB,gBACLpyB,KAAKwlB,KAAKiD,UAAU7R,IAAI,iBAC1B,CACA,QAAA0b,GACEtyB,MAAK,GAAcyoB,UAAU7R,IAAI,UACjC5W,KAAKwlB,KAAKiD,UAAUhF,OAAO,kBACvBzjB,KAAKwlB,KAAK+M,SAAS9nB,SAAS+nB,gBAC9BxyB,KAAKklB,WAAW6D,aAAavD,IAAIiN,OAErC,CACA,YAAAC,CAAavgC,EAAMjJ,GAAQ,CAC3B,cAAAypC,GACM3yB,MAAK,IACPA,MAAK,EAAe4yB,QAAS,EAEjC,CACA,aAAAC,GACM7yB,MAAK,IACPA,MAAK,EAAe4yB,QAAS,EAEjC,CACA,eAAAE,GAAmB,CACnB,cAAIC,GACF,OAAO/yB,KAAKwlB,GACd,CACA,aAAIwN,GACF,OAAOhzB,MAAK,CACd,CACA,aAAIgzB,CAAU9pC,GACZ8W,MAAK,EAAa9W,EACb8W,KAAK4kB,SAGN17B,GACF8W,KAAK4kB,OAAOwE,YAAYppB,MACxBA,KAAK4kB,OAAOqO,gBAAgBjzB,OAE5BA,KAAK4kB,OAAOqO,gBAAgB,MAEhC,CACA,cAAAC,CAAe1S,EAAOC,GACpBzgB,MAAK,GAAmB,EACxB,MAAMmzB,EAAc3S,EAAQC,GACtB,MACJkH,GACE3nB,KAAKwlB,IACTmC,EAAMwL,YAAcA,EACpBxL,EAAMlH,OAAS,MACjB,CACA,mBAAWiN,GACT,OAAO,EACT,EAEF3kC,EAAQ26B,iBAAmBA,EAC3B,MAAM0D,UAAmB1D,EACvB,WAAAzjB,CAAYyM,GACVhM,MAAMgM,GACN1M,KAAK0lB,oBAAsBhZ,EAAOgZ,oBAClC1lB,KAAK2mB,SAAU,CACjB,CACA,SAAApC,GACE,MAAO,CACLtT,GAAIjR,KAAK0lB,oBACTiB,SAAS,EACTjU,UAAW1S,KAAK0S,UAEpB,EAGK,EAED,CAAE5pB,EAAyBC,EAASmd,KAI1Cld,OAAOC,eAAeF,EAAS,aAAc,CAC3CG,OAAO,IAETH,EAAQqqC,gBAAkBrqC,EAAQsqC,eAAiBtqC,EAAQu8B,aAAev8B,EAAQuqC,+BAA4B,EAC9GvqC,EAAQwnC,WAIR,SAAoBxgC,EAAKwjC,EAASC,GAChC,IAAK,MAAMzzB,KAAQyzB,EACjBD,EAAQlZ,iBAAiBta,EAAMhQ,EAAIgQ,GAAMogB,KAAKpwB,GAElD,EAPAhH,EAAQ0qC,aAQR,SAAsBC,GACpB,OAAO1lC,KAAKs9B,MAAMt9B,KAAKuS,IAAI,IAAKvS,KAAKiV,IAAI,EAAG,IAAMywB,KAAWzmC,SAAS,IAAIE,SAAS,EAAG,IACxF,EATA,IAAIia,EAAQlB,EAAoB,GAC5BoB,EAAiBpB,EAAoB,GASzC,MAAMytB,EACJ,GAAM,EACN,KAAAC,GACE,MAAO,GAAGxsB,EAAMhc,yBAAyB4U,MAAK,KAChD,EAEF,MAAM6zB,EACJ,IAAU,EAAIzsB,EAAM3Z,WACpB,GAAM,EACN,GAAS,KACT,8BAAWqmC,GACT,MAEMC,EADS,IAAI5yB,gBAAgB,EAAG,GACnB6yB,WAAW,MACxBC,EAAQ,IAAIC,MAClBD,EAAMnrB,IAJM,uKAKZ,MAAMnD,EAAUsuB,EAAM9iC,SAASib,MAAK,KAClC2nB,EAAII,UAAUF,EAAO,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAC8B,IAAjE,IAAIlzB,YAAYgzB,EAAIK,aAAa,EAAG,EAAG,EAAG,GAAGruB,KAAK7U,QAAQ,MAEnE,OAAO,EAAIkW,EAAM5W,QAAQwP,KAAM,sBAAuB2F,EACxD,CACA,OAAM,CAAK1V,EAAKokC,GACdr0B,MAAK,IAAW,IAAI1Q,IACpB,IAAIyW,EAAO/F,MAAK,EAAOpQ,IAAIK,GAC3B,GAAa,OAAT8V,EACF,OAAO,KAET,GAAIA,GAAMwa,OAER,OADAxa,EAAKuuB,YAAc,EACZvuB,EAET,IAOE,IAAIkuB,EACJ,GAPAluB,IAAS,CACPwa,OAAQ,KACRtP,GAAI,SAASjR,MAAK,KAAWA,MAAK,MAClCs0B,WAAY,EACZC,OAAO,GAGc,iBAAZF,EAAsB,CAC/BtuB,EAAKha,IAAMsoC,EACX,MAAMG,QAAiB9T,MAAM2T,GAC7B,IAAKG,EAASC,GACZ,MAAM,IAAIj1B,MAAMg1B,EAASE,YAE3BT,QAAcO,EAASG,MACzB,MACEV,EAAQluB,EAAK6uB,KAAOP,EAEtB,GAAmB,kBAAfJ,EAAM9hC,KAA0B,CAClC,MAAM0iC,EAA+BhB,EAAaC,oBAC5CgB,EAAa,IAAIC,WACjBC,EAAe,IAAId,MACnBe,EAAe,IAAIrvB,SAAQ,CAACC,EAASC,KACzCkvB,EAAaE,OAAS,KACpBnvB,EAAKwa,OAASyU,EACdjvB,EAAKwuB,OAAQ,EACb1uB,GAAS,EAEXivB,EAAWI,OAAStnB,UAClB,MAAM7hB,EAAMga,EAAKovB,OAASL,EAAWM,OACrCJ,EAAalsB,UAAa+rB,EAAgC,GAAG9oC,uCAA2CA,CAAG,EAE7GipC,EAAaK,QAAUP,EAAWO,QAAUvvB,CAAM,IAEpDgvB,EAAWQ,cAAcrB,SACnBgB,CACR,MACElvB,EAAKwa,aAAegV,kBAAkBtB,GAExCluB,EAAKuuB,WAAa,CACpB,CAAE,MAAO1D,GACPriC,QAAQ0nB,MAAM2a,GACd7qB,EAAO,IACT,CAKA,OAJA/F,MAAK,EAAOqV,IAAIplB,EAAK8V,GACjBA,GACF/F,MAAK,EAAOqV,IAAItP,EAAKkL,GAAIlL,GAEpBA,CACT,CACA,iBAAMyvB,CAAYZ,GAChB,MAAM,aACJa,EAAY,KACZ11B,EAAI,KACJ2X,EAAI,KACJvlB,GACEyiC,EACJ,OAAO50B,MAAK,EAAK,GAAGy1B,KAAgB11B,KAAQ2X,KAAQvlB,IAAQyiC,EAC9D,CACA,gBAAMc,CAAW3pC,GACf,OAAOiU,MAAK,EAAKjU,EAAKA,EACxB,CACA,eAAM4pC,CAAU1kB,GACdjR,MAAK,IAAW,IAAI1Q,IACpB,MAAMyW,EAAO/F,MAAK,EAAOpQ,IAAIqhB,GAC7B,OAAKlL,EAGDA,EAAKwa,QACPxa,EAAKuuB,YAAc,EACZvuB,GAELA,EAAK6uB,KACA50B,KAAKw1B,YAAYzvB,EAAK6uB,MAExB50B,KAAK01B,WAAW3vB,EAAKha,KATnB,IAUX,CACA,SAAA6pC,CAAU3kB,GACR,MAAMlL,EAAO/F,MAAK,EAAOpQ,IAAIqhB,GAC7B,OAAKlL,GAAMwuB,MAGJxuB,EAAKovB,OAFH,IAGX,CACA,QAAAU,CAAS5kB,GACPjR,MAAK,IAAW,IAAI1Q,IACpB,MAAMyW,EAAO/F,MAAK,EAAOpQ,IAAIqhB,GACxBlL,IAGLA,EAAKuuB,YAAc,EACK,IAApBvuB,EAAKuuB,aAGTvuB,EAAKwa,OAAS,MAChB,CACA,SAAAuV,CAAU7kB,GACR,OAAOA,EAAG9kB,WAAW,SAAS6T,MAAK,KACrC,EAEF,MAAMqzB,EACJ,GAAY,GACZ,IAAU,EACV,GACA,IAAa,EACb,WAAApzB,CAAY81B,EAAU,KACpB/1B,MAAK,EAAW+1B,CAClB,CACA,GAAAnf,EAAI,IACF0W,EAAG,KACHC,EAAI,SACJC,EAAQ,KACRr7B,EAAO2Y,IAAG,oBACVkrB,GAAsB,EAAK,SAC3BC,GAAW,IAKX,GAHIzI,GACFF,IAEEttB,MAAK,EACP,OAEF,MAAMzF,EAAO,CACX+yB,MACAC,OACAp7B,QAEF,IAAwB,IAApB6N,MAAK,EAMP,OALIA,MAAK,EAAU1T,OAAS,IAC1B0T,MAAK,EAAU1T,OAAS,GAE1B0T,MAAK,EAAY,OACjBA,MAAK,EAAUtO,KAAK6I,GAGtB,GAAIy7B,GAAuBh2B,MAAK,EAAUA,MAAK,GAAW7N,OAASA,EAKjE,OAJI8jC,IACF17B,EAAKgzB,KAAOvtB,MAAK,EAAUA,MAAK,GAAWutB,WAE7CvtB,MAAK,EAAUA,MAAK,GAAazF,GAGnC,MAAM27B,EAAOl2B,MAAK,EAAY,EAC1Bk2B,IAASl2B,MAAK,EAChBA,MAAK,EAAUm2B,OAAO,EAAG,IAEzBn2B,MAAK,EAAYk2B,EACbA,EAAOl2B,MAAK,EAAU1T,QACxB0T,MAAK,EAAUm2B,OAAOD,IAG1Bl2B,MAAK,EAAUtO,KAAK6I,EACtB,CACA,IAAAgzB,IAC0B,IAApBvtB,MAAK,IAGTA,MAAK,GAAU,EACfA,MAAK,EAAUA,MAAK,GAAWutB,OAC/BvtB,MAAK,GAAU,EACfA,MAAK,GAAa,EACpB,CACA,IAAAo2B,GACMp2B,MAAK,EAAYA,MAAK,EAAU1T,OAAS,IAC3C0T,MAAK,GAAa,EAClBA,MAAK,GAAU,EACfA,MAAK,EAAUA,MAAK,GAAWstB,MAC/BttB,MAAK,GAAU,EAEnB,CACA,kBAAAq2B,GACE,OAA2B,IAApBr2B,MAAK,CACd,CACA,kBAAAs2B,GACE,OAAOt2B,MAAK,EAAYA,MAAK,EAAU1T,OAAS,CAClD,CACA,OAAAkiB,GACExO,MAAK,EAAY,IACnB,EAEFjX,EAAQsqC,eAAiBA,EACzB,MAAMD,EACJ,WAAAnzB,CAAYs2B,GACVv2B,KAAK9O,OAAS,GACd8O,KAAKu2B,UAAY,IAAIjnC,IACrB0Q,KAAKw2B,QAAU,IAAI7f,IACnB,MAAM,MACJpV,GACE6F,EAAM7c,YAAY6W,SACtB,IAAK,MAAOjR,EAAMsmB,EAAUxqB,EAAU,CAAC,KAAMsqC,EAC3C,IAAK,MAAMtmC,KAAOE,EAAM,CACtB,MAAMsmC,EAAWxmC,EAAI9D,WAAW,QAC5BoV,GAASk1B,GACXz2B,KAAKu2B,UAAUlhB,IAAIplB,EAAI6S,MAAM,GAAI,CAC/B2T,WACAxqB,YAEF+T,KAAKw2B,QAAQ5f,IAAI3mB,EAAIymC,MAAM,KAAKC,IAAI,KAC1Bp1B,GAAUk1B,IACpBz2B,KAAKu2B,UAAUlhB,IAAIplB,EAAK,CACtBwmB,WACAxqB,YAEF+T,KAAKw2B,QAAQ5f,IAAI3mB,EAAIymC,MAAM,KAAKC,IAAI,IAExC,CAEJ,CACA,GAAWzc,GACLA,EAAM0c,QACR52B,KAAK9O,OAAOQ,KAAK,OAEfwoB,EAAMkS,SACRpsB,KAAK9O,OAAOQ,KAAK,QAEfwoB,EAAM8W,SACRhxB,KAAK9O,OAAOQ,KAAK,QAEfwoB,EAAM6W,UACR/wB,KAAK9O,OAAOQ,KAAK,SAEnBsO,KAAK9O,OAAOQ,KAAKwoB,EAAMjqB,KACvB,MAAMd,EAAM6Q,KAAK9O,OAAO1D,KAAK,KAE7B,OADAwS,KAAK9O,OAAO5E,OAAS,EACd6C,CACT,CACA,IAAA0nC,CAAKC,EAAM5c,GACT,IAAKla,KAAKw2B,QAAQ9a,IAAIxB,EAAMjqB,KAC1B,OAEF,MAAM5B,EAAO2R,KAAKu2B,UAAU3mC,IAAIoQ,MAAK,EAAWka,IAChD,IAAK7rB,EACH,OAEF,MAAM,SACJooB,EACAxqB,SAAS,QACP8qC,GAAU,EAAK,KACfC,EAAO,GAAE,QACTC,EAAU,OAEV5oC,EACA4oC,IAAYA,EAAQH,EAAM5c,KAG9BzD,EAAS0J,KAAK2W,KAASE,EAAvBvgB,GACKsgB,IACH7c,EAAMqV,kBACNrV,EAAMsP,kBAEV,EAEFzgC,EAAQqqC,gBAAkBA,EAC1B,MAAM9N,EACJjX,sBAAwB,IAAI/e,IAAI,CAAC,CAAC,aAAc,CAAC,EAAG,EAAG,IAAK,CAAC,SAAU,CAAC,IAAK,IAAK,QAClF,WAAI4nC,GACF,MAAMC,EAAS,IAAI7nC,IAAI,CAAC,CAAC,aAAc,MAAO,CAAC,SAAU,QAEzD,OADA,EAAIgY,EAAe8vB,gBAAgBD,IAC5B,EAAI/vB,EAAM5W,QAAQwP,KAAM,UAAWm3B,EAC5C,CACA,OAAAE,CAAQC,GACN,MAAMC,GAAM,EAAIjwB,EAAekwB,QAAQF,GACvC,IAAKrpB,OAAOwpB,WAAW,2BAA2BC,QAChD,OAAOH,EAET,IAAK,MAAOx3B,EAAM43B,KAAQ33B,KAAKk3B,QAC7B,GAAIS,EAAIC,OAAM,CAACpR,EAAGz4B,IAAMy4B,IAAM+Q,EAAIxpC,KAChC,OAAOu3B,EAAauS,eAAejoC,IAAImQ,GAG3C,OAAOw3B,CACT,CACA,UAAAvQ,CAAWjnB,GACT,MAAMw3B,EAAMv3B,KAAKk3B,QAAQtnC,IAAImQ,GAC7B,OAAKw3B,EAGEnwB,EAAMhe,KAAK2Y,gBAAgBw1B,GAFzBx3B,CAGX,EAEFhX,EAAQu8B,aAAeA,EACvB,MAAMgO,EACJ,IAAgB,KAChB,IAAc,IAAIhkC,IAClB,IAAa,IAAIA,IACjB,IAAkB,KAClB,IAAqB,KACrB,IAAkB,IAAI+jC,EACtB,IAAoB,EACpB,IAAgC,IAAI1c,IACpC,IAAmB,KACnB,IAAe,KACf,IAAoB,IAAIA,IACxB,IAAiB,KACjB,IAAa,IAAIgd,EACjB,KAAa,EACb,KAAa,EACb,IAAqB,KACrB,IAAQvsB,EAAMjc,qBAAqB6H,KACnC,IAAmB,IAAI2jB,IACvB,IAAc,KACd,IAAa3W,KAAK83B,KAAK3X,KAAKngB,MAC5B,IAAcA,KAAKyyB,MAAMtS,KAAKngB,MAC9B,IAAaA,KAAK+3B,KAAK5X,KAAKngB,MAC5B,IAAYA,KAAKg4B,IAAI7X,KAAKngB,MAC1B,IAAcA,KAAKqoB,MAAMlI,KAAKngB,MAC9B,IAAgBA,KAAKi4B,QAAQ9X,KAAKngB,MAClC,IAAwBA,KAAKk4B,gBAAgB/X,KAAKngB,MAClD,IAAuBA,KAAKm4B,eAAehY,KAAKngB,MAChD,IAAwBA,KAAKo4B,gBAAgBjY,KAAKngB,MAClD,IAA2BA,KAAKq4B,mBAAmBlY,KAAKngB,MACxD,IAAkB,CAChBgzB,WAAW,EACXrJ,SAAS,EACT0M,oBAAoB,EACpBC,oBAAoB,EACpBgC,mBAAmB,GAErB,IAAe,CAAC,EAAG,GACnB,IAAwB,KACxB,IAAa,KACb,IAAU,KACVjqB,uBAAyB,EACzBA,qBAAuB,GACvB,2BAAWkqB,GACT,MAAMC,EAAQlF,EAA0BpzB,UAClCu4B,EAAe3B,IACnB,MAAM,cACJtE,GACE/nB,SACJ,OAAO+nB,GAAiBsE,GAAK,GAAWvE,SAASC,IAAkBsE,EAAK4B,uBAAuB,EAE3FC,EAAQ34B,KAAK44B,gBACbC,EAAM74B,KAAK84B,cACjB,OAAO,EAAI1xB,EAAM5W,QAAQwP,KAAM,mBAAoB,IAAIozB,EAAgB,CAAC,CAAC,CAAC,SAAU,cAAeoF,EAAMO,WAAY,CAAC,CAAC,SAAU,cAAeP,EAAMjL,MAAO,CAAC,CAAC,SAAU,eAAgB,mBAAoB,eAAgB,oBAAqBiL,EAAMpC,MAAO,CAAC,CAAC,YAAa,gBAAiB,iBAAkB,kBAAmB,gBAAiB,oBAAqB,qBAAsB,SAAU,cAAe,eAAgB,cAAeoC,EAAMriB,QAAS,CAAC,CAAC,SAAU,cAAeqiB,EAAMQ,aAAc,CAAC,CAAC,YAAa,iBAAkBR,EAAMS,yBAA0B,CACrjBjC,KAAM,EAAE2B,EAAO,GACf1B,QAASwB,IACP,CAAC,CAAC,iBAAkB,uBAAwBD,EAAMS,yBAA0B,CAC9EjC,KAAM,EAAE6B,EAAK,GACb5B,QAASwB,IACP,CAAC,CAAC,aAAc,kBAAmBD,EAAMS,yBAA0B,CACrEjC,KAAM,CAAC2B,EAAO,GACd1B,QAASwB,IACP,CAAC,CAAC,kBAAmB,wBAAyBD,EAAMS,yBAA0B,CAChFjC,KAAM,CAAC6B,EAAK,GACZ5B,QAASwB,IACP,CAAC,CAAC,UAAW,eAAgBD,EAAMS,yBAA0B,CAC/DjC,KAAM,CAAC,GAAI2B,GACX1B,QAASwB,IACP,CAAC,CAAC,eAAgB,qBAAsBD,EAAMS,yBAA0B,CAC1EjC,KAAM,CAAC,GAAI6B,GACX5B,QAASwB,IACP,CAAC,CAAC,YAAa,iBAAkBD,EAAMS,yBAA0B,CACnEjC,KAAM,CAAC,EAAG2B,GACV1B,QAASwB,IACP,CAAC,CAAC,iBAAkB,uBAAwBD,EAAMS,yBAA0B,CAC9EjC,KAAM,CAAC,EAAG6B,GACV5B,QAASwB,MAEb,CACA,WAAAx4B,CAAYi5B,EAAWC,EAAQC,EAAgBC,EAAUC,EAAatkB,GACpEhV,MAAK,GAAak5B,EAClBl5B,MAAK,GAAUm5B,EACfn5B,MAAK,GAAkBo5B,EACvBp5B,KAAK4vB,UAAYyJ,EACjBr5B,KAAK4vB,UAAU2J,IAAI,gBAAiBv5B,MAAK,IACzCA,KAAK4vB,UAAU2J,IAAI,eAAgBv5B,MAAK,IACxCA,KAAK4vB,UAAU2J,IAAI,gBAAiBv5B,MAAK,IACzCA,KAAK4vB,UAAU2J,IAAI,mBAAoBv5B,MAAK,IAC5CA,MAAK,GAAqBs5B,EAAYjpB,kBACtCrQ,MAAK,GAAiBs5B,EAAYluB,cAClCpL,MAAK,GAAcgV,EACnBhV,KAAKomB,eAAiB,CACpB+E,UAAW7jB,EAAekyB,cAAcC,iBACxC9lB,SAAU,EAEd,CACA,OAAAnF,GACExO,MAAK,KACLA,MAAK,KACLA,KAAK4vB,UAAU8J,KAAK,gBAAiB15B,MAAK,IAC1CA,KAAK4vB,UAAU8J,KAAK,eAAgB15B,MAAK,IACzCA,KAAK4vB,UAAU8J,KAAK,gBAAiB15B,MAAK,IAC1CA,KAAK4vB,UAAU8J,KAAK,mBAAoB15B,MAAK,IAC7C,IAAK,MAAM25B,KAAS35B,MAAK,GAAW2Y,SAClCghB,EAAMnrB,UAERxO,MAAK,GAAW+Y,QAChB/Y,MAAK,GAAY+Y,QACjB/Y,MAAK,GAAkB+Y,QACvB/Y,MAAK,GAAgB,KACrBA,MAAK,GAAiB+Y,QACtB/Y,MAAK,GAAgBwO,UACrBxO,MAAK,GAAgBwO,SACvB,CACA,aAAIorB,GACF,OAAO,EAAIxyB,EAAM5W,QAAQwP,KAAM,YAAaA,MAAK,GAAcA,MAAK,GAAe65B,aAAa75B,MAAK,GAAY85B,WAAY95B,MAAK,GAAY6U,YAAc,OAC9J,CACA,aAAIklB,GACF,OAAO,EAAI3yB,EAAM5W,QAAQwP,KAAM,YAAa4nB,iBAAiB5nB,MAAK,IAAY+5B,UAChF,CACA,WAAAvK,CAAYtI,GACVlnB,MAAK,IAAiBwvB,YAAYxvB,KAAMknB,EAC1C,CACA,cAAAiR,EAAe,WACbvnB,IAEA5Q,MAAK,GAAoB4Q,EAAa,CACxC,CACA,kBAAAopB,GACEh6B,MAAK,GAAWyyB,OAClB,CACA,UAAAwH,CAAWzT,EAAGC,GACZ,IAAK,MAAMkT,KAAS35B,MAAK,GAAW2Y,SAAU,CAC5C,MACE6N,EAAG0T,EACHzT,EAAG0T,EAAM,MACT3Z,EAAK,OACLC,GACEkZ,EAAMnU,IAAIgF,wBACd,GAAIhE,GAAK0T,GAAU1T,GAAK0T,EAAS1Z,GAASiG,GAAK0T,GAAU1T,GAAK0T,EAAS1Z,EACrE,OAAOkZ,CAEX,CACA,OAAO,IACT,CACA,iBAAAS,CAAkBlxC,GAAQ,GACxB8W,MAAK,GAAQyoB,UAAUC,OAAO,eAAgBx/B,EAChD,CACA,gBAAAmxC,CAAiBnT,GACflnB,MAAK,GAAkB4W,IAAIsQ,EAC7B,CACA,mBAAAoT,CAAoBpT,GAClBlnB,MAAK,GAAkBmW,OAAO+Q,EAChC,CACA,eAAAkR,EAAgB,MACd1kB,IAEA1T,KAAK0pB,iBACL1pB,KAAKomB,eAAe+E,UAAYzX,EAAQpM,EAAekyB,cAAcC,iBACrE,IAAK,MAAMvS,KAAUlnB,MAAK,GACxBknB,EAAOkR,iBAEX,CACA,kBAAAC,EAAmB,cACjBkC,IAEAv6B,KAAK0pB,iBACL1pB,KAAKomB,eAAezS,SAAW4mB,CACjC,CACA,sBAAAjT,CAAuBJ,GAChBA,EAAOyC,YAAa3pB,MAAK,IAAuBA,MAAK,GAAmB0b,IAAIwL,EAAOjW,KACtFjR,MAAK,GAAmB2jB,SAASuD,EAAOjW,GAAIiW,EAEhD,CACA,MACEjZ,OAAOoM,iBAAiB,QAASra,MAAK,IACtCiO,OAAOoM,iBAAiB,OAAQra,MAAK,GACvC,CACA,MACEiO,OAAOqM,oBAAoB,QAASta,MAAK,IACzCiO,OAAOqM,oBAAoB,OAAQta,MAAK,GAC1C,CACA,IAAA83B,GACE,IAAK93B,KAAKw6B,aACR,OAEF,MAAM,cACJhI,GACE/nB,SACJ,IAAK,MAAMyc,KAAUlnB,MAAK,GACxB,GAAIknB,EAAO1B,IAAI+M,SAASC,GAAgB,CACtCxyB,MAAK,GAAqB,CAACknB,EAAQsL,GACnCtL,EAAO/B,qBAAsB,EAC7B,KACF,CAEJ,CACA,KAAAsN,GACE,IAAKzyB,MAAK,GACR,OAEF,MAAOy6B,EAAYC,GAAqB16B,MAAK,GAC7CA,MAAK,GAAqB,KAC1B06B,EAAkBrgB,iBAAiB,WAAW,KAC5CogB,EAAWtV,qBAAsB,CAAI,GACpC,CACDwV,MAAM,IAERD,EAAkBjI,OACpB,CACA,MACExkB,OAAOoM,iBAAiB,UAAWra,MAAK,GAAe,CACrDysB,SAAS,GAEb,CACA,MACExe,OAAOqM,oBAAoB,UAAWta,MAAK,GAAe,CACxDysB,SAAS,GAEb,CACA,MACEhiB,SAAS4P,iBAAiB,OAAQra,MAAK,IACvCyK,SAAS4P,iBAAiB,MAAOra,MAAK,IACtCyK,SAAS4P,iBAAiB,QAASra,MAAK,GAC1C,CACA,MACEyK,SAAS6P,oBAAoB,OAAQta,MAAK,IAC1CyK,SAAS6P,oBAAoB,MAAOta,MAAK,IACzCyK,SAAS6P,oBAAoB,QAASta,MAAK,GAC7C,CACA,gBAAA46B,GACE56B,MAAK,KACLA,MAAK,IACP,CACA,mBAAA66B,GACE76B,MAAK,KACLA,MAAK,IACP,CACA,IAAA+3B,CAAK7d,GAGH,GAFAA,EAAMsP,iBACNxpB,MAAK,IAAe0pB,kBACf1pB,KAAKw6B,aACR,OAEF,MAAMM,EAAU,GAChB,IAAK,MAAM5T,KAAUlnB,MAAK,GAAkB,CAC1C,MAAMskB,EAAa4C,EAAO3C,WAAU,GAChCD,GACFwW,EAAQppC,KAAK4yB,EAEjB,CACuB,IAAnBwW,EAAQxuC,QAGZ4tB,EAAM6gB,cAAcC,QAAQ,oBAAqBvW,KAAKC,UAAUoW,GAClE,CACA,GAAA9C,CAAI9d,GACFla,KAAK+3B,KAAK7d,GACVla,KAAKmW,QACP,CACA,KAAAkS,CAAMnO,GACJA,EAAMsP,iBACN,MAAM,cACJuR,GACE7gB,EACJ,IAAK,MAAMoO,KAAQyS,EAAcnjB,MAC/B,IAAK,MAAMgP,KAAc5mB,MAAK,GAC5B,GAAI4mB,EAAWuB,yBAAyBG,EAAKn2B,MAE3C,YADAy0B,EAAWyB,MAAMC,EAAMtoB,KAAK+oB,cAKlC,IAAIhjB,EAAOg1B,EAAcjpB,QAAQ,qBACjC,IAAK/L,EACH,OAEF,IACEA,EAAO0e,KAAKwW,MAAMl1B,EACpB,CAAE,MAAO3U,GAEP,YADA,EAAIgW,EAAM/V,MAAM,WAAWD,EAAG0O,YAEhC,CACA,IAAK+B,MAAMq5B,QAAQn1B,GACjB,OAEF/F,KAAKg5B,cACL,MAAMW,EAAQ35B,KAAK+oB,aACnB,IACE,MAAMoS,EAAa,GACnB,IAAK,MAAMjU,KAAUnhB,EAAM,CACzB,MAAMq1B,EAAqBzB,EAAM1H,YAAY/K,GAC7C,IAAKkU,EACH,OAEFD,EAAWzpC,KAAK0pC,EAClB,CACA,MAAM9N,EAAM,KACV,IAAK,MAAMpG,KAAUiU,EACnBn7B,MAAK,GAAkBknB,GAEzBlnB,MAAK,GAAem7B,EAAW,EAE3B5N,EAAO,KACX,IAAK,MAAMrG,KAAUiU,EACnBjU,EAAOzD,QACT,EAEFzjB,KAAK8oB,YAAY,CACfwE,MACAC,OACAC,UAAU,GAEd,CAAE,MAAOp8B,IACP,EAAIgW,EAAM/V,MAAM,WAAWD,EAAG0O,YAChC,CACF,CACA,OAAAm4B,CAAQ/d,GACDla,KAAKq7B,aAAaxJ,2BACrByB,EAA0BiF,iBAAiB1B,KAAK72B,KAAMka,EAE1D,CACA,eAAAge,CAAgBv3B,GACV,CAAC,OAAQ,OAAQ,SAAU,aAAaa,SAASb,EAAQZ,OAC3DC,KAAKW,EAAQZ,OAEjB,CACA,IAAsBY,GACD3X,OAAO86B,QAAQnjB,GAAS26B,MAAK,EAAErrC,EAAK/G,KAAW8W,MAAK,GAAgB/P,KAAS/G,KAE9F8W,KAAK4vB,UAAUC,SAAS,gCAAiC,CACvDhiB,OAAQ7N,KACRW,QAAS3X,OAAOuvB,OAAOvY,MAAK,GAAiBW,IAGnD,CACA,IAAkBA,GAChBX,KAAK4vB,UAAUC,SAAS,gCAAiC,CACvDhiB,OAAQ7N,KACRW,WAEJ,CACA,eAAA46B,CAAgBvI,GACVA,GACFhzB,MAAK,KACLA,MAAK,KACLA,MAAK,KACLA,MAAK,GAAsB,CACzBgzB,UAAWhzB,MAAK,KAAUoH,EAAMjc,qBAAqB6H,KACrD22B,QAAS3pB,MAAK,KACdq2B,mBAAoBr2B,MAAK,GAAgBq2B,qBACzCC,mBAAoBt2B,MAAK,GAAgBs2B,qBACzCgC,mBAAmB,MAGrBt4B,MAAK,KACLA,MAAK,KACLA,MAAK,KACLA,MAAK,GAAsB,CACzBgzB,WAAW,IAEbhzB,KAAKo6B,mBAAkB,GAE3B,CACA,mBAAAoB,CAAoBC,GAClB,IAAIz7B,MAAK,GAAT,CAGAA,MAAK,GAAey7B,EACpB,IAAK,MAAM7U,KAAc5mB,MAAK,GAC5BA,MAAK,GAAkB4mB,EAAWsB,0BAHpC,CAKF,CACA,KAAA0L,GACE,OAAO5zB,MAAK,GAAW4zB,OACzB,CACA,gBAAI7K,GACF,OAAO/oB,MAAK,GAAWpQ,IAAIoQ,MAAK,GAClC,CACA,QAAA07B,CAAShpB,GACP,OAAO1S,MAAK,GAAWpQ,IAAI8iB,EAC7B,CACA,oBAAIipB,GACF,OAAO37B,MAAK,EACd,CACA,QAAA47B,CAASjC,GACP35B,MAAK,GAAWqV,IAAIskB,EAAMjnB,UAAWinB,GACjC35B,MAAK,GACP25B,EAAMkC,SAENlC,EAAMmC,SAEV,CACA,WAAAC,CAAYpC,GACV35B,MAAK,GAAWmW,OAAOwjB,EAAMjnB,UAC/B,CACA,UAAAspB,CAAWC,EAAMC,EAAS,MACxB,GAAIl8B,MAAK,KAAUi8B,EAAnB,CAIA,GADAj8B,MAAK,GAAQi8B,EACTA,IAAS70B,EAAMjc,qBAAqB6H,KAGtC,OAFAgN,KAAKu7B,iBAAgB,QACrBv7B,MAAK,KAGPA,KAAKu7B,iBAAgB,GACrBv7B,MAAK,KACLA,KAAKg5B,cACL,IAAK,MAAMW,KAAS35B,MAAK,GAAW2Y,SAClCghB,EAAMqC,WAAWC,GAEnB,GAAKC,EAGL,IAAK,MAAMhV,KAAUlnB,MAAK,GAAY2Y,SACpC,GAAIuO,EAAOxB,sBAAwBwW,EAAQ,CACzCl8B,KAAKopB,YAAYlC,GACjBA,EAAO4L,kBACP,KACF,CArBF,CAuBF,CACA,aAAAqJ,CAAcF,GACRA,IAASj8B,MAAK,IAGlBA,KAAK4vB,UAAUC,SAAS,6BAA8B,CACpDhiB,OAAQ7N,KACRi8B,QAEJ,CACA,YAAAvJ,CAAavgC,EAAMjJ,GACjB,GAAK8W,MAAK,GAGV,GAAI7N,IAASiV,EAAM/b,2BAA2BgI,OAA9C,CAIA,IAAK,MAAM6zB,KAAUlnB,MAAK,GACxBknB,EAAOwL,aAAavgC,EAAMjJ,GAE5B,IAAK,MAAM09B,KAAc5mB,MAAK,GAC5B4mB,EAAWoB,oBAAoB71B,EAAMjJ,EALvC,MAFE8W,KAAK+oB,aAAaqT,aAAajqC,EASnC,CACA,aAAAkqC,CAAcC,GAAW,GACvB,GAAIt8B,MAAK,KAAes8B,EAAxB,CAGAt8B,MAAK,GAAas8B,EAClB,IAAK,MAAM3C,KAAS35B,MAAK,GAAW2Y,SAC9B2jB,EACF3C,EAAM4C,eAEN5C,EAAM6C,cAER7C,EAAMnU,IAAIiD,UAAUC,OAAO,UAAW4T,EARxC,CAUF,CACA,MACE,IAAKt8B,MAAK,GAAY,CACpBA,MAAK,IAAa,EAClB,IAAK,MAAM25B,KAAS35B,MAAK,GAAW2Y,SAClCghB,EAAMkC,QAEV,CACF,CACA,MAEE,GADA77B,KAAKg5B,cACDh5B,MAAK,GAAY,CACnBA,MAAK,IAAa,EAClB,IAAK,MAAM25B,KAAS35B,MAAK,GAAW2Y,SAClCghB,EAAMmC,SAEV,CACF,CACA,UAAAW,CAAW/pB,GACT,MAAMooB,EAAU,GAChB,IAAK,MAAM5T,KAAUlnB,MAAK,GAAY2Y,SAChCuO,EAAOxU,YAAcA,GACvBooB,EAAQppC,KAAKw1B,GAGjB,OAAO4T,CACT,CACA,SAAA4B,CAAUzrB,GACR,OAAOjR,MAAK,GAAYpQ,IAAIqhB,EAC9B,CACA,SAAA0rB,CAAUzV,GACRlnB,MAAK,GAAYqV,IAAI6R,EAAOjW,GAAIiW,EAClC,CACA,YAAAgL,CAAahL,GACXlnB,MAAK,GAAYmW,OAAO+Q,EAAOjW,IAC/BjR,KAAKsyB,SAASpL,GACTA,EAAOxB,qBAAwB1lB,MAAK,GAA8B0b,IAAIwL,EAAOxB,sBAChF1lB,MAAK,IAAoByjB,OAAOyD,EAAOjW,GAE3C,CACA,2BAAA2rB,CAA4B1V,GAC1BlnB,MAAK,GAA8B4W,IAAIsQ,EAAOxB,qBAC9CwB,EAAOP,SAAU,CACnB,CACA,0BAAAkW,CAA2BnX,GACzB,OAAO1lB,MAAK,GAA8B0b,IAAIgK,EAChD,CACA,8BAAAoX,CAA+B5V,GAC7BlnB,MAAK,GAA8BmW,OAAO+Q,EAAOxB,qBACjDwB,EAAOP,SAAU,CACnB,CACA,IAAkBO,GAChB,MAAMyS,EAAQ35B,MAAK,GAAWpQ,IAAIs3B,EAAOxU,WACrCinB,EACFA,EAAMoD,aAAa7V,GAEnBlnB,KAAK28B,UAAUzV,EAEnB,CACA,eAAA+L,CAAgB/L,GACVlnB,MAAK,KAAkBknB,IAG3BlnB,MAAK,GAAgBknB,EACjBA,GACFlnB,MAAK,GAAkBknB,EAAOqB,oBAElC,CACA,cAAA0I,CAAe/J,GACb,GAAIlnB,MAAK,GAAiB0b,IAAIwL,GAM5B,OALAlnB,MAAK,GAAiBmW,OAAO+Q,GAC7BA,EAAOoL,gBACPtyB,MAAK,GAAsB,CACzBs4B,kBAAmBt4B,KAAKw6B,eAI5Bx6B,MAAK,GAAiB4W,IAAIsQ,GAC1BA,EAAOmL,SACPryB,MAAK,GAAkBknB,EAAOqB,oBAC9BvoB,MAAK,GAAsB,CACzBs4B,mBAAmB,GAEvB,CACA,WAAAlP,CAAYlC,GACV,IAAK,MAAM8V,KAAMh9B,MAAK,GAChBg9B,IAAO9V,GACT8V,EAAG1K,WAGPtyB,MAAK,GAAiB+Y,QACtB/Y,MAAK,GAAiB4W,IAAIsQ,GAC1BA,EAAOmL,SACPryB,MAAK,GAAkBknB,EAAOqB,oBAC9BvoB,MAAK,GAAsB,CACzBs4B,mBAAmB,GAEvB,CACA,UAAA7H,CAAWvJ,GACT,OAAOlnB,MAAK,GAAiB0b,IAAIwL,EACnC,CACA,QAAAoL,CAASpL,GACPA,EAAOoL,WACPtyB,MAAK,GAAiBmW,OAAO+Q,GAC7BlnB,MAAK,GAAsB,CACzBs4B,kBAAmBt4B,KAAKw6B,cAE5B,CACA,gBAAIA,GACF,OAAsC,IAA/Bx6B,MAAK,GAAiB0X,IAC/B,CACA,IAAA6V,GACEvtB,MAAK,GAAgButB,OACrBvtB,MAAK,GAAsB,CACzBq2B,mBAAoBr2B,MAAK,GAAgBq2B,qBACzCC,oBAAoB,EACpB3M,QAAS3pB,MAAK,MAElB,CACA,IAAAo2B,GACEp2B,MAAK,GAAgBo2B,OACrBp2B,MAAK,GAAsB,CACzBq2B,oBAAoB,EACpBC,mBAAoBt2B,MAAK,GAAgBs2B,qBACzC3M,QAAS3pB,MAAK,MAElB,CACA,WAAA8oB,CAAYpc,GACV1M,MAAK,GAAgB4W,IAAIlK,GACzB1M,MAAK,GAAsB,CACzBq2B,oBAAoB,EACpBC,oBAAoB,EACpB3M,QAAS3pB,MAAK,MAElB,CACA,MACE,GAA8B,IAA1BA,MAAK,GAAY0X,KACnB,OAAO,EAET,GAA8B,IAA1B1X,MAAK,GAAY0X,KACnB,IAAK,MAAMwP,KAAUlnB,MAAK,GAAY2Y,SACpC,OAAOuO,EAAOyC,UAGlB,OAAO,CACT,CACA,SAEE,GADA3pB,KAAK0pB,kBACA1pB,KAAKw6B,aACR,OAEF,MAAMM,EAAU,IAAI96B,MAAK,IAWzBA,KAAK8oB,YAAY,CACfwE,IAXU,KACV,IAAK,MAAMpG,KAAU4T,EACnB5T,EAAOzD,QACT,EASA8J,KAPW,KACX,IAAK,MAAMrG,KAAU4T,EACnB96B,MAAK,GAAkBknB,EACzB,EAKAsG,UAAU,GAEd,CACA,cAAA9D,GACE1pB,MAAK,IAAe0pB,gBACtB,CACA,qBAAAgP,GACE,OAAO14B,MAAK,IAAiBA,KAAKw6B,YACpC,CACA,IAAeM,GACb96B,MAAK,GAAiB+Y,QACtB,IAAK,MAAMmO,KAAU4T,EACf5T,EAAOyC,YAGX3pB,MAAK,GAAiB4W,IAAIsQ,GAC1BA,EAAOmL,UAETryB,MAAK,GAAsB,CACzBs4B,mBAAmB,GAEvB,CACA,SAAAS,GACE,IAAK,MAAM7R,KAAUlnB,MAAK,GACxBknB,EAAO0C,SAET5pB,MAAK,GAAeA,MAAK,GAAY2Y,SACvC,CACA,WAAAqgB,GACE,GAAIh5B,MAAK,GACPA,MAAK,GAAc0pB,sBAGrB,GAAK1pB,KAAKw6B,aAAV,CAGA,IAAK,MAAMtT,KAAUlnB,MAAK,GACxBknB,EAAOoL,WAETtyB,MAAK,GAAiB+Y,QACtB/Y,MAAK,GAAsB,CACzBs4B,mBAAmB,GANrB,CAQF,CACA,wBAAAW,CAAyBzS,EAAGC,EAAGwW,GAAW,GAIxC,GAHKA,GACHj9B,KAAK0pB,kBAEF1pB,KAAKw6B,aACR,OAEFx6B,MAAK,GAAa,IAAMwmB,EACxBxmB,MAAK,GAAa,IAAMymB,EACxB,MAAOyW,EAAQC,GAAUn9B,MAAK,GACxB86B,EAAU,IAAI96B,MAAK,IAErBA,MAAK,IACPuV,aAAavV,MAAK,IAEpBA,MAAK,GAAwBmZ,YAAW,KACtCnZ,MAAK,GAAwB,KAC7BA,MAAK,GAAa,GAAKA,MAAK,GAAa,GAAK,EAC9CA,KAAK8oB,YAAY,CACfwE,IAAK,KACH,IAAK,MAAMpG,KAAU4T,EACf96B,MAAK,GAAY0b,IAAIwL,EAAOjW,KAC9BiW,EAAOgD,gBAAgBgT,EAAQC,EAEnC,EAEF5P,KAAM,KACJ,IAAK,MAAMrG,KAAU4T,EACf96B,MAAK,GAAY0b,IAAIwL,EAAOjW,KAC9BiW,EAAOgD,iBAAiBgT,GAASC,EAErC,EAEF3P,UAAU,GACV,GAvBiB,KAyBrB,IAAK,MAAMtG,KAAU4T,EACnB5T,EAAOgD,gBAAgB1D,EAAGC,EAE9B,CACA,gBAAAkK,GACE,GAAK3wB,KAAKw6B,aAAV,CAGAx6B,KAAKo6B,mBAAkB,GACvBp6B,MAAK,GAAmB,IAAI1Q,IAC5B,IAAK,MAAM43B,KAAUlnB,MAAK,GACxBA,MAAK,GAAiBqV,IAAI6R,EAAQ,CAChCwF,OAAQxF,EAAOV,EACfmG,OAAQzF,EAAOT,EACf2W,eAAgBlW,EAAOxU,UACvBwa,KAAM,EACNC,KAAM,EACNkQ,cAAe,GAVnB,CAaF,CACA,cAAAvM,GACE,IAAK9wB,MAAK,GACR,OAAO,EAETA,KAAKo6B,mBAAkB,GACvB,MAAMtqC,EAAMkQ,MAAK,GACjBA,MAAK,GAAmB,KACxB,IAAIs9B,GAAyB,EAC7B,IAAK,OAAO,EACV9W,EAAC,EACDC,EAAC,UACD/T,GACCxpB,KAAU4G,EACX5G,EAAMgkC,KAAO1G,EACbt9B,EAAMikC,KAAO1G,EACbv9B,EAAMm0C,aAAe3qB,EACrB4qB,IAA2B9W,IAAMt9B,EAAMwjC,QAAUjG,IAAMv9B,EAAMyjC,QAAUja,IAAcxpB,EAAMk0C,eAE7F,IAAKE,EACH,OAAO,EAET,MAAMC,EAAO,CAACrW,EAAQV,EAAGC,EAAG/T,KAC1B,GAAI1S,MAAK,GAAY0b,IAAIwL,EAAOjW,IAAK,CACnC,MAAM2T,EAAS5kB,MAAK,GAAWpQ,IAAI8iB,GAC/BkS,EACFsC,EAAOiK,sBAAsBvM,EAAQ4B,EAAGC,IAExCS,EAAOxU,UAAYA,EACnBwU,EAAOV,EAAIA,EACXU,EAAOT,EAAIA,EAEf,GAuBF,OArBAzmB,KAAK8oB,YAAY,CACfwE,IAAK,KACH,IAAK,MAAOpG,GAAQ,KAClBgG,EAAI,KACJC,EAAI,aACJkQ,MACIvtC,EACJytC,EAAKrW,EAAQgG,EAAMC,EAAMkQ,EAC3B,EAEF9P,KAAM,KACJ,IAAK,MAAOrG,GAAQ,OAClBwF,EAAM,OACNC,EAAM,eACNyQ,MACIttC,EACJytC,EAAKrW,EAAQwF,EAAQC,EAAQyQ,EAC/B,EAEF5P,UAAU,KAEL,CACT,CACA,mBAAAqD,CAAoB/G,EAAIC,GACtB,GAAK/pB,MAAK,GAGV,IAAK,MAAMknB,KAAUlnB,MAAK,GAAiB7P,OACzC+2B,EAAOmD,KAAKP,EAAIC,EAEpB,CACA,OAAAgI,CAAQ7K,GACN,GAAsB,OAAlBA,EAAOtC,OAAiB,CAC1B,MAAMA,EAAS5kB,KAAK07B,SAASxU,EAAOxU,WAChCkS,GACFA,EAAOwM,aAAalK,GACpBtC,EAAOmY,aAAa7V,KAEpBlnB,KAAK28B,UAAUzV,GACflnB,KAAKsnB,uBAAuBJ,GAC5BA,EAAO6K,UAEX,MACE7K,EAAOtC,OAAOmY,aAAa7V,EAE/B,CACA,QAAAsW,CAAStW,GACP,OAAOlnB,MAAK,KAAkBknB,CAChC,CACA,SAAAmU,GACE,OAAOr7B,MAAK,EACd,CACA,OAAAy9B,GACE,OAAOz9B,MAAK,EACd,CACA,gBAAI09B,GACF,OAAO,EAAIt2B,EAAM5W,QAAQwP,KAAM,eAAgB,IAAI6zB,EACrD,EAEF9qC,EAAQuqC,0BAA4BA,CAE7B,EAED,CAAExqC,EAAyBC,EAASmd,KAI1Cld,OAAOC,eAAeF,EAAS,aAAc,CAC3CG,OAAO,IAETH,EAAQgqB,UAAYhqB,EAAQ2wB,4BAA8B3wB,EAAQywC,cAAgBzwC,EAAQgrB,aAAehrB,EAAQ40C,cAAgB50C,EAAQ8f,2BAA6B9f,EAAQ60C,cAAgB70C,EAAQ4f,iBAAmB5f,EAAQwf,iBAAmBxf,EAAQ0f,0BAAuB,EACnR1f,EAAQknB,WA8hBR,SAAoBtP,GAClBpS,QAAQC,IAAI,yBAA2BmS,EACzC,EA/hBA5X,EAAQquC,eAmmBR,SAAwBD,GACtB,MAAM0G,EAAOpzB,SAASqhB,cAAc,QACpC+R,EAAKlW,MAAMmW,WAAa,SACxBrzB,SAASszB,KAAK/R,OAAO6R,GACrB,IAAK,MAAM99B,KAAQo3B,EAAOhnC,OAAQ,CAChC0tC,EAAKlW,MAAM2P,MAAQv3B,EACnB,MAAMi+B,EAAgB/vB,OAAO2Z,iBAAiBiW,GAAMvG,MACpDH,EAAO9hB,IAAItV,EAAMy3B,EAAOwG,GAC1B,CACAH,EAAKpa,QACP,EA5mBA16B,EAAQk1C,oBA6mBR,SAA6BlK,GAC3B,MAAM,EACJ1wB,EAAC,EACDnB,EAAC,EACDoB,EAAC,EACDV,EAAC,EACDguB,EAAC,EACDsN,GACEnK,EAAIoK,eACR,MAAO,CAAC96B,EAAGnB,EAAGoB,EAAGV,EAAGguB,EAAGsN,EACzB,EAtnBAn1C,EAAQq1C,2BAunBR,SAAoCrK,GAClC,MAAM,EACJ1wB,EAAC,EACDnB,EAAC,EACDoB,EAAC,EACDV,EAAC,EACDguB,EAAC,EACDsN,GACEnK,EAAIoK,eAAeE,aACvB,MAAO,CAACh7B,EAAGnB,EAAGoB,EAAGV,EAAGguB,EAAGsN,EACzB,EAhoBAn1C,EAAQu1C,mBA0bR,SAA4BvyC,EAAKwyC,GAAgB,GAI/C,OAHKA,KACFxyC,GAAOA,EAAI2qC,MAAM,OAAQ,IAErB3qC,EAAIyyC,UAAUzyC,EAAI0yC,YAAY,KAAO,EAC9C,EA9bA11C,EAAQ21C,sBA+bR,SAA+B3yC,EAAK4yC,EAAkB,gBACpD,GAAmB,iBAAR5yC,EACT,OAAO4yC,EAET,GAAIh1B,EAAa5d,GAEf,OADA,EAAIqb,EAAM/V,MAAM,sEACTstC,EAET,MACMC,EAAa,gCACbC,EAFQ,sDAEShI,KAAK9qC,GAC5B,IAAI+yC,EAAoBF,EAAW/H,KAAKgI,EAAS,KAAOD,EAAW/H,KAAKgI,EAAS,KAAOD,EAAW/H,KAAKgI,EAAS,IACjH,GAAIC,IACFA,EAAoBA,EAAkB,GAClCA,EAAkBt9B,SAAS,MAC7B,IACEs9B,EAAoBF,EAAW/H,KAAKpxB,mBAAmBq5B,IAAoB,EAC7E,CAAE,MAAO,CAGb,OAAOA,GAAqBH,CAC9B,EAndA51C,EAAQyuC,OAASA,EACjBzuC,EAAQg2C,mBAgkBR,SAA4BC,GAAS,MACnCtrB,EAAQ,EAAC,SACTC,EAAW,IAEX,MAAM,MACJ6M,EAAK,OACLC,GACEue,EAAQC,WAAWtX,MACjB3T,EAAU,CAAC,EAAG,EAAGkrB,SAAS1e,GAAQ0e,SAASze,IACjD,OAAO,IAAI1M,EAAa,CACtBC,UACAN,QACAC,YAEJ,EA7kBA5qB,EAAQ4gB,aAAeA,EACvB5gB,EAAQo2C,UAkbR,SAAmBxe,GACjB,MAA2B,iBAAbA,GAAyB,UAAUye,KAAKze,EACxD,EAnbA53B,EAAQkiB,gBAAkBA,EAC1BliB,EAAQi0B,WAmgBR,SAAoBlU,EAAKu2B,GAAsB,GAC7C,OAAO,IAAIz5B,SAAQ,CAACC,EAASC,KAC3B,MAAMw5B,EAAS70B,SAASqhB,cAAc,UACtCwT,EAAOx2B,IAAMA,EACbw2B,EAAOpK,OAAS,SAAU3W,GACpB8gB,GACFC,EAAO7b,SAET5d,EAAQ0Y,EACV,EACA+gB,EAAOjK,QAAU,WACfvvB,EAAO,IAAItG,MAAM,0BAA0B8/B,EAAOx2B,OACpD,GACC2B,SAAS80B,MAAQ90B,SAASod,iBAAiBmE,OAAOsT,EAAO,GAE9D,EAjhBAv2C,EAAQkjC,cA+fR,SAAuB2E,GACrBA,EAAEpH,gBACJ,EAhgBAzgC,EAAQy2C,mBAwnBR,SAA4Bha,EAAK7Q,EAAU8qB,GAAW,EAAOC,GAAa,GACxE,GAAI/qB,aAAoBZ,EAAc,CACpC,MAAM,UACJgS,EAAS,WACTC,GACErR,EAASmR,SACP,MACJ6B,GACEnC,EACEma,EAAWv4B,EAAM7c,YAAYkX,oBAC7B0sB,EAAI,yBAAyBpI,MACjCqI,EAAI,yBAAyBpI,MACzB4Z,EAAWD,EAAW,SAASxR,UAAY,QAAQA,KACvD0R,EAAYF,EAAW,SAASvR,UAAY,QAAQA,KACjDqR,GAAY9qB,EAAShB,SAAW,KAAQ,GAI3CgU,EAAMnH,MAAQqf,EACdlY,EAAMlH,OAASmf,IAJfjY,EAAMnH,MAAQof,EACdjY,EAAMlH,OAASof,EAKnB,CACIH,GACFla,EAAI6J,aAAa,qBAAsB1a,EAAShB,SAEpD,EAhpBA,IAAImsB,EAAgB55B,EAAoB,GACpCkB,EAAQlB,EAAoB,GAChC,MAAM65B,EAAS,6BACf,MAAMvG,EACJnrB,WAAa,GACbA,WAAa,GACbA,wBAA0BrO,KAAK0B,IAAM1B,KAAKggC,IAE5Cj3C,EAAQywC,cAAgBA,EACxB,MAAM7wB,UAAyBm3B,EAAcG,kBAC3C,IACA,IACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GAAM,EACN,WAAAhgC,EAAY,MACVgJ,EAAK,cACLuB,EAAgB5hB,WAAW6hB,UACzB,CAAC,GACH/J,QACAV,MAAK,EAASiJ,EACdjJ,MAAK,GAAYwK,CACnB,CACA,KAAI,GACF,OAAOxK,MAAK,KAAY,IAAI1Q,GAC9B,CACA,MAAI,GACF,IAAK0Q,MAAK,GAAQ,CAChB,MAAMwlB,EAAMxlB,MAAK,GAAU8rB,cAAc,QACnC,MACJnE,GACEnC,EACJmC,EAAMmW,WAAa,SACnBnW,EAAMuY,QAAU,SAChBvY,EAAMnH,MAAQmH,EAAMlH,OAAS,EAC7BkH,EAAMwY,SAAW,WACjBxY,EAAMmD,IAAMnD,EAAMiD,KAAO,EACzBjD,EAAMsB,QAAU,EAChB,MAAMmX,EAAMpgC,MAAK,GAAUqgC,gBAAgBN,EAAQ,OACnDK,EAAI/Q,aAAa,QAAS,GAC1B+Q,EAAI/Q,aAAa,SAAU,GAC3BrvB,MAAK,GAASA,MAAK,GAAUqgC,gBAAgBN,EAAQ,QACrDva,EAAIwG,OAAOoU,GACXA,EAAIpU,OAAOhsB,MAAK,IAChBA,MAAK,GAAU+9B,KAAK/R,OAAOxG,EAC7B,CACA,OAAOxlB,MAAK,EACd,CACA,SAAAsgC,CAAUC,GACR,IAAKA,EACH,MAAO,OAET,IAIIC,EAAQC,EAAQC,EAAQzwC,EAJxB/G,EAAQ8W,MAAK,EAAOpQ,IAAI2wC,GAC5B,GAAIr3C,EACF,OAAOA,EAGT,GAAoB,IAAhBq3C,EAAKj0C,OAAc,CACrB,MAAMq0C,EAAOJ,EAAK,GACZrvC,EAAS,IAAI2Q,MAAM,KACzB,IAAK,IAAI9T,EAAI,EAAGA,EAAI,IAAKA,IACvBmD,EAAOnD,GAAK4yC,EAAK5yC,GAAK,IAExBkC,EAAMuwC,EAASC,EAASC,EAASxvC,EAAO1D,KAAK,IAC/C,KAAO,CACL,MAAOmzC,EAAMC,EAAMC,GAAQN,EACrBO,EAAU,IAAIj/B,MAAM,KACpBk/B,EAAU,IAAIl/B,MAAM,KACpBm/B,EAAU,IAAIn/B,MAAM,KAC1B,IAAK,IAAI9T,EAAI,EAAGA,EAAI,IAAKA,IACvB+yC,EAAQ/yC,GAAK4yC,EAAK5yC,GAAK,IACvBgzC,EAAQhzC,GAAK6yC,EAAK7yC,GAAK,IACvBizC,EAAQjzC,GAAK8yC,EAAK9yC,GAAK,IAEzByyC,EAASM,EAAQtzC,KAAK,KACtBizC,EAASM,EAAQvzC,KAAK,KACtBkzC,EAASM,EAAQxzC,KAAK,KACtByC,EAAM,GAAGuwC,IAASC,IAASC,GAC7B,CAEA,GADAx3C,EAAQ8W,MAAK,EAAOpQ,IAAIK,GACpB/G,EAEF,OADA8W,MAAK,EAAOqV,IAAIkrB,EAAMr3C,GACfA,EAET,MAAM+nB,EAAK,KAAKjR,MAAK,kBAAuBA,MAAK,MAC3CjU,EAAM,QAAQklB,KACpBjR,MAAK,EAAOqV,IAAIkrB,EAAMx0C,GACtBiU,MAAK,EAAOqV,IAAIplB,EAAKlE,GACrB,MAAMk1C,EAASjhC,MAAK,GAAciR,GAElC,OADAjR,MAAK,GAA0BwgC,EAAQC,EAAQC,EAAQO,GAChDl1C,CACT,CACA,YAAA8tC,CAAaqH,EAASC,GACpB,MAAMlxC,EAAM,GAAGixC,KAAWC,IAC1B,GAAInhC,MAAK,KAAY/P,EACnB,OAAO+P,MAAK,GAKd,GAHAA,MAAK,GAAU/P,EACf+P,MAAK,GAAU,OACfA,MAAK,IAAYyjB,UACZyd,IAAYC,EACf,OAAOnhC,MAAK,GAEd,MAAMohC,EAAQphC,MAAK,GAAQkhC,GAC3BA,EAAU95B,EAAMhe,KAAK2Y,gBAAgBq/B,GACrC,MAAMC,EAAQrhC,MAAK,GAAQmhC,GAG3B,GAFAA,EAAU/5B,EAAMhe,KAAK2Y,gBAAgBs/B,GACrCrhC,MAAK,GAAM2nB,MAAM2P,MAAQ,GACT,YAAZ4J,GAAqC,YAAZC,GAAyBD,IAAYC,EAChE,OAAOnhC,MAAK,GAEd,MAAMlQ,EAAM,IAAI+R,MAAM,KACtB,IAAK,IAAI9T,EAAI,EAAGA,GAAK,IAAKA,IAAK,CAC7B,MAAMy4B,EAAIz4B,EAAI,IACd+B,EAAI/B,GAAKy4B,GAAK,OAAUA,EAAI,QAAUA,EAAI,MAAS,QAAU,GAC/D,CACA,MAAM8a,EAAQxxC,EAAItC,KAAK,KACjByjB,EAAK,KAAKjR,MAAK,eACfihC,EAASjhC,MAAK,GAAsBA,MAAK,GAAciR,GAC7DjR,MAAK,GAA0BshC,EAAOA,EAAOA,EAAOL,GACpDjhC,MAAK,GAAmBihC,GACxB,MAAMM,EAAW,CAACj+B,EAAGxB,KACnB,MAAM0/B,EAAQJ,EAAM99B,GAAK,IACnBuM,EAAMwxB,EAAM/9B,GAAK,IACjBm+B,EAAM,IAAI5/B,MAAMC,EAAI,GAC1B,IAAK,IAAI/T,EAAI,EAAGA,GAAK+T,EAAG/T,IACtB0zC,EAAI1zC,GAAKyzC,EAAQzzC,EAAI+T,GAAK+N,EAAM2xB,GAElC,OAAOC,EAAIj0C,KAAK,IAAI,EAItB,OAFAwS,MAAK,GAA0BuhC,EAAS,EAAG,GAAIA,EAAS,EAAG,GAAIA,EAAS,EAAG,GAAIN,GAC/EjhC,MAAK,GAAU,QAAQiR,KAChBjR,MAAK,EACd,CACA,qBAAA0hC,CAAsBR,EAASC,EAASQ,EAAYC,GAClD,MAAM3xC,EAAM,GAAGixC,KAAWC,KAAWQ,KAAcC,IACnD,GAAI5hC,MAAK,KAAqB/P,EAC5B,OAAO+P,MAAK,GAKd,GAHAA,MAAK,GAAmB/P,EACxB+P,MAAK,GAAmB,OACxBA,MAAK,IAAqByjB,UACrByd,IAAYC,EACf,OAAOnhC,MAAK,GAEd,MAAOohC,EAAOC,GAAS,CAACH,EAASC,GAASrxC,IAAIkQ,MAAK,GAAQmgB,KAAKngB,OAChE,IAAI6hC,EAAS7zC,KAAKs9B,MAAM,MAAS8V,EAAM,GAAK,MAASA,EAAM,GAAK,MAASA,EAAM,IAC3EU,EAAS9zC,KAAKs9B,MAAM,MAAS+V,EAAM,GAAK,MAASA,EAAM,GAAK,MAASA,EAAM,KAC1EU,EAAUC,GAAY,CAACL,EAAYC,GAAY9xC,IAAIkQ,MAAK,GAAQmgB,KAAKngB,OACtE8hC,EAASD,KACVA,EAAQC,EAAQC,EAAUC,GAAY,CAACF,EAAQD,EAAQG,EAAUD,IAEpE/hC,MAAK,GAAM2nB,MAAM2P,MAAQ,GACzB,MAAMiK,EAAW,CAACU,EAAIC,EAAIpgC,KACxB,MAAM2/B,EAAM,IAAI5/B,MAAM,KAChBsgC,GAAQL,EAASD,GAAU//B,EAC3BsgC,EAAWH,EAAK,IAChBI,GAAWH,EAAKD,IAAO,IAAMngC,GACnC,IAAIwgC,EAAO,EACX,IAAK,IAAIv0C,EAAI,EAAGA,GAAK+T,EAAG/T,IAAK,CAC3B,MAAMw0C,EAAIv0C,KAAKs9B,MAAMuW,EAAS9zC,EAAIo0C,GAC5Bj5C,EAAQk5C,EAAWr0C,EAAIs0C,EAC7B,IAAK,IAAI98B,EAAI+8B,EAAM/8B,GAAKg9B,EAAGh9B,IACzBk8B,EAAIl8B,GAAKrc,EAEXo5C,EAAOC,EAAI,CACb,CACA,IAAK,IAAIx0C,EAAIu0C,EAAMv0C,EAAI,IAAKA,IAC1B0zC,EAAI1zC,GAAK0zC,EAAIa,EAAO,GAEtB,OAAOb,EAAIj0C,KAAK,IAAI,EAEhByjB,EAAK,KAAKjR,MAAK,yBACfihC,EAASjhC,MAAK,GAAsBA,MAAK,GAAciR,GAI7D,OAHAjR,MAAK,GAAmBihC,GACxBjhC,MAAK,GAA0BuhC,EAASQ,EAAS,GAAIC,EAAS,GAAI,GAAIT,EAASQ,EAAS,GAAIC,EAAS,GAAI,GAAIT,EAASQ,EAAS,GAAIC,EAAS,GAAI,GAAIf,GACpJjhC,MAAK,GAAmB,QAAQiR,KACzBjR,MAAK,EACd,CACA,OAAAwO,CAAQg0B,GAAU,GACZA,IAAYxiC,MAAK,IAAWA,MAAK,MAGjCA,MAAK,KACPA,MAAK,GAAOiwB,WAAWA,WAAWxM,SAClCzjB,MAAK,GAAS,MAEZA,MAAK,KACPA,MAAK,GAAQ+Y,QACb/Y,MAAK,GAAU,MAEjBA,MAAK,EAAM,EACb,CACA,IAAmBihC,GACjB,MAAMwB,EAAgBziC,MAAK,GAAUqgC,gBAAgBN,EAAQ,iBAC7D0C,EAAcpT,aAAa,OAAQ,UACnCoT,EAAcpT,aAAa,SAAU,wFACrC4R,EAAOjV,OAAOyW,EAChB,CACA,IAAcxxB,GACZ,MAAMgwB,EAASjhC,MAAK,GAAUqgC,gBAAgBN,EAAQ,UAItD,OAHAkB,EAAO5R,aAAa,8BAA+B,QACnD4R,EAAO5R,aAAa,KAAMpe,GAC1BjR,MAAK,GAAMgsB,OAAOiV,GACXA,CACT,CACA,IAAcyB,EAAqBC,EAAMrB,GACvC,MAAMsB,EAAS5iC,MAAK,GAAUqgC,gBAAgBN,EAAQ4C,GACtDC,EAAOvT,aAAa,OAAQ,YAC5BuT,EAAOvT,aAAa,cAAeiS,GACnCoB,EAAoB1W,OAAO4W,EAC7B,CACA,IAA0BC,EAAQC,EAAQC,EAAQ9B,GAChD,MAAMyB,EAAsB1iC,MAAK,GAAUqgC,gBAAgBN,EAAQ,uBACnEkB,EAAOjV,OAAO0W,GACd1iC,MAAK,GAAc0iC,EAAqB,UAAWG,GACnD7iC,MAAK,GAAc0iC,EAAqB,UAAWI,GACnD9iC,MAAK,GAAc0iC,EAAqB,UAAWK,EACrD,CACA,IAAQzL,GAEN,OADAt3B,MAAK,GAAM2nB,MAAM2P,MAAQA,EAClBE,EAAO5P,iBAAiB5nB,MAAK,IAAO+nB,iBAAiB,SAC9D,EAEFh/B,EAAQ4f,iBAAmBA,EAC3B,MAAMJ,UAAyBu3B,EAAckD,kBAC3C,WAAA/iC,EAAY,cACVuK,EAAgB5hB,WAAW6hB,UACzB,CAAC,GACH/J,QACAV,KAAKijC,UAAYz4B,CACnB,CACA,aAAA04B,CAAc1iB,EAAOC,GACnB,MAAMY,EAASrhB,KAAKijC,UAAUnX,cAAc,UAG5C,OAFAzK,EAAOb,MAAQA,EACfa,EAAOZ,OAASA,EACTY,CACT,EAGFzT,eAAeu1B,EAAUp3C,EAAKq3C,GAAe,GAC3C,GAAIn4B,EAAgBlf,EAAK0e,SAASS,SAAU,CAC1C,MAAMspB,QAAiB9T,MAAM30B,GAC7B,IAAKyoC,EAASC,GACZ,MAAM,IAAIj1B,MAAMg1B,EAASE,YAE3B,OAAO0O,EAAe,IAAIv1C,iBAAiB2mC,EAAS6O,gBAAiB,EAAIj8B,EAAMxW,qBAAqB4jC,EAAS8O,OAC/G,CACA,OAAO,IAAI19B,SAAQ,CAACC,EAASC,KAC3B,MAAMy9B,EAAU,IAAIC,eACpBD,EAAQE,KAAK,MAAO13C,GAAK,GACrBq3C,IACFG,EAAQG,aAAe,eAEzBH,EAAQI,mBAAqB,KAC3B,GAAIJ,EAAQK,aAAeJ,eAAeK,KAA1C,CAGA,GAAuB,MAAnBN,EAAQ3iC,QAAqC,IAAnB2iC,EAAQ3iC,OAAc,CAClD,IAAImF,EAMJ,GALIq9B,GAAgBG,EAAQ/O,SAC1BzuB,EAAO,IAAIlY,WAAW01C,EAAQ/O,WACpB4O,GAAgBG,EAAQO,eAClC/9B,GAAO,EAAIqB,EAAMxW,eAAe2yC,EAAQO,eAEtC/9B,EAEF,YADAF,EAAQE,EAGZ,CACAD,EAAO,IAAItG,MAAM+jC,EAAQ7O,YAbzB,CAaqC,EAEvC6O,EAAQ91B,KAAK,KAAK,GAEtB,CAnCA1kB,EAAQwf,iBAAmBA,EAoC3B,MAAME,UAA6Bq3B,EAAciE,sBAC/C,UAAAC,CAAWj4C,EAAKk4C,GACd,OAAOd,EAAUp3C,EAAKiU,KAAKuL,cAAca,MAAKrG,IACrC,CACLm+B,SAAUn+B,EACVk+B,qBAGN,EAEFl7C,EAAQ0f,qBAAuBA,EAC/B,MAAMI,UAAmCi3B,EAAcqE,4BACrD,UAAAH,CAAWj4C,GACT,OAAOo3C,EAAUp3C,GAAK,EACxB,EAEFhD,EAAQ8f,2BAA6BA,EACrC,MAAM+0B,UAAsBkC,EAAcsE,eACxC,UAAAC,CAAWlyC,GACT,OAAOsY,SAAS41B,gBAAgBN,EAAQ5tC,EAC1C,EAEFpJ,EAAQ60C,cAAgBA,EACxB,MAAM7pB,EACJ,WAAA9T,EAAY,QACV+T,EAAO,MACPN,EAAK,SACLC,EAAQ,QACRC,EAAU,EAAC,QACXC,EAAU,EAAC,SACXC,GAAW,IAEX9T,KAAKgU,QAAUA,EACfhU,KAAK0T,MAAQA,EACb1T,KAAK2T,SAAWA,EAChB3T,KAAK4T,QAAUA,EACf5T,KAAK6T,QAAUA,EACf,MAAMywB,GAAWtwB,EAAQ,GAAKA,EAAQ,IAAM,EACtCuwB,GAAWvwB,EAAQ,GAAKA,EAAQ,IAAM,EAC5C,IAAIwwB,EAASC,EAASC,EAASC,EAqC3BC,EAAeC,EACfrkB,EAAOC,EAjCX,QAJA9M,GAAY,KACG,IACbA,GAAY,KAENA,GACN,KAAK,IACH6wB,GAAW,EACXC,EAAU,EACVC,EAAU,EACVC,EAAU,EACV,MACF,KAAK,GACHH,EAAU,EACVC,EAAU,EACVC,EAAU,EACVC,EAAU,EACV,MACF,KAAK,IACHH,EAAU,EACVC,GAAW,EACXC,GAAW,EACXC,EAAU,EACV,MACF,KAAK,EACHH,EAAU,EACVC,EAAU,EACVC,EAAU,EACVC,GAAW,EACX,MACF,QACE,MAAM,IAAInlC,MAAM,qEAEhBsU,IACF4wB,GAAWA,EACXC,GAAWA,GAIG,IAAZH,GACFI,EAAgB52C,KAAKqX,IAAIk/B,EAAUvwB,EAAQ,IAAMN,EAAQE,EACzDixB,EAAgB72C,KAAKqX,IAAIi/B,EAAUtwB,EAAQ,IAAMN,EAAQG,EACzD2M,GAASxM,EAAQ,GAAKA,EAAQ,IAAMN,EACpC+M,GAAUzM,EAAQ,GAAKA,EAAQ,IAAMN,IAErCkxB,EAAgB52C,KAAKqX,IAAIi/B,EAAUtwB,EAAQ,IAAMN,EAAQE,EACzDixB,EAAgB72C,KAAKqX,IAAIk/B,EAAUvwB,EAAQ,IAAMN,EAAQG,EACzD2M,GAASxM,EAAQ,GAAKA,EAAQ,IAAMN,EACpC+M,GAAUzM,EAAQ,GAAKA,EAAQ,IAAMN,GAEvC1T,KAAKvF,UAAY,CAAC+pC,EAAU9wB,EAAO+wB,EAAU/wB,EAAOgxB,EAAUhxB,EAAOixB,EAAUjxB,EAAOkxB,EAAgBJ,EAAU9wB,EAAQ4wB,EAAUI,EAAUhxB,EAAQ6wB,EAASM,EAAgBJ,EAAU/wB,EAAQ4wB,EAAUK,EAAUjxB,EAAQ6wB,GAC3NvkC,KAAKwgB,MAAQA,EACbxgB,KAAKygB,OAASA,CAChB,CACA,WAAIqF,GACF,MAAM,QACJ9R,GACEhU,KACJ,OAAO,EAAIoH,EAAM5W,QAAQwP,KAAM,UAAW,CACxC+lB,UAAW/R,EAAQ,GAAKA,EAAQ,GAChCgS,WAAYhS,EAAQ,GAAKA,EAAQ,GACjCiS,MAAOjS,EAAQ,GACfkS,MAAOlS,EAAQ,IAEnB,CACA,KAAA6Q,EAAM,MACJnR,EAAQ1T,KAAK0T,MAAK,SAClBC,EAAW3T,KAAK2T,SAAQ,QACxBC,EAAU5T,KAAK4T,QAAO,QACtBC,EAAU7T,KAAK6T,QAAO,SACtBC,GAAW,GACT,CAAC,GACH,OAAO,IAAIC,EAAa,CACtBC,QAAShU,KAAKgU,QAAQlR,QACtB4Q,QACAC,WACAC,UACAC,UACAC,YAEJ,CACA,sBAAAgxB,CAAuBte,EAAGC,GACxB,OAAOrf,EAAMhe,KAAKoZ,eAAe,CAACgkB,EAAGC,GAAIzmB,KAAKvF,UAChD,CACA,0BAAAsqC,CAA2BlhC,GACzB,MAAMmhC,EAAU59B,EAAMhe,KAAKoZ,eAAe,CAACqB,EAAK,GAAIA,EAAK,IAAK7D,KAAKvF,WAC7DwqC,EAAc79B,EAAMhe,KAAKoZ,eAAe,CAACqB,EAAK,GAAIA,EAAK,IAAK7D,KAAKvF,WACvE,MAAO,CAACuqC,EAAQ,GAAIA,EAAQ,GAAIC,EAAY,GAAIA,EAAY,GAC9D,CACA,iBAAAC,CAAkB1e,EAAGC,GACnB,OAAOrf,EAAMhe,KAAKuZ,sBAAsB,CAAC6jB,EAAGC,GAAIzmB,KAAKvF,UACvD,EAEF1R,EAAQgrB,aAAeA,EACvB,MAAM2F,UAAoCtS,EAAMzc,cAC9C,WAAAsV,CAAYtU,EAAKiuB,EAAa,GAC5BlZ,MAAM/U,EAAK,+BACXqU,KAAK4Z,WAAaA,CACpB,EAGF,SAASjQ,EAAa5d,GACpB,MAAMiD,EAAKjD,EAAIO,OACf,IAAIyB,EAAI,EACR,KAAOA,EAAIiB,GAAwB,KAAlBjD,EAAIgC,GAAGo3C,QACtBp3C,IAEF,MAAiD,UAA1ChC,EAAIyyC,UAAUzwC,EAAGA,EAAI,GAAGq3C,aACjC,CAuEA,SAASn6B,EAAgBlf,EAAKC,GAC5B,IACE,MAAM,SACJW,GACEX,EAAU,IAAIU,IAAIX,EAAKC,GAAW,IAAIU,IAAIX,GAC9C,MAAoB,UAAbY,GAAqC,WAAbA,CACjC,CAAE,MACA,OAAO,CACT,CACF,CAuBA,IAAI04C,EAqDJ,SAAS7N,EAAOF,GACd,GAAIA,EAAMnrC,WAAW,KAAM,CACzB,MAAMm5C,EAAWpG,SAAS5H,EAAMx0B,MAAM,GAAI,IAC1C,MAAO,EAAa,SAAXwiC,IAAwB,IAAgB,MAAXA,IAAwB,EAAc,IAAXA,EACnE,CACA,OAAIhO,EAAMnrC,WAAW,QACZmrC,EAAMx0B,MAAM,GAAI,GAAG4zB,MAAM,KAAK5mC,KAAI02B,GAAK0Y,SAAS1Y,KAErD8Q,EAAMnrC,WAAW,SACZmrC,EAAMx0B,MAAM,GAAI,GAAG4zB,MAAM,KAAK5mC,KAAI02B,GAAK0Y,SAAS1Y,KAAI1jB,MAAM,EAAG,KAEtE,EAAIsE,EAAM/V,MAAM,8BAA8BimC,MACvC,CAAC,EAAG,EAAG,GAChB,CAjLAvuC,EAAQ2wB,4BAA8BA,EA8EtC3wB,EAAQgqB,UAtCR,MACEwyB,QAAUv8C,OAAOgH,OAAO,MACxBw1C,MAAQ,GACR,IAAAtwB,CAAKnV,GACCA,KAAQC,KAAKulC,UACf,EAAIn+B,EAAM/V,MAAM,gCAAgC0O,KAElDC,KAAKulC,QAAQxlC,GAAQhT,KAAK04C,KAC5B,CACA,OAAAlvB,CAAQxW,GACAA,KAAQC,KAAKulC,UACjB,EAAIn+B,EAAM/V,MAAM,kCAAkC0O,KAEpDC,KAAKwlC,MAAM9zC,KAAK,CACdqO,OACAyhC,MAAOxhC,KAAKulC,QAAQxlC,GACpB8P,IAAK9iB,KAAK04C,eAELzlC,KAAKulC,QAAQxlC,EACtB,CACA,QAAA9S,GACE,MAAMy4C,EAAS,GACf,IAAIC,EAAU,EACd,IAAK,MAAM,KACT5lC,KACGC,KAAKwlC,MACRG,EAAU33C,KAAKiV,IAAIlD,EAAKzT,OAAQq5C,GAElC,IAAK,MAAM,KACT5lC,EAAI,MACJyhC,EAAK,IACL3xB,KACG7P,KAAKwlC,MACRE,EAAOh0C,KAAK,GAAGqO,EAAK6lC,OAAOD,MAAY91B,EAAM2xB,SAE/C,OAAOkE,EAAOl4C,KAAK,GACrB,GAwEFzE,EAAQ40C,cApCR,MACE,mBAAOkI,CAAaC,GAClB,IAAKA,GAA0B,iBAAVA,EACnB,OAAO,KAETT,IAAuB,IAAIU,OAAO,4FAClC,MAAMrO,EAAU2N,EAAmBxO,KAAKiP,GACxC,IAAKpO,EACH,OAAO,KAET,MAAMsO,EAAO9G,SAASxH,EAAQ,GAAI,IAClC,IAAIuO,EAAQ/G,SAASxH,EAAQ,GAAI,IACjCuO,EAAQA,GAAS,GAAKA,GAAS,GAAKA,EAAQ,EAAI,EAChD,IAAIC,EAAMhH,SAASxH,EAAQ,GAAI,IAC/BwO,EAAMA,GAAO,GAAKA,GAAO,GAAKA,EAAM,EACpC,IAAIC,EAAOjH,SAASxH,EAAQ,GAAI,IAChCyO,EAAOA,GAAQ,GAAKA,GAAQ,GAAKA,EAAO,EACxC,IAAIC,EAASlH,SAASxH,EAAQ,GAAI,IAClC0O,EAASA,GAAU,GAAKA,GAAU,GAAKA,EAAS,EAChD,IAAI5iC,EAAS07B,SAASxH,EAAQ,GAAI,IAClCl0B,EAASA,GAAU,GAAKA,GAAU,GAAKA,EAAS,EAChD,MAAM6iC,EAAwB3O,EAAQ,IAAM,IAC5C,IAAI4O,EAAapH,SAASxH,EAAQ,GAAI,IACtC4O,EAAaA,GAAc,GAAKA,GAAc,GAAKA,EAAa,EAChE,IAAIC,EAAerH,SAASxH,EAAQ,GAAI,KAAO,EAS/C,OARA6O,EAAeA,GAAgB,GAAKA,GAAgB,GAAKA,EAAe,EAC1C,MAA1BF,GACFF,GAAQG,EACRF,GAAUG,GACyB,MAA1BF,IACTF,GAAQG,EACRF,GAAUG,GAEL,IAAIx5C,KAAKA,KAAKy5C,IAAIR,EAAMC,EAAOC,EAAKC,EAAMC,EAAQ5iC,GAC3D,EA4FK,EAED,CAAE1a,EAAyBC,EAASmd,KAI1Cld,OAAOC,eAAeF,EAAS,aAAc,CAC3CG,OAAO,IAETH,EAAQo7C,4BAA8Bp7C,EAAQq7C,eAAiBr7C,EAAQk3C,kBAAoBl3C,EAAQi6C,kBAAoBj6C,EAAQg7C,2BAAwB,EACvJ,IAAI38B,EAAQlB,EAAoB,GAChC,MAAM+5B,EACJ,WAAAhgC,GACMD,KAAKC,cAAgBggC,IACvB,EAAI74B,EAAMxb,aAAa,uCAE3B,CACA,SAAA00C,CAAUC,GACR,MAAO,MACT,CACA,YAAA1G,CAAaqH,EAASC,GACpB,MAAO,MACT,CACA,qBAAAO,CAAsBR,EAASC,EAASQ,EAAYC,GAClD,MAAO,MACT,CACA,OAAApzB,CAAQg0B,GAAU,GAAQ,EAE5Bz5C,EAAQk3C,kBAAoBA,EAC5B,MAAM+C,EACJ,WAAA/iC,GACMD,KAAKC,cAAgB+iC,IACvB,EAAI57B,EAAMxb,aAAa,uCAE3B,CACA,MAAAoE,CAAOwwB,EAAOC,GACZ,GAAID,GAAS,GAAKC,GAAU,EAC1B,MAAM,IAAIjhB,MAAM,uBAElB,MAAM6hB,EAASrhB,KAAKkjC,cAAc1iB,EAAOC,GACzC,MAAO,CACLY,SACA+C,QAAS/C,EAAO2S,WAAW,MAE/B,CACA,KAAAyS,CAAMC,EAAkBlmB,EAAOC,GAC7B,IAAKimB,EAAiBrlB,OACpB,MAAM,IAAI7hB,MAAM,2BAElB,GAAIghB,GAAS,GAAKC,GAAU,EAC1B,MAAM,IAAIjhB,MAAM,uBAElBknC,EAAiBrlB,OAAOb,MAAQA,EAChCkmB,EAAiBrlB,OAAOZ,OAASA,CACnC,CACA,OAAAjS,CAAQk4B,GACN,IAAKA,EAAiBrlB,OACpB,MAAM,IAAI7hB,MAAM,2BAElBknC,EAAiBrlB,OAAOb,MAAQ,EAChCkmB,EAAiBrlB,OAAOZ,OAAS,EACjCimB,EAAiBrlB,OAAS,KAC1BqlB,EAAiBtiB,QAAU,IAC7B,CACA,aAAA8e,CAAc1iB,EAAOC,IACnB,EAAIrZ,EAAMxb,aAAa,0CACzB,EAEF7C,EAAQi6C,kBAAoBA,EAC5B,MAAMe,EACJ,WAAA9jC,EAAY,QACVjU,EAAU,KAAI,aACduf,GAAe,IAEXvL,KAAKC,cAAgB8jC,IACvB,EAAI38B,EAAMxb,aAAa,4CAEzBoU,KAAKhU,QAAUA,EACfgU,KAAKuL,aAAeA,CACtB,CACA,WAAMmV,EAAM,KACV3gB,IAEA,IAAKC,KAAKhU,QACR,MAAM,IAAIwT,MAAM,2HAElB,IAAKO,EACH,MAAM,IAAIP,MAAM,gCAElB,MAAMzT,EAAMiU,KAAKhU,QAAU+T,GAAQC,KAAKuL,aAAe,SAAW,IAC5D04B,EAAkBjkC,KAAKuL,aAAenE,EAAM1c,oBAAoBmP,OAASuN,EAAM1c,oBAAoBsI,KACzG,OAAOgN,KAAKgkC,WAAWj4C,EAAKk4C,GAAiBv2B,OAAM1H,IACjD,MAAM,IAAIxG,MAAM,kBAAkBQ,KAAKuL,aAAe,UAAY,cAAcxf,IAAM,GAE1F,CACA,UAAAi4C,CAAWj4C,EAAKk4C,IACd,EAAI78B,EAAMxb,aAAa,uCACzB,EAEF7C,EAAQg7C,sBAAwBA,EAChC,MAAMI,EACJ,WAAAlkC,EAAY,QACVjU,EAAU,OAENgU,KAAKC,cAAgBkkC,IACvB,EAAI/8B,EAAMxb,aAAa,kDAEzBoU,KAAKhU,QAAUA,CACjB,CACA,WAAM00B,EAAM,SACVC,IAEA,IAAK3gB,KAAKhU,QACR,MAAM,IAAIwT,MAAM,6HAElB,IAAKmhB,EACH,MAAM,IAAInhB,MAAM,oCAElB,MAAMzT,EAAM,GAAGiU,KAAKhU,UAAU20B,IAC9B,OAAO3gB,KAAKgkC,WAAWj4C,GAAK2hB,OAAM1H,IAChC,MAAM,IAAIxG,MAAM,gCAAgCzT,IAAM,GAE1D,CACA,UAAAi4C,CAAWj4C,IACT,EAAIqb,EAAMxb,aAAa,uCACzB,EAEF7C,EAAQo7C,4BAA8BA,EACtC,MAAMC,EACJ,WAAAnkC,GACMD,KAAKC,cAAgBmkC,IACvB,EAAIh9B,EAAMxb,aAAa,oCAE3B,CACA,MAAAoE,CAAOwwB,EAAOC,EAAQkmB,GAAiB,GACrC,GAAInmB,GAAS,GAAKC,GAAU,EAC1B,MAAM,IAAIjhB,MAAM,0BAElB,MAAM4gC,EAAMpgC,KAAKqkC,WAAW,WAQ5B,OAPAjE,EAAI/Q,aAAa,UAAW,OACvBsX,IACHvG,EAAI/Q,aAAa,QAAS,GAAG7O,OAC7B4f,EAAI/Q,aAAa,SAAU,GAAG5O,QAEhC2f,EAAI/Q,aAAa,sBAAuB,QACxC+Q,EAAI/Q,aAAa,UAAW,OAAO7O,KAASC,KACrC2f,CACT,CACA,aAAAtU,CAAc35B,GACZ,GAAoB,iBAATA,EACT,MAAM,IAAIqN,MAAM,4BAElB,OAAOQ,KAAKqkC,WAAWlyC,EACzB,CACA,UAAAkyC,CAAWlyC,IACT,EAAIiV,EAAMxb,aAAa,uCACzB,EAEF7C,EAAQq7C,eAAiBA,CAElB,EAED,CAAEt7C,EAAyBC,EAASmd,KAI1Cld,OAAOC,eAAeF,EAAS,aAAc,CAC3CG,OAAO,IAETH,EAAQo7B,oBAAiB,EACzB,IAAI/c,EAAQlB,EAAoB,GAChC,MAAM0gC,EAAO,WACPC,EAAY,WACZC,EAAW,MAyFjB/9C,EAAQo7B,eAxFR,MACE,WAAAlkB,CAAY8mC,GACV/mC,KAAKgnC,GAAKD,EAAc,WAAPA,EAAoBH,EACrC5mC,KAAKinC,GAAKF,EAAc,WAAPA,EAAoBH,CACvC,CACA,MAAApiB,CAAOshB,GACL,IAAI//B,EAAMzZ,EACV,GAAqB,iBAAVw5C,EAAoB,CAC7B//B,EAAO,IAAIlY,WAA0B,EAAfi4C,EAAMx5C,QAC5BA,EAAS,EACT,IAAK,IAAIyB,EAAI,EAAGiB,EAAK82C,EAAMx5C,OAAQyB,EAAIiB,EAAIjB,IAAK,CAC9C,MAAMwD,EAAOu0C,EAAMr0C,WAAW1D,GAC1BwD,GAAQ,IACVwU,EAAKzZ,KAAYiF,GAEjBwU,EAAKzZ,KAAYiF,IAAS,EAC1BwU,EAAKzZ,KAAmB,IAAPiF,EAErB,CACF,KAAO,MAAI,EAAI6V,EAAM3Y,eAAeq3C,GAIlC,MAAM,IAAItmC,MAAM,gFAHhBuG,EAAO+/B,EAAMhjC,QACbxW,EAASyZ,EAAKnX,UAGhB,CACA,MAAMs4C,EAAc56C,GAAU,EACxB66C,EAAa76C,EAAuB,EAAd46C,EACtBE,EAAa,IAAIrmC,YAAYgF,EAAK7U,OAAQ,EAAGg2C,GACnD,IAAIG,EAAK,EACPC,EAAK,EACHN,EAAKhnC,KAAKgnC,GACZC,EAAKjnC,KAAKinC,GACZ,MAAMM,EAAK,WACTC,EAAK,UACDC,EAASF,MACbG,EAASF,MACX,IAAK,IAAIz5C,EAAI,EAAGA,EAAIm5C,EAAan5C,IACvB,EAAJA,GACFs5C,EAAKD,EAAWr5C,GAChBs5C,EAAKA,EAAKE,EAAKV,EAAYQ,EAAKI,EAASX,EACzCO,EAAKA,GAAM,GAAKA,IAAO,GACvBA,EAAKA,EAAKG,EAAKX,EAAYQ,EAAKK,EAASZ,EACzCE,GAAMK,EACNL,EAAKA,GAAM,GAAKA,IAAO,GACvBA,EAAU,EAALA,EAAS,aAEdM,EAAKF,EAAWr5C,GAChBu5C,EAAKA,EAAKC,EAAKV,EAAYS,EAAKG,EAASX,EACzCQ,EAAKA,GAAM,GAAKA,IAAO,GACvBA,EAAKA,EAAKE,EAAKX,EAAYS,EAAKI,EAASZ,EACzCG,GAAMK,EACNL,EAAKA,GAAM,GAAKA,IAAO,GACvBA,EAAU,EAALA,EAAS,YAIlB,OADAI,EAAK,EACGF,GACN,KAAK,EACHE,GAAMthC,EAAmB,EAAdmhC,EAAkB,IAAM,GACrC,KAAK,EACHG,GAAMthC,EAAmB,EAAdmhC,EAAkB,IAAM,EACrC,KAAK,EACHG,GAAMthC,EAAmB,EAAdmhC,GACXG,EAAKA,EAAKE,EAAKV,EAAYQ,EAAKI,EAASX,EACzCO,EAAKA,GAAM,GAAKA,IAAO,GACvBA,EAAKA,EAAKG,EAAKX,EAAYQ,EAAKK,EAASZ,EACvB,EAAdI,EACFF,GAAMK,EAENJ,GAAMI,EAGZrnC,KAAKgnC,GAAKA,EACVhnC,KAAKinC,GAAKA,CACZ,CACA,SAAAtiB,GACE,IAAIqiB,EAAKhnC,KAAKgnC,GACZC,EAAKjnC,KAAKinC,GAQZ,OAPAD,GAAMC,IAAO,EACbD,EAAU,WAALA,EAAkBH,EAAiB,MAALG,EAAcF,EACjDG,EAAU,WAALA,EAAkBJ,GAAsC,YAAxBI,GAAM,GAAKD,IAAO,IAAmBH,KAAe,GACzFG,GAAMC,IAAO,EACbD,EAAU,UAALA,EAAkBH,EAAiB,MAALG,EAAcF,EACjDG,EAAU,WAALA,EAAkBJ,GAAsC,YAAxBI,GAAM,GAAKD,IAAO,IAAmBH,KAAe,GACzFG,GAAMC,IAAO,GACLD,IAAO,GAAG/5C,SAAS,IAAIE,SAAS,EAAG,MAAQ85C,IAAO,GAAGh6C,SAAS,IAAIE,SAAS,EAAG,IACxF,EAIK,EAED,CAAErE,EAAyBC,EAASmd,KAI1Cld,OAAOC,eAAeF,EAAS,aAAc,CAC3CG,OAAO,IAETH,EAAQm0B,WAAan0B,EAAQm3B,oBAAiB,EAC9C,IAAI9Y,EAAQlB,EAAoB,GAyMhCnd,EAAQm0B,WAxMR,MACE,IAAe,IAAIvG,IACnB,WAAA1W,EAAY,cACVuK,EAAgB5hB,WAAW6hB,SAAQ,aACnC0B,EAAe,OAEfnM,KAAKijC,UAAYz4B,EACjBxK,KAAK2nC,gBAAkB,IAAIhxB,IAC3B3W,KAAKmM,aAAe,KACpBnM,KAAK4nC,gBAAkB,GACvB5nC,KAAK6nC,eAAiB,CACxB,CACA,iBAAAC,CAAkBC,GAChB/nC,KAAK2nC,gBAAgB/wB,IAAImxB,GACzB/nC,KAAKijC,UAAU+E,MAAMpxB,IAAImxB,EAC3B,CACA,oBAAAE,CAAqBF,GACnB/nC,KAAK2nC,gBAAgBxxB,OAAO4xB,GAC5B/nC,KAAKijC,UAAU+E,MAAM7xB,OAAO4xB,EAC9B,CACA,UAAAG,CAAWC,GACJnoC,KAAKmM,eACRnM,KAAKmM,aAAenM,KAAKijC,UAAUnX,cAAc,SACjD9rB,KAAKijC,UAAUpb,gBAAgBugB,qBAAqB,QAAQ,GAAGpc,OAAOhsB,KAAKmM,eAE7E,MAAMk8B,EAAaroC,KAAKmM,aAAam8B,MACrCD,EAAWH,WAAWC,EAAME,EAAWE,SAASj8C,OAClD,CACA,KAAAysB,GACE,IAAK,MAAMgvB,KAAkB/nC,KAAK2nC,gBAChC3nC,KAAKijC,UAAU+E,MAAM7xB,OAAO4xB,GAE9B/nC,KAAK2nC,gBAAgB5uB,QACrB/Y,MAAK,GAAa+Y,QACd/Y,KAAKmM,eACPnM,KAAKmM,aAAasX,SAClBzjB,KAAKmM,aAAe,KAExB,CACA,oBAAMq8B,CAAen6C,GACnB,GAAKA,IAAQ2R,MAAK,GAAa0b,IAAIrtB,EAAKo6C,YAIxC,IADA,EAAIrhC,EAAM3b,SAASuU,KAAKqK,gBAAiB,qEACrCrK,KAAK0oC,0BAAT,CACE,MAAM,WACJD,EAAU,IACV3/B,EAAG,MACH6e,GACEt5B,EACEs6C,EAAW,IAAIC,SAASH,EAAY3/B,EAAK6e,GAC/C3nB,KAAK8nC,kBAAkBa,GACvB,UACQA,EAASE,OACf7oC,MAAK,GAAa4W,IAAI6xB,EACxB,CAAE,OACA,EAAIrhC,EAAM/V,MAAM,4BAA4BhD,EAAKy6C,oEACjD9oC,KAAKioC,qBAAqBU,EAC5B,CAEF,MACA,EAAIvhC,EAAMxb,aAAa,gEACzB,CACA,UAAMu0B,CAAKH,GACT,GAAIA,EAAK+oB,UAAY/oB,EAAKgpB,cAAgBhpB,EAAKipB,eAC7C,OAGF,GADAjpB,EAAK+oB,UAAW,EACZ/oB,EAAKipB,eAEP,kBADMjpC,KAAKwoC,eAAexoB,EAAKipB,gBAGjC,GAAIjpC,KAAK0oC,0BAA2B,CAClC,MAAMX,EAAiB/nB,EAAKkpB,uBAC5B,GAAInB,EAAgB,CAClB/nC,KAAK8nC,kBAAkBC,GACvB,UACQA,EAAex4B,MACvB,CAAE,MAAOne,GAGP,MAFA,EAAIgW,EAAM/V,MAAM,wBAAwB02C,EAAeoB,aAAa/3C,OACpE4uB,EAAK3V,iBAAkB,EACjBjZ,CACR,CACF,CACA,MACF,CACA,MAAM+2C,EAAOnoB,EAAKopB,qBAClB,GAAIjB,EAAM,CAER,GADAnoC,KAAKkoC,WAAWC,GACZnoC,KAAKqpC,2BACP,aAEI,IAAIzjC,SAAQC,IAChB,MAAM09B,EAAUvjC,KAAKspC,sBAAsBzjC,GAC3C7F,KAAKupC,sBAAsBvpB,EAAMujB,EAAQ,GAE7C,CACF,CACA,6BAAImF,GACF,MAAMc,IAAaxpC,KAAKijC,WAAW+E,MACnC,OAAO,EAAI5gC,EAAM5W,QAAQwP,KAAM,4BAA6BwpC,EAC9D,CACA,8BAAIH,GACF,IAAII,GAAY,EAMhB,OALIriC,EAAMnY,UAEsB,oBAAdoS,WAA6B,iCAAiC+9B,KAAK/9B,UAAUqoC,cAD7FD,GAAY,IAIP,EAAIriC,EAAM5W,QAAQwP,KAAM,6BAA8BypC,EAC/D,CACA,qBAAAH,CAAsB7yB,GASpB,MAAM,gBACJmxB,GACE5nC,KACEujC,EAAU,CACdjrB,MAAM,EACNtC,SAbF,WAGE,KAFA,EAAI5O,EAAM3b,SAAS83C,EAAQjrB,KAAM,6CACjCirB,EAAQjrB,MAAO,EACRsvB,EAAgBt7C,OAAS,GAAKs7C,EAAgB,GAAGtvB,MAAM,CAC5D,MAAMqxB,EAAe/B,EAAgBgC,QACrCzwB,WAAWwwB,EAAalzB,SAAU,EACpC,CACF,EAOEA,YAGF,OADAmxB,EAAgBl2C,KAAK6xC,GACdA,CACT,CACA,iBAAIsG,GACF,MAAMC,EAAWC,KAAK,49CACtB,OAAO,EAAI3iC,EAAM5W,QAAQwP,KAAM,gBAAiB8pC,EAClD,CACA,qBAAAP,CAAsBvpB,EAAMujB,GAC1B,SAASyG,EAAMjkC,EAAMkkC,GACnB,OAAOlkC,EAAKtU,WAAWw4C,IAAW,GAAKlkC,EAAKtU,WAAWw4C,EAAS,IAAM,GAAKlkC,EAAKtU,WAAWw4C,EAAS,IAAM,EAAkC,IAA9BlkC,EAAKtU,WAAWw4C,EAAS,EACzI,CACA,SAASC,EAAaC,EAAGF,EAAQxmB,EAAQ2mB,GAGvC,OAFeD,EAAE3L,UAAU,EAAGyL,GAEdG,EADDD,EAAE3L,UAAUyL,EAASxmB,EAEtC,CACA,IAAI11B,EAAGiB,EACP,MAAMqyB,EAASrhB,KAAKijC,UAAUnX,cAAc,UAC5CzK,EAAOb,MAAQ,EACfa,EAAOZ,OAAS,EAChB,MAAMsT,EAAM1S,EAAO2S,WAAW,MAC9B,IAAIqW,EAAS,EAgBb,MAAMxC,EAAiB,KAAK96C,KAAK04C,QAAQzlC,KAAK6nC,mBAC9C,IAAI9hC,EAAO/F,KAAK6pC,cAEhB9jC,EAAOmkC,EAAankC,EADG,IACmB8hC,EAAev7C,OAAQu7C,GACjE,MACMyC,EAAa,WACnB,IAAIC,EAAWP,EAAMjkC,EAFO,IAG5B,IAAKhY,EAAI,EAAGiB,EAAK64C,EAAev7C,OAAS,EAAGyB,EAAIiB,EAAIjB,GAAK,EACvDw8C,EAAWA,EAAWD,EAAaN,EAAMnC,EAAgB95C,GAAK,EAE5DA,EAAI85C,EAAev7C,SACrBi+C,EAAWA,EAAWD,EAAaN,EAAMnC,EAAiB,MAAO95C,GAAK,GAExEgY,EAAOmkC,EAAankC,EATQ,GASmB,GAAG,EAAIqB,EAAM3W,UAAU85C,IACtE,MACMpC,EAAO,4BAA4BN,wCADI2C,KAAKzkC,QAElD/F,KAAKkoC,WAAWC,GAChB,MAAM3iB,EAAMxlB,KAAKijC,UAAUnX,cAAc,OACzCtG,EAAImC,MAAMmW,WAAa,SACvBtY,EAAImC,MAAMnH,MAAQgF,EAAImC,MAAMlH,OAAS,OACrC+E,EAAImC,MAAMwY,SAAW,WACrB3a,EAAImC,MAAMmD,IAAMtF,EAAImC,MAAMiD,KAAO,MACjC,IAAK,MAAM7qB,IAAQ,CAACigB,EAAKyoB,WAAYZ,GAAiB,CACpD,MAAMhK,EAAO79B,KAAKijC,UAAUnX,cAAc,QAC1C+R,EAAKlmB,YAAc,KACnBkmB,EAAKlW,MAAM8iB,WAAa1qC,EACxBylB,EAAIwG,OAAO6R,EACb,CACA79B,KAAKijC,UAAUlF,KAAK/R,OAAOxG,GA3C3B,SAASklB,EAAY3qC,EAAM0W,GACzB,KAAM4zB,EAAS,GAGb,OAFA,EAAIjjC,EAAM/V,MAAM,qCAChBolB,IAGFsd,EAAI/T,KAAO,QAAUjgB,EACrBg0B,EAAI4W,SAAS,IAAK,EAAG,IACH5W,EAAIK,aAAa,EAAG,EAAG,EAAG,GAC9BruB,KAAK,GAAK,EACtB0Q,IAGF0C,WAAWuxB,EAAYvqB,KAAK,KAAMpgB,EAAM0W,GAC1C,CA8BAi0B,CAAY7C,GAAgB,KAC1BriB,EAAI/B,SACJ8f,EAAQvtB,UAAU,GAEtB,GAyFFjtB,EAAQm3B,eAtFR,MACE,WAAAjgB,CAAY2qC,GAAgB,gBAC1B5pC,GAAkB,EAAI,gBACtBqJ,GAAkB,EAAK,aACvBJ,GAAe,EAAK,YACpB4V,EAAc,OAEd7f,KAAK6qC,eAAiB7hD,OAAOgH,OAAO,MACpC,IAAK,MAAMjC,KAAK68C,EACd5qC,KAAKjS,GAAK68C,EAAe78C,GAE3BiS,KAAKgB,iBAAsC,IAApBA,EACvBhB,KAAKqK,iBAAsC,IAApBA,EACvBrK,KAAKiK,cAAgC,IAAjBA,EACpBjK,KAAK8qC,aAAejrB,CACtB,CACA,oBAAAqpB,GACE,IAAKlpC,KAAK+F,MAAQ/F,KAAKqK,gBACrB,OAAO,KAET,IAAI09B,EACJ,GAAK/nC,KAAK+qC,YAEH,CACL,MAAMC,EAAM,CACVC,OAAQjrC,KAAK+qC,YAAYG,YAEvBlrC,KAAK+qC,YAAYI,cACnBH,EAAIrjB,MAAQ,WAAW3nB,KAAK+qC,YAAYI,kBAE1CpD,EAAiB,IAAIa,SAAS5oC,KAAK+qC,YAAYN,WAAYzqC,KAAK+F,KAAMilC,EACxE,MATEjD,EAAiB,IAAIa,SAAS5oC,KAAKyoC,WAAYzoC,KAAK+F,KAAM,CAAC,GAW7D,OADA/F,KAAK8qC,eAAe9qC,MACb+nC,CACT,CACA,kBAAAqB,GACE,IAAKppC,KAAK+F,MAAQ/F,KAAKqK,gBACrB,OAAO,KAET,MAAMtE,GAAO,EAAIqB,EAAMvb,eAAemU,KAAK+F,MACrCha,EAAM,YAAYiU,KAAKorC,mBAAmBZ,KAAKzkC,OACrD,IAAIoiC,EACJ,GAAKnoC,KAAK+qC,YAEH,CACL,IAAIC,EAAM,gBAAgBhrC,KAAK+qC,YAAYG,cACvClrC,KAAK+qC,YAAYI,cACnBH,GAAO,uBAAuBhrC,KAAK+qC,YAAYI,mBAEjDhD,EAAO,4BAA4BnoC,KAAK+qC,YAAYN,eAAeO,QAAUj/C,IAC/E,MAPEo8C,EAAO,4BAA4BnoC,KAAKyoC,mBAAmB18C,KAS7D,OADAiU,KAAK8qC,eAAe9qC,KAAMjU,GACnBo8C,CACT,CACA,gBAAAkD,CAAiBn4B,EAAMo4B,GACrB,QAAuC38C,IAAnCqR,KAAK6qC,eAAeS,GACtB,OAAOtrC,KAAK6qC,eAAeS,GAE7B,IAAIC,EACJ,IACEA,EAAOr4B,EAAKtjB,IAAIoQ,KAAKyoC,WAAa,SAAW6C,EAC/C,CAAE,MAAOl6C,GACP,IAAK4O,KAAKiK,aACR,MAAM7Y,EAGR,OADA,EAAIgW,EAAM/V,MAAM,2CAA2CD,OACpD4O,KAAK6qC,eAAeS,GAAa,SAAUhoC,EAAGoU,GAAO,CAC9D,CACA,GAAI1X,KAAKgB,iBAAmBoG,EAAM7c,YAAYyW,gBAAiB,CAC7D,MAAMwqC,EAAQ,GACd,IAAK,MAAMC,KAAWF,EAAM,CAC1B,MAAMvU,OAAwBroC,IAAjB88C,EAAQzU,KAAqByU,EAAQzU,KAAKxpC,KAAK,KAAO,GACnEg+C,EAAM95C,KAAK,KAAM+5C,EAAQne,IAAK,IAAK0J,EAAM,OAC3C,CACA,OAAOh3B,KAAK6qC,eAAeS,GAAa,IAAIrqC,SAAS,IAAK,OAAQuqC,EAAMh+C,KAAK,IAC/E,CACA,OAAOwS,KAAK6qC,eAAeS,GAAa,SAAUhoC,EAAGoU,GACnD,IAAK,MAAM+zB,KAAWF,EACA,UAAhBE,EAAQne,MACVme,EAAQzU,KAAO,CAACtf,GAAOA,IAEzBpU,EAAEmoC,EAAQne,KAAKjtB,MAAMiD,EAAGmoC,EAAQzU,KAEpC,CACF,EAIK,EAED,CAAEluC,EAAyBC,EAASmd,KAI1Cld,OAAOC,eAAeF,EAAS,aAAc,CAC3CG,OAAO,IAETH,EAAQ6f,4BAA8B7f,EAAQ2f,kBAAoB3f,EAAQuf,kBAAoBvf,EAAQyf,2BAAwB,EAC9H,IAAIs3B,EAAgB55B,EAAoB,GAC5BA,EAAoB,GAGhC,MAAMi9B,EAAY,SAAUp3C,GAC1B,OAAO,IAAI6Z,SAAQ,CAACC,EAASC,KAChB,oBAAQ,OAChB4lC,SAAS3/C,GAAK,CAACkqB,EAAOlQ,MACnBkQ,GAAUlQ,EAIdF,EAAQ,IAAIhY,WAAWkY,IAHrBD,EAAO,IAAItG,MAAMyW,GAGU,GAC7B,GAEN,EACA,MAAMvN,UAA0Bo3B,EAAcG,mBAC9Cl3C,EAAQ2f,kBAAoBA,EAC5B,MAAMJ,UAA0Bw3B,EAAckD,kBAC5C,aAAAE,CAAc1iB,EAAOC,GAEnB,OADe,oBAAQ,OACTkrB,aAAanrB,EAAOC,EACpC,EAEF13B,EAAQuf,kBAAoBA,EAC5B,MAAME,UAA8Bs3B,EAAciE,sBAChD,UAAAC,CAAWj4C,EAAKk4C,GACd,OAAOd,EAAUp3C,GAAKqgB,MAAKrG,IAClB,CACLm+B,SAAUn+B,EACVk+B,qBAGN,EAEFl7C,EAAQyf,sBAAwBA,EAChC,MAAMI,UAAoCk3B,EAAcqE,4BACtD,UAAAH,CAAWj4C,GACT,OAAOo3C,EAAUp3C,EACnB,EAEFhD,EAAQ6f,4BAA8BA,CAE/B,EAED,CAAE9f,EAAyBC,EAASmd,KAI1Cld,OAAOC,eAAeF,EAAS,aAAc,CAC3CG,OAAO,IAETH,EAAQ25B,oBAAiB,EACzB,IAAItb,EAAQlB,EAAoB,GAC5BoB,EAAiBpB,EAAoB,GACrC0lC,EAAkB1lC,EAAoB,IACtC2lC,EAAe3lC,EAAoB,IACvC,MAEM4lC,EAAiB,KAIjBC,EAAoB,GAmG1B,MAAMC,EACJ,WAAA/rC,CAAYkL,GACVnL,KAAKmL,cAAgBA,EACrBnL,KAAKisC,MAAQjjD,OAAOgH,OAAO,KAC7B,CACA,SAAAk8C,CAAUj7B,EAAIuP,EAAOC,GACnB,IAAI0rB,EAQJ,YAPuBx9C,IAAnBqR,KAAKisC,MAAMh7B,IACbk7B,EAAcnsC,KAAKisC,MAAMh7B,GACzBjR,KAAKmL,cAAcs7B,MAAM0F,EAAa3rB,EAAOC,KAE7C0rB,EAAcnsC,KAAKmL,cAAcnb,OAAOwwB,EAAOC,GAC/CzgB,KAAKisC,MAAMh7B,GAAMk7B,GAEZA,CACT,CACA,OAAOl7B,UACEjR,KAAKisC,MAAMh7B,EACpB,CACA,KAAA8H,GACE,IAAK,MAAM9H,KAAMjR,KAAKisC,MAAO,CAC3B,MAAME,EAAcnsC,KAAKisC,MAAMh7B,GAC/BjR,KAAKmL,cAAcqD,QAAQ29B,UACpBnsC,KAAKisC,MAAMh7B,EACpB,CACF,EAEF,SAASm7B,EAAyBrY,EAAKsY,EAAQC,EAAMC,EAAMC,EAAMC,EAAMC,EAAOC,EAAOC,EAAOC,GAC1F,MAAOxpC,EAAGnB,EAAGoB,EAAGV,EAAGknB,EAAIC,IAAM,EAAIziB,EAAe22B,qBAAqBlK,GACrE,GAAU,IAAN7xB,GAAiB,IAANoB,EAAS,CACtB,MAAMwpC,EAAMJ,EAAQrpC,EAAIymB,EAClBijB,EAAO/+C,KAAKs9B,MAAMwhB,GAClBE,EAAML,EAAQ/pC,EAAImnB,EAClBkjB,EAAOj/C,KAAKs9B,MAAM0hB,GAClBE,GAAOR,EAAQE,GAASvpC,EAAIymB,EAC5BqjB,EAASn/C,KAAKqX,IAAIrX,KAAKs9B,MAAM4hB,GAAOH,IAAS,EAC7CK,GAAOT,EAAQE,GAASjqC,EAAImnB,EAC5BsjB,EAAUr/C,KAAKqX,IAAIrX,KAAKs9B,MAAM8hB,GAAOH,IAAS,EAIpD,OAHAlZ,EAAIuZ,aAAat/C,KAAKu/C,KAAKlqC,GAAI,EAAG,EAAGrV,KAAKu/C,KAAK3qC,GAAImqC,EAAME,GACzDlZ,EAAII,UAAUkY,EAAQC,EAAMC,EAAMC,EAAMC,EAAM,EAAG,EAAGU,EAAQE,GAC5DtZ,EAAIuZ,aAAajqC,EAAGnB,EAAGoB,EAAGV,EAAGknB,EAAIC,GAC1B,CAACojB,EAAQE,EAClB,CACA,GAAU,IAANhqC,GAAiB,IAANT,EAAS,CACtB,MAAMkqC,EAAMH,EAAQrpC,EAAIwmB,EAClBijB,EAAO/+C,KAAKs9B,MAAMwhB,GAClBE,EAAMN,EAAQxqC,EAAI6nB,EAClBkjB,EAAOj/C,KAAKs9B,MAAM0hB,GAClBE,GAAOP,EAAQE,GAASvpC,EAAIwmB,EAC5BqjB,EAASn/C,KAAKqX,IAAIrX,KAAKs9B,MAAM4hB,GAAOH,IAAS,EAC7CK,GAAOV,EAAQE,GAAS1qC,EAAI6nB,EAC5BsjB,EAAUr/C,KAAKqX,IAAIrX,KAAKs9B,MAAM8hB,GAAOH,IAAS,EAIpD,OAHAlZ,EAAIuZ,aAAa,EAAGt/C,KAAKu/C,KAAKrrC,GAAIlU,KAAKu/C,KAAKjqC,GAAI,EAAGypC,EAAME,GACzDlZ,EAAII,UAAUkY,EAAQC,EAAMC,EAAMC,EAAMC,EAAM,EAAG,EAAGY,EAASF,GAC7DpZ,EAAIuZ,aAAajqC,EAAGnB,EAAGoB,EAAGV,EAAGknB,EAAIC,GAC1B,CAACsjB,EAASF,EACnB,CAIA,OAHApZ,EAAII,UAAUkY,EAAQC,EAAMC,EAAMC,EAAMC,EAAMC,EAAOC,EAAOC,EAAOC,GAG5D,CAFQ7+C,KAAKihC,MAAM5rB,EAAGnB,GAEZ0qC,EADF5+C,KAAKihC,MAAM3rB,EAAGV,GACIiqC,EACnC,CAmIA,MAAMW,EACJ,WAAAvtC,CAAYugB,EAAOC,GACjBzgB,KAAKytC,cAAe,EACpBztC,KAAK0tC,SAAW,EAChB1tC,KAAK2tC,cAAgB,EACrB3tC,KAAK4tC,WAAaxmC,EAAM/c,gBACxB2V,KAAK6tC,gBAAkB,EACvB7tC,KAAK8tC,WAAa1mC,EAAM5c,qBACxBwV,KAAK+tC,QAAU,EACf/tC,KAAKwmB,EAAI,EACTxmB,KAAKymB,EAAI,EACTzmB,KAAKguC,MAAQ,EACbhuC,KAAKiuC,MAAQ,EACbjuC,KAAKkuC,YAAc,EACnBluC,KAAKmuC,YAAc,EACnBnuC,KAAKouC,WAAa,EAClBpuC,KAAKquC,kBAAoBjnC,EAAM7d,kBAAkB4K,KACjD6L,KAAKsuC,SAAW,EAChBtuC,KAAKuuC,UAAY,UACjBvuC,KAAKwuC,YAAc,UACnBxuC,KAAKyuC,aAAc,EACnBzuC,KAAK0uC,UAAY,EACjB1uC,KAAK2uC,YAAc,EACnB3uC,KAAK4uC,UAAY,EACjB5uC,KAAK6uC,YAAc,KACnB7uC,KAAK8uC,aAAe,OACpB9uC,KAAK+uC,uBAAuB,CAAC,EAAG,EAAGvuB,EAAOC,GAC5C,CACA,KAAAoE,GACE,MAAMA,EAAQ77B,OAAOgH,OAAOgQ,MAE5B,OADA6kB,EAAMmqB,QAAUhvC,KAAKgvC,QAAQlsC,QACtB+hB,CACT,CACA,eAAAoqB,CAAgBzoB,EAAGC,GACjBzmB,KAAKwmB,EAAIA,EACTxmB,KAAKymB,EAAIA,CACX,CACA,gBAAAyoB,CAAiBz0C,EAAW+rB,EAAGC,IAC5BD,EAAGC,GAAKrf,EAAMhe,KAAKoZ,eAAe,CAACgkB,EAAGC,GAAIhsB,GAC3CuF,KAAKmvC,KAAOnhD,KAAKuS,IAAIP,KAAKmvC,KAAM3oB,GAChCxmB,KAAKovC,KAAOphD,KAAKuS,IAAIP,KAAKovC,KAAM3oB,GAChCzmB,KAAKqvC,KAAOrhD,KAAKiV,IAAIjD,KAAKqvC,KAAM7oB,GAChCxmB,KAAKsvC,KAAOthD,KAAKiV,IAAIjD,KAAKsvC,KAAM7oB,EAClC,CACA,gBAAA8oB,CAAiB90C,EAAWoJ,GAC1B,MAAMpU,EAAK2X,EAAMhe,KAAKoZ,eAAeqB,EAAMpJ,GACrC/K,EAAK0X,EAAMhe,KAAKoZ,eAAeqB,EAAKf,MAAM,GAAIrI,GACpDuF,KAAKmvC,KAAOnhD,KAAKuS,IAAIP,KAAKmvC,KAAM1/C,EAAG,GAAIC,EAAG,IAC1CsQ,KAAKovC,KAAOphD,KAAKuS,IAAIP,KAAKovC,KAAM3/C,EAAG,GAAIC,EAAG,IAC1CsQ,KAAKqvC,KAAOrhD,KAAKiV,IAAIjD,KAAKqvC,KAAM5/C,EAAG,GAAIC,EAAG,IAC1CsQ,KAAKsvC,KAAOthD,KAAKiV,IAAIjD,KAAKsvC,KAAM7/C,EAAG,GAAIC,EAAG,GAC5C,CACA,uBAAA8/C,CAAwB/0C,EAAW2H,GACjCgF,EAAMhe,KAAK+Y,YAAY1H,EAAW2H,GAClCpC,KAAKmvC,KAAOnhD,KAAKuS,IAAIP,KAAKmvC,KAAM/sC,EAAO,IACvCpC,KAAKqvC,KAAOrhD,KAAKiV,IAAIjD,KAAKqvC,KAAMjtC,EAAO,IACvCpC,KAAKovC,KAAOphD,KAAKuS,IAAIP,KAAKovC,KAAMhtC,EAAO,IACvCpC,KAAKsvC,KAAOthD,KAAKiV,IAAIjD,KAAKsvC,KAAMltC,EAAO,GACzC,CACA,qBAAAqtC,CAAsBh1C,EAAW6J,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIzC,GAC/D,MAAMstC,EAAMtoC,EAAMhe,KAAKib,kBAAkBC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GACrE,GAAIzC,EAKF,OAJAA,EAAO,GAAKpU,KAAKuS,IAAI6B,EAAO,GAAIstC,EAAI,GAAIA,EAAI,IAC5CttC,EAAO,GAAKpU,KAAKiV,IAAIb,EAAO,GAAIstC,EAAI,GAAIA,EAAI,IAC5CttC,EAAO,GAAKpU,KAAKuS,IAAI6B,EAAO,GAAIstC,EAAI,GAAIA,EAAI,SAC5CttC,EAAO,GAAKpU,KAAKiV,IAAIb,EAAO,GAAIstC,EAAI,GAAIA,EAAI,KAG9C1vC,KAAKuvC,iBAAiB90C,EAAWi1C,EACnC,CACA,kBAAAC,CAAmBC,EAAWhE,EAAgBiE,SAAS17C,KAAMsG,EAAY,MACvE,MAAMi1C,EAAM,CAAC1vC,KAAKmvC,KAAMnvC,KAAKovC,KAAMpvC,KAAKqvC,KAAMrvC,KAAKsvC,MACnD,GAAIM,IAAahE,EAAgBiE,SAASz7C,OAAQ,CAC3CqG,IACH,EAAI2M,EAAMxb,aAAa,+CAEzB,MAAM8nB,EAAQtM,EAAMhe,KAAK+Z,8BAA8B1I,GACjDq1C,EAAap8B,EAAM,GAAK1T,KAAK4uC,UAAY,EACzCmB,EAAar8B,EAAM,GAAK1T,KAAK4uC,UAAY,EAC/Cc,EAAI,IAAMI,EACVJ,EAAI,IAAMK,EACVL,EAAI,IAAMI,EACVJ,EAAI,IAAMK,CACZ,CACA,OAAOL,CACT,CACA,kBAAAM,GACE,MAAMlsC,EAAYsD,EAAMhe,KAAK0a,UAAU9D,KAAKgvC,QAAShvC,KAAK2vC,sBAC1D3vC,KAAK+uC,uBAAuBjrC,GAAa,CAAC,EAAG,EAAG,EAAG,GACrD,CACA,WAAAmsC,GACE,OAAOjwC,KAAKmvC,OAASe,GACvB,CACA,sBAAAnB,CAAuBW,GACrB1vC,KAAKgvC,QAAUU,EACf1vC,KAAKmvC,KAAOe,IACZlwC,KAAKovC,KAAOc,IACZlwC,KAAKqvC,KAAO,EACZrvC,KAAKsvC,KAAO,CACd,CACA,yBAAAa,CAA0BP,EAAWhE,EAAgBiE,SAAS17C,KAAMsG,EAAY,MAC9E,OAAO2M,EAAMhe,KAAK0a,UAAU9D,KAAKgvC,QAAShvC,KAAK2vC,mBAAmBC,EAAUn1C,GAC9E,EAEF,SAAS21C,EAAmBrc,EAAKsc,GAC/B,GAAyB,oBAAdC,WAA6BD,aAAmBC,UAEzD,YADAvc,EAAIwc,aAAaF,EAAS,EAAG,GAG/B,MAAM5vB,EAAS4vB,EAAQ5vB,OACrBD,EAAQ6vB,EAAQ7vB,MACZgwB,EAAqB/vB,EAASsrB,EAC9B0E,GAAchwB,EAAS+vB,GAAsBzE,EAC7C2E,EAAqC,IAAvBF,EAA2BC,EAAaA,EAAa,EACnEE,EAAe5c,EAAI6c,gBAAgBpwB,EAAOurB,GAChD,IACE8E,EADEC,EAAS,EAEb,MAAMhoC,EAAMunC,EAAQtqC,KACdgrC,EAAOJ,EAAa5qC,KAC1B,IAAIhY,EAAGwX,EAAGyrC,EAAiBC,EAC3B,GAAIZ,EAAQa,OAAS9pC,EAAMhd,UAAUyK,eAAgB,CACnD,MAAMs8C,EAAYroC,EAAIla,WAChBwiD,EAAS,IAAIrwC,YAAYgwC,EAAK7/C,OAAQ,EAAG6/C,EAAKniD,YAAc,GAC5DyiD,EAAmBD,EAAO9kD,OAC1BglD,EAAc9wB,EAAQ,GAAK,EAC3B+wB,EAAQ,WACRC,EAAQpqC,EAAM7c,YAAYsW,eAAiB,WAAa,IAC9D,IAAK9S,EAAI,EAAGA,EAAI2iD,EAAa3iD,IAAK,CAGhC,IAFAijD,EAAkBjjD,EAAI0iD,EAAa1E,EAAoByE,EACvDK,EAAU,EACLtrC,EAAI,EAAGA,EAAIyrC,EAAiBzrC,IAAK,CACpC,MAAMksC,EAAUN,EAAYL,EAC5B,IAAIvO,EAAI,EACR,MAAMmP,EAAOD,EAAUH,EAAc9wB,EAAkB,EAAVixB,EAAc,EACrDE,GAAsB,EAAPD,EACrB,IAAIE,EAAO,EACPC,EAAU,EACd,KAAOtP,EAAIoP,EAAcpP,GAAK,EAC5BsP,EAAU/oC,EAAIgoC,KACdM,EAAOP,KAAuB,IAAVgB,EAAgBN,EAAQC,EAC5CJ,EAAOP,KAAuB,GAAVgB,EAAeN,EAAQC,EAC3CJ,EAAOP,KAAuB,GAAVgB,EAAeN,EAAQC,EAC3CJ,EAAOP,KAAuB,GAAVgB,EAAeN,EAAQC,EAC3CJ,EAAOP,KAAuB,EAAVgB,EAAcN,EAAQC,EAC1CJ,EAAOP,KAAuB,EAAVgB,EAAcN,EAAQC,EAC1CJ,EAAOP,KAAuB,EAAVgB,EAAcN,EAAQC,EAC1CJ,EAAOP,KAAuB,EAAVgB,EAAcN,EAAQC,EAE5C,KAAOjP,EAAImP,EAAMnP,IACF,IAATqP,IACFC,EAAU/oC,EAAIgoC,KACdc,EAAO,KAETR,EAAOP,KAAagB,EAAUD,EAAOL,EAAQC,EAC7CI,IAAS,CAEb,CACA,KAAOf,EAAUQ,GACfD,EAAOP,KAAa,EAEtB9c,EAAIwc,aAAaI,EAAc,EAAG5iD,EAAIg+C,EACxC,CACF,MAAO,GAAIsE,EAAQa,OAAS9pC,EAAMhd,UAAU2K,WAAY,CAGtD,IAFAwQ,EAAI,EACJ0rC,EAAmBzwB,EAAQurB,EAAoB,EAC1Ch+C,EAAI,EAAGA,EAAI0iD,EAAY1iD,IAC1BgjD,EAAK17B,IAAIvM,EAAIrI,SAASqwC,EAAQA,EAASG,IACvCH,GAAUG,EACVld,EAAIwc,aAAaI,EAAc,EAAGprC,GAClCA,GAAKwmC,EAEHh+C,EAAI2iD,IACNO,EAAmBzwB,EAAQgwB,EAAqB,EAChDO,EAAK17B,IAAIvM,EAAIrI,SAASqwC,EAAQA,EAASG,IACvCld,EAAIwc,aAAaI,EAAc,EAAGprC,GAEtC,KAAO,IAAI8qC,EAAQa,OAAS9pC,EAAMhd,UAAU0K,UAkB1C,MAAM,IAAI0K,MAAM,mBAAmB6wC,EAAQa,QAf3C,IAFAF,EAAkBjF,EAClBkF,EAAmBzwB,EAAQwwB,EACtBjjD,EAAI,EAAGA,EAAI2iD,EAAa3iD,IAAK,CAMhC,IALIA,GAAK0iD,IACPO,EAAkBR,EAClBS,EAAmBzwB,EAAQwwB,GAE7BH,EAAU,EACLtrC,EAAI0rC,EAAkB1rC,KACzBwrC,EAAKF,KAAa/nC,EAAIgoC,KACtBC,EAAKF,KAAa/nC,EAAIgoC,KACtBC,EAAKF,KAAa/nC,EAAIgoC,KACtBC,EAAKF,KAAa,IAEpB9c,EAAIwc,aAAaI,EAAc,EAAG5iD,EAAIg+C,EACxC,CAGF,CACF,CACA,SAAS+F,EAAmB/d,EAAKsc,GAC/B,GAAIA,EAAQ9vB,OAEV,YADAwT,EAAII,UAAUkc,EAAQ9vB,OAAQ,EAAG,GAGnC,MAAME,EAAS4vB,EAAQ5vB,OACrBD,EAAQ6vB,EAAQ7vB,MACZgwB,EAAqB/vB,EAASsrB,EAC9B0E,GAAchwB,EAAS+vB,GAAsBzE,EAC7C2E,EAAqC,IAAvBF,EAA2BC,EAAaA,EAAa,EACnEE,EAAe5c,EAAI6c,gBAAgBpwB,EAAOurB,GAChD,IAAI+E,EAAS,EACb,MAAMhoC,EAAMunC,EAAQtqC,KACdgrC,EAAOJ,EAAa5qC,KAC1B,IAAK,IAAIhY,EAAI,EAAGA,EAAI2iD,EAAa3iD,IAAK,CACpC,MAAMijD,EAAkBjjD,EAAI0iD,EAAa1E,EAAoByE,IAE3DM,WACE,EAAIjF,EAAakG,4BAA4B,CAC/CjpC,MACAgoC,SACAC,OACAvwB,QACAC,OAAQuwB,EACRgB,cAAe,KAEjBje,EAAIwc,aAAaI,EAAc,EAAG5iD,EAAIg+C,EACxC,CACF,CACA,SAASkG,EAAaC,EAAWC,GAC/B,MAAMC,EAAa,CAAC,cAAe,YAAa,WAAY,cAAe,YAAa,UAAW,WAAY,aAAc,2BAA4B,OAAQ,UACjK,IAAK,MAAMC,KAAYD,OACOzjD,IAAxBujD,EAAUG,KACZF,EAAQE,GAAYH,EAAUG,SAGJ1jD,IAA1BujD,EAAUI,cACZH,EAAQG,YAAYJ,EAAUK,eAC9BJ,EAAQK,eAAiBN,EAAUM,eAEvC,CACA,SAASC,EAAkB1e,GAczB,GAbAA,EAAI2e,YAAc3e,EAAI4e,UAAY,UAClC5e,EAAI6e,SAAW,UACf7e,EAAI8e,YAAc,EAClB9e,EAAI6a,UAAY,EAChB7a,EAAI+e,QAAU,OACd/e,EAAIgf,SAAW,QACfhf,EAAIif,WAAa,GACjBjf,EAAIkf,yBAA2B,cAC/Blf,EAAI/T,KAAO,uBACarxB,IAApBolC,EAAIue,cACNve,EAAIue,YAAY,IAChBve,EAAIye,eAAiB,IAElBprC,EAAMnY,SAAU,CACnB,MAAM,OACJgyC,GACElN,EACW,SAAXkN,GAAgC,KAAXA,IACvBlN,EAAIkN,OAAS,OAEjB,CACF,CACA,SAASiS,EAAqB/yC,EAAOgzC,EAAIC,EAAIC,GAC3C,MAAM/mD,EAAS6T,EAAM7T,OACrB,IAAK,IAAIyB,EAAI,EAAGA,EAAIzB,EAAQyB,GAAK,EAAG,CAClC,MAAMulD,EAAQnzC,EAAMpS,GACpB,GAAc,IAAVulD,EACFnzC,EAAMpS,EAAI,GAAKolD,EACfhzC,EAAMpS,EAAI,GAAKqlD,EACfjzC,EAAMpS,EAAI,GAAKslD,OACV,GAAIC,EAAQ,IAAK,CACtB,MAAMC,EAAS,IAAMD,EACrBnzC,EAAMpS,EAAI,GAAKoS,EAAMpS,EAAI,GAAKulD,EAAQH,EAAKI,GAAU,EACrDpzC,EAAMpS,EAAI,GAAKoS,EAAMpS,EAAI,GAAKulD,EAAQF,EAAKG,GAAU,EACrDpzC,EAAMpS,EAAI,GAAKoS,EAAMpS,EAAI,GAAKulD,EAAQD,EAAKE,GAAU,CACvD,CACF,CACF,CACA,SAASC,EAAkBC,EAAUC,EAAWC,GAC9C,MAAMrnD,EAASmnD,EAASnnD,OAClBonB,EAAQ,EAAI,IAClB,IAAK,IAAI3lB,EAAI,EAAGA,EAAIzB,EAAQyB,GAAK,EAAG,CAClC,MAAMulD,EAAQK,EAAcA,EAAYF,EAAS1lD,IAAM0lD,EAAS1lD,GAChE2lD,EAAU3lD,GAAK2lD,EAAU3lD,GAAKulD,EAAQ5/B,EAAQ,CAChD,CACF,CACA,SAASkgC,EAAuBH,EAAUC,EAAWC,GACnD,MAAMrnD,EAASmnD,EAASnnD,OACxB,IAAK,IAAIyB,EAAI,EAAGA,EAAIzB,EAAQyB,GAAK,EAAG,CAClC,MAAM04B,EAAsB,GAAlBgtB,EAAS1lD,EAAI,GAA4B,IAAlB0lD,EAAS1lD,EAAI,GAA6B,GAAlB0lD,EAAS1lD,EAAI,GACtE2lD,EAAU3lD,GAAK4lD,EAAcD,EAAU3lD,GAAK4lD,EAAYltB,GAAK,IAAM,EAAIitB,EAAU3lD,GAAK04B,GAAK,EAC7F,CACF,CAoCA,SAASotB,EAAyBp5C,EAAWq5C,GAC3C,MAAMpgC,EAAQtM,EAAMhe,KAAK+Z,8BAA8B1I,GACvDiZ,EAAM,GAAK1lB,KAAK+lD,OAAOrgC,EAAM,IAC7BA,EAAM,GAAK1lB,KAAK+lD,OAAOrgC,EAAM,IAC7B,MAAMsgC,EAAchmD,KAAK+lD,QAAQnrD,WAAWqrD,kBAAoB,GAAK3sC,EAAekyB,cAAcC,kBAClG,YAAoB9qC,IAAhBmlD,EACKA,EACEpgC,EAAM,IAAMsgC,GAAetgC,EAAM,IAAMsgC,CAIpD,CACA,MAAME,EAAkB,CAAC,OAAQ,QAAS,UACpCC,EAAmB,CAAC,QAAS,QAAS,SACtCC,EAAc,CAAC,EACfC,EAAU,CAAC,EACjB,MAAM3xB,EACJ,WAAAziB,CAAYq0C,EAAWrhC,EAAYC,EAAM/H,EAAeC,GAAe,sBACrE2L,EAAqB,mBACrBw9B,EAAqB,MACpBx/B,EAAqBC,GACtBhV,KAAK+zB,IAAMugB,EACXt0C,KAAKyrC,QAAU,IAAI+B,EAAiBxtC,KAAK+zB,IAAI1S,OAAOb,MAAOxgB,KAAK+zB,IAAI1S,OAAOZ,QAC3EzgB,KAAKw0C,WAAa,GAClBx0C,KAAKy0C,YAAc,KACnBz0C,KAAK00C,eAAgB,EACrB10C,KAAK20C,IAAM,KACX30C,KAAK40C,MAAQ,KACb50C,KAAKiT,WAAaA,EAClBjT,KAAKkT,KAAOA,EACZlT,KAAKmL,cAAgBA,EACrBnL,KAAKoL,cAAgBA,EACrBpL,KAAK60C,WAAa,GAClB70C,KAAK80C,gBAAkB,KACvB90C,KAAK+0C,cAAgB,KACrB/0C,KAAKg1C,mBAAqB,GAC1Bh1C,KAAKi1C,WAAa,EAClBj1C,KAAKk1C,WAAa,GAClBl1C,KAAKm1C,aAAe,EACpBn1C,KAAKo1C,UAAY,KACjBp1C,KAAKq1C,aAAe,KACpBr1C,KAAKs1C,gBAAiB,EACtBt1C,KAAKu0C,mBAAqBA,GAAsB,GAChDv0C,KAAK+W,sBAAwBA,EAC7B/W,KAAKu1C,eAAiB,IAAIvJ,EAAehsC,KAAKmL,eAC9CnL,KAAKw1C,eAAiB,IAAIlmD,IAC1B0Q,KAAK+U,oBAAsBA,EAC3B/U,KAAKy1C,cAAgB,EACrBz1C,KAAK01C,aAAe,EACpB11C,KAAK21C,aAAe,EACpB31C,KAAKgV,WAAaA,EAClBhV,KAAK41C,wBAA0B,EAAE,EAAG,GACpC51C,KAAK61C,2BAA6B,KAClC71C,KAAK81C,kBAAoB,IAAIxmD,GAC/B,CACA,SAAAymD,CAAUhwC,EAAMiwC,EAAW,MACzB,MAAoB,iBAATjwC,EACFA,EAAK5Z,WAAW,MAAQ6T,KAAKiT,WAAWrjB,IAAImW,GAAQ/F,KAAKkT,KAAKtjB,IAAImW,GAEpEiwC,CACT,CACA,YAAArzB,EAAa,UACXloB,EAAS,SACTka,EAAQ,aACRmC,GAAe,EAAK,WACpBjC,EAAa,OAEb,MAAM2L,EAAQxgB,KAAK+zB,IAAI1S,OAAOb,MACxBC,EAASzgB,KAAK+zB,IAAI1S,OAAOZ,OACzBw1B,EAAiBj2C,KAAK+zB,IAAI4e,UAIhC,GAHA3yC,KAAK+zB,IAAI4e,UAAY99B,GAAc,UACnC7U,KAAK+zB,IAAImiB,SAAS,EAAG,EAAG11B,EAAOC,GAC/BzgB,KAAK+zB,IAAI4e,UAAYsD,EACjBn/B,EAAc,CAChB,MAAMq/B,EAAoBn2C,KAAKu1C,eAAerJ,UAAU,cAAe1rB,EAAOC,GAC9EzgB,KAAKo2C,aAAep2C,KAAK+zB,IACzB/zB,KAAKm2C,kBAAoBA,EAAkB90B,OAC3CrhB,KAAK+zB,IAAMoiB,EAAkB/xB,QAC7BpkB,KAAK+zB,IAAIx5B,OACTyF,KAAK+zB,IAAIt5B,cAAa,EAAI6M,EAAe22B,qBAAqBj+B,KAAKo2C,cACrE,CACAp2C,KAAK+zB,IAAIx5B,OACTk4C,EAAkBzyC,KAAK+zB,KACnBt5B,IACFuF,KAAK+zB,IAAIt5B,aAAaA,GACtBuF,KAAK01C,aAAej7C,EAAU,GAC9BuF,KAAK21C,aAAel7C,EAAU,IAEhCuF,KAAK+zB,IAAIt5B,aAAaka,EAASla,WAC/BuF,KAAKy1C,cAAgB9gC,EAASjB,MAC9B1T,KAAK+0C,eAAgB,EAAIztC,EAAe22B,qBAAqBj+B,KAAK+zB,IACpE,CACA,mBAAAhR,CAAoBrN,EAAc2gC,EAAmBC,EAAkBj0B,GACrE,MAAMzM,EAAYF,EAAaE,UACzBD,EAAUD,EAAaC,QAC7B,IAAI5nB,EAAIsoD,GAAqB,EAC7B,MAAME,EAAe3gC,EAAUtpB,OAC/B,GAAIiqD,IAAiBxoD,EACnB,OAAOA,EAET,MAAMyoD,EAAkBD,EAAexoD,EAhtBnB,IAgtBsE,mBAArBuoD,EAC/DG,EAAUD,EAAkBzpD,KAAK04C,MAltBpB,GAktB6C,EAChE,IAAIiR,EAAQ,EACZ,MAAMzjC,EAAajT,KAAKiT,WAClBC,EAAOlT,KAAKkT,KAClB,IAAIyjC,EACJ,OAAa,CACX,QAAgBhoD,IAAZ0zB,GAAyBt0B,IAAMs0B,EAAQE,eAEzC,OADAF,EAAQu0B,QAAQ7oD,EAAGuoD,GACZvoD,EAGT,GADA4oD,EAAOhhC,EAAQ5nB,GACX4oD,IAASvvC,EAAMtd,IAAIgQ,WACrBkG,KAAK22C,GAAMt2C,MAAML,KAAM4V,EAAU7nB,SAEjC,IAAK,MAAM8oD,KAAYjhC,EAAU7nB,GAAI,CACnC,MAAM+oD,EAAWD,EAAS1qD,WAAW,MAAQ8mB,EAAaC,EAC1D,IAAK4jC,EAASp7B,IAAIm7B,GAEhB,OADAC,EAASlnD,IAAIinD,EAAUP,GAChBvoD,CAEX,CAGF,GADAA,IACIA,IAAMwoD,EACR,OAAOxoD,EAET,GAAIyoD,KAAqBE,EA3uBP,GA2uBgC,CAChD,GAAI3pD,KAAK04C,MAAQgR,EAEf,OADAH,IACOvoD,EAET2oD,EAAQ,CACV,CACF,CACF,CACA,MACE,KAAO12C,KAAKw0C,WAAWloD,QAAU0T,KAAK+2C,aACpC/2C,KAAKxF,UAEPwF,KAAK+zB,IAAIv5B,UACLwF,KAAKm2C,oBACPn2C,KAAK+zB,IAAM/zB,KAAKo2C,aAChBp2C,KAAK+zB,IAAIx5B,OACTyF,KAAK+zB,IAAIuZ,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GACrCttC,KAAK+zB,IAAII,UAAUn0B,KAAKm2C,kBAAmB,EAAG,GAC9Cn2C,KAAK+zB,IAAIv5B,UACTwF,KAAKm2C,kBAAoB,KAE7B,CACA,UAAAvzB,GACE5iB,MAAK,KACLA,KAAKu1C,eAAex8B,QACpB/Y,KAAKw1C,eAAez8B,QACpB,IAAK,MAAMkzB,KAASjsC,KAAK81C,kBAAkBn9B,SAAU,CACnD,IAAK,MAAM0I,KAAU4qB,EAAMtzB,SACQ,oBAAtBq+B,mBAAqC31B,aAAkB21B,oBAChE31B,EAAOb,MAAQa,EAAOZ,OAAS,GAGnCwrB,EAAMlzB,OACR,CACA/Y,KAAK81C,kBAAkB/8B,QACvB/Y,MAAK,IACP,CACA,MACE,GAAIA,KAAKgV,WAAY,CACnB,MAAMiiC,EAAcj3C,KAAKoL,cAAcyuB,aAAa75B,KAAKgV,WAAW8kB,WAAY95B,KAAKgV,WAAWH,YAChG,GAAoB,SAAhBoiC,EAAwB,CAC1B,MAAMC,EAAcl3C,KAAK+zB,IAAIkN,OAC7BjhC,KAAK+zB,IAAIkN,OAASgW,EAClBj3C,KAAK+zB,IAAII,UAAUn0B,KAAK+zB,IAAI1S,OAAQ,EAAG,GACvCrhB,KAAK+zB,IAAIkN,OAASiW,CACpB,CACF,CACF,CACA,WAAAC,CAAYC,EAAKl0C,GACf,MAAMsd,EAAQ42B,EAAI52B,MACZC,EAAS22B,EAAI32B,OACnB,IAKI42B,EAAWC,EALXC,EAAavpD,KAAKiV,IAAIjV,KAAKihC,MAAM/rB,EAAiB,GAAIA,EAAiB,IAAK,GAC5Es0C,EAAcxpD,KAAKiV,IAAIjV,KAAKihC,MAAM/rB,EAAiB,GAAIA,EAAiB,IAAK,GAC7Eu0C,EAAaj3B,EACfk3B,EAAcj3B,EACZk3B,EAAc,YAElB,KAAOJ,EAAa,GAAKE,EAAa,GAAKD,EAAc,GAAKE,EAAc,GAAG,CAC7E,IAAItqB,EAAWqqB,EACbpqB,EAAYqqB,EACVH,EAAa,GAAKE,EAAa,IACjCrqB,EAAWqqB,GAAc,MAAQzpD,KAAKC,MAAMwpD,EAAa,GAAK,GAAK,EAAIzpD,KAAK4pD,KAAKH,EAAa,GAC9FF,GAAcE,EAAarqB,GAEzBoqB,EAAc,GAAKE,EAAc,IACnCrqB,EAAYqqB,GAAe,MAAQ1pD,KAAKC,MAAMypD,EAAc,GAAK,GAAK,EAAI1pD,KAAK4pD,KAAKF,GAAe,EACnGF,GAAeE,EAAcrqB,GAE/BgqB,EAAYr3C,KAAKu1C,eAAerJ,UAAUyL,EAAavqB,EAAUC,GACjEiqB,EAASD,EAAUjzB,QACnBkzB,EAAOO,UAAU,EAAG,EAAGzqB,EAAUC,GACjCiqB,EAAOnjB,UAAUijB,EAAK,EAAG,EAAGK,EAAYC,EAAa,EAAG,EAAGtqB,EAAUC,GACrE+pB,EAAMC,EAAUh2B,OAChBo2B,EAAarqB,EACbsqB,EAAcrqB,EACdsqB,EAA8B,cAAhBA,EAA8B,YAAc,WAC5D,CACA,MAAO,CACLP,MACAK,aACAC,cAEJ,CACA,iBAAAI,CAAkBV,GAChB,MAAMrjB,EAAM/zB,KAAK+zB,KACX,MACJvT,EAAK,OACLC,GACE22B,EACE7I,EAAYvuC,KAAKyrC,QAAQ8C,UACzBwJ,EAAgB/3C,KAAKyrC,QAAQgD,YAC7BuJ,GAAmB,EAAI1wC,EAAe22B,qBAAqBlK,GACjE,IAAIkY,EAAO72B,EAAU6iC,EAAQC,EAC7B,IAAKd,EAAI72B,QAAU62B,EAAIrxC,OAASqxC,EAAIe,MAAQ,EAAG,CAC7C,MAAMC,EAAUhB,EAAI72B,QAAU62B,EAAIrxC,KAAK7U,OACvCkkB,EAAWqP,KAAKC,UAAUqzB,EAAgBC,EAAmB,CAACA,EAAiBl1C,MAAM,EAAG,GAAIyrC,IAC5FtC,EAAQjsC,KAAK81C,kBAAkBlmD,IAAIwoD,GAC9BnM,IACHA,EAAQ,IAAI38C,IACZ0Q,KAAK81C,kBAAkBzgC,IAAI+iC,EAASnM,IAEtC,MAAMoM,EAAcpM,EAAMr8C,IAAIwlB,GAC9B,GAAIijC,IAAgBN,EAGlB,MAAO,CACL12B,OAAQg3B,EACRzkC,QAJc5lB,KAAKs9B,MAAMt9B,KAAKuS,IAAIy3C,EAAiB,GAAIA,EAAiB,IAAMA,EAAiB,IAK/FnkC,QAJc7lB,KAAKs9B,MAAMt9B,KAAKuS,IAAIy3C,EAAiB,GAAIA,EAAiB,IAAMA,EAAiB,KAOnGC,EAASI,CACX,CACKJ,IACHC,EAAal4C,KAAKu1C,eAAerJ,UAAU,aAAc1rB,EAAOC,GAChEqxB,EAAmBoG,EAAW9zB,QAASgzB,IAEzC,IAAIkB,EAAelxC,EAAMhe,KAAKqR,UAAUu9C,EAAkB,CAAC,EAAIx3B,EAAO,EAAG,GAAI,EAAIC,EAAQ,EAAG,IAC5F63B,EAAelxC,EAAMhe,KAAKqR,UAAU69C,EAAc,CAAC,EAAG,EAAG,EAAG,EAAG,GAAI73B,IACnE,MAAM83B,EAAQnxC,EAAMhe,KAAKoZ,eAAe,CAAC,EAAG,GAAI81C,GAC1CE,EAAQpxC,EAAMhe,KAAKoZ,eAAe,CAACge,EAAOC,GAAS63B,GACnDz0C,EAAOuD,EAAMhe,KAAKwa,cAAc,CAAC20C,EAAM,GAAIA,EAAM,GAAIC,EAAM,GAAIA,EAAM,KACrEC,EAAazqD,KAAKs9B,MAAMznB,EAAK,GAAKA,EAAK,KAAO,EAC9C60C,EAAc1qD,KAAKs9B,MAAMznB,EAAK,GAAKA,EAAK,KAAO,EAC/C80C,EAAa34C,KAAKu1C,eAAerJ,UAAU,aAAcuM,EAAYC,GACrEE,EAAUD,EAAWv0B,QACrBxQ,EAAU5lB,KAAKuS,IAAIg4C,EAAM,GAAIC,EAAM,IACnC3kC,EAAU7lB,KAAKuS,IAAIg4C,EAAM,GAAIC,EAAM,IACzCI,EAAQ3uB,WAAWrW,GAAUC,GAC7B+kC,EAAQn+C,aAAa69C,GAChBL,IACHA,EAASj4C,KAAKm3C,YAAYe,EAAW72B,QAAQ,EAAI/Z,EAAe82B,4BAA4Bwa,IAC5FX,EAASA,EAAOb,IACZnL,GAAS8L,GACX9L,EAAM52B,IAAID,EAAU6iC,IAGxBW,EAAQC,sBAAwBhF,GAAyB,EAAIvsC,EAAe22B,qBAAqB2a,GAAUxB,EAAItD,aAC/G1H,EAAyBwM,EAASX,EAAQ,EAAG,EAAGA,EAAOz3B,MAAOy3B,EAAOx3B,OAAQ,EAAG,EAAGD,EAAOC,GAC1Fm4B,EAAQ3F,yBAA2B,YACnC,MAAM6F,EAAU1xC,EAAMhe,KAAKqR,WAAU,EAAI6M,EAAe82B,4BAA4Bwa,GAAU,CAAC,EAAG,EAAG,EAAG,GAAIhlC,GAAUC,IAOtH,OANA+kC,EAAQjG,UAAYoF,EAAgBxJ,EAAUwK,WAAWhlB,EAAK/zB,KAAM84C,EAASlN,EAAgBiE,SAAS17C,MAAQo6C,EAC9GqK,EAAQ1C,SAAS,EAAG,EAAG11B,EAAOC,GAC1BwrB,IAAU8L,IACZ/3C,KAAKu1C,eAAep/B,OAAO,cAC3B81B,EAAM52B,IAAID,EAAUujC,EAAWt3B,SAE1B,CACLA,OAAQs3B,EAAWt3B,OACnBzN,QAAS5lB,KAAKs9B,MAAM1X,GACpBC,QAAS7lB,KAAKs9B,MAAMzX,GAExB,CACA,YAAA9Z,CAAaymB,GACPA,IAAUxgB,KAAKyrC,QAAQmD,YACzB5uC,KAAK41C,wBAAwB,IAAM,GAErC51C,KAAKyrC,QAAQmD,UAAYpuB,EACzBxgB,KAAK+zB,IAAI6a,UAAYpuB,CACvB,CACA,UAAAxmB,CAAW2tB,GACT3nB,KAAK+zB,IAAI+e,QAAUoB,EAAgBvsB,EACrC,CACA,WAAA1tB,CAAY0tB,GACV3nB,KAAK+zB,IAAIgf,SAAWoB,EAAiBxsB,EACvC,CACA,aAAAztB,CAAc8+C,GACZh5C,KAAK+zB,IAAIif,WAAagG,CACxB,CACA,OAAA7+C,CAAQ8+C,EAAWC,GACjB,MAAMnlB,EAAM/zB,KAAK+zB,SACOplC,IAApBolC,EAAIue,cACNve,EAAIue,YAAY2G,GAChBllB,EAAIye,eAAiB0G,EAEzB,CACA,kBAAA9+C,CAAmB8Z,GAAS,CAC5B,WAAA7Z,CAAY8+C,GAAW,CACvB,SAAA7+C,CAAU8+C,GACR,IAAK,MAAOnpD,EAAK/G,KAAUkwD,EACzB,OAAQnpD,GACN,IAAK,KACH+P,KAAKjG,aAAa7Q,GAClB,MACF,IAAK,KACH8W,KAAKhG,WAAW9Q,GAChB,MACF,IAAK,KACH8W,KAAK/F,YAAY/Q,GACjB,MACF,IAAK,KACH8W,KAAK9F,cAAchR,GACnB,MACF,IAAK,IACH8W,KAAK7F,QAAQjR,EAAM,GAAIA,EAAM,IAC7B,MACF,IAAK,KACH8W,KAAK5F,mBAAmBlR,GACxB,MACF,IAAK,KACH8W,KAAK3F,YAAYnR,GACjB,MACF,IAAK,OACH8W,KAAK9D,QAAQhT,EAAM,GAAIA,EAAM,IAC7B,MACF,IAAK,KACH8W,KAAKyrC,QAAQkD,YAAczlD,EAC3B,MACF,IAAK,KACH8W,KAAKyrC,QAAQiD,UAAYxlD,EACzB8W,KAAK+zB,IAAI8e,YAAc3pD,EACvB,MACF,IAAK,KACH8W,KAAK+zB,IAAIkf,yBAA2B/pD,EACpC,MACF,IAAK,QACH8W,KAAKyrC,QAAQoD,YAAc3lD,EAAQ8W,KAAKo1C,UAAY,KACpDp1C,KAAKo1C,UAAY,KACjBp1C,KAAKq5C,kBACL,MACF,IAAK,KACHr5C,KAAK+zB,IAAIkN,OAASjhC,KAAKyrC,QAAQqD,aAAe9uC,KAAKoL,cAAck1B,UAAUp3C,GAInF,CACA,eAAI6tD,GACF,QAAS/2C,KAAKq1C,YAChB,CACA,eAAAgE,GACE,MAAMtC,EAAc/2C,KAAK+2C,YACrB/2C,KAAKyrC,QAAQoD,cAAgBkI,EAC/B/2C,KAAKs5C,kBACKt5C,KAAKyrC,QAAQoD,aAAekI,GACtC/2C,KAAKu5C,cAET,CACA,cAAAD,GACE,GAAIt5C,KAAK+2C,YACP,MAAM,IAAIv3C,MAAM,qDAElB,MAAMi5C,EAAaz4C,KAAK+zB,IAAI1S,OAAOb,MAC7Bk4B,EAAc14C,KAAK+zB,IAAI1S,OAAOZ,OAC9B+4B,EAAU,eAAiBx5C,KAAKi1C,WAChCwE,EAAgBz5C,KAAKu1C,eAAerJ,UAAUsN,EAASf,EAAYC,GACzE14C,KAAKq1C,aAAer1C,KAAK+zB,IACzB/zB,KAAK+zB,IAAM0lB,EAAcr1B,QACzB,MAAM2P,EAAM/zB,KAAK+zB,IACjBA,EAAIuZ,iBAAgB,EAAIhmC,EAAe22B,qBAAqBj+B,KAAKq1C,eACjEpD,EAAajyC,KAAKq1C,aAActhB,GAl+BpC,SAAiCA,EAAKoe,GACpC,GAAIpe,EAAI2lB,iBACN,MAAM,IAAIl6C,MAAM,6CAElBu0B,EAAI4lB,eAAiB5lB,EAAIx5B,KACzBw5B,EAAI6lB,kBAAoB7lB,EAAIv5B,QAC5Bu5B,EAAI8lB,iBAAmB9lB,EAAIzgB,OAC3BygB,EAAI+lB,gBAAkB/lB,EAAIrgB,MAC1BqgB,EAAIgmB,oBAAsBhmB,EAAI9J,UAC9B8J,EAAIimB,oBAAsBjmB,EAAIt5B,UAC9Bs5B,EAAIkmB,uBAAyBlmB,EAAIuZ,aACjCvZ,EAAImmB,yBAA2BnmB,EAAIomB,eACnCpmB,EAAIqmB,eAAiBrmB,EAAIr4B,KACzBq4B,EAAIsmB,iBAAmBtmB,EAAIr5B,OAC3Bq5B,EAAIumB,iBAAmBvmB,EAAIp5B,OAC3Bo5B,EAAIwmB,wBAA0BxmB,EAAIymB,cAClCzmB,EAAI0mB,eAAiB1mB,EAAIlwB,KACzBkwB,EAAI2mB,oBAAsB3mB,EAAIh5B,UAC9Bg5B,EAAI4mB,oBAAsB5mB,EAAI6mB,UAC9B7mB,EAAI2lB,iBAAmB,KACrB3lB,EAAIx5B,KAAOw5B,EAAI4lB,eACf5lB,EAAIv5B,QAAUu5B,EAAI6lB,kBAClB7lB,EAAIzgB,OAASygB,EAAI8lB,iBACjB9lB,EAAIrgB,MAAQqgB,EAAI+lB,gBAChB/lB,EAAI9J,UAAY8J,EAAIgmB,oBACpBhmB,EAAIt5B,UAAYs5B,EAAIimB,oBACpBjmB,EAAIuZ,aAAevZ,EAAIkmB,uBACvBlmB,EAAIomB,eAAiBpmB,EAAImmB,yBACzBnmB,EAAIr4B,KAAOq4B,EAAIqmB,eACfrmB,EAAIr5B,OAASq5B,EAAIsmB,iBACjBtmB,EAAIp5B,OAASo5B,EAAIumB,iBACjBvmB,EAAIymB,cAAgBzmB,EAAIwmB,wBACxBxmB,EAAIlwB,KAAOkwB,EAAI0mB,eACf1mB,EAAIh5B,UAAYg5B,EAAI2mB,oBACpB3mB,EAAI6mB,UAAY7mB,EAAI4mB,2BACb5mB,EAAI2lB,gBAAgB,EAE7B3lB,EAAIx5B,KAAO,WACT43C,EAAQ53C,OACRyF,KAAK25C,gBACP,EACA5lB,EAAIv5B,QAAU,WACZ23C,EAAQ33C,UACRwF,KAAK45C,mBACP,EACA7lB,EAAI9J,UAAY,SAAsBzD,EAAGC,GACvC0rB,EAAQloB,UAAUzD,EAAGC,GACrBzmB,KAAK+5C,oBAAoBvzB,EAAGC,EAC9B,EACAsN,EAAIrgB,MAAQ,SAAkB8S,EAAGC,GAC/B0rB,EAAQz+B,MAAM8S,EAAGC,GACjBzmB,KAAK85C,gBAAgBtzB,EAAGC,EAC1B,EACAsN,EAAIt5B,UAAY,SAAsB4I,EAAGnB,EAAGoB,EAAGV,EAAGguB,EAAGsN,GACnDiU,EAAQ13C,UAAU4I,EAAGnB,EAAGoB,EAAGV,EAAGguB,EAAGsN,GACjCl+B,KAAKg6C,oBAAoB32C,EAAGnB,EAAGoB,EAAGV,EAAGguB,EAAGsN,EAC1C,EACAnK,EAAIuZ,aAAe,SAAyBjqC,EAAGnB,EAAGoB,EAAGV,EAAGguB,EAAGsN,GACzDiU,EAAQ7E,aAAajqC,EAAGnB,EAAGoB,EAAGV,EAAGguB,EAAGsN,GACpCl+B,KAAKi6C,uBAAuB52C,EAAGnB,EAAGoB,EAAGV,EAAGguB,EAAGsN,EAC7C,EACAnK,EAAIomB,eAAiB,WACnBhI,EAAQgI,iBACRn6C,KAAKk6C,0BACP,EACAnmB,EAAIzgB,OAAS,SAAmB0X,GAC9BmnB,EAAQ7+B,OAAO0X,GACfhrB,KAAK65C,iBAAiB7uB,EACxB,EACA+I,EAAIr4B,KAAO,SAAmBysC,GAC5BgK,EAAQz2C,KAAKysC,GACbnoC,KAAKo6C,eAAejS,EACtB,EACApU,EAAIr5B,OAAS,SAAU8rB,EAAGC,GACxB0rB,EAAQz3C,OAAO8rB,EAAGC,GAClBzmB,KAAKq6C,iBAAiB7zB,EAAGC,EAC3B,EACAsN,EAAIp5B,OAAS,SAAU6rB,EAAGC,GACxB0rB,EAAQx3C,OAAO6rB,EAAGC,GAClBzmB,KAAKs6C,iBAAiB9zB,EAAGC,EAC3B,EACAsN,EAAIymB,cAAgB,SAAUK,EAAMC,EAAMC,EAAMC,EAAMx0B,EAAGC,GACvD0rB,EAAQqI,cAAcK,EAAMC,EAAMC,EAAMC,EAAMx0B,EAAGC,GACjDzmB,KAAKu6C,wBAAwBM,EAAMC,EAAMC,EAAMC,EAAMx0B,EAAGC,EAC1D,EACAsN,EAAIlwB,KAAO,SAAU2iB,EAAGC,EAAGjG,EAAOC,GAChC0xB,EAAQtuC,KAAK2iB,EAAGC,EAAGjG,EAAOC,GAC1BzgB,KAAKy6C,eAAej0B,EAAGC,EAAGjG,EAAOC,EACnC,EACAsT,EAAIh5B,UAAY,WACdo3C,EAAQp3C,YACRiF,KAAK06C,qBACP,EACA3mB,EAAI6mB,UAAY,WACdzI,EAAQyI,YACR56C,KAAK26C,qBACP,CACF,CAk4BIM,CAAwBlnB,EAAK/zB,KAAKq1C,cAClCr1C,KAAK1F,UAAU,CAAC,CAAC,KAAM,eAAgB,CAAC,KAAM,GAAI,CAAC,KAAM,IAC3D,CACA,YAAAi/C,GACE,IAAKv5C,KAAK+2C,YACR,MAAM,IAAIv3C,MAAM,+CAElBQ,KAAK+zB,IAAI2lB,mBACTzH,EAAajyC,KAAK+zB,IAAK/zB,KAAKq1C,cAC5Br1C,KAAK+zB,IAAM/zB,KAAKq1C,aAChBr1C,KAAKq1C,aAAe,IACtB,CACA,OAAA6F,CAAQC,GACN,IAAKn7C,KAAKyrC,QAAQoD,YAChB,OAEGsM,GAGHA,EAAS,GAAKntD,KAAKC,MAAMktD,EAAS,IAClCA,EAAS,GAAKntD,KAAKC,MAAMktD,EAAS,IAClCA,EAAS,GAAKntD,KAAK4pD,KAAKuD,EAAS,IACjCA,EAAS,GAAKntD,KAAK4pD,KAAKuD,EAAS,KALjCA,EAAW,CAAC,EAAG,EAAGn7C,KAAK+zB,IAAI1S,OAAOb,MAAOxgB,KAAK+zB,IAAI1S,OAAOZ,QAO3D,MAAM26B,EAAQp7C,KAAKyrC,QAAQoD,aAla/B,SAAsB9a,EAAKqnB,EAAOC,EAAUC,GAC1C,MAAMC,EAAeD,EAAS,GACxBE,EAAeF,EAAS,GACxBG,EAAaH,EAAS,GAAKC,EAC3BG,EAAcJ,EAAS,GAAKE,EACf,IAAfC,GAAoC,IAAhBC,IAxB1B,SAA6BC,EAASN,EAAU76B,EAAOC,EAAQqP,EAAS8rB,EAAUjI,EAAa4H,EAAcC,EAAcK,EAAaC,GACtI,MAAMC,IAAgBH,EAChBzI,EAAK4I,EAAcH,EAAS,GAAK,EACjCxI,EAAK2I,EAAcH,EAAS,GAAK,EACjCvI,EAAK0I,EAAcH,EAAS,GAAK,EACjCI,EAAwB,eAAZlsB,EAA2B8jB,EAAyBJ,EAEhEyI,EAAYjuD,KAAKuS,IAAIkgB,EAAQzyB,KAAK4pD,KADd,QACuCp3B,IACjE,IAAK,IAAI07B,EAAM,EAAGA,EAAMz7B,EAAQy7B,GAAOD,EAAW,CAChD,MAAME,EAAcnuD,KAAKuS,IAAI07C,EAAWx7B,EAASy7B,GAC3CzI,EAAWkI,EAAQvnB,aAAamnB,EAAeM,EAAaK,GAAOV,EAAeM,GAAct7B,EAAO27B,GACvGzI,EAAY2H,EAASjnB,aAAamnB,EAAcW,EAAMV,EAAch7B,EAAO27B,GAC7EJ,GACF7I,EAAqBO,EAAS1tC,KAAMotC,EAAIC,EAAIC,GAE9C2I,EAAUvI,EAAS1tC,KAAM2tC,EAAU3tC,KAAM4tC,GACzC0H,EAAS9K,aAAamD,EAAW6H,EAAcW,EAAMV,EACvD,CACF,CASEY,CAAoBhB,EAAMh3B,QAASi3B,EAAUI,EAAYC,EAAaN,EAAMtrB,QAASsrB,EAAMQ,SAAUR,EAAMzH,YAAa4H,EAAcC,EAAcJ,EAAMxnC,QAASwnC,EAAMvnC,SACzKkgB,EAAIx5B,OACJw5B,EAAI8e,YAAc,EAClB9e,EAAIkf,yBAA2B,cAC/Blf,EAAIuZ,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GAChCvZ,EAAII,UAAUknB,EAASh6B,OAAQ,EAAG,GAClC0S,EAAIv5B,UACN,EAqZI6hD,CADqBr8C,KAAKq1C,aACC+F,EAAOp7C,KAAK+zB,IAAKonB,GAC5Cn7C,KAAK+zB,IAAIx5B,OACTyF,KAAK+zB,IAAIuZ,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GACrCttC,KAAK+zB,IAAI8jB,UAAU,EAAG,EAAG73C,KAAK+zB,IAAI1S,OAAOb,MAAOxgB,KAAK+zB,IAAI1S,OAAOZ,QAChEzgB,KAAK+zB,IAAIv5B,SACX,CACA,IAAAD,GACMyF,KAAK+2C,aACP9E,EAAajyC,KAAK+zB,IAAK/zB,KAAKq1C,cAC5Br1C,KAAKq1C,aAAa96C,QAElByF,KAAK+zB,IAAIx5B,OAEX,MAAM+hD,EAAMt8C,KAAKyrC,QACjBzrC,KAAKw0C,WAAW9iD,KAAK4qD,GACrBt8C,KAAKyrC,QAAU6Q,EAAIz3B,OACrB,CACA,OAAArqB,GACiC,IAA3BwF,KAAKw0C,WAAWloD,QAAgB0T,KAAK+2C,aACvC/2C,KAAKu5C,eAEwB,IAA3Bv5C,KAAKw0C,WAAWloD,SAClB0T,KAAKyrC,QAAUzrC,KAAKw0C,WAAW+H,MAC3Bv8C,KAAK+2C,aACP/2C,KAAKq1C,aAAa76C,UAClBy3C,EAAajyC,KAAKq1C,aAAcr1C,KAAK+zB,MAErC/zB,KAAK+zB,IAAIv5B,UAEXwF,KAAKq5C,kBACLr5C,KAAKy0C,YAAc,KACnBz0C,KAAK41C,wBAAwB,IAAM,EACnC51C,KAAK61C,2BAA6B,KAEtC,CACA,SAAAp7C,CAAU4I,EAAGnB,EAAGoB,EAAGV,EAAGguB,EAAGsN,GACvBl+B,KAAK+zB,IAAIt5B,UAAU4I,EAAGnB,EAAGoB,EAAGV,EAAGguB,EAAGsN,GAClCl+B,KAAK41C,wBAAwB,IAAM,EACnC51C,KAAK61C,2BAA6B,IACpC,CACA,aAAAx2C,CAAcm9C,EAAKxlB,EAAM50B,GACvB,MAAM2xB,EAAM/zB,KAAK+zB,IACX0X,EAAUzrC,KAAKyrC,QACrB,IAEIgR,EAAQC,EAFRl2B,EAAIilB,EAAQjlB,EACdC,EAAIglB,EAAQhlB,EAEd,MAAMuxB,GAAmB,EAAI1wC,EAAe22B,qBAAqBlK,GAC3D4oB,EAA0C,IAAxB3E,EAAiB,IAAoC,IAAxBA,EAAiB,IAAoC,IAAxBA,EAAiB,IAAoC,IAAxBA,EAAiB,GAC1H4E,EAAkBD,EAAkBv6C,EAAOU,MAAM,GAAK,KAC5D,IAAK,IAAI/U,EAAI,EAAGwX,EAAI,EAAGvW,EAAKwtD,EAAIlwD,OAAQyB,EAAIiB,EAAIjB,IAC9C,OAAiB,EAATyuD,EAAIzuD,IACV,KAAKqZ,EAAMtd,IAAIkR,UACbwrB,EAAIwQ,EAAKzxB,KACTkhB,EAAIuQ,EAAKzxB,KACT,MAAMib,EAAQwW,EAAKzxB,KACbkb,EAASuW,EAAKzxB,KACds3C,EAAKr2B,EAAIhG,EACTs8B,EAAKr2B,EAAIhG,EACfsT,EAAIr5B,OAAO8rB,EAAGC,GACA,IAAVjG,GAA0B,IAAXC,EACjBsT,EAAIp5B,OAAOkiD,EAAIC,IAEf/oB,EAAIp5B,OAAOkiD,EAAIp2B,GACfsN,EAAIp5B,OAAOkiD,EAAIC,GACf/oB,EAAIp5B,OAAO6rB,EAAGs2B,IAEXH,GACHlR,EAAQ8D,iBAAiByI,EAAkB,CAACxxB,EAAGC,EAAGo2B,EAAIC,IAExD/oB,EAAIh5B,YACJ,MACF,KAAKqM,EAAMtd,IAAI4Q,OACb8rB,EAAIwQ,EAAKzxB,KACTkhB,EAAIuQ,EAAKzxB,KACTwuB,EAAIr5B,OAAO8rB,EAAGC,GACTk2B,GACHlR,EAAQyD,iBAAiB8I,EAAkBxxB,EAAGC,GAEhD,MACF,KAAKrf,EAAMtd,IAAI6Q,OACb6rB,EAAIwQ,EAAKzxB,KACTkhB,EAAIuQ,EAAKzxB,KACTwuB,EAAIp5B,OAAO6rB,EAAGC,GACTk2B,GACHlR,EAAQyD,iBAAiB8I,EAAkBxxB,EAAGC,GAEhD,MACF,KAAKrf,EAAMtd,IAAI8Q,QACb6hD,EAASj2B,EACTk2B,EAASj2B,EACTD,EAAIwQ,EAAKzxB,EAAI,GACbkhB,EAAIuQ,EAAKzxB,EAAI,GACbwuB,EAAIymB,cAAcxjB,EAAKzxB,GAAIyxB,EAAKzxB,EAAI,GAAIyxB,EAAKzxB,EAAI,GAAIyxB,EAAKzxB,EAAI,GAAIihB,EAAGC,GACrEglB,EAAQgE,sBAAsBuI,EAAkByE,EAAQC,EAAQ1lB,EAAKzxB,GAAIyxB,EAAKzxB,EAAI,GAAIyxB,EAAKzxB,EAAI,GAAIyxB,EAAKzxB,EAAI,GAAIihB,EAAGC,EAAGm2B,GACtHr3C,GAAK,EACL,MACF,KAAK6B,EAAMtd,IAAI+Q,SACb4hD,EAASj2B,EACTk2B,EAASj2B,EACTsN,EAAIymB,cAAch0B,EAAGC,EAAGuQ,EAAKzxB,GAAIyxB,EAAKzxB,EAAI,GAAIyxB,EAAKzxB,EAAI,GAAIyxB,EAAKzxB,EAAI,IACpEkmC,EAAQgE,sBAAsBuI,EAAkByE,EAAQC,EAAQl2B,EAAGC,EAAGuQ,EAAKzxB,GAAIyxB,EAAKzxB,EAAI,GAAIyxB,EAAKzxB,EAAI,GAAIyxB,EAAKzxB,EAAI,GAAIq3C,GACtHp2B,EAAIwQ,EAAKzxB,EAAI,GACbkhB,EAAIuQ,EAAKzxB,EAAI,GACbA,GAAK,EACL,MACF,KAAK6B,EAAMtd,IAAIgR,SACb2hD,EAASj2B,EACTk2B,EAASj2B,EACTD,EAAIwQ,EAAKzxB,EAAI,GACbkhB,EAAIuQ,EAAKzxB,EAAI,GACbwuB,EAAIymB,cAAcxjB,EAAKzxB,GAAIyxB,EAAKzxB,EAAI,GAAIihB,EAAGC,EAAGD,EAAGC,GACjDglB,EAAQgE,sBAAsBuI,EAAkByE,EAAQC,EAAQ1lB,EAAKzxB,GAAIyxB,EAAKzxB,EAAI,GAAIihB,EAAGC,EAAGD,EAAGC,EAAGm2B,GAClGr3C,GAAK,EACL,MACF,KAAK6B,EAAMtd,IAAIiR,UACbg5B,EAAIh5B,YAIN4hD,GACFlR,EAAQ+D,wBAAwBwI,EAAkB4E,GAEpDnR,EAAQwD,gBAAgBzoB,EAAGC,EAC7B,CACA,SAAA1rB,GACEiF,KAAK+zB,IAAIh5B,WACX,CACA,MAAAE,CAAO8hD,GAAc,GACnB,MAAMhpB,EAAM/zB,KAAK+zB,IACXya,EAAcxuC,KAAKyrC,QAAQ+C,YACjCza,EAAI8e,YAAc7yC,KAAKyrC,QAAQkD,YAC3B3uC,KAAKs1C,iBACoB,iBAAhB9G,GAA4BA,GAAauK,YAClDhlB,EAAIx5B,OACJw5B,EAAI2e,YAAclE,EAAYuK,WAAWhlB,EAAK/zB,MAAM,EAAIsH,EAAe82B,4BAA4BrK,GAAM6X,EAAgBiE,SAASz7C,QAClI4L,KAAKg9C,kBAAiB,GACtBjpB,EAAIv5B,WAEJwF,KAAKg9C,kBAAiB,IAGtBD,GACF/8C,KAAK+8C,YAAY/8C,KAAKyrC,QAAQ0E,6BAEhCpc,EAAI8e,YAAc7yC,KAAKyrC,QAAQiD,SACjC,CACA,WAAAxzC,GACE8E,KAAKjF,YACLiF,KAAK/E,QACP,CACA,IAAAE,CAAK4hD,GAAc,GACjB,MAAMhpB,EAAM/zB,KAAK+zB,IACXwa,EAAYvuC,KAAKyrC,QAAQ8C,UAE/B,IAAI0O,GAAc,EADIj9C,KAAKyrC,QAAQgD,cAGjC1a,EAAIx5B,OACJw5B,EAAI4e,UAAYpE,EAAUwK,WAAWhlB,EAAK/zB,MAAM,EAAIsH,EAAe82B,4BAA4BrK,GAAM6X,EAAgBiE,SAAS17C,MAC9H8oD,GAAc,GAEhB,MAAMn5C,EAAY9D,KAAKyrC,QAAQ0E,4BAC3BnwC,KAAKs1C,gBAAgC,OAAdxxC,IACrB9D,KAAK00C,eACP3gB,EAAI54B,KAAK,WACT6E,KAAK00C,eAAgB,GAErB3gB,EAAI54B,QAGJ8hD,GACFlpB,EAAIv5B,UAEFuiD,GACF/8C,KAAK+8C,YAAYj5C,EAErB,CACA,MAAA1I,GACE4E,KAAK00C,eAAgB,EACrB10C,KAAK7E,MACP,CACA,UAAAE,GACE2E,KAAK7E,MAAK,GACV6E,KAAK/E,QAAO,GACZ+E,KAAK+8C,aACP,CACA,YAAAzhD,GACE0E,KAAK00C,eAAgB,EACrB10C,KAAK3E,YACP,CACA,eAAAE,GACEyE,KAAKjF,YACLiF,KAAK3E,YACP,CACA,iBAAAG,GACEwE,KAAK00C,eAAgB,EACrB10C,KAAKjF,YACLiF,KAAK3E,YACP,CACA,OAAAI,GACEuE,KAAK+8C,aACP,CACA,IAAArhD,GACEsE,KAAKy0C,YAAcL,CACrB,CACA,MAAAz4C,GACEqE,KAAKy0C,YAAcJ,CACrB,CACA,SAAAz4C,GACEoE,KAAKyrC,QAAQmC,WAAaxmC,EAAM/c,gBAChC2V,KAAKyrC,QAAQoC,gBAAkB,EAC/B7tC,KAAKyrC,QAAQjlB,EAAIxmB,KAAKyrC,QAAQuC,MAAQ,EACtChuC,KAAKyrC,QAAQhlB,EAAIzmB,KAAKyrC,QAAQwC,MAAQ,CACxC,CACA,OAAApyC,GACE,MAAMqhD,EAAQl9C,KAAKm9C,iBACbppB,EAAM/zB,KAAK+zB,IACjB,QAAcplC,IAAVuuD,EAAJ,CAIAnpB,EAAIx5B,OACJw5B,EAAI6mB,YACJ,IAAK,MAAMwC,KAAQF,EACjBnpB,EAAIuZ,gBAAgB8P,EAAK3iD,WACzBs5B,EAAI9J,UAAUmzB,EAAK52B,EAAG42B,EAAK32B,GAC3B22B,EAAKC,UAAUtpB,EAAKqpB,EAAK1P,UAE3B3Z,EAAIv5B,UACJu5B,EAAIr4B,OACJq4B,EAAI6mB,mBACG56C,KAAKm9C,gBAXZ,MAFEppB,EAAI6mB,WAcR,CACA,cAAA9+C,CAAewhD,GACbt9C,KAAKyrC,QAAQyC,YAAcoP,CAC7B,CACA,cAAAvhD,CAAeuhD,GACbt9C,KAAKyrC,QAAQ0C,YAAcmP,CAC7B,CACA,SAAAthD,CAAU0X,GACR1T,KAAKyrC,QAAQ2C,WAAa16B,EAAQ,GACpC,CACA,UAAAzX,CAAW8xC,GACT/tC,KAAKyrC,QAAQsC,SAAWA,CAC1B,CACA,OAAA7xC,CAAQqhD,EAAa7lC,GACnB,MAAM8lC,EAAUx9C,KAAKiT,WAAWrjB,IAAI2tD,GAC9B9R,EAAUzrC,KAAKyrC,QACrB,IAAK+R,EACH,MAAM,IAAIh+C,MAAM,uBAAuB+9C,KAczC,GAZA9R,EAAQqC,WAAa0P,EAAQ1P,YAAc1mC,EAAM5c,qBACnB,IAA1BihD,EAAQqC,WAAW,IAAsC,IAA1BrC,EAAQqC,WAAW,KACpD,EAAI1mC,EAAM/V,MAAM,gCAAkCksD,GAEhD7lC,EAAO,GACTA,GAAQA,EACR+zB,EAAQgS,eAAiB,GAEzBhS,EAAQgS,cAAgB,EAE1Bz9C,KAAKyrC,QAAQzrB,KAAOw9B,EACpBx9C,KAAKyrC,QAAQiC,SAAWh2B,EACpB8lC,EAAQE,YACV,OAEF,MAAM39C,EAAOy9C,EAAQ/U,YAAc,aAC7BkV,EAAWH,EAAQvU,gBAAgB+B,KAAO,IAAIjrC,OAAUy9C,EAAQI,eACtE,IAAIC,EAAO,SACPL,EAAQhM,MACVqM,EAAO,MACEL,EAAQK,OACjBA,EAAO,QAET,MAAMC,EAASN,EAAQM,OAAS,SAAW,SAC3C,IAAIC,EAAkBrmC,EAClBA,EAvxCc,GAwxChBqmC,EAxxCgB,GAyxCPrmC,EAxxCO,MAyxChBqmC,EAzxCgB,KA2xClB/9C,KAAKyrC,QAAQkC,cAAgBj2B,EAAOqmC,EACpC/9C,KAAK+zB,IAAI/T,KAAO,GAAG89B,KAAUD,KAAQE,OAAqBJ,GAC5D,CACA,oBAAAxhD,CAAqB8/B,GACnBj8B,KAAKyrC,QAAQ4C,kBAAoBpS,CACnC,CACA,WAAA7/B,CAAY4hD,GACVh+C,KAAKyrC,QAAQ6C,SAAW0P,CAC1B,CACA,QAAA3hD,CAASmqB,EAAGC,GACVzmB,KAAKyrC,QAAQjlB,EAAIxmB,KAAKyrC,QAAQuC,OAASxnB,EACvCxmB,KAAKyrC,QAAQhlB,EAAIzmB,KAAKyrC,QAAQwC,OAASxnB,CACzC,CACA,kBAAAnqB,CAAmBkqB,EAAGC,GACpBzmB,KAAK/D,YAAYwqB,GACjBzmB,KAAK3D,SAASmqB,EAAGC,EACnB,CACA,aAAAlqB,CAAc8G,EAAGnB,EAAGoB,EAAGV,EAAGguB,EAAGsN,GAC3Bl+B,KAAKyrC,QAAQmC,WAAa,CAACvqC,EAAGnB,EAAGoB,EAAGV,EAAGguB,EAAGsN,GAC1Cl+B,KAAKyrC,QAAQoC,gBAAkB7/C,KAAKihC,MAAM5rB,EAAGnB,GAC7ClC,KAAKyrC,QAAQjlB,EAAIxmB,KAAKyrC,QAAQuC,MAAQ,EACtChuC,KAAKyrC,QAAQhlB,EAAIzmB,KAAKyrC,QAAQwC,MAAQ,CACxC,CACA,QAAAzxC,GACEwD,KAAK3D,SAAS,EAAG2D,KAAKyrC,QAAQsC,QAChC,CACA,SAAAkQ,CAAU3S,EAAW9kB,EAAGC,EAAGy3B,GACzB,MAAMnqB,EAAM/zB,KAAK+zB,IACX0X,EAAUzrC,KAAKyrC,QACfzrB,EAAOyrB,EAAQzrB,KACfquB,EAAoB5C,EAAQ4C,kBAC5BX,EAAWjC,EAAQiC,SAAWjC,EAAQkC,cACtCwQ,EAAiB9P,EAAoBjnC,EAAM7d,kBAAkBoL,iBAC7DypD,KAAoB/P,EAAoBjnC,EAAM7d,kBAAkBqL,kBAChE65C,EAAchD,EAAQgD,cAAgBzuB,EAAKgpB,YACjD,IAAIqU,GACAr9B,EAAK3V,iBAAmB+zC,GAAkB3P,KAC5C4O,EAAYr9B,EAAKqrB,iBAAiBrrC,KAAKiT,WAAYq4B,IAEjDtrB,EAAK3V,iBAAmBokC,GAC1B1a,EAAIx5B,OACJw5B,EAAI9J,UAAUzD,EAAGC,GACjBsN,EAAI6mB,YACJyC,EAAUtpB,EAAK2Z,GACXwQ,GACFnqB,EAAIuZ,gBAAgB4Q,GAElBC,IAAmB/2C,EAAM7d,kBAAkB4K,MAAQgqD,IAAmB/2C,EAAM7d,kBAAkB8K,aAChG0/B,EAAI54B,OAEFgjD,IAAmB/2C,EAAM7d,kBAAkB6K,QAAU+pD,IAAmB/2C,EAAM7d,kBAAkB8K,aAClG0/B,EAAI94B,SAEN84B,EAAIv5B,YAEA2jD,IAAmB/2C,EAAM7d,kBAAkB4K,MAAQgqD,IAAmB/2C,EAAM7d,kBAAkB8K,aAChG0/B,EAAI4W,SAASW,EAAW9kB,EAAGC,GAEzB03B,IAAmB/2C,EAAM7d,kBAAkB6K,QAAU+pD,IAAmB/2C,EAAM7d,kBAAkB8K,aAClG0/B,EAAIsqB,WAAW/S,EAAW9kB,EAAGC,IAG7B23B,IACYp+C,KAAKm9C,mBAAqB,IAClCzrD,KAAK,CACT+I,WAAW,EAAI6M,EAAe22B,qBAAqBlK,GACnDvN,IACAC,IACAinB,WACA2P,aAGN,CACA,2BAAIiB,GACF,MACEl6B,QAAS2P,GACP/zB,KAAKu1C,eAAerJ,UAAU,0BAA2B,GAAI,IACjEnY,EAAIrgB,MAAM,IAAK,GACfqgB,EAAI4W,SAAS,IAAK,EAAG,IACrB,MAAM5kC,EAAOguB,EAAIK,aAAa,EAAG,EAAG,GAAI,IAAIruB,KAC5C,IAAIga,GAAU,EACd,IAAK,IAAIhyB,EAAI,EAAGA,EAAIgY,EAAKzZ,OAAQyB,GAAK,EACpC,GAAIgY,EAAKhY,GAAK,GAAKgY,EAAKhY,GAAK,IAAK,CAChCgyB,GAAU,EACV,KACF,CAEF,OAAO,EAAI3Y,EAAM5W,QAAQwP,KAAM,0BAA2B+f,EAC5D,CACA,QAAAtjB,CAAS8hD,GACP,MAAM9S,EAAUzrC,KAAKyrC,QACfzrB,EAAOyrB,EAAQzrB,KACrB,GAAIA,EAAK09B,YACP,OAAO19C,KAAKw+C,cAAcD,GAE5B,MAAM7Q,EAAWjC,EAAQiC,SACzB,GAAiB,IAAbA,EACF,OAEF,MAAM3Z,EAAM/zB,KAAK+zB,IACX4Z,EAAgBlC,EAAQkC,cACxBO,EAAczC,EAAQyC,YACtBC,EAAc1C,EAAQ0C,YACtBsP,EAAgBhS,EAAQgS,cACxBrP,EAAa3C,EAAQ2C,WAAaqP,EAClCgB,EAAeF,EAAOjyD,OACtBoyD,EAAW1+B,EAAK0+B,SAChBC,EAAaD,EAAW,GAAK,EAC7BE,EAAkB5+B,EAAK4+B,gBACvBC,EAAoBnR,EAAWjC,EAAQqC,WAAW,GAClDgR,EAAiBrT,EAAQ4C,oBAAsBjnC,EAAM7d,kBAAkB4K,OAAS6rB,EAAK3V,kBAAoBohC,EAAQgD,YASvH,IAAIyP,EACJ,GATAnqB,EAAIx5B,OACJw5B,EAAIt5B,aAAagxC,EAAQmC,YACzB7Z,EAAI9J,UAAUwhB,EAAQjlB,EAAGilB,EAAQhlB,EAAIglB,EAAQ6C,UACzCmP,EAAgB,EAClB1pB,EAAIrgB,MAAM06B,GAAa,GAEvBra,EAAIrgB,MAAM06B,EAAY,GAGpB3C,EAAQgD,YAAa,CACvB1a,EAAIx5B,OACJ,MAAMwkD,EAAUtT,EAAQ8C,UAAUwK,WAAWhlB,EAAK/zB,MAAM,EAAIsH,EAAe82B,4BAA4BrK,GAAM6X,EAAgBiE,SAAS17C,MACtI+pD,GAAmB,EAAI52C,EAAe22B,qBAAqBlK,GAC3DA,EAAIv5B,UACJu5B,EAAI4e,UAAYoM,CAClB,CACA,IAAInQ,EAAYnD,EAAQmD,UACxB,MAAMl7B,EAAQ+3B,EAAQoC,gBACtB,GAAc,IAAVn6B,GAA6B,IAAdk7B,EAAiB,CAClC,MAAMuP,EAAiB1S,EAAQ4C,kBAAoBjnC,EAAM7d,kBAAkBoL,iBACvEwpD,IAAmB/2C,EAAM7d,kBAAkB6K,QAAU+pD,IAAmB/2C,EAAM7d,kBAAkB8K,cAClGu6C,EAAY5uC,KAAKg/C,sBAErB,MACEpQ,GAAal7B,EAOf,GALsB,IAAlBi6B,IACF5Z,EAAIrgB,MAAMi6B,EAAeA,GACzBiB,GAAajB,GAEf5Z,EAAI6a,UAAYA,EACZ5uB,EAAKi/B,mBAAoB,CAC3B,MAAMC,EAAQ,GACd,IAAI1+B,EAAQ,EACZ,IAAK,MAAM2+B,KAASZ,EAClBW,EAAMxtD,KAAKytD,EAAMC,SACjB5+B,GAAS2+B,EAAM3+B,MAMjB,OAJAuT,EAAI4W,SAASuU,EAAM1xD,KAAK,IAAK,EAAG,GAChCi+C,EAAQjlB,GAAKhG,EAAQq+B,EAAoBzQ,EACzCra,EAAIv5B,eACJwF,KAAKk7C,SAEP,CACA,IACEntD,EADEy4B,EAAI,EAER,IAAKz4B,EAAI,EAAGA,EAAI0wD,IAAgB1wD,EAAG,CACjC,MAAMoxD,EAAQZ,EAAOxwD,GACrB,GAAqB,iBAAVoxD,EAAoB,CAC7B34B,GAAKm4B,EAAaQ,EAAQzR,EAAW,IACrC,QACF,CACA,IAAI2R,GAAgB,EACpB,MAAM/B,GAAW6B,EAAMG,QAAUnR,EAAc,GAAKD,EAC9C5C,EAAY6T,EAAMI,SAClBC,EAASL,EAAMK,OACrB,IAAIC,EAASC,EACTl/B,EAAQ2+B,EAAM3+B,MAClB,GAAIk+B,EAAU,CACZ,MAAMiB,EAAUR,EAAMQ,SAAWf,EAC3BgB,IAAOT,EAAMQ,QAAUA,EAAQ,GAAa,GAARn/B,GAAeq+B,EACnDgB,EAAKF,EAAQ,GAAKd,EACxBr+B,EAAQm/B,GAAWA,EAAQ,GAAKn/B,EAChCi/B,EAAUG,EAAKjS,EACf+R,GAAWl5B,EAAIq5B,GAAMlS,CACvB,MACE8R,EAAUj5B,EAAImnB,EACd+R,EAAU,EAEZ,GAAI1/B,EAAK8/B,WAAat/B,EAAQ,EAAG,CAC/B,MAAMu/B,EAAmD,IAAnChsB,EAAIisB,YAAY1U,GAAW9qB,MAAektB,EAAWC,EAC3E,GAAIntB,EAAQu/B,GAAiB//C,KAAKs+C,wBAAyB,CACzD,MAAM2B,EAAkBz/B,EAAQu/B,EAChCV,GAAgB,EAChBtrB,EAAIx5B,OACJw5B,EAAIrgB,MAAMusC,EAAiB,GAC3BR,GAAWQ,CACb,MAAWz/B,IAAUu/B,IACnBN,IAAYj/B,EAAQu/B,GAAiB,IAAOrS,EAAWC,EAE3D,CACA,GAAI3tC,KAAKs1C,iBAAmB6J,EAAMe,UAAYlgC,EAAKgpB,aACjD,GAAI8V,IAAmBU,EACrBzrB,EAAI4W,SAASW,EAAWmU,EAASC,QAGjC,GADA1/C,KAAKi+C,UAAU3S,EAAWmU,EAASC,EAASxB,GACxCsB,EAAQ,CACV,MAAMW,EAAgBV,EAAU/R,EAAW8R,EAAOvV,OAAOzjB,EAAImnB,EACvDyS,EAAgBV,EAAUhS,EAAW8R,EAAOvV,OAAOxjB,EAAIknB,EAC7D3tC,KAAKi+C,UAAUuB,EAAOD,SAAUY,EAAeC,EAAelC,EAChE,CAIJ13B,GADkBk4B,EAAWl+B,EAAQq+B,EAAoBvB,EAAUG,EAAgBj9B,EAAQq+B,EAAoBvB,EAAUG,EAErH4B,GACFtrB,EAAIv5B,SAER,CACIkkD,EACFjT,EAAQhlB,GAAKD,EAEbilB,EAAQjlB,GAAKA,EAAI4nB,EAEnBra,EAAIv5B,UACJwF,KAAKk7C,SAEP,CACA,aAAAsD,CAAcD,GACZ,MAAMxqB,EAAM/zB,KAAK+zB,IACX0X,EAAUzrC,KAAKyrC,QACfzrB,EAAOyrB,EAAQzrB,KACf0tB,EAAWjC,EAAQiC,SACnB+P,EAAgBhS,EAAQgS,cACxBkB,EAAa3+B,EAAK0+B,SAAW,GAAK,EAClCxQ,EAAczC,EAAQyC,YACtBC,EAAc1C,EAAQ0C,YACtBC,EAAa3C,EAAQ2C,WAAaqP,EAClC3P,EAAarC,EAAQqC,YAAc1mC,EAAM5c,qBACzCi0D,EAAeF,EAAOjyD,OAE5B,IAAIyB,EAAGoxD,EAAO3+B,EAAO6/B,EACrB,GAFwB5U,EAAQ4C,oBAAsBjnC,EAAM7d,kBAAkB+K,WAE1C,IAAbo5C,EAAvB,CASA,IANA1tC,KAAK41C,wBAAwB,IAAM,EACnC51C,KAAK61C,2BAA6B,KAClC9hB,EAAIx5B,OACJw5B,EAAIt5B,aAAagxC,EAAQmC,YACzB7Z,EAAI9J,UAAUwhB,EAAQjlB,EAAGilB,EAAQhlB,GACjCsN,EAAIrgB,MAAM06B,EAAYqP,GACjB1vD,EAAI,EAAGA,EAAI0wD,IAAgB1wD,EAAG,CAEjC,GADAoxD,EAAQZ,EAAOxwD,GACM,iBAAVoxD,EAAoB,CAC7BkB,EAAgB1B,EAAaQ,EAAQzR,EAAW,IAChD1tC,KAAK+zB,IAAI9J,UAAUo2B,EAAe,GAClC5U,EAAQjlB,GAAK65B,EAAgBjS,EAC7B,QACF,CACA,MAAMkP,GAAW6B,EAAMG,QAAUnR,EAAc,GAAKD,EAC9Cx4B,EAAesK,EAAKsgC,qBAAqBnB,EAAMoB,gBAChD7qC,GAID1V,KAAKs1C,iBACPt1C,KAAK80C,gBAAkBqK,EACvBn/C,KAAKzF,OACLw5B,EAAIrgB,MAAMg6B,EAAUA,GACpB3Z,EAAIt5B,aAAaqzC,GACjB9tC,KAAK+iB,oBAAoBrN,GACzB1V,KAAKxF,WAGPgmB,EADoBpZ,EAAMhe,KAAKoZ,eAAe,CAAC28C,EAAM3+B,MAAO,GAAIstB,GAC5C,GAAKJ,EAAW4P,EACpCvpB,EAAI9J,UAAUzJ,EAAO,GACrBirB,EAAQjlB,GAAKhG,EAAQ4tB,IAdnB,EAAIhnC,EAAM/V,MAAM,oBAAoB8tD,EAAMoB,oCAe9C,CACAxsB,EAAIv5B,UACJwF,KAAK80C,gBAAkB,IAnCvB,CAoCF,CACA,YAAAj4C,CAAa2jD,EAAQC,GAAS,CAC9B,qBAAA3jD,CAAsB0jD,EAAQC,EAAQC,EAAKC,EAAKC,EAAKC,GACnD7gD,KAAK+zB,IAAIlwB,KAAK68C,EAAKC,EAAKC,EAAMF,EAAKG,EAAMF,GACzC3gD,KAAK+zB,IAAIr4B,OACTsE,KAAKvE,SACP,CACA,iBAAAqlD,CAAkBC,GAChB,IAAIhC,EACJ,GAAc,kBAAVgC,EAAG,GAAwB,CAC7B,MAAMzpB,EAAQypB,EAAG,GACXhM,EAAgB/0C,KAAK+0C,gBAAiB,EAAIztC,EAAe22B,qBAAqBj+B,KAAK+zB,KACnFitB,EAAwB,CAC5BC,qBAAsBltB,GACb,IAAIrR,EAAeqR,EAAK/zB,KAAKiT,WAAYjT,KAAKkT,KAAMlT,KAAKmL,cAAenL,KAAKoL,cAAe,CACjG2L,sBAAuB/W,KAAK+W,sBAC5Bw9B,mBAAoBv0C,KAAKu0C,sBAI/BwK,EAAU,IAAInT,EAAgBsV,cAAcH,EAAIzpB,EAAOt3B,KAAK+zB,IAAKitB,EAAuBjM,EAC1F,MACEgK,EAAU/+C,KAAKmhD,YAAYJ,EAAG,GAAIA,EAAG,IAEvC,OAAOhC,CACT,CACA,eAAA7hD,GACE8C,KAAKyrC,QAAQ+C,YAAcxuC,KAAK8gD,kBAAkBM,UACpD,CACA,aAAAhkD,GACE4C,KAAKyrC,QAAQ8C,UAAYvuC,KAAK8gD,kBAAkBM,WAChDphD,KAAKyrC,QAAQgD,aAAc,CAC7B,CACA,iBAAAlxC,CAAkByE,EAAGC,EAAGC,GACtB,MAAMo1B,EAAQlwB,EAAMhe,KAAK2Y,aAAaC,EAAGC,EAAGC,GAC5ClC,KAAK+zB,IAAI2e,YAAcpb,EACvBt3B,KAAKyrC,QAAQ+C,YAAclX,CAC7B,CACA,eAAA95B,CAAgBwE,EAAGC,EAAGC,GACpB,MAAMo1B,EAAQlwB,EAAMhe,KAAK2Y,aAAaC,EAAGC,EAAGC,GAC5ClC,KAAK+zB,IAAI4e,UAAYrb,EACrBt3B,KAAKyrC,QAAQ8C,UAAYjX,EACzBt3B,KAAKyrC,QAAQgD,aAAc,CAC7B,CACA,WAAA0S,CAAYjgC,EAAOmgC,EAAS,MAC1B,IAAItC,EAUJ,OATI/+C,KAAKw1C,eAAe95B,IAAIwF,GAC1B69B,EAAU/+C,KAAKw1C,eAAe5lD,IAAIsxB,IAElC69B,GAAU,EAAInT,EAAgB0V,mBAAmBthD,KAAK+1C,UAAU70B,IAChElhB,KAAKw1C,eAAengC,IAAI6L,EAAO69B,IAE7BsC,IACFtC,EAAQsC,OAASA,GAEZtC,CACT,CACA,WAAAphD,CAAYujB,GACV,IAAKlhB,KAAKs1C,eACR,OAEF,MAAMvhB,EAAM/zB,KAAK+zB,IACjB/zB,KAAKzF,OACL,MAAMwkD,EAAU/+C,KAAKmhD,YAAYjgC,GACjC6S,EAAI4e,UAAYoM,EAAQhG,WAAWhlB,EAAK/zB,MAAM,EAAIsH,EAAe82B,4BAA4BrK,GAAM6X,EAAgBiE,SAAS0R,SAC5H,MAAMC,GAAM,EAAIl6C,EAAe82B,4BAA4BrK,GAC3D,GAAIytB,EAAK,CACP,MAAM,MACJhhC,EAAK,OACLC,GACEsT,EAAI1S,QACD/c,EAAIC,EAAIC,EAAIC,GAAM2C,EAAMhe,KAAKyZ,2BAA2B,CAAC,EAAG,EAAG2d,EAAOC,GAAS+gC,GACtFxhD,KAAK+zB,IAAImiB,SAAS5xC,EAAIC,EAAIC,EAAKF,EAAIG,EAAKF,EAC1C,MACEvE,KAAK+zB,IAAImiB,UAAU,MAAO,KAAM,KAAM,MAExCl2C,KAAKk7C,QAAQl7C,KAAKyrC,QAAQ0E,6BAC1BnwC,KAAKxF,SACP,CACA,gBAAAoD,IACE,EAAIwJ,EAAMxb,aAAa,mCACzB,CACA,cAAAiS,IACE,EAAIuJ,EAAMxb,aAAa,iCACzB,CACA,qBAAA2S,CAAsB8iD,EAAQI,GAC5B,GAAKzhD,KAAKs1C,iBAGVt1C,KAAKzF,OACLyF,KAAKg1C,mBAAmBtjD,KAAKsO,KAAK+0C,eAC9BlzC,MAAMq5B,QAAQmmB,IAA6B,IAAlBA,EAAO/0D,QAClC0T,KAAKvF,aAAa4mD,GAEpBrhD,KAAK+0C,eAAgB,EAAIztC,EAAe22B,qBAAqBj+B,KAAK+zB,KAC9D0tB,GAAM,CACR,MAAMjhC,EAAQihC,EAAK,GAAKA,EAAK,GACvBhhC,EAASghC,EAAK,GAAKA,EAAK,GAC9BzhD,KAAK+zB,IAAIlwB,KAAK49C,EAAK,GAAIA,EAAK,GAAIjhC,EAAOC,GACvCzgB,KAAKyrC,QAAQ8D,kBAAiB,EAAIjoC,EAAe22B,qBAAqBj+B,KAAK+zB,KAAM0tB,GACjFzhD,KAAKtE,OACLsE,KAAKvE,SACP,CACF,CACA,mBAAA+C,GACOwB,KAAKs1C,iBAGVt1C,KAAKxF,UACLwF,KAAK+0C,cAAgB/0C,KAAKg1C,mBAAmBuH,MAC/C,CACA,UAAA99C,CAAWijD,GACT,IAAK1hD,KAAKs1C,eACR,OAEFt1C,KAAKzF,OACDyF,KAAK+2C,cACP/2C,KAAKu5C,eACLv5C,KAAKyrC,QAAQoD,YAAc,MAE7B,MAAM8S,EAAa3hD,KAAK+zB,IACnB2tB,EAAME,WACT,EAAIx6C,EAAM/Y,MAAM,sCAEdqzD,EAAMG,WACR,EAAIz6C,EAAM/V,MAAM,kCAElB,MAAM2mD,GAAmB,EAAI1wC,EAAe22B,qBAAqB0jB,GAIjE,GAHID,EAAML,QACRM,EAAWlnD,aAAainD,EAAML,SAE3BK,EAAMD,KACT,MAAM,IAAIjiD,MAAM,6BAElB,IAAIuF,EAASqC,EAAMhe,KAAKyZ,2BAA2B6+C,EAAMD,MAAM,EAAIn6C,EAAe22B,qBAAqB0jB,IACvG,MAAMG,EAAe,CAAC,EAAG,EAAGH,EAAWtgC,OAAOb,MAAOmhC,EAAWtgC,OAAOZ,QACvE1b,EAASqC,EAAMhe,KAAK0a,UAAUiB,EAAQ+8C,IAAiB,CAAC,EAAG,EAAG,EAAG,GACjE,MAAMluC,EAAU5lB,KAAKC,MAAM8W,EAAO,IAC5B8O,EAAU7lB,KAAKC,MAAM8W,EAAO,IAClC,IAAI0zC,EAAazqD,KAAKiV,IAAIjV,KAAK4pD,KAAK7yC,EAAO,IAAM6O,EAAS,GACtD8kC,EAAc1qD,KAAKiV,IAAIjV,KAAK4pD,KAAK7yC,EAAO,IAAM8O,EAAS,GACvDkuC,EAAS,EACXC,EAAS,EACPvJ,EAAa3M,IACfiW,EAAStJ,EAAa3M,EACtB2M,EAAa3M,GAEX4M,EAAc5M,IAChBkW,EAAStJ,EAAc5M,EACvB4M,EAAc5M,GAEhB9rC,KAAKyrC,QAAQsD,uBAAuB,CAAC,EAAG,EAAG0J,EAAYC,IACvD,IAAIc,EAAU,UAAYx5C,KAAKi1C,WAC3ByM,EAAMtG,QACR5B,GAAW,UAAYx5C,KAAKm1C,eAAiB,GAE/C,MAAMsE,EAAgBz5C,KAAKu1C,eAAerJ,UAAUsN,EAASf,EAAYC,GACnEuJ,EAAWxI,EAAcr1B,QAC/B69B,EAASvuC,MAAM,EAAIquC,EAAQ,EAAIC,GAC/BC,EAASh4B,WAAWrW,GAAUC,GAC9BouC,EAASxnD,aAAau9C,GAClB0J,EAAMtG,MACRp7C,KAAKk1C,WAAWxjD,KAAK,CACnB2vB,OAAQo4B,EAAcp4B,OACtB+C,QAAS69B,EACTruC,UACAC,UACAkuC,SACAC,SACAlyB,QAAS4xB,EAAMtG,MAAMtrB,QACrB8rB,SAAU8F,EAAMtG,MAAMQ,SACtBjI,YAAa+N,EAAMtG,MAAMzH,aAAe,KACxCuO,sBAAuB,QAGzBP,EAAWrU,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GACvCqU,EAAW13B,UAAUrW,EAASC,GAC9B8tC,EAAWjuC,MAAMquC,EAAQC,GACzBL,EAAWpnD,QAEb03C,EAAa0P,EAAYM,GACzBjiD,KAAK+zB,IAAMkuB,EACXjiD,KAAK1F,UAAU,CAAC,CAAC,KAAM,eAAgB,CAAC,KAAM,GAAI,CAAC,KAAM,KACzD0F,KAAK60C,WAAWnjD,KAAKiwD,GACrB3hD,KAAKi1C,YACP,CACA,QAAAv2C,CAASgjD,GACP,IAAK1hD,KAAKs1C,eACR,OAEFt1C,KAAKi1C,aACL,MAAMgN,EAAWjiD,KAAK+zB,IAChBA,EAAM/zB,KAAK60C,WAAW0H,MAG5B,GAFAv8C,KAAK+zB,IAAMA,EACX/zB,KAAK+zB,IAAI8kB,uBAAwB,EAC7B6I,EAAMtG,MACRp7C,KAAKo1C,UAAYp1C,KAAKk1C,WAAWqH,MACjCv8C,KAAKxF,cACA,CACLwF,KAAK+zB,IAAIv5B,UACT,MAAM2nD,GAAa,EAAI76C,EAAe22B,qBAAqBj+B,KAAK+zB,KAChE/zB,KAAKxF,UACLwF,KAAK+zB,IAAIx5B,OACTyF,KAAK+zB,IAAIuZ,gBAAgB6U,GACzB,MAAMhH,EAAW/zC,EAAMhe,KAAKyZ,2BAA2B,CAAC,EAAG,EAAGo/C,EAAS5gC,OAAOb,MAAOyhC,EAAS5gC,OAAOZ,QAAS0hC,GAC9GniD,KAAK+zB,IAAII,UAAU8tB,EAAS5gC,OAAQ,EAAG,GACvCrhB,KAAK+zB,IAAIv5B,UACTwF,KAAKk7C,QAAQC,EACf,CACF,CACA,eAAAx8C,CAAgBsS,EAAIpN,EAAMpJ,EAAW4mD,EAAQe,GAQ3C,GAPApiD,MAAK,KACLyyC,EAAkBzyC,KAAK+zB,KACvB/zB,KAAK+zB,IAAIx5B,OACTyF,KAAKzF,OACDyF,KAAK+0C,eACP/0C,KAAK+zB,IAAIuZ,gBAAgBttC,KAAK+0C,eAE5BlzC,MAAMq5B,QAAQr3B,IAAyB,IAAhBA,EAAKvX,OAAc,CAC5C,MAAMk0B,EAAQ3c,EAAK,GAAKA,EAAK,GACvB4c,EAAS5c,EAAK,GAAKA,EAAK,GAC9B,GAAIu+C,GAAgBpiD,KAAK+U,oBAAqB,EAC5Cta,EAAYA,EAAUqI,SACZ,IAAMe,EAAK,GACrBpJ,EAAU,IAAMoJ,EAAK,IACrBA,EAAOA,EAAKf,SACP,GAAKe,EAAK,GAAK,EACpBA,EAAK,GAAK2c,EACV3c,EAAK,GAAK4c,EACV,MAAOshC,EAAQC,GAAU56C,EAAMhe,KAAK+Z,+BAA8B,EAAImE,EAAe22B,qBAAqBj+B,KAAK+zB,OACzG,cACJ0hB,GACEz1C,KACEqiD,EAAcr0D,KAAK4pD,KAAKp3B,EAAQxgB,KAAK01C,aAAeD,GACpD6M,EAAet0D,KAAK4pD,KAAKn3B,EAASzgB,KAAK21C,aAAeF,GAC5Dz1C,KAAKuiD,iBAAmBviD,KAAKmL,cAAcnb,OAAOqyD,EAAaC,GAC/D,MAAM,OACJjhC,EAAM,QACN+C,GACEpkB,KAAKuiD,iBACTviD,KAAK+U,oBAAoBM,IAAIpE,EAAIoQ,GACjCrhB,KAAKuiD,iBAAiBC,SAAWxiD,KAAK+zB,IACtC/zB,KAAK+zB,IAAM3P,EACXpkB,KAAK+zB,IAAIx5B,OACTyF,KAAK+zB,IAAIuZ,aAAayU,EAAQ,EAAG,GAAIC,EAAQ,EAAGvhC,EAASuhC,GACzDvP,EAAkBzyC,KAAK+zB,IACzB,MACE0e,EAAkBzyC,KAAK+zB,KACvB/zB,KAAK+zB,IAAIlwB,KAAKA,EAAK,GAAIA,EAAK,GAAI2c,EAAOC,GACvCzgB,KAAK+zB,IAAIr4B,OACTsE,KAAKvE,SAET,CACAuE,KAAKyrC,QAAU,IAAI+B,EAAiBxtC,KAAK+zB,IAAI1S,OAAOb,MAAOxgB,KAAK+zB,IAAI1S,OAAOZ,QAC3EzgB,KAAKvF,aAAaA,GAClBuF,KAAKvF,aAAa4mD,EACpB,CACA,aAAAziD,GACMoB,KAAKuiD,mBACPviD,KAAK+zB,IAAIv5B,UACTwF,MAAK,KACLA,KAAK+zB,IAAM/zB,KAAKuiD,iBAAiBC,gBAC1BxiD,KAAKuiD,iBAAiBC,gBACtBxiD,KAAKuiD,iBAEhB,CACA,qBAAA1jD,CAAsBu4C,GACpB,IAAKp3C,KAAKs1C,eACR,OAEF,MAAM6C,EAAQf,EAAIe,OAClBf,EAAMp3C,KAAK+1C,UAAUqB,EAAIrxC,KAAMqxC,IAC3Be,MAAQA,EACZ,MAAMpkB,EAAM/zB,KAAK+zB,IACXorB,EAAQn/C,KAAK80C,gBACnB,GAAIqK,SACqBxwD,IAAnBwwD,EAAMsD,WACRtD,EAAMsD,SAzpDd,SAA2BpS,GACzB,MAAM,MACJ7vB,EAAK,OACLC,GACE4vB,EACJ,GAAI7vB,EAvKsB,KAuKSC,EAvKT,IAwKxB,OAAO,KAET,MACMiiC,EAAc,IAAI70D,WAAW,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,IAC5E80D,EAASniC,EAAQ,EACvB,IACIzyB,EAAGwX,EAAGq9C,EADNC,EAAS,IAAIh1D,WAAW80D,GAAUliC,EAAS,IAE/C,MAAMqiC,EAAWtiC,EAAQ,GAAI,EAC7B,IAAIza,EAAO,IAAIlY,WAAWi1D,EAAWriC,GACnCsiC,EAAM,EACR,IAAK,MAAMC,KAAQ3S,EAAQtqC,KAAM,CAC/B,IAAI6rC,EAAO,IACX,KAAOA,EAAO,GACZ7rC,EAAKg9C,KAASC,EAAOpR,EAAO,EAAI,IAChCA,IAAS,CAEb,CACA,IAAIuG,EAAQ,EAMZ,IALA4K,EAAM,EACY,IAAdh9C,EAAKg9C,KACPF,EAAO,GAAK,IACV1K,GAEC5yC,EAAI,EAAGA,EAAIib,EAAOjb,IACjBQ,EAAKg9C,KAASh9C,EAAKg9C,EAAM,KAC3BF,EAAOt9C,GAAKQ,EAAKg9C,GAAO,EAAI,IAC1B5K,GAEJ4K,IAMF,IAJkB,IAAdh9C,EAAKg9C,KACPF,EAAOt9C,GAAK,IACV4yC,GAECpqD,EAAI,EAAGA,EAAI0yB,EAAQ1yB,IAAK,CAC3Bg1D,EAAMh1D,EAAI+0D,EACVF,EAAK70D,EAAI40D,EACL58C,EAAKg9C,EAAMD,KAAc/8C,EAAKg9C,KAChCF,EAAOD,GAAM78C,EAAKg9C,GAAO,EAAI,IAC3B5K,GAEJ,IAAI8K,GAAOl9C,EAAKg9C,GAAO,EAAI,IAAMh9C,EAAKg9C,EAAMD,GAAY,EAAI,GAC5D,IAAKv9C,EAAI,EAAGA,EAAIib,EAAOjb,IACrB09C,GAAOA,GAAO,IAAMl9C,EAAKg9C,EAAM,GAAK,EAAI,IAAMh9C,EAAKg9C,EAAMD,EAAW,GAAK,EAAI,GACzEJ,EAAYO,KACdJ,EAAOD,EAAKr9C,GAAKm9C,EAAYO,KAC3B9K,GAEJ4K,IAMF,GAJIh9C,EAAKg9C,EAAMD,KAAc/8C,EAAKg9C,KAChCF,EAAOD,EAAKr9C,GAAKQ,EAAKg9C,GAAO,EAAI,IAC/B5K,GAEAA,EApDyB,IAqD3B,OAAO,IAEX,CAOA,IANA4K,EAAMD,GAAYriC,EAAS,GAC3BmiC,EAAK70D,EAAI40D,EACS,IAAd58C,EAAKg9C,KACPF,EAAOD,GAAM,IACXzK,GAEC5yC,EAAI,EAAGA,EAAIib,EAAOjb,IACjBQ,EAAKg9C,KAASh9C,EAAKg9C,EAAM,KAC3BF,EAAOD,EAAKr9C,GAAKQ,EAAKg9C,GAAO,EAAI,IAC/B5K,GAEJ4K,IAMF,GAJkB,IAAdh9C,EAAKg9C,KACPF,EAAOD,EAAKr9C,GAAK,IACf4yC,GAEAA,EAzE2B,IA0E7B,OAAO,KAET,MAAMzB,EAAQ,IAAIwM,WAAW,CAAC,EAAGP,GAAS,EAAG,GAAIA,EAAQ,EAAG,EAAG,EAAG,IAC5DvF,EAAO,IAAI+F,OACjB,IAAKp1D,EAAI,EAAGoqD,GAASpqD,GAAK0yB,EAAQ1yB,IAAK,CACrC,IAAI0U,EAAI1U,EAAI40D,EACZ,MAAM9yC,EAAMpN,EAAI+d,EAChB,KAAO/d,EAAIoN,IAAQgzC,EAAOpgD,IACxBA,IAEF,GAAIA,IAAMoN,EACR,SAEFutC,EAAK1iD,OAAO+H,EAAIkgD,EAAQ50D,GACxB,MAAMq1D,EAAK3gD,EACX,IAAItQ,EAAO0wD,EAAOpgD,GAClB,EAAG,CACD,MAAM0/B,EAAOuU,EAAMvkD,GACnB,GACEsQ,GAAK0/B,SACG0gB,EAAOpgD,IACjB,MAAM4gD,EAAKR,EAAOpgD,GACP,IAAP4gD,GAAmB,KAAPA,GACdlxD,EAAOkxD,EACPR,EAAOpgD,GAAK,IAEZtQ,EAAOkxD,EAAK,GAAOlxD,GAAQ,EAC3B0wD,EAAOpgD,IAAMtQ,GAAQ,EAAIA,GAAQ,GAEnCirD,EAAKziD,OAAO8H,EAAIkgD,EAAQlgD,EAAIkgD,EAAS,GAChCE,EAAOpgD,MACR01C,CAEN,OAASiL,IAAO3gD,KACd1U,CACJ,CAWA,OAVAgY,EAAO,KACP88C,EAAS,KACW,SAAUv/C,GAC5BA,EAAE/I,OACF+I,EAAEoQ,MAAM,EAAI8M,GAAQ,EAAIC,GACxBnd,EAAE2mB,UAAU,GAAIxJ,GAChBnd,EAAEnI,KAAKiiD,GACP95C,EAAEs3C,YACFt3C,EAAE9I,SACJ,CAEF,CAwhDyB8oD,CAAkBlM,IAEjC+H,EAAMsD,UAER,YADAtD,EAAMsD,SAAS1uB,GAInB,MAAM6d,EAAO5xC,KAAK83C,kBAAkBV,GAC9Bc,EAAatG,EAAKvwB,OACxB0S,EAAIx5B,OACJw5B,EAAIuZ,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GAChCvZ,EAAII,UAAU+jB,EAAYtG,EAAKh+B,QAASg+B,EAAK/9B,SAC7CkgB,EAAIv5B,UACJwF,KAAKk7C,SACP,CACA,2BAAA/7C,CAA4Bi4C,EAAK2K,EAAQwB,EAAQ,EAAGC,EAAQ,EAAGxB,EAAQyB,GACrE,IAAKzjD,KAAKs1C,eACR,OAEF8B,EAAMp3C,KAAK+1C,UAAUqB,EAAIrxC,KAAMqxC,GAC/B,MAAMrjB,EAAM/zB,KAAK+zB,IACjBA,EAAIx5B,OACJ,MAAMy9C,GAAmB,EAAI1wC,EAAe22B,qBAAqBlK,GACjEA,EAAIt5B,UAAUsnD,EAAQwB,EAAOC,EAAOxB,EAAQ,EAAG,GAC/C,MAAMpQ,EAAO5xC,KAAK83C,kBAAkBV,GACpCrjB,EAAIuZ,aAAa,EAAG,EAAG,EAAG,EAAGsE,EAAKh+B,QAAUokC,EAAiB,GAAIpG,EAAK/9B,QAAUmkC,EAAiB,IACjG,IAAK,IAAIjqD,EAAI,EAAGiB,EAAKy0D,EAAUn3D,OAAQyB,EAAIiB,EAAIjB,GAAK,EAAG,CACrD,MAAM21D,EAAQt8C,EAAMhe,KAAKqR,UAAUu9C,EAAkB,CAAC+J,EAAQwB,EAAOC,EAAOxB,EAAQyB,EAAU11D,GAAI01D,EAAU11D,EAAI,MACzGy4B,EAAGC,GAAKrf,EAAMhe,KAAKoZ,eAAe,CAAC,EAAG,GAAIkhD,GACjD3vB,EAAII,UAAUyd,EAAKvwB,OAAQmF,EAAGC,EAChC,CACAsN,EAAIv5B,UACJwF,KAAKk7C,SACP,CACA,0BAAAp8C,CAA2B6kD,GACzB,IAAK3jD,KAAKs1C,eACR,OAEF,MAAMvhB,EAAM/zB,KAAK+zB,IACXwa,EAAYvuC,KAAKyrC,QAAQ8C,UACzBwJ,EAAgB/3C,KAAKyrC,QAAQgD,YACnC,IAAK,MAAMxa,KAAS0vB,EAAQ,CAC1B,MAAM,KACJ59C,EAAI,MACJya,EAAK,OACLC,EAAM,UACNhmB,GACEw5B,EACEikB,EAAal4C,KAAKu1C,eAAerJ,UAAU,aAAc1rB,EAAOC,GAChEk7B,EAAUzD,EAAW9zB,QAC3Bu3B,EAAQphD,OAERu3C,EAAmB6J,EADP37C,KAAK+1C,UAAUhwC,EAAMkuB,IAEjC0nB,EAAQ1I,yBAA2B,YACnC0I,EAAQhJ,UAAYoF,EAAgBxJ,EAAUwK,WAAW4C,EAAS37C,MAAM,EAAIsH,EAAe82B,4BAA4BrK,GAAM6X,EAAgBiE,SAAS17C,MAAQo6C,EAC9JoN,EAAQzF,SAAS,EAAG,EAAG11B,EAAOC,GAC9Bk7B,EAAQnhD,UACRu5B,EAAIx5B,OACJw5B,EAAIt5B,aAAaA,GACjBs5B,EAAIrgB,MAAM,GAAI,GACd04B,EAAyBrY,EAAKmkB,EAAW72B,OAAQ,EAAG,EAAGb,EAAOC,EAAQ,GAAI,EAAG,EAAG,GAChFsT,EAAIv5B,SACN,CACAwF,KAAKk7C,SACP,CACA,iBAAAn8C,CAAkBmiB,GAChB,IAAKlhB,KAAKs1C,eACR,OAEF,MAAMjF,EAAUrwC,KAAK+1C,UAAU70B,GAC1BmvB,EAILrwC,KAAKhB,wBAAwBqxC,IAH3B,EAAIjpC,EAAM/V,MAAM,kCAIpB,CACA,uBAAA6N,CAAwBgiB,EAAO6gC,EAAQC,EAAQyB,GAC7C,IAAKzjD,KAAKs1C,eACR,OAEF,MAAMjF,EAAUrwC,KAAK+1C,UAAU70B,GAC/B,IAAKmvB,EAEH,YADA,EAAIjpC,EAAM/V,MAAM,mCAGlB,MAAMmvB,EAAQ6vB,EAAQ7vB,MAChBC,EAAS4vB,EAAQ5vB,OACjB3wB,EAAM,GACZ,IAAK,IAAI/B,EAAI,EAAGiB,EAAKy0D,EAAUn3D,OAAQyB,EAAIiB,EAAIjB,GAAK,EAClD+B,EAAI4B,KAAK,CACP+I,UAAW,CAACsnD,EAAQ,EAAG,EAAGC,EAAQyB,EAAU11D,GAAI01D,EAAU11D,EAAI,IAC9Dy4B,EAAG,EACHC,EAAG,EACH0H,EAAG3N,EACH4N,EAAG3N,IAGPzgB,KAAKf,6BAA6BoxC,EAASvgD,EAC7C,CACA,yBAAA8zD,CAA0B7vB,GAMxB,MALkC,SAA9B/zB,KAAKyrC,QAAQqD,eACf/a,EAAIkN,OAASjhC,KAAKyrC,QAAQqD,aAC1B/a,EAAII,UAAUJ,EAAI1S,OAAQ,EAAG,GAC7B0S,EAAIkN,OAAS,QAERlN,EAAI1S,MACb,CACA,yBAAAwiC,CAA0BxT,GACxB,GAAkC,SAA9BrwC,KAAKyrC,QAAQqD,aACf,OAAOuB,EAAQ9vB,OAEjB,MAAM,OACJA,EAAM,MACNC,EAAK,OACLC,GACE4vB,EACEgH,EAAYr3C,KAAKu1C,eAAerJ,UAAU,cAAe1rB,EAAOC,GAChE62B,EAASD,EAAUjzB,QAIzB,OAHAkzB,EAAOrW,OAASjhC,KAAKyrC,QAAQqD,aAC7BwI,EAAOnjB,UAAU5T,EAAQ,EAAG,GAC5B+2B,EAAOrW,OAAS,OACToW,EAAUh2B,MACnB,CACA,uBAAAriB,CAAwBqxC,GACtB,IAAKrwC,KAAKs1C,eACR,OAEF,MAAM90B,EAAQ6vB,EAAQ7vB,MAChBC,EAAS4vB,EAAQ5vB,OACjBsT,EAAM/zB,KAAK+zB,IAEjB,GADA/zB,KAAKzF,QACA6M,EAAMnY,SAAU,CACnB,MAAM,OACJgyC,GACElN,EACW,SAAXkN,GAAgC,KAAXA,IACvBlN,EAAIkN,OAAS,OAEjB,CAEA,IAAI6iB,EACJ,GAFA/vB,EAAIrgB,MAAM,EAAI8M,GAAQ,EAAIC,GAEtB4vB,EAAQ9vB,OACVujC,EAAa9jD,KAAK6jD,0BAA0BxT,QACvC,GAA2B,mBAAhB0T,aAA8B1T,aAAmB0T,cAAgB1T,EAAQtqC,KACzF+9C,EAAazT,MACR,CACL,MACMiH,EADYt3C,KAAKu1C,eAAerJ,UAAU,cAAe1rB,EAAOC,GAC7C2D,QACzBgsB,EAAmBkH,EAAQjH,GAC3ByT,EAAa9jD,KAAK4jD,0BAA0BtM,EAC9C,CACA,MAAMW,EAASj4C,KAAKm3C,YAAY2M,GAAY,EAAIx8C,EAAe82B,4BAA4BrK,IAC3FA,EAAI8kB,sBAAwBhF,GAAyB,EAAIvsC,EAAe22B,qBAAqBlK,GAAMsc,EAAQyD,aAC3G1H,EAAyBrY,EAAKkkB,EAAOb,IAAK,EAAG,EAAGa,EAAOR,WAAYQ,EAAOP,YAAa,GAAIj3B,EAAQD,EAAOC,GAC1GzgB,KAAKk7C,UACLl7C,KAAKxF,SACP,CACA,4BAAAyE,CAA6BoxC,EAASvgD,GACpC,IAAKkQ,KAAKs1C,eACR,OAEF,MAAMvhB,EAAM/zB,KAAK+zB,IACjB,IAAI+vB,EACJ,GAAIzT,EAAQ9vB,OACVujC,EAAazT,EAAQ9vB,WAChB,CACL,MAAM4N,EAAIkiB,EAAQ7vB,MACZ4N,EAAIiiB,EAAQ5vB,OAEZ62B,EADYt3C,KAAKu1C,eAAerJ,UAAU,cAAe/d,EAAGC,GACzChK,QACzBgsB,EAAmBkH,EAAQjH,GAC3ByT,EAAa9jD,KAAK4jD,0BAA0BtM,EAC9C,CACA,IAAK,MAAMzzB,KAAS/zB,EAClBikC,EAAIx5B,OACJw5B,EAAIt5B,aAAaopB,EAAMppB,WACvBs5B,EAAIrgB,MAAM,GAAI,GACd04B,EAAyBrY,EAAK+vB,EAAYjgC,EAAM2C,EAAG3C,EAAM4C,EAAG5C,EAAMsK,EAAGtK,EAAMuK,EAAG,GAAI,EAAG,EAAG,GACxF2F,EAAIv5B,UAENwF,KAAKk7C,SACP,CACA,wBAAA97C,GACOY,KAAKs1C,iBAGVt1C,KAAK+zB,IAAImiB,SAAS,EAAG,EAAG,EAAG,GAC3Bl2C,KAAKk7C,UACP,CACA,SAAAl9C,CAAUgmD,GAAM,CAChB,cAAA/lD,CAAe+lD,EAAK5R,GAAa,CACjC,kBAAAl0C,CAAmB8lD,GACjBhkD,KAAKu0C,mBAAmB7iD,KAAK,CAC3BuyD,SAAS,GAEb,CACA,uBAAA9lD,CAAwB6lD,EAAK5R,GACf,OAAR4R,EACFhkD,KAAKu0C,mBAAmB7iD,KAAK,CAC3BuyD,QAASjkD,KAAK+W,sBAAsBmtC,UAAU9R,KAGhDpyC,KAAKu0C,mBAAmB7iD,KAAK,CAC3BuyD,SAAS,IAGbjkD,KAAKs1C,eAAiBt1C,KAAKmkD,kBAC7B,CACA,gBAAA/lD,GACE4B,KAAKu0C,mBAAmBgI,MACxBv8C,KAAKs1C,eAAiBt1C,KAAKmkD,kBAC7B,CACA,WAAA9lD,GAAe,CACf,SAAAC,GAAa,CACb,WAAAy+C,CAAY/N,GACV,MAAMrlB,EAAU3pB,KAAKyrC,QAAQwE,cACzBjwC,KAAKy0C,aACPz0C,KAAKyrC,QAAQuE,qBAEVhwC,KAAKy0C,aACRz0C,KAAKk7C,QAAQlM,GAEf,MAAMjb,EAAM/zB,KAAK+zB,IACb/zB,KAAKy0C,cACF9qB,IACC3pB,KAAKy0C,cAAgBJ,EACvBtgB,EAAIr4B,KAAK,WAETq4B,EAAIr4B,QAGRsE,KAAKy0C,YAAc,MAErBz0C,KAAKyrC,QAAQsD,uBAAuB/uC,KAAKyrC,QAAQuD,SACjDjb,EAAI6mB,WACN,CACA,mBAAAoE,GACE,IAAKh/C,KAAK61C,2BAA4B,CACpC,MAAMnzC,GAAI,EAAI4E,EAAe22B,qBAAqBj+B,KAAK+zB,KACvD,GAAa,IAATrxB,EAAE,IAAqB,IAATA,EAAE,GAClB1C,KAAK61C,2BAA6B,EAAI7nD,KAAKuS,IAAIvS,KAAKqX,IAAI3C,EAAE,IAAK1U,KAAKqX,IAAI3C,EAAE,SACrE,CACL,MAAM0hD,EAASp2D,KAAKqX,IAAI3C,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,IACzC2hD,EAAQr2D,KAAKihC,MAAMvsB,EAAE,GAAIA,EAAE,IAC3B4hD,EAAQt2D,KAAKihC,MAAMvsB,EAAE,GAAIA,EAAE,IACjC1C,KAAK61C,2BAA6B7nD,KAAKiV,IAAIohD,EAAOC,GAASF,CAC7D,CACF,CACA,OAAOpkD,KAAK61C,0BACd,CACA,mBAAA0O,GACE,IAAyC,IAArCvkD,KAAK41C,wBAAwB,GAAW,CAC1C,MAAM,UACJhH,GACE5uC,KAAKyrC,SACH,EACJpoC,EAAC,EACDnB,EAAC,EACDoB,EAAC,EACDV,GACE5C,KAAK+zB,IAAIoK,eACb,IAAI4jB,EAAQC,EACZ,GAAU,IAAN9/C,GAAiB,IAANoB,EAAS,CACtB,MAAM+gD,EAAQr2D,KAAKqX,IAAIhC,GACjBihD,EAAQt2D,KAAKqX,IAAIzC,GACvB,GAAIyhD,IAAUC,EACZ,GAAkB,IAAd1V,EACFmT,EAASC,EAAS,EAAIqC,MACjB,CACL,MAAMG,EAAkBH,EAAQzV,EAChCmT,EAASC,EAASwC,EAAkB,EAAI,EAAIA,EAAkB,CAChE,MACK,GAAkB,IAAd5V,EACTmT,EAAS,EAAIsC,EACbrC,EAAS,EAAIsC,MACR,CACL,MAAMG,EAAmBJ,EAAQzV,EAC3B8V,EAAmBJ,EAAQ1V,EACjCmT,EAAS0C,EAAmB,EAAI,EAAIA,EAAmB,EACvDzC,EAAS0C,EAAmB,EAAI,EAAIA,EAAmB,CACzD,CACF,KAAO,CACL,MAAMN,EAASp2D,KAAKqX,IAAIhC,EAAIT,EAAIV,EAAIoB,GAC9B+gD,EAAQr2D,KAAKihC,MAAM5rB,EAAGnB,GACtBoiD,EAAQt2D,KAAKihC,MAAM3rB,EAAGV,GAC5B,GAAkB,IAAdgsC,EACFmT,EAASuC,EAAQF,EACjBpC,EAASqC,EAAQD,MACZ,CACL,MAAMO,EAAW/V,EAAYwV,EAC7BrC,EAASuC,EAAQK,EAAWL,EAAQK,EAAW,EAC/C3C,EAASqC,EAAQM,EAAWN,EAAQM,EAAW,CACjD,CACF,CACA3kD,KAAK41C,wBAAwB,GAAKmM,EAClC/hD,KAAK41C,wBAAwB,GAAKoM,CACpC,CACA,OAAOhiD,KAAK41C,uBACd,CACA,gBAAAoH,CAAiB4H,GACf,MAAM,IACJ7wB,GACE/zB,MACE,UACJ4uC,GACE5uC,KAAKyrC,SACFsW,EAAQC,GAAUhiD,KAAKukD,sBAE9B,GADAxwB,EAAI6a,UAAYA,GAAa,EACd,IAAXmT,GAA2B,IAAXC,EAElB,YADAjuB,EAAI94B,SAGN,MAAM4pD,EAAS9wB,EAAIwe,cAKnB,GAJIqS,GACF7wB,EAAIx5B,OAENw5B,EAAIrgB,MAAMquC,EAAQC,GACd6C,EAAOv4D,OAAS,EAAG,CACrB,MAAMonB,EAAQ1lB,KAAKiV,IAAI8+C,EAAQC,GAC/BjuB,EAAIue,YAAYuS,EAAO/0D,KAAI02B,GAAKA,EAAI9S,KACpCqgB,EAAIye,gBAAkB9+B,CACxB,CACAqgB,EAAI94B,SACA2pD,GACF7wB,EAAIv5B,SAER,CACA,gBAAA2pD,GACE,IAAK,IAAIp2D,EAAIiS,KAAKu0C,mBAAmBjoD,OAAS,EAAGyB,GAAK,EAAGA,IACvD,IAAKiS,KAAKu0C,mBAAmBxmD,GAAGk2D,QAC9B,OAAO,EAGX,OAAO,CACT,EAEFl7D,EAAQ25B,eAAiBA,EACzB,IAAK,MAAMoiC,KAAM19C,EAAMtd,SACgB6E,IAAjC+zB,EAAexiB,UAAU4kD,KAC3BpiC,EAAexiB,UAAUkH,EAAMtd,IAAIg7D,IAAOpiC,EAAexiB,UAAU4kD,GAIhE,EAED,CAAEh8D,EAAyBC,EAASmd,KAI1Cld,OAAOC,eAAeF,EAAS,aAAc,CAC3CG,OAAO,IAETH,EAAQm4D,cAAgBn4D,EAAQ8mD,cAAW,EAC3C9mD,EAAQu4D,kBA0SR,SAA2BP,GACzB,OAAQA,EAAG,IACT,IAAK,cACH,OAAO,IAAIgE,EAA0BhE,GACvC,IAAK,OACH,OAAO,IAAIiE,EAAmBjE,GAChC,IAAK,QACH,OAAO,IAAIkE,EAEf,MAAM,IAAIzlD,MAAM,oBAAoBuhD,EAAG,KACzC,EAnTA,IAAI35C,EAAQlB,EAAoB,GAC5BoB,EAAiBpB,EAAoB,GACzC,MAAM2pC,EAAW,CACf17C,KAAM,OACNC,OAAQ,SACRmtD,QAAS,WAGX,SAAS2D,EAAiBnxB,EAAK0tB,GAC7B,IAAKA,EACH,OAEF,MAAMjhC,EAAQihC,EAAK,GAAKA,EAAK,GACvBhhC,EAASghC,EAAK,GAAKA,EAAK,GACxB0D,EAAS,IAAIhC,OACnBgC,EAAOthD,KAAK49C,EAAK,GAAIA,EAAK,GAAIjhC,EAAOC,GACrCsT,EAAIr4B,KAAKypD,EACX,CAVAp8D,EAAQ8mD,SAAWA,EAWnB,MAAMuV,EACJ,WAAAnlD,GACMD,KAAKC,cAAgBmlD,IACvB,EAAIh+C,EAAMxb,aAAa,wCAE3B,CACA,UAAAmtD,IACE,EAAI3xC,EAAMxb,aAAa,uCACzB,EAEF,MAAMm5D,UAAkCK,EACtC,WAAAnlD,CAAY8gD,GACVrgD,QACAV,KAAK+jB,MAAQg9B,EAAG,GAChB/gD,KAAKqlD,MAAQtE,EAAG,GAChB/gD,KAAKslD,YAAcvE,EAAG,GACtB/gD,KAAKulD,IAAMxE,EAAG,GACd/gD,KAAKwlD,IAAMzE,EAAG,GACd/gD,KAAKylD,IAAM1E,EAAG,GACd/gD,KAAK0lD,IAAM3E,EAAG,GACd/gD,KAAKqhD,OAAS,IAChB,CACA,eAAAsE,CAAgB5xB,GACd,IAAI6xB,EACe,UAAf5lD,KAAK+jB,MACP6hC,EAAO7xB,EAAI8xB,qBAAqB7lD,KAAKulD,IAAI,GAAIvlD,KAAKulD,IAAI,GAAIvlD,KAAKwlD,IAAI,GAAIxlD,KAAKwlD,IAAI,IACxD,WAAfxlD,KAAK+jB,QACd6hC,EAAO7xB,EAAI+xB,qBAAqB9lD,KAAKulD,IAAI,GAAIvlD,KAAKulD,IAAI,GAAIvlD,KAAKylD,IAAKzlD,KAAKwlD,IAAI,GAAIxlD,KAAKwlD,IAAI,GAAIxlD,KAAK0lD,MAErG,IAAK,MAAMK,KAAa/lD,KAAKslD,YAC3BM,EAAKI,aAAaD,EAAU,GAAIA,EAAU,IAE5C,OAAOH,CACT,CACA,UAAA7M,CAAWhlB,EAAKkyB,EAAOnN,EAASlJ,GAC9B,IAAImP,EACJ,GAAInP,IAAaC,EAASz7C,QAAUw7C,IAAaC,EAAS17C,KAAM,CAC9D,MAAM+xD,EAAYD,EAAMxa,QAAQ0E,0BAA0BP,GAAU,EAAItoC,EAAe22B,qBAAqBlK,KAAS,CAAC,EAAG,EAAG,EAAG,GACzHvT,EAAQxyB,KAAK4pD,KAAKsO,EAAU,GAAKA,EAAU,KAAO,EAClDzlC,EAASzyB,KAAK4pD,KAAKsO,EAAU,GAAKA,EAAU,KAAO,EACnD7O,EAAY4O,EAAM1Q,eAAerJ,UAAU,UAAW1rB,EAAOC,GAAQ,GACrE62B,EAASD,EAAUjzB,QACzBkzB,EAAOO,UAAU,EAAG,EAAGP,EAAOj2B,OAAOb,MAAO82B,EAAOj2B,OAAOZ,QAC1D62B,EAAOsD,YACPtD,EAAOzzC,KAAK,EAAG,EAAGyzC,EAAOj2B,OAAOb,MAAO82B,EAAOj2B,OAAOZ,QACrD62B,EAAOrtB,WAAWi8B,EAAU,IAAKA,EAAU,IAC3CpN,EAAU1xC,EAAMhe,KAAKqR,UAAUq+C,EAAS,CAAC,EAAG,EAAG,EAAG,EAAGoN,EAAU,GAAIA,EAAU,KAC7E5O,EAAO78C,aAAawrD,EAAMlR,eACtB/0C,KAAKqhD,QACP/J,EAAO78C,aAAauF,KAAKqhD,QAE3B6D,EAAiB5N,EAAQt3C,KAAKqlD,OAC9B/N,EAAO3E,UAAY3yC,KAAK2lD,gBAAgBrO,GACxCA,EAAOn8C,OACP4jD,EAAUhrB,EAAIoyB,cAAc9O,EAAUh2B,OAAQ,aAC9C,MAAM+kC,EAAY,IAAIC,UAAUvN,GAChCiG,EAAQzR,aAAa8Y,EACvB,MACElB,EAAiBnxB,EAAK/zB,KAAKqlD,OAC3BtG,EAAU/+C,KAAK2lD,gBAAgB5xB,GAEjC,OAAOgrB,CACT,EAEF,SAASuH,EAAavgD,EAAMqe,EAAS30B,EAAIC,EAAIqT,EAAIwjD,EAAIC,EAAIC,GACvD,MAAMC,EAAStiC,EAAQsiC,OACrBvvB,EAAS/S,EAAQ+S,OACbh3B,EAAQ4F,EAAKA,KACjB4gD,EAAuB,EAAb5gD,EAAKya,MACjB,IAAIomC,EACAF,EAAOj3D,EAAK,GAAKi3D,EAAOh3D,EAAK,KAC/Bk3D,EAAMn3D,EACNA,EAAKC,EACLA,EAAKk3D,EACLA,EAAML,EACNA,EAAKC,EACLA,EAAKI,GAEHF,EAAOh3D,EAAK,GAAKg3D,EAAO3jD,EAAK,KAC/B6jD,EAAMl3D,EACNA,EAAKqT,EACLA,EAAK6jD,EACLA,EAAMJ,EACNA,EAAKC,EACLA,EAAKG,GAEHF,EAAOj3D,EAAK,GAAKi3D,EAAOh3D,EAAK,KAC/Bk3D,EAAMn3D,EACNA,EAAKC,EACLA,EAAKk3D,EACLA,EAAML,EACNA,EAAKC,EACLA,EAAKI,GAEP,MAAMpiD,GAAMkiD,EAAOj3D,GAAM20B,EAAQxQ,SAAWwQ,EAAQ29B,OAC9Ct9C,GAAMiiD,EAAOj3D,EAAK,GAAK20B,EAAQvQ,SAAWuQ,EAAQ49B,OAClDt9C,GAAMgiD,EAAOh3D,GAAM00B,EAAQxQ,SAAWwQ,EAAQ29B,OAC9Cp9C,GAAM+hD,EAAOh3D,EAAK,GAAK00B,EAAQvQ,SAAWuQ,EAAQ49B,OAClDp9C,GAAM8hD,EAAO3jD,GAAMqhB,EAAQxQ,SAAWwQ,EAAQ29B,OAC9Cl9C,GAAM6hD,EAAO3jD,EAAK,GAAKqhB,EAAQvQ,SAAWuQ,EAAQ49B,OACxD,GAAIv9C,GAAMI,EACR,OAEF,MAAMgiD,EAAM1vB,EAAOovB,GACjBO,EAAM3vB,EAAOovB,EAAK,GAClBQ,EAAM5vB,EAAOovB,EAAK,GACdS,EAAM7vB,EAAOqvB,GACjBS,EAAM9vB,EAAOqvB,EAAK,GAClBU,EAAM/vB,EAAOqvB,EAAK,GACdW,EAAMhwB,EAAOsvB,GACjBW,EAAMjwB,EAAOsvB,EAAK,GAClBY,EAAMlwB,EAAOsvB,EAAK,GACdrX,EAAOphD,KAAKs9B,MAAM7mB,GACtB6qC,EAAOthD,KAAKs9B,MAAMzmB,GACpB,IAAIyiD,EAAIC,EAAKC,EAAKC,EACdC,EAAIC,EAAKC,EAAKC,EAClB,IAAK,IAAIphC,EAAI2oB,EAAM3oB,GAAK6oB,EAAM7oB,IAAK,CACjC,GAAIA,EAAI9hB,EAAI,CACV,MAAM49B,EAAI9b,EAAIhiB,EAAK,GAAKA,EAAKgiB,IAAMhiB,EAAKE,GACxC2iD,EAAK9iD,GAAMA,EAAKE,GAAM69B,EACtBglB,EAAMV,GAAOA,EAAMG,GAAOzkB,EAC1BilB,EAAMV,GAAOA,EAAMG,GAAO1kB,EAC1BklB,EAAMV,GAAOA,EAAMG,GAAO3kB,CAC5B,KAAO,CACL,IAAIA,EAEFA,EADE9b,EAAI5hB,EACF,EACKF,IAAOE,EACZ,GAECF,EAAK8hB,IAAM9hB,EAAKE,GAEvByiD,EAAK5iD,GAAMA,EAAKE,GAAM29B,EACtBglB,EAAMP,GAAOA,EAAMG,GAAO5kB,EAC1BilB,EAAMP,GAAOA,EAAMG,GAAO7kB,EAC1BklB,EAAMP,GAAOA,EAAMG,GAAO9kB,CAC5B,CACA,IAAIA,EAEFA,EADE9b,EAAIhiB,EACF,EACKgiB,EAAI5hB,EACT,GAECJ,EAAKgiB,IAAMhiB,EAAKI,GAEvB6iD,EAAKljD,GAAMA,EAAKI,GAAM29B,EACtBolB,EAAMd,GAAOA,EAAMM,GAAO5kB,EAC1BqlB,EAAMd,GAAOA,EAAMM,GAAO7kB,EAC1BslB,EAAMd,GAAOA,EAAMM,GAAO9kB,EAC1B,MAAMulB,EAAM95D,KAAKs9B,MAAMt9B,KAAKuS,IAAI+mD,EAAII,IAC9BK,EAAM/5D,KAAKs9B,MAAMt9B,KAAKiV,IAAIqkD,EAAII,IACpC,IAAIniD,EAAIohD,EAAUlgC,EAAU,EAANqhC,EACtB,IAAK,IAAIthC,EAAIshC,EAAKthC,GAAKuhC,EAAKvhC,IAC1B+b,GAAK+kB,EAAK9gC,IAAM8gC,EAAKI,GACjBnlB,EAAI,EACNA,EAAI,EACKA,EAAI,IACbA,EAAI,GAENpiC,EAAMoF,KAAOgiD,GAAOA,EAAMI,GAAOplB,EAAI,EACrCpiC,EAAMoF,KAAOiiD,GAAOA,EAAMI,GAAOrlB,EAAI,EACrCpiC,EAAMoF,KAAOkiD,GAAOA,EAAMI,GAAOtlB,EAAI,EACrCpiC,EAAMoF,KAAO,GAEjB,CACF,CACA,SAASyiD,EAAWjiD,EAAMkiD,EAAQ7jC,GAChC,MAAM8jC,EAAKD,EAAOvB,OACZyB,EAAKF,EAAO9wB,OAClB,IAAIppC,EAAGiB,EACP,OAAQi5D,EAAO91D,MACb,IAAK,UACH,MAAMi2D,EAAiBH,EAAOG,eACxBC,EAAOr6D,KAAKC,MAAMi6D,EAAG57D,OAAS87D,GAAkB,EAChDE,EAAOF,EAAiB,EAC9B,IAAKr6D,EAAI,EAAGA,EAAIs6D,EAAMt6D,IAAK,CACzB,IAAIw6D,EAAIx6D,EAAIq6D,EACZ,IAAK,IAAI7iD,EAAI,EAAGA,EAAI+iD,EAAM/iD,IAAKgjD,IAC7BjC,EAAavgD,EAAMqe,EAAS8jC,EAAGK,GAAIL,EAAGK,EAAI,GAAIL,EAAGK,EAAIH,GAAiBD,EAAGI,GAAIJ,EAAGI,EAAI,GAAIJ,EAAGI,EAAIH,IAC/F9B,EAAavgD,EAAMqe,EAAS8jC,EAAGK,EAAIH,EAAiB,GAAIF,EAAGK,EAAI,GAAIL,EAAGK,EAAIH,GAAiBD,EAAGI,EAAIH,EAAiB,GAAID,EAAGI,EAAI,GAAIJ,EAAGI,EAAIH,GAE7I,CACA,MACF,IAAK,YACH,IAAKr6D,EAAI,EAAGiB,EAAKk5D,EAAG57D,OAAQyB,EAAIiB,EAAIjB,GAAK,EACvCu4D,EAAavgD,EAAMqe,EAAS8jC,EAAGn6D,GAAIm6D,EAAGn6D,EAAI,GAAIm6D,EAAGn6D,EAAI,GAAIo6D,EAAGp6D,GAAIo6D,EAAGp6D,EAAI,GAAIo6D,EAAGp6D,EAAI,IAEpF,MACF,QACE,MAAM,IAAIyR,MAAM,kBAEtB,CACA,MAAMwlD,UAA2BI,EAC/B,WAAAnlD,CAAY8gD,GACVrgD,QACAV,KAAKwoD,QAAUzH,EAAG,GAClB/gD,KAAKk3B,QAAU6pB,EAAG,GAClB/gD,KAAKyoD,SAAW1H,EAAG,GACnB/gD,KAAK0oD,QAAU3H,EAAG,GAClB/gD,KAAKqlD,MAAQtE,EAAG,GAChB/gD,KAAK2oD,YAAc5H,EAAG,GACtB/gD,KAAKqhD,OAAS,IAChB,CACA,iBAAAuH,CAAkBC,EAAeC,EAAiBvT,GAChD,MAGM3hC,EAAU5lB,KAAKC,MAAM+R,KAAK0oD,QAAQ,IAClC70C,EAAU7lB,KAAKC,MAAM+R,KAAK0oD,QAAQ,IAClCK,EAAc/6D,KAAK4pD,KAAK53C,KAAK0oD,QAAQ,IAAM90C,EAC3Co1C,EAAeh7D,KAAK4pD,KAAK53C,KAAK0oD,QAAQ,IAAM70C,EAC5C2M,EAAQxyB,KAAKuS,IAAIvS,KAAK4pD,KAAK5pD,KAAKqX,IAAI0jD,EAAcF,EAAc,GAP/C,MACE,KAOnBpoC,EAASzyB,KAAKuS,IAAIvS,KAAK4pD,KAAK5pD,KAAKqX,IAAI2jD,EAAeH,EAAc,GARjD,MACE,KAQnB9G,EAASgH,EAAcvoC,EACvBwhC,EAASgH,EAAevoC,EACxB2D,EAAU,CACdsiC,OAAQ1mD,KAAKwoD,QACbrxB,OAAQn3B,KAAKk3B,QACbtjB,SAAUA,EACVC,SAAUA,EACVkuC,OAAQ,EAAIA,EACZC,OAAQ,EAAIA,GAERiH,EAAczoC,EAAQ0oC,EACtBC,EAAe1oC,EAASyoC,EACxB7R,EAAY9B,EAAerJ,UAAU,OAAQ+c,EAAaE,GAAc,GACxE7R,EAASD,EAAUjzB,QACnBre,EAAOuxC,EAAO1G,gBAAgBpwB,EAAOC,GAC3C,GAAIqoC,EAAiB,CACnB,MAAM3oD,EAAQ4F,EAAKA,KACnB,IAAK,IAAIhY,EAAI,EAAGiB,EAAKmR,EAAM7T,OAAQyB,EAAIiB,EAAIjB,GAAK,EAC9CoS,EAAMpS,GAAK+6D,EAAgB,GAC3B3oD,EAAMpS,EAAI,GAAK+6D,EAAgB,GAC/B3oD,EAAMpS,EAAI,GAAK+6D,EAAgB,GAC/B3oD,EAAMpS,EAAI,GAAK,GAEnB,CACA,IAAK,MAAMk6D,KAAUjoD,KAAKyoD,SACxBT,EAAWjiD,EAAMkiD,EAAQ7jC,GAI3B,OAFAkzB,EAAO/G,aAAaxqC,EAlCA,KAoCb,CACLsb,OAFag2B,EAAUh2B,OAGvBzN,QAASA,EAtCS,EAsCemuC,EACjCluC,QAASA,EAvCS,EAuCemuC,EACjCD,SACAC,SAEJ,CACA,UAAAjJ,CAAWhlB,EAAKkyB,EAAOnN,EAASlJ,GAE9B,IAAIl8B,EACJ,GAFAwxC,EAAiBnxB,EAAK/zB,KAAKqlD,OAEvBzV,IAAaC,EAAS0R,QACxB7tC,EAAQtM,EAAMhe,KAAK+Z,+BAA8B,EAAImE,EAAe22B,qBAAqBlK,SAGzF,GADArgB,EAAQtM,EAAMhe,KAAK+Z,8BAA8B8iD,EAAMlR,eACnD/0C,KAAKqhD,OAAQ,CACf,MAAM+H,EAAchiD,EAAMhe,KAAK+Z,8BAA8BnD,KAAKqhD,QAClE3tC,EAAQ,CAACA,EAAM,GAAK01C,EAAY,GAAI11C,EAAM,GAAK01C,EAAY,GAC7D,CAEF,MAAMC,EAAyBrpD,KAAK4oD,kBAAkBl1C,EAAOk8B,IAAaC,EAAS0R,QAAU,KAAOvhD,KAAK2oD,YAAa1C,EAAM1Q,gBAS5H,OARI3F,IAAaC,EAAS0R,UACxBxtB,EAAIuZ,gBAAgB2Y,EAAMlR,eACtB/0C,KAAKqhD,QACPttB,EAAIt5B,aAAauF,KAAKqhD,SAG1BttB,EAAI9J,UAAUo/B,EAAuBz1C,QAASy1C,EAAuBx1C,SACrEkgB,EAAIrgB,MAAM21C,EAAuBtH,OAAQsH,EAAuBrH,QACzDjuB,EAAIoyB,cAAckD,EAAuBhoC,OAAQ,YAC1D,EAEF,MAAM4jC,UAA4BG,EAChC,UAAArM,GACE,MAAO,SACT,EAiBF,MAAMmI,EACJ7yC,wBAA0B,IAC1B,WAAApO,CAAY8gD,EAAIzpB,EAAOvD,EAAKitB,EAAuBjM,GACjD/0C,KAAK0V,aAAeqrC,EAAG,GACvB/gD,KAAKqhD,OAASN,EAAG,IAAM,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GACvC/gD,KAAKyhD,KAAOV,EAAG,GACf/gD,KAAKspD,MAAQvI,EAAG,GAChB/gD,KAAKupD,MAAQxI,EAAG,GAChB/gD,KAAKwpD,UAAYzI,EAAG,GACpB/gD,KAAKypD,WAAa1I,EAAG,GACrB/gD,KAAKs3B,MAAQA,EACbt3B,KAAK+zB,IAAMA,EACX/zB,KAAKghD,sBAAwBA,EAC7BhhD,KAAK+0C,cAAgBA,CACvB,CACA,mBAAA2U,CAAoBzD,GAClB,MAAMvwC,EAAe1V,KAAK0V,aACpB+rC,EAAOzhD,KAAKyhD,KACZ6H,EAAQtpD,KAAKspD,MACbC,EAAQvpD,KAAKupD,MACbC,EAAYxpD,KAAKwpD,UACjBC,EAAazpD,KAAKypD,WAClBnyB,EAAQt3B,KAAKs3B,MACb0pB,EAAwBhhD,KAAKghD,uBACnC,EAAI55C,EAAM/Y,MAAM,eAAiBo7D,GACjC,MAAMnlD,EAAKm9C,EAAK,GACdl9C,EAAKk9C,EAAK,GACVj9C,EAAKi9C,EAAK,GACVh9C,EAAKg9C,EAAK,GACN2H,EAAchiD,EAAMhe,KAAK+Z,8BAA8BnD,KAAKqhD,QAC5DsI,EAAiBviD,EAAMhe,KAAK+Z,8BAA8BnD,KAAK+0C,eAC/D8T,EAAgB,CAACO,EAAY,GAAKO,EAAe,GAAIP,EAAY,GAAKO,EAAe,IACrFC,EAAO5pD,KAAK6pD,gBAAgBP,EAAOtpD,KAAK+zB,IAAI1S,OAAOb,MAAOqoC,EAAc,IACxEiB,EAAO9pD,KAAK6pD,gBAAgBN,EAAOvpD,KAAK+zB,IAAI1S,OAAOZ,OAAQooC,EAAc,IACzExR,EAAY4O,EAAM1Q,eAAerJ,UAAU,UAAW0d,EAAKlyC,KAAMoyC,EAAKpyC,MAAM,GAC5E4/B,EAASD,EAAUjzB,QACnB2lC,EAAW/I,EAAsBC,qBAAqB3J,GAC5DyS,EAAS9U,WAAagR,EAAMhR,WAC5Bj1C,KAAKgqD,+BAA+BD,EAAUP,EAAWlyB,GACzD,IAAI2yB,EAAa3lD,EACb4lD,EAAa3lD,EACb4lD,EAAa3lD,EACb4lD,EAAa3lD,EAgBjB,OAfIH,EAAK,IACP2lD,EAAa,EACbE,GAAcn8D,KAAKqX,IAAIf,IAErBC,EAAK,IACP2lD,EAAa,EACbE,GAAcp8D,KAAKqX,IAAId,IAEzB+yC,EAAOrtB,WAAY2/B,EAAKl2C,MAAQu2C,GAAeH,EAAKp2C,MAAQw2C,GAC5DH,EAAStvD,UAAUmvD,EAAKl2C,MAAO,EAAG,EAAGo2C,EAAKp2C,MAAO,EAAG,GACpD4jC,EAAO/8C,OACPyF,KAAKqqD,SAASN,EAAUE,EAAYC,EAAYC,EAAYC,GAC5DL,EAAShV,eAAgB,EAAIztC,EAAe22B,qBAAqB8rB,EAASh2B,KAC1Eg2B,EAAShnC,oBAAoBrN,GAC7Bq0C,EAASnnC,aACF,CACLvB,OAAQg2B,EAAUh2B,OAClB0gC,OAAQ6H,EAAKl2C,MACbsuC,OAAQ8H,EAAKp2C,MACbE,QAASq2C,EACTp2C,QAASq2C,EAEb,CACA,eAAAL,CAAgB1nB,EAAMmoB,EAAgB52C,GACpCyuB,EAAOn0C,KAAKqX,IAAI88B,GAChB,MAAMpM,EAAU/nC,KAAKiV,IAAIi+C,EAAcqJ,iBAAkBD,GACzD,IAAI5yC,EAAO1pB,KAAK4pD,KAAKzV,EAAOzuB,GAM5B,OALIgE,GAAQqe,EACVre,EAAOqe,EAEPriB,EAAQgE,EAAOyqB,EAEV,CACLzuB,QACAgE,OAEJ,CACA,QAAA2yC,CAASN,EAAUzlD,EAAIC,EAAIC,EAAIC,GAC7B,MAAM+lD,EAAYhmD,EAAKF,EACjBmmD,EAAahmD,EAAKF,EACxBwlD,EAASh2B,IAAIlwB,KAAKS,EAAIC,EAAIimD,EAAWC,GACrCV,EAASte,QAAQ8D,kBAAiB,EAAIjoC,EAAe22B,qBAAqB8rB,EAASh2B,KAAM,CAACzvB,EAAIC,EAAIC,EAAIC,IACtGslD,EAASruD,OACTquD,EAAStuD,SACX,CACA,8BAAAuuD,CAA+BD,EAAUP,EAAWlyB,GAClD,MAAMlT,EAAU2lC,EAASh2B,IACvB0X,EAAUse,EAASte,QACrB,OAAQ+d,GACN,KA/FK,EAgGH,MAAMz1B,EAAM/zB,KAAK+zB,IACjB3P,EAAQuuB,UAAY5e,EAAI4e,UACxBvuB,EAAQsuB,YAAc3e,EAAI2e,YAC1BjH,EAAQ8C,UAAYxa,EAAI4e,UACxBlH,EAAQ+C,YAAcza,EAAI2e,YAC1B,MACF,KArGO,EAsGL,MAAMgY,EAAWtjD,EAAMhe,KAAK2Y,aAAau1B,EAAM,GAAIA,EAAM,GAAIA,EAAM,IACnElT,EAAQuuB,UAAY+X,EACpBtmC,EAAQsuB,YAAcgY,EACtBjf,EAAQ8C,UAAYmc,EACpBjf,EAAQ+C,YAAckc,EACtB,MACF,QACE,MAAM,IAAItjD,EAAM9c,YAAY,2BAA2Bk/D,KAE7D,CACA,UAAAzQ,CAAWhlB,EAAKkyB,EAAOnN,EAASlJ,GAC9B,IAAIyR,EAASvI,EACTlJ,IAAaC,EAAS0R,UACxBF,EAASj6C,EAAMhe,KAAKqR,UAAU4mD,EAAQ4E,EAAMlR,eACxC/0C,KAAKqhD,SACPA,EAASj6C,EAAMhe,KAAKqR,UAAU4mD,EAAQrhD,KAAKqhD,UAG/C,MAAMgI,EAAyBrpD,KAAK0pD,oBAAoBzD,GACxD,IAAIG,EAAY,IAAIC,UAAUhF,GAC9B+E,EAAYA,EAAUn8B,UAAUo/B,EAAuBz1C,QAASy1C,EAAuBx1C,SACvFuyC,EAAYA,EAAU1yC,MAAM,EAAI21C,EAAuBtH,OAAQ,EAAIsH,EAAuBrH,QAC1F,MAAMjD,EAAUhrB,EAAIoyB,cAAckD,EAAuBhoC,OAAQ,UAEjE,OADA09B,EAAQzR,aAAa8Y,GACdrH,CACT,EAEFh2D,EAAQm4D,cAAgBA,CAEjB,EAED,CAAEp4D,EAAyBC,EAASmd,KAI1Cld,OAAOC,eAAeF,EAAS,aAAc,CAC3CG,OAAO,IAETH,EAAQgpD,2BAA6BA,EACrChpD,EAAQ4hE,cAGR,SAAuBj+C,GACrB,OAAQA,EAAOwkC,MACb,KAAK9pC,EAAMhd,UAAUyK,eACnB,OAAOk9C,EAA2BrlC,GACpC,KAAKtF,EAAMhd,UAAU0K,UACnB,OA6CN,UAA0B,IACxBgU,EAAG,OACHgoC,EAAS,EAAC,KACVC,EAAI,QACJF,EAAU,EAAC,MACXrwB,EAAK,OACLC,IAEA,IAAI1yB,EAAI,EACR,MAAM68D,EAAQ9hD,EAAIxc,QAAU,EACtBu+D,EAAQ,IAAI9pD,YAAY+H,EAAI5X,OAAQ4/C,EAAQ8Z,GAClD,GAAIxjD,EAAM7c,YAAYsW,eAAgB,CACpC,KAAO9S,EAAI68D,EAAQ,EAAG78D,GAAK,EAAG8iD,GAAW,EAAG,CAC1C,MAAMia,EAAKD,EAAM98D,GACXg9D,EAAKF,EAAM98D,EAAI,GACfi9D,EAAKH,EAAM98D,EAAI,GACrBgjD,EAAKF,GAAgB,WAALia,EAChB/Z,EAAKF,EAAU,GAAKia,IAAO,GAAKC,GAAM,EAAI,WAC1Cha,EAAKF,EAAU,GAAKka,IAAO,GAAKC,GAAM,GAAK,WAC3Cja,EAAKF,EAAU,GAAKma,IAAO,EAAI,UACjC,CACA,IAAK,IAAIzlD,EAAQ,EAAJxX,EAAOk9D,EAAKniD,EAAIxc,OAAQiZ,EAAI0lD,EAAI1lD,GAAK,EAChDwrC,EAAKF,KAAa/nC,EAAIvD,GAAKuD,EAAIvD,EAAI,IAAM,EAAIuD,EAAIvD,EAAI,IAAM,GAAK,UAEpE,KAAO,CACL,KAAOxX,EAAI68D,EAAQ,EAAG78D,GAAK,EAAG8iD,GAAW,EAAG,CAC1C,MAAMia,EAAKD,EAAM98D,GACXg9D,EAAKF,EAAM98D,EAAI,GACfi9D,EAAKH,EAAM98D,EAAI,GACrBgjD,EAAKF,GAAgB,IAALia,EAChB/Z,EAAKF,EAAU,GAAKia,GAAM,GAAKC,IAAO,EAAI,IAC1Cha,EAAKF,EAAU,GAAKka,GAAM,GAAKC,IAAO,GAAK,IAC3Cja,EAAKF,EAAU,GAAKma,GAAM,EAAI,GAChC,CACA,IAAK,IAAIzlD,EAAQ,EAAJxX,EAAOk9D,EAAKniD,EAAIxc,OAAQiZ,EAAI0lD,EAAI1lD,GAAK,EAChDwrC,EAAKF,KAAa/nC,EAAIvD,IAAM,GAAKuD,EAAIvD,EAAI,IAAM,GAAKuD,EAAIvD,EAAI,IAAM,EAAI,GAE1E,CACA,MAAO,CACLurC,SACAD,UAEJ,CAvFaqa,CAAiBx+C,GAE5B,OAAO,IACT,EAVA3jB,EAAQoiE,WA+FR,SAAoBriD,EAAKioC,GACvB,GAAI3pC,EAAM7c,YAAYsW,eACpB,IAAK,IAAI9S,EAAI,EAAGiB,EAAK8Z,EAAIxc,OAAQyB,EAAIiB,EAAIjB,IACvCgjD,EAAKhjD,GAAc,MAAT+a,EAAI/a,GAAe,gBAG/B,IAAK,IAAIA,EAAI,EAAGiB,EAAK8Z,EAAIxc,OAAQyB,EAAIiB,EAAIjB,IACvCgjD,EAAKhjD,GAAc,SAAT+a,EAAI/a,GAAiB,GAGrC,EAxGA,IAAIqZ,EAAQlB,EAAoB,GAUhC,SAAS6rC,GAA2B,IAClCjpC,EAAG,OACHgoC,EAAS,EAAC,KACVC,EAAI,MACJvwB,EAAK,OACLC,EAAM,cACNuxB,EAAgB,WAAU,cAC1BoZ,GAAgB,IAEhB,MAAM5Z,EAAQpqC,EAAM7c,YAAYsW,eAAiB,WAAa,KACvDwqD,EAAaC,GAAcF,EAAgB,CAACpZ,EAAeR,GAAS,CAACA,EAAOQ,GAC7EuZ,EAAgB/qC,GAAS,EACzBgrC,EAAyB,EAARhrC,EACjB2wB,EAAYroC,EAAIxc,OACtBykD,EAAO,IAAIhwC,YAAYgwC,EAAK7/C,QAC5B,IAAI2/C,EAAU,EACd,IAAK,IAAI9iD,EAAI,EAAGA,EAAI0yB,EAAQ1yB,IAAK,CAC/B,IAAK,MAAMkV,EAAM6tC,EAASya,EAAeza,EAAS7tC,EAAK6tC,IAAU,CAC/D,MAAMkS,EAAOlS,EAASK,EAAYroC,EAAIgoC,GAAU,IAChDC,EAAKF,KAAoB,IAAPmS,EAAoBsI,EAAaD,EACnDta,EAAKF,KAAoB,GAAPmS,EAAmBsI,EAAaD,EAClDta,EAAKF,KAAoB,GAAPmS,EAAkBsI,EAAaD,EACjDta,EAAKF,KAAoB,GAAPmS,EAAiBsI,EAAaD,EAChDta,EAAKF,KAAoB,EAAPmS,EAAgBsI,EAAaD,EAC/Cta,EAAKF,KAAoB,EAAPmS,EAAesI,EAAaD,EAC9Cta,EAAKF,KAAoB,EAAPmS,EAAcsI,EAAaD,EAC7Cta,EAAKF,KAAoB,EAAPmS,EAAasI,EAAaD,CAC9C,CACA,GAAuB,IAAnBG,EACF,SAEF,MAAMxI,EAAOlS,EAASK,EAAYroC,EAAIgoC,KAAY,IAClD,IAAK,IAAIvrC,EAAI,EAAGA,EAAIimD,EAAgBjmD,IAClCwrC,EAAKF,KAAamS,EAAO,GAAK,EAAIz9C,EAAI+lD,EAAaD,CAEvD,CACA,MAAO,CACLva,SACAD,UAEJ,CAwDO,EAED,CAAE/nD,EAAyBC,KAIjCC,OAAOC,eAAeF,EAAS,aAAc,CAC3CG,OAAO,IAETH,EAAQ4iB,yBAAsB,EAC9B,MAAMA,EAAsB3iB,OAAOgH,OAAO,MAC1CjH,EAAQ4iB,oBAAsBA,EAC9BA,EAAoBC,WAAa,KACjCD,EAAoBqQ,UAAY,EAEzB,EAED,CAAElzB,EAAyBC,EAASmd,KAI1Cld,OAAOC,eAAeF,EAAS,aAAc,CAC3CG,OAAO,IAETH,EAAQskB,oBAAiB,EACzB,IAAIjG,EAAQlB,EAAoB,GAiBhC,SAASulD,EAAWzlD,GAIlB,OAHMA,aAAkBxG,OAA2B,iBAAXwG,GAAkC,OAAXA,IAC7D,EAAIoB,EAAMxb,aAAa,kEAEjBoa,EAAOjG,MACb,IAAK,iBACH,OAAO,IAAIqH,EAAM5b,eAAewa,EAAOlG,SACzC,IAAK,sBACH,OAAO,IAAIsH,EAAMrd,oBAAoBic,EAAOlG,SAC9C,IAAK,oBACH,OAAO,IAAIsH,EAAMxd,kBAAkBoc,EAAOlG,QAASkG,EAAOzU,MAC5D,IAAK,8BACH,OAAO,IAAI6V,EAAM9d,4BAA4B0c,EAAOlG,QAASkG,EAAOpF,QACtE,IAAK,wBACH,OAAO,IAAIwG,EAAM/d,sBAAsB2c,EAAOlG,QAASkG,EAAOrF,SAChE,QACE,OAAO,IAAIyG,EAAM/d,sBAAsB2c,EAAOlG,QAASkG,EAAO/Y,YAEpE,CA8WAlE,EAAQskB,eA7WR,MACE,WAAApN,CAAYyrD,EAAYC,EAAYC,GAClC5rD,KAAK0rD,WAAaA,EAClB1rD,KAAK2rD,WAAaA,EAClB3rD,KAAK4rD,OAASA,EACd5rD,KAAK6rD,WAAa,EAClB7rD,KAAK8rD,SAAW,EAChB9rD,KAAK+rD,YAAc/iE,OAAOgH,OAAO,MACjCgQ,KAAKgsD,kBAAoBhjE,OAAOgH,OAAO,MACvCgQ,KAAKisD,qBAAuBjjE,OAAOgH,OAAO,MAC1CgQ,KAAKksD,cAAgBljE,OAAOgH,OAAO,MACnCgQ,KAAKmsD,mBAAqBjyC,IACxB,MAAMnU,EAAOmU,EAAMnU,KACnB,GAAIA,EAAK4lD,aAAe3rD,KAAK0rD,WAC3B,OAEF,GAAI3lD,EAAKqmD,OAEP,YADApsD,MAAK,GAAsB+F,GAG7B,GAAIA,EAAK0Q,SAAU,CACjB,MAAMo1C,EAAa9lD,EAAK8lD,WAClBx1C,EAAarW,KAAKisD,qBAAqBJ,GAC7C,IAAKx1C,EACH,MAAM,IAAI7W,MAAM,2BAA2BqsD,KAG7C,UADO7rD,KAAKisD,qBAAqBJ,GA3DjC,IA4DI9lD,EAAK0Q,SACPJ,EAAWxQ,QAAQE,EAAKA,UACnB,IA7DN,IA6DUA,EAAK0Q,SAGd,MAAM,IAAIjX,MAAM,4BAFhB6W,EAAWvQ,OAAO2lD,EAAW1lD,EAAKC,QAGpC,CACA,MACF,CACA,MAAM+pB,EAAS/vB,KAAKksD,cAAcnmD,EAAKgqB,QACvC,IAAKA,EACH,MAAM,IAAIvwB,MAAM,+BAA+BuG,EAAKgqB,UAEtD,GAAIhqB,EAAK8lD,WAAT,CACE,MAAMQ,EAAersD,KAAK0rD,WACpBY,EAAevmD,EAAK2lD,WAC1B,IAAI9lD,SAAQ,SAAUC,GACpBA,EAAQkqB,EAAOhqB,EAAKA,MACtB,IAAGqG,MAAK,SAAUgpB,GAChBw2B,EAAO5xC,YAAY,CACjB0xC,WAAYW,EACZV,WAAYW,EACZ71C,SAlFJ,EAmFIo1C,WAAY9lD,EAAK8lD,WACjB9lD,KAAMqvB,GAEV,IAAG,SAAUpvB,GACX4lD,EAAO5xC,YAAY,CACjB0xC,WAAYW,EACZV,WAAYW,EACZ71C,SAzFH,EA0FGo1C,WAAY9lD,EAAK8lD,WACjB7lD,OAAQylD,EAAWzlD,IAEvB,GAEF,MACID,EAAK+lD,SACP9rD,MAAK,GAAkB+F,GAGzBgqB,EAAOhqB,EAAKA,KAAK,EAEnB6lD,EAAOvxC,iBAAiB,UAAWra,KAAKmsD,mBAC1C,CACA,EAAArwC,CAAGywC,EAAYC,GACb,MAAMC,EAAKzsD,KAAKksD,cAChB,GAAIO,EAAGF,GACL,MAAM,IAAI/sD,MAAM,0CAA0C+sD,MAE5DE,EAAGF,GAAcC,CACnB,CACA,IAAA/+C,CAAK8+C,EAAYxmD,EAAMyT,GACrBxZ,KAAK4rD,OAAO5xC,YAAY,CACtB0xC,WAAY1rD,KAAK0rD,WACjBC,WAAY3rD,KAAK2rD,WACjB57B,OAAQw8B,EACRxmD,QACCyT,EACL,CACA,eAAA1L,CAAgBy+C,EAAYxmD,EAAMyT,GAChC,MAAMqyC,EAAa7rD,KAAK6rD,aAClBx1C,EAAa,IAAIjP,EAAM3d,kBAC7BuW,KAAKisD,qBAAqBJ,GAAcx1C,EACxC,IACErW,KAAK4rD,OAAO5xC,YAAY,CACtB0xC,WAAY1rD,KAAK0rD,WACjBC,WAAY3rD,KAAK2rD,WACjB57B,OAAQw8B,EACRV,aACA9lD,QACCyT,EACL,CAAE,MAAOpoB,GACPilB,EAAWvQ,OAAO1U,EACpB,CACA,OAAOilB,EAAW1Q,OACpB,CACA,cAAA6R,CAAe+0C,EAAYxmD,EAAM2mD,EAAkBlzC,GACjD,MAAMsyC,EAAW9rD,KAAK8rD,WACpBJ,EAAa1rD,KAAK0rD,WAClBC,EAAa3rD,KAAK2rD,WAClBC,EAAS5rD,KAAK4rD,OAChB,OAAO,IAAIe,eAAe,CACxBnrB,MAAOorB,IACL,MAAMC,EAAkB,IAAIzlD,EAAM3d,kBAgBlC,OAfAuW,KAAKgsD,kBAAkBF,GAAY,CACjCc,aACAE,UAAWD,EACXE,SAAU,KACVC,WAAY,KACZC,UAAU,GAEZrB,EAAO5xC,YAAY,CACjB0xC,aACAC,aACA57B,OAAQw8B,EACRT,WACA/lD,OACAmnD,YAAaN,EAAWM,aACvB1zC,GACIqzC,EAAgBlnD,OAAO,EAEhCwnD,KAAMP,IACJ,MAAMQ,EAAiB,IAAIhmD,EAAM3d,kBASjC,OARAuW,KAAKgsD,kBAAkBF,GAAUiB,SAAWK,EAC5CxB,EAAO5xC,YAAY,CACjB0xC,aACAC,aACAS,OA9JF,EA+JEN,WACAoB,YAAaN,EAAWM,cAEnBE,EAAeznD,OAAO,EAE/BmT,OAAQ9S,KACN,EAAIoB,EAAM3b,QAAQua,aAAkBxG,MAAO,mCAC3C,MAAM6tD,EAAmB,IAAIjmD,EAAM3d,kBAUnC,OATAuW,KAAKgsD,kBAAkBF,GAAUkB,WAAaK,EAC9CrtD,KAAKgsD,kBAAkBF,GAAUmB,UAAW,EAC5CrB,EAAO5xC,YAAY,CACjB0xC,aACAC,aACAS,OAjLA,EAkLAN,WACA9lD,OAAQylD,EAAWzlD,KAEdqnD,EAAiB1nD,OAAO,GAEhC+mD,EACL,CACA,IAAkB3mD,GAChB,MAAM+lD,EAAW/lD,EAAK+lD,SACpBJ,EAAa1rD,KAAK0rD,WAClBC,EAAa5lD,EAAK2lD,WAClBE,EAAS5rD,KAAK4rD,OACV90B,EAAO92B,KACX+vB,EAAS/vB,KAAKksD,cAAcnmD,EAAKgqB,QAC7Bu9B,EAAa,CACjB,OAAA3uC,CAAQne,EAAOkX,EAAO,EAAG8B,GACvB,GAAIxZ,KAAKutD,YACP,OAEF,MAAMC,EAAkBxtD,KAAKktD,YAC7BltD,KAAKktD,aAAex1C,EAChB81C,EAAkB,GAAKxtD,KAAKktD,aAAe,IAC7CltD,KAAKytD,eAAiB,IAAIrmD,EAAM3d,kBAChCuW,KAAK6e,MAAQ7e,KAAKytD,eAAe9nD,SAEnCimD,EAAO5xC,YAAY,CACjB0xC,aACAC,aACAS,OA3MC,EA4MDN,WACAtrD,SACCgZ,EACL,EACA,KAAAiF,GACMze,KAAKutD,cAGTvtD,KAAKutD,aAAc,EACnB3B,EAAO5xC,YAAY,CACjB0xC,aACAC,aACAS,OAzND,EA0NCN,oBAEKh1B,EAAKi1B,YAAYD,GAC1B,EACA,KAAA71C,CAAMjQ,IACJ,EAAIoB,EAAM3b,QAAQua,aAAkBxG,MAAO,kCACvCQ,KAAKutD,cAGTvtD,KAAKutD,aAAc,EACnB3B,EAAO5xC,YAAY,CACjB0xC,aACAC,aACAS,OArOD,EAsOCN,WACA9lD,OAAQylD,EAAWzlD,KAEvB,EACAynD,eAAgB,IAAIrmD,EAAM3d,kBAC1B+0B,OAAQ,KACRI,SAAU,KACV2uC,aAAa,EACbL,YAAannD,EAAKmnD,YAClBruC,MAAO,MAETyuC,EAAWG,eAAe5nD,UAC1BynD,EAAWzuC,MAAQyuC,EAAWG,eAAe9nD,QAC7C3F,KAAK+rD,YAAYD,GAAYwB,EAC7B,IAAI1nD,SAAQ,SAAUC,GACpBA,EAAQkqB,EAAOhqB,EAAKA,KAAMunD,GAC5B,IAAGlhD,MAAK,WACNw/C,EAAO5xC,YAAY,CACjB0xC,aACAC,aACAS,OAvPU,EAwPVN,WACA7yC,SAAS,GAEb,IAAG,SAAUjT,GACX4lD,EAAO5xC,YAAY,CACjB0xC,aACAC,aACAS,OA/PU,EAgQVN,WACA9lD,OAAQylD,EAAWzlD,IAEvB,GACF,CACA,IAAsBD,GACpB,MAAM+lD,EAAW/lD,EAAK+lD,SACpBJ,EAAa1rD,KAAK0rD,WAClBC,EAAa5lD,EAAK2lD,WAClBE,EAAS5rD,KAAK4rD,OACV8B,EAAmB1tD,KAAKgsD,kBAAkBF,GAC9CwB,EAAattD,KAAK+rD,YAAYD,GAChC,OAAQ/lD,EAAKqmD,QACX,KA7QY,EA8QNrmD,EAAKkT,QACPy0C,EAAiBZ,UAAUjnD,UAE3B6nD,EAAiBZ,UAAUhnD,OAAO2lD,EAAW1lD,EAAKC,SAEpD,MACF,KArRW,EAsRLD,EAAKkT,QACPy0C,EAAiBX,SAASlnD,UAE1B6nD,EAAiBX,SAASjnD,OAAO2lD,EAAW1lD,EAAKC,SAEnD,MACF,KA7RE,EA8RA,IAAKsnD,EAAY,CACf1B,EAAO5xC,YAAY,CACjB0xC,aACAC,aACAS,OAjSK,EAkSLN,WACA7yC,SAAS,IAEX,KACF,CACIq0C,EAAWJ,aAAe,GAAKnnD,EAAKmnD,YAAc,GACpDI,EAAWG,eAAe5nD,UAE5BynD,EAAWJ,YAAcnnD,EAAKmnD,YAC9B,IAAItnD,SAAQ,SAAUC,GACpBA,EAAQynD,EAAW9uC,WACrB,IAAGpS,MAAK,WACNw/C,EAAO5xC,YAAY,CACjB0xC,aACAC,aACAS,OAjTK,EAkTLN,WACA7yC,SAAS,GAEb,IAAG,SAAUjT,GACX4lD,EAAO5xC,YAAY,CACjB0xC,aACAC,aACAS,OAzTK,EA0TLN,WACA9lD,OAAQylD,EAAWzlD,IAEvB,IACA,MACF,KAlUK,EAoUH,IADA,EAAIoB,EAAM3b,QAAQiiE,EAAkB,yCAChCA,EAAiBT,SACnB,MAEFS,EAAiBd,WAAWjuC,QAAQ5Y,EAAKvF,OACzC,MACF,KA1UG,EA4UD,IADA,EAAI4G,EAAM3b,QAAQiiE,EAAkB,uCAChCA,EAAiBT,SACnB,MAEFS,EAAiBT,UAAW,EAC5BS,EAAiBd,WAAWnuC,QAC5Bze,MAAK,GAAwB0tD,EAAkB5B,GAC/C,MACF,KAjVG,GAkVD,EAAI1kD,EAAM3b,QAAQiiE,EAAkB,uCACpCA,EAAiBd,WAAW32C,MAAMw1C,EAAW1lD,EAAKC,SAClDhG,MAAK,GAAwB0tD,EAAkB5B,GAC/C,MACF,KAzVa,EA0VP/lD,EAAKkT,QACPy0C,EAAiBV,WAAWnnD,UAE5B6nD,EAAiBV,WAAWlnD,OAAO2lD,EAAW1lD,EAAKC,SAErDhG,MAAK,GAAwB0tD,EAAkB5B,GAC/C,MACF,KAlWI,EAmWF,IAAKwB,EACH,MAEF,IAAI1nD,SAAQ,SAAUC,GACpBA,EAAQynD,EAAW1uC,WAAW6sC,EAAW1lD,EAAKC,SAChD,IAAGoG,MAAK,WACNw/C,EAAO5xC,YAAY,CACjB0xC,aACAC,aACAS,OA3WO,EA4WPN,WACA7yC,SAAS,GAEb,IAAG,SAAUjT,GACX4lD,EAAO5xC,YAAY,CACjB0xC,aACAC,aACAS,OAnXO,EAoXPN,WACA9lD,OAAQylD,EAAWzlD,IAEvB,IACAsnD,EAAWG,eAAe3nD,OAAO2lD,EAAW1lD,EAAKC,SACjDsnD,EAAWC,aAAc,SAClBvtD,KAAK+rD,YAAYD,GACxB,MACF,QACE,MAAM,IAAItsD,MAAM,0BAEtB,CACA,QAAM,CAAwBkuD,EAAkB5B,SACxClmD,QAAQ+nD,WAAW,CAACD,EAAiBZ,WAAWnnD,QAAS+nD,EAAiBX,UAAUpnD,QAAS+nD,EAAiBV,YAAYrnD,iBACzH3F,KAAKgsD,kBAAkBF,EAChC,CACA,OAAAt9C,GACExO,KAAK4rD,OAAOtxC,oBAAoB,UAAWta,KAAKmsD,mBAClD,EAIK,EAED,CAAErjE,EAAyBC,EAASmd,KAI1Cld,OAAOC,eAAeF,EAAS,aAAc,CAC3CG,OAAO,IAETH,EAAQk4B,cAAW,EACnB,IAAI7Z,EAAQlB,EAAoB,GAwBhCnd,EAAQk4B,SAvBR,MACE,IACA,IACA,WAAAhhB,EAAY,WACV2tD,EAAU,QACVv5B,IAEAr0B,MAAK,GAAe4tD,EACpB5tD,MAAK,GAAQq0B,CACf,CACA,MAAAw5B,GACE,OAAO7tD,MAAK,EACd,CACA,GAAApQ,CAAImQ,GACF,OAAOC,MAAK,GAAapQ,IAAImQ,IAAS,IACxC,CACA,MAAAikB,GACE,OAAO,EAAI5c,EAAMvX,eAAemQ,MAAK,GACvC,CACA,GAAA0b,CAAI3b,GACF,OAAOC,MAAK,GAAa0b,IAAI3b,EAC/B,EAIK,EAED,CAAEjX,EAAyBC,EAASmd,KAI1Cld,OAAOC,eAAeF,EAAS,aAAc,CAC3CG,OAAO,IAETH,EAAQg4B,2BAAwB,EAChC,IAAI3Z,EAAQlB,EAAoB,GAC5B+c,EAAc/c,EAAoB,GACtC,MAAM4nD,EAAWC,OAAO,YACxB,MAAMC,EACJ,KAAW,EACX,WAAA/tD,CAAYF,EAAMmU,GAChBlU,KAAKD,KAAOA,EACZC,KAAKkU,OAASA,CAChB,CACA,WAAI+vC,GACF,OAAOjkD,MAAK,EACd,CACA,WAAAiuD,CAAYC,EAAUjK,GAChBiK,IAAaJ,IACf,EAAI1mD,EAAMxb,aAAa,yCAEzBoU,MAAK,GAAWikD,CAClB,EA8KFl7D,EAAQg4B,sBA5KR,MACE,IAAiB,KACjB,IAAU,IAAIzxB,IACd,IAAe,KACf,IAAS,KACT,WAAA2Q,CAAY8F,GAGV,GAFA/F,KAAKD,KAAO,KACZC,KAAKmuD,QAAU,KACF,OAATpoD,EAAJ,CAGA/F,KAAKD,KAAOgG,EAAKhG,KACjBC,KAAKmuD,QAAUpoD,EAAKooD,QACpBnuD,MAAK,GAAS+F,EAAKqoD,MACnB,IAAK,MAAM1M,KAAS37C,EAAKsoD,OACvBruD,MAAK,GAAQqV,IAAIqsC,EAAMzwC,GAAI,IAAI+8C,EAAqBtM,EAAM3hD,KAAM2hD,EAAMxtC,SAExE,GAAuB,QAAnBnO,EAAKuoD,UACP,IAAK,MAAM5M,KAAS1hD,MAAK,GAAQ2Y,SAC/B+oC,EAAMuM,YAAYH,GAAU,GAGhC,IAAK,MAAMhyC,KAAM/V,EAAK+V,GACpB9b,MAAK,GAAQpQ,IAAIksB,GAAImyC,YAAYH,GAAU,GAE7C,IAAK,MAAMS,KAAOxoD,EAAKwoD,IACrBvuD,MAAK,GAAQpQ,IAAI2+D,GAAKN,YAAYH,GAAU,GAE9C9tD,MAAK,GAAeA,KAAKwuD,SAlBzB,CAmBF,CACA,IAA8BC,GAC5B,MAAMniE,EAASmiE,EAAMniE,OACrB,GAAIA,EAAS,EACX,OAAO,EAET,MAAMoiE,EAAWD,EAAM,GACvB,IAAK,IAAI1gE,EAAI,EAAGA,EAAIzB,EAAQyB,IAAK,CAC/B,MAAMwlC,EAAUk7B,EAAM1gE,GACtB,IAAI4gE,EACJ,GAAI9sD,MAAMq5B,QAAQ3H,GAChBo7B,EAAQ3uD,MAAK,GAA8BuzB,OACtC,KAAIvzB,MAAK,GAAQ0b,IAAI6X,GAI1B,OADA,EAAInsB,EAAM/V,MAAM,qCAAqCkiC,MAC9C,EAHPo7B,EAAQ3uD,MAAK,GAAQpQ,IAAI2jC,GAAS0wB,OAIpC,CACA,OAAQyK,GACN,IAAK,MACH,IAAKC,EACH,OAAO,EAET,MACF,IAAK,KACH,GAAIA,EACF,OAAO,EAET,MACF,IAAK,MACH,OAAQA,EACV,QACE,OAAO,EAEb,CACA,MAAoB,QAAbD,CACT,CACA,SAAAxK,CAAUxC,GACR,GAA0B,IAAtB1hD,MAAK,GAAQ0X,KACf,OAAO,EAET,IAAKgqC,EAEH,OADA,EAAIt6C,EAAM/V,MAAM,wCACT,EAET,GAAmB,QAAfqwD,EAAMvvD,KACR,OAAK6N,MAAK,GAAQ0b,IAAIgmC,EAAMzwC,IAIrBjR,MAAK,GAAQpQ,IAAI8xD,EAAMzwC,IAAIgzC,UAHhC,EAAI78C,EAAM/V,MAAM,qCAAqCqwD,EAAMzwC,OACpD,GAGJ,GAAmB,SAAfywC,EAAMvvD,KAAiB,CAChC,GAAIuvD,EAAMkN,WACR,OAAO5uD,MAAK,GAA8B0hD,EAAMkN,YAElD,IAAKlN,EAAMmN,QAA2B,UAAjBnN,EAAMmN,OAAoB,CAC7C,IAAK,MAAM59C,KAAMywC,EAAMoN,IAAK,CAC1B,IAAK9uD,MAAK,GAAQ0b,IAAIzK,GAEpB,OADA,EAAI7J,EAAM/V,MAAM,qCAAqC4f,MAC9C,EAET,GAAIjR,MAAK,GAAQpQ,IAAIqhB,GAAIgzC,QACvB,OAAO,CAEX,CACA,OAAO,CACT,CAAO,GAAqB,UAAjBvC,EAAMmN,OAAoB,CACnC,IAAK,MAAM59C,KAAMywC,EAAMoN,IAAK,CAC1B,IAAK9uD,MAAK,GAAQ0b,IAAIzK,GAEpB,OADA,EAAI7J,EAAM/V,MAAM,qCAAqC4f,MAC9C,EAET,IAAKjR,MAAK,GAAQpQ,IAAIqhB,GAAIgzC,QACxB,OAAO,CAEX,CACA,OAAO,CACT,CAAO,GAAqB,WAAjBvC,EAAMmN,OAAqB,CACpC,IAAK,MAAM59C,KAAMywC,EAAMoN,IAAK,CAC1B,IAAK9uD,MAAK,GAAQ0b,IAAIzK,GAEpB,OADA,EAAI7J,EAAM/V,MAAM,qCAAqC4f,MAC9C,EAET,IAAKjR,MAAK,GAAQpQ,IAAIqhB,GAAIgzC,QACxB,OAAO,CAEX,CACA,OAAO,CACT,CAAO,GAAqB,WAAjBvC,EAAMmN,OAAqB,CACpC,IAAK,MAAM59C,KAAMywC,EAAMoN,IAAK,CAC1B,IAAK9uD,MAAK,GAAQ0b,IAAIzK,GAEpB,OADA,EAAI7J,EAAM/V,MAAM,qCAAqC4f,MAC9C,EAET,GAAIjR,MAAK,GAAQpQ,IAAIqhB,GAAIgzC,QACvB,OAAO,CAEX,CACA,OAAO,CACT,CAEA,OADA,EAAI78C,EAAM/V,MAAM,mCAAmCqwD,EAAMmN,YAClD,CACT,CAEA,OADA,EAAIznD,EAAM/V,MAAM,sBAAsBqwD,EAAMvvD,UACrC,CACT,CACA,aAAA48D,CAAc99C,EAAIgzC,GAAU,GACrBjkD,MAAK,GAAQ0b,IAAIzK,IAItBjR,MAAK,GAAQpQ,IAAIqhB,GAAIg9C,YAAYH,IAAY7J,GAC7CjkD,MAAK,GAAiB,OAJpB,EAAIoH,EAAM/V,MAAM,qCAAqC4f,IAKzD,CACA,wBAAI+9C,GACF,OAA6B,OAAtBhvD,MAAK,IAAyBA,KAAKwuD,YAAcxuD,MAAK,EAC/D,CACA,QAAAivD,GACE,OAAKjvD,MAAK,GAAQ0X,KAGd1X,MAAK,GACAA,MAAK,GAAO8C,QAEd,IAAI9C,MAAK,GAAQ7P,QALf,IAMX,CACA,SAAA++D,GACE,OAAOlvD,MAAK,GAAQ0X,KAAO,GAAI,EAAItQ,EAAMvX,eAAemQ,MAAK,IAAW,IAC1E,CACA,QAAAmvD,CAASl+C,GACP,OAAOjR,MAAK,GAAQpQ,IAAIqhB,IAAO,IACjC,CACA,OAAAu9C,GACE,GAA4B,OAAxBxuD,MAAK,GACP,OAAOA,MAAK,GAEd,MAAM+d,EAAO,IAAIkF,EAAYkB,eAC7B,IAAK,MAAOlT,EAAIywC,KAAU1hD,MAAK,GAC7B+d,EAAKyG,OAAO,GAAGvT,KAAMywC,EAAMuC,WAE7B,OAAOjkD,MAAK,GAAiB+d,EAAK4G,WACpC,EAIK,EAED,CAAE77B,EAAyBC,EAASmd,KAI1Cld,OAAOC,eAAeF,EAAS,aAAc,CAC3CG,OAAO,IAETH,EAAQ4jB,4BAAyB,EACjC,IAAIvF,EAAQlB,EAAoB,GAC5BoB,EAAiBpB,EAAoB,GAoHzCnd,EAAQ4jB,uBAnHR,MACE,WAAA1M,EAAY,OACV3T,EAAM,YACNsgB,EAAW,gBACXC,GAAkB,EAAK,2BACvBC,EAA6B,KAAI,aACjCpC,GAAe,EAAK,cACpBC,GAAgB,GACfykD,GAKD,IAJA,EAAIhoD,EAAM3b,QAAQ2jE,EAAuB,+EACzCpvD,KAAKqvD,cAAgB,GACrBrvD,KAAKsvD,iBAAmBziD,EACxB7M,KAAKuvD,4BAA8BziD,EAC/BF,GAAatgB,OAAS,EAAG,CAC3B,MAAM4E,EAAS0b,aAAuB/e,YAAc+e,EAAYhe,aAAege,EAAY1b,OAAOtC,WAAage,EAAY1b,OAAS,IAAIrD,WAAW+e,GAAa1b,OAChK8O,KAAKqvD,cAAc39D,KAAKR,EAC1B,CACA8O,KAAKwvD,uBAAyBJ,EAC9BpvD,KAAKyvD,uBAAyB9kD,EAC9B3K,KAAK0vD,mBAAqBhlD,EAC1B1K,KAAK2vD,eAAiBrjE,EACtB0T,KAAK4vD,mBAAqB,KAC1B5vD,KAAK6vD,cAAgB,GACrB7vD,KAAKwvD,uBAAuBzgD,kBAAiB,CAACM,EAAO7O,KACnDR,KAAK8vD,eAAe,CAClBzgD,QACA7O,SACA,IAEJR,KAAKwvD,uBAAuBvgD,qBAAoB,CAACM,EAAQC,KACvDxP,KAAK+vD,YAAY,CACfxgD,SACAC,SACA,IAEJxP,KAAKwvD,uBAAuBtgD,4BAA2B1O,IACrDR,KAAK8vD,eAAe,CAClBtvD,SACA,IAEJR,KAAKwvD,uBAAuBrgD,4BAA2B,KACrDnP,KAAKgwD,oBAAoB,IAE3BhwD,KAAKwvD,uBAAuB7/C,gBAC9B,CACA,cAAAmgD,EAAe,MACbzgD,EAAK,MACL7O,IAEA,MAAMtP,EAASsP,aAAiB3S,YAAc2S,EAAM5R,aAAe4R,EAAMtP,OAAOtC,WAAa4R,EAAMtP,OAAS,IAAIrD,WAAW2S,GAAOtP,OAClI,QAAcvC,IAAV0gB,EACErP,KAAK4vD,mBACP5vD,KAAK4vD,mBAAmBK,SAAS/+D,GAEjC8O,KAAKqvD,cAAc39D,KAAKR,OAErB,CACL,MAAMg/D,EAAQlwD,KAAK6vD,cAAcv0B,MAAK,SAAUjc,GAC9C,OAAIA,EAAY8wC,SAAW9gD,IAG3BgQ,EAAY4wC,SAAS/+D,IACd,EACT,KACA,EAAIkW,EAAM3b,QAAQykE,EAAO,0EAC3B,CACF,CACA,0BAAIE,GACF,OAAOpwD,KAAK4vD,oBAAoBS,SAAW,CAC7C,CACA,WAAAN,CAAYxxC,QACQ5vB,IAAd4vB,EAAI/O,MACNxP,KAAK6vD,cAAc,IAAIthD,aAAa,CAClCgB,OAAQgP,EAAIhP,SAGdvP,KAAK4vD,oBAAoBrhD,aAAa,CACpCgB,OAAQgP,EAAIhP,OACZC,MAAO+O,EAAI/O,OAGjB,CACA,kBAAAwgD,GACEhwD,KAAK4vD,oBAAoB/iD,kBACzB7M,KAAKsvD,kBAAmB,CAC1B,CACA,kBAAAgB,CAAmBr4C,GACjB,MAAMlqB,EAAIiS,KAAK6vD,cAAcU,QAAQt4C,GACjClqB,GAAK,GACPiS,KAAK6vD,cAAc15B,OAAOpoC,EAAG,EAEjC,CACA,aAAAuwB,IACE,EAAIlX,EAAM3b,SAASuU,KAAK4vD,mBAAoB,iEAC5C,MAAMY,EAAexwD,KAAKqvD,cAE1B,OADArvD,KAAKqvD,cAAgB,KACd,IAAIoB,EAA6BzwD,KAAMwwD,EAAcxwD,KAAKsvD,iBAAkBtvD,KAAKuvD,4BAC1F,CACA,cAAAjwC,CAAejQ,EAAOQ,GACpB,GAAIA,GAAO7P,KAAKowD,uBACd,OAAO,KAET,MAAMn4C,EAAS,IAAIy4C,EAAkC1wD,KAAMqP,EAAOQ,GAGlE,OAFA7P,KAAKwvD,uBAAuB5/C,iBAAiBP,EAAOQ,GACpD7P,KAAK6vD,cAAcn+D,KAAKumB,GACjBA,CACT,CACA,iBAAAmG,CAAkBpY,GAChBhG,KAAK4vD,oBAAoB92C,OAAO9S,GAChC,IAAK,MAAMiS,KAAUjY,KAAK6vD,cAAc/sD,MAAM,GAC5CmV,EAAOa,OAAO9S,GAEhBhG,KAAKwvD,uBAAuB1/C,OAC9B,GAGF,MAAM2gD,EACJ,WAAAxwD,CAAYmsD,EAAQoE,EAAc3jD,GAAkB,EAAOC,EAA6B,MACtF9M,KAAK2wD,QAAUvE,EACfpsD,KAAK4wD,MAAQ/jD,IAAmB,EAChC7M,KAAK6wD,WAAY,EAAIvpD,EAAe63B,WAAWryB,GAA8BA,EAA6B,KAC1G9M,KAAKqvD,cAAgBmB,GAAgB,GACrCxwD,KAAKqwD,QAAU,EACf,IAAK,MAAM7vD,KAASR,KAAKqvD,cACvBrvD,KAAKqwD,SAAW7vD,EAAM5R,WAExBoR,KAAK8wD,UAAY,GACjB9wD,KAAK+wD,cAAgBnrD,QAAQC,UAC7BumD,EAAOwD,mBAAqB5vD,KAC5BA,KAAKuO,WAAa,IACpB,CACA,QAAA0hD,CAASzvD,GACHR,KAAK4wD,QAGL5wD,KAAK8wD,UAAUxkE,OAAS,EACA0T,KAAK8wD,UAAUlnB,QACvB/jC,QAAQ,CACxB3c,MAAOsX,EACP8X,MAAM,IAGRtY,KAAKqvD,cAAc39D,KAAK8O,GAE1BR,KAAKqwD,SAAW7vD,EAAM5R,WACxB,CACA,gBAAIqwB,GACF,OAAOjf,KAAK+wD,aACd,CACA,YAAIpwC,GACF,OAAO3gB,KAAK6wD,SACd,CACA,oBAAI1xC,GACF,OAAOnf,KAAK2wD,QAAQjB,iBACtB,CACA,wBAAIxwC,GACF,OAAOlf,KAAK2wD,QAAQlB,qBACtB,CACA,iBAAIrwC,GACF,OAAOpf,KAAK2wD,QAAQhB,cACtB,CACA,UAAMt3C,GACJ,GAAIrY,KAAKqvD,cAAc/iE,OAAS,EAE9B,MAAO,CACLpD,MAFY8W,KAAKqvD,cAAczlB,QAG/BtxB,MAAM,GAGV,GAAItY,KAAK4wD,MACP,MAAO,CACL1nE,WAAOyF,EACP2pB,MAAM,GAGV,MAAM04C,EAAoB,IAAI5pD,EAAM3d,kBAEpC,OADAuW,KAAK8wD,UAAUp/D,KAAKs/D,GACbA,EAAkBrrD,OAC3B,CACA,MAAAmT,CAAO9S,GACLhG,KAAK4wD,OAAQ,EACb,IAAK,MAAMI,KAAqBhxD,KAAK8wD,UACnCE,EAAkBnrD,QAAQ,CACxB3c,WAAOyF,EACP2pB,MAAM,IAGVtY,KAAK8wD,UAAUxkE,OAAS,CAC1B,CACA,eAAAugB,GACM7M,KAAK4wD,QAGT5wD,KAAK4wD,OAAQ,EACf,EAEF,MAAMF,EACJ,WAAAzwD,CAAYmsD,EAAQ/8C,EAAOQ,GACzB7P,KAAK2wD,QAAUvE,EACfpsD,KAAKmwD,OAAS9gD,EACdrP,KAAKixD,KAAOphD,EACZ7P,KAAKkxD,aAAe,KACpBlxD,KAAK8wD,UAAY,GACjB9wD,KAAK4wD,OAAQ,EACb5wD,KAAKuO,WAAa,IACpB,CACA,QAAA0hD,CAASzvD,GACP,IAAIR,KAAK4wD,MAAT,CAGA,GAA8B,IAA1B5wD,KAAK8wD,UAAUxkE,OACjB0T,KAAKkxD,aAAe1wD,MACf,CACsBR,KAAK8wD,UAAUlnB,QACvB/jC,QAAQ,CACzB3c,MAAOsX,EACP8X,MAAM,IAER,IAAK,MAAM04C,KAAqBhxD,KAAK8wD,UACnCE,EAAkBnrD,QAAQ,CACxB3c,WAAOyF,EACP2pB,MAAM,IAGVtY,KAAK8wD,UAAUxkE,OAAS,CAC1B,CACA0T,KAAK4wD,OAAQ,EACb5wD,KAAK2wD,QAAQL,mBAAmBtwD,KAlBhC,CAmBF,CACA,wBAAIkf,GACF,OAAO,CACT,CACA,UAAM7G,GACJ,GAAIrY,KAAKkxD,aAAc,CACrB,MAAM1wD,EAAQR,KAAKkxD,aAEnB,OADAlxD,KAAKkxD,aAAe,KACb,CACLhoE,MAAOsX,EACP8X,MAAM,EAEV,CACA,GAAItY,KAAK4wD,MACP,MAAO,CACL1nE,WAAOyF,EACP2pB,MAAM,GAGV,MAAM04C,EAAoB,IAAI5pD,EAAM3d,kBAEpC,OADAuW,KAAK8wD,UAAUp/D,KAAKs/D,GACbA,EAAkBrrD,OAC3B,CACA,MAAAmT,CAAO9S,GACLhG,KAAK4wD,OAAQ,EACb,IAAK,MAAMI,KAAqBhxD,KAAK8wD,UACnCE,EAAkBnrD,QAAQ,CACxB3c,WAAOyF,EACP2pB,MAAM,IAGVtY,KAAK8wD,UAAUxkE,OAAS,EACxB0T,KAAK2wD,QAAQL,mBAAmBtwD,KAClC,EAGK,EAED,CAAElX,EAAyBC,EAASmd,KAI1Cld,OAAOC,eAAeF,EAAS,aAAc,CAC3CG,OAAO,IAETH,EAAQikB,oBAAiB,EACzB,IAAI5F,EAAQlB,EAAoB,GAC5BirD,EAAiBjrD,EAAoB,IAEzC,SAASkrD,EAAmBC,EAAShoD,EAAiBioD,GACpD,MAAO,CACLC,OAAQ,MACRF,UACAG,OAAQF,EAAgBE,OACxBv1B,KAAM,OACNw1B,YAAapoD,EAAkB,UAAY,cAC3CqoD,SAAU,SAEd,CACA,SAASC,EAAcvoD,GACrB,MAAMioD,EAAU,IAAIO,QACpB,IAAK,MAAMvf,KAAYjpC,EAAa,CAClC,MAAMlgB,EAAQkgB,EAAYipC,QACZ1jD,IAAVzF,GAGJmoE,EAAQrlC,OAAOqmB,EAAUnpD,EAC3B,CACA,OAAOmoE,CACT,CACA,SAASQ,EAAe9jD,GACtB,OAAIA,aAAelgB,WACVkgB,EAAI7c,OAET6c,aAAe2Q,YACV3Q,IAET,EAAI3G,EAAM/V,MAAM,4CAA4C0c,KACrD,IAAIlgB,WAAWkgB,GAAK7c,OAC7B,CAgCAnI,EAAQikB,eA/BR,MACE,WAAA/M,CAAY4N,GACV7N,KAAK6N,OAASA,EACd7N,KAAK8xD,OAAS,YAAY1yB,KAAKvxB,EAAO9hB,KACtCiU,KAAKoJ,YAAcpJ,KAAK8xD,QAAUjkD,EAAOzE,aAAe,CAAC,EACzDpJ,KAAK4vD,mBAAqB,KAC1B5vD,KAAK+xD,qBAAuB,EAC9B,CACA,0BAAI3B,GACF,OAAOpwD,KAAK4vD,oBAAoBS,SAAW,CAC7C,CACA,aAAA/xC,GAGE,OAFA,EAAIlX,EAAM3b,SAASuU,KAAK4vD,mBAAoB,yDAC5C5vD,KAAK4vD,mBAAqB,IAAIoC,EAAqBhyD,MAC5CA,KAAK4vD,kBACd,CACA,cAAAtwC,CAAejQ,EAAOQ,GACpB,GAAIA,GAAO7P,KAAKowD,uBACd,OAAO,KAET,MAAMn4C,EAAS,IAAIg6C,EAA0BjyD,KAAMqP,EAAOQ,GAE1D,OADA7P,KAAK+xD,qBAAqBrgE,KAAKumB,GACxBA,CACT,CACA,iBAAAmG,CAAkBpY,GAChBhG,KAAK4vD,oBAAoB92C,OAAO9S,GAChC,IAAK,MAAMiS,KAAUjY,KAAK+xD,qBAAqBjvD,MAAM,GACnDmV,EAAOa,OAAO9S,EAElB,GAGF,MAAMgsD,EACJ,WAAA/xD,CAAYmsD,GACVpsD,KAAK2wD,QAAUvE,EACfpsD,KAAKkyD,QAAU,KACflyD,KAAKqwD,QAAU,EACfrwD,KAAK6wD,UAAY,KACjB,MAAMhjD,EAASu+C,EAAOv+C,OACtB7N,KAAKmyD,iBAAmBtkD,EAAOxE,kBAAmB,EAClDrJ,KAAK2vD,eAAiB9hD,EAAOvhB,OAC7B0T,KAAKoyD,mBAAqB,IAAIhrD,EAAM3d,kBACpCuW,KAAKqyD,cAAgBxkD,EAAOnD,eAAgB,EAC5C1K,KAAKsyD,gBAAkBzkD,EAAOrE,eACzBxJ,KAAKsyD,iBAAoBtyD,KAAKqyD,gBACjCryD,KAAKqyD,eAAgB,GAEvBryD,KAAKuyD,iBAAmB,IAAIC,gBAC5BxyD,KAAKyvD,uBAAyB5hD,EAAOlD,cACrC3K,KAAK0vD,mBAAqB7hD,EAAOnD,aACjC1K,KAAKyyD,SAAWd,EAAc3xD,KAAK2wD,QAAQvnD,aAC3C,MAAMrd,EAAM8hB,EAAO9hB,IACnB20B,MAAM30B,EAAKqlE,EAAmBpxD,KAAKyyD,SAAUzyD,KAAKmyD,iBAAkBnyD,KAAKuyD,mBAAmBnmD,MAAKooB,IAC/F,KAAK,EAAI28B,EAAeuB,wBAAwBl+B,EAAS5zB,QACvD,MAAM,EAAIuwD,EAAewB,2BAA2Bn+B,EAAS5zB,OAAQ7U,GAEvEiU,KAAKkyD,QAAU19B,EAASuJ,KAAK7lB,YAC7BlY,KAAKoyD,mBAAmBvsD,UACxB,MAAM+sD,EAAoB7yD,GACjBy0B,EAAS68B,QAAQzhE,IAAImQ,IAExB,mBACJ8yD,EAAkB,gBAClBC,IACE,EAAI3B,EAAe4B,kCAAkC,CACvDH,oBACAd,OAAQ9xD,KAAK2wD,QAAQmB,OACrBtoD,eAAgBxJ,KAAKsyD,gBACrB5nD,aAAc1K,KAAKqyD,gBAErBryD,KAAK0vD,kBAAoBmD,EACzB7yD,KAAK2vD,eAAiBmD,GAAmB9yD,KAAK2vD,eAC9C3vD,KAAK6wD,WAAY,EAAIM,EAAe6B,2BAA2BJ,IAC1D5yD,KAAKyvD,uBAAyBzvD,KAAK0vD,mBACtC1vD,KAAK8Y,OAAO,IAAI1R,EAAM5b,eAAe,0BACvC,IACCkiB,MAAM1N,KAAKoyD,mBAAmBtsD,QACjC9F,KAAKuO,WAAa,IACpB,CACA,gBAAI0Q,GACF,OAAOjf,KAAKoyD,mBAAmBzsD,OACjC,CACA,YAAIgb,GACF,OAAO3gB,KAAK6wD,SACd,CACA,iBAAIzxC,GACF,OAAOpf,KAAK2vD,cACd,CACA,oBAAIxwC,GACF,OAAOnf,KAAK0vD,iBACd,CACA,wBAAIxwC,GACF,OAAOlf,KAAKyvD,qBACd,CACA,UAAMp3C,SACErY,KAAKoyD,mBAAmBzsD,QAC9B,MAAM,MACJzc,EAAK,KACLovB,SACQtY,KAAKkyD,QAAQ75C,OACvB,OAAIC,EACK,CACLpvB,QACAovB,SAGJtY,KAAKqwD,SAAWnnE,EAAM0F,WACtBoR,KAAKuO,aAAa,CAChBgB,OAAQvP,KAAKqwD,QACb7gD,MAAOxP,KAAK2vD,iBAEP,CACLzmE,MAAO2oE,EAAe3oE,GACtBovB,MAAM,GAEV,CACA,MAAAQ,CAAO9S,GACLhG,KAAKkyD,SAASp5C,OAAO9S,GACrBhG,KAAKuyD,iBAAiBziD,OACxB,EAEF,MAAMmiD,EACJ,WAAAhyD,CAAYmsD,EAAQ/8C,EAAOQ,GACzB7P,KAAK2wD,QAAUvE,EACfpsD,KAAKkyD,QAAU,KACflyD,KAAKqwD,QAAU,EACf,MAAMxiD,EAASu+C,EAAOv+C,OACtB7N,KAAKmyD,iBAAmBtkD,EAAOxE,kBAAmB,EAClDrJ,KAAKizD,gBAAkB,IAAI7rD,EAAM3d,kBACjCuW,KAAKyvD,uBAAyB5hD,EAAOlD,cACrC3K,KAAKuyD,iBAAmB,IAAIC,gBAC5BxyD,KAAKyyD,SAAWd,EAAc3xD,KAAK2wD,QAAQvnD,aAC3CpJ,KAAKyyD,SAASzmC,OAAO,QAAS,SAAS3c,KAASQ,EAAM,KACtD,MAAM9jB,EAAM8hB,EAAO9hB,IACnB20B,MAAM30B,EAAKqlE,EAAmBpxD,KAAKyyD,SAAUzyD,KAAKmyD,iBAAkBnyD,KAAKuyD,mBAAmBnmD,MAAKooB,IAC/F,KAAK,EAAI28B,EAAeuB,wBAAwBl+B,EAAS5zB,QACvD,MAAM,EAAIuwD,EAAewB,2BAA2Bn+B,EAAS5zB,OAAQ7U,GAEvEiU,KAAKizD,gBAAgBptD,UACrB7F,KAAKkyD,QAAU19B,EAASuJ,KAAK7lB,WAAW,IACvCxK,MAAM1N,KAAKizD,gBAAgBntD,QAC9B9F,KAAKuO,WAAa,IACpB,CACA,wBAAI2Q,GACF,OAAOlf,KAAKyvD,qBACd,CACA,UAAMp3C,SACErY,KAAKizD,gBAAgBttD,QAC3B,MAAM,MACJzc,EAAK,KACLovB,SACQtY,KAAKkyD,QAAQ75C,OACvB,OAAIC,EACK,CACLpvB,QACAovB,SAGJtY,KAAKqwD,SAAWnnE,EAAM0F,WACtBoR,KAAKuO,aAAa,CAChBgB,OAAQvP,KAAKqwD,UAER,CACLnnE,MAAO2oE,EAAe3oE,GACtBovB,MAAM,GAEV,CACA,MAAAQ,CAAO9S,GACLhG,KAAKkyD,SAASp5C,OAAO9S,GACrBhG,KAAKuyD,iBAAiBziD,OACxB,EAGK,EAED,CAAEhnB,EAAyBC,EAASmd,KAI1Cld,OAAOC,eAAeF,EAAS,aAAc,CAC3CG,OAAO,IAETH,EAAQ4pE,0BAqDR,SAAmC/xD,EAAQ7U,GACzC,OAAe,MAAX6U,GAA6B,IAAXA,GAAgB7U,EAAII,WAAW,SAC5C,IAAIib,EAAMrd,oBAAoB,gBAAkBgC,EAAM,MAExD,IAAIqb,EAAM9d,4BAA4B,+BAA+BsX,4BAAiC7U,MAAS6U,EACxH,EAzDA7X,EAAQiqE,0BAqCR,SAAmCJ,GACjC,MAAMM,EAAqBN,EAAkB,uBAC7C,GAAIM,EAAoB,CACtB,IAAIvyC,GAAW,EAAIwyC,EAAqBC,yCAAyCF,GACjF,GAAIvyC,EAASnf,SAAS,KACpB,IACEmf,EAAWlb,mBAAmBkb,EAChC,CAAE,MAAO,CAEX,IAAI,EAAIrZ,EAAe63B,WAAWxe,GAChC,OAAOA,CAEX,CACA,OAAO,IACT,EAlDA53B,EAAQgqE,iCAKR,UAA0C,kBACxCH,EAAiB,OACjBd,EAAM,eACNtoD,EAAc,aACdkB,IAEA,MAAM2oD,EAAe,CACnBR,oBAAoB,EACpBC,qBAAiBnkE,GAEbrC,EAAS4yC,SAAS0zB,EAAkB,kBAAmB,IAC7D,OAAKtiE,OAAOC,UAAUjE,IAGtB+mE,EAAaP,gBAAkBxmE,EAC3BA,GAAU,EAAIkd,GAGdkB,IAAiBonD,GAGsB,UAAvCc,EAAkB,kBAIE,cADAA,EAAkB,qBAAuB,cAIjES,EAAaR,oBAAqB,GAZzBQ,GAJAA,CAkBX,EAlCAtqE,EAAQ2pE,uBAwDR,SAAgC9xD,GAC9B,OAAkB,MAAXA,GAA6B,MAAXA,CAC3B,EAzDA,IAAIwG,EAAQlB,EAAoB,GAC5BitD,EAAuBjtD,EAAoB,IAC3CoB,EAAiBpB,EAAoB,EAyDlC,EAED,CAAEpd,EAAyBC,EAASmd,KAI1Cld,OAAOC,eAAeF,EAAS,aAAc,CAC3CG,OAAO,IAETH,EAAQqqE,wCAER,SAAiDF,GAC/C,IAAII,GAAqB,EACrB1M,EAAM2M,EAAc,cAAe,KAAK18B,KAAKq8B,GACjD,GAAItM,EAAK,CACPA,EAAMA,EAAI,GACV,IAAIjmC,EAAW6yC,EAAe5M,GAI9B,OAHAjmC,EAAW9uB,SAAS8uB,GACpBA,EAAW8yC,EAAc9yC,GACzBA,EAAW+yC,EAAc/yC,GAClBgzC,EAAchzC,EACvB,CAEA,GADAimC,EAwCA,SAAyBgN,GACvB,MAAMl8B,EAAU,GAChB,IAAIrrC,EACJ,MAAMwnE,EAAON,EAAc,kCAAmC,MAC9D,KAAsD,QAA9ClnE,EAAQwnE,EAAKh9B,KAAK+8B,KAAkC,CAC1D,IAAK,CAAE9xD,EAAGgyD,EAAMC,GAAQ1nE,EAExB,GADAyV,EAAIo9B,SAASp9B,EAAG,IACZA,KAAK41B,GACP,GAAU,IAAN51B,EACF,WAIJ41B,EAAQ51B,GAAK,CAACgyD,EAAMC,EACtB,CACA,MAAMC,EAAQ,GACd,IAAK,IAAIlyD,EAAI,EAAGA,EAAI41B,EAAQprC,QACpBwV,KAAK41B,IADyB51B,EAAG,CAIvC,IAAKgyD,EAAMC,GAAQr8B,EAAQ51B,GAC3BiyD,EAAOP,EAAeO,GAClBD,IACFC,EAAOliE,SAASkiE,GACN,IAANjyD,IACFiyD,EAAON,EAAcM,KAGzBC,EAAMtiE,KAAKqiE,EACb,CACA,OAAOC,EAAMxmE,KAAK,GACpB,CAvEMymE,CAAgBf,GAClBtM,EAEF,OAAO+M,EADUD,EAAc9M,IAIjC,GADAA,EAAM2M,EAAc,WAAY,KAAK18B,KAAKq8B,GACtCtM,EAAK,CACPA,EAAMA,EAAI,GACV,IAAIjmC,EAAW6yC,EAAe5M,GAE9B,OADAjmC,EAAW+yC,EAAc/yC,GAClBgzC,EAAchzC,EACvB,CACA,SAAS4yC,EAAcW,EAAkBC,GACvC,OAAO,IAAIpuB,OAAO,cAAgBmuB,EAAhB,sDAAmHC,EACvI,CACA,SAASC,EAAWtjE,EAAU5H,GAC5B,GAAI4H,EAAU,CACZ,IAAK,iBAAiBsuC,KAAKl2C,GACzB,OAAOA,EAET,IACE,MAAM6H,EAAU,IAAIC,YAAYF,EAAU,CACxCG,OAAO,IAEHC,GAAS,EAAIkW,EAAMxW,eAAe1H,GACxCA,EAAQ6H,EAAQI,OAAOD,GACvBoiE,GAAqB,CACvB,CAAE,MAAO,CACX,CACA,OAAOpqE,CACT,CACA,SAASyqE,EAAczqE,GAOrB,OANIoqE,GAAsB,cAAcl0B,KAAKl2C,KAC3CA,EAAQkrE,EAAW,QAASlrE,GACxBoqE,IACFpqE,EAAQkrE,EAAW,aAAclrE,KAG9BA,CACT,CAiCA,SAASsqE,EAAetqE,GACtB,GAAIA,EAAMiD,WAAW,KAAM,CACzB,MAAM6nE,EAAQ9qE,EAAM4Z,MAAM,GAAG4zB,MAAM,OACnC,IAAK,IAAI3oC,EAAI,EAAGA,EAAIimE,EAAM1nE,SAAUyB,EAAG,CACrC,MAAMsmE,EAAYL,EAAMjmE,GAAGwiE,QAAQ,MAChB,IAAf8D,IACFL,EAAMjmE,GAAKimE,EAAMjmE,GAAG+U,MAAM,EAAGuxD,GAC7BL,EAAM1nE,OAASyB,EAAI,GAErBimE,EAAMjmE,GAAKimE,EAAMjmE,GAAGwB,WAAW,SAAU,KAC3C,CACArG,EAAQ8qE,EAAMxmE,KAAK,IACrB,CACA,OAAOtE,CACT,CACA,SAASuqE,EAAca,GACrB,MAAMC,EAAcD,EAAS/D,QAAQ,KACrC,OAAqB,IAAjBgE,EACKD,EAKFF,EAHUE,EAASxxD,MAAM,EAAGyxD,GACjBD,EAASxxD,MAAMyxD,EAAc,GACvB15C,QAAQ,UAAW,IAE7C,CACA,SAAS64C,EAAcxqE,GACrB,OAAKA,EAAMiD,WAAW,OAAS,uBAAuBizC,KAAKl2C,GAClDA,EAEFA,EAAMqG,WAAW,kDAAkD,SAAUmoC,EAAS88B,EAAS1jE,EAAUwyC,GAC9G,GAAiB,MAAbxyC,GAAiC,MAAbA,EAKtB,OAAOsjE,EAAWI,EAHlBlxB,GADAA,EAAOA,EAAK/zC,WAAW,IAAK,MAChBA,WAAW,sBAAsB,SAAUlD,EAAOooE,GAC5D,OAAO/jE,OAAOC,aAAauuC,SAASu1B,EAAK,IAC3C,KAGF,IACEnxB,EAAOyG,KAAKzG,EACd,CAAE,MAAO,CACT,OAAO8wB,EAAWI,EAASlxB,EAC7B,GACF,CACA,MAAO,EACT,EAhIA,IAAIl8B,EAAQlB,EAAoB,EAkIzB,EAED,CAAEpd,EAAyBC,EAASmd,KAI1Cld,OAAOC,eAAeF,EAAS,aAAc,CAC3CG,OAAO,IAETH,EAAQkkB,sBAAmB,EAC3B,IAAI7F,EAAQlB,EAAoB,GAC5BirD,EAAiBjrD,EAAoB,IAWzC,MAAMwuD,EACJ,WAAAz0D,CAAYlU,EAAKirC,EAAO,CAAC,GACvBh3B,KAAKjU,IAAMA,EACXiU,KAAK8xD,OAAS,YAAY1yB,KAAKrzC,GAC/BiU,KAAKoJ,YAAcpJ,KAAK8xD,QAAU96B,EAAK5tB,aAAepgB,OAAOgH,OAAO,MACpEgQ,KAAKqJ,gBAAkB2tB,EAAK3tB,kBAAmB,EAC/CrJ,KAAK20D,UAAY,EACjB30D,KAAK40D,gBAAkB5rE,OAAOgH,OAAO,KACvC,CACA,YAAA6kE,CAAaxlD,EAAOQ,EAAKilD,GACvB,MAAM99B,EAAO,CACX3nB,QACAQ,OAEF,IAAK,MAAMpQ,KAAQq1D,EACjB99B,EAAKv3B,GAAQq1D,EAAUr1D,GAEzB,OAAOO,KAAKujC,QAAQvM,EACtB,CACA,WAAA+9B,CAAYD,GACV,OAAO90D,KAAKujC,QAAQuxB,EACtB,CACA,OAAAvxB,CAAQvM,GACN,MAAMg+B,EAAM,IAAIxxB,eACVyxB,EAAQj1D,KAAK20D,YACbO,EAAiBl1D,KAAK40D,gBAAgBK,GAAS,CACnDD,OAEFA,EAAIvxB,KAAK,MAAOzjC,KAAKjU,KACrBipE,EAAI3rD,gBAAkBrJ,KAAKqJ,gBAC3B,IAAK,MAAMgpC,KAAYryC,KAAKoJ,YAAa,CACvC,MAAMlgB,EAAQ8W,KAAKoJ,YAAYipC,QACjB1jD,IAAVzF,GAGJ8rE,EAAIG,iBAAiB9iB,EAAUnpD,EACjC,CAoBA,OAnBI8W,KAAK8xD,QAAU,UAAW96B,GAAQ,QAASA,GAC7Cg+B,EAAIG,iBAAiB,QAAS,SAASn+B,EAAK3nB,SAAS2nB,EAAKnnB,IAAM,KAChEqlD,EAAeE,eA/CY,KAiD3BF,EAAeE,eAlDD,IAoDhBJ,EAAItxB,aAAe,cACf1M,EAAKq+B,UACPL,EAAI3/B,QAAU,SAAU9W,GACtByY,EAAKq+B,QAAQL,EAAIp0D,OACnB,GAEFo0D,EAAIrxB,mBAAqB3jC,KAAKs1D,cAAcn1C,KAAKngB,KAAMi1D,GACvDD,EAAIO,WAAav1D,KAAKuO,WAAW4R,KAAKngB,KAAMi1D,GAC5CC,EAAeM,kBAAoBx+B,EAAKw+B,kBACxCN,EAAeO,OAASz+B,EAAKy+B,OAC7BP,EAAeG,QAAUr+B,EAAKq+B,QAC9BH,EAAe3mD,WAAayoB,EAAKzoB,WACjCymD,EAAIvnD,KAAK,MACFwnD,CACT,CACA,UAAA1mD,CAAW0mD,EAAO12C,GAChB,MAAM22C,EAAiBl1D,KAAK40D,gBAAgBK,GACvCC,GAGLA,EAAe3mD,aAAagQ,EAC9B,CACA,aAAA+2C,CAAcL,EAAO12C,GACnB,MAAM22C,EAAiBl1D,KAAK40D,gBAAgBK,GAC5C,IAAKC,EACH,OAEF,MAAMF,EAAME,EAAeF,IAK3B,GAJIA,EAAIpxB,YAAc,GAAKsxB,EAAeM,oBACxCN,EAAeM,2BACRN,EAAeM,mBAED,IAAnBR,EAAIpxB,WACN,OAEF,KAAMqxB,KAASj1D,KAAK40D,iBAClB,OAGF,UADO50D,KAAK40D,gBAAgBK,GACT,IAAfD,EAAIp0D,QAAgBZ,KAAK8xD,OAE3B,YADAoD,EAAeG,UAAUL,EAAIp0D,QAG/B,MAAM80D,EAAYV,EAAIp0D,QA/FN,IAiGhB,IAjGgB,MAgGqB80D,GA/FR,MA+FqCR,EAAeE,iBAC5CM,IAAcR,EAAeE,eAEhE,YADAF,EAAeG,UAAUL,EAAIp0D,QAG/B,MAAMJ,EAnGV,SAAwBw0D,GACtB,MAAMjvD,EAAOivD,EAAIxgC,SACjB,MAAoB,iBAATzuB,EACFA,GAEF,EAAIqB,EAAMxW,eAAemV,GAAM7U,MACxC,CA6FkB2gE,CAAemD,GAC7B,GArG6B,MAqGzBU,EAAwC,CAC1C,MAAMC,EAAcX,EAAIpC,kBAAkB,iBACpCl7B,EAAU,2BAA2Bb,KAAK8+B,GAChDT,EAAeO,OAAO,CACpBpmD,MAAO6vB,SAASxH,EAAQ,GAAI,IAC5Bl3B,SAEJ,MAAWA,EACT00D,EAAeO,OAAO,CACpBpmD,MAAO,EACP7O,UAGF00D,EAAeG,UAAUL,EAAIp0D,OAEjC,CACA,aAAAg1D,CAAcX,GACZ,OAAOj1D,KAAK40D,gBAAgBK,GAAOD,GACrC,CACA,gBAAAa,CAAiBZ,GACf,OAAOA,KAASj1D,KAAK40D,eACvB,CACA,YAAAkB,CAAab,GACX,MAAMD,EAAMh1D,KAAK40D,gBAAgBK,GAAOD,WACjCh1D,KAAK40D,gBAAgBK,GAC5BD,EAAIllD,OACN,EAqCF/mB,EAAQkkB,iBAnCR,MACE,WAAAhN,CAAY4N,GACV7N,KAAK+1D,QAAUloD,EACf7N,KAAKg2D,SAAW,IAAItB,EAAe7mD,EAAO9hB,IAAK,CAC7Cqd,YAAayE,EAAOzE,YACpBC,gBAAiBwE,EAAOxE,kBAE1BrJ,KAAKsyD,gBAAkBzkD,EAAOrE,eAC9BxJ,KAAK4vD,mBAAqB,KAC1B5vD,KAAK+xD,qBAAuB,EAC9B,CACA,2BAAAkE,CAA4Bh+C,GAC1B,MAAMlqB,EAAIiS,KAAK+xD,qBAAqBxB,QAAQt4C,GACxClqB,GAAK,GACPiS,KAAK+xD,qBAAqB57B,OAAOpoC,EAAG,EAExC,CACA,aAAAuwB,GAGE,OAFA,EAAIlX,EAAM3b,SAASuU,KAAK4vD,mBAAoB,2DAC5C5vD,KAAK4vD,mBAAqB,IAAIsG,EAAkCl2D,KAAKg2D,SAAUh2D,KAAK+1D,SAC7E/1D,KAAK4vD,kBACd,CACA,cAAAtwC,CAAejQ,EAAOQ,GACpB,MAAMoI,EAAS,IAAIk+C,EAAmCn2D,KAAKg2D,SAAU3mD,EAAOQ,GAG5E,OAFAoI,EAAOm+C,SAAWp2D,KAAKi2D,4BAA4B91C,KAAKngB,MACxDA,KAAK+xD,qBAAqBrgE,KAAKumB,GACxBA,CACT,CACA,iBAAAmG,CAAkBpY,GAChBhG,KAAK4vD,oBAAoB92C,OAAO9S,GAChC,IAAK,MAAMiS,KAAUjY,KAAK+xD,qBAAqBjvD,MAAM,GACnDmV,EAAOa,OAAO9S,EAElB,GAGF,MAAMkwD,EACJ,WAAAj2D,CAAYo2D,EAASxoD,GACnB7N,KAAKg2D,SAAWK,EAChB,MAAMr/B,EAAO,CACXw+B,kBAAmBx1D,KAAKs2D,mBAAmBn2C,KAAKngB,MAChDy1D,OAAQz1D,KAAKu2D,QAAQp2C,KAAKngB,MAC1Bq1D,QAASr1D,KAAKw2D,SAASr2C,KAAKngB,MAC5BuO,WAAYvO,KAAK+vD,YAAY5vC,KAAKngB,OAEpCA,KAAKy2D,KAAO5oD,EAAO9hB,IACnBiU,KAAK02D,eAAiBL,EAAQtB,YAAY/9B,GAC1Ch3B,KAAK22D,2BAA6B,IAAIvvD,EAAM3d,kBAC5CuW,KAAKqyD,cAAgBxkD,EAAOnD,eAAgB,EAC5C1K,KAAK2vD,eAAiB9hD,EAAOvhB,OAC7B0T,KAAKsyD,gBAAkBzkD,EAAOrE,eACzBxJ,KAAKsyD,iBAAoBtyD,KAAKqyD,gBACjCryD,KAAKqyD,eAAgB,GAEvBryD,KAAKyvD,uBAAwB,EAC7BzvD,KAAK0vD,mBAAoB,EACzB1vD,KAAK42D,cAAgB,GACrB52D,KAAK8wD,UAAY,GACjB9wD,KAAK4wD,OAAQ,EACb5wD,KAAK62D,kBAAeloE,EACpBqR,KAAK6wD,UAAY,KACjB7wD,KAAKuO,WAAa,IACpB,CACA,kBAAA+nD,GACE,MAAMQ,EAAmB92D,KAAK02D,eACxBK,EAAiB/2D,KAAKg2D,SAASJ,cAAckB,GAC7ClE,EAAoB7yD,GACjBg3D,EAAenE,kBAAkB7yD,IAEpC,mBACJ8yD,EAAkB,gBAClBC,IACE,EAAI3B,EAAe4B,kCAAkC,CACvDH,oBACAd,OAAQ9xD,KAAKg2D,SAASlE,OACtBtoD,eAAgBxJ,KAAKsyD,gBACrB5nD,aAAc1K,KAAKqyD,gBAEjBQ,IACF7yD,KAAK0vD,mBAAoB,GAE3B1vD,KAAK2vD,eAAiBmD,GAAmB9yD,KAAK2vD,eAC9C3vD,KAAK6wD,WAAY,EAAIM,EAAe6B,2BAA2BJ,GAC3D5yD,KAAK0vD,mBACP1vD,KAAKg2D,SAASF,aAAagB,GAE7B92D,KAAK22D,2BAA2B9wD,SAClC,CACA,OAAA0wD,CAAQxwD,GAaN,GAZIA,IACE/F,KAAK8wD,UAAUxkE,OAAS,EACA0T,KAAK8wD,UAAUlnB,QACvB/jC,QAAQ,CACxB3c,MAAO6c,EAAKvF,MACZ8X,MAAM,IAGRtY,KAAK42D,cAAcllE,KAAKqU,EAAKvF,QAGjCR,KAAK4wD,OAAQ,IACT5wD,KAAK42D,cAActqE,OAAS,GAAhC,CAGA,IAAK,MAAM0kE,KAAqBhxD,KAAK8wD,UACnCE,EAAkBnrD,QAAQ,CACxB3c,WAAOyF,EACP2pB,MAAM,IAGVtY,KAAK8wD,UAAUxkE,OAAS,CAPxB,CAQF,CACA,QAAAkqE,CAAS51D,GACPZ,KAAK62D,cAAe,EAAI1F,EAAewB,2BAA2B/xD,EAAQZ,KAAKy2D,MAC/Ez2D,KAAK22D,2BAA2B7wD,OAAO9F,KAAK62D,cAC5C,IAAK,MAAM7F,KAAqBhxD,KAAK8wD,UACnCE,EAAkBlrD,OAAO9F,KAAK62D,cAEhC72D,KAAK8wD,UAAUxkE,OAAS,EACxB0T,KAAK42D,cAActqE,OAAS,CAC9B,CACA,WAAAyjE,CAAYxxC,GACVve,KAAKuO,aAAa,CAChBgB,OAAQgP,EAAIhP,OACZC,MAAO+O,EAAIy4C,iBAAmBz4C,EAAI/O,MAAQxP,KAAK2vD,gBAEnD,CACA,YAAIhvC,GACF,OAAO3gB,KAAK6wD,SACd,CACA,oBAAI1xC,GACF,OAAOnf,KAAK0vD,iBACd,CACA,wBAAIxwC,GACF,OAAOlf,KAAKyvD,qBACd,CACA,iBAAIrwC,GACF,OAAOpf,KAAK2vD,cACd,CACA,gBAAI1wC,GACF,OAAOjf,KAAK22D,2BAA2BhxD,OACzC,CACA,UAAM0S,GACJ,GAAIrY,KAAK62D,aACP,MAAM72D,KAAK62D,aAEb,GAAI72D,KAAK42D,cAActqE,OAAS,EAE9B,MAAO,CACLpD,MAFY8W,KAAK42D,cAAchtB,QAG/BtxB,MAAM,GAGV,GAAItY,KAAK4wD,MACP,MAAO,CACL1nE,WAAOyF,EACP2pB,MAAM,GAGV,MAAM04C,EAAoB,IAAI5pD,EAAM3d,kBAEpC,OADAuW,KAAK8wD,UAAUp/D,KAAKs/D,GACbA,EAAkBrrD,OAC3B,CACA,MAAAmT,CAAO9S,GACLhG,KAAK4wD,OAAQ,EACb5wD,KAAK22D,2BAA2B7wD,OAAOE,GACvC,IAAK,MAAMgrD,KAAqBhxD,KAAK8wD,UACnCE,EAAkBnrD,QAAQ,CACxB3c,WAAOyF,EACP2pB,MAAM,IAGVtY,KAAK8wD,UAAUxkE,OAAS,EACpB0T,KAAKg2D,SAASH,iBAAiB71D,KAAK02D,iBACtC12D,KAAKg2D,SAASF,aAAa91D,KAAK02D,gBAElC12D,KAAK4vD,mBAAqB,IAC5B,EAEF,MAAMuG,EACJ,WAAAl2D,CAAYo2D,EAAShnD,EAAOQ,GAC1B7P,KAAKg2D,SAAWK,EAChB,MAAMr/B,EAAO,CACXy+B,OAAQz1D,KAAKu2D,QAAQp2C,KAAKngB,MAC1Bq1D,QAASr1D,KAAKw2D,SAASr2C,KAAKngB,MAC5BuO,WAAYvO,KAAK+vD,YAAY5vC,KAAKngB,OAEpCA,KAAKy2D,KAAOJ,EAAQtqE,IACpBiU,KAAKi3D,WAAaZ,EAAQxB,aAAaxlD,EAAOQ,EAAKmnB,GACnDh3B,KAAK8wD,UAAY,GACjB9wD,KAAKkxD,aAAe,KACpBlxD,KAAK4wD,OAAQ,EACb5wD,KAAK62D,kBAAeloE,EACpBqR,KAAKuO,WAAa,KAClBvO,KAAKo2D,SAAW,IAClB,CACA,MAAAc,GACEl3D,KAAKo2D,WAAWp2D,KAClB,CACA,OAAAu2D,CAAQxwD,GACN,MAAMvF,EAAQuF,EAAKvF,MACfR,KAAK8wD,UAAUxkE,OAAS,EACA0T,KAAK8wD,UAAUlnB,QACvB/jC,QAAQ,CACxB3c,MAAOsX,EACP8X,MAAM,IAGRtY,KAAKkxD,aAAe1wD,EAEtBR,KAAK4wD,OAAQ,EACb,IAAK,MAAMI,KAAqBhxD,KAAK8wD,UACnCE,EAAkBnrD,QAAQ,CACxB3c,WAAOyF,EACP2pB,MAAM,IAGVtY,KAAK8wD,UAAUxkE,OAAS,EACxB0T,KAAKk3D,QACP,CACA,QAAAV,CAAS51D,GACPZ,KAAK62D,cAAe,EAAI1F,EAAewB,2BAA2B/xD,EAAQZ,KAAKy2D,MAC/E,IAAK,MAAMzF,KAAqBhxD,KAAK8wD,UACnCE,EAAkBlrD,OAAO9F,KAAK62D,cAEhC72D,KAAK8wD,UAAUxkE,OAAS,EACxB0T,KAAKkxD,aAAe,IACtB,CACA,WAAAnB,CAAYxxC,GACLve,KAAKkf,sBACRlf,KAAKuO,aAAa,CAChBgB,OAAQgP,EAAIhP,QAGlB,CACA,wBAAI2P,GACF,OAAO,CACT,CACA,UAAM7G,GACJ,GAAIrY,KAAK62D,aACP,MAAM72D,KAAK62D,aAEb,GAA0B,OAAtB72D,KAAKkxD,aAAuB,CAC9B,MAAM1wD,EAAQR,KAAKkxD,aAEnB,OADAlxD,KAAKkxD,aAAe,KACb,CACLhoE,MAAOsX,EACP8X,MAAM,EAEV,CACA,GAAItY,KAAK4wD,MACP,MAAO,CACL1nE,WAAOyF,EACP2pB,MAAM,GAGV,MAAM04C,EAAoB,IAAI5pD,EAAM3d,kBAEpC,OADAuW,KAAK8wD,UAAUp/D,KAAKs/D,GACbA,EAAkBrrD,OAC3B,CACA,MAAAmT,CAAO9S,GACLhG,KAAK4wD,OAAQ,EACb,IAAK,MAAMI,KAAqBhxD,KAAK8wD,UACnCE,EAAkBnrD,QAAQ,CACxB3c,WAAOyF,EACP2pB,MAAM,IAGVtY,KAAK8wD,UAAUxkE,OAAS,EACpB0T,KAAKg2D,SAASH,iBAAiB71D,KAAKi3D,aACtCj3D,KAAKg2D,SAASF,aAAa91D,KAAKi3D,YAElCj3D,KAAKk3D,QACP,EAGK,EAED,CAAEpuE,EAAyBC,EAASmd,KAI1Cld,OAAOC,eAAeF,EAAS,aAAc,CAC3CG,OAAO,IAETH,EAAQgkB,mBAAgB,EACxB,IAAI3F,EAAQlB,EAAoB,GAC5BirD,EAAiBjrD,EAAoB,IAEzC,MAAMixD,EAAe,0BAgDrBpuE,EAAQgkB,cAjCR,MACE,WAAA9M,CAAY4N,GACV7N,KAAK6N,OAASA,EACd7N,KAAKjU,IAjBT,SAAkBqrE,GAChB,MAAMrrE,EAAM,oBAAQ,OACdsrE,EAAYtrE,EAAIkvC,MAAMm8B,GAC5B,MAA2B,UAAvBC,EAAU1qE,UAAwB0qE,EAAUC,KACvCD,EAEL,gBAAgBj4B,KAAKg4B,GAChBrrE,EAAIkvC,MAAM,WAAWm8B,MAEzBC,EAAUC,OACbD,EAAU1qE,SAAW,SAEhB0qE,EACT,CAIeE,CAAS1pD,EAAO9hB,KAC3BiU,KAAK8xD,OAA+B,UAAtB9xD,KAAKjU,IAAIY,UAA8C,WAAtBqT,KAAKjU,IAAIY,SACxDqT,KAAKw3D,QAAgC,UAAtBx3D,KAAKjU,IAAIY,SACxBqT,KAAKoJ,YAAcpJ,KAAK8xD,QAAUjkD,EAAOzE,aAAe,CAAC,EACzDpJ,KAAK4vD,mBAAqB,KAC1B5vD,KAAK+xD,qBAAuB,EAC9B,CACA,0BAAI3B,GACF,OAAOpwD,KAAK4vD,oBAAoBS,SAAW,CAC7C,CACA,aAAA/xC,GAGE,OAFA,EAAIlX,EAAM3b,SAASuU,KAAK4vD,mBAAoB,wDAC5C5vD,KAAK4vD,mBAAqB5vD,KAAKw3D,QAAU,IAAIC,EAA0Bz3D,MAAQ,IAAI03D,EAAwB13D,MACpGA,KAAK4vD,kBACd,CACA,cAAAtwC,CAAekiB,EAAO3xB,GACpB,GAAIA,GAAO7P,KAAKowD,uBACd,OAAO,KAET,MAAM/wC,EAAcrf,KAAKw3D,QAAU,IAAIG,EAA2B33D,KAAMwhC,EAAO3xB,GAAO,IAAI+nD,EAAyB53D,KAAMwhC,EAAO3xB,GAEhI,OADA7P,KAAK+xD,qBAAqBrgE,KAAK2tB,GACxBA,CACT,CACA,iBAAAjB,CAAkBpY,GAChBhG,KAAK4vD,oBAAoB92C,OAAO9S,GAChC,IAAK,MAAMiS,KAAUjY,KAAK+xD,qBAAqBjvD,MAAM,GACnDmV,EAAOa,OAAO9S,EAElB,GAGF,MAAM6xD,EACJ,WAAA53D,CAAYmsD,GACVpsD,KAAKy2D,KAAOrK,EAAOrgE,IACnBiU,KAAK4wD,OAAQ,EACb5wD,KAAK62D,aAAe,KACpB72D,KAAKuO,WAAa,KAClB,MAAMV,EAASu+C,EAAOv+C,OACtB7N,KAAK2vD,eAAiB9hD,EAAOvhB,OAC7B0T,KAAKqwD,QAAU,EACfrwD,KAAK6wD,UAAY,KACjB7wD,KAAKqyD,cAAgBxkD,EAAOnD,eAAgB,EAC5C1K,KAAKsyD,gBAAkBzkD,EAAOrE,eACzBxJ,KAAKsyD,iBAAoBtyD,KAAKqyD,gBACjCryD,KAAKqyD,eAAgB,GAEvBryD,KAAKyvD,uBAAyB5hD,EAAOlD,cACrC3K,KAAK0vD,mBAAqB7hD,EAAOnD,aACjC1K,KAAK83D,gBAAkB,KACvB93D,KAAKizD,gBAAkB,IAAI7rD,EAAM3d,kBACjCuW,KAAKoyD,mBAAqB,IAAIhrD,EAAM3d,iBACtC,CACA,gBAAIw1B,GACF,OAAOjf,KAAKoyD,mBAAmBzsD,OACjC,CACA,YAAIgb,GACF,OAAO3gB,KAAK6wD,SACd,CACA,iBAAIzxC,GACF,OAAOpf,KAAK2vD,cACd,CACA,oBAAIxwC,GACF,OAAOnf,KAAK0vD,iBACd,CACA,wBAAIxwC,GACF,OAAOlf,KAAKyvD,qBACd,CACA,UAAMp3C,GAEJ,SADMrY,KAAKizD,gBAAgBttD,QACvB3F,KAAK4wD,MACP,MAAO,CACL1nE,WAAOyF,EACP2pB,MAAM,GAGV,GAAItY,KAAK62D,aACP,MAAM72D,KAAK62D,aAEb,MAAMr2D,EAAQR,KAAK83D,gBAAgBz/C,OACnC,OAAc,OAAV7X,GACFR,KAAKizD,gBAAkB,IAAI7rD,EAAM3d,kBAC1BuW,KAAKqY,SAEdrY,KAAKqwD,SAAW7vD,EAAMlU,OACtB0T,KAAKuO,aAAa,CAChBgB,OAAQvP,KAAKqwD,QACb7gD,MAAOxP,KAAK2vD,iBAGP,CACLzmE,MAFa,IAAI2E,WAAW2S,GAAOtP,OAGnConB,MAAM,GAEV,CACA,MAAAQ,CAAO9S,GACAhG,KAAK83D,gBAIV93D,KAAK83D,gBAAgBtpD,QAAQxI,GAH3BhG,KAAK+3D,OAAO/xD,EAIhB,CACA,MAAA+xD,CAAO/xD,GACLhG,KAAK62D,aAAe7wD,EACpBhG,KAAKizD,gBAAgBptD,SACvB,CACA,kBAAAmyD,CAAmBhgD,GACjBhY,KAAK83D,gBAAkB9/C,EACvBA,EAAe8D,GAAG,YAAY,KAC5B9b,KAAKizD,gBAAgBptD,SAAS,IAEhCmS,EAAe8D,GAAG,OAAO,KACvB9D,EAAexJ,UACfxO,KAAK4wD,OAAQ,EACb5wD,KAAKizD,gBAAgBptD,SAAS,IAEhCmS,EAAe8D,GAAG,SAAS9V,IACzBhG,KAAK+3D,OAAO/xD,EAAO,KAEhBhG,KAAKyvD,uBAAyBzvD,KAAK0vD,mBACtC1vD,KAAK+3D,OAAO,IAAI3wD,EAAM5b,eAAe,0BAEnCwU,KAAK62D,cACP72D,KAAK83D,gBAAgBtpD,QAAQxO,KAAK62D,aAEtC,EAEF,MAAMoB,EACJ,WAAAh4D,CAAYmsD,GACVpsD,KAAKy2D,KAAOrK,EAAOrgE,IACnBiU,KAAK4wD,OAAQ,EACb5wD,KAAK62D,aAAe,KACpB72D,KAAKuO,WAAa,KAClBvO,KAAKqwD,QAAU,EACfrwD,KAAK83D,gBAAkB,KACvB93D,KAAKizD,gBAAkB,IAAI7rD,EAAM3d,kBACjC,MAAMokB,EAASu+C,EAAOv+C,OACtB7N,KAAKyvD,uBAAyB5hD,EAAOlD,aACvC,CACA,wBAAIuU,GACF,OAAOlf,KAAKyvD,qBACd,CACA,UAAMp3C,GAEJ,SADMrY,KAAKizD,gBAAgBttD,QACvB3F,KAAK4wD,MACP,MAAO,CACL1nE,WAAOyF,EACP2pB,MAAM,GAGV,GAAItY,KAAK62D,aACP,MAAM72D,KAAK62D,aAEb,MAAMr2D,EAAQR,KAAK83D,gBAAgBz/C,OACnC,OAAc,OAAV7X,GACFR,KAAKizD,gBAAkB,IAAI7rD,EAAM3d,kBAC1BuW,KAAKqY,SAEdrY,KAAKqwD,SAAW7vD,EAAMlU,OACtB0T,KAAKuO,aAAa,CAChBgB,OAAQvP,KAAKqwD,UAGR,CACLnnE,MAFa,IAAI2E,WAAW2S,GAAOtP,OAGnConB,MAAM,GAEV,CACA,MAAAQ,CAAO9S,GACAhG,KAAK83D,gBAIV93D,KAAK83D,gBAAgBtpD,QAAQxI,GAH3BhG,KAAK+3D,OAAO/xD,EAIhB,CACA,MAAA+xD,CAAO/xD,GACLhG,KAAK62D,aAAe7wD,EACpBhG,KAAKizD,gBAAgBptD,SACvB,CACA,kBAAAmyD,CAAmBhgD,GACjBhY,KAAK83D,gBAAkB9/C,EACvBA,EAAe8D,GAAG,YAAY,KAC5B9b,KAAKizD,gBAAgBptD,SAAS,IAEhCmS,EAAe8D,GAAG,OAAO,KACvB9D,EAAexJ,UACfxO,KAAK4wD,OAAQ,EACb5wD,KAAKizD,gBAAgBptD,SAAS,IAEhCmS,EAAe8D,GAAG,SAAS9V,IACzBhG,KAAK+3D,OAAO/xD,EAAO,IAEjBhG,KAAK62D,cACP72D,KAAK83D,gBAAgBtpD,QAAQxO,KAAK62D,aAEtC,EAEF,SAASqB,EAAqBb,EAAWhG,GACvC,MAAO,CACL1kE,SAAU0qE,EAAU1qE,SACpBwrE,KAAMd,EAAUc,KAChBb,KAAMD,EAAUe,SAChB1sD,KAAM2rD,EAAU3rD,KAChB0xC,KAAMia,EAAUja,KAChBmU,OAAQ,MACRF,UAEJ,CACA,MAAMqG,UAAgCG,EACpC,WAAA53D,CAAYmsD,GACV1rD,MAAM0rD,GACN,MAAMiM,EAAiB7jC,IACrB,GAA4B,MAAxBA,EAAS8jC,WAAoB,CAC/B,MAAMriD,EAAQ,IAAI7O,EAAMrd,oBAAoB,gBAAgBiW,KAAKy2D,UAGjE,OAFAz2D,KAAK62D,aAAe5gD,OACpBjW,KAAKoyD,mBAAmBtsD,OAAOmQ,EAEjC,CACAjW,KAAKoyD,mBAAmBvsD,UACxB7F,KAAKg4D,mBAAmBxjC,GACxB,MAAMo+B,EAAoB7yD,GACjBC,KAAK83D,gBAAgBzG,QAAQtxD,EAAKqlC,gBAErC,mBACJytB,EAAkB,gBAClBC,IACE,EAAI3B,EAAe4B,kCAAkC,CACvDH,oBACAd,OAAQ1F,EAAO0F,OACftoD,eAAgBxJ,KAAKsyD,gBACrB5nD,aAAc1K,KAAKqyD,gBAErBryD,KAAK0vD,kBAAoBmD,EACzB7yD,KAAK2vD,eAAiBmD,GAAmB9yD,KAAK2vD,eAC9C3vD,KAAK6wD,WAAY,EAAIM,EAAe6B,2BAA2BJ,EAAkB,EAGnF,GADA5yD,KAAKu4D,SAAW,KACW,UAAvBv4D,KAAKy2D,KAAK9pE,SAAsB,CAClC,MAAM6rE,EAAO,oBAAQ,OACrBx4D,KAAKu4D,SAAWC,EAAKj1B,QAAQ20B,EAAqBl4D,KAAKy2D,KAAMrK,EAAOhjD,aAAcivD,EACpF,KAAO,CACL,MAAMI,EAAQ,oBAAQ,OACtBz4D,KAAKu4D,SAAWE,EAAMl1B,QAAQ20B,EAAqBl4D,KAAKy2D,KAAMrK,EAAOhjD,aAAcivD,EACrF,CACAr4D,KAAKu4D,SAASz8C,GAAG,SAAS9V,IACxBhG,KAAK62D,aAAe7wD,EACpBhG,KAAKoyD,mBAAmBtsD,OAAOE,EAAO,IAExChG,KAAKu4D,SAAS1oD,KAChB,EAEF,MAAM+nD,UAAiCK,EACrC,WAAAh4D,CAAYmsD,EAAQ5qB,EAAO3xB,GACzBnP,MAAM0rD,GACNpsD,KAAK04D,aAAe,CAAC,EACrB,IAAK,MAAMrmB,KAAY+Z,EAAOhjD,YAAa,CACzC,MAAMlgB,EAAQkjE,EAAOhjD,YAAYipC,QACnB1jD,IAAVzF,IAGJ8W,KAAK04D,aAAarmB,GAAYnpD,EAChC,CACA8W,KAAK04D,aAAaC,MAAQ,SAASn3B,KAAS3xB,EAAM,IAClD,MAAMwoD,EAAiB7jC,IACrB,GAA4B,MAAxBA,EAAS8jC,WAKbt4D,KAAKg4D,mBAAmBxjC,OALxB,CACE,MAAMve,EAAQ,IAAI7O,EAAMrd,oBAAoB,gBAAgBiW,KAAKy2D,UACjEz2D,KAAK62D,aAAe5gD,CAEtB,CACiC,EAGnC,GADAjW,KAAKu4D,SAAW,KACW,UAAvBv4D,KAAKy2D,KAAK9pE,SAAsB,CAClC,MAAM6rE,EAAO,oBAAQ,OACrBx4D,KAAKu4D,SAAWC,EAAKj1B,QAAQ20B,EAAqBl4D,KAAKy2D,KAAMz2D,KAAK04D,cAAeL,EACnF,KAAO,CACL,MAAMI,EAAQ,oBAAQ,OACtBz4D,KAAKu4D,SAAWE,EAAMl1B,QAAQ20B,EAAqBl4D,KAAKy2D,KAAMz2D,KAAK04D,cAAeL,EACpF,CACAr4D,KAAKu4D,SAASz8C,GAAG,SAAS9V,IACxBhG,KAAK62D,aAAe7wD,CAAM,IAE5BhG,KAAKu4D,SAAS1oD,KAChB,EAEF,MAAM4nD,UAAkCI,EACtC,WAAA53D,CAAYmsD,GACV1rD,MAAM0rD,GACN,IAAIhP,EAAO33C,mBAAmBzF,KAAKy2D,KAAKrZ,MACpC+Z,EAAa/3B,KAAKp/B,KAAKy2D,KAAKzoD,QAC9BovC,EAAOA,EAAKviC,QAAQ,MAAO,KAE7B,MAAM+9C,EAAK,oBAAQ,OACnBA,EAAGC,MAAMzb,GAAM,CAACnnC,EAAO6iD,KACrB,GAAI7iD,EAMF,MALmB,WAAfA,EAAM1kB,OACR0kB,EAAQ,IAAI7O,EAAMrd,oBAAoB,gBAAgBqzD,QAExDp9C,KAAK62D,aAAe5gD,OACpBjW,KAAKoyD,mBAAmBtsD,OAAOmQ,GAGjCjW,KAAK2vD,eAAiBmJ,EAAKphD,KAC3B1X,KAAKg4D,mBAAmBY,EAAGG,iBAAiB3b,IAC5Cp9C,KAAKoyD,mBAAmBvsD,SAAS,GAErC,EAEF,MAAM8xD,UAAmCM,EACvC,WAAAh4D,CAAYmsD,EAAQ5qB,EAAO3xB,GACzBnP,MAAM0rD,GACN,IAAIhP,EAAO33C,mBAAmBzF,KAAKy2D,KAAKrZ,MACpC+Z,EAAa/3B,KAAKp/B,KAAKy2D,KAAKzoD,QAC9BovC,EAAOA,EAAKviC,QAAQ,MAAO,KAE7B,MAAM+9C,EAAK,oBAAQ,OACnB54D,KAAKg4D,mBAAmBY,EAAGG,iBAAiB3b,EAAM,CAChD5b,QACA3xB,IAAKA,EAAM,IAEf,EAGK,EAED,CAAE/mB,EAAyBC,EAASmd,KAI1Cld,OAAOC,eAAeF,EAAS,aAAc,CAC3CG,OAAO,IAETH,EAAQie,iBAAc,EACtB,IAAIM,EAAiBpB,EAAoB,GACrCkB,EAAQlB,EAAoB,GAEhC,MAAM8yD,EAEQ,SAFRA,EAGO,UAIP9kB,EAAkB,CAAC,OAAQ,QAAS,UACpCC,EAAmB,CAAC,QAAS,QAAS,SACtC94B,EAAkB,SAAUtV,EAAMkzD,EAAc,GAAIC,GAAkB,GAC1E,GAAIxsE,IAAI2uB,iBAAmC,oBAATC,OAAyB49C,EACzD,OAAOxsE,IAAI2uB,gBAAgB,IAAIC,KAAK,CAACvV,GAAO,CAC1C5T,KAAM8mE,KAGV,MAAME,EAAS,oEACf,IAAIjoE,EAAS,QAAQ+nE,YACrB,IAAK,IAAIlrE,EAAI,EAAGiB,EAAK+W,EAAKzZ,OAAQyB,EAAIiB,EAAIjB,GAAK,EAAG,CAChD,MAAMqrE,EAAe,IAAVrzD,EAAKhY,GACVsrE,EAAmB,IAAdtzD,EAAKhY,EAAI,GACdurE,EAAmB,IAAdvzD,EAAKhY,EAAI,GAKpBmD,GAAUioE,EAJCC,GAAM,GAIMD,GAHV,EAALC,IAAW,EAAIC,GAAM,GAGOF,EAFzBprE,EAAI,EAAIiB,GAAW,GAALqqE,IAAa,EAAIC,GAAM,EAAI,IAEHH,EADtCprE,EAAI,EAAIiB,EAAU,GAALsqE,EAAY,GAEtC,CACA,OAAOpoE,CACT,EACMqoE,EAAsB,WAC1B,MAAMC,EAAa,IAAI3rE,WAAW,CAAC,IAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,KAEvE4rE,EAAW,IAAIvW,WAAW,KAChC,IAAK,IAAIn1D,EAAI,EAAGA,EAAI,IAAKA,IAAK,CAC5B,IAAIuV,EAAIvV,EACR,IAAK,IAAIqgC,EAAI,EAAGA,EAAI,EAAGA,IACrB9qB,EAAQ,EAAJA,EAAQ,WAAaA,GAAK,EAAI,WAAaA,GAAK,EAAI,WAE1Dm2D,EAAS1rE,GAAKuV,CAChB,CAUA,SAASo2D,EAAcvnE,EAAM4rC,EAAMh4B,EAAMkkC,GACvC,IAAIxnC,EAAIwnC,EACR,MAAM0vB,EAAM57B,EAAKzxC,OACjByZ,EAAKtD,GAAKk3D,GAAO,GAAK,IACtB5zD,EAAKtD,EAAI,GAAKk3D,GAAO,GAAK,IAC1B5zD,EAAKtD,EAAI,GAAKk3D,GAAO,EAAI,IACzB5zD,EAAKtD,EAAI,GAAW,IAANk3D,EACdl3D,GAAK,EACLsD,EAAKtD,GAA0B,IAArBtQ,EAAKV,WAAW,GAC1BsU,EAAKtD,EAAI,GAA0B,IAArBtQ,EAAKV,WAAW,GAC9BsU,EAAKtD,EAAI,GAA0B,IAArBtQ,EAAKV,WAAW,GAC9BsU,EAAKtD,EAAI,GAA0B,IAArBtQ,EAAKV,WAAW,GAC9BgR,GAAK,EACLsD,EAAKsP,IAAI0oB,EAAMt7B,GACfA,GAAKs7B,EAAKzxC,OACV,MAAMstE,EAxBR,SAAe7zD,EAAMy7B,EAAO3xB,GAC1B,IAAI+pD,GAAO,EACX,IAAK,IAAI7rE,EAAIyzC,EAAOzzC,EAAI8hB,EAAK9hB,IAAK,CAChC,MAAMsV,EAAsB,KAAjBu2D,EAAM7zD,EAAKhY,IAEtB6rE,EAAMA,IAAQ,EADJH,EAASp2D,EAErB,CACA,OAAOu2D,CACT,CAgBcC,CAAM9zD,EAAMkkC,EAAS,EAAGxnC,GACpCsD,EAAKtD,GAAKm3D,GAAO,GAAK,IACtB7zD,EAAKtD,EAAI,GAAKm3D,GAAO,GAAK,IAC1B7zD,EAAKtD,EAAI,GAAKm3D,GAAO,EAAI,IACzB7zD,EAAKtD,EAAI,GAAW,IAANm3D,CAChB,CAyBA,SAASE,EAAwBC,GAC/B,IAAIJ,EAAMI,EAASztE,OACnB,MAAM0tE,EAAiB,MACjBC,EAAgBjsE,KAAK4pD,KAAK+hB,EAAMK,GAChCE,EAAO,IAAIrsE,WAAW,EAAI8rE,EAAsB,EAAhBM,EAAoB,GAC1D,IAAIE,EAAK,EACTD,EAAKC,KAAQ,IACbD,EAAKC,KAAQ,IACb,IAAIpX,EAAM,EACV,KAAO4W,EAAMK,GACXE,EAAKC,KAAQ,EACbD,EAAKC,KAAQ,IACbD,EAAKC,KAAQ,IACbD,EAAKC,KAAQ,EACbD,EAAKC,KAAQ,EACbD,EAAK7kD,IAAI0kD,EAASt5D,SAASsiD,EAAKA,EAAMiX,GAAiBG,GACvDA,GAAMH,EACNjX,GAAOiX,EACPL,GAAOK,EAETE,EAAKC,KAAQ,EACbD,EAAKC,KAAc,IAANR,EACbO,EAAKC,KAAQR,GAAO,EAAI,IACxBO,EAAKC,KAAe,KAANR,EACdO,EAAKC,MAAgB,OAANR,IAAiB,EAAI,IACpCO,EAAK7kD,IAAI0kD,EAASt5D,SAASsiD,GAAMoX,GACjCA,GAAMJ,EAASztE,OAASy2D,EACxB,MAAMqX,EAnDR,SAAiBr0D,EAAMy7B,EAAO3xB,GAC5B,IAAIxM,EAAI,EACJnB,EAAI,EACR,IAAK,IAAInU,EAgDuB,EAhDZA,EAAI8hB,IAAO9hB,EAC7BsV,GAAKA,GAAe,IAAV0C,EAAKhY,KAAc,MAC7BmU,GAAKA,EAAImB,GAAK,MAEhB,OAAOnB,GAAK,GAAKmB,CACnB,CA2CgBg3D,CAAQN,EAAU,EAAGA,EAASztE,QAK5C,OAJA4tE,EAAKC,KAAQC,GAAS,GAAK,IAC3BF,EAAKC,KAAQC,GAAS,GAAK,IAC3BF,EAAKC,KAAQC,GAAS,EAAI,IAC1BF,EAAKC,KAAgB,IAARC,EACNF,CACT,CAyDA,OAAO,SAA6B7pB,EAAS6oB,EAAiBoB,GAE5D,OA1DF,SAAgBjqB,EAASa,EAAMgoB,EAAiBoB,GAC9C,MAAM95C,EAAQ6vB,EAAQ7vB,MAChBC,EAAS4vB,EAAQ5vB,OACvB,IAAI85C,EAAUC,EAAW1X,EACzB,MAAM3iD,EAAQkwC,EAAQtqC,KACtB,OAAQmrC,GACN,KAAK9pC,EAAMhd,UAAUyK,eACnB2lE,EAAY,EACZD,EAAW,EACXzX,EAAWtiC,EAAQ,GAAK,EACxB,MACF,KAAKpZ,EAAMhd,UAAU0K,UACnB0lE,EAAY,EACZD,EAAW,EACXzX,EAAmB,EAARtiC,EACX,MACF,KAAKpZ,EAAMhd,UAAU2K,WACnBylE,EAAY,EACZD,EAAW,EACXzX,EAAmB,EAARtiC,EACX,MACF,QACE,MAAM,IAAIhhB,MAAM,kBAEpB,MAAMu6D,EAAW,IAAIlsE,YAAY,EAAIi1D,GAAYriC,GACjD,IAAIg6C,EAAiB,EACnBC,EAAc,EAChB,IAAK,IAAIj0C,EAAI,EAAGA,EAAIhG,IAAUgG,EAC5BszC,EAASU,KAAoB,EAC7BV,EAAS1kD,IAAIlV,EAAMM,SAASi6D,EAAaA,EAAc5X,GAAW2X,GAClEC,GAAe5X,EACf2X,GAAkB3X,EAEpB,GAAI5R,IAAS9pC,EAAMhd,UAAUyK,gBAAkBylE,EAAQ,CACrDG,EAAiB,EACjB,IAAK,IAAIh0C,EAAI,EAAGA,EAAIhG,EAAQgG,IAAK,CAC/Bg0C,IACA,IAAK,IAAI1sE,EAAI,EAAGA,EAAI+0D,EAAU/0D,IAC5BgsE,EAASU,MAAqB,GAElC,CACF,CACA,MAAME,EAAO,IAAI9sE,WAAW,CAAC2yB,GAAS,GAAK,IAAMA,GAAS,GAAK,IAAMA,GAAS,EAAI,IAAc,IAARA,EAAcC,GAAU,GAAK,IAAMA,GAAU,GAAK,IAAMA,GAAU,EAAI,IAAe,IAATA,EAAe85C,EAAUC,EAAW,EAAM,EAAM,IAC9MN,EA5FR,SAAqBH,GACnB,IAAK3yD,EAAMnY,SACT,OAAO6qE,EAAwBC,GAEjC,IACE,MAAMj0B,EAAQ5G,SAASntC,QAAQC,SAAS4oE,OAAS,EAAIb,EAAW5rD,OAAO0sD,KAAKd,GACtEe,EAAS,sCAA4Bh1B,EAAO,CAChDz1C,MAAO,IAET,OAAOyqE,aAAkBjtE,WAAaitE,EAAS,IAAIjtE,WAAWitE,EAChE,CAAE,MAAOlqC,IACP,EAAIxpB,EAAM/V,MAAM,gEAAkEu/B,EACpF,CACA,OAAOkpC,EAAwBC,EACjC,CA8EegB,CAAYhB,GACnBiB,EAAYxB,EAAWltE,OAAS2uE,GAAyBN,EAAKruE,OAAS4tE,EAAK5tE,OAC5EyZ,EAAO,IAAIlY,WAAWmtE,GAC5B,IAAI/wB,EAAS,EAQb,OAPAlkC,EAAKsP,IAAImkD,EAAYvvB,GACrBA,GAAUuvB,EAAWltE,OACrBotE,EAAc,OAAQiB,EAAM50D,EAAMkkC,GAClCA,GAnJyB,GAmJM0wB,EAAKruE,OACpCotE,EAAc,QAASQ,EAAMn0D,EAAMkkC,GACnCA,GArJyB,GAqJMiwB,EAAK5tE,OACpCotE,EAAc,OAAQ,IAAI7rE,WAAW,GAAIkY,EAAMkkC,GACxC5uB,EAAgBtV,EAAM,YAAamzD,EAC5C,CAGSgC,CAAO7qB,OADgB1hD,IAAjB0hD,EAAQa,KAAqB9pC,EAAMhd,UAAUyK,eAAiBw7C,EAAQa,KACtDgoB,EAAiBoB,EAChD,CACF,CA/J4B,GAgK5B,MAAMa,EACJ,WAAAl7D,GACED,KAAK2tC,cAAgB,EACrB3tC,KAAKkrC,WAAa8tB,EAClBh5D,KAAK0tC,SAAW,EAChB1tC,KAAK4tC,WAAaxmC,EAAM/c,gBACxB2V,KAAK8tC,WAAa1mC,EAAM5c,qBACxBwV,KAAK+tC,QAAU,EACf/tC,KAAKquC,kBAAoBjnC,EAAM7d,kBAAkB4K,KACjD6L,KAAK6tC,gBAAkB,EACvB7tC,KAAKwmB,EAAI,EACTxmB,KAAKymB,EAAI,EACTzmB,KAAKguC,MAAQ,EACbhuC,KAAKiuC,MAAQ,EACbjuC,KAAKkuC,YAAc,EACnBluC,KAAKmuC,YAAc,EACnBnuC,KAAKouC,WAAa,EAClBpuC,KAAKsuC,SAAW,EAChBtuC,KAAKuuC,UAAYyqB,EACjBh5D,KAAKwuC,YAAc,UACnBxuC,KAAK0uC,UAAY,EACjB1uC,KAAK2uC,YAAc,EACnB3uC,KAAK4uC,UAAY,EACjB5uC,KAAK+yC,SAAW,GAChB/yC,KAAK8yC,QAAU,GACf9yC,KAAKgzC,WAAa,EAClBhzC,KAAKi5C,UAAY,GACjBj5C,KAAKk5C,UAAY,EACjBl5C,KAAKo7D,aAAe,GACpBp7D,KAAKq7D,cAAgB,KACrBr7D,KAAKs7D,UAAY,KACjBt7D,KAAKu7D,OAAS,EAChB,CACA,KAAA12C,GACE,OAAO77B,OAAOgH,OAAOgQ,KACvB,CACA,eAAAivC,CAAgBzoB,EAAGC,GACjBzmB,KAAKwmB,EAAIA,EACTxmB,KAAKymB,EAAIA,CACX,EAwBF,SAAS+0C,EAAGtyE,GACV,GAAIoH,OAAOC,UAAUrH,GACnB,OAAOA,EAAM+D,WAEf,MAAMk9C,EAAIjhD,EAAM2hC,QAAQ,IACxB,IAAI98B,EAAIo8C,EAAE79C,OAAS,EACnB,GAAa,MAAT69C,EAAEp8C,GACJ,OAAOo8C,EAET,GACEp8C,UACgB,MAATo8C,EAAEp8C,IACX,OAAOo8C,EAAE3L,UAAU,EAAY,MAAT2L,EAAEp8C,GAAaA,EAAIA,EAAI,EAC/C,CACA,SAAS0tE,EAAG/4D,GACV,GAAa,IAATA,EAAE,IAAqB,IAATA,EAAE,GAAU,CAC5B,GAAa,IAATA,EAAE,IAAqB,IAATA,EAAE,GAClB,OAAa,IAATA,EAAE,IAAqB,IAATA,EAAE,GACX,GAEF,SAAS84D,EAAG94D,EAAE,OAAO84D,EAAG94D,EAAE,OAEnC,GAAIA,EAAE,KAAOA,EAAE,IAAMA,EAAE,MAAQA,EAAE,GAE/B,MAAO,UAAU84D,EADW,IAAlBxtE,KAAK0tE,KAAKh5D,EAAE,IAAY1U,KAAKgL,MAG3C,MAAO,GAAa,IAAT0J,EAAE,IAAqB,IAATA,EAAE,IAAqB,IAATA,EAAE,IAAqB,IAATA,EAAE,GACrD,MAAO,aAAa84D,EAAG94D,EAAE,OAAO84D,EAAG94D,EAAE,OAEvC,MAAO,UAAU84D,EAAG94D,EAAE,OAAO84D,EAAG94D,EAAE,OAAO84D,EAAG94D,EAAE,OAAO84D,EAAG94D,EAAE,OAAO84D,EAAG94D,EAAE,OAAY84D,EAAG94D,EAAE,MACzF,CACA,IAAIi5D,EAAY,EACZC,EAAY,EACZC,EAAe,EAk7BnB9yE,EAAQie,YAj7BR,MACE,WAAA/G,CAAYgT,EAAYC,EAAMgmD,GAAkB,IAC9C,EAAI5xD,EAAe2I,YAAY,gFAC/BjQ,KAAK87D,WAAa,IAAIx0D,EAAes2B,cACrC59B,KAAKyrC,QAAU,IAAI0vB,EACnBn7D,KAAK+7D,gBAAkB30D,EAAM/c,gBAC7B2V,KAAKg8D,eAAiB,GACtBh8D,KAAKi8D,WAAa,GAClBj8D,KAAKiT,WAAaA,EAClBjT,KAAKkT,KAAOA,EACZlT,KAAKy0C,YAAc,KACnBz0C,KAAK00C,eAAgB,EACrB10C,KAAKk8D,YAAa,EAClBl8D,KAAKm8D,cAAgBnzE,OAAOgH,OAAO,MACnCgQ,KAAKo8D,SAAW,KAChBp8D,KAAKk5D,kBAAoBA,EACzBl5D,KAAKq8D,mBAAqB,GAC1B,IAAK,MAAMvX,KAAM19C,EAAMtd,IACrBkW,KAAKq8D,mBAAmBj1D,EAAMtd,IAAIg7D,IAAOA,CAE7C,CACA,SAAA/O,CAAUhwC,EAAMiwC,EAAW,MACzB,MAAoB,iBAATjwC,EACFA,EAAK5Z,WAAW,MAAQ6T,KAAKiT,WAAWrjB,IAAImW,GAAQ/F,KAAKkT,KAAKtjB,IAAImW,GAEpEiwC,CACT,CACA,IAAAz7C,GACEyF,KAAKg8D,eAAetqE,KAAKsO,KAAK+7D,iBAC9B,MAAMzf,EAAMt8C,KAAKyrC,QACjBzrC,KAAKi8D,WAAWvqE,KAAK4qD,GACrBt8C,KAAKyrC,QAAU6Q,EAAIz3B,OACrB,CACA,OAAArqB,GACEwF,KAAK+7D,gBAAkB/7D,KAAKg8D,eAAezf,MAC3Cv8C,KAAKyrC,QAAUzrC,KAAKi8D,WAAW1f,MAC/Bv8C,KAAKy0C,YAAc,KACnBz0C,KAAKs8D,KAAO,IACd,CACA,KAAA5a,CAAM9pC,GACJ5X,KAAKzF,OACLyF,KAAKu8D,cAAc3kD,GACnB5X,KAAKxF,SACP,CACA,gBAAAgiE,CAAiB9mD,GACf,MAAMC,EAAUD,EAAaC,QACvBC,EAAYF,EAAaE,UAC/B,IAAK,IAAI7nB,EAAI,EAAGiB,EAAK2mB,EAAQrpB,OAAQyB,EAAIiB,EAAIjB,IAC3C,GAAI4nB,EAAQ5nB,KAAOqZ,EAAMtd,IAAIgQ,WAG7B,IAAK,MAAM/J,KAAO6lB,EAAU7nB,GAAI,CAC9B,MAAM+oD,EAAW/mD,EAAI5D,WAAW,MAAQ6T,KAAKiT,WAAajT,KAAKkT,KACzDvN,EAAU,IAAIC,SAAQC,IAC1BixC,EAASlnD,IAAIG,EAAK8V,EAAQ,IAE5B7F,KAAKyrC,QAAQ2vB,aAAa1pE,KAAKiU,EACjC,CAEF,OAAOC,QAAQsH,IAAIlN,KAAKyrC,QAAQ2vB,aAClC,CACA,SAAA3gE,CAAU4I,EAAGnB,EAAGoB,EAAGV,EAAGguB,EAAGsN,GACvB,MAAM69B,EAAkB,CAAC14D,EAAGnB,EAAGoB,EAAGV,EAAGguB,EAAGsN,GACxCl+B,KAAK+7D,gBAAkB30D,EAAMhe,KAAKqR,UAAUuF,KAAK+7D,gBAAiBA,GAClE/7D,KAAKs8D,KAAO,IACd,CACA,MAAAG,CAAO/mD,EAAcf,GACnB3U,KAAK2U,SAAWA,EAChB,MAAM+nD,EAAa18D,KAAK6b,YAAYlH,GACpC,OAAO3U,KAAKw8D,iBAAiB9mD,GAActJ,MAAK,KAC9CpM,KAAK+7D,gBAAkB30D,EAAM/c,gBAC7B2V,KAAKu8D,cAAcv8D,KAAK28D,cAAcjnD,IAC/BgnD,IAEX,CACA,aAAAC,CAAcjnD,GACZ,MAAMknD,EAAoB58D,KAAKq8D,mBACzBzmD,EAAYF,EAAaE,UACzBD,EAAUD,EAAaC,QACvBknD,EAAS,GACf,IAAK,IAAI9uE,EAAI,EAAGiB,EAAK2mB,EAAQrpB,OAAQyB,EAAIiB,EAAIjB,IAAK,CAChD,MAAM4oD,EAAOhhC,EAAQ5nB,GACrB8uE,EAAOnrE,KAAK,CACVilD,OACAmmB,GAAIF,EAAkBjmB,GACtB3f,KAAMphB,EAAU7nB,IAEpB,CACA,OAhJJ,SAAsB8uE,GACpB,IAAIE,EAAS,GACb,MAAMnW,EAAM,GACZ,IAAK,MAAMoW,KAAiBH,EACD,SAArBG,EAAcF,GAUO,YAArBE,EAAcF,GAChBC,EAASnW,EAAIrK,MAEbwgB,EAAOrrE,KAAKsrE,IAZZD,EAAOrrE,KAAK,CACVilD,KAAM,GACNmmB,GAAI,QACJllD,MAAO,KAETgvC,EAAIl1D,KAAKqrE,GACTA,EAASA,EAAOpmC,IAAI,GAAG/e,OAS3B,OAAOmlD,CACT,CA2HWE,CAAaJ,EACtB,CACA,aAAAN,CAAcQ,GACZ,IAAK,MAAMG,KAAiBH,EAAQ,CAClC,MAAMD,EAAKI,EAAcJ,GACnBnmB,EAAOumB,EAAcvmB,KACrB3f,EAAOkmC,EAAclmC,KAC3B,OAAe,EAAP2f,GACN,KAAKvvC,EAAMtd,IAAI8R,UACboE,KAAKpE,YACL,MACF,KAAKwL,EAAMtd,IAAIgQ,WACb,MACF,KAAKsN,EAAMtd,IAAImS,WACb+D,KAAK/D,WAAW+6B,GAChB,MACF,KAAK5vB,EAAMtd,IAAIwS,mBACb0D,KAAK1D,mBAAmB06B,EAAK,GAAIA,EAAK,IACtC,MACF,KAAK5vB,EAAMtd,IAAIoS,QACb8D,KAAK9D,QAAQ86B,GACb,MACF,KAAK5vB,EAAMtd,IAAI2S,SAGf,KAAK2K,EAAMtd,IAAI4S,eACbsD,KAAKvD,SAASu6B,EAAK,IACnB,MACF,KAAK5vB,EAAMtd,IAAI+R,QACbmE,KAAKnE,UACL,MACF,KAAKuL,EAAMtd,IAAIuS,SACb2D,KAAK3D,SAAS26B,EAAK,GAAIA,EAAK,IAC5B,MACF,KAAK5vB,EAAMtd,IAAIgS,eACbkE,KAAKlE,eAAek7B,EAAK,IACzB,MACF,KAAK5vB,EAAMtd,IAAIiS,eACbiE,KAAKjE,eAAei7B,EAAK,IACzB,MACF,KAAK5vB,EAAMtd,IAAIkS,UACbgE,KAAKhE,UAAUg7B,EAAK,IACpB,MACF,KAAK5vB,EAAMtd,IAAIyS,cACbyD,KAAKzD,cAAcy6B,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,IACrE,MACF,KAAK5vB,EAAMtd,IAAIsS,YACb4D,KAAK5D,YAAY46B,EAAK,IACtB,MACF,KAAK5vB,EAAMtd,IAAIqS,qBACb6D,KAAK7D,qBAAqB66B,EAAK,IAC/B,MACF,KAAK5vB,EAAMtd,IAAIiQ,aACbiG,KAAKjG,aAAai9B,EAAK,IACvB,MACF,KAAK5vB,EAAMtd,IAAImQ,YACb+F,KAAK/F,YAAY+8B,EAAK,IACtB,MACF,KAAK5vB,EAAMtd,IAAIkQ,WACbgG,KAAKhG,WAAWg9B,EAAK,IACrB,MACF,KAAK5vB,EAAMtd,IAAIoQ,cACb8F,KAAK9F,cAAc88B,EAAK,IACxB,MACF,KAAK5vB,EAAMtd,IAAI0T,gBACbwC,KAAKxC,gBAAgBw5B,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAC5C,MACF,KAAK5vB,EAAMtd,IAAIyT,kBACbyC,KAAKzC,kBAAkBy5B,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAC9C,MACF,KAAK5vB,EAAMtd,IAAIoT,gBACb8C,KAAK9C,gBAAgB85B,GACrB,MACF,KAAK5vB,EAAMtd,IAAIsT,cACb4C,KAAK5C,cAAc45B,GACnB,MACF,KAAK5vB,EAAMtd,IAAI6T,YACbqC,KAAKrC,YAAYq5B,EAAK,IACtB,MACF,KAAK5vB,EAAMtd,IAAIqQ,QACb6F,KAAK7F,QAAQ68B,EAAK,GAAIA,EAAK,IAC3B,MACF,KAAK5vB,EAAMtd,IAAIsQ,mBACb4F,KAAK5F,mBAAmB48B,EAAK,IAC7B,MACF,KAAK5vB,EAAMtd,IAAIuQ,YACb2F,KAAK3F,YAAY28B,EAAK,IACtB,MACF,KAAK5vB,EAAMtd,IAAIwQ,UACb0F,KAAK1F,UAAU08B,EAAK,IACpB,MACF,KAAK5vB,EAAMtd,IAAIqR,KACb6E,KAAK7E,OACL,MACF,KAAKiM,EAAMtd,IAAIsR,OACb4E,KAAK5E,SACL,MACF,KAAKgM,EAAMtd,IAAImR,OACb+E,KAAK/E,SACL,MACF,KAAKmM,EAAMtd,IAAIuR,WACb2E,KAAK3E,aACL,MACF,KAAK+L,EAAMtd,IAAIwR,aACb0E,KAAK1E,eACL,MACF,KAAK8L,EAAMtd,IAAI4R,KACbsE,KAAKtE,KAAK,WACV,MACF,KAAK0L,EAAMtd,IAAI6R,OACbqE,KAAKtE,KAAK,WACV,MACF,KAAK0L,EAAMtd,IAAIsV,yBACbY,KAAKZ,2BACL,MACF,KAAKgI,EAAMtd,IAAIiV,kBACbiB,KAAKjB,kBAAkBi4B,EAAK,IAC5B,MACF,KAAK5vB,EAAMtd,IAAIkV,wBACbgB,KAAKhB,wBAAwBg4B,EAAK,IAClC,MACF,KAAK5vB,EAAMtd,IAAI+U,sBACbmB,KAAKnB,sBAAsBm4B,EAAK,IAChC,MACF,KAAK5vB,EAAMtd,IAAIyU,sBACbyB,KAAKzB,sBAAsBy4B,EAAK,GAAIA,EAAK,IACzC,MACF,KAAK5vB,EAAMtd,IAAI0U,oBACbwB,KAAKxB,sBACL,MACF,KAAK4I,EAAMtd,IAAIiR,UACbiF,KAAKjF,YACL,MACF,KAAKqM,EAAMtd,IAAIoR,YACb8E,KAAK9E,cACL,MACF,KAAKkM,EAAMtd,IAAIyR,gBACbyE,KAAKzE,kBACL,MACF,KAAK6L,EAAMtd,IAAI0R,kBACbwE,KAAKxE,oBACL,MACF,KAAK4L,EAAMtd,IAAI0S,SACbwD,KAAKxD,WACL,MACF,KAAK4K,EAAMtd,IAAI2Q,UACbuF,KAAKvF,UAAUu8B,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,IACjE,MACF,KAAK5vB,EAAMtd,IAAIuV,cACbW,KAAKX,cAAc23B,EAAK,GAAIA,EAAK,IACjC,MACF,KAAK5vB,EAAMtd,IAAI2R,QACbuE,KAAKvE,UACL,MACF,KAAK,GACHuE,KAAK0hD,MAAMwb,EAActlD,OACzB,MACF,SACE,EAAIxQ,EAAM/V,MAAM,0BAA0ByrE,KAGhD,CACF,CACA,cAAA/gE,CAAeoyC,GACbnuC,KAAKyrC,QAAQ0C,YAAcA,CAC7B,CACA,cAAAryC,CAAeoyC,GACbluC,KAAKyrC,QAAQyC,YAAcA,CAC7B,CACA,QAAA1xC,GACEwD,KAAK3D,SAAS,EAAG2D,KAAKyrC,QAAQsC,QAChC,CACA,aAAAxxC,CAAc8G,EAAGnB,EAAGoB,EAAGV,EAAGguB,EAAGsN,GAC3B,MAAMuN,EAAUzrC,KAAKyrC,QACrBA,EAAQmC,WAAanC,EAAQ0xB,WAAa,CAAC95D,EAAGnB,EAAGoB,EAAGV,EAAGguB,EAAGsN,GAC1DuN,EAAQoC,gBAAkB7/C,KAAKihC,MAAM5rB,EAAGnB,GACxCupC,EAAQjlB,EAAIilB,EAAQuC,MAAQ,EAC5BvC,EAAQhlB,EAAIglB,EAAQwC,MAAQ,EAC5BxC,EAAQ2xB,QAAU,GAClB3xB,EAAQ4xB,QAAU,GAClB5xB,EAAQ6xB,MAAQt9D,KAAK87D,WAAWhwC,cAAc,aAC9C2f,EAAQ6xB,MAAMC,eAAe,KAAM,cAAe9xB,EAAQhB,YAC1DgB,EAAQ6xB,MAAMC,eAAe,KAAM,YAAa,GAAG/B,EAAG/vB,EAAQiC,eAC9DjC,EAAQ6xB,MAAMC,eAAe,KAAM,IAAK/B,GAAI/vB,EAAQhlB,IACpDglB,EAAQ+xB,WAAax9D,KAAK87D,WAAWhwC,cAAc,YACnD2f,EAAQ+xB,WAAWxxC,OAAOyf,EAAQ6xB,MACpC,CACA,SAAA1hE,GACE,MAAM6vC,EAAUzrC,KAAKyrC,QACrBA,EAAQjlB,EAAIilB,EAAQuC,MAAQ,EAC5BvC,EAAQhlB,EAAIglB,EAAQwC,MAAQ,EAC5BxC,EAAQmC,WAAaxmC,EAAM/c,gBAC3BohD,EAAQ0xB,WAAa/1D,EAAM/c,gBAC3BohD,EAAQoC,gBAAkB,EAC1BpC,EAAQ6xB,MAAQt9D,KAAK87D,WAAWhwC,cAAc,aAC9C2f,EAAQ+xB,WAAax9D,KAAK87D,WAAWhwC,cAAc,YACnD2f,EAAQgyB,OAASz9D,KAAK87D,WAAWhwC,cAAc,SAC/C2f,EAAQ2xB,QAAU,GAClB3xB,EAAQ4xB,QAAU,EACpB,CACA,QAAAhhE,CAASmqB,EAAGC,GACV,MAAMglB,EAAUzrC,KAAKyrC,QACrBA,EAAQjlB,EAAIilB,EAAQuC,OAASxnB,EAC7BilB,EAAQhlB,EAAIglB,EAAQwC,OAASxnB,EAC7BglB,EAAQ2xB,QAAU,GAClB3xB,EAAQ4xB,QAAU,GAClB5xB,EAAQ6xB,MAAQt9D,KAAK87D,WAAWhwC,cAAc,aAC9C2f,EAAQ6xB,MAAMC,eAAe,KAAM,cAAe9xB,EAAQhB,YAC1DgB,EAAQ6xB,MAAMC,eAAe,KAAM,YAAa,GAAG/B,EAAG/vB,EAAQiC,eAC9DjC,EAAQ6xB,MAAMC,eAAe,KAAM,IAAK/B,GAAI/vB,EAAQhlB,GACtD,CACA,QAAAhqB,CAAS8hD,GACP,MAAM9S,EAAUzrC,KAAKyrC,QACfzrB,EAAOyrB,EAAQzrB,KACf0tB,EAAWjC,EAAQiC,SACzB,GAAiB,IAAbA,EACF,OAEF,MAAMC,EAAgBlC,EAAQkC,cACxBO,EAAczC,EAAQyC,YACtBC,EAAc1C,EAAQ0C,YACtBsP,EAAgBhS,EAAQgS,cACxBrP,EAAa3C,EAAQ2C,WAAaqP,EAClCiB,EAAW1+B,EAAK0+B,SAChBC,EAAaD,EAAW,GAAK,EAC7BE,EAAkB5+B,EAAK4+B,gBACvBC,EAAoBnR,EAAWjC,EAAQqC,WAAW,GACxD,IAAItnB,EAAI,EACR,IAAK,MAAM24B,KAASZ,EAAQ,CAC1B,GAAc,OAAVY,EAAgB,CAClB34B,GAAKi3B,EAAgBtP,EACrB,QACF,CAAO,GAAqB,iBAAVgR,EAAoB,CACpC34B,GAAKm4B,EAAaQ,EAAQzR,EAAW,IACrC,QACF,CACA,MAAM4P,GAAW6B,EAAMG,QAAUnR,EAAc,GAAKD,EAC9C5C,EAAY6T,EAAMI,SACxB,IAAIE,EAASC,EACTl/B,EAAQ2+B,EAAM3+B,MAClB,GAAIk+B,EAAU,CACZ,IAAIkB,EACJ,MAAMD,EAAUR,EAAMQ,SAAWf,EACjCgB,EAAKT,EAAMQ,QAAUA,EAAQ,GAAa,GAARn/B,EAClCo/B,GAAMA,EAAKf,EACX,MAAMgB,EAAKF,EAAQ,GAAKd,EACxBr+B,EAAQm/B,GAAWA,EAAQ,GAAKn/B,EAChCi/B,EAAUG,EAAKjS,EACf+R,GAAWl5B,EAAIq5B,GAAMlS,CACvB,MACE8R,EAAUj5B,EAAImnB,EACd+R,EAAU,GAERP,EAAMe,UAAYlgC,EAAKgpB,eACzByC,EAAQ2xB,QAAQ1rE,KAAK+5C,EAAQjlB,EAAIi5B,GAC7Bf,GACFjT,EAAQ4xB,QAAQ3rE,MAAM+5C,EAAQhlB,EAAIi5B,GAEpCjU,EAAQ6xB,MAAM3lD,aAAe2zB,GAG/B9kB,GADkBk4B,EAAWl+B,EAAQq+B,EAAoBvB,EAAUG,EAAgBj9B,EAAQq+B,EAAoBvB,EAAUG,CAE3H,CACAhS,EAAQ6xB,MAAMC,eAAe,KAAM,IAAK9xB,EAAQ2xB,QAAQttE,IAAI0rE,GAAIhuE,KAAK,MACjEkxD,EACFjT,EAAQ6xB,MAAMC,eAAe,KAAM,IAAK9xB,EAAQ4xB,QAAQvtE,IAAI0rE,GAAIhuE,KAAK,MAErEi+C,EAAQ6xB,MAAMC,eAAe,KAAM,IAAK/B,GAAI/vB,EAAQhlB,IAElDi4B,EACFjT,EAAQhlB,GAAKD,EAEbilB,EAAQjlB,GAAKA,EAAI4nB,EAEnB3C,EAAQ6xB,MAAMC,eAAe,KAAM,cAAe9xB,EAAQhB,YAC1DgB,EAAQ6xB,MAAMC,eAAe,KAAM,YAAa,GAAG/B,EAAG/vB,EAAQiC,eAxoBrD,WAyoBLjC,EAAQiyB,WACVjyB,EAAQ6xB,MAAMC,eAAe,KAAM,aAAc9xB,EAAQiyB,WAEvDjyB,EAAQP,aAAe8tB,GACzBvtB,EAAQ6xB,MAAMC,eAAe,KAAM,cAAe9xB,EAAQP,YAE5D,MAAMiT,EAAiB1S,EAAQ4C,kBAAoBjnC,EAAM7d,kBAAkBoL,iBAa3E,GAZIwpD,IAAmB/2C,EAAM7d,kBAAkB4K,MAAQgqD,IAAmB/2C,EAAM7d,kBAAkB8K,aAC5Fo3C,EAAQ8C,YAAcyqB,GACxBvtB,EAAQ6xB,MAAMC,eAAe,KAAM,OAAQ9xB,EAAQ8C,WAEjD9C,EAAQiD,UAAY,GACtBjD,EAAQ6xB,MAAMC,eAAe,KAAM,eAAgB9xB,EAAQiD,YAEpDjD,EAAQ4C,oBAAsBjnC,EAAM7d,kBAAkBmL,YAC/D+2C,EAAQ6xB,MAAMC,eAAe,KAAM,OAAQ,eAE3C9xB,EAAQ6xB,MAAMC,eAAe,KAAM,OAAQ,QAEzCpf,IAAmB/2C,EAAM7d,kBAAkB6K,QAAU+pD,IAAmB/2C,EAAM7d,kBAAkB8K,YAAa,CAC/G,MAAMspE,EAAiB,GAAKlyB,EAAQoC,iBAAmB,GACvD7tC,KAAK49D,qBAAqBnyB,EAAQ6xB,MAAOK,EAC3C,CACA,IAAI/vB,EAAanC,EAAQmC,WACA,IAArBnC,EAAQ6C,WACVV,EAAaA,EAAW9qC,QACxB8qC,EAAW,IAAMnC,EAAQ6C,UAE3B7C,EAAQ+xB,WAAWD,eAAe,KAAM,YAAa,GAAG9B,EAAG7tB,YAAqB4tB,EAAGptB,WACnF3C,EAAQ+xB,WAAWD,eAlqBR,uCAkqB+B,YAAa,YACvD9xB,EAAQ+xB,WAAWxxC,OAAOyf,EAAQ6xB,OAClC7xB,EAAQgyB,OAAOzxC,OAAOyf,EAAQ+xB,YAC9Bx9D,KAAK69D,wBAAwB7xC,OAAOyf,EAAQ+xB,WAC9C,CACA,kBAAAlhE,CAAmBkqB,EAAGC,GACpBzmB,KAAK/D,YAAYwqB,GACjBzmB,KAAK3D,SAASmqB,EAAGC,EACnB,CACA,YAAAq3C,CAAatgB,GACX,IAAKA,EAAQz3C,KACX,MAAM,IAAIvG,MAAM,qGAEbQ,KAAKo8D,WACRp8D,KAAKo8D,SAAWp8D,KAAK87D,WAAWhwC,cAAc,aAC9C9rB,KAAKo8D,SAASmB,eAAe,KAAM,OAAQ,YAC3Cv9D,KAAK+9D,KAAK/xC,OAAOhsB,KAAKo8D,WAExB,MAAMrwE,EAAMsvB,EAAgBmiC,EAAQz3C,KAAMy3C,EAAQpS,SAAUprC,KAAKk5D,iBACjEl5D,KAAKo8D,SAASzkD,aAAe,8BAA8B6lC,EAAQ/U,yBAA8B18C,SACnG,CACA,OAAAmQ,CAAQyE,GACN,MAAM8qC,EAAUzrC,KAAKyrC,QACf+R,EAAUx9C,KAAKiT,WAAWrjB,IAAI+Q,EAAQ,IAC5C,IAAI+W,EAAO/W,EAAQ,GACnB8qC,EAAQzrB,KAAOw9B,GACXx9C,KAAKk8D,YAAe1e,EAAQxU,aAAgBhpC,KAAKm8D,cAAc3e,EAAQ/U,cACzEzoC,KAAK89D,aAAatgB,GAClBx9C,KAAKm8D,cAAc3e,EAAQ/U,YAAc+U,GAE3C/R,EAAQqC,WAAa0P,EAAQ1P,YAAc1mC,EAAM5c,qBACjD,IAAIqzD,EAAO,SACPL,EAAQhM,MACVqM,EAAO,MACEL,EAAQK,OACjBA,EAAO,QAET,MAAMC,EAASN,EAAQM,OAAS,SAAW,SACvCpmC,EAAO,GACTA,GAAQA,EACR+zB,EAAQgS,eAAiB,GAEzBhS,EAAQgS,cAAgB,EAE1BhS,EAAQiC,SAAWh2B,EACnB+zB,EAAQhB,WAAa+S,EAAQ/U,WAC7BgD,EAAQP,WAAa2S,EACrBpS,EAAQiyB,UAAY5f,EACpBrS,EAAQ6xB,MAAQt9D,KAAK87D,WAAWhwC,cAAc,aAC9C2f,EAAQ6xB,MAAMC,eAAe,KAAM,IAAK/B,GAAI/vB,EAAQhlB,IACpDglB,EAAQ2xB,QAAU,GAClB3xB,EAAQ4xB,QAAU,EACpB,CACA,OAAAxhE,GACE,MAAM4vC,EAAUzrC,KAAKyrC,QACjBA,EAAQ4C,kBAAoBjnC,EAAM7d,kBAAkBqL,kBAAoB62C,EAAQ+xB,YAAYQ,kBAC9FvyB,EAAQlY,QAAUkY,EAAQ+xB,WAC1Bx9D,KAAKtE,KAAK,WACVsE,KAAKvE,UAET,CACA,YAAA1B,CAAaymB,GACPA,EAAQ,IACVxgB,KAAKyrC,QAAQmD,UAAYpuB,EAE7B,CACA,UAAAxmB,CAAW2tB,GACT3nB,KAAKyrC,QAAQqH,QAAUoB,EAAgBvsB,EACzC,CACA,WAAA1tB,CAAY0tB,GACV3nB,KAAKyrC,QAAQsH,SAAWoB,EAAiBxsB,EAC3C,CACA,aAAAztB,CAAc8+C,GACZh5C,KAAKyrC,QAAQuH,WAAagG,CAC5B,CACA,cAAAilB,CAAetvB,GACb3uC,KAAKyrC,QAAQkD,YAAcA,CAC7B,CACA,iBAAApxC,CAAkByE,EAAGC,EAAGC,GACtBlC,KAAKyrC,QAAQ+C,YAAcpnC,EAAMhe,KAAK2Y,aAAaC,EAAGC,EAAGC,EAC3D,CACA,YAAAg8D,CAAaxvB,GACX1uC,KAAKyrC,QAAQiD,UAAYA,CAC3B,CACA,eAAAlxC,CAAgBwE,EAAGC,EAAGC,GACpBlC,KAAKyrC,QAAQ8C,UAAYnnC,EAAMhe,KAAK2Y,aAAaC,EAAGC,EAAGC,GACvDlC,KAAKyrC,QAAQ6xB,MAAQt9D,KAAK87D,WAAWhwC,cAAc,aACnD9rB,KAAKyrC,QAAQ2xB,QAAU,GACvBp9D,KAAKyrC,QAAQ4xB,QAAU,EACzB,CACA,eAAAngE,CAAgB85B,GACdh3B,KAAKyrC,QAAQ+C,YAAcxuC,KAAKm+D,oBAAoBnnC,EACtD,CACA,aAAA55B,CAAc45B,GACZh3B,KAAKyrC,QAAQ8C,UAAYvuC,KAAKm+D,oBAAoBnnC,EACpD,CACA,WAAAr5B,CAAYq5B,GACV,MAAM,MACJxW,EAAK,OACLC,GACEzgB,KAAK2U,SACH6sC,EAAMp6C,EAAMhe,KAAK8Z,iBAAiBlD,KAAK+7D,kBACtCz3D,EAAIC,EAAIC,EAAIC,GAAM2C,EAAMhe,KAAKyZ,2BAA2B,CAAC,EAAG,EAAG2d,EAAOC,GAAS+gC,GAChF39C,EAAO7D,KAAK87D,WAAWhwC,cAAc,YAC3CjoB,EAAK05D,eAAe,KAAM,IAAKj5D,GAC/BT,EAAK05D,eAAe,KAAM,IAAKh5D,GAC/BV,EAAK05D,eAAe,KAAM,QAAS/4D,EAAKF,GACxCT,EAAK05D,eAAe,KAAM,SAAU94D,EAAKF,GACzCV,EAAK05D,eAAe,KAAM,OAAQv9D,KAAKo+D,oBAAoBpnC,IACvDh3B,KAAKyrC,QAAQiD,UAAY,GAC3B7qC,EAAK05D,eAAe,KAAM,eAAgBv9D,KAAKyrC,QAAQiD,WAEzD1uC,KAAK69D,wBAAwB7xC,OAAOnoB,EACtC,CACA,mBAAAs6D,CAAoBnnC,GAClB,MAAgB,kBAAZA,EAAK,GACAh3B,KAAKq+D,mBAAmBrnC,GAE1Bh3B,KAAKo+D,oBAAoBpnC,EAClC,CACA,kBAAAqnC,CAAmBrnC,GACjB,MAAMM,EAAQN,EAAK,GACbthB,EAAeshB,EAAK,GACpBqqB,EAASrqB,EAAK,IAAM5vB,EAAM/c,iBACzBia,EAAIC,EAAIC,EAAIC,GAAMuyB,EAAK,GACxBsyB,EAAQtyB,EAAK,GACbuyB,EAAQvyB,EAAK,GACbwyB,EAAYxyB,EAAK,GACjBsnC,EAAW,UAAUzC,KACpB0C,EAAKC,EAAKC,EAAKC,GAAOt3D,EAAMhe,KAAKwa,cAAc,IAAIwD,EAAMhe,KAAKoZ,eAAe,CAAC8B,EAAIC,GAAK88C,MAAYj6C,EAAMhe,KAAKoZ,eAAe,CAACgC,EAAIC,GAAK48C,MACvIsd,EAAQC,GAAUx3D,EAAMhe,KAAK+Z,8BAA8Bk+C,GAC5Dwd,EAASvV,EAAQqV,EACjBG,EAASvV,EAAQqV,EACjBG,EAAS/+D,KAAK87D,WAAWhwC,cAAc,eAC7CizC,EAAOxB,eAAe,KAAM,KAAMe,GAClCS,EAAOxB,eAAe,KAAM,eAAgB,kBAC5CwB,EAAOxB,eAAe,KAAM,QAASsB,GACrCE,EAAOxB,eAAe,KAAM,SAAUuB,GACtCC,EAAOxB,eAAe,KAAM,IAAK,GAAGgB,KACpCQ,EAAOxB,eAAe,KAAM,IAAK,GAAGiB,KACpC,MAAMp+B,EAAMpgC,KAAKogC,IACX27B,EAAkB/7D,KAAK+7D,gBACvBxtB,EAAYvuC,KAAKyrC,QAAQ8C,UACzBC,EAAcxuC,KAAKyrC,QAAQ+C,YAC3BiT,EAAOzhD,KAAK87D,WAAW9rE,OAAOyuE,EAAMF,EAAKG,EAAMF,GAGrD,GAFAx+D,KAAKogC,IAAMqhB,EACXzhD,KAAK+7D,gBAAkB1a,EACL,IAAdmI,EAAiB,CACnB,MAAMkB,EAAWtjD,EAAMhe,KAAK2Y,gBAAgBu1B,GAC5Ct3B,KAAKyrC,QAAQ8C,UAAYmc,EACzB1qD,KAAKyrC,QAAQ+C,YAAckc,CAC7B,CAQA,OAPA1qD,KAAKu8D,cAAcv8D,KAAK28D,cAAcjnD,IACtC1V,KAAKogC,IAAMA,EACXpgC,KAAK+7D,gBAAkBA,EACvB/7D,KAAKyrC,QAAQ8C,UAAYA,EACzBvuC,KAAKyrC,QAAQ+C,YAAcA,EAC3BuwB,EAAO/yC,OAAOy1B,EAAKud,WAAW,IAC9Bh/D,KAAK+9D,KAAK/xC,OAAO+yC,GACV,QAAQT,IACjB,CACA,mBAAAF,CAAoBpnC,GAIlB,OAHoB,iBAATA,IACTA,EAAOh3B,KAAKkT,KAAKtjB,IAAIonC,IAEfA,EAAK,IACX,IAAK,cACH,MAAMioC,EAAY,UAAUpD,IACtBqD,EAAaloC,EAAK,GACxB,IAAImoC,EACJ,OAAQnoC,EAAK,IACX,IAAK,QACH,MAAMooC,EAASpoC,EAAK,GACdqoC,EAASroC,EAAK,GACpBmoC,EAAWn/D,KAAK87D,WAAWhwC,cAAc,sBACzCqzC,EAAS5B,eAAe,KAAM,KAAM0B,GACpCE,EAAS5B,eAAe,KAAM,gBAAiB,kBAC/C4B,EAAS5B,eAAe,KAAM,KAAM6B,EAAO,IAC3CD,EAAS5B,eAAe,KAAM,KAAM6B,EAAO,IAC3CD,EAAS5B,eAAe,KAAM,KAAM8B,EAAO,IAC3CF,EAAS5B,eAAe,KAAM,KAAM8B,EAAO,IAC3C,MACF,IAAK,SACH,MAAMC,EAAatoC,EAAK,GAClBuoC,EAAcvoC,EAAK,GACnBwoC,EAAcxoC,EAAK,GACnByoC,EAAezoC,EAAK,GAC1BmoC,EAAWn/D,KAAK87D,WAAWhwC,cAAc,sBACzCqzC,EAAS5B,eAAe,KAAM,KAAM0B,GACpCE,EAAS5B,eAAe,KAAM,gBAAiB,kBAC/C4B,EAAS5B,eAAe,KAAM,KAAMgC,EAAY,IAChDJ,EAAS5B,eAAe,KAAM,KAAMgC,EAAY,IAChDJ,EAAS5B,eAAe,KAAM,IAAKkC,GACnCN,EAAS5B,eAAe,KAAM,KAAM+B,EAAW,IAC/CH,EAAS5B,eAAe,KAAM,KAAM+B,EAAW,IAC/CH,EAAS5B,eAAe,KAAM,KAAMiC,GACpC,MACF,QACE,MAAM,IAAIhgE,MAAM,6BAA6Bw3B,EAAK,MAEtD,IAAK,MAAM+uB,KAAamZ,EAAY,CAClC,MAAMQ,EAAO1/D,KAAK87D,WAAWhwC,cAAc,YAC3C4zC,EAAKnC,eAAe,KAAM,SAAUxX,EAAU,IAC9C2Z,EAAKnC,eAAe,KAAM,aAAcxX,EAAU,IAClDoZ,EAASnzC,OAAO0zC,EAClB,CAEA,OADA1/D,KAAK+9D,KAAK/xC,OAAOmzC,GACV,QAAQF,KACjB,IAAK,OAEH,OADA,EAAI73D,EAAM/V,MAAM,8BACT,KACT,IAAK,QACH,MAAO,UACT,QACE,MAAM,IAAImO,MAAM,oBAAoBw3B,EAAK,MAE/C,CACA,OAAA78B,CAAQ8+C,EAAWC,GACjBl5C,KAAKyrC,QAAQwN,UAAYA,EACzBj5C,KAAKyrC,QAAQyN,UAAYA,CAC3B,CACA,aAAA75C,CAAcm9C,EAAKxlB,GACjB,MAAMyU,EAAUzrC,KAAKyrC,QACrB,IAAIjlB,EAAIilB,EAAQjlB,EACdC,EAAIglB,EAAQhlB,EACV7jB,EAAI,GACJ2C,EAAI,EACR,IAAK,MAAMu/C,KAAMtI,EACf,OAAa,EAALsI,GACN,KAAK19C,EAAMtd,IAAIkR,UACbwrB,EAAIwQ,EAAKzxB,KACTkhB,EAAIuQ,EAAKzxB,KACT,MAEMs3C,EAAKr2B,EAFGwQ,EAAKzxB,KAGbu3C,EAAKr2B,EAFIuQ,EAAKzxB,KAGpB3C,EAAElR,KAAK,IAAK8pE,EAAGh1C,GAAIg1C,EAAG/0C,GAAI,IAAK+0C,EAAG3e,GAAK2e,EAAG/0C,GAAI,IAAK+0C,EAAG3e,GAAK2e,EAAG1e,GAAK,IAAK0e,EAAGh1C,GAAIg1C,EAAG1e,GAAK,KACvF,MACF,KAAK11C,EAAMtd,IAAI4Q,OACb8rB,EAAIwQ,EAAKzxB,KACTkhB,EAAIuQ,EAAKzxB,KACT3C,EAAElR,KAAK,IAAK8pE,EAAGh1C,GAAIg1C,EAAG/0C,IACtB,MACF,KAAKrf,EAAMtd,IAAI6Q,OACb6rB,EAAIwQ,EAAKzxB,KACTkhB,EAAIuQ,EAAKzxB,KACT3C,EAAElR,KAAK,IAAK8pE,EAAGh1C,GAAIg1C,EAAG/0C,IACtB,MACF,KAAKrf,EAAMtd,IAAI8Q,QACb4rB,EAAIwQ,EAAKzxB,EAAI,GACbkhB,EAAIuQ,EAAKzxB,EAAI,GACb3C,EAAElR,KAAK,IAAK8pE,EAAGxkC,EAAKzxB,IAAKi2D,EAAGxkC,EAAKzxB,EAAI,IAAKi2D,EAAGxkC,EAAKzxB,EAAI,IAAKi2D,EAAGxkC,EAAKzxB,EAAI,IAAKi2D,EAAGh1C,GAAIg1C,EAAG/0C,IACtFlhB,GAAK,EACL,MACF,KAAK6B,EAAMtd,IAAI+Q,SACb+H,EAAElR,KAAK,IAAK8pE,EAAGh1C,GAAIg1C,EAAG/0C,GAAI+0C,EAAGxkC,EAAKzxB,IAAKi2D,EAAGxkC,EAAKzxB,EAAI,IAAKi2D,EAAGxkC,EAAKzxB,EAAI,IAAKi2D,EAAGxkC,EAAKzxB,EAAI,KACrFihB,EAAIwQ,EAAKzxB,EAAI,GACbkhB,EAAIuQ,EAAKzxB,EAAI,GACbA,GAAK,EACL,MACF,KAAK6B,EAAMtd,IAAIgR,SACb0rB,EAAIwQ,EAAKzxB,EAAI,GACbkhB,EAAIuQ,EAAKzxB,EAAI,GACb3C,EAAElR,KAAK,IAAK8pE,EAAGxkC,EAAKzxB,IAAKi2D,EAAGxkC,EAAKzxB,EAAI,IAAKi2D,EAAGh1C,GAAIg1C,EAAG/0C,GAAI+0C,EAAGh1C,GAAIg1C,EAAG/0C,IAClElhB,GAAK,EACL,MACF,KAAK6B,EAAMtd,IAAIiR,UACb6H,EAAElR,KAAK,KAIbkR,EAAIA,EAAEpV,KAAK,KACPi+C,EAAQ2R,MAAQZ,EAAIlwD,OAAS,GAAKkwD,EAAI,KAAOp1C,EAAMtd,IAAIkR,WAAawhD,EAAI,KAAOp1C,EAAMtd,IAAI4Q,OAC3FkI,EAAI6oC,EAAQ2R,KAAKuiB,eAAe,KAAM,KAAO/8D,GAE7C6oC,EAAQ2R,KAAOp9C,KAAK87D,WAAWhwC,cAAc,YAC7C9rB,KAAK69D,wBAAwB7xC,OAAOyf,EAAQ2R,OAE9C3R,EAAQ2R,KAAKmgB,eAAe,KAAM,IAAK36D,GACvC6oC,EAAQ2R,KAAKmgB,eAAe,KAAM,OAAQ,QAC1C9xB,EAAQlY,QAAUkY,EAAQ2R,KAC1B3R,EAAQwD,gBAAgBzoB,EAAGC,EAC7B,CACA,OAAAhrB,GACE,MAAMgwC,EAAUzrC,KAAKyrC,QAErB,GADAA,EAAQ2R,KAAO,MACVp9C,KAAKy0C,YACR,OAEF,IAAKhJ,EAAQlY,QAEX,YADAvzB,KAAKy0C,YAAc,MAGrB,MAAMmrB,EAAS,WAAWjE,IACpBkE,EAAW7/D,KAAK87D,WAAWhwC,cAAc,gBAC/C+zC,EAAStC,eAAe,KAAM,KAAMqC,GACpCC,EAAStC,eAAe,KAAM,YAAa9B,EAAGz7D,KAAK+7D,kBACnD,MAAM+D,EAAcr0B,EAAQlY,QAAQwsC,WAAU,GAS9C,GARyB,YAArB//D,KAAKy0C,YACPqrB,EAAYvC,eAAe,KAAM,YAAa,WAE9CuC,EAAYvC,eAAe,KAAM,YAAa,WAEhDv9D,KAAKy0C,YAAc,KACnBorB,EAAS7zC,OAAO8zC,GAChB9/D,KAAK+9D,KAAK/xC,OAAO6zC,GACbp0B,EAAQ4vB,cAAe,CACzB5vB,EAAQ6vB,UAAY,KACpB,IAAK,MAAMh5B,KAAQtiC,KAAKi8D,WACtB35B,EAAKg5B,UAAY,KAEnBuE,EAAStC,eAAe,KAAM,YAAa9xB,EAAQ4vB,cACrD,CACA5vB,EAAQ4vB,cAAgB,QAAQuE,KAChC5/D,KAAKs8D,KAAO,IACd,CACA,IAAA5gE,CAAKvJ,GACH6N,KAAKy0C,YAActiD,CACrB,CACA,SAAA4I,GACE,MAAM0wC,EAAUzrC,KAAKyrC,QACrB,GAAIA,EAAQ2R,KAAM,CAChB,MAAMx6C,EAAI,GAAG6oC,EAAQ2R,KAAKuiB,eAAe,KAAM,QAC/Cl0B,EAAQ2R,KAAKmgB,eAAe,KAAM,IAAK36D,EACzC,CACF,CACA,UAAA3G,CAAW8xC,GACT/tC,KAAKyrC,QAAQsC,SAAWA,CAC1B,CACA,WAAA3xC,CAAYkyC,GACVtuC,KAAKyrC,QAAQ6C,SAAWA,CAC1B,CACA,oBAAAnyC,CAAqBkyC,GACnBruC,KAAKyrC,QAAQ4C,kBAAoBA,CACnC,CACA,SAAAryC,CAAU0X,GACR1T,KAAKyrC,QAAQ2C,WAAa16B,EAAQ,GACpC,CACA,kBAAAtZ,CAAmB8Z,GAAS,CAC5B,WAAA7Z,CAAY8+C,GAAW,CACvB,SAAA7+C,CAAU8+C,GACR,IAAK,MAAOnpD,EAAK/G,KAAUkwD,EACzB,OAAQnpD,GACN,IAAK,KACH+P,KAAKjG,aAAa7Q,GAClB,MACF,IAAK,KACH8W,KAAKhG,WAAW9Q,GAChB,MACF,IAAK,KACH8W,KAAK/F,YAAY/Q,GACjB,MACF,IAAK,KACH8W,KAAK9F,cAAchR,GACnB,MACF,IAAK,IACH8W,KAAK7F,QAAQjR,EAAM,GAAIA,EAAM,IAC7B,MACF,IAAK,KACH8W,KAAK5F,mBAAmBlR,GACxB,MACF,IAAK,KACH8W,KAAK3F,YAAYnR,GACjB,MACF,IAAK,OACH8W,KAAK9D,QAAQhT,GACb,MACF,IAAK,KACH8W,KAAKi+D,eAAe/0E,GACpB,MACF,IAAK,KACH8W,KAAKk+D,aAAah1E,GAClB,MACF,SACE,EAAIke,EAAM/V,MAAM,wCAAwCpB,KAIhE,CACA,IAAAkL,GACE,MAAMswC,EAAUzrC,KAAKyrC,QACjBA,EAAQlY,UACVkY,EAAQlY,QAAQgqC,eAAe,KAAM,OAAQ9xB,EAAQ8C,WACrD9C,EAAQlY,QAAQgqC,eAAe,KAAM,eAAgB9xB,EAAQiD,WAC7D1uC,KAAKvE,UAET,CACA,MAAAR,GACE,MAAMwwC,EAAUzrC,KAAKyrC,QACjBA,EAAQlY,UACVvzB,KAAK49D,qBAAqBnyB,EAAQlY,SAClCkY,EAAQlY,QAAQgqC,eAAe,KAAM,OAAQ,QAC7Cv9D,KAAKvE,UAET,CACA,oBAAAmiE,CAAqBrqC,EAASoqC,EAAiB,GAC7C,MAAMlyB,EAAUzrC,KAAKyrC,QACrB,IAAIwN,EAAYxN,EAAQwN,UACD,IAAnB0kB,GAAwB1kB,EAAU3sD,OAAS,IAC7C2sD,EAAYA,EAAUnpD,KAAI,SAAU5G,GAClC,OAAOy0E,EAAiBz0E,CAC1B,KAEFqqC,EAAQgqC,eAAe,KAAM,SAAU9xB,EAAQ+C,aAC/Cjb,EAAQgqC,eAAe,KAAM,iBAAkB9xB,EAAQkD,aACvDpb,EAAQgqC,eAAe,KAAM,oBAAqB/B,EAAG/vB,EAAQuH,aAC7Dzf,EAAQgqC,eAAe,KAAM,iBAAkB9xB,EAAQqH,SACvDvf,EAAQgqC,eAAe,KAAM,kBAAmB9xB,EAAQsH,UACxDxf,EAAQgqC,eAAe,KAAM,eAAgB/B,EAAGmC,EAAiBlyB,EAAQmD,WAAa,MACtFrb,EAAQgqC,eAAe,KAAM,mBAAoBtkB,EAAUnpD,IAAI0rE,GAAIhuE,KAAK,MACxE+lC,EAAQgqC,eAAe,KAAM,oBAAqB/B,EAAGmC,EAAiBlyB,EAAQyN,WAAa,KAC7F,CACA,MAAA99C,GACE4E,KAAKyrC,QAAQlY,SAASgqC,eAAe,KAAM,YAAa,WACxDv9D,KAAK7E,MACP,CACA,UAAAE,GACE2E,KAAK/E,SACL+E,KAAK7E,MACP,CACA,YAAAG,GACE0E,KAAKyrC,QAAQlY,SAASgqC,eAAe,KAAM,YAAa,WACxDv9D,KAAK3E,YACP,CACA,WAAAH,GACE8E,KAAKjF,YACLiF,KAAK/E,QACP,CACA,eAAAM,GACEyE,KAAKjF,YACLiF,KAAK3E,YACP,CACA,iBAAAG,GACEwE,KAAKjF,YACLiF,KAAK1E,cACP,CACA,wBAAA8D,GACE,MAAMyE,EAAO7D,KAAK87D,WAAWhwC,cAAc,YAC3CjoB,EAAK05D,eAAe,KAAM,IAAK,KAC/B15D,EAAK05D,eAAe,KAAM,IAAK,KAC/B15D,EAAK05D,eAAe,KAAM,QAAS,OACnC15D,EAAK05D,eAAe,KAAM,SAAU,OACpC15D,EAAK05D,eAAe,KAAM,OAAQv9D,KAAKyrC,QAAQ8C,WAC/CvuC,KAAK69D,wBAAwB7xC,OAAOnoB,EACtC,CACA,iBAAA9E,CAAkBmiB,GAChB,MAAMmvB,EAAUrwC,KAAK+1C,UAAU70B,GAC1BmvB,EAILrwC,KAAKhB,wBAAwBqxC,IAH3B,EAAIjpC,EAAM/V,MAAM,kCAAkC6vB,qBAItD,CACA,uBAAAliB,CAAwBqxC,EAASuB,GAC/B,MAAMpxB,EAAQ6vB,EAAQ7vB,MAChBC,EAAS4vB,EAAQ5vB,OACjBu/C,EAASzG,EAAoBlpB,EAASrwC,KAAKk5D,kBAAmBtnB,GAC9DquB,EAAWjgE,KAAK87D,WAAWhwC,cAAc,YAC/Cm0C,EAAS1C,eAAe,KAAM,IAAK,KACnC0C,EAAS1C,eAAe,KAAM,IAAK,KACnC0C,EAAS1C,eAAe,KAAM,QAAS/B,EAAGh7C,IAC1Cy/C,EAAS1C,eAAe,KAAM,SAAU/B,EAAG/6C,IAC3CzgB,KAAKyrC,QAAQlY,QAAU0sC,EACvBjgE,KAAKtE,KAAK,WACV,MAAMwkE,EAAQlgE,KAAK87D,WAAWhwC,cAAc,aAC5Co0C,EAAM3C,eAlnCO,+BAknCkB,aAAcyC,GAC7CE,EAAM3C,eAAe,KAAM,IAAK,KAChC2C,EAAM3C,eAAe,KAAM,IAAK/B,GAAI/6C,IACpCy/C,EAAM3C,eAAe,KAAM,QAAS/B,EAAGh7C,GAAS,MAChD0/C,EAAM3C,eAAe,KAAM,SAAU/B,EAAG/6C,GAAU,MAClDy/C,EAAM3C,eAAe,KAAM,YAAa,SAAS/B,EAAG,EAAIh7C,MAAUg7C,GAAI,EAAI/6C,OACtEmxB,EACFA,EAAK5lB,OAAOk0C,GAEZlgE,KAAK69D,wBAAwB7xC,OAAOk0C,EAExC,CACA,qBAAArhE,CAAsBu4C,GACpB,MAAM/G,EAAUrwC,KAAK+1C,UAAUqB,EAAIrxC,KAAMqxC,GACzC,GAAI/G,EAAQ9vB,OAEV,YADA,EAAInZ,EAAM/V,MAAM,0IAGlB,MAAMo6C,EAAUzrC,KAAKyrC,QACfjrB,EAAQ6vB,EAAQ7vB,MAChBC,EAAS4vB,EAAQ5vB,OACjB8tB,EAAY9C,EAAQ8C,UAC1B9C,EAAQ8vB,OAAS,OAAOK,IACxB,MAAMhqB,EAAO5xC,KAAK87D,WAAWhwC,cAAc,YAC3C8lB,EAAK2rB,eAAe,KAAM,KAAM9xB,EAAQ8vB,QACxC,MAAM13D,EAAO7D,KAAK87D,WAAWhwC,cAAc,YAC3CjoB,EAAK05D,eAAe,KAAM,IAAK,KAC/B15D,EAAK05D,eAAe,KAAM,IAAK,KAC/B15D,EAAK05D,eAAe,KAAM,QAAS/B,EAAGh7C,IACtC3c,EAAK05D,eAAe,KAAM,SAAU/B,EAAG/6C,IACvC5c,EAAK05D,eAAe,KAAM,OAAQhvB,GAClC1qC,EAAK05D,eAAe,KAAM,OAAQ,QAAQ9xB,EAAQ8vB,WAClDv7D,KAAK+9D,KAAK/xC,OAAO4lB,GACjB5xC,KAAK69D,wBAAwB7xC,OAAOnoB,GACpC7D,KAAKhB,wBAAwBqxC,EAASuB,EACxC,CACA,qBAAArzC,CAAsB8iD,EAAQI,GAI5B,GAHI5/C,MAAMq5B,QAAQmmB,IAA6B,IAAlBA,EAAO/0D,QAClC0T,KAAKvF,UAAU4mD,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,IAE3EI,EAAM,CACR,MAAMjhC,EAAQihC,EAAK,GAAKA,EAAK,GACvBhhC,EAASghC,EAAK,GAAKA,EAAK,GACxBwe,EAAWjgE,KAAK87D,WAAWhwC,cAAc,YAC/Cm0C,EAAS1C,eAAe,KAAM,IAAK9b,EAAK,IACxCwe,EAAS1C,eAAe,KAAM,IAAK9b,EAAK,IACxCwe,EAAS1C,eAAe,KAAM,QAAS/B,EAAGh7C,IAC1Cy/C,EAAS1C,eAAe,KAAM,SAAU/B,EAAG/6C,IAC3CzgB,KAAKyrC,QAAQlY,QAAU0sC,EACvBjgE,KAAKtE,KAAK,WACVsE,KAAKvE,SACP,CACF,CACA,mBAAA+C,GAAuB,CACvB,WAAAqd,CAAYlH,GACV,MAAMyrB,EAAMpgC,KAAK87D,WAAW9rE,OAAO2kB,EAAS6L,MAAO7L,EAAS8L,QACtD0/C,EAAcngE,KAAK87D,WAAWhwC,cAAc,YAClDsU,EAAIpU,OAAOm0C,GACXngE,KAAK+9D,KAAOoC,EACZ,MAAMC,EAAYpgE,KAAK87D,WAAWhwC,cAAc,SAIhD,OAHAs0C,EAAU7C,eAAe,KAAM,YAAa9B,EAAG9mD,EAASla,YACxD2lC,EAAIpU,OAAOo0C,GACXpgE,KAAKogC,IAAMggC,EACJhgC,CACT,CACA,gBAAAigC,GACE,IAAKrgE,KAAKyrC,QAAQ6vB,UAAW,CAC3B,MAAMA,EAAYt7D,KAAK87D,WAAWhwC,cAAc,SAChDwvC,EAAUiC,eAAe,KAAM,YAAav9D,KAAKyrC,QAAQ4vB,eACzDr7D,KAAKogC,IAAIpU,OAAOsvC,GAChBt7D,KAAKyrC,QAAQ6vB,UAAYA,CAC3B,CACA,OAAOt7D,KAAKyrC,QAAQ6vB,SACtB,CACA,qBAAAuC,GAUE,OATK79D,KAAKs8D,OACRt8D,KAAKs8D,KAAOt8D,KAAK87D,WAAWhwC,cAAc,SAC1C9rB,KAAKs8D,KAAKiB,eAAe,KAAM,YAAa9B,EAAGz7D,KAAK+7D,kBAChD/7D,KAAKyrC,QAAQ4vB,cACfr7D,KAAKqgE,mBAAmBr0C,OAAOhsB,KAAKs8D,MAEpCt8D,KAAKogC,IAAIpU,OAAOhsB,KAAKs8D,OAGlBt8D,KAAKs8D,IACd,EAIK,EAED,CAAExzE,EAAyBC,KAIjCC,OAAOC,eAAeF,EAAS,aAAc,CAC3CG,OAAO,IAETH,EAAQgvB,aAAU,EAClB,MAAMA,EACJ,kBAAOJ,CAAYG,GACjB,MAAMF,EAAQ,GACRkjD,EAAS,CACbljD,QACAO,OAAQnvB,OAAOgH,OAAO,OA8BxB,OA5BA,SAASswE,EAAK1F,GACZ,IAAKA,EACH,OAEF,IAAIzrE,EAAM,KACV,MAAM4Q,EAAO66D,EAAK76D,KAClB,GAAa,UAATA,EACF5Q,EAAMyrE,EAAK1xE,UACN,KAAK6uB,EAAQwoD,gBAAgBxgE,GAClC,OACS66D,GAAM37B,YAAYtnB,YAC3BxoB,EAAMyrE,EAAK37B,WAAWtnB,YACbijD,EAAK1xE,QACdiG,EAAMyrE,EAAK1xE,MACb,CAMA,GALY,OAARiG,GACFyoB,EAAMlmB,KAAK,CACTvC,QAGCyrE,EAAKpmD,SAGV,IAAK,MAAMgsD,KAAS5F,EAAKpmD,SACvB8rD,EAAKE,EAET,CACAF,CAAKxoD,GACEgjD,CACT,CACA,sBAAOyF,CAAgBxgE,GACrB,QAAkB,aAATA,GAAgC,UAATA,GAA6B,WAATA,GAA8B,WAATA,EAC3E,EAEFhX,EAAQgvB,QAAUA,CAEX,EAED,CAAEjvB,EAAyBC,EAASmd,KAI1Cld,OAAOC,eAAeF,EAAS,aAAc,CAC3CG,OAAO,IAETH,EAAQ03E,yBAAsB,EAC9B13E,EAAQ23E,gBA4TR,SAAyBh0D,GAClBA,EAAOi0D,oBAAsBj0D,EAAOiL,cAAejL,EAAOk0D,qBAC7D,EAAIt5D,EAAe2I,YAAY,2IAC/BvD,EAAOi0D,kBAAoBj0D,EAAOiL,aAAejL,EAAOk0D,mBAE1D,MAAM,UACJ1nC,EAAS,SACTvkB,GACEjI,EACEib,EAAQC,iBAAiBsR,GACzB4E,EAAanW,EAAMI,iBAAiB,cACpC84C,EAAc/4C,WAAWH,EAAMI,iBAAiB,mBACnC,YAAf+V,KAA8B+iC,GAAe7yE,KAAKqX,IAAIw7D,EAAclsD,EAASjB,OAAS,OACxFnlB,QAAQ0nB,MAAM,2JAEhB,MAAMjN,EAAO,IAAIy3D,EAAoB/zD,GAErC,OADA1D,EAAK83D,UACE93D,CACT,EA7UAjgB,EAAQg4E,gBA8UR,UAAyB,UACvB7nC,EAAS,SACTvkB,EAAQ,SACRqsD,EAAQ,kBACRC,EAAiB,2BACjB//D,EAA0B,WAC1Bw+B,GAAa,EAAI,YACjBwhC,GAAc,IAOd,GALIxhC,IACF,EAAIp4B,EAAek4B,oBAAoBtG,EAAW,CAChDvlB,SAAUgB,EAAShB,WAGnButD,EAAa,CACf,MAAMntC,EAAMotC,EAAO,EAAGjgE,GAEhBwL,EAAS,CACb00D,aAAc,KACdC,eAAgB,KAChB77C,IAAK,KACL9R,MALYiB,EAASjB,OAAS9qB,WAAWqrD,kBAAoB,GAM7D7B,WAAY,KACZre,OAEF,IAAK,MAAMvO,KAAOw7C,EAChBt0D,EAAO0lC,WAAa6uB,EAAkBrxE,IAAI41B,GAC1C9Y,EAAO8Y,IAAMA,EACb87C,EAAO50D,EAEX,CACF,EA5WA,IAAItF,EAAQlB,EAAoB,GAC5BoB,EAAiBpB,EAAoB,GACzC,MACMq7D,EAAoB,GAEpBC,EAAc,IAAIlyE,IACxB,SAAS6xE,EAAOzpD,EAAMxW,GACpB,IAAI6yB,EACJ,GAAI7yB,GAA8BkG,EAAM7c,YAAY2W,2BAClD6yB,EAAM,IAAI5yB,gBAAgBuW,EAAMA,GAAMsc,WAAW,KAAM,CACrDsf,OAAO,QAEJ,CACL,MAAMjyB,EAAS5W,SAASqhB,cAAc,UACtCzK,EAAOb,MAAQa,EAAOZ,OAAS/I,EAC/Bqc,EAAM1S,EAAO2S,WAAW,KAAM,CAC5Bsf,OAAO,GAEX,CACA,OAAOvf,CACT,CA+CA,SAAS0tC,EAAWz4D,EAAM04D,EAAMvpD,GAC9B,MAAMwpD,EAAUl3D,SAASqhB,cAAc,QACjCm1C,EAAoB,CACxBj2C,MAAO,EACPq3B,YAAa,EACbuf,QAAsB,KAAbF,EAAKvyE,IACd0yE,OAAQH,EAAKG,OACbn0B,SAAU,GAEZ1kC,EAAK84D,UAAUpwE,KAAKiwE,GACpB,MAAM73C,EAAK1iB,EAAMhe,KAAKqR,UAAUuO,EAAK+4D,WAAYL,EAAKjnE,WACtD,IAAIuwB,EAAQh9B,KAAKg0E,MAAMl4C,EAAG,GAAIA,EAAG,IACjC,MAAMnC,EAAQxP,EAAOupD,EAAKO,UACtBt6C,EAAM+2B,WACR1zB,GAASh9B,KAAKgL,GAAK,GAErB,MAAMkpE,EAAal0E,KAAKihC,MAAMnF,EAAG,GAAIA,EAAG,IAClCq4C,EAAaD,EA/DrB,SAAmBz3B,EAAYvpC,GAC7B,MAAMkhE,EAAeZ,EAAY5xE,IAAI66C,GACrC,GAAI23B,EACF,OAAOA,EAET,MAAMruC,EAAMotC,EAAOI,EAAmBrgE,GACtC6yB,EAAI/T,KAAO,QAA0ByqB,IACrC,MAAM43B,EAAUtuC,EAAIisB,YAAY,IAChC,IAAIsiB,EAASD,EAAQE,sBACjBC,EAAUx0E,KAAKqX,IAAIg9D,EAAQI,wBAC/B,GAAIH,EAAQ,CACV,MAAMI,EAAQJ,GAAUA,EAASE,GAGjC,OAFAhB,EAAYnsD,IAAIo1B,EAAYi4B,GAC5B3uC,EAAI1S,OAAOb,MAAQuT,EAAI1S,OAAOZ,OAAS,EAChCiiD,CACT,CACA3uC,EAAI2e,YAAc,MAClB3e,EAAI8jB,UAAU,EAAG,EAAG0pB,EAAmBA,GACvCxtC,EAAIsqB,WAAW,IAAK,EAAG,GACvB,IAAIskB,EAAS5uC,EAAIK,aAAa,EAAG,EAAGmtC,EAAmBA,GAAmBx7D,KAC1Ey8D,EAAU,EACV,IAAK,IAAIz0E,EAAI40E,EAAOr2E,OAAS,EAAI,EAAGyB,GAAK,EAAGA,GAAK,EAC/C,GAAI40E,EAAO50E,GAAK,EAAG,CACjBy0E,EAAUx0E,KAAK4pD,KAAK7pD,EAAI,EAAIwzE,GAC5B,KACF,CAEFxtC,EAAI8jB,UAAU,EAAG,EAAG0pB,EAAmBA,GACvCxtC,EAAIsqB,WAAW,IAAK,EAAGkjB,GACvBoB,EAAS5uC,EAAIK,aAAa,EAAG,EAAGmtC,EAAmBA,GAAmBx7D,KACtEu8D,EAAS,EACT,IAAK,IAAIv0E,EAAI,EAAGiB,EAAK2zE,EAAOr2E,OAAQyB,EAAIiB,EAAIjB,GAAK,EAC/C,GAAI40E,EAAO50E,GAAK,EAAG,CACjBu0E,EAASf,EAAoBvzE,KAAKC,MAAMF,EAAI,EAAIwzE,GAChD,KACF,CAGF,GADAxtC,EAAI1S,OAAOb,MAAQuT,EAAI1S,OAAOZ,OAAS,EACnC6hD,EAAQ,CACV,MAAMI,EAAQJ,GAAUA,EAASE,GAEjC,OADAhB,EAAYnsD,IAAIo1B,EAAYi4B,GACrBA,CACT,CAEA,OADAlB,EAAYnsD,IAAIo1B,EA5DU,MA8D5B,CAkBkCm4B,CAAUj7C,EAAM8iB,WAAYzhC,EAAK65D,6BACjE,IAAIj4C,EAAME,EACI,IAAVE,GACFJ,EAAOd,EAAG,GACVgB,EAAMhB,EAAG,GAAKq4C,IAEdv3C,EAAOd,EAAG,GAAKq4C,EAAan0E,KAAK80E,IAAI93C,GACrCF,EAAMhB,EAAG,GAAKq4C,EAAan0E,KAAK+0E,IAAI/3C,IAEtC,MAAMg4C,EAAiB,4BACjBC,EAAWtB,EAAQh6C,MACrB3e,EAAKk6D,aAAel6D,EAAKm6D,gBAC3BF,EAASr4C,KAAO,IAAI,IAAMA,EAAO5hB,EAAKo6D,YAAYv4C,QAAQ,MAC1Do4C,EAASn4C,IAAM,IAAI,IAAMA,EAAM9hB,EAAKq6D,aAAax4C,QAAQ,QAEzDo4C,EAASr4C,KAAO,GAAGo4C,IAAiBp4C,EAAKC,QAAQ,QACjDo4C,EAASn4C,IAAM,GAAGk4C,IAAiBl4C,EAAID,QAAQ,SAEjDo4C,EAASv1B,SAAW,GAAGs1B,IAAiBd,EAAWr3C,QAAQ,QAC3Do4C,EAASx4B,WAAa9iB,EAAM8iB,WAC5Bw2B,EAAkBvzB,SAAWw0B,EAC7BP,EAAQtyC,aAAa,OAAQ,gBAC7BsyC,EAAQhqD,YAAc+pD,EAAKvyE,IAC3BwyE,EAAQ2B,IAAM5B,EAAK4B,IACft6D,EAAKu6D,wBACP5B,EAAQ6B,QAAQvB,SAAWP,EAAKO,UAEpB,IAAVj3C,IACFi2C,EAAkBj2C,MAAQA,GAAS,IAAMh9B,KAAKgL,KAEhD,IAAIyqE,GAAkB,EACtB,GAAI/B,EAAKvyE,IAAI7C,OAAS,EACpBm3E,GAAkB,OACb,GAAiB,MAAb/B,EAAKvyE,KAAeuyE,EAAKjnE,UAAU,KAAOinE,EAAKjnE,UAAU,GAAI,CACtE,MAAMipE,EAAY11E,KAAKqX,IAAIq8D,EAAKjnE,UAAU,IACxCkpE,EAAY31E,KAAKqX,IAAIq8D,EAAKjnE,UAAU,IAClCipE,IAAcC,GAAa31E,KAAKiV,IAAIygE,EAAWC,GAAa31E,KAAKuS,IAAImjE,EAAWC,GAAa,MAC/FF,GAAkB,EAEtB,CACIA,IACFxC,EAAkB5e,YAAc16B,EAAM+2B,SAAWgjB,EAAKjhD,OAASihD,EAAKlhD,OAEtExX,EAAK46D,mBAAmBvuD,IAAIssD,EAASV,GACjCj4D,EAAK66D,mBACP76D,EAAK86D,YAAYnC,EAErB,CACA,SAASL,EAAO50D,GACd,MAAM,IACJ8Y,EAAG,MACH9R,EAAK,WACL0+B,EAAU,IACVre,EAAG,aACHqtC,EAAY,eACZC,GACE30D,GACE,MACJib,GACEnC,EACJ,IAAI/qB,EAAY,GAChB,GAA+B,IAA3B23C,EAAWiQ,aAAqBjQ,EAAWwvB,QAAS,CACtD,MAAM,WACJn3B,GACE9iB,GACE,YACJ06B,EAAW,SACX3U,GACE0E,EACAgvB,IAAiB1zB,GAAY2zB,IAAmB52B,IAClD1W,EAAI/T,KAAO,GAAG0tB,EAAWh6B,OAAW+2B,IACpC/9B,EAAO00D,aAAe1zB,EACtBhhC,EAAO20D,eAAiB52B,GAE1B,MAAM,MACJjqB,GACEuT,EAAIisB,YAAYx6B,EAAI7N,aACpB6I,EAAQ,IACV/lB,EAAY,UAAU4nD,EAAc3uC,EAAQ8M,KAEhD,CACyB,IAArB4xB,EAAWpnB,QACbvwB,EAAY,UAAU23C,EAAWpnB,aAAavwB,KAE5CA,EAAUnO,OAAS,IACrBq7B,EAAMltB,UAAYA,EAEtB,CAmBA,MAAMgmE,EACJ,WAAAxgE,EAAY,kBACV0gE,EAAiB,UACjBznC,EAAS,SACTvkB,EAAQ,SACRqsD,EAAQ,kBACRC,EAAiB,oBACjB8C,EAAmB,2BACnB7iE,IAEAlB,KAAKgkE,mBAAqBrD,EAC1B3gE,KAAK6jE,kBAAoBlD,aAA6BhU,eACtD3sD,KAAKkjE,WAAaljE,KAAKmjE,eAAiBjqC,EACxCl5B,KAAK8hE,UAAYd,GAAY,GAC7BhhE,KAAKikE,qBAAuBF,GAAuB,GACnD/jE,KAAK6iE,4BAA8B3hE,EACnClB,KAAKujE,wBAA0B36E,WAAWk3B,eAAeC,QACzD/f,KAAKkyD,QAAU,KACflyD,KAAK4jE,mBAAqB3C,GAAqB,IAAItlD,QACnD3b,KAAKkkE,WAAY,EACjBlkE,KAAK2N,YAAc,IAAIvG,EAAM3d,kBAC7BuW,KAAKmkE,kBAAoB,CACvB/C,aAAc,KACdC,eAAgB,KAChB77C,IAAK,KACL9R,MAAOiB,EAASjB,OAAS9qB,WAAWqrD,kBAAoB,GACxD7B,WAAY,KACZre,IAAKotC,EAAO,EAAGjgE,IAEjB,MAAM,UACJ6kB,EAAS,WACTC,EAAU,MACVC,EAAK,MACLC,GACEvR,EAASmR,QACb9lB,KAAK+hE,WAAa,CAAC,EAAG,EAAG,GAAI,GAAI97C,EAAOC,EAAQF,GAChDhmB,KAAKojE,WAAar9C,EAClB/lB,KAAKqjE,YAAcr9C,GACnB,EAAI1e,EAAek4B,oBAAoBtG,EAAWvkB,GAClD3U,KAAK2N,YAAYhI,QAAQya,SAAQ,KAC/BpgB,KAAKmkE,kBAAoB,IAAI,IAC5Bz2D,OAAM,QACX,CACA,WAAI/H,GACF,OAAO3F,KAAK2N,YAAYhI,OAC1B,CACA,MAAAmT,GACE9Y,KAAKkkE,WAAY,EACblkE,KAAKkyD,UACPlyD,KAAKkyD,QAAQp5C,OAAO,IAAI1R,EAAM5b,eAAe,8BAA8BkiB,OAAM,SACjF1N,KAAKkyD,QAAU,MAEjBlyD,KAAK2N,YAAY7H,OAAO,IAAIsB,EAAM5b,eAAe,6BACnD,CACA,aAAA44E,CAAcxsD,EAAOysD,GACnB,IAAK,MAAM/7C,KAAQ1Q,EACjB,QAAiBjpB,IAAb25B,EAAKn5B,IAcT6Q,KAAKikE,qBAAqBvyE,KAAK42B,EAAKn5B,KACpCsyE,EAAWzhE,KAAMsoB,EAAM+7C,QAdrB,GAAkB,4BAAd/7C,EAAKn2B,MAAoD,uBAAdm2B,EAAKn2B,KAA+B,CACjF,MAAMyyB,EAAS5kB,KAAKkjE,WACpBljE,KAAKkjE,WAAaz4D,SAASqhB,cAAc,QACzC9rB,KAAKkjE,WAAWz6C,UAAU7R,IAAI,iBACd,OAAZ0R,EAAKrX,IACPjR,KAAKkjE,WAAW7zC,aAAa,KAAM,GAAG/G,EAAKrX,MAE7C2T,EAAOoH,OAAOhsB,KAAKkjE,WACrB,KAAyB,qBAAd56C,EAAKn2B,OACd6N,KAAKkjE,WAAaljE,KAAKkjE,WAAWjzC,WAO1C,CACA,WAAA6zC,CAAYnC,GACV,MAAMV,EAAoBjhE,KAAKmkE,kBAAkB/xB,WAAapyC,KAAK4jE,mBAAmBh0E,IAAI+xE,GAM1F,GALA3hE,KAAKmkE,kBAAkB3+C,IAAMm8C,EAC7BL,EAAOthE,KAAKmkE,mBACRlD,EAAkBW,SACpB5hE,KAAKkjE,WAAWl3C,OAAO21C,GAErBV,EAAkBY,OAAQ,CAC5B,MAAMyC,EAAK75D,SAASqhB,cAAc,MAClCw4C,EAAGj1C,aAAa,OAAQ,gBACxBrvB,KAAKkjE,WAAWl3C,OAAOs4C,EACzB,CACF,CACA,OAAAxD,GACE,MAAMzqD,EAAa,IAAIjP,EAAM3d,kBAC7B,IAAI46E,EAAar7E,OAAOgH,OAAO,MAC/B,GAAIgQ,KAAK6jE,kBAAmB,CAC1B,MAAMzrD,EAAO,KACXpY,KAAKkyD,QAAQ75C,OAAOjM,MAAK,EACvBljB,QACAovB,WAEIA,EACFjC,EAAWxQ,WAGb7c,OAAOuvB,OAAO8rD,EAAYn7E,EAAMivB,QAChCnY,KAAKokE,cAAcl7E,EAAM0uB,MAAOysD,GAChCjsD,IAAM,GACL/B,EAAWvQ,OAAO,EAEvB9F,KAAKkyD,QAAUlyD,KAAKgkE,mBAAmB9rD,YACvCE,GACF,KAAO,KAAIpY,KAAKgkE,mBAQd,MAAM,IAAIxkE,MAAM,+CARkB,CAClC,MAAM,MACJoY,EAAK,OACLO,GACEnY,KAAKgkE,mBACThkE,KAAKokE,cAAcxsD,EAAOO,GAC1B9B,EAAWxQ,SACb,CAEA,CACAwQ,EAAW1Q,QAAQyG,MAAK,KACtBi4D,EAAa,KAxInB,SAAgBr7D,GACd,GAAIA,EAAKk7D,UACP,OAEF,MAAMlD,EAAWh4D,EAAK84D,UAChBzrD,EAAarN,EAAK2E,YAExB,GADuBqzD,EAAS10E,OAhLF,IAkL5B+pB,EAAWxQ,cADb,CAIA,IAAKmD,EAAK66D,kBACR,IAAK,MAAMlC,KAAWX,EACpBh4D,EAAK86D,YAAYnC,GAGrBtrD,EAAWxQ,SANX,CAOF,CAwHM4O,CAAOzU,KAAK,GACXA,KAAK2N,YAAY7H,OACtB,EAEF/c,EAAQ03E,oBAAsBA,CAqDvB,EAED,CAAE33E,EAAyBC,EAASmd,KAI1Cld,OAAOC,eAAeF,EAAS,aAAc,CAC3CG,OAAO,IAETH,EAAQw7E,2BAAwB,EAChC,IAAIn9D,EAAQlB,EAAoB,GAC5B8c,EAAU9c,EAAoB,GAC9Bs+D,EAAYt+D,EAAoB,IAChCu+D,EAAOv+D,EAAoB,IAC3BoB,EAAiBpB,EAAoB,GACrCw+D,EAASx+D,EAAoB,IACjC,MAAMq+D,EACJ,IACA,KAAc,EACd,IAAmB,KACnB,IAAkBvkE,KAAK2kE,UAAUxkD,KAAKngB,MACtC,IAAoBA,KAAKwwB,YAAYrQ,KAAKngB,MAC1C,IAAW,IAAI1Q,IACf,KAAkB,EAClB,KAAgB,EAChB,KAAe,EACf,IACA+e,qBAAsB,EACtB,WAAApO,EAAY,UACVwlB,EAAS,UACT/S,EAAS,IACT8S,EAAG,qBACHo/C,EAAoB,gBACpBC,EAAe,SACflwD,EAAQ,KACR6S,IAEA,MAAMs9C,EAAc,CAACN,EAAUO,eAAgBN,EAAKO,UAAWN,EAAOO,aACtE,IAAKV,EAAsBW,aAAc,CACvCX,EAAsBW,cAAe,EACrC,IAAK,MAAMt+C,KAAck+C,EACvBl+C,EAAWW,WAAWC,EAE1B,CACA/B,EAAU+V,oBAAoBspC,GAC9B9kE,MAAK,GAAaylB,EAClBzlB,KAAK0S,UAAYA,EACjB1S,KAAKwlB,IAAMA,EACXxlB,MAAK,GAAwB4kE,EAC7B5kE,MAAK,GAAmB6kE,EACxB7kE,KAAK2U,SAAWA,EAChB3U,MAAK,GAAW47B,SAAS57B,KAC3B,CACA,WAAI2pB,GACF,OAA8B,IAAvB3pB,MAAK,GAAS0X,IACvB,CACA,aAAAykB,CAAcF,GACZj8B,MAAK,GAAWm8B,cAAcF,EAChC,CACA,UAAAD,CAAWC,EAAOj8B,MAAK,GAAWy9B,WAChCz9B,MAAK,KACDi8B,IAAS70B,EAAMjc,qBAAqBgI,KACtC6M,KAAKmlE,sBAAqB,GAC1BnlE,KAAKu8B,gBAELv8B,KAAKw8B,cAEHP,IAAS70B,EAAMjc,qBAAqB6H,OACtCgN,KAAKwlB,IAAIiD,UAAUC,OAAO,kBAAmBuT,IAAS70B,EAAMjc,qBAAqB8H,UACjF+M,KAAKwlB,IAAIiD,UAAUC,OAAO,aAAcuT,IAAS70B,EAAMjc,qBAAqBgI,KAC5E6M,KAAKwlB,IAAIiD,UAAUC,OAAO,eAAgBuT,IAAS70B,EAAMjc,qBAAqB+H,OAC9E8M,KAAKwlB,IAAIoN,QAAS,EAEtB,CACA,oBAAAuyC,CAAqBC,GACnB,GAAKA,GAAgBplE,MAAK,GAAWy9B,YAAcr2B,EAAMjc,qBAAqBgI,IAA9E,CAGA,IAAKiyE,EACH,IAAK,MAAMl+C,KAAUlnB,MAAK,GAAS2Y,SACjC,GAAIuO,EAAOyC,UAET,YADAzC,EAAO8B,kBAKEhpB,MAAK,GAAuB,CACzC4T,QAAS,EACTC,QAAS,IACR,GACImV,iBAbP,CAcF,CACA,eAAAuS,CAAgBvI,GACdhzB,MAAK,GAAWu7B,gBAAgBvI,EAClC,CACA,WAAAlK,CAAYpc,GACV1M,MAAK,GAAW8oB,YAAYpc,EAC9B,CACA,MAAAmvB,GACE77B,KAAKwlB,IAAImC,MAAM09C,cAAgB,OAC/B,MAAMC,EAAuB,IAAI3uD,IACjC,IAAK,MAAMuQ,KAAUlnB,MAAK,GAAS2Y,SACjCuO,EAAO2L,gBACH3L,EAAOxB,qBACT4/C,EAAqB1uD,IAAIsQ,EAAOxB,qBAGpC,IAAK1lB,MAAK,GACR,OAEF,MAAMulE,EAAYvlE,MAAK,GAAiBwlE,yBACxC,IAAK,MAAMC,KAAYF,EAAW,CAEhC,GADAE,EAASC,OACL1lE,MAAK,GAAW68B,2BAA2B4oC,EAAS1/D,KAAKkL,IAC3D,SAEF,GAAIq0D,EAAqB5pD,IAAI+pD,EAAS1/D,KAAKkL,IACzC,SAEF,MAAMiW,EAASlnB,KAAKiyB,YAAYwzC,GAC3Bv+C,IAGLlnB,KAAK+8B,aAAa7V,GAClBA,EAAO2L,gBACT,CACF,CACA,OAAAiJ,GACE97B,MAAK,IAAe,EACpBA,KAAKwlB,IAAImC,MAAM09C,cAAgB,OAC/B,MAAMM,EAAsB,IAAIhvD,IAChC,IAAK,MAAMuQ,KAAUlnB,MAAK,GAAS2Y,SACjCuO,EAAOyL,iBACFzL,EAAOxB,qBAA8C,OAAvBwB,EAAO3C,aAI1CvkB,KAAK4lE,sBAAsB1+C,EAAOxB,sBAAsBmgD,OACxD3+C,EAAOzD,UAJLkiD,EAAoB/uD,IAAIsQ,EAAOxB,qBAMnC,GAAI1lB,MAAK,GAAkB,CACzB,MAAMulE,EAAYvlE,MAAK,GAAiBwlE,yBACxC,IAAK,MAAMC,KAAYF,EAAW,CAChC,MAAM,GACJt0D,GACEw0D,EAAS1/D,KACT4/D,EAAoBjqD,IAAIzK,IAAOjR,MAAK,GAAW68B,2BAA2B5rB,IAG9Ew0D,EAASI,MACX,CACF,CACA7lE,MAAK,KACDA,KAAK2pB,UACP3pB,KAAKwlB,IAAIoN,QAAS,GAEpB5yB,MAAK,IAAe,CACtB,CACA,qBAAA4lE,CAAsB30D,GACpB,OAAOjR,MAAK,IAAkB4lE,sBAAsB30D,IAAO,IAC7D,CACA,eAAAgiB,CAAgB/L,GACQlnB,MAAK,GAAWq7B,cAChBnU,GAGtBlnB,MAAK,GAAWizB,gBAAgB/L,EAClC,CACA,WAAAsV,GACEx8B,KAAKwlB,IAAInL,iBAAiB,cAAera,MAAK,IAC9CA,KAAKwlB,IAAInL,iBAAiB,YAAara,MAAK,GAC9C,CACA,YAAAu8B,GACEv8B,KAAKwlB,IAAIlL,oBAAoB,cAAeta,MAAK,IACjDA,KAAKwlB,IAAIlL,oBAAoB,YAAata,MAAK,GACjD,CACA,MAAA8lE,CAAO5+C,GACLlnB,MAAK,GAASqV,IAAI6R,EAAOjW,GAAIiW,GAC7B,MAAM,oBACJxB,GACEwB,EACAxB,GAAuB1lB,MAAK,GAAW68B,2BAA2BnX,IACpE1lB,MAAK,GAAW88B,+BAA+B5V,EAEnD,CACA,MAAA6+C,CAAO7+C,GACLlnB,MAAK,GAASmW,OAAO+Q,EAAOjW,IAC5BjR,MAAK,IAAuBgmE,yBAAyB9+C,EAAO6L,aACvD/yB,MAAK,IAAgBknB,EAAOxB,qBAC/B1lB,MAAK,GAAW48B,4BAA4B1V,EAEhD,CACA,MAAAzD,CAAOyD,GACLlnB,KAAK+lE,OAAO7+C,GACZlnB,MAAK,GAAWkyB,aAAahL,GACzBA,EAAO1B,IAAI+M,SAAS9nB,SAAS+nB,gBAC/BrZ,YAAW,KACTnZ,MAAK,GAAWg6B,oBAAoB,GACnC,GAEL9S,EAAO1B,IAAI/B,SACXyD,EAAOR,iBAAkB,EACpB1mB,MAAK,IACRA,KAAKmlE,sBAAqB,EAE9B,CACA,YAAA/zC,CAAalK,GACPA,EAAOtC,SAAW5kB,OAGlBknB,EAAOxB,sBACT1lB,MAAK,GAAW48B,4BAA4B1V,EAAOxB,qBACnD1C,EAAQU,iBAAiBuD,wBAAwBC,GACjDA,EAAOxB,oBAAsB,MAE/B1lB,KAAK8lE,OAAO5+C,GACZA,EAAOtC,QAAQmhD,OAAO7+C,GACtBA,EAAOiC,UAAUnpB,MACbknB,EAAO1B,KAAO0B,EAAOR,kBACvBQ,EAAO1B,IAAI/B,SACXzjB,KAAKwlB,IAAIwG,OAAO9E,EAAO1B,MAE3B,CACA,GAAA5O,CAAIsQ,GAIF,GAHAlnB,KAAKoxB,aAAalK,GAClBlnB,MAAK,GAAW28B,UAAUzV,GAC1BlnB,KAAK8lE,OAAO5+C,IACPA,EAAOR,gBAAiB,CAC3B,MAAMlB,EAAM0B,EAAOzS,SACnBzU,KAAKwlB,IAAIwG,OAAOxG,GAChB0B,EAAOR,iBAAkB,CAC3B,CACAQ,EAAO2B,oBACP3B,EAAOuK,YACPzxB,MAAK,GAAWsnB,uBAAuBJ,EACzC,CACA,eAAAgK,CAAgBhK,GACd,IAAKA,EAAOR,gBACV,OAEF,MAAM,cACJ8L,GACE/nB,SACAyc,EAAO1B,IAAI+M,SAASC,KACtBtL,EAAO/B,qBAAsB,EAC7BhM,YAAW,KACJ+N,EAAO1B,IAAI+M,SAAS9nB,SAAS+nB,eAQhCtL,EAAO/B,qBAAsB,GAP7B+B,EAAO1B,IAAInL,iBAAiB,WAAW,KACrC6M,EAAO/B,qBAAsB,CAAI,GAChC,CACDwV,MAAM,IAERnI,EAAcC,QAGhB,GACC,IAELvL,EAAOrB,oBAAsB7lB,MAAK,IAAuBimE,iBAAiBjmE,KAAKwlB,IAAK0B,EAAO1B,IAAK0B,EAAO6L,YAAY,EACrH,CACA,YAAAgK,CAAa7V,GACPA,EAAO4K,mBACT5K,EAAO6K,UAEP/xB,KAAK4W,IAAIsQ,EAEb,CACA,iBAAAg/C,CAAkBh/C,GAKhBlnB,KAAK8oB,YAAY,CACfwE,IALU,IAAMpG,EAAOhC,WAAW6M,QAAQ7K,GAM1CqG,KALW,KACXrG,EAAOzD,QAAQ,EAKf+J,UAAU,GAEd,CACA,SAAAnG,GACE,OAAOrnB,MAAK,GAAW4zB,OACzB,CACA,IAAiBlnB,GACf,OAAQ1M,MAAK,GAAWy9B,WACtB,KAAKr2B,EAAMjc,qBAAqB8H,SAC9B,OAAO,IAAIuxE,EAAUO,eAAer4D,GACtC,KAAKtF,EAAMjc,qBAAqBgI,IAC9B,OAAO,IAAIsxE,EAAKO,UAAUt4D,GAC5B,KAAKtF,EAAMjc,qBAAqB+H,MAC9B,OAAO,IAAIwxE,EAAOO,YAAYv4D,GAElC,OAAO,IACT,CACA,WAAAy5D,CAAYlqC,EAAMvvB,GAChB1M,MAAK,GAAWm8B,cAAcF,GAC9Bj8B,MAAK,GAAWg8B,WAAWC,GAC3B,MAAM,QACJroB,EAAO,QACPC,GACE7T,MAAK,KACHiR,EAAKjR,KAAKqnB,YACVH,EAASlnB,MAAK,GAAiB,CACnC4kB,OAAQ5kB,KACRiR,KACAuV,EAAG5S,EACH6S,EAAG5S,EACH4R,UAAWzlB,MAAK,GAChB4lB,YAAY,KACTlZ,IAEDwa,GACFlnB,KAAK4W,IAAIsQ,EAEb,CACA,WAAA+K,CAAYlsB,GACV,OAAQA,EAAKqgE,gBAAkBrgE,EAAKsgE,sBAClC,KAAKj/D,EAAMjc,qBAAqB8H,SAC9B,OAAOuxE,EAAUO,eAAe9yC,YAAYlsB,EAAM/F,KAAMA,MAAK,IAC/D,KAAKoH,EAAMjc,qBAAqBgI,IAC9B,OAAOsxE,EAAKO,UAAU/yC,YAAYlsB,EAAM/F,KAAMA,MAAK,IACrD,KAAKoH,EAAMjc,qBAAqB+H,MAC9B,OAAOwxE,EAAOO,YAAYhzC,YAAYlsB,EAAM/F,KAAMA,MAAK,IAE3D,OAAO,IACT,CACA,IAAuBka,EAAO0L,GAC5B,MAAM3U,EAAKjR,KAAKqnB,YACVH,EAASlnB,MAAK,GAAiB,CACnC4kB,OAAQ5kB,KACRiR,KACAuV,EAAGtM,EAAMtG,QACT6S,EAAGvM,EAAMrG,QACT4R,UAAWzlB,MAAK,GAChB4lB,eAKF,OAHIsB,GACFlnB,KAAK4W,IAAIsQ,GAEJA,CACT,CACA,MACE,MAAM,EACJV,EAAC,EACDC,EAAC,MACDjG,EAAK,OACLC,GACEzgB,KAAKwlB,IAAIgF,wBACPsiB,EAAM9+C,KAAKiV,IAAI,EAAGujB,GAClBwmB,EAAMh/C,KAAKiV,IAAI,EAAGwjB,GAGlB6d,GAAWwI,EAFL9+C,KAAKuS,IAAI0N,OAAOq4D,WAAY9/C,EAAIhG,IAEd,EAAIgG,EAC5B+d,GAAWyI,EAFLh/C,KAAKuS,IAAI0N,OAAOs4D,YAAa9/C,EAAIhG,IAEf,EAAIgG,GAC3B7S,EAASC,GAAW7T,KAAK2U,SAAShB,SAAW,KAAQ,EAAI,CAAC2wB,EAASC,GAAW,CAACA,EAASD,GAC/F,MAAO,CACL1wB,UACAC,UAEJ,CACA,YAAAuoB,GACEp8B,MAAK,GAAuBA,MAAK,MAAmB,EACtD,CACA,WAAAopB,CAAYlC,GACVlnB,MAAK,GAAWopB,YAAYlC,EAC9B,CACA,cAAA+J,CAAe/J,GACblnB,MAAK,GAAWixB,eAAe/J,EACjC,CACA,UAAAuJ,CAAWvJ,GACT,OAAOlnB,MAAK,GAAWywB,WAAWvJ,EACpC,CACA,QAAAoL,CAASpL,GACPlnB,MAAK,GAAWsyB,SAASpL,EAC3B,CACA,SAAAy9C,CAAUzqD,GACR,MAAM,MACJ3Y,GACE6F,EAAM7c,YAAY6W,SACD,IAAjB8Y,EAAMiS,QAAgBjS,EAAMkS,SAAW7qB,GAGvC2Y,EAAMmP,SAAWrpB,KAAKwlB,KAGrBxlB,MAAK,KAGVA,MAAK,IAAkB,EAClBA,MAAK,GAINA,MAAK,GAAWy9B,YAAcr2B,EAAMjc,qBAAqB+H,MAI7D8M,MAAK,GAAuBka,GAAO,GAHjCla,MAAK,GAAWg5B,cAJhBh5B,MAAK,IAAc,EAQvB,CACA,WAAAwwB,CAAYtW,GACV,GAAIla,MAAK,GAEP,YADAA,MAAK,IAAkB,GAGzB,MAAM,MACJuB,GACE6F,EAAM7c,YAAY6W,SACtB,GAAqB,IAAjB8Y,EAAMiS,QAAgBjS,EAAMkS,SAAW7qB,EACzC,OAEF,GAAI2Y,EAAMmP,SAAWrpB,KAAKwlB,IACxB,OAEFxlB,MAAK,IAAkB,EACvB,MAAMknB,EAASlnB,MAAK,GAAWq7B,YAC/Br7B,MAAK,IAAeknB,GAAUA,EAAOyC,SACvC,CACA,aAAAc,CAAcvD,EAAQV,EAAGC,GACvB,MAAMkT,EAAQ35B,MAAK,GAAWi6B,WAAWzT,EAAGC,GAC5C,OAAc,OAAVkT,GAAkBA,IAAU35B,OAGhC25B,EAAMvI,aAAalK,IACZ,EACT,CACA,OAAA1Y,GACMxO,MAAK,GAAWq7B,aAAazW,SAAW5kB,OAC1CA,MAAK,GAAW0pB,iBAChB1pB,MAAK,GAAWizB,gBAAgB,OAElC,IAAK,MAAM/L,KAAUlnB,MAAK,GAAS2Y,SACjC3Y,MAAK,IAAuBgmE,yBAAyB9+C,EAAO6L,YAC5D7L,EAAOiC,UAAU,MACjBjC,EAAOR,iBAAkB,EACzBQ,EAAO1B,IAAI/B,SAEbzjB,KAAKwlB,IAAM,KACXxlB,MAAK,GAAS+Y,QACd/Y,MAAK,GAAW+7B,YAAY/7B,KAC9B,CACA,MACEA,MAAK,IAAgB,EACrB,IAAK,MAAMknB,KAAUlnB,MAAK,GAAS2Y,SAC7BuO,EAAOyC,WACTzC,EAAOzD,SAGXzjB,MAAK,IAAgB,CACvB,CACA,MAAAyU,EAAO,SACLE,IAEA3U,KAAK2U,SAAWA,GAChB,EAAIrN,EAAek4B,oBAAoBx/B,KAAKwlB,IAAK7Q,GACjD,IAAK,MAAMuS,KAAUlnB,MAAK,GAAWy8B,WAAWz8B,KAAK0S,WACnD1S,KAAK4W,IAAIsQ,GAEXlnB,KAAKg8B,YACP,CACA,MAAAxX,EAAO,SACL7P,IAEA3U,MAAK,GAAW0pB,iBAChB1pB,KAAK2U,SAAWA,GAChB,EAAIrN,EAAek4B,oBAAoBx/B,KAAKwlB,IAAK,CAC/C7R,SAAUgB,EAAShB,WAErB3T,KAAKg8B,YACP,CACA,kBAAI3V,GACF,MAAM,UACJN,EAAS,WACTC,GACEhmB,KAAK2U,SAASmR,QAClB,MAAO,CAACC,EAAWC,EACrB,EAEFj9B,EAAQw7E,sBAAwBA,CAEzB,EAED,CAAEz7E,EAAyBC,EAASmd,KAI1Cld,OAAOC,eAAeF,EAAS,aAAc,CAC3CG,OAAO,IAETH,EAAQg8E,oBAAiB,EACzB,IAAI39D,EAAQlB,EAAoB,GAC5B4e,EAAS5e,EAAoB,GAC7B8c,EAAU9c,EAAoB,GAC9BsgE,EAAoBtgE,EAAoB,IAC5C,MAAM6+D,UAAuB/hD,EAAQU,iBACnC,IAAsB1jB,KAAKymE,cAActmD,KAAKngB,MAC9C,IAAuBA,KAAK0mE,eAAevmD,KAAKngB,MAChD,IAAuBA,KAAK2mE,eAAexmD,KAAKngB,MAChD,IAAyBA,KAAK4mE,iBAAiBzmD,KAAKngB,MACpD,IACA,IAAW,GACX,IAAe,GAAGA,KAAKiR,YACvB,IACA,IAAe,KACf5C,+BAAiC,GACjCA,wBAA0B,EAC1BA,qBAAuB,KACvBA,wBAA0B,GAC1B,2BAAWkqB,GACT,MAAMC,EAAQusC,EAAe7kE,UACvBu4B,EAAe3B,GAAQA,EAAKnN,UAC5BgP,EAAQ7T,EAAOwO,0BAA0BsF,gBACzCC,EAAM/T,EAAOwO,0BAA0BwF,cAC7C,OAAO,EAAI1xB,EAAM5W,QAAQwP,KAAM,mBAAoB,IAAI8kB,EAAOsO,gBAAgB,CAAC,CAAC,CAAC,SAAU,aAAc,SAAU,cAAeoF,EAAM9O,eAAgB,CACtJqN,SAAS,IACP,CAAC,CAAC,aAAc,iBAAkB,SAAU,cAAeyB,EAAM9O,gBAAiB,CAAC,CAAC,YAAa,iBAAkB8O,EAAMquC,gBAAiB,CAC5I7vC,KAAM,EAAE2B,EAAO,GACf1B,QAASwB,IACP,CAAC,CAAC,iBAAkB,uBAAwBD,EAAMquC,gBAAiB,CACrE7vC,KAAM,EAAE6B,EAAK,GACb5B,QAASwB,IACP,CAAC,CAAC,aAAc,kBAAmBD,EAAMquC,gBAAiB,CAC5D7vC,KAAM,CAAC2B,EAAO,GACd1B,QAASwB,IACP,CAAC,CAAC,kBAAmB,wBAAyBD,EAAMquC,gBAAiB,CACvE7vC,KAAM,CAAC6B,EAAK,GACZ5B,QAASwB,IACP,CAAC,CAAC,UAAW,eAAgBD,EAAMquC,gBAAiB,CACtD7vC,KAAM,CAAC,GAAI2B,GACX1B,QAASwB,IACP,CAAC,CAAC,eAAgB,qBAAsBD,EAAMquC,gBAAiB,CACjE7vC,KAAM,CAAC,GAAI6B,GACX5B,QAASwB,IACP,CAAC,CAAC,YAAa,iBAAkBD,EAAMquC,gBAAiB,CAC1D7vC,KAAM,CAAC,EAAG2B,GACV1B,QAASwB,IACP,CAAC,CAAC,iBAAkB,uBAAwBD,EAAMquC,gBAAiB,CACrE7vC,KAAM,CAAC,EAAG6B,GACV5B,QAASwB,MAEb,CACApqB,aAAe,WACf,WAAApO,CAAYyM,GACVhM,MAAM,IACDgM,EACH3M,KAAM,mBAERC,MAAK,GAAS0M,EAAO4qB,OAASytC,EAAe+B,eAAiB9jD,EAAQU,iBAAiBoD,kBACvF9mB,MAAK,GAAY0M,EAAOghC,UAAYq3B,EAAegC,gBACrD,CACA,iBAAOx/C,CAAWC,GAChBxE,EAAQU,iBAAiB6D,WAAWC,EAAM,CACxCC,QAAS,CAAC,6BAA8B,kCAE1C,MAAME,EAAQC,iBAAiBnd,SAASod,iBACxC7nB,KAAKgnE,iBAAmBl/C,WAAWH,EAAMI,iBAAiB,sBAC5D,CACA,0BAAOC,CAAoB71B,EAAMjJ,GAC/B,OAAQiJ,GACN,KAAKiV,EAAM/b,2BAA2BiI,cACpCyxE,EAAegC,iBAAmB79E,EAClC,MACF,KAAKke,EAAM/b,2BAA2BkI,eACpCwxE,EAAe+B,cAAgB59E,EAGrC,CACA,YAAAwpC,CAAavgC,EAAMjJ,GACjB,OAAQiJ,GACN,KAAKiV,EAAM/b,2BAA2BiI,cACpC0M,MAAK,GAAgB9W,GACrB,MACF,KAAKke,EAAM/b,2BAA2BkI,eACpCyM,MAAK,GAAa9W,GAGxB,CACA,oCAAWg/B,GACT,MAAO,CAAC,CAAC9gB,EAAM/b,2BAA2BiI,cAAeyxE,EAAegC,kBAAmB,CAAC3/D,EAAM/b,2BAA2BkI,eAAgBwxE,EAAe+B,eAAiB9jD,EAAQU,iBAAiBoD,mBACxM,CACA,sBAAIyB,GACF,MAAO,CAAC,CAACnhB,EAAM/b,2BAA2BiI,cAAe0M,MAAK,IAAY,CAACoH,EAAM/b,2BAA2BkI,eAAgByM,MAAK,IACnI,CACA,IAAgB0tC,GACd,MAAMu5B,EAAcvvD,IAClB1X,KAAKknE,UAAUv/C,MAAM+lB,SAAW,QAAQh2B,6BACxC1X,KAAKiqB,UAAU,IAAKvS,EAAO1X,MAAK,IAAaA,KAAKkrB,aAClDlrB,MAAK,GAAY0X,EACjB1X,MAAK,IAAsB,EAEvBmnE,EAAgBnnE,MAAK,GAC3BA,KAAK8oB,YAAY,CACfwE,IAAK,KACH25C,EAAYv5B,EAAS,EAEvBngB,KAAM,KACJ05C,EAAYE,EAAc,EAE5B35C,UAAU,EACVr7B,KAAMiV,EAAM/b,2BAA2BiI,cACvC0iC,qBAAqB,EACrBC,UAAU,GAEd,CACA,IAAaqB,GACX,MAAM8vC,EAAapnE,MAAK,GACxBA,KAAK8oB,YAAY,CACfwE,IAAK,KACHttB,MAAK,GAASA,KAAKknE,UAAUv/C,MAAM2P,MAAQA,CAAK,EAElD/J,KAAM,KACJvtB,MAAK,GAASA,KAAKknE,UAAUv/C,MAAM2P,MAAQ8vC,CAAU,EAEvD55C,UAAU,EACVr7B,KAAMiV,EAAM/b,2BAA2BkI,eACvCyiC,qBAAqB,EACrBC,UAAU,GAEd,CACA,eAAA4wC,CAAgBrgD,EAAGC,GACjBzmB,KAAKklB,WAAW+T,yBAAyBzS,EAAGC,GAAG,EACjD,CACA,qBAAAoF,GACE,MAAMnY,EAAQ1T,KAAKkrB,YACnB,MAAO,EAAE65C,EAAeiC,iBAAmBtzD,IAASqxD,EAAeiC,iBAAmBhnE,MAAK,IAAa0T,EAC1G,CACA,OAAAqe,GACO/xB,KAAK4kB,SAGVlkB,MAAMqxB,UACW,OAAb/xB,KAAKwlB,MAGJxlB,KAAK0mB,iBACR1mB,KAAK4kB,OAAOhO,IAAI5W,OAEpB,CACA,cAAA0xB,GACM1xB,KAAK4xB,iBAGT5xB,KAAK4kB,OAAO2W,iBAAgB,GAC5Bv7B,KAAK4kB,OAAOuX,cAAc/0B,EAAMjc,qBAAqB8H,UACrDyN,MAAMgxB,iBACN1xB,KAAKqnE,WAAW5+C,UAAUhF,OAAO,WACjCzjB,KAAKknE,UAAUI,iBAAkB,EACjCtnE,KAAKwoB,cAAe,EACpBxoB,KAAKwlB,IAAI+hD,gBAAgB,yBACzBvnE,KAAKknE,UAAU7sD,iBAAiB,UAAWra,MAAK,IAChDA,KAAKknE,UAAU7sD,iBAAiB,QAASra,MAAK,IAC9CA,KAAKknE,UAAU7sD,iBAAiB,OAAQra,MAAK,IAC7CA,KAAKknE,UAAU7sD,iBAAiB,QAASra,MAAK,IAChD,CACA,eAAA2xB,GACO3xB,KAAK4xB,iBAGV5xB,KAAK4kB,OAAO2W,iBAAgB,GAC5B76B,MAAMixB,kBACN3xB,KAAKqnE,WAAW5+C,UAAU7R,IAAI,WAC9B5W,KAAKknE,UAAUI,iBAAkB,EACjCtnE,KAAKwlB,IAAI6J,aAAa,wBAAyBrvB,MAAK,IACpDA,KAAKwoB,cAAe,EACpBxoB,KAAKknE,UAAU5sD,oBAAoB,UAAWta,MAAK,IACnDA,KAAKknE,UAAU5sD,oBAAoB,QAASta,MAAK,IACjDA,KAAKknE,UAAU5sD,oBAAoB,OAAQta,MAAK,IAChDA,KAAKknE,UAAU5sD,oBAAoB,QAASta,MAAK,IACjDA,KAAKwlB,IAAIiN,MAAM,CACb+0C,eAAe,IAEjBxnE,KAAKgzB,WAAY,EACjBhzB,KAAK4kB,OAAOY,IAAIiD,UAAU7R,IAAI,mBAChC,CACA,OAAAmO,CAAQ7K,GACDla,KAAKmlB,sBAGVzkB,MAAMqkB,QAAQ7K,GACVA,EAAMmP,SAAWrpB,KAAKknE,WACxBlnE,KAAKknE,UAAUz0C,QAEnB,CACA,SAAAhB,GACMzxB,KAAKwgB,MACPxgB,MAAK,MAGPA,KAAK0xB,iBACL1xB,KAAKknE,UAAUz0C,QACXzyB,KAAKilB,iBAAiBW,YACxB5lB,KAAK2oB,SAEP3oB,KAAKilB,gBAAkB,KACzB,CACA,OAAA0E,GACE,OAAQ3pB,KAAKknE,WAAiD,KAApClnE,KAAKknE,UAAUl3C,UAAUmV,MACrD,CACA,MAAA1hB,GACEzjB,KAAKgzB,WAAY,EACbhzB,KAAK4kB,SACP5kB,KAAK4kB,OAAO2W,iBAAgB,GAC5Bv7B,KAAK4kB,OAAOY,IAAIiD,UAAU7R,IAAI,oBAEhClW,MAAM+iB,QACR,CACA,MACE,MAAMgkD,EAAOznE,KAAKknE,UAAU9+B,qBAAqB,OACjD,GAAoB,IAAhBq/B,EAAKn7E,OACP,OAAO0T,KAAKknE,UAAUl3C,UAExB,MAAM9+B,EAAS,GACf,IAAK,MAAMs0B,KAAOiiD,EAChBv2E,EAAOQ,KAAK8zB,EAAIwK,UAAUnV,QAAQ,WAAY,KAEhD,OAAO3pB,EAAO1D,KAAK,KACrB,CACA,MACE,MAAO88B,EAAaC,GAAgBvqB,KAAKumB,iBACzC,IAAI1iB,EACJ,GAAI7D,KAAK0mB,gBACP7iB,EAAO7D,KAAKwlB,IAAIgF,4BACX,CACL,MAAM,aACJzB,EAAY,IACZvD,GACExlB,KACE0nE,EAAeliD,EAAImC,MAAMggD,QAC/BniD,EAAImC,MAAMggD,QAAU,SACpB5+C,EAAavD,IAAIwG,OAAOhsB,KAAKwlB,KAC7B3hB,EAAO2hB,EAAIgF,wBACXhF,EAAI/B,SACJ+B,EAAImC,MAAMggD,QAAUD,CACtB,CACI1nE,KAAK2T,SAAW,KAAQ3T,KAAK4oB,eAAiB,KAChD5oB,KAAKwgB,MAAQ3c,EAAK2c,MAAQ8J,EAC1BtqB,KAAKygB,OAAS5c,EAAK4c,OAAS8J,IAE5BvqB,KAAKwgB,MAAQ3c,EAAK4c,OAAS6J,EAC3BtqB,KAAKygB,OAAS5c,EAAK2c,MAAQ+J,GAE7BvqB,KAAK6oB,mBACP,CACA,MAAAe,GACE,IAAK5pB,KAAK4xB,eACR,OAEFlxB,MAAMkpB,SACN5pB,KAAK2xB,kBACL,MAAMi2C,EAAY5nE,MAAK,GACjB6nE,EAAU7nE,MAAK,GAAWA,MAAK,KAAe8nE,UACpD,GAAIF,IAAcC,EAChB,OAEF,MAAME,EAAUzkC,IACdtjC,MAAK,GAAWsjC,EACXA,GAILtjC,MAAK,KACLA,KAAKklB,WAAW6M,QAAQ/xB,MACxBA,MAAK,MALHA,KAAKyjB,QAKoB,EAE7BzjB,KAAK8oB,YAAY,CACfwE,IAAK,KACHy6C,EAAQF,EAAQ,EAElBt6C,KAAM,KACJw6C,EAAQH,EAAU,EAEpBp6C,UAAU,IAEZxtB,MAAK,IACP,CACA,uBAAA6xB,GACE,OAAO7xB,KAAK4xB,cACd,CACA,eAAAkB,GACE9yB,KAAK0xB,iBACL1xB,KAAKknE,UAAUz0C,OACjB,CACA,QAAAu1C,CAAS9tD,GACPla,KAAK8yB,iBACP,CACA,OAAAmF,CAAQ/d,GACFA,EAAMmP,SAAWrpB,KAAKwlB,KAAqB,UAAdtL,EAAMjqB,MACrC+P,KAAK8yB,kBACL5Y,EAAMsP,iBAEV,CACA,gBAAAo9C,CAAiB1sD,GACf6qD,EAAexsC,iBAAiB1B,KAAK72B,KAAMka,EAC7C,CACA,cAAAwsD,CAAexsD,GACbla,KAAKgzB,WAAY,CACnB,CACA,aAAAyzC,CAAcvsD,GACZla,KAAKgzB,WAAY,CACnB,CACA,cAAA2zC,CAAezsD,GACbla,KAAK4kB,OAAOY,IAAIiD,UAAUC,OAAO,kBAAmB1oB,KAAK2pB,UAC3D,CACA,cAAAgJ,GACE3yB,KAAKknE,UAAU73C,aAAa,OAAQ,WACpCrvB,KAAKknE,UAAUK,gBAAgB,iBACjC,CACA,aAAA10C,GACE7yB,KAAKknE,UAAU73C,aAAa,OAAQ,WACpCrvB,KAAKknE,UAAU73C,aAAa,kBAAkB,EAChD,CACA,MAAA5a,GACE,GAAIzU,KAAKwlB,IACP,OAAOxlB,KAAKwlB,IAEd,IAAIyiD,EAAOC,EACPloE,KAAKwgB,QACPynD,EAAQjoE,KAAKwmB,EACb0hD,EAAQloE,KAAKymB,GAEf/lB,MAAM+T,SACNzU,KAAKknE,UAAYz8D,SAASqhB,cAAc,OACxC9rB,KAAKknE,UAAU93C,UAAY,WAC3BpvB,KAAKknE,UAAU73C,aAAa,KAAMrvB,MAAK,IACvCA,KAAK6yB,gBACL7P,EAAQU,iBAAiB0B,aAAax1B,IAAI,gCAAgCwc,MAAKzgB,GAAOqU,KAAKknE,WAAW73C,aAAa,aAAc1jC,KACjIq3B,EAAQU,iBAAiB0B,aAAax1B,IAAI,8BAA8Bwc,MAAKzgB,GAAOqU,KAAKknE,WAAW73C,aAAa,kBAAmB1jC,KACpIqU,KAAKknE,UAAUI,iBAAkB,EACjC,MAAM,MACJ3/C,GACE3nB,KAAKknE,UAQT,GAPAv/C,EAAM+lB,SAAW,QAAQ1tC,MAAK,8BAC9B2nB,EAAM2P,MAAQt3B,MAAK,GACnBA,KAAKwlB,IAAIwG,OAAOhsB,KAAKknE,WACrBlnE,KAAKqnE,WAAa58D,SAASqhB,cAAc,OACzC9rB,KAAKqnE,WAAW5+C,UAAU7R,IAAI,UAAW,WACzC5W,KAAKwlB,IAAIwG,OAAOhsB,KAAKqnE,aACrB,EAAIviD,EAAOyL,YAAYvwB,KAAMA,KAAKwlB,IAAK,CAAC,WAAY,YAChDxlB,KAAKwgB,MAAO,CACd,MAAO8J,EAAaC,GAAgBvqB,KAAKumB,iBACzC,GAAIvmB,KAAK0lB,oBAAqB,CAC5B,MAAM,SACJya,GACEngC,MAAK,GACT,IAAK8pB,EAAIC,GAAM/pB,KAAK6rB,yBACnB/B,EAAIC,GAAM/pB,KAAKirB,wBAAwBnB,EAAIC,GAC5C,MAAOhE,EAAWC,GAAchmB,KAAKqmB,gBAC9BJ,EAAOC,GAASlmB,KAAKsmB,gBAC5B,IAAI6hD,EAAMC,EACV,OAAQpoE,KAAK2T,UACX,KAAK,EACHw0D,EAAOF,GAAS9nC,EAAS,GAAKla,GAASF,EACvCqiD,EAAOF,EAAQloE,KAAKygB,QAAU0f,EAAS,GAAKja,GAASF,EACrD,MACF,KAAK,GACHmiD,EAAOF,GAAS9nC,EAAS,GAAKla,GAASF,EACvCqiD,EAAOF,GAAS/nC,EAAS,GAAKja,GAASF,GACtC8D,EAAIC,GAAM,CAACA,GAAKD,GACjB,MACF,KAAK,IACHq+C,EAAOF,EAAQjoE,KAAKwgB,OAAS2f,EAAS,GAAKla,GAASF,EACpDqiD,EAAOF,GAAS/nC,EAAS,GAAKja,GAASF,GACtC8D,EAAIC,GAAM,EAAED,GAAKC,GAClB,MACF,KAAK,IACHo+C,EAAOF,GAAS9nC,EAAS,GAAKla,EAAQjmB,KAAKygB,OAASuF,GAAcD,EAClEqiD,EAAOF,GAAS/nC,EAAS,GAAKja,EAAQlmB,KAAKwgB,MAAQuF,GAAaC,GAC/D8D,EAAIC,GAAM,EAAEA,EAAID,GAGrB9pB,KAAK6pB,MAAMs+C,EAAO79C,EAAa89C,EAAO79C,EAAcT,EAAIC,EAC1D,MACE/pB,KAAK6pB,MAAMo+C,EAAQ39C,EAAa49C,EAAQ39C,EAAcvqB,KAAKwgB,MAAQ8J,EAAatqB,KAAKygB,OAAS8J,GAEhGvqB,MAAK,KACLA,KAAKwoB,cAAe,EACpBxoB,KAAKknE,UAAUI,iBAAkB,CACnC,MACEtnE,KAAKwoB,cAAe,EACpBxoB,KAAKknE,UAAUI,iBAAkB,EAEnC,OAAOtnE,KAAKwlB,GACd,CACA,MAEE,GADAxlB,KAAKknE,UAAUmB,kBACVroE,MAAK,GAGV,IAAK,MAAMsoE,KAAQtoE,MAAK,GAAS02B,MAAM,MAAO,CAC5C,MAAMlR,EAAM/a,SAASqhB,cAAc,OACnCtG,EAAIwG,OAAOs8C,EAAO79D,SAAS89D,eAAeD,GAAQ79D,SAASqhB,cAAc,OACzE9rB,KAAKknE,UAAUl7C,OAAOxG,EACxB,CACF,CACA,cAAIuN,GACF,OAAO/yB,KAAKknE,SACd,CACA,kBAAOj1C,CAAYlsB,EAAM6e,EAAQa,GAC/B,IAAI7Y,EAAc,KAClB,GAAI7G,aAAgBygE,EAAkBgC,0BAA2B,CAC/D,MACEziE,MACE0iE,uBAAuB,SACrB/6B,EAAQ,UACRg7B,GACD,KACD7kE,EAAI,SACJ8P,EAAQ,GACR1C,GACD,YACD0G,EAAW,aACXgxD,EACA/jD,QACE5G,MAAM,WACJpN,KAGF7K,EACJ,IAAK4R,GAAsC,IAAvBA,EAAYrrB,OAC9B,OAAO,KAETsgB,EAAc7G,EAAO,CACnBqgE,eAAgBh/D,EAAMjc,qBAAqB8H,SAC3CqkC,MAAOz1B,MAAMg5D,KAAK6N,GAClBh7B,WACAxkD,MAAOyuB,EAAYnqB,KAAK,MACxB2yC,SAAUwoC,EACVj2D,UAAW9B,EAAa,EACxB/M,OACA8P,WACA1C,KACA0V,SAAS,EAEb,CACA,MAAMO,EAASxmB,MAAMuxB,YAAYlsB,EAAM6e,EAAQa,GAM/C,OALAyB,GAAO,GAAYnhB,EAAK2nC,SACxBxmB,GAAO,GAAS9f,EAAMhe,KAAK2Y,gBAAgBgE,EAAKuxB,OAChDpQ,GAAO,GAAWnhB,EAAK7c,MACvBg+B,EAAOxB,oBAAsB3f,EAAKkL,IAAM,KACxCiW,GAAO,GAAeta,EACfsa,CACT,CACA,SAAA3C,CAAUyN,GAAe,GACvB,GAAIhyB,KAAK2pB,UACP,OAAO,KAET,GAAI3pB,KAAK2mB,QACP,MAAO,CACLjU,UAAW1S,KAAK0S,UAChBzB,GAAIjR,KAAK0lB,oBACTiB,SAAS,GAGb,MAAMiiD,EAAU7D,EAAeiC,iBAAmBhnE,KAAKkrB,YACjDrnB,EAAO7D,KAAKqxB,QAAQu3C,EAASA,GAC7BtxC,EAAQtU,EAAQU,iBAAiBqD,cAAcsQ,QAAQr3B,KAAK0mB,gBAAkBkB,iBAAiB5nB,KAAKknE,WAAW5vC,MAAQt3B,MAAK,IAC5HskB,EAAa,CACjB8hD,eAAgBh/D,EAAMjc,qBAAqB8H,SAC3CqkC,QACAoW,SAAU1tC,MAAK,GACf9W,MAAO8W,MAAK,GACZ0S,UAAW1S,KAAK0S,UAChB7O,OACA8P,SAAU3T,KAAK2T,SACfk1D,mBAAoB7oE,KAAK6lB,qBAE3B,OAAImM,EACK1N,EAELtkB,KAAK0lB,sBAAwB1lB,MAAK,GAAmBskB,GAChD,MAETA,EAAWrT,GAAKjR,KAAK0lB,oBACdpB,EACT,CACA,IAAmBA,GACjB,MAAM,MACJp7B,EAAK,SACLwkD,EAAQ,MACRpW,EAAK,KACLzzB,EAAI,UACJ6O,GACE1S,MAAK,GACT,OAAOskB,EAAWp7B,QAAUA,GAASo7B,EAAWopB,WAAaA,GAAYppB,EAAWzgB,KAAKy3B,MAAK,CAAC9U,EAAGz4B,IAAMC,KAAKqX,IAAImhB,EAAI3iB,EAAK9V,KAAO,KAAMu2B,EAAWgT,MAAMgE,MAAK,CAACh4B,EAAGvV,IAAMuV,IAAMg0B,EAAMvpC,MAAOu2B,EAAW5R,YAAcA,CACrN,CACA,IAAkBwG,GAAU,GAC1B,IAAKlZ,KAAK0lB,oBACR,OAGF,GADA1lB,MAAK,MACAkZ,IAA2B,IAAflZ,KAAKwgB,OAA+B,IAAhBxgB,KAAKygB,QAExC,YADAtH,YAAW,IAAMnZ,MAAK,IAAkB,IAAO,GAGjD,MAAM4oE,EAAU7D,EAAeiC,iBAAmBhnE,KAAKkrB,YACvDlrB,MAAK,GAAa6D,KAAO7D,KAAKqxB,QAAQu3C,EAASA,EACjD,EAEF7/E,EAAQg8E,eAAiBA,CAElB,EAED,CAAEj8E,EAAyBC,EAASmd,KAI1Cld,OAAOC,eAAeF,EAAS,aAAc,CAC3CG,OAAO,IAETH,EAAQ+/E,uBAAyB//E,EAAQggF,qBAAuBhgF,EAAQy/E,0BAA4Bz/E,EAAQigF,qBAAkB,EAC9H,IAAI5hE,EAAQlB,EAAoB,GAC5BoB,EAAiBpB,EAAoB,GACrCmB,EAAsBnB,EAAoB,GAC1C+iE,EAAmB/iE,EAAoB,IACvCgjE,EAAqBhjE,EAAoB,IACzCijE,EAAajjE,EAAoB,IACrC,MAAMkjE,EAAoB,IAEpBC,EAAuB,IAAI/nD,QACjC,SAASgoD,EAAYzlE,GACnB,MAAO,CACL2c,MAAO3c,EAAK,GAAKA,EAAK,GACtB4c,OAAQ5c,EAAK,GAAKA,EAAK,GAE3B,CACA,MAAM0lE,EACJ,aAAOv5E,CAAOu1B,GAEZ,OADgBA,EAAWxf,KAAKqgE,gBAE9B,KAAKh/D,EAAMvc,eAAeoK,KACxB,OAAO,IAAIu0E,EAAsBjkD,GACnC,KAAKne,EAAMvc,eAAemK,KACxB,OAAO,IAAIy0E,EAAsBlkD,GACnC,KAAKne,EAAMvc,eAAemL,OAExB,OADkBuvB,EAAWxf,KAAK2jE,WAEhC,IAAK,KACH,OAAO,IAAIC,EAA4BpkD,GACzC,IAAK,MACH,OAAIA,EAAWxf,KAAK6jE,YACX,IAAIC,EAAmCtkD,GACrCA,EAAWxf,KAAK+jE,SAClB,IAAIC,EAAgCxkD,GAEtC,IAAIykD,EAAkCzkD,GAC/C,IAAK,KACH,OAAO,IAAI0kD,EAA8B1kD,GAC3C,IAAK,MACH,OAAO,IAAI2kD,EAAiC3kD,GAEhD,OAAO,IAAI4kD,EAAwB5kD,GACrC,KAAKne,EAAMvc,eAAe+K,MACxB,OAAO,IAAIw0E,EAAuB7kD,GACpC,KAAKne,EAAMvc,eAAeoI,SACxB,OAAO,IAAIu1E,EAA0BjjD,GACvC,KAAKne,EAAMvc,eAAeqK,KACxB,OAAO,IAAIm1E,EAAsB9kD,GACnC,KAAKne,EAAMvc,eAAesK,OACxB,OAAO,IAAIm1E,EAAwB/kD,GACrC,KAAKne,EAAMvc,eAAeuK,OACxB,OAAO,IAAIm1E,EAAwBhlD,GACrC,KAAKne,EAAMvc,eAAeyK,SACxB,OAAO,IAAIk1E,EAA0BjlD,GACvC,KAAKne,EAAMvc,eAAe8K,MACxB,OAAO,IAAI80E,EAAuBllD,GACpC,KAAKne,EAAMvc,eAAesI,IACxB,OAAO,IAAI41E,EAAqBxjD,GAClC,KAAKne,EAAMvc,eAAewK,QACxB,OAAO,IAAIq1E,EAAyBnlD,GACtC,KAAKne,EAAMvc,eAAe0K,UACxB,OAAO,IAAIo1E,EAA2BplD,GACxC,KAAKne,EAAMvc,eAAe2K,UACxB,OAAO,IAAIo1E,EAA2BrlD,GACxC,KAAKne,EAAMvc,eAAe4K,SACxB,OAAO,IAAIo1E,EAA0BtlD,GACvC,KAAKne,EAAMvc,eAAe6K,UACxB,OAAO,IAAIo1E,EAA2BvlD,GACxC,KAAKne,EAAMvc,eAAeqI,MACxB,OAAO,IAAI41E,EAAuBvjD,GACpC,KAAKne,EAAMvc,eAAegL,eACxB,OAAO,IAAIk1E,EAAgCxlD,GAC7C,QACE,OAAO,IAAIylD,EAAkBzlD,GAEnC,EAEF,MAAMylD,EACJ,KAAa,EACb,WAAA/qE,CAAYslB,GAAY,aACtB0lD,GAAe,EAAK,aACpBC,GAAe,EAAK,qBACpBC,GAAuB,GACrB,CAAC,GACHnrE,KAAKirE,aAAeA,EACpBjrE,KAAK+F,KAAOwf,EAAWxf,KACvB/F,KAAK25B,MAAQpU,EAAWoU,MACxB35B,KAAKorE,YAAc7lD,EAAW6lD,YAC9BprE,KAAKqrE,gBAAkB9lD,EAAW8lD,gBAClCrrE,KAAKsrE,mBAAqB/lD,EAAW+lD,mBACrCtrE,KAAKurE,YAAchmD,EAAWgmD,YAC9BvrE,KAAK87D,WAAav2C,EAAWu2C,WAC7B97D,KAAKqQ,kBAAoBkV,EAAWlV,kBACpCrQ,KAAKwrE,gBAAkBjmD,EAAWimD,gBAClCxrE,KAAKwS,aAAe+S,EAAW/S,aAC/BxS,KAAKyrE,cAAgBlmD,EAAWmmD,aAChC1rE,KAAK4kB,OAASW,EAAWX,OACrBqmD,IACFjrE,KAAKk5B,UAAYl5B,KAAK2rE,iBAAiBT,IAErCC,GACFnrE,KAAK4rE,uBAET,CACA,oBAAOC,EAAc,SACnBC,EAAQ,YACRC,EAAW,SACXC,IAEA,SAAUF,GAAU38E,KAAO48E,GAAa58E,KAAO68E,GAAU78E,IAC3D,CACA,gBAAI88E,GACF,OAAOjB,EAAkBa,cAAc7rE,KAAK+F,KAC9C,CACA,gBAAA4lE,CAAiBT,GACf,MAAM,KACJnlE,EACA6e,QAAQ,KACN5G,EAAI,SACJrJ,IAEA3U,KACEk5B,EAAYzuB,SAASqhB,cAAc,WACzCoN,EAAU7J,aAAa,qBAAsBtpB,EAAKkL,IAC5CjR,gBAAgBmqE,IACpBjxC,EAAU5J,SAAW85C,GAEvBlwC,EAAUvR,MAAMsB,OAASjpB,KAAK4kB,OAAOqE,SACjCjpB,KAAK+F,KAAKmmE,UACZhzC,EAAU7J,aAAa,gBAAiB,UAEtCtpB,EAAKomE,UACPjzC,EAAUzQ,UAAU7R,IAAI,YAE1B,MAAM,UACJmP,EAAS,WACTC,EAAU,MACVC,EAAK,MACLC,GACEvR,EAASmR,QACb,IAAK/f,EAAKlC,MAAQ7D,gBAAgBoqE,EAAwB,CACxD,MAAM,SACJz2D,GACE5N,EAIJ,OAHKA,EAAKq8C,cAA6B,IAAbzuC,GACxB3T,KAAKosE,YAAYz4D,EAAUulB,GAEtBA,CACT,CACA,MAAM,MACJ1Y,EAAK,OACLC,GACE6oD,EAAYvjE,EAAKlC,MACfA,EAAOuD,EAAMhe,KAAKwa,cAAc,CAACmC,EAAKlC,KAAK,GAAIma,EAAKxK,KAAK,GAAKzN,EAAKlC,KAAK,GAAKma,EAAKxK,KAAK,GAAIzN,EAAKlC,KAAK,GAAIma,EAAKxK,KAAK,GAAKzN,EAAKlC,KAAK,GAAKma,EAAKxK,KAAK,KACvJ,IAAK03D,GAAgBnlE,EAAKsmE,YAAY7rD,MAAQ,EAAG,CAC/C0Y,EAAUvR,MAAM2kD,YAAc,GAAGvmE,EAAKsmE,YAAY7rD,UAClD,MAAM+rD,EAAmBxmE,EAAKsmE,YAAYG,uBACpCC,EAAiB1mE,EAAKsmE,YAAYK,qBACxC,GAAIH,EAAmB,GAAKE,EAAiB,EAAG,CAC9C,MAAME,EAAS,QAAQJ,qCAAoDE,6BAC3EvzC,EAAUvR,MAAMilD,aAAeD,CACjC,MAAO,GAAI3sE,gBAAgB6pE,EAAoC,CAC7D,MAAM8C,EAAS,QAAQnsD,qCAAyCC,6BAChEyY,EAAUvR,MAAMilD,aAAeD,CACjC,CACA,OAAQ5mE,EAAKsmE,YAAY1kD,OACvB,KAAKvgB,EAAM9b,0BAA0B6M,MACnC+gC,EAAUvR,MAAM0kD,YAAc,QAC9B,MACF,KAAKjlE,EAAM9b,0BAA0B8M,OACnC8gC,EAAUvR,MAAM0kD,YAAc,SAC9B,MACF,KAAKjlE,EAAM9b,0BAA0B+M,SACnC,EAAI+O,EAAM/V,MAAM,uCAChB,MACF,KAAK+V,EAAM9b,0BAA0BgN,OACnC,EAAI8O,EAAM/V,MAAM,qCAChB,MACF,KAAK+V,EAAM9b,0BAA0BkK,UACnC0jC,EAAUvR,MAAMklD,kBAAoB,QAKxC,MAAMC,EAAc/mE,EAAK+mE,aAAe,KACpCA,GACF9sE,MAAK,IAAa,EAClBk5B,EAAUvR,MAAMmlD,YAAc1lE,EAAMhe,KAAK2Y,aAA8B,EAAjB+qE,EAAY,GAAyB,EAAjBA,EAAY,GAAyB,EAAjBA,EAAY,KAE1G5zC,EAAUvR,MAAM2kD,YAAc,CAElC,CACApzC,EAAUvR,MAAMiD,KAAU,KAAO/mB,EAAK,GAAKoiB,GAASF,EAA7B,IACvBmT,EAAUvR,MAAMmD,IAAS,KAAOjnB,EAAK,GAAKqiB,GAASF,EAA7B,IACtB,MAAM,SACJrS,GACE5N,EAOJ,OANIA,EAAKq8C,cAA6B,IAAbzuC,GACvBulB,EAAUvR,MAAMnH,MAAW,IAAMA,EAAQuF,EAAjB,IACxBmT,EAAUvR,MAAMlH,OAAY,IAAMA,EAASuF,EAAlB,KAEzBhmB,KAAKosE,YAAYz4D,EAAUulB,GAEtBA,CACT,CACA,WAAAkzC,CAAYphD,EAAOkO,EAAYl5B,KAAKk5B,WAClC,IAAKl5B,KAAK+F,KAAKlC,KACb,OAEF,MAAM,UACJkiB,EAAS,WACTC,GACEhmB,KAAK4kB,OAAOjQ,SAASmR,SACnB,MACJtF,EAAK,OACLC,GACE6oD,EAAYtpE,KAAK+F,KAAKlC,MAC1B,IAAIkpE,EAAcC,EACdhiD,EAAQ,KAAQ,GAClB+hD,EAAe,IAAMvsD,EAAQuF,EAC7BinD,EAAgB,IAAMvsD,EAASuF,IAE/B+mD,EAAe,IAAMtsD,EAASsF,EAC9BinD,EAAgB,IAAMxsD,EAAQwF,GAEhCkT,EAAUvR,MAAMnH,MAAQ,GAAGusD,KAC3B7zC,EAAUvR,MAAMlH,OAAS,GAAGusD,KAC5B9zC,EAAU7J,aAAa,sBAAuB,IAAMrE,GAAS,IAC/D,CACA,kBAAIiiD,GACF,MAAMC,EAAW,CAACC,EAAQC,EAAWlzD,KACnC,MAAMod,EAAQpd,EAAMmzD,OAAOF,GACrB3S,EAAYljC,EAAM,GAClBg2C,EAAah2C,EAAMx0B,MAAM,GAC/BoX,EAAMmP,OAAO1B,MAAMylD,GAAanE,EAAiBsE,gBAAgB,GAAG/S,UAAkB8S,GACtFttE,KAAKqQ,kBAAkBsT,SAAS3jB,KAAK+F,KAAKkL,GAAI,CAC5C,CAACm8D,GAAYnE,EAAiBsE,gBAAgB,GAAG/S,SAAiB8S,IAClE,EAEJ,OAAO,EAAIlmE,EAAM5W,QAAQwP,KAAM,iBAAkB,CAC/C2nE,QAASztD,IACP,MAAM,QACJytD,GACEztD,EAAMmzD,OACJz6C,EAAS+0C,EAAU,GAAM,EAC/B3nE,KAAKk5B,UAAUvR,MAAMmW,WAAalL,EAAS,SAAW,UACtD5yB,KAAKqQ,kBAAkBsT,SAAS3jB,KAAK+F,KAAKkL,GAAI,CAC5Cu8D,OAAQ56C,EACR66C,QAAqB,IAAZ9F,GAA6B,IAAZA,GAC1B,EAEJzjD,MAAOhK,IACLla,KAAKqQ,kBAAkBsT,SAAS3jB,KAAK+F,KAAKkL,GAAI,CAC5Cw8D,SAAUvzD,EAAMmzD,OAAOnpD,OACvB,EAEJ0O,OAAQ1Y,IACN,MAAM,OACJ0Y,GACE1Y,EAAMmzD,OACVrtE,KAAKk5B,UAAUvR,MAAMmW,WAAalL,EAAS,SAAW,UACtD5yB,KAAKqQ,kBAAkBsT,SAAS3jB,KAAK+F,KAAKkL,GAAI,CAC5Cw8D,QAAS76C,EACT46C,OAAQ56C,GACR,EAEJH,MAAOvY,IACLf,YAAW,IAAMe,EAAMmP,OAAOoJ,MAAM,CAClC+0C,eAAe,KACb,EAAE,EAERkG,SAAUxzD,IACRA,EAAMmP,OAAOskD,MAAQzzD,EAAMmzD,OAAOK,QAAQ,EAE5CE,SAAU1zD,IACRA,EAAMmP,OAAOwkD,SAAW3zD,EAAMmzD,OAAOO,QAAQ,EAE/CE,SAAU5zD,IACRla,KAAK+tE,aAAa7zD,EAAMmP,OAAQnP,EAAMmzD,OAAOS,SAAS,EAExD3sC,QAASjnB,IACPgzD,EAAS,UAAW,kBAAmBhzD,EAAM,EAE/Cq0B,UAAWr0B,IACTgzD,EAAS,YAAa,kBAAmBhzD,EAAM,EAEjDgnB,QAAShnB,IACPgzD,EAAS,UAAW,QAAShzD,EAAM,EAErC8zD,UAAW9zD,IACTgzD,EAAS,YAAa,QAAShzD,EAAM,EAEvC4yD,YAAa5yD,IACXgzD,EAAS,cAAe,cAAehzD,EAAM,EAE/Cs0B,YAAat0B,IACXgzD,EAAS,cAAe,cAAehzD,EAAM,EAE/CvG,SAAUuG,IACR,MAAM8Q,EAAQ9Q,EAAMmzD,OAAO15D,SAC3B3T,KAAKosE,YAAYphD,GACjBhrB,KAAKqQ,kBAAkBsT,SAAS3jB,KAAK+F,KAAKkL,GAAI,CAC5C0C,SAAUqX,GACV,GAGR,CACA,yBAAAijD,CAA0BC,EAASC,GACjC,MAAMC,EAAgBpuE,KAAKitE,eAC3B,IAAK,MAAMltE,KAAQ/W,OAAOmH,KAAKg+E,EAAQd,QAAS,CAC9C,MAAMt9C,EAASm+C,EAAQnuE,IAASquE,EAAcruE,GAC9CgwB,IAASo+C,EACX,CACF,CACA,2BAAAE,CAA4B96C,GAC1B,IAAKvzB,KAAKwrE,gBACR,OAEF,MAAM8C,EAAatuE,KAAKqQ,kBAAkBmT,YAAYxjB,KAAK+F,KAAKkL,IAChE,IAAKq9D,EACH,OAEF,MAAMF,EAAgBpuE,KAAKitE,eAC3B,IAAK,MAAO1gB,EAAY8gB,KAAWrkF,OAAO86B,QAAQwqD,GAAa,CAC7D,MAAMv+C,EAASq+C,EAAc7hB,GACzBx8B,IAOFA,EANmB,CACjBs9C,OAAQ,CACN,CAAC9gB,GAAa8gB,GAEhBhkD,OAAQkK,WAGH+6C,EAAW/hB,GAEtB,CACF,CACA,qBAAAqf,GACE,IAAK5rE,KAAKk5B,UACR,OAEF,MAAM,WACJq1C,GACEvuE,KAAK+F,KACT,IAAKwoE,EACH,OAEF,MAAOC,EAASC,EAASC,EAASC,GAAW3uE,KAAK+F,KAAKlC,KACvD,GAA0B,IAAtB0qE,EAAWjiF,OAAc,CAC3B,MAAO,EACLk6B,EAAGooD,EACHnoD,EAAGooD,IAEHroD,EAAGsoD,EACHroD,EAAGsoD,IACAR,EAAW,GAChB,GAAIG,IAAYE,GAAOD,IAAYE,GAAOL,IAAYM,GAAOL,IAAYM,EACvE,MAEJ,CACA,MAAM,MACJpnD,GACE3nB,KAAKk5B,UACT,IAAI81C,EACJ,GAAIhvE,MAAK,GAAY,CACnB,MAAM,YACJ8sE,EAAW,YACXR,GACE3kD,EACJA,EAAM2kD,YAAc,EACpB0C,EAAY,CAAC,gCAAiC,0CAA2C,iDAAkD,iCAAiClC,oBAA8BR,OAC1MtsE,KAAKk5B,UAAUzQ,UAAU7R,IAAI,YAC/B,CACA,MAAM4J,EAAQkuD,EAAUF,EAClB/tD,EAASkuD,EAAUF,GACnB,WACJ3S,GACE97D,KACEogC,EAAM07B,EAAWhwC,cAAc,OACrCsU,EAAI3X,UAAU7R,IAAI,2BAClBwpB,EAAI/Q,aAAa,QAAS,GAC1B+Q,EAAI/Q,aAAa,SAAU,GAC3B,MAAM0uC,EAAOjC,EAAWhwC,cAAc,QACtCsU,EAAIpU,OAAO+xC,GACX,MAAM8B,EAAW/D,EAAWhwC,cAAc,YACpC7a,EAAK,YAAYjR,KAAK+F,KAAKkL,KACjC4uD,EAASxwC,aAAa,KAAMpe,GAC5B4uD,EAASxwC,aAAa,gBAAiB,qBACvC0uC,EAAK/xC,OAAO6zC,GACZ,IAAK,MAAO,EACVr5C,EAAGooD,EACHnoD,EAAGooD,IAEHroD,EAAGsoD,EACHroD,EAAGsoD,MACCR,EAAY,CAChB,MAAM1qE,EAAOi4D,EAAWhwC,cAAc,QAChCtF,GAAKsoD,EAAMN,GAAWhuD,EACtBiG,GAAKkoD,EAAUE,GAAOpuD,EACtBwuD,GAAaL,EAAME,GAAOtuD,EAC1B0uD,GAAcL,EAAME,GAAOtuD,EACjC5c,EAAKwrB,aAAa,IAAK7I,GACvB3iB,EAAKwrB,aAAa,IAAK5I,GACvB5iB,EAAKwrB,aAAa,QAAS4/C,GAC3BprE,EAAKwrB,aAAa,SAAU6/C,GAC5BrP,EAAS7zC,OAAOnoB,GAChBmrE,GAAWt9E,KAAK,+CAA+C80B,SAASC,aAAawoD,cAAsBC,OAC7G,CACIlvE,MAAK,KACPgvE,EAAUt9E,KAAK,gBACfi2B,EAAMwnD,gBAAkBH,EAAUxhF,KAAK,KAEzCwS,KAAKk5B,UAAUlN,OAAOoU,GACtBpgC,KAAKk5B,UAAUvR,MAAMk4C,SAAW,QAAQ5uD,IAC1C,CACA,YAAAm+D,GACE,MAAM,UACJl2C,EAAS,KACTnzB,GACE/F,KACJk5B,EAAU7J,aAAa,gBAAiB,UACxC,MAAMggD,EAAQ,IAAIjF,EAAuB,CACvCrkE,KAAM,CACJuxB,MAAOvxB,EAAKuxB,MACZw0C,SAAU/lE,EAAK+lE,SACfwD,iBAAkBvpE,EAAKupE,iBACvBvD,YAAahmE,EAAKgmE,YAClBC,SAAUjmE,EAAKimE,SACfuD,WAAYxpE,EAAKlC,KACjBwoE,YAAa,EACbp7D,GAAI,SAASlL,EAAKkL,KAClB0C,SAAU5N,EAAK4N,UAEjBiR,OAAQ5kB,KAAK4kB,OACb4qD,SAAU,CAACxvE,QAEbA,KAAK4kB,OAAOY,IAAIwG,OAAOqjD,EAAM56D,SAC/B,CACA,MAAAA,IACE,EAAIrN,EAAMxb,aAAa,oDACzB,CACA,kBAAA6jF,CAAmB1vE,EAAM2vE,EAAS,MAChC,MAAMC,EAAS,GACf,GAAI3vE,KAAKyrE,cAAe,CACtB,MAAMmE,EAAW5vE,KAAKyrE,cAAc1rE,GACpC,GAAI6vE,EACF,IAAK,MAAM,KACT5xD,EAAI,GACJ/M,EAAE,aACF4+D,KACGD,EAAU,CACb,IAAc,IAAV5xD,EACF,SAEF,GAAI/M,IAAOy+D,EACT,SAEF,MAAMI,EAAsC,iBAAjBD,EAA4BA,EAAe,KAChEE,EAAatlE,SAASulE,cAAc,qBAAqB/+D,QAC3D8+D,GAAe1G,EAAqB3tD,IAAIq0D,GAI5CJ,EAAOj+E,KAAK,CACVuf,KACA6+D,cACAC,gBANA,EAAI3oE,EAAM/V,MAAM,6CAA6C4f,IAQjE,CAEF,OAAO0+D,CACT,CACA,IAAK,MAAMI,KAActlE,SAASwlE,kBAAkBlwE,GAAO,CACzD,MAAM,YACJ+vE,GACEC,EACE9+D,EAAK8+D,EAAWG,aAAa,mBAC/Bj/D,IAAOy+D,GAGNrG,EAAqB3tD,IAAIq0D,IAG9BJ,EAAOj+E,KAAK,CACVuf,KACA6+D,cACAC,cAEJ,CACA,OAAOJ,CACT,CACA,IAAA9J,GACM7lE,KAAKk5B,YACPl5B,KAAKk5B,UAAUtG,QAAS,GAE1B5yB,KAAKqvE,OAAOc,WACd,CACA,IAAAzK,GACM1lE,KAAKk5B,YACPl5B,KAAKk5B,UAAUtG,QAAS,GAE1B5yB,KAAKqvE,OAAOe,WACd,CACA,yBAAAC,GACE,OAAOrwE,KAAKk5B,SACd,CACA,gBAAAo3C,GACE,MAAMC,EAAWvwE,KAAKqwE,4BACtB,GAAIxuE,MAAMq5B,QAAQq1C,GAChB,IAAK,MAAMh9C,KAAWg9C,EACpBh9C,EAAQ9K,UAAU7R,IAAI,sBAGxB25D,EAAS9nD,UAAU7R,IAAI,gBAE3B,CACA,kBAAA45D,GACE,MACEnK,qBAAsBpqC,EACtBl2B,MACEkL,GAAIirB,IAEJl8B,KACJA,KAAKk5B,UAAU7e,iBAAiB,YAAY,KAC1Cra,KAAKorE,YAAY/xC,UAAUxJ,SAAS,6BAA8B,CAChEhiB,OAAQ7N,KACRi8B,OACAC,UACA,GAEN,EAEF,MAAMstC,UAA8BwB,EAClC,WAAA/qE,CAAYslB,EAAYt5B,EAAU,MAChCyU,MAAM6kB,EAAY,CAChB0lD,cAAc,EACdC,eAAgBj/E,GAASi/E,aACzBC,sBAAsB,IAExBnrE,KAAKywE,cAAgBlrD,EAAWxf,KAAK0qE,aACvC,CACA,MAAAh8D,GACE,MAAM,KACJ1O,EAAI,YACJqlE,GACEprE,KACE0wE,EAAOjmE,SAASqhB,cAAc,KACpC4kD,EAAKrhD,aAAa,kBAAmBtpB,EAAKkL,IAC1C,IAAI0/D,GAAU,EAiCd,OAhCI5qE,EAAKha,KACPq/E,EAAYwF,kBAAkBF,EAAM3qE,EAAKha,IAAKga,EAAK8qE,WACnDF,GAAU,GACD5qE,EAAKgqB,QACd/vB,KAAK8wE,iBAAiBJ,EAAM3qE,EAAKgqB,QACjC4gD,GAAU,GACD5qE,EAAKgrE,YACd/wE,KAAKgxE,gBAAgBN,EAAM3qE,EAAKgrE,YAChCJ,GAAU,GACD5qE,EAAKkrE,aACdjxE,MAAK,GAAiB0wE,EAAM3qE,EAAKkrE,aACjCN,GAAU,GACD5qE,EAAKgrC,MACd/wC,KAAKkxE,UAAUR,EAAM3qE,EAAKgrC,MAC1B4/B,GAAU,IAEN5qE,EAAKmoE,UAAYnoE,EAAKmoE,QAAQiD,QAAUprE,EAAKmoE,QAAQ,aAAenoE,EAAKmoE,QAAQ,gBAAkBluE,KAAKwrE,iBAAmBxrE,KAAKwS,eAClIxS,KAAKoxE,cAAcV,EAAM3qE,GACzB4qE,GAAU,GAER5qE,EAAKsrE,WACPrxE,KAAKsxE,qBAAqBZ,EAAM3qE,EAAKsrE,WACrCV,GAAU,GACD3wE,KAAKywE,gBAAkBE,IAChC3wE,KAAKkxE,UAAUR,EAAM,IACrBC,GAAU,IAGd3wE,KAAKk5B,UAAUzQ,UAAU7R,IAAI,kBACzB+5D,GACF3wE,KAAKk5B,UAAUlN,OAAO0kD,GAEjB1wE,KAAKk5B,SACd,CACA,MACEl5B,KAAKk5B,UAAU7J,aAAa,qBAAsB,GACpD,CACA,SAAA6hD,CAAUR,EAAMa,GACdb,EAAK1iE,KAAOhO,KAAKorE,YAAYoG,mBAAmBD,GAChDb,EAAKe,QAAU,KACTF,GACFvxE,KAAKorE,YAAYsG,gBAAgBH,IAE5B,IAELA,GAA+B,KAAhBA,IACjBvxE,MAAK,IAET,CACA,gBAAA8wE,CAAiBJ,EAAM3gD,GACrB2gD,EAAK1iE,KAAOhO,KAAKorE,YAAYuG,aAAa,IAC1CjB,EAAKe,QAAU,KACbzxE,KAAKorE,YAAYwG,mBAAmB7hD,IAC7B,GAET/vB,MAAK,IACP,CACA,eAAAgxE,CAAgBN,EAAMK,GACpBL,EAAK1iE,KAAOhO,KAAKorE,YAAYuG,aAAa,IAC1CjB,EAAKe,QAAU,KACbzxE,KAAKqrE,iBAAiBwG,mBAAmB7xE,KAAKk5B,UAAW63C,EAAWe,QAASf,EAAWpwD,WACjF,GAET3gB,MAAK,IACP,CACA,IAAiB0wE,EAAM3gD,GACrB2gD,EAAK1iE,KAAOhO,KAAKorE,YAAYuG,aAAa,IAC1CjB,EAAKe,QAAU,KACbzxE,KAAKorE,YAAY2G,mBAAmBhiD,IAC7B,GAET/vB,MAAK,IACP,CACA,aAAAoxE,CAAcV,EAAM3qE,GAClB2qE,EAAK1iE,KAAOhO,KAAKorE,YAAYuG,aAAa,IAC1C,MAAM7hF,EAAM,IAAIR,IAAI,CAAC,CAAC,SAAU,WAAY,CAAC,WAAY,aAAc,CAAC,aAAc,iBACtF,IAAK,MAAMyQ,KAAQ/W,OAAOmH,KAAK4V,EAAKmoE,SAAU,CAC5C,MAAMf,EAASr9E,EAAIF,IAAImQ,GAClBotE,IAGLuD,EAAKvD,GAAU,KACbntE,KAAKorE,YAAY/xC,UAAUxJ,SAAS,yBAA0B,CAC5DhiB,OAAQ7N,KACRqtE,OAAQ,CACNp8D,GAAIlL,EAAKkL,GACTlR,WAGG,GAEX,CACK2wE,EAAKe,UACRf,EAAKe,QAAU,KAAM,GAEvBzxE,MAAK,IACP,CACA,oBAAAsxE,CAAqBZ,EAAMW,GACzB,MAAMW,EAAmBtB,EAAKe,QAK9B,GAJKO,IACHtB,EAAK1iE,KAAOhO,KAAKorE,YAAYuG,aAAa,KAE5C3xE,MAAK,MACAA,KAAKyrE,cAKR,OAJA,EAAIrkE,EAAM/V,MAAM,uHACX2gF,IACHtB,EAAKe,QAAU,KAAM,IAIzBf,EAAKe,QAAU,KACbO,MACA,MACErC,OAAQsC,EACRC,KAAMC,EAAa,QACnBC,GACEf,EACEgB,EAAY,GAClB,GAA+B,IAA3BJ,EAAgB3lF,QAAyC,IAAzB6lF,EAAc7lF,OAAc,CAC9D,MAAMgmF,EAAW,IAAI37D,IAAIw7D,GACzB,IAAK,MAAMI,KAAaN,EAAiB,CACvC,MAAMtC,EAAS3vE,KAAKyrE,cAAc8G,IAAc,GAChD,IAAK,MAAM,GACTthE,KACG0+D,EACH2C,EAAS17D,IAAI3F,EAEjB,CACA,IAAK,MAAM0+D,KAAU3mF,OAAO2vB,OAAO3Y,KAAKyrE,eACtC,IAAK,MAAM+G,KAAS7C,EACd2C,EAAS52D,IAAI82D,EAAMvhE,MAAQmhE,GAC7BC,EAAU3gF,KAAK8gF,EAIvB,MACE,IAAK,MAAM7C,KAAU3mF,OAAO2vB,OAAO3Y,KAAKyrE,eACtC4G,EAAU3gF,QAAQi+E,GAGtB,MAAM8C,EAAUzyE,KAAKqQ,kBACfqiE,EAAS,GACf,IAAK,MAAMF,KAASH,EAAW,CAC7B,MAAM,GACJphE,GACEuhE,EAEJ,OADAE,EAAOhhF,KAAKuf,GACJuhE,EAAMrgF,MACZ,IAAK,OACH,CACE,MAAMjJ,EAAQspF,EAAMjvD,cAAgB,GACpCkvD,EAAQ9uD,SAAS1S,EAAI,CACnB/nB,UAEF,KACF,CACF,IAAK,WACL,IAAK,cACH,CACE,MAAMA,EAAQspF,EAAMjvD,eAAiBivD,EAAM3C,aAC3C4C,EAAQ9uD,SAAS1S,EAAI,CACnB/nB,UAEF,KACF,CACF,IAAK,WACL,IAAK,UACH,CACE,MAAMA,EAAQspF,EAAMjvD,cAAgB,GACpCkvD,EAAQ9uD,SAAS1S,EAAI,CACnB/nB,UAEF,KACF,CACF,QACE,SAEJ,MAAM6mF,EAAatlE,SAASulE,cAAc,qBAAqB/+D,OAC1D8+D,IAEO1G,EAAqB3tD,IAAIq0D,GAIrCA,EAAW4C,cAAc,IAAIC,MAAM,eAHjC,EAAIxrE,EAAM/V,MAAM,+CAA+C4f,KAInE,CAWA,OAVIjR,KAAKwrE,iBACPxrE,KAAKorE,YAAY/xC,UAAUxJ,SAAS,yBAA0B,CAC5DhiB,OAAQ7N,KACRqtE,OAAQ,CACNp8D,GAAI,MACJ69C,IAAK4jB,EACL3yE,KAAM,gBAIL,CAAK,CAEhB,EAEF,MAAM0pE,UAA8BuB,EAClC,WAAA/qE,CAAYslB,GACV7kB,MAAM6kB,EAAY,CAChB0lD,cAAc,GAElB,CACA,MAAAx2D,GACEzU,KAAKk5B,UAAUzQ,UAAU7R,IAAI,kBAC7B,MAAMqd,EAAQxpB,SAASqhB,cAAc,OAWrC,OAVAmI,EAAMnrB,IAAM9I,KAAKsrE,mBAAqB,cAAgBtrE,KAAK+F,KAAKhG,KAAKqlC,cAAgB,OACrFnR,EAAM4+C,IAAM,wBACZ5+C,EAAMuvC,QAAQsP,OAAS,uBACvB7+C,EAAMuvC,QAAQuP,SAAWtuD,KAAKC,UAAU,CACtCvyB,KAAM6N,KAAK+F,KAAKhG,QAEbC,KAAK+F,KAAKmmE,UAAYlsE,KAAKisE,cAC9BjsE,KAAKovE,eAEPpvE,KAAKk5B,UAAUlN,OAAOiI,GACfj0B,KAAKk5B,SACd,EAEF,MAAMixC,UAAgCa,EACpC,MAAAv2D,GAIE,OAHIzU,KAAK+F,KAAKitE,kBACZhzE,KAAKk5B,UAAUy0C,MAAQ3tE,KAAK+F,KAAKitE,iBAE5BhzE,KAAKk5B,SACd,CACA,wBAAA+5C,CAAyB1/C,GACnBvzB,KAAK+F,KAAKq8C,eAC8B,WAAtC7uB,EAAQ2/C,iBAAiBC,WAC3B5/C,EAAQ2/C,gBAAgBtgD,QAAS,GAEnCW,EAAQX,QAAS,EAErB,CACA,eAAAwgD,CAAgBl5D,GACd,MAAM,MACJ5Y,EAAK,MACLC,GACE6F,EAAM7c,YAAY6W,SACtB,OAAOE,GAAS4Y,EAAMkS,SAAW7qB,GAAS2Y,EAAM8W,OAClD,CACA,iBAAAqiD,CAAkB9/C,EAAS+/C,EAAaC,EAAUC,EAAWC,GACvDF,EAAS/xE,SAAS,SACpB+xB,EAAQlZ,iBAAiBk5D,GAAUr5D,IACjCla,KAAKorE,YAAY/xC,UAAUxJ,SAAS,yBAA0B,CAC5DhiB,OAAQ7N,KACRqtE,OAAQ,CACNp8D,GAAIjR,KAAK+F,KAAKkL,GACdlR,KAAMyzE,EACNtqF,MAAOuqF,EAAYv5D,GACnB0vB,MAAO1vB,EAAM6W,SACb2iD,SAAU1zE,KAAKozE,gBAAgBl5D,KAEjC,IAGJqZ,EAAQlZ,iBAAiBk5D,GAAUr5D,IACjC,GAAiB,SAAbq5D,EAAqB,CACvB,IAAKD,EAAYK,UAAYz5D,EAAMoP,cACjC,OAEFgqD,EAAYK,SAAU,CACxB,MAAO,GAAiB,UAAbJ,EAAsB,CAC/B,GAAID,EAAYK,QACd,OAEFL,EAAYK,SAAU,CACxB,CACKF,GAGLzzE,KAAKorE,YAAY/xC,UAAUxJ,SAAS,yBAA0B,CAC5DhiB,OAAQ7N,KACRqtE,OAAQ,CACNp8D,GAAIjR,KAAK+F,KAAKkL,GACdlR,KAAMyzE,EACNtqF,MAAOuqF,EAAYv5D,KAErB,GAGR,CACA,kBAAA05D,CAAmBrgD,EAAS+/C,EAAa9/C,EAAOqgD,GAC9C,IAAK,MAAON,EAAUC,KAAchgD,GAChB,WAAdggD,GAA0BxzE,KAAK+F,KAAKmoE,UAAUsF,MAC9B,UAAdA,GAAuC,SAAdA,IAC3BF,IAAgB,CACdK,SAAS,IAGb3zE,KAAKqzE,kBAAkB9/C,EAAS+/C,EAAaC,EAAUC,EAAWK,GAChD,UAAdL,GAA0BxzE,KAAK+F,KAAKmoE,SAAS4F,KAExB,SAAdN,GAAyBxzE,KAAK+F,KAAKmoE,SAAS6F,OACrD/zE,KAAKqzE,kBAAkB9/C,EAAS+/C,EAAa,QAAS,QAAS,MAF/DtzE,KAAKqzE,kBAAkB9/C,EAAS+/C,EAAa,OAAQ,OAAQ,MAMrE,CACA,mBAAAU,CAAoBzgD,GAClB,MAAM+D,EAAQt3B,KAAK+F,KAAK+iD,iBAAmB,KAC3Cv1B,EAAQ5L,MAAMmhC,gBAA4B,OAAVxxB,EAAiB,cAAgBlwB,EAAMhe,KAAK2Y,aAAau1B,EAAM,GAAIA,EAAM,GAAIA,EAAM,GACrH,CACA,aAAA28C,CAAc1gD,GACZ,MACM,UACJm1C,GACE1oE,KAAK+F,KAAK0iE,sBACR/6B,EAAW1tC,KAAK+F,KAAK0iE,sBAAsB/6B,UAp1B3B,EAq1BhB/lB,EAAQ4L,EAAQ5L,MACtB,IAAIusD,EACJ,MACMC,EAAoB3tD,GAAKx4B,KAAKs9B,MAAM,GAAK9E,GAAK,GACpD,GAAIxmB,KAAK+F,KAAKquE,UAAW,CACvB,MAAM3zD,EAASzyB,KAAKqX,IAAIrF,KAAK+F,KAAKlC,KAAK,GAAK7D,KAAK+F,KAAKlC,KAAK,GAHzC,GAKZwwE,EAAa5zD,GADGzyB,KAAKs9B,MAAM7K,GAAUrZ,EAAMnd,YAAcyjD,KAAc,GAE7EwmC,EAAmBlmF,KAAKuS,IAAImtC,EAAUymC,EAAkBE,EAAajtE,EAAMnd,aAC7E,KAAO,CACL,MAAMw2B,EAASzyB,KAAKqX,IAAIrF,KAAK+F,KAAKlC,KAAK,GAAK7D,KAAK+F,KAAKlC,KAAK,GARzC,GASlBqwE,EAAmBlmF,KAAKuS,IAAImtC,EAAUymC,EAAkB1zD,EAASrZ,EAAMnd,aACzE,CACA09B,EAAM+lB,SAAW,QAAQwmC,6BACzBvsD,EAAM2P,MAAQlwB,EAAMhe,KAAK2Y,aAAa2mE,EAAU,GAAIA,EAAU,GAAIA,EAAU,IAC5C,OAA5B1oE,KAAK+F,KAAKuuE,gBACZ3sD,EAAM4sD,UArBe,CAAC,OAAQ,SAAU,SAqBPv0E,KAAK+F,KAAKuuE,eAE/C,CACA,YAAAvG,CAAax6C,EAASihD,GAChBA,EACFjhD,EAAQlE,aAAa,YAAY,GAEjCkE,EAAQg0C,gBAAgB,YAE1Bh0C,EAAQlE,aAAa,gBAAiBmlD,EACxC,EAEF,MAAM7K,UAAoCQ,EACxC,WAAAlqE,CAAYslB,GAEV7kB,MAAM6kB,EAAY,CAChB0lD,aAFmB1lD,EAAWgmD,cAAgBhmD,EAAWxf,KAAK0uE,iBAAmBlvD,EAAWxf,KAAK2uE,YAIrG,CACA,qBAAAC,CAAsB35D,EAAM/qB,EAAK/G,EAAO0rF,GACtC,MAAMnC,EAAUzyE,KAAKqQ,kBACrB,IAAK,MAAMkjB,KAAWvzB,KAAKyvE,mBAAmBz0D,EAAKjb,KAAMib,EAAK/J,IACxDsiB,EAAQw8C,aACVx8C,EAAQw8C,WAAW9/E,GAAO/G,GAE5BupF,EAAQ9uD,SAAS4P,EAAQtiB,GAAI,CAC3B,CAAC2jE,GAAe1rF,GAGtB,CACA,MAAAurB,GACE,MAAMg+D,EAAUzyE,KAAKqQ,kBACfY,EAAKjR,KAAK+F,KAAKkL,GACrBjR,KAAKk5B,UAAUzQ,UAAU7R,IAAI,wBAC7B,IAAI2c,EAAU,KACd,GAAIvzB,KAAKurE,YAAa,CACpB,MAAM+C,EAAamE,EAAQnvD,SAASrS,EAAI,CACtC/nB,MAAO8W,KAAK+F,KAAK2uE,aAEnB,IAAI/8D,EAAc22D,EAAWplF,OAAS,GACtC,MAAM2rF,EAASpC,EAAQnvD,SAASrS,EAAI,CAClC6jE,UAAW90E,KAAK+F,KAAK8uE,SACpBC,UACCD,GAAUl9D,EAAYrrB,OAASuoF,IACjCl9D,EAAcA,EAAY7U,MAAM,EAAG+xE,IAErC,IAAIE,EAAuBzG,EAAW0G,gBAAkBh1E,KAAK+F,KAAK4R,aAAanqB,KAAK,OAAS,KACzFunF,GAAwB/0E,KAAK+F,KAAKkvE,OACpCF,EAAuBA,EAAqBxlF,WAAW,OAAQ,KAEjE,MAAM+jF,EAAc,CAClB4B,UAAWv9D,EACXq9D,eAAgBD,EAChBI,mBAAoB,KACpBC,UAAW,EACXzB,SAAS,GAEP3zE,KAAK+F,KAAKquE,WACZ7gD,EAAU9oB,SAASqhB,cAAc,YACjCyH,EAAQ5b,YAAco9D,GAAwBp9D,EAC1C3X,KAAK+F,KAAKsvE,cACZ9hD,EAAQ5L,MAAM2tD,UAAY,YAG5B/hD,EAAU9oB,SAASqhB,cAAc,SACjCyH,EAAQphC,KAAO,OACfohC,EAAQlE,aAAa,QAAS0lD,GAAwBp9D,GAClD3X,KAAK+F,KAAKsvE,cACZ9hD,EAAQ5L,MAAM4tD,UAAY,WAG1Bv1E,KAAK+F,KAAKq8C,eACZ7uB,EAAQX,QAAS,GAEnBy2C,EAAqBzyD,IAAI2c,GACzBA,EAAQlE,aAAa,kBAAmBpe,GACxCsiB,EAAQs6C,SAAW7tE,KAAK+F,KAAKyvE,SAC7BjiD,EAAQxzB,KAAOC,KAAK+F,KAAKwsE,UACzBh/C,EAAQjE,SAAW85C,EACnBppE,KAAK+tE,aAAax6C,EAASvzB,KAAK+F,KAAK+nE,UACjC+G,IACFthD,EAAQkiD,UAAYZ,GAEtBthD,EAAQlZ,iBAAiB,SAASH,IAChCu4D,EAAQ9uD,SAAS1S,EAAI,CACnB/nB,MAAOgxB,EAAMmP,OAAOngC,QAEtB8W,KAAK20E,sBAAsBphD,EAAS,QAASrZ,EAAMmP,OAAOngC,MAAO,SACjEoqF,EAAY0B,eAAiB,IAAI,IAEnCzhD,EAAQlZ,iBAAiB,aAAaH,IACpC,MAAMqJ,EAAevjB,KAAK+F,KAAK2vE,mBAAqB,GACpDniD,EAAQrqC,MAAQoqF,EAAY4B,UAAY3xD,EACxC+vD,EAAY0B,eAAiB,IAAI,IAEnC,IAAIW,EAAez7D,IACjB,MAAM,eACJ86D,GACE1B,EACA0B,UACF96D,EAAMmP,OAAOngC,MAAQ8rF,GAEvB96D,EAAMmP,OAAOusD,WAAa,CAAC,EAE7B,GAAI51E,KAAKwrE,iBAAmBxrE,KAAKwS,aAAc,CAC7C+gB,EAAQlZ,iBAAiB,SAASH,IAChC,GAAIo5D,EAAYK,QACd,OAEF,MAAM,OACJtqD,GACEnP,EACAo5D,EAAY4B,YACd7rD,EAAOngC,MAAQoqF,EAAY4B,WAE7B5B,EAAY6B,mBAAqB9rD,EAAOngC,MACxCoqF,EAAY8B,UAAY,EACxB9B,EAAYK,SAAU,CAAI,IAE5BpgD,EAAQlZ,iBAAiB,qBAAqB8zD,IAC5CnuE,KAAKizE,yBAAyB9E,EAAQ9kD,QACtC,MAAM6kD,EAAU,CACd,KAAAhlF,CAAMgxB,GACJo5D,EAAY4B,UAAYh7D,EAAMmzD,OAAOnkF,OAAS,GAC9CupF,EAAQ9uD,SAAS1S,EAAI,CACnB/nB,MAAOoqF,EAAY4B,UAAUjoF,aAE/BitB,EAAMmP,OAAOngC,MAAQoqF,EAAY4B,SACnC,EACA,cAAAF,CAAe96D,GACb,MAAM,eACJ86D,GACE96D,EAAMmzD,OACViG,EAAY0B,eAAiBA,EACzBA,SAA2D96D,EAAMmP,SAAW5e,SAAS+nB,gBACvFtY,EAAMmP,OAAOngC,MAAQ8rF,GAEvBvC,EAAQ9uD,SAAS1S,EAAI,CACnB+jE,kBAEJ,EACA,QAAAa,CAAS37D,GACPA,EAAMmP,OAAOysD,qBAAqB57D,EAAMmzD,OAAOwI,SACjD,EACAf,UAAW56D,IACT,MAAM,UACJ46D,GACE56D,EAAMmzD,QACJ,OACJhkD,GACEnP,EACJ,GAAkB,IAAd46D,EAEF,YADAzrD,EAAOk+C,gBAAgB,aAGzBl+C,EAAOgG,aAAa,YAAaylD,GACjC,IAAI5rF,EAAQoqF,EAAY4B,WACnBhsF,GAASA,EAAMoD,QAAUwoF,IAG9B5rF,EAAQA,EAAM4Z,MAAM,EAAGgyE,GACvBzrD,EAAOngC,MAAQoqF,EAAY4B,UAAYhsF,EACvCupF,EAAQ9uD,SAAS1S,EAAI,CACnB/nB,UAEF8W,KAAKorE,YAAY/xC,UAAUxJ,SAAS,yBAA0B,CAC5DhiB,OAAQ7N,KACRqtE,OAAQ,CACNp8D,KACAlR,KAAM,YACN7W,QACA6sF,YAAY,EACZX,UAAW,EACXY,SAAU3sD,EAAO4sD,eACjBC,OAAQ7sD,EAAO8sD,gBAEjB,GAGNn2E,KAAKiuE,0BAA0BC,EAASC,EAAQ,IAElD56C,EAAQlZ,iBAAiB,WAAWH,IAClCo5D,EAAY8B,UAAY,EACxB,IAAIA,GAAa,EAQjB,GAPkB,WAAdl7D,EAAMjqB,IACRmlF,EAAY,EACW,UAAdl7D,EAAMjqB,KAAoB+P,KAAK+F,KAAKquE,UAEtB,QAAdl6D,EAAMjqB,MACfqjF,EAAY8B,UAAY,GAFxBA,EAAY,GAIK,IAAfA,EACF,OAEF,MAAM,MACJlsF,GACEgxB,EAAMmP,OACNiqD,EAAY6B,qBAAuBjsF,IAGvCoqF,EAAY6B,mBAAqBjsF,EACjCoqF,EAAY4B,UAAYhsF,EACxB8W,KAAKorE,YAAY/xC,UAAUxJ,SAAS,yBAA0B,CAC5DhiB,OAAQ7N,KACRqtE,OAAQ,CACNp8D,KACAlR,KAAM,YACN7W,QACA6sF,YAAY,EACZX,YACAY,SAAU97D,EAAMmP,OAAO4sD,eACvBC,OAAQh8D,EAAMmP,OAAO8sD,gBAEvB,IAEJ,MAAMC,EAAgBT,EACtBA,EAAe,KACfpiD,EAAQlZ,iBAAiB,QAAQH,IAC/B,IAAKo5D,EAAYK,UAAYz5D,EAAMoP,cACjC,OAEFgqD,EAAYK,SAAU,EACtB,MAAM,MACJzqF,GACEgxB,EAAMmP,OACViqD,EAAY4B,UAAYhsF,EACpBoqF,EAAY6B,qBAAuBjsF,GACrC8W,KAAKorE,YAAY/xC,UAAUxJ,SAAS,yBAA0B,CAC5DhiB,OAAQ7N,KACRqtE,OAAQ,CACNp8D,KACAlR,KAAM,YACN7W,QACA6sF,YAAY,EACZX,UAAW9B,EAAY8B,UACvBY,SAAU97D,EAAMmP,OAAO4sD,eACvBC,OAAQh8D,EAAMmP,OAAO8sD,gBAI3BC,EAAcl8D,EAAM,IAElBla,KAAK+F,KAAKmoE,SAASmI,WACrB9iD,EAAQlZ,iBAAiB,eAAeH,IACtCo5D,EAAY6B,mBAAqB,KACjC,MAAM,KACJpvE,EAAI,OACJsjB,GACEnP,GACE,MACJhxB,EAAK,eACL+sF,EAAc,aACdE,GACE9sD,EACJ,IAAI2sD,EAAWC,EACbC,EAASC,EACX,OAAQj8D,EAAMo8D,WACZ,IAAK,qBACH,CACE,MAAMjqF,EAAQnD,EAAMs1C,UAAU,EAAGy3C,GAAgB5pF,MAAM,cACnDA,IACF2pF,GAAY3pF,EAAM,GAAGC,QAEvB,KACF,CACF,IAAK,oBACH,CACE,MAAMD,EAAQnD,EAAMs1C,UAAUy3C,GAAgB5pF,MAAM,cAChDA,IACF6pF,GAAU7pF,EAAM,GAAGC,QAErB,KACF,CACF,IAAK,wBACC2pF,IAAmBE,IACrBH,GAAY,GAEd,MACF,IAAK,uBACCC,IAAmBE,IACrBD,GAAU,GAIhBh8D,EAAMsP,iBACNxpB,KAAKorE,YAAY/xC,UAAUxJ,SAAS,yBAA0B,CAC5DhiB,OAAQ7N,KACRqtE,OAAQ,CACNp8D,KACAlR,KAAM,YACN7W,QACAqtF,OAAQxwE,GAAQ,GAChBgwE,YAAY,EACZC,WACAE,WAEF,IAGNl2E,KAAK4zE,mBAAmBrgD,EAAS+/C,EAAa,CAAC,CAAC,QAAS,SAAU,CAAC,OAAQ,QAAS,CAAC,YAAa,cAAe,CAAC,aAAc,eAAgB,CAAC,aAAc,cAAe,CAAC,UAAW,cAAcp5D,GAASA,EAAMmP,OAAOngC,OACjO,CAIA,GAHIysF,GACFpiD,EAAQlZ,iBAAiB,OAAQs7D,GAE/B31E,KAAK+F,KAAKkvE,KAAM,CAClB,MACMuB,GADax2E,KAAK+F,KAAKlC,KAAK,GAAK7D,KAAK+F,KAAKlC,KAAK,IACvBgxE,EAC/BthD,EAAQ9K,UAAU7R,IAAI,QACtB2c,EAAQ5L,MAAM8uD,cAAgB,QAAQD,kCACxC,CACF,MACEjjD,EAAU9oB,SAASqhB,cAAc,OACjCyH,EAAQ5b,YAAc3X,KAAK+F,KAAK2uE,WAChCnhD,EAAQ5L,MAAM+uD,cAAgB,SAC9BnjD,EAAQ5L,MAAMggD,QAAU,aAM1B,OAJA3nE,KAAKi0E,cAAc1gD,GACnBvzB,KAAKg0E,oBAAoBzgD,GACzBvzB,KAAKquE,4BAA4B96C,GACjCvzB,KAAKk5B,UAAUlN,OAAOuH,GACfvzB,KAAKk5B,SACd,EAEF,MAAMgxC,UAAyCC,EAC7C,WAAAlqE,CAAYslB,GACV7kB,MAAM6kB,EAAY,CAChB0lD,eAAgB1lD,EAAWxf,KAAKq8C,cAEpC,EAEF,MAAM2nB,UAAwCI,EAC5C,WAAAlqE,CAAYslB,GACV7kB,MAAM6kB,EAAY,CAChB0lD,aAAc1lD,EAAWgmD,aAE7B,CACA,MAAA92D,GACE,MAAMg+D,EAAUzyE,KAAKqQ,kBACftK,EAAO/F,KAAK+F,KACZkL,EAAKlL,EAAKkL,GAChB,IAAI/nB,EAAQupF,EAAQnvD,SAASrS,EAAI,CAC/B/nB,MAAO6c,EAAK+pE,cAAgB/pE,EAAK2uE,aAChCxrF,MACkB,iBAAVA,IACTA,EAAkB,QAAVA,EACRupF,EAAQ9uD,SAAS1S,EAAI,CACnB/nB,WAGJ8W,KAAKk5B,UAAUzQ,UAAU7R,IAAI,yBAA0B,YACvD,MAAM2c,EAAU9oB,SAASqhB,cAAc,SAmDvC,OAlDAu9C,EAAqBzyD,IAAI2c,GACzBA,EAAQlE,aAAa,kBAAmBpe,GACxCsiB,EAAQs6C,SAAW9nE,EAAKyvE,SACxBx1E,KAAK+tE,aAAax6C,EAASvzB,KAAK+F,KAAK+nE,UACrCv6C,EAAQphC,KAAO,WACfohC,EAAQxzB,KAAOgG,EAAKwsE,UAChBrpF,GACFqqC,EAAQlE,aAAa,WAAW,GAElCkE,EAAQlE,aAAa,cAAetpB,EAAK+pE,aACzCv8C,EAAQjE,SAAW85C,EACnB71C,EAAQlZ,iBAAiB,UAAUH,IACjC,MAAM,KACJna,EAAI,QACJ42E,GACEz8D,EAAMmP,OACV,IAAK,MAAMutD,KAAY52E,KAAKyvE,mBAAmB1vE,EAAMkR,GAAK,CACxD,MAAM4lE,EAAaF,GAAWC,EAAS9G,cAAgB/pE,EAAK+pE,YACxD8G,EAAS7G,aACX6G,EAAS7G,WAAW4G,QAAUE,GAEhCpE,EAAQ9uD,SAASizD,EAAS3lE,GAAI,CAC5B/nB,MAAO2tF,GAEX,CACApE,EAAQ9uD,SAAS1S,EAAI,CACnB/nB,MAAOytF,GACP,IAEJpjD,EAAQlZ,iBAAiB,aAAaH,IACpC,MAAMqJ,EAAexd,EAAK2vE,mBAAqB,MAC/Cx7D,EAAMmP,OAAOstD,QAAUpzD,IAAiBxd,EAAK+pE,WAAW,IAEtD9vE,KAAKwrE,iBAAmBxrE,KAAKwS,eAC/B+gB,EAAQlZ,iBAAiB,qBAAqB8zD,IAC5C,MAAMD,EAAU,CACd,KAAAhlF,CAAMgxB,GACJA,EAAMmP,OAAOstD,QAAiC,QAAvBz8D,EAAMmzD,OAAOnkF,MACpCupF,EAAQ9uD,SAAS1S,EAAI,CACnB/nB,MAAOgxB,EAAMmP,OAAOstD,SAExB,GAEF32E,KAAKiuE,0BAA0BC,EAASC,EAAQ,IAElDnuE,KAAK4zE,mBAAmBrgD,EAAS,KAAM,CAAC,CAAC,SAAU,YAAa,CAAC,SAAU,UAAW,CAAC,QAAS,SAAU,CAAC,OAAQ,QAAS,CAAC,YAAa,cAAe,CAAC,aAAc,eAAgB,CAAC,aAAc,cAAe,CAAC,UAAW,cAAcrZ,GAASA,EAAMmP,OAAOstD,WAExQ32E,KAAKg0E,oBAAoBzgD,GACzBvzB,KAAKquE,4BAA4B96C,GACjCvzB,KAAKk5B,UAAUlN,OAAOuH,GACfvzB,KAAKk5B,SACd,EAEF,MAAM2wC,UAA2CM,EAC/C,WAAAlqE,CAAYslB,GACV7kB,MAAM6kB,EAAY,CAChB0lD,aAAc1lD,EAAWgmD,aAE7B,CACA,MAAA92D,GACEzU,KAAKk5B,UAAUzQ,UAAU7R,IAAI,yBAA0B,eACvD,MAAM67D,EAAUzyE,KAAKqQ,kBACftK,EAAO/F,KAAK+F,KACZkL,EAAKlL,EAAKkL,GAChB,IAAI/nB,EAAQupF,EAAQnvD,SAASrS,EAAI,CAC/B/nB,MAAO6c,EAAK2uE,aAAe3uE,EAAK+wE,cAC/B5tF,MACkB,iBAAVA,IACTA,EAAQA,IAAU6c,EAAK+wE,YACvBrE,EAAQ9uD,SAAS1S,EAAI,CACnB/nB,WAGJ,MAAMqqC,EAAU9oB,SAASqhB,cAAc,SA6BvC,GA5BAu9C,EAAqBzyD,IAAI2c,GACzBA,EAAQlE,aAAa,kBAAmBpe,GACxCsiB,EAAQs6C,SAAW9nE,EAAKyvE,SACxBx1E,KAAK+tE,aAAax6C,EAASvzB,KAAK+F,KAAK+nE,UACrCv6C,EAAQphC,KAAO,QACfohC,EAAQxzB,KAAOgG,EAAKwsE,UAChBrpF,GACFqqC,EAAQlE,aAAa,WAAW,GAElCkE,EAAQjE,SAAW85C,EACnB71C,EAAQlZ,iBAAiB,UAAUH,IACjC,MAAM,KACJna,EAAI,QACJ42E,GACEz8D,EAAMmP,OACV,IAAK,MAAM0tD,KAAS/2E,KAAKyvE,mBAAmB1vE,EAAMkR,GAChDwhE,EAAQ9uD,SAASozD,EAAM9lE,GAAI,CACzB/nB,OAAO,IAGXupF,EAAQ9uD,SAAS1S,EAAI,CACnB/nB,MAAOytF,GACP,IAEJpjD,EAAQlZ,iBAAiB,aAAaH,IACpC,MAAMqJ,EAAexd,EAAK2vE,kBAC1Bx7D,EAAMmP,OAAOstD,QAAUpzD,SAAuDA,IAAiBxd,EAAK+wE,WAAW,IAE7G92E,KAAKwrE,iBAAmBxrE,KAAKwS,aAAc,CAC7C,MAAMwkE,EAAiBjxE,EAAK+wE,YAC5BvjD,EAAQlZ,iBAAiB,qBAAqB8zD,IAC5C,MAAMD,EAAU,CACdhlF,MAAOgxB,IACL,MAAMy8D,EAAUK,IAAmB98D,EAAMmzD,OAAOnkF,MAChD,IAAK,MAAM6tF,KAAS/2E,KAAKyvE,mBAAmBv1D,EAAMmP,OAAOtpB,MAAO,CAC9D,MAAM82E,EAAaF,GAAWI,EAAM9lE,KAAOA,EACvC8lE,EAAMhH,aACRgH,EAAMhH,WAAW4G,QAAUE,GAE7BpE,EAAQ9uD,SAASozD,EAAM9lE,GAAI,CACzB/nB,MAAO2tF,GAEX,IAGJ72E,KAAKiuE,0BAA0BC,EAASC,EAAQ,IAElDnuE,KAAK4zE,mBAAmBrgD,EAAS,KAAM,CAAC,CAAC,SAAU,YAAa,CAAC,SAAU,UAAW,CAAC,QAAS,SAAU,CAAC,OAAQ,QAAS,CAAC,YAAa,cAAe,CAAC,aAAc,eAAgB,CAAC,aAAc,cAAe,CAAC,UAAW,cAAcrZ,GAASA,EAAMmP,OAAOstD,SACxQ,CAIA,OAHA32E,KAAKg0E,oBAAoBzgD,GACzBvzB,KAAKquE,4BAA4B96C,GACjCvzB,KAAKk5B,UAAUlN,OAAOuH,GACfvzB,KAAKk5B,SACd,EAEF,MAAM8wC,UAA0CR,EAC9C,WAAAvpE,CAAYslB,GACV7kB,MAAM6kB,EAAY,CAChB2lD,aAAc3lD,EAAWxf,KAAK0uE,eAElC,CACA,MAAAhgE,GACE,MAAMykB,EAAYx4B,MAAM+T,SACxBykB,EAAUzQ,UAAU7R,IAAI,yBAA0B,cAC9C5W,KAAK+F,KAAKitE,kBACZ95C,EAAUy0C,MAAQ3tE,KAAK+F,KAAKitE,iBAE9B,MAAMiE,EAAc/9C,EAAUg+C,UAO9B,OANIl3E,KAAKwrE,iBAAmBxrE,KAAKwS,cAAgBykE,IAC/Cj3E,KAAKquE,4BAA4B4I,GACjCA,EAAY58D,iBAAiB,qBAAqB8zD,IAChDnuE,KAAKiuE,0BAA0B,CAAC,EAAGE,EAAQ,KAGxCj1C,CACT,EAEF,MAAM+wC,UAAsCE,EAC1C,WAAAlqE,CAAYslB,GACV7kB,MAAM6kB,EAAY,CAChB0lD,aAAc1lD,EAAWgmD,aAE7B,CACA,MAAA92D,GACEzU,KAAKk5B,UAAUzQ,UAAU7R,IAAI,0BAC7B,MAAM67D,EAAUzyE,KAAKqQ,kBACfY,EAAKjR,KAAK+F,KAAKkL,GACfq9D,EAAamE,EAAQnvD,SAASrS,EAAI,CACtC/nB,MAAO8W,KAAK+F,KAAK2uE,aAEbyC,EAAgB1sE,SAASqhB,cAAc,UAC7Cu9C,EAAqBzyD,IAAIugE,GACzBA,EAAc9nD,aAAa,kBAAmBpe,GAC9CkmE,EAActJ,SAAW7tE,KAAK+F,KAAKyvE,SACnCx1E,KAAK+tE,aAAaoJ,EAAen3E,KAAK+F,KAAK+nE,UAC3CqJ,EAAcp3E,KAAOC,KAAK+F,KAAKwsE,UAC/B4E,EAAc7nD,SAAW85C,EACzB,IAAIgO,EAAkBp3E,KAAK+F,KAAKsxE,OAASr3E,KAAK+F,KAAK9Z,QAAQK,OAAS,EAC/D0T,KAAK+F,KAAKsxE,QACbF,EAAcz/D,KAAO1X,KAAK+F,KAAK9Z,QAAQK,OACnC0T,KAAK+F,KAAKuxE,cACZH,EAAcI,UAAW,IAG7BJ,EAAc98D,iBAAiB,aAAaH,IAC1C,MAAMqJ,EAAevjB,KAAK+F,KAAK2vE,kBAC/B,IAAK,MAAM8B,KAAUL,EAAclrF,QACjCurF,EAAOC,SAAWD,EAAOtuF,QAAUq6B,CACrC,IAEF,IAAK,MAAMi0D,KAAUx3E,KAAK+F,KAAK9Z,QAAS,CACtC,MAAMyrF,EAAgBjtE,SAASqhB,cAAc,UAC7C4rD,EAAc//D,YAAc6/D,EAAOG,aACnCD,EAAcxuF,MAAQsuF,EAAO1H,YACzBxB,EAAWplF,MAAMsY,SAASg2E,EAAO1H,eACnC4H,EAAcroD,aAAa,YAAY,GACvC+nD,GAAkB,GAEpBD,EAAcnrD,OAAO0rD,EACvB,CACA,IAAIE,EAAmB,KACvB,GAAIR,EAAiB,CACnB,MAAMS,EAAoBptE,SAASqhB,cAAc,UACjD+rD,EAAkB3uF,MAAQ,IAC1B2uF,EAAkBxoD,aAAa,UAAU,GACzCwoD,EAAkBxoD,aAAa,YAAY,GAC3C8nD,EAAcjrD,QAAQ2rD,GACtBD,EAAmB,KACjBC,EAAkBp0D,SAClB0zD,EAAc78D,oBAAoB,QAASs9D,GAC3CA,EAAmB,IAAI,EAEzBT,EAAc98D,iBAAiB,QAASu9D,EAC1C,CACA,MAAMt0D,EAAWw0D,IACf,MAAM/3E,EAAO+3E,EAAW,QAAU,eAC5B,QACJ7rF,EAAO,SACPsrF,GACEJ,EACJ,OAAKI,EAGE11E,MAAM3B,UAAU+gC,OAAO7mB,KAAKnuB,GAASurF,GAAUA,EAAOC,WAAU3nF,KAAI0nF,GAAUA,EAAOz3E,MAFxD,IAA3B9T,EAAQ8rF,cAAuB,KAAO9rF,EAAQA,EAAQ8rF,eAAeh4E,EAEoB,EAEpG,IAAIi4E,EAAiB10D,GAAS,GAC9B,MAAM20D,EAAW/9D,IACf,MAAMjuB,EAAUiuB,EAAMmP,OAAOp9B,QAC7B,OAAO4V,MAAM3B,UAAUpQ,IAAIsqB,KAAKnuB,GAASurF,IAChC,CACLG,aAAcH,EAAO7/D,YACrBm4D,YAAa0H,EAAOtuF,SAEtB,EA+IJ,OA7II8W,KAAKwrE,iBAAmBxrE,KAAKwS,cAC/B2kE,EAAc98D,iBAAiB,qBAAqB8zD,IAClD,MAAMD,EAAU,CACd,KAAAhlF,CAAMgxB,GACJ09D,MACA,MAAM1uF,EAAQgxB,EAAMmzD,OAAOnkF,MACrByvB,EAAS,IAAIhC,IAAI9U,MAAMq5B,QAAQhyC,GAASA,EAAQ,CAACA,IACvD,IAAK,MAAMsuF,KAAUL,EAAclrF,QACjCurF,EAAOC,SAAW9+D,EAAO+C,IAAI87D,EAAOtuF,OAEtCupF,EAAQ9uD,SAAS1S,EAAI,CACnB/nB,MAAOo6B,GAAS,KAElB00D,EAAiB10D,GAAS,EAC5B,EACA,iBAAA40D,CAAkBh+D,GAChBi9D,EAAcI,UAAW,CAC3B,EACA,MAAA9zD,CAAOvJ,GACL,MAAMjuB,EAAUkrF,EAAclrF,QACxBksF,EAAQj+D,EAAMmzD,OAAO5pD,OAC3Bx3B,EAAQksF,GAAOV,UAAW,EAC1BN,EAAc1zD,OAAO00D,GACjBlsF,EAAQK,OAAS,IAER,IADDuV,MAAM3B,UAAUk4E,UAAUh+D,KAAKnuB,GAASurF,GAAUA,EAAOC,aAEjExrF,EAAQ,GAAGwrF,UAAW,GAG1BhF,EAAQ9uD,SAAS1S,EAAI,CACnB/nB,MAAOo6B,GAAS,GAChB1L,MAAOqgE,EAAS/9D,KAElB89D,EAAiB10D,GAAS,EAC5B,EACA,KAAAvK,CAAMmB,GACJ,KAAgC,IAAzBi9D,EAAc7qF,QACnB6qF,EAAc1zD,OAAO,GAEvBgvD,EAAQ9uD,SAAS1S,EAAI,CACnB/nB,MAAO,KACP0uB,MAAO,KAETogE,EAAiB10D,GAAS,EAC5B,EACA,MAAA8mB,CAAOlwB,GACL,MAAM,MACJi+D,EAAK,aACLR,EAAY,YACZ7H,GACE51D,EAAMmzD,OAAOjjC,OACXiuC,EAAclB,EAAc3iE,SAAS2jE,GACrCT,EAAgBjtE,SAASqhB,cAAc,UAC7C4rD,EAAc//D,YAAcggE,EAC5BD,EAAcxuF,MAAQ4mF,EAClBuI,EACFA,EAAYC,OAAOZ,GAEnBP,EAAcnrD,OAAO0rD,GAEvBjF,EAAQ9uD,SAAS1S,EAAI,CACnB/nB,MAAOo6B,GAAS,GAChB1L,MAAOqgE,EAAS/9D,KAElB89D,EAAiB10D,GAAS,EAC5B,EACA,KAAA1L,CAAMsC,GACJ,MAAM,MACJtC,GACEsC,EAAMmzD,OACV,KAAgC,IAAzB8J,EAAc7qF,QACnB6qF,EAAc1zD,OAAO,GAEvB,IAAK,MAAM6E,KAAQ1Q,EAAO,CACxB,MAAM,aACJ+/D,EAAY,YACZ7H,GACExnD,EACEovD,EAAgBjtE,SAASqhB,cAAc,UAC7C4rD,EAAc//D,YAAcggE,EAC5BD,EAAcxuF,MAAQ4mF,EACtBqH,EAAcnrD,OAAO0rD,EACvB,CACIP,EAAclrF,QAAQK,OAAS,IACjC6qF,EAAclrF,QAAQ,GAAGwrF,UAAW,GAEtChF,EAAQ9uD,SAAS1S,EAAI,CACnB/nB,MAAOo6B,GAAS,GAChB1L,MAAOqgE,EAAS/9D,KAElB89D,EAAiB10D,GAAS,EAC5B,EACA,OAAAi1D,CAAQr+D,GACN,MAAMq+D,EAAU,IAAI5hE,IAAIuD,EAAMmzD,OAAOkL,SACrC,IAAK,MAAMf,KAAUt9D,EAAMmP,OAAOp9B,QAChCurF,EAAOC,SAAWc,EAAQ78D,IAAI87D,EAAOW,OAEvC1F,EAAQ9uD,SAAS1S,EAAI,CACnB/nB,MAAOo6B,GAAS,KAElB00D,EAAiB10D,GAAS,EAC5B,EACA,QAAAmiD,CAASvrD,GACPA,EAAMmP,OAAOwkD,UAAY3zD,EAAMmzD,OAAO5H,QACxC,GAEFzlE,KAAKiuE,0BAA0BC,EAASC,EAAQ,IAElDgJ,EAAc98D,iBAAiB,SAASH,IACtC,MAAM41D,EAAcxsD,GAAS,GAC7BmvD,EAAQ9uD,SAAS1S,EAAI,CACnB/nB,MAAO4mF,IAET51D,EAAMsP,iBACNxpB,KAAKorE,YAAY/xC,UAAUxJ,SAAS,yBAA0B,CAC5DhiB,OAAQ7N,KACRqtE,OAAQ,CACNp8D,KACAlR,KAAM,YACN7W,MAAO8uF,EACPQ,SAAU1I,EACViG,YAAY,EACZX,UAAW,EACXqD,SAAS,IAEX,IAEJz4E,KAAK4zE,mBAAmBuD,EAAe,KAAM,CAAC,CAAC,QAAS,SAAU,CAAC,OAAQ,QAAS,CAAC,YAAa,cAAe,CAAC,aAAc,eAAgB,CAAC,aAAc,cAAe,CAAC,UAAW,YAAa,CAAC,QAAS,UAAW,CAAC,QAAS,cAAcj9D,GAASA,EAAMmP,OAAOngC,SAE1QiuF,EAAc98D,iBAAiB,SAAS,SAAUH,GAChDu4D,EAAQ9uD,SAAS1S,EAAI,CACnB/nB,MAAOo6B,GAAS,IAEpB,IAEEtjB,KAAK+F,KAAKsxE,OACZr3E,KAAKi0E,cAAckD,GAErBn3E,KAAKg0E,oBAAoBmD,GACzBn3E,KAAKquE,4BAA4B8I,GACjCn3E,KAAKk5B,UAAUlN,OAAOmrD,GACfn3E,KAAKk5B,SACd,EAEF,MAAMkxC,UAA+BY,EACnC,WAAA/qE,CAAYslB,GACV,MAAM,KACJxf,EAAI,SACJypE,GACEjqD,EACJ7kB,MAAM6kB,EAAY,CAChB0lD,aAAcD,EAAkBa,cAAc9lE,KAEhD/F,KAAKwvE,SAAWA,CAClB,CACA,MAAA/6D,GACEzU,KAAKk5B,UAAUzQ,UAAU7R,IAAI,mBAC7B,MAAMy4D,EAAQ,IAAIqJ,EAAa,CAC7Bx/C,UAAWl5B,KAAKk5B,UAChB5B,MAAOt3B,KAAK+F,KAAKuxB,MACjBw0C,SAAU9rE,KAAK+F,KAAK+lE,SACpBwD,iBAAkBtvE,KAAK+F,KAAKupE,iBAC5BvD,YAAa/rE,KAAK+F,KAAKgmE,YACvBC,SAAUhsE,KAAK+F,KAAKimE,SACpBnoE,KAAM7D,KAAK+F,KAAKlC,KAChB0rE,WAAYvvE,KAAK+F,KAAKwpE,YAAc,KACpC3qD,OAAQ5kB,KAAK4kB,OACb4qD,SAAUxvE,KAAKwvE,SACf/rC,KAAMzjC,KAAK+F,KAAK09B,OAEZk1C,EAAa,GACnB,IAAK,MAAMplD,KAAWvzB,KAAKwvE,SACzBj8C,EAAQ87C,MAAQA,EAChBsJ,EAAWjnF,KAAK6hC,EAAQxtB,KAAKkL,IAC7BsiB,EAAQ+8C,mBAGV,OADAtwE,KAAKk5B,UAAU7J,aAAa,gBAAiBspD,EAAW7oF,KAAImhB,GAAM,GAAG7J,EAAMrc,mBAAmBkmB,MAAMzjB,KAAK,MAClGwS,KAAKk5B,SACd,EAEF,MAAMw/C,EACJ,IAAmB,KACnB,IAAgB14E,MAAK,GAASmgB,KAAKngB,MACnC,IAAaA,MAAK,GAAMmgB,KAAKngB,MAC7B,IAAaA,MAAK,GAAMmgB,KAAKngB,MAC7B,IAAeA,MAAK,GAAQmgB,KAAKngB,MACjC,IAAS,KACT,IAAa,KACb,IAAe,KACf,IAAY,KACZ,IAAU,KACV,IAAc,KACd,KAAU,EACV,IAAS,KACT,IAAQ,KACR,IAAY,KACZ,IAAY,KACZ,KAAc,EACd,WAAAC,EAAY,UACVi5B,EAAS,MACT5B,EAAK,SACLk4C,EAAQ,SACR1D,EAAQ,iBACRwD,EAAgB,YAChBvD,EAAW,SACXC,EAAQ,OACRpnD,EAAM,KACN/gB,EAAI,WACJ0rE,EAAU,KACV9rC,IAEAzjC,MAAK,GAAak5B,EAClBl5B,MAAK,GAAY8rE,EACjB9rE,MAAK,GAAe+rE,EACpB/rE,MAAK,GAAYgsE,EACjBhsE,MAAK,GAAU4kB,EACf5kB,MAAK,GAASs3B,EACdt3B,MAAK,GAAQ6D,EACb7D,MAAK,GAAcuvE,EACnBvvE,MAAK,GAAYwvE,EACjB,MAAMoJ,EAAatxE,EAAeq2B,cAAckI,aAAaypC,GACzDsJ,IACF54E,MAAK,GAAmB4kB,EAAO4C,KAAK53B,IAAI,yBAA0B,CAChE9C,KAAM8rF,EAAWC,qBACjB3jE,KAAM0jE,EAAWE,wBAGrB94E,KAAK+4E,QAAUvJ,EAASwJ,SAAQpoD,GAAKA,EAAEy/C,8BACvC,IAAK,MAAM98C,KAAWvzB,KAAK+4E,QACzBxlD,EAAQlZ,iBAAiB,QAASra,MAAK,IACvCuzB,EAAQlZ,iBAAiB,aAAcra,MAAK,IAC5CuzB,EAAQlZ,iBAAiB,aAAcra,MAAK,IAC5CuzB,EAAQ9K,UAAU7R,IAAI,oBAExB,IAAK,MAAM2c,KAAWi8C,EACpBj8C,EAAQ2F,WAAW7e,iBAAiB,UAAWra,MAAK,IAEtDA,MAAK,GAAW4yB,QAAS,EACrB6Q,GACFzjC,MAAK,IAET,CACA,MAAAyU,GACE,GAAIzU,MAAK,GACP,OAEF,MACEge,MAAM,KACJxK,GAEFmB,UACEmR,SAAS,UACPC,EAAS,WACTC,EAAU,MACVC,EAAK,MACLC,KAGFlmB,MAAK,GACHqvE,EAAQrvE,MAAK,GAASyK,SAASqhB,cAAc,OAEnD,GADAujD,EAAMjgD,UAAY,QACdpvB,MAAK,GAAQ,CACf,MAAMi5E,EAAY5J,EAAM1nD,MAAMuxD,aAAe9xE,EAAMhe,KAAK2Y,gBAAgB/B,MAAK,IAC7E,GAAI0B,IAAIC,SAAS,mBAAoB,sCACnC0tE,EAAM1nD,MAAMmhC,gBAAkB,sBAAsBmwB,oBAC/C,CACL,MAAME,EAAqB,GAC3B9J,EAAM1nD,MAAMmhC,gBAAkB1hD,EAAMhe,KAAK2Y,gBAAgB/B,MAAK,GAAOlQ,KAAIwT,GAAKtV,KAAKC,MAAMkrF,GAAsB,IAAM71E,GAAKA,KAC5H,CACF,CACA,MAAM81E,EAAS3uE,SAASqhB,cAAc,QACtCstD,EAAOhqD,UAAY,SACnB,MAAMu+C,EAAQljE,SAASqhB,cAAc,MAOrC,GANAstD,EAAOptD,OAAO2hD,KAEZrK,IAAKqK,EAAMrK,IACXn0E,IAAKw+E,EAAMh2D,aACT3X,MAAK,IACTqvE,EAAMrjD,OAAOotD,GACTp5E,MAAK,GAAkB,CACzB,MAAMsvE,EAAmB7kE,SAASqhB,cAAc,QAChDwjD,EAAiB7mD,UAAU7R,IAAI,aAC/B5W,MAAK,GAAiBoM,MAAKitE,IACzB/J,EAAiB33D,YAAc0hE,CAAS,IAE1CD,EAAOptD,OAAOsjD,EAChB,CACA,MAAMvD,EAAc/rE,MAAK,GACnBgsE,EAAWhsE,MAAK,GACtB,IAAIgsE,GAAU78E,KAAS48E,GAAa58E,KAAO48E,EAAY58E,MAAQ68E,EAAS78E,IAOjE,CACL,MAAMmqF,EAAWt5E,KAAKu5E,gBAAgBxN,GACtCsD,EAAMrjD,OAAOstD,EACf,MATEnQ,EAAWqQ,SAAS/kE,OAAO,CACzBglE,QAASzN,EAAS0N,KAClBxlE,OAAQ,WACRsR,IAAK6pD,IAEPA,EAAM6H,UAAUzuD,UAAU7R,IAAI,WAAY,gBAK5C,IAAI+iE,IAAkB35E,MAAK,GACvB6D,EAAO81E,EAAgB35E,MAAK,GAAcA,MAAK,GACnD,IAAK,MAAMuzB,KAAWvzB,MAAK,GACzB,IAAK6D,GAA0D,OAAlDuD,EAAMhe,KAAK0a,UAAUyvB,EAAQxtB,KAAKlC,KAAMA,GAAgB,CACnEA,EAAO0vB,EAAQxtB,KAAKlC,KACpB81E,GAAgB,EAChB,KACF,CAEF,MAAMC,EAAiBxyE,EAAMhe,KAAKwa,cAAc,CAACC,EAAK,GAAI2P,EAAK,GAAK3P,EAAK,GAAK2P,EAAK,GAAI3P,EAAK,GAAI2P,EAAK,GAAK3P,EAAK,GAAK2P,EAAK,KAEnH8W,EAAcqvD,EAAgB91E,EAAK,GAAKA,EAAK,GADT,EACkD,EACtFg2E,EAAYD,EAAe,GAAKtvD,EAChCwvD,EAAWF,EAAe,IAC1B,MACJjyD,GACE3nB,MAAK,GACT2nB,EAAMiD,KAAU,KAAOivD,EAAY5zD,GAASF,EAA/B,IACb4B,EAAMmD,IAAS,KAAOgvD,EAAW5zD,GAASF,EAA9B,IACZhmB,MAAK,GAAWgsB,OAAOqjD,EACzB,CACA,eAAAkK,EAAgB,IACdpqF,EAAG,IACHm0E,IAEA,MAAM7gE,EAAIgI,SAASqhB,cAAc,KACjCrpB,EAAEgmB,UAAU7R,IAAI,gBAChBnU,EAAE6gE,IAAMA,EACR,MAAMyW,EAAQ5qF,EAAIunC,MAAM,gBACxB,IAAK,IAAI3oC,EAAI,EAAGiB,EAAK+qF,EAAMztF,OAAQyB,EAAIiB,IAAMjB,EAAG,CAC9C,MAAMu6E,EAAOyR,EAAMhsF,GACnB0U,EAAEupB,OAAOvhB,SAAS89D,eAAeD,IAC7Bv6E,EAAIiB,EAAK,GACXyT,EAAEupB,OAAOvhB,SAASqhB,cAAc,MAEpC,CACA,OAAOrpB,CACT,CACA,IAASyX,GACHA,EAAM0c,QAAU1c,EAAM6W,UAAY7W,EAAMkS,SAAWlS,EAAM8W,UAG3C,UAAd9W,EAAMjqB,KAAiC,WAAdiqB,EAAMjqB,KAAoB+P,MAAK,KAC1DA,MAAK,IAET,CACA,MACEA,MAAK,IAAWA,MAAK,GACjBA,MAAK,IACPA,MAAK,KACLA,MAAK,GAAWqa,iBAAiB,QAASra,MAAK,IAC/CA,MAAK,GAAWqa,iBAAiB,UAAWra,MAAK,MAEjDA,MAAK,KACLA,MAAK,GAAWsa,oBAAoB,QAASta,MAAK,IAClDA,MAAK,GAAWsa,oBAAoB,UAAWta,MAAK,IAExD,CACA,MACOA,MAAK,IACRA,KAAKyU,SAEFzU,KAAKkkD,UAGClkD,MAAK,IACdA,MAAK,GAAWyoB,UAAU7R,IAAI,YAH9B5W,MAAK,GAAW4yB,QAAS,EACzB5yB,MAAK,GAAW2nB,MAAMsB,OAASiW,SAASl/B,MAAK,GAAW2nB,MAAMsB,QAAU,IAI5E,CACA,MACEjpB,MAAK,GAAWyoB,UAAUhF,OAAO,YAC7BzjB,MAAK,IAAYA,KAAKkkD,YAG1BlkD,MAAK,GAAW4yB,QAAS,EACzB5yB,MAAK,GAAW2nB,MAAMsB,OAASiW,SAASl/B,MAAK,GAAW2nB,MAAMsB,QAAU,IAC1E,CACA,SAAAmnD,GACEpwE,MAAK,GAAcA,KAAKkkD,UACnBlkD,MAAK,KAGVA,MAAK,GAAW4yB,QAAS,EAC3B,CACA,SAAAu9C,GACOnwE,MAAK,KAGVA,MAAK,IAAc,EACnBA,MAAK,GAAW4yB,QAAS,EAC3B,CACA,aAAIsxB,GACF,OAAkC,IAA3BlkD,MAAK,GAAW4yB,MACzB,EAEF,MAAM41C,UAAkCwC,EACtC,WAAA/qE,CAAYslB,GACV7kB,MAAM6kB,EAAY,CAChB0lD,cAAc,EACdC,cAAc,IAEhBlrE,KAAK2X,YAAc4N,EAAWxf,KAAK4R,YACnC3X,KAAK2oE,aAAepjD,EAAWxf,KAAK4iE,aACpC3oE,KAAKqmE,qBAAuBj/D,EAAMjc,qBAAqB8H,QACzD,CACA,MAAAwhB,GAEE,GADAzU,KAAKk5B,UAAUzQ,UAAU7R,IAAI,sBACzB5W,KAAK2X,YAAa,CACpB,MAAMm6D,EAAUrnE,SAASqhB,cAAc,OACvCgmD,EAAQrpD,UAAU7R,IAAI,yBACtBk7D,EAAQziD,aAAa,OAAQ,WAC7B,IAAK,MAAMi5C,KAAQtoE,KAAK2X,YAAa,CACnC,MAAMqiE,EAAWvvE,SAASqhB,cAAc,QACxCkuD,EAASriE,YAAc2wD,EACvBwJ,EAAQ9lD,OAAOguD,EACjB,CACAh6E,KAAKk5B,UAAUlN,OAAO8lD,EACxB,CAKA,OAJK9xE,KAAK+F,KAAKmmE,UAAYlsE,KAAKisE,cAC9BjsE,KAAKovE,eAEPpvE,KAAKwwE,qBACExwE,KAAKk5B,SACd,EAEFnwC,EAAQy/E,0BAA4BA,EACpC,MAAM6B,UAA8BW,EAClC,IAAQ,KACR,WAAA/qE,CAAYslB,GACV7kB,MAAM6kB,EAAY,CAChB0lD,cAAc,EACdC,cAAc,GAElB,CACA,MAAAz2D,GACEzU,KAAKk5B,UAAUzQ,UAAU7R,IAAI,kBAC7B,MAAM7Q,EAAO/F,KAAK+F,MACZ,MACJya,EAAK,OACLC,GACE6oD,EAAYvjE,EAAKlC,MACfu8B,EAAMpgC,KAAK87D,WAAW9rE,OAAOwwB,EAAOC,GAAQ,GAC5C6nD,EAAOtoE,MAAK,GAAQA,KAAK87D,WAAWhwC,cAAc,YAaxD,OAZAw8C,EAAKj5C,aAAa,KAAMtpB,EAAKlC,KAAK,GAAKkC,EAAKk0E,gBAAgB,IAC5D3R,EAAKj5C,aAAa,KAAMtpB,EAAKlC,KAAK,GAAKkC,EAAKk0E,gBAAgB,IAC5D3R,EAAKj5C,aAAa,KAAMtpB,EAAKlC,KAAK,GAAKkC,EAAKk0E,gBAAgB,IAC5D3R,EAAKj5C,aAAa,KAAMtpB,EAAKlC,KAAK,GAAKkC,EAAKk0E,gBAAgB,IAC5D3R,EAAKj5C,aAAa,eAAgBtpB,EAAKsmE,YAAY7rD,OAAS,GAC5D8nD,EAAKj5C,aAAa,SAAU,eAC5Bi5C,EAAKj5C,aAAa,OAAQ,eAC1B+Q,EAAIpU,OAAOs8C,GACXtoE,KAAKk5B,UAAUlN,OAAOoU,IACjBr6B,EAAKmmE,UAAYlsE,KAAKisE,cACzBjsE,KAAKovE,eAEApvE,KAAKk5B,SACd,CACA,yBAAAm3C,GACE,OAAOrwE,MAAK,EACd,CACA,gBAAAswE,GACEtwE,KAAKk5B,UAAUzQ,UAAU7R,IAAI,gBAC/B,EAEF,MAAM0zD,UAAgCU,EACpC,IAAU,KACV,WAAA/qE,CAAYslB,GACV7kB,MAAM6kB,EAAY,CAChB0lD,cAAc,EACdC,cAAc,GAElB,CACA,MAAAz2D,GACEzU,KAAKk5B,UAAUzQ,UAAU7R,IAAI,oBAC7B,MAAM7Q,EAAO/F,KAAK+F,MACZ,MACJya,EAAK,OACLC,GACE6oD,EAAYvjE,EAAKlC,MACfu8B,EAAMpgC,KAAK87D,WAAW9rE,OAAOwwB,EAAOC,GAAQ,GAC5C6rD,EAAcvmE,EAAKsmE,YAAY7rD,MAC/B05D,EAASl6E,MAAK,GAAUA,KAAK87D,WAAWhwC,cAAc,YAa5D,OAZAouD,EAAO7qD,aAAa,IAAKi9C,EAAc,GACvC4N,EAAO7qD,aAAa,IAAKi9C,EAAc,GACvC4N,EAAO7qD,aAAa,QAAS7O,EAAQ8rD,GACrC4N,EAAO7qD,aAAa,SAAU5O,EAAS6rD,GACvC4N,EAAO7qD,aAAa,eAAgBi9C,GAAe,GACnD4N,EAAO7qD,aAAa,SAAU,eAC9B6qD,EAAO7qD,aAAa,OAAQ,eAC5B+Q,EAAIpU,OAAOkuD,GACXl6E,KAAKk5B,UAAUlN,OAAOoU,IACjBr6B,EAAKmmE,UAAYlsE,KAAKisE,cACzBjsE,KAAKovE,eAEApvE,KAAKk5B,SACd,CACA,yBAAAm3C,GACE,OAAOrwE,MAAK,EACd,CACA,gBAAAswE,GACEtwE,KAAKk5B,UAAUzQ,UAAU7R,IAAI,gBAC/B,EAEF,MAAM2zD,UAAgCS,EACpC,IAAU,KACV,WAAA/qE,CAAYslB,GACV7kB,MAAM6kB,EAAY,CAChB0lD,cAAc,EACdC,cAAc,GAElB,CACA,MAAAz2D,GACEzU,KAAKk5B,UAAUzQ,UAAU7R,IAAI,oBAC7B,MAAM7Q,EAAO/F,KAAK+F,MACZ,MACJya,EAAK,OACLC,GACE6oD,EAAYvjE,EAAKlC,MACfu8B,EAAMpgC,KAAK87D,WAAW9rE,OAAOwwB,EAAOC,GAAQ,GAC5C6rD,EAAcvmE,EAAKsmE,YAAY7rD,MAC/B25D,EAASn6E,MAAK,GAAUA,KAAK87D,WAAWhwC,cAAc,eAa5D,OAZAquD,EAAO9qD,aAAa,KAAM7O,EAAQ,GAClC25D,EAAO9qD,aAAa,KAAM5O,EAAS,GACnC05D,EAAO9qD,aAAa,KAAM7O,EAAQ,EAAI8rD,EAAc,GACpD6N,EAAO9qD,aAAa,KAAM5O,EAAS,EAAI6rD,EAAc,GACrD6N,EAAO9qD,aAAa,eAAgBi9C,GAAe,GACnD6N,EAAO9qD,aAAa,SAAU,eAC9B8qD,EAAO9qD,aAAa,OAAQ,eAC5B+Q,EAAIpU,OAAOmuD,GACXn6E,KAAKk5B,UAAUlN,OAAOoU,IACjBr6B,EAAKmmE,UAAYlsE,KAAKisE,cACzBjsE,KAAKovE,eAEApvE,KAAKk5B,SACd,CACA,yBAAAm3C,GACE,OAAOrwE,MAAK,EACd,CACA,gBAAAswE,GACEtwE,KAAKk5B,UAAUzQ,UAAU7R,IAAI,gBAC/B,EAEF,MAAM4zD,UAAkCQ,EACtC,IAAY,KACZ,WAAA/qE,CAAYslB,GACV7kB,MAAM6kB,EAAY,CAChB0lD,cAAc,EACdC,cAAc,IAEhBlrE,KAAKo6E,mBAAqB,qBAC1Bp6E,KAAKq6E,eAAiB,cACxB,CACA,MAAA5lE,GACEzU,KAAKk5B,UAAUzQ,UAAU7R,IAAI5W,KAAKo6E,oBAClC,MAAMr0E,EAAO/F,KAAK+F,MACZ,MACJya,EAAK,OACLC,GACE6oD,EAAYvjE,EAAKlC,MACfu8B,EAAMpgC,KAAK87D,WAAW9rE,OAAOwwB,EAAOC,GAAQ,GAClD,IAAIoiC,EAAS,GACb,IAAK,MAAMy3B,KAAcv0E,EAAKw0E,SAAU,CACtC,MAAM/zD,EAAI8zD,EAAW9zD,EAAIzgB,EAAKlC,KAAK,GAC7B4iB,EAAI1gB,EAAKlC,KAAK,GAAKy2E,EAAW7zD,EACpCo8B,EAAOnxD,KAAK80B,EAAI,IAAMC,EACxB,CACAo8B,EAASA,EAAOr1D,KAAK,KACrB,MAAMgtF,EAAWx6E,MAAK,GAAYA,KAAK87D,WAAWhwC,cAAc9rB,KAAKq6E,gBAUrE,OATAG,EAASnrD,aAAa,SAAUwzB,GAChC23B,EAASnrD,aAAa,eAAgBtpB,EAAKsmE,YAAY7rD,OAAS,GAChEg6D,EAASnrD,aAAa,SAAU,eAChCmrD,EAASnrD,aAAa,OAAQ,eAC9B+Q,EAAIpU,OAAOwuD,GACXx6E,KAAKk5B,UAAUlN,OAAOoU,IACjBr6B,EAAKmmE,UAAYlsE,KAAKisE,cACzBjsE,KAAKovE,eAEApvE,KAAKk5B,SACd,CACA,yBAAAm3C,GACE,OAAOrwE,MAAK,EACd,CACA,gBAAAswE,GACEtwE,KAAKk5B,UAAUzQ,UAAU7R,IAAI,gBAC/B,EAEF,MAAM8zD,UAAiCF,EACrC,WAAAvqE,CAAYslB,GACV7kB,MAAM6kB,GACNvlB,KAAKo6E,mBAAqB,oBAC1Bp6E,KAAKq6E,eAAiB,aACxB,EAEF,MAAM5P,UAA+BO,EACnC,WAAA/qE,CAAYslB,GACV7kB,MAAM6kB,EAAY,CAChB0lD,cAAc,EACdC,cAAc,GAElB,CACA,MAAAz2D,GAKE,OAJAzU,KAAKk5B,UAAUzQ,UAAU7R,IAAI,oBACxB5W,KAAK+F,KAAKmmE,UAAYlsE,KAAKisE,cAC9BjsE,KAAKovE,eAEApvE,KAAKk5B,SACd,EAEF,MAAM6vC,UAA6BiC,EACjC,IAAa,GACb,WAAA/qE,CAAYslB,GACV7kB,MAAM6kB,EAAY,CAChB0lD,cAAc,EACdC,cAAc,IAEhBlrE,KAAKo6E,mBAAqB,gBAC1Bp6E,KAAKq6E,eAAiB,eACtBr6E,KAAKqmE,qBAAuBj/D,EAAMjc,qBAAqBgI,GACzD,CACA,MAAAshB,GACEzU,KAAKk5B,UAAUzQ,UAAU7R,IAAI5W,KAAKo6E,oBAClC,MAAMr0E,EAAO/F,KAAK+F,MACZ,MACJya,EAAK,OACLC,GACE6oD,EAAYvjE,EAAKlC,MACfu8B,EAAMpgC,KAAK87D,WAAW9rE,OAAOwwB,EAAOC,GAAQ,GAClD,IAAK,MAAMg6D,KAAW10E,EAAK20E,SAAU,CACnC,IAAI73B,EAAS,GACb,IAAK,MAAMy3B,KAAcG,EAAS,CAChC,MAAMj0D,EAAI8zD,EAAW9zD,EAAIzgB,EAAKlC,KAAK,GAC7B4iB,EAAI1gB,EAAKlC,KAAK,GAAKy2E,EAAW7zD,EACpCo8B,EAAOnxD,KAAK,GAAG80B,KAAKC,IACtB,CACAo8B,EAASA,EAAOr1D,KAAK,KACrB,MAAMgtF,EAAWx6E,KAAK87D,WAAWhwC,cAAc9rB,KAAKq6E,gBACpDr6E,MAAK,GAAWtO,KAAK8oF,GACrBA,EAASnrD,aAAa,SAAUwzB,GAChC23B,EAASnrD,aAAa,eAAgBtpB,EAAKsmE,YAAY7rD,OAAS,GAChEg6D,EAASnrD,aAAa,SAAU,eAChCmrD,EAASnrD,aAAa,OAAQ,gBACzBtpB,EAAKmmE,UAAYlsE,KAAKisE,cACzBjsE,KAAKovE,eAEPhvC,EAAIpU,OAAOwuD,EACb,CAEA,OADAx6E,KAAKk5B,UAAUlN,OAAOoU,GACfpgC,KAAKk5B,SACd,CACA,yBAAAm3C,GACE,OAAOrwE,MAAK,EACd,CACA,gBAAAswE,GACEtwE,KAAKk5B,UAAUzQ,UAAU7R,IAAI,gBAC/B,EAEF7tB,EAAQggF,qBAAuBA,EAC/B,MAAM4B,UAAmCK,EACvC,WAAA/qE,CAAYslB,GACV7kB,MAAM6kB,EAAY,CAChB0lD,cAAc,EACdC,cAAc,EACdC,sBAAsB,GAE1B,CACA,MAAA12D,GAKE,OAJKzU,KAAK+F,KAAKmmE,UAAYlsE,KAAKisE,cAC9BjsE,KAAKovE,eAEPpvE,KAAKk5B,UAAUzQ,UAAU7R,IAAI,uBACtB5W,KAAKk5B,SACd,EAEF,MAAM0xC,UAAmCI,EACvC,WAAA/qE,CAAYslB,GACV7kB,MAAM6kB,EAAY,CAChB0lD,cAAc,EACdC,cAAc,EACdC,sBAAsB,GAE1B,CACA,MAAA12D,GAKE,OAJKzU,KAAK+F,KAAKmmE,UAAYlsE,KAAKisE,cAC9BjsE,KAAKovE,eAEPpvE,KAAKk5B,UAAUzQ,UAAU7R,IAAI,uBACtB5W,KAAKk5B,SACd,EAEF,MAAM2xC,UAAkCG,EACtC,WAAA/qE,CAAYslB,GACV7kB,MAAM6kB,EAAY,CAChB0lD,cAAc,EACdC,cAAc,EACdC,sBAAsB,GAE1B,CACA,MAAA12D,GAKE,OAJKzU,KAAK+F,KAAKmmE,UAAYlsE,KAAKisE,cAC9BjsE,KAAKovE,eAEPpvE,KAAKk5B,UAAUzQ,UAAU7R,IAAI,sBACtB5W,KAAKk5B,SACd,EAEF,MAAM4xC,UAAmCE,EACvC,WAAA/qE,CAAYslB,GACV7kB,MAAM6kB,EAAY,CAChB0lD,cAAc,EACdC,cAAc,EACdC,sBAAsB,GAE1B,CACA,MAAA12D,GAKE,OAJKzU,KAAK+F,KAAKmmE,UAAYlsE,KAAKisE,cAC9BjsE,KAAKovE,eAEPpvE,KAAKk5B,UAAUzQ,UAAU7R,IAAI,uBACtB5W,KAAKk5B,SACd,EAEF,MAAM4vC,UAA+BkC,EACnC,WAAA/qE,CAAYslB,GACV7kB,MAAM6kB,EAAY,CAChB0lD,cAAc,EACdC,cAAc,GAElB,CACA,MAAAz2D,GAKE,OAJAzU,KAAKk5B,UAAUzQ,UAAU7R,IAAI,oBACxB5W,KAAK+F,KAAKmmE,UAAYlsE,KAAKisE,cAC9BjsE,KAAKovE,eAEApvE,KAAKk5B,SACd,EAEFnwC,EAAQ+/E,uBAAyBA,EACjC,MAAMiC,UAAwCC,EAC5C,IAAW,KACX,WAAA/qE,CAAYslB,GACV7kB,MAAM6kB,EAAY,CAChB0lD,cAAc,IAEhB,MAAM,SACJtqD,EAAQ,QACRmxD,GACE9xE,KAAK+F,KAAK6uB,KACd50B,KAAK2gB,UAAW,EAAIrZ,EAAeg3B,oBAAoB3d,GAAU,GACjE3gB,KAAK8xE,QAAUA,EACf9xE,KAAKorE,YAAY/xC,UAAUxJ,SAAS,2BAA4B,CAC9DhiB,OAAQ7N,KACR2gB,WACAmxD,WAEJ,CACA,MAAAr9D,GACEzU,KAAKk5B,UAAUzQ,UAAU7R,IAAI,4BAC7B,MAAM,UACJsiB,EAAS,KACTnzB,GACE/F,KACJ,IAAI+4E,EACAhzE,EAAK0uE,eAAoC,IAAnB1uE,EAAK2oC,UAC7BqqC,EAAUtuE,SAASqhB,cAAc,QAEjCitD,EAAUtuE,SAASqhB,cAAc,OACjCitD,EAAQjwE,IAAM,GAAG9I,KAAKsrE,gCAAgC,aAAalsC,KAAKr5B,EAAKhG,MAAQ,YAAc,gBAC/FgG,EAAK2oC,WAAa3oC,EAAK2oC,UAAY,IACrCqqC,EAAQpxD,MAAQ,mBAAmB35B,KAAKs9B,MAAuB,IAAjBvlB,EAAK2oC,kBAGvDqqC,EAAQ1+D,iBAAiB,WAAYra,MAAK,GAAUmgB,KAAKngB,OACzDA,MAAK,GAAW+4E,EAChB,MAAM,MACJx3E,GACE6F,EAAM7c,YAAY6W,SAYtB,OAXA83B,EAAU7e,iBAAiB,WAAWkE,IACpB,UAAZA,EAAItuB,MAAoBsR,EAAQgd,EAAIyS,QAAUzS,EAAI6N,UACpDpsB,MAAK,IACP,KAEG+F,EAAKmmE,UAAYlsE,KAAKisE,aACzBjsE,KAAKovE,eAEL2J,EAAQtwD,UAAU7R,IAAI,oBAExBsiB,EAAUlN,OAAO+sD,GACV7/C,CACT,CACA,yBAAAm3C,GACE,OAAOrwE,MAAK,EACd,CACA,gBAAAswE,GACEtwE,KAAKk5B,UAAUzQ,UAAU7R,IAAI,gBAC/B,CACA,MACE5W,KAAKqrE,iBAAiBwG,mBAAmB7xE,KAAKk5B,UAAWl5B,KAAK8xE,QAAS9xE,KAAK2gB,SAC9E,EAyIF53B,EAAQigF,gBAvIR,MACE,IAAwB,KACxB,IAAuB,KACvB,IAAuB,IAAI15E,IAC3B,WAAA2Q,EAAY,IACVulB,EAAG,qBACHo/C,EAAoB,oBACpB7vD,EAAmB,KACnByS,EAAI,KACJxJ,EAAI,SACJrJ,IAEA3U,KAAKwlB,IAAMA,EACXxlB,MAAK,GAAwB4kE,EAC7B5kE,MAAK,GAAuB+U,EAC5B/U,KAAKwnB,KAAOA,EACZxnB,KAAKge,KAAOA,EACZhe,KAAK2U,SAAWA,EAChB3U,KAAKipB,OAAS,EACdjpB,KAAKwnB,OAAS0hD,EAAmByR,QACnC,CACA,IAAepnD,EAAStiB,GACtB,MAAM2pE,EAAiBrnD,EAAQsnD,YAActnD,EAC7CqnD,EAAe3pE,GAAK,GAAG7J,EAAMrc,mBAAmBkmB,IAChDjR,KAAKwlB,IAAIwG,OAAOuH,GAChBvzB,MAAK,IAAuBimE,iBAAiBjmE,KAAKwlB,IAAK+N,EAASqnD,GAAgB,EAClF,CACA,YAAMnmE,CAAO/H,GACX,MAAM,YACJouE,GACEpuE,EACEitB,EAAQ35B,KAAKwlB,KACnB,EAAIle,EAAek4B,oBAAoB7F,EAAO35B,KAAK2U,UACnD,MAAMomE,EAAkB,IAAIzrF,IACtB0rF,EAAgB,CACpBj1E,KAAM,KACN4zB,QACAyxC,YAAa1+D,EAAO0+D,YACpBC,gBAAiB3+D,EAAO2+D,gBACxBC,mBAAoB5+D,EAAO4+D,oBAAsB,GACjDC,aAAoC,IAAvB7+D,EAAO6+D,YACpBzP,WAAY,IAAIx0D,EAAes2B,cAC/BvtB,kBAAmB3D,EAAO2D,mBAAqB,IAAIhJ,EAAoBqW,kBACvE8tD,iBAA4C,IAA3B9+D,EAAO8+D,gBACxBh5D,aAAc9F,EAAO8F,aACrBk5D,aAAch/D,EAAOg/D,aACrB9mD,OAAQ5kB,KACRwvE,SAAU,MAEZ,IAAK,MAAMzpE,KAAQ+0E,EAAa,CAC9B,GAAI/0E,EAAKk1E,OACP,SAEF,MAAMC,EAAoBn1E,EAAKqgE,iBAAmBh/D,EAAMvc,eAAe+K,MACvE,GAAKslF,EAQE,CACL,MAAM1L,EAAWuL,EAAgBnrF,IAAImW,EAAKkL,IAC1C,IAAKu+D,EACH,SAEFwL,EAAcxL,SAAWA,CAC3B,KAdwB,CACtB,MAAM,MACJhvD,EAAK,OACLC,GACE6oD,EAAYvjE,EAAKlC,MACrB,GAAI2c,GAAS,GAAKC,GAAU,EAC1B,QAEJ,CAOAu6D,EAAcj1E,KAAOA,EACrB,MAAMwtB,EAAUg2C,EAAyBv5E,OAAOgrF,GAChD,IAAKznD,EAAQ03C,aACX,SAEF,IAAKiQ,GAAqBn1E,EAAKmmE,SAAU,CACvC,MAAMsD,EAAWuL,EAAgBnrF,IAAImW,EAAKmmE,UACrCsD,EAGHA,EAAS99E,KAAK6hC,GAFdwnD,EAAgB1lE,IAAItP,EAAKmmE,SAAU,CAAC34C,GAIxC,CACIA,EAAQ8yC,qBAAuB,GACjCrmE,MAAK,GAAqBqV,IAAIke,EAAQxtB,KAAKkL,GAAIsiB,GAEjD,MAAM4nD,EAAW5nD,EAAQ9e,SACrB1O,EAAK6sB,SACPuoD,EAASxzD,MAAMmW,WAAa,UAE9B99B,MAAK,GAAem7E,EAAUp1E,EAAKkL,GACrC,CACAjR,MAAK,WACCA,KAAKwnB,KAAKyC,UAAU0P,EAC5B,CACA,MAAAnV,EAAO,SACL7P,IAEA,MAAMglB,EAAQ35B,KAAKwlB,IACnBxlB,KAAK2U,SAAWA,GAChB,EAAIrN,EAAek4B,oBAAoB7F,EAAO,CAC5ChmB,SAAUgB,EAAShB,WAErB3T,MAAK,KACL25B,EAAM/G,QAAS,CACjB,CACA,MACE,IAAK5yB,MAAK,GACR,OAEF,MAAM25B,EAAQ35B,KAAKwlB,IACnB,IAAK,MAAOvU,EAAIoQ,KAAWrhB,MAAK,GAAsB,CACpD,MAAMuzB,EAAUoG,EAAMq2C,cAAc,wBAAwB/+D,OAC5D,IAAKsiB,EACH,SAEF,MAAM,WACJsnD,GACEtnD,EACCsnD,EAE8B,WAAxBA,EAAW1H,SACpB0H,EAAWO,YAAY/5D,GAEvBw5D,EAAWvC,OAAOj3D,GAJlBkS,EAAQvH,OAAO3K,EAMnB,CACArhB,MAAK,GAAqB+Y,OAC5B,CACA,sBAAAysD,GACE,OAAO3jE,MAAMg5D,KAAK76D,MAAK,GAAqB2Y,SAC9C,CACA,qBAAAitD,CAAsB30D,GACpB,OAAOjR,MAAK,GAAqBpQ,IAAIqhB,EACvC,EAIK,EAED,CAAEnoB,EAAyBC,KAQjC,SAASsyF,EAAcv5E,GACrB,OAAO9T,KAAKC,MAAoC,IAA9BD,KAAKiV,IAAI,EAAGjV,KAAKuS,IAAI,EAAGuB,KAAW7U,SAAS,IAAIE,SAAS,EAAG,IAChF,CACA,SAASmuF,EAAc90D,GACrB,OAAOx4B,KAAKiV,IAAI,EAAGjV,KAAKuS,IAAI,IAAK,IAAMimB,GACzC,CATAx9B,OAAOC,eAAeF,EAAS,aAAc,CAC3CG,OAAO,IAETH,EAAQwkF,qBAAkB,EA0D1BxkF,EAAQwkF,gBAnDR,MACE,aAAOgO,EAAQj4E,EAAGmjB,EAAG/jB,EAAG6/B,IACtB,MAAO,CAAC,IAAK,EAAIv0C,KAAKuS,IAAI,EAAG,GAAM+C,EAAI,IAAOZ,EAAI,IAAO+jB,EAAI8b,GAC/D,CACA,aAAOi5C,EAAQv5E,IACb,MAAO,CAAC,OAAQ,EAAG,EAAG,EAAG,EAAIA,EAC/B,CACA,YAAOw5E,EAAOx5E,IACZ,MAAO,CAAC,MAAOA,EAAGA,EAAGA,EACvB,CACA,YAAOy5E,EAAOz5E,IAEZ,MAAO,CADPA,EAAIq5E,EAAcr5E,GACPA,EAAGA,EAChB,CACA,aAAO05E,EAAQ15E,IACb,MAAM25E,EAAIP,EAAcp5E,GACxB,MAAO,IAAI25E,IAAIA,IAAIA,GACrB,CACA,YAAOC,EAAO75E,EAAGC,EAAGC,IAClB,MAAO,CAAC,IAAK,GAAMF,EAAI,IAAOC,EAAI,IAAOC,EAC3C,CACA,cAAO45E,CAAQxkD,GACb,OAAOA,EAAMxnC,IAAIwrF,EACnB,CACA,eAAOS,CAASzkD,GACd,MAAO,IAAIA,EAAMxnC,IAAIurF,GAAe7tF,KAAK,KAC3C,CACA,aAAOwuF,GACL,MAAO,WACT,CACA,YAAOC,GACL,MAAO,CAAC,KACV,CACA,eAAOC,EAAU54E,EAAGmjB,EAAG/jB,EAAG6/B,IACxB,MAAO,CAAC,MAAO,EAAIv0C,KAAKuS,IAAI,EAAG+C,EAAIi/B,GAAI,EAAIv0C,KAAKuS,IAAI,EAAGmC,EAAI6/B,GAAI,EAAIv0C,KAAKuS,IAAI,EAAGkmB,EAAI8b,GACrF,CACA,eAAO45C,EAAU74E,EAAGmjB,EAAG/jB,EAAG6/B,IACxB,MAAO,CAAC+4C,EAAc,EAAIttF,KAAKuS,IAAI,EAAG+C,EAAIi/B,IAAK+4C,EAAc,EAAIttF,KAAKuS,IAAI,EAAGmC,EAAI6/B,IAAK+4C,EAAc,EAAIttF,KAAKuS,IAAI,EAAGkmB,EAAI8b,IAC1H,CACA,gBAAO65C,CAAUC,GACf,MAAM9kD,EAAMv3B,KAAKk8E,SAASG,GAAYv5E,MAAM,GAC5C,OAAO9C,KAAK+7E,SAASxkD,EACvB,CACA,eAAO+kD,EAAUt6E,EAAGC,EAAGC,IACrB,MAAMoB,EAAI,EAAItB,EACRU,EAAI,EAAIT,EACRwkB,EAAI,EAAIvkB,EAEd,MAAO,CAAC,OAAQoB,EAAGZ,EAAG+jB,EADZz4B,KAAKuS,IAAI+C,EAAGZ,EAAG+jB,GAE3B,EAIK,EAED,CAAE39B,EAAyBC,KAIjCC,OAAOC,eAAeF,EAAS,aAAc,CAC3CG,OAAO,IAETH,EAAQ4xF,cAAW,EACnB5xF,EAAQwzF,gBAAkBA,EAC1B,MAAMC,EAAuB,CAC3BC,SAAU,oBACVC,cAAe,qCACfC,uBAAwB,oCACxBC,uBAAwB,oCACxBC,gCAAiC,qBACjCC,0CAA2C,KAC3CC,+CAAgD,KAChDC,mDAAoD,WACpDC,oDAAqD,YACrDC,sCAAuC,KACvCC,sCAAuC,KACvCC,0CAA2C,SAC3CC,yCAA0C,QAC1CC,+CAAgD,oDAChDC,oDAAqD,8DACrDC,mCAAoC,MACpCC,kCAAmC,KACnCC,kBAAmB,oBACnBC,cAAe,gBACfC,iBAAkB,gBAClBC,kBAAmB,6BACnBC,iBAAkB,iDAClBC,oBAAqB,8CACrB,wBAAyB,iCACzB,0BAA2B,mCAC3B,8BAA+B,4BAC/B,gCAAiC,8BACjCC,eAAgB,mBAChBC,iBAAkB,aAClBC,eAAgB,WAChBC,gBAAiB,iBACjBC,kBAAmB,cACnBC,mBAAoB,aACpBC,cAAe,2CACfC,mBAAoB,iCACpBC,mBAAoB,oBACpBC,0BAA2B,8BAC3BC,gBAAiB,8CACjBC,uBAAwB,qBACxBC,uBAAwB,4DACxBC,mBAAoB,qDACpBC,mBAAoB,4DACpBC,2BAA4B,gBAC5BC,6BAA8B,cAC9BC,uBAAwB,cACxBC,6BAA8B,qBAC9BC,6BAA8B,WAC9BC,kCAAmC,gBACnCC,mCAAoC,wBAKtC,SAAS9C,EAAgBtsF,EAAK+mC,GAC5B,OAAQ/mC,GACN,IAAK,mBACHA,EAAM,oBAAmC,IAAf+mC,EAAKxnB,MAAc,MAAQ,WACrD,MACF,IAAK,yBACHvf,EAAM,0BAAyC,IAAf+mC,EAAKgiB,MAAc,MAAQ,WAG/D,OAAOwjC,EAAqBvsF,IAAQ,EACtC,CAZEusF,EAAqB8C,uBAAyB,gBAqBhD,MAAM3E,EAAW,CACf/sE,YAAiB,SACR,QAETA,aAAkB,SACT,MAETA,IAAS,MAAC3d,EAAK+mC,EAAO,KAAMgf,EAAWumC,EAAgBtsF,EAAK+mC,KAf9D,SAAyBsM,EAAMtM,GAC7B,OAAKA,EAGEsM,EAAK/zC,WAAW,wBAAwB,CAAC2d,EAAKnN,IAC5CA,KAAQi3B,EAAOA,EAAKj3B,GAAQ,KAAOA,EAAO,OAH1CujC,CAKX,CASWi8C,CAAgBvpC,EAAUhf,GAEnC,eAAM/M,CAAUsJ,GAAU,GAE5BxqC,EAAQ4xF,SAAWA,CAEZ,EAED,CAAE7xF,EAAyBC,EAASmd,KAI1Cld,OAAOC,eAAeF,EAAS,aAAc,CAC3CG,OAAO,IAETH,EAAQywF,cAAW,EACnB,IAAItxE,EAAYhC,EAAoB,IAoMpCnd,EAAQywF,SAnMR,MACE,mBAAOgG,CAAa9F,EAAMzoE,EAAIsiB,EAASk/C,EAASv+D,GAC9C,MAAMo6D,EAAamE,EAAQnvD,SAASrS,EAAI,CACtC/nB,MAAO,OAET,OAAQqqC,EAAQxzB,MACd,IAAK,WAIH,GAHyB,OAArBuuE,EAAWplF,QACbwwF,EAAK/hE,YAAc22D,EAAWplF,OAEjB,UAAXgrB,EACF,MAEFwlE,EAAKr/D,iBAAiB,SAASH,IAC7Bu4D,EAAQ9uD,SAAS1S,EAAI,CACnB/nB,MAAOgxB,EAAMmP,OAAOngC,OACpB,IAEJ,MACF,IAAK,QACH,GAAgC,UAA5BqqC,EAAQ0L,WAAW9sC,MAAgD,aAA5BohC,EAAQ0L,WAAW9sC,KAAqB,CAMjF,GALIm8E,EAAWplF,QAAUqqC,EAAQ0L,WAAWwgD,MAC1C/F,EAAKrqD,aAAa,WAAW,GACpBi/C,EAAWplF,QAAUqqC,EAAQ0L,WAAWygD,QACjDhG,EAAKnS,gBAAgB,WAER,UAAXrzD,EACF,MAEFwlE,EAAKr/D,iBAAiB,UAAUH,IAC9Bu4D,EAAQ9uD,SAAS1S,EAAI,CACnB/nB,MAAOgxB,EAAMmP,OAAOstD,QAAUz8D,EAAMmP,OAAO6mD,aAAa,SAAWh2D,EAAMmP,OAAO6mD,aAAa,WAC7F,GAEN,KAAO,CAIL,GAHyB,OAArB5B,EAAWplF,OACbwwF,EAAKrqD,aAAa,QAASi/C,EAAWplF,OAEzB,UAAXgrB,EACF,MAEFwlE,EAAKr/D,iBAAiB,SAASH,IAC7Bu4D,EAAQ9uD,SAAS1S,EAAI,CACnB/nB,MAAOgxB,EAAMmP,OAAOngC,OACpB,GAEN,CACA,MACF,IAAK,SACH,GAAyB,OAArBolF,EAAWplF,MAAgB,CAC7BwwF,EAAKrqD,aAAa,QAASi/C,EAAWplF,OACtC,IAAK,MAAMsuF,KAAUjkD,EAAQ/e,SACvBgjE,EAAOv4C,WAAW/1C,QAAUolF,EAAWplF,MACzCsuF,EAAOv4C,WAAWw4C,UAAW,EACpBD,EAAOv4C,WAAWhhB,eAAe,oBACnCu5D,EAAOv4C,WAAWw4C,QAG/B,CACAiC,EAAKr/D,iBAAiB,SAASH,IAC7B,MAAMjuB,EAAUiuB,EAAMmP,OAAOp9B,QACvB/C,GAAmC,IAA3B+C,EAAQ8rF,cAAuB,GAAK9rF,EAAQA,EAAQ8rF,eAAe7uF,MACjFupF,EAAQ9uD,SAAS1S,EAAI,CACnB/nB,SACA,IAIV,CACA,oBAAOy2F,EAAc,KACnBjG,EAAI,QACJnmD,EAAO,QACPk/C,EAAU,KAAI,OACdv+D,EAAM,YACNk3D,IAEA,MAAM,WACJnsC,GACE1L,EACEqsD,EAAsBlG,aAAgBmG,kBACpB,UAApB5gD,EAAW9sC,OACb8sC,EAAWl/B,KAAO,GAAGk/B,EAAWl/B,QAAQmU,KAE1C,IAAK,MAAOjkB,EAAK/G,KAAUF,OAAO86B,QAAQmb,GACxC,GAAI/1C,QAGJ,OAAQ+G,GACN,IAAK,QACC/G,EAAMoD,QACRotF,EAAKrqD,aAAap/B,EAAK/G,EAAMsE,KAAK,MAEpC,MACF,IAAK,SACH,MACF,IAAK,KACHksF,EAAKrqD,aAAa,kBAAmBnmC,GACrC,MACF,IAAK,QACHF,OAAOuvB,OAAOmhE,EAAK/xD,MAAOz+B,GAC1B,MACF,IAAK,cACHwwF,EAAK/hE,YAAczuB,EACnB,MACF,UACO02F,GAA+B,SAAR3vF,GAA0B,cAARA,IAC5CypF,EAAKrqD,aAAap/B,EAAK/G,GAI3B02F,GACFxU,EAAYwF,kBAAkB8I,EAAMz6C,EAAWjxB,KAAMixB,EAAW4xC,WAE9D4B,GAAWxzC,EAAW6gD,QACxB9/E,KAAKw/E,aAAa9F,EAAMz6C,EAAW6gD,OAAQvsD,EAASk/C,EAExD,CACA,aAAOh+D,CAAO8Q,GACZ,MAAMktD,EAAUltD,EAAWlV,kBACrB+6D,EAAc7lD,EAAW6lD,YACzB1iF,EAAO68B,EAAWk0D,QAClBvlE,EAASqR,EAAWrR,QAAU,UAC9B6rE,EAAWt1E,SAASqhB,cAAcpjC,EAAKqX,MACzCrX,EAAKu2C,YACPj/B,KAAK2/E,cAAc,CACjBjG,KAAMqG,EACNxsD,QAAS7qC,EACTwrB,SACAk3D,gBAGJ,MAAM4U,EAAQ,CAAC,CAACt3F,GAAO,EAAGq3F,IACpBE,EAAU16D,EAAWC,IAE3B,GADAy6D,EAAQj0D,OAAO+zD,GACXx6D,EAAW5Q,SAAU,CACvB,MAAMla,EAAY,UAAU8qB,EAAW5Q,SAASla,UAAUjN,KAAK,QAC/DyyF,EAAQt4D,MAAMltB,UAAYA,CAC5B,CACe,aAAXyZ,GACF+rE,EAAQ5wD,aAAa,QAAS,oBAEhC,MAAM2xC,EAAW,GACjB,KAAOgf,EAAM1zF,OAAS,GAAG,CACvB,MAAOs4B,EAAQ72B,EAAG2rF,GAAQsG,EAAMrpD,IAAI,GACpC,GAAI5oC,EAAI,IAAM62B,EAAOpQ,SAASloB,OAAQ,CACpC0zF,EAAMzjC,MACN,QACF,CACA,MAAMikB,EAAQ57C,EAAOpQ,WAAWwrE,EAAMrpD,IAAI,GAAG,IAC7C,GAAc,OAAV6pC,EACF,SAEF,MAAM,KACJzgE,GACEygE,EACJ,GAAa,UAATzgE,EAAkB,CACpB,MAAM66D,EAAOnwD,SAAS89D,eAAe/H,EAAMt3E,OAC3C83E,EAAStvE,KAAKkpE,GACd8e,EAAK1tD,OAAO4uC,GACZ,QACF,CACA,MAAMslB,EAAY1f,GAAOvhC,YAAYkhD,MAAQ11E,SAAS41B,gBAAgBmgC,EAAMvhC,WAAWkhD,MAAOpgF,GAAQ0K,SAASqhB,cAAc/rB,GAW7H,GAVA25E,EAAK1tD,OAAOk0D,GACR1f,EAAMvhC,YACRj/B,KAAK2/E,cAAc,CACjBjG,KAAMwG,EACN3sD,QAASitC,EACTiS,UACAv+D,SACAk3D,gBAGA5K,EAAMhsD,UAAYgsD,EAAMhsD,SAASloB,OAAS,EAC5C0zF,EAAMtuF,KAAK,CAAC8uE,GAAQ,EAAG0f,SAClB,GAAI1f,EAAMt3E,MAAO,CACtB,MAAM0xE,EAAOnwD,SAAS89D,eAAe/H,EAAMt3E,OACvCgf,EAAU6P,QAAQwoD,gBAAgBxgE,IACpCihE,EAAStvE,KAAKkpE,GAEhBslB,EAAUl0D,OAAO4uC,EACnB,CACF,CACA,IAAK,MAAMwlB,KAAMH,EAAQI,iBAAiB,yDACxCD,EAAG/wD,aAAa,YAAY,GAE9B,MAAO,CACL2xC,WAEJ,CACA,aAAOx8C,CAAOe,GACZ,MAAM9qB,EAAY,UAAU8qB,EAAW5Q,SAASla,UAAUjN,KAAK,QAC/D+3B,EAAWC,IAAImC,MAAMltB,UAAYA,EACjC8qB,EAAWC,IAAIoN,QAAS,CAC1B,EAIK,EAED,CAAE9pC,EAAyBC,EAASmd,KAI1Cld,OAAOC,eAAeF,EAAS,aAAc,CAC3CG,OAAO,IAETH,EAAQi8E,eAAY,EACpB,IAAI59D,EAAQlB,EAAoB,GAC5B8c,EAAU9c,EAAoB,GAC9BsgE,EAAoBtgE,EAAoB,IACxCoB,EAAiBpB,EAAoB,GACrC4e,EAAS5e,EAAoB,GACjC,MAAM8+D,UAAkBhiD,EAAQU,iBAC9B,IAAc,EACd,IAAa,EACb,IAA0B1jB,KAAKsgF,kBAAkBngE,KAAKngB,MACtD,IAA2BA,KAAKugF,mBAAmBpgE,KAAKngB,MACxD,IAAwBA,KAAKwgF,gBAAgBrgE,KAAKngB,MAClD,IAA0BA,KAAKygF,kBAAkBtgE,KAAKngB,MACtD,IAAiB,IAAImjD,OACrB,KAAkB,EAClB,KAAsB,EACtB,KAAuB,EACvB,IAAY,KACZ,IAAa,EACb,IAAc,EACd,IAAwB,KACxB90C,qBAAuB,KACvBA,uBAAyB,EACzBA,yBAA2B,EAC3BA,aAAe,MACf,WAAApO,CAAYyM,GACVhM,MAAM,IACDgM,EACH3M,KAAM,cAERC,KAAKs3B,MAAQ5qB,EAAO4qB,OAAS,KAC7Bt3B,KAAK0gF,UAAYh0E,EAAOg0E,WAAa,KACrC1gF,KAAK0zB,QAAUhnB,EAAOgnB,SAAW,KACjC1zB,KAAKk9C,MAAQ,GACbl9C,KAAK2gF,aAAe,GACpB3gF,KAAK4gF,YAAc,GACnB5gF,KAAK6gF,YAAc,GACnB7gF,KAAK6gE,YAAc,EACnB7gE,KAAK8gF,aAAe9gF,KAAK+gF,aAAe,EACxC/gF,KAAKwmB,EAAI,EACTxmB,KAAKymB,EAAI,EACTzmB,KAAK2lB,sBAAuB,CAC9B,CACA,iBAAO4B,CAAWC,GAChBxE,EAAQU,iBAAiB6D,WAAWC,EAAM,CACxCC,QAAS,CAAC,+BAAgC,2BAE9C,CACA,0BAAOO,CAAoB71B,EAAMjJ,GAC/B,OAAQiJ,GACN,KAAKiV,EAAM/b,2BAA2BqI,cACpCsxE,EAAUgc,kBAAoB93F,EAC9B,MACF,KAAKke,EAAM/b,2BAA2BoI,UACpCuxE,EAAU8B,cAAgB59E,EAC1B,MACF,KAAKke,EAAM/b,2BAA2BsI,YACpCqxE,EAAUic,gBAAkB/3F,EAAQ,IAG1C,CACA,YAAAwpC,CAAavgC,EAAMjJ,GACjB,OAAQiJ,GACN,KAAKiV,EAAM/b,2BAA2BqI,cACpCsM,MAAK,GAAiB9W,GACtB,MACF,KAAKke,EAAM/b,2BAA2BoI,UACpCuM,MAAK,GAAa9W,GAClB,MACF,KAAKke,EAAM/b,2BAA2BsI,YACpCqM,MAAK,GAAe9W,GAG1B,CACA,oCAAWg/B,GACT,MAAO,CAAC,CAAC9gB,EAAM/b,2BAA2BqI,cAAesxE,EAAUgc,mBAAoB,CAAC55E,EAAM/b,2BAA2BoI,UAAWuxE,EAAU8B,eAAiB9jD,EAAQU,iBAAiBoD,mBAAoB,CAAC1f,EAAM/b,2BAA2BsI,YAAa3F,KAAKs9B,MAAkC,IAA5B05C,EAAUic,kBAClR,CACA,sBAAI14D,GACF,MAAO,CAAC,CAACnhB,EAAM/b,2BAA2BqI,cAAesM,KAAK0gF,WAAa1b,EAAUgc,mBAAoB,CAAC55E,EAAM/b,2BAA2BoI,UAAWuM,KAAKs3B,OAAS0tC,EAAU8B,eAAiB9jD,EAAQU,iBAAiBoD,mBAAoB,CAAC1f,EAAM/b,2BAA2BsI,YAAa3F,KAAKs9B,MAAM,KAAOtrB,KAAK0zB,SAAWsxC,EAAUic,mBACzU,CACA,IAAiBP,GACf,MAAMQ,EAAiBlhF,KAAK0gF,UAC5B1gF,KAAK8oB,YAAY,CACfwE,IAAK,KACHttB,KAAK0gF,UAAYA,EACjB1gF,MAAK,IAAe,EAEtButB,KAAM,KACJvtB,KAAK0gF,UAAYQ,EACjBlhF,MAAK,IAAe,EAEtBwtB,UAAU,EACVr7B,KAAMiV,EAAM/b,2BAA2BqI,cACvCsiC,qBAAqB,EACrBC,UAAU,GAEd,CACA,IAAaqB,GACX,MAAM8vC,EAAapnE,KAAKs3B,MACxBt3B,KAAK8oB,YAAY,CACfwE,IAAK,KACHttB,KAAKs3B,MAAQA,EACbt3B,MAAK,IAAS,EAEhButB,KAAM,KACJvtB,KAAKs3B,MAAQ8vC,EACbpnE,MAAK,IAAS,EAEhBwtB,UAAU,EACVr7B,KAAMiV,EAAM/b,2BAA2BoI,UACvCuiC,qBAAqB,EACrBC,UAAU,GAEd,CACA,IAAevC,GACbA,GAAW,IACX,MAAMytD,EAAenhF,KAAK0zB,QAC1B1zB,KAAK8oB,YAAY,CACfwE,IAAK,KACHttB,KAAK0zB,QAAUA,EACf1zB,MAAK,IAAS,EAEhButB,KAAM,KACJvtB,KAAK0zB,QAAUytD,EACfnhF,MAAK,IAAS,EAEhBwtB,UAAU,EACVr7B,KAAMiV,EAAM/b,2BAA2BsI,YACvCqiC,qBAAqB,EACrBC,UAAU,GAEd,CACA,OAAAlE,GACO/xB,KAAK4kB,SAGVlkB,MAAMqxB,UACW,OAAb/xB,KAAKwlB,MAGJxlB,KAAKqhB,SACRrhB,MAAK,KACLA,MAAK,MAEFA,KAAK0mB,kBACR1mB,KAAK4kB,OAAOhO,IAAI5W,MAChBA,MAAK,MAEPA,MAAK,MACP,CACA,MAAAyjB,GACsB,OAAhBzjB,KAAKqhB,SAGJrhB,KAAK2pB,WACR3pB,KAAK4pB,SAEP5pB,KAAKqhB,OAAOb,MAAQxgB,KAAKqhB,OAAOZ,OAAS,EACzCzgB,KAAKqhB,OAAOoC,SACZzjB,KAAKqhB,OAAS,KACdrhB,MAAK,GAAUohF,aACfphF,MAAK,GAAY,KACjBU,MAAM+iB,SACR,CACA,SAAA0F,CAAUvE,IACH5kB,KAAK4kB,QAAUA,EAClB5kB,KAAKklB,WAAWoV,oBAAoBt6B,MAC3BA,KAAK4kB,QAAqB,OAAXA,GACxB5kB,KAAKklB,WAAWmV,iBAAiBr6B,MAEnCU,MAAMyoB,UAAUvE,EAClB,CACA,eAAAwT,GACE,MAAO9N,EAAaC,GAAgBvqB,KAAKumB,iBACnC/F,EAAQxgB,KAAKwgB,MAAQ8J,EACrB7J,EAASzgB,KAAKygB,OAAS8J,EAC7BvqB,KAAKqhF,cAAc7gE,EAAOC,EAC5B,CACA,cAAAiR,GACM1xB,MAAK,IAAmC,OAAhBA,KAAKqhB,SAGjC3gB,MAAMgxB,iBACN1xB,KAAKwoB,cAAe,EACpBxoB,KAAKqhB,OAAOhH,iBAAiB,cAAera,MAAK,IACnD,CACA,eAAA2xB,GACO3xB,KAAK4xB,gBAAkC,OAAhB5xB,KAAKqhB,SAGjC3gB,MAAMixB,kBACN3xB,KAAKwoB,cAAgBxoB,KAAK2pB,UAC1B3pB,KAAKwlB,IAAIiD,UAAUhF,OAAO,WAC1BzjB,KAAKqhB,OAAO/G,oBAAoB,cAAeta,MAAK,IACtD,CACA,SAAAyxB,GACEzxB,KAAKwoB,cAAgBxoB,KAAK2pB,SAC5B,CACA,OAAAA,GACE,OAA6B,IAAtB3pB,KAAKk9C,MAAM5wD,QAAsC,IAAtB0T,KAAKk9C,MAAM5wD,QAAyC,IAAzB0T,KAAKk9C,MAAM,GAAG5wD,MAC7E,CACA,MACE,MAAM,eACJs8B,EACArC,kBAAmB/F,EAAOC,IACxBzgB,KACJ,OAAQ4oB,GACN,KAAK,GACH,MAAO,CAAC,EAAGnI,EAAQA,EAAQD,GAC7B,KAAK,IACH,MAAO,CAACA,EAAOC,EAAQD,EAAOC,GAChC,KAAK,IACH,MAAO,CAACD,EAAO,EAAGC,EAAQD,GAC5B,QACE,MAAO,CAAC,EAAG,EAAGA,EAAOC,GAE3B,CACA,MACE,MAAM,IACJsT,EAAG,MACHuD,EAAK,QACL5D,EAAO,UACPgtD,EAAS,YACTx1D,EAAW,YACX21C,GACE7gE,KACJ+zB,EAAI6a,UAAY8xC,EAAYx1D,EAAc21C,EAC1C9sC,EAAI+e,QAAU,QACd/e,EAAIgf,SAAW,QACfhf,EAAIif,WAAa,GACjBjf,EAAI2e,YAAc,GAAGpb,KAAQ,EAAIxS,EAAO2O,cAAcC,IACxD,CACA,IAAclN,EAAGC,GACfzmB,KAAKqhB,OAAOhH,iBAAiB,cAAe/S,EAAe2kB,eAC3DjsB,KAAKqhB,OAAOhH,iBAAiB,eAAgBra,MAAK,IAClDA,KAAKqhB,OAAOhH,iBAAiB,cAAera,MAAK,IACjDA,KAAKqhB,OAAOhH,iBAAiB,YAAara,MAAK,IAC/CA,KAAKqhB,OAAO/G,oBAAoB,cAAeta,MAAK,IACpDA,KAAKgzB,WAAY,EACZhzB,MAAK,KACRA,MAAK,IAAuB,EAC5BA,MAAK,KACLA,KAAK0gF,YAAc1b,EAAUgc,kBAC7BhhF,KAAKs3B,QAAU0tC,EAAU8B,eAAiB9jD,EAAQU,iBAAiBoD,kBACnE9mB,KAAK0zB,UAAYsxC,EAAUic,iBAE7BjhF,KAAK6gF,YAAYnvF,KAAK,CAAC80B,EAAGC,IAC1BzmB,MAAK,IAAsB,EAC3BA,MAAK,KACLA,MAAK,GAAwB,KAC3BA,MAAK,KACDA,MAAK,IACPiO,OAAO6U,sBAAsB9iB,MAAK,GACpC,EAEFiO,OAAO6U,sBAAsB9iB,MAAK,GACpC,CACA,IAAMwmB,EAAGC,GACP,MAAO66D,EAAOC,GAASvhF,KAAK6gF,YAAYlqD,IAAI,GAC5C,GAAI32B,KAAK6gF,YAAYv0F,OAAS,GAAKk6B,IAAM86D,GAAS76D,IAAM86D,EACtD,OAEF,MAAMV,EAAc7gF,KAAK6gF,YACzB,IAAIW,EAASxhF,MAAK,GAGlB,GAFA6gF,EAAYnvF,KAAK,CAAC80B,EAAGC,IACrBzmB,MAAK,IAAsB,EACvB6gF,EAAYv0F,QAAU,EAGxB,OAFAk1F,EAAO9mF,UAAUmmF,EAAY,SAC7BW,EAAO7mF,OAAO6rB,EAAGC,GAGQ,IAAvBo6D,EAAYv0F,SACd0T,MAAK,GAAiBwhF,EAAS,IAAIr+B,OACnCq+B,EAAO9mF,UAAUmmF,EAAY,KAE/B7gF,MAAK,GAAiBwhF,KAAWX,EAAYlqD,IAAI,MAAOkqD,EAAYlqD,IAAI,GAAInQ,EAAGC,EACjF,CACA,MACE,GAAgC,IAA5BzmB,KAAK6gF,YAAYv0F,OACnB,OAEF,MAAMm1F,EAAYzhF,KAAK6gF,YAAYlqD,IAAI,GACvC32B,MAAK,GAAerF,UAAU8mF,EAChC,CACA,IAAaj7D,EAAGC,GAMd,IAAIi7D,EACJ,GANA1hF,MAAK,GAAwB,KAC7BwmB,EAAIx4B,KAAKuS,IAAIvS,KAAKiV,IAAIujB,EAAG,GAAIxmB,KAAKqhB,OAAOb,OACzCiG,EAAIz4B,KAAKuS,IAAIvS,KAAKiV,IAAIwjB,EAAG,GAAIzmB,KAAKqhB,OAAOZ,QACzCzgB,MAAK,GAAMwmB,EAAGC,GACdzmB,MAAK,KAE2B,IAA5BA,KAAK6gF,YAAYv0F,OACnBo1F,EAAS1hF,MAAK,SACT,CACL,MAAM2hF,EAAK,CAACn7D,EAAGC,GACfi7D,EAAS,CAAC,CAACC,EAAIA,EAAG7+E,QAAS6+E,EAAG7+E,QAAS6+E,GACzC,CACA,MAAMH,EAASxhF,MAAK,GACd6gF,EAAc7gF,KAAK6gF,YACzB7gF,KAAK6gF,YAAc,GACnB7gF,MAAK,GAAiB,IAAImjD,OAqB1BnjD,KAAK8oB,YAAY,CACfwE,IArBU,KACVttB,KAAK4gF,YAAYlvF,KAAKmvF,GACtB7gF,KAAKk9C,MAAMxrD,KAAKgwF,GAChB1hF,KAAK2gF,aAAajvF,KAAK8vF,GACvBxhF,KAAK+xB,SAAS,EAkBdxE,KAhBW,KACXvtB,KAAK4gF,YAAYrkC,MACjBv8C,KAAKk9C,MAAMX,MACXv8C,KAAK2gF,aAAapkC,MACQ,IAAtBv8C,KAAKk9C,MAAM5wD,OACb0T,KAAKyjB,UAEAzjB,KAAKqhB,SACRrhB,MAAK,KACLA,MAAK,MAEPA,MAAK,KACP,EAKAwtB,UAAU,GAEd,CACA,MACE,IAAKxtB,MAAK,GACR,OAEFA,MAAK,IAAsB,EACThS,KAAK4pD,KAAK53C,KAAK0gF,UAAY1gF,KAAKkrB,aAAlD,MACM02D,EAAa5hF,KAAK6gF,YAAY/9E,OAAO,GACrC0jB,EAAIo7D,EAAW9xF,KAAI6xF,GAAMA,EAAG,KAC5Bl7D,EAAIm7D,EAAW9xF,KAAI6xF,GAAMA,EAAG,MAK5B,IACJ5tD,IALW/lC,KAAKuS,OAAOimB,GACZx4B,KAAKiV,OAAOujB,GACZx4B,KAAKuS,OAAOkmB,GACZz4B,KAAKiV,OAAOwjB,GAGrBzmB,MACJ+zB,EAAIx5B,OACJw5B,EAAI8jB,UAAU,EAAG,EAAG73C,KAAKqhB,OAAOb,MAAOxgB,KAAKqhB,OAAOZ,QACnD,IAAK,MAAM28B,KAAQp9C,KAAK2gF,aACtB5sD,EAAI94B,OAAOmiD,GAEbrpB,EAAI94B,OAAO+E,MAAK,IAChB+zB,EAAIv5B,SACN,CACA,IAAiBgnF,EAAQl9E,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GAC3C,MAAMk9E,GAASv9E,EAAKE,GAAM,EACpBs9E,GAASv9E,EAAKE,GAAM,EACpBG,GAAMJ,EAAKE,GAAM,EACjBG,GAAMJ,EAAKE,GAAM,EACvB68E,EAAOhnC,cAAcqnC,EAAQ,GAAKr9E,EAAKq9E,GAAS,EAAGC,EAAQ,GAAKr9E,EAAKq9E,GAAS,EAAGl9E,EAAK,GAAKJ,EAAKI,GAAM,EAAGC,EAAK,GAAKJ,EAAKI,GAAM,EAAGD,EAAIC,EACvI,CACA,MACE,MAAMu4C,EAAOp9C,KAAK6gF,YAClB,GAAIzjC,EAAK9wD,QAAU,EACjB,MAAO,CAAC,CAAC8wD,EAAK,GAAIA,EAAK,GAAIA,EAAKzmB,IAAI,GAAIymB,EAAKzmB,IAAI,KAEnD,MAAMorD,EAAe,GACrB,IAAIh0F,GACCuW,EAAIC,GAAM64C,EAAK,GACpB,IAAKrvD,EAAI,EAAGA,EAAIqvD,EAAK9wD,OAAS,EAAGyB,IAAK,CACpC,MAAOyW,EAAIC,GAAM24C,EAAKrvD,IACf2W,EAAIC,GAAMy4C,EAAKrvD,EAAI,GACpB6W,GAAMJ,EAAKE,GAAM,EACjBG,GAAMJ,EAAKE,GAAM,EACjBq9E,EAAW,CAAC19E,EAAK,GAAKE,EAAKF,GAAM,EAAGC,EAAK,GAAKE,EAAKF,GAAM,GACzD09E,EAAW,CAACr9E,EAAK,GAAKJ,EAAKI,GAAM,EAAGC,EAAK,GAAKJ,EAAKI,GAAM,GAC/Dk9E,EAAarwF,KAAK,CAAC,CAAC4S,EAAIC,GAAKy9E,EAAUC,EAAU,CAACr9E,EAAIC,MACrDP,EAAIC,GAAM,CAACK,EAAIC,EAClB,CACA,MAAOL,EAAIC,GAAM24C,EAAKrvD,IACf2W,EAAIC,GAAMy4C,EAAKrvD,EAAI,GACpBi0F,EAAW,CAAC19E,EAAK,GAAKE,EAAKF,GAAM,EAAGC,EAAK,GAAKE,EAAKF,GAAM,GACzD09E,EAAW,CAACv9E,EAAK,GAAKF,EAAKE,GAAM,EAAGC,EAAK,GAAKF,EAAKE,GAAM,GAE/D,OADAo9E,EAAarwF,KAAK,CAAC,CAAC4S,EAAIC,GAAKy9E,EAAUC,EAAU,CAACv9E,EAAIC,KAC/Co9E,CACT,CACA,MACE,GAAI/hF,KAAK2pB,UAEP,YADA3pB,MAAK,KAGPA,MAAK,KACL,MAAM,OACJqhB,EAAM,IACN0S,GACE/zB,KACJ+zB,EAAIuZ,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GAChCvZ,EAAI8jB,UAAU,EAAG,EAAGx2B,EAAOb,MAAOa,EAAOZ,QACzCzgB,MAAK,KACL,IAAK,MAAMo9C,KAAQp9C,KAAK2gF,aACtB5sD,EAAI94B,OAAOmiD,EAEf,CACA,MAAAxzB,GACM5pB,MAAK,KAGTU,MAAMkpB,SACN5pB,KAAKgzB,WAAY,EACjBhzB,KAAK2xB,kBACL3xB,KAAKkpB,kBACLlpB,MAAK,IAAkB,EACvBA,KAAKwlB,IAAIiD,UAAU7R,IAAI,YACvB5W,MAAK,IAAc,GACnBA,KAAKoyB,gBACLpyB,KAAK4kB,OAAOugD,sBAAqB,GACjCnlE,KAAK+qB,YACL/qB,KAAKwlB,IAAIiN,MAAM,CACb+0C,eAAe,IAEnB,CACA,OAAAziD,CAAQ7K,GACDla,KAAKmlB,sBAGVzkB,MAAMqkB,QAAQ7K,GACdla,KAAK0xB,iBACP,CACA,iBAAA+uD,CAAkBvmE,GACK,IAAjBA,EAAMiS,QAAiBnsB,KAAK4xB,iBAAkB5xB,MAAK,KAGvDA,KAAKkpB,kBACLhP,EAAMsP,iBACa,UAAftP,EAAM/nB,MACR6N,KAAKwlB,IAAIiN,QAEXzyB,MAAK,GAAcka,EAAMtG,QAASsG,EAAMrG,SAC1C,CACA,iBAAAysE,CAAkBpmE,GAChBA,EAAMsP,iBACNxpB,MAAK,GAAMka,EAAMtG,QAASsG,EAAMrG,QAClC,CACA,eAAA2sE,CAAgBtmE,GACdA,EAAMsP,iBACNxpB,MAAK,GAAYka,EACnB,CACA,kBAAAqmE,CAAmBrmE,GACjBla,MAAK,GAAYka,EACnB,CACA,IAAYA,GACVla,KAAKqhB,OAAO/G,oBAAoB,eAAgBta,MAAK,IACrDA,KAAKqhB,OAAO/G,oBAAoB,cAAeta,MAAK,IACpDA,KAAKqhB,OAAO/G,oBAAoB,YAAata,MAAK,IAClDA,KAAKqhB,OAAOhH,iBAAiB,cAAera,MAAK,IACjDmZ,YAAW,KACTnZ,KAAKqhB,OAAO/G,oBAAoB,cAAehT,EAAe2kB,cAAc,GAC3E,IACHjsB,MAAK,GAAaka,EAAMtG,QAASsG,EAAMrG,SACvC7T,KAAKsnB,yBACLtnB,KAAKgpB,iBACP,CACA,MACEhpB,KAAKqhB,OAAS5W,SAASqhB,cAAc,UACrC9rB,KAAKqhB,OAAOb,MAAQxgB,KAAKqhB,OAAOZ,OAAS,EACzCzgB,KAAKqhB,OAAO+N,UAAY,kBACxBpM,EAAQU,iBAAiB0B,aAAax1B,IAAI,gCAAgCwc,MAAKzgB,GAAOqU,KAAKqhB,QAAQgO,aAAa,aAAc1jC,KAC9HqU,KAAKwlB,IAAIwG,OAAOhsB,KAAKqhB,QACrBrhB,KAAK+zB,IAAM/zB,KAAKqhB,OAAO2S,WAAW,KACpC,CACA,MACEh0B,MAAK,GAAY,IAAIkiF,gBAAep+D,IAClC,MAAMjgB,EAAOigB,EAAQ,GAAGq+D,YACpBt+E,EAAK2c,OAAS3c,EAAK4c,QACrBzgB,KAAKqhF,cAAcx9E,EAAK2c,MAAO3c,EAAK4c,OACtC,IAEFzgB,MAAK,GAAUoiF,QAAQpiF,KAAKwlB,IAC9B,CACA,eAAI2M,GACF,OAAQnyB,KAAK2pB,WAAa3pB,MAAK,EACjC,CACA,MAAAyU,GACE,GAAIzU,KAAKwlB,IACP,OAAOxlB,KAAKwlB,IAEd,IAAIyiD,EAAOC,EACPloE,KAAKwgB,QACPynD,EAAQjoE,KAAKwmB,EACb0hD,EAAQloE,KAAKymB,GAEf/lB,MAAM+T,SACNuO,EAAQU,iBAAiB0B,aAAax1B,IAAI,0BAA0Bwc,MAAKzgB,GAAOqU,KAAKwlB,KAAK6J,aAAa,aAAc1jC,KACrH,MAAO66B,EAAGC,EAAG0H,EAAGC,GAAKpuB,MAAK,KAI1B,GAHAA,KAAK6pB,MAAMrD,EAAGC,EAAG,EAAG,GACpBzmB,KAAKurB,QAAQ4C,EAAGC,GAChBpuB,MAAK,KACDA,KAAKwgB,MAAO,CACd,MAAO8J,EAAaC,GAAgBvqB,KAAKumB,iBACzCvmB,KAAKkzB,eAAelzB,KAAKwgB,MAAQ8J,EAAatqB,KAAKygB,OAAS8J,GAC5DvqB,KAAK6pB,MAAMo+C,EAAQ39C,EAAa49C,EAAQ39C,EAAcvqB,KAAKwgB,MAAQ8J,EAAatqB,KAAKygB,OAAS8J,GAC9FvqB,MAAK,IAAuB,EAC5BA,MAAK,KACLA,KAAKurB,QAAQvrB,KAAKwgB,MAAQ8J,EAAatqB,KAAKygB,OAAS8J,GACrDvqB,MAAK,KACLA,KAAKwlB,IAAIiD,UAAU7R,IAAI,WACzB,MACE5W,KAAKwlB,IAAIiD,UAAU7R,IAAI,WACvB5W,KAAK0xB,iBAGP,OADA1xB,MAAK,KACEA,KAAKwlB,GACd,CACA,MACE,IAAKxlB,MAAK,GACR,OAEF,MAAOsqB,EAAaC,GAAgBvqB,KAAKumB,iBACzCvmB,KAAKqhB,OAAOb,MAAQxyB,KAAK4pD,KAAK53C,KAAKwgB,MAAQ8J,GAC3CtqB,KAAKqhB,OAAOZ,OAASzyB,KAAK4pD,KAAK53C,KAAKygB,OAAS8J,GAC7CvqB,MAAK,IACP,CACA,aAAAqhF,CAAc7gE,EAAOC,GACnB,MAAM4hE,EAAer0F,KAAKs9B,MAAM9K,GAC1B8hE,EAAgBt0F,KAAKs9B,MAAM7K,GACjC,GAAIzgB,MAAK,KAAeqiF,GAAgBriF,MAAK,KAAgBsiF,EAC3D,OAEFtiF,MAAK,GAAaqiF,EAClBriF,MAAK,GAAcsiF,EACnBtiF,KAAKqhB,OAAOsG,MAAMmW,WAAa,SAC/B,MAAOxT,EAAaC,GAAgBvqB,KAAKumB,iBACzCvmB,KAAKwgB,MAAQA,EAAQ8J,EACrBtqB,KAAKygB,OAASA,EAAS8J,EACvBvqB,KAAK6oB,oBACD7oB,MAAK,IACPA,MAAK,GAAgBwgB,EAAOC,GAE9BzgB,MAAK,KACLA,MAAK,KACLA,KAAKqhB,OAAOsG,MAAMmW,WAAa,UAC/B99B,KAAKyrB,SACP,CACA,IAAgBjL,EAAOC,GACrB,MAAMmoD,EAAU5oE,MAAK,KACfuiF,GAAgB/hE,EAAQooD,GAAW5oE,MAAK,GACxCwiF,GAAgB/hE,EAASmoD,GAAW5oE,MAAK,GAC/CA,KAAK6gE,YAAc7yE,KAAKuS,IAAIgiF,EAAcC,EAC5C,CACA,MACE,MAAM5Z,EAAU5oE,MAAK,KAAgB,EACrCA,KAAK+zB,IAAIuZ,aAAattC,KAAK6gE,YAAa,EAAG,EAAG7gE,KAAK6gE,YAAa7gE,KAAK8gF,aAAe9gF,KAAK6gE,YAAc+H,EAAS5oE,KAAK+gF,aAAe/gF,KAAK6gE,YAAc+H,EACzJ,CACA,SAAO,CAAa8Y,GAClB,MAAMF,EAAS,IAAIr+B,OACnB,IAAK,IAAIp1D,EAAI,EAAGiB,EAAK0yF,EAAOp1F,OAAQyB,EAAIiB,EAAIjB,IAAK,CAC/C,MAAOwV,EAAOy+E,EAAUC,EAAUz+E,GAAUk+E,EAAO3zF,GACzC,IAANA,GACFyzF,EAAO9mF,UAAU6I,GAEnBi+E,EAAOhnC,cAAcwnC,EAAS,GAAIA,EAAS,GAAIC,EAAS,GAAIA,EAAS,GAAIz+E,EAAO,GAAIA,EAAO,GAC7F,CACA,OAAOg+E,CACT,CACA,SAAO,CAAkB3+B,EAAQh/C,EAAM8P,GACrC,MAAOm7D,EAAKC,EAAKH,EAAKC,GAAOhrE,EAC7B,OAAQ8P,GACN,KAAK,EACH,IAAK,IAAI5lB,EAAI,EAAGiB,EAAK6zD,EAAOv2D,OAAQyB,EAAIiB,EAAIjB,GAAK,EAC/C80D,EAAO90D,IAAM+gF,EACbjsB,EAAO90D,EAAI,GAAK8gF,EAAMhsB,EAAO90D,EAAI,GAEnC,MACF,KAAK,GACH,IAAK,IAAIA,EAAI,EAAGiB,EAAK6zD,EAAOv2D,OAAQyB,EAAIiB,EAAIjB,GAAK,EAAG,CAClD,MAAMy4B,EAAIq8B,EAAO90D,GACjB80D,EAAO90D,GAAK80D,EAAO90D,EAAI,GAAK+gF,EAC5BjsB,EAAO90D,EAAI,GAAKy4B,EAAIuoD,CACtB,CACA,MACF,KAAK,IACH,IAAK,IAAIhhF,EAAI,EAAGiB,EAAK6zD,EAAOv2D,OAAQyB,EAAIiB,EAAIjB,GAAK,EAC/C80D,EAAO90D,GAAK6gF,EAAM/rB,EAAO90D,GACzB80D,EAAO90D,EAAI,IAAMghF,EAEnB,MACF,KAAK,IACH,IAAK,IAAIhhF,EAAI,EAAGiB,EAAK6zD,EAAOv2D,OAAQyB,EAAIiB,EAAIjB,GAAK,EAAG,CAClD,MAAMy4B,EAAIq8B,EAAO90D,GACjB80D,EAAO90D,GAAK6gF,EAAM/rB,EAAO90D,EAAI,GAC7B80D,EAAO90D,EAAI,GAAK8gF,EAAMroD,CACxB,CACA,MACF,QACE,MAAM,IAAIhnB,MAAM,oBAEpB,OAAOqjD,CACT,CACA,SAAO,CAAoBA,EAAQh/C,EAAM8P,GACvC,MAAOm7D,EAAKC,EAAKH,EAAKC,GAAOhrE,EAC7B,OAAQ8P,GACN,KAAK,EACH,IAAK,IAAI5lB,EAAI,EAAGiB,EAAK6zD,EAAOv2D,OAAQyB,EAAIiB,EAAIjB,GAAK,EAC/C80D,EAAO90D,IAAM+gF,EACbjsB,EAAO90D,EAAI,GAAK8gF,EAAMhsB,EAAO90D,EAAI,GAEnC,MACF,KAAK,GACH,IAAK,IAAIA,EAAI,EAAGiB,EAAK6zD,EAAOv2D,OAAQyB,EAAIiB,EAAIjB,GAAK,EAAG,CAClD,MAAMy4B,EAAIq8B,EAAO90D,GACjB80D,EAAO90D,GAAK80D,EAAO90D,EAAI,GAAKghF,EAC5BlsB,EAAO90D,EAAI,GAAKy4B,EAAIsoD,CACtB,CACA,MACF,KAAK,IACH,IAAK,IAAI/gF,EAAI,EAAGiB,EAAK6zD,EAAOv2D,OAAQyB,EAAIiB,EAAIjB,GAAK,EAC/C80D,EAAO90D,GAAK6gF,EAAM/rB,EAAO90D,GACzB80D,EAAO90D,EAAI,IAAMghF,EAEnB,MACF,KAAK,IACH,IAAK,IAAIhhF,EAAI,EAAGiB,EAAK6zD,EAAOv2D,OAAQyB,EAAIiB,EAAIjB,GAAK,EAAG,CAClD,MAAMy4B,EAAIq8B,EAAO90D,GACjB80D,EAAO90D,GAAK8gF,EAAMhsB,EAAO90D,EAAI,GAC7B80D,EAAO90D,EAAI,GAAK6gF,EAAMpoD,CACxB,CACA,MACF,QACE,MAAM,IAAIhnB,MAAM,oBAEpB,OAAOqjD,CACT,CACA,IAAgB1Y,EAAGrgB,EAAIC,EAAIlmB,GACzB,MAAMq5C,EAAQ,GACR0rB,EAAU5oE,KAAK0gF,UAAY,EAC3BpvD,EAAS6Y,EAAIrgB,EAAK8+C,EAClBr3C,EAAS4Y,EAAIpgB,EAAK6+C,EACxB,IAAK,MAAM8Y,KAAU1hF,KAAKk9C,MAAO,CAC/B,MAAMhsD,EAAS,GACT2xD,EAAS,GACf,IAAK,IAAIt9C,EAAI,EAAG0lD,EAAKy2B,EAAOp1F,OAAQiZ,EAAI0lD,EAAI1lD,IAAK,CAC/C,MAAOhC,EAAOy+E,EAAUC,EAAUz+E,GAAUk+E,EAAOn8E,GAC7Ck9E,EAAMt4C,EAAI5mC,EAAM,GAAK+tB,EACrBoxD,EAAMv4C,EAAI5mC,EAAM,GAAKguB,EACrBoxD,EAAMx4C,EAAI63C,EAAS,GAAK1wD,EACxBsxD,EAAMz4C,EAAI63C,EAAS,GAAKzwD,EACxBsxD,EAAM14C,EAAI83C,EAAS,GAAK3wD,EACxBwxD,EAAM34C,EAAI83C,EAAS,GAAK1wD,EACxBwxD,EAAM54C,EAAI3mC,EAAO,GAAK8tB,EACtB0xD,EAAM74C,EAAI3mC,EAAO,GAAK+tB,EAClB,IAANhsB,IACFrU,EAAOQ,KAAK+wF,EAAKC,GACjB7/B,EAAOnxD,KAAK+wF,EAAKC,IAEnBxxF,EAAOQ,KAAKixF,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,GACrCngC,EAAOnxD,KAAKixF,EAAKC,GACbr9E,IAAM0lD,EAAK,GACbpI,EAAOnxD,KAAKqxF,EAAKC,EAErB,CACA9lC,EAAMxrD,KAAK,CACTgwF,OAAQ1c,GAAU,GAAkB9zE,EAAQ2S,EAAM7D,KAAK2T,UACvDkvC,OAAQmiB,GAAU,GAAkBniB,EAAQh/C,EAAM7D,KAAK2T,WAE3D,CACA,OAAOupC,CACT,CACA,MACE,IAAI+lC,EAAO/yC,IACPgzC,GAAO,IACPC,EAAOjzC,IACPkzC,GAAO,IACX,IAAK,MAAMhmC,KAAQp9C,KAAKk9C,MACtB,IAAK,MAAO35C,EAAOy+E,EAAUC,EAAUz+E,KAAW45C,EAAM,CACtD,MAAMqE,EAAOr6C,EAAMhe,KAAKib,qBAAqBd,KAAUy+E,KAAaC,KAAaz+E,GACjFy/E,EAAOj1F,KAAKuS,IAAI0iF,EAAMxhC,EAAK,IAC3B0hC,EAAOn1F,KAAKuS,IAAI4iF,EAAM1hC,EAAK,IAC3ByhC,EAAOl1F,KAAKiV,IAAIigF,EAAMzhC,EAAK,IAC3B2hC,EAAOp1F,KAAKiV,IAAImgF,EAAM3hC,EAAK,GAC7B,CAEF,MAAO,CAACwhC,EAAME,EAAMD,EAAME,EAC5B,CACA,MACE,OAAOpjF,MAAK,GAAkBhS,KAAK4pD,KAAK53C,KAAK0gF,UAAY1gF,KAAKkrB,aAAe,CAC/E,CACA,IAAcm4D,GAAY,GACxB,GAAIrjF,KAAK2pB,UACP,OAEF,IAAK3pB,MAAK,GAER,YADAA,MAAK,KAGP,MAAMyhD,EAAOzhD,MAAK,KACZ4oE,EAAU5oE,MAAK,KACrBA,MAAK,GAAahS,KAAKiV,IAAI+f,EAAQU,iBAAiBgK,SAAU+zB,EAAK,GAAKA,EAAK,IAC7EzhD,MAAK,GAAchS,KAAKiV,IAAI+f,EAAQU,iBAAiBgK,SAAU+zB,EAAK,GAAKA,EAAK,IAC9E,MAAMjhC,EAAQxyB,KAAK4pD,KAAKgxB,EAAU5oE,MAAK,GAAaA,KAAK6gE,aACnDpgD,EAASzyB,KAAK4pD,KAAKgxB,EAAU5oE,MAAK,GAAcA,KAAK6gE,cACpDv2C,EAAaC,GAAgBvqB,KAAKumB,iBACzCvmB,KAAKwgB,MAAQA,EAAQ8J,EACrBtqB,KAAKygB,OAASA,EAAS8J,EACvBvqB,KAAKkzB,eAAe1S,EAAOC,GAC3B,MAAM6iE,EAAmBtjF,KAAK8gF,aACxByC,EAAmBvjF,KAAK+gF,aAC9B/gF,KAAK8gF,cAAgBr/B,EAAK,GAC1BzhD,KAAK+gF,cAAgBt/B,EAAK,GAC1BzhD,MAAK,KACLA,MAAK,KACLA,MAAK,GAAawgB,EAClBxgB,MAAK,GAAcygB,EACnBzgB,KAAKurB,QAAQ/K,EAAOC,GACpB,MAAM+iE,EAAkBH,EAAYza,EAAU5oE,KAAK6gE,YAAc,EAAI,EACrE7gE,KAAKiqB,UAAUq5D,EAAmBtjF,KAAK8gF,aAAe0C,EAAiBD,EAAmBvjF,KAAK+gF,aAAeyC,EAChH,CACA,kBAAOvxD,CAAYlsB,EAAM6e,EAAQa,GAC/B,GAAI1f,aAAgBygE,EAAkBuC,qBACpC,OAAO,KAET,MAAM7hD,EAASxmB,MAAMuxB,YAAYlsB,EAAM6e,EAAQa,GAC/CyB,EAAOw5D,UAAY36E,EAAK26E,UACxBx5D,EAAOoQ,MAAQlwB,EAAMhe,KAAK2Y,gBAAgBgE,EAAKuxB,OAC/CpQ,EAAOwM,QAAU3tB,EAAK2tB,QACtB,MAAO3N,EAAWC,GAAckB,EAAOb,eACjC7F,EAAQ0G,EAAO1G,MAAQuF,EACvBtF,EAASyG,EAAOzG,OAASuF,EACzB66C,EAAc35C,EAAOgE,YACrB09C,EAAU7iE,EAAK26E,UAAY,EACjCx5D,GAAO,IAAkB,EACzBA,GAAO,GAAal5B,KAAKs9B,MAAM9K,GAC/B0G,GAAO,GAAcl5B,KAAKs9B,MAAM7K,GAChC,MAAM,MACJy8B,EAAK,KACLr5C,EAAI,SACJ8P,GACE5N,EACJ,IAAK,IAAI,OACP27E,KACGxkC,EAAO,CACVwkC,EAAS1c,GAAU,GAAoB0c,EAAQ79E,EAAM8P,GACrD,MAAMypC,EAAO,GACbl2B,EAAOg2B,MAAMxrD,KAAK0rD,GAClB,IAAIgG,EAAKyd,GAAe6gB,EAAO,GAAK9Y,GAChCn5E,EAAKoxE,GAAe6gB,EAAO,GAAK9Y,GACpC,IAAK,IAAI76E,EAAI,EAAGiB,EAAK0yF,EAAOp1F,OAAQyB,EAAIiB,EAAIjB,GAAK,EAAG,CAClD,MAAM00F,EAAM5hB,GAAe6gB,EAAO3zF,GAAK66E,GACjC8Z,EAAM7hB,GAAe6gB,EAAO3zF,EAAI,GAAK66E,GACrC+Z,EAAM9hB,GAAe6gB,EAAO3zF,EAAI,GAAK66E,GACrCga,EAAM/hB,GAAe6gB,EAAO3zF,EAAI,GAAK66E,GACrCia,EAAMhiB,GAAe6gB,EAAO3zF,EAAI,GAAK66E,GACrCka,EAAMjiB,GAAe6gB,EAAO3zF,EAAI,GAAK66E,GAC3CxrB,EAAK1rD,KAAK,CAAC,CAAC0xD,EAAI3zD,GAAK,CAACgzF,EAAKC,GAAM,CAACC,EAAKC,GAAM,CAACC,EAAKC,KACnD1/B,EAAKy/B,EACLpzF,EAAKqzF,CACP,CACA,MAAMtB,EAASxhF,MAAK,GAAao9C,GACjCl2B,EAAOy5D,aAAajvF,KAAK8vF,EAC3B,CACA,MAAM//B,EAAOv6B,GAAO,KAIpB,OAHAA,GAAO,GAAal5B,KAAKiV,IAAI+f,EAAQU,iBAAiBgK,SAAU+zB,EAAK,GAAKA,EAAK,IAC/Ev6B,GAAO,GAAcl5B,KAAKiV,IAAI+f,EAAQU,iBAAiBgK,SAAU+zB,EAAK,GAAKA,EAAK,IAChFv6B,GAAO,GAAgB1G,EAAOC,GACvByG,CACT,CACA,SAAA3C,GACE,GAAIvkB,KAAK2pB,UACP,OAAO,KAET,MAAM9lB,EAAO7D,KAAKqxB,QAAQ,EAAG,GACvBiG,EAAQtU,EAAQU,iBAAiBqD,cAAcsQ,QAAQr3B,KAAK+zB,IAAI2e,aACtE,MAAO,CACL0zB,eAAgBh/D,EAAMjc,qBAAqBgI,IAC3CmkC,QACAopD,UAAW1gF,KAAK0gF,UAChBhtD,QAAS1zB,KAAK0zB,QACdwpB,MAAOl9C,MAAK,GAAgBA,KAAK6gE,YAAc7gE,KAAKkrB,YAAalrB,KAAK8gF,aAAc9gF,KAAK+gF,aAAcl9E,GACvG6O,UAAW1S,KAAK0S,UAChB7O,OACA8P,SAAU3T,KAAK2T,SACfk1D,mBAAoB7oE,KAAK6lB,oBAE7B,EAEF98B,EAAQi8E,UAAYA,CAEb,EAED,CAAEl8E,EAAyBC,EAASmd,KAI1Cld,OAAOC,eAAeF,EAAS,aAAc,CAC3CG,OAAO,IAETH,EAAQk8E,iBAAc,EACtB,IAAI79D,EAAQlB,EAAoB,GAC5B8c,EAAU9c,EAAoB,GAC9BoB,EAAiBpB,EAAoB,GACrCsgE,EAAoBtgE,EAAoB,IAC5C,MAAM++D,UAAoBjiD,EAAQU,iBAChC,IAAU,KACV,IAAY,KACZ,IAAiB,KACjB,IAAa,KACb,IAAc,KACd,IAAU,KACV,IAAY,KACZ,IAAmB,KACnB,KAAS,EACT,KAA2B,EAC3BrV,aAAe,QACf,WAAApO,CAAYyM,GACVhM,MAAM,IACDgM,EACH3M,KAAM,gBAERC,MAAK,GAAa0M,EAAO+2E,UACzBzjF,MAAK,GAAc0M,EAAOg3E,UAC5B,CACA,iBAAOn8D,CAAWC,GAChBxE,EAAQU,iBAAiB6D,WAAWC,EACtC,CACA,yBAAWm8D,GAET,OAAO,EAAIv8E,EAAM5W,QAAQwP,KAAM,iBADjB,CAAC,OAAQ,OAAQ,MAAO,MAAO,OAAQ,MAAO,UAAW,OAAQ,UACxBlQ,KAAIqC,GAAQ,SAASA,MAC9E,CACA,4BAAWyxF,GACT,OAAO,EAAIx8E,EAAM5W,QAAQwP,KAAM,oBAAqBA,KAAK2jF,eAAen2F,KAAK,KAC/E,CACA,+BAAO26B,CAAyBC,GAC9B,OAAOpoB,KAAK2jF,eAAeniF,SAAS4mB,EACtC,CACA,YAAOC,CAAMC,EAAM1D,GACjBA,EAAOuhD,YAAY/+D,EAAMjc,qBAAqB+H,MAAO,CACnDwwF,WAAYp7D,EAAKu7D,aAErB,CACA,IAAkB99E,EAAM+9E,GAAS,GAC1B/9E,GAIL/F,MAAK,GAAU+F,EAAKwa,OACfujE,IACH9jF,MAAK,GAAY+F,EAAKkL,GACtBjR,MAAK,GAAS+F,EAAKwuB,OAErBv0B,MAAK,MARHA,KAAKyjB,QAST,CACA,MACEzjB,MAAK,GAAiB,KACtBA,KAAKklB,WAAWmX,eAAc,GAC1Br8B,MAAK,IACPA,KAAKwlB,IAAIiN,OAEb,CACA,MACE,GAAIzyB,MAAK,GAGP,OAFAA,KAAKklB,WAAWmX,eAAc,QAC9Br8B,KAAKklB,WAAWwY,aAAa/H,UAAU31B,MAAK,IAAWoM,MAAKrG,GAAQ/F,MAAK,GAAkB+F,GAAM,KAAOqa,SAAQ,IAAMpgB,MAAK,OAG7H,GAAIA,MAAK,GAAY,CACnB,MAAMjU,EAAMiU,MAAK,GAIjB,OAHAA,MAAK,GAAa,KAClBA,KAAKklB,WAAWmX,eAAc,QAC9Br8B,MAAK,GAAiBA,KAAKklB,WAAWwY,aAAahI,WAAW3pC,GAAKqgB,MAAKrG,GAAQ/F,MAAK,GAAkB+F,KAAOqa,SAAQ,IAAMpgB,MAAK,OAEnI,CACA,GAAIA,MAAK,GAAa,CACpB,MAAM40B,EAAO50B,MAAK,GAIlB,OAHAA,MAAK,GAAc,KACnBA,KAAKklB,WAAWmX,eAAc,QAC9Br8B,MAAK,GAAiBA,KAAKklB,WAAWwY,aAAalI,YAAYZ,GAAMxoB,MAAKrG,GAAQ/F,MAAK,GAAkB+F,KAAOqa,SAAQ,IAAMpgB,MAAK,OAErI,CACA,MAAM8lC,EAAQr7B,SAASqhB,cAAc,SACrCga,EAAM3zC,KAAO,OACb2zC,EAAMi+C,OAAS9e,EAAY2e,kBAC3B5jF,MAAK,GAAiB,IAAI4F,SAAQC,IAChCigC,EAAMzrB,iBAAiB,UAAUzM,UAC/B,GAAKk4B,EAAMk+C,OAAgC,IAAvBl+C,EAAMk+C,MAAM13F,OAEzB,CACL0T,KAAKklB,WAAWmX,eAAc,GAC9B,MAAMt2B,QAAa/F,KAAKklB,WAAWwY,aAAalI,YAAYsQ,EAAMk+C,MAAM,IACxEhkF,MAAK,GAAkB+F,EACzB,MALE/F,KAAKyjB,SAMP5d,GAAS,IAEXigC,EAAMzrB,iBAAiB,UAAU,KAC/Bra,KAAKyjB,SACL5d,GAAS,GACT,IACDua,SAAQ,IAAMpgB,MAAK,OACtB8lC,EAAMm+C,OACR,CACA,MAAAxgE,GACMzjB,MAAK,KACPA,MAAK,GAAU,KACfA,KAAKklB,WAAWwY,aAAa7H,SAAS71B,MAAK,IAC3CA,MAAK,IAASyjB,SACdzjB,MAAK,GAAU,KACfA,MAAK,IAAWohF,aAChBphF,MAAK,GAAY,MAEnBU,MAAM+iB,QACR,CACA,OAAAsO,GACO/xB,KAAK4kB,QAMVlkB,MAAMqxB,UACW,OAAb/xB,KAAKwlB,MAGLxlB,MAAK,IACPA,MAAK,KAEFA,KAAK0mB,iBACR1mB,KAAK4kB,OAAOhO,IAAI5W,QAbZA,MAAK,IACPA,MAAK,IAcX,CACA,SAAAyxB,GACEzxB,KAAKwoB,cAAe,EACpBxoB,KAAKwlB,IAAIiN,OACX,CACA,OAAA9I,GACE,QAAS3pB,MAAK,IAAkBA,MAAK,IAAWA,MAAK,IAAcA,MAAK,GAC1E,CACA,eAAImyB,GACF,OAAO,CACT,CACA,MAAA1d,GACE,GAAIzU,KAAKwlB,IACP,OAAOxlB,KAAKwlB,IAEd,IAAIyiD,EAAOC,EAYX,GAXIloE,KAAKwgB,QACPynD,EAAQjoE,KAAKwmB,EACb0hD,EAAQloE,KAAKymB,GAEf/lB,MAAM+T,SACNzU,KAAKwlB,IAAIoN,QAAS,EACd5yB,MAAK,GACPA,MAAK,KAELA,MAAK,KAEHA,KAAKwgB,MAAO,CACd,MAAO8J,EAAaC,GAAgBvqB,KAAKumB,iBACzCvmB,KAAK6pB,MAAMo+C,EAAQ39C,EAAa49C,EAAQ39C,EAAcvqB,KAAKwgB,MAAQ8J,EAAatqB,KAAKygB,OAAS8J,EAChG,CACA,OAAOvqB,KAAKwlB,GACd,CACA,MACE,MAAM,IACJA,GACExlB,KACJ,IAAI,MACFwgB,EAAK,OACLC,GACEzgB,MAAK,GACT,MAAO+lB,EAAWC,GAAchmB,KAAKqmB,eAC/B69D,EAAY,IAClB,GAAIlkF,KAAKwgB,MACPA,EAAQxgB,KAAKwgB,MAAQuF,EACrBtF,EAASzgB,KAAKygB,OAASuF,OAClB,GAAIxF,EAAQ0jE,EAAYn+D,GAAatF,EAASyjE,EAAYl+D,EAAY,CAC3E,MAAMm+D,EAASn2F,KAAKuS,IAAI2jF,EAAYn+D,EAAYvF,EAAO0jE,EAAYl+D,EAAavF,GAChFD,GAAS2jE,EACT1jE,GAAU0jE,CACZ,CACA,MAAO75D,EAAaC,GAAgBvqB,KAAKumB,iBACzCvmB,KAAKurB,QAAQ/K,EAAQ8J,EAAcvE,EAAWtF,EAAS8J,EAAevE,GACtEhmB,KAAKklB,WAAWmX,eAAc,GAC9B,MAAMhb,EAASrhB,MAAK,GAAUyK,SAASqhB,cAAc,UACrDtG,EAAIwG,OAAO3K,GACXmE,EAAIoN,QAAS,EACb5yB,MAAK,GAAYwgB,EAAOC,GACxBzgB,MAAK,KACAA,MAAK,KACRA,KAAK4kB,OAAOshD,kBAAkBlmE,MAC9BA,MAAK,IAA2B,GAElCA,KAAKklB,WAAW0K,UAAUC,SAAS,kBAAmB,CACpDhiB,OAAQ7N,KACRW,QAAS,CACPxO,KAAM,UACN29B,QAAS9vB,KAAK4mB,WACd7gB,KAAM,CACJgqB,OAAQ,qBAId/vB,KAAKkvB,kBACP,CACA,IAAe1O,EAAOC,GACpB,MAAO6J,EAAaC,GAAgBvqB,KAAKumB,iBACzCvmB,KAAKwgB,MAAQA,EAAQ8J,EACrBtqB,KAAKygB,OAASA,EAAS8J,EACvBvqB,KAAKurB,QAAQ/K,EAAOC,GAChBzgB,KAAKilB,iBAAiBW,WACxB5lB,KAAK2oB,SAEL3oB,KAAK6oB,oBAEP7oB,KAAKilB,gBAAkB,KACO,OAA1BjlB,MAAK,IACPuV,aAAavV,MAAK,IAGpBA,MAAK,GAAmBmZ,YAAW,KACjCnZ,MAAK,GAAmB,KACxBA,MAAK,GAAYwgB,EAAOC,EAAO,GAHZ,IAKvB,CACA,IAAaD,EAAOC,GAClB,MACED,MAAO4jE,EACP3jE,OAAQ4jE,GACNrkF,MAAK,GACT,IAAIotB,EAAWg3D,EACX/2D,EAAYg3D,EACZ9jE,EAASvgB,MAAK,GAClB,KAAOotB,EAAW,EAAI5M,GAAS6M,EAAY,EAAI5M,GAAQ,CACrD,MAAM6jE,EAAYl3D,EACZm3D,EAAal3D,EACfD,EAAW,EAAI5M,IACjB4M,EAAWA,GAAY,MAAQp/B,KAAKC,MAAMm/B,EAAW,GAAK,EAAIp/B,KAAK4pD,KAAKxqB,EAAW,IAEjFC,EAAY,EAAI5M,IAClB4M,EAAYA,GAAa,MAAQr/B,KAAKC,MAAMo/B,EAAY,GAAK,EAAIr/B,KAAK4pD,KAAKvqB,EAAY,IAEzF,MAAMm3D,EAAY,IAAIrjF,gBAAgBisB,EAAUC,GACpCm3D,EAAUxwD,WAAW,MAC7BG,UAAU5T,EAAQ,EAAG,EAAG+jE,EAAWC,EAAY,EAAG,EAAGn3D,EAAUC,GACnE9M,EAASikE,EAAUC,uBACrB,CACA,OAAOlkE,CACT,CACA,IAAYC,EAAOC,GACjBD,EAAQxyB,KAAK4pD,KAAKp3B,GAClBC,EAASzyB,KAAK4pD,KAAKn3B,GACnB,MAAMY,EAASrhB,MAAK,GACpB,IAAKqhB,GAAUA,EAAOb,QAAUA,GAASa,EAAOZ,SAAWA,EACzD,OAEFY,EAAOb,MAAQA,EACfa,EAAOZ,OAASA,EAChB,MAAMF,EAASvgB,MAAK,GAASA,MAAK,GAAUA,MAAK,GAAawgB,EAAOC,GAC/DsT,EAAM1S,EAAO2S,WAAW,MAC9BD,EAAIkN,OAASjhC,KAAKklB,WAAW0U,UAC7B7F,EAAII,UAAU5T,EAAQ,EAAG,EAAGA,EAAOC,MAAOD,EAAOE,OAAQ,EAAG,EAAGD,EAAOC,EACxE,CACA,IAAiBikE,GACf,GAAIA,EAAO,CACT,GAAI1kF,MAAK,GAAQ,CACf,MAAMjU,EAAMiU,KAAKklB,WAAWwY,aAAa9H,UAAU51B,MAAK,IACxD,GAAIjU,EACF,OAAOA,CAEX,CACA,MAAMs1B,EAAS5W,SAASqhB,cAAc,UAOtC,QALEtL,MAAOa,EAAOb,MACdC,OAAQY,EAAOZ,QACbzgB,MAAK,IACGqhB,EAAO2S,WAAW,MAC1BG,UAAUn0B,MAAK,GAAS,EAAG,GACxBqhB,EAAOsjE,WAChB,CACA,GAAI3kF,MAAK,GAAQ,CACf,MAAO+lB,EAAWC,GAAchmB,KAAKqmB,eAC/B7F,EAAQxyB,KAAKs9B,MAAMtrB,KAAKwgB,MAAQuF,EAAYze,EAAekyB,cAAcC,kBACzEhZ,EAASzyB,KAAKs9B,MAAMtrB,KAAKygB,OAASuF,EAAa1e,EAAekyB,cAAcC,kBAC5E+qD,EAAY,IAAIrjF,gBAAgBqf,EAAOC,GAG7C,OAFY+jE,EAAUxwD,WAAW,MAC7BG,UAAUn0B,MAAK,GAAS,EAAG,EAAGA,MAAK,GAAQwgB,MAAOxgB,MAAK,GAAQygB,OAAQ,EAAG,EAAGD,EAAOC,GACjF+jE,EAAUC,uBACnB,CACA,OAAOtqE,gBAAgBna,MAAK,GAC9B,CACA,MACEA,MAAK,GAAY,IAAIkiF,gBAAep+D,IAClC,MAAMjgB,EAAOigB,EAAQ,GAAGq+D,YACpBt+E,EAAK2c,OAAS3c,EAAK4c,QACrBzgB,MAAK,GAAe6D,EAAK2c,MAAO3c,EAAK4c,OACvC,IAEFzgB,MAAK,GAAUoiF,QAAQpiF,KAAKwlB,IAC9B,CACA,kBAAOyM,CAAYlsB,EAAM6e,EAAQa,GAC/B,GAAI1f,aAAgBygE,EAAkBsC,uBACpC,OAAO,KAET,MAAM5hD,EAASxmB,MAAMuxB,YAAYlsB,EAAM6e,EAAQa,IACzC,KACJ5hB,EAAI,UACJ4/E,EAAS,SACTmB,EAAQ,MACRrwD,EAAK,kBACLswD,GACE9+E,EACA6+E,GAAYn/D,EAAUiY,aAAa5H,UAAU8uD,GAC/C19D,GAAO,GAAY09D,EAEnB19D,GAAO,GAAau8D,EAEtBv8D,GAAO,GAASqN,EAChB,MAAOjK,EAAaC,GAAgBrD,EAAOb,eAM3C,OALAa,EAAO1G,OAAS3c,EAAK,GAAKA,EAAK,IAAMymB,EACrCpD,EAAOzG,QAAU5c,EAAK,GAAKA,EAAK,IAAM0mB,EAClCs6D,IACF39D,EAAOiJ,YAAc00D,GAEhB39D,CACT,CACA,SAAA3C,CAAUyN,GAAe,EAAO5N,EAAU,MACxC,GAAIpkB,KAAK2pB,UACP,OAAO,KAET,MAAMrF,EAAa,CACjB8hD,eAAgBh/D,EAAMjc,qBAAqB+H,MAC3C0xF,SAAU5kF,MAAK,GACf0S,UAAW1S,KAAK0S,UAChB7O,KAAM7D,KAAKqxB,QAAQ,EAAG,GACtB1d,SAAU3T,KAAK2T,SACf4gB,MAAOv0B,MAAK,GACZ6oE,mBAAoB7oE,KAAK6lB,qBAE3B,GAAImM,EAGF,OAFA1N,EAAWm/D,UAAYzjF,MAAK,IAAiB,GAC7CskB,EAAWugE,kBAAoB7kF,KAAKmwB,YAC7B7L,EAET,MAAM,WACJ8L,EAAU,QACVjB,GACEnvB,KAAKmwB,YAOT,IANKC,GAAcjB,IACjB7K,EAAWugE,kBAAoB,CAC7B1yF,KAAM,SACN0gF,IAAK1jD,IAGO,OAAZ/K,EACF,OAAOE,EAETF,EAAQ0gE,SAAW,IAAIx1F,IACvB,MAAMy1F,EAAO/kF,MAAK,IAAUskB,EAAWzgB,KAAK,GAAKygB,EAAWzgB,KAAK,KAAOygB,EAAWzgB,KAAK,GAAKygB,EAAWzgB,KAAK,IAAM,KACnH,GAAKugB,EAAQ0gE,OAAOppE,IAAI1b,MAAK,KAMtB,GAAIA,MAAK,GAAQ,CACtB,MAAMglF,EAAW5gE,EAAQ0gE,OAAOl1F,IAAIoQ,MAAK,IACrC+kF,EAAOC,EAASD,OAClBC,EAASD,KAAOA,EAChBC,EAAS1gE,WAAW/D,OAAO9B,QAC3BumE,EAAS1gE,WAAW/D,OAASvgB,MAAK,IAAiB,GAEvD,OAZEokB,EAAQ0gE,OAAOzvE,IAAIrV,MAAK,GAAW,CACjC+kF,OACAzgE,eAEFA,EAAW/D,OAASvgB,MAAK,IAAiB,GAS5C,OAAOskB,CACT,EAEFv7B,EAAQk8E,YAAcA,CAEf,GAIOggB,yBAA2B,CAAC,EAGhC,SAAS/+E,oBAAoBg/E,GAE5B,IAAIC,EAAeF,yBAAyBC,GAC5C,QAAqBv2F,IAAjBw2F,EACH,OAAOA,EAAap8F,QAGrB,IAAIq8F,EAASH,yBAAyBC,GAAY,CAGjDn8F,QAAS,CAAC,GAOX,OAHAF,oBAAoBq8F,GAAUE,EAAQA,EAAOr8F,QAASmd,qBAG/Ck/E,EAAOr8F,OACf,CAGV,IAAI,2BAAsB,CAAC,EA8RjB,MA5RV,MACA,IAAIA,EAAU,2BAGdC,OAAOC,eAAeF,EAAS,aAAc,CAC3CG,OAAO,IAETF,OAAOC,eAAeF,EAAS,iBAAkB,CAC/C4W,YAAY,EACZ/P,IAAK,WACH,OAAOwX,EAAM5b,cACf,IAEFxC,OAAOC,eAAeF,EAAS,wBAAyB,CACtD4W,YAAY,EACZ/P,IAAK,WACH,OAAOy1F,EAAyB9gB,qBAClC,IAEFv7E,OAAOC,eAAeF,EAAS,6BAA8B,CAC3D4W,YAAY,EACZ/P,IAAK,WACH,OAAOwX,EAAM/b,0BACf,IAEFrC,OAAOC,eAAeF,EAAS,uBAAwB,CACrD4W,YAAY,EACZ/P,IAAK,WACH,OAAOwX,EAAMjc,oBACf,IAEFnC,OAAOC,eAAeF,EAAS,4BAA6B,CAC1D4W,YAAY,EACZ/P,IAAK,WACH,OAAOk1B,EAAOwO,yBAChB,IAEFtqC,OAAOC,eAAeF,EAAS,kBAAmB,CAChD4W,YAAY,EACZ/P,IAAK,WACH,OAAO42E,EAAkBwC,eAC3B,IAEFhgF,OAAOC,eAAeF,EAAS,iBAAkB,CAC/C4W,YAAY,EACZ/P,IAAK,WACH,OAAOwX,EAAMpc,cACf,IAEFhC,OAAOC,eAAeF,EAAS,sBAAuB,CACpD4W,YAAY,EACZ/P,IAAK,WACH,OAAOwX,EAAM1c,mBACf,IAEF1B,OAAOC,eAAeF,EAAS,gBAAiB,CAC9C4W,YAAY,EACZ/P,IAAK,WACH,OAAO0X,EAAes2B,aACxB,IAEF50C,OAAOC,eAAeF,EAAS,cAAe,CAC5C4W,YAAY,EACZ/P,IAAK,WACH,OAAOwX,EAAM7c,WACf,IAEFvB,OAAOC,eAAeF,EAAS,sBAAuB,CACpD4W,YAAY,EACZ/P,IAAK,WACH,OAAO8X,EAAgBiE,mBACzB,IAEF3iB,OAAOC,eAAeF,EAAS,YAAa,CAC1C4W,YAAY,EACZ/P,IAAK,WACH,OAAOwX,EAAMhd,SACf,IAEFpB,OAAOC,eAAeF,EAAS,sBAAuB,CACpD4W,YAAY,EACZ/P,IAAK,WACH,OAAOwX,EAAMjd,mBACf,IAEFnB,OAAOC,eAAeF,EAAS,sBAAuB,CACpD4W,YAAY,EACZ/P,IAAK,WACH,OAAOwX,EAAMrd,mBACf,IAEFf,OAAOC,eAAeF,EAAS,MAAO,CACpC4W,YAAY,EACZ/P,IAAK,WACH,OAAOwX,EAAMtd,GACf,IAEFd,OAAOC,eAAeF,EAAS,wBAAyB,CACtD4W,YAAY,EACZ/P,IAAK,WACH,OAAO01F,EAAK7+E,qBACd,IAEFzd,OAAOC,eAAeF,EAAS,gBAAiB,CAC9C4W,YAAY,EACZ/P,IAAK,WACH,OAAO0X,EAAeq2B,aACxB,IAEF30C,OAAOC,eAAeF,EAAS,YAAa,CAC1C4W,YAAY,EACZ/P,IAAK,WACH,OAAO01F,EAAKj/E,SACd,IAEFrd,OAAOC,eAAeF,EAAS,oBAAqB,CAClD4W,YAAY,EACZ/P,IAAK,WACH,OAAOwX,EAAMzd,iBACf,IAEFX,OAAOC,eAAeF,EAAS,iBAAkB,CAC/C4W,YAAY,EACZ/P,IAAK,WACH,OAAOwX,EAAM1d,cACf,IAEFV,OAAOC,eAAeF,EAAS,gBAAiB,CAC9C4W,YAAY,EACZ/P,IAAK,WACH,OAAO0X,EAAekyB,aACxB,IAEFxwC,OAAOC,eAAeF,EAAS,oBAAqB,CAClD4W,YAAY,EACZ/P,IAAK,WACH,OAAOwX,EAAM3d,iBACf,IAEFT,OAAOC,eAAeF,EAAS,8BAA+B,CAC5D4W,YAAY,EACZ/P,IAAK,WACH,OAAO0X,EAAeoS,2BACxB,IAEF1wB,OAAOC,eAAeF,EAAS,cAAe,CAC5C4W,YAAY,EACZ/P,IAAK,WACH,OAAO01F,EAAKt+E,WACd,IAEFhe,OAAOC,eAAeF,EAAS,8BAA+B,CAC5D4W,YAAY,EACZ/P,IAAK,WACH,OAAOwX,EAAM9d,2BACf,IAEFN,OAAOC,eAAeF,EAAS,OAAQ,CACrC4W,YAAY,EACZ/P,IAAK,WACH,OAAOwX,EAAMhe,IACf,IAEFJ,OAAOC,eAAeF,EAAS,iBAAkB,CAC/C4W,YAAY,EACZ/P,IAAK,WACH,OAAOwX,EAAMje,cACf,IAEFH,OAAOC,eAAeF,EAAS,WAAY,CACzC4W,YAAY,EACZ/P,IAAK,WACH,OAAOu5E,EAAWqQ,QACpB,IAEFxwF,OAAOC,eAAeF,EAAS,QAAS,CACtC4W,YAAY,EACZ/P,IAAK,WACH,OAAO01F,EAAKr+E,KACd,IAEFje,OAAOC,eAAeF,EAAS,yBAA0B,CACvD4W,YAAY,EACZ/P,IAAK,WACH,OAAOwX,EAAMtb,sBACf,IAEF9C,OAAOC,eAAeF,EAAS,cAAe,CAC5C4W,YAAY,EACZ/P,IAAK,WACH,OAAO01F,EAAKp+E,WACd,IAEFle,OAAOC,eAAeF,EAAS,qBAAsB,CACnD4W,YAAY,EACZ/P,IAAK,WACH,OAAO0X,EAAeg3B,kBACxB,IAEFt1C,OAAOC,eAAeF,EAAS,wBAAyB,CACtD4W,YAAY,EACZ/P,IAAK,WACH,OAAO0X,EAAeo3B,qBACxB,IAEF11C,OAAOC,eAAeF,EAAS,qBAAsB,CACnD4W,YAAY,EACZ/P,IAAK,WACH,OAAO0X,EAAey3B,kBACxB,IAEF/1C,OAAOC,eAAeF,EAAS,eAAgB,CAC7C4W,YAAY,EACZ/P,IAAK,WACH,OAAO0X,EAAeqC,YACxB,IAEF3gB,OAAOC,eAAeF,EAAS,YAAa,CAC1C4W,YAAY,EACZ/P,IAAK,WACH,OAAO0X,EAAe63B,SACxB,IAEFn2C,OAAOC,eAAeF,EAAS,aAAc,CAC3C4W,YAAY,EACZ/P,IAAK,WACH,OAAO0X,EAAe0V,UACxB,IAEFh0B,OAAOC,eAAeF,EAAS,gBAAiB,CAC9C4W,YAAY,EACZ/P,IAAK,WACH,OAAO0X,EAAe2kB,aACxB,IAEFjjC,OAAOC,eAAeF,EAAS,mBAAoB,CACjD4W,YAAY,EACZ/P,IAAK,WACH,OAAOwX,EAAMlY,gBACf,IAEFlG,OAAOC,eAAeF,EAAS,kBAAmB,CAChD4W,YAAY,EACZ/P,IAAK,WACH,OAAO21F,EAAY7kB,eACrB,IAEF13E,OAAOC,eAAeF,EAAS,qBAAsB,CACnD4W,YAAY,EACZ/P,IAAK,WACH,OAAO0X,EAAek4B,kBACxB,IAEFx2C,OAAOC,eAAeF,EAAS,SAAU,CACvC4W,YAAY,EACZ/P,IAAK,WACH,OAAOwX,EAAM5W,MACf,IAEFxH,OAAOC,eAAeF,EAAS,kBAAmB,CAChD4W,YAAY,EACZ/P,IAAK,WACH,OAAO21F,EAAYxkB,eACrB,IAEF/3E,OAAOC,eAAeF,EAAS,UAAW,CACxC4W,YAAY,EACZ/P,IAAK,WACH,OAAO01F,EAAKn+E,OACd,IAEF,IAAIC,EAAQlB,oBAAoB,GAC5Bo/E,EAAOp/E,oBAAoB,GAC3BoB,EAAiBpB,oBAAoB,GACrCq/E,EAAcr/E,oBAAoB,IAClCm/E,EAA2Bn/E,oBAAoB,IAC/C4e,EAAS5e,oBAAoB,GAC7BsgE,EAAoBtgE,oBAAoB,IACxCwB,EAAkBxB,oBAAoB,IACtCijE,EAAajjE,oBAAoB,GAGpC,EA1RD,GA4RiB,0BACP,EA9rjBM,GARdk/E,OAAOr8F,QAAUL,KAAK88F,SAAW78F,yDCvBnC,MACA","sources":["webpack://my-vehicles/./node_modules/react-pdf/node_modules/pdfjs-dist/build/pdf.js","webpack://my-vehicles/./node_modules/react-pdf/dist/esm/pdfjs.js"],"sourcesContent":["/**\n * @licstart The following is the entire license notice for the\n * JavaScript code in this page\n *\n * Copyright 2023 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @licend The above is the entire license notice for the\n * JavaScript code in this page\n */\n\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = root.pdfjsLib = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"pdfjs-dist/build/pdf\", [], () => { return (root.pdfjsLib = factory()); });\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/build/pdf\"] = root.pdfjsLib = factory();\n\telse\n\t\troot[\"pdfjs-dist/build/pdf\"] = root.pdfjsLib = factory();\n})(globalThis, () => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ([\n/* 0 */,\n/* 1 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.VerbosityLevel = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.TextRenderingMode = exports.RenderingIntentFlag = exports.PromiseCapability = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.PageActionEventType = exports.OPS = exports.MissingPDFException = exports.MAX_IMAGE_SIZE_TO_CACHE = exports.LINE_FACTOR = exports.LINE_DESCENT_FACTOR = exports.InvalidPDFException = exports.ImageKind = exports.IDENTITY_MATRIX = exports.FormatError = exports.FeatureTest = exports.FONT_IDENTITY_MATRIX = exports.DocumentActionEventType = exports.CMapCompressionType = exports.BaseException = exports.BASELINE_FACTOR = exports.AnnotationType = exports.AnnotationReplyType = exports.AnnotationPrefix = exports.AnnotationMode = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationEditorType = exports.AnnotationEditorPrefix = exports.AnnotationEditorParamsType = exports.AnnotationBorderStyleType = exports.AnnotationActionEventType = exports.AbortException = void 0;\nexports.assert = assert;\nexports.bytesToString = bytesToString;\nexports.createValidAbsoluteUrl = createValidAbsoluteUrl;\nexports.getModificationDate = getModificationDate;\nexports.getUuid = getUuid;\nexports.getVerbosityLevel = getVerbosityLevel;\nexports.info = info;\nexports.isArrayBuffer = isArrayBuffer;\nexports.isArrayEqual = isArrayEqual;\nexports.isNodeJS = void 0;\nexports.normalizeUnicode = normalizeUnicode;\nexports.objectFromMap = objectFromMap;\nexports.objectSize = objectSize;\nexports.setVerbosityLevel = setVerbosityLevel;\nexports.shadow = shadow;\nexports.string32 = string32;\nexports.stringToBytes = stringToBytes;\nexports.stringToPDFString = stringToPDFString;\nexports.stringToUTF8String = stringToUTF8String;\nexports.unreachable = unreachable;\nexports.utf8StringToString = utf8StringToString;\nexports.warn = warn;\nconst isNodeJS = typeof process === \"object\" && process + \"\" === \"[object process]\" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== \"browser\");\nexports.isNodeJS = isNodeJS;\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nexports.IDENTITY_MATRIX = IDENTITY_MATRIX;\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\nexports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX;\nconst MAX_IMAGE_SIZE_TO_CACHE = 10e6;\nexports.MAX_IMAGE_SIZE_TO_CACHE = MAX_IMAGE_SIZE_TO_CACHE;\nconst LINE_FACTOR = 1.35;\nexports.LINE_FACTOR = LINE_FACTOR;\nconst LINE_DESCENT_FACTOR = 0.35;\nexports.LINE_DESCENT_FACTOR = LINE_DESCENT_FACTOR;\nconst BASELINE_FACTOR = LINE_DESCENT_FACTOR / LINE_FACTOR;\nexports.BASELINE_FACTOR = BASELINE_FACTOR;\nconst RenderingIntentFlag = {\n ANY: 0x01,\n DISPLAY: 0x02,\n PRINT: 0x04,\n SAVE: 0x08,\n ANNOTATIONS_FORMS: 0x10,\n ANNOTATIONS_STORAGE: 0x20,\n ANNOTATIONS_DISABLE: 0x40,\n OPLIST: 0x100\n};\nexports.RenderingIntentFlag = RenderingIntentFlag;\nconst AnnotationMode = {\n DISABLE: 0,\n ENABLE: 1,\n ENABLE_FORMS: 2,\n ENABLE_STORAGE: 3\n};\nexports.AnnotationMode = AnnotationMode;\nconst AnnotationEditorPrefix = \"pdfjs_internal_editor_\";\nexports.AnnotationEditorPrefix = AnnotationEditorPrefix;\nconst AnnotationEditorType = {\n DISABLE: -1,\n NONE: 0,\n FREETEXT: 3,\n STAMP: 13,\n INK: 15\n};\nexports.AnnotationEditorType = AnnotationEditorType;\nconst AnnotationEditorParamsType = {\n RESIZE: 1,\n CREATE: 2,\n FREETEXT_SIZE: 11,\n FREETEXT_COLOR: 12,\n FREETEXT_OPACITY: 13,\n INK_COLOR: 21,\n INK_THICKNESS: 22,\n INK_OPACITY: 23\n};\nexports.AnnotationEditorParamsType = AnnotationEditorParamsType;\nconst PermissionFlag = {\n PRINT: 0x04,\n MODIFY_CONTENTS: 0x08,\n COPY: 0x10,\n MODIFY_ANNOTATIONS: 0x20,\n FILL_INTERACTIVE_FORMS: 0x100,\n COPY_FOR_ACCESSIBILITY: 0x200,\n ASSEMBLE: 0x400,\n PRINT_HIGH_QUALITY: 0x800\n};\nexports.PermissionFlag = PermissionFlag;\nconst TextRenderingMode = {\n FILL: 0,\n STROKE: 1,\n FILL_STROKE: 2,\n INVISIBLE: 3,\n FILL_ADD_TO_PATH: 4,\n STROKE_ADD_TO_PATH: 5,\n FILL_STROKE_ADD_TO_PATH: 6,\n ADD_TO_PATH: 7,\n FILL_STROKE_MASK: 3,\n ADD_TO_PATH_FLAG: 4\n};\nexports.TextRenderingMode = TextRenderingMode;\nconst ImageKind = {\n GRAYSCALE_1BPP: 1,\n RGB_24BPP: 2,\n RGBA_32BPP: 3\n};\nexports.ImageKind = ImageKind;\nconst AnnotationType = {\n TEXT: 1,\n LINK: 2,\n FREETEXT: 3,\n LINE: 4,\n SQUARE: 5,\n CIRCLE: 6,\n POLYGON: 7,\n POLYLINE: 8,\n HIGHLIGHT: 9,\n UNDERLINE: 10,\n SQUIGGLY: 11,\n STRIKEOUT: 12,\n STAMP: 13,\n CARET: 14,\n INK: 15,\n POPUP: 16,\n FILEATTACHMENT: 17,\n SOUND: 18,\n MOVIE: 19,\n WIDGET: 20,\n SCREEN: 21,\n PRINTERMARK: 22,\n TRAPNET: 23,\n WATERMARK: 24,\n THREED: 25,\n REDACT: 26\n};\nexports.AnnotationType = AnnotationType;\nconst AnnotationReplyType = {\n GROUP: \"Group\",\n REPLY: \"R\"\n};\nexports.AnnotationReplyType = AnnotationReplyType;\nconst AnnotationFlag = {\n INVISIBLE: 0x01,\n HIDDEN: 0x02,\n PRINT: 0x04,\n NOZOOM: 0x08,\n NOROTATE: 0x10,\n NOVIEW: 0x20,\n READONLY: 0x40,\n LOCKED: 0x80,\n TOGGLENOVIEW: 0x100,\n LOCKEDCONTENTS: 0x200\n};\nexports.AnnotationFlag = AnnotationFlag;\nconst AnnotationFieldFlag = {\n READONLY: 0x0000001,\n REQUIRED: 0x0000002,\n NOEXPORT: 0x0000004,\n MULTILINE: 0x0001000,\n PASSWORD: 0x0002000,\n NOTOGGLETOOFF: 0x0004000,\n RADIO: 0x0008000,\n PUSHBUTTON: 0x0010000,\n COMBO: 0x0020000,\n EDIT: 0x0040000,\n SORT: 0x0080000,\n FILESELECT: 0x0100000,\n MULTISELECT: 0x0200000,\n DONOTSPELLCHECK: 0x0400000,\n DONOTSCROLL: 0x0800000,\n COMB: 0x1000000,\n RICHTEXT: 0x2000000,\n RADIOSINUNISON: 0x2000000,\n COMMITONSELCHANGE: 0x4000000\n};\nexports.AnnotationFieldFlag = AnnotationFieldFlag;\nconst AnnotationBorderStyleType = {\n SOLID: 1,\n DASHED: 2,\n BEVELED: 3,\n INSET: 4,\n UNDERLINE: 5\n};\nexports.AnnotationBorderStyleType = AnnotationBorderStyleType;\nconst AnnotationActionEventType = {\n E: \"Mouse Enter\",\n X: \"Mouse Exit\",\n D: \"Mouse Down\",\n U: \"Mouse Up\",\n Fo: \"Focus\",\n Bl: \"Blur\",\n PO: \"PageOpen\",\n PC: \"PageClose\",\n PV: \"PageVisible\",\n PI: \"PageInvisible\",\n K: \"Keystroke\",\n F: \"Format\",\n V: \"Validate\",\n C: \"Calculate\"\n};\nexports.AnnotationActionEventType = AnnotationActionEventType;\nconst DocumentActionEventType = {\n WC: \"WillClose\",\n WS: \"WillSave\",\n DS: \"DidSave\",\n WP: \"WillPrint\",\n DP: \"DidPrint\"\n};\nexports.DocumentActionEventType = DocumentActionEventType;\nconst PageActionEventType = {\n O: \"PageOpen\",\n C: \"PageClose\"\n};\nexports.PageActionEventType = PageActionEventType;\nconst VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5\n};\nexports.VerbosityLevel = VerbosityLevel;\nconst CMapCompressionType = {\n NONE: 0,\n BINARY: 1\n};\nexports.CMapCompressionType = CMapCompressionType;\nconst OPS = {\n dependency: 1,\n setLineWidth: 2,\n setLineCap: 3,\n setLineJoin: 4,\n setMiterLimit: 5,\n setDash: 6,\n setRenderingIntent: 7,\n setFlatness: 8,\n setGState: 9,\n save: 10,\n restore: 11,\n transform: 12,\n moveTo: 13,\n lineTo: 14,\n curveTo: 15,\n curveTo2: 16,\n curveTo3: 17,\n closePath: 18,\n rectangle: 19,\n stroke: 20,\n closeStroke: 21,\n fill: 22,\n eoFill: 23,\n fillStroke: 24,\n eoFillStroke: 25,\n closeFillStroke: 26,\n closeEOFillStroke: 27,\n endPath: 28,\n clip: 29,\n eoClip: 30,\n beginText: 31,\n endText: 32,\n setCharSpacing: 33,\n setWordSpacing: 34,\n setHScale: 35,\n setLeading: 36,\n setFont: 37,\n setTextRenderingMode: 38,\n setTextRise: 39,\n moveText: 40,\n setLeadingMoveText: 41,\n setTextMatrix: 42,\n nextLine: 43,\n showText: 44,\n showSpacedText: 45,\n nextLineShowText: 46,\n nextLineSetSpacingShowText: 47,\n setCharWidth: 48,\n setCharWidthAndBounds: 49,\n setStrokeColorSpace: 50,\n setFillColorSpace: 51,\n setStrokeColor: 52,\n setStrokeColorN: 53,\n setFillColor: 54,\n setFillColorN: 55,\n setStrokeGray: 56,\n setFillGray: 57,\n setStrokeRGBColor: 58,\n setFillRGBColor: 59,\n setStrokeCMYKColor: 60,\n setFillCMYKColor: 61,\n shadingFill: 62,\n beginInlineImage: 63,\n beginImageData: 64,\n endInlineImage: 65,\n paintXObject: 66,\n markPoint: 67,\n markPointProps: 68,\n beginMarkedContent: 69,\n beginMarkedContentProps: 70,\n endMarkedContent: 71,\n beginCompat: 72,\n endCompat: 73,\n paintFormXObjectBegin: 74,\n paintFormXObjectEnd: 75,\n beginGroup: 76,\n endGroup: 77,\n beginAnnotation: 80,\n endAnnotation: 81,\n paintImageMaskXObject: 83,\n paintImageMaskXObjectGroup: 84,\n paintImageXObject: 85,\n paintInlineImageXObject: 86,\n paintInlineImageXObjectGroup: 87,\n paintImageXObjectRepeat: 88,\n paintImageMaskXObjectRepeat: 89,\n paintSolidColorImageMask: 90,\n constructPath: 91\n};\nexports.OPS = OPS;\nconst PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2\n};\nexports.PasswordResponses = PasswordResponses;\nlet verbosity = VerbosityLevel.WARNINGS;\nfunction setVerbosityLevel(level) {\n if (Number.isInteger(level)) {\n verbosity = level;\n }\n}\nfunction getVerbosityLevel() {\n return verbosity;\n}\nfunction info(msg) {\n if (verbosity >= VerbosityLevel.INFOS) {\n console.log(`Info: ${msg}`);\n }\n}\nfunction warn(msg) {\n if (verbosity >= VerbosityLevel.WARNINGS) {\n console.log(`Warning: ${msg}`);\n }\n}\nfunction unreachable(msg) {\n throw new Error(msg);\n}\nfunction assert(cond, msg) {\n if (!cond) {\n unreachable(msg);\n }\n}\nfunction _isValidProtocol(url) {\n switch (url?.protocol) {\n case \"http:\":\n case \"https:\":\n case \"ftp:\":\n case \"mailto:\":\n case \"tel:\":\n return true;\n default:\n return false;\n }\n}\nfunction createValidAbsoluteUrl(url, baseUrl = null, options = null) {\n if (!url) {\n return null;\n }\n try {\n if (options && typeof url === \"string\") {\n if (options.addDefaultProtocol && url.startsWith(\"www.\")) {\n const dots = url.match(/\\./g);\n if (dots?.length >= 2) {\n url = `http://${url}`;\n }\n }\n if (options.tryConvertEncoding) {\n try {\n url = stringToUTF8String(url);\n } catch {}\n }\n }\n const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n if (_isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch {}\n return null;\n}\nfunction shadow(obj, prop, value, nonSerializable = false) {\n Object.defineProperty(obj, prop, {\n value,\n enumerable: !nonSerializable,\n configurable: true,\n writable: false\n });\n return value;\n}\nconst BaseException = function BaseExceptionClosure() {\n function BaseException(message, name) {\n if (this.constructor === BaseException) {\n unreachable(\"Cannot initialize BaseException.\");\n }\n this.message = message;\n this.name = name;\n }\n BaseException.prototype = new Error();\n BaseException.constructor = BaseException;\n return BaseException;\n}();\nexports.BaseException = BaseException;\nclass PasswordException extends BaseException {\n constructor(msg, code) {\n super(msg, \"PasswordException\");\n this.code = code;\n }\n}\nexports.PasswordException = PasswordException;\nclass UnknownErrorException extends BaseException {\n constructor(msg, details) {\n super(msg, \"UnknownErrorException\");\n this.details = details;\n }\n}\nexports.UnknownErrorException = UnknownErrorException;\nclass InvalidPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"InvalidPDFException\");\n }\n}\nexports.InvalidPDFException = InvalidPDFException;\nclass MissingPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"MissingPDFException\");\n }\n}\nexports.MissingPDFException = MissingPDFException;\nclass UnexpectedResponseException extends BaseException {\n constructor(msg, status) {\n super(msg, \"UnexpectedResponseException\");\n this.status = status;\n }\n}\nexports.UnexpectedResponseException = UnexpectedResponseException;\nclass FormatError extends BaseException {\n constructor(msg) {\n super(msg, \"FormatError\");\n }\n}\nexports.FormatError = FormatError;\nclass AbortException extends BaseException {\n constructor(msg) {\n super(msg, \"AbortException\");\n }\n}\nexports.AbortException = AbortException;\nfunction bytesToString(bytes) {\n if (typeof bytes !== \"object\" || bytes?.length === undefined) {\n unreachable(\"Invalid argument for bytesToString\");\n }\n const length = bytes.length;\n const MAX_ARGUMENT_COUNT = 8192;\n if (length < MAX_ARGUMENT_COUNT) {\n return String.fromCharCode.apply(null, bytes);\n }\n const strBuf = [];\n for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n const chunk = bytes.subarray(i, chunkEnd);\n strBuf.push(String.fromCharCode.apply(null, chunk));\n }\n return strBuf.join(\"\");\n}\nfunction stringToBytes(str) {\n if (typeof str !== \"string\") {\n unreachable(\"Invalid argument for stringToBytes\");\n }\n const length = str.length;\n const bytes = new Uint8Array(length);\n for (let i = 0; i < length; ++i) {\n bytes[i] = str.charCodeAt(i) & 0xff;\n }\n return bytes;\n}\nfunction string32(value) {\n return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);\n}\nfunction objectSize(obj) {\n return Object.keys(obj).length;\n}\nfunction objectFromMap(map) {\n const obj = Object.create(null);\n for (const [key, value] of map) {\n obj[key] = value;\n }\n return obj;\n}\nfunction isLittleEndian() {\n const buffer8 = new Uint8Array(4);\n buffer8[0] = 1;\n const view32 = new Uint32Array(buffer8.buffer, 0, 1);\n return view32[0] === 1;\n}\nfunction isEvalSupported() {\n try {\n new Function(\"\");\n return true;\n } catch {\n return false;\n }\n}\nclass FeatureTest {\n static get isLittleEndian() {\n return shadow(this, \"isLittleEndian\", isLittleEndian());\n }\n static get isEvalSupported() {\n return shadow(this, \"isEvalSupported\", isEvalSupported());\n }\n static get isOffscreenCanvasSupported() {\n return shadow(this, \"isOffscreenCanvasSupported\", typeof OffscreenCanvas !== \"undefined\");\n }\n static get platform() {\n if (typeof navigator === \"undefined\") {\n return shadow(this, \"platform\", {\n isWin: false,\n isMac: false\n });\n }\n return shadow(this, \"platform\", {\n isWin: navigator.platform.includes(\"Win\"),\n isMac: navigator.platform.includes(\"Mac\")\n });\n }\n static get isCSSRoundSupported() {\n return shadow(this, \"isCSSRoundSupported\", globalThis.CSS?.supports?.(\"width: round(1.5px, 1px)\"));\n }\n}\nexports.FeatureTest = FeatureTest;\nconst hexNumbers = [...Array(256).keys()].map(n => n.toString(16).padStart(2, \"0\"));\nclass Util {\n static makeHexColor(r, g, b) {\n return `#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`;\n }\n static scaleMinMax(transform, minMax) {\n let temp;\n if (transform[0]) {\n if (transform[0] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n }\n minMax[0] *= transform[0];\n minMax[1] *= transform[0];\n if (transform[3] < 0) {\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n }\n minMax[2] *= transform[3];\n minMax[3] *= transform[3];\n } else {\n temp = minMax[0];\n minMax[0] = minMax[2];\n minMax[2] = temp;\n temp = minMax[1];\n minMax[1] = minMax[3];\n minMax[3] = temp;\n if (transform[1] < 0) {\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n }\n minMax[2] *= transform[1];\n minMax[3] *= transform[1];\n if (transform[2] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n }\n minMax[0] *= transform[2];\n minMax[1] *= transform[2];\n }\n minMax[0] += transform[4];\n minMax[1] += transform[4];\n minMax[2] += transform[5];\n minMax[3] += transform[5];\n }\n static transform(m1, m2) {\n return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]];\n }\n static applyTransform(p, m) {\n const xt = p[0] * m[0] + p[1] * m[2] + m[4];\n const yt = p[0] * m[1] + p[1] * m[3] + m[5];\n return [xt, yt];\n }\n static applyInverseTransform(p, m) {\n const d = m[0] * m[3] - m[1] * m[2];\n const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n const yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n return [xt, yt];\n }\n static getAxialAlignedBoundingBox(r, m) {\n const p1 = this.applyTransform(r, m);\n const p2 = this.applyTransform(r.slice(2, 4), m);\n const p3 = this.applyTransform([r[0], r[3]], m);\n const p4 = this.applyTransform([r[2], r[1]], m);\n return [Math.min(p1[0], p2[0], p3[0], p4[0]), Math.min(p1[1], p2[1], p3[1], p4[1]), Math.max(p1[0], p2[0], p3[0], p4[0]), Math.max(p1[1], p2[1], p3[1], p4[1])];\n }\n static inverseTransform(m) {\n const d = m[0] * m[3] - m[1] * m[2];\n return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d];\n }\n static singularValueDecompose2dScale(m) {\n const transpose = [m[0], m[2], m[1], m[3]];\n const a = m[0] * transpose[0] + m[1] * transpose[2];\n const b = m[0] * transpose[1] + m[1] * transpose[3];\n const c = m[2] * transpose[0] + m[3] * transpose[2];\n const d = m[2] * transpose[1] + m[3] * transpose[3];\n const first = (a + d) / 2;\n const second = Math.sqrt((a + d) ** 2 - 4 * (a * d - c * b)) / 2;\n const sx = first + second || 1;\n const sy = first - second || 1;\n return [Math.sqrt(sx), Math.sqrt(sy)];\n }\n static normalizeRect(rect) {\n const r = rect.slice(0);\n if (rect[0] > rect[2]) {\n r[0] = rect[2];\n r[2] = rect[0];\n }\n if (rect[1] > rect[3]) {\n r[1] = rect[3];\n r[3] = rect[1];\n }\n return r;\n }\n static intersect(rect1, rect2) {\n const xLow = Math.max(Math.min(rect1[0], rect1[2]), Math.min(rect2[0], rect2[2]));\n const xHigh = Math.min(Math.max(rect1[0], rect1[2]), Math.max(rect2[0], rect2[2]));\n if (xLow > xHigh) {\n return null;\n }\n const yLow = Math.max(Math.min(rect1[1], rect1[3]), Math.min(rect2[1], rect2[3]));\n const yHigh = Math.min(Math.max(rect1[1], rect1[3]), Math.max(rect2[1], rect2[3]));\n if (yLow > yHigh) {\n return null;\n }\n return [xLow, yLow, xHigh, yHigh];\n }\n static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3) {\n const tvalues = [],\n bounds = [[], []];\n let a, b, c, t, t1, t2, b2ac, sqrtb2ac;\n for (let i = 0; i < 2; ++i) {\n if (i === 0) {\n b = 6 * x0 - 12 * x1 + 6 * x2;\n a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3;\n c = 3 * x1 - 3 * x0;\n } else {\n b = 6 * y0 - 12 * y1 + 6 * y2;\n a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3;\n c = 3 * y1 - 3 * y0;\n }\n if (Math.abs(a) < 1e-12) {\n if (Math.abs(b) < 1e-12) {\n continue;\n }\n t = -c / b;\n if (0 < t && t < 1) {\n tvalues.push(t);\n }\n continue;\n }\n b2ac = b * b - 4 * c * a;\n sqrtb2ac = Math.sqrt(b2ac);\n if (b2ac < 0) {\n continue;\n }\n t1 = (-b + sqrtb2ac) / (2 * a);\n if (0 < t1 && t1 < 1) {\n tvalues.push(t1);\n }\n t2 = (-b - sqrtb2ac) / (2 * a);\n if (0 < t2 && t2 < 1) {\n tvalues.push(t2);\n }\n }\n let j = tvalues.length,\n mt;\n const jlen = j;\n while (j--) {\n t = tvalues[j];\n mt = 1 - t;\n bounds[0][j] = mt * mt * mt * x0 + 3 * mt * mt * t * x1 + 3 * mt * t * t * x2 + t * t * t * x3;\n bounds[1][j] = mt * mt * mt * y0 + 3 * mt * mt * t * y1 + 3 * mt * t * t * y2 + t * t * t * y3;\n }\n bounds[0][jlen] = x0;\n bounds[1][jlen] = y0;\n bounds[0][jlen + 1] = x3;\n bounds[1][jlen + 1] = y3;\n bounds[0].length = bounds[1].length = jlen + 2;\n return [Math.min(...bounds[0]), Math.min(...bounds[1]), Math.max(...bounds[0]), Math.max(...bounds[1])];\n }\n}\nexports.Util = Util;\nconst PDFStringTranslateTable = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2d8, 0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192, 0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018, 0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d, 0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac];\nfunction stringToPDFString(str) {\n if (str[0] >= \"\\xEF\") {\n let encoding;\n if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n encoding = \"utf-16be\";\n } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n encoding = \"utf-16le\";\n } else if (str[0] === \"\\xEF\" && str[1] === \"\\xBB\" && str[2] === \"\\xBF\") {\n encoding = \"utf-8\";\n }\n if (encoding) {\n try {\n const decoder = new TextDecoder(encoding, {\n fatal: true\n });\n const buffer = stringToBytes(str);\n return decoder.decode(buffer);\n } catch (ex) {\n warn(`stringToPDFString: \"${ex}\".`);\n }\n }\n }\n const strBuf = [];\n for (let i = 0, ii = str.length; i < ii; i++) {\n const code = PDFStringTranslateTable[str.charCodeAt(i)];\n strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n }\n return strBuf.join(\"\");\n}\nfunction stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\nfunction isArrayBuffer(v) {\n return typeof v === \"object\" && v?.byteLength !== undefined;\n}\nfunction isArrayEqual(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n for (let i = 0, ii = arr1.length; i < ii; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n return true;\n}\nfunction getModificationDate(date = new Date()) {\n const buffer = [date.getUTCFullYear().toString(), (date.getUTCMonth() + 1).toString().padStart(2, \"0\"), date.getUTCDate().toString().padStart(2, \"0\"), date.getUTCHours().toString().padStart(2, \"0\"), date.getUTCMinutes().toString().padStart(2, \"0\"), date.getUTCSeconds().toString().padStart(2, \"0\")];\n return buffer.join(\"\");\n}\nclass PromiseCapability {\n #settled = false;\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = data => {\n this.#settled = true;\n resolve(data);\n };\n this.reject = reason => {\n this.#settled = true;\n reject(reason);\n };\n });\n }\n get settled() {\n return this.#settled;\n }\n}\nexports.PromiseCapability = PromiseCapability;\nlet NormalizeRegex = null;\nlet NormalizationMap = null;\nfunction normalizeUnicode(str) {\n if (!NormalizeRegex) {\n NormalizeRegex = /([\\u00a0\\u00b5\\u037e\\u0eb3\\u2000-\\u200a\\u202f\\u2126\\ufb00-\\ufb04\\ufb06\\ufb20-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufba1\\ufba4-\\ufba9\\ufbae-\\ufbb1\\ufbd3-\\ufbdc\\ufbde-\\ufbe7\\ufbea-\\ufbf8\\ufbfc-\\ufbfd\\ufc00-\\ufc5d\\ufc64-\\ufcf1\\ufcf5-\\ufd3d\\ufd88\\ufdf4\\ufdfa-\\ufdfb\\ufe71\\ufe77\\ufe79\\ufe7b\\ufe7d]+)|(\\ufb05+)/gu;\n NormalizationMap = new Map([[\"ſt\", \"ſt\"]]);\n }\n return str.replaceAll(NormalizeRegex, (_, p1, p2) => {\n return p1 ? p1.normalize(\"NFKC\") : NormalizationMap.get(p2);\n });\n}\nfunction getUuid() {\n if (typeof crypto !== \"undefined\" && typeof crypto?.randomUUID === \"function\") {\n return crypto.randomUUID();\n }\n const buf = new Uint8Array(32);\n if (typeof crypto !== \"undefined\" && typeof crypto?.getRandomValues === \"function\") {\n crypto.getRandomValues(buf);\n } else {\n for (let i = 0; i < 32; i++) {\n buf[i] = Math.floor(Math.random() * 255);\n }\n }\n return bytesToString(buf);\n}\nconst AnnotationPrefix = \"pdfjs_internal_id_\";\nexports.AnnotationPrefix = AnnotationPrefix;\n\n/***/ }),\n/* 2 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.RenderTask = exports.PDFWorkerUtil = exports.PDFWorker = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFDocumentLoadingTask = exports.PDFDataRangeTransport = exports.LoopbackPort = exports.DefaultStandardFontDataFactory = exports.DefaultFilterFactory = exports.DefaultCanvasFactory = exports.DefaultCMapReaderFactory = void 0;\nObject.defineProperty(exports, \"SVGGraphics\", ({\n enumerable: true,\n get: function () {\n return _displaySvg.SVGGraphics;\n }\n}));\nexports.build = void 0;\nexports.getDocument = getDocument;\nexports.version = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _annotation_storage = __w_pdfjs_require__(3);\nvar _display_utils = __w_pdfjs_require__(6);\nvar _font_loader = __w_pdfjs_require__(9);\nvar _displayNode_utils = __w_pdfjs_require__(10);\nvar _canvas = __w_pdfjs_require__(11);\nvar _worker_options = __w_pdfjs_require__(14);\nvar _message_handler = __w_pdfjs_require__(15);\nvar _metadata = __w_pdfjs_require__(16);\nvar _optional_content_config = __w_pdfjs_require__(17);\nvar _transport_stream = __w_pdfjs_require__(18);\nvar _displayFetch_stream = __w_pdfjs_require__(19);\nvar _displayNetwork = __w_pdfjs_require__(22);\nvar _displayNode_stream = __w_pdfjs_require__(23);\nvar _displaySvg = __w_pdfjs_require__(24);\nvar _xfa_text = __w_pdfjs_require__(25);\nconst DEFAULT_RANGE_CHUNK_SIZE = 65536;\nconst RENDERING_CANCELLED_TIMEOUT = 100;\nconst DELAYED_CLEANUP_TIMEOUT = 5000;\nconst DefaultCanvasFactory = _util.isNodeJS ? _displayNode_utils.NodeCanvasFactory : _display_utils.DOMCanvasFactory;\nexports.DefaultCanvasFactory = DefaultCanvasFactory;\nconst DefaultCMapReaderFactory = _util.isNodeJS ? _displayNode_utils.NodeCMapReaderFactory : _display_utils.DOMCMapReaderFactory;\nexports.DefaultCMapReaderFactory = DefaultCMapReaderFactory;\nconst DefaultFilterFactory = _util.isNodeJS ? _displayNode_utils.NodeFilterFactory : _display_utils.DOMFilterFactory;\nexports.DefaultFilterFactory = DefaultFilterFactory;\nconst DefaultStandardFontDataFactory = _util.isNodeJS ? _displayNode_utils.NodeStandardFontDataFactory : _display_utils.DOMStandardFontDataFactory;\nexports.DefaultStandardFontDataFactory = DefaultStandardFontDataFactory;\nfunction getDocument(src) {\n if (typeof src === \"string\" || src instanceof URL) {\n src = {\n url: src\n };\n } else if ((0, _util.isArrayBuffer)(src)) {\n src = {\n data: src\n };\n }\n if (typeof src !== \"object\") {\n throw new Error(\"Invalid parameter in getDocument, need parameter object.\");\n }\n if (!src.url && !src.data && !src.range) {\n throw new Error(\"Invalid parameter object: need either .data, .range or .url\");\n }\n const task = new PDFDocumentLoadingTask();\n const {\n docId\n } = task;\n const url = src.url ? getUrlProp(src.url) : null;\n const data = src.data ? getDataProp(src.data) : null;\n const httpHeaders = src.httpHeaders || null;\n const withCredentials = src.withCredentials === true;\n const password = src.password ?? null;\n const rangeTransport = src.range instanceof PDFDataRangeTransport ? src.range : null;\n const rangeChunkSize = Number.isInteger(src.rangeChunkSize) && src.rangeChunkSize > 0 ? src.rangeChunkSize : DEFAULT_RANGE_CHUNK_SIZE;\n let worker = src.worker instanceof PDFWorker ? src.worker : null;\n const verbosity = src.verbosity;\n const docBaseUrl = typeof src.docBaseUrl === \"string\" && !(0, _display_utils.isDataScheme)(src.docBaseUrl) ? src.docBaseUrl : null;\n const cMapUrl = typeof src.cMapUrl === \"string\" ? src.cMapUrl : null;\n const cMapPacked = src.cMapPacked !== false;\n const CMapReaderFactory = src.CMapReaderFactory || DefaultCMapReaderFactory;\n const standardFontDataUrl = typeof src.standardFontDataUrl === \"string\" ? src.standardFontDataUrl : null;\n const StandardFontDataFactory = src.StandardFontDataFactory || DefaultStandardFontDataFactory;\n const ignoreErrors = src.stopAtErrors !== true;\n const maxImageSize = Number.isInteger(src.maxImageSize) && src.maxImageSize > -1 ? src.maxImageSize : -1;\n const isEvalSupported = src.isEvalSupported !== false;\n const isOffscreenCanvasSupported = typeof src.isOffscreenCanvasSupported === \"boolean\" ? src.isOffscreenCanvasSupported : !_util.isNodeJS;\n const canvasMaxAreaInBytes = Number.isInteger(src.canvasMaxAreaInBytes) ? src.canvasMaxAreaInBytes : -1;\n const disableFontFace = typeof src.disableFontFace === \"boolean\" ? src.disableFontFace : _util.isNodeJS;\n const fontExtraProperties = src.fontExtraProperties === true;\n const enableXfa = src.enableXfa === true;\n const ownerDocument = src.ownerDocument || globalThis.document;\n const disableRange = src.disableRange === true;\n const disableStream = src.disableStream === true;\n const disableAutoFetch = src.disableAutoFetch === true;\n const pdfBug = src.pdfBug === true;\n const length = rangeTransport ? rangeTransport.length : src.length ?? NaN;\n const useSystemFonts = typeof src.useSystemFonts === \"boolean\" ? src.useSystemFonts : !_util.isNodeJS && !disableFontFace;\n const useWorkerFetch = typeof src.useWorkerFetch === \"boolean\" ? src.useWorkerFetch : CMapReaderFactory === _display_utils.DOMCMapReaderFactory && StandardFontDataFactory === _display_utils.DOMStandardFontDataFactory && cMapUrl && standardFontDataUrl && (0, _display_utils.isValidFetchUrl)(cMapUrl, document.baseURI) && (0, _display_utils.isValidFetchUrl)(standardFontDataUrl, document.baseURI);\n const canvasFactory = src.canvasFactory || new DefaultCanvasFactory({\n ownerDocument\n });\n const filterFactory = src.filterFactory || new DefaultFilterFactory({\n docId,\n ownerDocument\n });\n const styleElement = null;\n (0, _util.setVerbosityLevel)(verbosity);\n const transportFactory = {\n canvasFactory,\n filterFactory\n };\n if (!useWorkerFetch) {\n transportFactory.cMapReaderFactory = new CMapReaderFactory({\n baseUrl: cMapUrl,\n isCompressed: cMapPacked\n });\n transportFactory.standardFontDataFactory = new StandardFontDataFactory({\n baseUrl: standardFontDataUrl\n });\n }\n if (!worker) {\n const workerParams = {\n verbosity,\n port: _worker_options.GlobalWorkerOptions.workerPort\n };\n worker = workerParams.port ? PDFWorker.fromPort(workerParams) : new PDFWorker(workerParams);\n task._worker = worker;\n }\n const fetchDocParams = {\n docId,\n apiVersion: '3.11.174',\n data,\n password,\n disableAutoFetch,\n rangeChunkSize,\n length,\n docBaseUrl,\n enableXfa,\n evaluatorOptions: {\n maxImageSize,\n disableFontFace,\n ignoreErrors,\n isEvalSupported,\n isOffscreenCanvasSupported,\n canvasMaxAreaInBytes,\n fontExtraProperties,\n useSystemFonts,\n cMapUrl: useWorkerFetch ? cMapUrl : null,\n standardFontDataUrl: useWorkerFetch ? standardFontDataUrl : null\n }\n };\n const transportParams = {\n ignoreErrors,\n isEvalSupported,\n disableFontFace,\n fontExtraProperties,\n enableXfa,\n ownerDocument,\n disableAutoFetch,\n pdfBug,\n styleElement\n };\n worker.promise.then(function () {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n const workerIdPromise = _fetchDocument(worker, fetchDocParams);\n const networkStreamPromise = new Promise(function (resolve) {\n let networkStream;\n if (rangeTransport) {\n networkStream = new _transport_stream.PDFDataTransportStream({\n length,\n initialData: rangeTransport.initialData,\n progressiveDone: rangeTransport.progressiveDone,\n contentDispositionFilename: rangeTransport.contentDispositionFilename,\n disableRange,\n disableStream\n }, rangeTransport);\n } else if (!data) {\n const createPDFNetworkStream = params => {\n if (_util.isNodeJS) {\n return new _displayNode_stream.PDFNodeStream(params);\n }\n return (0, _display_utils.isValidFetchUrl)(params.url) ? new _displayFetch_stream.PDFFetchStream(params) : new _displayNetwork.PDFNetworkStream(params);\n };\n networkStream = createPDFNetworkStream({\n url,\n length,\n httpHeaders,\n withCredentials,\n rangeChunkSize,\n disableRange,\n disableStream\n });\n }\n resolve(networkStream);\n });\n return Promise.all([workerIdPromise, networkStreamPromise]).then(function ([workerId, networkStream]) {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n const messageHandler = new _message_handler.MessageHandler(docId, workerId, worker.port);\n const transport = new WorkerTransport(messageHandler, task, networkStream, transportParams, transportFactory);\n task._transport = transport;\n messageHandler.send(\"Ready\", null);\n });\n }).catch(task._capability.reject);\n return task;\n}\nasync function _fetchDocument(worker, source) {\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n const workerId = await worker.messageHandler.sendWithPromise(\"GetDocRequest\", source, source.data ? [source.data.buffer] : null);\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n return workerId;\n}\nfunction getUrlProp(val) {\n if (val instanceof URL) {\n return val.href;\n }\n try {\n return new URL(val, window.location).href;\n } catch {\n if (_util.isNodeJS && typeof val === \"string\") {\n return val;\n }\n }\n throw new Error(\"Invalid PDF url data: \" + \"either string or URL-object is expected in the url property.\");\n}\nfunction getDataProp(val) {\n if (_util.isNodeJS && typeof Buffer !== \"undefined\" && val instanceof Buffer) {\n throw new Error(\"Please provide binary data as `Uint8Array`, rather than `Buffer`.\");\n }\n if (val instanceof Uint8Array && val.byteLength === val.buffer.byteLength) {\n return val;\n }\n if (typeof val === \"string\") {\n return (0, _util.stringToBytes)(val);\n }\n if (typeof val === \"object\" && !isNaN(val?.length) || (0, _util.isArrayBuffer)(val)) {\n return new Uint8Array(val);\n }\n throw new Error(\"Invalid PDF binary data: either TypedArray, \" + \"string, or array-like object is expected in the data property.\");\n}\nclass PDFDocumentLoadingTask {\n static #docId = 0;\n constructor() {\n this._capability = new _util.PromiseCapability();\n this._transport = null;\n this._worker = null;\n this.docId = `d${PDFDocumentLoadingTask.#docId++}`;\n this.destroyed = false;\n this.onPassword = null;\n this.onProgress = null;\n }\n get promise() {\n return this._capability.promise;\n }\n async destroy() {\n this.destroyed = true;\n try {\n if (this._worker?.port) {\n this._worker._pendingDestroy = true;\n }\n await this._transport?.destroy();\n } catch (ex) {\n if (this._worker?.port) {\n delete this._worker._pendingDestroy;\n }\n throw ex;\n }\n this._transport = null;\n if (this._worker) {\n this._worker.destroy();\n this._worker = null;\n }\n }\n}\nexports.PDFDocumentLoadingTask = PDFDocumentLoadingTask;\nclass PDFDataRangeTransport {\n constructor(length, initialData, progressiveDone = false, contentDispositionFilename = null) {\n this.length = length;\n this.initialData = initialData;\n this.progressiveDone = progressiveDone;\n this.contentDispositionFilename = contentDispositionFilename;\n this._rangeListeners = [];\n this._progressListeners = [];\n this._progressiveReadListeners = [];\n this._progressiveDoneListeners = [];\n this._readyCapability = new _util.PromiseCapability();\n }\n addRangeListener(listener) {\n this._rangeListeners.push(listener);\n }\n addProgressListener(listener) {\n this._progressListeners.push(listener);\n }\n addProgressiveReadListener(listener) {\n this._progressiveReadListeners.push(listener);\n }\n addProgressiveDoneListener(listener) {\n this._progressiveDoneListeners.push(listener);\n }\n onDataRange(begin, chunk) {\n for (const listener of this._rangeListeners) {\n listener(begin, chunk);\n }\n }\n onDataProgress(loaded, total) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressListeners) {\n listener(loaded, total);\n }\n });\n }\n onDataProgressiveRead(chunk) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveReadListeners) {\n listener(chunk);\n }\n });\n }\n onDataProgressiveDone() {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveDoneListeners) {\n listener();\n }\n });\n }\n transportReady() {\n this._readyCapability.resolve();\n }\n requestDataRange(begin, end) {\n (0, _util.unreachable)(\"Abstract method PDFDataRangeTransport.requestDataRange\");\n }\n abort() {}\n}\nexports.PDFDataRangeTransport = PDFDataRangeTransport;\nclass PDFDocumentProxy {\n constructor(pdfInfo, transport) {\n this._pdfInfo = pdfInfo;\n this._transport = transport;\n Object.defineProperty(this, \"getJavaScript\", {\n value: () => {\n (0, _display_utils.deprecated)(\"`PDFDocumentProxy.getJavaScript`, \" + \"please use `PDFDocumentProxy.getJSActions` instead.\");\n return this.getJSActions().then(js => {\n if (!js) {\n return js;\n }\n const jsArr = [];\n for (const name in js) {\n jsArr.push(...js[name]);\n }\n return jsArr;\n });\n }\n });\n }\n get annotationStorage() {\n return this._transport.annotationStorage;\n }\n get filterFactory() {\n return this._transport.filterFactory;\n }\n get numPages() {\n return this._pdfInfo.numPages;\n }\n get fingerprints() {\n return this._pdfInfo.fingerprints;\n }\n get isPureXfa() {\n return (0, _util.shadow)(this, \"isPureXfa\", !!this._transport._htmlForXfa);\n }\n get allXfaHtml() {\n return this._transport._htmlForXfa;\n }\n getPage(pageNumber) {\n return this._transport.getPage(pageNumber);\n }\n getPageIndex(ref) {\n return this._transport.getPageIndex(ref);\n }\n getDestinations() {\n return this._transport.getDestinations();\n }\n getDestination(id) {\n return this._transport.getDestination(id);\n }\n getPageLabels() {\n return this._transport.getPageLabels();\n }\n getPageLayout() {\n return this._transport.getPageLayout();\n }\n getPageMode() {\n return this._transport.getPageMode();\n }\n getViewerPreferences() {\n return this._transport.getViewerPreferences();\n }\n getOpenAction() {\n return this._transport.getOpenAction();\n }\n getAttachments() {\n return this._transport.getAttachments();\n }\n getJSActions() {\n return this._transport.getDocJSActions();\n }\n getOutline() {\n return this._transport.getOutline();\n }\n getOptionalContentConfig() {\n return this._transport.getOptionalContentConfig();\n }\n getPermissions() {\n return this._transport.getPermissions();\n }\n getMetadata() {\n return this._transport.getMetadata();\n }\n getMarkInfo() {\n return this._transport.getMarkInfo();\n }\n getData() {\n return this._transport.getData();\n }\n saveDocument() {\n return this._transport.saveDocument();\n }\n getDownloadInfo() {\n return this._transport.downloadInfoCapability.promise;\n }\n cleanup(keepLoadedFonts = false) {\n return this._transport.startCleanup(keepLoadedFonts || this.isPureXfa);\n }\n destroy() {\n return this.loadingTask.destroy();\n }\n get loadingParams() {\n return this._transport.loadingParams;\n }\n get loadingTask() {\n return this._transport.loadingTask;\n }\n getFieldObjects() {\n return this._transport.getFieldObjects();\n }\n hasJSActions() {\n return this._transport.hasJSActions();\n }\n getCalculationOrderIds() {\n return this._transport.getCalculationOrderIds();\n }\n}\nexports.PDFDocumentProxy = PDFDocumentProxy;\nclass PDFPageProxy {\n #delayedCleanupTimeout = null;\n #pendingCleanup = false;\n constructor(pageIndex, pageInfo, transport, pdfBug = false) {\n this._pageIndex = pageIndex;\n this._pageInfo = pageInfo;\n this._transport = transport;\n this._stats = pdfBug ? new _display_utils.StatTimer() : null;\n this._pdfBug = pdfBug;\n this.commonObjs = transport.commonObjs;\n this.objs = new PDFObjects();\n this._maybeCleanupAfterRender = false;\n this._intentStates = new Map();\n this.destroyed = false;\n }\n get pageNumber() {\n return this._pageIndex + 1;\n }\n get rotate() {\n return this._pageInfo.rotate;\n }\n get ref() {\n return this._pageInfo.ref;\n }\n get userUnit() {\n return this._pageInfo.userUnit;\n }\n get view() {\n return this._pageInfo.view;\n }\n getViewport({\n scale,\n rotation = this.rotate,\n offsetX = 0,\n offsetY = 0,\n dontFlip = false\n } = {}) {\n return new _display_utils.PageViewport({\n viewBox: this.view,\n scale,\n rotation,\n offsetX,\n offsetY,\n dontFlip\n });\n }\n getAnnotations({\n intent = \"display\"\n } = {}) {\n const intentArgs = this._transport.getRenderingIntent(intent);\n return this._transport.getAnnotations(this._pageIndex, intentArgs.renderingIntent);\n }\n getJSActions() {\n return this._transport.getPageJSActions(this._pageIndex);\n }\n get filterFactory() {\n return this._transport.filterFactory;\n }\n get isPureXfa() {\n return (0, _util.shadow)(this, \"isPureXfa\", !!this._transport._htmlForXfa);\n }\n async getXfa() {\n return this._transport._htmlForXfa?.children[this._pageIndex] || null;\n }\n render({\n canvasContext,\n viewport,\n intent = \"display\",\n annotationMode = _util.AnnotationMode.ENABLE,\n transform = null,\n background = null,\n optionalContentConfigPromise = null,\n annotationCanvasMap = null,\n pageColors = null,\n printAnnotationStorage = null\n }) {\n this._stats?.time(\"Overall\");\n const intentArgs = this._transport.getRenderingIntent(intent, annotationMode, printAnnotationStorage);\n this.#pendingCleanup = false;\n this.#abortDelayedCleanup();\n if (!optionalContentConfigPromise) {\n optionalContentConfigPromise = this._transport.getOptionalContentConfig();\n }\n let intentState = this._intentStates.get(intentArgs.cacheKey);\n if (!intentState) {\n intentState = Object.create(null);\n this._intentStates.set(intentArgs.cacheKey, intentState);\n }\n if (intentState.streamReaderCancelTimeout) {\n clearTimeout(intentState.streamReaderCancelTimeout);\n intentState.streamReaderCancelTimeout = null;\n }\n const intentPrint = !!(intentArgs.renderingIntent & _util.RenderingIntentFlag.PRINT);\n if (!intentState.displayReadyCapability) {\n intentState.displayReadyCapability = new _util.PromiseCapability();\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n separateAnnots: null\n };\n this._stats?.time(\"Page Request\");\n this._pumpOperatorList(intentArgs);\n }\n const complete = error => {\n intentState.renderTasks.delete(internalRenderTask);\n if (this._maybeCleanupAfterRender || intentPrint) {\n this.#pendingCleanup = true;\n }\n this.#tryCleanup(!intentPrint);\n if (error) {\n internalRenderTask.capability.reject(error);\n this._abortOperatorList({\n intentState,\n reason: error instanceof Error ? error : new Error(error)\n });\n } else {\n internalRenderTask.capability.resolve();\n }\n this._stats?.timeEnd(\"Rendering\");\n this._stats?.timeEnd(\"Overall\");\n };\n const internalRenderTask = new InternalRenderTask({\n callback: complete,\n params: {\n canvasContext,\n viewport,\n transform,\n background\n },\n objs: this.objs,\n commonObjs: this.commonObjs,\n annotationCanvasMap,\n operatorList: intentState.operatorList,\n pageIndex: this._pageIndex,\n canvasFactory: this._transport.canvasFactory,\n filterFactory: this._transport.filterFactory,\n useRequestAnimationFrame: !intentPrint,\n pdfBug: this._pdfBug,\n pageColors\n });\n (intentState.renderTasks ||= new Set()).add(internalRenderTask);\n const renderTask = internalRenderTask.task;\n Promise.all([intentState.displayReadyCapability.promise, optionalContentConfigPromise]).then(([transparency, optionalContentConfig]) => {\n if (this.destroyed) {\n complete();\n return;\n }\n this._stats?.time(\"Rendering\");\n internalRenderTask.initializeGraphics({\n transparency,\n optionalContentConfig\n });\n internalRenderTask.operatorListChanged();\n }).catch(complete);\n return renderTask;\n }\n getOperatorList({\n intent = \"display\",\n annotationMode = _util.AnnotationMode.ENABLE,\n printAnnotationStorage = null\n } = {}) {\n function operatorListChanged() {\n if (intentState.operatorList.lastChunk) {\n intentState.opListReadCapability.resolve(intentState.operatorList);\n intentState.renderTasks.delete(opListTask);\n }\n }\n const intentArgs = this._transport.getRenderingIntent(intent, annotationMode, printAnnotationStorage, true);\n let intentState = this._intentStates.get(intentArgs.cacheKey);\n if (!intentState) {\n intentState = Object.create(null);\n this._intentStates.set(intentArgs.cacheKey, intentState);\n }\n let opListTask;\n if (!intentState.opListReadCapability) {\n opListTask = Object.create(null);\n opListTask.operatorListChanged = operatorListChanged;\n intentState.opListReadCapability = new _util.PromiseCapability();\n (intentState.renderTasks ||= new Set()).add(opListTask);\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n separateAnnots: null\n };\n this._stats?.time(\"Page Request\");\n this._pumpOperatorList(intentArgs);\n }\n return intentState.opListReadCapability.promise;\n }\n streamTextContent({\n includeMarkedContent = false,\n disableNormalization = false\n } = {}) {\n const TEXT_CONTENT_CHUNK_SIZE = 100;\n return this._transport.messageHandler.sendWithStream(\"GetTextContent\", {\n pageIndex: this._pageIndex,\n includeMarkedContent: includeMarkedContent === true,\n disableNormalization: disableNormalization === true\n }, {\n highWaterMark: TEXT_CONTENT_CHUNK_SIZE,\n size(textContent) {\n return textContent.items.length;\n }\n });\n }\n getTextContent(params = {}) {\n if (this._transport._htmlForXfa) {\n return this.getXfa().then(xfa => {\n return _xfa_text.XfaText.textContent(xfa);\n });\n }\n const readableStream = this.streamTextContent(params);\n return new Promise(function (resolve, reject) {\n function pump() {\n reader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n resolve(textContent);\n return;\n }\n Object.assign(textContent.styles, value.styles);\n textContent.items.push(...value.items);\n pump();\n }, reject);\n }\n const reader = readableStream.getReader();\n const textContent = {\n items: [],\n styles: Object.create(null)\n };\n pump();\n });\n }\n getStructTree() {\n return this._transport.getStructTree(this._pageIndex);\n }\n _destroy() {\n this.destroyed = true;\n const waitOn = [];\n for (const intentState of this._intentStates.values()) {\n this._abortOperatorList({\n intentState,\n reason: new Error(\"Page was destroyed.\"),\n force: true\n });\n if (intentState.opListReadCapability) {\n continue;\n }\n for (const internalRenderTask of intentState.renderTasks) {\n waitOn.push(internalRenderTask.completed);\n internalRenderTask.cancel();\n }\n }\n this.objs.clear();\n this.#pendingCleanup = false;\n this.#abortDelayedCleanup();\n return Promise.all(waitOn);\n }\n cleanup(resetStats = false) {\n this.#pendingCleanup = true;\n const success = this.#tryCleanup(false);\n if (resetStats && success) {\n this._stats &&= new _display_utils.StatTimer();\n }\n return success;\n }\n #tryCleanup(delayed = false) {\n this.#abortDelayedCleanup();\n if (!this.#pendingCleanup || this.destroyed) {\n return false;\n }\n if (delayed) {\n this.#delayedCleanupTimeout = setTimeout(() => {\n this.#delayedCleanupTimeout = null;\n this.#tryCleanup(false);\n }, DELAYED_CLEANUP_TIMEOUT);\n return false;\n }\n for (const {\n renderTasks,\n operatorList\n } of this._intentStates.values()) {\n if (renderTasks.size > 0 || !operatorList.lastChunk) {\n return false;\n }\n }\n this._intentStates.clear();\n this.objs.clear();\n this.#pendingCleanup = false;\n return true;\n }\n #abortDelayedCleanup() {\n if (this.#delayedCleanupTimeout) {\n clearTimeout(this.#delayedCleanupTimeout);\n this.#delayedCleanupTimeout = null;\n }\n }\n _startRenderPage(transparency, cacheKey) {\n const intentState = this._intentStates.get(cacheKey);\n if (!intentState) {\n return;\n }\n this._stats?.timeEnd(\"Page Request\");\n intentState.displayReadyCapability?.resolve(transparency);\n }\n _renderPageChunk(operatorListChunk, intentState) {\n for (let i = 0, ii = operatorListChunk.length; i < ii; i++) {\n intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);\n intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]);\n }\n intentState.operatorList.lastChunk = operatorListChunk.lastChunk;\n intentState.operatorList.separateAnnots = operatorListChunk.separateAnnots;\n for (const internalRenderTask of intentState.renderTasks) {\n internalRenderTask.operatorListChanged();\n }\n if (operatorListChunk.lastChunk) {\n this.#tryCleanup(true);\n }\n }\n _pumpOperatorList({\n renderingIntent,\n cacheKey,\n annotationStorageSerializable\n }) {\n const {\n map,\n transfers\n } = annotationStorageSerializable;\n const readableStream = this._transport.messageHandler.sendWithStream(\"GetOperatorList\", {\n pageIndex: this._pageIndex,\n intent: renderingIntent,\n cacheKey,\n annotationStorage: map\n }, transfers);\n const reader = readableStream.getReader();\n const intentState = this._intentStates.get(cacheKey);\n intentState.streamReader = reader;\n const pump = () => {\n reader.read().then(({\n value,\n done\n }) => {\n if (done) {\n intentState.streamReader = null;\n return;\n }\n if (this._transport.destroyed) {\n return;\n }\n this._renderPageChunk(value, intentState);\n pump();\n }, reason => {\n intentState.streamReader = null;\n if (this._transport.destroyed) {\n return;\n }\n if (intentState.operatorList) {\n intentState.operatorList.lastChunk = true;\n for (const internalRenderTask of intentState.renderTasks) {\n internalRenderTask.operatorListChanged();\n }\n this.#tryCleanup(true);\n }\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.reject(reason);\n } else if (intentState.opListReadCapability) {\n intentState.opListReadCapability.reject(reason);\n } else {\n throw reason;\n }\n });\n };\n pump();\n }\n _abortOperatorList({\n intentState,\n reason,\n force = false\n }) {\n if (!intentState.streamReader) {\n return;\n }\n if (intentState.streamReaderCancelTimeout) {\n clearTimeout(intentState.streamReaderCancelTimeout);\n intentState.streamReaderCancelTimeout = null;\n }\n if (!force) {\n if (intentState.renderTasks.size > 0) {\n return;\n }\n if (reason instanceof _display_utils.RenderingCancelledException) {\n let delay = RENDERING_CANCELLED_TIMEOUT;\n if (reason.extraDelay > 0 && reason.extraDelay < 1000) {\n delay += reason.extraDelay;\n }\n intentState.streamReaderCancelTimeout = setTimeout(() => {\n intentState.streamReaderCancelTimeout = null;\n this._abortOperatorList({\n intentState,\n reason,\n force: true\n });\n }, delay);\n return;\n }\n }\n intentState.streamReader.cancel(new _util.AbortException(reason.message)).catch(() => {});\n intentState.streamReader = null;\n if (this._transport.destroyed) {\n return;\n }\n for (const [curCacheKey, curIntentState] of this._intentStates) {\n if (curIntentState === intentState) {\n this._intentStates.delete(curCacheKey);\n break;\n }\n }\n this.cleanup();\n }\n get stats() {\n return this._stats;\n }\n}\nexports.PDFPageProxy = PDFPageProxy;\nclass LoopbackPort {\n #listeners = new Set();\n #deferred = Promise.resolve();\n postMessage(obj, transfer) {\n const event = {\n data: structuredClone(obj, transfer ? {\n transfer\n } : null)\n };\n this.#deferred.then(() => {\n for (const listener of this.#listeners) {\n listener.call(this, event);\n }\n });\n }\n addEventListener(name, listener) {\n this.#listeners.add(listener);\n }\n removeEventListener(name, listener) {\n this.#listeners.delete(listener);\n }\n terminate() {\n this.#listeners.clear();\n }\n}\nexports.LoopbackPort = LoopbackPort;\nconst PDFWorkerUtil = {\n isWorkerDisabled: false,\n fallbackWorkerSrc: null,\n fakeWorkerId: 0\n};\nexports.PDFWorkerUtil = PDFWorkerUtil;\n{\n if (_util.isNodeJS && typeof require === \"function\") {\n PDFWorkerUtil.isWorkerDisabled = true;\n PDFWorkerUtil.fallbackWorkerSrc = \"./pdf.worker.js\";\n } else if (typeof document === \"object\") {\n const pdfjsFilePath = document?.currentScript?.src;\n if (pdfjsFilePath) {\n PDFWorkerUtil.fallbackWorkerSrc = pdfjsFilePath.replace(/(\\.(?:min\\.)?js)(\\?.*)?$/i, \".worker$1$2\");\n }\n }\n PDFWorkerUtil.isSameOrigin = function (baseUrl, otherUrl) {\n let base;\n try {\n base = new URL(baseUrl);\n if (!base.origin || base.origin === \"null\") {\n return false;\n }\n } catch {\n return false;\n }\n const other = new URL(otherUrl, base);\n return base.origin === other.origin;\n };\n PDFWorkerUtil.createCDNWrapper = function (url) {\n const wrapper = `importScripts(\"${url}\");`;\n return URL.createObjectURL(new Blob([wrapper]));\n };\n}\nclass PDFWorker {\n static #workerPorts;\n constructor({\n name = null,\n port = null,\n verbosity = (0, _util.getVerbosityLevel)()\n } = {}) {\n this.name = name;\n this.destroyed = false;\n this.verbosity = verbosity;\n this._readyCapability = new _util.PromiseCapability();\n this._port = null;\n this._webWorker = null;\n this._messageHandler = null;\n if (port) {\n if (PDFWorker.#workerPorts?.has(port)) {\n throw new Error(\"Cannot use more than one PDFWorker per port.\");\n }\n (PDFWorker.#workerPorts ||= new WeakMap()).set(port, this);\n this._initializeFromPort(port);\n return;\n }\n this._initialize();\n }\n get promise() {\n return this._readyCapability.promise;\n }\n get port() {\n return this._port;\n }\n get messageHandler() {\n return this._messageHandler;\n }\n _initializeFromPort(port) {\n this._port = port;\n this._messageHandler = new _message_handler.MessageHandler(\"main\", \"worker\", port);\n this._messageHandler.on(\"ready\", function () {});\n this._readyCapability.resolve();\n this._messageHandler.send(\"configure\", {\n verbosity: this.verbosity\n });\n }\n _initialize() {\n if (!PDFWorkerUtil.isWorkerDisabled && !PDFWorker._mainThreadWorkerMessageHandler) {\n let {\n workerSrc\n } = PDFWorker;\n try {\n if (!PDFWorkerUtil.isSameOrigin(window.location.href, workerSrc)) {\n workerSrc = PDFWorkerUtil.createCDNWrapper(new URL(workerSrc, window.location).href);\n }\n const worker = new Worker(workerSrc);\n const messageHandler = new _message_handler.MessageHandler(\"main\", \"worker\", worker);\n const terminateEarly = () => {\n worker.removeEventListener(\"error\", onWorkerError);\n messageHandler.destroy();\n worker.terminate();\n if (this.destroyed) {\n this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n } else {\n this._setupFakeWorker();\n }\n };\n const onWorkerError = () => {\n if (!this._webWorker) {\n terminateEarly();\n }\n };\n worker.addEventListener(\"error\", onWorkerError);\n messageHandler.on(\"test\", data => {\n worker.removeEventListener(\"error\", onWorkerError);\n if (this.destroyed) {\n terminateEarly();\n return;\n }\n if (data) {\n this._messageHandler = messageHandler;\n this._port = worker;\n this._webWorker = worker;\n this._readyCapability.resolve();\n messageHandler.send(\"configure\", {\n verbosity: this.verbosity\n });\n } else {\n this._setupFakeWorker();\n messageHandler.destroy();\n worker.terminate();\n }\n });\n messageHandler.on(\"ready\", data => {\n worker.removeEventListener(\"error\", onWorkerError);\n if (this.destroyed) {\n terminateEarly();\n return;\n }\n try {\n sendTest();\n } catch {\n this._setupFakeWorker();\n }\n });\n const sendTest = () => {\n const testObj = new Uint8Array();\n messageHandler.send(\"test\", testObj, [testObj.buffer]);\n };\n sendTest();\n return;\n } catch {\n (0, _util.info)(\"The worker has been disabled.\");\n }\n }\n this._setupFakeWorker();\n }\n _setupFakeWorker() {\n if (!PDFWorkerUtil.isWorkerDisabled) {\n (0, _util.warn)(\"Setting up fake worker.\");\n PDFWorkerUtil.isWorkerDisabled = true;\n }\n PDFWorker._setupFakeWorkerGlobal.then(WorkerMessageHandler => {\n if (this.destroyed) {\n this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n return;\n }\n const port = new LoopbackPort();\n this._port = port;\n const id = `fake${PDFWorkerUtil.fakeWorkerId++}`;\n const workerHandler = new _message_handler.MessageHandler(id + \"_worker\", id, port);\n WorkerMessageHandler.setup(workerHandler, port);\n const messageHandler = new _message_handler.MessageHandler(id, id + \"_worker\", port);\n this._messageHandler = messageHandler;\n this._readyCapability.resolve();\n messageHandler.send(\"configure\", {\n verbosity: this.verbosity\n });\n }).catch(reason => {\n this._readyCapability.reject(new Error(`Setting up fake worker failed: \"${reason.message}\".`));\n });\n }\n destroy() {\n this.destroyed = true;\n if (this._webWorker) {\n this._webWorker.terminate();\n this._webWorker = null;\n }\n PDFWorker.#workerPorts?.delete(this._port);\n this._port = null;\n if (this._messageHandler) {\n this._messageHandler.destroy();\n this._messageHandler = null;\n }\n }\n static fromPort(params) {\n if (!params?.port) {\n throw new Error(\"PDFWorker.fromPort - invalid method signature.\");\n }\n const cachedPort = this.#workerPorts?.get(params.port);\n if (cachedPort) {\n if (cachedPort._pendingDestroy) {\n throw new Error(\"PDFWorker.fromPort - the worker is being destroyed.\\n\" + \"Please remember to await `PDFDocumentLoadingTask.destroy()`-calls.\");\n }\n return cachedPort;\n }\n return new PDFWorker(params);\n }\n static get workerSrc() {\n if (_worker_options.GlobalWorkerOptions.workerSrc) {\n return _worker_options.GlobalWorkerOptions.workerSrc;\n }\n if (PDFWorkerUtil.fallbackWorkerSrc !== null) {\n if (!_util.isNodeJS) {\n (0, _display_utils.deprecated)('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n return PDFWorkerUtil.fallbackWorkerSrc;\n }\n throw new Error('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n static get _mainThreadWorkerMessageHandler() {\n try {\n return globalThis.pdfjsWorker?.WorkerMessageHandler || null;\n } catch {\n return null;\n }\n }\n static get _setupFakeWorkerGlobal() {\n const loader = async () => {\n const mainWorkerMessageHandler = this._mainThreadWorkerMessageHandler;\n if (mainWorkerMessageHandler) {\n return mainWorkerMessageHandler;\n }\n if (_util.isNodeJS && typeof require === \"function\") {\n const worker = eval(\"require\")(this.workerSrc);\n return worker.WorkerMessageHandler;\n }\n await (0, _display_utils.loadScript)(this.workerSrc);\n return window.pdfjsWorker.WorkerMessageHandler;\n };\n return (0, _util.shadow)(this, \"_setupFakeWorkerGlobal\", loader());\n }\n}\nexports.PDFWorker = PDFWorker;\nclass WorkerTransport {\n #methodPromises = new Map();\n #pageCache = new Map();\n #pagePromises = new Map();\n #passwordCapability = null;\n constructor(messageHandler, loadingTask, networkStream, params, factory) {\n this.messageHandler = messageHandler;\n this.loadingTask = loadingTask;\n this.commonObjs = new PDFObjects();\n this.fontLoader = new _font_loader.FontLoader({\n ownerDocument: params.ownerDocument,\n styleElement: params.styleElement\n });\n this._params = params;\n this.canvasFactory = factory.canvasFactory;\n this.filterFactory = factory.filterFactory;\n this.cMapReaderFactory = factory.cMapReaderFactory;\n this.standardFontDataFactory = factory.standardFontDataFactory;\n this.destroyed = false;\n this.destroyCapability = null;\n this._networkStream = networkStream;\n this._fullReader = null;\n this._lastProgress = null;\n this.downloadInfoCapability = new _util.PromiseCapability();\n this.setupMessageHandler();\n }\n #cacheSimpleMethod(name, data = null) {\n const cachedPromise = this.#methodPromises.get(name);\n if (cachedPromise) {\n return cachedPromise;\n }\n const promise = this.messageHandler.sendWithPromise(name, data);\n this.#methodPromises.set(name, promise);\n return promise;\n }\n get annotationStorage() {\n return (0, _util.shadow)(this, \"annotationStorage\", new _annotation_storage.AnnotationStorage());\n }\n getRenderingIntent(intent, annotationMode = _util.AnnotationMode.ENABLE, printAnnotationStorage = null, isOpList = false) {\n let renderingIntent = _util.RenderingIntentFlag.DISPLAY;\n let annotationStorageSerializable = _annotation_storage.SerializableEmpty;\n switch (intent) {\n case \"any\":\n renderingIntent = _util.RenderingIntentFlag.ANY;\n break;\n case \"display\":\n break;\n case \"print\":\n renderingIntent = _util.RenderingIntentFlag.PRINT;\n break;\n default:\n (0, _util.warn)(`getRenderingIntent - invalid intent: ${intent}`);\n }\n switch (annotationMode) {\n case _util.AnnotationMode.DISABLE:\n renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_DISABLE;\n break;\n case _util.AnnotationMode.ENABLE:\n break;\n case _util.AnnotationMode.ENABLE_FORMS:\n renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_FORMS;\n break;\n case _util.AnnotationMode.ENABLE_STORAGE:\n renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_STORAGE;\n const annotationStorage = renderingIntent & _util.RenderingIntentFlag.PRINT && printAnnotationStorage instanceof _annotation_storage.PrintAnnotationStorage ? printAnnotationStorage : this.annotationStorage;\n annotationStorageSerializable = annotationStorage.serializable;\n break;\n default:\n (0, _util.warn)(`getRenderingIntent - invalid annotationMode: ${annotationMode}`);\n }\n if (isOpList) {\n renderingIntent += _util.RenderingIntentFlag.OPLIST;\n }\n return {\n renderingIntent,\n cacheKey: `${renderingIntent}_${annotationStorageSerializable.hash}`,\n annotationStorageSerializable\n };\n }\n destroy() {\n if (this.destroyCapability) {\n return this.destroyCapability.promise;\n }\n this.destroyed = true;\n this.destroyCapability = new _util.PromiseCapability();\n this.#passwordCapability?.reject(new Error(\"Worker was destroyed during onPassword callback\"));\n const waitOn = [];\n for (const page of this.#pageCache.values()) {\n waitOn.push(page._destroy());\n }\n this.#pageCache.clear();\n this.#pagePromises.clear();\n if (this.hasOwnProperty(\"annotationStorage\")) {\n this.annotationStorage.resetModified();\n }\n const terminated = this.messageHandler.sendWithPromise(\"Terminate\", null);\n waitOn.push(terminated);\n Promise.all(waitOn).then(() => {\n this.commonObjs.clear();\n this.fontLoader.clear();\n this.#methodPromises.clear();\n this.filterFactory.destroy();\n this._networkStream?.cancelAllRequests(new _util.AbortException(\"Worker was terminated.\"));\n if (this.messageHandler) {\n this.messageHandler.destroy();\n this.messageHandler = null;\n }\n this.destroyCapability.resolve();\n }, this.destroyCapability.reject);\n return this.destroyCapability.promise;\n }\n setupMessageHandler() {\n const {\n messageHandler,\n loadingTask\n } = this;\n messageHandler.on(\"GetReader\", (data, sink) => {\n (0, _util.assert)(this._networkStream, \"GetReader - no `IPDFStream` instance available.\");\n this._fullReader = this._networkStream.getFullReader();\n this._fullReader.onProgress = evt => {\n this._lastProgress = {\n loaded: evt.loaded,\n total: evt.total\n };\n };\n sink.onPull = () => {\n this._fullReader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n sink.close();\n return;\n }\n (0, _util.assert)(value instanceof ArrayBuffer, \"GetReader - expected an ArrayBuffer.\");\n sink.enqueue(new Uint8Array(value), 1, [value]);\n }).catch(reason => {\n sink.error(reason);\n });\n };\n sink.onCancel = reason => {\n this._fullReader.cancel(reason);\n sink.ready.catch(readyReason => {\n if (this.destroyed) {\n return;\n }\n throw readyReason;\n });\n };\n });\n messageHandler.on(\"ReaderHeadersReady\", data => {\n const headersCapability = new _util.PromiseCapability();\n const fullReader = this._fullReader;\n fullReader.headersReady.then(() => {\n if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) {\n if (this._lastProgress) {\n loadingTask.onProgress?.(this._lastProgress);\n }\n fullReader.onProgress = evt => {\n loadingTask.onProgress?.({\n loaded: evt.loaded,\n total: evt.total\n });\n };\n }\n headersCapability.resolve({\n isStreamingSupported: fullReader.isStreamingSupported,\n isRangeSupported: fullReader.isRangeSupported,\n contentLength: fullReader.contentLength\n });\n }, headersCapability.reject);\n return headersCapability.promise;\n });\n messageHandler.on(\"GetRangeReader\", (data, sink) => {\n (0, _util.assert)(this._networkStream, \"GetRangeReader - no `IPDFStream` instance available.\");\n const rangeReader = this._networkStream.getRangeReader(data.begin, data.end);\n if (!rangeReader) {\n sink.close();\n return;\n }\n sink.onPull = () => {\n rangeReader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n sink.close();\n return;\n }\n (0, _util.assert)(value instanceof ArrayBuffer, \"GetRangeReader - expected an ArrayBuffer.\");\n sink.enqueue(new Uint8Array(value), 1, [value]);\n }).catch(reason => {\n sink.error(reason);\n });\n };\n sink.onCancel = reason => {\n rangeReader.cancel(reason);\n sink.ready.catch(readyReason => {\n if (this.destroyed) {\n return;\n }\n throw readyReason;\n });\n };\n });\n messageHandler.on(\"GetDoc\", ({\n pdfInfo\n }) => {\n this._numPages = pdfInfo.numPages;\n this._htmlForXfa = pdfInfo.htmlForXfa;\n delete pdfInfo.htmlForXfa;\n loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, this));\n });\n messageHandler.on(\"DocException\", function (ex) {\n let reason;\n switch (ex.name) {\n case \"PasswordException\":\n reason = new _util.PasswordException(ex.message, ex.code);\n break;\n case \"InvalidPDFException\":\n reason = new _util.InvalidPDFException(ex.message);\n break;\n case \"MissingPDFException\":\n reason = new _util.MissingPDFException(ex.message);\n break;\n case \"UnexpectedResponseException\":\n reason = new _util.UnexpectedResponseException(ex.message, ex.status);\n break;\n case \"UnknownErrorException\":\n reason = new _util.UnknownErrorException(ex.message, ex.details);\n break;\n default:\n (0, _util.unreachable)(\"DocException - expected a valid Error.\");\n }\n loadingTask._capability.reject(reason);\n });\n messageHandler.on(\"PasswordRequest\", exception => {\n this.#passwordCapability = new _util.PromiseCapability();\n if (loadingTask.onPassword) {\n const updatePassword = password => {\n if (password instanceof Error) {\n this.#passwordCapability.reject(password);\n } else {\n this.#passwordCapability.resolve({\n password\n });\n }\n };\n try {\n loadingTask.onPassword(updatePassword, exception.code);\n } catch (ex) {\n this.#passwordCapability.reject(ex);\n }\n } else {\n this.#passwordCapability.reject(new _util.PasswordException(exception.message, exception.code));\n }\n return this.#passwordCapability.promise;\n });\n messageHandler.on(\"DataLoaded\", data => {\n loadingTask.onProgress?.({\n loaded: data.length,\n total: data.length\n });\n this.downloadInfoCapability.resolve(data);\n });\n messageHandler.on(\"StartRenderPage\", data => {\n if (this.destroyed) {\n return;\n }\n const page = this.#pageCache.get(data.pageIndex);\n page._startRenderPage(data.transparency, data.cacheKey);\n });\n messageHandler.on(\"commonobj\", ([id, type, exportedData]) => {\n if (this.destroyed) {\n return;\n }\n if (this.commonObjs.has(id)) {\n return;\n }\n switch (type) {\n case \"Font\":\n const params = this._params;\n if (\"error\" in exportedData) {\n const exportedError = exportedData.error;\n (0, _util.warn)(`Error during font loading: ${exportedError}`);\n this.commonObjs.resolve(id, exportedError);\n break;\n }\n const inspectFont = params.pdfBug && globalThis.FontInspector?.enabled ? (font, url) => globalThis.FontInspector.fontAdded(font, url) : null;\n const font = new _font_loader.FontFaceObject(exportedData, {\n isEvalSupported: params.isEvalSupported,\n disableFontFace: params.disableFontFace,\n ignoreErrors: params.ignoreErrors,\n inspectFont\n });\n this.fontLoader.bind(font).catch(reason => {\n return messageHandler.sendWithPromise(\"FontFallback\", {\n id\n });\n }).finally(() => {\n if (!params.fontExtraProperties && font.data) {\n font.data = null;\n }\n this.commonObjs.resolve(id, font);\n });\n break;\n case \"FontPath\":\n case \"Image\":\n case \"Pattern\":\n this.commonObjs.resolve(id, exportedData);\n break;\n default:\n throw new Error(`Got unknown common object type ${type}`);\n }\n });\n messageHandler.on(\"obj\", ([id, pageIndex, type, imageData]) => {\n if (this.destroyed) {\n return;\n }\n const pageProxy = this.#pageCache.get(pageIndex);\n if (pageProxy.objs.has(id)) {\n return;\n }\n switch (type) {\n case \"Image\":\n pageProxy.objs.resolve(id, imageData);\n if (imageData) {\n let length;\n if (imageData.bitmap) {\n const {\n width,\n height\n } = imageData;\n length = width * height * 4;\n } else {\n length = imageData.data?.length || 0;\n }\n if (length > _util.MAX_IMAGE_SIZE_TO_CACHE) {\n pageProxy._maybeCleanupAfterRender = true;\n }\n }\n break;\n case \"Pattern\":\n pageProxy.objs.resolve(id, imageData);\n break;\n default:\n throw new Error(`Got unknown object type ${type}`);\n }\n });\n messageHandler.on(\"DocProgress\", data => {\n if (this.destroyed) {\n return;\n }\n loadingTask.onProgress?.({\n loaded: data.loaded,\n total: data.total\n });\n });\n messageHandler.on(\"FetchBuiltInCMap\", data => {\n if (this.destroyed) {\n return Promise.reject(new Error(\"Worker was destroyed.\"));\n }\n if (!this.cMapReaderFactory) {\n return Promise.reject(new Error(\"CMapReaderFactory not initialized, see the `useWorkerFetch` parameter.\"));\n }\n return this.cMapReaderFactory.fetch(data);\n });\n messageHandler.on(\"FetchStandardFontData\", data => {\n if (this.destroyed) {\n return Promise.reject(new Error(\"Worker was destroyed.\"));\n }\n if (!this.standardFontDataFactory) {\n return Promise.reject(new Error(\"StandardFontDataFactory not initialized, see the `useWorkerFetch` parameter.\"));\n }\n return this.standardFontDataFactory.fetch(data);\n });\n }\n getData() {\n return this.messageHandler.sendWithPromise(\"GetData\", null);\n }\n saveDocument() {\n if (this.annotationStorage.size <= 0) {\n (0, _util.warn)(\"saveDocument called while `annotationStorage` is empty, \" + \"please use the getData-method instead.\");\n }\n const {\n map,\n transfers\n } = this.annotationStorage.serializable;\n return this.messageHandler.sendWithPromise(\"SaveDocument\", {\n isPureXfa: !!this._htmlForXfa,\n numPages: this._numPages,\n annotationStorage: map,\n filename: this._fullReader?.filename ?? null\n }, transfers).finally(() => {\n this.annotationStorage.resetModified();\n });\n }\n getPage(pageNumber) {\n if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this._numPages) {\n return Promise.reject(new Error(\"Invalid page request.\"));\n }\n const pageIndex = pageNumber - 1,\n cachedPromise = this.#pagePromises.get(pageIndex);\n if (cachedPromise) {\n return cachedPromise;\n }\n const promise = this.messageHandler.sendWithPromise(\"GetPage\", {\n pageIndex\n }).then(pageInfo => {\n if (this.destroyed) {\n throw new Error(\"Transport destroyed\");\n }\n const page = new PDFPageProxy(pageIndex, pageInfo, this, this._params.pdfBug);\n this.#pageCache.set(pageIndex, page);\n return page;\n });\n this.#pagePromises.set(pageIndex, promise);\n return promise;\n }\n getPageIndex(ref) {\n if (typeof ref !== \"object\" || ref === null || !Number.isInteger(ref.num) || ref.num < 0 || !Number.isInteger(ref.gen) || ref.gen < 0) {\n return Promise.reject(new Error(\"Invalid pageIndex request.\"));\n }\n return this.messageHandler.sendWithPromise(\"GetPageIndex\", {\n num: ref.num,\n gen: ref.gen\n });\n }\n getAnnotations(pageIndex, intent) {\n return this.messageHandler.sendWithPromise(\"GetAnnotations\", {\n pageIndex,\n intent\n });\n }\n getFieldObjects() {\n return this.#cacheSimpleMethod(\"GetFieldObjects\");\n }\n hasJSActions() {\n return this.#cacheSimpleMethod(\"HasJSActions\");\n }\n getCalculationOrderIds() {\n return this.messageHandler.sendWithPromise(\"GetCalculationOrderIds\", null);\n }\n getDestinations() {\n return this.messageHandler.sendWithPromise(\"GetDestinations\", null);\n }\n getDestination(id) {\n if (typeof id !== \"string\") {\n return Promise.reject(new Error(\"Invalid destination request.\"));\n }\n return this.messageHandler.sendWithPromise(\"GetDestination\", {\n id\n });\n }\n getPageLabels() {\n return this.messageHandler.sendWithPromise(\"GetPageLabels\", null);\n }\n getPageLayout() {\n return this.messageHandler.sendWithPromise(\"GetPageLayout\", null);\n }\n getPageMode() {\n return this.messageHandler.sendWithPromise(\"GetPageMode\", null);\n }\n getViewerPreferences() {\n return this.messageHandler.sendWithPromise(\"GetViewerPreferences\", null);\n }\n getOpenAction() {\n return this.messageHandler.sendWithPromise(\"GetOpenAction\", null);\n }\n getAttachments() {\n return this.messageHandler.sendWithPromise(\"GetAttachments\", null);\n }\n getDocJSActions() {\n return this.#cacheSimpleMethod(\"GetDocJSActions\");\n }\n getPageJSActions(pageIndex) {\n return this.messageHandler.sendWithPromise(\"GetPageJSActions\", {\n pageIndex\n });\n }\n getStructTree(pageIndex) {\n return this.messageHandler.sendWithPromise(\"GetStructTree\", {\n pageIndex\n });\n }\n getOutline() {\n return this.messageHandler.sendWithPromise(\"GetOutline\", null);\n }\n getOptionalContentConfig() {\n return this.messageHandler.sendWithPromise(\"GetOptionalContentConfig\", null).then(results => {\n return new _optional_content_config.OptionalContentConfig(results);\n });\n }\n getPermissions() {\n return this.messageHandler.sendWithPromise(\"GetPermissions\", null);\n }\n getMetadata() {\n const name = \"GetMetadata\",\n cachedPromise = this.#methodPromises.get(name);\n if (cachedPromise) {\n return cachedPromise;\n }\n const promise = this.messageHandler.sendWithPromise(name, null).then(results => {\n return {\n info: results[0],\n metadata: results[1] ? new _metadata.Metadata(results[1]) : null,\n contentDispositionFilename: this._fullReader?.filename ?? null,\n contentLength: this._fullReader?.contentLength ?? null\n };\n });\n this.#methodPromises.set(name, promise);\n return promise;\n }\n getMarkInfo() {\n return this.messageHandler.sendWithPromise(\"GetMarkInfo\", null);\n }\n async startCleanup(keepLoadedFonts = false) {\n if (this.destroyed) {\n return;\n }\n await this.messageHandler.sendWithPromise(\"Cleanup\", null);\n for (const page of this.#pageCache.values()) {\n const cleanupSuccessful = page.cleanup();\n if (!cleanupSuccessful) {\n throw new Error(`startCleanup: Page ${page.pageNumber} is currently rendering.`);\n }\n }\n this.commonObjs.clear();\n if (!keepLoadedFonts) {\n this.fontLoader.clear();\n }\n this.#methodPromises.clear();\n this.filterFactory.destroy(true);\n }\n get loadingParams() {\n const {\n disableAutoFetch,\n enableXfa\n } = this._params;\n return (0, _util.shadow)(this, \"loadingParams\", {\n disableAutoFetch,\n enableXfa\n });\n }\n}\nclass PDFObjects {\n #objs = Object.create(null);\n #ensureObj(objId) {\n return this.#objs[objId] ||= {\n capability: new _util.PromiseCapability(),\n data: null\n };\n }\n get(objId, callback = null) {\n if (callback) {\n const obj = this.#ensureObj(objId);\n obj.capability.promise.then(() => callback(obj.data));\n return null;\n }\n const obj = this.#objs[objId];\n if (!obj?.capability.settled) {\n throw new Error(`Requesting object that isn't resolved yet ${objId}.`);\n }\n return obj.data;\n }\n has(objId) {\n const obj = this.#objs[objId];\n return obj?.capability.settled || false;\n }\n resolve(objId, data = null) {\n const obj = this.#ensureObj(objId);\n obj.data = data;\n obj.capability.resolve();\n }\n clear() {\n for (const objId in this.#objs) {\n const {\n data\n } = this.#objs[objId];\n data?.bitmap?.close();\n }\n this.#objs = Object.create(null);\n }\n}\nclass RenderTask {\n #internalRenderTask = null;\n constructor(internalRenderTask) {\n this.#internalRenderTask = internalRenderTask;\n this.onContinue = null;\n }\n get promise() {\n return this.#internalRenderTask.capability.promise;\n }\n cancel(extraDelay = 0) {\n this.#internalRenderTask.cancel(null, extraDelay);\n }\n get separateAnnots() {\n const {\n separateAnnots\n } = this.#internalRenderTask.operatorList;\n if (!separateAnnots) {\n return false;\n }\n const {\n annotationCanvasMap\n } = this.#internalRenderTask;\n return separateAnnots.form || separateAnnots.canvas && annotationCanvasMap?.size > 0;\n }\n}\nexports.RenderTask = RenderTask;\nclass InternalRenderTask {\n static #canvasInUse = new WeakSet();\n constructor({\n callback,\n params,\n objs,\n commonObjs,\n annotationCanvasMap,\n operatorList,\n pageIndex,\n canvasFactory,\n filterFactory,\n useRequestAnimationFrame = false,\n pdfBug = false,\n pageColors = null\n }) {\n this.callback = callback;\n this.params = params;\n this.objs = objs;\n this.commonObjs = commonObjs;\n this.annotationCanvasMap = annotationCanvasMap;\n this.operatorListIdx = null;\n this.operatorList = operatorList;\n this._pageIndex = pageIndex;\n this.canvasFactory = canvasFactory;\n this.filterFactory = filterFactory;\n this._pdfBug = pdfBug;\n this.pageColors = pageColors;\n this.running = false;\n this.graphicsReadyCallback = null;\n this.graphicsReady = false;\n this._useRequestAnimationFrame = useRequestAnimationFrame === true && typeof window !== \"undefined\";\n this.cancelled = false;\n this.capability = new _util.PromiseCapability();\n this.task = new RenderTask(this);\n this._cancelBound = this.cancel.bind(this);\n this._continueBound = this._continue.bind(this);\n this._scheduleNextBound = this._scheduleNext.bind(this);\n this._nextBound = this._next.bind(this);\n this._canvas = params.canvasContext.canvas;\n }\n get completed() {\n return this.capability.promise.catch(function () {});\n }\n initializeGraphics({\n transparency = false,\n optionalContentConfig\n }) {\n if (this.cancelled) {\n return;\n }\n if (this._canvas) {\n if (InternalRenderTask.#canvasInUse.has(this._canvas)) {\n throw new Error(\"Cannot use the same canvas during multiple render() operations. \" + \"Use different canvas or ensure previous operations were \" + \"cancelled or completed.\");\n }\n InternalRenderTask.#canvasInUse.add(this._canvas);\n }\n if (this._pdfBug && globalThis.StepperManager?.enabled) {\n this.stepper = globalThis.StepperManager.create(this._pageIndex);\n this.stepper.init(this.operatorList);\n this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint();\n }\n const {\n canvasContext,\n viewport,\n transform,\n background\n } = this.params;\n this.gfx = new _canvas.CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, this.filterFactory, {\n optionalContentConfig\n }, this.annotationCanvasMap, this.pageColors);\n this.gfx.beginDrawing({\n transform,\n viewport,\n transparency,\n background\n });\n this.operatorListIdx = 0;\n this.graphicsReady = true;\n this.graphicsReadyCallback?.();\n }\n cancel(error = null, extraDelay = 0) {\n this.running = false;\n this.cancelled = true;\n this.gfx?.endDrawing();\n InternalRenderTask.#canvasInUse.delete(this._canvas);\n this.callback(error || new _display_utils.RenderingCancelledException(`Rendering cancelled, page ${this._pageIndex + 1}`, extraDelay));\n }\n operatorListChanged() {\n if (!this.graphicsReady) {\n this.graphicsReadyCallback ||= this._continueBound;\n return;\n }\n this.stepper?.updateOperatorList(this.operatorList);\n if (this.running) {\n return;\n }\n this._continue();\n }\n _continue() {\n this.running = true;\n if (this.cancelled) {\n return;\n }\n if (this.task.onContinue) {\n this.task.onContinue(this._scheduleNextBound);\n } else {\n this._scheduleNext();\n }\n }\n _scheduleNext() {\n if (this._useRequestAnimationFrame) {\n window.requestAnimationFrame(() => {\n this._nextBound().catch(this._cancelBound);\n });\n } else {\n Promise.resolve().then(this._nextBound).catch(this._cancelBound);\n }\n }\n async _next() {\n if (this.cancelled) {\n return;\n }\n this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper);\n if (this.operatorListIdx === this.operatorList.argsArray.length) {\n this.running = false;\n if (this.operatorList.lastChunk) {\n this.gfx.endDrawing();\n InternalRenderTask.#canvasInUse.delete(this._canvas);\n this.callback();\n }\n }\n }\n}\nconst version = '3.11.174';\nexports.version = version;\nconst build = 'ce8716743';\nexports.build = build;\n\n/***/ }),\n/* 3 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.SerializableEmpty = exports.PrintAnnotationStorage = exports.AnnotationStorage = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _editor = __w_pdfjs_require__(4);\nvar _murmurhash = __w_pdfjs_require__(8);\nconst SerializableEmpty = Object.freeze({\n map: null,\n hash: \"\",\n transfers: undefined\n});\nexports.SerializableEmpty = SerializableEmpty;\nclass AnnotationStorage {\n #modified = false;\n #storage = new Map();\n constructor() {\n this.onSetModified = null;\n this.onResetModified = null;\n this.onAnnotationEditor = null;\n }\n getValue(key, defaultValue) {\n const value = this.#storage.get(key);\n if (value === undefined) {\n return defaultValue;\n }\n return Object.assign(defaultValue, value);\n }\n getRawValue(key) {\n return this.#storage.get(key);\n }\n remove(key) {\n this.#storage.delete(key);\n if (this.#storage.size === 0) {\n this.resetModified();\n }\n if (typeof this.onAnnotationEditor === \"function\") {\n for (const value of this.#storage.values()) {\n if (value instanceof _editor.AnnotationEditor) {\n return;\n }\n }\n this.onAnnotationEditor(null);\n }\n }\n setValue(key, value) {\n const obj = this.#storage.get(key);\n let modified = false;\n if (obj !== undefined) {\n for (const [entry, val] of Object.entries(value)) {\n if (obj[entry] !== val) {\n modified = true;\n obj[entry] = val;\n }\n }\n } else {\n modified = true;\n this.#storage.set(key, value);\n }\n if (modified) {\n this.#setModified();\n }\n if (value instanceof _editor.AnnotationEditor && typeof this.onAnnotationEditor === \"function\") {\n this.onAnnotationEditor(value.constructor._type);\n }\n }\n has(key) {\n return this.#storage.has(key);\n }\n getAll() {\n return this.#storage.size > 0 ? (0, _util.objectFromMap)(this.#storage) : null;\n }\n setAll(obj) {\n for (const [key, val] of Object.entries(obj)) {\n this.setValue(key, val);\n }\n }\n get size() {\n return this.#storage.size;\n }\n #setModified() {\n if (!this.#modified) {\n this.#modified = true;\n if (typeof this.onSetModified === \"function\") {\n this.onSetModified();\n }\n }\n }\n resetModified() {\n if (this.#modified) {\n this.#modified = false;\n if (typeof this.onResetModified === \"function\") {\n this.onResetModified();\n }\n }\n }\n get print() {\n return new PrintAnnotationStorage(this);\n }\n get serializable() {\n if (this.#storage.size === 0) {\n return SerializableEmpty;\n }\n const map = new Map(),\n hash = new _murmurhash.MurmurHash3_64(),\n transfers = [];\n const context = Object.create(null);\n let hasBitmap = false;\n for (const [key, val] of this.#storage) {\n const serialized = val instanceof _editor.AnnotationEditor ? val.serialize(false, context) : val;\n if (serialized) {\n map.set(key, serialized);\n hash.update(`${key}:${JSON.stringify(serialized)}`);\n hasBitmap ||= !!serialized.bitmap;\n }\n }\n if (hasBitmap) {\n for (const value of map.values()) {\n if (value.bitmap) {\n transfers.push(value.bitmap);\n }\n }\n }\n return map.size > 0 ? {\n map,\n hash: hash.hexdigest(),\n transfers\n } : SerializableEmpty;\n }\n}\nexports.AnnotationStorage = AnnotationStorage;\nclass PrintAnnotationStorage extends AnnotationStorage {\n #serializable;\n constructor(parent) {\n super();\n const {\n map,\n hash,\n transfers\n } = parent.serializable;\n const clone = structuredClone(map, transfers ? {\n transfer: transfers\n } : null);\n this.#serializable = {\n map: clone,\n hash,\n transfers\n };\n }\n get print() {\n (0, _util.unreachable)(\"Should not call PrintAnnotationStorage.print\");\n }\n get serializable() {\n return this.#serializable;\n }\n}\nexports.PrintAnnotationStorage = PrintAnnotationStorage;\n\n/***/ }),\n/* 4 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.AnnotationEditor = void 0;\nvar _tools = __w_pdfjs_require__(5);\nvar _util = __w_pdfjs_require__(1);\nvar _display_utils = __w_pdfjs_require__(6);\nclass AnnotationEditor {\n #altText = \"\";\n #altTextDecorative = false;\n #altTextButton = null;\n #altTextTooltip = null;\n #altTextTooltipTimeout = null;\n #keepAspectRatio = false;\n #resizersDiv = null;\n #boundFocusin = this.focusin.bind(this);\n #boundFocusout = this.focusout.bind(this);\n #hasBeenClicked = false;\n #isEditing = false;\n #isInEditMode = false;\n _initialOptions = Object.create(null);\n _uiManager = null;\n _focusEventsAllowed = true;\n _l10nPromise = null;\n #isDraggable = false;\n #zIndex = AnnotationEditor._zIndex++;\n static _borderLineWidth = -1;\n static _colorManager = new _tools.ColorManager();\n static _zIndex = 1;\n static SMALL_EDITOR_SIZE = 0;\n constructor(parameters) {\n if (this.constructor === AnnotationEditor) {\n (0, _util.unreachable)(\"Cannot initialize AnnotationEditor.\");\n }\n this.parent = parameters.parent;\n this.id = parameters.id;\n this.width = this.height = null;\n this.pageIndex = parameters.parent.pageIndex;\n this.name = parameters.name;\n this.div = null;\n this._uiManager = parameters.uiManager;\n this.annotationElementId = null;\n this._willKeepAspectRatio = false;\n this._initialOptions.isCentered = parameters.isCentered;\n this._structTreeParentId = null;\n const {\n rotation,\n rawDims: {\n pageWidth,\n pageHeight,\n pageX,\n pageY\n }\n } = this.parent.viewport;\n this.rotation = rotation;\n this.pageRotation = (360 + rotation - this._uiManager.viewParameters.rotation) % 360;\n this.pageDimensions = [pageWidth, pageHeight];\n this.pageTranslation = [pageX, pageY];\n const [width, height] = this.parentDimensions;\n this.x = parameters.x / width;\n this.y = parameters.y / height;\n this.isAttachedToDOM = false;\n this.deleted = false;\n }\n get editorType() {\n return Object.getPrototypeOf(this).constructor._type;\n }\n static get _defaultLineColor() {\n return (0, _util.shadow)(this, \"_defaultLineColor\", this._colorManager.getHexCode(\"CanvasText\"));\n }\n static deleteAnnotationElement(editor) {\n const fakeEditor = new FakeEditor({\n id: editor.parent.getNextId(),\n parent: editor.parent,\n uiManager: editor._uiManager\n });\n fakeEditor.annotationElementId = editor.annotationElementId;\n fakeEditor.deleted = true;\n fakeEditor._uiManager.addToAnnotationStorage(fakeEditor);\n }\n static initialize(l10n, options = null) {\n AnnotationEditor._l10nPromise ||= new Map([\"editor_alt_text_button_label\", \"editor_alt_text_edit_button_label\", \"editor_alt_text_decorative_tooltip\"].map(str => [str, l10n.get(str)]));\n if (options?.strings) {\n for (const str of options.strings) {\n AnnotationEditor._l10nPromise.set(str, l10n.get(str));\n }\n }\n if (AnnotationEditor._borderLineWidth !== -1) {\n return;\n }\n const style = getComputedStyle(document.documentElement);\n AnnotationEditor._borderLineWidth = parseFloat(style.getPropertyValue(\"--outline-width\")) || 0;\n }\n static updateDefaultParams(_type, _value) {}\n static get defaultPropertiesToUpdate() {\n return [];\n }\n static isHandlingMimeForPasting(mime) {\n return false;\n }\n static paste(item, parent) {\n (0, _util.unreachable)(\"Not implemented\");\n }\n get propertiesToUpdate() {\n return [];\n }\n get _isDraggable() {\n return this.#isDraggable;\n }\n set _isDraggable(value) {\n this.#isDraggable = value;\n this.div?.classList.toggle(\"draggable\", value);\n }\n center() {\n const [pageWidth, pageHeight] = this.pageDimensions;\n switch (this.parentRotation) {\n case 90:\n this.x -= this.height * pageHeight / (pageWidth * 2);\n this.y += this.width * pageWidth / (pageHeight * 2);\n break;\n case 180:\n this.x += this.width / 2;\n this.y += this.height / 2;\n break;\n case 270:\n this.x += this.height * pageHeight / (pageWidth * 2);\n this.y -= this.width * pageWidth / (pageHeight * 2);\n break;\n default:\n this.x -= this.width / 2;\n this.y -= this.height / 2;\n break;\n }\n this.fixAndSetPosition();\n }\n addCommands(params) {\n this._uiManager.addCommands(params);\n }\n get currentLayer() {\n return this._uiManager.currentLayer;\n }\n setInBackground() {\n this.div.style.zIndex = 0;\n }\n setInForeground() {\n this.div.style.zIndex = this.#zIndex;\n }\n setParent(parent) {\n if (parent !== null) {\n this.pageIndex = parent.pageIndex;\n this.pageDimensions = parent.pageDimensions;\n }\n this.parent = parent;\n }\n focusin(event) {\n if (!this._focusEventsAllowed) {\n return;\n }\n if (!this.#hasBeenClicked) {\n this.parent.setSelected(this);\n } else {\n this.#hasBeenClicked = false;\n }\n }\n focusout(event) {\n if (!this._focusEventsAllowed) {\n return;\n }\n if (!this.isAttachedToDOM) {\n return;\n }\n const target = event.relatedTarget;\n if (target?.closest(`#${this.id}`)) {\n return;\n }\n event.preventDefault();\n if (!this.parent?.isMultipleSelection) {\n this.commitOrRemove();\n }\n }\n commitOrRemove() {\n if (this.isEmpty()) {\n this.remove();\n } else {\n this.commit();\n }\n }\n commit() {\n this.addToAnnotationStorage();\n }\n addToAnnotationStorage() {\n this._uiManager.addToAnnotationStorage(this);\n }\n setAt(x, y, tx, ty) {\n const [width, height] = this.parentDimensions;\n [tx, ty] = this.screenToPageTranslation(tx, ty);\n this.x = (x + tx) / width;\n this.y = (y + ty) / height;\n this.fixAndSetPosition();\n }\n #translate([width, height], x, y) {\n [x, y] = this.screenToPageTranslation(x, y);\n this.x += x / width;\n this.y += y / height;\n this.fixAndSetPosition();\n }\n translate(x, y) {\n this.#translate(this.parentDimensions, x, y);\n }\n translateInPage(x, y) {\n this.#translate(this.pageDimensions, x, y);\n this.div.scrollIntoView({\n block: \"nearest\"\n });\n }\n drag(tx, ty) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.x += tx / parentWidth;\n this.y += ty / parentHeight;\n if (this.parent && (this.x < 0 || this.x > 1 || this.y < 0 || this.y > 1)) {\n const {\n x,\n y\n } = this.div.getBoundingClientRect();\n if (this.parent.findNewParent(this, x, y)) {\n this.x -= Math.floor(this.x);\n this.y -= Math.floor(this.y);\n }\n }\n let {\n x,\n y\n } = this;\n const [bx, by] = this.#getBaseTranslation();\n x += bx;\n y += by;\n this.div.style.left = `${(100 * x).toFixed(2)}%`;\n this.div.style.top = `${(100 * y).toFixed(2)}%`;\n this.div.scrollIntoView({\n block: \"nearest\"\n });\n }\n #getBaseTranslation() {\n const [parentWidth, parentHeight] = this.parentDimensions;\n const {\n _borderLineWidth\n } = AnnotationEditor;\n const x = _borderLineWidth / parentWidth;\n const y = _borderLineWidth / parentHeight;\n switch (this.rotation) {\n case 90:\n return [-x, y];\n case 180:\n return [x, y];\n case 270:\n return [x, -y];\n default:\n return [-x, -y];\n }\n }\n fixAndSetPosition() {\n const [pageWidth, pageHeight] = this.pageDimensions;\n let {\n x,\n y,\n width,\n height\n } = this;\n width *= pageWidth;\n height *= pageHeight;\n x *= pageWidth;\n y *= pageHeight;\n switch (this.rotation) {\n case 0:\n x = Math.max(0, Math.min(pageWidth - width, x));\n y = Math.max(0, Math.min(pageHeight - height, y));\n break;\n case 90:\n x = Math.max(0, Math.min(pageWidth - height, x));\n y = Math.min(pageHeight, Math.max(width, y));\n break;\n case 180:\n x = Math.min(pageWidth, Math.max(width, x));\n y = Math.min(pageHeight, Math.max(height, y));\n break;\n case 270:\n x = Math.min(pageWidth, Math.max(height, x));\n y = Math.max(0, Math.min(pageHeight - width, y));\n break;\n }\n this.x = x /= pageWidth;\n this.y = y /= pageHeight;\n const [bx, by] = this.#getBaseTranslation();\n x += bx;\n y += by;\n const {\n style\n } = this.div;\n style.left = `${(100 * x).toFixed(2)}%`;\n style.top = `${(100 * y).toFixed(2)}%`;\n this.moveInDOM();\n }\n static #rotatePoint(x, y, angle) {\n switch (angle) {\n case 90:\n return [y, -x];\n case 180:\n return [-x, -y];\n case 270:\n return [-y, x];\n default:\n return [x, y];\n }\n }\n screenToPageTranslation(x, y) {\n return AnnotationEditor.#rotatePoint(x, y, this.parentRotation);\n }\n pageTranslationToScreen(x, y) {\n return AnnotationEditor.#rotatePoint(x, y, 360 - this.parentRotation);\n }\n #getRotationMatrix(rotation) {\n switch (rotation) {\n case 90:\n {\n const [pageWidth, pageHeight] = this.pageDimensions;\n return [0, -pageWidth / pageHeight, pageHeight / pageWidth, 0];\n }\n case 180:\n return [-1, 0, 0, -1];\n case 270:\n {\n const [pageWidth, pageHeight] = this.pageDimensions;\n return [0, pageWidth / pageHeight, -pageHeight / pageWidth, 0];\n }\n default:\n return [1, 0, 0, 1];\n }\n }\n get parentScale() {\n return this._uiManager.viewParameters.realScale;\n }\n get parentRotation() {\n return (this._uiManager.viewParameters.rotation + this.pageRotation) % 360;\n }\n get parentDimensions() {\n const {\n parentScale,\n pageDimensions: [pageWidth, pageHeight]\n } = this;\n const scaledWidth = pageWidth * parentScale;\n const scaledHeight = pageHeight * parentScale;\n return _util.FeatureTest.isCSSRoundSupported ? [Math.round(scaledWidth), Math.round(scaledHeight)] : [scaledWidth, scaledHeight];\n }\n setDims(width, height) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.div.style.width = `${(100 * width / parentWidth).toFixed(2)}%`;\n if (!this.#keepAspectRatio) {\n this.div.style.height = `${(100 * height / parentHeight).toFixed(2)}%`;\n }\n this.#altTextButton?.classList.toggle(\"small\", width < AnnotationEditor.SMALL_EDITOR_SIZE || height < AnnotationEditor.SMALL_EDITOR_SIZE);\n }\n fixDims() {\n const {\n style\n } = this.div;\n const {\n height,\n width\n } = style;\n const widthPercent = width.endsWith(\"%\");\n const heightPercent = !this.#keepAspectRatio && height.endsWith(\"%\");\n if (widthPercent && heightPercent) {\n return;\n }\n const [parentWidth, parentHeight] = this.parentDimensions;\n if (!widthPercent) {\n style.width = `${(100 * parseFloat(width) / parentWidth).toFixed(2)}%`;\n }\n if (!this.#keepAspectRatio && !heightPercent) {\n style.height = `${(100 * parseFloat(height) / parentHeight).toFixed(2)}%`;\n }\n }\n getInitialTranslation() {\n return [0, 0];\n }\n #createResizers() {\n if (this.#resizersDiv) {\n return;\n }\n this.#resizersDiv = document.createElement(\"div\");\n this.#resizersDiv.classList.add(\"resizers\");\n const classes = [\"topLeft\", \"topRight\", \"bottomRight\", \"bottomLeft\"];\n if (!this._willKeepAspectRatio) {\n classes.push(\"topMiddle\", \"middleRight\", \"bottomMiddle\", \"middleLeft\");\n }\n for (const name of classes) {\n const div = document.createElement(\"div\");\n this.#resizersDiv.append(div);\n div.classList.add(\"resizer\", name);\n div.addEventListener(\"pointerdown\", this.#resizerPointerdown.bind(this, name));\n div.addEventListener(\"contextmenu\", _display_utils.noContextMenu);\n }\n this.div.prepend(this.#resizersDiv);\n }\n #resizerPointerdown(name, event) {\n event.preventDefault();\n const {\n isMac\n } = _util.FeatureTest.platform;\n if (event.button !== 0 || event.ctrlKey && isMac) {\n return;\n }\n const boundResizerPointermove = this.#resizerPointermove.bind(this, name);\n const savedDraggable = this._isDraggable;\n this._isDraggable = false;\n const pointerMoveOptions = {\n passive: true,\n capture: true\n };\n window.addEventListener(\"pointermove\", boundResizerPointermove, pointerMoveOptions);\n const savedX = this.x;\n const savedY = this.y;\n const savedWidth = this.width;\n const savedHeight = this.height;\n const savedParentCursor = this.parent.div.style.cursor;\n const savedCursor = this.div.style.cursor;\n this.div.style.cursor = this.parent.div.style.cursor = window.getComputedStyle(event.target).cursor;\n const pointerUpCallback = () => {\n this._isDraggable = savedDraggable;\n window.removeEventListener(\"pointerup\", pointerUpCallback);\n window.removeEventListener(\"blur\", pointerUpCallback);\n window.removeEventListener(\"pointermove\", boundResizerPointermove, pointerMoveOptions);\n this.parent.div.style.cursor = savedParentCursor;\n this.div.style.cursor = savedCursor;\n const newX = this.x;\n const newY = this.y;\n const newWidth = this.width;\n const newHeight = this.height;\n if (newX === savedX && newY === savedY && newWidth === savedWidth && newHeight === savedHeight) {\n return;\n }\n this.addCommands({\n cmd: () => {\n this.width = newWidth;\n this.height = newHeight;\n this.x = newX;\n this.y = newY;\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setDims(parentWidth * newWidth, parentHeight * newHeight);\n this.fixAndSetPosition();\n },\n undo: () => {\n this.width = savedWidth;\n this.height = savedHeight;\n this.x = savedX;\n this.y = savedY;\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setDims(parentWidth * savedWidth, parentHeight * savedHeight);\n this.fixAndSetPosition();\n },\n mustExec: true\n });\n };\n window.addEventListener(\"pointerup\", pointerUpCallback);\n window.addEventListener(\"blur\", pointerUpCallback);\n }\n #resizerPointermove(name, event) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n const savedX = this.x;\n const savedY = this.y;\n const savedWidth = this.width;\n const savedHeight = this.height;\n const minWidth = AnnotationEditor.MIN_SIZE / parentWidth;\n const minHeight = AnnotationEditor.MIN_SIZE / parentHeight;\n const round = x => Math.round(x * 10000) / 10000;\n const rotationMatrix = this.#getRotationMatrix(this.rotation);\n const transf = (x, y) => [rotationMatrix[0] * x + rotationMatrix[2] * y, rotationMatrix[1] * x + rotationMatrix[3] * y];\n const invRotationMatrix = this.#getRotationMatrix(360 - this.rotation);\n const invTransf = (x, y) => [invRotationMatrix[0] * x + invRotationMatrix[2] * y, invRotationMatrix[1] * x + invRotationMatrix[3] * y];\n let getPoint;\n let getOpposite;\n let isDiagonal = false;\n let isHorizontal = false;\n switch (name) {\n case \"topLeft\":\n isDiagonal = true;\n getPoint = (w, h) => [0, 0];\n getOpposite = (w, h) => [w, h];\n break;\n case \"topMiddle\":\n getPoint = (w, h) => [w / 2, 0];\n getOpposite = (w, h) => [w / 2, h];\n break;\n case \"topRight\":\n isDiagonal = true;\n getPoint = (w, h) => [w, 0];\n getOpposite = (w, h) => [0, h];\n break;\n case \"middleRight\":\n isHorizontal = true;\n getPoint = (w, h) => [w, h / 2];\n getOpposite = (w, h) => [0, h / 2];\n break;\n case \"bottomRight\":\n isDiagonal = true;\n getPoint = (w, h) => [w, h];\n getOpposite = (w, h) => [0, 0];\n break;\n case \"bottomMiddle\":\n getPoint = (w, h) => [w / 2, h];\n getOpposite = (w, h) => [w / 2, 0];\n break;\n case \"bottomLeft\":\n isDiagonal = true;\n getPoint = (w, h) => [0, h];\n getOpposite = (w, h) => [w, 0];\n break;\n case \"middleLeft\":\n isHorizontal = true;\n getPoint = (w, h) => [0, h / 2];\n getOpposite = (w, h) => [w, h / 2];\n break;\n }\n const point = getPoint(savedWidth, savedHeight);\n const oppositePoint = getOpposite(savedWidth, savedHeight);\n let transfOppositePoint = transf(...oppositePoint);\n const oppositeX = round(savedX + transfOppositePoint[0]);\n const oppositeY = round(savedY + transfOppositePoint[1]);\n let ratioX = 1;\n let ratioY = 1;\n let [deltaX, deltaY] = this.screenToPageTranslation(event.movementX, event.movementY);\n [deltaX, deltaY] = invTransf(deltaX / parentWidth, deltaY / parentHeight);\n if (isDiagonal) {\n const oldDiag = Math.hypot(savedWidth, savedHeight);\n ratioX = ratioY = Math.max(Math.min(Math.hypot(oppositePoint[0] - point[0] - deltaX, oppositePoint[1] - point[1] - deltaY) / oldDiag, 1 / savedWidth, 1 / savedHeight), minWidth / savedWidth, minHeight / savedHeight);\n } else if (isHorizontal) {\n ratioX = Math.max(minWidth, Math.min(1, Math.abs(oppositePoint[0] - point[0] - deltaX))) / savedWidth;\n } else {\n ratioY = Math.max(minHeight, Math.min(1, Math.abs(oppositePoint[1] - point[1] - deltaY))) / savedHeight;\n }\n const newWidth = round(savedWidth * ratioX);\n const newHeight = round(savedHeight * ratioY);\n transfOppositePoint = transf(...getOpposite(newWidth, newHeight));\n const newX = oppositeX - transfOppositePoint[0];\n const newY = oppositeY - transfOppositePoint[1];\n this.width = newWidth;\n this.height = newHeight;\n this.x = newX;\n this.y = newY;\n this.setDims(parentWidth * newWidth, parentHeight * newHeight);\n this.fixAndSetPosition();\n }\n async addAltTextButton() {\n if (this.#altTextButton) {\n return;\n }\n const altText = this.#altTextButton = document.createElement(\"button\");\n altText.className = \"altText\";\n const msg = await AnnotationEditor._l10nPromise.get(\"editor_alt_text_button_label\");\n altText.textContent = msg;\n altText.setAttribute(\"aria-label\", msg);\n altText.tabIndex = \"0\";\n altText.addEventListener(\"contextmenu\", _display_utils.noContextMenu);\n altText.addEventListener(\"pointerdown\", event => event.stopPropagation());\n altText.addEventListener(\"click\", event => {\n event.preventDefault();\n this._uiManager.editAltText(this);\n }, {\n capture: true\n });\n altText.addEventListener(\"keydown\", event => {\n if (event.target === altText && event.key === \"Enter\") {\n event.preventDefault();\n this._uiManager.editAltText(this);\n }\n });\n this.#setAltTextButtonState();\n this.div.append(altText);\n if (!AnnotationEditor.SMALL_EDITOR_SIZE) {\n const PERCENT = 40;\n AnnotationEditor.SMALL_EDITOR_SIZE = Math.min(128, Math.round(altText.getBoundingClientRect().width * (1 + PERCENT / 100)));\n }\n }\n async #setAltTextButtonState() {\n const button = this.#altTextButton;\n if (!button) {\n return;\n }\n if (!this.#altText && !this.#altTextDecorative) {\n button.classList.remove(\"done\");\n this.#altTextTooltip?.remove();\n return;\n }\n AnnotationEditor._l10nPromise.get(\"editor_alt_text_edit_button_label\").then(msg => {\n button.setAttribute(\"aria-label\", msg);\n });\n let tooltip = this.#altTextTooltip;\n if (!tooltip) {\n this.#altTextTooltip = tooltip = document.createElement(\"span\");\n tooltip.className = \"tooltip\";\n tooltip.setAttribute(\"role\", \"tooltip\");\n const id = tooltip.id = `alt-text-tooltip-${this.id}`;\n button.setAttribute(\"aria-describedby\", id);\n const DELAY_TO_SHOW_TOOLTIP = 100;\n button.addEventListener(\"mouseenter\", () => {\n this.#altTextTooltipTimeout = setTimeout(() => {\n this.#altTextTooltipTimeout = null;\n this.#altTextTooltip.classList.add(\"show\");\n this._uiManager._eventBus.dispatch(\"reporttelemetry\", {\n source: this,\n details: {\n type: \"editing\",\n subtype: this.editorType,\n data: {\n action: \"alt_text_tooltip\"\n }\n }\n });\n }, DELAY_TO_SHOW_TOOLTIP);\n });\n button.addEventListener(\"mouseleave\", () => {\n clearTimeout(this.#altTextTooltipTimeout);\n this.#altTextTooltipTimeout = null;\n this.#altTextTooltip?.classList.remove(\"show\");\n });\n }\n button.classList.add(\"done\");\n tooltip.innerText = this.#altTextDecorative ? await AnnotationEditor._l10nPromise.get(\"editor_alt_text_decorative_tooltip\") : this.#altText;\n if (!tooltip.parentNode) {\n button.append(tooltip);\n }\n }\n getClientDimensions() {\n return this.div.getBoundingClientRect();\n }\n get altTextData() {\n return {\n altText: this.#altText,\n decorative: this.#altTextDecorative\n };\n }\n set altTextData({\n altText,\n decorative\n }) {\n if (this.#altText === altText && this.#altTextDecorative === decorative) {\n return;\n }\n this.#altText = altText;\n this.#altTextDecorative = decorative;\n this.#setAltTextButtonState();\n }\n render() {\n this.div = document.createElement(\"div\");\n this.div.setAttribute(\"data-editor-rotation\", (360 - this.rotation) % 360);\n this.div.className = this.name;\n this.div.setAttribute(\"id\", this.id);\n this.div.setAttribute(\"tabIndex\", 0);\n this.setInForeground();\n this.div.addEventListener(\"focusin\", this.#boundFocusin);\n this.div.addEventListener(\"focusout\", this.#boundFocusout);\n const [parentWidth, parentHeight] = this.parentDimensions;\n if (this.parentRotation % 180 !== 0) {\n this.div.style.maxWidth = `${(100 * parentHeight / parentWidth).toFixed(2)}%`;\n this.div.style.maxHeight = `${(100 * parentWidth / parentHeight).toFixed(2)}%`;\n }\n const [tx, ty] = this.getInitialTranslation();\n this.translate(tx, ty);\n (0, _tools.bindEvents)(this, this.div, [\"pointerdown\"]);\n return this.div;\n }\n pointerdown(event) {\n const {\n isMac\n } = _util.FeatureTest.platform;\n if (event.button !== 0 || event.ctrlKey && isMac) {\n event.preventDefault();\n return;\n }\n this.#hasBeenClicked = true;\n this.#setUpDragSession(event);\n }\n #setUpDragSession(event) {\n if (!this._isDraggable) {\n return;\n }\n const isSelected = this._uiManager.isSelected(this);\n this._uiManager.setUpDragSession();\n let pointerMoveOptions, pointerMoveCallback;\n if (isSelected) {\n pointerMoveOptions = {\n passive: true,\n capture: true\n };\n pointerMoveCallback = e => {\n const [tx, ty] = this.screenToPageTranslation(e.movementX, e.movementY);\n this._uiManager.dragSelectedEditors(tx, ty);\n };\n window.addEventListener(\"pointermove\", pointerMoveCallback, pointerMoveOptions);\n }\n const pointerUpCallback = () => {\n window.removeEventListener(\"pointerup\", pointerUpCallback);\n window.removeEventListener(\"blur\", pointerUpCallback);\n if (isSelected) {\n window.removeEventListener(\"pointermove\", pointerMoveCallback, pointerMoveOptions);\n }\n this.#hasBeenClicked = false;\n if (!this._uiManager.endDragSession()) {\n const {\n isMac\n } = _util.FeatureTest.platform;\n if (event.ctrlKey && !isMac || event.shiftKey || event.metaKey && isMac) {\n this.parent.toggleSelected(this);\n } else {\n this.parent.setSelected(this);\n }\n }\n };\n window.addEventListener(\"pointerup\", pointerUpCallback);\n window.addEventListener(\"blur\", pointerUpCallback);\n }\n moveInDOM() {\n this.parent?.moveEditorInDOM(this);\n }\n _setParentAndPosition(parent, x, y) {\n parent.changeParent(this);\n this.x = x;\n this.y = y;\n this.fixAndSetPosition();\n }\n getRect(tx, ty) {\n const scale = this.parentScale;\n const [pageWidth, pageHeight] = this.pageDimensions;\n const [pageX, pageY] = this.pageTranslation;\n const shiftX = tx / scale;\n const shiftY = ty / scale;\n const x = this.x * pageWidth;\n const y = this.y * pageHeight;\n const width = this.width * pageWidth;\n const height = this.height * pageHeight;\n switch (this.rotation) {\n case 0:\n return [x + shiftX + pageX, pageHeight - y - shiftY - height + pageY, x + shiftX + width + pageX, pageHeight - y - shiftY + pageY];\n case 90:\n return [x + shiftY + pageX, pageHeight - y + shiftX + pageY, x + shiftY + height + pageX, pageHeight - y + shiftX + width + pageY];\n case 180:\n return [x - shiftX - width + pageX, pageHeight - y + shiftY + pageY, x - shiftX + pageX, pageHeight - y + shiftY + height + pageY];\n case 270:\n return [x - shiftY - height + pageX, pageHeight - y - shiftX - width + pageY, x - shiftY + pageX, pageHeight - y - shiftX + pageY];\n default:\n throw new Error(\"Invalid rotation\");\n }\n }\n getRectInCurrentCoords(rect, pageHeight) {\n const [x1, y1, x2, y2] = rect;\n const width = x2 - x1;\n const height = y2 - y1;\n switch (this.rotation) {\n case 0:\n return [x1, pageHeight - y2, width, height];\n case 90:\n return [x1, pageHeight - y1, height, width];\n case 180:\n return [x2, pageHeight - y1, width, height];\n case 270:\n return [x2, pageHeight - y2, height, width];\n default:\n throw new Error(\"Invalid rotation\");\n }\n }\n onceAdded() {}\n isEmpty() {\n return false;\n }\n enableEditMode() {\n this.#isInEditMode = true;\n }\n disableEditMode() {\n this.#isInEditMode = false;\n }\n isInEditMode() {\n return this.#isInEditMode;\n }\n shouldGetKeyboardEvents() {\n return false;\n }\n needsToBeRebuilt() {\n return this.div && !this.isAttachedToDOM;\n }\n rebuild() {\n this.div?.addEventListener(\"focusin\", this.#boundFocusin);\n this.div?.addEventListener(\"focusout\", this.#boundFocusout);\n }\n serialize(isForCopying = false, context = null) {\n (0, _util.unreachable)(\"An editor must be serializable\");\n }\n static deserialize(data, parent, uiManager) {\n const editor = new this.prototype.constructor({\n parent,\n id: parent.getNextId(),\n uiManager\n });\n editor.rotation = data.rotation;\n const [pageWidth, pageHeight] = editor.pageDimensions;\n const [x, y, width, height] = editor.getRectInCurrentCoords(data.rect, pageHeight);\n editor.x = x / pageWidth;\n editor.y = y / pageHeight;\n editor.width = width / pageWidth;\n editor.height = height / pageHeight;\n return editor;\n }\n remove() {\n this.div.removeEventListener(\"focusin\", this.#boundFocusin);\n this.div.removeEventListener(\"focusout\", this.#boundFocusout);\n if (!this.isEmpty()) {\n this.commit();\n }\n if (this.parent) {\n this.parent.remove(this);\n } else {\n this._uiManager.removeEditor(this);\n }\n this.#altTextButton?.remove();\n this.#altTextButton = null;\n this.#altTextTooltip = null;\n }\n get isResizable() {\n return false;\n }\n makeResizable() {\n if (this.isResizable) {\n this.#createResizers();\n this.#resizersDiv.classList.remove(\"hidden\");\n }\n }\n select() {\n this.makeResizable();\n this.div?.classList.add(\"selectedEditor\");\n }\n unselect() {\n this.#resizersDiv?.classList.add(\"hidden\");\n this.div?.classList.remove(\"selectedEditor\");\n if (this.div?.contains(document.activeElement)) {\n this._uiManager.currentLayer.div.focus();\n }\n }\n updateParams(type, value) {}\n disableEditing() {\n if (this.#altTextButton) {\n this.#altTextButton.hidden = true;\n }\n }\n enableEditing() {\n if (this.#altTextButton) {\n this.#altTextButton.hidden = false;\n }\n }\n enterInEditMode() {}\n get contentDiv() {\n return this.div;\n }\n get isEditing() {\n return this.#isEditing;\n }\n set isEditing(value) {\n this.#isEditing = value;\n if (!this.parent) {\n return;\n }\n if (value) {\n this.parent.setSelected(this);\n this.parent.setActiveEditor(this);\n } else {\n this.parent.setActiveEditor(null);\n }\n }\n setAspectRatio(width, height) {\n this.#keepAspectRatio = true;\n const aspectRatio = width / height;\n const {\n style\n } = this.div;\n style.aspectRatio = aspectRatio;\n style.height = \"auto\";\n }\n static get MIN_SIZE() {\n return 16;\n }\n}\nexports.AnnotationEditor = AnnotationEditor;\nclass FakeEditor extends AnnotationEditor {\n constructor(params) {\n super(params);\n this.annotationElementId = params.annotationElementId;\n this.deleted = true;\n }\n serialize() {\n return {\n id: this.annotationElementId,\n deleted: true,\n pageIndex: this.pageIndex\n };\n }\n}\n\n/***/ }),\n/* 5 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.KeyboardManager = exports.CommandManager = exports.ColorManager = exports.AnnotationEditorUIManager = void 0;\nexports.bindEvents = bindEvents;\nexports.opacityToHex = opacityToHex;\nvar _util = __w_pdfjs_require__(1);\nvar _display_utils = __w_pdfjs_require__(6);\nfunction bindEvents(obj, element, names) {\n for (const name of names) {\n element.addEventListener(name, obj[name].bind(obj));\n }\n}\nfunction opacityToHex(opacity) {\n return Math.round(Math.min(255, Math.max(1, 255 * opacity))).toString(16).padStart(2, \"0\");\n}\nclass IdManager {\n #id = 0;\n getId() {\n return `${_util.AnnotationEditorPrefix}${this.#id++}`;\n }\n}\nclass ImageManager {\n #baseId = (0, _util.getUuid)();\n #id = 0;\n #cache = null;\n static get _isSVGFittingCanvas() {\n const svg = `data:image/svg+xml;charset=UTF-8,`;\n const canvas = new OffscreenCanvas(1, 3);\n const ctx = canvas.getContext(\"2d\");\n const image = new Image();\n image.src = svg;\n const promise = image.decode().then(() => {\n ctx.drawImage(image, 0, 0, 1, 1, 0, 0, 1, 3);\n return new Uint32Array(ctx.getImageData(0, 0, 1, 1).data.buffer)[0] === 0;\n });\n return (0, _util.shadow)(this, \"_isSVGFittingCanvas\", promise);\n }\n async #get(key, rawData) {\n this.#cache ||= new Map();\n let data = this.#cache.get(key);\n if (data === null) {\n return null;\n }\n if (data?.bitmap) {\n data.refCounter += 1;\n return data;\n }\n try {\n data ||= {\n bitmap: null,\n id: `image_${this.#baseId}_${this.#id++}`,\n refCounter: 0,\n isSvg: false\n };\n let image;\n if (typeof rawData === \"string\") {\n data.url = rawData;\n const response = await fetch(rawData);\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n image = await response.blob();\n } else {\n image = data.file = rawData;\n }\n if (image.type === \"image/svg+xml\") {\n const mustRemoveAspectRatioPromise = ImageManager._isSVGFittingCanvas;\n const fileReader = new FileReader();\n const imageElement = new Image();\n const imagePromise = new Promise((resolve, reject) => {\n imageElement.onload = () => {\n data.bitmap = imageElement;\n data.isSvg = true;\n resolve();\n };\n fileReader.onload = async () => {\n const url = data.svgUrl = fileReader.result;\n imageElement.src = (await mustRemoveAspectRatioPromise) ? `${url}#svgView(preserveAspectRatio(none))` : url;\n };\n imageElement.onerror = fileReader.onerror = reject;\n });\n fileReader.readAsDataURL(image);\n await imagePromise;\n } else {\n data.bitmap = await createImageBitmap(image);\n }\n data.refCounter = 1;\n } catch (e) {\n console.error(e);\n data = null;\n }\n this.#cache.set(key, data);\n if (data) {\n this.#cache.set(data.id, data);\n }\n return data;\n }\n async getFromFile(file) {\n const {\n lastModified,\n name,\n size,\n type\n } = file;\n return this.#get(`${lastModified}_${name}_${size}_${type}`, file);\n }\n async getFromUrl(url) {\n return this.#get(url, url);\n }\n async getFromId(id) {\n this.#cache ||= new Map();\n const data = this.#cache.get(id);\n if (!data) {\n return null;\n }\n if (data.bitmap) {\n data.refCounter += 1;\n return data;\n }\n if (data.file) {\n return this.getFromFile(data.file);\n }\n return this.getFromUrl(data.url);\n }\n getSvgUrl(id) {\n const data = this.#cache.get(id);\n if (!data?.isSvg) {\n return null;\n }\n return data.svgUrl;\n }\n deleteId(id) {\n this.#cache ||= new Map();\n const data = this.#cache.get(id);\n if (!data) {\n return;\n }\n data.refCounter -= 1;\n if (data.refCounter !== 0) {\n return;\n }\n data.bitmap = null;\n }\n isValidId(id) {\n return id.startsWith(`image_${this.#baseId}_`);\n }\n}\nclass CommandManager {\n #commands = [];\n #locked = false;\n #maxSize;\n #position = -1;\n constructor(maxSize = 128) {\n this.#maxSize = maxSize;\n }\n add({\n cmd,\n undo,\n mustExec,\n type = NaN,\n overwriteIfSameType = false,\n keepUndo = false\n }) {\n if (mustExec) {\n cmd();\n }\n if (this.#locked) {\n return;\n }\n const save = {\n cmd,\n undo,\n type\n };\n if (this.#position === -1) {\n if (this.#commands.length > 0) {\n this.#commands.length = 0;\n }\n this.#position = 0;\n this.#commands.push(save);\n return;\n }\n if (overwriteIfSameType && this.#commands[this.#position].type === type) {\n if (keepUndo) {\n save.undo = this.#commands[this.#position].undo;\n }\n this.#commands[this.#position] = save;\n return;\n }\n const next = this.#position + 1;\n if (next === this.#maxSize) {\n this.#commands.splice(0, 1);\n } else {\n this.#position = next;\n if (next < this.#commands.length) {\n this.#commands.splice(next);\n }\n }\n this.#commands.push(save);\n }\n undo() {\n if (this.#position === -1) {\n return;\n }\n this.#locked = true;\n this.#commands[this.#position].undo();\n this.#locked = false;\n this.#position -= 1;\n }\n redo() {\n if (this.#position < this.#commands.length - 1) {\n this.#position += 1;\n this.#locked = true;\n this.#commands[this.#position].cmd();\n this.#locked = false;\n }\n }\n hasSomethingToUndo() {\n return this.#position !== -1;\n }\n hasSomethingToRedo() {\n return this.#position < this.#commands.length - 1;\n }\n destroy() {\n this.#commands = null;\n }\n}\nexports.CommandManager = CommandManager;\nclass KeyboardManager {\n constructor(callbacks) {\n this.buffer = [];\n this.callbacks = new Map();\n this.allKeys = new Set();\n const {\n isMac\n } = _util.FeatureTest.platform;\n for (const [keys, callback, options = {}] of callbacks) {\n for (const key of keys) {\n const isMacKey = key.startsWith(\"mac+\");\n if (isMac && isMacKey) {\n this.callbacks.set(key.slice(4), {\n callback,\n options\n });\n this.allKeys.add(key.split(\"+\").at(-1));\n } else if (!isMac && !isMacKey) {\n this.callbacks.set(key, {\n callback,\n options\n });\n this.allKeys.add(key.split(\"+\").at(-1));\n }\n }\n }\n }\n #serialize(event) {\n if (event.altKey) {\n this.buffer.push(\"alt\");\n }\n if (event.ctrlKey) {\n this.buffer.push(\"ctrl\");\n }\n if (event.metaKey) {\n this.buffer.push(\"meta\");\n }\n if (event.shiftKey) {\n this.buffer.push(\"shift\");\n }\n this.buffer.push(event.key);\n const str = this.buffer.join(\"+\");\n this.buffer.length = 0;\n return str;\n }\n exec(self, event) {\n if (!this.allKeys.has(event.key)) {\n return;\n }\n const info = this.callbacks.get(this.#serialize(event));\n if (!info) {\n return;\n }\n const {\n callback,\n options: {\n bubbles = false,\n args = [],\n checker = null\n }\n } = info;\n if (checker && !checker(self, event)) {\n return;\n }\n callback.bind(self, ...args)();\n if (!bubbles) {\n event.stopPropagation();\n event.preventDefault();\n }\n }\n}\nexports.KeyboardManager = KeyboardManager;\nclass ColorManager {\n static _colorsMapping = new Map([[\"CanvasText\", [0, 0, 0]], [\"Canvas\", [255, 255, 255]]]);\n get _colors() {\n const colors = new Map([[\"CanvasText\", null], [\"Canvas\", null]]);\n (0, _display_utils.getColorValues)(colors);\n return (0, _util.shadow)(this, \"_colors\", colors);\n }\n convert(color) {\n const rgb = (0, _display_utils.getRGB)(color);\n if (!window.matchMedia(\"(forced-colors: active)\").matches) {\n return rgb;\n }\n for (const [name, RGB] of this._colors) {\n if (RGB.every((x, i) => x === rgb[i])) {\n return ColorManager._colorsMapping.get(name);\n }\n }\n return rgb;\n }\n getHexCode(name) {\n const rgb = this._colors.get(name);\n if (!rgb) {\n return name;\n }\n return _util.Util.makeHexColor(...rgb);\n }\n}\nexports.ColorManager = ColorManager;\nclass AnnotationEditorUIManager {\n #activeEditor = null;\n #allEditors = new Map();\n #allLayers = new Map();\n #altTextManager = null;\n #annotationStorage = null;\n #commandManager = new CommandManager();\n #currentPageIndex = 0;\n #deletedAnnotationsElementIds = new Set();\n #draggingEditors = null;\n #editorTypes = null;\n #editorsToRescale = new Set();\n #filterFactory = null;\n #idManager = new IdManager();\n #isEnabled = false;\n #isWaiting = false;\n #lastActiveElement = null;\n #mode = _util.AnnotationEditorType.NONE;\n #selectedEditors = new Set();\n #pageColors = null;\n #boundBlur = this.blur.bind(this);\n #boundFocus = this.focus.bind(this);\n #boundCopy = this.copy.bind(this);\n #boundCut = this.cut.bind(this);\n #boundPaste = this.paste.bind(this);\n #boundKeydown = this.keydown.bind(this);\n #boundOnEditingAction = this.onEditingAction.bind(this);\n #boundOnPageChanging = this.onPageChanging.bind(this);\n #boundOnScaleChanging = this.onScaleChanging.bind(this);\n #boundOnRotationChanging = this.onRotationChanging.bind(this);\n #previousStates = {\n isEditing: false,\n isEmpty: true,\n hasSomethingToUndo: false,\n hasSomethingToRedo: false,\n hasSelectedEditor: false\n };\n #translation = [0, 0];\n #translationTimeoutId = null;\n #container = null;\n #viewer = null;\n static TRANSLATE_SMALL = 1;\n static TRANSLATE_BIG = 10;\n static get _keyboardManager() {\n const proto = AnnotationEditorUIManager.prototype;\n const arrowChecker = self => {\n const {\n activeElement\n } = document;\n return activeElement && self.#container.contains(activeElement) && self.hasSomethingToControl();\n };\n const small = this.TRANSLATE_SMALL;\n const big = this.TRANSLATE_BIG;\n return (0, _util.shadow)(this, \"_keyboardManager\", new KeyboardManager([[[\"ctrl+a\", \"mac+meta+a\"], proto.selectAll], [[\"ctrl+z\", \"mac+meta+z\"], proto.undo], [[\"ctrl+y\", \"ctrl+shift+z\", \"mac+meta+shift+z\", \"ctrl+shift+Z\", \"mac+meta+shift+Z\"], proto.redo], [[\"Backspace\", \"alt+Backspace\", \"ctrl+Backspace\", \"shift+Backspace\", \"mac+Backspace\", \"mac+alt+Backspace\", \"mac+ctrl+Backspace\", \"Delete\", \"ctrl+Delete\", \"shift+Delete\", \"mac+Delete\"], proto.delete], [[\"Escape\", \"mac+Escape\"], proto.unselectAll], [[\"ArrowLeft\", \"mac+ArrowLeft\"], proto.translateSelectedEditors, {\n args: [-small, 0],\n checker: arrowChecker\n }], [[\"ctrl+ArrowLeft\", \"mac+shift+ArrowLeft\"], proto.translateSelectedEditors, {\n args: [-big, 0],\n checker: arrowChecker\n }], [[\"ArrowRight\", \"mac+ArrowRight\"], proto.translateSelectedEditors, {\n args: [small, 0],\n checker: arrowChecker\n }], [[\"ctrl+ArrowRight\", \"mac+shift+ArrowRight\"], proto.translateSelectedEditors, {\n args: [big, 0],\n checker: arrowChecker\n }], [[\"ArrowUp\", \"mac+ArrowUp\"], proto.translateSelectedEditors, {\n args: [0, -small],\n checker: arrowChecker\n }], [[\"ctrl+ArrowUp\", \"mac+shift+ArrowUp\"], proto.translateSelectedEditors, {\n args: [0, -big],\n checker: arrowChecker\n }], [[\"ArrowDown\", \"mac+ArrowDown\"], proto.translateSelectedEditors, {\n args: [0, small],\n checker: arrowChecker\n }], [[\"ctrl+ArrowDown\", \"mac+shift+ArrowDown\"], proto.translateSelectedEditors, {\n args: [0, big],\n checker: arrowChecker\n }]]));\n }\n constructor(container, viewer, altTextManager, eventBus, pdfDocument, pageColors) {\n this.#container = container;\n this.#viewer = viewer;\n this.#altTextManager = altTextManager;\n this._eventBus = eventBus;\n this._eventBus._on(\"editingaction\", this.#boundOnEditingAction);\n this._eventBus._on(\"pagechanging\", this.#boundOnPageChanging);\n this._eventBus._on(\"scalechanging\", this.#boundOnScaleChanging);\n this._eventBus._on(\"rotationchanging\", this.#boundOnRotationChanging);\n this.#annotationStorage = pdfDocument.annotationStorage;\n this.#filterFactory = pdfDocument.filterFactory;\n this.#pageColors = pageColors;\n this.viewParameters = {\n realScale: _display_utils.PixelsPerInch.PDF_TO_CSS_UNITS,\n rotation: 0\n };\n }\n destroy() {\n this.#removeKeyboardManager();\n this.#removeFocusManager();\n this._eventBus._off(\"editingaction\", this.#boundOnEditingAction);\n this._eventBus._off(\"pagechanging\", this.#boundOnPageChanging);\n this._eventBus._off(\"scalechanging\", this.#boundOnScaleChanging);\n this._eventBus._off(\"rotationchanging\", this.#boundOnRotationChanging);\n for (const layer of this.#allLayers.values()) {\n layer.destroy();\n }\n this.#allLayers.clear();\n this.#allEditors.clear();\n this.#editorsToRescale.clear();\n this.#activeEditor = null;\n this.#selectedEditors.clear();\n this.#commandManager.destroy();\n this.#altTextManager.destroy();\n }\n get hcmFilter() {\n return (0, _util.shadow)(this, \"hcmFilter\", this.#pageColors ? this.#filterFactory.addHCMFilter(this.#pageColors.foreground, this.#pageColors.background) : \"none\");\n }\n get direction() {\n return (0, _util.shadow)(this, \"direction\", getComputedStyle(this.#container).direction);\n }\n editAltText(editor) {\n this.#altTextManager?.editAltText(this, editor);\n }\n onPageChanging({\n pageNumber\n }) {\n this.#currentPageIndex = pageNumber - 1;\n }\n focusMainContainer() {\n this.#container.focus();\n }\n findParent(x, y) {\n for (const layer of this.#allLayers.values()) {\n const {\n x: layerX,\n y: layerY,\n width,\n height\n } = layer.div.getBoundingClientRect();\n if (x >= layerX && x <= layerX + width && y >= layerY && y <= layerY + height) {\n return layer;\n }\n }\n return null;\n }\n disableUserSelect(value = false) {\n this.#viewer.classList.toggle(\"noUserSelect\", value);\n }\n addShouldRescale(editor) {\n this.#editorsToRescale.add(editor);\n }\n removeShouldRescale(editor) {\n this.#editorsToRescale.delete(editor);\n }\n onScaleChanging({\n scale\n }) {\n this.commitOrRemove();\n this.viewParameters.realScale = scale * _display_utils.PixelsPerInch.PDF_TO_CSS_UNITS;\n for (const editor of this.#editorsToRescale) {\n editor.onScaleChanging();\n }\n }\n onRotationChanging({\n pagesRotation\n }) {\n this.commitOrRemove();\n this.viewParameters.rotation = pagesRotation;\n }\n addToAnnotationStorage(editor) {\n if (!editor.isEmpty() && this.#annotationStorage && !this.#annotationStorage.has(editor.id)) {\n this.#annotationStorage.setValue(editor.id, editor);\n }\n }\n #addFocusManager() {\n window.addEventListener(\"focus\", this.#boundFocus);\n window.addEventListener(\"blur\", this.#boundBlur);\n }\n #removeFocusManager() {\n window.removeEventListener(\"focus\", this.#boundFocus);\n window.removeEventListener(\"blur\", this.#boundBlur);\n }\n blur() {\n if (!this.hasSelection) {\n return;\n }\n const {\n activeElement\n } = document;\n for (const editor of this.#selectedEditors) {\n if (editor.div.contains(activeElement)) {\n this.#lastActiveElement = [editor, activeElement];\n editor._focusEventsAllowed = false;\n break;\n }\n }\n }\n focus() {\n if (!this.#lastActiveElement) {\n return;\n }\n const [lastEditor, lastActiveElement] = this.#lastActiveElement;\n this.#lastActiveElement = null;\n lastActiveElement.addEventListener(\"focusin\", () => {\n lastEditor._focusEventsAllowed = true;\n }, {\n once: true\n });\n lastActiveElement.focus();\n }\n #addKeyboardManager() {\n window.addEventListener(\"keydown\", this.#boundKeydown, {\n capture: true\n });\n }\n #removeKeyboardManager() {\n window.removeEventListener(\"keydown\", this.#boundKeydown, {\n capture: true\n });\n }\n #addCopyPasteListeners() {\n document.addEventListener(\"copy\", this.#boundCopy);\n document.addEventListener(\"cut\", this.#boundCut);\n document.addEventListener(\"paste\", this.#boundPaste);\n }\n #removeCopyPasteListeners() {\n document.removeEventListener(\"copy\", this.#boundCopy);\n document.removeEventListener(\"cut\", this.#boundCut);\n document.removeEventListener(\"paste\", this.#boundPaste);\n }\n addEditListeners() {\n this.#addKeyboardManager();\n this.#addCopyPasteListeners();\n }\n removeEditListeners() {\n this.#removeKeyboardManager();\n this.#removeCopyPasteListeners();\n }\n copy(event) {\n event.preventDefault();\n this.#activeEditor?.commitOrRemove();\n if (!this.hasSelection) {\n return;\n }\n const editors = [];\n for (const editor of this.#selectedEditors) {\n const serialized = editor.serialize(true);\n if (serialized) {\n editors.push(serialized);\n }\n }\n if (editors.length === 0) {\n return;\n }\n event.clipboardData.setData(\"application/pdfjs\", JSON.stringify(editors));\n }\n cut(event) {\n this.copy(event);\n this.delete();\n }\n paste(event) {\n event.preventDefault();\n const {\n clipboardData\n } = event;\n for (const item of clipboardData.items) {\n for (const editorType of this.#editorTypes) {\n if (editorType.isHandlingMimeForPasting(item.type)) {\n editorType.paste(item, this.currentLayer);\n return;\n }\n }\n }\n let data = clipboardData.getData(\"application/pdfjs\");\n if (!data) {\n return;\n }\n try {\n data = JSON.parse(data);\n } catch (ex) {\n (0, _util.warn)(`paste: \"${ex.message}\".`);\n return;\n }\n if (!Array.isArray(data)) {\n return;\n }\n this.unselectAll();\n const layer = this.currentLayer;\n try {\n const newEditors = [];\n for (const editor of data) {\n const deserializedEditor = layer.deserialize(editor);\n if (!deserializedEditor) {\n return;\n }\n newEditors.push(deserializedEditor);\n }\n const cmd = () => {\n for (const editor of newEditors) {\n this.#addEditorToLayer(editor);\n }\n this.#selectEditors(newEditors);\n };\n const undo = () => {\n for (const editor of newEditors) {\n editor.remove();\n }\n };\n this.addCommands({\n cmd,\n undo,\n mustExec: true\n });\n } catch (ex) {\n (0, _util.warn)(`paste: \"${ex.message}\".`);\n }\n }\n keydown(event) {\n if (!this.getActive()?.shouldGetKeyboardEvents()) {\n AnnotationEditorUIManager._keyboardManager.exec(this, event);\n }\n }\n onEditingAction(details) {\n if ([\"undo\", \"redo\", \"delete\", \"selectAll\"].includes(details.name)) {\n this[details.name]();\n }\n }\n #dispatchUpdateStates(details) {\n const hasChanged = Object.entries(details).some(([key, value]) => this.#previousStates[key] !== value);\n if (hasChanged) {\n this._eventBus.dispatch(\"annotationeditorstateschanged\", {\n source: this,\n details: Object.assign(this.#previousStates, details)\n });\n }\n }\n #dispatchUpdateUI(details) {\n this._eventBus.dispatch(\"annotationeditorparamschanged\", {\n source: this,\n details\n });\n }\n setEditingState(isEditing) {\n if (isEditing) {\n this.#addFocusManager();\n this.#addKeyboardManager();\n this.#addCopyPasteListeners();\n this.#dispatchUpdateStates({\n isEditing: this.#mode !== _util.AnnotationEditorType.NONE,\n isEmpty: this.#isEmpty(),\n hasSomethingToUndo: this.#commandManager.hasSomethingToUndo(),\n hasSomethingToRedo: this.#commandManager.hasSomethingToRedo(),\n hasSelectedEditor: false\n });\n } else {\n this.#removeFocusManager();\n this.#removeKeyboardManager();\n this.#removeCopyPasteListeners();\n this.#dispatchUpdateStates({\n isEditing: false\n });\n this.disableUserSelect(false);\n }\n }\n registerEditorTypes(types) {\n if (this.#editorTypes) {\n return;\n }\n this.#editorTypes = types;\n for (const editorType of this.#editorTypes) {\n this.#dispatchUpdateUI(editorType.defaultPropertiesToUpdate);\n }\n }\n getId() {\n return this.#idManager.getId();\n }\n get currentLayer() {\n return this.#allLayers.get(this.#currentPageIndex);\n }\n getLayer(pageIndex) {\n return this.#allLayers.get(pageIndex);\n }\n get currentPageIndex() {\n return this.#currentPageIndex;\n }\n addLayer(layer) {\n this.#allLayers.set(layer.pageIndex, layer);\n if (this.#isEnabled) {\n layer.enable();\n } else {\n layer.disable();\n }\n }\n removeLayer(layer) {\n this.#allLayers.delete(layer.pageIndex);\n }\n updateMode(mode, editId = null) {\n if (this.#mode === mode) {\n return;\n }\n this.#mode = mode;\n if (mode === _util.AnnotationEditorType.NONE) {\n this.setEditingState(false);\n this.#disableAll();\n return;\n }\n this.setEditingState(true);\n this.#enableAll();\n this.unselectAll();\n for (const layer of this.#allLayers.values()) {\n layer.updateMode(mode);\n }\n if (!editId) {\n return;\n }\n for (const editor of this.#allEditors.values()) {\n if (editor.annotationElementId === editId) {\n this.setSelected(editor);\n editor.enterInEditMode();\n break;\n }\n }\n }\n updateToolbar(mode) {\n if (mode === this.#mode) {\n return;\n }\n this._eventBus.dispatch(\"switchannotationeditormode\", {\n source: this,\n mode\n });\n }\n updateParams(type, value) {\n if (!this.#editorTypes) {\n return;\n }\n if (type === _util.AnnotationEditorParamsType.CREATE) {\n this.currentLayer.addNewEditor(type);\n return;\n }\n for (const editor of this.#selectedEditors) {\n editor.updateParams(type, value);\n }\n for (const editorType of this.#editorTypes) {\n editorType.updateDefaultParams(type, value);\n }\n }\n enableWaiting(mustWait = false) {\n if (this.#isWaiting === mustWait) {\n return;\n }\n this.#isWaiting = mustWait;\n for (const layer of this.#allLayers.values()) {\n if (mustWait) {\n layer.disableClick();\n } else {\n layer.enableClick();\n }\n layer.div.classList.toggle(\"waiting\", mustWait);\n }\n }\n #enableAll() {\n if (!this.#isEnabled) {\n this.#isEnabled = true;\n for (const layer of this.#allLayers.values()) {\n layer.enable();\n }\n }\n }\n #disableAll() {\n this.unselectAll();\n if (this.#isEnabled) {\n this.#isEnabled = false;\n for (const layer of this.#allLayers.values()) {\n layer.disable();\n }\n }\n }\n getEditors(pageIndex) {\n const editors = [];\n for (const editor of this.#allEditors.values()) {\n if (editor.pageIndex === pageIndex) {\n editors.push(editor);\n }\n }\n return editors;\n }\n getEditor(id) {\n return this.#allEditors.get(id);\n }\n addEditor(editor) {\n this.#allEditors.set(editor.id, editor);\n }\n removeEditor(editor) {\n this.#allEditors.delete(editor.id);\n this.unselect(editor);\n if (!editor.annotationElementId || !this.#deletedAnnotationsElementIds.has(editor.annotationElementId)) {\n this.#annotationStorage?.remove(editor.id);\n }\n }\n addDeletedAnnotationElement(editor) {\n this.#deletedAnnotationsElementIds.add(editor.annotationElementId);\n editor.deleted = true;\n }\n isDeletedAnnotationElement(annotationElementId) {\n return this.#deletedAnnotationsElementIds.has(annotationElementId);\n }\n removeDeletedAnnotationElement(editor) {\n this.#deletedAnnotationsElementIds.delete(editor.annotationElementId);\n editor.deleted = false;\n }\n #addEditorToLayer(editor) {\n const layer = this.#allLayers.get(editor.pageIndex);\n if (layer) {\n layer.addOrRebuild(editor);\n } else {\n this.addEditor(editor);\n }\n }\n setActiveEditor(editor) {\n if (this.#activeEditor === editor) {\n return;\n }\n this.#activeEditor = editor;\n if (editor) {\n this.#dispatchUpdateUI(editor.propertiesToUpdate);\n }\n }\n toggleSelected(editor) {\n if (this.#selectedEditors.has(editor)) {\n this.#selectedEditors.delete(editor);\n editor.unselect();\n this.#dispatchUpdateStates({\n hasSelectedEditor: this.hasSelection\n });\n return;\n }\n this.#selectedEditors.add(editor);\n editor.select();\n this.#dispatchUpdateUI(editor.propertiesToUpdate);\n this.#dispatchUpdateStates({\n hasSelectedEditor: true\n });\n }\n setSelected(editor) {\n for (const ed of this.#selectedEditors) {\n if (ed !== editor) {\n ed.unselect();\n }\n }\n this.#selectedEditors.clear();\n this.#selectedEditors.add(editor);\n editor.select();\n this.#dispatchUpdateUI(editor.propertiesToUpdate);\n this.#dispatchUpdateStates({\n hasSelectedEditor: true\n });\n }\n isSelected(editor) {\n return this.#selectedEditors.has(editor);\n }\n unselect(editor) {\n editor.unselect();\n this.#selectedEditors.delete(editor);\n this.#dispatchUpdateStates({\n hasSelectedEditor: this.hasSelection\n });\n }\n get hasSelection() {\n return this.#selectedEditors.size !== 0;\n }\n undo() {\n this.#commandManager.undo();\n this.#dispatchUpdateStates({\n hasSomethingToUndo: this.#commandManager.hasSomethingToUndo(),\n hasSomethingToRedo: true,\n isEmpty: this.#isEmpty()\n });\n }\n redo() {\n this.#commandManager.redo();\n this.#dispatchUpdateStates({\n hasSomethingToUndo: true,\n hasSomethingToRedo: this.#commandManager.hasSomethingToRedo(),\n isEmpty: this.#isEmpty()\n });\n }\n addCommands(params) {\n this.#commandManager.add(params);\n this.#dispatchUpdateStates({\n hasSomethingToUndo: true,\n hasSomethingToRedo: false,\n isEmpty: this.#isEmpty()\n });\n }\n #isEmpty() {\n if (this.#allEditors.size === 0) {\n return true;\n }\n if (this.#allEditors.size === 1) {\n for (const editor of this.#allEditors.values()) {\n return editor.isEmpty();\n }\n }\n return false;\n }\n delete() {\n this.commitOrRemove();\n if (!this.hasSelection) {\n return;\n }\n const editors = [...this.#selectedEditors];\n const cmd = () => {\n for (const editor of editors) {\n editor.remove();\n }\n };\n const undo = () => {\n for (const editor of editors) {\n this.#addEditorToLayer(editor);\n }\n };\n this.addCommands({\n cmd,\n undo,\n mustExec: true\n });\n }\n commitOrRemove() {\n this.#activeEditor?.commitOrRemove();\n }\n hasSomethingToControl() {\n return this.#activeEditor || this.hasSelection;\n }\n #selectEditors(editors) {\n this.#selectedEditors.clear();\n for (const editor of editors) {\n if (editor.isEmpty()) {\n continue;\n }\n this.#selectedEditors.add(editor);\n editor.select();\n }\n this.#dispatchUpdateStates({\n hasSelectedEditor: true\n });\n }\n selectAll() {\n for (const editor of this.#selectedEditors) {\n editor.commit();\n }\n this.#selectEditors(this.#allEditors.values());\n }\n unselectAll() {\n if (this.#activeEditor) {\n this.#activeEditor.commitOrRemove();\n return;\n }\n if (!this.hasSelection) {\n return;\n }\n for (const editor of this.#selectedEditors) {\n editor.unselect();\n }\n this.#selectedEditors.clear();\n this.#dispatchUpdateStates({\n hasSelectedEditor: false\n });\n }\n translateSelectedEditors(x, y, noCommit = false) {\n if (!noCommit) {\n this.commitOrRemove();\n }\n if (!this.hasSelection) {\n return;\n }\n this.#translation[0] += x;\n this.#translation[1] += y;\n const [totalX, totalY] = this.#translation;\n const editors = [...this.#selectedEditors];\n const TIME_TO_WAIT = 1000;\n if (this.#translationTimeoutId) {\n clearTimeout(this.#translationTimeoutId);\n }\n this.#translationTimeoutId = setTimeout(() => {\n this.#translationTimeoutId = null;\n this.#translation[0] = this.#translation[1] = 0;\n this.addCommands({\n cmd: () => {\n for (const editor of editors) {\n if (this.#allEditors.has(editor.id)) {\n editor.translateInPage(totalX, totalY);\n }\n }\n },\n undo: () => {\n for (const editor of editors) {\n if (this.#allEditors.has(editor.id)) {\n editor.translateInPage(-totalX, -totalY);\n }\n }\n },\n mustExec: false\n });\n }, TIME_TO_WAIT);\n for (const editor of editors) {\n editor.translateInPage(x, y);\n }\n }\n setUpDragSession() {\n if (!this.hasSelection) {\n return;\n }\n this.disableUserSelect(true);\n this.#draggingEditors = new Map();\n for (const editor of this.#selectedEditors) {\n this.#draggingEditors.set(editor, {\n savedX: editor.x,\n savedY: editor.y,\n savedPageIndex: editor.pageIndex,\n newX: 0,\n newY: 0,\n newPageIndex: -1\n });\n }\n }\n endDragSession() {\n if (!this.#draggingEditors) {\n return false;\n }\n this.disableUserSelect(false);\n const map = this.#draggingEditors;\n this.#draggingEditors = null;\n let mustBeAddedInUndoStack = false;\n for (const [{\n x,\n y,\n pageIndex\n }, value] of map) {\n value.newX = x;\n value.newY = y;\n value.newPageIndex = pageIndex;\n mustBeAddedInUndoStack ||= x !== value.savedX || y !== value.savedY || pageIndex !== value.savedPageIndex;\n }\n if (!mustBeAddedInUndoStack) {\n return false;\n }\n const move = (editor, x, y, pageIndex) => {\n if (this.#allEditors.has(editor.id)) {\n const parent = this.#allLayers.get(pageIndex);\n if (parent) {\n editor._setParentAndPosition(parent, x, y);\n } else {\n editor.pageIndex = pageIndex;\n editor.x = x;\n editor.y = y;\n }\n }\n };\n this.addCommands({\n cmd: () => {\n for (const [editor, {\n newX,\n newY,\n newPageIndex\n }] of map) {\n move(editor, newX, newY, newPageIndex);\n }\n },\n undo: () => {\n for (const [editor, {\n savedX,\n savedY,\n savedPageIndex\n }] of map) {\n move(editor, savedX, savedY, savedPageIndex);\n }\n },\n mustExec: true\n });\n return true;\n }\n dragSelectedEditors(tx, ty) {\n if (!this.#draggingEditors) {\n return;\n }\n for (const editor of this.#draggingEditors.keys()) {\n editor.drag(tx, ty);\n }\n }\n rebuild(editor) {\n if (editor.parent === null) {\n const parent = this.getLayer(editor.pageIndex);\n if (parent) {\n parent.changeParent(editor);\n parent.addOrRebuild(editor);\n } else {\n this.addEditor(editor);\n this.addToAnnotationStorage(editor);\n editor.rebuild();\n }\n } else {\n editor.parent.addOrRebuild(editor);\n }\n }\n isActive(editor) {\n return this.#activeEditor === editor;\n }\n getActive() {\n return this.#activeEditor;\n }\n getMode() {\n return this.#mode;\n }\n get imageManager() {\n return (0, _util.shadow)(this, \"imageManager\", new ImageManager());\n }\n}\nexports.AnnotationEditorUIManager = AnnotationEditorUIManager;\n\n/***/ }),\n/* 6 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.StatTimer = exports.RenderingCancelledException = exports.PixelsPerInch = exports.PageViewport = exports.PDFDateString = exports.DOMStandardFontDataFactory = exports.DOMSVGFactory = exports.DOMFilterFactory = exports.DOMCanvasFactory = exports.DOMCMapReaderFactory = void 0;\nexports.deprecated = deprecated;\nexports.getColorValues = getColorValues;\nexports.getCurrentTransform = getCurrentTransform;\nexports.getCurrentTransformInverse = getCurrentTransformInverse;\nexports.getFilenameFromUrl = getFilenameFromUrl;\nexports.getPdfFilenameFromUrl = getPdfFilenameFromUrl;\nexports.getRGB = getRGB;\nexports.getXfaPageViewport = getXfaPageViewport;\nexports.isDataScheme = isDataScheme;\nexports.isPdfFile = isPdfFile;\nexports.isValidFetchUrl = isValidFetchUrl;\nexports.loadScript = loadScript;\nexports.noContextMenu = noContextMenu;\nexports.setLayerDimensions = setLayerDimensions;\nvar _base_factory = __w_pdfjs_require__(7);\nvar _util = __w_pdfjs_require__(1);\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\nclass PixelsPerInch {\n static CSS = 96.0;\n static PDF = 72.0;\n static PDF_TO_CSS_UNITS = this.CSS / this.PDF;\n}\nexports.PixelsPerInch = PixelsPerInch;\nclass DOMFilterFactory extends _base_factory.BaseFilterFactory {\n #_cache;\n #_defs;\n #docId;\n #document;\n #hcmFilter;\n #hcmKey;\n #hcmUrl;\n #hcmHighlightFilter;\n #hcmHighlightKey;\n #hcmHighlightUrl;\n #id = 0;\n constructor({\n docId,\n ownerDocument = globalThis.document\n } = {}) {\n super();\n this.#docId = docId;\n this.#document = ownerDocument;\n }\n get #cache() {\n return this.#_cache ||= new Map();\n }\n get #defs() {\n if (!this.#_defs) {\n const div = this.#document.createElement(\"div\");\n const {\n style\n } = div;\n style.visibility = \"hidden\";\n style.contain = \"strict\";\n style.width = style.height = 0;\n style.position = \"absolute\";\n style.top = style.left = 0;\n style.zIndex = -1;\n const svg = this.#document.createElementNS(SVG_NS, \"svg\");\n svg.setAttribute(\"width\", 0);\n svg.setAttribute(\"height\", 0);\n this.#_defs = this.#document.createElementNS(SVG_NS, \"defs\");\n div.append(svg);\n svg.append(this.#_defs);\n this.#document.body.append(div);\n }\n return this.#_defs;\n }\n addFilter(maps) {\n if (!maps) {\n return \"none\";\n }\n let value = this.#cache.get(maps);\n if (value) {\n return value;\n }\n let tableR, tableG, tableB, key;\n if (maps.length === 1) {\n const mapR = maps[0];\n const buffer = new Array(256);\n for (let i = 0; i < 256; i++) {\n buffer[i] = mapR[i] / 255;\n }\n key = tableR = tableG = tableB = buffer.join(\",\");\n } else {\n const [mapR, mapG, mapB] = maps;\n const bufferR = new Array(256);\n const bufferG = new Array(256);\n const bufferB = new Array(256);\n for (let i = 0; i < 256; i++) {\n bufferR[i] = mapR[i] / 255;\n bufferG[i] = mapG[i] / 255;\n bufferB[i] = mapB[i] / 255;\n }\n tableR = bufferR.join(\",\");\n tableG = bufferG.join(\",\");\n tableB = bufferB.join(\",\");\n key = `${tableR}${tableG}${tableB}`;\n }\n value = this.#cache.get(key);\n if (value) {\n this.#cache.set(maps, value);\n return value;\n }\n const id = `g_${this.#docId}_transfer_map_${this.#id++}`;\n const url = `url(#${id})`;\n this.#cache.set(maps, url);\n this.#cache.set(key, url);\n const filter = this.#createFilter(id);\n this.#addTransferMapConversion(tableR, tableG, tableB, filter);\n return url;\n }\n addHCMFilter(fgColor, bgColor) {\n const key = `${fgColor}-${bgColor}`;\n if (this.#hcmKey === key) {\n return this.#hcmUrl;\n }\n this.#hcmKey = key;\n this.#hcmUrl = \"none\";\n this.#hcmFilter?.remove();\n if (!fgColor || !bgColor) {\n return this.#hcmUrl;\n }\n const fgRGB = this.#getRGB(fgColor);\n fgColor = _util.Util.makeHexColor(...fgRGB);\n const bgRGB = this.#getRGB(bgColor);\n bgColor = _util.Util.makeHexColor(...bgRGB);\n this.#defs.style.color = \"\";\n if (fgColor === \"#000000\" && bgColor === \"#ffffff\" || fgColor === bgColor) {\n return this.#hcmUrl;\n }\n const map = new Array(256);\n for (let i = 0; i <= 255; i++) {\n const x = i / 255;\n map[i] = x <= 0.03928 ? x / 12.92 : ((x + 0.055) / 1.055) ** 2.4;\n }\n const table = map.join(\",\");\n const id = `g_${this.#docId}_hcm_filter`;\n const filter = this.#hcmHighlightFilter = this.#createFilter(id);\n this.#addTransferMapConversion(table, table, table, filter);\n this.#addGrayConversion(filter);\n const getSteps = (c, n) => {\n const start = fgRGB[c] / 255;\n const end = bgRGB[c] / 255;\n const arr = new Array(n + 1);\n for (let i = 0; i <= n; i++) {\n arr[i] = start + i / n * (end - start);\n }\n return arr.join(\",\");\n };\n this.#addTransferMapConversion(getSteps(0, 5), getSteps(1, 5), getSteps(2, 5), filter);\n this.#hcmUrl = `url(#${id})`;\n return this.#hcmUrl;\n }\n addHighlightHCMFilter(fgColor, bgColor, newFgColor, newBgColor) {\n const key = `${fgColor}-${bgColor}-${newFgColor}-${newBgColor}`;\n if (this.#hcmHighlightKey === key) {\n return this.#hcmHighlightUrl;\n }\n this.#hcmHighlightKey = key;\n this.#hcmHighlightUrl = \"none\";\n this.#hcmHighlightFilter?.remove();\n if (!fgColor || !bgColor) {\n return this.#hcmHighlightUrl;\n }\n const [fgRGB, bgRGB] = [fgColor, bgColor].map(this.#getRGB.bind(this));\n let fgGray = Math.round(0.2126 * fgRGB[0] + 0.7152 * fgRGB[1] + 0.0722 * fgRGB[2]);\n let bgGray = Math.round(0.2126 * bgRGB[0] + 0.7152 * bgRGB[1] + 0.0722 * bgRGB[2]);\n let [newFgRGB, newBgRGB] = [newFgColor, newBgColor].map(this.#getRGB.bind(this));\n if (bgGray < fgGray) {\n [fgGray, bgGray, newFgRGB, newBgRGB] = [bgGray, fgGray, newBgRGB, newFgRGB];\n }\n this.#defs.style.color = \"\";\n const getSteps = (fg, bg, n) => {\n const arr = new Array(256);\n const step = (bgGray - fgGray) / n;\n const newStart = fg / 255;\n const newStep = (bg - fg) / (255 * n);\n let prev = 0;\n for (let i = 0; i <= n; i++) {\n const k = Math.round(fgGray + i * step);\n const value = newStart + i * newStep;\n for (let j = prev; j <= k; j++) {\n arr[j] = value;\n }\n prev = k + 1;\n }\n for (let i = prev; i < 256; i++) {\n arr[i] = arr[prev - 1];\n }\n return arr.join(\",\");\n };\n const id = `g_${this.#docId}_hcm_highlight_filter`;\n const filter = this.#hcmHighlightFilter = this.#createFilter(id);\n this.#addGrayConversion(filter);\n this.#addTransferMapConversion(getSteps(newFgRGB[0], newBgRGB[0], 5), getSteps(newFgRGB[1], newBgRGB[1], 5), getSteps(newFgRGB[2], newBgRGB[2], 5), filter);\n this.#hcmHighlightUrl = `url(#${id})`;\n return this.#hcmHighlightUrl;\n }\n destroy(keepHCM = false) {\n if (keepHCM && (this.#hcmUrl || this.#hcmHighlightUrl)) {\n return;\n }\n if (this.#_defs) {\n this.#_defs.parentNode.parentNode.remove();\n this.#_defs = null;\n }\n if (this.#_cache) {\n this.#_cache.clear();\n this.#_cache = null;\n }\n this.#id = 0;\n }\n #addGrayConversion(filter) {\n const feColorMatrix = this.#document.createElementNS(SVG_NS, \"feColorMatrix\");\n feColorMatrix.setAttribute(\"type\", \"matrix\");\n feColorMatrix.setAttribute(\"values\", \"0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0 0 0 1 0\");\n filter.append(feColorMatrix);\n }\n #createFilter(id) {\n const filter = this.#document.createElementNS(SVG_NS, \"filter\");\n filter.setAttribute(\"color-interpolation-filters\", \"sRGB\");\n filter.setAttribute(\"id\", id);\n this.#defs.append(filter);\n return filter;\n }\n #appendFeFunc(feComponentTransfer, func, table) {\n const feFunc = this.#document.createElementNS(SVG_NS, func);\n feFunc.setAttribute(\"type\", \"discrete\");\n feFunc.setAttribute(\"tableValues\", table);\n feComponentTransfer.append(feFunc);\n }\n #addTransferMapConversion(rTable, gTable, bTable, filter) {\n const feComponentTransfer = this.#document.createElementNS(SVG_NS, \"feComponentTransfer\");\n filter.append(feComponentTransfer);\n this.#appendFeFunc(feComponentTransfer, \"feFuncR\", rTable);\n this.#appendFeFunc(feComponentTransfer, \"feFuncG\", gTable);\n this.#appendFeFunc(feComponentTransfer, \"feFuncB\", bTable);\n }\n #getRGB(color) {\n this.#defs.style.color = color;\n return getRGB(getComputedStyle(this.#defs).getPropertyValue(\"color\"));\n }\n}\nexports.DOMFilterFactory = DOMFilterFactory;\nclass DOMCanvasFactory extends _base_factory.BaseCanvasFactory {\n constructor({\n ownerDocument = globalThis.document\n } = {}) {\n super();\n this._document = ownerDocument;\n }\n _createCanvas(width, height) {\n const canvas = this._document.createElement(\"canvas\");\n canvas.width = width;\n canvas.height = height;\n return canvas;\n }\n}\nexports.DOMCanvasFactory = DOMCanvasFactory;\nasync function fetchData(url, asTypedArray = false) {\n if (isValidFetchUrl(url, document.baseURI)) {\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n return asTypedArray ? new Uint8Array(await response.arrayBuffer()) : (0, _util.stringToBytes)(await response.text());\n }\n return new Promise((resolve, reject) => {\n const request = new XMLHttpRequest();\n request.open(\"GET\", url, true);\n if (asTypedArray) {\n request.responseType = \"arraybuffer\";\n }\n request.onreadystatechange = () => {\n if (request.readyState !== XMLHttpRequest.DONE) {\n return;\n }\n if (request.status === 200 || request.status === 0) {\n let data;\n if (asTypedArray && request.response) {\n data = new Uint8Array(request.response);\n } else if (!asTypedArray && request.responseText) {\n data = (0, _util.stringToBytes)(request.responseText);\n }\n if (data) {\n resolve(data);\n return;\n }\n }\n reject(new Error(request.statusText));\n };\n request.send(null);\n });\n}\nclass DOMCMapReaderFactory extends _base_factory.BaseCMapReaderFactory {\n _fetchData(url, compressionType) {\n return fetchData(url, this.isCompressed).then(data => {\n return {\n cMapData: data,\n compressionType\n };\n });\n }\n}\nexports.DOMCMapReaderFactory = DOMCMapReaderFactory;\nclass DOMStandardFontDataFactory extends _base_factory.BaseStandardFontDataFactory {\n _fetchData(url) {\n return fetchData(url, true);\n }\n}\nexports.DOMStandardFontDataFactory = DOMStandardFontDataFactory;\nclass DOMSVGFactory extends _base_factory.BaseSVGFactory {\n _createSVG(type) {\n return document.createElementNS(SVG_NS, type);\n }\n}\nexports.DOMSVGFactory = DOMSVGFactory;\nclass PageViewport {\n constructor({\n viewBox,\n scale,\n rotation,\n offsetX = 0,\n offsetY = 0,\n dontFlip = false\n }) {\n this.viewBox = viewBox;\n this.scale = scale;\n this.rotation = rotation;\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n const centerX = (viewBox[2] + viewBox[0]) / 2;\n const centerY = (viewBox[3] + viewBox[1]) / 2;\n let rotateA, rotateB, rotateC, rotateD;\n rotation %= 360;\n if (rotation < 0) {\n rotation += 360;\n }\n switch (rotation) {\n case 180:\n rotateA = -1;\n rotateB = 0;\n rotateC = 0;\n rotateD = 1;\n break;\n case 90:\n rotateA = 0;\n rotateB = 1;\n rotateC = 1;\n rotateD = 0;\n break;\n case 270:\n rotateA = 0;\n rotateB = -1;\n rotateC = -1;\n rotateD = 0;\n break;\n case 0:\n rotateA = 1;\n rotateB = 0;\n rotateC = 0;\n rotateD = -1;\n break;\n default:\n throw new Error(\"PageViewport: Invalid rotation, must be a multiple of 90 degrees.\");\n }\n if (dontFlip) {\n rotateC = -rotateC;\n rotateD = -rotateD;\n }\n let offsetCanvasX, offsetCanvasY;\n let width, height;\n if (rotateA === 0) {\n offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY;\n width = (viewBox[3] - viewBox[1]) * scale;\n height = (viewBox[2] - viewBox[0]) * scale;\n } else {\n offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY;\n width = (viewBox[2] - viewBox[0]) * scale;\n height = (viewBox[3] - viewBox[1]) * scale;\n }\n this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY];\n this.width = width;\n this.height = height;\n }\n get rawDims() {\n const {\n viewBox\n } = this;\n return (0, _util.shadow)(this, \"rawDims\", {\n pageWidth: viewBox[2] - viewBox[0],\n pageHeight: viewBox[3] - viewBox[1],\n pageX: viewBox[0],\n pageY: viewBox[1]\n });\n }\n clone({\n scale = this.scale,\n rotation = this.rotation,\n offsetX = this.offsetX,\n offsetY = this.offsetY,\n dontFlip = false\n } = {}) {\n return new PageViewport({\n viewBox: this.viewBox.slice(),\n scale,\n rotation,\n offsetX,\n offsetY,\n dontFlip\n });\n }\n convertToViewportPoint(x, y) {\n return _util.Util.applyTransform([x, y], this.transform);\n }\n convertToViewportRectangle(rect) {\n const topLeft = _util.Util.applyTransform([rect[0], rect[1]], this.transform);\n const bottomRight = _util.Util.applyTransform([rect[2], rect[3]], this.transform);\n return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]];\n }\n convertToPdfPoint(x, y) {\n return _util.Util.applyInverseTransform([x, y], this.transform);\n }\n}\nexports.PageViewport = PageViewport;\nclass RenderingCancelledException extends _util.BaseException {\n constructor(msg, extraDelay = 0) {\n super(msg, \"RenderingCancelledException\");\n this.extraDelay = extraDelay;\n }\n}\nexports.RenderingCancelledException = RenderingCancelledException;\nfunction isDataScheme(url) {\n const ii = url.length;\n let i = 0;\n while (i < ii && url[i].trim() === \"\") {\n i++;\n }\n return url.substring(i, i + 5).toLowerCase() === \"data:\";\n}\nfunction isPdfFile(filename) {\n return typeof filename === \"string\" && /\\.pdf$/i.test(filename);\n}\nfunction getFilenameFromUrl(url, onlyStripPath = false) {\n if (!onlyStripPath) {\n [url] = url.split(/[#?]/, 1);\n }\n return url.substring(url.lastIndexOf(\"/\") + 1);\n}\nfunction getPdfFilenameFromUrl(url, defaultFilename = \"document.pdf\") {\n if (typeof url !== \"string\") {\n return defaultFilename;\n }\n if (isDataScheme(url)) {\n (0, _util.warn)('getPdfFilenameFromUrl: ignore \"data:\"-URL for performance reasons.');\n return defaultFilename;\n }\n const reURI = /^(?:(?:[^:]+:)?\\/\\/[^/]+)?([^?#]*)(\\?[^#]*)?(#.*)?$/;\n const reFilename = /[^/?#=]+\\.pdf\\b(?!.*\\.pdf\\b)/i;\n const splitURI = reURI.exec(url);\n let suggestedFilename = reFilename.exec(splitURI[1]) || reFilename.exec(splitURI[2]) || reFilename.exec(splitURI[3]);\n if (suggestedFilename) {\n suggestedFilename = suggestedFilename[0];\n if (suggestedFilename.includes(\"%\")) {\n try {\n suggestedFilename = reFilename.exec(decodeURIComponent(suggestedFilename))[0];\n } catch {}\n }\n }\n return suggestedFilename || defaultFilename;\n}\nclass StatTimer {\n started = Object.create(null);\n times = [];\n time(name) {\n if (name in this.started) {\n (0, _util.warn)(`Timer is already running for ${name}`);\n }\n this.started[name] = Date.now();\n }\n timeEnd(name) {\n if (!(name in this.started)) {\n (0, _util.warn)(`Timer has not been started for ${name}`);\n }\n this.times.push({\n name,\n start: this.started[name],\n end: Date.now()\n });\n delete this.started[name];\n }\n toString() {\n const outBuf = [];\n let longest = 0;\n for (const {\n name\n } of this.times) {\n longest = Math.max(name.length, longest);\n }\n for (const {\n name,\n start,\n end\n } of this.times) {\n outBuf.push(`${name.padEnd(longest)} ${end - start}ms\\n`);\n }\n return outBuf.join(\"\");\n }\n}\nexports.StatTimer = StatTimer;\nfunction isValidFetchUrl(url, baseUrl) {\n try {\n const {\n protocol\n } = baseUrl ? new URL(url, baseUrl) : new URL(url);\n return protocol === \"http:\" || protocol === \"https:\";\n } catch {\n return false;\n }\n}\nfunction noContextMenu(e) {\n e.preventDefault();\n}\nfunction loadScript(src, removeScriptElement = false) {\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = src;\n script.onload = function (evt) {\n if (removeScriptElement) {\n script.remove();\n }\n resolve(evt);\n };\n script.onerror = function () {\n reject(new Error(`Cannot load script at: ${script.src}`));\n };\n (document.head || document.documentElement).append(script);\n });\n}\nfunction deprecated(details) {\n console.log(\"Deprecated API usage: \" + details);\n}\nlet pdfDateStringRegex;\nclass PDFDateString {\n static toDateObject(input) {\n if (!input || typeof input !== \"string\") {\n return null;\n }\n pdfDateStringRegex ||= new RegExp(\"^D:\" + \"(\\\\d{4})\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"([Z|+|-])?\" + \"(\\\\d{2})?\" + \"'?\" + \"(\\\\d{2})?\" + \"'?\");\n const matches = pdfDateStringRegex.exec(input);\n if (!matches) {\n return null;\n }\n const year = parseInt(matches[1], 10);\n let month = parseInt(matches[2], 10);\n month = month >= 1 && month <= 12 ? month - 1 : 0;\n let day = parseInt(matches[3], 10);\n day = day >= 1 && day <= 31 ? day : 1;\n let hour = parseInt(matches[4], 10);\n hour = hour >= 0 && hour <= 23 ? hour : 0;\n let minute = parseInt(matches[5], 10);\n minute = minute >= 0 && minute <= 59 ? minute : 0;\n let second = parseInt(matches[6], 10);\n second = second >= 0 && second <= 59 ? second : 0;\n const universalTimeRelation = matches[7] || \"Z\";\n let offsetHour = parseInt(matches[8], 10);\n offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0;\n let offsetMinute = parseInt(matches[9], 10) || 0;\n offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0;\n if (universalTimeRelation === \"-\") {\n hour += offsetHour;\n minute += offsetMinute;\n } else if (universalTimeRelation === \"+\") {\n hour -= offsetHour;\n minute -= offsetMinute;\n }\n return new Date(Date.UTC(year, month, day, hour, minute, second));\n }\n}\nexports.PDFDateString = PDFDateString;\nfunction getXfaPageViewport(xfaPage, {\n scale = 1,\n rotation = 0\n}) {\n const {\n width,\n height\n } = xfaPage.attributes.style;\n const viewBox = [0, 0, parseInt(width), parseInt(height)];\n return new PageViewport({\n viewBox,\n scale,\n rotation\n });\n}\nfunction getRGB(color) {\n if (color.startsWith(\"#\")) {\n const colorRGB = parseInt(color.slice(1), 16);\n return [(colorRGB & 0xff0000) >> 16, (colorRGB & 0x00ff00) >> 8, colorRGB & 0x0000ff];\n }\n if (color.startsWith(\"rgb(\")) {\n return color.slice(4, -1).split(\",\").map(x => parseInt(x));\n }\n if (color.startsWith(\"rgba(\")) {\n return color.slice(5, -1).split(\",\").map(x => parseInt(x)).slice(0, 3);\n }\n (0, _util.warn)(`Not a valid color format: \"${color}\"`);\n return [0, 0, 0];\n}\nfunction getColorValues(colors) {\n const span = document.createElement(\"span\");\n span.style.visibility = \"hidden\";\n document.body.append(span);\n for (const name of colors.keys()) {\n span.style.color = name;\n const computedColor = window.getComputedStyle(span).color;\n colors.set(name, getRGB(computedColor));\n }\n span.remove();\n}\nfunction getCurrentTransform(ctx) {\n const {\n a,\n b,\n c,\n d,\n e,\n f\n } = ctx.getTransform();\n return [a, b, c, d, e, f];\n}\nfunction getCurrentTransformInverse(ctx) {\n const {\n a,\n b,\n c,\n d,\n e,\n f\n } = ctx.getTransform().invertSelf();\n return [a, b, c, d, e, f];\n}\nfunction setLayerDimensions(div, viewport, mustFlip = false, mustRotate = true) {\n if (viewport instanceof PageViewport) {\n const {\n pageWidth,\n pageHeight\n } = viewport.rawDims;\n const {\n style\n } = div;\n const useRound = _util.FeatureTest.isCSSRoundSupported;\n const w = `var(--scale-factor) * ${pageWidth}px`,\n h = `var(--scale-factor) * ${pageHeight}px`;\n const widthStr = useRound ? `round(${w}, 1px)` : `calc(${w})`,\n heightStr = useRound ? `round(${h}, 1px)` : `calc(${h})`;\n if (!mustFlip || viewport.rotation % 180 === 0) {\n style.width = widthStr;\n style.height = heightStr;\n } else {\n style.width = heightStr;\n style.height = widthStr;\n }\n }\n if (mustRotate) {\n div.setAttribute(\"data-main-rotation\", viewport.rotation);\n }\n}\n\n/***/ }),\n/* 7 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.BaseStandardFontDataFactory = exports.BaseSVGFactory = exports.BaseFilterFactory = exports.BaseCanvasFactory = exports.BaseCMapReaderFactory = void 0;\nvar _util = __w_pdfjs_require__(1);\nclass BaseFilterFactory {\n constructor() {\n if (this.constructor === BaseFilterFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseFilterFactory.\");\n }\n }\n addFilter(maps) {\n return \"none\";\n }\n addHCMFilter(fgColor, bgColor) {\n return \"none\";\n }\n addHighlightHCMFilter(fgColor, bgColor, newFgColor, newBgColor) {\n return \"none\";\n }\n destroy(keepHCM = false) {}\n}\nexports.BaseFilterFactory = BaseFilterFactory;\nclass BaseCanvasFactory {\n constructor() {\n if (this.constructor === BaseCanvasFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseCanvasFactory.\");\n }\n }\n create(width, height) {\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n const canvas = this._createCanvas(width, height);\n return {\n canvas,\n context: canvas.getContext(\"2d\")\n };\n }\n reset(canvasAndContext, width, height) {\n if (!canvasAndContext.canvas) {\n throw new Error(\"Canvas is not specified\");\n }\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n canvasAndContext.canvas.width = width;\n canvasAndContext.canvas.height = height;\n }\n destroy(canvasAndContext) {\n if (!canvasAndContext.canvas) {\n throw new Error(\"Canvas is not specified\");\n }\n canvasAndContext.canvas.width = 0;\n canvasAndContext.canvas.height = 0;\n canvasAndContext.canvas = null;\n canvasAndContext.context = null;\n }\n _createCanvas(width, height) {\n (0, _util.unreachable)(\"Abstract method `_createCanvas` called.\");\n }\n}\nexports.BaseCanvasFactory = BaseCanvasFactory;\nclass BaseCMapReaderFactory {\n constructor({\n baseUrl = null,\n isCompressed = true\n }) {\n if (this.constructor === BaseCMapReaderFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseCMapReaderFactory.\");\n }\n this.baseUrl = baseUrl;\n this.isCompressed = isCompressed;\n }\n async fetch({\n name\n }) {\n if (!this.baseUrl) {\n throw new Error('The CMap \"baseUrl\" parameter must be specified, ensure that ' + 'the \"cMapUrl\" and \"cMapPacked\" API parameters are provided.');\n }\n if (!name) {\n throw new Error(\"CMap name must be specified.\");\n }\n const url = this.baseUrl + name + (this.isCompressed ? \".bcmap\" : \"\");\n const compressionType = this.isCompressed ? _util.CMapCompressionType.BINARY : _util.CMapCompressionType.NONE;\n return this._fetchData(url, compressionType).catch(reason => {\n throw new Error(`Unable to load ${this.isCompressed ? \"binary \" : \"\"}CMap at: ${url}`);\n });\n }\n _fetchData(url, compressionType) {\n (0, _util.unreachable)(\"Abstract method `_fetchData` called.\");\n }\n}\nexports.BaseCMapReaderFactory = BaseCMapReaderFactory;\nclass BaseStandardFontDataFactory {\n constructor({\n baseUrl = null\n }) {\n if (this.constructor === BaseStandardFontDataFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseStandardFontDataFactory.\");\n }\n this.baseUrl = baseUrl;\n }\n async fetch({\n filename\n }) {\n if (!this.baseUrl) {\n throw new Error('The standard font \"baseUrl\" parameter must be specified, ensure that ' + 'the \"standardFontDataUrl\" API parameter is provided.');\n }\n if (!filename) {\n throw new Error(\"Font filename must be specified.\");\n }\n const url = `${this.baseUrl}${filename}`;\n return this._fetchData(url).catch(reason => {\n throw new Error(`Unable to load font data at: ${url}`);\n });\n }\n _fetchData(url) {\n (0, _util.unreachable)(\"Abstract method `_fetchData` called.\");\n }\n}\nexports.BaseStandardFontDataFactory = BaseStandardFontDataFactory;\nclass BaseSVGFactory {\n constructor() {\n if (this.constructor === BaseSVGFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseSVGFactory.\");\n }\n }\n create(width, height, skipDimensions = false) {\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid SVG dimensions\");\n }\n const svg = this._createSVG(\"svg:svg\");\n svg.setAttribute(\"version\", \"1.1\");\n if (!skipDimensions) {\n svg.setAttribute(\"width\", `${width}px`);\n svg.setAttribute(\"height\", `${height}px`);\n }\n svg.setAttribute(\"preserveAspectRatio\", \"none\");\n svg.setAttribute(\"viewBox\", `0 0 ${width} ${height}`);\n return svg;\n }\n createElement(type) {\n if (typeof type !== \"string\") {\n throw new Error(\"Invalid SVG element type\");\n }\n return this._createSVG(type);\n }\n _createSVG(type) {\n (0, _util.unreachable)(\"Abstract method `_createSVG` called.\");\n }\n}\nexports.BaseSVGFactory = BaseSVGFactory;\n\n/***/ }),\n/* 8 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.MurmurHash3_64 = void 0;\nvar _util = __w_pdfjs_require__(1);\nconst SEED = 0xc3d2e1f0;\nconst MASK_HIGH = 0xffff0000;\nconst MASK_LOW = 0xffff;\nclass MurmurHash3_64 {\n constructor(seed) {\n this.h1 = seed ? seed & 0xffffffff : SEED;\n this.h2 = seed ? seed & 0xffffffff : SEED;\n }\n update(input) {\n let data, length;\n if (typeof input === \"string\") {\n data = new Uint8Array(input.length * 2);\n length = 0;\n for (let i = 0, ii = input.length; i < ii; i++) {\n const code = input.charCodeAt(i);\n if (code <= 0xff) {\n data[length++] = code;\n } else {\n data[length++] = code >>> 8;\n data[length++] = code & 0xff;\n }\n }\n } else if ((0, _util.isArrayBuffer)(input)) {\n data = input.slice();\n length = data.byteLength;\n } else {\n throw new Error(\"Wrong data format in MurmurHash3_64_update. \" + \"Input must be a string or array.\");\n }\n const blockCounts = length >> 2;\n const tailLength = length - blockCounts * 4;\n const dataUint32 = new Uint32Array(data.buffer, 0, blockCounts);\n let k1 = 0,\n k2 = 0;\n let h1 = this.h1,\n h2 = this.h2;\n const C1 = 0xcc9e2d51,\n C2 = 0x1b873593;\n const C1_LOW = C1 & MASK_LOW,\n C2_LOW = C2 & MASK_LOW;\n for (let i = 0; i < blockCounts; i++) {\n if (i & 1) {\n k1 = dataUint32[i];\n k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;\n k1 = k1 << 15 | k1 >>> 17;\n k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;\n h1 ^= k1;\n h1 = h1 << 13 | h1 >>> 19;\n h1 = h1 * 5 + 0xe6546b64;\n } else {\n k2 = dataUint32[i];\n k2 = k2 * C1 & MASK_HIGH | k2 * C1_LOW & MASK_LOW;\n k2 = k2 << 15 | k2 >>> 17;\n k2 = k2 * C2 & MASK_HIGH | k2 * C2_LOW & MASK_LOW;\n h2 ^= k2;\n h2 = h2 << 13 | h2 >>> 19;\n h2 = h2 * 5 + 0xe6546b64;\n }\n }\n k1 = 0;\n switch (tailLength) {\n case 3:\n k1 ^= data[blockCounts * 4 + 2] << 16;\n case 2:\n k1 ^= data[blockCounts * 4 + 1] << 8;\n case 1:\n k1 ^= data[blockCounts * 4];\n k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;\n k1 = k1 << 15 | k1 >>> 17;\n k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;\n if (blockCounts & 1) {\n h1 ^= k1;\n } else {\n h2 ^= k1;\n }\n }\n this.h1 = h1;\n this.h2 = h2;\n }\n hexdigest() {\n let h1 = this.h1,\n h2 = this.h2;\n h1 ^= h2 >>> 1;\n h1 = h1 * 0xed558ccd & MASK_HIGH | h1 * 0x8ccd & MASK_LOW;\n h2 = h2 * 0xff51afd7 & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xafd7ed55 & MASK_HIGH) >>> 16;\n h1 ^= h2 >>> 1;\n h1 = h1 * 0x1a85ec53 & MASK_HIGH | h1 * 0xec53 & MASK_LOW;\n h2 = h2 * 0xc4ceb9fe & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xb9fe1a85 & MASK_HIGH) >>> 16;\n h1 ^= h2 >>> 1;\n return (h1 >>> 0).toString(16).padStart(8, \"0\") + (h2 >>> 0).toString(16).padStart(8, \"0\");\n }\n}\nexports.MurmurHash3_64 = MurmurHash3_64;\n\n/***/ }),\n/* 9 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.FontLoader = exports.FontFaceObject = void 0;\nvar _util = __w_pdfjs_require__(1);\nclass FontLoader {\n #systemFonts = new Set();\n constructor({\n ownerDocument = globalThis.document,\n styleElement = null\n }) {\n this._document = ownerDocument;\n this.nativeFontFaces = new Set();\n this.styleElement = null;\n this.loadingRequests = [];\n this.loadTestFontId = 0;\n }\n addNativeFontFace(nativeFontFace) {\n this.nativeFontFaces.add(nativeFontFace);\n this._document.fonts.add(nativeFontFace);\n }\n removeNativeFontFace(nativeFontFace) {\n this.nativeFontFaces.delete(nativeFontFace);\n this._document.fonts.delete(nativeFontFace);\n }\n insertRule(rule) {\n if (!this.styleElement) {\n this.styleElement = this._document.createElement(\"style\");\n this._document.documentElement.getElementsByTagName(\"head\")[0].append(this.styleElement);\n }\n const styleSheet = this.styleElement.sheet;\n styleSheet.insertRule(rule, styleSheet.cssRules.length);\n }\n clear() {\n for (const nativeFontFace of this.nativeFontFaces) {\n this._document.fonts.delete(nativeFontFace);\n }\n this.nativeFontFaces.clear();\n this.#systemFonts.clear();\n if (this.styleElement) {\n this.styleElement.remove();\n this.styleElement = null;\n }\n }\n async loadSystemFont(info) {\n if (!info || this.#systemFonts.has(info.loadedName)) {\n return;\n }\n (0, _util.assert)(!this.disableFontFace, \"loadSystemFont shouldn't be called when `disableFontFace` is set.\");\n if (this.isFontLoadingAPISupported) {\n const {\n loadedName,\n src,\n style\n } = info;\n const fontFace = new FontFace(loadedName, src, style);\n this.addNativeFontFace(fontFace);\n try {\n await fontFace.load();\n this.#systemFonts.add(loadedName);\n } catch {\n (0, _util.warn)(`Cannot load system font: ${info.baseFontName}, installing it could help to improve PDF rendering.`);\n this.removeNativeFontFace(fontFace);\n }\n return;\n }\n (0, _util.unreachable)(\"Not implemented: loadSystemFont without the Font Loading API.\");\n }\n async bind(font) {\n if (font.attached || font.missingFile && !font.systemFontInfo) {\n return;\n }\n font.attached = true;\n if (font.systemFontInfo) {\n await this.loadSystemFont(font.systemFontInfo);\n return;\n }\n if (this.isFontLoadingAPISupported) {\n const nativeFontFace = font.createNativeFontFace();\n if (nativeFontFace) {\n this.addNativeFontFace(nativeFontFace);\n try {\n await nativeFontFace.loaded;\n } catch (ex) {\n (0, _util.warn)(`Failed to load font '${nativeFontFace.family}': '${ex}'.`);\n font.disableFontFace = true;\n throw ex;\n }\n }\n return;\n }\n const rule = font.createFontFaceRule();\n if (rule) {\n this.insertRule(rule);\n if (this.isSyncFontLoadingSupported) {\n return;\n }\n await new Promise(resolve => {\n const request = this._queueLoadingCallback(resolve);\n this._prepareFontLoadEvent(font, request);\n });\n }\n }\n get isFontLoadingAPISupported() {\n const hasFonts = !!this._document?.fonts;\n return (0, _util.shadow)(this, \"isFontLoadingAPISupported\", hasFonts);\n }\n get isSyncFontLoadingSupported() {\n let supported = false;\n if (_util.isNodeJS) {\n supported = true;\n } else if (typeof navigator !== \"undefined\" && /Mozilla\\/5.0.*?rv:\\d+.*? Gecko/.test(navigator.userAgent)) {\n supported = true;\n }\n return (0, _util.shadow)(this, \"isSyncFontLoadingSupported\", supported);\n }\n _queueLoadingCallback(callback) {\n function completeRequest() {\n (0, _util.assert)(!request.done, \"completeRequest() cannot be called twice.\");\n request.done = true;\n while (loadingRequests.length > 0 && loadingRequests[0].done) {\n const otherRequest = loadingRequests.shift();\n setTimeout(otherRequest.callback, 0);\n }\n }\n const {\n loadingRequests\n } = this;\n const request = {\n done: false,\n complete: completeRequest,\n callback\n };\n loadingRequests.push(request);\n return request;\n }\n get _loadTestFont() {\n const testFont = atob(\"T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA\" + \"FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA\" + \"ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA\" + \"AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1\" + \"AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD\" + \"6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM\" + \"AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D\" + \"IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA\" + \"AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA\" + \"AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB\" + \"AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY\" + \"AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA\" + \"AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA\" + \"AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC\" + \"AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3\" + \"Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj\" + \"FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==\");\n return (0, _util.shadow)(this, \"_loadTestFont\", testFont);\n }\n _prepareFontLoadEvent(font, request) {\n function int32(data, offset) {\n return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff;\n }\n function spliceString(s, offset, remove, insert) {\n const chunk1 = s.substring(0, offset);\n const chunk2 = s.substring(offset + remove);\n return chunk1 + insert + chunk2;\n }\n let i, ii;\n const canvas = this._document.createElement(\"canvas\");\n canvas.width = 1;\n canvas.height = 1;\n const ctx = canvas.getContext(\"2d\");\n let called = 0;\n function isFontReady(name, callback) {\n if (++called > 30) {\n (0, _util.warn)(\"Load test font never loaded.\");\n callback();\n return;\n }\n ctx.font = \"30px \" + name;\n ctx.fillText(\".\", 0, 20);\n const imageData = ctx.getImageData(0, 0, 1, 1);\n if (imageData.data[3] > 0) {\n callback();\n return;\n }\n setTimeout(isFontReady.bind(null, name, callback));\n }\n const loadTestFontId = `lt${Date.now()}${this.loadTestFontId++}`;\n let data = this._loadTestFont;\n const COMMENT_OFFSET = 976;\n data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId);\n const CFF_CHECKSUM_OFFSET = 16;\n const XXXX_VALUE = 0x58585858;\n let checksum = int32(data, CFF_CHECKSUM_OFFSET);\n for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) {\n checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0;\n }\n if (i < loadTestFontId.length) {\n checksum = checksum - XXXX_VALUE + int32(loadTestFontId + \"XXX\", i) | 0;\n }\n data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, (0, _util.string32)(checksum));\n const url = `url(data:font/opentype;base64,${btoa(data)});`;\n const rule = `@font-face {font-family:\"${loadTestFontId}\";src:${url}}`;\n this.insertRule(rule);\n const div = this._document.createElement(\"div\");\n div.style.visibility = \"hidden\";\n div.style.width = div.style.height = \"10px\";\n div.style.position = \"absolute\";\n div.style.top = div.style.left = \"0px\";\n for (const name of [font.loadedName, loadTestFontId]) {\n const span = this._document.createElement(\"span\");\n span.textContent = \"Hi\";\n span.style.fontFamily = name;\n div.append(span);\n }\n this._document.body.append(div);\n isFontReady(loadTestFontId, () => {\n div.remove();\n request.complete();\n });\n }\n}\nexports.FontLoader = FontLoader;\nclass FontFaceObject {\n constructor(translatedData, {\n isEvalSupported = true,\n disableFontFace = false,\n ignoreErrors = false,\n inspectFont = null\n }) {\n this.compiledGlyphs = Object.create(null);\n for (const i in translatedData) {\n this[i] = translatedData[i];\n }\n this.isEvalSupported = isEvalSupported !== false;\n this.disableFontFace = disableFontFace === true;\n this.ignoreErrors = ignoreErrors === true;\n this._inspectFont = inspectFont;\n }\n createNativeFontFace() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n let nativeFontFace;\n if (!this.cssFontInfo) {\n nativeFontFace = new FontFace(this.loadedName, this.data, {});\n } else {\n const css = {\n weight: this.cssFontInfo.fontWeight\n };\n if (this.cssFontInfo.italicAngle) {\n css.style = `oblique ${this.cssFontInfo.italicAngle}deg`;\n }\n nativeFontFace = new FontFace(this.cssFontInfo.fontFamily, this.data, css);\n }\n this._inspectFont?.(this);\n return nativeFontFace;\n }\n createFontFaceRule() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n const data = (0, _util.bytesToString)(this.data);\n const url = `url(data:${this.mimetype};base64,${btoa(data)});`;\n let rule;\n if (!this.cssFontInfo) {\n rule = `@font-face {font-family:\"${this.loadedName}\";src:${url}}`;\n } else {\n let css = `font-weight: ${this.cssFontInfo.fontWeight};`;\n if (this.cssFontInfo.italicAngle) {\n css += `font-style: oblique ${this.cssFontInfo.italicAngle}deg;`;\n }\n rule = `@font-face {font-family:\"${this.cssFontInfo.fontFamily}\";${css}src:${url}}`;\n }\n this._inspectFont?.(this, url);\n return rule;\n }\n getPathGenerator(objs, character) {\n if (this.compiledGlyphs[character] !== undefined) {\n return this.compiledGlyphs[character];\n }\n let cmds;\n try {\n cmds = objs.get(this.loadedName + \"_path_\" + character);\n } catch (ex) {\n if (!this.ignoreErrors) {\n throw ex;\n }\n (0, _util.warn)(`getPathGenerator - ignoring character: \"${ex}\".`);\n return this.compiledGlyphs[character] = function (c, size) {};\n }\n if (this.isEvalSupported && _util.FeatureTest.isEvalSupported) {\n const jsBuf = [];\n for (const current of cmds) {\n const args = current.args !== undefined ? current.args.join(\",\") : \"\";\n jsBuf.push(\"c.\", current.cmd, \"(\", args, \");\\n\");\n }\n return this.compiledGlyphs[character] = new Function(\"c\", \"size\", jsBuf.join(\"\"));\n }\n return this.compiledGlyphs[character] = function (c, size) {\n for (const current of cmds) {\n if (current.cmd === \"scale\") {\n current.args = [size, -size];\n }\n c[current.cmd].apply(c, current.args);\n }\n };\n }\n}\nexports.FontFaceObject = FontFaceObject;\n\n/***/ }),\n/* 10 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.NodeStandardFontDataFactory = exports.NodeFilterFactory = exports.NodeCanvasFactory = exports.NodeCMapReaderFactory = void 0;\nvar _base_factory = __w_pdfjs_require__(7);\nvar _util = __w_pdfjs_require__(1);\n;\n;\nconst fetchData = function (url) {\n return new Promise((resolve, reject) => {\n const fs = require(\"fs\");\n fs.readFile(url, (error, data) => {\n if (error || !data) {\n reject(new Error(error));\n return;\n }\n resolve(new Uint8Array(data));\n });\n });\n};\nclass NodeFilterFactory extends _base_factory.BaseFilterFactory {}\nexports.NodeFilterFactory = NodeFilterFactory;\nclass NodeCanvasFactory extends _base_factory.BaseCanvasFactory {\n _createCanvas(width, height) {\n const Canvas = require(\"canvas\");\n return Canvas.createCanvas(width, height);\n }\n}\nexports.NodeCanvasFactory = NodeCanvasFactory;\nclass NodeCMapReaderFactory extends _base_factory.BaseCMapReaderFactory {\n _fetchData(url, compressionType) {\n return fetchData(url).then(data => {\n return {\n cMapData: data,\n compressionType\n };\n });\n }\n}\nexports.NodeCMapReaderFactory = NodeCMapReaderFactory;\nclass NodeStandardFontDataFactory extends _base_factory.BaseStandardFontDataFactory {\n _fetchData(url) {\n return fetchData(url);\n }\n}\nexports.NodeStandardFontDataFactory = NodeStandardFontDataFactory;\n\n/***/ }),\n/* 11 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.CanvasGraphics = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _display_utils = __w_pdfjs_require__(6);\nvar _pattern_helper = __w_pdfjs_require__(12);\nvar _image_utils = __w_pdfjs_require__(13);\nconst MIN_FONT_SIZE = 16;\nconst MAX_FONT_SIZE = 100;\nconst MAX_GROUP_SIZE = 4096;\nconst EXECUTION_TIME = 15;\nconst EXECUTION_STEPS = 10;\nconst MAX_SIZE_TO_COMPILE = 1000;\nconst FULL_CHUNK_HEIGHT = 16;\nfunction mirrorContextOperations(ctx, destCtx) {\n if (ctx._removeMirroring) {\n throw new Error(\"Context is already forwarding operations.\");\n }\n ctx.__originalSave = ctx.save;\n ctx.__originalRestore = ctx.restore;\n ctx.__originalRotate = ctx.rotate;\n ctx.__originalScale = ctx.scale;\n ctx.__originalTranslate = ctx.translate;\n ctx.__originalTransform = ctx.transform;\n ctx.__originalSetTransform = ctx.setTransform;\n ctx.__originalResetTransform = ctx.resetTransform;\n ctx.__originalClip = ctx.clip;\n ctx.__originalMoveTo = ctx.moveTo;\n ctx.__originalLineTo = ctx.lineTo;\n ctx.__originalBezierCurveTo = ctx.bezierCurveTo;\n ctx.__originalRect = ctx.rect;\n ctx.__originalClosePath = ctx.closePath;\n ctx.__originalBeginPath = ctx.beginPath;\n ctx._removeMirroring = () => {\n ctx.save = ctx.__originalSave;\n ctx.restore = ctx.__originalRestore;\n ctx.rotate = ctx.__originalRotate;\n ctx.scale = ctx.__originalScale;\n ctx.translate = ctx.__originalTranslate;\n ctx.transform = ctx.__originalTransform;\n ctx.setTransform = ctx.__originalSetTransform;\n ctx.resetTransform = ctx.__originalResetTransform;\n ctx.clip = ctx.__originalClip;\n ctx.moveTo = ctx.__originalMoveTo;\n ctx.lineTo = ctx.__originalLineTo;\n ctx.bezierCurveTo = ctx.__originalBezierCurveTo;\n ctx.rect = ctx.__originalRect;\n ctx.closePath = ctx.__originalClosePath;\n ctx.beginPath = ctx.__originalBeginPath;\n delete ctx._removeMirroring;\n };\n ctx.save = function ctxSave() {\n destCtx.save();\n this.__originalSave();\n };\n ctx.restore = function ctxRestore() {\n destCtx.restore();\n this.__originalRestore();\n };\n ctx.translate = function ctxTranslate(x, y) {\n destCtx.translate(x, y);\n this.__originalTranslate(x, y);\n };\n ctx.scale = function ctxScale(x, y) {\n destCtx.scale(x, y);\n this.__originalScale(x, y);\n };\n ctx.transform = function ctxTransform(a, b, c, d, e, f) {\n destCtx.transform(a, b, c, d, e, f);\n this.__originalTransform(a, b, c, d, e, f);\n };\n ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) {\n destCtx.setTransform(a, b, c, d, e, f);\n this.__originalSetTransform(a, b, c, d, e, f);\n };\n ctx.resetTransform = function ctxResetTransform() {\n destCtx.resetTransform();\n this.__originalResetTransform();\n };\n ctx.rotate = function ctxRotate(angle) {\n destCtx.rotate(angle);\n this.__originalRotate(angle);\n };\n ctx.clip = function ctxRotate(rule) {\n destCtx.clip(rule);\n this.__originalClip(rule);\n };\n ctx.moveTo = function (x, y) {\n destCtx.moveTo(x, y);\n this.__originalMoveTo(x, y);\n };\n ctx.lineTo = function (x, y) {\n destCtx.lineTo(x, y);\n this.__originalLineTo(x, y);\n };\n ctx.bezierCurveTo = function (cp1x, cp1y, cp2x, cp2y, x, y) {\n destCtx.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);\n this.__originalBezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);\n };\n ctx.rect = function (x, y, width, height) {\n destCtx.rect(x, y, width, height);\n this.__originalRect(x, y, width, height);\n };\n ctx.closePath = function () {\n destCtx.closePath();\n this.__originalClosePath();\n };\n ctx.beginPath = function () {\n destCtx.beginPath();\n this.__originalBeginPath();\n };\n}\nclass CachedCanvases {\n constructor(canvasFactory) {\n this.canvasFactory = canvasFactory;\n this.cache = Object.create(null);\n }\n getCanvas(id, width, height) {\n let canvasEntry;\n if (this.cache[id] !== undefined) {\n canvasEntry = this.cache[id];\n this.canvasFactory.reset(canvasEntry, width, height);\n } else {\n canvasEntry = this.canvasFactory.create(width, height);\n this.cache[id] = canvasEntry;\n }\n return canvasEntry;\n }\n delete(id) {\n delete this.cache[id];\n }\n clear() {\n for (const id in this.cache) {\n const canvasEntry = this.cache[id];\n this.canvasFactory.destroy(canvasEntry);\n delete this.cache[id];\n }\n }\n}\nfunction drawImageAtIntegerCoords(ctx, srcImg, srcX, srcY, srcW, srcH, destX, destY, destW, destH) {\n const [a, b, c, d, tx, ty] = (0, _display_utils.getCurrentTransform)(ctx);\n if (b === 0 && c === 0) {\n const tlX = destX * a + tx;\n const rTlX = Math.round(tlX);\n const tlY = destY * d + ty;\n const rTlY = Math.round(tlY);\n const brX = (destX + destW) * a + tx;\n const rWidth = Math.abs(Math.round(brX) - rTlX) || 1;\n const brY = (destY + destH) * d + ty;\n const rHeight = Math.abs(Math.round(brY) - rTlY) || 1;\n ctx.setTransform(Math.sign(a), 0, 0, Math.sign(d), rTlX, rTlY);\n ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rWidth, rHeight);\n ctx.setTransform(a, b, c, d, tx, ty);\n return [rWidth, rHeight];\n }\n if (a === 0 && d === 0) {\n const tlX = destY * c + tx;\n const rTlX = Math.round(tlX);\n const tlY = destX * b + ty;\n const rTlY = Math.round(tlY);\n const brX = (destY + destH) * c + tx;\n const rWidth = Math.abs(Math.round(brX) - rTlX) || 1;\n const brY = (destX + destW) * b + ty;\n const rHeight = Math.abs(Math.round(brY) - rTlY) || 1;\n ctx.setTransform(0, Math.sign(b), Math.sign(c), 0, rTlX, rTlY);\n ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rHeight, rWidth);\n ctx.setTransform(a, b, c, d, tx, ty);\n return [rHeight, rWidth];\n }\n ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, destX, destY, destW, destH);\n const scaleX = Math.hypot(a, b);\n const scaleY = Math.hypot(c, d);\n return [scaleX * destW, scaleY * destH];\n}\nfunction compileType3Glyph(imgData) {\n const {\n width,\n height\n } = imgData;\n if (width > MAX_SIZE_TO_COMPILE || height > MAX_SIZE_TO_COMPILE) {\n return null;\n }\n const POINT_TO_PROCESS_LIMIT = 1000;\n const POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]);\n const width1 = width + 1;\n let points = new Uint8Array(width1 * (height + 1));\n let i, j, j0;\n const lineSize = width + 7 & ~7;\n let data = new Uint8Array(lineSize * height),\n pos = 0;\n for (const elem of imgData.data) {\n let mask = 128;\n while (mask > 0) {\n data[pos++] = elem & mask ? 0 : 255;\n mask >>= 1;\n }\n }\n let count = 0;\n pos = 0;\n if (data[pos] !== 0) {\n points[0] = 1;\n ++count;\n }\n for (j = 1; j < width; j++) {\n if (data[pos] !== data[pos + 1]) {\n points[j] = data[pos] ? 2 : 1;\n ++count;\n }\n pos++;\n }\n if (data[pos] !== 0) {\n points[j] = 2;\n ++count;\n }\n for (i = 1; i < height; i++) {\n pos = i * lineSize;\n j0 = i * width1;\n if (data[pos - lineSize] !== data[pos]) {\n points[j0] = data[pos] ? 1 : 8;\n ++count;\n }\n let sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0);\n for (j = 1; j < width; j++) {\n sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) + (data[pos - lineSize + 1] ? 8 : 0);\n if (POINT_TYPES[sum]) {\n points[j0 + j] = POINT_TYPES[sum];\n ++count;\n }\n pos++;\n }\n if (data[pos - lineSize] !== data[pos]) {\n points[j0 + j] = data[pos] ? 2 : 4;\n ++count;\n }\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n }\n pos = lineSize * (height - 1);\n j0 = i * width1;\n if (data[pos] !== 0) {\n points[j0] = 8;\n ++count;\n }\n for (j = 1; j < width; j++) {\n if (data[pos] !== data[pos + 1]) {\n points[j0 + j] = data[pos] ? 4 : 8;\n ++count;\n }\n pos++;\n }\n if (data[pos] !== 0) {\n points[j0 + j] = 4;\n ++count;\n }\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n const steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]);\n const path = new Path2D();\n for (i = 0; count && i <= height; i++) {\n let p = i * width1;\n const end = p + width;\n while (p < end && !points[p]) {\n p++;\n }\n if (p === end) {\n continue;\n }\n path.moveTo(p % width1, i);\n const p0 = p;\n let type = points[p];\n do {\n const step = steps[type];\n do {\n p += step;\n } while (!points[p]);\n const pp = points[p];\n if (pp !== 5 && pp !== 10) {\n type = pp;\n points[p] = 0;\n } else {\n type = pp & 0x33 * type >> 4;\n points[p] &= type >> 2 | type << 2;\n }\n path.lineTo(p % width1, p / width1 | 0);\n if (!points[p]) {\n --count;\n }\n } while (p0 !== p);\n --i;\n }\n data = null;\n points = null;\n const drawOutline = function (c) {\n c.save();\n c.scale(1 / width, -1 / height);\n c.translate(0, -height);\n c.fill(path);\n c.beginPath();\n c.restore();\n };\n return drawOutline;\n}\nclass CanvasExtraState {\n constructor(width, height) {\n this.alphaIsShape = false;\n this.fontSize = 0;\n this.fontSizeScale = 1;\n this.textMatrix = _util.IDENTITY_MATRIX;\n this.textMatrixScale = 1;\n this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n this.leading = 0;\n this.x = 0;\n this.y = 0;\n this.lineX = 0;\n this.lineY = 0;\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRenderingMode = _util.TextRenderingMode.FILL;\n this.textRise = 0;\n this.fillColor = \"#000000\";\n this.strokeColor = \"#000000\";\n this.patternFill = false;\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.activeSMask = null;\n this.transferMaps = \"none\";\n this.startNewPathAndClipBox([0, 0, width, height]);\n }\n clone() {\n const clone = Object.create(this);\n clone.clipBox = this.clipBox.slice();\n return clone;\n }\n setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n updatePathMinMax(transform, x, y) {\n [x, y] = _util.Util.applyTransform([x, y], transform);\n this.minX = Math.min(this.minX, x);\n this.minY = Math.min(this.minY, y);\n this.maxX = Math.max(this.maxX, x);\n this.maxY = Math.max(this.maxY, y);\n }\n updateRectMinMax(transform, rect) {\n const p1 = _util.Util.applyTransform(rect, transform);\n const p2 = _util.Util.applyTransform(rect.slice(2), transform);\n this.minX = Math.min(this.minX, p1[0], p2[0]);\n this.minY = Math.min(this.minY, p1[1], p2[1]);\n this.maxX = Math.max(this.maxX, p1[0], p2[0]);\n this.maxY = Math.max(this.maxY, p1[1], p2[1]);\n }\n updateScalingPathMinMax(transform, minMax) {\n _util.Util.scaleMinMax(transform, minMax);\n this.minX = Math.min(this.minX, minMax[0]);\n this.maxX = Math.max(this.maxX, minMax[1]);\n this.minY = Math.min(this.minY, minMax[2]);\n this.maxY = Math.max(this.maxY, minMax[3]);\n }\n updateCurvePathMinMax(transform, x0, y0, x1, y1, x2, y2, x3, y3, minMax) {\n const box = _util.Util.bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3);\n if (minMax) {\n minMax[0] = Math.min(minMax[0], box[0], box[2]);\n minMax[1] = Math.max(minMax[1], box[0], box[2]);\n minMax[2] = Math.min(minMax[2], box[1], box[3]);\n minMax[3] = Math.max(minMax[3], box[1], box[3]);\n return;\n }\n this.updateRectMinMax(transform, box);\n }\n getPathBoundingBox(pathType = _pattern_helper.PathType.FILL, transform = null) {\n const box = [this.minX, this.minY, this.maxX, this.maxY];\n if (pathType === _pattern_helper.PathType.STROKE) {\n if (!transform) {\n (0, _util.unreachable)(\"Stroke bounding box must include transform.\");\n }\n const scale = _util.Util.singularValueDecompose2dScale(transform);\n const xStrokePad = scale[0] * this.lineWidth / 2;\n const yStrokePad = scale[1] * this.lineWidth / 2;\n box[0] -= xStrokePad;\n box[1] -= yStrokePad;\n box[2] += xStrokePad;\n box[3] += yStrokePad;\n }\n return box;\n }\n updateClipFromPath() {\n const intersect = _util.Util.intersect(this.clipBox, this.getPathBoundingBox());\n this.startNewPathAndClipBox(intersect || [0, 0, 0, 0]);\n }\n isEmptyClip() {\n return this.minX === Infinity;\n }\n startNewPathAndClipBox(box) {\n this.clipBox = box;\n this.minX = Infinity;\n this.minY = Infinity;\n this.maxX = 0;\n this.maxY = 0;\n }\n getClippedPathBoundingBox(pathType = _pattern_helper.PathType.FILL, transform = null) {\n return _util.Util.intersect(this.clipBox, this.getPathBoundingBox(pathType, transform));\n }\n}\nfunction putBinaryImageData(ctx, imgData) {\n if (typeof ImageData !== \"undefined\" && imgData instanceof ImageData) {\n ctx.putImageData(imgData, 0, 0);\n return;\n }\n const height = imgData.height,\n width = imgData.width;\n const partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n let srcPos = 0,\n destPos;\n const src = imgData.data;\n const dest = chunkImgData.data;\n let i, j, thisChunkHeight, elemsInThisChunk;\n if (imgData.kind === _util.ImageKind.GRAYSCALE_1BPP) {\n const srcLength = src.byteLength;\n const dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2);\n const dest32DataLength = dest32.length;\n const fullSrcDiff = width + 7 >> 3;\n const white = 0xffffffff;\n const black = _util.FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff;\n for (i = 0; i < totalChunks; i++) {\n thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n destPos = 0;\n for (j = 0; j < thisChunkHeight; j++) {\n const srcDiff = srcLength - srcPos;\n let k = 0;\n const kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7;\n const kEndUnrolled = kEnd & ~7;\n let mask = 0;\n let srcByte = 0;\n for (; k < kEndUnrolled; k += 8) {\n srcByte = src[srcPos++];\n dest32[destPos++] = srcByte & 128 ? white : black;\n dest32[destPos++] = srcByte & 64 ? white : black;\n dest32[destPos++] = srcByte & 32 ? white : black;\n dest32[destPos++] = srcByte & 16 ? white : black;\n dest32[destPos++] = srcByte & 8 ? white : black;\n dest32[destPos++] = srcByte & 4 ? white : black;\n dest32[destPos++] = srcByte & 2 ? white : black;\n dest32[destPos++] = srcByte & 1 ? white : black;\n }\n for (; k < kEnd; k++) {\n if (mask === 0) {\n srcByte = src[srcPos++];\n mask = 128;\n }\n dest32[destPos++] = srcByte & mask ? white : black;\n mask >>= 1;\n }\n }\n while (destPos < dest32DataLength) {\n dest32[destPos++] = 0;\n }\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else if (imgData.kind === _util.ImageKind.RGBA_32BPP) {\n j = 0;\n elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4;\n for (i = 0; i < fullChunks; i++) {\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n srcPos += elemsInThisChunk;\n ctx.putImageData(chunkImgData, 0, j);\n j += FULL_CHUNK_HEIGHT;\n }\n if (i < totalChunks) {\n elemsInThisChunk = width * partialChunkHeight * 4;\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n ctx.putImageData(chunkImgData, 0, j);\n }\n } else if (imgData.kind === _util.ImageKind.RGB_24BPP) {\n thisChunkHeight = FULL_CHUNK_HEIGHT;\n elemsInThisChunk = width * thisChunkHeight;\n for (i = 0; i < totalChunks; i++) {\n if (i >= fullChunks) {\n thisChunkHeight = partialChunkHeight;\n elemsInThisChunk = width * thisChunkHeight;\n }\n destPos = 0;\n for (j = elemsInThisChunk; j--;) {\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = 255;\n }\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else {\n throw new Error(`bad image kind: ${imgData.kind}`);\n }\n}\nfunction putBinaryImageMask(ctx, imgData) {\n if (imgData.bitmap) {\n ctx.drawImage(imgData.bitmap, 0, 0);\n return;\n }\n const height = imgData.height,\n width = imgData.width;\n const partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n let srcPos = 0;\n const src = imgData.data;\n const dest = chunkImgData.data;\n for (let i = 0; i < totalChunks; i++) {\n const thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n ({\n srcPos\n } = (0, _image_utils.convertBlackAndWhiteToRGBA)({\n src,\n srcPos,\n dest,\n width,\n height: thisChunkHeight,\n nonBlackColor: 0\n }));\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n}\nfunction copyCtxState(sourceCtx, destCtx) {\n const properties = [\"strokeStyle\", \"fillStyle\", \"fillRule\", \"globalAlpha\", \"lineWidth\", \"lineCap\", \"lineJoin\", \"miterLimit\", \"globalCompositeOperation\", \"font\", \"filter\"];\n for (const property of properties) {\n if (sourceCtx[property] !== undefined) {\n destCtx[property] = sourceCtx[property];\n }\n }\n if (sourceCtx.setLineDash !== undefined) {\n destCtx.setLineDash(sourceCtx.getLineDash());\n destCtx.lineDashOffset = sourceCtx.lineDashOffset;\n }\n}\nfunction resetCtxToDefault(ctx) {\n ctx.strokeStyle = ctx.fillStyle = \"#000000\";\n ctx.fillRule = \"nonzero\";\n ctx.globalAlpha = 1;\n ctx.lineWidth = 1;\n ctx.lineCap = \"butt\";\n ctx.lineJoin = \"miter\";\n ctx.miterLimit = 10;\n ctx.globalCompositeOperation = \"source-over\";\n ctx.font = \"10px sans-serif\";\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash([]);\n ctx.lineDashOffset = 0;\n }\n if (!_util.isNodeJS) {\n const {\n filter\n } = ctx;\n if (filter !== \"none\" && filter !== \"\") {\n ctx.filter = \"none\";\n }\n }\n}\nfunction composeSMaskBackdrop(bytes, r0, g0, b0) {\n const length = bytes.length;\n for (let i = 3; i < length; i += 4) {\n const alpha = bytes[i];\n if (alpha === 0) {\n bytes[i - 3] = r0;\n bytes[i - 2] = g0;\n bytes[i - 1] = b0;\n } else if (alpha < 255) {\n const alpha_ = 255 - alpha;\n bytes[i - 3] = bytes[i - 3] * alpha + r0 * alpha_ >> 8;\n bytes[i - 2] = bytes[i - 2] * alpha + g0 * alpha_ >> 8;\n bytes[i - 1] = bytes[i - 1] * alpha + b0 * alpha_ >> 8;\n }\n }\n}\nfunction composeSMaskAlpha(maskData, layerData, transferMap) {\n const length = maskData.length;\n const scale = 1 / 255;\n for (let i = 3; i < length; i += 4) {\n const alpha = transferMap ? transferMap[maskData[i]] : maskData[i];\n layerData[i] = layerData[i] * alpha * scale | 0;\n }\n}\nfunction composeSMaskLuminosity(maskData, layerData, transferMap) {\n const length = maskData.length;\n for (let i = 3; i < length; i += 4) {\n const y = maskData[i - 3] * 77 + maskData[i - 2] * 152 + maskData[i - 1] * 28;\n layerData[i] = transferMap ? layerData[i] * transferMap[y >> 8] >> 8 : layerData[i] * y >> 16;\n }\n}\nfunction genericComposeSMask(maskCtx, layerCtx, width, height, subtype, backdrop, transferMap, layerOffsetX, layerOffsetY, maskOffsetX, maskOffsetY) {\n const hasBackdrop = !!backdrop;\n const r0 = hasBackdrop ? backdrop[0] : 0;\n const g0 = hasBackdrop ? backdrop[1] : 0;\n const b0 = hasBackdrop ? backdrop[2] : 0;\n const composeFn = subtype === \"Luminosity\" ? composeSMaskLuminosity : composeSMaskAlpha;\n const PIXELS_TO_PROCESS = 1048576;\n const chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width));\n for (let row = 0; row < height; row += chunkSize) {\n const chunkHeight = Math.min(chunkSize, height - row);\n const maskData = maskCtx.getImageData(layerOffsetX - maskOffsetX, row + (layerOffsetY - maskOffsetY), width, chunkHeight);\n const layerData = layerCtx.getImageData(layerOffsetX, row + layerOffsetY, width, chunkHeight);\n if (hasBackdrop) {\n composeSMaskBackdrop(maskData.data, r0, g0, b0);\n }\n composeFn(maskData.data, layerData.data, transferMap);\n layerCtx.putImageData(layerData, layerOffsetX, row + layerOffsetY);\n }\n}\nfunction composeSMask(ctx, smask, layerCtx, layerBox) {\n const layerOffsetX = layerBox[0];\n const layerOffsetY = layerBox[1];\n const layerWidth = layerBox[2] - layerOffsetX;\n const layerHeight = layerBox[3] - layerOffsetY;\n if (layerWidth === 0 || layerHeight === 0) {\n return;\n }\n genericComposeSMask(smask.context, layerCtx, layerWidth, layerHeight, smask.subtype, smask.backdrop, smask.transferMap, layerOffsetX, layerOffsetY, smask.offsetX, smask.offsetY);\n ctx.save();\n ctx.globalAlpha = 1;\n ctx.globalCompositeOperation = \"source-over\";\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.drawImage(layerCtx.canvas, 0, 0);\n ctx.restore();\n}\nfunction getImageSmoothingEnabled(transform, interpolate) {\n const scale = _util.Util.singularValueDecompose2dScale(transform);\n scale[0] = Math.fround(scale[0]);\n scale[1] = Math.fround(scale[1]);\n const actualScale = Math.fround((globalThis.devicePixelRatio || 1) * _display_utils.PixelsPerInch.PDF_TO_CSS_UNITS);\n if (interpolate !== undefined) {\n return interpolate;\n } else if (scale[0] <= actualScale || scale[1] <= actualScale) {\n return true;\n }\n return false;\n}\nconst LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\nconst LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\nconst NORMAL_CLIP = {};\nconst EO_CLIP = {};\nclass CanvasGraphics {\n constructor(canvasCtx, commonObjs, objs, canvasFactory, filterFactory, {\n optionalContentConfig,\n markedContentStack = null\n }, annotationCanvasMap, pageColors) {\n this.ctx = canvasCtx;\n this.current = new CanvasExtraState(this.ctx.canvas.width, this.ctx.canvas.height);\n this.stateStack = [];\n this.pendingClip = null;\n this.pendingEOFill = false;\n this.res = null;\n this.xobjs = null;\n this.commonObjs = commonObjs;\n this.objs = objs;\n this.canvasFactory = canvasFactory;\n this.filterFactory = filterFactory;\n this.groupStack = [];\n this.processingType3 = null;\n this.baseTransform = null;\n this.baseTransformStack = [];\n this.groupLevel = 0;\n this.smaskStack = [];\n this.smaskCounter = 0;\n this.tempSMask = null;\n this.suspendedCtx = null;\n this.contentVisible = true;\n this.markedContentStack = markedContentStack || [];\n this.optionalContentConfig = optionalContentConfig;\n this.cachedCanvases = new CachedCanvases(this.canvasFactory);\n this.cachedPatterns = new Map();\n this.annotationCanvasMap = annotationCanvasMap;\n this.viewportScale = 1;\n this.outputScaleX = 1;\n this.outputScaleY = 1;\n this.pageColors = pageColors;\n this._cachedScaleForStroking = [-1, 0];\n this._cachedGetSinglePixelWidth = null;\n this._cachedBitmapsMap = new Map();\n }\n getObject(data, fallback = null) {\n if (typeof data === \"string\") {\n return data.startsWith(\"g_\") ? this.commonObjs.get(data) : this.objs.get(data);\n }\n return fallback;\n }\n beginDrawing({\n transform,\n viewport,\n transparency = false,\n background = null\n }) {\n const width = this.ctx.canvas.width;\n const height = this.ctx.canvas.height;\n const savedFillStyle = this.ctx.fillStyle;\n this.ctx.fillStyle = background || \"#ffffff\";\n this.ctx.fillRect(0, 0, width, height);\n this.ctx.fillStyle = savedFillStyle;\n if (transparency) {\n const transparentCanvas = this.cachedCanvases.getCanvas(\"transparent\", width, height);\n this.compositeCtx = this.ctx;\n this.transparentCanvas = transparentCanvas.canvas;\n this.ctx = transparentCanvas.context;\n this.ctx.save();\n this.ctx.transform(...(0, _display_utils.getCurrentTransform)(this.compositeCtx));\n }\n this.ctx.save();\n resetCtxToDefault(this.ctx);\n if (transform) {\n this.ctx.transform(...transform);\n this.outputScaleX = transform[0];\n this.outputScaleY = transform[0];\n }\n this.ctx.transform(...viewport.transform);\n this.viewportScale = viewport.scale;\n this.baseTransform = (0, _display_utils.getCurrentTransform)(this.ctx);\n }\n executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper) {\n const argsArray = operatorList.argsArray;\n const fnArray = operatorList.fnArray;\n let i = executionStartIdx || 0;\n const argsArrayLen = argsArray.length;\n if (argsArrayLen === i) {\n return i;\n }\n const chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === \"function\";\n const endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0;\n let steps = 0;\n const commonObjs = this.commonObjs;\n const objs = this.objs;\n let fnId;\n while (true) {\n if (stepper !== undefined && i === stepper.nextBreakPoint) {\n stepper.breakIt(i, continueCallback);\n return i;\n }\n fnId = fnArray[i];\n if (fnId !== _util.OPS.dependency) {\n this[fnId].apply(this, argsArray[i]);\n } else {\n for (const depObjId of argsArray[i]) {\n const objsPool = depObjId.startsWith(\"g_\") ? commonObjs : objs;\n if (!objsPool.has(depObjId)) {\n objsPool.get(depObjId, continueCallback);\n return i;\n }\n }\n }\n i++;\n if (i === argsArrayLen) {\n return i;\n }\n if (chunkOperations && ++steps > EXECUTION_STEPS) {\n if (Date.now() > endTime) {\n continueCallback();\n return i;\n }\n steps = 0;\n }\n }\n }\n #restoreInitialState() {\n while (this.stateStack.length || this.inSMaskMode) {\n this.restore();\n }\n this.ctx.restore();\n if (this.transparentCanvas) {\n this.ctx = this.compositeCtx;\n this.ctx.save();\n this.ctx.setTransform(1, 0, 0, 1, 0, 0);\n this.ctx.drawImage(this.transparentCanvas, 0, 0);\n this.ctx.restore();\n this.transparentCanvas = null;\n }\n }\n endDrawing() {\n this.#restoreInitialState();\n this.cachedCanvases.clear();\n this.cachedPatterns.clear();\n for (const cache of this._cachedBitmapsMap.values()) {\n for (const canvas of cache.values()) {\n if (typeof HTMLCanvasElement !== \"undefined\" && canvas instanceof HTMLCanvasElement) {\n canvas.width = canvas.height = 0;\n }\n }\n cache.clear();\n }\n this._cachedBitmapsMap.clear();\n this.#drawFilter();\n }\n #drawFilter() {\n if (this.pageColors) {\n const hcmFilterId = this.filterFactory.addHCMFilter(this.pageColors.foreground, this.pageColors.background);\n if (hcmFilterId !== \"none\") {\n const savedFilter = this.ctx.filter;\n this.ctx.filter = hcmFilterId;\n this.ctx.drawImage(this.ctx.canvas, 0, 0);\n this.ctx.filter = savedFilter;\n }\n }\n }\n _scaleImage(img, inverseTransform) {\n const width = img.width;\n const height = img.height;\n let widthScale = Math.max(Math.hypot(inverseTransform[0], inverseTransform[1]), 1);\n let heightScale = Math.max(Math.hypot(inverseTransform[2], inverseTransform[3]), 1);\n let paintWidth = width,\n paintHeight = height;\n let tmpCanvasId = \"prescale1\";\n let tmpCanvas, tmpCtx;\n while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) {\n let newWidth = paintWidth,\n newHeight = paintHeight;\n if (widthScale > 2 && paintWidth > 1) {\n newWidth = paintWidth >= 16384 ? Math.floor(paintWidth / 2) - 1 || 1 : Math.ceil(paintWidth / 2);\n widthScale /= paintWidth / newWidth;\n }\n if (heightScale > 2 && paintHeight > 1) {\n newHeight = paintHeight >= 16384 ? Math.floor(paintHeight / 2) - 1 || 1 : Math.ceil(paintHeight) / 2;\n heightScale /= paintHeight / newHeight;\n }\n tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId, newWidth, newHeight);\n tmpCtx = tmpCanvas.context;\n tmpCtx.clearRect(0, 0, newWidth, newHeight);\n tmpCtx.drawImage(img, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight);\n img = tmpCanvas.canvas;\n paintWidth = newWidth;\n paintHeight = newHeight;\n tmpCanvasId = tmpCanvasId === \"prescale1\" ? \"prescale2\" : \"prescale1\";\n }\n return {\n img,\n paintWidth,\n paintHeight\n };\n }\n _createMaskCanvas(img) {\n const ctx = this.ctx;\n const {\n width,\n height\n } = img;\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n const currentTransform = (0, _display_utils.getCurrentTransform)(ctx);\n let cache, cacheKey, scaled, maskCanvas;\n if ((img.bitmap || img.data) && img.count > 1) {\n const mainKey = img.bitmap || img.data.buffer;\n cacheKey = JSON.stringify(isPatternFill ? currentTransform : [currentTransform.slice(0, 4), fillColor]);\n cache = this._cachedBitmapsMap.get(mainKey);\n if (!cache) {\n cache = new Map();\n this._cachedBitmapsMap.set(mainKey, cache);\n }\n const cachedImage = cache.get(cacheKey);\n if (cachedImage && !isPatternFill) {\n const offsetX = Math.round(Math.min(currentTransform[0], currentTransform[2]) + currentTransform[4]);\n const offsetY = Math.round(Math.min(currentTransform[1], currentTransform[3]) + currentTransform[5]);\n return {\n canvas: cachedImage,\n offsetX,\n offsetY\n };\n }\n scaled = cachedImage;\n }\n if (!scaled) {\n maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height);\n putBinaryImageMask(maskCanvas.context, img);\n }\n let maskToCanvas = _util.Util.transform(currentTransform, [1 / width, 0, 0, -1 / height, 0, 0]);\n maskToCanvas = _util.Util.transform(maskToCanvas, [1, 0, 0, 1, 0, -height]);\n const cord1 = _util.Util.applyTransform([0, 0], maskToCanvas);\n const cord2 = _util.Util.applyTransform([width, height], maskToCanvas);\n const rect = _util.Util.normalizeRect([cord1[0], cord1[1], cord2[0], cord2[1]]);\n const drawnWidth = Math.round(rect[2] - rect[0]) || 1;\n const drawnHeight = Math.round(rect[3] - rect[1]) || 1;\n const fillCanvas = this.cachedCanvases.getCanvas(\"fillCanvas\", drawnWidth, drawnHeight);\n const fillCtx = fillCanvas.context;\n const offsetX = Math.min(cord1[0], cord2[0]);\n const offsetY = Math.min(cord1[1], cord2[1]);\n fillCtx.translate(-offsetX, -offsetY);\n fillCtx.transform(...maskToCanvas);\n if (!scaled) {\n scaled = this._scaleImage(maskCanvas.canvas, (0, _display_utils.getCurrentTransformInverse)(fillCtx));\n scaled = scaled.img;\n if (cache && isPatternFill) {\n cache.set(cacheKey, scaled);\n }\n }\n fillCtx.imageSmoothingEnabled = getImageSmoothingEnabled((0, _display_utils.getCurrentTransform)(fillCtx), img.interpolate);\n drawImageAtIntegerCoords(fillCtx, scaled, 0, 0, scaled.width, scaled.height, 0, 0, width, height);\n fillCtx.globalCompositeOperation = \"source-in\";\n const inverse = _util.Util.transform((0, _display_utils.getCurrentTransformInverse)(fillCtx), [1, 0, 0, 1, -offsetX, -offsetY]);\n fillCtx.fillStyle = isPatternFill ? fillColor.getPattern(ctx, this, inverse, _pattern_helper.PathType.FILL) : fillColor;\n fillCtx.fillRect(0, 0, width, height);\n if (cache && !isPatternFill) {\n this.cachedCanvases.delete(\"fillCanvas\");\n cache.set(cacheKey, fillCanvas.canvas);\n }\n return {\n canvas: fillCanvas.canvas,\n offsetX: Math.round(offsetX),\n offsetY: Math.round(offsetY)\n };\n }\n setLineWidth(width) {\n if (width !== this.current.lineWidth) {\n this._cachedScaleForStroking[0] = -1;\n }\n this.current.lineWidth = width;\n this.ctx.lineWidth = width;\n }\n setLineCap(style) {\n this.ctx.lineCap = LINE_CAP_STYLES[style];\n }\n setLineJoin(style) {\n this.ctx.lineJoin = LINE_JOIN_STYLES[style];\n }\n setMiterLimit(limit) {\n this.ctx.miterLimit = limit;\n }\n setDash(dashArray, dashPhase) {\n const ctx = this.ctx;\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash(dashArray);\n ctx.lineDashOffset = dashPhase;\n }\n }\n setRenderingIntent(intent) {}\n setFlatness(flatness) {}\n setGState(states) {\n for (const [key, value] of states) {\n switch (key) {\n case \"LW\":\n this.setLineWidth(value);\n break;\n case \"LC\":\n this.setLineCap(value);\n break;\n case \"LJ\":\n this.setLineJoin(value);\n break;\n case \"ML\":\n this.setMiterLimit(value);\n break;\n case \"D\":\n this.setDash(value[0], value[1]);\n break;\n case \"RI\":\n this.setRenderingIntent(value);\n break;\n case \"FL\":\n this.setFlatness(value);\n break;\n case \"Font\":\n this.setFont(value[0], value[1]);\n break;\n case \"CA\":\n this.current.strokeAlpha = value;\n break;\n case \"ca\":\n this.current.fillAlpha = value;\n this.ctx.globalAlpha = value;\n break;\n case \"BM\":\n this.ctx.globalCompositeOperation = value;\n break;\n case \"SMask\":\n this.current.activeSMask = value ? this.tempSMask : null;\n this.tempSMask = null;\n this.checkSMaskState();\n break;\n case \"TR\":\n this.ctx.filter = this.current.transferMaps = this.filterFactory.addFilter(value);\n break;\n }\n }\n }\n get inSMaskMode() {\n return !!this.suspendedCtx;\n }\n checkSMaskState() {\n const inSMaskMode = this.inSMaskMode;\n if (this.current.activeSMask && !inSMaskMode) {\n this.beginSMaskMode();\n } else if (!this.current.activeSMask && inSMaskMode) {\n this.endSMaskMode();\n }\n }\n beginSMaskMode() {\n if (this.inSMaskMode) {\n throw new Error(\"beginSMaskMode called while already in smask mode\");\n }\n const drawnWidth = this.ctx.canvas.width;\n const drawnHeight = this.ctx.canvas.height;\n const cacheId = \"smaskGroupAt\" + this.groupLevel;\n const scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight);\n this.suspendedCtx = this.ctx;\n this.ctx = scratchCanvas.context;\n const ctx = this.ctx;\n ctx.setTransform(...(0, _display_utils.getCurrentTransform)(this.suspendedCtx));\n copyCtxState(this.suspendedCtx, ctx);\n mirrorContextOperations(ctx, this.suspendedCtx);\n this.setGState([[\"BM\", \"source-over\"], [\"ca\", 1], [\"CA\", 1]]);\n }\n endSMaskMode() {\n if (!this.inSMaskMode) {\n throw new Error(\"endSMaskMode called while not in smask mode\");\n }\n this.ctx._removeMirroring();\n copyCtxState(this.ctx, this.suspendedCtx);\n this.ctx = this.suspendedCtx;\n this.suspendedCtx = null;\n }\n compose(dirtyBox) {\n if (!this.current.activeSMask) {\n return;\n }\n if (!dirtyBox) {\n dirtyBox = [0, 0, this.ctx.canvas.width, this.ctx.canvas.height];\n } else {\n dirtyBox[0] = Math.floor(dirtyBox[0]);\n dirtyBox[1] = Math.floor(dirtyBox[1]);\n dirtyBox[2] = Math.ceil(dirtyBox[2]);\n dirtyBox[3] = Math.ceil(dirtyBox[3]);\n }\n const smask = this.current.activeSMask;\n const suspendedCtx = this.suspendedCtx;\n composeSMask(suspendedCtx, smask, this.ctx, dirtyBox);\n this.ctx.save();\n this.ctx.setTransform(1, 0, 0, 1, 0, 0);\n this.ctx.clearRect(0, 0, this.ctx.canvas.width, this.ctx.canvas.height);\n this.ctx.restore();\n }\n save() {\n if (this.inSMaskMode) {\n copyCtxState(this.ctx, this.suspendedCtx);\n this.suspendedCtx.save();\n } else {\n this.ctx.save();\n }\n const old = this.current;\n this.stateStack.push(old);\n this.current = old.clone();\n }\n restore() {\n if (this.stateStack.length === 0 && this.inSMaskMode) {\n this.endSMaskMode();\n }\n if (this.stateStack.length !== 0) {\n this.current = this.stateStack.pop();\n if (this.inSMaskMode) {\n this.suspendedCtx.restore();\n copyCtxState(this.suspendedCtx, this.ctx);\n } else {\n this.ctx.restore();\n }\n this.checkSMaskState();\n this.pendingClip = null;\n this._cachedScaleForStroking[0] = -1;\n this._cachedGetSinglePixelWidth = null;\n }\n }\n transform(a, b, c, d, e, f) {\n this.ctx.transform(a, b, c, d, e, f);\n this._cachedScaleForStroking[0] = -1;\n this._cachedGetSinglePixelWidth = null;\n }\n constructPath(ops, args, minMax) {\n const ctx = this.ctx;\n const current = this.current;\n let x = current.x,\n y = current.y;\n let startX, startY;\n const currentTransform = (0, _display_utils.getCurrentTransform)(ctx);\n const isScalingMatrix = currentTransform[0] === 0 && currentTransform[3] === 0 || currentTransform[1] === 0 && currentTransform[2] === 0;\n const minMaxForBezier = isScalingMatrix ? minMax.slice(0) : null;\n for (let i = 0, j = 0, ii = ops.length; i < ii; i++) {\n switch (ops[i] | 0) {\n case _util.OPS.rectangle:\n x = args[j++];\n y = args[j++];\n const width = args[j++];\n const height = args[j++];\n const xw = x + width;\n const yh = y + height;\n ctx.moveTo(x, y);\n if (width === 0 || height === 0) {\n ctx.lineTo(xw, yh);\n } else {\n ctx.lineTo(xw, y);\n ctx.lineTo(xw, yh);\n ctx.lineTo(x, yh);\n }\n if (!isScalingMatrix) {\n current.updateRectMinMax(currentTransform, [x, y, xw, yh]);\n }\n ctx.closePath();\n break;\n case _util.OPS.moveTo:\n x = args[j++];\n y = args[j++];\n ctx.moveTo(x, y);\n if (!isScalingMatrix) {\n current.updatePathMinMax(currentTransform, x, y);\n }\n break;\n case _util.OPS.lineTo:\n x = args[j++];\n y = args[j++];\n ctx.lineTo(x, y);\n if (!isScalingMatrix) {\n current.updatePathMinMax(currentTransform, x, y);\n }\n break;\n case _util.OPS.curveTo:\n startX = x;\n startY = y;\n x = args[j + 4];\n y = args[j + 5];\n ctx.bezierCurveTo(args[j], args[j + 1], args[j + 2], args[j + 3], x, y);\n current.updateCurvePathMinMax(currentTransform, startX, startY, args[j], args[j + 1], args[j + 2], args[j + 3], x, y, minMaxForBezier);\n j += 6;\n break;\n case _util.OPS.curveTo2:\n startX = x;\n startY = y;\n ctx.bezierCurveTo(x, y, args[j], args[j + 1], args[j + 2], args[j + 3]);\n current.updateCurvePathMinMax(currentTransform, startX, startY, x, y, args[j], args[j + 1], args[j + 2], args[j + 3], minMaxForBezier);\n x = args[j + 2];\n y = args[j + 3];\n j += 4;\n break;\n case _util.OPS.curveTo3:\n startX = x;\n startY = y;\n x = args[j + 2];\n y = args[j + 3];\n ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y);\n current.updateCurvePathMinMax(currentTransform, startX, startY, args[j], args[j + 1], x, y, x, y, minMaxForBezier);\n j += 4;\n break;\n case _util.OPS.closePath:\n ctx.closePath();\n break;\n }\n }\n if (isScalingMatrix) {\n current.updateScalingPathMinMax(currentTransform, minMaxForBezier);\n }\n current.setCurrentPoint(x, y);\n }\n closePath() {\n this.ctx.closePath();\n }\n stroke(consumePath = true) {\n const ctx = this.ctx;\n const strokeColor = this.current.strokeColor;\n ctx.globalAlpha = this.current.strokeAlpha;\n if (this.contentVisible) {\n if (typeof strokeColor === \"object\" && strokeColor?.getPattern) {\n ctx.save();\n ctx.strokeStyle = strokeColor.getPattern(ctx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.STROKE);\n this.rescaleAndStroke(false);\n ctx.restore();\n } else {\n this.rescaleAndStroke(true);\n }\n }\n if (consumePath) {\n this.consumePath(this.current.getClippedPathBoundingBox());\n }\n ctx.globalAlpha = this.current.fillAlpha;\n }\n closeStroke() {\n this.closePath();\n this.stroke();\n }\n fill(consumePath = true) {\n const ctx = this.ctx;\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n let needRestore = false;\n if (isPatternFill) {\n ctx.save();\n ctx.fillStyle = fillColor.getPattern(ctx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.FILL);\n needRestore = true;\n }\n const intersect = this.current.getClippedPathBoundingBox();\n if (this.contentVisible && intersect !== null) {\n if (this.pendingEOFill) {\n ctx.fill(\"evenodd\");\n this.pendingEOFill = false;\n } else {\n ctx.fill();\n }\n }\n if (needRestore) {\n ctx.restore();\n }\n if (consumePath) {\n this.consumePath(intersect);\n }\n }\n eoFill() {\n this.pendingEOFill = true;\n this.fill();\n }\n fillStroke() {\n this.fill(false);\n this.stroke(false);\n this.consumePath();\n }\n eoFillStroke() {\n this.pendingEOFill = true;\n this.fillStroke();\n }\n closeFillStroke() {\n this.closePath();\n this.fillStroke();\n }\n closeEOFillStroke() {\n this.pendingEOFill = true;\n this.closePath();\n this.fillStroke();\n }\n endPath() {\n this.consumePath();\n }\n clip() {\n this.pendingClip = NORMAL_CLIP;\n }\n eoClip() {\n this.pendingClip = EO_CLIP;\n }\n beginText() {\n this.current.textMatrix = _util.IDENTITY_MATRIX;\n this.current.textMatrixScale = 1;\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n }\n endText() {\n const paths = this.pendingTextPaths;\n const ctx = this.ctx;\n if (paths === undefined) {\n ctx.beginPath();\n return;\n }\n ctx.save();\n ctx.beginPath();\n for (const path of paths) {\n ctx.setTransform(...path.transform);\n ctx.translate(path.x, path.y);\n path.addToPath(ctx, path.fontSize);\n }\n ctx.restore();\n ctx.clip();\n ctx.beginPath();\n delete this.pendingTextPaths;\n }\n setCharSpacing(spacing) {\n this.current.charSpacing = spacing;\n }\n setWordSpacing(spacing) {\n this.current.wordSpacing = spacing;\n }\n setHScale(scale) {\n this.current.textHScale = scale / 100;\n }\n setLeading(leading) {\n this.current.leading = -leading;\n }\n setFont(fontRefName, size) {\n const fontObj = this.commonObjs.get(fontRefName);\n const current = this.current;\n if (!fontObj) {\n throw new Error(`Can't find font for ${fontRefName}`);\n }\n current.fontMatrix = fontObj.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) {\n (0, _util.warn)(\"Invalid font matrix for font \" + fontRefName);\n }\n if (size < 0) {\n size = -size;\n current.fontDirection = -1;\n } else {\n current.fontDirection = 1;\n }\n this.current.font = fontObj;\n this.current.fontSize = size;\n if (fontObj.isType3Font) {\n return;\n }\n const name = fontObj.loadedName || \"sans-serif\";\n const typeface = fontObj.systemFontInfo?.css || `\"${name}\", ${fontObj.fallbackName}`;\n let bold = \"normal\";\n if (fontObj.black) {\n bold = \"900\";\n } else if (fontObj.bold) {\n bold = \"bold\";\n }\n const italic = fontObj.italic ? \"italic\" : \"normal\";\n let browserFontSize = size;\n if (size < MIN_FONT_SIZE) {\n browserFontSize = MIN_FONT_SIZE;\n } else if (size > MAX_FONT_SIZE) {\n browserFontSize = MAX_FONT_SIZE;\n }\n this.current.fontSizeScale = size / browserFontSize;\n this.ctx.font = `${italic} ${bold} ${browserFontSize}px ${typeface}`;\n }\n setTextRenderingMode(mode) {\n this.current.textRenderingMode = mode;\n }\n setTextRise(rise) {\n this.current.textRise = rise;\n }\n moveText(x, y) {\n this.current.x = this.current.lineX += x;\n this.current.y = this.current.lineY += y;\n }\n setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\n }\n setTextMatrix(a, b, c, d, e, f) {\n this.current.textMatrix = [a, b, c, d, e, f];\n this.current.textMatrixScale = Math.hypot(a, b);\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n }\n nextLine() {\n this.moveText(0, this.current.leading);\n }\n paintChar(character, x, y, patternTransform) {\n const ctx = this.ctx;\n const current = this.current;\n const font = current.font;\n const textRenderingMode = current.textRenderingMode;\n const fontSize = current.fontSize / current.fontSizeScale;\n const fillStrokeMode = textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n const isAddToPathSet = !!(textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG);\n const patternFill = current.patternFill && !font.missingFile;\n let addToPath;\n if (font.disableFontFace || isAddToPathSet || patternFill) {\n addToPath = font.getPathGenerator(this.commonObjs, character);\n }\n if (font.disableFontFace || patternFill) {\n ctx.save();\n ctx.translate(x, y);\n ctx.beginPath();\n addToPath(ctx, fontSize);\n if (patternTransform) {\n ctx.setTransform(...patternTransform);\n }\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.fill();\n }\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.stroke();\n }\n ctx.restore();\n } else {\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.fillText(character, x, y);\n }\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.strokeText(character, x, y);\n }\n }\n if (isAddToPathSet) {\n const paths = this.pendingTextPaths ||= [];\n paths.push({\n transform: (0, _display_utils.getCurrentTransform)(ctx),\n x,\n y,\n fontSize,\n addToPath\n });\n }\n }\n get isFontSubpixelAAEnabled() {\n const {\n context: ctx\n } = this.cachedCanvases.getCanvas(\"isFontSubpixelAAEnabled\", 10, 10);\n ctx.scale(1.5, 1);\n ctx.fillText(\"I\", 0, 10);\n const data = ctx.getImageData(0, 0, 10, 10).data;\n let enabled = false;\n for (let i = 3; i < data.length; i += 4) {\n if (data[i] > 0 && data[i] < 255) {\n enabled = true;\n break;\n }\n }\n return (0, _util.shadow)(this, \"isFontSubpixelAAEnabled\", enabled);\n }\n showText(glyphs) {\n const current = this.current;\n const font = current.font;\n if (font.isType3Font) {\n return this.showType3Text(glyphs);\n }\n const fontSize = current.fontSize;\n if (fontSize === 0) {\n return undefined;\n }\n const ctx = this.ctx;\n const fontSizeScale = current.fontSizeScale;\n const charSpacing = current.charSpacing;\n const wordSpacing = current.wordSpacing;\n const fontDirection = current.fontDirection;\n const textHScale = current.textHScale * fontDirection;\n const glyphsLength = glyphs.length;\n const vertical = font.vertical;\n const spacingDir = vertical ? 1 : -1;\n const defaultVMetrics = font.defaultVMetrics;\n const widthAdvanceScale = fontSize * current.fontMatrix[0];\n const simpleFillText = current.textRenderingMode === _util.TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill;\n ctx.save();\n ctx.transform(...current.textMatrix);\n ctx.translate(current.x, current.y + current.textRise);\n if (fontDirection > 0) {\n ctx.scale(textHScale, -1);\n } else {\n ctx.scale(textHScale, 1);\n }\n let patternTransform;\n if (current.patternFill) {\n ctx.save();\n const pattern = current.fillColor.getPattern(ctx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.FILL);\n patternTransform = (0, _display_utils.getCurrentTransform)(ctx);\n ctx.restore();\n ctx.fillStyle = pattern;\n }\n let lineWidth = current.lineWidth;\n const scale = current.textMatrixScale;\n if (scale === 0 || lineWidth === 0) {\n const fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n lineWidth = this.getSinglePixelWidth();\n }\n } else {\n lineWidth /= scale;\n }\n if (fontSizeScale !== 1.0) {\n ctx.scale(fontSizeScale, fontSizeScale);\n lineWidth /= fontSizeScale;\n }\n ctx.lineWidth = lineWidth;\n if (font.isInvalidPDFjsFont) {\n const chars = [];\n let width = 0;\n for (const glyph of glyphs) {\n chars.push(glyph.unicode);\n width += glyph.width;\n }\n ctx.fillText(chars.join(\"\"), 0, 0);\n current.x += width * widthAdvanceScale * textHScale;\n ctx.restore();\n this.compose();\n return undefined;\n }\n let x = 0,\n i;\n for (i = 0; i < glyphsLength; ++i) {\n const glyph = glyphs[i];\n if (typeof glyph === \"number\") {\n x += spacingDir * glyph * fontSize / 1000;\n continue;\n }\n let restoreNeeded = false;\n const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n const character = glyph.fontChar;\n const accent = glyph.accent;\n let scaledX, scaledY;\n let width = glyph.width;\n if (vertical) {\n const vmetric = glyph.vmetric || defaultVMetrics;\n const vx = -(glyph.vmetric ? vmetric[1] : width * 0.5) * widthAdvanceScale;\n const vy = vmetric[2] * widthAdvanceScale;\n width = vmetric ? -vmetric[0] : width;\n scaledX = vx / fontSizeScale;\n scaledY = (x + vy) / fontSizeScale;\n } else {\n scaledX = x / fontSizeScale;\n scaledY = 0;\n }\n if (font.remeasure && width > 0) {\n const measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale;\n if (width < measuredWidth && this.isFontSubpixelAAEnabled) {\n const characterScaleX = width / measuredWidth;\n restoreNeeded = true;\n ctx.save();\n ctx.scale(characterScaleX, 1);\n scaledX /= characterScaleX;\n } else if (width !== measuredWidth) {\n scaledX += (width - measuredWidth) / 2000 * fontSize / fontSizeScale;\n }\n }\n if (this.contentVisible && (glyph.isInFont || font.missingFile)) {\n if (simpleFillText && !accent) {\n ctx.fillText(character, scaledX, scaledY);\n } else {\n this.paintChar(character, scaledX, scaledY, patternTransform);\n if (accent) {\n const scaledAccentX = scaledX + fontSize * accent.offset.x / fontSizeScale;\n const scaledAccentY = scaledY - fontSize * accent.offset.y / fontSizeScale;\n this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY, patternTransform);\n }\n }\n }\n const charWidth = vertical ? width * widthAdvanceScale - spacing * fontDirection : width * widthAdvanceScale + spacing * fontDirection;\n x += charWidth;\n if (restoreNeeded) {\n ctx.restore();\n }\n }\n if (vertical) {\n current.y -= x;\n } else {\n current.x += x * textHScale;\n }\n ctx.restore();\n this.compose();\n return undefined;\n }\n showType3Text(glyphs) {\n const ctx = this.ctx;\n const current = this.current;\n const font = current.font;\n const fontSize = current.fontSize;\n const fontDirection = current.fontDirection;\n const spacingDir = font.vertical ? 1 : -1;\n const charSpacing = current.charSpacing;\n const wordSpacing = current.wordSpacing;\n const textHScale = current.textHScale * fontDirection;\n const fontMatrix = current.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n const glyphsLength = glyphs.length;\n const isTextInvisible = current.textRenderingMode === _util.TextRenderingMode.INVISIBLE;\n let i, glyph, width, spacingLength;\n if (isTextInvisible || fontSize === 0) {\n return;\n }\n this._cachedScaleForStroking[0] = -1;\n this._cachedGetSinglePixelWidth = null;\n ctx.save();\n ctx.transform(...current.textMatrix);\n ctx.translate(current.x, current.y);\n ctx.scale(textHScale, fontDirection);\n for (i = 0; i < glyphsLength; ++i) {\n glyph = glyphs[i];\n if (typeof glyph === \"number\") {\n spacingLength = spacingDir * glyph * fontSize / 1000;\n this.ctx.translate(spacingLength, 0);\n current.x += spacingLength * textHScale;\n continue;\n }\n const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n const operatorList = font.charProcOperatorList[glyph.operatorListId];\n if (!operatorList) {\n (0, _util.warn)(`Type3 character \"${glyph.operatorListId}\" is not available.`);\n continue;\n }\n if (this.contentVisible) {\n this.processingType3 = glyph;\n this.save();\n ctx.scale(fontSize, fontSize);\n ctx.transform(...fontMatrix);\n this.executeOperatorList(operatorList);\n this.restore();\n }\n const transformed = _util.Util.applyTransform([glyph.width, 0], fontMatrix);\n width = transformed[0] * fontSize + spacing;\n ctx.translate(width, 0);\n current.x += width * textHScale;\n }\n ctx.restore();\n this.processingType3 = null;\n }\n setCharWidth(xWidth, yWidth) {}\n setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) {\n this.ctx.rect(llx, lly, urx - llx, ury - lly);\n this.ctx.clip();\n this.endPath();\n }\n getColorN_Pattern(IR) {\n let pattern;\n if (IR[0] === \"TilingPattern\") {\n const color = IR[1];\n const baseTransform = this.baseTransform || (0, _display_utils.getCurrentTransform)(this.ctx);\n const canvasGraphicsFactory = {\n createCanvasGraphics: ctx => {\n return new CanvasGraphics(ctx, this.commonObjs, this.objs, this.canvasFactory, this.filterFactory, {\n optionalContentConfig: this.optionalContentConfig,\n markedContentStack: this.markedContentStack\n });\n }\n };\n pattern = new _pattern_helper.TilingPattern(IR, color, this.ctx, canvasGraphicsFactory, baseTransform);\n } else {\n pattern = this._getPattern(IR[1], IR[2]);\n }\n return pattern;\n }\n setStrokeColorN() {\n this.current.strokeColor = this.getColorN_Pattern(arguments);\n }\n setFillColorN() {\n this.current.fillColor = this.getColorN_Pattern(arguments);\n this.current.patternFill = true;\n }\n setStrokeRGBColor(r, g, b) {\n const color = _util.Util.makeHexColor(r, g, b);\n this.ctx.strokeStyle = color;\n this.current.strokeColor = color;\n }\n setFillRGBColor(r, g, b) {\n const color = _util.Util.makeHexColor(r, g, b);\n this.ctx.fillStyle = color;\n this.current.fillColor = color;\n this.current.patternFill = false;\n }\n _getPattern(objId, matrix = null) {\n let pattern;\n if (this.cachedPatterns.has(objId)) {\n pattern = this.cachedPatterns.get(objId);\n } else {\n pattern = (0, _pattern_helper.getShadingPattern)(this.getObject(objId));\n this.cachedPatterns.set(objId, pattern);\n }\n if (matrix) {\n pattern.matrix = matrix;\n }\n return pattern;\n }\n shadingFill(objId) {\n if (!this.contentVisible) {\n return;\n }\n const ctx = this.ctx;\n this.save();\n const pattern = this._getPattern(objId);\n ctx.fillStyle = pattern.getPattern(ctx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.SHADING);\n const inv = (0, _display_utils.getCurrentTransformInverse)(ctx);\n if (inv) {\n const {\n width,\n height\n } = ctx.canvas;\n const [x0, y0, x1, y1] = _util.Util.getAxialAlignedBoundingBox([0, 0, width, height], inv);\n this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0);\n } else {\n this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10);\n }\n this.compose(this.current.getClippedPathBoundingBox());\n this.restore();\n }\n beginInlineImage() {\n (0, _util.unreachable)(\"Should not call beginInlineImage\");\n }\n beginImageData() {\n (0, _util.unreachable)(\"Should not call beginImageData\");\n }\n paintFormXObjectBegin(matrix, bbox) {\n if (!this.contentVisible) {\n return;\n }\n this.save();\n this.baseTransformStack.push(this.baseTransform);\n if (Array.isArray(matrix) && matrix.length === 6) {\n this.transform(...matrix);\n }\n this.baseTransform = (0, _display_utils.getCurrentTransform)(this.ctx);\n if (bbox) {\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n this.ctx.rect(bbox[0], bbox[1], width, height);\n this.current.updateRectMinMax((0, _display_utils.getCurrentTransform)(this.ctx), bbox);\n this.clip();\n this.endPath();\n }\n }\n paintFormXObjectEnd() {\n if (!this.contentVisible) {\n return;\n }\n this.restore();\n this.baseTransform = this.baseTransformStack.pop();\n }\n beginGroup(group) {\n if (!this.contentVisible) {\n return;\n }\n this.save();\n if (this.inSMaskMode) {\n this.endSMaskMode();\n this.current.activeSMask = null;\n }\n const currentCtx = this.ctx;\n if (!group.isolated) {\n (0, _util.info)(\"TODO: Support non-isolated groups.\");\n }\n if (group.knockout) {\n (0, _util.warn)(\"Knockout groups not supported.\");\n }\n const currentTransform = (0, _display_utils.getCurrentTransform)(currentCtx);\n if (group.matrix) {\n currentCtx.transform(...group.matrix);\n }\n if (!group.bbox) {\n throw new Error(\"Bounding box is required.\");\n }\n let bounds = _util.Util.getAxialAlignedBoundingBox(group.bbox, (0, _display_utils.getCurrentTransform)(currentCtx));\n const canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height];\n bounds = _util.Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0];\n const offsetX = Math.floor(bounds[0]);\n const offsetY = Math.floor(bounds[1]);\n let drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1);\n let drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1);\n let scaleX = 1,\n scaleY = 1;\n if (drawnWidth > MAX_GROUP_SIZE) {\n scaleX = drawnWidth / MAX_GROUP_SIZE;\n drawnWidth = MAX_GROUP_SIZE;\n }\n if (drawnHeight > MAX_GROUP_SIZE) {\n scaleY = drawnHeight / MAX_GROUP_SIZE;\n drawnHeight = MAX_GROUP_SIZE;\n }\n this.current.startNewPathAndClipBox([0, 0, drawnWidth, drawnHeight]);\n let cacheId = \"groupAt\" + this.groupLevel;\n if (group.smask) {\n cacheId += \"_smask_\" + this.smaskCounter++ % 2;\n }\n const scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight);\n const groupCtx = scratchCanvas.context;\n groupCtx.scale(1 / scaleX, 1 / scaleY);\n groupCtx.translate(-offsetX, -offsetY);\n groupCtx.transform(...currentTransform);\n if (group.smask) {\n this.smaskStack.push({\n canvas: scratchCanvas.canvas,\n context: groupCtx,\n offsetX,\n offsetY,\n scaleX,\n scaleY,\n subtype: group.smask.subtype,\n backdrop: group.smask.backdrop,\n transferMap: group.smask.transferMap || null,\n startTransformInverse: null\n });\n } else {\n currentCtx.setTransform(1, 0, 0, 1, 0, 0);\n currentCtx.translate(offsetX, offsetY);\n currentCtx.scale(scaleX, scaleY);\n currentCtx.save();\n }\n copyCtxState(currentCtx, groupCtx);\n this.ctx = groupCtx;\n this.setGState([[\"BM\", \"source-over\"], [\"ca\", 1], [\"CA\", 1]]);\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n }\n endGroup(group) {\n if (!this.contentVisible) {\n return;\n }\n this.groupLevel--;\n const groupCtx = this.ctx;\n const ctx = this.groupStack.pop();\n this.ctx = ctx;\n this.ctx.imageSmoothingEnabled = false;\n if (group.smask) {\n this.tempSMask = this.smaskStack.pop();\n this.restore();\n } else {\n this.ctx.restore();\n const currentMtx = (0, _display_utils.getCurrentTransform)(this.ctx);\n this.restore();\n this.ctx.save();\n this.ctx.setTransform(...currentMtx);\n const dirtyBox = _util.Util.getAxialAlignedBoundingBox([0, 0, groupCtx.canvas.width, groupCtx.canvas.height], currentMtx);\n this.ctx.drawImage(groupCtx.canvas, 0, 0);\n this.ctx.restore();\n this.compose(dirtyBox);\n }\n }\n beginAnnotation(id, rect, transform, matrix, hasOwnCanvas) {\n this.#restoreInitialState();\n resetCtxToDefault(this.ctx);\n this.ctx.save();\n this.save();\n if (this.baseTransform) {\n this.ctx.setTransform(...this.baseTransform);\n }\n if (Array.isArray(rect) && rect.length === 4) {\n const width = rect[2] - rect[0];\n const height = rect[3] - rect[1];\n if (hasOwnCanvas && this.annotationCanvasMap) {\n transform = transform.slice();\n transform[4] -= rect[0];\n transform[5] -= rect[1];\n rect = rect.slice();\n rect[0] = rect[1] = 0;\n rect[2] = width;\n rect[3] = height;\n const [scaleX, scaleY] = _util.Util.singularValueDecompose2dScale((0, _display_utils.getCurrentTransform)(this.ctx));\n const {\n viewportScale\n } = this;\n const canvasWidth = Math.ceil(width * this.outputScaleX * viewportScale);\n const canvasHeight = Math.ceil(height * this.outputScaleY * viewportScale);\n this.annotationCanvas = this.canvasFactory.create(canvasWidth, canvasHeight);\n const {\n canvas,\n context\n } = this.annotationCanvas;\n this.annotationCanvasMap.set(id, canvas);\n this.annotationCanvas.savedCtx = this.ctx;\n this.ctx = context;\n this.ctx.save();\n this.ctx.setTransform(scaleX, 0, 0, -scaleY, 0, height * scaleY);\n resetCtxToDefault(this.ctx);\n } else {\n resetCtxToDefault(this.ctx);\n this.ctx.rect(rect[0], rect[1], width, height);\n this.ctx.clip();\n this.endPath();\n }\n }\n this.current = new CanvasExtraState(this.ctx.canvas.width, this.ctx.canvas.height);\n this.transform(...transform);\n this.transform(...matrix);\n }\n endAnnotation() {\n if (this.annotationCanvas) {\n this.ctx.restore();\n this.#drawFilter();\n this.ctx = this.annotationCanvas.savedCtx;\n delete this.annotationCanvas.savedCtx;\n delete this.annotationCanvas;\n }\n }\n paintImageMaskXObject(img) {\n if (!this.contentVisible) {\n return;\n }\n const count = img.count;\n img = this.getObject(img.data, img);\n img.count = count;\n const ctx = this.ctx;\n const glyph = this.processingType3;\n if (glyph) {\n if (glyph.compiled === undefined) {\n glyph.compiled = compileType3Glyph(img);\n }\n if (glyph.compiled) {\n glyph.compiled(ctx);\n return;\n }\n }\n const mask = this._createMaskCanvas(img);\n const maskCanvas = mask.canvas;\n ctx.save();\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.drawImage(maskCanvas, mask.offsetX, mask.offsetY);\n ctx.restore();\n this.compose();\n }\n paintImageMaskXObjectRepeat(img, scaleX, skewX = 0, skewY = 0, scaleY, positions) {\n if (!this.contentVisible) {\n return;\n }\n img = this.getObject(img.data, img);\n const ctx = this.ctx;\n ctx.save();\n const currentTransform = (0, _display_utils.getCurrentTransform)(ctx);\n ctx.transform(scaleX, skewX, skewY, scaleY, 0, 0);\n const mask = this._createMaskCanvas(img);\n ctx.setTransform(1, 0, 0, 1, mask.offsetX - currentTransform[4], mask.offsetY - currentTransform[5]);\n for (let i = 0, ii = positions.length; i < ii; i += 2) {\n const trans = _util.Util.transform(currentTransform, [scaleX, skewX, skewY, scaleY, positions[i], positions[i + 1]]);\n const [x, y] = _util.Util.applyTransform([0, 0], trans);\n ctx.drawImage(mask.canvas, x, y);\n }\n ctx.restore();\n this.compose();\n }\n paintImageMaskXObjectGroup(images) {\n if (!this.contentVisible) {\n return;\n }\n const ctx = this.ctx;\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n for (const image of images) {\n const {\n data,\n width,\n height,\n transform\n } = image;\n const maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height);\n const maskCtx = maskCanvas.context;\n maskCtx.save();\n const img = this.getObject(data, image);\n putBinaryImageMask(maskCtx, img);\n maskCtx.globalCompositeOperation = \"source-in\";\n maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.FILL) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n maskCtx.restore();\n ctx.save();\n ctx.transform(...transform);\n ctx.scale(1, -1);\n drawImageAtIntegerCoords(ctx, maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);\n ctx.restore();\n }\n this.compose();\n }\n paintImageXObject(objId) {\n if (!this.contentVisible) {\n return;\n }\n const imgData = this.getObject(objId);\n if (!imgData) {\n (0, _util.warn)(\"Dependent image isn't ready yet\");\n return;\n }\n this.paintInlineImageXObject(imgData);\n }\n paintImageXObjectRepeat(objId, scaleX, scaleY, positions) {\n if (!this.contentVisible) {\n return;\n }\n const imgData = this.getObject(objId);\n if (!imgData) {\n (0, _util.warn)(\"Dependent image isn't ready yet\");\n return;\n }\n const width = imgData.width;\n const height = imgData.height;\n const map = [];\n for (let i = 0, ii = positions.length; i < ii; i += 2) {\n map.push({\n transform: [scaleX, 0, 0, scaleY, positions[i], positions[i + 1]],\n x: 0,\n y: 0,\n w: width,\n h: height\n });\n }\n this.paintInlineImageXObjectGroup(imgData, map);\n }\n applyTransferMapsToCanvas(ctx) {\n if (this.current.transferMaps !== \"none\") {\n ctx.filter = this.current.transferMaps;\n ctx.drawImage(ctx.canvas, 0, 0);\n ctx.filter = \"none\";\n }\n return ctx.canvas;\n }\n applyTransferMapsToBitmap(imgData) {\n if (this.current.transferMaps === \"none\") {\n return imgData.bitmap;\n }\n const {\n bitmap,\n width,\n height\n } = imgData;\n const tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", width, height);\n const tmpCtx = tmpCanvas.context;\n tmpCtx.filter = this.current.transferMaps;\n tmpCtx.drawImage(bitmap, 0, 0);\n tmpCtx.filter = \"none\";\n return tmpCanvas.canvas;\n }\n paintInlineImageXObject(imgData) {\n if (!this.contentVisible) {\n return;\n }\n const width = imgData.width;\n const height = imgData.height;\n const ctx = this.ctx;\n this.save();\n if (!_util.isNodeJS) {\n const {\n filter\n } = ctx;\n if (filter !== \"none\" && filter !== \"\") {\n ctx.filter = \"none\";\n }\n }\n ctx.scale(1 / width, -1 / height);\n let imgToPaint;\n if (imgData.bitmap) {\n imgToPaint = this.applyTransferMapsToBitmap(imgData);\n } else if (typeof HTMLElement === \"function\" && imgData instanceof HTMLElement || !imgData.data) {\n imgToPaint = imgData;\n } else {\n const tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", width, height);\n const tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData);\n imgToPaint = this.applyTransferMapsToCanvas(tmpCtx);\n }\n const scaled = this._scaleImage(imgToPaint, (0, _display_utils.getCurrentTransformInverse)(ctx));\n ctx.imageSmoothingEnabled = getImageSmoothingEnabled((0, _display_utils.getCurrentTransform)(ctx), imgData.interpolate);\n drawImageAtIntegerCoords(ctx, scaled.img, 0, 0, scaled.paintWidth, scaled.paintHeight, 0, -height, width, height);\n this.compose();\n this.restore();\n }\n paintInlineImageXObjectGroup(imgData, map) {\n if (!this.contentVisible) {\n return;\n }\n const ctx = this.ctx;\n let imgToPaint;\n if (imgData.bitmap) {\n imgToPaint = imgData.bitmap;\n } else {\n const w = imgData.width;\n const h = imgData.height;\n const tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", w, h);\n const tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData);\n imgToPaint = this.applyTransferMapsToCanvas(tmpCtx);\n }\n for (const entry of map) {\n ctx.save();\n ctx.transform(...entry.transform);\n ctx.scale(1, -1);\n drawImageAtIntegerCoords(ctx, imgToPaint, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1);\n ctx.restore();\n }\n this.compose();\n }\n paintSolidColorImageMask() {\n if (!this.contentVisible) {\n return;\n }\n this.ctx.fillRect(0, 0, 1, 1);\n this.compose();\n }\n markPoint(tag) {}\n markPointProps(tag, properties) {}\n beginMarkedContent(tag) {\n this.markedContentStack.push({\n visible: true\n });\n }\n beginMarkedContentProps(tag, properties) {\n if (tag === \"OC\") {\n this.markedContentStack.push({\n visible: this.optionalContentConfig.isVisible(properties)\n });\n } else {\n this.markedContentStack.push({\n visible: true\n });\n }\n this.contentVisible = this.isContentVisible();\n }\n endMarkedContent() {\n this.markedContentStack.pop();\n this.contentVisible = this.isContentVisible();\n }\n beginCompat() {}\n endCompat() {}\n consumePath(clipBox) {\n const isEmpty = this.current.isEmptyClip();\n if (this.pendingClip) {\n this.current.updateClipFromPath();\n }\n if (!this.pendingClip) {\n this.compose(clipBox);\n }\n const ctx = this.ctx;\n if (this.pendingClip) {\n if (!isEmpty) {\n if (this.pendingClip === EO_CLIP) {\n ctx.clip(\"evenodd\");\n } else {\n ctx.clip();\n }\n }\n this.pendingClip = null;\n }\n this.current.startNewPathAndClipBox(this.current.clipBox);\n ctx.beginPath();\n }\n getSinglePixelWidth() {\n if (!this._cachedGetSinglePixelWidth) {\n const m = (0, _display_utils.getCurrentTransform)(this.ctx);\n if (m[1] === 0 && m[2] === 0) {\n this._cachedGetSinglePixelWidth = 1 / Math.min(Math.abs(m[0]), Math.abs(m[3]));\n } else {\n const absDet = Math.abs(m[0] * m[3] - m[2] * m[1]);\n const normX = Math.hypot(m[0], m[2]);\n const normY = Math.hypot(m[1], m[3]);\n this._cachedGetSinglePixelWidth = Math.max(normX, normY) / absDet;\n }\n }\n return this._cachedGetSinglePixelWidth;\n }\n getScaleForStroking() {\n if (this._cachedScaleForStroking[0] === -1) {\n const {\n lineWidth\n } = this.current;\n const {\n a,\n b,\n c,\n d\n } = this.ctx.getTransform();\n let scaleX, scaleY;\n if (b === 0 && c === 0) {\n const normX = Math.abs(a);\n const normY = Math.abs(d);\n if (normX === normY) {\n if (lineWidth === 0) {\n scaleX = scaleY = 1 / normX;\n } else {\n const scaledLineWidth = normX * lineWidth;\n scaleX = scaleY = scaledLineWidth < 1 ? 1 / scaledLineWidth : 1;\n }\n } else if (lineWidth === 0) {\n scaleX = 1 / normX;\n scaleY = 1 / normY;\n } else {\n const scaledXLineWidth = normX * lineWidth;\n const scaledYLineWidth = normY * lineWidth;\n scaleX = scaledXLineWidth < 1 ? 1 / scaledXLineWidth : 1;\n scaleY = scaledYLineWidth < 1 ? 1 / scaledYLineWidth : 1;\n }\n } else {\n const absDet = Math.abs(a * d - b * c);\n const normX = Math.hypot(a, b);\n const normY = Math.hypot(c, d);\n if (lineWidth === 0) {\n scaleX = normY / absDet;\n scaleY = normX / absDet;\n } else {\n const baseArea = lineWidth * absDet;\n scaleX = normY > baseArea ? normY / baseArea : 1;\n scaleY = normX > baseArea ? normX / baseArea : 1;\n }\n }\n this._cachedScaleForStroking[0] = scaleX;\n this._cachedScaleForStroking[1] = scaleY;\n }\n return this._cachedScaleForStroking;\n }\n rescaleAndStroke(saveRestore) {\n const {\n ctx\n } = this;\n const {\n lineWidth\n } = this.current;\n const [scaleX, scaleY] = this.getScaleForStroking();\n ctx.lineWidth = lineWidth || 1;\n if (scaleX === 1 && scaleY === 1) {\n ctx.stroke();\n return;\n }\n const dashes = ctx.getLineDash();\n if (saveRestore) {\n ctx.save();\n }\n ctx.scale(scaleX, scaleY);\n if (dashes.length > 0) {\n const scale = Math.max(scaleX, scaleY);\n ctx.setLineDash(dashes.map(x => x / scale));\n ctx.lineDashOffset /= scale;\n }\n ctx.stroke();\n if (saveRestore) {\n ctx.restore();\n }\n }\n isContentVisible() {\n for (let i = this.markedContentStack.length - 1; i >= 0; i--) {\n if (!this.markedContentStack[i].visible) {\n return false;\n }\n }\n return true;\n }\n}\nexports.CanvasGraphics = CanvasGraphics;\nfor (const op in _util.OPS) {\n if (CanvasGraphics.prototype[op] !== undefined) {\n CanvasGraphics.prototype[_util.OPS[op]] = CanvasGraphics.prototype[op];\n }\n}\n\n/***/ }),\n/* 12 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.TilingPattern = exports.PathType = void 0;\nexports.getShadingPattern = getShadingPattern;\nvar _util = __w_pdfjs_require__(1);\nvar _display_utils = __w_pdfjs_require__(6);\nconst PathType = {\n FILL: \"Fill\",\n STROKE: \"Stroke\",\n SHADING: \"Shading\"\n};\nexports.PathType = PathType;\nfunction applyBoundingBox(ctx, bbox) {\n if (!bbox) {\n return;\n }\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n const region = new Path2D();\n region.rect(bbox[0], bbox[1], width, height);\n ctx.clip(region);\n}\nclass BaseShadingPattern {\n constructor() {\n if (this.constructor === BaseShadingPattern) {\n (0, _util.unreachable)(\"Cannot initialize BaseShadingPattern.\");\n }\n }\n getPattern() {\n (0, _util.unreachable)(\"Abstract method `getPattern` called.\");\n }\n}\nclass RadialAxialShadingPattern extends BaseShadingPattern {\n constructor(IR) {\n super();\n this._type = IR[1];\n this._bbox = IR[2];\n this._colorStops = IR[3];\n this._p0 = IR[4];\n this._p1 = IR[5];\n this._r0 = IR[6];\n this._r1 = IR[7];\n this.matrix = null;\n }\n _createGradient(ctx) {\n let grad;\n if (this._type === \"axial\") {\n grad = ctx.createLinearGradient(this._p0[0], this._p0[1], this._p1[0], this._p1[1]);\n } else if (this._type === \"radial\") {\n grad = ctx.createRadialGradient(this._p0[0], this._p0[1], this._r0, this._p1[0], this._p1[1], this._r1);\n }\n for (const colorStop of this._colorStops) {\n grad.addColorStop(colorStop[0], colorStop[1]);\n }\n return grad;\n }\n getPattern(ctx, owner, inverse, pathType) {\n let pattern;\n if (pathType === PathType.STROKE || pathType === PathType.FILL) {\n const ownerBBox = owner.current.getClippedPathBoundingBox(pathType, (0, _display_utils.getCurrentTransform)(ctx)) || [0, 0, 0, 0];\n const width = Math.ceil(ownerBBox[2] - ownerBBox[0]) || 1;\n const height = Math.ceil(ownerBBox[3] - ownerBBox[1]) || 1;\n const tmpCanvas = owner.cachedCanvases.getCanvas(\"pattern\", width, height, true);\n const tmpCtx = tmpCanvas.context;\n tmpCtx.clearRect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height);\n tmpCtx.beginPath();\n tmpCtx.rect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height);\n tmpCtx.translate(-ownerBBox[0], -ownerBBox[1]);\n inverse = _util.Util.transform(inverse, [1, 0, 0, 1, ownerBBox[0], ownerBBox[1]]);\n tmpCtx.transform(...owner.baseTransform);\n if (this.matrix) {\n tmpCtx.transform(...this.matrix);\n }\n applyBoundingBox(tmpCtx, this._bbox);\n tmpCtx.fillStyle = this._createGradient(tmpCtx);\n tmpCtx.fill();\n pattern = ctx.createPattern(tmpCanvas.canvas, \"no-repeat\");\n const domMatrix = new DOMMatrix(inverse);\n pattern.setTransform(domMatrix);\n } else {\n applyBoundingBox(ctx, this._bbox);\n pattern = this._createGradient(ctx);\n }\n return pattern;\n }\n}\nfunction drawTriangle(data, context, p1, p2, p3, c1, c2, c3) {\n const coords = context.coords,\n colors = context.colors;\n const bytes = data.data,\n rowSize = data.width * 4;\n let tmp;\n if (coords[p1 + 1] > coords[p2 + 1]) {\n tmp = p1;\n p1 = p2;\n p2 = tmp;\n tmp = c1;\n c1 = c2;\n c2 = tmp;\n }\n if (coords[p2 + 1] > coords[p3 + 1]) {\n tmp = p2;\n p2 = p3;\n p3 = tmp;\n tmp = c2;\n c2 = c3;\n c3 = tmp;\n }\n if (coords[p1 + 1] > coords[p2 + 1]) {\n tmp = p1;\n p1 = p2;\n p2 = tmp;\n tmp = c1;\n c1 = c2;\n c2 = tmp;\n }\n const x1 = (coords[p1] + context.offsetX) * context.scaleX;\n const y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY;\n const x2 = (coords[p2] + context.offsetX) * context.scaleX;\n const y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY;\n const x3 = (coords[p3] + context.offsetX) * context.scaleX;\n const y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY;\n if (y1 >= y3) {\n return;\n }\n const c1r = colors[c1],\n c1g = colors[c1 + 1],\n c1b = colors[c1 + 2];\n const c2r = colors[c2],\n c2g = colors[c2 + 1],\n c2b = colors[c2 + 2];\n const c3r = colors[c3],\n c3g = colors[c3 + 1],\n c3b = colors[c3 + 2];\n const minY = Math.round(y1),\n maxY = Math.round(y3);\n let xa, car, cag, cab;\n let xb, cbr, cbg, cbb;\n for (let y = minY; y <= maxY; y++) {\n if (y < y2) {\n const k = y < y1 ? 0 : (y1 - y) / (y1 - y2);\n xa = x1 - (x1 - x2) * k;\n car = c1r - (c1r - c2r) * k;\n cag = c1g - (c1g - c2g) * k;\n cab = c1b - (c1b - c2b) * k;\n } else {\n let k;\n if (y > y3) {\n k = 1;\n } else if (y2 === y3) {\n k = 0;\n } else {\n k = (y2 - y) / (y2 - y3);\n }\n xa = x2 - (x2 - x3) * k;\n car = c2r - (c2r - c3r) * k;\n cag = c2g - (c2g - c3g) * k;\n cab = c2b - (c2b - c3b) * k;\n }\n let k;\n if (y < y1) {\n k = 0;\n } else if (y > y3) {\n k = 1;\n } else {\n k = (y1 - y) / (y1 - y3);\n }\n xb = x1 - (x1 - x3) * k;\n cbr = c1r - (c1r - c3r) * k;\n cbg = c1g - (c1g - c3g) * k;\n cbb = c1b - (c1b - c3b) * k;\n const x1_ = Math.round(Math.min(xa, xb));\n const x2_ = Math.round(Math.max(xa, xb));\n let j = rowSize * y + x1_ * 4;\n for (let x = x1_; x <= x2_; x++) {\n k = (xa - x) / (xa - xb);\n if (k < 0) {\n k = 0;\n } else if (k > 1) {\n k = 1;\n }\n bytes[j++] = car - (car - cbr) * k | 0;\n bytes[j++] = cag - (cag - cbg) * k | 0;\n bytes[j++] = cab - (cab - cbb) * k | 0;\n bytes[j++] = 255;\n }\n }\n}\nfunction drawFigure(data, figure, context) {\n const ps = figure.coords;\n const cs = figure.colors;\n let i, ii;\n switch (figure.type) {\n case \"lattice\":\n const verticesPerRow = figure.verticesPerRow;\n const rows = Math.floor(ps.length / verticesPerRow) - 1;\n const cols = verticesPerRow - 1;\n for (i = 0; i < rows; i++) {\n let q = i * verticesPerRow;\n for (let j = 0; j < cols; j++, q++) {\n drawTriangle(data, context, ps[q], ps[q + 1], ps[q + verticesPerRow], cs[q], cs[q + 1], cs[q + verticesPerRow]);\n drawTriangle(data, context, ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow], cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]);\n }\n }\n break;\n case \"triangles\":\n for (i = 0, ii = ps.length; i < ii; i += 3) {\n drawTriangle(data, context, ps[i], ps[i + 1], ps[i + 2], cs[i], cs[i + 1], cs[i + 2]);\n }\n break;\n default:\n throw new Error(\"illegal figure\");\n }\n}\nclass MeshShadingPattern extends BaseShadingPattern {\n constructor(IR) {\n super();\n this._coords = IR[2];\n this._colors = IR[3];\n this._figures = IR[4];\n this._bounds = IR[5];\n this._bbox = IR[7];\n this._background = IR[8];\n this.matrix = null;\n }\n _createMeshCanvas(combinedScale, backgroundColor, cachedCanvases) {\n const EXPECTED_SCALE = 1.1;\n const MAX_PATTERN_SIZE = 3000;\n const BORDER_SIZE = 2;\n const offsetX = Math.floor(this._bounds[0]);\n const offsetY = Math.floor(this._bounds[1]);\n const boundsWidth = Math.ceil(this._bounds[2]) - offsetX;\n const boundsHeight = Math.ceil(this._bounds[3]) - offsetY;\n const width = Math.min(Math.ceil(Math.abs(boundsWidth * combinedScale[0] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n const height = Math.min(Math.ceil(Math.abs(boundsHeight * combinedScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n const scaleX = boundsWidth / width;\n const scaleY = boundsHeight / height;\n const context = {\n coords: this._coords,\n colors: this._colors,\n offsetX: -offsetX,\n offsetY: -offsetY,\n scaleX: 1 / scaleX,\n scaleY: 1 / scaleY\n };\n const paddedWidth = width + BORDER_SIZE * 2;\n const paddedHeight = height + BORDER_SIZE * 2;\n const tmpCanvas = cachedCanvases.getCanvas(\"mesh\", paddedWidth, paddedHeight, false);\n const tmpCtx = tmpCanvas.context;\n const data = tmpCtx.createImageData(width, height);\n if (backgroundColor) {\n const bytes = data.data;\n for (let i = 0, ii = bytes.length; i < ii; i += 4) {\n bytes[i] = backgroundColor[0];\n bytes[i + 1] = backgroundColor[1];\n bytes[i + 2] = backgroundColor[2];\n bytes[i + 3] = 255;\n }\n }\n for (const figure of this._figures) {\n drawFigure(data, figure, context);\n }\n tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE);\n const canvas = tmpCanvas.canvas;\n return {\n canvas,\n offsetX: offsetX - BORDER_SIZE * scaleX,\n offsetY: offsetY - BORDER_SIZE * scaleY,\n scaleX,\n scaleY\n };\n }\n getPattern(ctx, owner, inverse, pathType) {\n applyBoundingBox(ctx, this._bbox);\n let scale;\n if (pathType === PathType.SHADING) {\n scale = _util.Util.singularValueDecompose2dScale((0, _display_utils.getCurrentTransform)(ctx));\n } else {\n scale = _util.Util.singularValueDecompose2dScale(owner.baseTransform);\n if (this.matrix) {\n const matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix);\n scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]];\n }\n }\n const temporaryPatternCanvas = this._createMeshCanvas(scale, pathType === PathType.SHADING ? null : this._background, owner.cachedCanvases);\n if (pathType !== PathType.SHADING) {\n ctx.setTransform(...owner.baseTransform);\n if (this.matrix) {\n ctx.transform(...this.matrix);\n }\n }\n ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY);\n ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY);\n return ctx.createPattern(temporaryPatternCanvas.canvas, \"no-repeat\");\n }\n}\nclass DummyShadingPattern extends BaseShadingPattern {\n getPattern() {\n return \"hotpink\";\n }\n}\nfunction getShadingPattern(IR) {\n switch (IR[0]) {\n case \"RadialAxial\":\n return new RadialAxialShadingPattern(IR);\n case \"Mesh\":\n return new MeshShadingPattern(IR);\n case \"Dummy\":\n return new DummyShadingPattern();\n }\n throw new Error(`Unknown IR type: ${IR[0]}`);\n}\nconst PaintType = {\n COLORED: 1,\n UNCOLORED: 2\n};\nclass TilingPattern {\n static MAX_PATTERN_SIZE = 3000;\n constructor(IR, color, ctx, canvasGraphicsFactory, baseTransform) {\n this.operatorList = IR[2];\n this.matrix = IR[3] || [1, 0, 0, 1, 0, 0];\n this.bbox = IR[4];\n this.xstep = IR[5];\n this.ystep = IR[6];\n this.paintType = IR[7];\n this.tilingType = IR[8];\n this.color = color;\n this.ctx = ctx;\n this.canvasGraphicsFactory = canvasGraphicsFactory;\n this.baseTransform = baseTransform;\n }\n createPatternCanvas(owner) {\n const operatorList = this.operatorList;\n const bbox = this.bbox;\n const xstep = this.xstep;\n const ystep = this.ystep;\n const paintType = this.paintType;\n const tilingType = this.tilingType;\n const color = this.color;\n const canvasGraphicsFactory = this.canvasGraphicsFactory;\n (0, _util.info)(\"TilingType: \" + tilingType);\n const x0 = bbox[0],\n y0 = bbox[1],\n x1 = bbox[2],\n y1 = bbox[3];\n const matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix);\n const curMatrixScale = _util.Util.singularValueDecompose2dScale(this.baseTransform);\n const combinedScale = [matrixScale[0] * curMatrixScale[0], matrixScale[1] * curMatrixScale[1]];\n const dimx = this.getSizeAndScale(xstep, this.ctx.canvas.width, combinedScale[0]);\n const dimy = this.getSizeAndScale(ystep, this.ctx.canvas.height, combinedScale[1]);\n const tmpCanvas = owner.cachedCanvases.getCanvas(\"pattern\", dimx.size, dimy.size, true);\n const tmpCtx = tmpCanvas.context;\n const graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx);\n graphics.groupLevel = owner.groupLevel;\n this.setFillAndStrokeStyleToContext(graphics, paintType, color);\n let adjustedX0 = x0;\n let adjustedY0 = y0;\n let adjustedX1 = x1;\n let adjustedY1 = y1;\n if (x0 < 0) {\n adjustedX0 = 0;\n adjustedX1 += Math.abs(x0);\n }\n if (y0 < 0) {\n adjustedY0 = 0;\n adjustedY1 += Math.abs(y0);\n }\n tmpCtx.translate(-(dimx.scale * adjustedX0), -(dimy.scale * adjustedY0));\n graphics.transform(dimx.scale, 0, 0, dimy.scale, 0, 0);\n tmpCtx.save();\n this.clipBbox(graphics, adjustedX0, adjustedY0, adjustedX1, adjustedY1);\n graphics.baseTransform = (0, _display_utils.getCurrentTransform)(graphics.ctx);\n graphics.executeOperatorList(operatorList);\n graphics.endDrawing();\n return {\n canvas: tmpCanvas.canvas,\n scaleX: dimx.scale,\n scaleY: dimy.scale,\n offsetX: adjustedX0,\n offsetY: adjustedY0\n };\n }\n getSizeAndScale(step, realOutputSize, scale) {\n step = Math.abs(step);\n const maxSize = Math.max(TilingPattern.MAX_PATTERN_SIZE, realOutputSize);\n let size = Math.ceil(step * scale);\n if (size >= maxSize) {\n size = maxSize;\n } else {\n scale = size / step;\n }\n return {\n scale,\n size\n };\n }\n clipBbox(graphics, x0, y0, x1, y1) {\n const bboxWidth = x1 - x0;\n const bboxHeight = y1 - y0;\n graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight);\n graphics.current.updateRectMinMax((0, _display_utils.getCurrentTransform)(graphics.ctx), [x0, y0, x1, y1]);\n graphics.clip();\n graphics.endPath();\n }\n setFillAndStrokeStyleToContext(graphics, paintType, color) {\n const context = graphics.ctx,\n current = graphics.current;\n switch (paintType) {\n case PaintType.COLORED:\n const ctx = this.ctx;\n context.fillStyle = ctx.fillStyle;\n context.strokeStyle = ctx.strokeStyle;\n current.fillColor = ctx.fillStyle;\n current.strokeColor = ctx.strokeStyle;\n break;\n case PaintType.UNCOLORED:\n const cssColor = _util.Util.makeHexColor(color[0], color[1], color[2]);\n context.fillStyle = cssColor;\n context.strokeStyle = cssColor;\n current.fillColor = cssColor;\n current.strokeColor = cssColor;\n break;\n default:\n throw new _util.FormatError(`Unsupported paint type: ${paintType}`);\n }\n }\n getPattern(ctx, owner, inverse, pathType) {\n let matrix = inverse;\n if (pathType !== PathType.SHADING) {\n matrix = _util.Util.transform(matrix, owner.baseTransform);\n if (this.matrix) {\n matrix = _util.Util.transform(matrix, this.matrix);\n }\n }\n const temporaryPatternCanvas = this.createPatternCanvas(owner);\n let domMatrix = new DOMMatrix(matrix);\n domMatrix = domMatrix.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY);\n domMatrix = domMatrix.scale(1 / temporaryPatternCanvas.scaleX, 1 / temporaryPatternCanvas.scaleY);\n const pattern = ctx.createPattern(temporaryPatternCanvas.canvas, \"repeat\");\n pattern.setTransform(domMatrix);\n return pattern;\n }\n}\nexports.TilingPattern = TilingPattern;\n\n/***/ }),\n/* 13 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.convertBlackAndWhiteToRGBA = convertBlackAndWhiteToRGBA;\nexports.convertToRGBA = convertToRGBA;\nexports.grayToRGBA = grayToRGBA;\nvar _util = __w_pdfjs_require__(1);\nfunction convertToRGBA(params) {\n switch (params.kind) {\n case _util.ImageKind.GRAYSCALE_1BPP:\n return convertBlackAndWhiteToRGBA(params);\n case _util.ImageKind.RGB_24BPP:\n return convertRGBToRGBA(params);\n }\n return null;\n}\nfunction convertBlackAndWhiteToRGBA({\n src,\n srcPos = 0,\n dest,\n width,\n height,\n nonBlackColor = 0xffffffff,\n inverseDecode = false\n}) {\n const black = _util.FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff;\n const [zeroMapping, oneMapping] = inverseDecode ? [nonBlackColor, black] : [black, nonBlackColor];\n const widthInSource = width >> 3;\n const widthRemainder = width & 7;\n const srcLength = src.length;\n dest = new Uint32Array(dest.buffer);\n let destPos = 0;\n for (let i = 0; i < height; i++) {\n for (const max = srcPos + widthInSource; srcPos < max; srcPos++) {\n const elem = srcPos < srcLength ? src[srcPos] : 255;\n dest[destPos++] = elem & 0b10000000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1000000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b100000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b10000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b100 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b10 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1 ? oneMapping : zeroMapping;\n }\n if (widthRemainder === 0) {\n continue;\n }\n const elem = srcPos < srcLength ? src[srcPos++] : 255;\n for (let j = 0; j < widthRemainder; j++) {\n dest[destPos++] = elem & 1 << 7 - j ? oneMapping : zeroMapping;\n }\n }\n return {\n srcPos,\n destPos\n };\n}\nfunction convertRGBToRGBA({\n src,\n srcPos = 0,\n dest,\n destPos = 0,\n width,\n height\n}) {\n let i = 0;\n const len32 = src.length >> 2;\n const src32 = new Uint32Array(src.buffer, srcPos, len32);\n if (_util.FeatureTest.isLittleEndian) {\n for (; i < len32 - 2; i += 3, destPos += 4) {\n const s1 = src32[i];\n const s2 = src32[i + 1];\n const s3 = src32[i + 2];\n dest[destPos] = s1 | 0xff000000;\n dest[destPos + 1] = s1 >>> 24 | s2 << 8 | 0xff000000;\n dest[destPos + 2] = s2 >>> 16 | s3 << 16 | 0xff000000;\n dest[destPos + 3] = s3 >>> 8 | 0xff000000;\n }\n for (let j = i * 4, jj = src.length; j < jj; j += 3) {\n dest[destPos++] = src[j] | src[j + 1] << 8 | src[j + 2] << 16 | 0xff000000;\n }\n } else {\n for (; i < len32 - 2; i += 3, destPos += 4) {\n const s1 = src32[i];\n const s2 = src32[i + 1];\n const s3 = src32[i + 2];\n dest[destPos] = s1 | 0xff;\n dest[destPos + 1] = s1 << 24 | s2 >>> 8 | 0xff;\n dest[destPos + 2] = s2 << 16 | s3 >>> 16 | 0xff;\n dest[destPos + 3] = s3 << 8 | 0xff;\n }\n for (let j = i * 4, jj = src.length; j < jj; j += 3) {\n dest[destPos++] = src[j] << 24 | src[j + 1] << 16 | src[j + 2] << 8 | 0xff;\n }\n }\n return {\n srcPos,\n destPos\n };\n}\nfunction grayToRGBA(src, dest) {\n if (_util.FeatureTest.isLittleEndian) {\n for (let i = 0, ii = src.length; i < ii; i++) {\n dest[i] = src[i] * 0x10101 | 0xff000000;\n }\n } else {\n for (let i = 0, ii = src.length; i < ii; i++) {\n dest[i] = src[i] * 0x1010100 | 0x000000ff;\n }\n }\n}\n\n/***/ }),\n/* 14 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.GlobalWorkerOptions = void 0;\nconst GlobalWorkerOptions = Object.create(null);\nexports.GlobalWorkerOptions = GlobalWorkerOptions;\nGlobalWorkerOptions.workerPort = null;\nGlobalWorkerOptions.workerSrc = \"\";\n\n/***/ }),\n/* 15 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.MessageHandler = void 0;\nvar _util = __w_pdfjs_require__(1);\nconst CallbackKind = {\n UNKNOWN: 0,\n DATA: 1,\n ERROR: 2\n};\nconst StreamKind = {\n UNKNOWN: 0,\n CANCEL: 1,\n CANCEL_COMPLETE: 2,\n CLOSE: 3,\n ENQUEUE: 4,\n ERROR: 5,\n PULL: 6,\n PULL_COMPLETE: 7,\n START_COMPLETE: 8\n};\nfunction wrapReason(reason) {\n if (!(reason instanceof Error || typeof reason === \"object\" && reason !== null)) {\n (0, _util.unreachable)('wrapReason: Expected \"reason\" to be a (possibly cloned) Error.');\n }\n switch (reason.name) {\n case \"AbortException\":\n return new _util.AbortException(reason.message);\n case \"MissingPDFException\":\n return new _util.MissingPDFException(reason.message);\n case \"PasswordException\":\n return new _util.PasswordException(reason.message, reason.code);\n case \"UnexpectedResponseException\":\n return new _util.UnexpectedResponseException(reason.message, reason.status);\n case \"UnknownErrorException\":\n return new _util.UnknownErrorException(reason.message, reason.details);\n default:\n return new _util.UnknownErrorException(reason.message, reason.toString());\n }\n}\nclass MessageHandler {\n constructor(sourceName, targetName, comObj) {\n this.sourceName = sourceName;\n this.targetName = targetName;\n this.comObj = comObj;\n this.callbackId = 1;\n this.streamId = 1;\n this.streamSinks = Object.create(null);\n this.streamControllers = Object.create(null);\n this.callbackCapabilities = Object.create(null);\n this.actionHandler = Object.create(null);\n this._onComObjOnMessage = event => {\n const data = event.data;\n if (data.targetName !== this.sourceName) {\n return;\n }\n if (data.stream) {\n this.#processStreamMessage(data);\n return;\n }\n if (data.callback) {\n const callbackId = data.callbackId;\n const capability = this.callbackCapabilities[callbackId];\n if (!capability) {\n throw new Error(`Cannot resolve callback ${callbackId}`);\n }\n delete this.callbackCapabilities[callbackId];\n if (data.callback === CallbackKind.DATA) {\n capability.resolve(data.data);\n } else if (data.callback === CallbackKind.ERROR) {\n capability.reject(wrapReason(data.reason));\n } else {\n throw new Error(\"Unexpected callback case\");\n }\n return;\n }\n const action = this.actionHandler[data.action];\n if (!action) {\n throw new Error(`Unknown action from worker: ${data.action}`);\n }\n if (data.callbackId) {\n const cbSourceName = this.sourceName;\n const cbTargetName = data.sourceName;\n new Promise(function (resolve) {\n resolve(action(data.data));\n }).then(function (result) {\n comObj.postMessage({\n sourceName: cbSourceName,\n targetName: cbTargetName,\n callback: CallbackKind.DATA,\n callbackId: data.callbackId,\n data: result\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName: cbSourceName,\n targetName: cbTargetName,\n callback: CallbackKind.ERROR,\n callbackId: data.callbackId,\n reason: wrapReason(reason)\n });\n });\n return;\n }\n if (data.streamId) {\n this.#createStreamSink(data);\n return;\n }\n action(data.data);\n };\n comObj.addEventListener(\"message\", this._onComObjOnMessage);\n }\n on(actionName, handler) {\n const ah = this.actionHandler;\n if (ah[actionName]) {\n throw new Error(`There is already an actionName called \"${actionName}\"`);\n }\n ah[actionName] = handler;\n }\n send(actionName, data, transfers) {\n this.comObj.postMessage({\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n data\n }, transfers);\n }\n sendWithPromise(actionName, data, transfers) {\n const callbackId = this.callbackId++;\n const capability = new _util.PromiseCapability();\n this.callbackCapabilities[callbackId] = capability;\n try {\n this.comObj.postMessage({\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n callbackId,\n data\n }, transfers);\n } catch (ex) {\n capability.reject(ex);\n }\n return capability.promise;\n }\n sendWithStream(actionName, data, queueingStrategy, transfers) {\n const streamId = this.streamId++,\n sourceName = this.sourceName,\n targetName = this.targetName,\n comObj = this.comObj;\n return new ReadableStream({\n start: controller => {\n const startCapability = new _util.PromiseCapability();\n this.streamControllers[streamId] = {\n controller,\n startCall: startCapability,\n pullCall: null,\n cancelCall: null,\n isClosed: false\n };\n comObj.postMessage({\n sourceName,\n targetName,\n action: actionName,\n streamId,\n data,\n desiredSize: controller.desiredSize\n }, transfers);\n return startCapability.promise;\n },\n pull: controller => {\n const pullCapability = new _util.PromiseCapability();\n this.streamControllers[streamId].pullCall = pullCapability;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL,\n streamId,\n desiredSize: controller.desiredSize\n });\n return pullCapability.promise;\n },\n cancel: reason => {\n (0, _util.assert)(reason instanceof Error, \"cancel must have a valid reason\");\n const cancelCapability = new _util.PromiseCapability();\n this.streamControllers[streamId].cancelCall = cancelCapability;\n this.streamControllers[streamId].isClosed = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL,\n streamId,\n reason: wrapReason(reason)\n });\n return cancelCapability.promise;\n }\n }, queueingStrategy);\n }\n #createStreamSink(data) {\n const streamId = data.streamId,\n sourceName = this.sourceName,\n targetName = data.sourceName,\n comObj = this.comObj;\n const self = this,\n action = this.actionHandler[data.action];\n const streamSink = {\n enqueue(chunk, size = 1, transfers) {\n if (this.isCancelled) {\n return;\n }\n const lastDesiredSize = this.desiredSize;\n this.desiredSize -= size;\n if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n this.sinkCapability = new _util.PromiseCapability();\n this.ready = this.sinkCapability.promise;\n }\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.ENQUEUE,\n streamId,\n chunk\n }, transfers);\n },\n close() {\n if (this.isCancelled) {\n return;\n }\n this.isCancelled = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CLOSE,\n streamId\n });\n delete self.streamSinks[streamId];\n },\n error(reason) {\n (0, _util.assert)(reason instanceof Error, \"error must have a valid reason\");\n if (this.isCancelled) {\n return;\n }\n this.isCancelled = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.ERROR,\n streamId,\n reason: wrapReason(reason)\n });\n },\n sinkCapability: new _util.PromiseCapability(),\n onPull: null,\n onCancel: null,\n isCancelled: false,\n desiredSize: data.desiredSize,\n ready: null\n };\n streamSink.sinkCapability.resolve();\n streamSink.ready = streamSink.sinkCapability.promise;\n this.streamSinks[streamId] = streamSink;\n new Promise(function (resolve) {\n resolve(action(data.data, streamSink));\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n }\n #processStreamMessage(data) {\n const streamId = data.streamId,\n sourceName = this.sourceName,\n targetName = data.sourceName,\n comObj = this.comObj;\n const streamController = this.streamControllers[streamId],\n streamSink = this.streamSinks[streamId];\n switch (data.stream) {\n case StreamKind.START_COMPLETE:\n if (data.success) {\n streamController.startCall.resolve();\n } else {\n streamController.startCall.reject(wrapReason(data.reason));\n }\n break;\n case StreamKind.PULL_COMPLETE:\n if (data.success) {\n streamController.pullCall.resolve();\n } else {\n streamController.pullCall.reject(wrapReason(data.reason));\n }\n break;\n case StreamKind.PULL:\n if (!streamSink) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true\n });\n break;\n }\n if (streamSink.desiredSize <= 0 && data.desiredSize > 0) {\n streamSink.sinkCapability.resolve();\n }\n streamSink.desiredSize = data.desiredSize;\n new Promise(function (resolve) {\n resolve(streamSink.onPull?.());\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n break;\n case StreamKind.ENQUEUE:\n (0, _util.assert)(streamController, \"enqueue should have stream controller\");\n if (streamController.isClosed) {\n break;\n }\n streamController.controller.enqueue(data.chunk);\n break;\n case StreamKind.CLOSE:\n (0, _util.assert)(streamController, \"close should have stream controller\");\n if (streamController.isClosed) {\n break;\n }\n streamController.isClosed = true;\n streamController.controller.close();\n this.#deleteStreamController(streamController, streamId);\n break;\n case StreamKind.ERROR:\n (0, _util.assert)(streamController, \"error should have stream controller\");\n streamController.controller.error(wrapReason(data.reason));\n this.#deleteStreamController(streamController, streamId);\n break;\n case StreamKind.CANCEL_COMPLETE:\n if (data.success) {\n streamController.cancelCall.resolve();\n } else {\n streamController.cancelCall.reject(wrapReason(data.reason));\n }\n this.#deleteStreamController(streamController, streamId);\n break;\n case StreamKind.CANCEL:\n if (!streamSink) {\n break;\n }\n new Promise(function (resolve) {\n resolve(streamSink.onCancel?.(wrapReason(data.reason)));\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n streamSink.sinkCapability.reject(wrapReason(data.reason));\n streamSink.isCancelled = true;\n delete this.streamSinks[streamId];\n break;\n default:\n throw new Error(\"Unexpected stream case\");\n }\n }\n async #deleteStreamController(streamController, streamId) {\n await Promise.allSettled([streamController.startCall?.promise, streamController.pullCall?.promise, streamController.cancelCall?.promise]);\n delete this.streamControllers[streamId];\n }\n destroy() {\n this.comObj.removeEventListener(\"message\", this._onComObjOnMessage);\n }\n}\nexports.MessageHandler = MessageHandler;\n\n/***/ }),\n/* 16 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.Metadata = void 0;\nvar _util = __w_pdfjs_require__(1);\nclass Metadata {\n #metadataMap;\n #data;\n constructor({\n parsedData,\n rawData\n }) {\n this.#metadataMap = parsedData;\n this.#data = rawData;\n }\n getRaw() {\n return this.#data;\n }\n get(name) {\n return this.#metadataMap.get(name) ?? null;\n }\n getAll() {\n return (0, _util.objectFromMap)(this.#metadataMap);\n }\n has(name) {\n return this.#metadataMap.has(name);\n }\n}\nexports.Metadata = Metadata;\n\n/***/ }),\n/* 17 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.OptionalContentConfig = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _murmurhash = __w_pdfjs_require__(8);\nconst INTERNAL = Symbol(\"INTERNAL\");\nclass OptionalContentGroup {\n #visible = true;\n constructor(name, intent) {\n this.name = name;\n this.intent = intent;\n }\n get visible() {\n return this.#visible;\n }\n _setVisible(internal, visible) {\n if (internal !== INTERNAL) {\n (0, _util.unreachable)(\"Internal method `_setVisible` called.\");\n }\n this.#visible = visible;\n }\n}\nclass OptionalContentConfig {\n #cachedGetHash = null;\n #groups = new Map();\n #initialHash = null;\n #order = null;\n constructor(data) {\n this.name = null;\n this.creator = null;\n if (data === null) {\n return;\n }\n this.name = data.name;\n this.creator = data.creator;\n this.#order = data.order;\n for (const group of data.groups) {\n this.#groups.set(group.id, new OptionalContentGroup(group.name, group.intent));\n }\n if (data.baseState === \"OFF\") {\n for (const group of this.#groups.values()) {\n group._setVisible(INTERNAL, false);\n }\n }\n for (const on of data.on) {\n this.#groups.get(on)._setVisible(INTERNAL, true);\n }\n for (const off of data.off) {\n this.#groups.get(off)._setVisible(INTERNAL, false);\n }\n this.#initialHash = this.getHash();\n }\n #evaluateVisibilityExpression(array) {\n const length = array.length;\n if (length < 2) {\n return true;\n }\n const operator = array[0];\n for (let i = 1; i < length; i++) {\n const element = array[i];\n let state;\n if (Array.isArray(element)) {\n state = this.#evaluateVisibilityExpression(element);\n } else if (this.#groups.has(element)) {\n state = this.#groups.get(element).visible;\n } else {\n (0, _util.warn)(`Optional content group not found: ${element}`);\n return true;\n }\n switch (operator) {\n case \"And\":\n if (!state) {\n return false;\n }\n break;\n case \"Or\":\n if (state) {\n return true;\n }\n break;\n case \"Not\":\n return !state;\n default:\n return true;\n }\n }\n return operator === \"And\";\n }\n isVisible(group) {\n if (this.#groups.size === 0) {\n return true;\n }\n if (!group) {\n (0, _util.warn)(\"Optional content group not defined.\");\n return true;\n }\n if (group.type === \"OCG\") {\n if (!this.#groups.has(group.id)) {\n (0, _util.warn)(`Optional content group not found: ${group.id}`);\n return true;\n }\n return this.#groups.get(group.id).visible;\n } else if (group.type === \"OCMD\") {\n if (group.expression) {\n return this.#evaluateVisibilityExpression(group.expression);\n }\n if (!group.policy || group.policy === \"AnyOn\") {\n for (const id of group.ids) {\n if (!this.#groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n if (this.#groups.get(id).visible) {\n return true;\n }\n }\n return false;\n } else if (group.policy === \"AllOn\") {\n for (const id of group.ids) {\n if (!this.#groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n if (!this.#groups.get(id).visible) {\n return false;\n }\n }\n return true;\n } else if (group.policy === \"AnyOff\") {\n for (const id of group.ids) {\n if (!this.#groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n if (!this.#groups.get(id).visible) {\n return true;\n }\n }\n return false;\n } else if (group.policy === \"AllOff\") {\n for (const id of group.ids) {\n if (!this.#groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n if (this.#groups.get(id).visible) {\n return false;\n }\n }\n return true;\n }\n (0, _util.warn)(`Unknown optional content policy ${group.policy}.`);\n return true;\n }\n (0, _util.warn)(`Unknown group type ${group.type}.`);\n return true;\n }\n setVisibility(id, visible = true) {\n if (!this.#groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return;\n }\n this.#groups.get(id)._setVisible(INTERNAL, !!visible);\n this.#cachedGetHash = null;\n }\n get hasInitialVisibility() {\n return this.#initialHash === null || this.getHash() === this.#initialHash;\n }\n getOrder() {\n if (!this.#groups.size) {\n return null;\n }\n if (this.#order) {\n return this.#order.slice();\n }\n return [...this.#groups.keys()];\n }\n getGroups() {\n return this.#groups.size > 0 ? (0, _util.objectFromMap)(this.#groups) : null;\n }\n getGroup(id) {\n return this.#groups.get(id) || null;\n }\n getHash() {\n if (this.#cachedGetHash !== null) {\n return this.#cachedGetHash;\n }\n const hash = new _murmurhash.MurmurHash3_64();\n for (const [id, group] of this.#groups) {\n hash.update(`${id}:${group.visible}`);\n }\n return this.#cachedGetHash = hash.hexdigest();\n }\n}\nexports.OptionalContentConfig = OptionalContentConfig;\n\n/***/ }),\n/* 18 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFDataTransportStream = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _display_utils = __w_pdfjs_require__(6);\nclass PDFDataTransportStream {\n constructor({\n length,\n initialData,\n progressiveDone = false,\n contentDispositionFilename = null,\n disableRange = false,\n disableStream = false\n }, pdfDataRangeTransport) {\n (0, _util.assert)(pdfDataRangeTransport, 'PDFDataTransportStream - missing required \"pdfDataRangeTransport\" argument.');\n this._queuedChunks = [];\n this._progressiveDone = progressiveDone;\n this._contentDispositionFilename = contentDispositionFilename;\n if (initialData?.length > 0) {\n const buffer = initialData instanceof Uint8Array && initialData.byteLength === initialData.buffer.byteLength ? initialData.buffer : new Uint8Array(initialData).buffer;\n this._queuedChunks.push(buffer);\n }\n this._pdfDataRangeTransport = pdfDataRangeTransport;\n this._isStreamingSupported = !disableStream;\n this._isRangeSupported = !disableRange;\n this._contentLength = length;\n this._fullRequestReader = null;\n this._rangeReaders = [];\n this._pdfDataRangeTransport.addRangeListener((begin, chunk) => {\n this._onReceiveData({\n begin,\n chunk\n });\n });\n this._pdfDataRangeTransport.addProgressListener((loaded, total) => {\n this._onProgress({\n loaded,\n total\n });\n });\n this._pdfDataRangeTransport.addProgressiveReadListener(chunk => {\n this._onReceiveData({\n chunk\n });\n });\n this._pdfDataRangeTransport.addProgressiveDoneListener(() => {\n this._onProgressiveDone();\n });\n this._pdfDataRangeTransport.transportReady();\n }\n _onReceiveData({\n begin,\n chunk\n }) {\n const buffer = chunk instanceof Uint8Array && chunk.byteLength === chunk.buffer.byteLength ? chunk.buffer : new Uint8Array(chunk).buffer;\n if (begin === undefined) {\n if (this._fullRequestReader) {\n this._fullRequestReader._enqueue(buffer);\n } else {\n this._queuedChunks.push(buffer);\n }\n } else {\n const found = this._rangeReaders.some(function (rangeReader) {\n if (rangeReader._begin !== begin) {\n return false;\n }\n rangeReader._enqueue(buffer);\n return true;\n });\n (0, _util.assert)(found, \"_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found.\");\n }\n }\n get _progressiveDataLength() {\n return this._fullRequestReader?._loaded ?? 0;\n }\n _onProgress(evt) {\n if (evt.total === undefined) {\n this._rangeReaders[0]?.onProgress?.({\n loaded: evt.loaded\n });\n } else {\n this._fullRequestReader?.onProgress?.({\n loaded: evt.loaded,\n total: evt.total\n });\n }\n }\n _onProgressiveDone() {\n this._fullRequestReader?.progressiveDone();\n this._progressiveDone = true;\n }\n _removeRangeReader(reader) {\n const i = this._rangeReaders.indexOf(reader);\n if (i >= 0) {\n this._rangeReaders.splice(i, 1);\n }\n }\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFDataTransportStream.getFullReader can only be called once.\");\n const queuedChunks = this._queuedChunks;\n this._queuedChunks = null;\n return new PDFDataTransportStreamReader(this, queuedChunks, this._progressiveDone, this._contentDispositionFilename);\n }\n getRangeReader(begin, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n const reader = new PDFDataTransportStreamRangeReader(this, begin, end);\n this._pdfDataRangeTransport.requestDataRange(begin, end);\n this._rangeReaders.push(reader);\n return reader;\n }\n cancelAllRequests(reason) {\n this._fullRequestReader?.cancel(reason);\n for (const reader of this._rangeReaders.slice(0)) {\n reader.cancel(reason);\n }\n this._pdfDataRangeTransport.abort();\n }\n}\nexports.PDFDataTransportStream = PDFDataTransportStream;\nclass PDFDataTransportStreamReader {\n constructor(stream, queuedChunks, progressiveDone = false, contentDispositionFilename = null) {\n this._stream = stream;\n this._done = progressiveDone || false;\n this._filename = (0, _display_utils.isPdfFile)(contentDispositionFilename) ? contentDispositionFilename : null;\n this._queuedChunks = queuedChunks || [];\n this._loaded = 0;\n for (const chunk of this._queuedChunks) {\n this._loaded += chunk.byteLength;\n }\n this._requests = [];\n this._headersReady = Promise.resolve();\n stream._fullRequestReader = this;\n this.onProgress = null;\n }\n _enqueue(chunk) {\n if (this._done) {\n return;\n }\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._queuedChunks.push(chunk);\n }\n this._loaded += chunk.byteLength;\n }\n get headersReady() {\n return this._headersReady;\n }\n get filename() {\n return this._filename;\n }\n get isRangeSupported() {\n return this._stream._isRangeSupported;\n }\n get isStreamingSupported() {\n return this._stream._isStreamingSupported;\n }\n get contentLength() {\n return this._stream._contentLength;\n }\n async read() {\n if (this._queuedChunks.length > 0) {\n const chunk = this._queuedChunks.shift();\n return {\n value: chunk,\n done: false\n };\n }\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n const requestCapability = new _util.PromiseCapability();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n }\n cancel(reason) {\n this._done = true;\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n }\n progressiveDone() {\n if (this._done) {\n return;\n }\n this._done = true;\n }\n}\nclass PDFDataTransportStreamRangeReader {\n constructor(stream, begin, end) {\n this._stream = stream;\n this._begin = begin;\n this._end = end;\n this._queuedChunk = null;\n this._requests = [];\n this._done = false;\n this.onProgress = null;\n }\n _enqueue(chunk) {\n if (this._done) {\n return;\n }\n if (this._requests.length === 0) {\n this._queuedChunk = chunk;\n } else {\n const requestsCapability = this._requests.shift();\n requestsCapability.resolve({\n value: chunk,\n done: false\n });\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n }\n this._done = true;\n this._stream._removeRangeReader(this);\n }\n get isStreamingSupported() {\n return false;\n }\n async read() {\n if (this._queuedChunk) {\n const chunk = this._queuedChunk;\n this._queuedChunk = null;\n return {\n value: chunk,\n done: false\n };\n }\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n const requestCapability = new _util.PromiseCapability();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n }\n cancel(reason) {\n this._done = true;\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n this._stream._removeRangeReader(this);\n }\n}\n\n/***/ }),\n/* 19 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFFetchStream = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _network_utils = __w_pdfjs_require__(20);\n;\nfunction createFetchOptions(headers, withCredentials, abortController) {\n return {\n method: \"GET\",\n headers,\n signal: abortController.signal,\n mode: \"cors\",\n credentials: withCredentials ? \"include\" : \"same-origin\",\n redirect: \"follow\"\n };\n}\nfunction createHeaders(httpHeaders) {\n const headers = new Headers();\n for (const property in httpHeaders) {\n const value = httpHeaders[property];\n if (value === undefined) {\n continue;\n }\n headers.append(property, value);\n }\n return headers;\n}\nfunction getArrayBuffer(val) {\n if (val instanceof Uint8Array) {\n return val.buffer;\n }\n if (val instanceof ArrayBuffer) {\n return val;\n }\n (0, _util.warn)(`getArrayBuffer - unexpected data format: ${val}`);\n return new Uint8Array(val).buffer;\n}\nclass PDFFetchStream {\n constructor(source) {\n this.source = source;\n this.isHttp = /^https?:/i.test(source.url);\n this.httpHeaders = this.isHttp && source.httpHeaders || {};\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n get _progressiveDataLength() {\n return this._fullRequestReader?._loaded ?? 0;\n }\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFFetchStream.getFullReader can only be called once.\");\n this._fullRequestReader = new PDFFetchStreamReader(this);\n return this._fullRequestReader;\n }\n getRangeReader(begin, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n const reader = new PDFFetchStreamRangeReader(this, begin, end);\n this._rangeRequestReaders.push(reader);\n return reader;\n }\n cancelAllRequests(reason) {\n this._fullRequestReader?.cancel(reason);\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n}\nexports.PDFFetchStream = PDFFetchStream;\nclass PDFFetchStreamReader {\n constructor(stream) {\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n this._filename = null;\n const source = stream.source;\n this._withCredentials = source.withCredentials || false;\n this._contentLength = source.length;\n this._headersCapability = new _util.PromiseCapability();\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n this._abortController = new AbortController();\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n this._headers = createHeaders(this._stream.httpHeaders);\n const url = source.url;\n fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(response => {\n if (!(0, _network_utils.validateResponseStatus)(response.status)) {\n throw (0, _network_utils.createResponseStatusError)(response.status, url);\n }\n this._reader = response.body.getReader();\n this._headersCapability.resolve();\n const getResponseHeader = name => {\n return response.headers.get(name);\n };\n const {\n allowRangeRequests,\n suggestedLength\n } = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader,\n isHttp: this._stream.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n });\n this._isRangeSupported = allowRangeRequests;\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this.cancel(new _util.AbortException(\"Streaming is disabled.\"));\n }\n }).catch(this._headersCapability.reject);\n this.onProgress = null;\n }\n get headersReady() {\n return this._headersCapability.promise;\n }\n get filename() {\n return this._filename;\n }\n get contentLength() {\n return this._contentLength;\n }\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n async read() {\n await this._headersCapability.promise;\n const {\n value,\n done\n } = await this._reader.read();\n if (done) {\n return {\n value,\n done\n };\n }\n this._loaded += value.byteLength;\n this.onProgress?.({\n loaded: this._loaded,\n total: this._contentLength\n });\n return {\n value: getArrayBuffer(value),\n done: false\n };\n }\n cancel(reason) {\n this._reader?.cancel(reason);\n this._abortController.abort();\n }\n}\nclass PDFFetchStreamRangeReader {\n constructor(stream, begin, end) {\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n const source = stream.source;\n this._withCredentials = source.withCredentials || false;\n this._readCapability = new _util.PromiseCapability();\n this._isStreamingSupported = !source.disableStream;\n this._abortController = new AbortController();\n this._headers = createHeaders(this._stream.httpHeaders);\n this._headers.append(\"Range\", `bytes=${begin}-${end - 1}`);\n const url = source.url;\n fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(response => {\n if (!(0, _network_utils.validateResponseStatus)(response.status)) {\n throw (0, _network_utils.createResponseStatusError)(response.status, url);\n }\n this._readCapability.resolve();\n this._reader = response.body.getReader();\n }).catch(this._readCapability.reject);\n this.onProgress = null;\n }\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n async read() {\n await this._readCapability.promise;\n const {\n value,\n done\n } = await this._reader.read();\n if (done) {\n return {\n value,\n done\n };\n }\n this._loaded += value.byteLength;\n this.onProgress?.({\n loaded: this._loaded\n });\n return {\n value: getArrayBuffer(value),\n done: false\n };\n }\n cancel(reason) {\n this._reader?.cancel(reason);\n this._abortController.abort();\n }\n}\n\n/***/ }),\n/* 20 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.createResponseStatusError = createResponseStatusError;\nexports.extractFilenameFromHeader = extractFilenameFromHeader;\nexports.validateRangeRequestCapabilities = validateRangeRequestCapabilities;\nexports.validateResponseStatus = validateResponseStatus;\nvar _util = __w_pdfjs_require__(1);\nvar _content_disposition = __w_pdfjs_require__(21);\nvar _display_utils = __w_pdfjs_require__(6);\nfunction validateRangeRequestCapabilities({\n getResponseHeader,\n isHttp,\n rangeChunkSize,\n disableRange\n}) {\n const returnValues = {\n allowRangeRequests: false,\n suggestedLength: undefined\n };\n const length = parseInt(getResponseHeader(\"Content-Length\"), 10);\n if (!Number.isInteger(length)) {\n return returnValues;\n }\n returnValues.suggestedLength = length;\n if (length <= 2 * rangeChunkSize) {\n return returnValues;\n }\n if (disableRange || !isHttp) {\n return returnValues;\n }\n if (getResponseHeader(\"Accept-Ranges\") !== \"bytes\") {\n return returnValues;\n }\n const contentEncoding = getResponseHeader(\"Content-Encoding\") || \"identity\";\n if (contentEncoding !== \"identity\") {\n return returnValues;\n }\n returnValues.allowRangeRequests = true;\n return returnValues;\n}\nfunction extractFilenameFromHeader(getResponseHeader) {\n const contentDisposition = getResponseHeader(\"Content-Disposition\");\n if (contentDisposition) {\n let filename = (0, _content_disposition.getFilenameFromContentDispositionHeader)(contentDisposition);\n if (filename.includes(\"%\")) {\n try {\n filename = decodeURIComponent(filename);\n } catch {}\n }\n if ((0, _display_utils.isPdfFile)(filename)) {\n return filename;\n }\n }\n return null;\n}\nfunction createResponseStatusError(status, url) {\n if (status === 404 || status === 0 && url.startsWith(\"file:\")) {\n return new _util.MissingPDFException('Missing PDF \"' + url + '\".');\n }\n return new _util.UnexpectedResponseException(`Unexpected server response (${status}) while retrieving PDF \"${url}\".`, status);\n}\nfunction validateResponseStatus(status) {\n return status === 200 || status === 206;\n}\n\n/***/ }),\n/* 21 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.getFilenameFromContentDispositionHeader = getFilenameFromContentDispositionHeader;\nvar _util = __w_pdfjs_require__(1);\nfunction getFilenameFromContentDispositionHeader(contentDisposition) {\n let needsEncodingFixup = true;\n let tmp = toParamRegExp(\"filename\\\\*\", \"i\").exec(contentDisposition);\n if (tmp) {\n tmp = tmp[1];\n let filename = rfc2616unquote(tmp);\n filename = unescape(filename);\n filename = rfc5987decode(filename);\n filename = rfc2047decode(filename);\n return fixupEncoding(filename);\n }\n tmp = rfc2231getparam(contentDisposition);\n if (tmp) {\n const filename = rfc2047decode(tmp);\n return fixupEncoding(filename);\n }\n tmp = toParamRegExp(\"filename\", \"i\").exec(contentDisposition);\n if (tmp) {\n tmp = tmp[1];\n let filename = rfc2616unquote(tmp);\n filename = rfc2047decode(filename);\n return fixupEncoding(filename);\n }\n function toParamRegExp(attributePattern, flags) {\n return new RegExp(\"(?:^|;)\\\\s*\" + attributePattern + \"\\\\s*=\\\\s*\" + \"(\" + '[^\";\\\\s][^;\\\\s]*' + \"|\" + '\"(?:[^\"\\\\\\\\]|\\\\\\\\\"?)+\"?' + \")\", flags);\n }\n function textdecode(encoding, value) {\n if (encoding) {\n if (!/^[\\x00-\\xFF]+$/.test(value)) {\n return value;\n }\n try {\n const decoder = new TextDecoder(encoding, {\n fatal: true\n });\n const buffer = (0, _util.stringToBytes)(value);\n value = decoder.decode(buffer);\n needsEncodingFixup = false;\n } catch {}\n }\n return value;\n }\n function fixupEncoding(value) {\n if (needsEncodingFixup && /[\\x80-\\xff]/.test(value)) {\n value = textdecode(\"utf-8\", value);\n if (needsEncodingFixup) {\n value = textdecode(\"iso-8859-1\", value);\n }\n }\n return value;\n }\n function rfc2231getparam(contentDispositionStr) {\n const matches = [];\n let match;\n const iter = toParamRegExp(\"filename\\\\*((?!0\\\\d)\\\\d+)(\\\\*?)\", \"ig\");\n while ((match = iter.exec(contentDispositionStr)) !== null) {\n let [, n, quot, part] = match;\n n = parseInt(n, 10);\n if (n in matches) {\n if (n === 0) {\n break;\n }\n continue;\n }\n matches[n] = [quot, part];\n }\n const parts = [];\n for (let n = 0; n < matches.length; ++n) {\n if (!(n in matches)) {\n break;\n }\n let [quot, part] = matches[n];\n part = rfc2616unquote(part);\n if (quot) {\n part = unescape(part);\n if (n === 0) {\n part = rfc5987decode(part);\n }\n }\n parts.push(part);\n }\n return parts.join(\"\");\n }\n function rfc2616unquote(value) {\n if (value.startsWith('\"')) {\n const parts = value.slice(1).split('\\\\\"');\n for (let i = 0; i < parts.length; ++i) {\n const quotindex = parts[i].indexOf('\"');\n if (quotindex !== -1) {\n parts[i] = parts[i].slice(0, quotindex);\n parts.length = i + 1;\n }\n parts[i] = parts[i].replaceAll(/\\\\(.)/g, \"$1\");\n }\n value = parts.join('\"');\n }\n return value;\n }\n function rfc5987decode(extvalue) {\n const encodingend = extvalue.indexOf(\"'\");\n if (encodingend === -1) {\n return extvalue;\n }\n const encoding = extvalue.slice(0, encodingend);\n const langvalue = extvalue.slice(encodingend + 1);\n const value = langvalue.replace(/^[^']*'/, \"\");\n return textdecode(encoding, value);\n }\n function rfc2047decode(value) {\n if (!value.startsWith(\"=?\") || /[\\x00-\\x19\\x80-\\xff]/.test(value)) {\n return value;\n }\n return value.replaceAll(/=\\?([\\w-]*)\\?([QqBb])\\?((?:[^?]|\\?(?!=))*)\\?=/g, function (matches, charset, encoding, text) {\n if (encoding === \"q\" || encoding === \"Q\") {\n text = text.replaceAll(\"_\", \" \");\n text = text.replaceAll(/=([0-9a-fA-F]{2})/g, function (match, hex) {\n return String.fromCharCode(parseInt(hex, 16));\n });\n return textdecode(charset, text);\n }\n try {\n text = atob(text);\n } catch {}\n return textdecode(charset, text);\n });\n }\n return \"\";\n}\n\n/***/ }),\n/* 22 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFNetworkStream = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _network_utils = __w_pdfjs_require__(20);\n;\nconst OK_RESPONSE = 200;\nconst PARTIAL_CONTENT_RESPONSE = 206;\nfunction getArrayBuffer(xhr) {\n const data = xhr.response;\n if (typeof data !== \"string\") {\n return data;\n }\n return (0, _util.stringToBytes)(data).buffer;\n}\nclass NetworkManager {\n constructor(url, args = {}) {\n this.url = url;\n this.isHttp = /^https?:/i.test(url);\n this.httpHeaders = this.isHttp && args.httpHeaders || Object.create(null);\n this.withCredentials = args.withCredentials || false;\n this.currXhrId = 0;\n this.pendingRequests = Object.create(null);\n }\n requestRange(begin, end, listeners) {\n const args = {\n begin,\n end\n };\n for (const prop in listeners) {\n args[prop] = listeners[prop];\n }\n return this.request(args);\n }\n requestFull(listeners) {\n return this.request(listeners);\n }\n request(args) {\n const xhr = new XMLHttpRequest();\n const xhrId = this.currXhrId++;\n const pendingRequest = this.pendingRequests[xhrId] = {\n xhr\n };\n xhr.open(\"GET\", this.url);\n xhr.withCredentials = this.withCredentials;\n for (const property in this.httpHeaders) {\n const value = this.httpHeaders[property];\n if (value === undefined) {\n continue;\n }\n xhr.setRequestHeader(property, value);\n }\n if (this.isHttp && \"begin\" in args && \"end\" in args) {\n xhr.setRequestHeader(\"Range\", `bytes=${args.begin}-${args.end - 1}`);\n pendingRequest.expectedStatus = PARTIAL_CONTENT_RESPONSE;\n } else {\n pendingRequest.expectedStatus = OK_RESPONSE;\n }\n xhr.responseType = \"arraybuffer\";\n if (args.onError) {\n xhr.onerror = function (evt) {\n args.onError(xhr.status);\n };\n }\n xhr.onreadystatechange = this.onStateChange.bind(this, xhrId);\n xhr.onprogress = this.onProgress.bind(this, xhrId);\n pendingRequest.onHeadersReceived = args.onHeadersReceived;\n pendingRequest.onDone = args.onDone;\n pendingRequest.onError = args.onError;\n pendingRequest.onProgress = args.onProgress;\n xhr.send(null);\n return xhrId;\n }\n onProgress(xhrId, evt) {\n const pendingRequest = this.pendingRequests[xhrId];\n if (!pendingRequest) {\n return;\n }\n pendingRequest.onProgress?.(evt);\n }\n onStateChange(xhrId, evt) {\n const pendingRequest = this.pendingRequests[xhrId];\n if (!pendingRequest) {\n return;\n }\n const xhr = pendingRequest.xhr;\n if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) {\n pendingRequest.onHeadersReceived();\n delete pendingRequest.onHeadersReceived;\n }\n if (xhr.readyState !== 4) {\n return;\n }\n if (!(xhrId in this.pendingRequests)) {\n return;\n }\n delete this.pendingRequests[xhrId];\n if (xhr.status === 0 && this.isHttp) {\n pendingRequest.onError?.(xhr.status);\n return;\n }\n const xhrStatus = xhr.status || OK_RESPONSE;\n const ok_response_on_range_request = xhrStatus === OK_RESPONSE && pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE;\n if (!ok_response_on_range_request && xhrStatus !== pendingRequest.expectedStatus) {\n pendingRequest.onError?.(xhr.status);\n return;\n }\n const chunk = getArrayBuffer(xhr);\n if (xhrStatus === PARTIAL_CONTENT_RESPONSE) {\n const rangeHeader = xhr.getResponseHeader(\"Content-Range\");\n const matches = /bytes (\\d+)-(\\d+)\\/(\\d+)/.exec(rangeHeader);\n pendingRequest.onDone({\n begin: parseInt(matches[1], 10),\n chunk\n });\n } else if (chunk) {\n pendingRequest.onDone({\n begin: 0,\n chunk\n });\n } else {\n pendingRequest.onError?.(xhr.status);\n }\n }\n getRequestXhr(xhrId) {\n return this.pendingRequests[xhrId].xhr;\n }\n isPendingRequest(xhrId) {\n return xhrId in this.pendingRequests;\n }\n abortRequest(xhrId) {\n const xhr = this.pendingRequests[xhrId].xhr;\n delete this.pendingRequests[xhrId];\n xhr.abort();\n }\n}\nclass PDFNetworkStream {\n constructor(source) {\n this._source = source;\n this._manager = new NetworkManager(source.url, {\n httpHeaders: source.httpHeaders,\n withCredentials: source.withCredentials\n });\n this._rangeChunkSize = source.rangeChunkSize;\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n _onRangeRequestReaderClosed(reader) {\n const i = this._rangeRequestReaders.indexOf(reader);\n if (i >= 0) {\n this._rangeRequestReaders.splice(i, 1);\n }\n }\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFNetworkStream.getFullReader can only be called once.\");\n this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager, this._source);\n return this._fullRequestReader;\n }\n getRangeReader(begin, end) {\n const reader = new PDFNetworkStreamRangeRequestReader(this._manager, begin, end);\n reader.onClosed = this._onRangeRequestReaderClosed.bind(this);\n this._rangeRequestReaders.push(reader);\n return reader;\n }\n cancelAllRequests(reason) {\n this._fullRequestReader?.cancel(reason);\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n}\nexports.PDFNetworkStream = PDFNetworkStream;\nclass PDFNetworkStreamFullRequestReader {\n constructor(manager, source) {\n this._manager = manager;\n const args = {\n onHeadersReceived: this._onHeadersReceived.bind(this),\n onDone: this._onDone.bind(this),\n onError: this._onError.bind(this),\n onProgress: this._onProgress.bind(this)\n };\n this._url = source.url;\n this._fullRequestId = manager.requestFull(args);\n this._headersReceivedCapability = new _util.PromiseCapability();\n this._disableRange = source.disableRange || false;\n this._contentLength = source.length;\n this._rangeChunkSize = source.rangeChunkSize;\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n this._isStreamingSupported = false;\n this._isRangeSupported = false;\n this._cachedChunks = [];\n this._requests = [];\n this._done = false;\n this._storedError = undefined;\n this._filename = null;\n this.onProgress = null;\n }\n _onHeadersReceived() {\n const fullRequestXhrId = this._fullRequestId;\n const fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId);\n const getResponseHeader = name => {\n return fullRequestXhr.getResponseHeader(name);\n };\n const {\n allowRangeRequests,\n suggestedLength\n } = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader,\n isHttp: this._manager.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n });\n if (allowRangeRequests) {\n this._isRangeSupported = true;\n }\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n if (this._isRangeSupported) {\n this._manager.abortRequest(fullRequestXhrId);\n }\n this._headersReceivedCapability.resolve();\n }\n _onDone(data) {\n if (data) {\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n requestCapability.resolve({\n value: data.chunk,\n done: false\n });\n } else {\n this._cachedChunks.push(data.chunk);\n }\n }\n this._done = true;\n if (this._cachedChunks.length > 0) {\n return;\n }\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n }\n _onError(status) {\n this._storedError = (0, _network_utils.createResponseStatusError)(status, this._url);\n this._headersReceivedCapability.reject(this._storedError);\n for (const requestCapability of this._requests) {\n requestCapability.reject(this._storedError);\n }\n this._requests.length = 0;\n this._cachedChunks.length = 0;\n }\n _onProgress(evt) {\n this.onProgress?.({\n loaded: evt.loaded,\n total: evt.lengthComputable ? evt.total : this._contentLength\n });\n }\n get filename() {\n return this._filename;\n }\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n get contentLength() {\n return this._contentLength;\n }\n get headersReady() {\n return this._headersReceivedCapability.promise;\n }\n async read() {\n if (this._storedError) {\n throw this._storedError;\n }\n if (this._cachedChunks.length > 0) {\n const chunk = this._cachedChunks.shift();\n return {\n value: chunk,\n done: false\n };\n }\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n const requestCapability = new _util.PromiseCapability();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n }\n cancel(reason) {\n this._done = true;\n this._headersReceivedCapability.reject(reason);\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n if (this._manager.isPendingRequest(this._fullRequestId)) {\n this._manager.abortRequest(this._fullRequestId);\n }\n this._fullRequestReader = null;\n }\n}\nclass PDFNetworkStreamRangeRequestReader {\n constructor(manager, begin, end) {\n this._manager = manager;\n const args = {\n onDone: this._onDone.bind(this),\n onError: this._onError.bind(this),\n onProgress: this._onProgress.bind(this)\n };\n this._url = manager.url;\n this._requestId = manager.requestRange(begin, end, args);\n this._requests = [];\n this._queuedChunk = null;\n this._done = false;\n this._storedError = undefined;\n this.onProgress = null;\n this.onClosed = null;\n }\n _close() {\n this.onClosed?.(this);\n }\n _onDone(data) {\n const chunk = data.chunk;\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._queuedChunk = chunk;\n }\n this._done = true;\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n this._close();\n }\n _onError(status) {\n this._storedError = (0, _network_utils.createResponseStatusError)(status, this._url);\n for (const requestCapability of this._requests) {\n requestCapability.reject(this._storedError);\n }\n this._requests.length = 0;\n this._queuedChunk = null;\n }\n _onProgress(evt) {\n if (!this.isStreamingSupported) {\n this.onProgress?.({\n loaded: evt.loaded\n });\n }\n }\n get isStreamingSupported() {\n return false;\n }\n async read() {\n if (this._storedError) {\n throw this._storedError;\n }\n if (this._queuedChunk !== null) {\n const chunk = this._queuedChunk;\n this._queuedChunk = null;\n return {\n value: chunk,\n done: false\n };\n }\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n const requestCapability = new _util.PromiseCapability();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n }\n cancel(reason) {\n this._done = true;\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n if (this._manager.isPendingRequest(this._requestId)) {\n this._manager.abortRequest(this._requestId);\n }\n this._close();\n }\n}\n\n/***/ }),\n/* 23 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFNodeStream = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _network_utils = __w_pdfjs_require__(20);\n;\nconst fileUriRegex = /^file:\\/\\/\\/[a-zA-Z]:\\//;\nfunction parseUrl(sourceUrl) {\n const url = require(\"url\");\n const parsedUrl = url.parse(sourceUrl);\n if (parsedUrl.protocol === \"file:\" || parsedUrl.host) {\n return parsedUrl;\n }\n if (/^[a-z]:[/\\\\]/i.test(sourceUrl)) {\n return url.parse(`file:///${sourceUrl}`);\n }\n if (!parsedUrl.host) {\n parsedUrl.protocol = \"file:\";\n }\n return parsedUrl;\n}\nclass PDFNodeStream {\n constructor(source) {\n this.source = source;\n this.url = parseUrl(source.url);\n this.isHttp = this.url.protocol === \"http:\" || this.url.protocol === \"https:\";\n this.isFsUrl = this.url.protocol === \"file:\";\n this.httpHeaders = this.isHttp && source.httpHeaders || {};\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n get _progressiveDataLength() {\n return this._fullRequestReader?._loaded ?? 0;\n }\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFNodeStream.getFullReader can only be called once.\");\n this._fullRequestReader = this.isFsUrl ? new PDFNodeStreamFsFullReader(this) : new PDFNodeStreamFullReader(this);\n return this._fullRequestReader;\n }\n getRangeReader(start, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n const rangeReader = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this, start, end) : new PDFNodeStreamRangeReader(this, start, end);\n this._rangeRequestReaders.push(rangeReader);\n return rangeReader;\n }\n cancelAllRequests(reason) {\n this._fullRequestReader?.cancel(reason);\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n}\nexports.PDFNodeStream = PDFNodeStream;\nclass BaseFullReader {\n constructor(stream) {\n this._url = stream.url;\n this._done = false;\n this._storedError = null;\n this.onProgress = null;\n const source = stream.source;\n this._contentLength = source.length;\n this._loaded = 0;\n this._filename = null;\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n this._readableStream = null;\n this._readCapability = new _util.PromiseCapability();\n this._headersCapability = new _util.PromiseCapability();\n }\n get headersReady() {\n return this._headersCapability.promise;\n }\n get filename() {\n return this._filename;\n }\n get contentLength() {\n return this._contentLength;\n }\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n async read() {\n await this._readCapability.promise;\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n if (this._storedError) {\n throw this._storedError;\n }\n const chunk = this._readableStream.read();\n if (chunk === null) {\n this._readCapability = new _util.PromiseCapability();\n return this.read();\n }\n this._loaded += chunk.length;\n this.onProgress?.({\n loaded: this._loaded,\n total: this._contentLength\n });\n const buffer = new Uint8Array(chunk).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n cancel(reason) {\n if (!this._readableStream) {\n this._error(reason);\n return;\n }\n this._readableStream.destroy(reason);\n }\n _error(reason) {\n this._storedError = reason;\n this._readCapability.resolve();\n }\n _setReadableStream(readableStream) {\n this._readableStream = readableStream;\n readableStream.on(\"readable\", () => {\n this._readCapability.resolve();\n });\n readableStream.on(\"end\", () => {\n readableStream.destroy();\n this._done = true;\n this._readCapability.resolve();\n });\n readableStream.on(\"error\", reason => {\n this._error(reason);\n });\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this._error(new _util.AbortException(\"streaming is disabled\"));\n }\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n}\nclass BaseRangeReader {\n constructor(stream) {\n this._url = stream.url;\n this._done = false;\n this._storedError = null;\n this.onProgress = null;\n this._loaded = 0;\n this._readableStream = null;\n this._readCapability = new _util.PromiseCapability();\n const source = stream.source;\n this._isStreamingSupported = !source.disableStream;\n }\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n async read() {\n await this._readCapability.promise;\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n if (this._storedError) {\n throw this._storedError;\n }\n const chunk = this._readableStream.read();\n if (chunk === null) {\n this._readCapability = new _util.PromiseCapability();\n return this.read();\n }\n this._loaded += chunk.length;\n this.onProgress?.({\n loaded: this._loaded\n });\n const buffer = new Uint8Array(chunk).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n cancel(reason) {\n if (!this._readableStream) {\n this._error(reason);\n return;\n }\n this._readableStream.destroy(reason);\n }\n _error(reason) {\n this._storedError = reason;\n this._readCapability.resolve();\n }\n _setReadableStream(readableStream) {\n this._readableStream = readableStream;\n readableStream.on(\"readable\", () => {\n this._readCapability.resolve();\n });\n readableStream.on(\"end\", () => {\n readableStream.destroy();\n this._done = true;\n this._readCapability.resolve();\n });\n readableStream.on(\"error\", reason => {\n this._error(reason);\n });\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n}\nfunction createRequestOptions(parsedUrl, headers) {\n return {\n protocol: parsedUrl.protocol,\n auth: parsedUrl.auth,\n host: parsedUrl.hostname,\n port: parsedUrl.port,\n path: parsedUrl.path,\n method: \"GET\",\n headers\n };\n}\nclass PDFNodeStreamFullReader extends BaseFullReader {\n constructor(stream) {\n super(stream);\n const handleResponse = response => {\n if (response.statusCode === 404) {\n const error = new _util.MissingPDFException(`Missing PDF \"${this._url}\".`);\n this._storedError = error;\n this._headersCapability.reject(error);\n return;\n }\n this._headersCapability.resolve();\n this._setReadableStream(response);\n const getResponseHeader = name => {\n return this._readableStream.headers[name.toLowerCase()];\n };\n const {\n allowRangeRequests,\n suggestedLength\n } = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader,\n isHttp: stream.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n });\n this._isRangeSupported = allowRangeRequests;\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n };\n this._request = null;\n if (this._url.protocol === \"http:\") {\n const http = require(\"http\");\n this._request = http.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse);\n } else {\n const https = require(\"https\");\n this._request = https.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse);\n }\n this._request.on(\"error\", reason => {\n this._storedError = reason;\n this._headersCapability.reject(reason);\n });\n this._request.end();\n }\n}\nclass PDFNodeStreamRangeReader extends BaseRangeReader {\n constructor(stream, start, end) {\n super(stream);\n this._httpHeaders = {};\n for (const property in stream.httpHeaders) {\n const value = stream.httpHeaders[property];\n if (value === undefined) {\n continue;\n }\n this._httpHeaders[property] = value;\n }\n this._httpHeaders.Range = `bytes=${start}-${end - 1}`;\n const handleResponse = response => {\n if (response.statusCode === 404) {\n const error = new _util.MissingPDFException(`Missing PDF \"${this._url}\".`);\n this._storedError = error;\n return;\n }\n this._setReadableStream(response);\n };\n this._request = null;\n if (this._url.protocol === \"http:\") {\n const http = require(\"http\");\n this._request = http.request(createRequestOptions(this._url, this._httpHeaders), handleResponse);\n } else {\n const https = require(\"https\");\n this._request = https.request(createRequestOptions(this._url, this._httpHeaders), handleResponse);\n }\n this._request.on(\"error\", reason => {\n this._storedError = reason;\n });\n this._request.end();\n }\n}\nclass PDFNodeStreamFsFullReader extends BaseFullReader {\n constructor(stream) {\n super(stream);\n let path = decodeURIComponent(this._url.path);\n if (fileUriRegex.test(this._url.href)) {\n path = path.replace(/^\\//, \"\");\n }\n const fs = require(\"fs\");\n fs.lstat(path, (error, stat) => {\n if (error) {\n if (error.code === \"ENOENT\") {\n error = new _util.MissingPDFException(`Missing PDF \"${path}\".`);\n }\n this._storedError = error;\n this._headersCapability.reject(error);\n return;\n }\n this._contentLength = stat.size;\n this._setReadableStream(fs.createReadStream(path));\n this._headersCapability.resolve();\n });\n }\n}\nclass PDFNodeStreamFsRangeReader extends BaseRangeReader {\n constructor(stream, start, end) {\n super(stream);\n let path = decodeURIComponent(this._url.path);\n if (fileUriRegex.test(this._url.href)) {\n path = path.replace(/^\\//, \"\");\n }\n const fs = require(\"fs\");\n this._setReadableStream(fs.createReadStream(path, {\n start,\n end: end - 1\n }));\n }\n}\n\n/***/ }),\n/* 24 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.SVGGraphics = void 0;\nvar _display_utils = __w_pdfjs_require__(6);\nvar _util = __w_pdfjs_require__(1);\n;\nconst SVG_DEFAULTS = {\n fontStyle: \"normal\",\n fontWeight: \"normal\",\n fillColor: \"#000000\"\n};\nconst XML_NS = \"http://www.w3.org/XML/1998/namespace\";\nconst XLINK_NS = \"http://www.w3.org/1999/xlink\";\nconst LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\nconst LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\nconst createObjectURL = function (data, contentType = \"\", forceDataSchema = false) {\n if (URL.createObjectURL && typeof Blob !== \"undefined\" && !forceDataSchema) {\n return URL.createObjectURL(new Blob([data], {\n type: contentType\n }));\n }\n const digits = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n let buffer = `data:${contentType};base64,`;\n for (let i = 0, ii = data.length; i < ii; i += 3) {\n const b1 = data[i] & 0xff;\n const b2 = data[i + 1] & 0xff;\n const b3 = data[i + 2] & 0xff;\n const d1 = b1 >> 2,\n d2 = (b1 & 3) << 4 | b2 >> 4;\n const d3 = i + 1 < ii ? (b2 & 0xf) << 2 | b3 >> 6 : 64;\n const d4 = i + 2 < ii ? b3 & 0x3f : 64;\n buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4];\n }\n return buffer;\n};\nconst convertImgDataToPng = function () {\n const PNG_HEADER = new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]);\n const CHUNK_WRAPPER_SIZE = 12;\n const crcTable = new Int32Array(256);\n for (let i = 0; i < 256; i++) {\n let c = i;\n for (let h = 0; h < 8; h++) {\n c = c & 1 ? 0xedb88320 ^ c >> 1 & 0x7fffffff : c >> 1 & 0x7fffffff;\n }\n crcTable[i] = c;\n }\n function crc32(data, start, end) {\n let crc = -1;\n for (let i = start; i < end; i++) {\n const a = (crc ^ data[i]) & 0xff;\n const b = crcTable[a];\n crc = crc >>> 8 ^ b;\n }\n return crc ^ -1;\n }\n function writePngChunk(type, body, data, offset) {\n let p = offset;\n const len = body.length;\n data[p] = len >> 24 & 0xff;\n data[p + 1] = len >> 16 & 0xff;\n data[p + 2] = len >> 8 & 0xff;\n data[p + 3] = len & 0xff;\n p += 4;\n data[p] = type.charCodeAt(0) & 0xff;\n data[p + 1] = type.charCodeAt(1) & 0xff;\n data[p + 2] = type.charCodeAt(2) & 0xff;\n data[p + 3] = type.charCodeAt(3) & 0xff;\n p += 4;\n data.set(body, p);\n p += body.length;\n const crc = crc32(data, offset + 4, p);\n data[p] = crc >> 24 & 0xff;\n data[p + 1] = crc >> 16 & 0xff;\n data[p + 2] = crc >> 8 & 0xff;\n data[p + 3] = crc & 0xff;\n }\n function adler32(data, start, end) {\n let a = 1;\n let b = 0;\n for (let i = start; i < end; ++i) {\n a = (a + (data[i] & 0xff)) % 65521;\n b = (b + a) % 65521;\n }\n return b << 16 | a;\n }\n function deflateSync(literals) {\n if (!_util.isNodeJS) {\n return deflateSyncUncompressed(literals);\n }\n try {\n const input = parseInt(process.versions.node) >= 8 ? literals : Buffer.from(literals);\n const output = require(\"zlib\").deflateSync(input, {\n level: 9\n });\n return output instanceof Uint8Array ? output : new Uint8Array(output);\n } catch (e) {\n (0, _util.warn)(\"Not compressing PNG because zlib.deflateSync is unavailable: \" + e);\n }\n return deflateSyncUncompressed(literals);\n }\n function deflateSyncUncompressed(literals) {\n let len = literals.length;\n const maxBlockLength = 0xffff;\n const deflateBlocks = Math.ceil(len / maxBlockLength);\n const idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4);\n let pi = 0;\n idat[pi++] = 0x78;\n idat[pi++] = 0x9c;\n let pos = 0;\n while (len > maxBlockLength) {\n idat[pi++] = 0x00;\n idat[pi++] = 0xff;\n idat[pi++] = 0xff;\n idat[pi++] = 0x00;\n idat[pi++] = 0x00;\n idat.set(literals.subarray(pos, pos + maxBlockLength), pi);\n pi += maxBlockLength;\n pos += maxBlockLength;\n len -= maxBlockLength;\n }\n idat[pi++] = 0x01;\n idat[pi++] = len & 0xff;\n idat[pi++] = len >> 8 & 0xff;\n idat[pi++] = ~len & 0xffff & 0xff;\n idat[pi++] = (~len & 0xffff) >> 8 & 0xff;\n idat.set(literals.subarray(pos), pi);\n pi += literals.length - pos;\n const adler = adler32(literals, 0, literals.length);\n idat[pi++] = adler >> 24 & 0xff;\n idat[pi++] = adler >> 16 & 0xff;\n idat[pi++] = adler >> 8 & 0xff;\n idat[pi++] = adler & 0xff;\n return idat;\n }\n function encode(imgData, kind, forceDataSchema, isMask) {\n const width = imgData.width;\n const height = imgData.height;\n let bitDepth, colorType, lineSize;\n const bytes = imgData.data;\n switch (kind) {\n case _util.ImageKind.GRAYSCALE_1BPP:\n colorType = 0;\n bitDepth = 1;\n lineSize = width + 7 >> 3;\n break;\n case _util.ImageKind.RGB_24BPP:\n colorType = 2;\n bitDepth = 8;\n lineSize = width * 3;\n break;\n case _util.ImageKind.RGBA_32BPP:\n colorType = 6;\n bitDepth = 8;\n lineSize = width * 4;\n break;\n default:\n throw new Error(\"invalid format\");\n }\n const literals = new Uint8Array((1 + lineSize) * height);\n let offsetLiterals = 0,\n offsetBytes = 0;\n for (let y = 0; y < height; ++y) {\n literals[offsetLiterals++] = 0;\n literals.set(bytes.subarray(offsetBytes, offsetBytes + lineSize), offsetLiterals);\n offsetBytes += lineSize;\n offsetLiterals += lineSize;\n }\n if (kind === _util.ImageKind.GRAYSCALE_1BPP && isMask) {\n offsetLiterals = 0;\n for (let y = 0; y < height; y++) {\n offsetLiterals++;\n for (let i = 0; i < lineSize; i++) {\n literals[offsetLiterals++] ^= 0xff;\n }\n }\n }\n const ihdr = new Uint8Array([width >> 24 & 0xff, width >> 16 & 0xff, width >> 8 & 0xff, width & 0xff, height >> 24 & 0xff, height >> 16 & 0xff, height >> 8 & 0xff, height & 0xff, bitDepth, colorType, 0x00, 0x00, 0x00]);\n const idat = deflateSync(literals);\n const pngLength = PNG_HEADER.length + CHUNK_WRAPPER_SIZE * 3 + ihdr.length + idat.length;\n const data = new Uint8Array(pngLength);\n let offset = 0;\n data.set(PNG_HEADER, offset);\n offset += PNG_HEADER.length;\n writePngChunk(\"IHDR\", ihdr, data, offset);\n offset += CHUNK_WRAPPER_SIZE + ihdr.length;\n writePngChunk(\"IDATA\", idat, data, offset);\n offset += CHUNK_WRAPPER_SIZE + idat.length;\n writePngChunk(\"IEND\", new Uint8Array(0), data, offset);\n return createObjectURL(data, \"image/png\", forceDataSchema);\n }\n return function convertImgDataToPng(imgData, forceDataSchema, isMask) {\n const kind = imgData.kind === undefined ? _util.ImageKind.GRAYSCALE_1BPP : imgData.kind;\n return encode(imgData, kind, forceDataSchema, isMask);\n };\n}();\nclass SVGExtraState {\n constructor() {\n this.fontSizeScale = 1;\n this.fontWeight = SVG_DEFAULTS.fontWeight;\n this.fontSize = 0;\n this.textMatrix = _util.IDENTITY_MATRIX;\n this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n this.leading = 0;\n this.textRenderingMode = _util.TextRenderingMode.FILL;\n this.textMatrixScale = 1;\n this.x = 0;\n this.y = 0;\n this.lineX = 0;\n this.lineY = 0;\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRise = 0;\n this.fillColor = SVG_DEFAULTS.fillColor;\n this.strokeColor = \"#000000\";\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.lineJoin = \"\";\n this.lineCap = \"\";\n this.miterLimit = 0;\n this.dashArray = [];\n this.dashPhase = 0;\n this.dependencies = [];\n this.activeClipUrl = null;\n this.clipGroup = null;\n this.maskId = \"\";\n }\n clone() {\n return Object.create(this);\n }\n setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n}\nfunction opListToTree(opList) {\n let opTree = [];\n const tmp = [];\n for (const opListElement of opList) {\n if (opListElement.fn === \"save\") {\n opTree.push({\n fnId: 92,\n fn: \"group\",\n items: []\n });\n tmp.push(opTree);\n opTree = opTree.at(-1).items;\n continue;\n }\n if (opListElement.fn === \"restore\") {\n opTree = tmp.pop();\n } else {\n opTree.push(opListElement);\n }\n }\n return opTree;\n}\nfunction pf(value) {\n if (Number.isInteger(value)) {\n return value.toString();\n }\n const s = value.toFixed(10);\n let i = s.length - 1;\n if (s[i] !== \"0\") {\n return s;\n }\n do {\n i--;\n } while (s[i] === \"0\");\n return s.substring(0, s[i] === \".\" ? i : i + 1);\n}\nfunction pm(m) {\n if (m[4] === 0 && m[5] === 0) {\n if (m[1] === 0 && m[2] === 0) {\n if (m[0] === 1 && m[3] === 1) {\n return \"\";\n }\n return `scale(${pf(m[0])} ${pf(m[3])})`;\n }\n if (m[0] === m[3] && m[1] === -m[2]) {\n const a = Math.acos(m[0]) * 180 / Math.PI;\n return `rotate(${pf(a)})`;\n }\n } else if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) {\n return `translate(${pf(m[4])} ${pf(m[5])})`;\n }\n return `matrix(${pf(m[0])} ${pf(m[1])} ${pf(m[2])} ${pf(m[3])} ${pf(m[4])} ` + `${pf(m[5])})`;\n}\nlet clipCount = 0;\nlet maskCount = 0;\nlet shadingCount = 0;\nclass SVGGraphics {\n constructor(commonObjs, objs, forceDataSchema = false) {\n (0, _display_utils.deprecated)(\"The SVG back-end is no longer maintained and *may* be removed in the future.\");\n this.svgFactory = new _display_utils.DOMSVGFactory();\n this.current = new SVGExtraState();\n this.transformMatrix = _util.IDENTITY_MATRIX;\n this.transformStack = [];\n this.extraStack = [];\n this.commonObjs = commonObjs;\n this.objs = objs;\n this.pendingClip = null;\n this.pendingEOFill = false;\n this.embedFonts = false;\n this.embeddedFonts = Object.create(null);\n this.cssStyle = null;\n this.forceDataSchema = !!forceDataSchema;\n this._operatorIdMapping = [];\n for (const op in _util.OPS) {\n this._operatorIdMapping[_util.OPS[op]] = op;\n }\n }\n getObject(data, fallback = null) {\n if (typeof data === \"string\") {\n return data.startsWith(\"g_\") ? this.commonObjs.get(data) : this.objs.get(data);\n }\n return fallback;\n }\n save() {\n this.transformStack.push(this.transformMatrix);\n const old = this.current;\n this.extraStack.push(old);\n this.current = old.clone();\n }\n restore() {\n this.transformMatrix = this.transformStack.pop();\n this.current = this.extraStack.pop();\n this.pendingClip = null;\n this.tgrp = null;\n }\n group(items) {\n this.save();\n this.executeOpTree(items);\n this.restore();\n }\n loadDependencies(operatorList) {\n const fnArray = operatorList.fnArray;\n const argsArray = operatorList.argsArray;\n for (let i = 0, ii = fnArray.length; i < ii; i++) {\n if (fnArray[i] !== _util.OPS.dependency) {\n continue;\n }\n for (const obj of argsArray[i]) {\n const objsPool = obj.startsWith(\"g_\") ? this.commonObjs : this.objs;\n const promise = new Promise(resolve => {\n objsPool.get(obj, resolve);\n });\n this.current.dependencies.push(promise);\n }\n }\n return Promise.all(this.current.dependencies);\n }\n transform(a, b, c, d, e, f) {\n const transformMatrix = [a, b, c, d, e, f];\n this.transformMatrix = _util.Util.transform(this.transformMatrix, transformMatrix);\n this.tgrp = null;\n }\n getSVG(operatorList, viewport) {\n this.viewport = viewport;\n const svgElement = this._initialize(viewport);\n return this.loadDependencies(operatorList).then(() => {\n this.transformMatrix = _util.IDENTITY_MATRIX;\n this.executeOpTree(this.convertOpList(operatorList));\n return svgElement;\n });\n }\n convertOpList(operatorList) {\n const operatorIdMapping = this._operatorIdMapping;\n const argsArray = operatorList.argsArray;\n const fnArray = operatorList.fnArray;\n const opList = [];\n for (let i = 0, ii = fnArray.length; i < ii; i++) {\n const fnId = fnArray[i];\n opList.push({\n fnId,\n fn: operatorIdMapping[fnId],\n args: argsArray[i]\n });\n }\n return opListToTree(opList);\n }\n executeOpTree(opTree) {\n for (const opTreeElement of opTree) {\n const fn = opTreeElement.fn;\n const fnId = opTreeElement.fnId;\n const args = opTreeElement.args;\n switch (fnId | 0) {\n case _util.OPS.beginText:\n this.beginText();\n break;\n case _util.OPS.dependency:\n break;\n case _util.OPS.setLeading:\n this.setLeading(args);\n break;\n case _util.OPS.setLeadingMoveText:\n this.setLeadingMoveText(args[0], args[1]);\n break;\n case _util.OPS.setFont:\n this.setFont(args);\n break;\n case _util.OPS.showText:\n this.showText(args[0]);\n break;\n case _util.OPS.showSpacedText:\n this.showText(args[0]);\n break;\n case _util.OPS.endText:\n this.endText();\n break;\n case _util.OPS.moveText:\n this.moveText(args[0], args[1]);\n break;\n case _util.OPS.setCharSpacing:\n this.setCharSpacing(args[0]);\n break;\n case _util.OPS.setWordSpacing:\n this.setWordSpacing(args[0]);\n break;\n case _util.OPS.setHScale:\n this.setHScale(args[0]);\n break;\n case _util.OPS.setTextMatrix:\n this.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]);\n break;\n case _util.OPS.setTextRise:\n this.setTextRise(args[0]);\n break;\n case _util.OPS.setTextRenderingMode:\n this.setTextRenderingMode(args[0]);\n break;\n case _util.OPS.setLineWidth:\n this.setLineWidth(args[0]);\n break;\n case _util.OPS.setLineJoin:\n this.setLineJoin(args[0]);\n break;\n case _util.OPS.setLineCap:\n this.setLineCap(args[0]);\n break;\n case _util.OPS.setMiterLimit:\n this.setMiterLimit(args[0]);\n break;\n case _util.OPS.setFillRGBColor:\n this.setFillRGBColor(args[0], args[1], args[2]);\n break;\n case _util.OPS.setStrokeRGBColor:\n this.setStrokeRGBColor(args[0], args[1], args[2]);\n break;\n case _util.OPS.setStrokeColorN:\n this.setStrokeColorN(args);\n break;\n case _util.OPS.setFillColorN:\n this.setFillColorN(args);\n break;\n case _util.OPS.shadingFill:\n this.shadingFill(args[0]);\n break;\n case _util.OPS.setDash:\n this.setDash(args[0], args[1]);\n break;\n case _util.OPS.setRenderingIntent:\n this.setRenderingIntent(args[0]);\n break;\n case _util.OPS.setFlatness:\n this.setFlatness(args[0]);\n break;\n case _util.OPS.setGState:\n this.setGState(args[0]);\n break;\n case _util.OPS.fill:\n this.fill();\n break;\n case _util.OPS.eoFill:\n this.eoFill();\n break;\n case _util.OPS.stroke:\n this.stroke();\n break;\n case _util.OPS.fillStroke:\n this.fillStroke();\n break;\n case _util.OPS.eoFillStroke:\n this.eoFillStroke();\n break;\n case _util.OPS.clip:\n this.clip(\"nonzero\");\n break;\n case _util.OPS.eoClip:\n this.clip(\"evenodd\");\n break;\n case _util.OPS.paintSolidColorImageMask:\n this.paintSolidColorImageMask();\n break;\n case _util.OPS.paintImageXObject:\n this.paintImageXObject(args[0]);\n break;\n case _util.OPS.paintInlineImageXObject:\n this.paintInlineImageXObject(args[0]);\n break;\n case _util.OPS.paintImageMaskXObject:\n this.paintImageMaskXObject(args[0]);\n break;\n case _util.OPS.paintFormXObjectBegin:\n this.paintFormXObjectBegin(args[0], args[1]);\n break;\n case _util.OPS.paintFormXObjectEnd:\n this.paintFormXObjectEnd();\n break;\n case _util.OPS.closePath:\n this.closePath();\n break;\n case _util.OPS.closeStroke:\n this.closeStroke();\n break;\n case _util.OPS.closeFillStroke:\n this.closeFillStroke();\n break;\n case _util.OPS.closeEOFillStroke:\n this.closeEOFillStroke();\n break;\n case _util.OPS.nextLine:\n this.nextLine();\n break;\n case _util.OPS.transform:\n this.transform(args[0], args[1], args[2], args[3], args[4], args[5]);\n break;\n case _util.OPS.constructPath:\n this.constructPath(args[0], args[1]);\n break;\n case _util.OPS.endPath:\n this.endPath();\n break;\n case 92:\n this.group(opTreeElement.items);\n break;\n default:\n (0, _util.warn)(`Unimplemented operator ${fn}`);\n break;\n }\n }\n }\n setWordSpacing(wordSpacing) {\n this.current.wordSpacing = wordSpacing;\n }\n setCharSpacing(charSpacing) {\n this.current.charSpacing = charSpacing;\n }\n nextLine() {\n this.moveText(0, this.current.leading);\n }\n setTextMatrix(a, b, c, d, e, f) {\n const current = this.current;\n current.textMatrix = current.lineMatrix = [a, b, c, d, e, f];\n current.textMatrixScale = Math.hypot(a, b);\n current.x = current.lineX = 0;\n current.y = current.lineY = 0;\n current.xcoords = [];\n current.ycoords = [];\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(null, \"font-size\", `${pf(current.fontSize)}px`);\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n current.txtElement = this.svgFactory.createElement(\"svg:text\");\n current.txtElement.append(current.tspan);\n }\n beginText() {\n const current = this.current;\n current.x = current.lineX = 0;\n current.y = current.lineY = 0;\n current.textMatrix = _util.IDENTITY_MATRIX;\n current.lineMatrix = _util.IDENTITY_MATRIX;\n current.textMatrixScale = 1;\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.txtElement = this.svgFactory.createElement(\"svg:text\");\n current.txtgrp = this.svgFactory.createElement(\"svg:g\");\n current.xcoords = [];\n current.ycoords = [];\n }\n moveText(x, y) {\n const current = this.current;\n current.x = current.lineX += x;\n current.y = current.lineY += y;\n current.xcoords = [];\n current.ycoords = [];\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(null, \"font-size\", `${pf(current.fontSize)}px`);\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n }\n showText(glyphs) {\n const current = this.current;\n const font = current.font;\n const fontSize = current.fontSize;\n if (fontSize === 0) {\n return;\n }\n const fontSizeScale = current.fontSizeScale;\n const charSpacing = current.charSpacing;\n const wordSpacing = current.wordSpacing;\n const fontDirection = current.fontDirection;\n const textHScale = current.textHScale * fontDirection;\n const vertical = font.vertical;\n const spacingDir = vertical ? 1 : -1;\n const defaultVMetrics = font.defaultVMetrics;\n const widthAdvanceScale = fontSize * current.fontMatrix[0];\n let x = 0;\n for (const glyph of glyphs) {\n if (glyph === null) {\n x += fontDirection * wordSpacing;\n continue;\n } else if (typeof glyph === \"number\") {\n x += spacingDir * glyph * fontSize / 1000;\n continue;\n }\n const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n const character = glyph.fontChar;\n let scaledX, scaledY;\n let width = glyph.width;\n if (vertical) {\n let vx;\n const vmetric = glyph.vmetric || defaultVMetrics;\n vx = glyph.vmetric ? vmetric[1] : width * 0.5;\n vx = -vx * widthAdvanceScale;\n const vy = vmetric[2] * widthAdvanceScale;\n width = vmetric ? -vmetric[0] : width;\n scaledX = vx / fontSizeScale;\n scaledY = (x + vy) / fontSizeScale;\n } else {\n scaledX = x / fontSizeScale;\n scaledY = 0;\n }\n if (glyph.isInFont || font.missingFile) {\n current.xcoords.push(current.x + scaledX);\n if (vertical) {\n current.ycoords.push(-current.y + scaledY);\n }\n current.tspan.textContent += character;\n } else {}\n const charWidth = vertical ? width * widthAdvanceScale - spacing * fontDirection : width * widthAdvanceScale + spacing * fontDirection;\n x += charWidth;\n }\n current.tspan.setAttributeNS(null, \"x\", current.xcoords.map(pf).join(\" \"));\n if (vertical) {\n current.tspan.setAttributeNS(null, \"y\", current.ycoords.map(pf).join(\" \"));\n } else {\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n }\n if (vertical) {\n current.y -= x;\n } else {\n current.x += x * textHScale;\n }\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(null, \"font-size\", `${pf(current.fontSize)}px`);\n if (current.fontStyle !== SVG_DEFAULTS.fontStyle) {\n current.tspan.setAttributeNS(null, \"font-style\", current.fontStyle);\n }\n if (current.fontWeight !== SVG_DEFAULTS.fontWeight) {\n current.tspan.setAttributeNS(null, \"font-weight\", current.fontWeight);\n }\n const fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n if (current.fillColor !== SVG_DEFAULTS.fillColor) {\n current.tspan.setAttributeNS(null, \"fill\", current.fillColor);\n }\n if (current.fillAlpha < 1) {\n current.tspan.setAttributeNS(null, \"fill-opacity\", current.fillAlpha);\n }\n } else if (current.textRenderingMode === _util.TextRenderingMode.ADD_TO_PATH) {\n current.tspan.setAttributeNS(null, \"fill\", \"transparent\");\n } else {\n current.tspan.setAttributeNS(null, \"fill\", \"none\");\n }\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n const lineWidthScale = 1 / (current.textMatrixScale || 1);\n this._setStrokeAttributes(current.tspan, lineWidthScale);\n }\n let textMatrix = current.textMatrix;\n if (current.textRise !== 0) {\n textMatrix = textMatrix.slice();\n textMatrix[5] += current.textRise;\n }\n current.txtElement.setAttributeNS(null, \"transform\", `${pm(textMatrix)} scale(${pf(textHScale)}, -1)`);\n current.txtElement.setAttributeNS(XML_NS, \"xml:space\", \"preserve\");\n current.txtElement.append(current.tspan);\n current.txtgrp.append(current.txtElement);\n this._ensureTransformGroup().append(current.txtElement);\n }\n setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\n }\n addFontStyle(fontObj) {\n if (!fontObj.data) {\n throw new Error(\"addFontStyle: No font data available, \" + 'ensure that the \"fontExtraProperties\" API parameter is set.');\n }\n if (!this.cssStyle) {\n this.cssStyle = this.svgFactory.createElement(\"svg:style\");\n this.cssStyle.setAttributeNS(null, \"type\", \"text/css\");\n this.defs.append(this.cssStyle);\n }\n const url = createObjectURL(fontObj.data, fontObj.mimetype, this.forceDataSchema);\n this.cssStyle.textContent += `@font-face { font-family: \"${fontObj.loadedName}\";` + ` src: url(${url}); }\\n`;\n }\n setFont(details) {\n const current = this.current;\n const fontObj = this.commonObjs.get(details[0]);\n let size = details[1];\n current.font = fontObj;\n if (this.embedFonts && !fontObj.missingFile && !this.embeddedFonts[fontObj.loadedName]) {\n this.addFontStyle(fontObj);\n this.embeddedFonts[fontObj.loadedName] = fontObj;\n }\n current.fontMatrix = fontObj.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n let bold = \"normal\";\n if (fontObj.black) {\n bold = \"900\";\n } else if (fontObj.bold) {\n bold = \"bold\";\n }\n const italic = fontObj.italic ? \"italic\" : \"normal\";\n if (size < 0) {\n size = -size;\n current.fontDirection = -1;\n } else {\n current.fontDirection = 1;\n }\n current.fontSize = size;\n current.fontFamily = fontObj.loadedName;\n current.fontWeight = bold;\n current.fontStyle = italic;\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n current.xcoords = [];\n current.ycoords = [];\n }\n endText() {\n const current = this.current;\n if (current.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG && current.txtElement?.hasChildNodes()) {\n current.element = current.txtElement;\n this.clip(\"nonzero\");\n this.endPath();\n }\n }\n setLineWidth(width) {\n if (width > 0) {\n this.current.lineWidth = width;\n }\n }\n setLineCap(style) {\n this.current.lineCap = LINE_CAP_STYLES[style];\n }\n setLineJoin(style) {\n this.current.lineJoin = LINE_JOIN_STYLES[style];\n }\n setMiterLimit(limit) {\n this.current.miterLimit = limit;\n }\n setStrokeAlpha(strokeAlpha) {\n this.current.strokeAlpha = strokeAlpha;\n }\n setStrokeRGBColor(r, g, b) {\n this.current.strokeColor = _util.Util.makeHexColor(r, g, b);\n }\n setFillAlpha(fillAlpha) {\n this.current.fillAlpha = fillAlpha;\n }\n setFillRGBColor(r, g, b) {\n this.current.fillColor = _util.Util.makeHexColor(r, g, b);\n this.current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n this.current.xcoords = [];\n this.current.ycoords = [];\n }\n setStrokeColorN(args) {\n this.current.strokeColor = this._makeColorN_Pattern(args);\n }\n setFillColorN(args) {\n this.current.fillColor = this._makeColorN_Pattern(args);\n }\n shadingFill(args) {\n const {\n width,\n height\n } = this.viewport;\n const inv = _util.Util.inverseTransform(this.transformMatrix);\n const [x0, y0, x1, y1] = _util.Util.getAxialAlignedBoundingBox([0, 0, width, height], inv);\n const rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", x0);\n rect.setAttributeNS(null, \"y\", y0);\n rect.setAttributeNS(null, \"width\", x1 - x0);\n rect.setAttributeNS(null, \"height\", y1 - y0);\n rect.setAttributeNS(null, \"fill\", this._makeShadingPattern(args));\n if (this.current.fillAlpha < 1) {\n rect.setAttributeNS(null, \"fill-opacity\", this.current.fillAlpha);\n }\n this._ensureTransformGroup().append(rect);\n }\n _makeColorN_Pattern(args) {\n if (args[0] === \"TilingPattern\") {\n return this._makeTilingPattern(args);\n }\n return this._makeShadingPattern(args);\n }\n _makeTilingPattern(args) {\n const color = args[1];\n const operatorList = args[2];\n const matrix = args[3] || _util.IDENTITY_MATRIX;\n const [x0, y0, x1, y1] = args[4];\n const xstep = args[5];\n const ystep = args[6];\n const paintType = args[7];\n const tilingId = `shading${shadingCount++}`;\n const [tx0, ty0, tx1, ty1] = _util.Util.normalizeRect([..._util.Util.applyTransform([x0, y0], matrix), ..._util.Util.applyTransform([x1, y1], matrix)]);\n const [xscale, yscale] = _util.Util.singularValueDecompose2dScale(matrix);\n const txstep = xstep * xscale;\n const tystep = ystep * yscale;\n const tiling = this.svgFactory.createElement(\"svg:pattern\");\n tiling.setAttributeNS(null, \"id\", tilingId);\n tiling.setAttributeNS(null, \"patternUnits\", \"userSpaceOnUse\");\n tiling.setAttributeNS(null, \"width\", txstep);\n tiling.setAttributeNS(null, \"height\", tystep);\n tiling.setAttributeNS(null, \"x\", `${tx0}`);\n tiling.setAttributeNS(null, \"y\", `${ty0}`);\n const svg = this.svg;\n const transformMatrix = this.transformMatrix;\n const fillColor = this.current.fillColor;\n const strokeColor = this.current.strokeColor;\n const bbox = this.svgFactory.create(tx1 - tx0, ty1 - ty0);\n this.svg = bbox;\n this.transformMatrix = matrix;\n if (paintType === 2) {\n const cssColor = _util.Util.makeHexColor(...color);\n this.current.fillColor = cssColor;\n this.current.strokeColor = cssColor;\n }\n this.executeOpTree(this.convertOpList(operatorList));\n this.svg = svg;\n this.transformMatrix = transformMatrix;\n this.current.fillColor = fillColor;\n this.current.strokeColor = strokeColor;\n tiling.append(bbox.childNodes[0]);\n this.defs.append(tiling);\n return `url(#${tilingId})`;\n }\n _makeShadingPattern(args) {\n if (typeof args === \"string\") {\n args = this.objs.get(args);\n }\n switch (args[0]) {\n case \"RadialAxial\":\n const shadingId = `shading${shadingCount++}`;\n const colorStops = args[3];\n let gradient;\n switch (args[1]) {\n case \"axial\":\n const point0 = args[4];\n const point1 = args[5];\n gradient = this.svgFactory.createElement(\"svg:linearGradient\");\n gradient.setAttributeNS(null, \"id\", shadingId);\n gradient.setAttributeNS(null, \"gradientUnits\", \"userSpaceOnUse\");\n gradient.setAttributeNS(null, \"x1\", point0[0]);\n gradient.setAttributeNS(null, \"y1\", point0[1]);\n gradient.setAttributeNS(null, \"x2\", point1[0]);\n gradient.setAttributeNS(null, \"y2\", point1[1]);\n break;\n case \"radial\":\n const focalPoint = args[4];\n const circlePoint = args[5];\n const focalRadius = args[6];\n const circleRadius = args[7];\n gradient = this.svgFactory.createElement(\"svg:radialGradient\");\n gradient.setAttributeNS(null, \"id\", shadingId);\n gradient.setAttributeNS(null, \"gradientUnits\", \"userSpaceOnUse\");\n gradient.setAttributeNS(null, \"cx\", circlePoint[0]);\n gradient.setAttributeNS(null, \"cy\", circlePoint[1]);\n gradient.setAttributeNS(null, \"r\", circleRadius);\n gradient.setAttributeNS(null, \"fx\", focalPoint[0]);\n gradient.setAttributeNS(null, \"fy\", focalPoint[1]);\n gradient.setAttributeNS(null, \"fr\", focalRadius);\n break;\n default:\n throw new Error(`Unknown RadialAxial type: ${args[1]}`);\n }\n for (const colorStop of colorStops) {\n const stop = this.svgFactory.createElement(\"svg:stop\");\n stop.setAttributeNS(null, \"offset\", colorStop[0]);\n stop.setAttributeNS(null, \"stop-color\", colorStop[1]);\n gradient.append(stop);\n }\n this.defs.append(gradient);\n return `url(#${shadingId})`;\n case \"Mesh\":\n (0, _util.warn)(\"Unimplemented pattern Mesh\");\n return null;\n case \"Dummy\":\n return \"hotpink\";\n default:\n throw new Error(`Unknown IR type: ${args[0]}`);\n }\n }\n setDash(dashArray, dashPhase) {\n this.current.dashArray = dashArray;\n this.current.dashPhase = dashPhase;\n }\n constructPath(ops, args) {\n const current = this.current;\n let x = current.x,\n y = current.y;\n let d = [];\n let j = 0;\n for (const op of ops) {\n switch (op | 0) {\n case _util.OPS.rectangle:\n x = args[j++];\n y = args[j++];\n const width = args[j++];\n const height = args[j++];\n const xw = x + width;\n const yh = y + height;\n d.push(\"M\", pf(x), pf(y), \"L\", pf(xw), pf(y), \"L\", pf(xw), pf(yh), \"L\", pf(x), pf(yh), \"Z\");\n break;\n case _util.OPS.moveTo:\n x = args[j++];\n y = args[j++];\n d.push(\"M\", pf(x), pf(y));\n break;\n case _util.OPS.lineTo:\n x = args[j++];\n y = args[j++];\n d.push(\"L\", pf(x), pf(y));\n break;\n case _util.OPS.curveTo:\n x = args[j + 4];\n y = args[j + 5];\n d.push(\"C\", pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]), pf(x), pf(y));\n j += 6;\n break;\n case _util.OPS.curveTo2:\n d.push(\"C\", pf(x), pf(y), pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]));\n x = args[j + 2];\n y = args[j + 3];\n j += 4;\n break;\n case _util.OPS.curveTo3:\n x = args[j + 2];\n y = args[j + 3];\n d.push(\"C\", pf(args[j]), pf(args[j + 1]), pf(x), pf(y), pf(x), pf(y));\n j += 4;\n break;\n case _util.OPS.closePath:\n d.push(\"Z\");\n break;\n }\n }\n d = d.join(\" \");\n if (current.path && ops.length > 0 && ops[0] !== _util.OPS.rectangle && ops[0] !== _util.OPS.moveTo) {\n d = current.path.getAttributeNS(null, \"d\") + d;\n } else {\n current.path = this.svgFactory.createElement(\"svg:path\");\n this._ensureTransformGroup().append(current.path);\n }\n current.path.setAttributeNS(null, \"d\", d);\n current.path.setAttributeNS(null, \"fill\", \"none\");\n current.element = current.path;\n current.setCurrentPoint(x, y);\n }\n endPath() {\n const current = this.current;\n current.path = null;\n if (!this.pendingClip) {\n return;\n }\n if (!current.element) {\n this.pendingClip = null;\n return;\n }\n const clipId = `clippath${clipCount++}`;\n const clipPath = this.svgFactory.createElement(\"svg:clipPath\");\n clipPath.setAttributeNS(null, \"id\", clipId);\n clipPath.setAttributeNS(null, \"transform\", pm(this.transformMatrix));\n const clipElement = current.element.cloneNode(true);\n if (this.pendingClip === \"evenodd\") {\n clipElement.setAttributeNS(null, \"clip-rule\", \"evenodd\");\n } else {\n clipElement.setAttributeNS(null, \"clip-rule\", \"nonzero\");\n }\n this.pendingClip = null;\n clipPath.append(clipElement);\n this.defs.append(clipPath);\n if (current.activeClipUrl) {\n current.clipGroup = null;\n for (const prev of this.extraStack) {\n prev.clipGroup = null;\n }\n clipPath.setAttributeNS(null, \"clip-path\", current.activeClipUrl);\n }\n current.activeClipUrl = `url(#${clipId})`;\n this.tgrp = null;\n }\n clip(type) {\n this.pendingClip = type;\n }\n closePath() {\n const current = this.current;\n if (current.path) {\n const d = `${current.path.getAttributeNS(null, \"d\")}Z`;\n current.path.setAttributeNS(null, \"d\", d);\n }\n }\n setLeading(leading) {\n this.current.leading = -leading;\n }\n setTextRise(textRise) {\n this.current.textRise = textRise;\n }\n setTextRenderingMode(textRenderingMode) {\n this.current.textRenderingMode = textRenderingMode;\n }\n setHScale(scale) {\n this.current.textHScale = scale / 100;\n }\n setRenderingIntent(intent) {}\n setFlatness(flatness) {}\n setGState(states) {\n for (const [key, value] of states) {\n switch (key) {\n case \"LW\":\n this.setLineWidth(value);\n break;\n case \"LC\":\n this.setLineCap(value);\n break;\n case \"LJ\":\n this.setLineJoin(value);\n break;\n case \"ML\":\n this.setMiterLimit(value);\n break;\n case \"D\":\n this.setDash(value[0], value[1]);\n break;\n case \"RI\":\n this.setRenderingIntent(value);\n break;\n case \"FL\":\n this.setFlatness(value);\n break;\n case \"Font\":\n this.setFont(value);\n break;\n case \"CA\":\n this.setStrokeAlpha(value);\n break;\n case \"ca\":\n this.setFillAlpha(value);\n break;\n default:\n (0, _util.warn)(`Unimplemented graphic state operator ${key}`);\n break;\n }\n }\n }\n fill() {\n const current = this.current;\n if (current.element) {\n current.element.setAttributeNS(null, \"fill\", current.fillColor);\n current.element.setAttributeNS(null, \"fill-opacity\", current.fillAlpha);\n this.endPath();\n }\n }\n stroke() {\n const current = this.current;\n if (current.element) {\n this._setStrokeAttributes(current.element);\n current.element.setAttributeNS(null, \"fill\", \"none\");\n this.endPath();\n }\n }\n _setStrokeAttributes(element, lineWidthScale = 1) {\n const current = this.current;\n let dashArray = current.dashArray;\n if (lineWidthScale !== 1 && dashArray.length > 0) {\n dashArray = dashArray.map(function (value) {\n return lineWidthScale * value;\n });\n }\n element.setAttributeNS(null, \"stroke\", current.strokeColor);\n element.setAttributeNS(null, \"stroke-opacity\", current.strokeAlpha);\n element.setAttributeNS(null, \"stroke-miterlimit\", pf(current.miterLimit));\n element.setAttributeNS(null, \"stroke-linecap\", current.lineCap);\n element.setAttributeNS(null, \"stroke-linejoin\", current.lineJoin);\n element.setAttributeNS(null, \"stroke-width\", pf(lineWidthScale * current.lineWidth) + \"px\");\n element.setAttributeNS(null, \"stroke-dasharray\", dashArray.map(pf).join(\" \"));\n element.setAttributeNS(null, \"stroke-dashoffset\", pf(lineWidthScale * current.dashPhase) + \"px\");\n }\n eoFill() {\n this.current.element?.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n this.fill();\n }\n fillStroke() {\n this.stroke();\n this.fill();\n }\n eoFillStroke() {\n this.current.element?.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n this.fillStroke();\n }\n closeStroke() {\n this.closePath();\n this.stroke();\n }\n closeFillStroke() {\n this.closePath();\n this.fillStroke();\n }\n closeEOFillStroke() {\n this.closePath();\n this.eoFillStroke();\n }\n paintSolidColorImageMask() {\n const rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", \"0\");\n rect.setAttributeNS(null, \"y\", \"0\");\n rect.setAttributeNS(null, \"width\", \"1px\");\n rect.setAttributeNS(null, \"height\", \"1px\");\n rect.setAttributeNS(null, \"fill\", this.current.fillColor);\n this._ensureTransformGroup().append(rect);\n }\n paintImageXObject(objId) {\n const imgData = this.getObject(objId);\n if (!imgData) {\n (0, _util.warn)(`Dependent image with object ID ${objId} is not ready yet`);\n return;\n }\n this.paintInlineImageXObject(imgData);\n }\n paintInlineImageXObject(imgData, mask) {\n const width = imgData.width;\n const height = imgData.height;\n const imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask);\n const cliprect = this.svgFactory.createElement(\"svg:rect\");\n cliprect.setAttributeNS(null, \"x\", \"0\");\n cliprect.setAttributeNS(null, \"y\", \"0\");\n cliprect.setAttributeNS(null, \"width\", pf(width));\n cliprect.setAttributeNS(null, \"height\", pf(height));\n this.current.element = cliprect;\n this.clip(\"nonzero\");\n const imgEl = this.svgFactory.createElement(\"svg:image\");\n imgEl.setAttributeNS(XLINK_NS, \"xlink:href\", imgSrc);\n imgEl.setAttributeNS(null, \"x\", \"0\");\n imgEl.setAttributeNS(null, \"y\", pf(-height));\n imgEl.setAttributeNS(null, \"width\", pf(width) + \"px\");\n imgEl.setAttributeNS(null, \"height\", pf(height) + \"px\");\n imgEl.setAttributeNS(null, \"transform\", `scale(${pf(1 / width)} ${pf(-1 / height)})`);\n if (mask) {\n mask.append(imgEl);\n } else {\n this._ensureTransformGroup().append(imgEl);\n }\n }\n paintImageMaskXObject(img) {\n const imgData = this.getObject(img.data, img);\n if (imgData.bitmap) {\n (0, _util.warn)(\"paintImageMaskXObject: ImageBitmap support is not implemented, \" + \"ensure that the `isOffscreenCanvasSupported` API parameter is disabled.\");\n return;\n }\n const current = this.current;\n const width = imgData.width;\n const height = imgData.height;\n const fillColor = current.fillColor;\n current.maskId = `mask${maskCount++}`;\n const mask = this.svgFactory.createElement(\"svg:mask\");\n mask.setAttributeNS(null, \"id\", current.maskId);\n const rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", \"0\");\n rect.setAttributeNS(null, \"y\", \"0\");\n rect.setAttributeNS(null, \"width\", pf(width));\n rect.setAttributeNS(null, \"height\", pf(height));\n rect.setAttributeNS(null, \"fill\", fillColor);\n rect.setAttributeNS(null, \"mask\", `url(#${current.maskId})`);\n this.defs.append(mask);\n this._ensureTransformGroup().append(rect);\n this.paintInlineImageXObject(imgData, mask);\n }\n paintFormXObjectBegin(matrix, bbox) {\n if (Array.isArray(matrix) && matrix.length === 6) {\n this.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);\n }\n if (bbox) {\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n const cliprect = this.svgFactory.createElement(\"svg:rect\");\n cliprect.setAttributeNS(null, \"x\", bbox[0]);\n cliprect.setAttributeNS(null, \"y\", bbox[1]);\n cliprect.setAttributeNS(null, \"width\", pf(width));\n cliprect.setAttributeNS(null, \"height\", pf(height));\n this.current.element = cliprect;\n this.clip(\"nonzero\");\n this.endPath();\n }\n }\n paintFormXObjectEnd() {}\n _initialize(viewport) {\n const svg = this.svgFactory.create(viewport.width, viewport.height);\n const definitions = this.svgFactory.createElement(\"svg:defs\");\n svg.append(definitions);\n this.defs = definitions;\n const rootGroup = this.svgFactory.createElement(\"svg:g\");\n rootGroup.setAttributeNS(null, \"transform\", pm(viewport.transform));\n svg.append(rootGroup);\n this.svg = rootGroup;\n return svg;\n }\n _ensureClipGroup() {\n if (!this.current.clipGroup) {\n const clipGroup = this.svgFactory.createElement(\"svg:g\");\n clipGroup.setAttributeNS(null, \"clip-path\", this.current.activeClipUrl);\n this.svg.append(clipGroup);\n this.current.clipGroup = clipGroup;\n }\n return this.current.clipGroup;\n }\n _ensureTransformGroup() {\n if (!this.tgrp) {\n this.tgrp = this.svgFactory.createElement(\"svg:g\");\n this.tgrp.setAttributeNS(null, \"transform\", pm(this.transformMatrix));\n if (this.current.activeClipUrl) {\n this._ensureClipGroup().append(this.tgrp);\n } else {\n this.svg.append(this.tgrp);\n }\n }\n return this.tgrp;\n }\n}\nexports.SVGGraphics = SVGGraphics;\n\n/***/ }),\n/* 25 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.XfaText = void 0;\nclass XfaText {\n static textContent(xfa) {\n const items = [];\n const output = {\n items,\n styles: Object.create(null)\n };\n function walk(node) {\n if (!node) {\n return;\n }\n let str = null;\n const name = node.name;\n if (name === \"#text\") {\n str = node.value;\n } else if (!XfaText.shouldBuildText(name)) {\n return;\n } else if (node?.attributes?.textContent) {\n str = node.attributes.textContent;\n } else if (node.value) {\n str = node.value;\n }\n if (str !== null) {\n items.push({\n str\n });\n }\n if (!node.children) {\n return;\n }\n for (const child of node.children) {\n walk(child);\n }\n }\n walk(xfa);\n return output;\n }\n static shouldBuildText(name) {\n return !(name === \"textarea\" || name === \"input\" || name === \"option\" || name === \"select\");\n }\n}\nexports.XfaText = XfaText;\n\n/***/ }),\n/* 26 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.TextLayerRenderTask = void 0;\nexports.renderTextLayer = renderTextLayer;\nexports.updateTextLayer = updateTextLayer;\nvar _util = __w_pdfjs_require__(1);\nvar _display_utils = __w_pdfjs_require__(6);\nconst MAX_TEXT_DIVS_TO_RENDER = 100000;\nconst DEFAULT_FONT_SIZE = 30;\nconst DEFAULT_FONT_ASCENT = 0.8;\nconst ascentCache = new Map();\nfunction getCtx(size, isOffscreenCanvasSupported) {\n let ctx;\n if (isOffscreenCanvasSupported && _util.FeatureTest.isOffscreenCanvasSupported) {\n ctx = new OffscreenCanvas(size, size).getContext(\"2d\", {\n alpha: false\n });\n } else {\n const canvas = document.createElement(\"canvas\");\n canvas.width = canvas.height = size;\n ctx = canvas.getContext(\"2d\", {\n alpha: false\n });\n }\n return ctx;\n}\nfunction getAscent(fontFamily, isOffscreenCanvasSupported) {\n const cachedAscent = ascentCache.get(fontFamily);\n if (cachedAscent) {\n return cachedAscent;\n }\n const ctx = getCtx(DEFAULT_FONT_SIZE, isOffscreenCanvasSupported);\n ctx.font = `${DEFAULT_FONT_SIZE}px ${fontFamily}`;\n const metrics = ctx.measureText(\"\");\n let ascent = metrics.fontBoundingBoxAscent;\n let descent = Math.abs(metrics.fontBoundingBoxDescent);\n if (ascent) {\n const ratio = ascent / (ascent + descent);\n ascentCache.set(fontFamily, ratio);\n ctx.canvas.width = ctx.canvas.height = 0;\n return ratio;\n }\n ctx.strokeStyle = \"red\";\n ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE);\n ctx.strokeText(\"g\", 0, 0);\n let pixels = ctx.getImageData(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE).data;\n descent = 0;\n for (let i = pixels.length - 1 - 3; i >= 0; i -= 4) {\n if (pixels[i] > 0) {\n descent = Math.ceil(i / 4 / DEFAULT_FONT_SIZE);\n break;\n }\n }\n ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE);\n ctx.strokeText(\"A\", 0, DEFAULT_FONT_SIZE);\n pixels = ctx.getImageData(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE).data;\n ascent = 0;\n for (let i = 0, ii = pixels.length; i < ii; i += 4) {\n if (pixels[i] > 0) {\n ascent = DEFAULT_FONT_SIZE - Math.floor(i / 4 / DEFAULT_FONT_SIZE);\n break;\n }\n }\n ctx.canvas.width = ctx.canvas.height = 0;\n if (ascent) {\n const ratio = ascent / (ascent + descent);\n ascentCache.set(fontFamily, ratio);\n return ratio;\n }\n ascentCache.set(fontFamily, DEFAULT_FONT_ASCENT);\n return DEFAULT_FONT_ASCENT;\n}\nfunction appendText(task, geom, styles) {\n const textDiv = document.createElement(\"span\");\n const textDivProperties = {\n angle: 0,\n canvasWidth: 0,\n hasText: geom.str !== \"\",\n hasEOL: geom.hasEOL,\n fontSize: 0\n };\n task._textDivs.push(textDiv);\n const tx = _util.Util.transform(task._transform, geom.transform);\n let angle = Math.atan2(tx[1], tx[0]);\n const style = styles[geom.fontName];\n if (style.vertical) {\n angle += Math.PI / 2;\n }\n const fontHeight = Math.hypot(tx[2], tx[3]);\n const fontAscent = fontHeight * getAscent(style.fontFamily, task._isOffscreenCanvasSupported);\n let left, top;\n if (angle === 0) {\n left = tx[4];\n top = tx[5] - fontAscent;\n } else {\n left = tx[4] + fontAscent * Math.sin(angle);\n top = tx[5] - fontAscent * Math.cos(angle);\n }\n const scaleFactorStr = \"calc(var(--scale-factor)*\";\n const divStyle = textDiv.style;\n if (task._container === task._rootContainer) {\n divStyle.left = `${(100 * left / task._pageWidth).toFixed(2)}%`;\n divStyle.top = `${(100 * top / task._pageHeight).toFixed(2)}%`;\n } else {\n divStyle.left = `${scaleFactorStr}${left.toFixed(2)}px)`;\n divStyle.top = `${scaleFactorStr}${top.toFixed(2)}px)`;\n }\n divStyle.fontSize = `${scaleFactorStr}${fontHeight.toFixed(2)}px)`;\n divStyle.fontFamily = style.fontFamily;\n textDivProperties.fontSize = fontHeight;\n textDiv.setAttribute(\"role\", \"presentation\");\n textDiv.textContent = geom.str;\n textDiv.dir = geom.dir;\n if (task._fontInspectorEnabled) {\n textDiv.dataset.fontName = geom.fontName;\n }\n if (angle !== 0) {\n textDivProperties.angle = angle * (180 / Math.PI);\n }\n let shouldScaleText = false;\n if (geom.str.length > 1) {\n shouldScaleText = true;\n } else if (geom.str !== \" \" && geom.transform[0] !== geom.transform[3]) {\n const absScaleX = Math.abs(geom.transform[0]),\n absScaleY = Math.abs(geom.transform[3]);\n if (absScaleX !== absScaleY && Math.max(absScaleX, absScaleY) / Math.min(absScaleX, absScaleY) > 1.5) {\n shouldScaleText = true;\n }\n }\n if (shouldScaleText) {\n textDivProperties.canvasWidth = style.vertical ? geom.height : geom.width;\n }\n task._textDivProperties.set(textDiv, textDivProperties);\n if (task._isReadableStream) {\n task._layoutText(textDiv);\n }\n}\nfunction layout(params) {\n const {\n div,\n scale,\n properties,\n ctx,\n prevFontSize,\n prevFontFamily\n } = params;\n const {\n style\n } = div;\n let transform = \"\";\n if (properties.canvasWidth !== 0 && properties.hasText) {\n const {\n fontFamily\n } = style;\n const {\n canvasWidth,\n fontSize\n } = properties;\n if (prevFontSize !== fontSize || prevFontFamily !== fontFamily) {\n ctx.font = `${fontSize * scale}px ${fontFamily}`;\n params.prevFontSize = fontSize;\n params.prevFontFamily = fontFamily;\n }\n const {\n width\n } = ctx.measureText(div.textContent);\n if (width > 0) {\n transform = `scaleX(${canvasWidth * scale / width})`;\n }\n }\n if (properties.angle !== 0) {\n transform = `rotate(${properties.angle}deg) ${transform}`;\n }\n if (transform.length > 0) {\n style.transform = transform;\n }\n}\nfunction render(task) {\n if (task._canceled) {\n return;\n }\n const textDivs = task._textDivs;\n const capability = task._capability;\n const textDivsLength = textDivs.length;\n if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) {\n capability.resolve();\n return;\n }\n if (!task._isReadableStream) {\n for (const textDiv of textDivs) {\n task._layoutText(textDiv);\n }\n }\n capability.resolve();\n}\nclass TextLayerRenderTask {\n constructor({\n textContentSource,\n container,\n viewport,\n textDivs,\n textDivProperties,\n textContentItemsStr,\n isOffscreenCanvasSupported\n }) {\n this._textContentSource = textContentSource;\n this._isReadableStream = textContentSource instanceof ReadableStream;\n this._container = this._rootContainer = container;\n this._textDivs = textDivs || [];\n this._textContentItemsStr = textContentItemsStr || [];\n this._isOffscreenCanvasSupported = isOffscreenCanvasSupported;\n this._fontInspectorEnabled = !!globalThis.FontInspector?.enabled;\n this._reader = null;\n this._textDivProperties = textDivProperties || new WeakMap();\n this._canceled = false;\n this._capability = new _util.PromiseCapability();\n this._layoutTextParams = {\n prevFontSize: null,\n prevFontFamily: null,\n div: null,\n scale: viewport.scale * (globalThis.devicePixelRatio || 1),\n properties: null,\n ctx: getCtx(0, isOffscreenCanvasSupported)\n };\n const {\n pageWidth,\n pageHeight,\n pageX,\n pageY\n } = viewport.rawDims;\n this._transform = [1, 0, 0, -1, -pageX, pageY + pageHeight];\n this._pageWidth = pageWidth;\n this._pageHeight = pageHeight;\n (0, _display_utils.setLayerDimensions)(container, viewport);\n this._capability.promise.finally(() => {\n this._layoutTextParams = null;\n }).catch(() => {});\n }\n get promise() {\n return this._capability.promise;\n }\n cancel() {\n this._canceled = true;\n if (this._reader) {\n this._reader.cancel(new _util.AbortException(\"TextLayer task cancelled.\")).catch(() => {});\n this._reader = null;\n }\n this._capability.reject(new _util.AbortException(\"TextLayer task cancelled.\"));\n }\n _processItems(items, styleCache) {\n for (const item of items) {\n if (item.str === undefined) {\n if (item.type === \"beginMarkedContentProps\" || item.type === \"beginMarkedContent\") {\n const parent = this._container;\n this._container = document.createElement(\"span\");\n this._container.classList.add(\"markedContent\");\n if (item.id !== null) {\n this._container.setAttribute(\"id\", `${item.id}`);\n }\n parent.append(this._container);\n } else if (item.type === \"endMarkedContent\") {\n this._container = this._container.parentNode;\n }\n continue;\n }\n this._textContentItemsStr.push(item.str);\n appendText(this, item, styleCache);\n }\n }\n _layoutText(textDiv) {\n const textDivProperties = this._layoutTextParams.properties = this._textDivProperties.get(textDiv);\n this._layoutTextParams.div = textDiv;\n layout(this._layoutTextParams);\n if (textDivProperties.hasText) {\n this._container.append(textDiv);\n }\n if (textDivProperties.hasEOL) {\n const br = document.createElement(\"br\");\n br.setAttribute(\"role\", \"presentation\");\n this._container.append(br);\n }\n }\n _render() {\n const capability = new _util.PromiseCapability();\n let styleCache = Object.create(null);\n if (this._isReadableStream) {\n const pump = () => {\n this._reader.read().then(({\n value,\n done\n }) => {\n if (done) {\n capability.resolve();\n return;\n }\n Object.assign(styleCache, value.styles);\n this._processItems(value.items, styleCache);\n pump();\n }, capability.reject);\n };\n this._reader = this._textContentSource.getReader();\n pump();\n } else if (this._textContentSource) {\n const {\n items,\n styles\n } = this._textContentSource;\n this._processItems(items, styles);\n capability.resolve();\n } else {\n throw new Error('No \"textContentSource\" parameter specified.');\n }\n capability.promise.then(() => {\n styleCache = null;\n render(this);\n }, this._capability.reject);\n }\n}\nexports.TextLayerRenderTask = TextLayerRenderTask;\nfunction renderTextLayer(params) {\n if (!params.textContentSource && (params.textContent || params.textContentStream)) {\n (0, _display_utils.deprecated)(\"The TextLayerRender `textContent`/`textContentStream` parameters \" + \"will be removed in the future, please use `textContentSource` instead.\");\n params.textContentSource = params.textContent || params.textContentStream;\n }\n const {\n container,\n viewport\n } = params;\n const style = getComputedStyle(container);\n const visibility = style.getPropertyValue(\"visibility\");\n const scaleFactor = parseFloat(style.getPropertyValue(\"--scale-factor\"));\n if (visibility === \"visible\" && (!scaleFactor || Math.abs(scaleFactor - viewport.scale) > 1e-5)) {\n console.error(\"The `--scale-factor` CSS-variable must be set, \" + \"to the same value as `viewport.scale`, \" + \"either on the `container`-element itself or higher up in the DOM.\");\n }\n const task = new TextLayerRenderTask(params);\n task._render();\n return task;\n}\nfunction updateTextLayer({\n container,\n viewport,\n textDivs,\n textDivProperties,\n isOffscreenCanvasSupported,\n mustRotate = true,\n mustRescale = true\n}) {\n if (mustRotate) {\n (0, _display_utils.setLayerDimensions)(container, {\n rotation: viewport.rotation\n });\n }\n if (mustRescale) {\n const ctx = getCtx(0, isOffscreenCanvasSupported);\n const scale = viewport.scale * (globalThis.devicePixelRatio || 1);\n const params = {\n prevFontSize: null,\n prevFontFamily: null,\n div: null,\n scale,\n properties: null,\n ctx\n };\n for (const div of textDivs) {\n params.properties = textDivProperties.get(div);\n params.div = div;\n layout(params);\n }\n }\n}\n\n/***/ }),\n/* 27 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.AnnotationEditorLayer = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _editor = __w_pdfjs_require__(4);\nvar _freetext = __w_pdfjs_require__(28);\nvar _ink = __w_pdfjs_require__(33);\nvar _display_utils = __w_pdfjs_require__(6);\nvar _stamp = __w_pdfjs_require__(34);\nclass AnnotationEditorLayer {\n #accessibilityManager;\n #allowClick = false;\n #annotationLayer = null;\n #boundPointerup = this.pointerup.bind(this);\n #boundPointerdown = this.pointerdown.bind(this);\n #editors = new Map();\n #hadPointerDown = false;\n #isCleaningUp = false;\n #isDisabling = false;\n #uiManager;\n static _initialized = false;\n constructor({\n uiManager,\n pageIndex,\n div,\n accessibilityManager,\n annotationLayer,\n viewport,\n l10n\n }) {\n const editorTypes = [_freetext.FreeTextEditor, _ink.InkEditor, _stamp.StampEditor];\n if (!AnnotationEditorLayer._initialized) {\n AnnotationEditorLayer._initialized = true;\n for (const editorType of editorTypes) {\n editorType.initialize(l10n);\n }\n }\n uiManager.registerEditorTypes(editorTypes);\n this.#uiManager = uiManager;\n this.pageIndex = pageIndex;\n this.div = div;\n this.#accessibilityManager = accessibilityManager;\n this.#annotationLayer = annotationLayer;\n this.viewport = viewport;\n this.#uiManager.addLayer(this);\n }\n get isEmpty() {\n return this.#editors.size === 0;\n }\n updateToolbar(mode) {\n this.#uiManager.updateToolbar(mode);\n }\n updateMode(mode = this.#uiManager.getMode()) {\n this.#cleanup();\n if (mode === _util.AnnotationEditorType.INK) {\n this.addInkEditorIfNeeded(false);\n this.disableClick();\n } else {\n this.enableClick();\n }\n if (mode !== _util.AnnotationEditorType.NONE) {\n this.div.classList.toggle(\"freeTextEditing\", mode === _util.AnnotationEditorType.FREETEXT);\n this.div.classList.toggle(\"inkEditing\", mode === _util.AnnotationEditorType.INK);\n this.div.classList.toggle(\"stampEditing\", mode === _util.AnnotationEditorType.STAMP);\n this.div.hidden = false;\n }\n }\n addInkEditorIfNeeded(isCommitting) {\n if (!isCommitting && this.#uiManager.getMode() !== _util.AnnotationEditorType.INK) {\n return;\n }\n if (!isCommitting) {\n for (const editor of this.#editors.values()) {\n if (editor.isEmpty()) {\n editor.setInBackground();\n return;\n }\n }\n }\n const editor = this.#createAndAddNewEditor({\n offsetX: 0,\n offsetY: 0\n }, false);\n editor.setInBackground();\n }\n setEditingState(isEditing) {\n this.#uiManager.setEditingState(isEditing);\n }\n addCommands(params) {\n this.#uiManager.addCommands(params);\n }\n enable() {\n this.div.style.pointerEvents = \"auto\";\n const annotationElementIds = new Set();\n for (const editor of this.#editors.values()) {\n editor.enableEditing();\n if (editor.annotationElementId) {\n annotationElementIds.add(editor.annotationElementId);\n }\n }\n if (!this.#annotationLayer) {\n return;\n }\n const editables = this.#annotationLayer.getEditableAnnotations();\n for (const editable of editables) {\n editable.hide();\n if (this.#uiManager.isDeletedAnnotationElement(editable.data.id)) {\n continue;\n }\n if (annotationElementIds.has(editable.data.id)) {\n continue;\n }\n const editor = this.deserialize(editable);\n if (!editor) {\n continue;\n }\n this.addOrRebuild(editor);\n editor.enableEditing();\n }\n }\n disable() {\n this.#isDisabling = true;\n this.div.style.pointerEvents = \"none\";\n const hiddenAnnotationIds = new Set();\n for (const editor of this.#editors.values()) {\n editor.disableEditing();\n if (!editor.annotationElementId || editor.serialize() !== null) {\n hiddenAnnotationIds.add(editor.annotationElementId);\n continue;\n }\n this.getEditableAnnotation(editor.annotationElementId)?.show();\n editor.remove();\n }\n if (this.#annotationLayer) {\n const editables = this.#annotationLayer.getEditableAnnotations();\n for (const editable of editables) {\n const {\n id\n } = editable.data;\n if (hiddenAnnotationIds.has(id) || this.#uiManager.isDeletedAnnotationElement(id)) {\n continue;\n }\n editable.show();\n }\n }\n this.#cleanup();\n if (this.isEmpty) {\n this.div.hidden = true;\n }\n this.#isDisabling = false;\n }\n getEditableAnnotation(id) {\n return this.#annotationLayer?.getEditableAnnotation(id) || null;\n }\n setActiveEditor(editor) {\n const currentActive = this.#uiManager.getActive();\n if (currentActive === editor) {\n return;\n }\n this.#uiManager.setActiveEditor(editor);\n }\n enableClick() {\n this.div.addEventListener(\"pointerdown\", this.#boundPointerdown);\n this.div.addEventListener(\"pointerup\", this.#boundPointerup);\n }\n disableClick() {\n this.div.removeEventListener(\"pointerdown\", this.#boundPointerdown);\n this.div.removeEventListener(\"pointerup\", this.#boundPointerup);\n }\n attach(editor) {\n this.#editors.set(editor.id, editor);\n const {\n annotationElementId\n } = editor;\n if (annotationElementId && this.#uiManager.isDeletedAnnotationElement(annotationElementId)) {\n this.#uiManager.removeDeletedAnnotationElement(editor);\n }\n }\n detach(editor) {\n this.#editors.delete(editor.id);\n this.#accessibilityManager?.removePointerInTextLayer(editor.contentDiv);\n if (!this.#isDisabling && editor.annotationElementId) {\n this.#uiManager.addDeletedAnnotationElement(editor);\n }\n }\n remove(editor) {\n this.detach(editor);\n this.#uiManager.removeEditor(editor);\n if (editor.div.contains(document.activeElement)) {\n setTimeout(() => {\n this.#uiManager.focusMainContainer();\n }, 0);\n }\n editor.div.remove();\n editor.isAttachedToDOM = false;\n if (!this.#isCleaningUp) {\n this.addInkEditorIfNeeded(false);\n }\n }\n changeParent(editor) {\n if (editor.parent === this) {\n return;\n }\n if (editor.annotationElementId) {\n this.#uiManager.addDeletedAnnotationElement(editor.annotationElementId);\n _editor.AnnotationEditor.deleteAnnotationElement(editor);\n editor.annotationElementId = null;\n }\n this.attach(editor);\n editor.parent?.detach(editor);\n editor.setParent(this);\n if (editor.div && editor.isAttachedToDOM) {\n editor.div.remove();\n this.div.append(editor.div);\n }\n }\n add(editor) {\n this.changeParent(editor);\n this.#uiManager.addEditor(editor);\n this.attach(editor);\n if (!editor.isAttachedToDOM) {\n const div = editor.render();\n this.div.append(div);\n editor.isAttachedToDOM = true;\n }\n editor.fixAndSetPosition();\n editor.onceAdded();\n this.#uiManager.addToAnnotationStorage(editor);\n }\n moveEditorInDOM(editor) {\n if (!editor.isAttachedToDOM) {\n return;\n }\n const {\n activeElement\n } = document;\n if (editor.div.contains(activeElement)) {\n editor._focusEventsAllowed = false;\n setTimeout(() => {\n if (!editor.div.contains(document.activeElement)) {\n editor.div.addEventListener(\"focusin\", () => {\n editor._focusEventsAllowed = true;\n }, {\n once: true\n });\n activeElement.focus();\n } else {\n editor._focusEventsAllowed = true;\n }\n }, 0);\n }\n editor._structTreeParentId = this.#accessibilityManager?.moveElementInDOM(this.div, editor.div, editor.contentDiv, true);\n }\n addOrRebuild(editor) {\n if (editor.needsToBeRebuilt()) {\n editor.rebuild();\n } else {\n this.add(editor);\n }\n }\n addUndoableEditor(editor) {\n const cmd = () => editor._uiManager.rebuild(editor);\n const undo = () => {\n editor.remove();\n };\n this.addCommands({\n cmd,\n undo,\n mustExec: false\n });\n }\n getNextId() {\n return this.#uiManager.getId();\n }\n #createNewEditor(params) {\n switch (this.#uiManager.getMode()) {\n case _util.AnnotationEditorType.FREETEXT:\n return new _freetext.FreeTextEditor(params);\n case _util.AnnotationEditorType.INK:\n return new _ink.InkEditor(params);\n case _util.AnnotationEditorType.STAMP:\n return new _stamp.StampEditor(params);\n }\n return null;\n }\n pasteEditor(mode, params) {\n this.#uiManager.updateToolbar(mode);\n this.#uiManager.updateMode(mode);\n const {\n offsetX,\n offsetY\n } = this.#getCenterPoint();\n const id = this.getNextId();\n const editor = this.#createNewEditor({\n parent: this,\n id,\n x: offsetX,\n y: offsetY,\n uiManager: this.#uiManager,\n isCentered: true,\n ...params\n });\n if (editor) {\n this.add(editor);\n }\n }\n deserialize(data) {\n switch (data.annotationType ?? data.annotationEditorType) {\n case _util.AnnotationEditorType.FREETEXT:\n return _freetext.FreeTextEditor.deserialize(data, this, this.#uiManager);\n case _util.AnnotationEditorType.INK:\n return _ink.InkEditor.deserialize(data, this, this.#uiManager);\n case _util.AnnotationEditorType.STAMP:\n return _stamp.StampEditor.deserialize(data, this, this.#uiManager);\n }\n return null;\n }\n #createAndAddNewEditor(event, isCentered) {\n const id = this.getNextId();\n const editor = this.#createNewEditor({\n parent: this,\n id,\n x: event.offsetX,\n y: event.offsetY,\n uiManager: this.#uiManager,\n isCentered\n });\n if (editor) {\n this.add(editor);\n }\n return editor;\n }\n #getCenterPoint() {\n const {\n x,\n y,\n width,\n height\n } = this.div.getBoundingClientRect();\n const tlX = Math.max(0, x);\n const tlY = Math.max(0, y);\n const brX = Math.min(window.innerWidth, x + width);\n const brY = Math.min(window.innerHeight, y + height);\n const centerX = (tlX + brX) / 2 - x;\n const centerY = (tlY + brY) / 2 - y;\n const [offsetX, offsetY] = this.viewport.rotation % 180 === 0 ? [centerX, centerY] : [centerY, centerX];\n return {\n offsetX,\n offsetY\n };\n }\n addNewEditor() {\n this.#createAndAddNewEditor(this.#getCenterPoint(), true);\n }\n setSelected(editor) {\n this.#uiManager.setSelected(editor);\n }\n toggleSelected(editor) {\n this.#uiManager.toggleSelected(editor);\n }\n isSelected(editor) {\n return this.#uiManager.isSelected(editor);\n }\n unselect(editor) {\n this.#uiManager.unselect(editor);\n }\n pointerup(event) {\n const {\n isMac\n } = _util.FeatureTest.platform;\n if (event.button !== 0 || event.ctrlKey && isMac) {\n return;\n }\n if (event.target !== this.div) {\n return;\n }\n if (!this.#hadPointerDown) {\n return;\n }\n this.#hadPointerDown = false;\n if (!this.#allowClick) {\n this.#allowClick = true;\n return;\n }\n if (this.#uiManager.getMode() === _util.AnnotationEditorType.STAMP) {\n this.#uiManager.unselectAll();\n return;\n }\n this.#createAndAddNewEditor(event, false);\n }\n pointerdown(event) {\n if (this.#hadPointerDown) {\n this.#hadPointerDown = false;\n return;\n }\n const {\n isMac\n } = _util.FeatureTest.platform;\n if (event.button !== 0 || event.ctrlKey && isMac) {\n return;\n }\n if (event.target !== this.div) {\n return;\n }\n this.#hadPointerDown = true;\n const editor = this.#uiManager.getActive();\n this.#allowClick = !editor || editor.isEmpty();\n }\n findNewParent(editor, x, y) {\n const layer = this.#uiManager.findParent(x, y);\n if (layer === null || layer === this) {\n return false;\n }\n layer.changeParent(editor);\n return true;\n }\n destroy() {\n if (this.#uiManager.getActive()?.parent === this) {\n this.#uiManager.commitOrRemove();\n this.#uiManager.setActiveEditor(null);\n }\n for (const editor of this.#editors.values()) {\n this.#accessibilityManager?.removePointerInTextLayer(editor.contentDiv);\n editor.setParent(null);\n editor.isAttachedToDOM = false;\n editor.div.remove();\n }\n this.div = null;\n this.#editors.clear();\n this.#uiManager.removeLayer(this);\n }\n #cleanup() {\n this.#isCleaningUp = true;\n for (const editor of this.#editors.values()) {\n if (editor.isEmpty()) {\n editor.remove();\n }\n }\n this.#isCleaningUp = false;\n }\n render({\n viewport\n }) {\n this.viewport = viewport;\n (0, _display_utils.setLayerDimensions)(this.div, viewport);\n for (const editor of this.#uiManager.getEditors(this.pageIndex)) {\n this.add(editor);\n }\n this.updateMode();\n }\n update({\n viewport\n }) {\n this.#uiManager.commitOrRemove();\n this.viewport = viewport;\n (0, _display_utils.setLayerDimensions)(this.div, {\n rotation: viewport.rotation\n });\n this.updateMode();\n }\n get pageDimensions() {\n const {\n pageWidth,\n pageHeight\n } = this.viewport.rawDims;\n return [pageWidth, pageHeight];\n }\n}\nexports.AnnotationEditorLayer = AnnotationEditorLayer;\n\n/***/ }),\n/* 28 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.FreeTextEditor = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _tools = __w_pdfjs_require__(5);\nvar _editor = __w_pdfjs_require__(4);\nvar _annotation_layer = __w_pdfjs_require__(29);\nclass FreeTextEditor extends _editor.AnnotationEditor {\n #boundEditorDivBlur = this.editorDivBlur.bind(this);\n #boundEditorDivFocus = this.editorDivFocus.bind(this);\n #boundEditorDivInput = this.editorDivInput.bind(this);\n #boundEditorDivKeydown = this.editorDivKeydown.bind(this);\n #color;\n #content = \"\";\n #editorDivId = `${this.id}-editor`;\n #fontSize;\n #initialData = null;\n static _freeTextDefaultContent = \"\";\n static _internalPadding = 0;\n static _defaultColor = null;\n static _defaultFontSize = 10;\n static get _keyboardManager() {\n const proto = FreeTextEditor.prototype;\n const arrowChecker = self => self.isEmpty();\n const small = _tools.AnnotationEditorUIManager.TRANSLATE_SMALL;\n const big = _tools.AnnotationEditorUIManager.TRANSLATE_BIG;\n return (0, _util.shadow)(this, \"_keyboardManager\", new _tools.KeyboardManager([[[\"ctrl+s\", \"mac+meta+s\", \"ctrl+p\", \"mac+meta+p\"], proto.commitOrRemove, {\n bubbles: true\n }], [[\"ctrl+Enter\", \"mac+meta+Enter\", \"Escape\", \"mac+Escape\"], proto.commitOrRemove], [[\"ArrowLeft\", \"mac+ArrowLeft\"], proto._translateEmpty, {\n args: [-small, 0],\n checker: arrowChecker\n }], [[\"ctrl+ArrowLeft\", \"mac+shift+ArrowLeft\"], proto._translateEmpty, {\n args: [-big, 0],\n checker: arrowChecker\n }], [[\"ArrowRight\", \"mac+ArrowRight\"], proto._translateEmpty, {\n args: [small, 0],\n checker: arrowChecker\n }], [[\"ctrl+ArrowRight\", \"mac+shift+ArrowRight\"], proto._translateEmpty, {\n args: [big, 0],\n checker: arrowChecker\n }], [[\"ArrowUp\", \"mac+ArrowUp\"], proto._translateEmpty, {\n args: [0, -small],\n checker: arrowChecker\n }], [[\"ctrl+ArrowUp\", \"mac+shift+ArrowUp\"], proto._translateEmpty, {\n args: [0, -big],\n checker: arrowChecker\n }], [[\"ArrowDown\", \"mac+ArrowDown\"], proto._translateEmpty, {\n args: [0, small],\n checker: arrowChecker\n }], [[\"ctrl+ArrowDown\", \"mac+shift+ArrowDown\"], proto._translateEmpty, {\n args: [0, big],\n checker: arrowChecker\n }]]));\n }\n static _type = \"freetext\";\n constructor(params) {\n super({\n ...params,\n name: \"freeTextEditor\"\n });\n this.#color = params.color || FreeTextEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor;\n this.#fontSize = params.fontSize || FreeTextEditor._defaultFontSize;\n }\n static initialize(l10n) {\n _editor.AnnotationEditor.initialize(l10n, {\n strings: [\"free_text2_default_content\", \"editor_free_text2_aria_label\"]\n });\n const style = getComputedStyle(document.documentElement);\n this._internalPadding = parseFloat(style.getPropertyValue(\"--freetext-padding\"));\n }\n static updateDefaultParams(type, value) {\n switch (type) {\n case _util.AnnotationEditorParamsType.FREETEXT_SIZE:\n FreeTextEditor._defaultFontSize = value;\n break;\n case _util.AnnotationEditorParamsType.FREETEXT_COLOR:\n FreeTextEditor._defaultColor = value;\n break;\n }\n }\n updateParams(type, value) {\n switch (type) {\n case _util.AnnotationEditorParamsType.FREETEXT_SIZE:\n this.#updateFontSize(value);\n break;\n case _util.AnnotationEditorParamsType.FREETEXT_COLOR:\n this.#updateColor(value);\n break;\n }\n }\n static get defaultPropertiesToUpdate() {\n return [[_util.AnnotationEditorParamsType.FREETEXT_SIZE, FreeTextEditor._defaultFontSize], [_util.AnnotationEditorParamsType.FREETEXT_COLOR, FreeTextEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor]];\n }\n get propertiesToUpdate() {\n return [[_util.AnnotationEditorParamsType.FREETEXT_SIZE, this.#fontSize], [_util.AnnotationEditorParamsType.FREETEXT_COLOR, this.#color]];\n }\n #updateFontSize(fontSize) {\n const setFontsize = size => {\n this.editorDiv.style.fontSize = `calc(${size}px * var(--scale-factor))`;\n this.translate(0, -(size - this.#fontSize) * this.parentScale);\n this.#fontSize = size;\n this.#setEditorDimensions();\n };\n const savedFontsize = this.#fontSize;\n this.addCommands({\n cmd: () => {\n setFontsize(fontSize);\n },\n undo: () => {\n setFontsize(savedFontsize);\n },\n mustExec: true,\n type: _util.AnnotationEditorParamsType.FREETEXT_SIZE,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n #updateColor(color) {\n const savedColor = this.#color;\n this.addCommands({\n cmd: () => {\n this.#color = this.editorDiv.style.color = color;\n },\n undo: () => {\n this.#color = this.editorDiv.style.color = savedColor;\n },\n mustExec: true,\n type: _util.AnnotationEditorParamsType.FREETEXT_COLOR,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n _translateEmpty(x, y) {\n this._uiManager.translateSelectedEditors(x, y, true);\n }\n getInitialTranslation() {\n const scale = this.parentScale;\n return [-FreeTextEditor._internalPadding * scale, -(FreeTextEditor._internalPadding + this.#fontSize) * scale];\n }\n rebuild() {\n if (!this.parent) {\n return;\n }\n super.rebuild();\n if (this.div === null) {\n return;\n }\n if (!this.isAttachedToDOM) {\n this.parent.add(this);\n }\n }\n enableEditMode() {\n if (this.isInEditMode()) {\n return;\n }\n this.parent.setEditingState(false);\n this.parent.updateToolbar(_util.AnnotationEditorType.FREETEXT);\n super.enableEditMode();\n this.overlayDiv.classList.remove(\"enabled\");\n this.editorDiv.contentEditable = true;\n this._isDraggable = false;\n this.div.removeAttribute(\"aria-activedescendant\");\n this.editorDiv.addEventListener(\"keydown\", this.#boundEditorDivKeydown);\n this.editorDiv.addEventListener(\"focus\", this.#boundEditorDivFocus);\n this.editorDiv.addEventListener(\"blur\", this.#boundEditorDivBlur);\n this.editorDiv.addEventListener(\"input\", this.#boundEditorDivInput);\n }\n disableEditMode() {\n if (!this.isInEditMode()) {\n return;\n }\n this.parent.setEditingState(true);\n super.disableEditMode();\n this.overlayDiv.classList.add(\"enabled\");\n this.editorDiv.contentEditable = false;\n this.div.setAttribute(\"aria-activedescendant\", this.#editorDivId);\n this._isDraggable = true;\n this.editorDiv.removeEventListener(\"keydown\", this.#boundEditorDivKeydown);\n this.editorDiv.removeEventListener(\"focus\", this.#boundEditorDivFocus);\n this.editorDiv.removeEventListener(\"blur\", this.#boundEditorDivBlur);\n this.editorDiv.removeEventListener(\"input\", this.#boundEditorDivInput);\n this.div.focus({\n preventScroll: true\n });\n this.isEditing = false;\n this.parent.div.classList.add(\"freeTextEditing\");\n }\n focusin(event) {\n if (!this._focusEventsAllowed) {\n return;\n }\n super.focusin(event);\n if (event.target !== this.editorDiv) {\n this.editorDiv.focus();\n }\n }\n onceAdded() {\n if (this.width) {\n this.#cheatInitialRect();\n return;\n }\n this.enableEditMode();\n this.editorDiv.focus();\n if (this._initialOptions?.isCentered) {\n this.center();\n }\n this._initialOptions = null;\n }\n isEmpty() {\n return !this.editorDiv || this.editorDiv.innerText.trim() === \"\";\n }\n remove() {\n this.isEditing = false;\n if (this.parent) {\n this.parent.setEditingState(true);\n this.parent.div.classList.add(\"freeTextEditing\");\n }\n super.remove();\n }\n #extractText() {\n const divs = this.editorDiv.getElementsByTagName(\"div\");\n if (divs.length === 0) {\n return this.editorDiv.innerText;\n }\n const buffer = [];\n for (const div of divs) {\n buffer.push(div.innerText.replace(/\\r\\n?|\\n/, \"\"));\n }\n return buffer.join(\"\\n\");\n }\n #setEditorDimensions() {\n const [parentWidth, parentHeight] = this.parentDimensions;\n let rect;\n if (this.isAttachedToDOM) {\n rect = this.div.getBoundingClientRect();\n } else {\n const {\n currentLayer,\n div\n } = this;\n const savedDisplay = div.style.display;\n div.style.display = \"hidden\";\n currentLayer.div.append(this.div);\n rect = div.getBoundingClientRect();\n div.remove();\n div.style.display = savedDisplay;\n }\n if (this.rotation % 180 === this.parentRotation % 180) {\n this.width = rect.width / parentWidth;\n this.height = rect.height / parentHeight;\n } else {\n this.width = rect.height / parentWidth;\n this.height = rect.width / parentHeight;\n }\n this.fixAndSetPosition();\n }\n commit() {\n if (!this.isInEditMode()) {\n return;\n }\n super.commit();\n this.disableEditMode();\n const savedText = this.#content;\n const newText = this.#content = this.#extractText().trimEnd();\n if (savedText === newText) {\n return;\n }\n const setText = text => {\n this.#content = text;\n if (!text) {\n this.remove();\n return;\n }\n this.#setContent();\n this._uiManager.rebuild(this);\n this.#setEditorDimensions();\n };\n this.addCommands({\n cmd: () => {\n setText(newText);\n },\n undo: () => {\n setText(savedText);\n },\n mustExec: false\n });\n this.#setEditorDimensions();\n }\n shouldGetKeyboardEvents() {\n return this.isInEditMode();\n }\n enterInEditMode() {\n this.enableEditMode();\n this.editorDiv.focus();\n }\n dblclick(event) {\n this.enterInEditMode();\n }\n keydown(event) {\n if (event.target === this.div && event.key === \"Enter\") {\n this.enterInEditMode();\n event.preventDefault();\n }\n }\n editorDivKeydown(event) {\n FreeTextEditor._keyboardManager.exec(this, event);\n }\n editorDivFocus(event) {\n this.isEditing = true;\n }\n editorDivBlur(event) {\n this.isEditing = false;\n }\n editorDivInput(event) {\n this.parent.div.classList.toggle(\"freeTextEditing\", this.isEmpty());\n }\n disableEditing() {\n this.editorDiv.setAttribute(\"role\", \"comment\");\n this.editorDiv.removeAttribute(\"aria-multiline\");\n }\n enableEditing() {\n this.editorDiv.setAttribute(\"role\", \"textbox\");\n this.editorDiv.setAttribute(\"aria-multiline\", true);\n }\n render() {\n if (this.div) {\n return this.div;\n }\n let baseX, baseY;\n if (this.width) {\n baseX = this.x;\n baseY = this.y;\n }\n super.render();\n this.editorDiv = document.createElement(\"div\");\n this.editorDiv.className = \"internal\";\n this.editorDiv.setAttribute(\"id\", this.#editorDivId);\n this.enableEditing();\n _editor.AnnotationEditor._l10nPromise.get(\"editor_free_text2_aria_label\").then(msg => this.editorDiv?.setAttribute(\"aria-label\", msg));\n _editor.AnnotationEditor._l10nPromise.get(\"free_text2_default_content\").then(msg => this.editorDiv?.setAttribute(\"default-content\", msg));\n this.editorDiv.contentEditable = true;\n const {\n style\n } = this.editorDiv;\n style.fontSize = `calc(${this.#fontSize}px * var(--scale-factor))`;\n style.color = this.#color;\n this.div.append(this.editorDiv);\n this.overlayDiv = document.createElement(\"div\");\n this.overlayDiv.classList.add(\"overlay\", \"enabled\");\n this.div.append(this.overlayDiv);\n (0, _tools.bindEvents)(this, this.div, [\"dblclick\", \"keydown\"]);\n if (this.width) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n if (this.annotationElementId) {\n const {\n position\n } = this.#initialData;\n let [tx, ty] = this.getInitialTranslation();\n [tx, ty] = this.pageTranslationToScreen(tx, ty);\n const [pageWidth, pageHeight] = this.pageDimensions;\n const [pageX, pageY] = this.pageTranslation;\n let posX, posY;\n switch (this.rotation) {\n case 0:\n posX = baseX + (position[0] - pageX) / pageWidth;\n posY = baseY + this.height - (position[1] - pageY) / pageHeight;\n break;\n case 90:\n posX = baseX + (position[0] - pageX) / pageWidth;\n posY = baseY - (position[1] - pageY) / pageHeight;\n [tx, ty] = [ty, -tx];\n break;\n case 180:\n posX = baseX - this.width + (position[0] - pageX) / pageWidth;\n posY = baseY - (position[1] - pageY) / pageHeight;\n [tx, ty] = [-tx, -ty];\n break;\n case 270:\n posX = baseX + (position[0] - pageX - this.height * pageHeight) / pageWidth;\n posY = baseY + (position[1] - pageY - this.width * pageWidth) / pageHeight;\n [tx, ty] = [-ty, tx];\n break;\n }\n this.setAt(posX * parentWidth, posY * parentHeight, tx, ty);\n } else {\n this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight);\n }\n this.#setContent();\n this._isDraggable = true;\n this.editorDiv.contentEditable = false;\n } else {\n this._isDraggable = false;\n this.editorDiv.contentEditable = true;\n }\n return this.div;\n }\n #setContent() {\n this.editorDiv.replaceChildren();\n if (!this.#content) {\n return;\n }\n for (const line of this.#content.split(\"\\n\")) {\n const div = document.createElement(\"div\");\n div.append(line ? document.createTextNode(line) : document.createElement(\"br\"));\n this.editorDiv.append(div);\n }\n }\n get contentDiv() {\n return this.editorDiv;\n }\n static deserialize(data, parent, uiManager) {\n let initialData = null;\n if (data instanceof _annotation_layer.FreeTextAnnotationElement) {\n const {\n data: {\n defaultAppearanceData: {\n fontSize,\n fontColor\n },\n rect,\n rotation,\n id\n },\n textContent,\n textPosition,\n parent: {\n page: {\n pageNumber\n }\n }\n } = data;\n if (!textContent || textContent.length === 0) {\n return null;\n }\n initialData = data = {\n annotationType: _util.AnnotationEditorType.FREETEXT,\n color: Array.from(fontColor),\n fontSize,\n value: textContent.join(\"\\n\"),\n position: textPosition,\n pageIndex: pageNumber - 1,\n rect,\n rotation,\n id,\n deleted: false\n };\n }\n const editor = super.deserialize(data, parent, uiManager);\n editor.#fontSize = data.fontSize;\n editor.#color = _util.Util.makeHexColor(...data.color);\n editor.#content = data.value;\n editor.annotationElementId = data.id || null;\n editor.#initialData = initialData;\n return editor;\n }\n serialize(isForCopying = false) {\n if (this.isEmpty()) {\n return null;\n }\n if (this.deleted) {\n return {\n pageIndex: this.pageIndex,\n id: this.annotationElementId,\n deleted: true\n };\n }\n const padding = FreeTextEditor._internalPadding * this.parentScale;\n const rect = this.getRect(padding, padding);\n const color = _editor.AnnotationEditor._colorManager.convert(this.isAttachedToDOM ? getComputedStyle(this.editorDiv).color : this.#color);\n const serialized = {\n annotationType: _util.AnnotationEditorType.FREETEXT,\n color,\n fontSize: this.#fontSize,\n value: this.#content,\n pageIndex: this.pageIndex,\n rect,\n rotation: this.rotation,\n structTreeParentId: this._structTreeParentId\n };\n if (isForCopying) {\n return serialized;\n }\n if (this.annotationElementId && !this.#hasElementChanged(serialized)) {\n return null;\n }\n serialized.id = this.annotationElementId;\n return serialized;\n }\n #hasElementChanged(serialized) {\n const {\n value,\n fontSize,\n color,\n rect,\n pageIndex\n } = this.#initialData;\n return serialized.value !== value || serialized.fontSize !== fontSize || serialized.rect.some((x, i) => Math.abs(x - rect[i]) >= 1) || serialized.color.some((c, i) => c !== color[i]) || serialized.pageIndex !== pageIndex;\n }\n #cheatInitialRect(delayed = false) {\n if (!this.annotationElementId) {\n return;\n }\n this.#setEditorDimensions();\n if (!delayed && (this.width === 0 || this.height === 0)) {\n setTimeout(() => this.#cheatInitialRect(true), 0);\n return;\n }\n const padding = FreeTextEditor._internalPadding * this.parentScale;\n this.#initialData.rect = this.getRect(padding, padding);\n }\n}\nexports.FreeTextEditor = FreeTextEditor;\n\n/***/ }),\n/* 29 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.StampAnnotationElement = exports.InkAnnotationElement = exports.FreeTextAnnotationElement = exports.AnnotationLayer = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _display_utils = __w_pdfjs_require__(6);\nvar _annotation_storage = __w_pdfjs_require__(3);\nvar _scripting_utils = __w_pdfjs_require__(30);\nvar _displayL10n_utils = __w_pdfjs_require__(31);\nvar _xfa_layer = __w_pdfjs_require__(32);\nconst DEFAULT_TAB_INDEX = 1000;\nconst DEFAULT_FONT_SIZE = 9;\nconst GetElementsByNameSet = new WeakSet();\nfunction getRectDims(rect) {\n return {\n width: rect[2] - rect[0],\n height: rect[3] - rect[1]\n };\n}\nclass AnnotationElementFactory {\n static create(parameters) {\n const subtype = parameters.data.annotationType;\n switch (subtype) {\n case _util.AnnotationType.LINK:\n return new LinkAnnotationElement(parameters);\n case _util.AnnotationType.TEXT:\n return new TextAnnotationElement(parameters);\n case _util.AnnotationType.WIDGET:\n const fieldType = parameters.data.fieldType;\n switch (fieldType) {\n case \"Tx\":\n return new TextWidgetAnnotationElement(parameters);\n case \"Btn\":\n if (parameters.data.radioButton) {\n return new RadioButtonWidgetAnnotationElement(parameters);\n } else if (parameters.data.checkBox) {\n return new CheckboxWidgetAnnotationElement(parameters);\n }\n return new PushButtonWidgetAnnotationElement(parameters);\n case \"Ch\":\n return new ChoiceWidgetAnnotationElement(parameters);\n case \"Sig\":\n return new SignatureWidgetAnnotationElement(parameters);\n }\n return new WidgetAnnotationElement(parameters);\n case _util.AnnotationType.POPUP:\n return new PopupAnnotationElement(parameters);\n case _util.AnnotationType.FREETEXT:\n return new FreeTextAnnotationElement(parameters);\n case _util.AnnotationType.LINE:\n return new LineAnnotationElement(parameters);\n case _util.AnnotationType.SQUARE:\n return new SquareAnnotationElement(parameters);\n case _util.AnnotationType.CIRCLE:\n return new CircleAnnotationElement(parameters);\n case _util.AnnotationType.POLYLINE:\n return new PolylineAnnotationElement(parameters);\n case _util.AnnotationType.CARET:\n return new CaretAnnotationElement(parameters);\n case _util.AnnotationType.INK:\n return new InkAnnotationElement(parameters);\n case _util.AnnotationType.POLYGON:\n return new PolygonAnnotationElement(parameters);\n case _util.AnnotationType.HIGHLIGHT:\n return new HighlightAnnotationElement(parameters);\n case _util.AnnotationType.UNDERLINE:\n return new UnderlineAnnotationElement(parameters);\n case _util.AnnotationType.SQUIGGLY:\n return new SquigglyAnnotationElement(parameters);\n case _util.AnnotationType.STRIKEOUT:\n return new StrikeOutAnnotationElement(parameters);\n case _util.AnnotationType.STAMP:\n return new StampAnnotationElement(parameters);\n case _util.AnnotationType.FILEATTACHMENT:\n return new FileAttachmentAnnotationElement(parameters);\n default:\n return new AnnotationElement(parameters);\n }\n }\n}\nclass AnnotationElement {\n #hasBorder = false;\n constructor(parameters, {\n isRenderable = false,\n ignoreBorder = false,\n createQuadrilaterals = false\n } = {}) {\n this.isRenderable = isRenderable;\n this.data = parameters.data;\n this.layer = parameters.layer;\n this.linkService = parameters.linkService;\n this.downloadManager = parameters.downloadManager;\n this.imageResourcesPath = parameters.imageResourcesPath;\n this.renderForms = parameters.renderForms;\n this.svgFactory = parameters.svgFactory;\n this.annotationStorage = parameters.annotationStorage;\n this.enableScripting = parameters.enableScripting;\n this.hasJSActions = parameters.hasJSActions;\n this._fieldObjects = parameters.fieldObjects;\n this.parent = parameters.parent;\n if (isRenderable) {\n this.container = this._createContainer(ignoreBorder);\n }\n if (createQuadrilaterals) {\n this._createQuadrilaterals();\n }\n }\n static _hasPopupData({\n titleObj,\n contentsObj,\n richText\n }) {\n return !!(titleObj?.str || contentsObj?.str || richText?.str);\n }\n get hasPopupData() {\n return AnnotationElement._hasPopupData(this.data);\n }\n _createContainer(ignoreBorder) {\n const {\n data,\n parent: {\n page,\n viewport\n }\n } = this;\n const container = document.createElement(\"section\");\n container.setAttribute(\"data-annotation-id\", data.id);\n if (!(this instanceof WidgetAnnotationElement)) {\n container.tabIndex = DEFAULT_TAB_INDEX;\n }\n container.style.zIndex = this.parent.zIndex++;\n if (this.data.popupRef) {\n container.setAttribute(\"aria-haspopup\", \"dialog\");\n }\n if (data.noRotate) {\n container.classList.add(\"norotate\");\n }\n const {\n pageWidth,\n pageHeight,\n pageX,\n pageY\n } = viewport.rawDims;\n if (!data.rect || this instanceof PopupAnnotationElement) {\n const {\n rotation\n } = data;\n if (!data.hasOwnCanvas && rotation !== 0) {\n this.setRotation(rotation, container);\n }\n return container;\n }\n const {\n width,\n height\n } = getRectDims(data.rect);\n const rect = _util.Util.normalizeRect([data.rect[0], page.view[3] - data.rect[1] + page.view[1], data.rect[2], page.view[3] - data.rect[3] + page.view[1]]);\n if (!ignoreBorder && data.borderStyle.width > 0) {\n container.style.borderWidth = `${data.borderStyle.width}px`;\n const horizontalRadius = data.borderStyle.horizontalCornerRadius;\n const verticalRadius = data.borderStyle.verticalCornerRadius;\n if (horizontalRadius > 0 || verticalRadius > 0) {\n const radius = `calc(${horizontalRadius}px * var(--scale-factor)) / calc(${verticalRadius}px * var(--scale-factor))`;\n container.style.borderRadius = radius;\n } else if (this instanceof RadioButtonWidgetAnnotationElement) {\n const radius = `calc(${width}px * var(--scale-factor)) / calc(${height}px * var(--scale-factor))`;\n container.style.borderRadius = radius;\n }\n switch (data.borderStyle.style) {\n case _util.AnnotationBorderStyleType.SOLID:\n container.style.borderStyle = \"solid\";\n break;\n case _util.AnnotationBorderStyleType.DASHED:\n container.style.borderStyle = \"dashed\";\n break;\n case _util.AnnotationBorderStyleType.BEVELED:\n (0, _util.warn)(\"Unimplemented border style: beveled\");\n break;\n case _util.AnnotationBorderStyleType.INSET:\n (0, _util.warn)(\"Unimplemented border style: inset\");\n break;\n case _util.AnnotationBorderStyleType.UNDERLINE:\n container.style.borderBottomStyle = \"solid\";\n break;\n default:\n break;\n }\n const borderColor = data.borderColor || null;\n if (borderColor) {\n this.#hasBorder = true;\n container.style.borderColor = _util.Util.makeHexColor(borderColor[0] | 0, borderColor[1] | 0, borderColor[2] | 0);\n } else {\n container.style.borderWidth = 0;\n }\n }\n container.style.left = `${100 * (rect[0] - pageX) / pageWidth}%`;\n container.style.top = `${100 * (rect[1] - pageY) / pageHeight}%`;\n const {\n rotation\n } = data;\n if (data.hasOwnCanvas || rotation === 0) {\n container.style.width = `${100 * width / pageWidth}%`;\n container.style.height = `${100 * height / pageHeight}%`;\n } else {\n this.setRotation(rotation, container);\n }\n return container;\n }\n setRotation(angle, container = this.container) {\n if (!this.data.rect) {\n return;\n }\n const {\n pageWidth,\n pageHeight\n } = this.parent.viewport.rawDims;\n const {\n width,\n height\n } = getRectDims(this.data.rect);\n let elementWidth, elementHeight;\n if (angle % 180 === 0) {\n elementWidth = 100 * width / pageWidth;\n elementHeight = 100 * height / pageHeight;\n } else {\n elementWidth = 100 * height / pageWidth;\n elementHeight = 100 * width / pageHeight;\n }\n container.style.width = `${elementWidth}%`;\n container.style.height = `${elementHeight}%`;\n container.setAttribute(\"data-main-rotation\", (360 - angle) % 360);\n }\n get _commonActions() {\n const setColor = (jsName, styleName, event) => {\n const color = event.detail[jsName];\n const colorType = color[0];\n const colorArray = color.slice(1);\n event.target.style[styleName] = _scripting_utils.ColorConverters[`${colorType}_HTML`](colorArray);\n this.annotationStorage.setValue(this.data.id, {\n [styleName]: _scripting_utils.ColorConverters[`${colorType}_rgb`](colorArray)\n });\n };\n return (0, _util.shadow)(this, \"_commonActions\", {\n display: event => {\n const {\n display\n } = event.detail;\n const hidden = display % 2 === 1;\n this.container.style.visibility = hidden ? \"hidden\" : \"visible\";\n this.annotationStorage.setValue(this.data.id, {\n noView: hidden,\n noPrint: display === 1 || display === 2\n });\n },\n print: event => {\n this.annotationStorage.setValue(this.data.id, {\n noPrint: !event.detail.print\n });\n },\n hidden: event => {\n const {\n hidden\n } = event.detail;\n this.container.style.visibility = hidden ? \"hidden\" : \"visible\";\n this.annotationStorage.setValue(this.data.id, {\n noPrint: hidden,\n noView: hidden\n });\n },\n focus: event => {\n setTimeout(() => event.target.focus({\n preventScroll: false\n }), 0);\n },\n userName: event => {\n event.target.title = event.detail.userName;\n },\n readonly: event => {\n event.target.disabled = event.detail.readonly;\n },\n required: event => {\n this._setRequired(event.target, event.detail.required);\n },\n bgColor: event => {\n setColor(\"bgColor\", \"backgroundColor\", event);\n },\n fillColor: event => {\n setColor(\"fillColor\", \"backgroundColor\", event);\n },\n fgColor: event => {\n setColor(\"fgColor\", \"color\", event);\n },\n textColor: event => {\n setColor(\"textColor\", \"color\", event);\n },\n borderColor: event => {\n setColor(\"borderColor\", \"borderColor\", event);\n },\n strokeColor: event => {\n setColor(\"strokeColor\", \"borderColor\", event);\n },\n rotation: event => {\n const angle = event.detail.rotation;\n this.setRotation(angle);\n this.annotationStorage.setValue(this.data.id, {\n rotation: angle\n });\n }\n });\n }\n _dispatchEventFromSandbox(actions, jsEvent) {\n const commonActions = this._commonActions;\n for (const name of Object.keys(jsEvent.detail)) {\n const action = actions[name] || commonActions[name];\n action?.(jsEvent);\n }\n }\n _setDefaultPropertiesFromJS(element) {\n if (!this.enableScripting) {\n return;\n }\n const storedData = this.annotationStorage.getRawValue(this.data.id);\n if (!storedData) {\n return;\n }\n const commonActions = this._commonActions;\n for (const [actionName, detail] of Object.entries(storedData)) {\n const action = commonActions[actionName];\n if (action) {\n const eventProxy = {\n detail: {\n [actionName]: detail\n },\n target: element\n };\n action(eventProxy);\n delete storedData[actionName];\n }\n }\n }\n _createQuadrilaterals() {\n if (!this.container) {\n return;\n }\n const {\n quadPoints\n } = this.data;\n if (!quadPoints) {\n return;\n }\n const [rectBlX, rectBlY, rectTrX, rectTrY] = this.data.rect;\n if (quadPoints.length === 1) {\n const [, {\n x: trX,\n y: trY\n }, {\n x: blX,\n y: blY\n }] = quadPoints[0];\n if (rectTrX === trX && rectTrY === trY && rectBlX === blX && rectBlY === blY) {\n return;\n }\n }\n const {\n style\n } = this.container;\n let svgBuffer;\n if (this.#hasBorder) {\n const {\n borderColor,\n borderWidth\n } = style;\n style.borderWidth = 0;\n svgBuffer = [\"url('data:image/svg+xml;utf8,\", ``, ``];\n this.container.classList.add(\"hasBorder\");\n }\n const width = rectTrX - rectBlX;\n const height = rectTrY - rectBlY;\n const {\n svgFactory\n } = this;\n const svg = svgFactory.createElement(\"svg\");\n svg.classList.add(\"quadrilateralsContainer\");\n svg.setAttribute(\"width\", 0);\n svg.setAttribute(\"height\", 0);\n const defs = svgFactory.createElement(\"defs\");\n svg.append(defs);\n const clipPath = svgFactory.createElement(\"clipPath\");\n const id = `clippath_${this.data.id}`;\n clipPath.setAttribute(\"id\", id);\n clipPath.setAttribute(\"clipPathUnits\", \"objectBoundingBox\");\n defs.append(clipPath);\n for (const [, {\n x: trX,\n y: trY\n }, {\n x: blX,\n y: blY\n }] of quadPoints) {\n const rect = svgFactory.createElement(\"rect\");\n const x = (blX - rectBlX) / width;\n const y = (rectTrY - trY) / height;\n const rectWidth = (trX - blX) / width;\n const rectHeight = (trY - blY) / height;\n rect.setAttribute(\"x\", x);\n rect.setAttribute(\"y\", y);\n rect.setAttribute(\"width\", rectWidth);\n rect.setAttribute(\"height\", rectHeight);\n clipPath.append(rect);\n svgBuffer?.push(``);\n }\n if (this.#hasBorder) {\n svgBuffer.push(`')`);\n style.backgroundImage = svgBuffer.join(\"\");\n }\n this.container.append(svg);\n this.container.style.clipPath = `url(#${id})`;\n }\n _createPopup() {\n const {\n container,\n data\n } = this;\n container.setAttribute(\"aria-haspopup\", \"dialog\");\n const popup = new PopupAnnotationElement({\n data: {\n color: data.color,\n titleObj: data.titleObj,\n modificationDate: data.modificationDate,\n contentsObj: data.contentsObj,\n richText: data.richText,\n parentRect: data.rect,\n borderStyle: 0,\n id: `popup_${data.id}`,\n rotation: data.rotation\n },\n parent: this.parent,\n elements: [this]\n });\n this.parent.div.append(popup.render());\n }\n render() {\n (0, _util.unreachable)(\"Abstract method `AnnotationElement.render` called\");\n }\n _getElementsByName(name, skipId = null) {\n const fields = [];\n if (this._fieldObjects) {\n const fieldObj = this._fieldObjects[name];\n if (fieldObj) {\n for (const {\n page,\n id,\n exportValues\n } of fieldObj) {\n if (page === -1) {\n continue;\n }\n if (id === skipId) {\n continue;\n }\n const exportValue = typeof exportValues === \"string\" ? exportValues : null;\n const domElement = document.querySelector(`[data-element-id=\"${id}\"]`);\n if (domElement && !GetElementsByNameSet.has(domElement)) {\n (0, _util.warn)(`_getElementsByName - element not allowed: ${id}`);\n continue;\n }\n fields.push({\n id,\n exportValue,\n domElement\n });\n }\n }\n return fields;\n }\n for (const domElement of document.getElementsByName(name)) {\n const {\n exportValue\n } = domElement;\n const id = domElement.getAttribute(\"data-element-id\");\n if (id === skipId) {\n continue;\n }\n if (!GetElementsByNameSet.has(domElement)) {\n continue;\n }\n fields.push({\n id,\n exportValue,\n domElement\n });\n }\n return fields;\n }\n show() {\n if (this.container) {\n this.container.hidden = false;\n }\n this.popup?.maybeShow();\n }\n hide() {\n if (this.container) {\n this.container.hidden = true;\n }\n this.popup?.forceHide();\n }\n getElementsToTriggerPopup() {\n return this.container;\n }\n addHighlightArea() {\n const triggers = this.getElementsToTriggerPopup();\n if (Array.isArray(triggers)) {\n for (const element of triggers) {\n element.classList.add(\"highlightArea\");\n }\n } else {\n triggers.classList.add(\"highlightArea\");\n }\n }\n _editOnDoubleClick() {\n const {\n annotationEditorType: mode,\n data: {\n id: editId\n }\n } = this;\n this.container.addEventListener(\"dblclick\", () => {\n this.linkService.eventBus?.dispatch(\"switchannotationeditormode\", {\n source: this,\n mode,\n editId\n });\n });\n }\n}\nclass LinkAnnotationElement extends AnnotationElement {\n constructor(parameters, options = null) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: !!options?.ignoreBorder,\n createQuadrilaterals: true\n });\n this.isTooltipOnly = parameters.data.isTooltipOnly;\n }\n render() {\n const {\n data,\n linkService\n } = this;\n const link = document.createElement(\"a\");\n link.setAttribute(\"data-element-id\", data.id);\n let isBound = false;\n if (data.url) {\n linkService.addLinkAttributes(link, data.url, data.newWindow);\n isBound = true;\n } else if (data.action) {\n this._bindNamedAction(link, data.action);\n isBound = true;\n } else if (data.attachment) {\n this._bindAttachment(link, data.attachment);\n isBound = true;\n } else if (data.setOCGState) {\n this.#bindSetOCGState(link, data.setOCGState);\n isBound = true;\n } else if (data.dest) {\n this._bindLink(link, data.dest);\n isBound = true;\n } else {\n if (data.actions && (data.actions.Action || data.actions[\"Mouse Up\"] || data.actions[\"Mouse Down\"]) && this.enableScripting && this.hasJSActions) {\n this._bindJSAction(link, data);\n isBound = true;\n }\n if (data.resetForm) {\n this._bindResetFormAction(link, data.resetForm);\n isBound = true;\n } else if (this.isTooltipOnly && !isBound) {\n this._bindLink(link, \"\");\n isBound = true;\n }\n }\n this.container.classList.add(\"linkAnnotation\");\n if (isBound) {\n this.container.append(link);\n }\n return this.container;\n }\n #setInternalLink() {\n this.container.setAttribute(\"data-internal-link\", \"\");\n }\n _bindLink(link, destination) {\n link.href = this.linkService.getDestinationHash(destination);\n link.onclick = () => {\n if (destination) {\n this.linkService.goToDestination(destination);\n }\n return false;\n };\n if (destination || destination === \"\") {\n this.#setInternalLink();\n }\n }\n _bindNamedAction(link, action) {\n link.href = this.linkService.getAnchorUrl(\"\");\n link.onclick = () => {\n this.linkService.executeNamedAction(action);\n return false;\n };\n this.#setInternalLink();\n }\n _bindAttachment(link, attachment) {\n link.href = this.linkService.getAnchorUrl(\"\");\n link.onclick = () => {\n this.downloadManager?.openOrDownloadData(this.container, attachment.content, attachment.filename);\n return false;\n };\n this.#setInternalLink();\n }\n #bindSetOCGState(link, action) {\n link.href = this.linkService.getAnchorUrl(\"\");\n link.onclick = () => {\n this.linkService.executeSetOCGState(action);\n return false;\n };\n this.#setInternalLink();\n }\n _bindJSAction(link, data) {\n link.href = this.linkService.getAnchorUrl(\"\");\n const map = new Map([[\"Action\", \"onclick\"], [\"Mouse Up\", \"onmouseup\"], [\"Mouse Down\", \"onmousedown\"]]);\n for (const name of Object.keys(data.actions)) {\n const jsName = map.get(name);\n if (!jsName) {\n continue;\n }\n link[jsName] = () => {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: data.id,\n name\n }\n });\n return false;\n };\n }\n if (!link.onclick) {\n link.onclick = () => false;\n }\n this.#setInternalLink();\n }\n _bindResetFormAction(link, resetForm) {\n const otherClickAction = link.onclick;\n if (!otherClickAction) {\n link.href = this.linkService.getAnchorUrl(\"\");\n }\n this.#setInternalLink();\n if (!this._fieldObjects) {\n (0, _util.warn)(`_bindResetFormAction - \"resetForm\" action not supported, ` + \"ensure that the `fieldObjects` parameter is provided.\");\n if (!otherClickAction) {\n link.onclick = () => false;\n }\n return;\n }\n link.onclick = () => {\n otherClickAction?.();\n const {\n fields: resetFormFields,\n refs: resetFormRefs,\n include\n } = resetForm;\n const allFields = [];\n if (resetFormFields.length !== 0 || resetFormRefs.length !== 0) {\n const fieldIds = new Set(resetFormRefs);\n for (const fieldName of resetFormFields) {\n const fields = this._fieldObjects[fieldName] || [];\n for (const {\n id\n } of fields) {\n fieldIds.add(id);\n }\n }\n for (const fields of Object.values(this._fieldObjects)) {\n for (const field of fields) {\n if (fieldIds.has(field.id) === include) {\n allFields.push(field);\n }\n }\n }\n } else {\n for (const fields of Object.values(this._fieldObjects)) {\n allFields.push(...fields);\n }\n }\n const storage = this.annotationStorage;\n const allIds = [];\n for (const field of allFields) {\n const {\n id\n } = field;\n allIds.push(id);\n switch (field.type) {\n case \"text\":\n {\n const value = field.defaultValue || \"\";\n storage.setValue(id, {\n value\n });\n break;\n }\n case \"checkbox\":\n case \"radiobutton\":\n {\n const value = field.defaultValue === field.exportValues;\n storage.setValue(id, {\n value\n });\n break;\n }\n case \"combobox\":\n case \"listbox\":\n {\n const value = field.defaultValue || \"\";\n storage.setValue(id, {\n value\n });\n break;\n }\n default:\n continue;\n }\n const domElement = document.querySelector(`[data-element-id=\"${id}\"]`);\n if (!domElement) {\n continue;\n } else if (!GetElementsByNameSet.has(domElement)) {\n (0, _util.warn)(`_bindResetFormAction - element not allowed: ${id}`);\n continue;\n }\n domElement.dispatchEvent(new Event(\"resetform\"));\n }\n if (this.enableScripting) {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: \"app\",\n ids: allIds,\n name: \"ResetForm\"\n }\n });\n }\n return false;\n };\n }\n}\nclass TextAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true\n });\n }\n render() {\n this.container.classList.add(\"textAnnotation\");\n const image = document.createElement(\"img\");\n image.src = this.imageResourcesPath + \"annotation-\" + this.data.name.toLowerCase() + \".svg\";\n image.alt = \"[{{type}} Annotation]\";\n image.dataset.l10nId = \"text_annotation_type\";\n image.dataset.l10nArgs = JSON.stringify({\n type: this.data.name\n });\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this.container.append(image);\n return this.container;\n }\n}\nclass WidgetAnnotationElement extends AnnotationElement {\n render() {\n if (this.data.alternativeText) {\n this.container.title = this.data.alternativeText;\n }\n return this.container;\n }\n showElementAndHideCanvas(element) {\n if (this.data.hasOwnCanvas) {\n if (element.previousSibling?.nodeName === \"CANVAS\") {\n element.previousSibling.hidden = true;\n }\n element.hidden = false;\n }\n }\n _getKeyModifier(event) {\n const {\n isWin,\n isMac\n } = _util.FeatureTest.platform;\n return isWin && event.ctrlKey || isMac && event.metaKey;\n }\n _setEventListener(element, elementData, baseName, eventName, valueGetter) {\n if (baseName.includes(\"mouse\")) {\n element.addEventListener(baseName, event => {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: this.data.id,\n name: eventName,\n value: valueGetter(event),\n shift: event.shiftKey,\n modifier: this._getKeyModifier(event)\n }\n });\n });\n } else {\n element.addEventListener(baseName, event => {\n if (baseName === \"blur\") {\n if (!elementData.focused || !event.relatedTarget) {\n return;\n }\n elementData.focused = false;\n } else if (baseName === \"focus\") {\n if (elementData.focused) {\n return;\n }\n elementData.focused = true;\n }\n if (!valueGetter) {\n return;\n }\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: this.data.id,\n name: eventName,\n value: valueGetter(event)\n }\n });\n });\n }\n }\n _setEventListeners(element, elementData, names, getter) {\n for (const [baseName, eventName] of names) {\n if (eventName === \"Action\" || this.data.actions?.[eventName]) {\n if (eventName === \"Focus\" || eventName === \"Blur\") {\n elementData ||= {\n focused: false\n };\n }\n this._setEventListener(element, elementData, baseName, eventName, getter);\n if (eventName === \"Focus\" && !this.data.actions?.Blur) {\n this._setEventListener(element, elementData, \"blur\", \"Blur\", null);\n } else if (eventName === \"Blur\" && !this.data.actions?.Focus) {\n this._setEventListener(element, elementData, \"focus\", \"Focus\", null);\n }\n }\n }\n }\n _setBackgroundColor(element) {\n const color = this.data.backgroundColor || null;\n element.style.backgroundColor = color === null ? \"transparent\" : _util.Util.makeHexColor(color[0], color[1], color[2]);\n }\n _setTextStyle(element) {\n const TEXT_ALIGNMENT = [\"left\", \"center\", \"right\"];\n const {\n fontColor\n } = this.data.defaultAppearanceData;\n const fontSize = this.data.defaultAppearanceData.fontSize || DEFAULT_FONT_SIZE;\n const style = element.style;\n let computedFontSize;\n const BORDER_SIZE = 2;\n const roundToOneDecimal = x => Math.round(10 * x) / 10;\n if (this.data.multiLine) {\n const height = Math.abs(this.data.rect[3] - this.data.rect[1] - BORDER_SIZE);\n const numberOfLines = Math.round(height / (_util.LINE_FACTOR * fontSize)) || 1;\n const lineHeight = height / numberOfLines;\n computedFontSize = Math.min(fontSize, roundToOneDecimal(lineHeight / _util.LINE_FACTOR));\n } else {\n const height = Math.abs(this.data.rect[3] - this.data.rect[1] - BORDER_SIZE);\n computedFontSize = Math.min(fontSize, roundToOneDecimal(height / _util.LINE_FACTOR));\n }\n style.fontSize = `calc(${computedFontSize}px * var(--scale-factor))`;\n style.color = _util.Util.makeHexColor(fontColor[0], fontColor[1], fontColor[2]);\n if (this.data.textAlignment !== null) {\n style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment];\n }\n }\n _setRequired(element, isRequired) {\n if (isRequired) {\n element.setAttribute(\"required\", true);\n } else {\n element.removeAttribute(\"required\");\n }\n element.setAttribute(\"aria-required\", isRequired);\n }\n}\nclass TextWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n const isRenderable = parameters.renderForms || !parameters.data.hasAppearance && !!parameters.data.fieldValue;\n super(parameters, {\n isRenderable\n });\n }\n setPropertyOnSiblings(base, key, value, keyInStorage) {\n const storage = this.annotationStorage;\n for (const element of this._getElementsByName(base.name, base.id)) {\n if (element.domElement) {\n element.domElement[key] = value;\n }\n storage.setValue(element.id, {\n [keyInStorage]: value\n });\n }\n }\n render() {\n const storage = this.annotationStorage;\n const id = this.data.id;\n this.container.classList.add(\"textWidgetAnnotation\");\n let element = null;\n if (this.renderForms) {\n const storedData = storage.getValue(id, {\n value: this.data.fieldValue\n });\n let textContent = storedData.value || \"\";\n const maxLen = storage.getValue(id, {\n charLimit: this.data.maxLen\n }).charLimit;\n if (maxLen && textContent.length > maxLen) {\n textContent = textContent.slice(0, maxLen);\n }\n let fieldFormattedValues = storedData.formattedValue || this.data.textContent?.join(\"\\n\") || null;\n if (fieldFormattedValues && this.data.comb) {\n fieldFormattedValues = fieldFormattedValues.replaceAll(/\\s+/g, \"\");\n }\n const elementData = {\n userValue: textContent,\n formattedValue: fieldFormattedValues,\n lastCommittedValue: null,\n commitKey: 1,\n focused: false\n };\n if (this.data.multiLine) {\n element = document.createElement(\"textarea\");\n element.textContent = fieldFormattedValues ?? textContent;\n if (this.data.doNotScroll) {\n element.style.overflowY = \"hidden\";\n }\n } else {\n element = document.createElement(\"input\");\n element.type = \"text\";\n element.setAttribute(\"value\", fieldFormattedValues ?? textContent);\n if (this.data.doNotScroll) {\n element.style.overflowX = \"hidden\";\n }\n }\n if (this.data.hasOwnCanvas) {\n element.hidden = true;\n }\n GetElementsByNameSet.add(element);\n element.setAttribute(\"data-element-id\", id);\n element.disabled = this.data.readOnly;\n element.name = this.data.fieldName;\n element.tabIndex = DEFAULT_TAB_INDEX;\n this._setRequired(element, this.data.required);\n if (maxLen) {\n element.maxLength = maxLen;\n }\n element.addEventListener(\"input\", event => {\n storage.setValue(id, {\n value: event.target.value\n });\n this.setPropertyOnSiblings(element, \"value\", event.target.value, \"value\");\n elementData.formattedValue = null;\n });\n element.addEventListener(\"resetform\", event => {\n const defaultValue = this.data.defaultFieldValue ?? \"\";\n element.value = elementData.userValue = defaultValue;\n elementData.formattedValue = null;\n });\n let blurListener = event => {\n const {\n formattedValue\n } = elementData;\n if (formattedValue !== null && formattedValue !== undefined) {\n event.target.value = formattedValue;\n }\n event.target.scrollLeft = 0;\n };\n if (this.enableScripting && this.hasJSActions) {\n element.addEventListener(\"focus\", event => {\n if (elementData.focused) {\n return;\n }\n const {\n target\n } = event;\n if (elementData.userValue) {\n target.value = elementData.userValue;\n }\n elementData.lastCommittedValue = target.value;\n elementData.commitKey = 1;\n elementData.focused = true;\n });\n element.addEventListener(\"updatefromsandbox\", jsEvent => {\n this.showElementAndHideCanvas(jsEvent.target);\n const actions = {\n value(event) {\n elementData.userValue = event.detail.value ?? \"\";\n storage.setValue(id, {\n value: elementData.userValue.toString()\n });\n event.target.value = elementData.userValue;\n },\n formattedValue(event) {\n const {\n formattedValue\n } = event.detail;\n elementData.formattedValue = formattedValue;\n if (formattedValue !== null && formattedValue !== undefined && event.target !== document.activeElement) {\n event.target.value = formattedValue;\n }\n storage.setValue(id, {\n formattedValue\n });\n },\n selRange(event) {\n event.target.setSelectionRange(...event.detail.selRange);\n },\n charLimit: event => {\n const {\n charLimit\n } = event.detail;\n const {\n target\n } = event;\n if (charLimit === 0) {\n target.removeAttribute(\"maxLength\");\n return;\n }\n target.setAttribute(\"maxLength\", charLimit);\n let value = elementData.userValue;\n if (!value || value.length <= charLimit) {\n return;\n }\n value = value.slice(0, charLimit);\n target.value = elementData.userValue = value;\n storage.setValue(id, {\n value\n });\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n willCommit: true,\n commitKey: 1,\n selStart: target.selectionStart,\n selEnd: target.selectionEnd\n }\n });\n }\n };\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n element.addEventListener(\"keydown\", event => {\n elementData.commitKey = 1;\n let commitKey = -1;\n if (event.key === \"Escape\") {\n commitKey = 0;\n } else if (event.key === \"Enter\" && !this.data.multiLine) {\n commitKey = 2;\n } else if (event.key === \"Tab\") {\n elementData.commitKey = 3;\n }\n if (commitKey === -1) {\n return;\n }\n const {\n value\n } = event.target;\n if (elementData.lastCommittedValue === value) {\n return;\n }\n elementData.lastCommittedValue = value;\n elementData.userValue = value;\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n willCommit: true,\n commitKey,\n selStart: event.target.selectionStart,\n selEnd: event.target.selectionEnd\n }\n });\n });\n const _blurListener = blurListener;\n blurListener = null;\n element.addEventListener(\"blur\", event => {\n if (!elementData.focused || !event.relatedTarget) {\n return;\n }\n elementData.focused = false;\n const {\n value\n } = event.target;\n elementData.userValue = value;\n if (elementData.lastCommittedValue !== value) {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n willCommit: true,\n commitKey: elementData.commitKey,\n selStart: event.target.selectionStart,\n selEnd: event.target.selectionEnd\n }\n });\n }\n _blurListener(event);\n });\n if (this.data.actions?.Keystroke) {\n element.addEventListener(\"beforeinput\", event => {\n elementData.lastCommittedValue = null;\n const {\n data,\n target\n } = event;\n const {\n value,\n selectionStart,\n selectionEnd\n } = target;\n let selStart = selectionStart,\n selEnd = selectionEnd;\n switch (event.inputType) {\n case \"deleteWordBackward\":\n {\n const match = value.substring(0, selectionStart).match(/\\w*[^\\w]*$/);\n if (match) {\n selStart -= match[0].length;\n }\n break;\n }\n case \"deleteWordForward\":\n {\n const match = value.substring(selectionStart).match(/^[^\\w]*\\w*/);\n if (match) {\n selEnd += match[0].length;\n }\n break;\n }\n case \"deleteContentBackward\":\n if (selectionStart === selectionEnd) {\n selStart -= 1;\n }\n break;\n case \"deleteContentForward\":\n if (selectionStart === selectionEnd) {\n selEnd += 1;\n }\n break;\n }\n event.preventDefault();\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n change: data || \"\",\n willCommit: false,\n selStart,\n selEnd\n }\n });\n });\n }\n this._setEventListeners(element, elementData, [[\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], event => event.target.value);\n }\n if (blurListener) {\n element.addEventListener(\"blur\", blurListener);\n }\n if (this.data.comb) {\n const fieldWidth = this.data.rect[2] - this.data.rect[0];\n const combWidth = fieldWidth / maxLen;\n element.classList.add(\"comb\");\n element.style.letterSpacing = `calc(${combWidth}px * var(--scale-factor) - 1ch)`;\n }\n } else {\n element = document.createElement(\"div\");\n element.textContent = this.data.fieldValue;\n element.style.verticalAlign = \"middle\";\n element.style.display = \"table-cell\";\n }\n this._setTextStyle(element);\n this._setBackgroundColor(element);\n this._setDefaultPropertiesFromJS(element);\n this.container.append(element);\n return this.container;\n }\n}\nclass SignatureWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: !!parameters.data.hasOwnCanvas\n });\n }\n}\nclass CheckboxWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: parameters.renderForms\n });\n }\n render() {\n const storage = this.annotationStorage;\n const data = this.data;\n const id = data.id;\n let value = storage.getValue(id, {\n value: data.exportValue === data.fieldValue\n }).value;\n if (typeof value === \"string\") {\n value = value !== \"Off\";\n storage.setValue(id, {\n value\n });\n }\n this.container.classList.add(\"buttonWidgetAnnotation\", \"checkBox\");\n const element = document.createElement(\"input\");\n GetElementsByNameSet.add(element);\n element.setAttribute(\"data-element-id\", id);\n element.disabled = data.readOnly;\n this._setRequired(element, this.data.required);\n element.type = \"checkbox\";\n element.name = data.fieldName;\n if (value) {\n element.setAttribute(\"checked\", true);\n }\n element.setAttribute(\"exportValue\", data.exportValue);\n element.tabIndex = DEFAULT_TAB_INDEX;\n element.addEventListener(\"change\", event => {\n const {\n name,\n checked\n } = event.target;\n for (const checkbox of this._getElementsByName(name, id)) {\n const curChecked = checked && checkbox.exportValue === data.exportValue;\n if (checkbox.domElement) {\n checkbox.domElement.checked = curChecked;\n }\n storage.setValue(checkbox.id, {\n value: curChecked\n });\n }\n storage.setValue(id, {\n value: checked\n });\n });\n element.addEventListener(\"resetform\", event => {\n const defaultValue = data.defaultFieldValue || \"Off\";\n event.target.checked = defaultValue === data.exportValue;\n });\n if (this.enableScripting && this.hasJSActions) {\n element.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value(event) {\n event.target.checked = event.detail.value !== \"Off\";\n storage.setValue(id, {\n value: event.target.checked\n });\n }\n };\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n this._setEventListeners(element, null, [[\"change\", \"Validate\"], [\"change\", \"Action\"], [\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], event => event.target.checked);\n }\n this._setBackgroundColor(element);\n this._setDefaultPropertiesFromJS(element);\n this.container.append(element);\n return this.container;\n }\n}\nclass RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: parameters.renderForms\n });\n }\n render() {\n this.container.classList.add(\"buttonWidgetAnnotation\", \"radioButton\");\n const storage = this.annotationStorage;\n const data = this.data;\n const id = data.id;\n let value = storage.getValue(id, {\n value: data.fieldValue === data.buttonValue\n }).value;\n if (typeof value === \"string\") {\n value = value !== data.buttonValue;\n storage.setValue(id, {\n value\n });\n }\n const element = document.createElement(\"input\");\n GetElementsByNameSet.add(element);\n element.setAttribute(\"data-element-id\", id);\n element.disabled = data.readOnly;\n this._setRequired(element, this.data.required);\n element.type = \"radio\";\n element.name = data.fieldName;\n if (value) {\n element.setAttribute(\"checked\", true);\n }\n element.tabIndex = DEFAULT_TAB_INDEX;\n element.addEventListener(\"change\", event => {\n const {\n name,\n checked\n } = event.target;\n for (const radio of this._getElementsByName(name, id)) {\n storage.setValue(radio.id, {\n value: false\n });\n }\n storage.setValue(id, {\n value: checked\n });\n });\n element.addEventListener(\"resetform\", event => {\n const defaultValue = data.defaultFieldValue;\n event.target.checked = defaultValue !== null && defaultValue !== undefined && defaultValue === data.buttonValue;\n });\n if (this.enableScripting && this.hasJSActions) {\n const pdfButtonValue = data.buttonValue;\n element.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value: event => {\n const checked = pdfButtonValue === event.detail.value;\n for (const radio of this._getElementsByName(event.target.name)) {\n const curChecked = checked && radio.id === id;\n if (radio.domElement) {\n radio.domElement.checked = curChecked;\n }\n storage.setValue(radio.id, {\n value: curChecked\n });\n }\n }\n };\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n this._setEventListeners(element, null, [[\"change\", \"Validate\"], [\"change\", \"Action\"], [\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], event => event.target.checked);\n }\n this._setBackgroundColor(element);\n this._setDefaultPropertiesFromJS(element);\n this.container.append(element);\n return this.container;\n }\n}\nclass PushButtonWidgetAnnotationElement extends LinkAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n ignoreBorder: parameters.data.hasAppearance\n });\n }\n render() {\n const container = super.render();\n container.classList.add(\"buttonWidgetAnnotation\", \"pushButton\");\n if (this.data.alternativeText) {\n container.title = this.data.alternativeText;\n }\n const linkElement = container.lastChild;\n if (this.enableScripting && this.hasJSActions && linkElement) {\n this._setDefaultPropertiesFromJS(linkElement);\n linkElement.addEventListener(\"updatefromsandbox\", jsEvent => {\n this._dispatchEventFromSandbox({}, jsEvent);\n });\n }\n return container;\n }\n}\nclass ChoiceWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: parameters.renderForms\n });\n }\n render() {\n this.container.classList.add(\"choiceWidgetAnnotation\");\n const storage = this.annotationStorage;\n const id = this.data.id;\n const storedData = storage.getValue(id, {\n value: this.data.fieldValue\n });\n const selectElement = document.createElement(\"select\");\n GetElementsByNameSet.add(selectElement);\n selectElement.setAttribute(\"data-element-id\", id);\n selectElement.disabled = this.data.readOnly;\n this._setRequired(selectElement, this.data.required);\n selectElement.name = this.data.fieldName;\n selectElement.tabIndex = DEFAULT_TAB_INDEX;\n let addAnEmptyEntry = this.data.combo && this.data.options.length > 0;\n if (!this.data.combo) {\n selectElement.size = this.data.options.length;\n if (this.data.multiSelect) {\n selectElement.multiple = true;\n }\n }\n selectElement.addEventListener(\"resetform\", event => {\n const defaultValue = this.data.defaultFieldValue;\n for (const option of selectElement.options) {\n option.selected = option.value === defaultValue;\n }\n });\n for (const option of this.data.options) {\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = option.displayValue;\n optionElement.value = option.exportValue;\n if (storedData.value.includes(option.exportValue)) {\n optionElement.setAttribute(\"selected\", true);\n addAnEmptyEntry = false;\n }\n selectElement.append(optionElement);\n }\n let removeEmptyEntry = null;\n if (addAnEmptyEntry) {\n const noneOptionElement = document.createElement(\"option\");\n noneOptionElement.value = \" \";\n noneOptionElement.setAttribute(\"hidden\", true);\n noneOptionElement.setAttribute(\"selected\", true);\n selectElement.prepend(noneOptionElement);\n removeEmptyEntry = () => {\n noneOptionElement.remove();\n selectElement.removeEventListener(\"input\", removeEmptyEntry);\n removeEmptyEntry = null;\n };\n selectElement.addEventListener(\"input\", removeEmptyEntry);\n }\n const getValue = isExport => {\n const name = isExport ? \"value\" : \"textContent\";\n const {\n options,\n multiple\n } = selectElement;\n if (!multiple) {\n return options.selectedIndex === -1 ? null : options[options.selectedIndex][name];\n }\n return Array.prototype.filter.call(options, option => option.selected).map(option => option[name]);\n };\n let selectedValues = getValue(false);\n const getItems = event => {\n const options = event.target.options;\n return Array.prototype.map.call(options, option => {\n return {\n displayValue: option.textContent,\n exportValue: option.value\n };\n });\n };\n if (this.enableScripting && this.hasJSActions) {\n selectElement.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value(event) {\n removeEmptyEntry?.();\n const value = event.detail.value;\n const values = new Set(Array.isArray(value) ? value : [value]);\n for (const option of selectElement.options) {\n option.selected = values.has(option.value);\n }\n storage.setValue(id, {\n value: getValue(true)\n });\n selectedValues = getValue(false);\n },\n multipleSelection(event) {\n selectElement.multiple = true;\n },\n remove(event) {\n const options = selectElement.options;\n const index = event.detail.remove;\n options[index].selected = false;\n selectElement.remove(index);\n if (options.length > 0) {\n const i = Array.prototype.findIndex.call(options, option => option.selected);\n if (i === -1) {\n options[0].selected = true;\n }\n }\n storage.setValue(id, {\n value: getValue(true),\n items: getItems(event)\n });\n selectedValues = getValue(false);\n },\n clear(event) {\n while (selectElement.length !== 0) {\n selectElement.remove(0);\n }\n storage.setValue(id, {\n value: null,\n items: []\n });\n selectedValues = getValue(false);\n },\n insert(event) {\n const {\n index,\n displayValue,\n exportValue\n } = event.detail.insert;\n const selectChild = selectElement.children[index];\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = displayValue;\n optionElement.value = exportValue;\n if (selectChild) {\n selectChild.before(optionElement);\n } else {\n selectElement.append(optionElement);\n }\n storage.setValue(id, {\n value: getValue(true),\n items: getItems(event)\n });\n selectedValues = getValue(false);\n },\n items(event) {\n const {\n items\n } = event.detail;\n while (selectElement.length !== 0) {\n selectElement.remove(0);\n }\n for (const item of items) {\n const {\n displayValue,\n exportValue\n } = item;\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = displayValue;\n optionElement.value = exportValue;\n selectElement.append(optionElement);\n }\n if (selectElement.options.length > 0) {\n selectElement.options[0].selected = true;\n }\n storage.setValue(id, {\n value: getValue(true),\n items: getItems(event)\n });\n selectedValues = getValue(false);\n },\n indices(event) {\n const indices = new Set(event.detail.indices);\n for (const option of event.target.options) {\n option.selected = indices.has(option.index);\n }\n storage.setValue(id, {\n value: getValue(true)\n });\n selectedValues = getValue(false);\n },\n editable(event) {\n event.target.disabled = !event.detail.editable;\n }\n };\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n selectElement.addEventListener(\"input\", event => {\n const exportValue = getValue(true);\n storage.setValue(id, {\n value: exportValue\n });\n event.preventDefault();\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value: selectedValues,\n changeEx: exportValue,\n willCommit: false,\n commitKey: 1,\n keyDown: false\n }\n });\n });\n this._setEventListeners(selectElement, null, [[\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"], [\"input\", \"Action\"], [\"input\", \"Validate\"]], event => event.target.value);\n } else {\n selectElement.addEventListener(\"input\", function (event) {\n storage.setValue(id, {\n value: getValue(true)\n });\n });\n }\n if (this.data.combo) {\n this._setTextStyle(selectElement);\n } else {}\n this._setBackgroundColor(selectElement);\n this._setDefaultPropertiesFromJS(selectElement);\n this.container.append(selectElement);\n return this.container;\n }\n}\nclass PopupAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const {\n data,\n elements\n } = parameters;\n super(parameters, {\n isRenderable: AnnotationElement._hasPopupData(data)\n });\n this.elements = elements;\n }\n render() {\n this.container.classList.add(\"popupAnnotation\");\n const popup = new PopupElement({\n container: this.container,\n color: this.data.color,\n titleObj: this.data.titleObj,\n modificationDate: this.data.modificationDate,\n contentsObj: this.data.contentsObj,\n richText: this.data.richText,\n rect: this.data.rect,\n parentRect: this.data.parentRect || null,\n parent: this.parent,\n elements: this.elements,\n open: this.data.open\n });\n const elementIds = [];\n for (const element of this.elements) {\n element.popup = popup;\n elementIds.push(element.data.id);\n element.addHighlightArea();\n }\n this.container.setAttribute(\"aria-controls\", elementIds.map(id => `${_util.AnnotationPrefix}${id}`).join(\",\"));\n return this.container;\n }\n}\nclass PopupElement {\n #dateTimePromise = null;\n #boundKeyDown = this.#keyDown.bind(this);\n #boundHide = this.#hide.bind(this);\n #boundShow = this.#show.bind(this);\n #boundToggle = this.#toggle.bind(this);\n #color = null;\n #container = null;\n #contentsObj = null;\n #elements = null;\n #parent = null;\n #parentRect = null;\n #pinned = false;\n #popup = null;\n #rect = null;\n #richText = null;\n #titleObj = null;\n #wasVisible = false;\n constructor({\n container,\n color,\n elements,\n titleObj,\n modificationDate,\n contentsObj,\n richText,\n parent,\n rect,\n parentRect,\n open\n }) {\n this.#container = container;\n this.#titleObj = titleObj;\n this.#contentsObj = contentsObj;\n this.#richText = richText;\n this.#parent = parent;\n this.#color = color;\n this.#rect = rect;\n this.#parentRect = parentRect;\n this.#elements = elements;\n const dateObject = _display_utils.PDFDateString.toDateObject(modificationDate);\n if (dateObject) {\n this.#dateTimePromise = parent.l10n.get(\"annotation_date_string\", {\n date: dateObject.toLocaleDateString(),\n time: dateObject.toLocaleTimeString()\n });\n }\n this.trigger = elements.flatMap(e => e.getElementsToTriggerPopup());\n for (const element of this.trigger) {\n element.addEventListener(\"click\", this.#boundToggle);\n element.addEventListener(\"mouseenter\", this.#boundShow);\n element.addEventListener(\"mouseleave\", this.#boundHide);\n element.classList.add(\"popupTriggerArea\");\n }\n for (const element of elements) {\n element.container?.addEventListener(\"keydown\", this.#boundKeyDown);\n }\n this.#container.hidden = true;\n if (open) {\n this.#toggle();\n }\n }\n render() {\n if (this.#popup) {\n return;\n }\n const {\n page: {\n view\n },\n viewport: {\n rawDims: {\n pageWidth,\n pageHeight,\n pageX,\n pageY\n }\n }\n } = this.#parent;\n const popup = this.#popup = document.createElement(\"div\");\n popup.className = \"popup\";\n if (this.#color) {\n const baseColor = popup.style.outlineColor = _util.Util.makeHexColor(...this.#color);\n if (CSS.supports(\"background-color\", \"color-mix(in srgb, red 30%, white)\")) {\n popup.style.backgroundColor = `color-mix(in srgb, ${baseColor} 30%, white)`;\n } else {\n const BACKGROUND_ENLIGHT = 0.7;\n popup.style.backgroundColor = _util.Util.makeHexColor(...this.#color.map(c => Math.floor(BACKGROUND_ENLIGHT * (255 - c) + c)));\n }\n }\n const header = document.createElement(\"span\");\n header.className = \"header\";\n const title = document.createElement(\"h1\");\n header.append(title);\n ({\n dir: title.dir,\n str: title.textContent\n } = this.#titleObj);\n popup.append(header);\n if (this.#dateTimePromise) {\n const modificationDate = document.createElement(\"span\");\n modificationDate.classList.add(\"popupDate\");\n this.#dateTimePromise.then(localized => {\n modificationDate.textContent = localized;\n });\n header.append(modificationDate);\n }\n const contentsObj = this.#contentsObj;\n const richText = this.#richText;\n if (richText?.str && (!contentsObj?.str || contentsObj.str === richText.str)) {\n _xfa_layer.XfaLayer.render({\n xfaHtml: richText.html,\n intent: \"richText\",\n div: popup\n });\n popup.lastChild.classList.add(\"richText\", \"popupContent\");\n } else {\n const contents = this._formatContents(contentsObj);\n popup.append(contents);\n }\n let useParentRect = !!this.#parentRect;\n let rect = useParentRect ? this.#parentRect : this.#rect;\n for (const element of this.#elements) {\n if (!rect || _util.Util.intersect(element.data.rect, rect) !== null) {\n rect = element.data.rect;\n useParentRect = true;\n break;\n }\n }\n const normalizedRect = _util.Util.normalizeRect([rect[0], view[3] - rect[1] + view[1], rect[2], view[3] - rect[3] + view[1]]);\n const HORIZONTAL_SPACE_AFTER_ANNOTATION = 5;\n const parentWidth = useParentRect ? rect[2] - rect[0] + HORIZONTAL_SPACE_AFTER_ANNOTATION : 0;\n const popupLeft = normalizedRect[0] + parentWidth;\n const popupTop = normalizedRect[1];\n const {\n style\n } = this.#container;\n style.left = `${100 * (popupLeft - pageX) / pageWidth}%`;\n style.top = `${100 * (popupTop - pageY) / pageHeight}%`;\n this.#container.append(popup);\n }\n _formatContents({\n str,\n dir\n }) {\n const p = document.createElement(\"p\");\n p.classList.add(\"popupContent\");\n p.dir = dir;\n const lines = str.split(/(?:\\r\\n?|\\n)/);\n for (let i = 0, ii = lines.length; i < ii; ++i) {\n const line = lines[i];\n p.append(document.createTextNode(line));\n if (i < ii - 1) {\n p.append(document.createElement(\"br\"));\n }\n }\n return p;\n }\n #keyDown(event) {\n if (event.altKey || event.shiftKey || event.ctrlKey || event.metaKey) {\n return;\n }\n if (event.key === \"Enter\" || event.key === \"Escape\" && this.#pinned) {\n this.#toggle();\n }\n }\n #toggle() {\n this.#pinned = !this.#pinned;\n if (this.#pinned) {\n this.#show();\n this.#container.addEventListener(\"click\", this.#boundToggle);\n this.#container.addEventListener(\"keydown\", this.#boundKeyDown);\n } else {\n this.#hide();\n this.#container.removeEventListener(\"click\", this.#boundToggle);\n this.#container.removeEventListener(\"keydown\", this.#boundKeyDown);\n }\n }\n #show() {\n if (!this.#popup) {\n this.render();\n }\n if (!this.isVisible) {\n this.#container.hidden = false;\n this.#container.style.zIndex = parseInt(this.#container.style.zIndex) + 1000;\n } else if (this.#pinned) {\n this.#container.classList.add(\"focused\");\n }\n }\n #hide() {\n this.#container.classList.remove(\"focused\");\n if (this.#pinned || !this.isVisible) {\n return;\n }\n this.#container.hidden = true;\n this.#container.style.zIndex = parseInt(this.#container.style.zIndex) - 1000;\n }\n forceHide() {\n this.#wasVisible = this.isVisible;\n if (!this.#wasVisible) {\n return;\n }\n this.#container.hidden = true;\n }\n maybeShow() {\n if (!this.#wasVisible) {\n return;\n }\n this.#wasVisible = false;\n this.#container.hidden = false;\n }\n get isVisible() {\n return this.#container.hidden === false;\n }\n}\nclass FreeTextAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n this.textContent = parameters.data.textContent;\n this.textPosition = parameters.data.textPosition;\n this.annotationEditorType = _util.AnnotationEditorType.FREETEXT;\n }\n render() {\n this.container.classList.add(\"freeTextAnnotation\");\n if (this.textContent) {\n const content = document.createElement(\"div\");\n content.classList.add(\"annotationTextContent\");\n content.setAttribute(\"role\", \"comment\");\n for (const line of this.textContent) {\n const lineSpan = document.createElement(\"span\");\n lineSpan.textContent = line;\n content.append(lineSpan);\n }\n this.container.append(content);\n }\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this._editOnDoubleClick();\n return this.container;\n }\n}\nexports.FreeTextAnnotationElement = FreeTextAnnotationElement;\nclass LineAnnotationElement extends AnnotationElement {\n #line = null;\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n }\n render() {\n this.container.classList.add(\"lineAnnotation\");\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n const line = this.#line = this.svgFactory.createElement(\"svg:line\");\n line.setAttribute(\"x1\", data.rect[2] - data.lineCoordinates[0]);\n line.setAttribute(\"y1\", data.rect[3] - data.lineCoordinates[1]);\n line.setAttribute(\"x2\", data.rect[2] - data.lineCoordinates[2]);\n line.setAttribute(\"y2\", data.rect[3] - data.lineCoordinates[3]);\n line.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n line.setAttribute(\"stroke\", \"transparent\");\n line.setAttribute(\"fill\", \"transparent\");\n svg.append(line);\n this.container.append(svg);\n if (!data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n return this.container;\n }\n getElementsToTriggerPopup() {\n return this.#line;\n }\n addHighlightArea() {\n this.container.classList.add(\"highlightArea\");\n }\n}\nclass SquareAnnotationElement extends AnnotationElement {\n #square = null;\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n }\n render() {\n this.container.classList.add(\"squareAnnotation\");\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n const borderWidth = data.borderStyle.width;\n const square = this.#square = this.svgFactory.createElement(\"svg:rect\");\n square.setAttribute(\"x\", borderWidth / 2);\n square.setAttribute(\"y\", borderWidth / 2);\n square.setAttribute(\"width\", width - borderWidth);\n square.setAttribute(\"height\", height - borderWidth);\n square.setAttribute(\"stroke-width\", borderWidth || 1);\n square.setAttribute(\"stroke\", \"transparent\");\n square.setAttribute(\"fill\", \"transparent\");\n svg.append(square);\n this.container.append(svg);\n if (!data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n return this.container;\n }\n getElementsToTriggerPopup() {\n return this.#square;\n }\n addHighlightArea() {\n this.container.classList.add(\"highlightArea\");\n }\n}\nclass CircleAnnotationElement extends AnnotationElement {\n #circle = null;\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n }\n render() {\n this.container.classList.add(\"circleAnnotation\");\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n const borderWidth = data.borderStyle.width;\n const circle = this.#circle = this.svgFactory.createElement(\"svg:ellipse\");\n circle.setAttribute(\"cx\", width / 2);\n circle.setAttribute(\"cy\", height / 2);\n circle.setAttribute(\"rx\", width / 2 - borderWidth / 2);\n circle.setAttribute(\"ry\", height / 2 - borderWidth / 2);\n circle.setAttribute(\"stroke-width\", borderWidth || 1);\n circle.setAttribute(\"stroke\", \"transparent\");\n circle.setAttribute(\"fill\", \"transparent\");\n svg.append(circle);\n this.container.append(svg);\n if (!data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n return this.container;\n }\n getElementsToTriggerPopup() {\n return this.#circle;\n }\n addHighlightArea() {\n this.container.classList.add(\"highlightArea\");\n }\n}\nclass PolylineAnnotationElement extends AnnotationElement {\n #polyline = null;\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n this.containerClassName = \"polylineAnnotation\";\n this.svgElementName = \"svg:polyline\";\n }\n render() {\n this.container.classList.add(this.containerClassName);\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n let points = [];\n for (const coordinate of data.vertices) {\n const x = coordinate.x - data.rect[0];\n const y = data.rect[3] - coordinate.y;\n points.push(x + \",\" + y);\n }\n points = points.join(\" \");\n const polyline = this.#polyline = this.svgFactory.createElement(this.svgElementName);\n polyline.setAttribute(\"points\", points);\n polyline.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n polyline.setAttribute(\"stroke\", \"transparent\");\n polyline.setAttribute(\"fill\", \"transparent\");\n svg.append(polyline);\n this.container.append(svg);\n if (!data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n return this.container;\n }\n getElementsToTriggerPopup() {\n return this.#polyline;\n }\n addHighlightArea() {\n this.container.classList.add(\"highlightArea\");\n }\n}\nclass PolygonAnnotationElement extends PolylineAnnotationElement {\n constructor(parameters) {\n super(parameters);\n this.containerClassName = \"polygonAnnotation\";\n this.svgElementName = \"svg:polygon\";\n }\n}\nclass CaretAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n }\n render() {\n this.container.classList.add(\"caretAnnotation\");\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n return this.container;\n }\n}\nclass InkAnnotationElement extends AnnotationElement {\n #polylines = [];\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n this.containerClassName = \"inkAnnotation\";\n this.svgElementName = \"svg:polyline\";\n this.annotationEditorType = _util.AnnotationEditorType.INK;\n }\n render() {\n this.container.classList.add(this.containerClassName);\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n for (const inkList of data.inkLists) {\n let points = [];\n for (const coordinate of inkList) {\n const x = coordinate.x - data.rect[0];\n const y = data.rect[3] - coordinate.y;\n points.push(`${x},${y}`);\n }\n points = points.join(\" \");\n const polyline = this.svgFactory.createElement(this.svgElementName);\n this.#polylines.push(polyline);\n polyline.setAttribute(\"points\", points);\n polyline.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n polyline.setAttribute(\"stroke\", \"transparent\");\n polyline.setAttribute(\"fill\", \"transparent\");\n if (!data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n svg.append(polyline);\n }\n this.container.append(svg);\n return this.container;\n }\n getElementsToTriggerPopup() {\n return this.#polylines;\n }\n addHighlightArea() {\n this.container.classList.add(\"highlightArea\");\n }\n}\nexports.InkAnnotationElement = InkAnnotationElement;\nclass HighlightAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n render() {\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this.container.classList.add(\"highlightAnnotation\");\n return this.container;\n }\n}\nclass UnderlineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n render() {\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this.container.classList.add(\"underlineAnnotation\");\n return this.container;\n }\n}\nclass SquigglyAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n render() {\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this.container.classList.add(\"squigglyAnnotation\");\n return this.container;\n }\n}\nclass StrikeOutAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n render() {\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n this.container.classList.add(\"strikeoutAnnotation\");\n return this.container;\n }\n}\nclass StampAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: true\n });\n }\n render() {\n this.container.classList.add(\"stampAnnotation\");\n if (!this.data.popupRef && this.hasPopupData) {\n this._createPopup();\n }\n return this.container;\n }\n}\nexports.StampAnnotationElement = StampAnnotationElement;\nclass FileAttachmentAnnotationElement extends AnnotationElement {\n #trigger = null;\n constructor(parameters) {\n super(parameters, {\n isRenderable: true\n });\n const {\n filename,\n content\n } = this.data.file;\n this.filename = (0, _display_utils.getFilenameFromUrl)(filename, true);\n this.content = content;\n this.linkService.eventBus?.dispatch(\"fileattachmentannotation\", {\n source: this,\n filename,\n content\n });\n }\n render() {\n this.container.classList.add(\"fileAttachmentAnnotation\");\n const {\n container,\n data\n } = this;\n let trigger;\n if (data.hasAppearance || data.fillAlpha === 0) {\n trigger = document.createElement(\"div\");\n } else {\n trigger = document.createElement(\"img\");\n trigger.src = `${this.imageResourcesPath}annotation-${/paperclip/i.test(data.name) ? \"paperclip\" : \"pushpin\"}.svg`;\n if (data.fillAlpha && data.fillAlpha < 1) {\n trigger.style = `filter: opacity(${Math.round(data.fillAlpha * 100)}%);`;\n }\n }\n trigger.addEventListener(\"dblclick\", this.#download.bind(this));\n this.#trigger = trigger;\n const {\n isMac\n } = _util.FeatureTest.platform;\n container.addEventListener(\"keydown\", evt => {\n if (evt.key === \"Enter\" && (isMac ? evt.metaKey : evt.ctrlKey)) {\n this.#download();\n }\n });\n if (!data.popupRef && this.hasPopupData) {\n this._createPopup();\n } else {\n trigger.classList.add(\"popupTriggerArea\");\n }\n container.append(trigger);\n return container;\n }\n getElementsToTriggerPopup() {\n return this.#trigger;\n }\n addHighlightArea() {\n this.container.classList.add(\"highlightArea\");\n }\n #download() {\n this.downloadManager?.openOrDownloadData(this.container, this.content, this.filename);\n }\n}\nclass AnnotationLayer {\n #accessibilityManager = null;\n #annotationCanvasMap = null;\n #editableAnnotations = new Map();\n constructor({\n div,\n accessibilityManager,\n annotationCanvasMap,\n l10n,\n page,\n viewport\n }) {\n this.div = div;\n this.#accessibilityManager = accessibilityManager;\n this.#annotationCanvasMap = annotationCanvasMap;\n this.l10n = l10n;\n this.page = page;\n this.viewport = viewport;\n this.zIndex = 0;\n this.l10n ||= _displayL10n_utils.NullL10n;\n }\n #appendElement(element, id) {\n const contentElement = element.firstChild || element;\n contentElement.id = `${_util.AnnotationPrefix}${id}`;\n this.div.append(element);\n this.#accessibilityManager?.moveElementInDOM(this.div, element, contentElement, false);\n }\n async render(params) {\n const {\n annotations\n } = params;\n const layer = this.div;\n (0, _display_utils.setLayerDimensions)(layer, this.viewport);\n const popupToElements = new Map();\n const elementParams = {\n data: null,\n layer,\n linkService: params.linkService,\n downloadManager: params.downloadManager,\n imageResourcesPath: params.imageResourcesPath || \"\",\n renderForms: params.renderForms !== false,\n svgFactory: new _display_utils.DOMSVGFactory(),\n annotationStorage: params.annotationStorage || new _annotation_storage.AnnotationStorage(),\n enableScripting: params.enableScripting === true,\n hasJSActions: params.hasJSActions,\n fieldObjects: params.fieldObjects,\n parent: this,\n elements: null\n };\n for (const data of annotations) {\n if (data.noHTML) {\n continue;\n }\n const isPopupAnnotation = data.annotationType === _util.AnnotationType.POPUP;\n if (!isPopupAnnotation) {\n const {\n width,\n height\n } = getRectDims(data.rect);\n if (width <= 0 || height <= 0) {\n continue;\n }\n } else {\n const elements = popupToElements.get(data.id);\n if (!elements) {\n continue;\n }\n elementParams.elements = elements;\n }\n elementParams.data = data;\n const element = AnnotationElementFactory.create(elementParams);\n if (!element.isRenderable) {\n continue;\n }\n if (!isPopupAnnotation && data.popupRef) {\n const elements = popupToElements.get(data.popupRef);\n if (!elements) {\n popupToElements.set(data.popupRef, [element]);\n } else {\n elements.push(element);\n }\n }\n if (element.annotationEditorType > 0) {\n this.#editableAnnotations.set(element.data.id, element);\n }\n const rendered = element.render();\n if (data.hidden) {\n rendered.style.visibility = \"hidden\";\n }\n this.#appendElement(rendered, data.id);\n }\n this.#setAnnotationCanvasMap();\n await this.l10n.translate(layer);\n }\n update({\n viewport\n }) {\n const layer = this.div;\n this.viewport = viewport;\n (0, _display_utils.setLayerDimensions)(layer, {\n rotation: viewport.rotation\n });\n this.#setAnnotationCanvasMap();\n layer.hidden = false;\n }\n #setAnnotationCanvasMap() {\n if (!this.#annotationCanvasMap) {\n return;\n }\n const layer = this.div;\n for (const [id, canvas] of this.#annotationCanvasMap) {\n const element = layer.querySelector(`[data-annotation-id=\"${id}\"]`);\n if (!element) {\n continue;\n }\n const {\n firstChild\n } = element;\n if (!firstChild) {\n element.append(canvas);\n } else if (firstChild.nodeName === \"CANVAS\") {\n firstChild.replaceWith(canvas);\n } else {\n firstChild.before(canvas);\n }\n }\n this.#annotationCanvasMap.clear();\n }\n getEditableAnnotations() {\n return Array.from(this.#editableAnnotations.values());\n }\n getEditableAnnotation(id) {\n return this.#editableAnnotations.get(id);\n }\n}\nexports.AnnotationLayer = AnnotationLayer;\n\n/***/ }),\n/* 30 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.ColorConverters = void 0;\nfunction makeColorComp(n) {\n return Math.floor(Math.max(0, Math.min(1, n)) * 255).toString(16).padStart(2, \"0\");\n}\nfunction scaleAndClamp(x) {\n return Math.max(0, Math.min(255, 255 * x));\n}\nclass ColorConverters {\n static CMYK_G([c, y, m, k]) {\n return [\"G\", 1 - Math.min(1, 0.3 * c + 0.59 * m + 0.11 * y + k)];\n }\n static G_CMYK([g]) {\n return [\"CMYK\", 0, 0, 0, 1 - g];\n }\n static G_RGB([g]) {\n return [\"RGB\", g, g, g];\n }\n static G_rgb([g]) {\n g = scaleAndClamp(g);\n return [g, g, g];\n }\n static G_HTML([g]) {\n const G = makeColorComp(g);\n return `#${G}${G}${G}`;\n }\n static RGB_G([r, g, b]) {\n return [\"G\", 0.3 * r + 0.59 * g + 0.11 * b];\n }\n static RGB_rgb(color) {\n return color.map(scaleAndClamp);\n }\n static RGB_HTML(color) {\n return `#${color.map(makeColorComp).join(\"\")}`;\n }\n static T_HTML() {\n return \"#00000000\";\n }\n static T_rgb() {\n return [null];\n }\n static CMYK_RGB([c, y, m, k]) {\n return [\"RGB\", 1 - Math.min(1, c + k), 1 - Math.min(1, m + k), 1 - Math.min(1, y + k)];\n }\n static CMYK_rgb([c, y, m, k]) {\n return [scaleAndClamp(1 - Math.min(1, c + k)), scaleAndClamp(1 - Math.min(1, m + k)), scaleAndClamp(1 - Math.min(1, y + k))];\n }\n static CMYK_HTML(components) {\n const rgb = this.CMYK_RGB(components).slice(1);\n return this.RGB_HTML(rgb);\n }\n static RGB_CMYK([r, g, b]) {\n const c = 1 - r;\n const m = 1 - g;\n const y = 1 - b;\n const k = Math.min(c, m, y);\n return [\"CMYK\", c, m, y, k];\n }\n}\nexports.ColorConverters = ColorConverters;\n\n/***/ }),\n/* 31 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.NullL10n = void 0;\nexports.getL10nFallback = getL10nFallback;\nconst DEFAULT_L10N_STRINGS = {\n of_pages: \"of {{pagesCount}}\",\n page_of_pages: \"({{pageNumber}} of {{pagesCount}})\",\n document_properties_kb: \"{{size_kb}} KB ({{size_b}} bytes)\",\n document_properties_mb: \"{{size_mb}} MB ({{size_b}} bytes)\",\n document_properties_date_string: \"{{date}}, {{time}}\",\n document_properties_page_size_unit_inches: \"in\",\n document_properties_page_size_unit_millimeters: \"mm\",\n document_properties_page_size_orientation_portrait: \"portrait\",\n document_properties_page_size_orientation_landscape: \"landscape\",\n document_properties_page_size_name_a3: \"A3\",\n document_properties_page_size_name_a4: \"A4\",\n document_properties_page_size_name_letter: \"Letter\",\n document_properties_page_size_name_legal: \"Legal\",\n document_properties_page_size_dimension_string: \"{{width}} × {{height}} {{unit}} ({{orientation}})\",\n document_properties_page_size_dimension_name_string: \"{{width}} × {{height}} {{unit}} ({{name}}, {{orientation}})\",\n document_properties_linearized_yes: \"Yes\",\n document_properties_linearized_no: \"No\",\n additional_layers: \"Additional Layers\",\n page_landmark: \"Page {{page}}\",\n thumb_page_title: \"Page {{page}}\",\n thumb_page_canvas: \"Thumbnail of Page {{page}}\",\n find_reached_top: \"Reached top of document, continued from bottom\",\n find_reached_bottom: \"Reached end of document, continued from top\",\n \"find_match_count[one]\": \"{{current}} of {{total}} match\",\n \"find_match_count[other]\": \"{{current}} of {{total}} matches\",\n \"find_match_count_limit[one]\": \"More than {{limit}} match\",\n \"find_match_count_limit[other]\": \"More than {{limit}} matches\",\n find_not_found: \"Phrase not found\",\n page_scale_width: \"Page Width\",\n page_scale_fit: \"Page Fit\",\n page_scale_auto: \"Automatic Zoom\",\n page_scale_actual: \"Actual Size\",\n page_scale_percent: \"{{scale}}%\",\n loading_error: \"An error occurred while loading the PDF.\",\n invalid_file_error: \"Invalid or corrupted PDF file.\",\n missing_file_error: \"Missing PDF file.\",\n unexpected_response_error: \"Unexpected server response.\",\n rendering_error: \"An error occurred while rendering the page.\",\n annotation_date_string: \"{{date}}, {{time}}\",\n printing_not_supported: \"Warning: Printing is not fully supported by this browser.\",\n printing_not_ready: \"Warning: The PDF is not fully loaded for printing.\",\n web_fonts_disabled: \"Web fonts are disabled: unable to use embedded PDF fonts.\",\n free_text2_default_content: \"Start typing…\",\n editor_free_text2_aria_label: \"Text Editor\",\n editor_ink2_aria_label: \"Draw Editor\",\n editor_ink_canvas_aria_label: \"User-created image\",\n editor_alt_text_button_label: \"Alt text\",\n editor_alt_text_edit_button_label: \"Edit alt text\",\n editor_alt_text_decorative_tooltip: \"Marked as decorative\"\n};\n{\n DEFAULT_L10N_STRINGS.print_progress_percent = \"{{progress}}%\";\n}\nfunction getL10nFallback(key, args) {\n switch (key) {\n case \"find_match_count\":\n key = `find_match_count[${args.total === 1 ? \"one\" : \"other\"}]`;\n break;\n case \"find_match_count_limit\":\n key = `find_match_count_limit[${args.limit === 1 ? \"one\" : \"other\"}]`;\n break;\n }\n return DEFAULT_L10N_STRINGS[key] || \"\";\n}\nfunction formatL10nValue(text, args) {\n if (!args) {\n return text;\n }\n return text.replaceAll(/\\{\\{\\s*(\\w+)\\s*\\}\\}/g, (all, name) => {\n return name in args ? args[name] : \"{{\" + name + \"}}\";\n });\n}\nconst NullL10n = {\n async getLanguage() {\n return \"en-us\";\n },\n async getDirection() {\n return \"ltr\";\n },\n async get(key, args = null, fallback = getL10nFallback(key, args)) {\n return formatL10nValue(fallback, args);\n },\n async translate(element) {}\n};\nexports.NullL10n = NullL10n;\n\n/***/ }),\n/* 32 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.XfaLayer = void 0;\nvar _xfa_text = __w_pdfjs_require__(25);\nclass XfaLayer {\n static setupStorage(html, id, element, storage, intent) {\n const storedData = storage.getValue(id, {\n value: null\n });\n switch (element.name) {\n case \"textarea\":\n if (storedData.value !== null) {\n html.textContent = storedData.value;\n }\n if (intent === \"print\") {\n break;\n }\n html.addEventListener(\"input\", event => {\n storage.setValue(id, {\n value: event.target.value\n });\n });\n break;\n case \"input\":\n if (element.attributes.type === \"radio\" || element.attributes.type === \"checkbox\") {\n if (storedData.value === element.attributes.xfaOn) {\n html.setAttribute(\"checked\", true);\n } else if (storedData.value === element.attributes.xfaOff) {\n html.removeAttribute(\"checked\");\n }\n if (intent === \"print\") {\n break;\n }\n html.addEventListener(\"change\", event => {\n storage.setValue(id, {\n value: event.target.checked ? event.target.getAttribute(\"xfaOn\") : event.target.getAttribute(\"xfaOff\")\n });\n });\n } else {\n if (storedData.value !== null) {\n html.setAttribute(\"value\", storedData.value);\n }\n if (intent === \"print\") {\n break;\n }\n html.addEventListener(\"input\", event => {\n storage.setValue(id, {\n value: event.target.value\n });\n });\n }\n break;\n case \"select\":\n if (storedData.value !== null) {\n html.setAttribute(\"value\", storedData.value);\n for (const option of element.children) {\n if (option.attributes.value === storedData.value) {\n option.attributes.selected = true;\n } else if (option.attributes.hasOwnProperty(\"selected\")) {\n delete option.attributes.selected;\n }\n }\n }\n html.addEventListener(\"input\", event => {\n const options = event.target.options;\n const value = options.selectedIndex === -1 ? \"\" : options[options.selectedIndex].value;\n storage.setValue(id, {\n value\n });\n });\n break;\n }\n }\n static setAttributes({\n html,\n element,\n storage = null,\n intent,\n linkService\n }) {\n const {\n attributes\n } = element;\n const isHTMLAnchorElement = html instanceof HTMLAnchorElement;\n if (attributes.type === \"radio\") {\n attributes.name = `${attributes.name}-${intent}`;\n }\n for (const [key, value] of Object.entries(attributes)) {\n if (value === null || value === undefined) {\n continue;\n }\n switch (key) {\n case \"class\":\n if (value.length) {\n html.setAttribute(key, value.join(\" \"));\n }\n break;\n case \"dataId\":\n break;\n case \"id\":\n html.setAttribute(\"data-element-id\", value);\n break;\n case \"style\":\n Object.assign(html.style, value);\n break;\n case \"textContent\":\n html.textContent = value;\n break;\n default:\n if (!isHTMLAnchorElement || key !== \"href\" && key !== \"newWindow\") {\n html.setAttribute(key, value);\n }\n }\n }\n if (isHTMLAnchorElement) {\n linkService.addLinkAttributes(html, attributes.href, attributes.newWindow);\n }\n if (storage && attributes.dataId) {\n this.setupStorage(html, attributes.dataId, element, storage);\n }\n }\n static render(parameters) {\n const storage = parameters.annotationStorage;\n const linkService = parameters.linkService;\n const root = parameters.xfaHtml;\n const intent = parameters.intent || \"display\";\n const rootHtml = document.createElement(root.name);\n if (root.attributes) {\n this.setAttributes({\n html: rootHtml,\n element: root,\n intent,\n linkService\n });\n }\n const stack = [[root, -1, rootHtml]];\n const rootDiv = parameters.div;\n rootDiv.append(rootHtml);\n if (parameters.viewport) {\n const transform = `matrix(${parameters.viewport.transform.join(\",\")})`;\n rootDiv.style.transform = transform;\n }\n if (intent !== \"richText\") {\n rootDiv.setAttribute(\"class\", \"xfaLayer xfaFont\");\n }\n const textDivs = [];\n while (stack.length > 0) {\n const [parent, i, html] = stack.at(-1);\n if (i + 1 === parent.children.length) {\n stack.pop();\n continue;\n }\n const child = parent.children[++stack.at(-1)[1]];\n if (child === null) {\n continue;\n }\n const {\n name\n } = child;\n if (name === \"#text\") {\n const node = document.createTextNode(child.value);\n textDivs.push(node);\n html.append(node);\n continue;\n }\n const childHtml = child?.attributes?.xmlns ? document.createElementNS(child.attributes.xmlns, name) : document.createElement(name);\n html.append(childHtml);\n if (child.attributes) {\n this.setAttributes({\n html: childHtml,\n element: child,\n storage,\n intent,\n linkService\n });\n }\n if (child.children && child.children.length > 0) {\n stack.push([child, -1, childHtml]);\n } else if (child.value) {\n const node = document.createTextNode(child.value);\n if (_xfa_text.XfaText.shouldBuildText(name)) {\n textDivs.push(node);\n }\n childHtml.append(node);\n }\n }\n for (const el of rootDiv.querySelectorAll(\".xfaNonInteractive input, .xfaNonInteractive textarea\")) {\n el.setAttribute(\"readOnly\", true);\n }\n return {\n textDivs\n };\n }\n static update(parameters) {\n const transform = `matrix(${parameters.viewport.transform.join(\",\")})`;\n parameters.div.style.transform = transform;\n parameters.div.hidden = false;\n }\n}\nexports.XfaLayer = XfaLayer;\n\n/***/ }),\n/* 33 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.InkEditor = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _editor = __w_pdfjs_require__(4);\nvar _annotation_layer = __w_pdfjs_require__(29);\nvar _display_utils = __w_pdfjs_require__(6);\nvar _tools = __w_pdfjs_require__(5);\nclass InkEditor extends _editor.AnnotationEditor {\n #baseHeight = 0;\n #baseWidth = 0;\n #boundCanvasPointermove = this.canvasPointermove.bind(this);\n #boundCanvasPointerleave = this.canvasPointerleave.bind(this);\n #boundCanvasPointerup = this.canvasPointerup.bind(this);\n #boundCanvasPointerdown = this.canvasPointerdown.bind(this);\n #currentPath2D = new Path2D();\n #disableEditing = false;\n #hasSomethingToDraw = false;\n #isCanvasInitialized = false;\n #observer = null;\n #realWidth = 0;\n #realHeight = 0;\n #requestFrameCallback = null;\n static _defaultColor = null;\n static _defaultOpacity = 1;\n static _defaultThickness = 1;\n static _type = \"ink\";\n constructor(params) {\n super({\n ...params,\n name: \"inkEditor\"\n });\n this.color = params.color || null;\n this.thickness = params.thickness || null;\n this.opacity = params.opacity || null;\n this.paths = [];\n this.bezierPath2D = [];\n this.allRawPaths = [];\n this.currentPath = [];\n this.scaleFactor = 1;\n this.translationX = this.translationY = 0;\n this.x = 0;\n this.y = 0;\n this._willKeepAspectRatio = true;\n }\n static initialize(l10n) {\n _editor.AnnotationEditor.initialize(l10n, {\n strings: [\"editor_ink_canvas_aria_label\", \"editor_ink2_aria_label\"]\n });\n }\n static updateDefaultParams(type, value) {\n switch (type) {\n case _util.AnnotationEditorParamsType.INK_THICKNESS:\n InkEditor._defaultThickness = value;\n break;\n case _util.AnnotationEditorParamsType.INK_COLOR:\n InkEditor._defaultColor = value;\n break;\n case _util.AnnotationEditorParamsType.INK_OPACITY:\n InkEditor._defaultOpacity = value / 100;\n break;\n }\n }\n updateParams(type, value) {\n switch (type) {\n case _util.AnnotationEditorParamsType.INK_THICKNESS:\n this.#updateThickness(value);\n break;\n case _util.AnnotationEditorParamsType.INK_COLOR:\n this.#updateColor(value);\n break;\n case _util.AnnotationEditorParamsType.INK_OPACITY:\n this.#updateOpacity(value);\n break;\n }\n }\n static get defaultPropertiesToUpdate() {\n return [[_util.AnnotationEditorParamsType.INK_THICKNESS, InkEditor._defaultThickness], [_util.AnnotationEditorParamsType.INK_COLOR, InkEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor], [_util.AnnotationEditorParamsType.INK_OPACITY, Math.round(InkEditor._defaultOpacity * 100)]];\n }\n get propertiesToUpdate() {\n return [[_util.AnnotationEditorParamsType.INK_THICKNESS, this.thickness || InkEditor._defaultThickness], [_util.AnnotationEditorParamsType.INK_COLOR, this.color || InkEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor], [_util.AnnotationEditorParamsType.INK_OPACITY, Math.round(100 * (this.opacity ?? InkEditor._defaultOpacity))]];\n }\n #updateThickness(thickness) {\n const savedThickness = this.thickness;\n this.addCommands({\n cmd: () => {\n this.thickness = thickness;\n this.#fitToContent();\n },\n undo: () => {\n this.thickness = savedThickness;\n this.#fitToContent();\n },\n mustExec: true,\n type: _util.AnnotationEditorParamsType.INK_THICKNESS,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n #updateColor(color) {\n const savedColor = this.color;\n this.addCommands({\n cmd: () => {\n this.color = color;\n this.#redraw();\n },\n undo: () => {\n this.color = savedColor;\n this.#redraw();\n },\n mustExec: true,\n type: _util.AnnotationEditorParamsType.INK_COLOR,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n #updateOpacity(opacity) {\n opacity /= 100;\n const savedOpacity = this.opacity;\n this.addCommands({\n cmd: () => {\n this.opacity = opacity;\n this.#redraw();\n },\n undo: () => {\n this.opacity = savedOpacity;\n this.#redraw();\n },\n mustExec: true,\n type: _util.AnnotationEditorParamsType.INK_OPACITY,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n rebuild() {\n if (!this.parent) {\n return;\n }\n super.rebuild();\n if (this.div === null) {\n return;\n }\n if (!this.canvas) {\n this.#createCanvas();\n this.#createObserver();\n }\n if (!this.isAttachedToDOM) {\n this.parent.add(this);\n this.#setCanvasDims();\n }\n this.#fitToContent();\n }\n remove() {\n if (this.canvas === null) {\n return;\n }\n if (!this.isEmpty()) {\n this.commit();\n }\n this.canvas.width = this.canvas.height = 0;\n this.canvas.remove();\n this.canvas = null;\n this.#observer.disconnect();\n this.#observer = null;\n super.remove();\n }\n setParent(parent) {\n if (!this.parent && parent) {\n this._uiManager.removeShouldRescale(this);\n } else if (this.parent && parent === null) {\n this._uiManager.addShouldRescale(this);\n }\n super.setParent(parent);\n }\n onScaleChanging() {\n const [parentWidth, parentHeight] = this.parentDimensions;\n const width = this.width * parentWidth;\n const height = this.height * parentHeight;\n this.setDimensions(width, height);\n }\n enableEditMode() {\n if (this.#disableEditing || this.canvas === null) {\n return;\n }\n super.enableEditMode();\n this._isDraggable = false;\n this.canvas.addEventListener(\"pointerdown\", this.#boundCanvasPointerdown);\n }\n disableEditMode() {\n if (!this.isInEditMode() || this.canvas === null) {\n return;\n }\n super.disableEditMode();\n this._isDraggable = !this.isEmpty();\n this.div.classList.remove(\"editing\");\n this.canvas.removeEventListener(\"pointerdown\", this.#boundCanvasPointerdown);\n }\n onceAdded() {\n this._isDraggable = !this.isEmpty();\n }\n isEmpty() {\n return this.paths.length === 0 || this.paths.length === 1 && this.paths[0].length === 0;\n }\n #getInitialBBox() {\n const {\n parentRotation,\n parentDimensions: [width, height]\n } = this;\n switch (parentRotation) {\n case 90:\n return [0, height, height, width];\n case 180:\n return [width, height, width, height];\n case 270:\n return [width, 0, height, width];\n default:\n return [0, 0, width, height];\n }\n }\n #setStroke() {\n const {\n ctx,\n color,\n opacity,\n thickness,\n parentScale,\n scaleFactor\n } = this;\n ctx.lineWidth = thickness * parentScale / scaleFactor;\n ctx.lineCap = \"round\";\n ctx.lineJoin = \"round\";\n ctx.miterLimit = 10;\n ctx.strokeStyle = `${color}${(0, _tools.opacityToHex)(opacity)}`;\n }\n #startDrawing(x, y) {\n this.canvas.addEventListener(\"contextmenu\", _display_utils.noContextMenu);\n this.canvas.addEventListener(\"pointerleave\", this.#boundCanvasPointerleave);\n this.canvas.addEventListener(\"pointermove\", this.#boundCanvasPointermove);\n this.canvas.addEventListener(\"pointerup\", this.#boundCanvasPointerup);\n this.canvas.removeEventListener(\"pointerdown\", this.#boundCanvasPointerdown);\n this.isEditing = true;\n if (!this.#isCanvasInitialized) {\n this.#isCanvasInitialized = true;\n this.#setCanvasDims();\n this.thickness ||= InkEditor._defaultThickness;\n this.color ||= InkEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor;\n this.opacity ??= InkEditor._defaultOpacity;\n }\n this.currentPath.push([x, y]);\n this.#hasSomethingToDraw = false;\n this.#setStroke();\n this.#requestFrameCallback = () => {\n this.#drawPoints();\n if (this.#requestFrameCallback) {\n window.requestAnimationFrame(this.#requestFrameCallback);\n }\n };\n window.requestAnimationFrame(this.#requestFrameCallback);\n }\n #draw(x, y) {\n const [lastX, lastY] = this.currentPath.at(-1);\n if (this.currentPath.length > 1 && x === lastX && y === lastY) {\n return;\n }\n const currentPath = this.currentPath;\n let path2D = this.#currentPath2D;\n currentPath.push([x, y]);\n this.#hasSomethingToDraw = true;\n if (currentPath.length <= 2) {\n path2D.moveTo(...currentPath[0]);\n path2D.lineTo(x, y);\n return;\n }\n if (currentPath.length === 3) {\n this.#currentPath2D = path2D = new Path2D();\n path2D.moveTo(...currentPath[0]);\n }\n this.#makeBezierCurve(path2D, ...currentPath.at(-3), ...currentPath.at(-2), x, y);\n }\n #endPath() {\n if (this.currentPath.length === 0) {\n return;\n }\n const lastPoint = this.currentPath.at(-1);\n this.#currentPath2D.lineTo(...lastPoint);\n }\n #stopDrawing(x, y) {\n this.#requestFrameCallback = null;\n x = Math.min(Math.max(x, 0), this.canvas.width);\n y = Math.min(Math.max(y, 0), this.canvas.height);\n this.#draw(x, y);\n this.#endPath();\n let bezier;\n if (this.currentPath.length !== 1) {\n bezier = this.#generateBezierPoints();\n } else {\n const xy = [x, y];\n bezier = [[xy, xy.slice(), xy.slice(), xy]];\n }\n const path2D = this.#currentPath2D;\n const currentPath = this.currentPath;\n this.currentPath = [];\n this.#currentPath2D = new Path2D();\n const cmd = () => {\n this.allRawPaths.push(currentPath);\n this.paths.push(bezier);\n this.bezierPath2D.push(path2D);\n this.rebuild();\n };\n const undo = () => {\n this.allRawPaths.pop();\n this.paths.pop();\n this.bezierPath2D.pop();\n if (this.paths.length === 0) {\n this.remove();\n } else {\n if (!this.canvas) {\n this.#createCanvas();\n this.#createObserver();\n }\n this.#fitToContent();\n }\n };\n this.addCommands({\n cmd,\n undo,\n mustExec: true\n });\n }\n #drawPoints() {\n if (!this.#hasSomethingToDraw) {\n return;\n }\n this.#hasSomethingToDraw = false;\n const thickness = Math.ceil(this.thickness * this.parentScale);\n const lastPoints = this.currentPath.slice(-3);\n const x = lastPoints.map(xy => xy[0]);\n const y = lastPoints.map(xy => xy[1]);\n const xMin = Math.min(...x) - thickness;\n const xMax = Math.max(...x) + thickness;\n const yMin = Math.min(...y) - thickness;\n const yMax = Math.max(...y) + thickness;\n const {\n ctx\n } = this;\n ctx.save();\n ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n for (const path of this.bezierPath2D) {\n ctx.stroke(path);\n }\n ctx.stroke(this.#currentPath2D);\n ctx.restore();\n }\n #makeBezierCurve(path2D, x0, y0, x1, y1, x2, y2) {\n const prevX = (x0 + x1) / 2;\n const prevY = (y0 + y1) / 2;\n const x3 = (x1 + x2) / 2;\n const y3 = (y1 + y2) / 2;\n path2D.bezierCurveTo(prevX + 2 * (x1 - prevX) / 3, prevY + 2 * (y1 - prevY) / 3, x3 + 2 * (x1 - x3) / 3, y3 + 2 * (y1 - y3) / 3, x3, y3);\n }\n #generateBezierPoints() {\n const path = this.currentPath;\n if (path.length <= 2) {\n return [[path[0], path[0], path.at(-1), path.at(-1)]];\n }\n const bezierPoints = [];\n let i;\n let [x0, y0] = path[0];\n for (i = 1; i < path.length - 2; i++) {\n const [x1, y1] = path[i];\n const [x2, y2] = path[i + 1];\n const x3 = (x1 + x2) / 2;\n const y3 = (y1 + y2) / 2;\n const control1 = [x0 + 2 * (x1 - x0) / 3, y0 + 2 * (y1 - y0) / 3];\n const control2 = [x3 + 2 * (x1 - x3) / 3, y3 + 2 * (y1 - y3) / 3];\n bezierPoints.push([[x0, y0], control1, control2, [x3, y3]]);\n [x0, y0] = [x3, y3];\n }\n const [x1, y1] = path[i];\n const [x2, y2] = path[i + 1];\n const control1 = [x0 + 2 * (x1 - x0) / 3, y0 + 2 * (y1 - y0) / 3];\n const control2 = [x2 + 2 * (x1 - x2) / 3, y2 + 2 * (y1 - y2) / 3];\n bezierPoints.push([[x0, y0], control1, control2, [x2, y2]]);\n return bezierPoints;\n }\n #redraw() {\n if (this.isEmpty()) {\n this.#updateTransform();\n return;\n }\n this.#setStroke();\n const {\n canvas,\n ctx\n } = this;\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n this.#updateTransform();\n for (const path of this.bezierPath2D) {\n ctx.stroke(path);\n }\n }\n commit() {\n if (this.#disableEditing) {\n return;\n }\n super.commit();\n this.isEditing = false;\n this.disableEditMode();\n this.setInForeground();\n this.#disableEditing = true;\n this.div.classList.add(\"disabled\");\n this.#fitToContent(true);\n this.makeResizable();\n this.parent.addInkEditorIfNeeded(true);\n this.moveInDOM();\n this.div.focus({\n preventScroll: true\n });\n }\n focusin(event) {\n if (!this._focusEventsAllowed) {\n return;\n }\n super.focusin(event);\n this.enableEditMode();\n }\n canvasPointerdown(event) {\n if (event.button !== 0 || !this.isInEditMode() || this.#disableEditing) {\n return;\n }\n this.setInForeground();\n event.preventDefault();\n if (event.type !== \"mouse\") {\n this.div.focus();\n }\n this.#startDrawing(event.offsetX, event.offsetY);\n }\n canvasPointermove(event) {\n event.preventDefault();\n this.#draw(event.offsetX, event.offsetY);\n }\n canvasPointerup(event) {\n event.preventDefault();\n this.#endDrawing(event);\n }\n canvasPointerleave(event) {\n this.#endDrawing(event);\n }\n #endDrawing(event) {\n this.canvas.removeEventListener(\"pointerleave\", this.#boundCanvasPointerleave);\n this.canvas.removeEventListener(\"pointermove\", this.#boundCanvasPointermove);\n this.canvas.removeEventListener(\"pointerup\", this.#boundCanvasPointerup);\n this.canvas.addEventListener(\"pointerdown\", this.#boundCanvasPointerdown);\n setTimeout(() => {\n this.canvas.removeEventListener(\"contextmenu\", _display_utils.noContextMenu);\n }, 10);\n this.#stopDrawing(event.offsetX, event.offsetY);\n this.addToAnnotationStorage();\n this.setInBackground();\n }\n #createCanvas() {\n this.canvas = document.createElement(\"canvas\");\n this.canvas.width = this.canvas.height = 0;\n this.canvas.className = \"inkEditorCanvas\";\n _editor.AnnotationEditor._l10nPromise.get(\"editor_ink_canvas_aria_label\").then(msg => this.canvas?.setAttribute(\"aria-label\", msg));\n this.div.append(this.canvas);\n this.ctx = this.canvas.getContext(\"2d\");\n }\n #createObserver() {\n this.#observer = new ResizeObserver(entries => {\n const rect = entries[0].contentRect;\n if (rect.width && rect.height) {\n this.setDimensions(rect.width, rect.height);\n }\n });\n this.#observer.observe(this.div);\n }\n get isResizable() {\n return !this.isEmpty() && this.#disableEditing;\n }\n render() {\n if (this.div) {\n return this.div;\n }\n let baseX, baseY;\n if (this.width) {\n baseX = this.x;\n baseY = this.y;\n }\n super.render();\n _editor.AnnotationEditor._l10nPromise.get(\"editor_ink2_aria_label\").then(msg => this.div?.setAttribute(\"aria-label\", msg));\n const [x, y, w, h] = this.#getInitialBBox();\n this.setAt(x, y, 0, 0);\n this.setDims(w, h);\n this.#createCanvas();\n if (this.width) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setAspectRatio(this.width * parentWidth, this.height * parentHeight);\n this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight);\n this.#isCanvasInitialized = true;\n this.#setCanvasDims();\n this.setDims(this.width * parentWidth, this.height * parentHeight);\n this.#redraw();\n this.div.classList.add(\"disabled\");\n } else {\n this.div.classList.add(\"editing\");\n this.enableEditMode();\n }\n this.#createObserver();\n return this.div;\n }\n #setCanvasDims() {\n if (!this.#isCanvasInitialized) {\n return;\n }\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.canvas.width = Math.ceil(this.width * parentWidth);\n this.canvas.height = Math.ceil(this.height * parentHeight);\n this.#updateTransform();\n }\n setDimensions(width, height) {\n const roundedWidth = Math.round(width);\n const roundedHeight = Math.round(height);\n if (this.#realWidth === roundedWidth && this.#realHeight === roundedHeight) {\n return;\n }\n this.#realWidth = roundedWidth;\n this.#realHeight = roundedHeight;\n this.canvas.style.visibility = \"hidden\";\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.width = width / parentWidth;\n this.height = height / parentHeight;\n this.fixAndSetPosition();\n if (this.#disableEditing) {\n this.#setScaleFactor(width, height);\n }\n this.#setCanvasDims();\n this.#redraw();\n this.canvas.style.visibility = \"visible\";\n this.fixDims();\n }\n #setScaleFactor(width, height) {\n const padding = this.#getPadding();\n const scaleFactorW = (width - padding) / this.#baseWidth;\n const scaleFactorH = (height - padding) / this.#baseHeight;\n this.scaleFactor = Math.min(scaleFactorW, scaleFactorH);\n }\n #updateTransform() {\n const padding = this.#getPadding() / 2;\n this.ctx.setTransform(this.scaleFactor, 0, 0, this.scaleFactor, this.translationX * this.scaleFactor + padding, this.translationY * this.scaleFactor + padding);\n }\n static #buildPath2D(bezier) {\n const path2D = new Path2D();\n for (let i = 0, ii = bezier.length; i < ii; i++) {\n const [first, control1, control2, second] = bezier[i];\n if (i === 0) {\n path2D.moveTo(...first);\n }\n path2D.bezierCurveTo(control1[0], control1[1], control2[0], control2[1], second[0], second[1]);\n }\n return path2D;\n }\n static #toPDFCoordinates(points, rect, rotation) {\n const [blX, blY, trX, trY] = rect;\n switch (rotation) {\n case 0:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n points[i] += blX;\n points[i + 1] = trY - points[i + 1];\n }\n break;\n case 90:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n const x = points[i];\n points[i] = points[i + 1] + blX;\n points[i + 1] = x + blY;\n }\n break;\n case 180:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n points[i] = trX - points[i];\n points[i + 1] += blY;\n }\n break;\n case 270:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n const x = points[i];\n points[i] = trX - points[i + 1];\n points[i + 1] = trY - x;\n }\n break;\n default:\n throw new Error(\"Invalid rotation\");\n }\n return points;\n }\n static #fromPDFCoordinates(points, rect, rotation) {\n const [blX, blY, trX, trY] = rect;\n switch (rotation) {\n case 0:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n points[i] -= blX;\n points[i + 1] = trY - points[i + 1];\n }\n break;\n case 90:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n const x = points[i];\n points[i] = points[i + 1] - blY;\n points[i + 1] = x - blX;\n }\n break;\n case 180:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n points[i] = trX - points[i];\n points[i + 1] -= blY;\n }\n break;\n case 270:\n for (let i = 0, ii = points.length; i < ii; i += 2) {\n const x = points[i];\n points[i] = trY - points[i + 1];\n points[i + 1] = trX - x;\n }\n break;\n default:\n throw new Error(\"Invalid rotation\");\n }\n return points;\n }\n #serializePaths(s, tx, ty, rect) {\n const paths = [];\n const padding = this.thickness / 2;\n const shiftX = s * tx + padding;\n const shiftY = s * ty + padding;\n for (const bezier of this.paths) {\n const buffer = [];\n const points = [];\n for (let j = 0, jj = bezier.length; j < jj; j++) {\n const [first, control1, control2, second] = bezier[j];\n const p10 = s * first[0] + shiftX;\n const p11 = s * first[1] + shiftY;\n const p20 = s * control1[0] + shiftX;\n const p21 = s * control1[1] + shiftY;\n const p30 = s * control2[0] + shiftX;\n const p31 = s * control2[1] + shiftY;\n const p40 = s * second[0] + shiftX;\n const p41 = s * second[1] + shiftY;\n if (j === 0) {\n buffer.push(p10, p11);\n points.push(p10, p11);\n }\n buffer.push(p20, p21, p30, p31, p40, p41);\n points.push(p20, p21);\n if (j === jj - 1) {\n points.push(p40, p41);\n }\n }\n paths.push({\n bezier: InkEditor.#toPDFCoordinates(buffer, rect, this.rotation),\n points: InkEditor.#toPDFCoordinates(points, rect, this.rotation)\n });\n }\n return paths;\n }\n #getBbox() {\n let xMin = Infinity;\n let xMax = -Infinity;\n let yMin = Infinity;\n let yMax = -Infinity;\n for (const path of this.paths) {\n for (const [first, control1, control2, second] of path) {\n const bbox = _util.Util.bezierBoundingBox(...first, ...control1, ...control2, ...second);\n xMin = Math.min(xMin, bbox[0]);\n yMin = Math.min(yMin, bbox[1]);\n xMax = Math.max(xMax, bbox[2]);\n yMax = Math.max(yMax, bbox[3]);\n }\n }\n return [xMin, yMin, xMax, yMax];\n }\n #getPadding() {\n return this.#disableEditing ? Math.ceil(this.thickness * this.parentScale) : 0;\n }\n #fitToContent(firstTime = false) {\n if (this.isEmpty()) {\n return;\n }\n if (!this.#disableEditing) {\n this.#redraw();\n return;\n }\n const bbox = this.#getBbox();\n const padding = this.#getPadding();\n this.#baseWidth = Math.max(_editor.AnnotationEditor.MIN_SIZE, bbox[2] - bbox[0]);\n this.#baseHeight = Math.max(_editor.AnnotationEditor.MIN_SIZE, bbox[3] - bbox[1]);\n const width = Math.ceil(padding + this.#baseWidth * this.scaleFactor);\n const height = Math.ceil(padding + this.#baseHeight * this.scaleFactor);\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.width = width / parentWidth;\n this.height = height / parentHeight;\n this.setAspectRatio(width, height);\n const prevTranslationX = this.translationX;\n const prevTranslationY = this.translationY;\n this.translationX = -bbox[0];\n this.translationY = -bbox[1];\n this.#setCanvasDims();\n this.#redraw();\n this.#realWidth = width;\n this.#realHeight = height;\n this.setDims(width, height);\n const unscaledPadding = firstTime ? padding / this.scaleFactor / 2 : 0;\n this.translate(prevTranslationX - this.translationX - unscaledPadding, prevTranslationY - this.translationY - unscaledPadding);\n }\n static deserialize(data, parent, uiManager) {\n if (data instanceof _annotation_layer.InkAnnotationElement) {\n return null;\n }\n const editor = super.deserialize(data, parent, uiManager);\n editor.thickness = data.thickness;\n editor.color = _util.Util.makeHexColor(...data.color);\n editor.opacity = data.opacity;\n const [pageWidth, pageHeight] = editor.pageDimensions;\n const width = editor.width * pageWidth;\n const height = editor.height * pageHeight;\n const scaleFactor = editor.parentScale;\n const padding = data.thickness / 2;\n editor.#disableEditing = true;\n editor.#realWidth = Math.round(width);\n editor.#realHeight = Math.round(height);\n const {\n paths,\n rect,\n rotation\n } = data;\n for (let {\n bezier\n } of paths) {\n bezier = InkEditor.#fromPDFCoordinates(bezier, rect, rotation);\n const path = [];\n editor.paths.push(path);\n let p0 = scaleFactor * (bezier[0] - padding);\n let p1 = scaleFactor * (bezier[1] - padding);\n for (let i = 2, ii = bezier.length; i < ii; i += 6) {\n const p10 = scaleFactor * (bezier[i] - padding);\n const p11 = scaleFactor * (bezier[i + 1] - padding);\n const p20 = scaleFactor * (bezier[i + 2] - padding);\n const p21 = scaleFactor * (bezier[i + 3] - padding);\n const p30 = scaleFactor * (bezier[i + 4] - padding);\n const p31 = scaleFactor * (bezier[i + 5] - padding);\n path.push([[p0, p1], [p10, p11], [p20, p21], [p30, p31]]);\n p0 = p30;\n p1 = p31;\n }\n const path2D = this.#buildPath2D(path);\n editor.bezierPath2D.push(path2D);\n }\n const bbox = editor.#getBbox();\n editor.#baseWidth = Math.max(_editor.AnnotationEditor.MIN_SIZE, bbox[2] - bbox[0]);\n editor.#baseHeight = Math.max(_editor.AnnotationEditor.MIN_SIZE, bbox[3] - bbox[1]);\n editor.#setScaleFactor(width, height);\n return editor;\n }\n serialize() {\n if (this.isEmpty()) {\n return null;\n }\n const rect = this.getRect(0, 0);\n const color = _editor.AnnotationEditor._colorManager.convert(this.ctx.strokeStyle);\n return {\n annotationType: _util.AnnotationEditorType.INK,\n color,\n thickness: this.thickness,\n opacity: this.opacity,\n paths: this.#serializePaths(this.scaleFactor / this.parentScale, this.translationX, this.translationY, rect),\n pageIndex: this.pageIndex,\n rect,\n rotation: this.rotation,\n structTreeParentId: this._structTreeParentId\n };\n }\n}\nexports.InkEditor = InkEditor;\n\n/***/ }),\n/* 34 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.StampEditor = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _editor = __w_pdfjs_require__(4);\nvar _display_utils = __w_pdfjs_require__(6);\nvar _annotation_layer = __w_pdfjs_require__(29);\nclass StampEditor extends _editor.AnnotationEditor {\n #bitmap = null;\n #bitmapId = null;\n #bitmapPromise = null;\n #bitmapUrl = null;\n #bitmapFile = null;\n #canvas = null;\n #observer = null;\n #resizeTimeoutId = null;\n #isSvg = false;\n #hasBeenAddedInUndoStack = false;\n static _type = \"stamp\";\n constructor(params) {\n super({\n ...params,\n name: \"stampEditor\"\n });\n this.#bitmapUrl = params.bitmapUrl;\n this.#bitmapFile = params.bitmapFile;\n }\n static initialize(l10n) {\n _editor.AnnotationEditor.initialize(l10n);\n }\n static get supportedTypes() {\n const types = [\"apng\", \"avif\", \"bmp\", \"gif\", \"jpeg\", \"png\", \"svg+xml\", \"webp\", \"x-icon\"];\n return (0, _util.shadow)(this, \"supportedTypes\", types.map(type => `image/${type}`));\n }\n static get supportedTypesStr() {\n return (0, _util.shadow)(this, \"supportedTypesStr\", this.supportedTypes.join(\",\"));\n }\n static isHandlingMimeForPasting(mime) {\n return this.supportedTypes.includes(mime);\n }\n static paste(item, parent) {\n parent.pasteEditor(_util.AnnotationEditorType.STAMP, {\n bitmapFile: item.getAsFile()\n });\n }\n #getBitmapFetched(data, fromId = false) {\n if (!data) {\n this.remove();\n return;\n }\n this.#bitmap = data.bitmap;\n if (!fromId) {\n this.#bitmapId = data.id;\n this.#isSvg = data.isSvg;\n }\n this.#createCanvas();\n }\n #getBitmapDone() {\n this.#bitmapPromise = null;\n this._uiManager.enableWaiting(false);\n if (this.#canvas) {\n this.div.focus();\n }\n }\n #getBitmap() {\n if (this.#bitmapId) {\n this._uiManager.enableWaiting(true);\n this._uiManager.imageManager.getFromId(this.#bitmapId).then(data => this.#getBitmapFetched(data, true)).finally(() => this.#getBitmapDone());\n return;\n }\n if (this.#bitmapUrl) {\n const url = this.#bitmapUrl;\n this.#bitmapUrl = null;\n this._uiManager.enableWaiting(true);\n this.#bitmapPromise = this._uiManager.imageManager.getFromUrl(url).then(data => this.#getBitmapFetched(data)).finally(() => this.#getBitmapDone());\n return;\n }\n if (this.#bitmapFile) {\n const file = this.#bitmapFile;\n this.#bitmapFile = null;\n this._uiManager.enableWaiting(true);\n this.#bitmapPromise = this._uiManager.imageManager.getFromFile(file).then(data => this.#getBitmapFetched(data)).finally(() => this.#getBitmapDone());\n return;\n }\n const input = document.createElement(\"input\");\n input.type = \"file\";\n input.accept = StampEditor.supportedTypesStr;\n this.#bitmapPromise = new Promise(resolve => {\n input.addEventListener(\"change\", async () => {\n if (!input.files || input.files.length === 0) {\n this.remove();\n } else {\n this._uiManager.enableWaiting(true);\n const data = await this._uiManager.imageManager.getFromFile(input.files[0]);\n this.#getBitmapFetched(data);\n }\n resolve();\n });\n input.addEventListener(\"cancel\", () => {\n this.remove();\n resolve();\n });\n }).finally(() => this.#getBitmapDone());\n input.click();\n }\n remove() {\n if (this.#bitmapId) {\n this.#bitmap = null;\n this._uiManager.imageManager.deleteId(this.#bitmapId);\n this.#canvas?.remove();\n this.#canvas = null;\n this.#observer?.disconnect();\n this.#observer = null;\n }\n super.remove();\n }\n rebuild() {\n if (!this.parent) {\n if (this.#bitmapId) {\n this.#getBitmap();\n }\n return;\n }\n super.rebuild();\n if (this.div === null) {\n return;\n }\n if (this.#bitmapId) {\n this.#getBitmap();\n }\n if (!this.isAttachedToDOM) {\n this.parent.add(this);\n }\n }\n onceAdded() {\n this._isDraggable = true;\n this.div.focus();\n }\n isEmpty() {\n return !(this.#bitmapPromise || this.#bitmap || this.#bitmapUrl || this.#bitmapFile);\n }\n get isResizable() {\n return true;\n }\n render() {\n if (this.div) {\n return this.div;\n }\n let baseX, baseY;\n if (this.width) {\n baseX = this.x;\n baseY = this.y;\n }\n super.render();\n this.div.hidden = true;\n if (this.#bitmap) {\n this.#createCanvas();\n } else {\n this.#getBitmap();\n }\n if (this.width) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight);\n }\n return this.div;\n }\n #createCanvas() {\n const {\n div\n } = this;\n let {\n width,\n height\n } = this.#bitmap;\n const [pageWidth, pageHeight] = this.pageDimensions;\n const MAX_RATIO = 0.75;\n if (this.width) {\n width = this.width * pageWidth;\n height = this.height * pageHeight;\n } else if (width > MAX_RATIO * pageWidth || height > MAX_RATIO * pageHeight) {\n const factor = Math.min(MAX_RATIO * pageWidth / width, MAX_RATIO * pageHeight / height);\n width *= factor;\n height *= factor;\n }\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setDims(width * parentWidth / pageWidth, height * parentHeight / pageHeight);\n this._uiManager.enableWaiting(false);\n const canvas = this.#canvas = document.createElement(\"canvas\");\n div.append(canvas);\n div.hidden = false;\n this.#drawBitmap(width, height);\n this.#createObserver();\n if (!this.#hasBeenAddedInUndoStack) {\n this.parent.addUndoableEditor(this);\n this.#hasBeenAddedInUndoStack = true;\n }\n this._uiManager._eventBus.dispatch(\"reporttelemetry\", {\n source: this,\n details: {\n type: \"editing\",\n subtype: this.editorType,\n data: {\n action: \"inserted_image\"\n }\n }\n });\n this.addAltTextButton();\n }\n #setDimensions(width, height) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.width = width / parentWidth;\n this.height = height / parentHeight;\n this.setDims(width, height);\n if (this._initialOptions?.isCentered) {\n this.center();\n } else {\n this.fixAndSetPosition();\n }\n this._initialOptions = null;\n if (this.#resizeTimeoutId !== null) {\n clearTimeout(this.#resizeTimeoutId);\n }\n const TIME_TO_WAIT = 200;\n this.#resizeTimeoutId = setTimeout(() => {\n this.#resizeTimeoutId = null;\n this.#drawBitmap(width, height);\n }, TIME_TO_WAIT);\n }\n #scaleBitmap(width, height) {\n const {\n width: bitmapWidth,\n height: bitmapHeight\n } = this.#bitmap;\n let newWidth = bitmapWidth;\n let newHeight = bitmapHeight;\n let bitmap = this.#bitmap;\n while (newWidth > 2 * width || newHeight > 2 * height) {\n const prevWidth = newWidth;\n const prevHeight = newHeight;\n if (newWidth > 2 * width) {\n newWidth = newWidth >= 16384 ? Math.floor(newWidth / 2) - 1 : Math.ceil(newWidth / 2);\n }\n if (newHeight > 2 * height) {\n newHeight = newHeight >= 16384 ? Math.floor(newHeight / 2) - 1 : Math.ceil(newHeight / 2);\n }\n const offscreen = new OffscreenCanvas(newWidth, newHeight);\n const ctx = offscreen.getContext(\"2d\");\n ctx.drawImage(bitmap, 0, 0, prevWidth, prevHeight, 0, 0, newWidth, newHeight);\n bitmap = offscreen.transferToImageBitmap();\n }\n return bitmap;\n }\n #drawBitmap(width, height) {\n width = Math.ceil(width);\n height = Math.ceil(height);\n const canvas = this.#canvas;\n if (!canvas || canvas.width === width && canvas.height === height) {\n return;\n }\n canvas.width = width;\n canvas.height = height;\n const bitmap = this.#isSvg ? this.#bitmap : this.#scaleBitmap(width, height);\n const ctx = canvas.getContext(\"2d\");\n ctx.filter = this._uiManager.hcmFilter;\n ctx.drawImage(bitmap, 0, 0, bitmap.width, bitmap.height, 0, 0, width, height);\n }\n #serializeBitmap(toUrl) {\n if (toUrl) {\n if (this.#isSvg) {\n const url = this._uiManager.imageManager.getSvgUrl(this.#bitmapId);\n if (url) {\n return url;\n }\n }\n const canvas = document.createElement(\"canvas\");\n ({\n width: canvas.width,\n height: canvas.height\n } = this.#bitmap);\n const ctx = canvas.getContext(\"2d\");\n ctx.drawImage(this.#bitmap, 0, 0);\n return canvas.toDataURL();\n }\n if (this.#isSvg) {\n const [pageWidth, pageHeight] = this.pageDimensions;\n const width = Math.round(this.width * pageWidth * _display_utils.PixelsPerInch.PDF_TO_CSS_UNITS);\n const height = Math.round(this.height * pageHeight * _display_utils.PixelsPerInch.PDF_TO_CSS_UNITS);\n const offscreen = new OffscreenCanvas(width, height);\n const ctx = offscreen.getContext(\"2d\");\n ctx.drawImage(this.#bitmap, 0, 0, this.#bitmap.width, this.#bitmap.height, 0, 0, width, height);\n return offscreen.transferToImageBitmap();\n }\n return structuredClone(this.#bitmap);\n }\n #createObserver() {\n this.#observer = new ResizeObserver(entries => {\n const rect = entries[0].contentRect;\n if (rect.width && rect.height) {\n this.#setDimensions(rect.width, rect.height);\n }\n });\n this.#observer.observe(this.div);\n }\n static deserialize(data, parent, uiManager) {\n if (data instanceof _annotation_layer.StampAnnotationElement) {\n return null;\n }\n const editor = super.deserialize(data, parent, uiManager);\n const {\n rect,\n bitmapUrl,\n bitmapId,\n isSvg,\n accessibilityData\n } = data;\n if (bitmapId && uiManager.imageManager.isValidId(bitmapId)) {\n editor.#bitmapId = bitmapId;\n } else {\n editor.#bitmapUrl = bitmapUrl;\n }\n editor.#isSvg = isSvg;\n const [parentWidth, parentHeight] = editor.pageDimensions;\n editor.width = (rect[2] - rect[0]) / parentWidth;\n editor.height = (rect[3] - rect[1]) / parentHeight;\n if (accessibilityData) {\n editor.altTextData = accessibilityData;\n }\n return editor;\n }\n serialize(isForCopying = false, context = null) {\n if (this.isEmpty()) {\n return null;\n }\n const serialized = {\n annotationType: _util.AnnotationEditorType.STAMP,\n bitmapId: this.#bitmapId,\n pageIndex: this.pageIndex,\n rect: this.getRect(0, 0),\n rotation: this.rotation,\n isSvg: this.#isSvg,\n structTreeParentId: this._structTreeParentId\n };\n if (isForCopying) {\n serialized.bitmapUrl = this.#serializeBitmap(true);\n serialized.accessibilityData = this.altTextData;\n return serialized;\n }\n const {\n decorative,\n altText\n } = this.altTextData;\n if (!decorative && altText) {\n serialized.accessibilityData = {\n type: \"Figure\",\n alt: altText\n };\n }\n if (context === null) {\n return serialized;\n }\n context.stamps ||= new Map();\n const area = this.#isSvg ? (serialized.rect[2] - serialized.rect[0]) * (serialized.rect[3] - serialized.rect[1]) : null;\n if (!context.stamps.has(this.#bitmapId)) {\n context.stamps.set(this.#bitmapId, {\n area,\n serialized\n });\n serialized.bitmap = this.#serializeBitmap(false);\n } else if (this.#isSvg) {\n const prevData = context.stamps.get(this.#bitmapId);\n if (area > prevData.area) {\n prevData.area = area;\n prevData.serialized.bitmap.close();\n prevData.serialized.bitmap = this.#serializeBitmap(false);\n }\n }\n return serialized;\n }\n}\nexports.StampEditor = StampEditor;\n\n/***/ })\n/******/ \t]);\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __w_pdfjs_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __w_pdfjs_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.\n(() => {\nvar exports = __webpack_exports__;\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"AbortException\", ({\n enumerable: true,\n get: function () {\n return _util.AbortException;\n }\n}));\nObject.defineProperty(exports, \"AnnotationEditorLayer\", ({\n enumerable: true,\n get: function () {\n return _annotation_editor_layer.AnnotationEditorLayer;\n }\n}));\nObject.defineProperty(exports, \"AnnotationEditorParamsType\", ({\n enumerable: true,\n get: function () {\n return _util.AnnotationEditorParamsType;\n }\n}));\nObject.defineProperty(exports, \"AnnotationEditorType\", ({\n enumerable: true,\n get: function () {\n return _util.AnnotationEditorType;\n }\n}));\nObject.defineProperty(exports, \"AnnotationEditorUIManager\", ({\n enumerable: true,\n get: function () {\n return _tools.AnnotationEditorUIManager;\n }\n}));\nObject.defineProperty(exports, \"AnnotationLayer\", ({\n enumerable: true,\n get: function () {\n return _annotation_layer.AnnotationLayer;\n }\n}));\nObject.defineProperty(exports, \"AnnotationMode\", ({\n enumerable: true,\n get: function () {\n return _util.AnnotationMode;\n }\n}));\nObject.defineProperty(exports, \"CMapCompressionType\", ({\n enumerable: true,\n get: function () {\n return _util.CMapCompressionType;\n }\n}));\nObject.defineProperty(exports, \"DOMSVGFactory\", ({\n enumerable: true,\n get: function () {\n return _display_utils.DOMSVGFactory;\n }\n}));\nObject.defineProperty(exports, \"FeatureTest\", ({\n enumerable: true,\n get: function () {\n return _util.FeatureTest;\n }\n}));\nObject.defineProperty(exports, \"GlobalWorkerOptions\", ({\n enumerable: true,\n get: function () {\n return _worker_options.GlobalWorkerOptions;\n }\n}));\nObject.defineProperty(exports, \"ImageKind\", ({\n enumerable: true,\n get: function () {\n return _util.ImageKind;\n }\n}));\nObject.defineProperty(exports, \"InvalidPDFException\", ({\n enumerable: true,\n get: function () {\n return _util.InvalidPDFException;\n }\n}));\nObject.defineProperty(exports, \"MissingPDFException\", ({\n enumerable: true,\n get: function () {\n return _util.MissingPDFException;\n }\n}));\nObject.defineProperty(exports, \"OPS\", ({\n enumerable: true,\n get: function () {\n return _util.OPS;\n }\n}));\nObject.defineProperty(exports, \"PDFDataRangeTransport\", ({\n enumerable: true,\n get: function () {\n return _api.PDFDataRangeTransport;\n }\n}));\nObject.defineProperty(exports, \"PDFDateString\", ({\n enumerable: true,\n get: function () {\n return _display_utils.PDFDateString;\n }\n}));\nObject.defineProperty(exports, \"PDFWorker\", ({\n enumerable: true,\n get: function () {\n return _api.PDFWorker;\n }\n}));\nObject.defineProperty(exports, \"PasswordResponses\", ({\n enumerable: true,\n get: function () {\n return _util.PasswordResponses;\n }\n}));\nObject.defineProperty(exports, \"PermissionFlag\", ({\n enumerable: true,\n get: function () {\n return _util.PermissionFlag;\n }\n}));\nObject.defineProperty(exports, \"PixelsPerInch\", ({\n enumerable: true,\n get: function () {\n return _display_utils.PixelsPerInch;\n }\n}));\nObject.defineProperty(exports, \"PromiseCapability\", ({\n enumerable: true,\n get: function () {\n return _util.PromiseCapability;\n }\n}));\nObject.defineProperty(exports, \"RenderingCancelledException\", ({\n enumerable: true,\n get: function () {\n return _display_utils.RenderingCancelledException;\n }\n}));\nObject.defineProperty(exports, \"SVGGraphics\", ({\n enumerable: true,\n get: function () {\n return _api.SVGGraphics;\n }\n}));\nObject.defineProperty(exports, \"UnexpectedResponseException\", ({\n enumerable: true,\n get: function () {\n return _util.UnexpectedResponseException;\n }\n}));\nObject.defineProperty(exports, \"Util\", ({\n enumerable: true,\n get: function () {\n return _util.Util;\n }\n}));\nObject.defineProperty(exports, \"VerbosityLevel\", ({\n enumerable: true,\n get: function () {\n return _util.VerbosityLevel;\n }\n}));\nObject.defineProperty(exports, \"XfaLayer\", ({\n enumerable: true,\n get: function () {\n return _xfa_layer.XfaLayer;\n }\n}));\nObject.defineProperty(exports, \"build\", ({\n enumerable: true,\n get: function () {\n return _api.build;\n }\n}));\nObject.defineProperty(exports, \"createValidAbsoluteUrl\", ({\n enumerable: true,\n get: function () {\n return _util.createValidAbsoluteUrl;\n }\n}));\nObject.defineProperty(exports, \"getDocument\", ({\n enumerable: true,\n get: function () {\n return _api.getDocument;\n }\n}));\nObject.defineProperty(exports, \"getFilenameFromUrl\", ({\n enumerable: true,\n get: function () {\n return _display_utils.getFilenameFromUrl;\n }\n}));\nObject.defineProperty(exports, \"getPdfFilenameFromUrl\", ({\n enumerable: true,\n get: function () {\n return _display_utils.getPdfFilenameFromUrl;\n }\n}));\nObject.defineProperty(exports, \"getXfaPageViewport\", ({\n enumerable: true,\n get: function () {\n return _display_utils.getXfaPageViewport;\n }\n}));\nObject.defineProperty(exports, \"isDataScheme\", ({\n enumerable: true,\n get: function () {\n return _display_utils.isDataScheme;\n }\n}));\nObject.defineProperty(exports, \"isPdfFile\", ({\n enumerable: true,\n get: function () {\n return _display_utils.isPdfFile;\n }\n}));\nObject.defineProperty(exports, \"loadScript\", ({\n enumerable: true,\n get: function () {\n return _display_utils.loadScript;\n }\n}));\nObject.defineProperty(exports, \"noContextMenu\", ({\n enumerable: true,\n get: function () {\n return _display_utils.noContextMenu;\n }\n}));\nObject.defineProperty(exports, \"normalizeUnicode\", ({\n enumerable: true,\n get: function () {\n return _util.normalizeUnicode;\n }\n}));\nObject.defineProperty(exports, \"renderTextLayer\", ({\n enumerable: true,\n get: function () {\n return _text_layer.renderTextLayer;\n }\n}));\nObject.defineProperty(exports, \"setLayerDimensions\", ({\n enumerable: true,\n get: function () {\n return _display_utils.setLayerDimensions;\n }\n}));\nObject.defineProperty(exports, \"shadow\", ({\n enumerable: true,\n get: function () {\n return _util.shadow;\n }\n}));\nObject.defineProperty(exports, \"updateTextLayer\", ({\n enumerable: true,\n get: function () {\n return _text_layer.updateTextLayer;\n }\n}));\nObject.defineProperty(exports, \"version\", ({\n enumerable: true,\n get: function () {\n return _api.version;\n }\n}));\nvar _util = __w_pdfjs_require__(1);\nvar _api = __w_pdfjs_require__(2);\nvar _display_utils = __w_pdfjs_require__(6);\nvar _text_layer = __w_pdfjs_require__(26);\nvar _annotation_editor_layer = __w_pdfjs_require__(27);\nvar _tools = __w_pdfjs_require__(5);\nvar _annotation_layer = __w_pdfjs_require__(29);\nvar _worker_options = __w_pdfjs_require__(14);\nvar _xfa_layer = __w_pdfjs_require__(32);\nconst pdfjsVersion = '3.11.174';\nconst pdfjsBuild = 'ce8716743';\n})();\n\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});\n//# sourceMappingURL=pdf.js.map","import * as pdfjsModule from 'pdfjs-dist';\nconst pdfjs = ('default' in pdfjsModule ? pdfjsModule['default'] : pdfjsModule);\nexport default pdfjs;\n"],"names":["root","factory","globalThis","__webpack_modules__","__unused_webpack_module","exports","Object","defineProperty","value","VerbosityLevel","Util","UnknownErrorException","UnexpectedResponseException","TextRenderingMode","RenderingIntentFlag","PromiseCapability","PermissionFlag","PasswordResponses","PasswordException","PageActionEventType","OPS","MissingPDFException","MAX_IMAGE_SIZE_TO_CACHE","LINE_FACTOR","LINE_DESCENT_FACTOR","InvalidPDFException","ImageKind","IDENTITY_MATRIX","FormatError","FeatureTest","FONT_IDENTITY_MATRIX","DocumentActionEventType","CMapCompressionType","BaseException","BASELINE_FACTOR","AnnotationType","AnnotationReplyType","AnnotationPrefix","AnnotationMode","AnnotationFlag","AnnotationFieldFlag","AnnotationEditorType","AnnotationEditorPrefix","AnnotationEditorParamsType","AnnotationBorderStyleType","AnnotationActionEventType","AbortException","assert","cond","msg","unreachable","bytesToString","createValidAbsoluteUrl","url","baseUrl","options","addDefaultProtocol","startsWith","dots","match","length","tryConvertEncoding","stringToUTF8String","absoluteUrl","URL","protocol","_isValidProtocol","getModificationDate","date","Date","getUTCFullYear","toString","getUTCMonth","padStart","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","join","getUuid","crypto","randomUUID","buf","Uint8Array","getRandomValues","i","Math","floor","random","getVerbosityLevel","verbosity","info","INFOS","console","log","isArrayBuffer","v","undefined","byteLength","isArrayEqual","arr1","arr2","ii","isNodeJS","normalizeUnicode","str","NormalizeRegex","NormalizationMap","Map","replaceAll","_","p1","p2","normalize","get","objectFromMap","map","obj","create","key","objectSize","keys","setVerbosityLevel","level","Number","isInteger","shadow","string32","String","fromCharCode","stringToBytes","stringToPDFString","encoding","decoder","TextDecoder","fatal","buffer","decode","ex","warn","strBuf","code","PDFStringTranslateTable","charCodeAt","push","charAt","utf8StringToString","unescape","encodeURIComponent","process","versions","nw","electron","type","ANY","DISPLAY","PRINT","SAVE","ANNOTATIONS_FORMS","ANNOTATIONS_STORAGE","ANNOTATIONS_DISABLE","OPLIST","DISABLE","ENABLE","ENABLE_FORMS","ENABLE_STORAGE","NONE","FREETEXT","STAMP","INK","RESIZE","CREATE","FREETEXT_SIZE","FREETEXT_COLOR","FREETEXT_OPACITY","INK_COLOR","INK_THICKNESS","INK_OPACITY","MODIFY_CONTENTS","COPY","MODIFY_ANNOTATIONS","FILL_INTERACTIVE_FORMS","COPY_FOR_ACCESSIBILITY","ASSEMBLE","PRINT_HIGH_QUALITY","FILL","STROKE","FILL_STROKE","INVISIBLE","FILL_ADD_TO_PATH","STROKE_ADD_TO_PATH","FILL_STROKE_ADD_TO_PATH","ADD_TO_PATH","FILL_STROKE_MASK","ADD_TO_PATH_FLAG","GRAYSCALE_1BPP","RGB_24BPP","RGBA_32BPP","TEXT","LINK","LINE","SQUARE","CIRCLE","POLYGON","POLYLINE","HIGHLIGHT","UNDERLINE","SQUIGGLY","STRIKEOUT","CARET","POPUP","FILEATTACHMENT","SOUND","MOVIE","WIDGET","SCREEN","PRINTERMARK","TRAPNET","WATERMARK","THREED","REDACT","GROUP","REPLY","HIDDEN","NOZOOM","NOROTATE","NOVIEW","READONLY","LOCKED","TOGGLENOVIEW","LOCKEDCONTENTS","REQUIRED","NOEXPORT","MULTILINE","PASSWORD","NOTOGGLETOOFF","RADIO","PUSHBUTTON","COMBO","EDIT","SORT","FILESELECT","MULTISELECT","DONOTSPELLCHECK","DONOTSCROLL","COMB","RICHTEXT","RADIOSINUNISON","COMMITONSELCHANGE","SOLID","DASHED","BEVELED","INSET","E","X","D","U","Fo","Bl","PO","PC","PV","PI","K","F","V","C","WC","WS","DS","WP","DP","O","ERRORS","WARNINGS","BINARY","dependency","setLineWidth","setLineCap","setLineJoin","setMiterLimit","setDash","setRenderingIntent","setFlatness","setGState","save","restore","transform","moveTo","lineTo","curveTo","curveTo2","curveTo3","closePath","rectangle","stroke","closeStroke","fill","eoFill","fillStroke","eoFillStroke","closeFillStroke","closeEOFillStroke","endPath","clip","eoClip","beginText","endText","setCharSpacing","setWordSpacing","setHScale","setLeading","setFont","setTextRenderingMode","setTextRise","moveText","setLeadingMoveText","setTextMatrix","nextLine","showText","showSpacedText","nextLineShowText","nextLineSetSpacingShowText","setCharWidth","setCharWidthAndBounds","setStrokeColorSpace","setFillColorSpace","setStrokeColor","setStrokeColorN","setFillColor","setFillColorN","setStrokeGray","setFillGray","setStrokeRGBColor","setFillRGBColor","setStrokeCMYKColor","setFillCMYKColor","shadingFill","beginInlineImage","beginImageData","endInlineImage","paintXObject","markPoint","markPointProps","beginMarkedContent","beginMarkedContentProps","endMarkedContent","beginCompat","endCompat","paintFormXObjectBegin","paintFormXObjectEnd","beginGroup","endGroup","beginAnnotation","endAnnotation","paintImageMaskXObject","paintImageMaskXObjectGroup","paintImageXObject","paintInlineImageXObject","paintInlineImageXObjectGroup","paintImageXObjectRepeat","paintImageMaskXObjectRepeat","paintSolidColorImageMask","constructPath","NEED_PASSWORD","INCORRECT_PASSWORD","Error","prop","nonSerializable","enumerable","configurable","writable","message","name","this","constructor","prototype","bytes","MAX_ARGUMENT_COUNT","apply","chunkEnd","min","chunk","subarray","super","details","status","isLittleEndian","buffer8","Uint32Array","isEvalSupported","Function","isOffscreenCanvasSupported","OffscreenCanvas","platform","navigator","isWin","isMac","includes","isCSSRoundSupported","CSS","supports","hexNumbers","Array","n","makeHexColor","r","g","b","scaleMinMax","minMax","temp","m1","m2","applyTransform","p","m","applyInverseTransform","d","getAxialAlignedBoundingBox","slice","p3","p4","max","inverseTransform","singularValueDecompose2dScale","transpose","a","c","first","second","sqrt","sx","sy","normalizeRect","rect","intersect","rect1","rect2","xLow","xHigh","yLow","yHigh","bezierBoundingBox","x0","y0","x1","y1","x2","y2","x3","y3","tvalues","bounds","t","t1","t2","b2ac","sqrtb2ac","abs","mt","j","jlen","decodeURIComponent","escape","promise","Promise","resolve","reject","data","reason","settled","__w_pdfjs_require__","RenderTask","PDFWorkerUtil","PDFWorker","PDFPageProxy","PDFDocumentProxy","PDFDocumentLoadingTask","PDFDataRangeTransport","LoopbackPort","DefaultStandardFontDataFactory","DefaultFilterFactory","DefaultCanvasFactory","DefaultCMapReaderFactory","_displaySvg","SVGGraphics","build","getDocument","version","_util","_annotation_storage","_display_utils","_font_loader","_displayNode_utils","_canvas","_worker_options","_message_handler","_metadata","_optional_content_config","_transport_stream","_displayFetch_stream","_displayNetwork","_displayNode_stream","_xfa_text","DEFAULT_RANGE_CHUNK_SIZE","RENDERING_CANCELLED_TIMEOUT","DELAYED_CLEANUP_TIMEOUT","NodeCanvasFactory","DOMCanvasFactory","NodeCMapReaderFactory","DOMCMapReaderFactory","NodeFilterFactory","DOMFilterFactory","NodeStandardFontDataFactory","DOMStandardFontDataFactory","src","range","task","docId","getUrlProp","getDataProp","httpHeaders","withCredentials","password","rangeTransport","rangeChunkSize","worker","docBaseUrl","isDataScheme","cMapUrl","cMapPacked","CMapReaderFactory","standardFontDataUrl","StandardFontDataFactory","ignoreErrors","stopAtErrors","maxImageSize","canvasMaxAreaInBytes","disableFontFace","fontExtraProperties","enableXfa","ownerDocument","document","disableRange","disableStream","disableAutoFetch","pdfBug","NaN","useSystemFonts","useWorkerFetch","isValidFetchUrl","baseURI","canvasFactory","filterFactory","transportFactory","cMapReaderFactory","isCompressed","standardFontDataFactory","workerParams","port","GlobalWorkerOptions","workerPort","fromPort","_worker","fetchDocParams","apiVersion","evaluatorOptions","transportParams","styleElement","then","destroyed","workerIdPromise","_fetchDocument","networkStreamPromise","networkStream","params","PDFDataTransportStream","initialData","progressiveDone","contentDispositionFilename","PDFNodeStream","PDFFetchStream","PDFNetworkStream","all","workerId","messageHandler","MessageHandler","transport","WorkerTransport","_transport","send","catch","_capability","async","source","sendWithPromise","val","href","window","location","Buffer","isNaN","static","onPassword","onProgress","destroy","_pendingDestroy","_rangeListeners","_progressListeners","_progressiveReadListeners","_progressiveDoneListeners","_readyCapability","addRangeListener","listener","addProgressListener","addProgressiveReadListener","addProgressiveDoneListener","onDataRange","begin","onDataProgress","loaded","total","onDataProgressiveRead","onDataProgressiveDone","transportReady","requestDataRange","end","abort","pdfInfo","_pdfInfo","deprecated","getJSActions","js","jsArr","annotationStorage","numPages","fingerprints","isPureXfa","_htmlForXfa","allXfaHtml","getPage","pageNumber","getPageIndex","ref","getDestinations","getDestination","id","getPageLabels","getPageLayout","getPageMode","getViewerPreferences","getOpenAction","getAttachments","getDocJSActions","getOutline","getOptionalContentConfig","getPermissions","getMetadata","getMarkInfo","getData","saveDocument","getDownloadInfo","downloadInfoCapability","cleanup","keepLoadedFonts","startCleanup","loadingTask","loadingParams","getFieldObjects","hasJSActions","getCalculationOrderIds","pageIndex","pageInfo","_pageIndex","_pageInfo","_stats","StatTimer","_pdfBug","commonObjs","objs","PDFObjects","_maybeCleanupAfterRender","_intentStates","rotate","userUnit","view","getViewport","scale","rotation","offsetX","offsetY","dontFlip","PageViewport","viewBox","getAnnotations","intent","intentArgs","getRenderingIntent","renderingIntent","getPageJSActions","getXfa","children","render","canvasContext","viewport","annotationMode","background","optionalContentConfigPromise","annotationCanvasMap","pageColors","printAnnotationStorage","time","intentState","cacheKey","set","streamReaderCancelTimeout","clearTimeout","intentPrint","displayReadyCapability","operatorList","fnArray","argsArray","lastChunk","separateAnnots","_pumpOperatorList","complete","error","renderTasks","delete","internalRenderTask","capability","_abortOperatorList","timeEnd","InternalRenderTask","callback","useRequestAnimationFrame","Set","add","renderTask","transparency","optionalContentConfig","initializeGraphics","operatorListChanged","getOperatorList","opListTask","opListReadCapability","streamTextContent","includeMarkedContent","disableNormalization","sendWithStream","highWaterMark","size","textContent","items","getTextContent","xfa","XfaText","readableStream","reader","getReader","styles","pump","read","done","assign","getStructTree","_destroy","waitOn","values","force","completed","cancel","clear","resetStats","success","delayed","setTimeout","_startRenderPage","_renderPageChunk","operatorListChunk","annotationStorageSerializable","transfers","streamReader","RenderingCancelledException","delay","extraDelay","curCacheKey","curIntentState","stats","postMessage","transfer","event","structuredClone","call","addEventListener","removeEventListener","terminate","isWorkerDisabled","fallbackWorkerSrc","fakeWorkerId","pdfjsFilePath","currentScript","replace","isSameOrigin","otherUrl","base","origin","other","createCDNWrapper","wrapper","createObjectURL","Blob","_port","_webWorker","_messageHandler","has","WeakMap","_initializeFromPort","_initialize","on","_mainThreadWorkerMessageHandler","workerSrc","Worker","terminateEarly","onWorkerError","_setupFakeWorker","sendTest","testObj","_setupFakeWorkerGlobal","WorkerMessageHandler","workerHandler","setup","cachedPort","pdfjsWorker","loader","mainWorkerMessageHandler","eval","loadScript","fontLoader","FontLoader","_params","destroyCapability","_networkStream","_fullReader","_lastProgress","setupMessageHandler","cachedPromise","AnnotationStorage","isOpList","SerializableEmpty","PrintAnnotationStorage","serializable","hash","page","hasOwnProperty","resetModified","terminated","cancelAllRequests","sink","getFullReader","evt","onPull","close","ArrayBuffer","enqueue","onCancel","ready","readyReason","headersCapability","fullReader","headersReady","isStreamingSupported","isRangeSupported","contentLength","rangeReader","getRangeReader","_numPages","htmlForXfa","exception","updatePassword","exportedData","exportedError","inspectFont","FontInspector","enabled","font","fontAdded","FontFaceObject","bind","finally","imageData","pageProxy","bitmap","width","height","fetch","filename","num","gen","results","OptionalContentConfig","metadata","Metadata","objId","onContinue","form","canvas","WeakSet","operatorListIdx","running","graphicsReadyCallback","graphicsReady","_useRequestAnimationFrame","cancelled","_cancelBound","_continueBound","_continue","_scheduleNextBound","_scheduleNext","_nextBound","_next","StepperManager","stepper","init","nextBreakPoint","getNextBreakPoint","gfx","CanvasGraphics","beginDrawing","endDrawing","updateOperatorList","requestAnimationFrame","executeOperatorList","_editor","_murmurhash","freeze","onSetModified","onResetModified","onAnnotationEditor","getValue","defaultValue","getRawValue","remove","AnnotationEditor","setValue","modified","entry","entries","_type","getAll","setAll","print","MurmurHash3_64","context","hasBitmap","serialized","serialize","update","JSON","stringify","hexdigest","parent","clone","_tools","focusin","focusout","_initialOptions","_uiManager","_focusEventsAllowed","_l10nPromise","_zIndex","ColorManager","parameters","div","uiManager","annotationElementId","_willKeepAspectRatio","isCentered","_structTreeParentId","rawDims","pageWidth","pageHeight","pageX","pageY","pageRotation","viewParameters","pageDimensions","pageTranslation","parentDimensions","x","y","isAttachedToDOM","deleted","editorType","getPrototypeOf","_defaultLineColor","_colorManager","getHexCode","deleteAnnotationElement","editor","fakeEditor","FakeEditor","getNextId","addToAnnotationStorage","initialize","l10n","strings","_borderLineWidth","style","getComputedStyle","documentElement","parseFloat","getPropertyValue","updateDefaultParams","_value","defaultPropertiesToUpdate","isHandlingMimeForPasting","mime","paste","item","propertiesToUpdate","_isDraggable","classList","toggle","center","parentRotation","fixAndSetPosition","addCommands","currentLayer","setInBackground","zIndex","setInForeground","setParent","setSelected","target","relatedTarget","closest","preventDefault","isMultipleSelection","commitOrRemove","isEmpty","commit","setAt","tx","ty","screenToPageTranslation","translate","translateInPage","scrollIntoView","block","drag","parentWidth","parentHeight","getBoundingClientRect","findNewParent","bx","by","left","toFixed","top","moveInDOM","angle","pageTranslationToScreen","parentScale","realScale","scaledWidth","scaledHeight","round","setDims","SMALL_EDITOR_SIZE","fixDims","widthPercent","endsWith","heightPercent","getInitialTranslation","createElement","classes","append","noContextMenu","prepend","button","ctrlKey","boundResizerPointermove","savedDraggable","pointerMoveOptions","passive","capture","savedX","savedY","savedWidth","savedHeight","savedParentCursor","cursor","savedCursor","pointerUpCallback","newX","newY","newWidth","newHeight","cmd","undo","mustExec","minWidth","MIN_SIZE","minHeight","rotationMatrix","transf","invRotationMatrix","getPoint","getOpposite","isDiagonal","isHorizontal","w","h","point","oppositePoint","transfOppositePoint","oppositeX","oppositeY","ratioX","ratioY","deltaX","deltaY","movementX","movementY","oldDiag","hypot","addAltTextButton","altText","className","setAttribute","tabIndex","stopPropagation","editAltText","PERCENT","tooltip","DELAY_TO_SHOW_TOOLTIP","_eventBus","dispatch","subtype","action","innerText","parentNode","getClientDimensions","altTextData","decorative","maxWidth","maxHeight","bindEvents","pointerdown","isSelected","pointerMoveCallback","setUpDragSession","e","dragSelectedEditors","endDragSession","shiftKey","metaKey","toggleSelected","moveEditorInDOM","_setParentAndPosition","changeParent","getRect","shiftX","shiftY","getRectInCurrentCoords","onceAdded","enableEditMode","disableEditMode","isInEditMode","shouldGetKeyboardEvents","needsToBeRebuilt","rebuild","isForCopying","deserialize","removeEditor","isResizable","makeResizable","select","unselect","contains","activeElement","focus","updateParams","disableEditing","hidden","enableEditing","enterInEditMode","contentDiv","isEditing","setActiveEditor","setAspectRatio","aspectRatio","KeyboardManager","CommandManager","AnnotationEditorUIManager","element","names","opacityToHex","opacity","IdManager","getId","ImageManager","_isSVGFittingCanvas","ctx","getContext","image","Image","drawImage","getImageData","rawData","refCounter","isSvg","response","ok","statusText","blob","file","mustRemoveAspectRatioPromise","fileReader","FileReader","imageElement","imagePromise","onload","svgUrl","result","onerror","readAsDataURL","createImageBitmap","getFromFile","lastModified","getFromUrl","getFromId","getSvgUrl","deleteId","isValidId","maxSize","overwriteIfSameType","keepUndo","next","splice","redo","hasSomethingToUndo","hasSomethingToRedo","callbacks","allKeys","isMacKey","split","at","altKey","exec","self","bubbles","args","checker","_colors","colors","getColorValues","convert","color","rgb","getRGB","matchMedia","matches","RGB","every","_colorsMapping","blur","copy","cut","keydown","onEditingAction","onPageChanging","onScaleChanging","onRotationChanging","hasSelectedEditor","_keyboardManager","proto","arrowChecker","hasSomethingToControl","small","TRANSLATE_SMALL","big","TRANSLATE_BIG","selectAll","unselectAll","translateSelectedEditors","container","viewer","altTextManager","eventBus","pdfDocument","_on","PixelsPerInch","PDF_TO_CSS_UNITS","_off","layer","hcmFilter","addHCMFilter","foreground","direction","focusMainContainer","findParent","layerX","layerY","disableUserSelect","addShouldRescale","removeShouldRescale","pagesRotation","hasSelection","lastEditor","lastActiveElement","once","addEditListeners","removeEditListeners","editors","clipboardData","setData","parse","isArray","newEditors","deserializedEditor","getActive","some","setEditingState","registerEditorTypes","types","getLayer","currentPageIndex","addLayer","enable","disable","removeLayer","updateMode","mode","editId","updateToolbar","addNewEditor","enableWaiting","mustWait","disableClick","enableClick","getEditors","getEditor","addEditor","addDeletedAnnotationElement","isDeletedAnnotationElement","removeDeletedAnnotationElement","addOrRebuild","ed","noCommit","totalX","totalY","savedPageIndex","newPageIndex","mustBeAddedInUndoStack","move","isActive","getMode","imageManager","PDFDateString","DOMSVGFactory","span","visibility","body","computedColor","getCurrentTransform","f","getTransform","getCurrentTransformInverse","invertSelf","getFilenameFromUrl","onlyStripPath","substring","lastIndexOf","getPdfFilenameFromUrl","defaultFilename","reFilename","splitURI","suggestedFilename","getXfaPageViewport","xfaPage","attributes","parseInt","isPdfFile","test","removeScriptElement","script","head","setLayerDimensions","mustFlip","mustRotate","useRound","widthStr","heightStr","_base_factory","SVG_NS","PDF","BaseFilterFactory","contain","position","svg","createElementNS","addFilter","maps","tableR","tableG","tableB","mapR","mapG","mapB","bufferR","bufferG","bufferB","filter","fgColor","bgColor","fgRGB","bgRGB","table","getSteps","start","arr","addHighlightHCMFilter","newFgColor","newBgColor","fgGray","bgGray","newFgRGB","newBgRGB","fg","bg","step","newStart","newStep","prev","k","keepHCM","feColorMatrix","feComponentTransfer","func","feFunc","rTable","gTable","bTable","BaseCanvasFactory","_document","_createCanvas","fetchData","asTypedArray","arrayBuffer","text","request","XMLHttpRequest","open","responseType","onreadystatechange","readyState","DONE","responseText","BaseCMapReaderFactory","_fetchData","compressionType","cMapData","BaseStandardFontDataFactory","BaseSVGFactory","_createSVG","centerX","centerY","rotateA","rotateB","rotateC","rotateD","offsetCanvasX","offsetCanvasY","convertToViewportPoint","convertToViewportRectangle","topLeft","bottomRight","convertToPdfPoint","trim","toLowerCase","pdfDateStringRegex","colorRGB","started","times","now","outBuf","longest","padEnd","toDateObject","input","RegExp","year","month","day","hour","minute","universalTimeRelation","offsetHour","offsetMinute","UTC","reset","canvasAndContext","skipDimensions","SEED","MASK_HIGH","MASK_LOW","seed","h1","h2","blockCounts","tailLength","dataUint32","k1","k2","C1","C2","C1_LOW","C2_LOW","nativeFontFaces","loadingRequests","loadTestFontId","addNativeFontFace","nativeFontFace","fonts","removeNativeFontFace","insertRule","rule","getElementsByTagName","styleSheet","sheet","cssRules","loadSystemFont","loadedName","isFontLoadingAPISupported","fontFace","FontFace","load","baseFontName","attached","missingFile","systemFontInfo","createNativeFontFace","family","createFontFaceRule","isSyncFontLoadingSupported","_queueLoadingCallback","_prepareFontLoadEvent","hasFonts","supported","userAgent","otherRequest","shift","_loadTestFont","testFont","atob","int32","offset","spliceString","s","insert","called","XXXX_VALUE","checksum","btoa","fontFamily","isFontReady","fillText","translatedData","compiledGlyphs","_inspectFont","cssFontInfo","css","weight","fontWeight","italicAngle","mimetype","getPathGenerator","character","cmds","jsBuf","current","readFile","createCanvas","_pattern_helper","_image_utils","MAX_GROUP_SIZE","FULL_CHUNK_HEIGHT","CachedCanvases","cache","getCanvas","canvasEntry","drawImageAtIntegerCoords","srcImg","srcX","srcY","srcW","srcH","destX","destY","destW","destH","tlX","rTlX","tlY","rTlY","brX","rWidth","brY","rHeight","setTransform","sign","CanvasExtraState","alphaIsShape","fontSize","fontSizeScale","textMatrix","textMatrixScale","fontMatrix","leading","lineX","lineY","charSpacing","wordSpacing","textHScale","textRenderingMode","textRise","fillColor","strokeColor","patternFill","fillAlpha","strokeAlpha","lineWidth","activeSMask","transferMaps","startNewPathAndClipBox","clipBox","setCurrentPoint","updatePathMinMax","minX","minY","maxX","maxY","updateRectMinMax","updateScalingPathMinMax","updateCurvePathMinMax","box","getPathBoundingBox","pathType","PathType","xStrokePad","yStrokePad","updateClipFromPath","isEmptyClip","Infinity","getClippedPathBoundingBox","putBinaryImageData","imgData","ImageData","putImageData","partialChunkHeight","fullChunks","totalChunks","chunkImgData","createImageData","destPos","srcPos","dest","thisChunkHeight","elemsInThisChunk","kind","srcLength","dest32","dest32DataLength","fullSrcDiff","white","black","srcDiff","kEnd","kEndUnrolled","mask","srcByte","putBinaryImageMask","convertBlackAndWhiteToRGBA","nonBlackColor","copyCtxState","sourceCtx","destCtx","properties","property","setLineDash","getLineDash","lineDashOffset","resetCtxToDefault","strokeStyle","fillStyle","fillRule","globalAlpha","lineCap","lineJoin","miterLimit","globalCompositeOperation","composeSMaskBackdrop","r0","g0","b0","alpha","alpha_","composeSMaskAlpha","maskData","layerData","transferMap","composeSMaskLuminosity","getImageSmoothingEnabled","interpolate","fround","actualScale","devicePixelRatio","LINE_CAP_STYLES","LINE_JOIN_STYLES","NORMAL_CLIP","EO_CLIP","canvasCtx","markedContentStack","stateStack","pendingClip","pendingEOFill","res","xobjs","groupStack","processingType3","baseTransform","baseTransformStack","groupLevel","smaskStack","smaskCounter","tempSMask","suspendedCtx","contentVisible","cachedCanvases","cachedPatterns","viewportScale","outputScaleX","outputScaleY","_cachedScaleForStroking","_cachedGetSinglePixelWidth","_cachedBitmapsMap","getObject","fallback","savedFillStyle","fillRect","transparentCanvas","compositeCtx","executionStartIdx","continueCallback","argsArrayLen","chunkOperations","endTime","steps","fnId","breakIt","depObjId","objsPool","inSMaskMode","HTMLCanvasElement","hcmFilterId","savedFilter","_scaleImage","img","tmpCanvas","tmpCtx","widthScale","heightScale","paintWidth","paintHeight","tmpCanvasId","ceil","clearRect","_createMaskCanvas","isPatternFill","currentTransform","scaled","maskCanvas","count","mainKey","cachedImage","maskToCanvas","cord1","cord2","drawnWidth","drawnHeight","fillCanvas","fillCtx","imageSmoothingEnabled","inverse","getPattern","limit","dashArray","dashPhase","flatness","states","checkSMaskState","beginSMaskMode","endSMaskMode","cacheId","scratchCanvas","_removeMirroring","__originalSave","__originalRestore","__originalRotate","__originalScale","__originalTranslate","__originalTransform","__originalSetTransform","__originalResetTransform","resetTransform","__originalClip","__originalMoveTo","__originalLineTo","__originalBezierCurveTo","bezierCurveTo","__originalRect","__originalClosePath","__originalBeginPath","beginPath","cp1x","cp1y","cp2x","cp2y","mirrorContextOperations","compose","dirtyBox","smask","layerCtx","layerBox","layerOffsetX","layerOffsetY","layerWidth","layerHeight","maskCtx","backdrop","maskOffsetX","maskOffsetY","hasBackdrop","composeFn","chunkSize","row","chunkHeight","genericComposeSMask","composeSMask","old","pop","ops","startX","startY","isScalingMatrix","minMaxForBezier","xw","yh","consumePath","rescaleAndStroke","needRestore","paths","pendingTextPaths","path","addToPath","spacing","fontRefName","fontObj","fontDirection","isType3Font","typeface","fallbackName","bold","italic","browserFontSize","rise","paintChar","patternTransform","fillStrokeMode","isAddToPathSet","strokeText","isFontSubpixelAAEnabled","glyphs","showType3Text","glyphsLength","vertical","spacingDir","defaultVMetrics","widthAdvanceScale","simpleFillText","pattern","getSinglePixelWidth","isInvalidPDFjsFont","chars","glyph","unicode","restoreNeeded","isSpace","fontChar","accent","scaledX","scaledY","vmetric","vx","vy","remeasure","measuredWidth","measureText","characterScaleX","isInFont","scaledAccentX","scaledAccentY","spacingLength","charProcOperatorList","operatorListId","xWidth","yWidth","llx","lly","urx","ury","getColorN_Pattern","IR","canvasGraphicsFactory","createCanvasGraphics","TilingPattern","_getPattern","arguments","matrix","getShadingPattern","SHADING","inv","bbox","group","currentCtx","isolated","knockout","canvasBounds","scaleX","scaleY","groupCtx","startTransformInverse","currentMtx","hasOwnCanvas","canvasWidth","canvasHeight","annotationCanvas","savedCtx","compiled","POINT_TYPES","width1","j0","points","lineSize","pos","elem","sum","Int32Array","Path2D","p0","pp","compileType3Glyph","skewX","skewY","positions","trans","images","applyTransferMapsToCanvas","applyTransferMapsToBitmap","imgToPaint","HTMLElement","tag","visible","isVisible","isContentVisible","absDet","normX","normY","getScaleForStroking","scaledLineWidth","scaledXLineWidth","scaledYLineWidth","baseArea","saveRestore","dashes","op","RadialAxialShadingPattern","MeshShadingPattern","DummyShadingPattern","applyBoundingBox","region","BaseShadingPattern","_bbox","_colorStops","_p0","_p1","_r0","_r1","_createGradient","grad","createLinearGradient","createRadialGradient","colorStop","addColorStop","owner","ownerBBox","createPattern","domMatrix","DOMMatrix","drawTriangle","c1","c2","c3","coords","rowSize","tmp","c1r","c1g","c1b","c2r","c2g","c2b","c3r","c3g","c3b","xa","car","cag","cab","xb","cbr","cbg","cbb","x1_","x2_","drawFigure","figure","ps","cs","verticesPerRow","rows","cols","q","_coords","_figures","_bounds","_background","_createMeshCanvas","combinedScale","backgroundColor","boundsWidth","boundsHeight","paddedWidth","BORDER_SIZE","paddedHeight","matrixScale","temporaryPatternCanvas","xstep","ystep","paintType","tilingType","createPatternCanvas","curMatrixScale","dimx","getSizeAndScale","dimy","graphics","setFillAndStrokeStyleToContext","adjustedX0","adjustedY0","adjustedX1","adjustedY1","clipBbox","realOutputSize","MAX_PATTERN_SIZE","bboxWidth","bboxHeight","cssColor","convertToRGBA","len32","src32","s1","s2","s3","jj","convertRGBToRGBA","grayToRGBA","inverseDecode","zeroMapping","oneMapping","widthInSource","widthRemainder","wrapReason","sourceName","targetName","comObj","callbackId","streamId","streamSinks","streamControllers","callbackCapabilities","actionHandler","_onComObjOnMessage","stream","cbSourceName","cbTargetName","actionName","handler","ah","queueingStrategy","ReadableStream","controller","startCapability","startCall","pullCall","cancelCall","isClosed","desiredSize","pull","pullCapability","cancelCapability","streamSink","isCancelled","lastDesiredSize","sinkCapability","streamController","allSettled","parsedData","getRaw","INTERNAL","Symbol","OptionalContentGroup","_setVisible","internal","creator","order","groups","baseState","off","getHash","array","operator","state","expression","policy","ids","setVisibility","hasInitialVisibility","getOrder","getGroups","getGroup","pdfDataRangeTransport","_queuedChunks","_progressiveDone","_contentDispositionFilename","_pdfDataRangeTransport","_isStreamingSupported","_isRangeSupported","_contentLength","_fullRequestReader","_rangeReaders","_onReceiveData","_onProgress","_onProgressiveDone","_enqueue","found","_begin","_progressiveDataLength","_loaded","_removeRangeReader","indexOf","queuedChunks","PDFDataTransportStreamReader","PDFDataTransportStreamRangeReader","_stream","_done","_filename","_requests","_headersReady","requestCapability","_end","_queuedChunk","_network_utils","createFetchOptions","headers","abortController","method","signal","credentials","redirect","createHeaders","Headers","getArrayBuffer","isHttp","_rangeRequestReaders","PDFFetchStreamReader","PDFFetchStreamRangeReader","_reader","_withCredentials","_headersCapability","_disableRange","_rangeChunkSize","_abortController","AbortController","_headers","validateResponseStatus","createResponseStatusError","getResponseHeader","allowRangeRequests","suggestedLength","validateRangeRequestCapabilities","extractFilenameFromHeader","_readCapability","contentDisposition","_content_disposition","getFilenameFromContentDispositionHeader","returnValues","needsEncodingFixup","toParamRegExp","rfc2616unquote","rfc5987decode","rfc2047decode","fixupEncoding","contentDispositionStr","iter","quot","part","parts","rfc2231getparam","attributePattern","flags","textdecode","quotindex","extvalue","encodingend","charset","hex","NetworkManager","currXhrId","pendingRequests","requestRange","listeners","requestFull","xhr","xhrId","pendingRequest","setRequestHeader","expectedStatus","onError","onStateChange","onprogress","onHeadersReceived","onDone","xhrStatus","rangeHeader","getRequestXhr","isPendingRequest","abortRequest","_source","_manager","_onRangeRequestReaderClosed","PDFNetworkStreamFullRequestReader","PDFNetworkStreamRangeRequestReader","onClosed","manager","_onHeadersReceived","_onDone","_onError","_url","_fullRequestId","_headersReceivedCapability","_cachedChunks","_storedError","fullRequestXhrId","fullRequestXhr","lengthComputable","_requestId","_close","fileUriRegex","sourceUrl","parsedUrl","host","parseUrl","isFsUrl","PDFNodeStreamFsFullReader","PDFNodeStreamFullReader","PDFNodeStreamFsRangeReader","PDFNodeStreamRangeReader","BaseFullReader","_readableStream","_error","_setReadableStream","BaseRangeReader","createRequestOptions","auth","hostname","handleResponse","statusCode","_request","http","https","_httpHeaders","Range","fs","lstat","stat","createReadStream","SVG_DEFAULTS","contentType","forceDataSchema","digits","b1","b2","b3","convertImgDataToPng","PNG_HEADER","crcTable","writePngChunk","len","crc","crc32","deflateSyncUncompressed","literals","maxBlockLength","deflateBlocks","idat","pi","adler","adler32","isMask","bitDepth","colorType","offsetLiterals","offsetBytes","ihdr","node","from","output","deflateSync","pngLength","CHUNK_WRAPPER_SIZE","encode","SVGExtraState","dependencies","activeClipUrl","clipGroup","maskId","pf","pm","acos","clipCount","maskCount","shadingCount","svgFactory","transformMatrix","transformStack","extraStack","embedFonts","embeddedFonts","cssStyle","_operatorIdMapping","tgrp","executeOpTree","loadDependencies","getSVG","svgElement","convertOpList","operatorIdMapping","opList","fn","opTree","opListElement","opListToTree","opTreeElement","lineMatrix","xcoords","ycoords","tspan","setAttributeNS","txtElement","txtgrp","fontStyle","lineWidthScale","_setStrokeAttributes","_ensureTransformGroup","addFontStyle","defs","hasChildNodes","setStrokeAlpha","setFillAlpha","_makeColorN_Pattern","_makeShadingPattern","_makeTilingPattern","tilingId","tx0","ty0","tx1","ty1","xscale","yscale","txstep","tystep","tiling","childNodes","shadingId","colorStops","gradient","point0","point1","focalPoint","circlePoint","focalRadius","circleRadius","stop","getAttributeNS","clipId","clipPath","clipElement","cloneNode","imgSrc","cliprect","imgEl","definitions","rootGroup","_ensureClipGroup","walk","shouldBuildText","child","TextLayerRenderTask","renderTextLayer","textContentSource","textContentStream","scaleFactor","_render","updateTextLayer","textDivs","textDivProperties","mustRescale","getCtx","prevFontSize","prevFontFamily","layout","DEFAULT_FONT_SIZE","ascentCache","appendText","geom","textDiv","hasText","hasEOL","_textDivs","_transform","atan2","fontName","fontHeight","fontAscent","cachedAscent","metrics","ascent","fontBoundingBoxAscent","descent","fontBoundingBoxDescent","ratio","pixels","getAscent","_isOffscreenCanvasSupported","sin","cos","scaleFactorStr","divStyle","_container","_rootContainer","_pageWidth","_pageHeight","dir","_fontInspectorEnabled","dataset","shouldScaleText","absScaleX","absScaleY","_textDivProperties","_isReadableStream","_layoutText","textContentItemsStr","_textContentSource","_textContentItemsStr","_canceled","_layoutTextParams","_processItems","styleCache","br","AnnotationEditorLayer","_freetext","_ink","_stamp","pointerup","accessibilityManager","annotationLayer","editorTypes","FreeTextEditor","InkEditor","StampEditor","_initialized","addInkEditorIfNeeded","isCommitting","pointerEvents","annotationElementIds","editables","getEditableAnnotations","editable","hide","hiddenAnnotationIds","getEditableAnnotation","show","attach","detach","removePointerInTextLayer","moveElementInDOM","addUndoableEditor","pasteEditor","annotationType","annotationEditorType","innerWidth","innerHeight","_annotation_layer","editorDivBlur","editorDivFocus","editorDivInput","editorDivKeydown","_translateEmpty","_defaultColor","_defaultFontSize","_internalPadding","setFontsize","editorDiv","savedFontsize","savedColor","overlayDiv","contentEditable","removeAttribute","preventScroll","divs","savedDisplay","display","savedText","newText","trimEnd","setText","dblclick","baseX","baseY","posX","posY","replaceChildren","line","createTextNode","FreeTextAnnotationElement","defaultAppearanceData","fontColor","textPosition","padding","structTreeParentId","StampAnnotationElement","InkAnnotationElement","AnnotationLayer","_scripting_utils","_displayL10n_utils","_xfa_layer","DEFAULT_TAB_INDEX","GetElementsByNameSet","getRectDims","AnnotationElementFactory","LinkAnnotationElement","TextAnnotationElement","fieldType","TextWidgetAnnotationElement","radioButton","RadioButtonWidgetAnnotationElement","checkBox","CheckboxWidgetAnnotationElement","PushButtonWidgetAnnotationElement","ChoiceWidgetAnnotationElement","SignatureWidgetAnnotationElement","WidgetAnnotationElement","PopupAnnotationElement","LineAnnotationElement","SquareAnnotationElement","CircleAnnotationElement","PolylineAnnotationElement","CaretAnnotationElement","PolygonAnnotationElement","HighlightAnnotationElement","UnderlineAnnotationElement","SquigglyAnnotationElement","StrikeOutAnnotationElement","FileAttachmentAnnotationElement","AnnotationElement","isRenderable","ignoreBorder","createQuadrilaterals","linkService","downloadManager","imageResourcesPath","renderForms","enableScripting","_fieldObjects","fieldObjects","_createContainer","_createQuadrilaterals","_hasPopupData","titleObj","contentsObj","richText","hasPopupData","popupRef","noRotate","setRotation","borderStyle","borderWidth","horizontalRadius","horizontalCornerRadius","verticalRadius","verticalCornerRadius","radius","borderRadius","borderBottomStyle","borderColor","elementWidth","elementHeight","_commonActions","setColor","jsName","styleName","detail","colorArray","ColorConverters","noView","noPrint","userName","title","readonly","disabled","required","_setRequired","textColor","_dispatchEventFromSandbox","actions","jsEvent","commonActions","_setDefaultPropertiesFromJS","storedData","quadPoints","rectBlX","rectBlY","rectTrX","rectTrY","trX","trY","blX","blY","svgBuffer","rectWidth","rectHeight","backgroundImage","_createPopup","popup","modificationDate","parentRect","elements","_getElementsByName","skipId","fields","fieldObj","exportValues","exportValue","domElement","querySelector","getElementsByName","getAttribute","maybeShow","forceHide","getElementsToTriggerPopup","addHighlightArea","triggers","_editOnDoubleClick","isTooltipOnly","link","isBound","addLinkAttributes","newWindow","_bindNamedAction","attachment","_bindAttachment","setOCGState","_bindLink","Action","_bindJSAction","resetForm","_bindResetFormAction","destination","getDestinationHash","onclick","goToDestination","getAnchorUrl","executeNamedAction","openOrDownloadData","content","executeSetOCGState","otherClickAction","resetFormFields","refs","resetFormRefs","include","allFields","fieldIds","fieldName","field","storage","allIds","dispatchEvent","Event","alt","l10nId","l10nArgs","alternativeText","showElementAndHideCanvas","previousSibling","nodeName","_getKeyModifier","_setEventListener","elementData","baseName","eventName","valueGetter","modifier","focused","_setEventListeners","getter","Blur","Focus","_setBackgroundColor","_setTextStyle","computedFontSize","roundToOneDecimal","multiLine","lineHeight","textAlignment","textAlign","isRequired","hasAppearance","fieldValue","setPropertyOnSiblings","keyInStorage","maxLen","charLimit","fieldFormattedValues","formattedValue","comb","userValue","lastCommittedValue","commitKey","doNotScroll","overflowY","overflowX","readOnly","maxLength","defaultFieldValue","blurListener","scrollLeft","selRange","setSelectionRange","willCommit","selStart","selectionStart","selEnd","selectionEnd","_blurListener","Keystroke","inputType","change","combWidth","letterSpacing","verticalAlign","checked","checkbox","curChecked","buttonValue","radio","pdfButtonValue","linkElement","lastChild","selectElement","addAnEmptyEntry","combo","multiSelect","multiple","option","selected","optionElement","displayValue","removeEmptyEntry","noneOptionElement","isExport","selectedIndex","selectedValues","getItems","multipleSelection","index","findIndex","selectChild","before","indices","changeEx","keyDown","PopupElement","elementIds","dateObject","toLocaleDateString","toLocaleTimeString","trigger","flatMap","baseColor","outlineColor","BACKGROUND_ENLIGHT","header","localized","contents","_formatContents","XfaLayer","xfaHtml","html","useParentRect","normalizedRect","popupLeft","popupTop","lines","lineSpan","lineCoordinates","square","circle","containerClassName","svgElementName","coordinate","vertices","polyline","inkList","inkLists","NullL10n","contentElement","firstChild","annotations","popupToElements","elementParams","noHTML","isPopupAnnotation","rendered","replaceWith","makeColorComp","scaleAndClamp","CMYK_G","G_CMYK","G_RGB","G_rgb","G_HTML","G","RGB_G","RGB_rgb","RGB_HTML","T_HTML","T_rgb","CMYK_RGB","CMYK_rgb","CMYK_HTML","components","RGB_CMYK","getL10nFallback","DEFAULT_L10N_STRINGS","of_pages","page_of_pages","document_properties_kb","document_properties_mb","document_properties_date_string","document_properties_page_size_unit_inches","document_properties_page_size_unit_millimeters","document_properties_page_size_orientation_portrait","document_properties_page_size_orientation_landscape","document_properties_page_size_name_a3","document_properties_page_size_name_a4","document_properties_page_size_name_letter","document_properties_page_size_name_legal","document_properties_page_size_dimension_string","document_properties_page_size_dimension_name_string","document_properties_linearized_yes","document_properties_linearized_no","additional_layers","page_landmark","thumb_page_title","thumb_page_canvas","find_reached_top","find_reached_bottom","find_not_found","page_scale_width","page_scale_fit","page_scale_auto","page_scale_actual","page_scale_percent","loading_error","invalid_file_error","missing_file_error","unexpected_response_error","rendering_error","annotation_date_string","printing_not_supported","printing_not_ready","web_fonts_disabled","free_text2_default_content","editor_free_text2_aria_label","editor_ink2_aria_label","editor_ink_canvas_aria_label","editor_alt_text_button_label","editor_alt_text_edit_button_label","editor_alt_text_decorative_tooltip","print_progress_percent","formatL10nValue","setupStorage","xfaOn","xfaOff","setAttributes","isHTMLAnchorElement","HTMLAnchorElement","dataId","rootHtml","stack","rootDiv","childHtml","xmlns","el","querySelectorAll","canvasPointermove","canvasPointerleave","canvasPointerup","canvasPointerdown","thickness","bezierPath2D","allRawPaths","currentPath","translationX","translationY","_defaultThickness","_defaultOpacity","savedThickness","savedOpacity","disconnect","setDimensions","lastX","lastY","path2D","lastPoint","bezier","xy","lastPoints","prevX","prevY","bezierPoints","control1","control2","ResizeObserver","contentRect","observe","roundedWidth","roundedHeight","scaleFactorW","scaleFactorH","p10","p11","p20","p21","p30","p31","p40","p41","xMin","xMax","yMin","yMax","firstTime","prevTranslationX","prevTranslationY","unscaledPadding","bitmapUrl","bitmapFile","supportedTypes","supportedTypesStr","getAsFile","fromId","accept","files","click","MAX_RATIO","factor","bitmapWidth","bitmapHeight","prevWidth","prevHeight","offscreen","transferToImageBitmap","toUrl","toDataURL","bitmapId","accessibilityData","stamps","area","prevData","__webpack_module_cache__","moduleId","cachedModule","module","_annotation_editor_layer","_api","_text_layer","pdfjsLib"],"sourceRoot":""}