{"mappings":";AAAA,OAAOA,MAAU,gCAEjB,IAAIC,EAAO,CAAC,EAIZA,EAAK,QAAU,SAASC,EACxB,CACC,IAAIC,EAAID,EAAI,MAAOE,EAAIF,EAAI,OAC3B,GAAGA,EAAI,KAAK,MAAM,KAAM,MAAO,CAACD,EAAK,QAAQ,YAAYC,EAAI,KAAMC,EAAGC,EAAGF,CAAG,EAAE,MAAM,EAEpF,IAAIG,EAAO,CAAC,EACTH,EAAI,OAAO,CAAC,EAAE,MAAM,OAAMA,EAAI,OAAO,CAAC,EAAE,KAAOA,EAAI,MAGtD,QADII,EAAMH,EAAEC,EAAE,EAAGG,EAAM,IAAI,WAAWD,CAAG,EAAGE,EAAQ,IAAI,WAAWF,CAAG,EAAGG,EAAK,IAAI,WAAWH,CAAG,EACxFI,EAAE,EAAGA,EAAER,EAAI,OAAO,OAAQQ,IAClC,CACC,IAAIC,EAAMT,EAAI,OAAOQ,CAAC,EAClBE,EAAGD,EAAI,KAAK,EAAGE,EAAGF,EAAI,KAAK,EAAGG,EAAKH,EAAI,KAAK,MAAOI,EAAKJ,EAAI,KAAK,OACjEK,EAAQf,EAAK,QAAQ,YAAYU,EAAI,KAAMG,EAAGC,EAAIb,CAAG,EAEzD,GAAGQ,GAAG,EAAG,QAAQO,EAAE,EAAGA,EAAEX,EAAKW,IAAKR,EAAKQ,CAAC,EAAEV,EAAIU,CAAC,EAO/C,GALQN,EAAI,OAAO,EAAGV,EAAK,UAAUe,EAAOF,EAAIC,EAAIR,EAAKJ,EAAGC,EAAGQ,EAAIC,EAAI,CAAC,EAChEF,EAAI,OAAO,GAAGV,EAAK,UAAUe,EAAOF,EAAIC,EAAIR,EAAKJ,EAAGC,EAAGQ,EAAIC,EAAI,CAAC,EAExER,EAAK,KAAKE,EAAI,OAAO,MAAM,CAAC,CAAC,EAErBI,EAAI,SAAS,GAChB,GAAGA,EAAI,SAAS,EAAGV,EAAK,UAAUO,EAAOM,EAAIC,EAAIR,EAAKJ,EAAGC,EAAGQ,EAAIC,EAAI,CAAC,UAClEF,EAAI,SAAS,EAAG,QAAQM,EAAE,EAAGA,EAAEX,EAAKW,IAAKV,EAAIU,CAAC,EAAER,EAAKQ,CAAC,EAC/D,CACA,OAAOZ,CACR,EACAJ,EAAK,QAAQ,YAAc,SAASiB,EAAMf,EAAGC,EAAGF,EAChD,CACC,IAAIiB,EAAOhB,EAAEC,EAAGgB,EAAMnB,EAAK,OAAO,QAAQC,CAAG,EACzCmB,EAAM,KAAK,KAAKlB,EAAEiB,EAAI,CAAC,EAEvBE,EAAK,IAAI,WAAWH,EAAK,CAAC,EAAGI,EAAO,IAAI,YAAYD,EAAG,MAAM,EAC7DE,EAAQtB,EAAI,MAAOuB,EAAQvB,EAAI,MAC/BwB,EAAKzB,EAAK,KAAK,WAGf0B,EAAO,KAAK,IAAI,EAEpB,GAAQH,GAAO,EAAG,CACjB,IAAII,EAAQT,GAAM,EAClB,GAAGM,GAAQ,EAAG,QAAQf,EAAE,EAAGA,EAAEkB,EAAMlB,GAAG,EAAMY,EAAGZ,CAAC,EAAIQ,EAAKR,CAAC,EAAIY,EAAGZ,EAAE,CAAC,EAAIQ,EAAKR,EAAE,CAAC,EAAIY,EAAGZ,EAAE,CAAC,EAAIQ,EAAKR,EAAE,CAAC,EAAIY,EAAGZ,EAAE,CAAC,EAAIQ,EAAKR,EAAE,CAAC,EAC5H,GAAGe,GAAO,GAAI,QAAQf,EAAE,EAAGA,EAAEkB,EAAMlB,IAASY,EAAGZ,CAAC,EAAIQ,EAAKR,GAAG,CAAC,CAC9D,SACQc,GAAO,EAAG,CACjB,IAAIK,EAAG3B,EAAI,KAAK,KAChB,GAAG2B,GAAI,KAAM,CACZ,GAAGJ,GAAQ,EAAG,QAAQf,EAAE,EAAGA,EAAES,EAAMT,IAAK,CAAG,IAAIoB,EAAGpB,EAAE,EAAIa,EAAKb,CAAC,EAAK,KAAK,GAAKQ,EAAKY,EAAG,CAAC,GAAG,GAAKZ,EAAKY,EAAG,CAAC,GAAG,EAAGZ,EAAKY,CAAE,CAAI,CACxH,GAAGL,GAAO,GAAI,QAAQf,EAAE,EAAGA,EAAES,EAAMT,IAAK,CAAG,IAAIoB,EAAGpB,EAAE,EAAIa,EAAKb,CAAC,EAAK,KAAK,GAAKQ,EAAKY,EAAG,CAAC,GAAG,GAAKZ,EAAKY,EAAG,CAAC,GAAG,EAAGZ,EAAKY,CAAE,CAAI,CACzH,KACK,CAAG,IAAIC,EAAGF,EAAG,CAAC,EAAGG,EAAGH,EAAG,CAAC,EAAGI,EAAGJ,EAAG,CAAC,EACtC,GAAGJ,GAAQ,EAAG,QAAQf,EAAE,EAAGA,EAAES,EAAMT,IAAK,CAAG,IAAIwB,EAAGxB,GAAG,EAAGoB,EAAGpB,EAAE,EAAIa,EAAKb,CAAC,EAAK,KAAK,GAAKQ,EAAKY,EAAG,CAAC,GAAG,GAAKZ,EAAKY,EAAG,CAAC,GAAG,EAAGZ,EAAKY,CAAE,EACzHZ,EAAKY,CAAE,GAAMC,GAAMb,EAAKY,EAAG,CAAC,GAAME,GAAMd,EAAKY,EAAG,CAAC,GAAMG,IAAIX,EAAGY,EAAG,CAAC,EAAI,EAAI,CAC9E,GAAGT,GAAO,GAAI,QAAQf,EAAE,EAAGA,EAAES,EAAMT,IAAK,CAAG,IAAIwB,EAAGxB,GAAG,EAAGoB,EAAGpB,EAAE,EAAIa,EAAKb,CAAC,EAAK,KAAK,GAAKQ,EAAKY,EAAG,CAAC,GAAG,GAAKZ,EAAKY,EAAG,CAAC,GAAG,EAAGZ,EAAKY,CAAE,EACzHJ,EAAGR,EAAKY,CAAE,GAAGC,GAAML,EAAGR,EAAKY,EAAG,CAAC,GAAGE,GAAMN,EAAGR,EAAKY,EAAG,CAAC,GAAGG,IAAIX,EAAGY,EAAG,CAAC,EAAI,EAAI,CAC/E,CACD,SACQV,GAAO,EAAG,CACjB,IAAIW,EAAEjC,EAAI,KAAK,KAASkC,EAAGlC,EAAI,KAAK,KAASmC,EAAGD,EAAGA,EAAG,OAAO,EAE7D,GAAGX,GAAO,EAAG,QAAQa,EAAE,EAAGA,EAAElC,EAAGkC,IAC9B,QAD0CC,EAAKD,EAAEjB,EAAKmB,EAAKF,EAAEnC,EACrDO,EAAE,EAAGA,EAAEP,EAAGO,IAAK,CAAE,IAAIwB,EAAIM,EAAG9B,GAAI,EAAGO,EAAIC,EAAKqB,GAAI7B,GAAG,EAAE,GAAI,IAAIA,EAAE,IAAI,GAAM,EAAI+B,EAAG,EAAExB,EAAIK,EAAGY,CAAE,EAAEC,EAAEM,CAAE,EAAInB,EAAGY,EAAG,CAAC,EAAEC,EAAEM,EAAG,CAAC,EAAInB,EAAGY,EAAG,CAAC,EAAEC,EAAEM,EAAG,CAAC,EAAInB,EAAGY,EAAG,CAAC,EAAGjB,EAAEoB,EAAID,EAAGnB,CAAC,EAAE,GAAM,CAEhL,GAAGQ,GAAO,EAAG,QAAQa,EAAE,EAAGA,EAAElC,EAAGkC,IAC9B,QAD0CC,EAAKD,EAAEjB,EAAKmB,EAAKF,EAAEnC,EACrDO,EAAE,EAAGA,EAAEP,EAAGO,IAAK,CAAE,IAAIwB,EAAIM,EAAG9B,GAAI,EAAGO,EAAIC,EAAKqB,GAAI7B,GAAG,EAAE,GAAI,IAAIA,EAAE,IAAI,GAAM,EAAI+B,EAAG,EAAExB,EAAIK,EAAGY,CAAE,EAAEC,EAAEM,CAAE,EAAInB,EAAGY,EAAG,CAAC,EAAEC,EAAEM,EAAG,CAAC,EAAInB,EAAGY,EAAG,CAAC,EAAEC,EAAEM,EAAG,CAAC,EAAInB,EAAGY,EAAG,CAAC,EAAGjB,EAAEoB,EAAID,EAAGnB,CAAC,EAAE,GAAM,CAEhL,GAAGQ,GAAO,EAAG,QAAQa,EAAE,EAAGA,EAAElC,EAAGkC,IAC9B,QAD0CC,EAAKD,EAAEjB,EAAKmB,EAAKF,EAAEnC,EACrDO,EAAE,EAAGA,EAAEP,EAAGO,IAAK,CAAE,IAAIwB,EAAIM,EAAG9B,GAAI,EAAGO,EAAIC,EAAKqB,GAAI7B,GAAG,EAAE,GAAI,IAAIA,EAAE,IAAI,GAAK,GAAK+B,EAAG,EAAExB,EAAIK,EAAGY,CAAE,EAAEC,EAAEM,CAAE,EAAInB,EAAGY,EAAG,CAAC,EAAEC,EAAEM,EAAG,CAAC,EAAInB,EAAGY,EAAG,CAAC,EAAEC,EAAEM,EAAG,CAAC,EAAInB,EAAGY,EAAG,CAAC,EAAGjB,EAAEoB,EAAID,EAAGnB,CAAC,EAAE,GAAM,CAEhL,GAAGQ,GAAO,EAAG,QAAQf,EAAE,EAAGA,EAAES,EAAMT,IAAM,CAAG,IAAIwB,EAAGxB,GAAG,EAAGO,EAAEC,EAAKR,CAAC,EAAyB+B,EAAG,EAAExB,EAAIK,EAAGY,CAAE,EAAEC,EAAEM,CAAE,EAAInB,EAAGY,EAAG,CAAC,EAAEC,EAAEM,EAAG,CAAC,EAAInB,EAAGY,EAAG,CAAC,EAAEC,EAAEM,EAAG,CAAC,EAAInB,EAAGY,EAAG,CAAC,EAAGjB,EAAEoB,EAAID,EAAGnB,CAAC,EAAE,GAAM,CACpL,SACQO,GAAO,EAAG,CACjB,GAAGC,GAAQ,EAAI,QAAQf,EAAE,EAAGA,EAAES,EAAMT,IAAK,CAAG,IAAIwB,EAAGxB,GAAG,EAAGgC,EAAGhC,GAAG,EAAGiC,EAAGzB,EAAKwB,CAAE,EAAIpB,EAAGY,CAAE,EAAES,EAAKrB,EAAGY,EAAG,CAAC,EAAES,EAAKrB,EAAGY,EAAG,CAAC,EAAES,EAAKrB,EAAGY,EAAG,CAAC,EAAEhB,EAAKwB,EAAG,CAAC,CAAI,CAC9I,GAAGjB,GAAO,GAAK,QAAQf,EAAE,EAAGA,EAAES,EAAMT,IAAK,CAAG,IAAIwB,EAAGxB,GAAG,EAAGgC,EAAGhC,GAAG,EAAGiC,EAAGzB,EAAKwB,CAAE,EAAIpB,EAAGY,CAAE,EAAES,EAAKrB,EAAGY,EAAG,CAAC,EAAES,EAAKrB,EAAGY,EAAG,CAAC,EAAES,EAAKrB,EAAGY,EAAG,CAAC,EAAEhB,EAAKwB,EAAG,CAAC,CAAI,CAC/I,SACQlB,GAAO,EAEd,QADIO,EAAK7B,EAAI,KAAK,KAAUA,EAAI,KAAK,KAAU,GACvCoC,EAAE,EAAGA,EAAElC,EAAGkC,IAAK,CACtB,IAAIM,EAAMN,EAAEjB,EAAKwB,EAAKP,EAAEnC,EACxB,GAAQsB,GAAQ,EAAG,QAAQqB,EAAE,EAAGA,EAAE3C,EAAG2C,IAAK,CAAG,IAAIH,EAAG,KAAMzB,EAAK0B,GAAKE,IAAI,EAAE,IAAK,GAAKA,EAAE,GAAU,GAAIC,EAAIJ,GAAIZ,EAAG,IAAK,EAAE,IAAMR,EAAKsB,EAAGC,CAAC,EAAGC,GAAI,GAAKJ,GAAI,GAAKA,GAAI,EAAGA,CAAK,SAC9JlB,GAAQ,EAAG,QAAQqB,EAAE,EAAGA,EAAE3C,EAAG2C,IAAK,CAAG,IAAIH,EAAI,IAAKzB,EAAK0B,GAAKE,IAAI,EAAE,IAAK,IAAKA,EAAE,IAAI,GAAM,GAAIC,EAAIJ,GAAIZ,EAAI,GAAI,EAAE,IAAMR,EAAKsB,EAAGC,CAAC,EAAGC,GAAI,GAAKJ,GAAI,GAAKA,GAAI,EAAGA,CAAK,SAC9JlB,GAAQ,EAAG,QAAQqB,EAAE,EAAGA,EAAE3C,EAAG2C,IAAK,CAAG,IAAIH,EAAI,IAAKzB,EAAK0B,GAAKE,IAAI,EAAE,IAAK,IAAKA,EAAE,IAAI,GAAK,IAAKC,EAAIJ,GAAIZ,EAAI,GAAI,EAAE,IAAMR,EAAKsB,EAAGC,CAAC,EAAGC,GAAI,GAAKJ,GAAI,GAAKA,GAAI,EAAGA,CAAK,SAC9JlB,GAAQ,EAAG,QAAQqB,EAAE,EAAGA,EAAE3C,EAAG2C,IAAK,CAAG,IAAIH,EAAGzB,EAAK0B,EAASE,CAAC,EAAGC,EAAIJ,GAAqBZ,EAAI,EAAE,IAAMR,EAAKsB,EAAGC,CAAC,EAAGC,GAAI,GAAKJ,GAAI,GAAKA,GAAI,EAAGA,CAAK,SAC7IlB,GAAO,GAAI,QAAQqB,EAAE,EAAGA,EAAE3C,EAAG2C,IAAK,CAAG,IAAIH,EAAGzB,EAAK0B,GAAKE,GAAG,EAAE,EAAGC,EAAIrB,EAAGR,EAAK0B,GAAKE,GAAGpC,EAAE,GAAGqB,EAAI,EAAE,IAAMR,EAAKsB,EAAGC,CAAC,EAAGC,GAAI,GAAKJ,GAAI,GAAKA,GAAI,EAAGA,CAAK,CACtJ,CAGD,OAAOrB,CACR,EAIArB,EAAK,OAAS,SAAS+C,EACvB,CAOC,QANI9B,EAAO,IAAI,WAAW8B,CAAI,EAAGC,EAAS,EAAGC,EAAMjD,EAAK,KAAMkD,EAAMD,EAAI,WAAYE,EAAMF,EAAI,SAC1FhD,EAAM,CAAC,KAAK,CAAC,EAAG,OAAO,CAAC,CAAC,EACzBmD,EAAK,IAAI,WAAWnC,EAAK,MAAM,EAAGoC,EAAO,EACzCC,EAAIC,EAAO,EAEXC,EAAO,CAAC,IAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,EAAI,EAClD/C,EAAE,EAAGA,EAAE,EAAGA,IAAK,GAAGQ,EAAKR,CAAC,GAAG+C,EAAK/C,CAAC,EAAG,KAAM,+BAElD,KAAMuC,EAAO/B,EAAK,QAClB,CACC,IAAIZ,EAAO4C,EAAI,SAAShC,EAAM+B,CAAM,EAAIA,GAAU,EAClD,IAAIS,EAAOR,EAAI,UAAUhC,EAAM+B,EAAQ,CAAC,EAGxC,GAH4CA,GAAU,EAG9CS,GAAM,OAAYzD,EAAK,OAAO,MAAMiB,EAAM+B,EAAQ/C,CAAG,UACrDwD,GAAM,OAAQ,CACrB,QAAQhD,EAAE,EAAGA,EAAEJ,EAAKI,IAAK2C,EAAGC,EAAK5C,CAAC,EAAIQ,EAAK+B,EAAOvC,CAAC,EACnD4C,GAAQhD,CACT,SACQoD,GAAM,OACbxD,EAAI,KAAKwD,CAAI,EAAI,CAAG,WAAWN,EAAIlC,EAAM+B,CAAM,EAAG,UAAUG,EAAIlC,EAAM+B,EAAO,CAAC,CAAG,EACjFM,EAAK,IAAI,WAAWrC,EAAK,MAAM,UAExBwC,GAAM,OAAS,CACtB,GAAGF,GAAM,EAAG,CAAG,IAAIG,EAAKzD,EAAI,OAAOA,EAAI,OAAO,OAAO,CAAC,EACrDyD,EAAG,KAAO1D,EAAK,OAAO,YAAYC,EAAKqD,EAAG,MAAM,EAAEC,CAAI,EAAGG,EAAG,KAAK,MAAOA,EAAG,KAAK,MAAM,EAAIH,EAAK,CAChG,CACA,IAAII,EAAM,CAAC,EAAER,EAAIlC,EAAM+B,EAAO,EAAE,EAAE,EAAEG,EAAIlC,EAAM+B,EAAO,EAAE,EAAE,MAAMG,EAAIlC,EAAM+B,EAAO,CAAC,EAAE,OAAOG,EAAIlC,EAAM+B,EAAO,CAAC,CAAC,EACzGY,EAAMV,EAAIjC,EAAM+B,EAAO,EAAE,EAAIY,EAAMV,EAAIjC,EAAM+B,EAAO,EAAE,GAAKY,GAAK,EAAE,IAAIA,GAC1E,IAAIlD,EAAM,CAAC,KAAKiD,EAAK,MAAM,KAAK,MAAMC,EAAI,GAAI,EAAG,QAAQ3C,EAAK+B,EAAO,EAAE,EAAG,MAAM/B,EAAK+B,EAAO,EAAE,CAAC,EAE/F/C,EAAI,OAAO,KAAKS,CAAG,CACpB,SACQ+C,GAAM,OAAQ,CACrB,QAAQhD,EAAE,EAAGA,EAAEJ,EAAI,EAAGI,IAAK6C,EAAGC,EAAK9C,CAAC,EAAIQ,EAAK+B,EAAOvC,EAAE,CAAC,EACvD8C,GAAQlD,EAAI,CACb,SACQoD,GAAM,OACbxD,EAAI,KAAKwD,CAAI,EAAI,CAACR,EAAI,SAAShC,EAAM+B,CAAM,EAAGC,EAAI,SAAShC,EAAM+B,EAAO,CAAC,EAAG/B,EAAK+B,EAAO,CAAC,CAAC,UAEnFS,GAAM,OAAQ,CACrBxD,EAAI,KAAKwD,CAAI,EAAI,CAAC,EAClB,QAAQhD,EAAE,EAAGA,EAAE,EAAGA,IAAKR,EAAI,KAAKwD,CAAI,EAAE,KAAKR,EAAI,SAAShC,EAAM+B,EAAOvC,EAAE,CAAC,CAAC,CAC1E,SACQgD,GAAM,OAAQ,CAClBxD,EAAI,KAAKwD,CAAI,GAAG,OAAMxD,EAAI,KAAKwD,CAAI,EAAI,CAAC,GAC3C,IAAII,EAAKZ,EAAI,SAAShC,EAAM+B,CAAM,EAC9Bc,EAAOb,EAAI,UAAUhC,EAAM+B,EAAQa,EAAGb,CAAM,EAC5Ce,EAAOd,EAAI,UAAUhC,EAAM4C,EAAG,EAAGb,EAAO3C,EAAIwD,EAAG,CAAC,EACpD5D,EAAI,KAAKwD,CAAI,EAAEK,CAAI,EAAIC,CACxB,SACQN,GAAM,OAAQ,CAClBxD,EAAI,KAAKwD,CAAI,GAAG,OAAMxD,EAAI,KAAKwD,CAAI,EAAI,CAAC,GAC3C,IAAII,EAAK,EAAGlB,EAAMK,EAClBa,EAAKZ,EAAI,SAAShC,EAAM0B,CAAG,EAC3B,IAAImB,EAAOb,EAAI,UAAUhC,EAAM0B,EAAKkB,EAAGlB,CAAG,EAAIA,EAAMkB,EAAK,EACzD,IAAIG,EAAQ/C,EAAK0B,CAAG,EAAGsB,EAAQhD,EAAK0B,EAAI,CAAC,EAAIA,GAAK,EAClDkB,EAAKZ,EAAI,SAAShC,EAAM0B,CAAG,EAC3B,IAAIuB,EAAOjB,EAAI,UAAUhC,EAAM0B,EAAKkB,EAAGlB,CAAG,EAAIA,EAAMkB,EAAK,EACzDA,EAAKZ,EAAI,SAAShC,EAAM0B,CAAG,EAC3B,IAAIwB,EAAQlB,EAAI,SAAShC,EAAM0B,EAAKkB,EAAGlB,CAAG,EAAIA,EAAMkB,EAAK,EACzD,IAAIE,EAAQd,EAAI,SAAShC,EAAM0B,EAAKtC,GAAKsC,EAAIK,EAAO,EACpD/C,EAAI,KAAKwD,CAAI,EAAEK,CAAI,EAAIC,CACxB,SACQN,GAAM,OACbxD,EAAI,KAAKwD,CAAI,EAAIR,EAAI,UAAUhC,EAAM+B,EAAQ3C,CAAG,UAEzCoD,GAAM,OAAQ,CACrB,IAAIW,EAAKnE,EAAI,KAAK,KAAQ,OAAO,EACjCA,EAAI,KAAKwD,CAAI,EAAI,CAAC,EAAI,QAAQhD,EAAE,EAAGA,EAAE2D,EAAI3D,IAAKR,EAAI,KAAKwD,CAAI,EAAE,KAAKP,EAAIjC,EAAM+B,EAAOvC,EAAE,CAAC,CAAC,CACxF,SACQgD,GAAM,OACLxD,EAAI,OAAO,EAAGA,EAAI,KAAKwD,CAAI,EAAIR,EAAI,UAAUhC,EAAM+B,EAAQ3C,CAAG,EAC9DJ,EAAI,OAAO,EAAGA,EAAI,KAAKwD,CAAI,EAAIP,EAAIjC,EAAM+B,CAAM,EAC/C/C,EAAI,OAAO,IAAGA,EAAI,KAAKwD,CAAI,EAAI,CAAEP,EAAIjC,EAAK+B,CAAM,EAAEE,EAAIjC,EAAK+B,EAAO,CAAC,EAAEE,EAAIjC,EAAK+B,EAAO,CAAC,CAAE,WAGzFS,GAAM,OAAQxD,EAAI,KAAKwD,CAAI,EAAIR,EAAI,SAAShC,EAAM+B,CAAM,EAAE,YAC1DS,GAAM,OAAQxD,EAAI,KAAKwD,CAAI,EAAIxC,EAAK+B,CAAM,UAC1CS,GAAM,OAELxD,EAAI,OAAO,GAAKA,EAAI,OAAO,EAAGA,EAAI,KAAKwD,CAAI,EAAI,CAACP,EAAIjC,EAAM+B,CAAM,CAAC,EACjE/C,EAAI,OAAO,GAAKA,EAAI,OAAO,EAAGA,EAAI,KAAKwD,CAAI,EAAI,CAACP,EAAIjC,EAAM+B,CAAM,EAAGE,EAAIjC,EAAM+B,EAAO,CAAC,EAAGE,EAAIjC,EAAM+B,EAAO,CAAC,CAAC,EAC3G/C,EAAI,OAAO,IAAGA,EAAI,KAAKwD,CAAI,EAAIxC,EAAK+B,CAAM,WAE3CS,GAAM,OACb,MAGDT,GAAU3C,EACV,IAAIgE,EAAMpB,EAAI,SAAShC,EAAM+B,CAAM,EAAIA,GAAU,CAClD,CACA,GAAGO,GAAM,EAAG,CAAG,IAAIG,EAAKzD,EAAI,OAAOA,EAAI,OAAO,OAAO,CAAC,EACrDyD,EAAG,KAAO1D,EAAK,OAAO,YAAYC,EAAKqD,EAAG,MAAM,EAAEC,CAAI,EAAGG,EAAG,KAAK,MAAOA,EAAG,KAAK,MAAM,EAAIH,EAAK,CAChG,CACA,OAAAtD,EAAI,KAAOD,EAAK,OAAO,YAAYC,EAAKmD,EAAInD,EAAI,MAAOA,EAAI,MAAM,EAEjE,OAAOA,EAAI,SAAW,OAAOA,EAAI,UAAY,OAAOA,EAAI,OACjDA,CACR,EAEAD,EAAK,OAAO,YAAc,SAASC,EAAKmD,EAAIlD,EAAGC,EAAG,CACjD,IAAIuB,EAAO,KAAK,IAAI,EAChBP,EAAMnB,EAAK,OAAO,QAAQC,CAAG,EAAGmB,EAAM,KAAK,KAAKlB,EAAEiB,EAAI,CAAC,EAAG4B,EAAO,IAAI,YAAY3B,EAAI,EAAEnB,EAAI,WAAWE,CAAC,EAC3GiD,EAAKpD,EAAK,OAAO,SAASoD,EAAGL,CAAI,EAIjC,IAAIrB,EAAK,KAAK,IAAI,EAClB,OAAQzB,EAAI,WAAW,EAAGmD,EAAKpD,EAAK,OAAO,YAAYoD,EAAInD,EAAK,EAAGC,EAAGC,CAAC,EAC/DF,EAAI,WAAW,IAAGmD,EAAKpD,EAAK,OAAO,eAAeoD,EAAInD,CAAG,GAE1DmD,CACR,EAEApD,EAAK,OAAO,SAAW,SAASiB,EAAM8B,EAAM,CAAG,IAAI9C,EAAID,EAAK,WAAc,IAAI,WAAWiB,EAAK,OAAQ,EAAEA,EAAK,OAAO,CAAC,EAAE8B,CAAI,EAAI,OAAO9C,CAAM,EAC5ID,EAAK,WAAW,UAAU,CAAC,IAAIsE,EAAE,CAAC,EAAE,OAAAA,EAAE,EAAE,CAAC,EAAEA,EAAE,EAAE,EAAE,SAASC,EAAEC,EAAE,CAAC,IAAIC,EAAE,WAAWhE,EAAE,EAAEiE,EAAE,EAAEC,EAAE,EAAExE,EAAE,EAAEyE,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAE5E,EAAE,EAAE6E,EAAE,EAAEC,EAAEC,EACtH,GAAGV,EAAE,CAAC,GAAG,GAAGA,EAAE,CAAC,GAAG,EAAE,OAAOC,GAAI,IAAIC,EAAE,CAAC,EAAE,IAAIS,EAAEZ,EAAE,EAAEa,EAAED,EAAE,EAAEE,EAAEF,EAAE,EAAEG,EAAEH,EAAE,EAAE,EAAEA,EAAE,EAAEI,EAAEJ,EAAE,EAAEK,EAAEL,EAAE,EAAEM,EAAEN,EAAE,EAAEO,EAAEjB,GAAG,KACnE,IAA3BiB,IAAEjB,EAAE,IAAIC,EAAEF,EAAE,SAAS,GAAG,CAAC,GAAQ9D,GAAG,GAAE,CAA8B,GAA7BA,EAAE0E,EAAEZ,EAAEQ,EAAE,CAAC,EAAEL,EAAES,EAAEZ,EAAEQ,EAAE,EAAE,CAAC,EAAEA,GAAG,EAAKL,GAAG,EAAE,CAAKK,EAAE,IAAMA,GAAG,GAAGA,EAAE,IACpG,IAAIW,GAAGX,IAAI,GAAG,EAAE,EAAER,EAAEmB,EAAE,CAAC,EAAEnB,EAAEmB,EAAE,CAAC,GAAG,EAAKD,IAAEjB,EAAEF,EAAE,EAAE,EAAEE,EAAEtE,EAAE,CAAC,GAAEsE,EAAE,IAAI,IAAIC,EAAEF,EAAE,OAAOA,EAAE,WAAWmB,EAAE,CAAC,EAAExF,CAAC,EAAE6E,EAAEW,EAAE,GAAG,EACxGxF,GAAG,EAAE,QAAQ,CAAsE,GAAlEuF,IAAEjB,EAAEF,EAAE,EAAE,EAAEE,EAAEtE,GAAG,GAAG,GAAG,GAAKwE,GAAG,IAAGM,EAAEQ,EAAE,EAAEP,EAAEO,EAAE,EAAEX,EAAG,IAAQC,EAAG,IAAWJ,GAAG,EAAE,CAACC,EAAES,EAAEb,EAAEQ,EAAE,CAAC,EAAE,IACvG5E,EAAEiF,EAAEb,EAAEQ,EAAE,EAAE,CAAC,EAAE,EAAEH,EAAEQ,EAAEb,EAAEQ,EAAE,GAAG,CAAC,EAAE,EAAEA,GAAG,GAAe,QAARY,EAAEZ,EAAE/D,EAAE,EAAU4E,EAAE,EAAEA,EAAE,GAAGA,GAAG,EAAGJ,EAAE,EAAEI,CAAC,EAAE,EAAEJ,EAAE,EAAEI,EAAE,CAAC,EAAE,EAAE,QAAQA,EAAE,EACtGA,EAAEhB,EAAEgB,IAAI,CAAC,IAAIC,EAAET,EAAEb,EAAEQ,EAAEa,EAAE,EAAE,CAAC,EAAEJ,EAAE,GAAGA,EAAE,EAAEI,CAAC,GAAG,GAAG,CAAC,EAAEC,EAAKA,EAAE7E,IAAEA,EAAE6E,EAAC,CAACd,GAAG,EAAEH,EAAE,EAAEY,EAAE,EAAExE,CAAC,EAAEsE,EAAEE,EAAE,EAAExE,EAAEwE,EAAE,CAAC,EAAER,EAAEQ,EAAE,EAAEP,EAAEO,EAAE,EACnGT,EAAEM,EAAEG,EAAE,GAAG,GAAGxE,GAAG,EAAE2D,EAAExE,EAAEoE,EAAEQ,EAAES,EAAE,CAAC,EAAE,IAAIM,EAAEZ,EAAE,EAAEM,EAAE,EAAE,EAAEb,EAAEa,EAAE,CAAC,EAAEX,GAAG,GAAGiB,GAAG,EAAE,IAAIC,EAAEb,EAAE,EAAEM,EAAE,EAAEb,EAAExE,EAAEqF,EAAE,CAAC,EAAEV,GAAG,GAAGiB,GAAG,EAAE,EAAEP,EAAE,EAAEM,CAAC,EACzGR,EAAEE,EAAE,EAAEM,EAAEd,CAAC,EAAE,EAAEQ,EAAE,EAAEO,CAAC,EAAET,EAAEE,EAAE,EAAEO,EAAEd,CAAC,CAAC,CAAC,OAAS,CAAC,IAAIe,EAAEhB,EAAEO,EAAEhB,EAAEQ,CAAC,EAAEF,CAAC,EAAEE,GAAGiB,EAAE,GAAG,IAAI,EAAEA,IAAI,EAAE,GAAG,MAAI,GAAMxB,EAAEtE,GAAG,EAAE,MAAO,IAAG,GAAG,IAAK,MAAW,IAAI+F,EAAE/F,EAAE,EAAE,IAC1I,GAAG,EAAE,IAAI,CAAC,IAAIgG,EAAEV,EAAE,EAAE,EAAE,GAAG,EAAES,EAAE/F,GAAGgG,IAAI,GAAGd,EAAEb,EAAEQ,EAAEmB,EAAE,CAAC,EAAEnB,GAAGmB,EAAE,CAAC,CAAC,IAAIC,EAAElB,EAAEM,EAAEhB,EAAEQ,CAAC,EAAED,CAAC,EAAEC,GAAGoB,EAAE,GAAG,IAAIC,EAAED,IAAI,EAAEE,EAAEb,EAAE,EAAEY,CAAC,EAAEE,GAAGD,IAAI,GAAGlB,EAAEZ,EAAEQ,EAAEsB,EAAE,EAAE,EACpH,IAARtB,GAAGsB,EAAE,GAASnG,EAAE+F,GAAGzB,EAAEtE,CAAC,EAAEsE,EAAEtE,IAAIoG,CAAC,EAAE9B,EAAEtE,CAAC,EAAEsE,EAAEtE,IAAIoG,CAAC,EAAE9B,EAAEtE,CAAC,EAAEsE,EAAEtE,IAAIoG,CAAC,EAAE9B,EAAEtE,CAAC,EAAEsE,EAAEtE,IAAIoG,CAAC,EAAEpG,EAAE+F,EAAE,CAAC,CAAC,OAAOzB,EAAE,QAAQtE,EAAEsE,EAAEA,EAAE,MAAM,EAAEtE,CAAC,CAAC,EAClHoE,EAAE,EAAE,EAAE,SAASC,EAAEC,EAAE,CAAC,IAAIC,EAAEF,EAAE,OAAO,GAAGC,GAAGC,EAAE,OAAOF,EAAE,IAAIW,EAAE,IAAI,WAAWT,GAAG,CAAC,EAAE,OAAAS,EAAE,IAAIX,EAAE,CAAC,EAASW,CAAC,EAClGZ,EAAE,EAAE,EAAE,SAASC,EAAEC,EAAEC,EAAES,EAAEC,EAAEC,EAAE,CAAyB,QAApBC,EAAEf,EAAE,EAAE,EAAEiC,EAAEjC,EAAE,EAAE,EAAEgB,EAAE,EAAQA,EAAEb,GAAE,CAAC,IAAIc,EAAEhB,EAAEgC,EAAErB,EAAEC,CAAC,EAAEX,CAAC,EAAEW,GAAGI,EAAE,GAAG,IAAIC,EAAED,IAAI,EACnG,GAAGC,GAAG,GAAIJ,EAAEE,CAAC,EAAEE,EAAEF,QAAQ,CAAC,IAAIG,EAAE,EAAEf,EAAE,EAAKc,GAAG,IAAId,EAAE,EAAEW,EAAEH,EAAEC,EAAE,CAAC,EAAEA,GAAG,EAAEM,EAAEL,EAAEE,EAAE,CAAC,GAAUE,GAAG,IAAId,EAAE,EAAEW,EAAEH,EAAEC,EAAE,CAAC,EACrGA,GAAG,GAAUK,GAAG,KAAId,EAAE,GAAGW,EAAEH,EAAEC,EAAE,CAAC,EAAEA,GAAG,GAAY,QAANR,EAAEW,EAAEZ,EAAQY,EAAEX,GAAGS,EAAEE,CAAC,EAAEG,EAAEH,GAAI,CAAC,CAAC,OAAOH,CAAC,EAAEb,EAAE,EAAE,EAAE,SAASC,EAAEC,EAAEC,EAAES,EAAE,CAC1G,QAD+GC,EAAE,EAAEC,EAAE,EAAEC,EAAEH,EAAE,SAAS,EAC9HE,EAAEX,GAAE,CAAC,IAAI8B,EAAEhC,EAAEa,EAAEZ,CAAC,EAAEU,EAAEE,GAAG,CAAC,EAAE,EAAEF,GAAGE,GAAG,GAAG,CAAC,EAAEmB,EAAKA,EAAEpB,IAAEA,EAAEoB,GAAEnB,GAAG,CAAC,KAAMA,EAAEC,GAAGH,EAAEE,GAAG,CAAC,EAAE,EAAEF,GAAGE,GAAG,GAAG,CAAC,EAAE,EAAEA,IAAI,OAAOD,CAAC,EAC9Gb,EAAE,EAAE,EAAE,SAASC,EAAEC,EAAE,CAAwC,QAAnCC,EAAEH,EAAE,EAAE,EAAEY,EAAEX,EAAE,OAAOY,EAAEC,EAAEC,EAAEkB,EAAEjB,EAAEC,EAAEd,EAAE,EAAU8B,EAAE,EAAEA,GAAG/B,EAAE+B,IAAIhB,EAAEgB,CAAC,EAAE,EAAE,IAAIA,EAAE,EAAEA,EAAErB,EAAEqB,GAAG,EAAEhB,EAAEhB,EAAEgC,CAAC,CAAC,IAC9G,IAAIf,EAAEf,EAAE,EAAa,IAAXU,EAAE,EAAEI,EAAE,CAAC,EAAE,EAAMH,EAAE,EAAEA,GAAGZ,EAAEY,IAAKD,EAAEA,EAAEI,EAAEH,EAAE,CAAC,GAAG,EAAEI,EAAEJ,CAAC,EAAED,EAAE,IAAIE,EAAE,EAAEA,EAAEH,EAAEG,GAAG,EAAGC,EAAEf,EAAEc,EAAE,CAAC,EAAKC,GAAG,IAAGf,EAAEc,CAAC,EAAEG,EAAEF,CAAC,EACxGE,EAAEF,CAAC,IAAK,EAAEhB,EAAE,EAAE,EAAE,SAASC,EAAEC,EAAEC,EAAE,CAA8B,QAAzBS,EAAEX,EAAE,OAAOY,EAAEb,EAAE,EAAE,EAAEc,EAAED,EAAE,EAAUE,EAAE,EAAEA,EAAEH,EAAEG,GAAG,EAAE,GAAGd,EAAEc,EAAE,CAAC,GAAG,EAC7F,QADoGkB,EAAElB,GAAG,EAAEC,EAAEf,EAAEc,EAAE,CAAC,EAAEE,EAAEgB,GAAG,EAAEjB,EAAEE,EAAEhB,EAAEc,EAAEG,EAAElB,EAAEc,CAAC,GAAGG,EAAEd,EAAEe,GAAG,GAAGD,GAC/IC,GAAGf,GAAE,CAAC,IAAIC,EAAES,EAAEK,CAAC,IAAI,GAAGjB,EAAEC,EAAEE,CAAC,EAAEY,EAAEE,GAAG,CAAE,EAAEnB,EAAE,EAAE,EAAE,SAASC,EAAEC,EAAE,CAAsB,QAAjBC,EAAEH,EAAE,EAAE,EAAE,EAAEY,EAAE,GAAGV,EAAUW,EAAE,EAAEA,EAAEZ,EAAE,OACrGY,GAAG,EAAE,CAAC,IAAIC,EAAEb,EAAEY,CAAC,GAAGX,EAAED,EAAEY,EAAE,CAAC,EAAEZ,EAAEY,CAAC,EAAEV,EAAEW,CAAC,IAAIF,CAAC,CAAC,EAAEZ,EAAE,EAAE,EAAE,SAASC,EAAEC,EAAEC,EAAE,CAACA,EAAEA,IAAID,EAAE,GAAG,IAAIU,EAAEV,IAAI,EAAED,EAAEW,CAAC,GAAGT,EAAEF,EAAEW,EAAE,CAAC,GAAGT,IAAI,CAAC,EAC7GH,EAAE,EAAE,EAAE,SAASC,EAAEC,EAAEC,EAAE,CAACA,EAAEA,IAAID,EAAE,GAAG,IAAIU,EAAEV,IAAI,EAAED,EAAEW,CAAC,GAAGT,EAAEF,EAAEW,EAAE,CAAC,GAAGT,IAAI,EAAEF,EAAEW,EAAE,CAAC,GAAGT,IAAI,EAAE,EAAEH,EAAE,EAAE,EAAE,SAASC,EAAEC,EAAEC,EAAE,CAAC,OAAOF,EAAEC,IAAI,CAAC,EAAED,GAAGC,IAAI,GAAG,CAAC,GAAG,MAAMA,EAAE,IAAI,GAAGC,GAAG,CAAC,EAC1JH,EAAE,EAAE,EAAE,SAASC,EAAEC,EAAEC,EAAE,CAAC,OAAOF,EAAEC,IAAI,CAAC,EAAED,GAAGC,IAAI,GAAG,CAAC,GAAG,EAAED,GAAGC,IAAI,GAAG,CAAC,GAAG,OAAOA,EAAE,IAAI,GAAGC,GAAG,CAAC,EAAEH,EAAE,EAAE,EAAE,SAASC,EAAEC,EAAE,CAAC,OAAOD,EAAEC,IAAI,CAAC,EAAED,GAAGC,IAAI,GAAG,CAAC,GAAG,EAAED,GAAGC,IAAI,GAAG,CAAC,GAAG,OAAOA,EAAE,EAAE,EACvKF,EAAE,EAAE,EAAE,SAASC,EAAEC,EAAE,CAAC,OAAOD,EAAEC,IAAI,CAAC,EAAED,GAAGC,IAAI,GAAG,CAAC,GAAG,EAAED,GAAGC,IAAI,GAAG,CAAC,GAAG,GAAGD,GAAGC,IAAI,GAAG,CAAC,GAAG,OAAOA,EAAE,EAAE,EAAEF,EAAE,EAAE,EAAE,UAAU,CAAC,IAAIC,EAAE,YAAYC,EAAE,YACrI,MAAM,CAAC,EAAE,IAAID,EAAE,EAAE,EAAE,EAAE,IAAIA,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAIA,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,MAAM,MAAM,MAAM,MAAM,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,IAAIC,EAAE,EAAE,EAAE,EAAE,IAAID,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,IAAIA,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAIA,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,IAAIA,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE,IAAIA,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,IAAIA,EAAE,KAAK,EAAE,EAAE,IAAIC,EAAE,GAAG,EAAE,EAAE,IAAIA,EAAE,EAAE,EAAE,EAAE,IAAIA,EAAE,EAAE,EAAE,EAAE,IAAIA,EAAE,IAAI,EAAE,EAAE,IAAID,EAAE,KAAK,EAAE,EAAE,IAAIA,EAAE,KAAK,CAAC,CAAC,EAAE,EACnqB,UAAU,CAAqB,QAAhBA,EAAED,EAAE,EAAE,EAAEE,EAAE,MAAcC,EAAE,EAAEA,EAAED,EAAEC,IAAI,CAAC,IAAIS,EAAET,EAAES,GAAGA,EAAE,cAAc,GAAGA,EAAE,aAAa,EAClGA,GAAGA,EAAE,cAAc,GAAGA,EAAE,YAAY,EAAEA,GAAGA,EAAE,cAAc,GAAGA,EAAE,YAAY,EAAEA,GAAGA,EAAE,cAAc,GAAGA,EAAE,WAAW,EAC/GX,EAAE,EAAEE,CAAC,GAAGS,IAAI,GAAGA,GAAG,MAAM,EAAE,CAAC,SAASC,EAAEC,EAAEC,EAAEkB,EAAE,CAAC,KAAMlB,KAAK,GAAED,EAAE,KAAK,EAAEmB,CAAC,CAAC,CAAC,QAAQ9B,EAAE,EAAEA,EAAE,GAAGA,IAAKF,EAAE,EAAEE,CAAC,EAAEF,EAAE,EAAEE,CAAC,GAAG,EAAEF,EAAE,EAAEE,CAAC,EAClHF,EAAE,EAAEE,CAAC,EAAEF,EAAE,EAAEE,CAAC,GAAG,EAAEF,EAAE,EAAEE,CAAC,EAAEU,EAAEZ,EAAE,EAAE,IAAI,CAAC,EAAEY,EAAEZ,EAAE,EAAE,IAAQ,CAAC,EAAEY,EAAEZ,EAAE,EAAE,GAAQ,CAAC,EAAEY,EAAEZ,EAAE,EAAE,EAAQ,CAAC,EAAED,EAAE,EAAE,EAAEC,EAAE,EAAE,CAAC,EACnGD,EAAE,EAAE,EAAEC,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAED,EAAE,EAAE,EAAEC,EAAE,EAAE,CAAC,EAAEY,EAAEZ,EAAE,EAAE,GAAG,CAAC,EAAED,EAAE,EAAE,EAAEC,EAAE,EAAE,CAAC,EAAED,EAAE,EAAE,EAAEC,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAED,EAAE,EAAE,EAAEC,EAAE,EAAE,CAAC,EAAEY,EAAEZ,EAAE,EAAE,GAAG,CAAC,EAAEY,EAAEZ,EAAE,EAAE,IAAI,CAAC,EAC5GY,EAAEZ,EAAE,EAAE,GAAG,CAAC,EAAEY,EAAEZ,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,EAAUD,EAAE,EAAE,CAAC,EAAE,EAG3CtE,EAAK,OAAO,eAAiB,SAASiB,EAAMhB,EAC5C,CAYC,QAXIC,EAAID,EAAI,MAAOE,EAAIF,EAAI,OACvBkB,EAAMnB,EAAK,OAAO,QAAQC,CAAG,EAAGuG,EAAOrF,GAAK,EAAGC,EAAM,KAAK,KAAKlB,EAAEiB,EAAI,CAAC,EACtEb,EAAM,IAAI,WAAYH,EAAIiB,CAAI,EAC9BqB,EAAK,EAELgE,EAAgB,CAAE,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAE,EACtCC,EAAgB,CAAE,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAE,EACtCC,EAAgB,CAAE,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAE,EACtCC,EAAgB,CAAE,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,CAAE,EAEtCC,EAAK,EACHA,EAAK,GACX,CAG+B,QAF1BC,EAAKH,EAAcE,CAAI,EAAGE,EAAKH,EAAcC,CAAI,EACjDG,EAAK,EAAGC,EAAK,EACbC,EAAKT,EAAaI,CAAI,EAAUK,EAAG/G,GAAM+G,GAAIJ,EAAKG,IACxB,QAA1BE,EAAKT,EAAaG,CAAI,EAAUM,EAAGjH,GAAMiH,GAAIJ,EAAKC,IACtD,IAAII,EAAO,KAAK,KAAKJ,EAAG7F,EAAI,CAAC,EAC7BnB,EAAK,OAAO,YAAYiB,EAAMhB,EAAKwC,EAAIuE,EAAIC,CAAE,EAG7C,QADI5E,EAAE,EAAGgF,EAAMZ,EAAaI,CAAI,EAC1BQ,EAAIlH,GACV,CAIC,QAHImH,EAAMZ,EAAaG,CAAI,EACvBU,EAAO9E,EAAGJ,EAAE+E,GAAO,EAEjBE,EAAIpH,GACV,CACC,GAAGiB,GAAK,EAAG,CACV,IAAIqG,EAAMvG,EAAKsG,GAAK,CAAC,EAAIC,EAAOA,GAAM,GAAGD,EAAI,GAAK,EAClDjH,EAAI+G,EAAIjG,GAAOkG,GAAK,EAAE,GAAME,GAAQ,IAAIF,EAAI,IAAI,EACjD,CACA,GAAGnG,GAAK,EAAG,CACV,IAAIqG,EAAMvG,EAAKsG,GAAK,CAAC,EAAIC,EAAOA,GAAM,GAAGD,EAAI,GAAK,EAClDjH,EAAI+G,EAAIjG,GAAOkG,GAAK,EAAE,GAAME,GAAQ,IAAIF,EAAI,IAAI,EACjD,CACA,GAAGnG,GAAK,EAAG,CACV,IAAIqG,EAAMvG,EAAKsG,GAAK,CAAC,EAAIC,EAAOA,GAAM,GAAGD,EAAI,GAAK,GAClDjH,EAAI+G,EAAIjG,GAAOkG,GAAK,EAAE,GAAME,GAAQ,IAAIF,EAAI,IAAI,EACjD,CACA,GAAGnG,GAAK,EAEP,QADIsG,EAAKJ,EAAIjG,EAAIkG,EAAId,EACbxF,EAAE,EAAGA,EAAEwF,EAAMxF,IAAKV,EAAImH,EAAGzG,CAAC,EAAIC,GAAMsG,GAAK,GAAGvG,CAAC,EAEtDuG,GAAKpG,EAAMmG,GAAKP,CACjB,CACA1E,IAAMgF,GAAOP,CACd,CACGE,EAAGC,GAAI,IAAGxE,GAAMwE,GAAM,EAAIG,IAC7BP,EAAOA,EAAO,CACf,CACA,OAAOvG,CACR,EAEAN,EAAK,OAAO,QAAU,SAASC,EAAK,CACnC,IAAIyH,EAAM,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,EAAEzH,EAAI,KAAK,EACzC,OAAOyH,EAAMzH,EAAI,KAClB,EAEAD,EAAK,OAAO,YAAc,SAASiB,EAAMhB,EAAK0C,EAAKzC,EAAGC,EACtD,CACC,IAAIgB,EAAMnB,EAAK,OAAO,QAAQC,CAAG,EAAGmB,EAAM,KAAK,KAAKlB,EAAEiB,EAAI,CAAC,EAAGwG,EAAQ3H,EAAK,OAAO,OAClFmB,EAAM,KAAK,KAAKA,EAAI,CAAC,EAErB,IAAIV,EAAE,EAAGgC,EAAG,EAAGgB,EAAKxC,EAAK0B,CAAG,EAAGE,EAAE,EAGjC,GADGY,EAAK,IAAGxC,EAAK0B,CAAG,EAAE,CAAC,EAAE,EAAE,CAAC,EAAEc,EAAK,CAAC,GAChCA,GAAM,EAAG,IAAIZ,EAAE1B,EAAK0B,EAAEzB,EAAKyB,IAAK5B,EAAK4B,EAAE,CAAC,EAAK5B,EAAK4B,EAAE,CAAC,GAAK5B,EAAK4B,EAAE,EAAE1B,CAAG,IAAI,GAAK,IAElF,QAAQkB,EAAE,EAAGA,EAAElC,EAAGkC,IAIjB,GAHA5B,EAAIkC,EAAIN,EAAEjB,EAAKqB,EAAKhC,EAAE4B,EAAE,EACxBoB,EAAOxC,EAAKwB,EAAG,CAAC,EAAGI,EAAE,EAEbY,GAAM,EAAK,KAAMZ,EAAEzB,EAAKyB,IAAK5B,EAAKR,EAAEoC,CAAC,EAAI5B,EAAKwB,EAAGI,CAAC,UAClDY,GAAM,EAAG,CAAE,KAAMZ,EAAE1B,EAAK0B,IAAK5B,EAAKR,EAAEoC,CAAC,EAAI5B,EAAKwB,EAAGI,CAAC,EACnD,KAAMA,EAAEzB,EAAKyB,IAAK5B,EAAKR,EAAEoC,CAAC,EAAK5B,EAAKwB,EAAGI,CAAC,EAAI5B,EAAKR,EAAEoC,EAAE1B,CAAG,CAAK,SAC5DsC,GAAM,EAAK,KAAMZ,EAAEzB,EAAKyB,IAAK5B,EAAKR,EAAEoC,CAAC,EAAK5B,EAAKwB,EAAGI,CAAC,EAAI5B,EAAKR,EAAEoC,EAAEzB,CAAG,UACnEqC,GAAM,EAAG,CAAE,KAAMZ,EAAE1B,EAAK0B,IAAK5B,EAAKR,EAAEoC,CAAC,EAAK5B,EAAKwB,EAAGI,CAAC,GAAM5B,EAAKR,EAAEoC,EAAEzB,CAAG,IAAI,GACjE,KAAMyB,EAAEzB,EAAKyB,IAAK5B,EAAKR,EAAEoC,CAAC,EAAK5B,EAAKwB,EAAGI,CAAC,GAAM5B,EAAKR,EAAEoC,EAAEzB,CAAG,EAAEH,EAAKR,EAAEoC,EAAE1B,CAAG,IAAK,EAAO,KACnF,CAAE,KAAM0B,EAAE1B,EAAK0B,IAAK5B,EAAKR,EAAEoC,CAAC,EAAK5B,EAAKwB,EAAGI,CAAC,EAAI8E,EAAM,EAAG1G,EAAKR,EAAEoC,EAAEzB,CAAG,EAAG,CAAC,EACjF,KAAMyB,EAAEzB,EAAKyB,IAAK5B,EAAKR,EAAEoC,CAAC,EAAK5B,EAAKwB,EAAGI,CAAC,EAAI8E,EAAM1G,EAAKR,EAAEoC,EAAE1B,CAAG,EAAGF,EAAKR,EAAEoC,EAAEzB,CAAG,EAAGH,EAAKR,EAAEoC,EAAE1B,EAAIC,CAAG,CAAC,CAAM,CAE/G,OAAOH,CACR,EAEAjB,EAAK,OAAO,OAAS,SAASsG,EAAEd,EAAEI,EAClC,CACC,IAAI1D,EAAIoE,EAAEd,EAAEI,EAAGgC,EAAM1F,EAAEoE,EAAIuB,EAAM3F,EAAEsD,EAAIsC,EAAM5F,EAAE0D,EAC/C,OAAIgC,EAAGA,GAAMC,EAAGA,GAAMD,EAAGA,GAAME,EAAGA,EAAYxB,EACrCuB,EAAGA,GAAMC,EAAGA,EAAYtC,EAC1BI,CACR,EAEA5F,EAAK,OAAO,MAAQ,SAASiB,EAAM+B,EAAQ/C,EAC3C,CACC,IAAIgD,EAAMjD,EAAK,KACfC,EAAI,MAASgD,EAAI,SAAShC,EAAM+B,CAAM,EAAIA,GAAU,EACpD/C,EAAI,OAASgD,EAAI,SAAShC,EAAM+B,CAAM,EAAIA,GAAU,EACpD/C,EAAI,MAAYgB,EAAK+B,CAAM,EAAIA,IAC/B/C,EAAI,MAAYgB,EAAK+B,CAAM,EAAIA,IAC/B/C,EAAI,SAAYgB,EAAK+B,CAAM,EAAIA,IAC/B/C,EAAI,OAAYgB,EAAK+B,CAAM,EAAIA,IAC/B/C,EAAI,UAAYgB,EAAK+B,CAAM,EAAIA,GAChC,EAEAhD,EAAK,KAAO,CACX,SAAa,SAASiB,EAAKiB,EAAI,CAAG,KAAMjB,EAAKiB,CAAC,GAAG,GAAGA,IAAM,OAAOA,CAAI,EACrE,WAAa,SAASa,EAAKb,EAAI,CAAG,OAAQa,EAAKb,CAAC,GAAI,EAAKa,EAAKb,EAAE,CAAC,CAAI,EACrE,YAAa,SAASa,EAAKb,EAAEiD,EAAE,CAAGpC,EAAKb,CAAC,EAAKiD,GAAG,EAAG,IAAMpC,EAAKb,EAAE,CAAC,EAAIiD,EAAE,GAAM,EAC7E,SAAa,SAASpC,EAAKb,EAAI,CAAG,OAAQa,EAAKb,CAAC,GAAG,IAAI,IAAI,MAAUa,EAAKb,EAAE,CAAC,GAAG,GAAOa,EAAKb,EAAE,CAAC,GAAI,EAAKa,EAAKb,EAAE,CAAC,EAAK,EACrH,UAAa,SAASa,EAAKb,EAAEiD,EAAE,CAAGpC,EAAKb,CAAC,EAAGiD,GAAG,GAAI,IAAMpC,EAAKb,EAAE,CAAC,EAAGiD,GAAG,GAAI,IAAMpC,EAAKb,EAAE,CAAC,EAAGiD,GAAG,EAAG,IAAMpC,EAAKb,EAAE,CAAC,EAAEiD,EAAE,GAAM,EACzH,UAAa,SAASpC,EAAKb,EAAEmD,EAAE,CAAgB,QAATe,EAAI,GAAa3F,EAAE,EAAGA,EAAE4E,EAAG5E,IAAK2F,GAAK,OAAO,aAAarD,EAAKb,EAAEzB,CAAC,CAAC,EAAI,OAAO2F,CAAM,EACzH,WAAa,SAASnF,EAAKiB,EAAEkE,EAAE,CAAG,QAAQ3F,EAAE,EAAGA,EAAE2F,EAAE,OAAQ3F,IAAKQ,EAAKiB,EAAEzB,CAAC,EAAI2F,EAAE,WAAW3F,CAAC,CAAI,EAC9F,UAAa,SAASsC,EAAKb,EAAEmD,EAAE,CAAmB,QAAZ0C,EAAM,CAAC,EAAatH,EAAE,EAAGA,EAAE4E,EAAG5E,IAAKsH,EAAI,KAAKhF,EAAKb,EAAEzB,CAAC,CAAC,EAAK,OAAOsH,CAAM,EAC7G,IAAM,SAAS5C,EAAG,CAAE,OAAOA,EAAE,OAAS,EAAI,IAAMA,EAAIA,CAAG,EACvD,SAAW,SAASpC,EAAMb,EAAGmD,EAAG,CAE/B,QADIe,EAAI,GAAI4B,EACJvH,EAAE,EAAGA,EAAE4E,EAAG5E,IAAK2F,GAAK,IAAMpG,EAAK,KAAK,IAAI+C,EAAKb,EAAEzB,CAAC,EAAE,SAAS,EAAE,CAAC,EACtE,GAAI,CAAGuH,EAAK,mBAAmB5B,CAAC,CAAG,MAC1B,CAAG,OAAOpG,EAAK,KAAK,UAAU+C,EAAMb,EAAGmD,CAAC,CAAI,CACrD,OAAQ2C,CACT,CACD,EACAhI,EAAK,UAAY,SAASiI,EAAIjB,EAAIC,EAAIjF,EAAIkG,EAAIC,EAAIC,EAAMC,EAAMC,EAC9D,CAGC,QAFIpI,EAAI,KAAK,IAAI8G,EAAGkB,CAAE,EAAG/H,EAAI,KAAK,IAAI8G,EAAGkB,CAAE,EACvCI,EAAG,EAAG1G,EAAG,EACLQ,EAAE,EAAGA,EAAElC,EAAGkC,IACjB,QAAQQ,EAAE,EAAGA,EAAE3C,EAAG2C,IAKjB,GAHGuF,GAAM,GAAKC,GAAM,GAAME,EAAMlG,EAAE2E,EAAGnE,GAAI,EAAIhB,GAAQwG,EAAKhG,GAAG6F,EAAGE,EAAKvF,GAAI,IAC/C0F,GAAO,CAACF,EAAKhG,GAAG2E,EAAGoB,EAAKvF,GAAI,EAAIhB,EAAMQ,EAAE6F,EAAGrF,GAAI,GAEjEyF,GAAM,EAAMtG,EAAGH,CAAE,EAAIoG,EAAGM,CAAE,EAAIvG,EAAGH,EAAG,CAAC,EAAIoG,EAAGM,EAAG,CAAC,EAAIvG,EAAGH,EAAG,CAAC,EAAIoG,EAAGM,EAAG,CAAC,EAAIvG,EAAGH,EAAG,CAAC,EAAIoG,EAAGM,EAAG,CAAC,UAC5FD,GAAM,EAAG,CAChB,IAAIE,EAAKP,EAAGM,EAAG,CAAC,EAAG,mBAAQ7E,EAAGuE,EAAGM,CAAE,EAAEC,EAAIC,EAAGR,EAAGM,EAAG,CAAC,EAAEC,EAAIE,EAAGT,EAAGM,EAAG,CAAC,EAAEC,EACjEG,EAAK3G,EAAGH,EAAG,CAAC,GAAG,EAAE,KAAM+G,EAAG5G,EAAGH,CAAE,EAAE8G,EAAIE,EAAG7G,EAAGH,EAAG,CAAC,EAAE8G,EAAIG,EAAG9G,EAAGH,EAAG,CAAC,EAAE8G,EAEjEI,EAAI,EAAEP,EAAIQ,EAAKR,EAAGG,EAAGI,EAAKE,EAAOD,GAAI,EAAE,EAAE,EAAEA,EAC/ChH,EAAGH,EAAG,CAAC,EAAI,IAAImH,EACfhH,EAAGH,EAAG,CAAC,GAAK6B,EAAGkF,EAAGG,GAAKE,EACvBjH,EAAGH,EAAG,CAAC,GAAK4G,EAAGI,EAAGE,GAAKE,EACvBjH,EAAGH,EAAG,CAAC,GAAK6G,EAAGI,EAAGC,GAAKE,CACxB,SACQX,GAAM,EAAE,CACf,IAAIE,EAAKP,EAAGM,EAAG,CAAC,EAAG7E,EAAGuE,EAAGM,CAAE,EAAGE,EAAGR,EAAGM,EAAG,CAAC,EAAGG,EAAGT,EAAGM,EAAG,CAAC,EACjDI,EAAK3G,EAAGH,EAAG,CAAC,EAAG+G,EAAG5G,EAAGH,CAAE,EAAGgH,EAAG7G,EAAGH,EAAG,CAAC,EAAGiH,EAAG9G,EAAGH,EAAG,CAAC,EAClD2G,GAAIG,GAAMjF,GAAIkF,GAAMH,GAAII,GAAMH,GAAII,GAAO9G,EAAGH,CAAE,EAAE,EAAIG,EAAGH,EAAG,CAAC,EAAE,EAAIG,EAAGH,EAAG,CAAC,EAAE,EAAIG,EAAGH,EAAG,CAAC,EAAE,IAClFG,EAAGH,CAAE,EAAE6B,EAAK1B,EAAGH,EAAG,CAAC,EAAE4G,EAAKzG,EAAGH,EAAG,CAAC,EAAE6G,EAAK1G,EAAGH,EAAG,CAAC,EAAE2G,EAC1D,SACQF,GAAM,EAAE,CACf,IAAIE,EAAKP,EAAGM,EAAG,CAAC,EAAG7E,EAAGuE,EAAGM,CAAE,EAAGE,EAAGR,EAAGM,EAAG,CAAC,EAAGG,EAAGT,EAAGM,EAAG,CAAC,EACjDI,EAAK3G,EAAGH,EAAG,CAAC,EAAG+G,EAAG5G,EAAGH,CAAE,EAAGgH,EAAG7G,EAAGH,EAAG,CAAC,EAAGiH,EAAG9G,EAAGH,EAAG,CAAC,EACrD,GAAG2G,GAAIG,GAAMjF,GAAIkF,GAAMH,GAAII,GAAMH,GAAII,EAAI,SAEzC,GAAGN,EAAG,KAAOG,EAAG,GAAI,MAAO,EAC5B,CAEF,MAAO,EACR,EAKA3I,EAAK,OAAS,SAASkJ,EAAMhJ,EAAGC,EAAGgJ,EAAIC,EAAMC,EAAMC,EACnD,CACIH,GAAI,OAAMA,EAAG,GACbG,GAAY,OAAMA,EAAa,IAElC,IAAIC,EAAOvJ,EAAK,OAAO,SAASkJ,EAAMhJ,EAAGC,EAAGgJ,EAAI,CAAC,GAAO,GAAO,GAAO,EAAGG,CAAU,CAAC,EACpF,OAAAtJ,EAAK,OAAO,YAAYuJ,EAAM,EAAE,EAEzBvJ,EAAK,OAAO,MAAMuJ,EAAMrJ,EAAGC,EAAGiJ,EAAMC,CAAI,CAChD,EAEArJ,EAAK,SAAW,SAASkJ,EAAMhJ,EAAGC,EAAGgH,EAAIqC,EAAIhI,EAAO4H,EAAMC,EAAM,CAK/D,QAJIE,EAAO,CAAG,MAAO,GAAKpC,GAAI,EAAI,EAAI,IAAMqC,GAAI,EAAI,EAAI,GAAS,MAAOhI,EAAQ,OAAQ,CAAC,CAAG,EAExFE,EAAO,KAAK,IAAI,EAChB+H,GAAQtC,EAAGqC,GAAIhI,EAAOkI,EAAOD,EAAOvJ,EAChCO,EAAE,EAAGA,EAAEyI,EAAK,OAAQzI,IAC3B8I,EAAK,OAAO,KAAK,CAAG,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,MAAMrJ,EAAE,OAAOC,CAAC,EAAI,IAAI,IAAI,WAAW+I,EAAKzI,CAAC,CAAC,EAAG,MAAM,EAAG,QAAQ,EAAG,IAAI,KAAK,KAAKgJ,EAAK,CAAC,EAAG,IAAI,KAAK,KAAKC,EAAK,CAAC,CAAG,CAAC,EAEvJ1J,EAAK,OAAO,YAAYuJ,EAAM,EAAG,EAAI,EAErC,IAAItJ,EAAMD,EAAK,OAAO,MAAMuJ,EAAMrJ,EAAGC,EAAGiJ,EAAMC,CAAI,EAClD,OAAOpJ,CACR,EAEAD,EAAK,OAAO,MAAQ,SAASuJ,EAAMrJ,EAAGC,EAAGiJ,EAAMC,EAAM,CACjDA,GAAM,OAAMA,EAAK,CAAC,GACrB,IAAIhF,EAAMrE,EAAK,IAAI,IAAK2J,EAAM3J,EAAK,KAAK,UAAW4J,EAAM5J,EAAK,KAAK,YAAa6J,EAAM7J,EAAK,KAAK,WAC5FgD,EAAS,EAAG8G,EAAOP,EAAK,OAAO,OAAO,EAAGQ,EAAW,GAEpDC,EAAO,IAA4BF,EAAO,GAAK,GAGnD,GAFGT,EAAK,MAAS,OAAMW,GAAQ,IAC5BX,EAAK,MAAS,OAAMW,GAAQ,IAC5BT,EAAK,OAAO,EAAG,CAEjB,QADIU,EAAKV,EAAK,KAAK,OACX9I,EAAE,EAAGA,EAAEwJ,EAAIxJ,IAAS8I,EAAK,KAAK9I,CAAC,IAAI,IAAK,MAAKsJ,EAAW,IAChEC,GAAS,EAAIC,EAAG,EAAI,GAAMF,EAAY,EAAIE,EAAG,EAAI,EAAK,EACvD,CACA,QAAQjJ,EAAE,EAAGA,EAAEuI,EAAK,OAAO,OAAQvI,IACnC,CACC,IAAI0C,EAAK6F,EAAK,OAAOvI,CAAC,EACnB8I,IAAME,GAAQ,IACjBA,GAAQtG,EAAG,KAAK,OAAS,GACtB1C,GAAG,IAAGgJ,GAAM,EAChB,CACAA,GAAQ,GAIR,QAFI/I,EAAO,IAAI,WAAW+I,CAAI,EAC1BE,EAAG,CAAC,IAAM,GAAM,GAAM,GAAM,GAAM,GAAM,GAAM,EAAI,EAC9CzJ,EAAE,EAAGA,EAAE,EAAGA,IAAKQ,EAAKR,CAAC,EAAEyJ,EAAGzJ,CAAC,EAqCnC,GAnCAkJ,EAAI1I,EAAK+B,EAAQ,EAAE,EAAOA,GAAQ,EAClC6G,EAAI5I,EAAK+B,EAAO,MAAM,EAAIA,GAAQ,EAClC2G,EAAI1I,EAAK+B,EAAO9C,CAAC,EAAI8C,GAAQ,EAC7B2G,EAAI1I,EAAK+B,EAAO7C,CAAC,EAAI6C,GAAQ,EAC7B/B,EAAK+B,CAAM,EAAIuG,EAAK,MAAQvG,IAC5B/B,EAAK+B,CAAM,EAAIuG,EAAK,MAAQvG,IAC5B/B,EAAK+B,CAAM,EAAI,EAAIA,IACnB/B,EAAK+B,CAAM,EAAI,EAAIA,IACnB/B,EAAK+B,CAAM,EAAI,EAAIA,IACnB2G,EAAI1I,EAAK+B,EAAOqB,EAAIpD,EAAK+B,EAAO,GAAG,EAAE,CAAC,EAAIA,GAAQ,EAG/CqG,EAAK,MAAS,OAChBM,EAAI1I,EAAK+B,EAAQ,CAAC,EAAQA,GAAQ,EAClC6G,EAAI5I,EAAK+B,EAAO,MAAM,EAAIA,GAAQ,EAClC/B,EAAK+B,CAAM,EAAIqG,EAAK,KAAUrG,IAC9B2G,EAAI1I,EAAK+B,EAAOqB,EAAIpD,EAAK+B,EAAO,EAAE,CAAC,CAAC,EAAIA,GAAQ,GAE9CqG,EAAK,MAAS,OAChBM,EAAI1I,EAAK+B,EAAQ,CAAC,EAAQA,GAAQ,EAClC6G,EAAI5I,EAAK+B,EAAO,MAAM,EAAIA,GAAQ,EAClC2G,EAAI1I,EAAK+B,EAAQqG,EAAK,KAAQ,CAAC,CAAC,EAAQrG,GAAQ,EAChD2G,EAAI1I,EAAK+B,EAAQqG,EAAK,KAAQ,CAAC,CAAC,EAAQrG,GAAQ,EAChD/B,EAAK+B,CAAM,EAAEqG,EAAK,KAAQ,CAAC,EAAKrG,IAChC2G,EAAI1I,EAAK+B,EAAOqB,EAAIpD,EAAK+B,EAAO,GAAG,EAAE,CAAC,EAAIA,GAAQ,GAGhD8G,IACFH,EAAI1I,EAAK+B,EAAQ,CAAC,EAAQA,GAAQ,EAClC6G,EAAI5I,EAAK+B,EAAO,MAAM,EAAIA,GAAQ,EAClC2G,EAAI1I,EAAK+B,EAAQuG,EAAK,OAAO,MAAM,EAAOvG,GAAQ,EAClD2G,EAAI1I,EAAK+B,EAAQqG,EAAK,MAAS,KAAKA,EAAK,KAAQ,CAAC,EAAQrG,GAAQ,EAClE2G,EAAI1I,EAAK+B,EAAOqB,EAAIpD,EAAK+B,EAAO,GAAG,EAAE,CAAC,EAAIA,GAAQ,GAGhDuG,EAAK,OAAO,EAAG,CACjB,IAAIU,EAAKV,EAAK,KAAK,OACnBI,EAAI1I,EAAK+B,EAAQiH,EAAG,CAAC,EAAIjH,GAAQ,EACjC6G,EAAI5I,EAAK+B,EAAO,MAAM,EAAIA,GAAQ,EAClC,QAAQvC,EAAE,EAAGA,EAAEwJ,EAAIxJ,IAAI,CACtB,IAAIoB,EAAGpB,EAAE,EAAGmF,EAAE2D,EAAK,KAAK9I,CAAC,EAAGqF,EAAGF,EAAG,IAAKuE,EAAGvE,IAAI,EAAG,IAAKJ,EAAGI,IAAI,GAAI,IACjE3E,EAAK+B,EAAOnB,EAAG,CAAC,EAAEiE,EAAI7E,EAAK+B,EAAOnB,EAAG,CAAC,EAAEsI,EAAIlJ,EAAK+B,EAAOnB,EAAG,CAAC,EAAE2D,CAC/D,CAIA,GAHAxC,GAAQiH,EAAG,EACXN,EAAI1I,EAAK+B,EAAOqB,EAAIpD,EAAK+B,EAAOiH,EAAG,EAAE,EAAEA,EAAG,EAAE,CAAC,CAAC,EAAIjH,GAAQ,EAEvD+G,EAAU,CACZJ,EAAI1I,EAAK+B,EAAQiH,CAAE,EAAIjH,GAAQ,EAC/B6G,EAAI5I,EAAK+B,EAAO,MAAM,EAAIA,GAAQ,EAClC,QAAQvC,EAAE,EAAGA,EAAEwJ,EAAIxJ,IAAMQ,EAAK+B,EAAOvC,CAAC,EAAG8I,EAAK,KAAK9I,CAAC,IAAI,GAAI,IAC5DuC,GAAQiH,EACRN,EAAI1I,EAAK+B,EAAOqB,EAAIpD,EAAK+B,EAAOiH,EAAG,EAAEA,EAAG,CAAC,CAAC,EAAIjH,GAAQ,CACvD,CACD,CAGA,QADIoH,EAAK,EACDpJ,EAAE,EAAGA,EAAEuI,EAAK,OAAO,OAAQvI,IACnC,CACC,IAAI0C,EAAK6F,EAAK,OAAOvI,CAAC,EACnB8I,IACFH,EAAI1I,EAAM+B,EAAQ,EAAE,EAAOA,GAAQ,EACnC6G,EAAI5I,EAAM+B,EAAO,MAAM,EAAIA,GAAQ,EACnC2G,EAAI1I,EAAM+B,EAAQoH,GAAI,EAAKpH,GAAQ,EACnC2G,EAAI1I,EAAM+B,EAAQU,EAAG,KAAK,KAAM,EAAKV,GAAQ,EAC7C2G,EAAI1I,EAAM+B,EAAQU,EAAG,KAAK,MAAM,EAAKV,GAAQ,EAC7C2G,EAAI1I,EAAM+B,EAAQU,EAAG,KAAK,CAAC,EAAKV,GAAQ,EACxC2G,EAAI1I,EAAM+B,EAAQU,EAAG,KAAK,CAAC,EAAKV,GAAQ,EACxC4G,EAAI3I,EAAM+B,EAAQoG,EAAKpI,CAAC,CAAC,EAAKgC,GAAQ,EACtC4G,EAAI3I,EAAM+B,EAAS,GAAI,EAAKA,GAAQ,EACpC/B,EAAK+B,CAAM,EAAIU,EAAG,QAAUV,IAC5B/B,EAAK+B,CAAM,EAAIU,EAAG,MAAUV,IAC5B2G,EAAI1I,EAAK+B,EAAOqB,EAAIpD,EAAK+B,EAAO,GAAG,EAAE,CAAC,EAAIA,GAAQ,GAGnD,IAAIqH,EAAO3G,EAAG,KAAMuG,EAAKI,EAAK,OAC9BV,EAAI1I,EAAK+B,EAAQiH,GAAIjJ,GAAG,EAAE,EAAE,EAAE,EAAOgC,GAAQ,EAC7C,IAAIsH,EAAOtH,EACX6G,EAAI5I,EAAK+B,EAAQhC,GAAG,EAAG,OAAO,MAAM,EAAIgC,GAAQ,EAC7ChC,GAAG,IAAM2I,EAAI1I,EAAM+B,EAAQoH,GAAI,EAAIpH,GAAQ,GAC9C/B,EAAK,IAAIoJ,EAAKrH,CAAM,EACpBA,GAAUiH,EACVN,EAAI1I,EAAK+B,EAAOqB,EAAIpD,EAAKqJ,EAAKtH,EAAOsH,CAAI,CAAC,EAAItH,GAAQ,CACvD,CAEA,OAAA2G,EAAI1I,EAAK+B,EAAQ,CAAC,EAAOA,GAAQ,EACjC6G,EAAI5I,EAAK+B,EAAO,MAAM,EAAIA,GAAQ,EAClC2G,EAAI1I,EAAK+B,EAAOqB,EAAIpD,EAAK+B,EAAO,EAAE,CAAC,CAAC,EAAIA,GAAQ,EAEzC/B,EAAK,MACb,EAEAjB,EAAK,OAAO,YAAc,SAASC,EAAKsK,EAAQC,EAAW,CAC1D,QAAQ/J,EAAE,EAAGA,EAAER,EAAI,OAAO,OAAQQ,IAAK,CACtC,IAAIC,EAAMT,EAAI,OAAOQ,CAAC,EAAGgK,EAAG/J,EAAI,KAAK,MAAOgK,EAAGhK,EAAI,KAAK,OACpDK,EAAQ,IAAI,WAAW2J,EAAGhK,EAAI,IAAIgK,CAAE,EACxChK,EAAI,KAAOV,EAAK,OAAO,YAAYU,EAAI,IAAIgK,EAAGhK,EAAI,IAAIA,EAAI,IAAIK,EAAOwJ,EAAQC,CAAS,CACvF,CACD,EAIAxK,EAAK,OAAO,SAAW,SAASkJ,EAAMhJ,EAAGC,EAAGgJ,EAAIwB,EAChD,CAMC,QAJIC,EAAYD,EAAK,CAAC,EAAGE,EAAUF,EAAK,CAAC,EAAGG,EAAaH,EAAK,CAAC,EAAGI,EAAUJ,EAAK,CAAC,EAAGrB,EAAaqB,EAAK,CAAC,EAEpGpJ,EAAQ,EAAGC,EAAQ,EAAGwJ,EAAS,IAE3BhK,EAAE,EAAGA,EAAEkI,EAAK,OAAQlI,IAE3B,QADIV,EAAM,IAAI,WAAW4I,EAAKlI,CAAC,CAAC,EAAGiK,EAAO3K,EAAI,OACtCG,EAAE,EAAGA,EAAEwK,EAAMxK,GAAG,EAAGuK,GAAY1K,EAAIG,EAAE,CAAC,EAE/C,IAAIyK,EAAYF,GAAU,IAKtB5K,EAAOJ,EAAK,OAAO,QAAQkJ,EAAMhJ,EAAGC,EAAGyK,EAAWC,EAASC,CAAU,EAGrEK,EAAK,CAAC,EAAGC,EAAK,CAAC,EAAGC,EAAK,CAAC,EAE5B,GAAGlC,GAAI,EAAG,CACQ,QAAbmC,EAAQ,CAAC,EAAY7K,EAAE,EAAGA,EAAEL,EAAK,OAAQK,IAAK6K,EAAM,KAAKlL,EAAKK,CAAC,EAAE,IAAI,MAAM,EAI/E,QAFI8K,EAAOvL,EAAK,OAAO,WAAWsL,CAAK,EAAGE,EAAOxL,EAAK,SAASuL,EAAMpC,CAAE,EACnEsC,EAAM,EAAG3C,EAAK,IAAI,WAAW0C,EAAK,IAAI,EAClC/K,EAAE,EAAGA,EAAEL,EAAK,OAAQK,IAAK,CAAG,IAAIoB,EAAGzB,EAAKK,CAAC,EAAE,IAAKiL,EAAI7J,EAAG,OAASwJ,EAAK,KAAK,IAAI,WAAWG,EAAK,KAAK,OAAQC,GAAK,EAAGC,GAAK,CAAC,CAAC,EACjI,QAAQ1K,EAAE,EAAGA,EAAE0K,EAAK1K,GAAG,EAAMa,EAAGb,CAAC,EAAE8H,EAAG2C,EAAIzK,CAAC,EAAIa,EAAGb,EAAE,CAAC,EAAE8H,EAAG2C,EAAIzK,EAAE,CAAC,EAAIa,EAAGb,EAAE,CAAC,EAAE8H,EAAG2C,EAAIzK,EAAE,CAAC,EAAIa,EAAGb,EAAE,CAAC,EAAE8H,EAAG2C,EAAIzK,EAAE,CAAC,EAASyK,GAAKC,CAAM,CAElI,QAAQjL,EAAE,EAAGA,EAAE+K,EAAK,KAAK,OAAQ/K,IAAK2K,EAAK,KAAKI,EAAK,KAAK/K,CAAC,EAAE,IAAI,IAAI,CAEtE,KAGC,SAAQO,EAAE,EAAGA,EAAEZ,EAAK,OAAQY,IAAM,CACjC,IAAIN,EAAMN,EAAKY,CAAC,EAAG2K,EAAQ,IAAI,YAAYjL,EAAI,IAAI,MAAM,EAAG+J,EAAG/J,EAAI,KAAK,MAAOuK,EAAOU,EAAM,OACxFC,EAAM,IAAI,WAAWX,CAAI,EAAII,EAAK,KAAKO,CAAG,EAC9C,QAAQnL,EAAE,EAAGA,EAAEwK,EAAMxK,IAAK,CACzB,IAAImF,EAAI+F,EAAMlL,CAAC,EACf,GAAQA,GAAG,GAAKmF,GAAG+F,EAAMlL,EAAG,CAAC,EAAGmL,EAAInL,CAAC,EAAEmL,EAAInL,EAAE,CAAC,UACtCA,EAAEgK,GAAM7E,GAAG+F,EAAMlL,EAAEgK,CAAE,EAAGmB,EAAInL,CAAC,EAAEmL,EAAInL,EAAEgK,CAAE,MAC1C,CACJ,IAAIoB,EAAMV,EAAKvF,CAAC,EAChB,GAAGiG,GAAK,OAASV,EAAKvF,CAAC,EAAEiG,EAAIT,EAAK,OAASA,EAAK,KAAKxF,CAAC,EAAOwF,EAAK,QAAQ,KAAK,MAC/EQ,EAAInL,CAAC,EAAEoL,CACR,CACD,CACD,CAID,IAAI1E,EAAGiE,EAAK,OACTjE,GAAI,KAAOmC,GAAY,KACtBnC,GAAK,EAAG3F,EAAM,EAAY2F,GAAK,EAAG3F,EAAM,EAAY2F,GAAI,GAAI3F,EAAM,EAASA,EAAM,EACpFA,EAAS,KAAK,IAAIA,EAAOuJ,CAAO,GAGjC,QAAQ/J,EAAE,EAAGA,EAAEZ,EAAK,OAAQY,IAC5B,CACC,IAAIN,EAAMN,EAAKY,CAAC,EAAG8K,EAAGpL,EAAI,KAAK,EAAGqL,EAAGrL,EAAI,KAAK,EAAG+J,EAAG/J,EAAI,KAAK,MAAOgK,EAAGhK,EAAI,KAAK,OAC5EsL,EAAOtL,EAAI,IAAKuL,EAAS,IAAI,YAAYD,EAAK,MAAM,EACpD5K,EAAM,EAAEqJ,EAAItJ,EAAI,EACpB,GAAGgG,GAAI,KAAOmC,GAAY,GAAO,CAChClI,EAAM,KAAK,KAAKI,EAAMiJ,EAAG,CAAC,EAG1B,QAFIlB,EAAO,IAAI,WAAWnI,EAAIsJ,CAAE,EAC5BwB,EAAMb,EAAKrK,CAAC,EACRqB,EAAE,EAAGA,EAAEqI,EAAIrI,IAAK,CAAG,IAAI5B,EAAE4B,EAAEjB,EAAKqG,EAAGpF,EAAEoI,EAC5C,GAAQjJ,GAAO,EAAG,QAAQqB,EAAE,EAAGA,EAAE4H,EAAI5H,IAAK0G,EAAK9I,EAAGoC,CAAK,EAAQqJ,EAAIzE,EAAG5E,CAAC,UAC/DrB,GAAO,EAAG,QAAQqB,EAAE,EAAGA,EAAE4H,EAAI5H,IAAK0G,EAAK9I,GAAGoC,GAAG,EAAE,GAAQqJ,EAAIzE,EAAG5E,CAAC,GAAI,GAAGA,EAAE,GAAG,UAC3ErB,GAAO,EAAG,QAAQqB,EAAE,EAAGA,EAAE4H,EAAI5H,IAAK0G,EAAK9I,GAAGoC,GAAG,EAAE,GAAQqJ,EAAIzE,EAAG5E,CAAC,GAAI,GAAGA,EAAE,GAAG,UAC3ErB,GAAO,EAAG,QAAQqB,EAAE,EAAGA,EAAE4H,EAAI5H,IAAK0G,EAAK9I,GAAGoC,GAAG,EAAE,GAAQqJ,EAAIzE,EAAG5E,CAAC,GAAI,GAAGA,EAAE,GAAG,CACpF,CACAmJ,EAAKzC,EAAOhI,EAAM,EAAIJ,EAAI,CAC3B,SACQ+J,GAAU,IAAS9K,EAAK,QAAQ,EAAG,CAE1C,QADImJ,EAAO,IAAI,WAAWkB,EAAGC,EAAG,CAAC,EAAGxJ,EAAKuJ,EAAGC,EACpCjK,EAAE,EAAGA,EAAES,EAAMT,IAAK,CAAE,IAAIoB,EAAGpB,EAAE,EAAGwB,EAAGxB,EAAE,EAAI8I,EAAK1H,CAAE,EAAEmK,EAAK/J,CAAE,EAAIsH,EAAK1H,EAAG,CAAC,EAAEmK,EAAK/J,EAAG,CAAC,EAAIsH,EAAK1H,EAAG,CAAC,EAAEmK,EAAK/J,EAAG,CAAC,CAAI,CACrH+J,EAAKzC,EAAOhI,EAAM,EAAIJ,EAAI,EAAIC,EAAI,EAAEqJ,CACrC,CACA/J,EAAI,IAAIsL,EAAOtL,EAAI,IAAIU,EAAMV,EAAI,IAAIS,CACtC,CAGA,MAAO,CAAC,MAAMI,EAAO,MAAMC,EAAO,KAAK4J,EAAM,OAAOhL,CAAM,CAC3D,EACAJ,EAAK,OAAO,QAAU,SAASkJ,EAAKhJ,EAAEC,EAAEgM,EAAYtB,EAAQC,EAAY,CAUvE,QADI1K,EAAO,CAAC,EACJY,EAAE,EAAGA,EAAEkI,EAAK,OAAQlI,IAAK,CAChC,IAAIgL,EAAO,IAAI,WAAW9C,EAAKlI,CAAC,CAAC,EAAGiL,EAAS,IAAI,YAAYD,EAAK,MAAM,EACpEzC,EAEAuC,EAAG,EAAGC,EAAG,EAAGtB,EAAGvK,EAAGwK,EAAGvK,EAAGiM,EAAMD,EAAY,EAAE,EAChD,GAAGnL,GAAG,EAAG,CAER,QADIqL,EAAQvB,GAAcqB,GAAenL,GAAG,GAAKZ,EAAKY,EAAE,CAAC,EAAE,SAAS,EAAG,EAAE,EAAGsL,EAAO,EAAGC,EAAQ,IACtFC,EAAG,EAAGA,EAAGH,EAAMG,IACvB,CAGC,QAFIC,EAAO,IAAI,WAAWvD,EAAKlI,EAAE,EAAEwL,CAAE,CAAC,EAAGE,EAAM,IAAI,YAAYxD,EAAKlI,EAAE,EAAEwL,CAAE,CAAC,EACvEG,EAAIzM,EAAE0M,EAAIzM,EAAE0M,EAAI,GAAGC,EAAI,GACnBzK,EAAE,EAAGA,EAAElC,EAAGkC,IAAK,QAAQ,EAAE,EAAG,EAAEnC,EAAG,IAAK,CAC7C,IAAIO,EAAI4B,EAAEnC,EAAE,EACT+L,EAAOxL,CAAC,GAAGiM,EAAIjM,CAAC,IACf,EAAEkM,IAAKA,EAAI,GAAO,EAAEE,IAAKA,EAAI,GAC7BxK,EAAEuK,IAAKA,EAAIvK,GAAOA,EAAEyK,IAAKA,EAAIzK,GAElC,CACGwK,GAAK,KAAIF,EAAIC,EAAIC,EAAIC,EAAI,GACzBjC,KAAgB8B,EAAI,IAAI,GAAEA,KAAYC,EAAI,IAAI,GAAEA,KACnD,IAAIG,GAASF,EAAIF,EAAI,IAAIG,EAAIF,EAAI,GAC9BG,EAAMR,IACRA,EAAQQ,EAAQT,EAAOE,EACvBV,EAAKa,EAAKZ,EAAKa,EAAKnC,EAAKoC,EAAIF,EAAI,EAAGjC,EAAKoC,EAAIF,EAAI,EAEnD,CAGA,IAAIH,EAAO,IAAI,WAAWvD,EAAKlI,EAAE,EAAEsL,CAAI,CAAC,EACrCA,GAAM,IAAGlM,EAAKY,EAAE,CAAC,EAAE,QAAU,GAEhCuI,EAAO,IAAI,WAAWkB,EAAGC,EAAG,CAAC,EAC7B1K,EAAK,UAAUyM,EAAKvM,EAAEC,EAAGoJ,EAAKkB,EAAGC,EAAI,CAACoB,EAAG,CAACC,EAAI,CAAC,EAE/CK,EAASpM,EAAK,UAAUgM,EAAK9L,EAAEC,EAAGoJ,EAAKkB,EAAGC,EAAI,CAACoB,EAAG,CAACC,EAAI,CAAC,EAAI,EAAI,EAC7DK,GAAO,EAAGpM,EAAK,OAAO,aAAagM,EAAK9L,EAAEC,EAAEoJ,EAAK,CAAC,EAAEuC,EAAG,EAAEC,EAAG,MAAMtB,EAAG,OAAOC,CAAE,CAAC,EACrE1K,EAAK,UAAUgM,EAAK9L,EAAEC,EAAGoJ,EAAKkB,EAAGC,EAAI,CAACoB,EAAG,CAACC,EAAI,CAAC,CAE7D,MACKxC,EAAOyC,EAAK,MAAM,CAAC,EAExB5L,EAAK,KAAK,CAAC,KAAK,CAAC,EAAE0L,EAAG,EAAEC,EAAG,MAAMtB,EAAG,OAAOC,CAAE,EAAG,IAAInB,EAAM,MAAM6C,EAAO,QAAQ,CAAC,CAAC,CAClF,CAGA,GAAGD,EAAa,QAAQnL,EAAE,EAAGA,EAAEZ,EAAK,OAAQY,IAAK,CAChD,IAAIN,EAAMN,EAAKY,CAAC,EAAI,GAAGN,EAAI,OAAO,EAClC,KAAIsM,EAAKtM,EAAI,KAAMuM,EAAK7M,EAAKY,EAAE,CAAC,EAAE,KAC9BkM,EAAM,KAAK,IAAIF,EAAG,EAAGC,EAAG,CAAC,EAAGE,EAAM,KAAK,IAAIH,EAAG,EAAGC,EAAG,CAAC,EACrDG,EAAM,KAAK,IAAIJ,EAAG,EAAEA,EAAG,MAAOC,EAAG,EAAEA,EAAG,KAAK,EAAGI,EAAM,KAAK,IAAIL,EAAG,EAAEA,EAAG,OAAQC,EAAG,EAAEA,EAAG,MAAM,EAC3FnH,EAAI,CAAC,EAAEoH,EAAK,EAAEC,EAAK,MAAMC,EAAIF,EAAK,OAAOG,EAAIF,CAAG,EAEpD/M,EAAKY,EAAE,CAAC,EAAE,QAAU,EACjBA,EAAE,GAAG,GACRhB,EAAK,OAAO,aAAakJ,EAAMhJ,EAAEC,EAAEC,EAAMY,EAAE,EAAE8E,EAAG+E,CAAO,EACvD7K,EAAK,OAAO,aAAakJ,EAAMhJ,EAAEC,EAAEC,EAAMY,EAAI8E,EAAG+E,CAAO,EACxD,CACA,IAAI3J,EAAO,EACX,GAAGgI,EAAK,QAAQ,EAAG,QAAQzI,EAAE,EAAGA,EAAEL,EAAK,OAAQK,IAAK,CACnD,IAAIC,EAAMN,EAAKK,CAAC,EAChBS,GAAQR,EAAI,KAAK,MAAMA,EAAI,KAAK,MAIjC,CAEA,OAAON,CACR,EACAJ,EAAK,OAAO,aAAe,SAASkJ,EAAMhJ,EAAEC,EAAGC,EAAMK,EAAGqF,EAAG+E,EAAS,CAMnE,QALIyC,EAAK,WAAYC,EAAM,YACvBd,EAAO,IAAIa,EAAGpE,EAAKzI,EAAE,CAAC,CAAC,EAAG+M,EAAS,IAAID,EAAIrE,EAAKzI,EAAE,CAAC,CAAC,EAAG8I,EAAO9I,EAAE,EAAEyI,EAAK,OAAS,IAAIoE,EAAGpE,EAAKzI,EAAE,CAAC,CAAC,EAAE,KAClGuL,EAAO,IAAIsB,EAAGpE,EAAKzI,CAAC,CAAC,EAAGwL,EAAS,IAAIsB,EAAIvB,EAAK,MAAM,EAEpDW,EAAIzM,EAAE0M,EAAIzM,EAAE0M,EAAI,GAAGC,EAAI,GACnBzK,EAAE,EAAGA,EAAEyD,EAAE,OAAQzD,IAAK,QAAQQ,EAAE,EAAGA,EAAEiD,EAAE,MAAOjD,IAAK,CAC1D,IAAI4K,EAAK3H,EAAE,EAAEjD,EAAG6K,EAAK5H,EAAE,EAAEzD,EACrBrB,EAAI0M,EAAGxN,EAAEuN,EAAItG,EAAK8E,EAAOjL,CAAC,EAE3BmG,GAAI,GAAM/G,EAAKK,EAAE,CAAC,EAAE,SAAS,GAAK+M,EAAOxM,CAAC,GAAGmG,IAAOoC,GAAM,MAAQA,EAAKvI,EAAE,EAAE,CAAC,GAAG,KAE9EyM,EAAGd,IAAKA,EAAIc,GAAQA,EAAGZ,IAAKA,EAAIY,GAChCC,EAAGd,IAAKA,EAAIc,GAAQA,EAAGZ,IAAKA,EAAIY,GAErC,CACGb,GAAK,KAAIF,EAAIC,EAAIC,EAAIC,EAAI,GACzBjC,KAAgB8B,EAAI,IAAI,GAAEA,KAAYC,EAAI,IAAI,GAAEA,KACnD9G,EAAI,CAAC,EAAE6G,EAAK,EAAEC,EAAK,MAAMC,EAAIF,EAAI,EAAG,OAAOG,EAAIF,EAAI,CAAC,EAEpD,IAAIlJ,EAAKtD,EAAKK,CAAC,EAAIiD,EAAG,KAAOoC,EAAIpC,EAAG,MAAQ,EAAIA,EAAG,IAAM,IAAI,WAAWoC,EAAE,MAAMA,EAAE,OAAO,CAAC,EACvF1F,EAAKK,EAAE,CAAC,EAAE,SAAS,GACrBT,EAAK,UAAUyM,EAAKvM,EAAEC,EAAGuD,EAAG,IAAIoC,EAAE,MAAMA,EAAE,OAAQ,CAACA,EAAE,EAAE,CAACA,EAAE,EAAG,CAAC,EAC9D9F,EAAK,OAAO,aAAagM,EAAK9L,EAAEC,EAAEuD,EAAG,IAAIoC,CAAC,GAI1C9F,EAAK,UAAUgM,EAAK9L,EAAEC,EAAGuD,EAAG,IAAIoC,EAAE,MAAMA,EAAE,OAAQ,CAACA,EAAE,EAAE,CAACA,EAAE,EAAG,CAAC,CAChE,EACA9F,EAAK,OAAO,aAAe,SAASgM,EAAM9L,EAAEC,EAAGoJ,EAAMoE,EAAK,CACzD3N,EAAK,UAAUgM,EAAK9L,EAAEC,EAAGoJ,EAAKoE,EAAI,MAAMA,EAAI,OAAQ,CAACA,EAAI,EAAE,CAACA,EAAI,EAAG,CAAC,CAmBrE,EAEA3N,EAAK,OAAO,YAAc,SAASM,EAAIH,EAAEgB,EAAIC,EAAIH,EAAMsJ,EAAQC,EAC/D,CACC,IAAIoD,EAAM,CAAC,EAAGC,EAAK,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EACrBtD,GAAQ,GAAgBsD,EAAK,CAACtD,CAAM,GACpCpK,EAAEiB,EAAI,KAAUD,GAAK,KAAG0M,EAAK,CAAC,CAAC,GACvC,IAAIC,EAAUtD,IAAWsD,EAAK,CAAC,MAAM,CAAC,GAItC,QAFIC,EAAQvD,GAAa,MAAM,KAAQ,KAAOzK,EAEtCU,EAAE,EAAGA,EAAEoN,EAAK,OAAQpN,IAAK,CAChC,QAAQ4B,EAAE,EAAGA,EAAElC,EAAGkC,IAAKrC,EAAK,OAAO,YAAYiB,EAAMX,EAAK+B,EAAGjB,EAAKD,EAAK0M,EAAKpN,CAAC,CAAC,EAM9EmN,EAAI,KAAKG,EAAK,QAAW9M,EAAK6M,CAAI,CAAC,CACpC,CAEA,QADIjM,EAAImM,EAAM,IACNvN,EAAE,EAAGA,EAAEmN,EAAI,OAAQnN,IAAQmN,EAAInN,CAAC,EAAE,OAAOuN,IAAUnM,EAAGpB,EAAIuN,EAAMJ,EAAInN,CAAC,EAAE,QAC/E,OAAOmN,EAAI/L,CAAE,CACd,EACA7B,EAAK,OAAO,YAAc,SAASiB,EAAMX,EAAK+B,EAAGjB,EAAKD,EAAKsC,EAC3D,CACC,IAAI,EAAIpB,EAAEjB,EAAKqB,EAAK,EAAEJ,EAAGsF,EAAQ3H,EAAK,OAAO,OAG7C,GAFAiB,EAAKwB,CAAE,EAAEgB,EAAOhB,IAEbgB,GAAM,EACR,GAAGrC,EAAI,IAAK,QAAQyB,EAAE,EAAGA,EAAEzB,EAAKyB,IAAK5B,EAAKwB,EAAGI,CAAC,EAAIvC,EAAI,EAAEuC,CAAC,OACpD5B,EAAK,IAAI,IAAI,WAAWX,EAAI,OAAO,EAAEc,CAAG,EAAEqB,CAAE,UAE1CgB,GAAM,EAAG,CAChB,QAAQZ,EAAI,EAAGA,EAAE1B,EAAK0B,IAAK5B,EAAKwB,EAAGI,CAAC,EAAKvC,EAAI,EAAEuC,CAAC,EAChD,QAAQA,EAAE1B,EAAK0B,EAAEzB,EAAKyB,IAAK5B,EAAKwB,EAAGI,CAAC,EAAKvC,EAAI,EAAEuC,CAAC,EAAEvC,EAAI,EAAEuC,EAAE1B,CAAG,EAAE,IAAK,GACrE,SACQkB,GAAG,EAAG,CACb,QAAQQ,EAAI,EAAGA,EAAE1B,EAAK0B,IAAK5B,EAAKwB,EAAGI,CAAC,EAAIvC,EAAI,EAAEuC,CAAC,EAE/C,GAAGY,GAAM,EAAG,QAAQZ,EAAE1B,EAAK0B,EAAEzB,EAAKyB,IAAK5B,EAAKwB,EAAGI,CAAC,EAAIvC,EAAI,EAAEuC,CAAC,EAC3D,GAAGY,GAAM,EAAG,QAAQZ,EAAE1B,EAAK0B,EAAEzB,EAAKyB,IAAK5B,EAAKwB,EAAGI,CAAC,EAAKvC,EAAI,EAAEuC,CAAC,GAAKvC,EAAI,EAAEuC,EAAE1B,CAAG,GAAG,GAAI,IAAK,IACxF,GAAGsC,GAAM,EAAG,QAAQZ,EAAE1B,EAAK0B,EAAEzB,EAAKyB,IAAK5B,EAAKwB,EAAGI,CAAC,EAAKvC,EAAI,EAAEuC,CAAC,EAAI8E,EAAMrH,EAAI,EAAEuC,EAAE1B,CAAG,EAAG,EAAG,CAAC,EAAG,IAAK,GACjG,KACK,CACJ,GAAGsC,GAAM,EAAK,QAAQZ,EAAI,EAAGA,EAAEzB,EAAKyB,IAAK5B,EAAKwB,EAAGI,CAAC,EAAKvC,EAAI,EAAEuC,CAAC,EAAE,IAAMvC,EAAI,EAAEuC,EAAEzB,CAAG,EAAG,IACpF,GAAGqC,GAAM,EAAG,CAAE,QAAQZ,EAAI,EAAGA,EAAE1B,EAAK0B,IAAK5B,EAAKwB,EAAGI,CAAC,EAAKvC,EAAI,EAAEuC,CAAC,EAAE,KAAOvC,EAAI,EAAEuC,EAAEzB,CAAG,GAAG,GAAI,IACpF,QAAQyB,EAAE1B,EAAK0B,EAAEzB,EAAKyB,IAAK5B,EAAKwB,EAAGI,CAAC,EAAKvC,EAAI,EAAEuC,CAAC,EAAE,KAAQvC,EAAI,EAAEuC,EAAEzB,CAAG,EAAEd,EAAI,EAAEuC,EAAE1B,CAAG,GAAI,GAAI,GAAM,CACrG,GAAGsC,GAAM,EAAG,CAAE,QAAQZ,EAAI,EAAGA,EAAE1B,EAAK0B,IAAK5B,EAAKwB,EAAGI,CAAC,EAAKvC,EAAI,EAAEuC,CAAC,EAAE,IAAM8E,EAAM,EAAGrH,EAAI,EAAEuC,EAAEzB,CAAG,EAAG,CAAC,EAAG,IAC5F,QAAQyB,EAAE1B,EAAK0B,EAAEzB,EAAKyB,IAAK5B,EAAKwB,EAAGI,CAAC,EAAKvC,EAAI,EAAEuC,CAAC,EAAE,IAAM8E,EAAMrH,EAAI,EAAEuC,EAAE1B,CAAG,EAAGb,EAAI,EAAEuC,EAAEzB,CAAG,EAAGd,EAAI,EAAEuC,EAAE1B,EAAIC,CAAG,CAAC,EAAG,GAAM,CACzH,CACD,EAEApB,EAAK,IAAM,CACV,MAAU,UAAW,CAElB,QADIiO,EAAM,IAAI,YAAY,GAAG,EACpB9I,EAAE,EAAGA,EAAE,IAAKA,IAAK,CAE3B,QADIS,EAAIT,EACC+I,EAAE,EAAGA,EAAE,EAAGA,IACdtI,EAAI,EAAIA,EAAI,WAAcA,IAAM,EACxBA,EAAIA,IAAM,EAEvBqI,EAAI9I,CAAC,EAAIS,CAAI,CACd,OAAOqI,CAAM,EAAG,EACjB,OAAS,SAASrI,EAAGuI,EAAKxL,EAAKtC,EAAK,CACnC,QAASI,EAAE,EAAGA,EAAEJ,EAAKI,IAAMmF,EAAI5F,EAAK,IAAI,OAAO4F,EAAIuI,EAAIxL,EAAIlC,CAAC,GAAK,GAAI,EAAKmF,IAAM,EAChF,OAAOA,CACR,EACA,IAAM,SAASJ,EAAE4I,EAAE/I,EAAI,CAAG,OAAOrF,EAAK,IAAI,OAAO,WAAWwF,EAAE4I,EAAE/I,CAAC,EAAI,UAAa,CACnF,EAGArF,EAAK,SAAW,SAASuL,EAAMpC,EAC/B,CAUC,QATIkF,EAAO,IAAI,WAAW9C,CAAI,EAAGhC,EAAO8E,EAAK,MAAM,CAAC,EAAGC,EAAS,IAAI,YAAY/E,EAAK,MAAM,EAEvFgF,EAAKvO,EAAK,SAAS,UAAUuJ,EAAMJ,CAAE,EACrCqF,EAAOD,EAAG,CAAC,EAAGE,EAAQF,EAAG,CAAC,EAE1BG,EAAW1O,EAAK,SAAS,SACzBiI,EAAKoG,EAAMrM,EAAKsM,EAAQjO,EAAI4H,EAAG,OAE/BoD,EAAO,IAAI,WAAWgD,EAAK,QAAQ,CAAC,EAChC5N,EAAE,EAAGA,EAAEJ,EAAKI,GAAG,EAAG,CACzB,IAAIqF,EAAEmC,EAAGxH,CAAC,EAAG,mBAAQ,EAAEwH,EAAGxH,EAAE,CAAC,GAAG,EAAE,KAAM+E,EAAEyC,EAAGxH,EAAE,CAAC,GAAG,EAAE,KAAM6F,EAAE2B,EAAGxH,EAAE,CAAC,GAAG,EAAE,KAGpEkO,EAAK3O,EAAK,SAAS,WAAWwO,EAAM1I,EAAG,EAAGN,EAAGc,CAAC,EAIlD+E,EAAK5K,GAAG,CAAC,EAAIkO,EAAG,IAChB3M,EAAGvB,GAAG,CAAC,EAAIkO,EAAG,IAAI,IACnB,CACA,MAAO,CAAG,KAAKpF,EAAK,OAAQ,KAAK8B,EAAM,KAAKoD,CAAO,CACpD,EAEAzO,EAAK,SAAS,UAAY,SAASuJ,EAAMJ,EAAIyF,EAAK,CAC9CA,GAAK,OAAMA,EAAM,MACpB,IAAIN,EAAS,IAAI,YAAY/E,EAAK,MAAM,EAEpCiF,EAAO,CAAC,GAAG,EAAG,GAAGjF,EAAK,OAAQ,IAAI,KAAM,IAAI,KAAM,KAAK,EAAG,KAAK,KAAM,MAAM,IAAK,EACpFiF,EAAK,IAAMxO,EAAK,SAAS,MAAQuJ,EAAKiF,EAAK,GAAIA,EAAK,EAAI,EAAIA,EAAK,IAAMxO,EAAK,SAAS,OAAQwO,EAAK,GAAI,EAGtG,QAFIC,EAAQ,CAACD,CAAI,EAEXC,EAAM,OAAOtF,GACnB,CAEC,QADI0F,EAAO,EAAGC,EAAG,EACTrO,EAAE,EAAGA,EAAEgO,EAAM,OAAQhO,IAAQgO,EAAMhO,CAAC,EAAE,IAAI,EAAIoO,IAASA,EAAKJ,EAAMhO,CAAC,EAAE,IAAI,EAAIqO,EAAGrO,GACxF,GAAGoO,EAAKD,EAAK,MACb,IAAIG,EAAON,EAAMK,CAAE,EAEfxM,EAAKtC,EAAK,SAAS,YAAYuJ,EAAK+E,EAAQS,EAAK,GAAIA,EAAK,GAAIA,EAAK,IAAI,EAAGA,EAAK,IAAI,MAAM,EACzFC,EAAWD,EAAK,IAAIzM,GAAMyM,EAAK,IAAIzM,EAEvC,GAAG0M,EAAS,CAAGD,EAAK,IAAI,EAAE,EAAI,QAAW,CAGzC,IAAIE,EAAK,CAAC,GAAGF,EAAK,GAAI,GAAGzM,EAAI,IAAI,KAAM,IAAI,KAAM,KAAK,EAAG,KAAK,KAAM,MAAM,IAAK,EAAI2M,EAAG,IAAMjP,EAAK,SAAS,MAAOuJ,EAAM0F,EAAG,GAAIA,EAAG,EAAG,EACpIA,EAAG,IAAMjP,EAAK,SAAS,OAAQiP,EAAG,GAAI,EACtC,IAAIC,EAAK,CAAC,GAAG5M,EAAI,GAAGyM,EAAK,GAAI,IAAI,KAAM,IAAI,KAAM,KAAK,EAAG,KAAK,KAAM,MAAM,IAAK,EAAIG,EAAG,IAAM,CAAC,EAAE,CAAC,EAAG,EAAE,CAAC,EAAG,EAAEH,EAAK,IAAI,EAAEE,EAAG,IAAI,CAAC,EAC9H,QAAQxO,EAAE,EAAGA,EAAE,GAAIA,IAAKyO,EAAG,IAAI,EAAEzO,CAAC,EAAIsO,EAAK,IAAI,EAAEtO,CAAC,EAAEwO,EAAG,IAAI,EAAExO,CAAC,EAC9D,QAAQA,EAAE,EAAGA,EAAG,EAAGA,IAAKyO,EAAG,IAAI,EAAEzO,CAAC,EAAIsO,EAAK,IAAI,EAAEtO,CAAC,EAAEwO,EAAG,IAAI,EAAExO,CAAC,EAC9DyO,EAAG,IAAMlP,EAAK,SAAS,OAAQkP,EAAG,GAAI,EAEtCH,EAAK,KAAOE,EAAKF,EAAK,MAAQG,EAC9BT,EAAMK,CAAE,EAAEG,EAAKR,EAAM,KAAKS,CAAE,CAC7B,CACAT,EAAM,KAAK,SAASnI,EAAEd,EAAG,CAAG,OAAOA,EAAE,IAAI,EAAEc,EAAE,IAAI,CAAI,CAAC,EACtD,QAAQ7F,EAAE,EAAGA,EAAEgO,EAAM,OAAQhO,IAAKgO,EAAMhO,CAAC,EAAE,IAAIA,EAC/C,MAAO,CAAC+N,EAAMC,CAAK,CACpB,EAEAzO,EAAK,SAAS,WAAa,SAAS2O,EAAI,EAAExE,EAAE3E,EAAEc,EAC9C,CACC,GAAGqI,EAAG,MAAM,KAAS,OAAAA,EAAG,KAAO3O,EAAK,SAAS,KAAK2O,EAAG,IAAI,EAAE,EAAExE,EAAE3E,EAAEc,CAAC,EAAWqI,EAC7E,IAAID,EAAW1O,EAAK,SAAS,SAAS2O,EAAG,IAAI,EAAExE,EAAE3E,EAAEc,CAAC,EAEhD6I,EAAQR,EAAG,KAAMS,EAAQT,EAAG,MAC7BD,EAAS,IAAMS,EAAMR,EAAG,MAAQS,EAAMT,EAAG,MAE5C,IAAIM,EAAKjP,EAAK,SAAS,WAAWmP,EAAO,EAAEhF,EAAE3E,EAAEc,CAAC,EAChD,GAAG2I,EAAG,MAAMP,EAASA,EAAU,OAAOO,EACtC,IAAIC,EAAKlP,EAAK,SAAS,WAAWoP,EAAO,EAAEjF,EAAE3E,EAAEc,CAAC,EAChD,OAAO4I,EAAG,KAAKD,EAAG,KAAOC,EAAKD,CAC/B,EACAjP,EAAK,SAAS,SAAW,SAASqP,EAAK,EAAElF,EAAE3E,EAAEc,EAAG,CAAG,IAAIf,EAAI8J,EAAI,EAAI,OAAO9J,EAAE,CAAC,EAAE,EAAIA,EAAE,CAAC,EAAE4E,EAAI5E,EAAE,CAAC,EAAEC,EAAID,EAAE,CAAC,EAAEe,EAAI+I,EAAI,GAAM,EACxHrP,EAAK,SAAS,KAAW,SAASsP,EAAK,EAAEnF,EAAE3E,EAAEc,EAAG,CAAG,IAAIiJ,EAAG,EAAED,EAAE,CAAC,EAAGE,EAAGrF,EAAEmF,EAAE,CAAC,EAAGG,EAAGjK,EAAE8J,EAAE,CAAC,EAAGI,EAAGpJ,EAAEgJ,EAAE,CAAC,EAAI,OAAOC,EAAGA,EAAGC,EAAGA,EAAGC,EAAGA,EAAGC,EAAGA,CAAK,EAErI1P,EAAK,SAAS,YAAc,SAASuJ,EAAM+E,EAAQqB,EAAIC,EAAIrK,EAAGsK,EAC9D,CACC,IAAIC,EAAS9P,EAAK,SAAS,OAC3B4P,GAAI,EAEJ,QADIG,EAAO,EACLJ,EAAGC,GACT,CACC,KAAME,EAAOvG,EAAMoG,EAAIpK,CAAC,GAAGsK,GAAKF,GAAI,EACpC,KAAMG,EAAOvG,EAAMqG,EAAIrK,CAAC,EAAGsK,GAAKD,GAAI,EACpC,GAAGD,GAAIC,EAAI,MAEX,IAAII,EAAI1B,EAAOqB,GAAI,CAAC,EAAIrB,EAAOqB,GAAI,CAAC,EAAIrB,EAAOsB,GAAI,CAAC,EAAItB,EAAOsB,GAAI,CAAC,EAAEI,EAEtEL,GAAI,EAAIC,GAAI,CACb,CACA,KAAME,EAAOvG,EAAMoG,EAAIpK,CAAC,EAAEsK,GAAKF,GAAI,EACnC,OAAOA,EAAG,CACX,EACA3P,EAAK,SAAS,OAAS,SAASuJ,EAAM9I,EAAG8E,EACzC,CACC,OAAOgE,EAAK9I,CAAC,EAAE8E,EAAE,CAAC,EAAIgE,EAAK9I,EAAE,CAAC,EAAE8E,EAAE,CAAC,EAAIgE,EAAK9I,EAAE,CAAC,EAAE8E,EAAE,CAAC,EAAIgE,EAAK9I,EAAE,CAAC,EAAE8E,EAAE,CAAC,CACtE,EACAvF,EAAK,SAAS,MAAQ,SAASuJ,EAAMoG,EAAIC,EAAG,CAI3C,QAHInL,EAAI,CAAC,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,CAAC,EAC1CC,EAAI,CAAC,EAAE,EAAE,EAAE,CAAC,EACZH,EAAKqL,EAAGD,GAAK,EACT,EAAEA,EAAI,EAAEC,EAAI,GAAG,EACvB,CACC,IAAI9J,EAAIyD,EAAK,CAAC,EAAG,mBAAQY,EAAIZ,EAAK,EAAE,CAAC,GAAG,EAAE,KAAM/D,EAAI+D,EAAK,EAAE,CAAC,GAAG,EAAE,KAAMjD,EAAIiD,EAAK,EAAE,CAAC,GAAG,EAAE,KAExF7E,EAAE,CAAC,GAAGoB,EAAIpB,EAAE,CAAC,GAAGyF,EAAIzF,EAAE,CAAC,GAAGc,EAAId,EAAE,CAAC,GAAG4B,EAEpC7B,EAAG,CAAC,GAAKqB,EAAEA,EAAIrB,EAAG,CAAC,GAAKqB,EAAEqE,EAAI1F,EAAG,CAAC,GAAKqB,EAAEN,EAAIf,EAAG,CAAC,GAAKqB,EAAEQ,EACzC7B,EAAG,CAAC,GAAK0F,EAAEA,EAAI1F,EAAG,CAAC,GAAK0F,EAAE3E,EAAIf,EAAG,CAAC,GAAK0F,EAAE7D,EAC1B7B,EAAE,EAAE,GAAKe,EAAEA,EAAIf,EAAE,EAAE,GAAKe,EAAEc,EACX7B,EAAE,EAAE,GAAK6B,EAAEA,CACzD,CACA,OAAA7B,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAIA,EAAE,CAAC,EAAEA,EAAE,CAAC,EAAIA,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAIA,EAAE,EAAE,EAAEA,EAAE,CAAC,EAAIA,EAAE,EAAE,EAAEA,EAAE,EAAE,EAEjE,CAAC,EAAEA,EAAG,EAAEC,EAAG,EAAEH,CAAC,CACtB,EACAvE,EAAK,SAAS,OAAS,SAASiQ,EAAM,CACrC,IAAIxL,EAAIwL,EAAM,EAAGvL,EAAIuL,EAAM,EAAG1L,EAAI0L,EAAM,EAGpCC,EAAKxL,EAAE,CAAC,EAAGyL,EAAKzL,EAAE,CAAC,EAAG0L,EAAK1L,EAAE,CAAC,EAAG2L,EAAK3L,EAAE,CAAC,EAAG4L,EAAM/L,GAAG,EAAI,EAAI,EAAEA,EAC/DgM,EAAK,CACR9L,EAAG,CAAC,EAAIyL,EAAGA,EAAGI,EAAK7L,EAAG,CAAC,EAAIyL,EAAGC,EAAGG,EAAK7L,EAAG,CAAC,EAAIyL,EAAGE,EAAGE,EAAK7L,EAAG,CAAC,EAAIyL,EAAGG,EAAGC,EACvE7L,EAAG,CAAC,EAAI0L,EAAGD,EAAGI,EAAK7L,EAAG,CAAC,EAAI0L,EAAGA,EAAGG,EAAK7L,EAAG,CAAC,EAAI0L,EAAGC,EAAGE,EAAK7L,EAAG,CAAC,EAAI0L,EAAGE,EAAGC,EACvE7L,EAAG,CAAC,EAAI2L,EAAGF,EAAGI,EAAK7L,EAAG,CAAC,EAAI2L,EAAGD,EAAGG,EAAK7L,EAAE,EAAE,EAAI2L,EAAGA,EAAGE,EAAK7L,EAAE,EAAE,EAAI2L,EAAGC,EAAGC,EACvE7L,EAAE,EAAE,EAAI4L,EAAGH,EAAGI,EAAK7L,EAAE,EAAE,EAAI4L,EAAGF,EAAGG,EAAK7L,EAAE,EAAE,EAAI4L,EAAGD,EAAGE,EAAK7L,EAAE,EAAE,EAAI4L,EAAGA,EAAGC,CACxE,EAEIlL,EAAImL,EAAIhK,EAAIvG,EAAK,GACjBwF,EAAI,CAAC,GAAI,GAAI,GAAI,EAAG,EAAGsJ,EAAK,EAAG0B,EAAM,EAEzC,GAAGjM,GAAG,EACN,QAAQ9D,EAAE,EAAGA,EAAE,KACd+E,EAAIe,EAAE,QAAQnB,EAAGI,CAAC,EAAIgL,EAAM,KAAK,KAAKjK,EAAE,IAAIf,EAAEA,CAAC,CAAC,EAAIA,EAAIe,EAAE,IAAI,EAAEiK,EAAMhL,CAAC,EACpE,OAAK,IAAIgL,EAAI1B,CAAE,EAAE,OAFFrO,IAEgBqO,EAAK0B,EAGxC,IAAIlB,EAAI,CAACY,EAAGI,EAAIH,EAAGG,EAAIF,EAAGE,EAAID,EAAGC,CAAE,EAC/BG,EAASlK,EAAE,IAAIA,EAAE,IAAI,IAAI+I,CAAC,EAAE9J,CAAC,EAEjC,MAAO,CAAG,IAAI+K,EAAI,EAAEjB,EAAG,EAAE9J,EAAG,EAAEsJ,EAAK,OAAO2B,EAAQ,IAAMlK,EAAE,IAAIf,EAAE8J,CAAC,EAC9D,MAAS,KAAK,MAAM,IAAIA,EAAE,CAAC,CAAC,GAAG,GAAO,KAAK,MAAM,IAAIA,EAAE,CAAC,CAAC,GAAG,GAAQ,KAAK,MAAM,IAAIA,EAAE,CAAC,CAAC,GAAG,EAAM,KAAK,MAAM,IAAIA,EAAE,CAAC,CAAC,GAAG,KAAM,CAAI,CACpI,EACAtP,EAAK,GAAK,CACT,QAAU,SAAS0E,EAAEM,EAAG,CACtB,MAAO,CACNN,EAAG,CAAC,EAAEM,EAAE,CAAC,EAAIN,EAAG,CAAC,EAAEM,EAAE,CAAC,EAAIN,EAAG,CAAC,EAAEM,EAAE,CAAC,EAAIN,EAAG,CAAC,EAAEM,EAAE,CAAC,EAChDN,EAAG,CAAC,EAAEM,EAAE,CAAC,EAAIN,EAAG,CAAC,EAAEM,EAAE,CAAC,EAAIN,EAAG,CAAC,EAAEM,EAAE,CAAC,EAAIN,EAAG,CAAC,EAAEM,EAAE,CAAC,EAChDN,EAAG,CAAC,EAAEM,EAAE,CAAC,EAAIN,EAAG,CAAC,EAAEM,EAAE,CAAC,EAAIN,EAAE,EAAE,EAAEM,EAAE,CAAC,EAAIN,EAAE,EAAE,EAAEM,EAAE,CAAC,EAChDN,EAAE,EAAE,EAAEM,EAAE,CAAC,EAAIN,EAAE,EAAE,EAAEM,EAAE,CAAC,EAAIN,EAAE,EAAE,EAAEM,EAAE,CAAC,EAAIN,EAAE,EAAE,EAAEM,EAAE,CAAC,CACjD,CACF,EACA,IAAM,SAASnC,EAAER,EAAG,CAAG,OAAQQ,EAAE,CAAC,EAAER,EAAE,CAAC,EAAEQ,EAAE,CAAC,EAAER,EAAE,CAAC,EAAEQ,EAAE,CAAC,EAAER,EAAE,CAAC,EAAEQ,EAAE,CAAC,EAAER,EAAE,CAAC,CAAI,EACzE,IAAM,SAASiE,EAAEjE,EAAG,CAAG,MAAO,CAACiE,EAAEjE,EAAE,CAAC,EAAEiE,EAAEjE,EAAE,CAAC,EAAEiE,EAAEjE,EAAE,CAAC,EAAEiE,EAAEjE,EAAE,CAAC,CAAC,CAAI,CAC/D,EAEArC,EAAK,OAAO,WAAa,SAASkJ,EAAM,CAEvC,QADIwH,EAAO,EACHjQ,EAAE,EAAGA,EAAEyI,EAAK,OAAQzI,IAAKiQ,GAAQxH,EAAKzI,CAAC,EAAE,WAEjD,QADI8I,EAAO,IAAI,WAAWmH,CAAI,EAAGC,EAAK,EAC9BlQ,EAAE,EAAGA,EAAEyI,EAAK,OAAQzI,IAAK,CAEhC,QADIH,EAAM,IAAI,WAAW4I,EAAKzI,CAAC,CAAC,EAAGmQ,EAAKtQ,EAAI,OACpCU,EAAE,EAAGA,EAAE4P,EAAI5P,GAAG,EAAG,CACxB,IAAI8E,EAAExF,EAAIU,CAAC,EAAGmJ,EAAE7J,EAAIU,EAAE,CAAC,EAAGwE,EAAElF,EAAIU,EAAE,CAAC,EAAGsF,EAAIhG,EAAIU,EAAE,CAAC,EAC9CsF,GAAG,IAAGR,EAAEqE,EAAE3E,EAAE,GACf+D,EAAKoH,EAAK3P,CAAC,EAAE8E,EAAIyD,EAAKoH,EAAK3P,EAAE,CAAC,EAAEmJ,EAAIZ,EAAKoH,EAAK3P,EAAE,CAAC,EAAEwE,EAAI+D,EAAKoH,EAAK3P,EAAE,CAAC,EAAEsF,CAAI,CAC3EqK,GAAQC,CACT,CACA,OAAOrH,EAAK,MACb,EAEA,IAAOsH,EAAQ7Q","names":["pako","UPNG","out","w","h","frms","len","img","empty","prev","i","frm","fx","fy","fw","fh","fdata","j","data","area","bpp","bpl","bf","bf32","ctype","depth","rs","time","qarea","ts","ti","tr","tg","tb","qi","p","ap","tl","y","s0","t0","cj","di","gr","off","to","x","al","buff","offset","bin","rUs","rUi","dd","doff","fd","foff","mgck","type","fr","rct","del","nz","keyw","text","cflag","cmeth","ltag","tkeyw","pl","crc","H","N","W","R","m","J","Q","X","u","d","v","C","V","n","A","l","I","e","b","Z","D","E","c","K","r","S","T","z","_","$","s","Y","a","M","cbpp","starting_row","starting_col","row_increment","col_increment","pass","ri","ci","sw","sh","cr","cc","bpll","row","col","cdi","val","ii","noc","paeth","pa","pb","pc","arr","ns","sb","tw","th","xoff","yoff","mode","si","fa","fg","fb","ba","br","bg","bb","ifa","oa","ioa","bufs","ps","dels","tabs","forbidPlte","nimg","ac","bipp","bipl","wUi","wUs","wAs","anim","pltAlpha","leng","dl","wr","g","fi","imgd","ioff","filter","levelZero","nw","nh","prms","onlyBlend","evenCrd","forbidPrev","minBits","alphaAnd","ilen","gotAlpha","cmap","plte","inds","nbufs","abuf","qres","cof","bln","img32","ind","cmc","nx","ny","cimg","cimg32","inj","alwaysBlend","blend","tlim","tstp","tarea","it","pimg","p32","mix","miy","max","may","sarea","r0","r1","miX","miY","maX","maY","U8","U32","pimg32","cx","cy","rec","fls","ftry","opts","CMPR","tsize","tab","k","buf","o","oimg","nimg32","KD","root","leafs","planeDst","nd","err","maxL","mi","node","s0wrong","ln","rn","node0","node1","est","q","d0","d1","d2","d3","i0","i1","eMq","vecDot","shfs","t","stats","m0","m1","m2","m3","iN","Rj","tmi","eMq255","tlen","noff","il","UPNG_default"],"sources":["../esm/npm/@pdf-lib/upng@1.0.1/node_modules/@pdf-lib/upng/UPNG.js"],"sourcesContent":["import pako from 'pako';\n\nvar UPNG = {};\n\n\t\n\nUPNG.toRGBA8 = function(out)\n{\n\tvar w = out.width, h = out.height;\n\tif(out.tabs.acTL==null) return [UPNG.toRGBA8.decodeImage(out.data, w, h, out).buffer];\n\t\n\tvar frms = [];\n\tif(out.frames[0].data==null) out.frames[0].data = out.data;\n\t\n\tvar len = w*h*4, img = new Uint8Array(len), empty = new Uint8Array(len), prev=new Uint8Array(len);\n\tfor(var i=0; i\u003cout.frames.length; i++)\n\t{\n\t\tvar frm = out.frames[i];\n\t\tvar fx=frm.rect.x, fy=frm.rect.y, fw = frm.rect.width, fh = frm.rect.height;\n\t\tvar fdata = UPNG.toRGBA8.decodeImage(frm.data, fw,fh, out);\n\t\t\n\t\tif(i!=0) for(var j=0; j\u003clen; j++) prev[j]=img[j];\n\t\t\n\t\tif     (frm.blend==0) UPNG._copyTile(fdata, fw, fh, img, w, h, fx, fy, 0);\n\t\telse if(frm.blend==1) UPNG._copyTile(fdata, fw, fh, img, w, h, fx, fy, 1);\n\t\t\n\t\tfrms.push(img.buffer.slice(0));\n\t\t\n\t\tif     (frm.dispose==0) {}\n\t\telse if(frm.dispose==1) UPNG._copyTile(empty, fw, fh, img, w, h, fx, fy, 0);\n\t\telse if(frm.dispose==2) for(var j=0; j\u003clen; j++) img[j]=prev[j];\n\t}\n\treturn frms;\n}\nUPNG.toRGBA8.decodeImage = function(data, w, h, out)\n{\n\tvar area = w*h, bpp = UPNG.decode._getBPP(out);\n\tvar bpl = Math.ceil(w*bpp/8);\t// bytes per line\n\n\tvar bf = new Uint8Array(area*4), bf32 = new Uint32Array(bf.buffer);\n\tvar ctype = out.ctype, depth = out.depth;\n\tvar rs = UPNG._bin.readUshort;\n\t\n\t//console.log(ctype, depth);\n\tvar time = Date.now();\n\n\tif     (ctype==6) { // RGB + alpha\n\t\tvar qarea = area\u003c\u003c2;\n\t\tif(depth== 8) for(var i=0; i\u003cqarea;i+=4) {  bf[i] = data[i];  bf[i+1] = data[i+1];  bf[i+2] = data[i+2];  bf[i+3] = data[i+3]; }\n\t\tif(depth==16) for(var i=0; i\u003cqarea;i++ ) {  bf[i] = data[i\u003c\u003c1];  }\n\t}\n\telse if(ctype==2) {\t// RGB\n\t\tvar ts=out.tabs[\"tRNS\"];\n\t\tif(ts==null) {\n\t\t\tif(depth== 8) for(var i=0; i\u003carea; i++) {  var ti=i*3;  bf32[i] = (255\u003c\u003c24)|(data[ti+2]\u003c\u003c16)|(data[ti+1]\u003c\u003c8)|data[ti];  }\n\t\t\tif(depth==16) for(var i=0; i\u003carea; i++) {  var ti=i*6;  bf32[i] = (255\u003c\u003c24)|(data[ti+4]\u003c\u003c16)|(data[ti+2]\u003c\u003c8)|data[ti];  }\n\t\t}\n\t\telse {  var tr=ts[0], tg=ts[1], tb=ts[2];\n\t\t\tif(depth== 8) for(var i=0; i\u003carea; i++) {  var qi=i\u003c\u003c2, ti=i*3;  bf32[i] = (255\u003c\u003c24)|(data[ti+2]\u003c\u003c16)|(data[ti+1]\u003c\u003c8)|data[ti];\n\t\t\t\tif(data[ti]   ==tr \u0026\u0026 data[ti+1]   ==tg \u0026\u0026 data[ti+2]   ==tb) bf[qi+3] = 0;  }\n\t\t\tif(depth==16) for(var i=0; i\u003carea; i++) {  var qi=i\u003c\u003c2, ti=i*6;  bf32[i] = (255\u003c\u003c24)|(data[ti+4]\u003c\u003c16)|(data[ti+2]\u003c\u003c8)|data[ti];\n\t\t\t\tif(rs(data,ti)==tr \u0026\u0026 rs(data,ti+2)==tg \u0026\u0026 rs(data,ti+4)==tb) bf[qi+3] = 0;  }\n\t\t}\n\t}\n\telse if(ctype==3) {\t// palette\n\t\tvar p=out.tabs[\"PLTE\"], ap=out.tabs[\"tRNS\"], tl=ap?ap.length:0;\n\t\t//console.log(p, ap);\n\t\tif(depth==1) for(var y=0; y\u003ch; y++) {  var s0 = y*bpl, t0 = y*w;\n\t\t\tfor(var i=0; i\u003cw; i++) { var qi=(t0+i)\u003c\u003c2, j=((data[s0+(i\u003e\u003e3)]\u003e\u003e(7-((i\u00267)\u003c\u003c0)))\u0026 1), cj=3*j;  bf[qi]=p[cj];  bf[qi+1]=p[cj+1];  bf[qi+2]=p[cj+2];  bf[qi+3]=(j\u003ctl)?ap[j]:255;  }\n\t\t}\n\t\tif(depth==2) for(var y=0; y\u003ch; y++) {  var s0 = y*bpl, t0 = y*w;\n\t\t\tfor(var i=0; i\u003cw; i++) { var qi=(t0+i)\u003c\u003c2, j=((data[s0+(i\u003e\u003e2)]\u003e\u003e(6-((i\u00263)\u003c\u003c1)))\u0026 3), cj=3*j;  bf[qi]=p[cj];  bf[qi+1]=p[cj+1];  bf[qi+2]=p[cj+2];  bf[qi+3]=(j\u003ctl)?ap[j]:255;  }\n\t\t}\n\t\tif(depth==4) for(var y=0; y\u003ch; y++) {  var s0 = y*bpl, t0 = y*w;\n\t\t\tfor(var i=0; i\u003cw; i++) { var qi=(t0+i)\u003c\u003c2, j=((data[s0+(i\u003e\u003e1)]\u003e\u003e(4-((i\u00261)\u003c\u003c2)))\u002615), cj=3*j;  bf[qi]=p[cj];  bf[qi+1]=p[cj+1];  bf[qi+2]=p[cj+2];  bf[qi+3]=(j\u003ctl)?ap[j]:255;  }\n\t\t}\n\t\tif(depth==8) for(var i=0; i\u003carea; i++ ) {  var qi=i\u003c\u003c2, j=data[i]                      , cj=3*j;  bf[qi]=p[cj];  bf[qi+1]=p[cj+1];  bf[qi+2]=p[cj+2];  bf[qi+3]=(j\u003ctl)?ap[j]:255;  }\n\t}\n\telse if(ctype==4) {\t// gray + alpha\n\t\tif(depth== 8)  for(var i=0; i\u003carea; i++) {  var qi=i\u003c\u003c2, di=i\u003c\u003c1, gr=data[di];  bf[qi]=gr;  bf[qi+1]=gr;  bf[qi+2]=gr;  bf[qi+3]=data[di+1];  }\n\t\tif(depth==16)  for(var i=0; i\u003carea; i++) {  var qi=i\u003c\u003c2, di=i\u003c\u003c2, gr=data[di];  bf[qi]=gr;  bf[qi+1]=gr;  bf[qi+2]=gr;  bf[qi+3]=data[di+2];  }\n\t}\n\telse if(ctype==0) {\t// gray\n\t\tvar tr = out.tabs[\"tRNS\"] ? out.tabs[\"tRNS\"] : -1;\n\t\tfor(var y=0; y\u003ch; y++) {\n\t\t\tvar off = y*bpl, to = y*w;\n\t\t\tif     (depth== 1) for(var x=0; x\u003cw; x++) {  var gr=255*((data[off+(x\u003e\u003e\u003e3)]\u003e\u003e\u003e(7 -((x\u00267)   )))\u0026 1), al=(gr==tr*255)?0:255;  bf32[to+x]=(al\u003c\u003c24)|(gr\u003c\u003c16)|(gr\u003c\u003c8)|gr;  }\n\t\t\telse if(depth== 2) for(var x=0; x\u003cw; x++) {  var gr= 85*((data[off+(x\u003e\u003e\u003e2)]\u003e\u003e\u003e(6 -((x\u00263)\u003c\u003c1)))\u0026 3), al=(gr==tr* 85)?0:255;  bf32[to+x]=(al\u003c\u003c24)|(gr\u003c\u003c16)|(gr\u003c\u003c8)|gr;  }\n\t\t\telse if(depth== 4) for(var x=0; x\u003cw; x++) {  var gr= 17*((data[off+(x\u003e\u003e\u003e1)]\u003e\u003e\u003e(4 -((x\u00261)\u003c\u003c2)))\u002615), al=(gr==tr* 17)?0:255;  bf32[to+x]=(al\u003c\u003c24)|(gr\u003c\u003c16)|(gr\u003c\u003c8)|gr;  }\n\t\t\telse if(depth== 8) for(var x=0; x\u003cw; x++) {  var gr=data[off+     x], al=(gr                 ==tr)?0:255;  bf32[to+x]=(al\u003c\u003c24)|(gr\u003c\u003c16)|(gr\u003c\u003c8)|gr;  }\n\t\t\telse if(depth==16) for(var x=0; x\u003cw; x++) {  var gr=data[off+(x\u003c\u003c1)], al=(rs(data,off+(x\u003c\u003ci))==tr)?0:255;  bf32[to+x]=(al\u003c\u003c24)|(gr\u003c\u003c16)|(gr\u003c\u003c8)|gr;  }\n\t\t}\n\t}\n\t//console.log(Date.now()-time);\n\treturn bf;\n}\n\n\n\nUPNG.decode = function(buff)\n{\n\tvar data = new Uint8Array(buff), offset = 8, bin = UPNG._bin, rUs = bin.readUshort, rUi = bin.readUint;\n\tvar out = {tabs:{}, frames:[]};\n\tvar dd = new Uint8Array(data.length), doff = 0;\t // put all IDAT data into it\n\tvar fd, foff = 0;\t// frames\n\t\n\tvar mgck = [0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a];\n\tfor(var i=0; i\u003c8; i++) if(data[i]!=mgck[i]) throw \"The input is not a PNG file!\";\n\n\twhile(offset\u003cdata.length)\n\t{\n\t\tvar len  = bin.readUint(data, offset);  offset += 4;\n\t\tvar type = bin.readASCII(data, offset, 4);  offset += 4;\n\t\t//console.log(type,len);\n\t\t\n\t\tif     (type==\"IHDR\")  {  UPNG.decode._IHDR(data, offset, out);  }\n\t\telse if(type==\"IDAT\") {\n\t\t\tfor(var i=0; i\u003clen; i++) dd[doff+i] = data[offset+i];\n\t\t\tdoff += len;\n\t\t}\n\t\telse if(type==\"acTL\")  {\n\t\t\tout.tabs[type] = {  num_frames:rUi(data, offset), num_plays:rUi(data, offset+4)  };\n\t\t\tfd = new Uint8Array(data.length);\n\t\t}\n\t\telse if(type==\"fcTL\")  {\n\t\t\tif(foff!=0) {  var fr = out.frames[out.frames.length-1];\n\t\t\t\tfr.data = UPNG.decode._decompress(out, fd.slice(0,foff), fr.rect.width, fr.rect.height);  foff=0;\n\t\t\t}\n\t\t\tvar rct = {x:rUi(data, offset+12),y:rUi(data, offset+16),width:rUi(data, offset+4),height:rUi(data, offset+8)};\n\t\t\tvar del = rUs(data, offset+22);  del = rUs(data, offset+20) / (del==0?100:del);\n\t\t\tvar frm = {rect:rct, delay:Math.round(del*1000), dispose:data[offset+24], blend:data[offset+25]};\n\t\t\t//console.log(frm);\n\t\t\tout.frames.push(frm);\n\t\t}\n\t\telse if(type==\"fdAT\") {\n\t\t\tfor(var i=0; i\u003clen-4; i++) fd[foff+i] = data[offset+i+4];\n\t\t\tfoff += len-4;\n\t\t}\n\t\telse if(type==\"pHYs\") {\n\t\t\tout.tabs[type] = [bin.readUint(data, offset), bin.readUint(data, offset+4), data[offset+8]];\n\t\t}\n\t\telse if(type==\"cHRM\") {\n\t\t\tout.tabs[type] = [];\n\t\t\tfor(var i=0; i\u003c8; i++) out.tabs[type].push(bin.readUint(data, offset+i*4));\n\t\t}\n\t\telse if(type==\"tEXt\") {\n\t\t\tif(out.tabs[type]==null) out.tabs[type] = {};\n\t\t\tvar nz = bin.nextZero(data, offset);\n\t\t\tvar keyw = bin.readASCII(data, offset, nz-offset);\n\t\t\tvar text = bin.readASCII(data, nz+1, offset+len-nz-1);\n\t\t\tout.tabs[type][keyw] = text;\n\t\t}\n\t\telse if(type==\"iTXt\") {\n\t\t\tif(out.tabs[type]==null) out.tabs[type] = {};\n\t\t\tvar nz = 0, off = offset;\n\t\t\tnz = bin.nextZero(data, off);\n\t\t\tvar keyw = bin.readASCII(data, off, nz-off);  off = nz + 1;\n\t\t\tvar cflag = data[off], cmeth = data[off+1];  off+=2;\n\t\t\tnz = bin.nextZero(data, off);\n\t\t\tvar ltag = bin.readASCII(data, off, nz-off);  off = nz + 1;\n\t\t\tnz = bin.nextZero(data, off);\n\t\t\tvar tkeyw = bin.readUTF8(data, off, nz-off);  off = nz + 1;\n\t\t\tvar text  = bin.readUTF8(data, off, len-(off-offset));\n\t\t\tout.tabs[type][keyw] = text;\n\t\t}\n\t\telse if(type==\"PLTE\") {\n\t\t\tout.tabs[type] = bin.readBytes(data, offset, len);\n\t\t}\n\t\telse if(type==\"hIST\") {\n\t\t\tvar pl = out.tabs[\"PLTE\"].length/3;\n\t\t\tout.tabs[type] = [];  for(var i=0; i\u003cpl; i++) out.tabs[type].push(rUs(data, offset+i*2));\n\t\t}\n\t\telse if(type==\"tRNS\") {\n\t\t\tif     (out.ctype==3) out.tabs[type] = bin.readBytes(data, offset, len);\n\t\t\telse if(out.ctype==0) out.tabs[type] = rUs(data, offset);\n\t\t\telse if(out.ctype==2) out.tabs[type] = [ rUs(data,offset),rUs(data,offset+2),rUs(data,offset+4) ];\n\t\t\t//else console.log(\"tRNS for unsupported color type\",out.ctype, len);\n\t\t}\n\t\telse if(type==\"gAMA\") out.tabs[type] = bin.readUint(data, offset)/100000;\n\t\telse if(type==\"sRGB\") out.tabs[type] = data[offset];\n\t\telse if(type==\"bKGD\")\n\t\t{\n\t\t\tif     (out.ctype==0 || out.ctype==4) out.tabs[type] = [rUs(data, offset)];\n\t\t\telse if(out.ctype==2 || out.ctype==6) out.tabs[type] = [rUs(data, offset), rUs(data, offset+2), rUs(data, offset+4)];\n\t\t\telse if(out.ctype==3) out.tabs[type] = data[offset];\n\t\t}\n\t\telse if(type==\"IEND\") {\n\t\t\tbreak;\n\t\t}\n\t\t//else {  log(\"unknown chunk type\", type, len);  }\n\t\toffset += len;\n\t\tvar crc = bin.readUint(data, offset);  offset += 4;\n\t}\n\tif(foff!=0) {  var fr = out.frames[out.frames.length-1];\n\t\tfr.data = UPNG.decode._decompress(out, fd.slice(0,foff), fr.rect.width, fr.rect.height);  foff=0;\n\t}\t\n\tout.data = UPNG.decode._decompress(out, dd, out.width, out.height);\n\t\n\tdelete out.compress;  delete out.interlace;  delete out.filter;\n\treturn out;\n}\n\nUPNG.decode._decompress = function(out, dd, w, h) {\n\tvar time = Date.now();\n\tvar bpp = UPNG.decode._getBPP(out), bpl = Math.ceil(w*bpp/8), buff = new Uint8Array((bpl+1+out.interlace)*h);\n\tdd = UPNG.decode._inflate(dd,buff);\n\t//console.log(dd.length, buff.length);\n\t//console.log(Date.now()-time);\n\n\tvar time=Date.now();\n\tif     (out.interlace==0) dd = UPNG.decode._filterZero(dd, out, 0, w, h);\n\telse if(out.interlace==1) dd = UPNG.decode._readInterlace(dd, out);\n\t//console.log(Date.now()-time);\n\treturn dd;\n}\n\nUPNG.decode._inflate = function(data, buff) {  var out=UPNG[\"inflateRaw\"](new Uint8Array(data.buffer, 2,data.length-6),buff);  return out;  }\nUPNG.inflateRaw=function(){var H={};H.H={};H.H.N=function(N,W){var R=Uint8Array,i=0,m=0,J=0,h=0,Q=0,X=0,u=0,w=0,d=0,v,C;\nif(N[0]==3\u0026\u0026N[1]==0)return W?W:new R(0);var V=H.H,n=V.b,A=V.e,l=V.R,M=V.n,I=V.A,e=V.Z,b=V.m,Z=W==null;\nif(Z)W=new R(N.length\u003e\u003e\u003e2\u003c\u003c3);while(i==0){i=n(N,d,1);m=n(N,d+1,2);d+=3;if(m==0){if((d\u00267)!=0)d+=8-(d\u00267);\nvar D=(d\u003e\u003e\u003e3)+4,q=N[D-4]|N[D-3]\u003c\u003c8;if(Z)W=H.H.W(W,w+q);W.set(new R(N.buffer,N.byteOffset+D,q),w);d=D+q\u003c\u003c3;\nw+=q;continue}if(Z)W=H.H.W(W,w+(1\u003c\u003c17));if(m==1){v=b.J;C=b.h;X=(1\u003c\u003c9)-1;u=(1\u003c\u003c5)-1}if(m==2){J=A(N,d,5)+257;\nh=A(N,d+5,5)+1;Q=A(N,d+10,4)+4;d+=14;var E=d,j=1;for(var c=0;c\u003c38;c+=2){b.Q[c]=0;b.Q[c+1]=0}for(var c=0;\nc\u003cQ;c++){var K=A(N,d+c*3,3);b.Q[(b.X[c]\u003c\u003c1)+1]=K;if(K\u003ej)j=K}d+=3*Q;M(b.Q,j);I(b.Q,j,b.u);v=b.w;C=b.d;\nd=l(b.u,(1\u003c\u003cj)-1,J+h,N,d,b.v);var r=V.V(b.v,0,J,b.C);X=(1\u003c\u003cr)-1;var S=V.V(b.v,J,h,b.D);u=(1\u003c\u003cS)-1;M(b.C,r);\nI(b.C,r,v);M(b.D,S);I(b.D,S,C)}while(!0){var T=v[e(N,d)\u0026X];d+=T\u002615;var p=T\u003e\u003e\u003e4;if(p\u003e\u003e\u003e8==0){W[w++]=p}else if(p==256){break}else{var z=w+p-254;\nif(p\u003e264){var _=b.q[p-257];z=w+(_\u003e\u003e\u003e3)+A(N,d,_\u00267);d+=_\u00267}var $=C[e(N,d)\u0026u];d+=$\u002615;var s=$\u003e\u003e\u003e4,Y=b.c[s],a=(Y\u003e\u003e\u003e4)+n(N,d,Y\u002615);\nd+=Y\u002615;while(w\u003cz){W[w]=W[w++-a];W[w]=W[w++-a];W[w]=W[w++-a];W[w]=W[w++-a]}w=z}}}return W.length==w?W:W.slice(0,w)};\nH.H.W=function(N,W){var R=N.length;if(W\u003c=R)return N;var V=new Uint8Array(R\u003c\u003c1);V.set(N,0);return V};\nH.H.R=function(N,W,R,V,n,A){var l=H.H.e,M=H.H.Z,I=0;while(I\u003cR){var e=N[M(V,n)\u0026W];n+=e\u002615;var b=e\u003e\u003e\u003e4;\nif(b\u003c=15){A[I]=b;I++}else{var Z=0,m=0;if(b==16){m=3+l(V,n,2);n+=2;Z=A[I-1]}else if(b==17){m=3+l(V,n,3);\nn+=3}else if(b==18){m=11+l(V,n,7);n+=7}var J=I+m;while(I\u003cJ){A[I]=Z;I++}}}return n};H.H.V=function(N,W,R,V){var n=0,A=0,l=V.length\u003e\u003e\u003e1;\nwhile(A\u003cR){var M=N[A+W];V[A\u003c\u003c1]=0;V[(A\u003c\u003c1)+1]=M;if(M\u003en)n=M;A++}while(A\u003cl){V[A\u003c\u003c1]=0;V[(A\u003c\u003c1)+1]=0;A++}return n};\nH.H.n=function(N,W){var R=H.H.m,V=N.length,n,A,l,M,I,e=R.j;for(var M=0;M\u003c=W;M++)e[M]=0;for(M=1;M\u003cV;M+=2)e[N[M]]++;\nvar b=R.K;n=0;e[0]=0;for(A=1;A\u003c=W;A++){n=n+e[A-1]\u003c\u003c1;b[A]=n}for(l=0;l\u003cV;l+=2){I=N[l+1];if(I!=0){N[l]=b[I];\nb[I]++}}};H.H.A=function(N,W,R){var V=N.length,n=H.H.m,A=n.r;for(var l=0;l\u003cV;l+=2)if(N[l+1]!=0){var M=l\u003e\u003e1,I=N[l+1],e=M\u003c\u003c4|I,b=W-I,Z=N[l]\u003c\u003cb,m=Z+(1\u003c\u003cb);\nwhile(Z!=m){var J=A[Z]\u003e\u003e\u003e15-W;R[J]=e;Z++}}};H.H.l=function(N,W){var R=H.H.m.r,V=15-W;for(var n=0;n\u003cN.length;\nn+=2){var A=N[n]\u003c\u003cW-N[n+1];N[n]=R[A]\u003e\u003e\u003eV}};H.H.M=function(N,W,R){R=R\u003c\u003c(W\u00267);var V=W\u003e\u003e\u003e3;N[V]|=R;N[V+1]|=R\u003e\u003e\u003e8};\nH.H.I=function(N,W,R){R=R\u003c\u003c(W\u00267);var V=W\u003e\u003e\u003e3;N[V]|=R;N[V+1]|=R\u003e\u003e\u003e8;N[V+2]|=R\u003e\u003e\u003e16};H.H.e=function(N,W,R){return(N[W\u003e\u003e\u003e3]|N[(W\u003e\u003e\u003e3)+1]\u003c\u003c8)\u003e\u003e\u003e(W\u00267)\u0026(1\u003c\u003cR)-1};\nH.H.b=function(N,W,R){return(N[W\u003e\u003e\u003e3]|N[(W\u003e\u003e\u003e3)+1]\u003c\u003c8|N[(W\u003e\u003e\u003e3)+2]\u003c\u003c16)\u003e\u003e\u003e(W\u00267)\u0026(1\u003c\u003cR)-1};H.H.Z=function(N,W){return(N[W\u003e\u003e\u003e3]|N[(W\u003e\u003e\u003e3)+1]\u003c\u003c8|N[(W\u003e\u003e\u003e3)+2]\u003c\u003c16)\u003e\u003e\u003e(W\u00267)};\nH.H.i=function(N,W){return(N[W\u003e\u003e\u003e3]|N[(W\u003e\u003e\u003e3)+1]\u003c\u003c8|N[(W\u003e\u003e\u003e3)+2]\u003c\u003c16|N[(W\u003e\u003e\u003e3)+3]\u003c\u003c24)\u003e\u003e\u003e(W\u00267)};H.H.m=function(){var N=Uint16Array,W=Uint32Array;\nreturn{K:new N(16),j:new N(16),X:[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],S:[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,999,999,999],T:[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0],q:new N(32),p:[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,65535,65535],z:[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0],c:new W(32),J:new N(512),_:[],h:new N(32),$:[],w:new N(32768),C:[],v:[],d:new N(32768),D:[],u:new N(512),Q:[],r:new N(1\u003c\u003c15),s:new W(286),Y:new W(30),a:new W(19),t:new W(15e3),k:new N(1\u003c\u003c16),g:new N(1\u003c\u003c15)}}();\n(function(){var N=H.H.m,W=1\u003c\u003c15;for(var R=0;R\u003cW;R++){var V=R;V=(V\u00262863311530)\u003e\u003e\u003e1|(V\u00261431655765)\u003c\u003c1;\nV=(V\u00263435973836)\u003e\u003e\u003e2|(V\u0026858993459)\u003c\u003c2;V=(V\u00264042322160)\u003e\u003e\u003e4|(V\u0026252645135)\u003c\u003c4;V=(V\u00264278255360)\u003e\u003e\u003e8|(V\u002616711935)\u003c\u003c8;\nN.r[R]=(V\u003e\u003e\u003e16|V\u003c\u003c16)\u003e\u003e\u003e17}function n(A,l,M){while(l--!=0)A.push(0,M)}for(var R=0;R\u003c32;R++){N.q[R]=N.S[R]\u003c\u003c3|N.T[R];\nN.c[R]=N.p[R]\u003c\u003c4|N.z[R]}n(N._,144,8);n(N._,255-143,9);n(N._,279-255,7);n(N._,287-279,8);H.H.n(N._,9);\nH.H.A(N._,9,N.J);H.H.l(N._,9);n(N.$,32,5);H.H.n(N.$,5);H.H.A(N.$,5,N.h);H.H.l(N.$,5);n(N.Q,19,0);n(N.C,286,0);\nn(N.D,30,0);n(N.v,320,0)}());return H.H.N}()\n\n\nUPNG.decode._readInterlace = function(data, out)\n{\n\tvar w = out.width, h = out.height;\n\tvar bpp = UPNG.decode._getBPP(out), cbpp = bpp\u003e\u003e3, bpl = Math.ceil(w*bpp/8);\n\tvar img = new Uint8Array( h * bpl );\n\tvar di = 0;\n\n\tvar starting_row  = [ 0, 0, 4, 0, 2, 0, 1 ];\n\tvar starting_col  = [ 0, 4, 0, 2, 0, 1, 0 ];\n\tvar row_increment = [ 8, 8, 8, 4, 4, 2, 2 ];\n\tvar col_increment = [ 8, 8, 4, 4, 2, 2, 1 ];\n\n\tvar pass=0;\n\twhile(pass\u003c7)\n\t{\n\t\tvar ri = row_increment[pass], ci = col_increment[pass];\n\t\tvar sw = 0, sh = 0;\n\t\tvar cr = starting_row[pass];  while(cr\u003ch) {  cr+=ri;  sh++;  }\n\t\tvar cc = starting_col[pass];  while(cc\u003cw) {  cc+=ci;  sw++;  }\n\t\tvar bpll = Math.ceil(sw*bpp/8);\n\t\tUPNG.decode._filterZero(data, out, di, sw, sh);\n\n\t\tvar y=0, row = starting_row[pass];\n\t\twhile(row\u003ch)\n\t\t{\n\t\t\tvar col = starting_col[pass];\n\t\t\tvar cdi = (di+y*bpll)\u003c\u003c3;\n\n\t\t\twhile(col\u003cw)\n\t\t\t{\n\t\t\t\tif(bpp==1) {\n\t\t\t\t\tvar val = data[cdi\u003e\u003e3];  val = (val\u003e\u003e(7-(cdi\u00267)))\u00261;\n\t\t\t\t\timg[row*bpl + (col\u003e\u003e3)] |= (val \u003c\u003c (7-((col\u00267)\u003c\u003c0)));\n\t\t\t\t}\n\t\t\t\tif(bpp==2) {\n\t\t\t\t\tvar val = data[cdi\u003e\u003e3];  val = (val\u003e\u003e(6-(cdi\u00267)))\u00263;\n\t\t\t\t\timg[row*bpl + (col\u003e\u003e2)] |= (val \u003c\u003c (6-((col\u00263)\u003c\u003c1)));\n\t\t\t\t}\n\t\t\t\tif(bpp==4) {\n\t\t\t\t\tvar val = data[cdi\u003e\u003e3];  val = (val\u003e\u003e(4-(cdi\u00267)))\u002615;\n\t\t\t\t\timg[row*bpl + (col\u003e\u003e1)] |= (val \u003c\u003c (4-((col\u00261)\u003c\u003c2)));\n\t\t\t\t}\n\t\t\t\tif(bpp\u003e=8) {\n\t\t\t\t\tvar ii = row*bpl+col*cbpp;\n\t\t\t\t\tfor(var j=0; j\u003ccbpp; j++) img[ii+j] = data[(cdi\u003e\u003e3)+j];\n\t\t\t\t}\n\t\t\t\tcdi+=bpp;  col+=ci;\n\t\t\t}\n\t\t\ty++;  row += ri;\n\t\t}\n\t\tif(sw*sh!=0) di += sh * (1 + bpll);\n\t\tpass = pass + 1;\n\t}\n\treturn img;\n}\n\nUPNG.decode._getBPP = function(out) {\n\tvar noc = [1,null,3,1,2,null,4][out.ctype];\n\treturn noc * out.depth;\n}\n\nUPNG.decode._filterZero = function(data, out, off, w, h)\n{\n\tvar bpp = UPNG.decode._getBPP(out), bpl = Math.ceil(w*bpp/8), paeth = UPNG.decode._paeth;\n\tbpp = Math.ceil(bpp/8);\n\t\n\tvar i=0, di=1, type=data[off], x=0;\n\t\n\tif(type\u003e1) data[off]=[0,0,1][type-2];  \n\tif(type==3) for(x=bpp; x\u003cbpl; x++) data[x+1] = (data[x+1] + (data[x+1-bpp]\u003e\u003e\u003e1) )\u0026255;\n\n\tfor(var y=0; y\u003ch; y++)  {\n\t\ti = off+y*bpl; di = i+y+1;\n\t\ttype = data[di-1]; x=0;\n\n\t\tif     (type==0)   for(; x\u003cbpl; x++) data[i+x] = data[di+x];\n\t\telse if(type==1) { for(; x\u003cbpp; x++) data[i+x] = data[di+x];\n\t\t\t\t\t\t   for(; x\u003cbpl; x++) data[i+x] = (data[di+x] + data[i+x-bpp]);  }\n\t\telse if(type==2) { for(; x\u003cbpl; x++) data[i+x] = (data[di+x] + data[i+x-bpl]);  }\n\t\telse if(type==3) { for(; x\u003cbpp; x++) data[i+x] = (data[di+x] + ( data[i+x-bpl]\u003e\u003e\u003e1));\n\t\t\t               for(; x\u003cbpl; x++) data[i+x] = (data[di+x] + ((data[i+x-bpl]+data[i+x-bpp])\u003e\u003e\u003e1) );  }\n\t\telse             { for(; x\u003cbpp; x++) data[i+x] = (data[di+x] + paeth(0, data[i+x-bpl], 0));\n\t\t\t\t\t\t   for(; x\u003cbpl; x++) data[i+x] = (data[di+x] + paeth(data[i+x-bpp], data[i+x-bpl], data[i+x-bpp-bpl]) );  }\n\t}\n\treturn data;\n}\n\nUPNG.decode._paeth = function(a,b,c)\n{\n\tvar p = a+b-c, pa = (p-a), pb = (p-b), pc = (p-c);\n\tif (pa*pa \u003c= pb*pb \u0026\u0026 pa*pa \u003c= pc*pc)  return a;\n\telse if (pb*pb \u003c= pc*pc)  return b;\n\treturn c;\n}\n\nUPNG.decode._IHDR = function(data, offset, out)\n{\n\tvar bin = UPNG._bin;\n\tout.width  = bin.readUint(data, offset);  offset += 4;\n\tout.height = bin.readUint(data, offset);  offset += 4;\n\tout.depth     = data[offset];  offset++;\n\tout.ctype     = data[offset];  offset++;\n\tout.compress  = data[offset];  offset++;\n\tout.filter    = data[offset];  offset++;\n\tout.interlace = data[offset];  offset++;\n}\n\nUPNG._bin = {\n\tnextZero   : function(data,p)  {  while(data[p]!=0) p++;  return p;  },\n\treadUshort : function(buff,p)  {  return (buff[p]\u003c\u003c 8) | buff[p+1];  },\n\twriteUshort: function(buff,p,n){  buff[p] = (n\u003e\u003e8)\u0026255;  buff[p+1] = n\u0026255;  },\n\treadUint   : function(buff,p)  {  return (buff[p]*(256*256*256)) + ((buff[p+1]\u003c\u003c16) | (buff[p+2]\u003c\u003c 8) | buff[p+3]);  },\n\twriteUint  : function(buff,p,n){  buff[p]=(n\u003e\u003e24)\u0026255;  buff[p+1]=(n\u003e\u003e16)\u0026255;  buff[p+2]=(n\u003e\u003e8)\u0026255;  buff[p+3]=n\u0026255;  },\n\treadASCII  : function(buff,p,l){  var s = \"\";  for(var i=0; i\u003cl; i++) s += String.fromCharCode(buff[p+i]);  return s;    },\n\twriteASCII : function(data,p,s){  for(var i=0; i\u003cs.length; i++) data[p+i] = s.charCodeAt(i);  },\n\treadBytes  : function(buff,p,l){  var arr = [];   for(var i=0; i\u003cl; i++) arr.push(buff[p+i]);   return arr;  },\n\tpad : function(n) { return n.length \u003c 2 ? \"0\" + n : n; },\n\treadUTF8 : function(buff, p, l) {\n\t\tvar s = \"\", ns;\n\t\tfor(var i=0; i\u003cl; i++) s += \"%\" + UPNG._bin.pad(buff[p+i].toString(16));\n\t\ttry {  ns = decodeURIComponent(s); }\n\t\tcatch(e) {  return UPNG._bin.readASCII(buff, p, l);  }\n\t\treturn  ns;\n\t}\n}\nUPNG._copyTile = function(sb, sw, sh, tb, tw, th, xoff, yoff, mode)\n{\n\tvar w = Math.min(sw,tw), h = Math.min(sh,th);\n\tvar si=0, ti=0;\n\tfor(var y=0; y\u003ch; y++)\n\t\tfor(var x=0; x\u003cw; x++)\n\t\t{\n\t\t\tif(xoff\u003e=0 \u0026\u0026 yoff\u003e=0) {  si = (y*sw+x)\u003c\u003c2;  ti = (( yoff+y)*tw+xoff+x)\u003c\u003c2;  }\n\t\t\telse                   {  si = ((-yoff+y)*sw-xoff+x)\u003c\u003c2;  ti = (y*tw+x)\u003c\u003c2;  }\n\t\t\t\n\t\t\tif     (mode==0) {  tb[ti] = sb[si];  tb[ti+1] = sb[si+1];  tb[ti+2] = sb[si+2];  tb[ti+3] = sb[si+3];  }\n\t\t\telse if(mode==1) {\n\t\t\t\tvar fa = sb[si+3]*(1/255), fr=sb[si]*fa, fg=sb[si+1]*fa, fb=sb[si+2]*fa; \n\t\t\t\tvar ba = tb[ti+3]*(1/255), br=tb[ti]*ba, bg=tb[ti+1]*ba, bb=tb[ti+2]*ba; \n\t\t\t\t\n\t\t\t\tvar ifa=1-fa, oa = fa+ba*ifa, ioa = (oa==0?0:1/oa);\n\t\t\t\ttb[ti+3] = 255*oa;  \n\t\t\t\ttb[ti+0] = (fr+br*ifa)*ioa;  \n\t\t\t\ttb[ti+1] = (fg+bg*ifa)*ioa;   \n\t\t\t\ttb[ti+2] = (fb+bb*ifa)*ioa;  \n\t\t\t}\n\t\t\telse if(mode==2){\t// copy only differences, otherwise zero\n\t\t\t\tvar fa = sb[si+3], fr=sb[si], fg=sb[si+1], fb=sb[si+2]; \n\t\t\t\tvar ba = tb[ti+3], br=tb[ti], bg=tb[ti+1], bb=tb[ti+2]; \n\t\t\t\tif(fa==ba \u0026\u0026 fr==br \u0026\u0026 fg==bg \u0026\u0026 fb==bb) {  tb[ti]=0;  tb[ti+1]=0;  tb[ti+2]=0;  tb[ti+3]=0;  }\n\t\t\t\telse {  tb[ti]=fr;  tb[ti+1]=fg;  tb[ti+2]=fb;  tb[ti+3]=fa;  }\n\t\t\t}\n\t\t\telse if(mode==3){\t// check if can be blended\n\t\t\t\tvar fa = sb[si+3], fr=sb[si], fg=sb[si+1], fb=sb[si+2]; \n\t\t\t\tvar ba = tb[ti+3], br=tb[ti], bg=tb[ti+1], bb=tb[ti+2]; \n\t\t\t\tif(fa==ba \u0026\u0026 fr==br \u0026\u0026 fg==bg \u0026\u0026 fb==bb) continue;\n\t\t\t\t//if(fa!=255 \u0026\u0026 ba!=0) return false;\n\t\t\t\tif(fa\u003c220 \u0026\u0026 ba\u003e20) return false;\n\t\t\t}\n\t\t}\n\treturn true;\n}\n\n\n\n\nUPNG.encode = function(bufs, w, h, ps, dels, tabs, forbidPlte)\n{\n\tif(ps==null) ps=0;\n\tif(forbidPlte==null) forbidPlte = false;\n\n\tvar nimg = UPNG.encode.compress(bufs, w, h, ps, [false, false, false, 0, forbidPlte]);\n\tUPNG.encode.compressPNG(nimg, -1);\n\t\n\treturn UPNG.encode._main(nimg, w, h, dels, tabs);\n}\n\nUPNG.encodeLL = function(bufs, w, h, cc, ac, depth, dels, tabs) {\n\tvar nimg = {  ctype: 0 + (cc==1 ? 0 : 2) + (ac==0 ? 0 : 4),      depth: depth,  frames: []  };\n\t\n\tvar time = Date.now();\n\tvar bipp = (cc+ac)*depth, bipl = bipp * w;\n\tfor(var i=0; i\u003cbufs.length; i++)\n\t\tnimg.frames.push({  rect:{x:0,y:0,width:w,height:h},  img:new Uint8Array(bufs[i]), blend:0, dispose:1, bpp:Math.ceil(bipp/8), bpl:Math.ceil(bipl/8)  });\n\t\n\tUPNG.encode.compressPNG(nimg, 0, true);\n\t\n\tvar out = UPNG.encode._main(nimg, w, h, dels, tabs);\n\treturn out;\n}\n\nUPNG.encode._main = function(nimg, w, h, dels, tabs) {\n\tif(tabs==null) tabs={};\n\tvar crc = UPNG.crc.crc, wUi = UPNG._bin.writeUint, wUs = UPNG._bin.writeUshort, wAs = UPNG._bin.writeASCII;\n\tvar offset = 8, anim = nimg.frames.length\u003e1, pltAlpha = false;\n\t\n\tvar leng = 8 + (16+5+4) /*+ (9+4)*/ + (anim ? 20 : 0);\n\tif(tabs[\"sRGB\"]!=null) leng += 8+1+4;\n\tif(tabs[\"pHYs\"]!=null) leng += 8+9+4;\n\tif(nimg.ctype==3) {\n\t\tvar dl = nimg.plte.length;\n\t\tfor(var i=0; i\u003cdl; i++) if((nimg.plte[i]\u003e\u003e\u003e24)!=255) pltAlpha = true;\n\t\tleng += (8 + dl*3 + 4) + (pltAlpha ? (8 + dl*1 + 4) : 0);\n\t}\n\tfor(var j=0; j\u003cnimg.frames.length; j++)\n\t{\n\t\tvar fr = nimg.frames[j];\n\t\tif(anim) leng += 38;\n\t\tleng += fr.cimg.length + 12;\n\t\tif(j!=0) leng+=4;\n\t}\n\tleng += 12; \n\t\n\tvar data = new Uint8Array(leng);\n\tvar wr=[0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a];\n\tfor(var i=0; i\u003c8; i++) data[i]=wr[i];\n\t\n\twUi(data,offset, 13);     offset+=4;\n\twAs(data,offset,\"IHDR\");  offset+=4;\n\twUi(data,offset,w);  offset+=4;\n\twUi(data,offset,h);  offset+=4;\n\tdata[offset] = nimg.depth;  offset++;  // depth\n\tdata[offset] = nimg.ctype;  offset++;  // ctype\n\tdata[offset] = 0;  offset++;  // compress\n\tdata[offset] = 0;  offset++;  // filter\n\tdata[offset] = 0;  offset++;  // interlace\n\twUi(data,offset,crc(data,offset-17,17));  offset+=4; // crc\n\n\t// 13 bytes to say, that it is sRGB\n\tif(tabs[\"sRGB\"]!=null) {\n\t\twUi(data,offset, 1);      offset+=4;\n\t\twAs(data,offset,\"sRGB\");  offset+=4;\n\t\tdata[offset] = tabs[\"sRGB\"];  offset++;\n\t\twUi(data,offset,crc(data,offset-5,5));  offset+=4; // crc\n\t}\n\tif(tabs[\"pHYs\"]!=null) {\n\t\twUi(data,offset, 9);      offset+=4;\n\t\twAs(data,offset,\"pHYs\");  offset+=4;\n\t\twUi(data,offset, tabs[\"pHYs\"][0]);      offset+=4;\n\t\twUi(data,offset, tabs[\"pHYs\"][1]);      offset+=4;\n\t\tdata[offset]=tabs[\"pHYs\"][2];\t\t\toffset++;\n\t\twUi(data,offset,crc(data,offset-13,13));  offset+=4; // crc\n\t}\n\n\tif(anim) {\n\t\twUi(data,offset, 8);      offset+=4;\n\t\twAs(data,offset,\"acTL\");  offset+=4;\n\t\twUi(data,offset, nimg.frames.length);     offset+=4;\n\t\twUi(data,offset, tabs[\"loop\"]!=null?tabs[\"loop\"]:0);      offset+=4;\n\t\twUi(data,offset,crc(data,offset-12,12));  offset+=4; // crc\n\t}\n\n\tif(nimg.ctype==3) {\n\t\tvar dl = nimg.plte.length;\n\t\twUi(data,offset, dl*3);  offset+=4;\n\t\twAs(data,offset,\"PLTE\");  offset+=4;\n\t\tfor(var i=0; i\u003cdl; i++){\n\t\t\tvar ti=i*3, c=nimg.plte[i], r=(c)\u0026255, g=(c\u003e\u003e\u003e8)\u0026255, b=(c\u003e\u003e\u003e16)\u0026255;\n\t\t\tdata[offset+ti+0]=r;  data[offset+ti+1]=g;  data[offset+ti+2]=b;\n\t\t}\n\t\toffset+=dl*3;\n\t\twUi(data,offset,crc(data,offset-dl*3-4,dl*3+4));  offset+=4; // crc\n\n\t\tif(pltAlpha) {\n\t\t\twUi(data,offset, dl);  offset+=4;\n\t\t\twAs(data,offset,\"tRNS\");  offset+=4;\n\t\t\tfor(var i=0; i\u003cdl; i++)  data[offset+i]=(nimg.plte[i]\u003e\u003e\u003e24)\u0026255;\n\t\t\toffset+=dl;\n\t\t\twUi(data,offset,crc(data,offset-dl-4,dl+4));  offset+=4; // crc\n\t\t}\n\t}\n\t\n\tvar fi = 0;\n\tfor(var j=0; j\u003cnimg.frames.length; j++)\n\t{\n\t\tvar fr = nimg.frames[j];\n\t\tif(anim) {\n\t\t\twUi(data, offset, 26);     offset+=4;\n\t\t\twAs(data, offset,\"fcTL\");  offset+=4;\n\t\t\twUi(data, offset, fi++);   offset+=4;\n\t\t\twUi(data, offset, fr.rect.width );   offset+=4;\n\t\t\twUi(data, offset, fr.rect.height);   offset+=4;\n\t\t\twUi(data, offset, fr.rect.x);   offset+=4;\n\t\t\twUi(data, offset, fr.rect.y);   offset+=4;\n\t\t\twUs(data, offset, dels[j]);   offset+=2;\n\t\t\twUs(data, offset,  1000);   offset+=2;\n\t\t\tdata[offset] = fr.dispose;  offset++;\t// dispose\n\t\t\tdata[offset] = fr.blend  ;  offset++;\t// blend\n\t\t\twUi(data,offset,crc(data,offset-30,30));  offset+=4; // crc\n\t\t}\n\t\t\t\t\n\t\tvar imgd = fr.cimg, dl = imgd.length;\n\t\twUi(data,offset, dl+(j==0?0:4));     offset+=4;\n\t\tvar ioff = offset;\n\t\twAs(data,offset,(j==0)?\"IDAT\":\"fdAT\");  offset+=4;\n\t\tif(j!=0) {  wUi(data, offset, fi++);  offset+=4;  }\n\t\tdata.set(imgd,offset);\n\t\toffset += dl;\n\t\twUi(data,offset,crc(data,ioff,offset-ioff));  offset+=4; // crc\n\t}\n\n\twUi(data,offset, 0);     offset+=4;\n\twAs(data,offset,\"IEND\");  offset+=4;\n\twUi(data,offset,crc(data,offset-4,4));  offset+=4; // crc\n\n\treturn data.buffer;\n}\n\nUPNG.encode.compressPNG = function(out, filter, levelZero) {\n\tfor(var i=0; i\u003cout.frames.length; i++) {\n\t\tvar frm = out.frames[i], nw=frm.rect.width, nh=frm.rect.height;\n\t\tvar fdata = new Uint8Array(nh*frm.bpl+nh);\n\t\tfrm.cimg = UPNG.encode._filterZero(frm.img,nh,frm.bpp,frm.bpl,fdata, filter, levelZero);\n\t}\n}\n\n\n\nUPNG.encode.compress = function(bufs, w, h, ps, prms) // prms:  onlyBlend, minBits, forbidPlte\n{\n\t//var time = Date.now();\n\tvar onlyBlend = prms[0], evenCrd = prms[1], forbidPrev = prms[2], minBits = prms[3], forbidPlte = prms[4];\n\t\n\tvar ctype = 6, depth = 8, alphaAnd=255\n\t\n\tfor(var j=0; j\u003cbufs.length; j++)  {  // when not quantized, other frames can contain colors, that are not in an initial frame\n\t\tvar img = new Uint8Array(bufs[j]), ilen = img.length;\n\t\tfor(var i=0; i\u003cilen; i+=4) alphaAnd \u0026= img[i+3];\n\t}\n\tvar gotAlpha = (alphaAnd!=255);\n\t\n\t//console.log(\"alpha check\", Date.now()-time);  time = Date.now();\n\t\n\t//var brute = gotAlpha \u0026\u0026 forGIF;\t\t// brute : frames can only be copied, not \"blended\"\n\tvar frms = UPNG.encode.framize(bufs, w, h, onlyBlend, evenCrd, forbidPrev);\n\t//console.log(\"framize\", Date.now()-time);  time = Date.now();\n\t\n\tvar cmap={}, plte=[], inds=[];  \n\t\n\tif(ps!=0) {\n\t\tvar nbufs = [];  for(var i=0; i\u003cfrms.length; i++) nbufs.push(frms[i].img.buffer);\n\t\t\n\t\tvar abuf = UPNG.encode.concatRGBA(nbufs), qres = UPNG.quantize(abuf, ps);  \n\t\tvar cof = 0, bb = new Uint8Array(qres.abuf);\n\t\tfor(var i=0; i\u003cfrms.length; i++) {  var ti=frms[i].img, bln=ti.length;  inds.push(new Uint8Array(qres.inds.buffer, cof\u003e\u003e2, bln\u003e\u003e2));\n\t\t\tfor(var j=0; j\u003cbln; j+=4) {  ti[j]=bb[cof+j];  ti[j+1]=bb[cof+j+1];  ti[j+2]=bb[cof+j+2];  ti[j+3]=bb[cof+j+3];  }    cof+=bln;  }\n\t\t\n\t\tfor(var i=0; i\u003cqres.plte.length; i++) plte.push(qres.plte[i].est.rgba);\n\t\t//console.log(\"quantize\", Date.now()-time);  time = Date.now();\n\t}\n\telse {\n\t\t// what if ps==0, but there are \u003c=256 colors?  we still need to detect, if the palette could be used\n\t\tfor(var j=0; j\u003cfrms.length; j++)  {  // when not quantized, other frames can contain colors, that are not in an initial frame\n\t\t\tvar frm = frms[j], img32 = new Uint32Array(frm.img.buffer), nw=frm.rect.width, ilen = img32.length;\n\t\t\tvar ind = new Uint8Array(ilen);  inds.push(ind);\n\t\t\tfor(var i=0; i\u003cilen; i++) {\n\t\t\t\tvar c = img32[i];\n\t\t\t\tif     (i!=0 \u0026\u0026 c==img32[i- 1]) ind[i]=ind[i-1];\n\t\t\t\telse if(i\u003enw \u0026\u0026 c==img32[i-nw]) ind[i]=ind[i-nw];\n\t\t\t\telse {\n\t\t\t\t\tvar cmc = cmap[c];\n\t\t\t\t\tif(cmc==null) {  cmap[c]=cmc=plte.length;  plte.push(c);  if(plte.length\u003e=300) break;  }\n\t\t\t\t\tind[i]=cmc;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t//console.log(\"make palette\", Date.now()-time);  time = Date.now();\n\t}\n\t\n\tvar cc=plte.length; //console.log(\"colors:\",cc);\n\tif(cc\u003c=256 \u0026\u0026 forbidPlte==false) {\n\t\tif(cc\u003c= 2) depth=1;  else if(cc\u003c= 4) depth=2;  else if(cc\u003c=16) depth=4;  else depth=8;\n\t\tdepth =  Math.max(depth, minBits);\n\t}\n\t\n\tfor(var j=0; j\u003cfrms.length; j++)\n\t{\n\t\tvar frm = frms[j], nx=frm.rect.x, ny=frm.rect.y, nw=frm.rect.width, nh=frm.rect.height;\n\t\tvar cimg = frm.img, cimg32 = new Uint32Array(cimg.buffer);\n\t\tvar bpl = 4*nw, bpp=4;\n\t\tif(cc\u003c=256 \u0026\u0026 forbidPlte==false) {\n\t\t\tbpl = Math.ceil(depth*nw/8);\n\t\t\tvar nimg = new Uint8Array(bpl*nh);\n\t\t\tvar inj = inds[j];\n\t\t\tfor(var y=0; y\u003cnh; y++) {  var i=y*bpl, ii=y*nw;\n\t\t\t\tif     (depth==8) for(var x=0; x\u003cnw; x++) nimg[i+(x)   ]   =  (inj[ii+x]             );\n\t\t\t\telse if(depth==4) for(var x=0; x\u003cnw; x++) nimg[i+(x\u003e\u003e1)]  |=  (inj[ii+x]\u003c\u003c(4-(x\u00261)*4));\n\t\t\t\telse if(depth==2) for(var x=0; x\u003cnw; x++) nimg[i+(x\u003e\u003e2)]  |=  (inj[ii+x]\u003c\u003c(6-(x\u00263)*2));\n\t\t\t\telse if(depth==1) for(var x=0; x\u003cnw; x++) nimg[i+(x\u003e\u003e3)]  |=  (inj[ii+x]\u003c\u003c(7-(x\u00267)*1));\n\t\t\t}\n\t\t\tcimg=nimg;  ctype=3;  bpp=1;\n\t\t}\n\t\telse if(gotAlpha==false \u0026\u0026 frms.length==1) {\t// some next \"reduced\" frames may contain alpha for blending\n\t\t\tvar nimg = new Uint8Array(nw*nh*3), area=nw*nh;\n\t\t\tfor(var i=0; i\u003carea; i++) { var ti=i*3, qi=i*4;  nimg[ti]=cimg[qi];  nimg[ti+1]=cimg[qi+1];  nimg[ti+2]=cimg[qi+2];  }\n\t\t\tcimg=nimg;  ctype=2;  bpp=3;  bpl=3*nw;\n\t\t}\n\t\tfrm.img=cimg;  frm.bpl=bpl;  frm.bpp=bpp;\n\t}\n\t//console.log(\"colors =\u003e palette indices\", Date.now()-time);  time = Date.now();\n\t\n\treturn {ctype:ctype, depth:depth, plte:plte, frames:frms  };\n}\nUPNG.encode.framize = function(bufs,w,h,alwaysBlend,evenCrd,forbidPrev) {\n\t/*  DISPOSE\n\t    - 0 : no change\n\t\t- 1 : clear to transparent\n\t\t- 2 : retstore to content before rendering (previous frame disposed)\n\t\tBLEND\n\t\t- 0 : replace\n\t\t- 1 : blend\n\t*/\n\tvar frms = [];\n\tfor(var j=0; j\u003cbufs.length; j++) {\n\t\tvar cimg = new Uint8Array(bufs[j]), cimg32 = new Uint32Array(cimg.buffer);\n\t\tvar nimg;\n\t\t\n\t\tvar nx=0, ny=0, nw=w, nh=h, blend=alwaysBlend?1:0;\n\t\tif(j!=0) {\n\t\t\tvar tlim = (forbidPrev || alwaysBlend || j==1 || frms[j-2].dispose!=0)?1:2, tstp = 0, tarea = 1e9;\n\t\t\tfor(var it=0; it\u003ctlim; it++)\n\t\t\t{\n\t\t\t\tvar pimg = new Uint8Array(bufs[j-1-it]), p32 = new Uint32Array(bufs[j-1-it]);\n\t\t\t\tvar mix=w,miy=h,max=-1,may=-1;\n\t\t\t\tfor(var y=0; y\u003ch; y++) for(var x=0; x\u003cw; x++) {\n\t\t\t\t\tvar i = y*w+x;\n\t\t\t\t\tif(cimg32[i]!=p32[i]) {\n\t\t\t\t\t\tif(x\u003cmix) mix=x;  if(x\u003emax) max=x;\n\t\t\t\t\t\tif(y\u003cmiy) miy=y;  if(y\u003emay) may=y;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(max==-1) mix=miy=max=may=0;\n\t\t\t\tif(evenCrd) {  if((mix\u00261)==1)mix--;  if((miy\u00261)==1)miy--;  }\n\t\t\t\tvar sarea = (max-mix+1)*(may-miy+1);\n\t\t\t\tif(sarea\u003ctarea) {\n\t\t\t\t\ttarea = sarea;  tstp = it;\n\t\t\t\t\tnx = mix; ny = miy; nw = max-mix+1; nh = may-miy+1;\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t// alwaysBlend: pokud zjistím, že blendit nelze, nastavím předchozímu snímku dispose=1. Zajistím, aby obsahoval můj obdélník.\n\t\t\tvar pimg = new Uint8Array(bufs[j-1-tstp]);\n\t\t\tif(tstp==1) frms[j-1].dispose = 2;\n\t\t\t\n\t\t\tnimg = new Uint8Array(nw*nh*4);\n\t\t\tUPNG._copyTile(pimg,w,h, nimg,nw,nh, -nx,-ny, 0);\n\t\t\t\n\t\t\tblend =  UPNG._copyTile(cimg,w,h, nimg,nw,nh, -nx,-ny, 3) ? 1 : 0;\n\t\t\tif(blend==1) UPNG.encode._prepareDiff(cimg,w,h,nimg,{x:nx,y:ny,width:nw,height:nh});\n\t\t\telse         UPNG._copyTile(cimg,w,h, nimg,nw,nh, -nx,-ny, 0);\n\t\t\t//UPNG._copyTile(cimg,w,h, nimg,nw,nh, -nx,-ny, blend==1?2:0);\n\t\t}\n\t\telse nimg = cimg.slice(0);\t// img may be rewritten further ... don't rewrite input\n\t\t\n\t\tfrms.push({rect:{x:nx,y:ny,width:nw,height:nh}, img:nimg, blend:blend, dispose:0});\n\t}\n\t\n\t\n\tif(alwaysBlend) for(var j=0; j\u003cfrms.length; j++) {\n\t\tvar frm = frms[j];  if(frm.blend==1) continue;\n\t\tvar r0 = frm.rect, r1 = frms[j-1].rect\n\t\tvar miX = Math.min(r0.x, r1.x), miY = Math.min(r0.y, r1.y);\n\t\tvar maX = Math.max(r0.x+r0.width, r1.x+r1.width), maY = Math.max(r0.y+r0.height, r1.y+r1.height);\n\t\tvar r = {x:miX, y:miY, width:maX-miX, height:maY-miY};\n\t\t\n\t\tfrms[j-1].dispose = 1;\n\t\tif(j-1!=0) \n\t\tUPNG.encode._updateFrame(bufs, w,h,frms, j-1,r, evenCrd);\n\t\tUPNG.encode._updateFrame(bufs, w,h,frms, j  ,r, evenCrd);\n\t}\n\tvar area = 0;\n\tif(bufs.length!=1) for(var i=0; i\u003cfrms.length; i++) {\n\t\tvar frm = frms[i];\n\t\tarea += frm.rect.width*frm.rect.height;\n\t\t//if(i==0 || frm.blend!=1) continue;\n\t\t//var ob = new Uint8Array(\n\t\t//console.log(frm.blend, frm.dispose, frm.rect);\n\t}\n\t//if(area!=0) console.log(area);\n\treturn frms;\n}\nUPNG.encode._updateFrame = function(bufs, w,h, frms, i, r, evenCrd) {\n\tvar U8 = Uint8Array, U32 = Uint32Array;\n\tvar pimg = new U8(bufs[i-1]), pimg32 = new U32(bufs[i-1]), nimg = i+1\u003cbufs.length ? new U8(bufs[i+1]):null;\n\tvar cimg = new U8(bufs[i]), cimg32 = new U32(cimg.buffer);\n\t\n\tvar mix=w,miy=h,max=-1,may=-1;\n\tfor(var y=0; y\u003cr.height; y++) for(var x=0; x\u003cr.width; x++) {\n\t\tvar cx = r.x+x, cy = r.y+y;\n\t\tvar j = cy*w+cx, cc = cimg32[j];\n\t\t// no need to draw transparency, or to dispose it. Or, if writing the same color and the next one does not need transparency.\n\t\tif(cc==0 || (frms[i-1].dispose==0 \u0026\u0026 pimg32[j]==cc \u0026\u0026 (nimg==null || nimg[j*4+3]!=0))/**/) {}\n\t\telse {\n\t\t\tif(cx\u003cmix) mix=cx;  if(cx\u003emax) max=cx;\n\t\t\tif(cy\u003cmiy) miy=cy;  if(cy\u003emay) may=cy;\n\t\t}\n\t}\n\tif(max==-1) mix=miy=max=may=0;\n\tif(evenCrd) {  if((mix\u00261)==1)mix--;  if((miy\u00261)==1)miy--;  }\n\tr = {x:mix, y:miy, width:max-mix+1, height:may-miy+1};\n\t\n\tvar fr = frms[i];  fr.rect = r;  fr.blend = 1;  fr.img = new Uint8Array(r.width*r.height*4);\n\tif(frms[i-1].dispose==0) {\n\t\tUPNG._copyTile(pimg,w,h, fr.img,r.width,r.height, -r.x,-r.y, 0);\n\t\tUPNG.encode._prepareDiff(cimg,w,h,fr.img,r);\n\t\t//UPNG._copyTile(cimg,w,h, fr.img,r.width,r.height, -r.x,-r.y, 2);\n\t}\n\telse\n\t\tUPNG._copyTile(cimg,w,h, fr.img,r.width,r.height, -r.x,-r.y, 0);\n}\nUPNG.encode._prepareDiff = function(cimg, w,h, nimg, rec) {\n\tUPNG._copyTile(cimg,w,h, nimg,rec.width,rec.height, -rec.x,-rec.y, 2);\n\t/*\n\tvar n32 = new Uint32Array(nimg.buffer);\n\tvar og = new Uint8Array(rec.width*rec.height*4), o32 = new Uint32Array(og.buffer);\n\tUPNG._copyTile(cimg,w,h, og,rec.width,rec.height, -rec.x,-rec.y, 0);\n\tfor(var i=4; i\u003cnimg.length; i+=4) {\n\t\tif(nimg[i-1]!=0 \u0026\u0026 nimg[i+3]==0 \u0026\u0026 o32[i\u003e\u003e\u003e2]==o32[(i\u003e\u003e\u003e2)-1]) {\n\t\t\tn32[i\u003e\u003e\u003e2]=o32[i\u003e\u003e\u003e2];\n\t\t\t//var j = i, c=p32[(i\u003e\u003e\u003e2)-1];\n\t\t\t//while(p32[j\u003e\u003e\u003e2]==c) {  n32[j\u003e\u003e\u003e2]=c;  j+=4;  }\n\t\t}\n\t}\n\tfor(var i=nimg.length-8; i\u003e0; i-=4) {\n\t\tif(nimg[i+7]!=0 \u0026\u0026 nimg[i+3]==0 \u0026\u0026 o32[i\u003e\u003e\u003e2]==o32[(i\u003e\u003e\u003e2)+1]) {\n\t\t\tn32[i\u003e\u003e\u003e2]=o32[i\u003e\u003e\u003e2];\n\t\t\t//var j = i, c=p32[(i\u003e\u003e\u003e2)-1];\n\t\t\t//while(p32[j\u003e\u003e\u003e2]==c) {  n32[j\u003e\u003e\u003e2]=c;  j+=4;  }\n\t\t}\n\t}*/\n}\n\nUPNG.encode._filterZero = function(img,h,bpp,bpl,data, filter, levelZero)\n{\n\tvar fls = [], ftry=[0,1,2,3,4];\n\tif     (filter!=-1)             ftry=[filter];\n\telse if(h*bpl\u003e500000 || bpp==1) ftry=[0];\n\tvar opts;  if(levelZero) opts={level:0};\n\t\n\tvar CMPR = (levelZero \u0026\u0026 UZIP!=null) ? UZIP : pako;\n\t\n\tfor(var i=0; i\u003cftry.length; i++) {\n\t\tfor(var y=0; y\u003ch; y++) UPNG.encode._filterLine(data, img, y, bpl, bpp, ftry[i]);\n\t\t//var nimg = new Uint8Array(data.length);\n\t\t//var sz = UZIP.F.deflate(data, nimg);  fls.push(nimg.slice(0,sz));\n\t\t//var dfl = pako[\"deflate\"](data), dl=dfl.length-4;\n\t\t//var crc = (dfl[dl+3]\u003c\u003c24)|(dfl[dl+2]\u003c\u003c16)|(dfl[dl+1]\u003c\u003c8)|(dfl[dl+0]\u003c\u003c0);\n\t\t//console.log(crc, UZIP.adler(data,2,data.length-6));\n\t\tfls.push(CMPR[\"deflate\"](data,opts));\n\t}\n\tvar ti, tsize=1e9;\n\tfor(var i=0; i\u003cfls.length; i++) if(fls[i].length\u003ctsize) {  ti=i;  tsize=fls[i].length;  }\n\treturn fls[ti];\n}\nUPNG.encode._filterLine = function(data, img, y, bpl, bpp, type)\n{\n\tvar i = y*bpl, di = i+y, paeth = UPNG.decode._paeth\n\tdata[di]=type;  di++;\n\n\tif(type==0) {\n\t\tif(bpl\u003c500) for(var x=0; x\u003cbpl; x++) data[di+x] = img[i+x];\n\t\telse data.set(new Uint8Array(img.buffer,i,bpl),di);\n\t}\n\telse if(type==1) {\n\t\tfor(var x=  0; x\u003cbpp; x++) data[di+x] =  img[i+x];\n\t\tfor(var x=bpp; x\u003cbpl; x++) data[di+x] = (img[i+x]-img[i+x-bpp]+256)\u0026255;\n\t}\n\telse if(y==0) {\n\t\tfor(var x=  0; x\u003cbpp; x++) data[di+x] = img[i+x];\n\n\t\tif(type==2) for(var x=bpp; x\u003cbpl; x++) data[di+x] = img[i+x];\n\t\tif(type==3) for(var x=bpp; x\u003cbpl; x++) data[di+x] = (img[i+x] - (img[i+x-bpp]\u003e\u003e1) +256)\u0026255;\n\t\tif(type==4) for(var x=bpp; x\u003cbpl; x++) data[di+x] = (img[i+x] - paeth(img[i+x-bpp], 0, 0) +256)\u0026255;\n\t}\n\telse {\n\t\tif(type==2) { for(var x=  0; x\u003cbpl; x++) data[di+x] = (img[i+x]+256 - img[i+x-bpl])\u0026255;  }\n\t\tif(type==3) { for(var x=  0; x\u003cbpp; x++) data[di+x] = (img[i+x]+256 - (img[i+x-bpl]\u003e\u003e1))\u0026255;\n\t\t\t\t\t  for(var x=bpp; x\u003cbpl; x++) data[di+x] = (img[i+x]+256 - ((img[i+x-bpl]+img[i+x-bpp])\u003e\u003e1))\u0026255;  }\n\t\tif(type==4) { for(var x=  0; x\u003cbpp; x++) data[di+x] = (img[i+x]+256 - paeth(0, img[i+x-bpl], 0))\u0026255;\n\t\t\t\t\t  for(var x=bpp; x\u003cbpl; x++) data[di+x] = (img[i+x]+256 - paeth(img[i+x-bpp], img[i+x-bpl], img[i+x-bpp-bpl]))\u0026255;  }\n\t}\n}\n\nUPNG.crc = {\n\ttable : ( function() {\n\t   var tab = new Uint32Array(256);\n\t   for (var n=0; n\u003c256; n++) {\n\t\t\tvar c = n;\n\t\t\tfor (var k=0; k\u003c8; k++) {\n\t\t\t\tif (c \u0026 1)  c = 0xedb88320 ^ (c \u003e\u003e\u003e 1);\n\t\t\t\telse        c = c \u003e\u003e\u003e 1;\n\t\t\t}\n\t\t\ttab[n] = c;  }\n\t\treturn tab;  })(),\n\tupdate : function(c, buf, off, len) {\n\t\tfor (var i=0; i\u003clen; i++)  c = UPNG.crc.table[(c ^ buf[off+i]) \u0026 0xff] ^ (c \u003e\u003e\u003e 8);\n\t\treturn c;\n\t},\n\tcrc : function(b,o,l)  {  return UPNG.crc.update(0xffffffff,b,o,l) ^ 0xffffffff;  }\n}\n\n\nUPNG.quantize = function(abuf, ps)\n{\t\n\tvar oimg = new Uint8Array(abuf), nimg = oimg.slice(0), nimg32 = new Uint32Array(nimg.buffer);\n\t\n\tvar KD = UPNG.quantize.getKDtree(nimg, ps);\n\tvar root = KD[0], leafs = KD[1];\n\t\n\tvar planeDst = UPNG.quantize.planeDst;\n\tvar sb = oimg, tb = nimg32, len=sb.length;\n\t\t\n\tvar inds = new Uint8Array(oimg.length\u003e\u003e2);\n\tfor(var i=0; i\u003clen; i+=4) {\n\t\tvar r=sb[i]*(1/255), g=sb[i+1]*(1/255), b=sb[i+2]*(1/255), a=sb[i+3]*(1/255);\n\t\t\n\t\t//  exact, but too slow :(\n\t\tvar nd = UPNG.quantize.getNearest(root, r, g, b, a);\n\t\t//var nd = root;\n\t\t//while(nd.left) nd = (planeDst(nd.est,r,g,b,a)\u003c=0) ? nd.left : nd.right;\n\t\t\n\t\tinds[i\u003e\u003e2] = nd.ind;\n\t\ttb[i\u003e\u003e2] = nd.est.rgba;\n\t}\n\treturn {  abuf:nimg.buffer, inds:inds, plte:leafs  };\n}\n\nUPNG.quantize.getKDtree = function(nimg, ps, err) {\n\tif(err==null) err = 0.0001;\n\tvar nimg32 = new Uint32Array(nimg.buffer);\n\t\n\tvar root = {i0:0, i1:nimg.length, bst:null, est:null, tdst:0, left:null, right:null };  // basic statistic, extra statistic\n\troot.bst = UPNG.quantize.stats(  nimg,root.i0, root.i1  );  root.est = UPNG.quantize.estats( root.bst );\n\tvar leafs = [root];\n\t\n\twhile(leafs.length\u003cps)\n\t{\n\t\tvar maxL = 0, mi=0;\n\t\tfor(var i=0; i\u003cleafs.length; i++) if(leafs[i].est.L \u003e maxL) {  maxL=leafs[i].est.L;  mi=i;  }\n\t\tif(maxL\u003cerr) break;\n\t\tvar node = leafs[mi];\n\t\t\n\t\tvar s0 = UPNG.quantize.splitPixels(nimg,nimg32, node.i0, node.i1, node.est.e, node.est.eMq255);\n\t\tvar s0wrong = (node.i0\u003e=s0 || node.i1\u003c=s0);\n\t\t//console.log(maxL, leafs.length, mi);\n\t\tif(s0wrong) {  node.est.L=0;  continue;  }\n\t\t\n\t\t\n\t\tvar ln = {i0:node.i0, i1:s0, bst:null, est:null, tdst:0, left:null, right:null };  ln.bst = UPNG.quantize.stats( nimg, ln.i0, ln.i1 );  \n\t\tln.est = UPNG.quantize.estats( ln.bst );\n\t\tvar rn = {i0:s0, i1:node.i1, bst:null, est:null, tdst:0, left:null, right:null };  rn.bst = {R:[], m:[], N:node.bst.N-ln.bst.N};\n\t\tfor(var i=0; i\u003c16; i++) rn.bst.R[i] = node.bst.R[i]-ln.bst.R[i];\n\t\tfor(var i=0; i\u003c 4; i++) rn.bst.m[i] = node.bst.m[i]-ln.bst.m[i];\n\t\trn.est = UPNG.quantize.estats( rn.bst );\n\t\t\n\t\tnode.left = ln;  node.right = rn;\n\t\tleafs[mi]=ln;  leafs.push(rn);\n\t}\n\tleafs.sort(function(a,b) {  return b.bst.N-a.bst.N;  });\n\tfor(var i=0; i\u003cleafs.length; i++) leafs[i].ind=i;\n\treturn [root, leafs];\n}\n\nUPNG.quantize.getNearest = function(nd, r,g,b,a)\n{\n\tif(nd.left==null) {  nd.tdst = UPNG.quantize.dist(nd.est.q,r,g,b,a);  return nd;  }\n\tvar planeDst = UPNG.quantize.planeDst(nd.est,r,g,b,a);\n\t\n\tvar node0 = nd.left, node1 = nd.right;\n\tif(planeDst\u003e0) {  node0=nd.right;  node1=nd.left;  }\n\t\n\tvar ln = UPNG.quantize.getNearest(node0, r,g,b,a);\n\tif(ln.tdst\u003c=planeDst*planeDst) return ln;\n\tvar rn = UPNG.quantize.getNearest(node1, r,g,b,a);\n\treturn rn.tdst\u003cln.tdst ? rn : ln;\n}\nUPNG.quantize.planeDst = function(est, r,g,b,a) {  var e = est.e;  return e[0]*r + e[1]*g + e[2]*b + e[3]*a - est.eMq;  }\nUPNG.quantize.dist     = function(q,   r,g,b,a) {  var d0=r-q[0], d1=g-q[1], d2=b-q[2], d3=a-q[3];  return d0*d0+d1*d1+d2*d2+d3*d3;  }\n\nUPNG.quantize.splitPixels = function(nimg, nimg32, i0, i1, e, eMq)\n{\n\tvar vecDot = UPNG.quantize.vecDot;\n\ti1-=4;\n\tvar shfs = 0;\n\twhile(i0\u003ci1)\n\t{\n\t\twhile(vecDot(nimg, i0, e)\u003c=eMq) i0+=4;\n\t\twhile(vecDot(nimg, i1, e)\u003e eMq) i1-=4;\n\t\tif(i0\u003e=i1) break;\n\t\t\n\t\tvar t = nimg32[i0\u003e\u003e2];  nimg32[i0\u003e\u003e2] = nimg32[i1\u003e\u003e2];  nimg32[i1\u003e\u003e2]=t;\n\t\t\n\t\ti0+=4;  i1-=4;\n\t}\n\twhile(vecDot(nimg, i0, e)\u003eeMq) i0-=4;\n\treturn i0+4;\n}\nUPNG.quantize.vecDot = function(nimg, i, e)\n{\n\treturn nimg[i]*e[0] + nimg[i+1]*e[1] + nimg[i+2]*e[2] + nimg[i+3]*e[3];\n}\nUPNG.quantize.stats = function(nimg, i0, i1){\n\tvar R = [0,0,0,0,  0,0,0,0,  0,0,0,0,  0,0,0,0];\n\tvar m = [0,0,0,0];\n\tvar N = (i1-i0)\u003e\u003e2;\n\tfor(var i=i0; i\u003ci1; i+=4)\n\t{\n\t\tvar r = nimg[i]*(1/255), g = nimg[i+1]*(1/255), b = nimg[i+2]*(1/255), a = nimg[i+3]*(1/255);\n\t\t//var r = nimg[i], g = nimg[i+1], b = nimg[i+2], a = nimg[i+3];\n\t\tm[0]+=r;  m[1]+=g;  m[2]+=b;  m[3]+=a;\n\t\t\n\t\tR[ 0] += r*r;  R[ 1] += r*g;  R[ 2] += r*b;  R[ 3] += r*a;  \n\t\t               R[ 5] += g*g;  R[ 6] += g*b;  R[ 7] += g*a; \n\t\t                              R[10] += b*b;  R[11] += b*a;  \n\t\t                                             R[15] += a*a;  \n\t}\n\tR[4]=R[1];  R[8]=R[2];  R[9]=R[6];  R[12]=R[3];  R[13]=R[7];  R[14]=R[11];\n\t\n\treturn {R:R, m:m, N:N};\n}\nUPNG.quantize.estats = function(stats){\n\tvar R = stats.R, m = stats.m, N = stats.N;\n\t\n\t// when all samples are equal, but N is large (millions), the Rj can be non-zero ( 0.0003.... - precission error)\n\tvar m0 = m[0], m1 = m[1], m2 = m[2], m3 = m[3], iN = (N==0 ? 0 : 1/N);\n\tvar Rj = [\n\t\tR[ 0] - m0*m0*iN,  R[ 1] - m0*m1*iN,  R[ 2] - m0*m2*iN,  R[ 3] - m0*m3*iN,  \n\t\tR[ 4] - m1*m0*iN,  R[ 5] - m1*m1*iN,  R[ 6] - m1*m2*iN,  R[ 7] - m1*m3*iN,\n\t\tR[ 8] - m2*m0*iN,  R[ 9] - m2*m1*iN,  R[10] - m2*m2*iN,  R[11] - m2*m3*iN,  \n\t\tR[12] - m3*m0*iN,  R[13] - m3*m1*iN,  R[14] - m3*m2*iN,  R[15] - m3*m3*iN \n\t];\n\t\n\tvar A = Rj, M = UPNG.M4;\n\tvar b = [0.5,0.5,0.5,0.5], mi = 0, tmi = 0;\n\t\n\tif(N!=0)\n\tfor(var i=0; i\u003c10; i++) {\n\t\tb = M.multVec(A, b);  tmi = Math.sqrt(M.dot(b,b));  b = M.sml(1/tmi,  b);\n\t\tif(Math.abs(tmi-mi)\u003c1e-9) break;  mi = tmi;\n\t}\t\n\t//b = [0,0,1,0];  mi=N;\n\tvar q = [m0*iN, m1*iN, m2*iN, m3*iN];\n\tvar eMq255 = M.dot(M.sml(255,q),b);\n\t\n\treturn {  Cov:Rj, q:q, e:b, L:mi,  eMq255:eMq255, eMq : M.dot(b,q),\n\t\t\t\trgba: (((Math.round(255*q[3])\u003c\u003c24) | (Math.round(255*q[2])\u003c\u003c16) |  (Math.round(255*q[1])\u003c\u003c8) | (Math.round(255*q[0])\u003c\u003c0))\u003e\u003e\u003e0)  };\n}\nUPNG.M4 = {\n\tmultVec : function(m,v) {\n\t\t\treturn [\n\t\t\t\tm[ 0]*v[0] + m[ 1]*v[1] + m[ 2]*v[2] + m[ 3]*v[3],\n\t\t\t\tm[ 4]*v[0] + m[ 5]*v[1] + m[ 6]*v[2] + m[ 7]*v[3],\n\t\t\t\tm[ 8]*v[0] + m[ 9]*v[1] + m[10]*v[2] + m[11]*v[3],\n\t\t\t\tm[12]*v[0] + m[13]*v[1] + m[14]*v[2] + m[15]*v[3]\n\t\t\t];\n\t},\n\tdot : function(x,y) {  return  x[0]*y[0]+x[1]*y[1]+x[2]*y[2]+x[3]*y[3];  },\n\tsml : function(a,y) {  return [a*y[0],a*y[1],a*y[2],a*y[3]];  }\n}\n\nUPNG.encode.concatRGBA = function(bufs) {\n\tvar tlen = 0;\n\tfor(var i=0; i\u003cbufs.length; i++) tlen += bufs[i].byteLength;\n\tvar nimg = new Uint8Array(tlen), noff=0;\n\tfor(var i=0; i\u003cbufs.length; i++) {\n\t\tvar img = new Uint8Array(bufs[i]), il = img.length;\n\t\tfor(var j=0; j\u003cil; j+=4) {  \n\t\t\tvar r=img[j], g=img[j+1], b=img[j+2], a = img[j+3];\n\t\t\tif(a==0) r=g=b=0;\n\t\t\tnimg[noff+j]=r;  nimg[noff+j+1]=g;  nimg[noff+j+2]=b;  nimg[noff+j+3]=a;  }\n\t\tnoff += il;\n\t}\n\treturn nimg.buffer;\n}\n\nexport default UPNG;\n\n"],"version":3}
